Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Eagar <joeedh@gmail.com>2010-07-19 08:44:37 +0400
committerJoseph Eagar <joeedh@gmail.com>2010-07-19 08:44:37 +0400
commitc11c196efadf5ef52293d782638497f86a209722 (patch)
tree43abcd60b2400d28db8686f4dbea68f17475ef58 /source/blender/editors
parentf54aa7811029c90b6071ccc9e27e57a758e5884d (diff)
parent7f083c45bee15f7540e2a35a725efe28fc962239 (diff)
part 1 of merge from trunk at r30358; it compiles, but doesn't link quite yet :)
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/CMakeLists.txt111
-rw-r--r--source/blender/editors/animation/CMakeLists.txt34
-rw-r--r--source/blender/editors/animation/anim_channels_defines.c71
-rw-r--r--source/blender/editors/animation/anim_channels_edit.c83
-rw-r--r--source/blender/editors/animation/anim_deps.c17
-rw-r--r--source/blender/editors/animation/anim_draw.c93
-rw-r--r--source/blender/editors/animation/anim_filter.c136
-rw-r--r--source/blender/editors/animation/anim_intern.h9
-rw-r--r--source/blender/editors/animation/anim_ipo_utils.c17
-rw-r--r--source/blender/editors/animation/anim_markers.c21
-rw-r--r--source/blender/editors/animation/anim_ops.c18
-rw-r--r--source/blender/editors/animation/drivers.c91
-rw-r--r--source/blender/editors/animation/fmodifier_ui.c221
-rw-r--r--source/blender/editors/animation/keyframes_draw.c22
-rw-r--r--source/blender/editors/animation/keyframes_edit.c401
-rw-r--r--source/blender/editors/animation/keyframes_general.c13
-rw-r--r--source/blender/editors/animation/keyframing.c255
-rw-r--r--source/blender/editors/animation/keyingsets.c1265
-rw-r--r--source/blender/editors/armature/CMakeLists.txt39
-rw-r--r--source/blender/editors/armature/Makefile1
-rw-r--r--source/blender/editors/armature/armature_intern.h5
-rw-r--r--source/blender/editors/armature/armature_ops.c38
-rw-r--r--source/blender/editors/armature/editarmature.c308
-rw-r--r--source/blender/editors/armature/editarmature_generate.c9
-rw-r--r--source/blender/editors/armature/editarmature_retarget.c19
-rw-r--r--source/blender/editors/armature/editarmature_sketch.c60
-rw-r--r--source/blender/editors/armature/meshlaplacian.c262
-rw-r--r--source/blender/editors/armature/meshlaplacian.h2
-rw-r--r--source/blender/editors/armature/poseSlide.c11
-rw-r--r--source/blender/editors/armature/poseUtils.c40
-rw-r--r--source/blender/editors/armature/poselib.c90
-rw-r--r--source/blender/editors/armature/poseobject.c327
-rw-r--r--source/blender/editors/armature/reeb.c24
-rw-r--r--source/blender/editors/armature/reeb.h2
-rw-r--r--source/blender/editors/curve/CMakeLists.txt34
-rw-r--r--source/blender/editors/curve/curve_intern.h24
-rw-r--r--source/blender/editors/curve/curve_ops.c47
-rw-r--r--source/blender/editors/curve/editcurve.c1037
-rw-r--r--source/blender/editors/curve/editfont.c163
-rw-r--r--source/blender/editors/datafiles/B.blend.c10668
-rw-r--r--source/blender/editors/datafiles/Bfont.c4
-rw-r--r--source/blender/editors/datafiles/CMakeLists.txt26
-rw-r--r--source/blender/editors/datafiles/blenderbuttons.c13120
-rw-r--r--source/blender/editors/datafiles/splash.png.c12993
-rw-r--r--source/blender/editors/datafiles/startup.blend.c7537
-rw-r--r--source/blender/editors/gpencil/CMakeLists.txt35
-rw-r--r--source/blender/editors/gpencil/drawgpencil.c19
-rw-r--r--source/blender/editors/gpencil/editaction_gpencil.c16
-rw-r--r--source/blender/editors/gpencil/gpencil_buttons.c64
-rw-r--r--source/blender/editors/gpencil/gpencil_edit.c81
-rw-r--r--source/blender/editors/gpencil/gpencil_intern.h2
-rw-r--r--source/blender/editors/gpencil/gpencil_ops.c3
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c41
-rw-r--r--source/blender/editors/include/BIF_gl.h2
-rw-r--r--source/blender/editors/include/BIF_glutil.h2
-rw-r--r--source/blender/editors/include/ED_anim_api.h29
-rw-r--r--source/blender/editors/include/ED_armature.h5
-rw-r--r--source/blender/editors/include/ED_curve.h4
-rw-r--r--source/blender/editors/include/ED_datafiles.h4
-rw-r--r--source/blender/editors/include/ED_fileselect.h9
-rw-r--r--source/blender/editors/include/ED_fluidsim.h2
-rw-r--r--source/blender/editors/include/ED_gpencil.h6
-rw-r--r--source/blender/editors/include/ED_image.h2
-rw-r--r--source/blender/editors/include/ED_info.h2
-rw-r--r--source/blender/editors/include/ED_keyframes_edit.h80
-rw-r--r--source/blender/editors/include/ED_keyframing.h97
-rw-r--r--source/blender/editors/include/ED_logic.h36
-rw-r--r--source/blender/editors/include/ED_markers.h2
-rw-r--r--source/blender/editors/include/ED_mesh.h2
-rw-r--r--source/blender/editors/include/ED_node.h3
-rw-r--r--source/blender/editors/include/ED_numinput.h16
-rw-r--r--source/blender/editors/include/ED_object.h10
-rw-r--r--source/blender/editors/include/ED_physics.h2
-rw-r--r--source/blender/editors/include/ED_render.h3
-rw-r--r--source/blender/editors/include/ED_screen.h8
-rw-r--r--source/blender/editors/include/ED_screen_types.h3
-rw-r--r--source/blender/editors/include/ED_sculpt.h4
-rw-r--r--source/blender/editors/include/ED_sequencer.h2
-rw-r--r--source/blender/editors/include/ED_space_api.h2
-rw-r--r--source/blender/editors/include/ED_text.h2
-rw-r--r--source/blender/editors/include/ED_transform.h12
-rw-r--r--source/blender/editors/include/ED_types.h2
-rw-r--r--source/blender/editors/include/ED_util.h3
-rw-r--r--source/blender/editors/include/ED_uvedit.h2
-rw-r--r--source/blender/editors/include/ED_view3d.h30
-rw-r--r--source/blender/editors/include/UI_icons.h12
-rw-r--r--source/blender/editors/include/UI_interface.h47
-rw-r--r--source/blender/editors/include/UI_resources.h34
-rw-r--r--source/blender/editors/include/UI_view2d.h1
-rw-r--r--source/blender/editors/interface/CMakeLists.txt46
-rw-r--r--source/blender/editors/interface/interface.c48
-rw-r--r--source/blender/editors/interface/interface_anim.c4
-rw-r--r--source/blender/editors/interface/interface_draw.c436
-rw-r--r--source/blender/editors/interface/interface_handlers.c401
-rw-r--r--source/blender/editors/interface/interface_icons.c75
-rw-r--r--source/blender/editors/interface/interface_intern.h17
-rw-r--r--source/blender/editors/interface/interface_layout.c95
-rw-r--r--source/blender/editors/interface/interface_ops.c57
-rw-r--r--source/blender/editors/interface/interface_panel.c84
-rw-r--r--source/blender/editors/interface/interface_regions.c118
-rw-r--r--source/blender/editors/interface/interface_style.c95
-rw-r--r--source/blender/editors/interface/interface_templates.c741
-rw-r--r--source/blender/editors/interface/interface_utils.c4
-rw-r--r--source/blender/editors/interface/interface_widgets.c273
-rw-r--r--source/blender/editors/interface/resources.c151
-rw-r--r--source/blender/editors/interface/view2d.c28
-rw-r--r--source/blender/editors/interface/view2d_ops.c195
-rw-r--r--source/blender/editors/mesh/CMakeLists.txt41
-rw-r--r--source/blender/editors/mesh/bmesh_select.c2
-rw-r--r--source/blender/editors/mesh/bmesh_tools.c65
-rw-r--r--source/blender/editors/mesh/editbmesh_add.c18
-rw-r--r--source/blender/editors/mesh/editbmesh_bvh.c4
-rw-r--r--source/blender/editors/mesh/editface.c11
-rw-r--r--source/blender/editors/mesh/loopcut.c24
-rw-r--r--source/blender/editors/mesh/mesh_data.c33
-rw-r--r--source/blender/editors/mesh/mesh_intern.h34
-rw-r--r--source/blender/editors/mesh/mesh_ops.c26
-rw-r--r--source/blender/editors/mesh/meshtools.c166
-rw-r--r--source/blender/editors/metaball/CMakeLists.txt35
-rw-r--r--source/blender/editors/metaball/mball_edit.c37
-rw-r--r--source/blender/editors/metaball/mball_ops.c3
-rw-r--r--source/blender/editors/object/CMakeLists.txt48
-rw-r--r--source/blender/editors/object/object_add.c675
-rw-r--r--source/blender/editors/object/object_bake.c23
-rw-r--r--source/blender/editors/object/object_constraint.c392
-rw-r--r--source/blender/editors/object/object_edit.c397
-rw-r--r--source/blender/editors/object/object_group.c86
-rw-r--r--source/blender/editors/object/object_hook.c40
-rw-r--r--source/blender/editors/object/object_intern.h25
-rw-r--r--source/blender/editors/object/object_lattice.c9
-rw-r--r--source/blender/editors/object/object_modifier.c445
-rw-r--r--source/blender/editors/object/object_ops.c51
-rw-r--r--source/blender/editors/object/object_relations.c178
-rw-r--r--source/blender/editors/object/object_select.c121
-rw-r--r--source/blender/editors/object/object_shapekey.c8
-rw-r--r--source/blender/editors/object/object_transform.c119
-rw-r--r--source/blender/editors/object/object_vgroup.c323
-rw-r--r--source/blender/editors/physics/CMakeLists.txt47
-rw-r--r--source/blender/editors/physics/particle_boids.c4
-rw-r--r--source/blender/editors/physics/particle_edit.c150
-rw-r--r--source/blender/editors/physics/particle_object.c38
-rw-r--r--source/blender/editors/physics/physics_fluid.c1607
-rw-r--r--source/blender/editors/physics/physics_intern.h4
-rw-r--r--source/blender/editors/physics/physics_ops.c8
-rw-r--r--source/blender/editors/physics/physics_pointcache.c45
-rw-r--r--source/blender/editors/render/CMakeLists.txt55
-rw-r--r--source/blender/editors/render/render_intern.h21
-rw-r--r--source/blender/editors/render/render_internal.c833
-rw-r--r--source/blender/editors/render/render_opengl.c501
-rw-r--r--source/blender/editors/render/render_ops.c17
-rw-r--r--source/blender/editors/render/render_preview.c76
-rw-r--r--source/blender/editors/render/render_shading.c403
-rw-r--r--source/blender/editors/screen/CMakeLists.txt73
-rw-r--r--source/blender/editors/screen/SConscript11
-rw-r--r--source/blender/editors/screen/area.c74
-rw-r--r--source/blender/editors/screen/glutil.c78
-rw-r--r--source/blender/editors/screen/screen_context.c74
-rw-r--r--source/blender/editors/screen/screen_edit.c239
-rw-r--r--source/blender/editors/screen/screen_intern.h4
-rw-r--r--source/blender/editors/screen/screen_ops.c1234
-rw-r--r--source/blender/editors/screen/screendump.c26
-rw-r--r--source/blender/editors/sculpt_paint/CMakeLists.txt41
-rw-r--r--source/blender/editors/sculpt_paint/SConscript10
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c919
-rw-r--r--source/blender/editors/sculpt_paint/paint_intern.h16
-rw-r--r--source/blender/editors/sculpt_paint/paint_ops.c149
-rw-r--r--source/blender/editors/sculpt_paint/paint_stroke.c834
-rw-r--r--source/blender/editors/sculpt_paint/paint_utils.c16
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c40
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c3284
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_intern.h48
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_undo.c302
-rw-r--r--source/blender/editors/sound/CMakeLists.txt35
-rw-r--r--source/blender/editors/sound/SConscript2
-rw-r--r--source/blender/editors/sound/sound_ops.c66
-rw-r--r--source/blender/editors/space_action/CMakeLists.txt35
-rw-r--r--source/blender/editors/space_action/action_draw.c26
-rw-r--r--source/blender/editors/space_action/action_edit.c138
-rw-r--r--source/blender/editors/space_action/action_intern.h3
-rw-r--r--source/blender/editors/space_action/action_ops.c16
-rw-r--r--source/blender/editors/space_action/action_select.c251
-rw-r--r--source/blender/editors/space_action/space_action.c23
-rw-r--r--source/blender/editors/space_api/CMakeLists.txt35
-rw-r--r--source/blender/editors/space_api/SConscript3
-rw-r--r--source/blender/editors/space_api/space.c3
-rw-r--r--source/blender/editors/space_api/spacetypes.c5
-rw-r--r--source/blender/editors/space_buttons/CMakeLists.txt34
-rw-r--r--source/blender/editors/space_buttons/SConscript3
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c59
-rw-r--r--source/blender/editors/space_buttons/buttons_header.c10
-rw-r--r--source/blender/editors/space_buttons/buttons_intern.h4
-rw-r--r--source/blender/editors/space_buttons/buttons_ops.c65
-rw-r--r--source/blender/editors/space_buttons/space_buttons.c39
-rw-r--r--source/blender/editors/space_console/CMakeLists.txt40
-rw-r--r--source/blender/editors/space_console/Makefile1
-rw-r--r--source/blender/editors/space_console/SConscript1
-rw-r--r--source/blender/editors/space_console/console_draw.c35
-rw-r--r--source/blender/editors/space_console/console_intern.h2
-rw-r--r--source/blender/editors/space_console/console_ops.c26
-rw-r--r--source/blender/editors/space_console/console_report.c19
-rw-r--r--source/blender/editors/space_console/space_console.c88
-rw-r--r--source/blender/editors/space_file/CMakeLists.txt59
-rw-r--r--source/blender/editors/space_file/Makefile4
-rw-r--r--source/blender/editors/space_file/SConscript4
-rw-r--r--source/blender/editors/space_file/file_draw.c97
-rw-r--r--source/blender/editors/space_file/file_intern.h7
-rw-r--r--source/blender/editors/space_file/file_ops.c303
-rw-r--r--source/blender/editors/space_file/file_panels.c7
-rw-r--r--source/blender/editors/space_file/filelist.c419
-rw-r--r--source/blender/editors/space_file/filelist.h6
-rw-r--r--source/blender/editors/space_file/filesel.c189
-rw-r--r--source/blender/editors/space_file/fsmenu.c73
-rw-r--r--source/blender/editors/space_file/fsmenu.h7
-rw-r--r--source/blender/editors/space_file/space_file.c85
-rw-r--r--source/blender/editors/space_file/writeimage.c48
-rw-r--r--source/blender/editors/space_graph/CMakeLists.txt35
-rw-r--r--source/blender/editors/space_graph/graph_buttons.c155
-rw-r--r--source/blender/editors/space_graph/graph_draw.c71
-rw-r--r--source/blender/editors/space_graph/graph_edit.c275
-rw-r--r--source/blender/editors/space_graph/graph_intern.h6
-rw-r--r--source/blender/editors/space_graph/graph_ops.c30
-rw-r--r--source/blender/editors/space_graph/graph_select.c537
-rw-r--r--source/blender/editors/space_graph/graph_utils.c18
-rw-r--r--source/blender/editors/space_graph/space_graph.c22
-rw-r--r--source/blender/editors/space_image/CMakeLists.txt54
-rw-r--r--source/blender/editors/space_image/Makefile4
-rw-r--r--source/blender/editors/space_image/SConscript6
-rw-r--r--source/blender/editors/space_image/image_buttons.c153
-rw-r--r--source/blender/editors/space_image/image_draw.c85
-rw-r--r--source/blender/editors/space_image/image_header.c24
-rw-r--r--source/blender/editors/space_image/image_intern.h3
-rw-r--r--source/blender/editors/space_image/image_ops.c441
-rw-r--r--source/blender/editors/space_image/image_render.c3
-rw-r--r--source/blender/editors/space_image/space_image.c109
-rw-r--r--source/blender/editors/space_info/CMakeLists.txt36
-rw-r--r--source/blender/editors/space_info/SConscript3
-rw-r--r--source/blender/editors/space_info/info_intern.h4
-rw-r--r--source/blender/editors/space_info/info_ops.c110
-rw-r--r--source/blender/editors/space_info/info_stats.c4
-rw-r--r--source/blender/editors/space_info/space_info.c52
-rw-r--r--source/blender/editors/space_logic/CMakeLists.txt39
-rw-r--r--source/blender/editors/space_logic/logic_buttons.c8
-rw-r--r--source/blender/editors/space_logic/logic_header.c6
-rw-r--r--source/blender/editors/space_logic/logic_intern.h3
-rw-r--r--source/blender/editors/space_logic/logic_ops.c697
-rw-r--r--source/blender/editors/space_logic/logic_window.c1816
-rw-r--r--source/blender/editors/space_logic/space_logic.c29
-rw-r--r--source/blender/editors/space_nla/CMakeLists.txt34
-rw-r--r--source/blender/editors/space_nla/nla_buttons.c77
-rw-r--r--source/blender/editors/space_nla/nla_channels.c40
-rw-r--r--source/blender/editors/space_nla/nla_draw.c26
-rw-r--r--source/blender/editors/space_nla/nla_edit.c212
-rw-r--r--source/blender/editors/space_nla/nla_intern.h4
-rw-r--r--source/blender/editors/space_nla/nla_ops.c17
-rw-r--r--source/blender/editors/space_nla/nla_select.c20
-rw-r--r--source/blender/editors/space_nla/space_nla.c20
-rw-r--r--source/blender/editors/space_node/CMakeLists.txt42
-rw-r--r--source/blender/editors/space_node/drawnode.c455
-rw-r--r--source/blender/editors/space_node/node_buttons.c13
-rw-r--r--source/blender/editors/space_node/node_draw.c146
-rw-r--r--source/blender/editors/space_node/node_edit.c673
-rw-r--r--source/blender/editors/space_node/node_header.c8
-rw-r--r--source/blender/editors/space_node/node_intern.h22
-rw-r--r--source/blender/editors/space_node/node_ops.c59
-rw-r--r--source/blender/editors/space_node/node_select.c97
-rw-r--r--source/blender/editors/space_node/node_state.c25
-rw-r--r--source/blender/editors/space_node/space_node.c65
-rw-r--r--source/blender/editors/space_outliner/CMakeLists.txt36
-rw-r--r--source/blender/editors/space_outliner/outliner.c385
-rw-r--r--source/blender/editors/space_outliner/outliner_intern.h27
-rw-r--r--source/blender/editors/space_outliner/outliner_ops.c7
-rw-r--r--source/blender/editors/space_outliner/space_outliner.c18
-rw-r--r--source/blender/editors/space_script/CMakeLists.txt40
-rw-r--r--source/blender/editors/space_script/script_edit.c48
-rw-r--r--source/blender/editors/space_script/script_header.c6
-rw-r--r--source/blender/editors/space_script/script_intern.h3
-rw-r--r--source/blender/editors/space_script/script_ops.c10
-rw-r--r--source/blender/editors/space_script/space_script.c18
-rw-r--r--source/blender/editors/space_sequencer/CMakeLists.txt36
-rw-r--r--source/blender/editors/space_sequencer/sequencer_add.c228
-rw-r--r--source/blender/editors/space_sequencer/sequencer_buttons.c12
-rw-r--r--source/blender/editors/space_sequencer/sequencer_draw.c280
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c661
-rw-r--r--source/blender/editors/space_sequencer/sequencer_intern.h26
-rw-r--r--source/blender/editors/space_sequencer/sequencer_ops.c37
-rw-r--r--source/blender/editors/space_sequencer/sequencer_scopes.c22
-rw-r--r--source/blender/editors/space_sequencer/sequencer_select.c109
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c86
-rw-r--r--source/blender/editors/space_sound/CMakeLists.txt34
-rw-r--r--source/blender/editors/space_sound/sound_header.c6
-rw-r--r--source/blender/editors/space_sound/sound_intern.h2
-rw-r--r--source/blender/editors/space_sound/space_sound.c12
-rw-r--r--source/blender/editors/space_text/CMakeLists.txt41
-rw-r--r--source/blender/editors/space_text/space_text.c65
-rw-r--r--source/blender/editors/space_text/text_draw.c78
-rw-r--r--source/blender/editors/space_text/text_header.c21
-rw-r--r--source/blender/editors/space_text/text_intern.h4
-rw-r--r--source/blender/editors/space_text/text_ops.c99
-rw-r--r--source/blender/editors/space_text/text_python.c1
-rw-r--r--source/blender/editors/space_time/CMakeLists.txt34
-rw-r--r--source/blender/editors/space_time/space_time.c263
-rw-r--r--source/blender/editors/space_time/time_intern.h2
-rw-r--r--source/blender/editors/space_time/time_ops.c9
-rw-r--r--source/blender/editors/space_userpref/CMakeLists.txt34
-rw-r--r--source/blender/editors/space_userpref/SConscript3
-rw-r--r--source/blender/editors/space_userpref/space_userpref.c5
-rw-r--r--source/blender/editors/space_userpref/userpref_intern.h2
-rw-r--r--source/blender/editors/space_view3d/CMakeLists.txt51
-rw-r--r--source/blender/editors/space_view3d/SConscript2
-rw-r--r--source/blender/editors/space_view3d/drawanimviz.c40
-rw-r--r--source/blender/editors/space_view3d/drawarmature.c35
-rw-r--r--source/blender/editors/space_view3d/drawmesh.c26
-rw-r--r--source/blender/editors/space_view3d/drawobject.c818
-rw-r--r--source/blender/editors/space_view3d/drawvolume.c58
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c117
-rw-r--r--source/blender/editors/space_view3d/view3d_buttons.c146
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c432
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c410
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c71
-rw-r--r--source/blender/editors/space_view3d/view3d_intern.h10
-rw-r--r--source/blender/editors/space_view3d/view3d_ops.c70
-rw-r--r--source/blender/editors/space_view3d/view3d_toolbar.c32
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c286
-rw-r--r--source/blender/editors/transform/CMakeLists.txt35
-rw-r--r--source/blender/editors/transform/transform.c404
-rw-r--r--source/blender/editors/transform/transform.h120
-rw-r--r--source/blender/editors/transform/transform_constraints.c25
-rw-r--r--source/blender/editors/transform/transform_conversions.c431
-rw-r--r--source/blender/editors/transform/transform_generics.c93
-rw-r--r--source/blender/editors/transform/transform_input.c20
-rw-r--r--source/blender/editors/transform/transform_manipulator.c21
-rw-r--r--source/blender/editors/transform/transform_ndofinput.c12
-rw-r--r--source/blender/editors/transform/transform_ops.c219
-rw-r--r--source/blender/editors/transform/transform_orientations.c25
-rw-r--r--source/blender/editors/transform/transform_snap.c33
-rw-r--r--source/blender/editors/util/CMakeLists.txt34
-rw-r--r--source/blender/editors/util/ed_util.c38
-rw-r--r--source/blender/editors/util/editmode_undo.c9
-rw-r--r--source/blender/editors/util/numinput.c5
-rw-r--r--source/blender/editors/util/undo.c16
-rw-r--r--source/blender/editors/util/util_intern.h2
-rw-r--r--source/blender/editors/uvedit/CMakeLists.txt36
-rw-r--r--source/blender/editors/uvedit/uvedit_draw.c17
-rw-r--r--source/blender/editors/uvedit/uvedit_intern.h2
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c42
-rw-r--r--source/blender/editors/uvedit/uvedit_parametrizer.c92
-rw-r--r--source/blender/editors/uvedit/uvedit_parametrizer.h18
-rw-r--r--source/blender/editors/uvedit/uvedit_unwrap_ops.c162
348 files changed, 46586 insertions, 38106 deletions
diff --git a/source/blender/editors/CMakeLists.txt b/source/blender/editors/CMakeLists.txt
index 58c3f5d6088..2e2de166b6e 100644
--- a/source/blender/editors/CMakeLists.txt
+++ b/source/blender/editors/CMakeLists.txt
@@ -15,83 +15,44 @@
# 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) 2006, Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
# Contributor(s): Jacques Beaurain.
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC */*.c)
-
-SET(INC ../windowmanager
- ../editors/include ../editors/interface
- ../../../intern/guardedalloc ../../../intern/memutil
- ../blenlib ../makesdna ../makesrna ../blenkernel
- ../include ../imbuf ../render/extern/include
- ../../../intern/bsp/extern
- ../../../intern/decimation/extern ../blenloader ../python
- ../../kernel/gen_system ../readstreamglue
- ../../../intern/elbeem/extern ../bmesh
- ../../../intern/ghost ../../../intern/opennl/extern ../../../extern/glew/include ../../../intern/smoke/extern
- ../../../intern/audaspace/intern
- ../nodes
- ../gpu
- ../blenfont
- ../ikplugin
-)
-
-ADD_DEFINITIONS(-DGLEW_STATIC)
-
-IF(WITH_GAMEENGINE)
- ADD_DEFINITIONS(-DGAMEBLENDER)
-ENDIF(WITH_GAMEENGINE)
-
-IF(WITH_INTERNATIONAL)
- ADD_DEFINITIONS(-DINTERNATIONAL)
-ENDIF(WITH_INTERNATIONAL)
-
-IF(WITH_OPENEXR)
- ADD_DEFINITIONS(-DWITH_OPENEXR)
-ENDIF(WITH_OPENEXR)
-
-IF(WITH_OPENJPEG)
- ADD_DEFINITIONS(-DWITH_OPENJPEG)
-ENDIF(WITH_OPENJPEG)
-
-IF(WITH_QUICKTIME)
- SET(INC ${INC} ../quicktime ${QUICKTIME_INC})
- ADD_DEFINITIONS(-DWITH_QUICKTIME)
-ENDIF(WITH_QUICKTIME)
-
-IF(WITH_FFMPEG)
- SET(INC ${INC} ${FFMPEG_INC})
- ADD_DEFINITIONS(-DWITH_FFMPEG)
-ENDIF(WITH_FFMPEG)
-
-IF(WITH_OPENMP)
- ADD_DEFINITIONS(-DPARALLEL=1)
-ENDIF(WITH_OPENMP)
-
-IF(NOT WITH_ELBEEM)
- ADD_DEFINITIONS(-DDISABLE_ELBEEM)
-ENDIF(NOT WITH_ELBEEM)
-
-IF(WITH_PYTHON)
- SET(INC ${INC} ${PYTHON_INC})
-ELSE(WITH_PYTHON)
- ADD_DEFINITIONS(-DDISABLE_PYTHON)
-ENDIF(WITH_PYTHON)
-
-IF(WIN32)
- SET(INC ${INC} ${PTHREADS_INC})
-ENDIF(WIN32)
-
-IF(WITH_BUILDINFO)
- ADD_DEFINITIONS(-DNAN_BUILDINFO)
-ENDIF(WITH_BUILDINFO)
-
-BLENDERLIB(bf_editors "${SRC}" "${INC}")
+ADD_SUBDIRECTORY(animation)
+ADD_SUBDIRECTORY(armature)
+ADD_SUBDIRECTORY(curve)
+ADD_SUBDIRECTORY(datafiles)
+ADD_SUBDIRECTORY(gpencil)
+ADD_SUBDIRECTORY(interface)
+ADD_SUBDIRECTORY(mesh)
+ADD_SUBDIRECTORY(metaball)
+ADD_SUBDIRECTORY(object)
+ADD_SUBDIRECTORY(physics)
+ADD_SUBDIRECTORY(render)
+ADD_SUBDIRECTORY(screen)
+ADD_SUBDIRECTORY(sculpt_paint)
+ADD_SUBDIRECTORY(sound)
+ADD_SUBDIRECTORY(space_action)
+ADD_SUBDIRECTORY(space_api)
+ADD_SUBDIRECTORY(space_buttons)
+ADD_SUBDIRECTORY(space_console)
+ADD_SUBDIRECTORY(space_file)
+ADD_SUBDIRECTORY(space_graph)
+ADD_SUBDIRECTORY(space_image)
+ADD_SUBDIRECTORY(space_info)
+ADD_SUBDIRECTORY(space_logic)
+ADD_SUBDIRECTORY(space_nla)
+ADD_SUBDIRECTORY(space_node)
+ADD_SUBDIRECTORY(space_outliner)
+ADD_SUBDIRECTORY(space_script)
+ADD_SUBDIRECTORY(space_sequencer)
+ADD_SUBDIRECTORY(space_sound)
+ADD_SUBDIRECTORY(space_text)
+ADD_SUBDIRECTORY(space_time)
+ADD_SUBDIRECTORY(space_userpref)
+ADD_SUBDIRECTORY(space_view3d)
+ADD_SUBDIRECTORY(transform)
+ADD_SUBDIRECTORY(util)
+ADD_SUBDIRECTORY(uvedit)
diff --git a/source/blender/editors/animation/CMakeLists.txt b/source/blender/editors/animation/CMakeLists.txt
new file mode 100644
index 00000000000..d5eef6bbd34
--- /dev/null
+++ b/source/blender/editors/animation/CMakeLists.txt
@@ -0,0 +1,34 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../../../intern/guardedalloc
+)
+
+BLENDERLIB(bf_editor_animation "${SRC}" "${INC}")
diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c
index 3e711ccc2c1..09fbdf2d70d 100644
--- a/source/blender/editors/animation/anim_channels_defines.c
+++ b/source/blender/editors/animation/anim_channels_defines.c
@@ -25,68 +25,40 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
#include "DNA_particle_types.h"
#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
#include "DNA_mesh_types.h"
#include "DNA_material_types.h"
-#include "DNA_texture_types.h"
#include "DNA_meta_types.h"
#include "DNA_node_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
#include "DNA_world_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
-
-#include "BKE_animsys.h"
-#include "BKE_action.h"
#include "BKE_curve.h"
-#include "BKE_depsgraph.h"
-#include "BKE_fcurve.h"
#include "BKE_key.h"
-#include "BKE_material.h"
-#include "BKE_object.h"
#include "BKE_context.h"
-#include "BKE_utildefines.h"
#include "UI_interface.h"
#include "UI_interface_icons.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "ED_anim_api.h"
#include "ED_keyframing.h"
-#include "ED_keyframes_edit.h" // XXX move the select modes out of there!
-#include "ED_screen.h"
-#include "ED_space_api.h"
#include "BIF_gl.h"
@@ -620,10 +592,32 @@ static int acf_object_icon(bAnimListElem *ale)
Object *ob= base->object;
/* icon depends on object-type */
- if (ob->type == OB_ARMATURE)
- return ICON_ARMATURE_DATA;
- else
- return ICON_OBJECT_DATA;
+
+ switch (ob->type) {
+ case OB_LAMP:
+ return ICON_OUTLINER_OB_LAMP;
+ case OB_MESH:
+ return ICON_OUTLINER_OB_MESH;
+ case OB_CAMERA:
+ return ICON_OUTLINER_OB_CAMERA;
+ case OB_CURVE:
+ return ICON_OUTLINER_OB_CURVE;
+ case OB_MBALL:
+ return ICON_OUTLINER_OB_META;
+ case OB_LATTICE:
+ return ICON_OUTLINER_OB_LATTICE;
+ case OB_ARMATURE:
+ return ICON_OUTLINER_OB_ARMATURE;
+ case OB_FONT:
+ return ICON_OUTLINER_OB_FONT;
+ case OB_SURF:
+ return ICON_OUTLINER_OB_SURFACE;
+ case OB_EMPTY:
+ return ICON_OUTLINER_OB_EMPTY;
+ default:
+ return ICON_OBJECT_DATA;
+ }
+
}
/* name for object */
@@ -2362,8 +2356,8 @@ static void dummy_olddraw_gpencil ()
case SPACE_VIEW3D:
{
/* this shouldn't cause any overflow... */
- //sprintf(name, "3DView:%s", view3d_get_name(sa->spacedata.first)); // XXX missing func..
- strcpy(name, "3dView");
+ //sprintf(name, "View3D:%s", view3d_get_name(sa->spacedata.first)); // XXX missing func..
+ strcpy(name, "View3D");
special= ICON_VIEW3D;
}
break;
@@ -2864,7 +2858,7 @@ void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float
/* callback for (normal) widget settings - send notifiers */
static void achannel_setting_widget_cb(bContext *C, void *poin, void *poin2)
{
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
}
/* callback for widget settings that need flushing */
@@ -2878,7 +2872,7 @@ static void achannel_setting_flush_widget_cb(bContext *C, void *ale_npoin, void
short on = 0;
/* send notifiers before doing anything else... */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
/* verify animation context */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -2942,7 +2936,7 @@ static void achannel_setting_slider_cb(bContext *C, void *id_poin, void *fcu_poi
done= insert_keyframe_direct(ptr, prop, fcu, cfra, flag);
if (done)
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
}
}
@@ -2984,7 +2978,7 @@ static void achannel_setting_slider_shapekey_cb(bContext *C, void *key_poin, voi
done= insert_keyframe_direct(ptr, prop, fcu, cfra, flag);
if (done)
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
}
/* free the path */
@@ -3212,6 +3206,7 @@ void ANIM_channel_draw_widgets (bAnimContext *ac, bAnimListElem *ale, uiBlock *b
*/
if ((draw_sliders) && ELEM(ale->type, ANIMTYPE_FCURVE, ANIMTYPE_SHAPEKEY)) {
/* adjust offset */
+ // TODO: make slider width dynamic, so that they can be easier to use when the view is wide enough
offset += SLIDER_WIDTH;
/* need backdrop behind sliders... */
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c
index 26dd0285a2f..21bdb591df9 100644
--- a/source/blender/editors/animation/anim_channels_edit.c
+++ b/source/blender/editors/animation/anim_channels_edit.c
@@ -25,63 +25,28 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-#include <float.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
-#include "BLI_math.h"
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_meta_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
-#include "DNA_world_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
-#include "BKE_animsys.h"
#include "BKE_action.h"
-#include "BKE_depsgraph.h"
#include "BKE_fcurve.h"
-#include "BKE_key.h"
-#include "BKE_material.h"
-#include "BKE_object.h"
#include "BKE_context.h"
#include "BKE_global.h"
-#include "BKE_utildefines.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
#include "ED_anim_api.h"
#include "ED_keyframes_edit.h" // XXX move the select modes out of there!
#include "ED_screen.h"
-#include "ED_space_api.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -877,7 +842,7 @@ static int animchannels_rearrange_exec(bContext *C, wmOperator *op)
rearrange_action_channels(&ac, mode);
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -974,7 +939,7 @@ static int animchannels_delete_exec(bContext *C, wmOperator *op)
/* do groups only first (unless in Drivers mode, where there are none) */
if (ac.datatype != ANIMCONT_DRIVERS) {
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CHANNELS | ANIMFILTER_FOREDIT);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CHANNELS | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* delete selected groups and their associated channels */
@@ -1013,7 +978,7 @@ static int animchannels_delete_exec(bContext *C, wmOperator *op)
/* now do F-Curves */
if (ac.datatype != ANIMCONT_GPENCIL) {
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* delete selected F-Curves */
@@ -1033,7 +998,7 @@ static int animchannels_delete_exec(bContext *C, wmOperator *op)
}
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1073,7 +1038,7 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *op)
ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype);
/* hide all channels not selected */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_UNSEL);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1089,7 +1054,7 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* make all the selected channels visible */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1110,7 +1075,7 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *op)
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1148,11 +1113,11 @@ static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
/* get list of all channels that selection may need to be flushed to */
- filter= ANIMFILTER_CHANNELS;
+ filter= (ANIMFILTER_CHANNELS | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype);
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* See if we should be making showing all selected or hiding */
@@ -1183,7 +1148,7 @@ static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *op)
BLI_freelistN(&all_data);
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1250,7 +1215,8 @@ static void setflag_anim_channels (bAnimContext *ac, short setting, short mode,
}
/* filter data that we're working on */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS);
+ // XXX: noduplis enabled so that results don't cancel, but will be problematic for some channels where only type differs
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS | ANIMFILTER_NODUPLIS);
if (onlysel) filter |= ANIMFILTER_SEL;
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
@@ -1313,7 +1279,7 @@ static int animchannels_setflag_exec(bContext *C, wmOperator *op)
setflag_anim_channels(&ac, setting, mode, 1, flush);
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1447,7 +1413,7 @@ static int animchannels_expand_exec (bContext *C, wmOperator *op)
setflag_anim_channels(&ac, ACHANNEL_SETTING_EXPAND, ACHANNEL_SETFLAG_ADD, onlysel, 0);
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1489,7 +1455,7 @@ static int animchannels_collapse_exec (bContext *C, wmOperator *op)
setflag_anim_channels(&ac, ACHANNEL_SETTING_EXPAND, ACHANNEL_SETFLAG_CLEAR, onlysel, 0);
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1529,7 +1495,7 @@ static int animchannels_deselectall_exec(bContext *C, wmOperator *op)
ANIM_deselect_anim_channels(&ac, ac.data, ac.datatype, 1, ACHANNEL_SETFLAG_ADD);
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -1631,7 +1597,7 @@ static int animchannels_borderselect_exec(bContext *C, wmOperator *op)
borderselect_anim_channels(&ac, &rect, selectmode);
/* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -1710,7 +1676,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
if (adt) adt->flag |= ADT_UI_SELECTED;
}
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
break;
case ANIMTYPE_OBJECT:
@@ -1749,7 +1715,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
if ((adt) && (adt->flag & ADT_UI_SELECTED))
adt->flag |= ADT_UI_ACTIVE;
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
break;
@@ -1785,7 +1751,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
ale->adt->flag |= ADT_UI_ACTIVE;
}
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
break;
@@ -1820,7 +1786,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
if (agrp->flag & AGRP_SELECTED)
ANIM_set_active_channel(ac, ac->data, ac->datatype, filter, agrp, ANIMTYPE_GROUP);
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
break;
case ANIMTYPE_FCURVE:
@@ -1842,7 +1808,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
if (fcu->flag & FCURVE_SELECTED)
ANIM_set_active_channel(ac, ac->data, ac->datatype, filter, fcu, ANIMTYPE_FCURVE);
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
break;
case ANIMTYPE_SHAPEKEY:
@@ -1860,7 +1826,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
kb->flag |= KEYBLOCK_SEL;
}
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
break;
case ANIMTYPE_GPDATABLOCK:
@@ -1870,7 +1836,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
/* toggle expand */
gpd->flag ^= GP_DATA_EXPAND;
- notifierFlags |= ND_ANIMCHAN_EDIT;
+ notifierFlags |= (ND_ANIMCHAN|NA_EDITED);
}
break;
case ANIMTYPE_GPLAYER:
@@ -2039,6 +2005,7 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf)
/* delete */
WM_keymap_add_item(keymap, "ANIM_OT_channels_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "ANIM_OT_channels_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "ANIM_OT_channels_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
/* settings */
WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c
index 3f461889485..5312e97c604 100644
--- a/source/blender/editors/animation/anim_deps.c
+++ b/source/blender/editors/animation/anim_deps.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,14 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include <stdlib.h>
#include <string.h>
-#include <math.h>
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_object_types.h"
#include "DNA_node_types.h"
@@ -47,21 +44,13 @@
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_global.h"
-#include "BKE_main.h"
#include "BKE_node.h"
-#include "BKE_scene.h"
#include "BKE_sequencer.h"
-#include "BKE_screen.h"
#include "BKE_utildefines.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "ED_anim_api.h"
-#include "ED_screen.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
/* **************************** depsgraph tagging ******************************** */
@@ -101,7 +90,7 @@ void ANIM_list_elem_update(Scene *scene, bAnimListElem *ale)
else {
/* in other case we do standard depsgaph update, ideally
we'd be calling property update functions here too ... */
- DAG_id_flush_update(id, OB_RECALC); // XXX or do we want something more restrictive?
+ DAG_id_flush_update(id, OB_RECALC_ALL); // XXX or do we want something more restrictive?
}
}
@@ -117,7 +106,7 @@ void ANIM_id_update(Scene *scene, ID *id)
adt->recalc |= ADT_RECALC_ANIM;
/* set recalc flags */
- DAG_id_flush_update(id, OB_RECALC); // XXX or do we want something more restrictive?
+ DAG_id_flush_update(id, OB_RECALC_ALL); // XXX or do we want something more restrictive?
}
}
diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c
index 9d723c1b8f5..f5f50e10bcb 100644
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@ -25,47 +25,22 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
-
-#include <string.h>
-#include <stdio.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "BKE_animsys.h"
-#include "BKE_action.h"
#include "BKE_context.h"
-#include "BKE_global.h"
-#include "BKE_fcurve.h"
-#include "BKE_main.h"
#include "BKE_nla.h"
#include "BKE_object.h"
-#include "BKE_screen.h"
-#include "BKE_utildefines.h"
#include "ED_anim_api.h"
#include "ED_keyframes_edit.h"
-#include "ED_types.h"
-#include "ED_util.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
#include "RNA_access.h"
#include "BIF_gl.h"
-#include "BIF_glutil.h"
#include "UI_interface.h"
#include "UI_resources.h"
@@ -257,20 +232,22 @@ void ANIM_draw_cfra (const bContext *C, View2D *v2d, short flag)
/* Draw dark green line if slow-parenting/time-offset is enabled */
if (flag & DRAWCFRA_SHOW_TIMEOFS) {
Object *ob= (scene->basact) ? (scene->basact->object) : 0;
-
- // XXX ob->ipoflag is depreceated!
- if ((ob) && (ob->ipoflag & OB_OFFS_OB) && (give_timeoffset(ob)!=0.0f)) {
- vec[0]-= give_timeoffset(ob); /* could avoid calling twice */
+ if(ob) {
+ float timeoffset= give_timeoffset(ob);
+ // XXX ob->ipoflag is depreceated!
+ if ((ob->ipoflag & OB_OFFS_OB) && (timeoffset != 0.0f)) {
+ vec[0]-= timeoffset; /* could avoid calling twice */
- UI_ThemeColorShade(TH_CFRAME, -30);
+ UI_ThemeColorShade(TH_CFRAME, -30);
- glBegin(GL_LINE_STRIP);
- /*vec[1]= v2d->cur.ymax;*/ // this is set already. this line is only included
- glVertex2fv(vec);
+ glBegin(GL_LINE_STRIP);
+ /*vec[1]= v2d->cur.ymax;*/ // this is set already. this line is only included
+ glVertex2fv(vec);
- vec[1]= v2d->cur.ymin;
- glVertex2fv(vec);
- glEnd();
+ vec[1]= v2d->cur.ymin;
+ glVertex2fv(vec);
+ glEnd();
+ }
}
}
@@ -332,11 +309,11 @@ AnimData *ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale)
/* ------------------- */
/* helper function for ANIM_nla_mapping_apply_fcurve() -> "restore", i.e. mapping points back to action-time */
-static short bezt_nlamapping_restore(BeztEditData *bed, BezTriple *bezt)
+static short bezt_nlamapping_restore(KeyframeEditData *ked, BezTriple *bezt)
{
/* AnimData block providing scaling is stored in 'data', only_keys option is stored in i1 */
- AnimData *adt= (AnimData *)bed->data;
- short only_keys= (short)bed->i1;
+ AnimData *adt= (AnimData *)ked->data;
+ short only_keys= (short)ked->i1;
/* adjust BezTriple handles only if allowed to */
if (only_keys == 0) {
@@ -350,11 +327,11 @@ static short bezt_nlamapping_restore(BeztEditData *bed, BezTriple *bezt)
}
/* helper function for ANIM_nla_mapping_apply_fcurve() -> "apply", i.e. mapping points to NLA-mapped global time */
-static short bezt_nlamapping_apply(BeztEditData *bed, BezTriple *bezt)
+static short bezt_nlamapping_apply(KeyframeEditData *ked, BezTriple *bezt)
{
/* AnimData block providing scaling is stored in 'data', only_keys option is stored in i1 */
- AnimData *adt= (AnimData*)bed->data;
- short only_keys= (short)bed->i1;
+ AnimData *adt= (AnimData*)ked->data;
+ short only_keys= (short)ked->i1;
/* adjust BezTriple handles only if allowed to */
if (only_keys == 0) {
@@ -374,16 +351,16 @@ static short bezt_nlamapping_apply(BeztEditData *bed, BezTriple *bezt)
*/
void ANIM_nla_mapping_apply_fcurve (AnimData *adt, FCurve *fcu, short restore, short only_keys)
{
- BeztEditData bed;
- BeztEditFunc map_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc map_cb;
/* init edit data
* - AnimData is stored in 'data'
* - only_keys is stored in 'i1'
*/
- memset(&bed, 0, sizeof(BeztEditData));
- bed.data= (void *)adt;
- bed.i1= (int)only_keys;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.data= (void *)adt;
+ ked.i1= (int)only_keys;
/* get editing callback */
if (restore)
@@ -392,7 +369,7 @@ void ANIM_nla_mapping_apply_fcurve (AnimData *adt, FCurve *fcu, short restore, s
map_cb= bezt_nlamapping_apply;
/* apply to F-Curve */
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, map_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, fcu, NULL, map_cb, NULL);
}
/* *************************************************** */
@@ -434,12 +411,12 @@ float ANIM_unit_mapping_get_factor (Scene *scene, ID *id, FCurve *fcu, short res
/* ----------------------- */
/* helper function for ANIM_unit_mapping_apply_fcurve -> mapping callback for unit mapping */
-static short bezt_unit_mapping_apply (BeztEditData *bed, BezTriple *bezt)
+static short bezt_unit_mapping_apply (KeyframeEditData *ked, BezTriple *bezt)
{
/* mapping factor is stored in f1, flags are stored in i1 */
- short only_keys= (bed->i1 & ANIM_UNITCONV_ONLYKEYS);
- short sel_vs= (bed->i1 & ANIM_UNITCONV_SELVERTS);
- float fac= bed->f1;
+ short only_keys= (ked->i1 & ANIM_UNITCONV_ONLYKEYS);
+ short sel_vs= (ked->i1 & ANIM_UNITCONV_SELVERTS);
+ float fac= ked->f1;
/* adjust BezTriple handles only if allowed to */
if (only_keys == 0) {
@@ -458,8 +435,8 @@ static short bezt_unit_mapping_apply (BeztEditData *bed, BezTriple *bezt)
/* Apply/Unapply units conversions to keyframes */
void ANIM_unit_mapping_apply_fcurve (Scene *scene, ID *id, FCurve *fcu, short flag)
{
- BeztEditData bed;
- BeztEditFunc sel_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc sel_cb;
float fac;
/* calculate mapping factor, and abort if nothing to change */
@@ -471,9 +448,9 @@ void ANIM_unit_mapping_apply_fcurve (Scene *scene, ID *id, FCurve *fcu, short fl
* - mapping factor is stored in f1
* - flags are stored in 'i1'
*/
- memset(&bed, 0, sizeof(BeztEditData));
- bed.f1= (float)fac;
- bed.i1= (int)flag;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.f1= (float)fac;
+ ked.i1= (int)flag;
/* only selected? */
if (flag & ANIM_UNITCONV_ONLYSEL)
@@ -482,7 +459,7 @@ void ANIM_unit_mapping_apply_fcurve (Scene *scene, ID *id, FCurve *fcu, short fl
sel_cb= NULL;
/* apply to F-Curve */
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, sel_cb, bezt_unit_mapping_apply, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, fcu, sel_cb, bezt_unit_mapping_apply, NULL);
// FIXME: loop here for samples should be generalised
// TODO: only sel?
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c
index 2bd4ab34fa5..a9c9830f07f 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -46,18 +46,11 @@
*/
#include <string.h>
-#include <stdio.h>
-#include "DNA_listBase.h"
-#include "DNA_ID.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_group_types.h"
#include "DNA_lamp_types.h"
#include "DNA_lattice_types.h"
#include "DNA_key_types.h"
@@ -65,19 +58,17 @@
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
#include "DNA_node_types.h"
-#include "DNA_object_types.h"
#include "DNA_particle_types.h"
#include "DNA_space_types.h"
#include "DNA_sequence_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_windowmanager_types.h"
#include "DNA_world_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_ghash.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
@@ -86,26 +77,12 @@
#include "BKE_global.h"
#include "BKE_group.h"
#include "BKE_key.h"
-#include "BKE_object.h"
#include "BKE_material.h"
#include "BKE_node.h"
#include "BKE_sequencer.h"
-#include "BKE_screen.h"
#include "BKE_utildefines.h"
#include "ED_anim_api.h"
-#include "ED_types.h"
-#include "ED_util.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
-
-#include "BIF_gl.h"
-#include "BIF_glutil.h"
-
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
/* ************************************************************ */
/* Blender Context <-> Animation Context mapping */
@@ -116,12 +93,12 @@
/* Note: there's a similar function in key.c (ob_get_key) */
Key *actedit_get_shapekeys (bAnimContext *ac, SpaceAction *saction)
{
- Scene *scene= ac->scene;
- Object *ob;
- Key *key;
+ Scene *scene= ac->scene;
+ Object *ob;
+ Key *key;
- ob = OBACT;
- if (ob == NULL)
+ ob = OBACT;
+ if (ob == NULL)
return NULL;
/* XXX pinning is not available in 'ShapeKey' mode... */
@@ -151,7 +128,7 @@ Key *actedit_get_shapekeys (bAnimContext *ac, SpaceAction *saction)
return key;
}
- return NULL;
+ return NULL;
}
/* Get data being edited in Action Editor (depending on current 'mode') */
@@ -820,7 +797,7 @@ bAnimListElem *make_new_animlistelem (void *data, short datatype, void *owner, s
/* ----------------------------------------- */
/* NOTE: when this function returns true, the F-Curve is to be skipped */
-static int skip_fcurve_selected_data(FCurve *fcu, ID *owner_id, int filter_mode)
+static int skip_fcurve_selected_data(bDopeSheet *ads, FCurve *fcu, ID *owner_id, int filter_mode)
{
if (GS(owner_id->name) == ID_OB) {
Object *ob= (Object *)owner_id;
@@ -837,9 +814,8 @@ static int skip_fcurve_selected_data(FCurve *fcu, ID *owner_id, int filter_mode)
/* check whether to continue or skip */
if ((pchan) && (pchan->bone)) {
- /* if only visible channels, skip if bone not visible */
- // TODO: should we just do this always?
- if (filter_mode & ANIMFILTER_VISIBLE) {
+ /* if only visible channels, skip if bone not visible unless user wants channels from hidden data too */
+ if ((filter_mode & ANIMFILTER_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) {
bArmature *arm= (bArmature *)ob->data;
if ((arm->layer & pchan->bone->layer) == 0)
@@ -910,7 +886,7 @@ static FCurve *animdata_filter_fcurve_next (bDopeSheet *ads, FCurve *first, bAct
* - this will also affect things like Drivers, and also works for Bone Constraints
*/
if ( ((ads) && (ads->filterflag & ADS_FILTER_ONLYSEL)) && (owner_id) ) {
- if (skip_fcurve_selected_data(fcu, owner_id, filter_mode))
+ if (skip_fcurve_selected_data(ads, fcu, owner_id, filter_mode))
continue;
}
@@ -969,6 +945,13 @@ static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeS
FCurve *lastchan=NULL;
int items = 0;
+ /* don't include anything from this action if it is linked in from another file,
+ * and we're getting stuff for editing...
+ */
+ // TODO: need a way of tagging other channels that may also be affected...
+ if ((filter_mode & ANIMFILTER_FOREDIT) && (act->id.lib))
+ return 0;
+
/* loop over groups */
// TODO: in future, should we expect to need nested groups?
for (agrp= act->groups.first; agrp; agrp= agrp->next) {
@@ -1731,7 +1714,7 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data,
/* add NLA tracks - only if expanded or so */
if (!(filter_mode & ANIMFILTER_VISIBLE) || FILTER_SKE_OBJD(key) || (filter_mode & ANIMFILTER_CURVESONLY))
- items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, ob, ANIMTYPE_OBJECT, (ID *)ob);
+ items += animdata_filter_nla(ac, anim_data, ads, adt, filter_mode, ob, ANIMTYPE_OBJECT, (ID *)key);
},
{ /* drivers */
/* include shapekey-expand widget? */
@@ -2128,11 +2111,14 @@ static int animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDo
/* firstly, check if object can be included, by the following factors:
* - if only visible, must check for layer and also viewport visibility
+ * --> while tools may demand only visible, user setting takes priority
+ * as user option controls whether sets of channels get included while
+ * tool-flag takes into account collapsed/open channels too
* - if only selected, must check if object is selected
* - there must be animation data to edit
*/
// TODO: if cache is implemented, just check name here, and then
- if (filter_mode & ANIMFILTER_VISIBLE) {
+ if ((filter_mode & ANIMFILTER_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) {
/* layer visibility - we check both object and base, since these may not be in sync yet */
if ((sce->lay & (ob->lay|base->lay))==0) continue;
@@ -2536,6 +2522,65 @@ static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim
return 1;
}
+/* ----------- Cleanup API --------------- */
+
+/* Remove entries with invalid types in animation channel list */
+static int animdata_filter_remove_invalid (ListBase *anim_data)
+{
+ bAnimListElem *ale, *next;
+ int items = 0;
+
+ /* only keep entries with valid types */
+ for (ale= anim_data->first; ale; ale= next) {
+ next= ale->next;
+
+ if (ale->type == ANIMTYPE_NONE)
+ BLI_freelinkN(anim_data, ale);
+ else
+ items++;
+ }
+
+ return items;
+}
+
+/* Remove duplicate entries in animation channel list */
+static int animdata_filter_remove_duplis (ListBase *anim_data)
+{
+ bAnimListElem *ale, *next;
+ GHash *gh;
+ int items = 0;
+
+ /* build new hashtable to efficiently store and retrieve which entries have been
+ * encountered already while searching
+ */
+ gh= BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "animdata_filter_duplis_remove gh");
+
+ /* loop through items, removing them from the list if a similar item occurs already */
+ for (ale = anim_data->first; ale; ale = next) {
+ next = ale->next;
+
+ /* check if hash has any record of an entry like this
+ * - just use ale->data for now, though it would be nicer to involve
+ * ale->type in combination too to capture corner cases (where same data performs differently)
+ */
+ if (BLI_ghash_haskey(gh, ale->data) == 0) {
+ /* this entry is 'unique' and can be kept */
+ BLI_ghash_insert(gh, ale->data, NULL);
+ items++;
+ }
+ else {
+ /* this entry isn't needed anymore */
+ BLI_freelinkN(anim_data, ale);
+ }
+ }
+
+ /* free the hash... */
+ BLI_ghash_free(gh, NULL, NULL);
+
+ /* return the number of items still in the list */
+ return items;
+}
+
/* ----------- Public API --------------- */
/* This function filters the active data source to leave only animation channels suitable for
@@ -2551,7 +2596,6 @@ int ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode
/* only filter data if there's somewhere to put it */
if (data && anim_data) {
- bAnimListElem *ale, *next;
Object *obact= (ac) ? ac->obact : NULL;
/* firstly filter the data */
@@ -2596,16 +2640,12 @@ int ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode
break;
}
- /* remove any weedy entries */
- // XXX this is weedy code!
- for (ale= anim_data->first; ale; ale= next) {
- next= ale->next;
-
- if (ale->type == ANIMTYPE_NONE) {
- items--;
- BLI_freelinkN(anim_data, ale);
- }
- }
+ /* remove any 'weedy' entries */
+ items = animdata_filter_remove_invalid(anim_data);
+
+ /* remove duplicates (if required) */
+ if (filter_mode & ANIMFILTER_NODUPLIS)
+ items = animdata_filter_remove_duplis(anim_data);
}
/* return the number of items in the list */
diff --git a/source/blender/editors/animation/anim_intern.h b/source/blender/editors/animation/anim_intern.h
index 5602bff77ce..274d33e4833 100644
--- a/source/blender/editors/animation/anim_intern.h
+++ b/source/blender/editors/animation/anim_intern.h
@@ -33,12 +33,6 @@
/* list of builtin KeyingSets (defined in keyingsets.c) */
extern ListBase builtin_keyingsets;
-/* for builtin keyingsets - context poll */
-short keyingset_context_ok_poll(bContext *C, KeyingSet *ks);
-
-/* Main KeyingSet operations API call */
-short modifykey_get_context_data (bContext *C, ListBase *dsources, KeyingSet *ks);
-
/* Operator Define Prototypes ------------------- */
/* Main Keyframe Management operators:
@@ -71,6 +65,9 @@ void ANIM_OT_keying_set_remove(struct wmOperatorType *ot);
void ANIM_OT_keying_set_path_add(struct wmOperatorType *ot);
void ANIM_OT_keying_set_path_remove(struct wmOperatorType *ot);
+/* KeyingSet general operators */
+void ANIM_OT_keying_set_active_set(struct wmOperatorType *ot);
+
/* .......... */
/* Driver management operators for UI buttons (RMB menu) */
diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c
index 0f29c274535..b71e9ac3507 100644
--- a/source/blender/editors/animation/anim_ipo_utils.c
+++ b/source/blender/editors/animation/anim_ipo_utils.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -33,31 +33,16 @@
*/
-#include <math.h>
-#include <stdio.h>
-#include <string.h>
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "DNA_anim_types.h"
-#include "DNA_key_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_view3d_types.h"
-#include "BKE_animsys.h"
-#include "BKE_key.h"
#include "BKE_utildefines.h"
-#include "UI_resources.h"
-#include "ED_anim_api.h"
-
#include "RNA_access.h"
-#include "RNA_types.h"
/* ----------------------- Getter functions ----------------------- */
diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c
index 2888a95f704..65c67691560 100644
--- a/source/blender/editors/animation/anim_markers.c
+++ b/source/blender/editors/animation/anim_markers.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,18 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include <stdlib.h>
#include <math.h>
#include "MEM_guardedalloc.h"
-#include "DNA_action_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_view2d_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "DNA_object_types.h"
#include "RNA_access.h"
@@ -47,9 +40,7 @@
#include "BLI_blenlib.h"
#include "BKE_context.h"
-#include "BKE_global.h"
#include "BKE_fcurve.h"
-#include "BKE_utildefines.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_scene.h"
@@ -67,10 +58,10 @@
#include "ED_markers.h"
#include "ED_screen.h"
-#include "ED_types.h"
#include "ED_util.h"
#include "ED_numinput.h"
#include "ED_object.h"
+#include "ED_types.h"
/* ************* Marker API **************** */
@@ -404,7 +395,7 @@ functions:
exit() cleanup, send notifier
- cancel() to escpae from modal
+ cancel() to escpae from modal
callbacks:
@@ -1078,7 +1069,7 @@ static void MARKER_OT_delete(wmOperatorType *ot)
static int ed_marker_make_links_scene_exec(bContext *C, wmOperator *op)
{
ListBase *markers= context_get_markers(C);
- Scene *scene_to= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "type"));
+ Scene *scene_to= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "scene"));
TimeMarker *marker, *marker_new;
if(scene_to==NULL) {
@@ -1119,8 +1110,9 @@ static void MARKER_OT_make_links_scene(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, 0, "Type", "");
+ prop= RNA_def_enum(ot->srna, "scene", DummyRNA_NULL_items, 0, "Scene", "");
RNA_def_enum_funcs(prop, RNA_scene_itemf);
+ ot->prop= prop;
}
@@ -1209,6 +1201,7 @@ void ED_marker_keymap(wmKeyConfig *keyconf)
WM_keymap_verify_item(keymap, "MARKER_OT_select_all", AKEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "MARKER_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "MARKER_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "MARKER_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MARKER_OT_move", GKEY, KM_PRESS, 0, 0);
#ifdef DURIAN_CAMERA_SWITCH
diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c
index 4e310e27c5f..11ba3cfffed 100644
--- a/source/blender/editors/animation/anim_ops.c
+++ b/source/blender/editors/animation/anim_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,22 +29,12 @@
#include <stdlib.h>
#include <math.h>
-#include "MEM_guardedalloc.h"
-
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
-
-#include "BLI_blenlib.h"
#include "BKE_context.h"
-#include "BKE_utildefines.h"
#include "BKE_sound.h"
-#include "UI_interface.h"
#include "UI_view2d.h"
#include "RNA_access.h"
@@ -53,9 +43,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_anim_api.h"
-#include "ED_keyframing.h"
-#include "ED_markers.h"
#include "ED_screen.h"
#include "anim_intern.h"
@@ -82,6 +69,7 @@ static void change_frame_apply(bContext *C, wmOperator *op)
/* set the new frame number */
CFRA= RNA_int_get(op->ptr, "frame");
FRAMENUMBER_MIN_CLAMP(CFRA);
+ SUBFRA = 0.f;
/* do updates */
sound_seek_scene(C);
@@ -374,6 +362,8 @@ void ED_operatortypes_anim(void)
WM_operatortype_append(ANIM_OT_keying_set_remove);
WM_operatortype_append(ANIM_OT_keying_set_path_add);
WM_operatortype_append(ANIM_OT_keying_set_path_remove);
+
+ WM_operatortype_append(ANIM_OT_keying_set_active_set);
}
void ED_keymap_anim(wmKeyConfig *keyconf)
diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c
index ababa25917a..3fc228e1c15 100644
--- a/source/blender/editors/animation/drivers.c
+++ b/source/blender/editors/animation/drivers.c
@@ -27,45 +27,18 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include <stdio.h>
-#include <stddef.h>
#include <string.h>
-#include <math.h>
-#include <float.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
-#include "BLI_math.h"
-#include "BLI_dynstr.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_object_types.h"
-#include "DNA_material_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BKE_animsys.h"
-#include "BKE_action.h"
-#include "BKE_constraint.h"
#include "BKE_depsgraph.h"
#include "BKE_fcurve.h"
-#include "BKE_utildefines.h"
#include "BKE_context.h"
-#include "BKE_report.h"
-#include "BKE_key.h"
-#include "BKE_material.h"
-
-#include "ED_anim_api.h"
-#include "ED_keyframing.h"
-#include "ED_keyframes_edit.h"
-#include "ED_screen.h"
-#include "ED_util.h"
#include "UI_interface.h"
@@ -74,7 +47,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_types.h"
/* ************************************************** */
/* Animation Data Validation */
@@ -225,27 +197,42 @@ short ANIM_remove_driver (struct ID *id, const char rna_path[], int array_index,
{
AnimData *adt;
FCurve *fcu;
+ int success= 0;
/* get F-Curve
* Note: here is one of the places where we don't want new F-Curve + Driver added!
* so 'add' var must be 0
*/
/* we don't check the validity of the path here yet, but it should be ok... */
- fcu= verify_driver_fcurve(id, rna_path, array_index, 0);
adt= BKE_animdata_from_id(id);
- /* only continue if we have an driver to remove */
- if (adt && fcu) {
- /* remove F-Curve from driver stack, then free it */
- BLI_remlink(&adt->drivers, fcu);
- free_fcurve(fcu);
-
- /* done successfully */
- return 1;
+ if(adt) {
+ if(array_index == -1) {
+ FCurve *fcu_iter= adt->drivers.first;
+ while((fcu= iter_step_fcurve(fcu_iter, rna_path))) {
+ /* store the next fcurve for looping */
+ fcu_iter= fcu->next;
+
+ /* remove F-Curve from driver stack, then free it */
+ BLI_remlink(&adt->drivers, fcu);
+ free_fcurve(fcu);
+
+ /* done successfully */
+ success |= 1;
+ }
+ }
+ else {
+ fcu= verify_driver_fcurve(id, rna_path, array_index, 0);
+ if(fcu) {
+ BLI_remlink(&adt->drivers, fcu);
+ free_fcurve(fcu);
+
+ success = 1;
+ }
+ }
}
-
- /* failed */
- return 0;
+
+ return success;
}
/* ************************************************** */
@@ -436,33 +423,21 @@ static int remove_driver_button_exec (bContext *C, wmOperator *op)
PropertyRNA *prop= NULL;
char *path;
short success= 0;
- int a, index, length, all= RNA_boolean_get(op->ptr, "all");
+ int index, all= RNA_boolean_get(op->ptr, "all");
/* try to find driver using property retrieved from UI */
memset(&ptr, 0, sizeof(PointerRNA));
uiAnimContextProperty(C, &ptr, &prop, &index);
+
+ if (all)
+ index= -1;
if (ptr.data && prop) {
path= RNA_path_from_ID_to_property(&ptr, prop);
-
- if (path) {
- if (all) {
- length= RNA_property_array_length(&ptr, prop);
-
- if(length) index= 0;
- else length= 1;
- }
- else
- length= 1;
-
- for (a=0; a<length; a++)
- success+= ANIM_remove_driver(ptr.id.data, path, index+a, 0);
-
- MEM_freeN(path);
- }
+ success= ANIM_remove_driver(ptr.id.data, path, index, 0);
+ MEM_freeN(path);
}
-
if (success) {
/* send updates */
DAG_ids_flush_update(0);
diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c
index 651ce34a2f2..cd6714ec51f 100644
--- a/source/blender/editors/animation/fmodifier_ui.c
+++ b/source/blender/editors/animation/fmodifier_ui.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,66 +30,39 @@
* This file defines the (C-Coded) templates + editing callbacks needed
* by the interface stuff or F-Modifiers, as used by F-Curves in the Graph Editor,
* and NLA-Strips in the NLA Editor.
+ *
+ * Copy/Paste Buffer for F-Modifiers:
+ * For now, this is also defined in this file so that it can be shared between the
*/
#include <string.h>
-#include <stdio.h>
-#include <math.h>
-#include <float.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
-#include "BLI_math.h"
#include "BLI_blenlib.h"
-#include "BLI_editVert.h"
-#include "BLI_rand.h"
-#include "BKE_animsys.h"
-#include "BKE_action.h"
#include "BKE_context.h"
-#include "BKE_curve.h"
-#include "BKE_customdata.h"
-#include "BKE_depsgraph.h"
#include "BKE_fcurve.h"
-#include "BKE_object.h"
-#include "BKE_global.h"
-#include "BKE_nla.h"
-#include "BKE_scene.h"
-#include "BKE_screen.h"
-#include "BKE_utildefines.h"
-
-#include "BIF_gl.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
-#include "ED_anim_api.h"
-#include "ED_keyframing.h"
-#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
+
+/* ********************************************** */
+/* UI STUFF */
// XXX! --------------------------------
/* temporary definition for limits of float number buttons (FLT_MAX tends to infinity with old system) */
#define UI_FLT_MAX 10000.0f
-/* ********************************************** */
-
#define B_REDR 1
#define B_FMODIFIER_REDRAW 20
@@ -122,7 +95,7 @@ static void delete_fmodifier_cb (bContext *C, void *fmods_v, void *fcm_v)
/* send notifiers */
// XXX for now, this is the only way to get updates in all the right places... but would be nice to have a special one in this case
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
/* --------------- */
@@ -252,14 +225,14 @@ static void draw_modifier__fn_generator(uiLayout *layout, ID *id, FModifier *fcm
/* add the settings */
col= uiLayoutColumn(layout, 1);
- uiItemR(col, "", 0, &ptr, "function_type", 0);
- uiItemR(col, NULL, 0, &ptr, "additive", UI_ITEM_R_TOGGLE);
+ uiItemR(col, &ptr, "function_type", 0, "", 0);
+ uiItemR(col, &ptr, "additive", UI_ITEM_R_TOGGLE, NULL, 0);
col= uiLayoutColumn(layout, 0); // no grouping for now
- uiItemR(col, NULL, 0, &ptr, "amplitude", 0);
- uiItemR(col, NULL, 0, &ptr, "phase_multiplier", 0);
- uiItemR(col, NULL, 0, &ptr, "phase_offset", 0);
- uiItemR(col, NULL, 0, &ptr, "value_offset", 0);
+ uiItemR(col, &ptr, "amplitude", 0, NULL, 0);
+ uiItemR(col, &ptr, "phase_multiplier", 0, NULL, 0);
+ uiItemR(col, &ptr, "phase_offset", 0, NULL, 0);
+ uiItemR(col, &ptr, "value_offset", 0, NULL, 0);
}
/* --------------- */
@@ -280,15 +253,15 @@ static void draw_modifier__cycles(uiLayout *layout, ID *id, FModifier *fcm, shor
/* before range */
col= uiLayoutColumn(split, 1);
- uiItemL(col, "Before:", 0);
- uiItemR(col, "", 0, &ptr, "before_mode", 0);
- uiItemR(col, NULL, 0, &ptr, "before_cycles", 0);
+ uiItemL(col, "Before:", 0);
+ uiItemR(col, &ptr, "before_mode", 0, "", 0);
+ uiItemR(col, &ptr, "before_cycles", 0, NULL, 0);
/* after range */
col= uiLayoutColumn(split, 1);
- uiItemL(col, "After:", 0);
- uiItemR(col, "", 0, &ptr, "after_mode", 0);
- uiItemR(col, NULL, 0, &ptr, "after_cycles", 0);
+ uiItemL(col, "After:", 0);
+ uiItemR(col, &ptr, "after_mode", 0, "", 0);
+ uiItemR(col, &ptr, "after_cycles", 0, NULL, 0);
}
/* --------------- */
@@ -303,20 +276,20 @@ static void draw_modifier__noise(uiLayout *layout, ID *id, FModifier *fcm, short
RNA_pointer_create(id, &RNA_FModifierNoise, fcm, &ptr);
/* blending mode */
- uiItemR(layout, NULL, 0, &ptr, "modification", 0);
+ uiItemR(layout, &ptr, "modification", 0, NULL, 0);
/* split into 2 columns */
split= uiLayoutSplit(layout, 0.5f, 0);
/* col 1 */
col= uiLayoutColumn(split, 0);
- uiItemR(col, NULL, 0, &ptr, "size", 0);
- uiItemR(col, NULL, 0, &ptr, "strength", 0);
+ uiItemR(col, &ptr, "size", 0, NULL, 0);
+ uiItemR(col, &ptr, "strength", 0, NULL, 0);
/* col 2 */
col= uiLayoutColumn(split, 0);
- uiItemR(col, NULL, 0, &ptr, "phase", 0);
- uiItemR(col, NULL, 0, &ptr, "depth", 0);
+ uiItemR(col, &ptr, "phase", 0, NULL, 0);
+ uiItemR(col, &ptr, "depth", 0, NULL, 0);
}
/* --------------- */
@@ -497,11 +470,11 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh
/* general settings */
col= uiLayoutColumn(layout, 1);
uiItemL(col, "Envelope:", 0);
- uiItemR(col, NULL, 0, &ptr, "reference_value", 0);
+ uiItemR(col, &ptr, "reference_value", 0, NULL, 0);
row= uiLayoutRow(col, 1);
- uiItemR(row, "Min", 0, &ptr, "default_minimum", 0);
- uiItemR(row, "Max", 0, &ptr, "default_maximum", 0);
+ uiItemR(row, &ptr, "default_minimum", 0, "Min", 0);
+ uiItemR(row, &ptr, "default_maximum", 0, "Max", 0);
/* control points header */
// TODO: move this control-point control stuff to using the new special widgets for lists
@@ -553,16 +526,16 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor
/* x-minimum */
col= uiLayoutColumn(split, 1);
- uiItemR(col, NULL, 0, &ptr, "use_minimum_x", 0);
- uiItemR(col, NULL, 0, &ptr, "minimum_x", 0);
+ uiItemR(col, &ptr, "use_minimum_x", 0, NULL, 0);
+ uiItemR(col, &ptr, "minimum_x", 0, NULL, 0);
/* y-minimum*/
col= uiLayoutColumn(split, 1);
- uiItemR(col, NULL, 0, &ptr, "use_minimum_y", 0);
- uiItemR(col, NULL, 0, &ptr, "minimum_y", 0);
+ uiItemR(col, &ptr, "use_minimum_y", 0, NULL, 0);
+ uiItemR(col, &ptr, "minimum_y", 0, NULL, 0);
}
- /* row 2: minimum */
+ /* row 2: maximum */
{
row= uiLayoutRow(layout, 0);
@@ -571,18 +544,50 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor
/* x-minimum */
col= uiLayoutColumn(split, 1);
- uiItemR(col, NULL, 0, &ptr, "use_maximum_x", 0);
- uiItemR(col, NULL, 0, &ptr, "maximum_x", 0);
+ uiItemR(col, &ptr, "use_maximum_x", 0, NULL, 0);
+ uiItemR(col, &ptr, "maximum_x", 0, NULL, 0);
/* y-minimum*/
col= uiLayoutColumn(split, 1);
- uiItemR(col, NULL, 0, &ptr, "use_maximum_y", 0);
- uiItemR(col, NULL, 0, &ptr, "maximum_y", 0);
+ uiItemR(col, &ptr, "use_maximum_y", 0, NULL, 0);
+ uiItemR(col, &ptr, "maximum_y", 0, NULL, 0);
}
}
/* --------------- */
+/* draw settings for stepped interpolation modifier */
+static void draw_modifier__stepped(uiLayout *layout, ID *id, FModifier *fcm, short width)
+{
+ uiLayout *col, *subcol;
+ PointerRNA ptr;
+
+ /* init the RNA-pointer */
+ RNA_pointer_create(id, &RNA_FModifierStepped, fcm, &ptr);
+
+ /* block 1: "stepping" settings */
+ col= uiLayoutColumn(layout, 0);
+ uiItemR(col, &ptr, "step_size", 0, NULL, 0);
+ uiItemR(col, &ptr, "offset", 0, NULL, 0);
+
+ /* block 2: start range settings */
+ col= uiLayoutColumn(layout, 1);
+ uiItemR(col, &ptr, "use_frame_start", 0, NULL, 0);
+
+ subcol = uiLayoutColumn(col, 1);
+ uiLayoutSetActive(subcol, RNA_boolean_get(&ptr, "use_frame_start"));
+ uiItemR(subcol, &ptr, "frame_start", 0, NULL, 0);
+
+ /* block 3: end range settings */
+ col= uiLayoutColumn(layout, 1);
+ uiItemR(col, &ptr, "use_frame_end", 0, NULL, 0);
+
+ subcol = uiLayoutColumn(col, 1);
+ uiLayoutSetActive(subcol, RNA_boolean_get(&ptr, "use_end_frame"));
+ uiItemR(subcol, &ptr, "frame_end", 0, NULL, 0);
+}
+
+/* --------------- */
void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifiers, FModifier *fcm)
{
@@ -611,10 +616,10 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie
uiBlockSetEmboss(block, UI_EMBOSSN);
/* expand */
- uiItemR(subrow, "", 0, &ptr, "expanded", UI_ITEM_R_ICON_ONLY);
+ uiItemR(subrow, &ptr, "expanded", UI_ITEM_R_ICON_ONLY, "", 0);
/* checkbox for 'active' status (for now) */
- uiItemR(subrow, "", 0, &ptr, "active", UI_ITEM_R_ICON_ONLY);
+ uiItemR(subrow, &ptr, "active", UI_ITEM_R_ICON_ONLY, "", 0);
/* name */
if (fmi)
@@ -628,7 +633,7 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie
/* 'mute' button */
- uiItemR(subrow, "", 0, &ptr, "muted", UI_ITEM_R_ICON_ONLY);
+ uiItemR(subrow, &ptr, "muted", UI_ITEM_R_ICON_ONLY, "", 0);
uiBlockSetEmboss(block, UI_EMBOSSN);
@@ -669,6 +674,10 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie
case FMODIFIER_TYPE_NOISE: /* Noise */
draw_modifier__noise(box, id, fcm, width);
break;
+
+ case FMODIFIER_TYPE_STEPPED: /* Stepped */
+ draw_modifier__stepped(box, id, fcm, width);
+ break;
default: /* unknown type */
break;
@@ -677,3 +686,81 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie
}
/* ********************************************** */
+/* COPY/PASTE BUFFER STUFF */
+
+/* Copy/Paste Buffer itself (list of FModifier 's) */
+static ListBase fmodifier_copypaste_buf = {NULL, NULL};
+
+/* ---------- */
+
+/* free the copy/paste buffer */
+void free_fmodifiers_copybuf (void)
+{
+ /* just free the whole buffer */
+ free_fmodifiers(&fmodifier_copypaste_buf);
+}
+
+/* copy the given F-Modifiers to the buffer, returning whether anything was copied or not
+ * assuming that the buffer has been cleared already with free_fmodifiers_copybuf()
+ * - active: only copy the active modifier
+ */
+short ANIM_fmodifiers_copy_to_buf (ListBase *modifiers, short active)
+{
+ short ok = 1;
+
+ /* sanity checks */
+ if ELEM(NULL, modifiers, modifiers->first)
+ return 0;
+
+ /* copy the whole list, or just the active one? */
+ if (active) {
+ FModifier *fcm = find_active_fmodifier(modifiers);
+
+ if (fcm) {
+ FModifier *fcmN = copy_fmodifier(fcm);
+ BLI_addtail(&fmodifier_copypaste_buf, fcmN);
+ }
+ else
+ ok = 0;
+ }
+ else
+ copy_fmodifiers(&fmodifier_copypaste_buf, modifiers);
+
+ /* did we succeed? */
+ return ok;
+}
+
+/* 'Paste' the F-Modifier(s) from the buffer to the specified list
+ * - replace: free all the existing modifiers to leave only the pasted ones
+ */
+short ANIM_fmodifiers_paste_from_buf (ListBase *modifiers, short replace)
+{
+ FModifier *fcm;
+ short ok = 0;
+
+ /* sanity checks */
+ if (modifiers == NULL)
+ return 0;
+
+ /* if replacing the list, free the existing modifiers */
+ if (replace)
+ free_fmodifiers(modifiers);
+
+ /* now copy over all the modifiers in the buffer to the end of the list */
+ for (fcm= fmodifier_copypaste_buf.first; fcm; fcm= fcm->next) {
+ /* make a copy of it */
+ FModifier *fcmN = copy_fmodifier(fcm);
+
+ /* make sure the new one isn't active, otherwise the list may get several actives */
+ fcmN->flag &= ~FMODIFIER_FLAG_ACTIVE;
+
+ /* now add it to the end of the list */
+ BLI_addtail(modifiers, fcmN);
+ ok = 1;
+ }
+
+ /* did we succeed? */
+ return ok;
+}
+
+/* ********************************************** */
diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c
index 011422eb65c..2290909325e 100644
--- a/source/blender/editors/animation/keyframes_draw.c
+++ b/source/blender/editors/animation/keyframes_draw.c
@@ -34,26 +34,17 @@
#include <string.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_dlrbTree.h"
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
#include "DNA_mesh_types.h"
@@ -61,11 +52,7 @@
#include "DNA_meta_types.h"
#include "DNA_node_types.h"
#include "DNA_particle_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
#include "DNA_world_types.h"
-#include "DNA_view2d_types.h"
#include "BKE_action.h"
#include "BKE_depsgraph.h"
@@ -80,16 +67,11 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "UI_interface.h"
-#include "UI_interface_icons.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "ED_anim_api.h"
-#include "ED_keyframing.h"
#include "ED_keyframes_draw.h"
-#include "ED_screen.h"
-#include "ED_space_api.h"
/* *************************** Keyframe Processing *************************** */
@@ -258,7 +240,7 @@ static BezTriple *abk_get_bezt_with_value (ActBeztColumn *abk, float value)
/* look over each BezTriple in this container */
for (i = 0; i < abk->numBezts; i++) {
/* only do exact match for now... */
- if (i >= sizeof(abk->bezts)/sizeof(BezTriple)) {
+ if (/*i >= MAX_ABK_BUFSIZE*/0) {
// TODO: this case needs special handling
}
else {
@@ -301,7 +283,7 @@ static void add_bezt_to_keyblocks_list(DLRBT_Tree *blocks, DLRBT_Tree *beztTree,
abk= (ActBeztColumn *)BLI_dlrbTree_search_prev(beztTree, compare_abk_bezt, beztn);
/* if applicable, the BezTriple with the same value */
prev= (abk) ? abk_get_bezt_with_value(abk, beztn->vec[1][1]) : NULL;
-
+
/* check if block needed - same value(s)?
* -> firstly, handles must have same central value as each other
* -> secondly, handles which control that section of the curve must be constant
diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c
index ca1df14e14c..3175e9e34a7 100644
--- a/source/blender/editors/animation/keyframes_edit.c
+++ b/source/blender/editors/animation/keyframes_edit.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -35,10 +35,8 @@
#include "BLI_math.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
#include "DNA_mesh_types.h"
@@ -47,7 +45,6 @@
#include "DNA_meta_types.h"
#include "DNA_node_types.h"
#include "DNA_particle_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_world_types.h"
@@ -64,7 +61,7 @@
/* This file defines an API and set of callback-operators for non-destructive editing of keyframe data.
*
* Two API functions are defined for actually performing the operations on the data:
- * ANIM_fcurve_keys_bezier_loop()
+ * ANIM_fcurve_keyframes_loop()
* which take the data they operate on, a few callbacks defining what operations to perform.
*
* As operators which work on keyframes usually apply the same operation on all BezTriples in
@@ -87,56 +84,66 @@
/* This function is used to loop over BezTriples in the given F-Curve, applying a given
* operation on them, and optionally applies an F-Curve validation function afterwards.
*/
-short ANIM_fcurve_keys_bezier_loop(BeztEditData *bed, FCurve *fcu, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb)
+// TODO: make this function work on samples too...
+short ANIM_fcurve_keyframes_loop(KeyframeEditData *ked, FCurve *fcu, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
{
- BezTriple *bezt;
- int i;
-
+ BezTriple *bezt;
+ short ok = 0;
+ int i;
+
/* sanity check */
if (ELEM(NULL, fcu, fcu->bezt))
return 0;
-
+
/* set the F-Curve into the editdata so that it can be accessed */
- if (bed) {
- bed->fcu= fcu;
- bed->curIndex= 0;
- }
-
+ if (ked) {
+ ked->fcu= fcu;
+ ked->curIndex= 0;
+ ked->curflags= ok;
+ }
+
/* if function to apply to bezier curves is set, then loop through executing it on beztriples */
- if (bezt_cb) {
+ if (key_cb) {
/* if there's a validation func, include that check in the loop
* (this is should be more efficient than checking for it in every loop)
*/
- if (bezt_ok) {
+ if (key_ok) {
for (bezt=fcu->bezt, i=0; i < fcu->totvert; bezt++, i++) {
- if (bed) bed->curIndex= i;
+ if (ked) {
+ /* advance the index, and reset the ok flags (to not influence the result) */
+ ked->curIndex= i;
+ ked->curflags= 0;
+ }
/* Only operate on this BezTriple if it fullfills the criteria of the validation func */
- if (bezt_ok(bed, bezt)) {
+ if ( (ok = key_ok(ked, bezt)) ) {
+ if (ked) ked->curflags= ok;
+
/* Exit with return-code '1' if function returns positive
* This is useful if finding if some BezTriple satisfies a condition.
*/
- if (bezt_cb(bed, bezt)) return 1;
+ if (key_cb(ked, bezt)) return 1;
}
}
}
else {
for (bezt=fcu->bezt, i=0; i < fcu->totvert; bezt++, i++) {
- if (bed) bed->curIndex= i;
+ if (ked) ked->curIndex= i;
/* Exit with return-code '1' if function returns positive
- * This is useful if finding if some BezTriple satisfies a condition.
- */
- if (bezt_cb(bed, bezt)) return 1;
+ * This is useful if finding if some BezTriple satisfies a condition.
+ */
+ if (key_cb(ked, bezt)) return 1;
}
}
- }
+ }
/* unset the F-Curve from the editdata now that it's done */
- if (bed) {
- bed->fcu= NULL;
- bed->curIndex= 0;
- }
+ if (ked) {
+ ked->fcu= NULL;
+ ked->curIndex= 0;
+ ked->curflags= 0;
+ }
/* if fcu_cb (F-Curve post-editing callback) has been specified then execute it */
if (fcu_cb)
@@ -149,7 +156,7 @@ short ANIM_fcurve_keys_bezier_loop(BeztEditData *bed, FCurve *fcu, BeztEditFunc
/* -------------------------------- Further Abstracted (Not Exposed Directly) ----------------------------- */
/* This function is used to loop over the keyframe data in an Action Group */
-static short agrp_keys_bezier_loop(BeztEditData *bed, bActionGroup *agrp, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb)
+static short agrp_keyframes_loop(KeyframeEditData *ked, bActionGroup *agrp, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
{
FCurve *fcu;
@@ -159,7 +166,7 @@ static short agrp_keys_bezier_loop(BeztEditData *bed, bActionGroup *agrp, BeztEd
/* only iterate over the F-Curves that are in this group */
for (fcu= agrp->channels.first; fcu && fcu->grp==agrp; fcu= fcu->next) {
- if (ANIM_fcurve_keys_bezier_loop(bed, fcu, bezt_ok, bezt_cb, fcu_cb))
+ if (ANIM_fcurve_keyframes_loop(ked, fcu, key_ok, key_cb, fcu_cb))
return 1;
}
@@ -167,7 +174,7 @@ static short agrp_keys_bezier_loop(BeztEditData *bed, bActionGroup *agrp, BeztEd
}
/* This function is used to loop over the keyframe data in an Action */
-static short act_keys_bezier_loop(BeztEditData *bed, bAction *act, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb)
+static short act_keyframes_loop(KeyframeEditData *ked, bAction *act, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
{
FCurve *fcu;
@@ -177,7 +184,7 @@ static short act_keys_bezier_loop(BeztEditData *bed, bAction *act, BeztEditFunc
/* just loop through all F-Curves */
for (fcu= act->curves.first; fcu; fcu= fcu->next) {
- if (ANIM_fcurve_keys_bezier_loop(bed, fcu, bezt_ok, bezt_cb, fcu_cb))
+ if (ANIM_fcurve_keyframes_loop(ked, fcu, key_ok, key_cb, fcu_cb))
return 1;
}
@@ -185,7 +192,7 @@ static short act_keys_bezier_loop(BeztEditData *bed, bAction *act, BeztEditFunc
}
/* This function is used to loop over the keyframe data of an AnimData block */
-static short adt_keys_bezier_loop(BeztEditData *bed, AnimData *adt, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb, int filterflag)
+static short adt_keyframes_loop(KeyframeEditData *ked, AnimData *adt, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
{
/* sanity check */
if (adt == NULL)
@@ -197,13 +204,13 @@ static short adt_keys_bezier_loop(BeztEditData *bed, AnimData *adt, BeztEditFunc
/* just loop through all F-Curves acting as Drivers */
for (fcu= adt->drivers.first; fcu; fcu= fcu->next) {
- if (ANIM_fcurve_keys_bezier_loop(bed, fcu, bezt_ok, bezt_cb, fcu_cb))
+ if (ANIM_fcurve_keyframes_loop(ked, fcu, key_ok, key_cb, fcu_cb))
return 1;
}
}
else if (adt->action) {
/* call the function for actions */
- if (act_keys_bezier_loop(bed, adt->action, bezt_ok, bezt_cb, fcu_cb))
+ if (act_keyframes_loop(ked, adt->action, key_ok, key_cb, fcu_cb))
return 1;
}
@@ -211,7 +218,7 @@ static short adt_keys_bezier_loop(BeztEditData *bed, AnimData *adt, BeztEditFunc
}
/* This function is used to loop over the keyframe data in an Object */
-static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb, int filterflag)
+static short ob_keyframes_loop(KeyframeEditData *ked, Object *ob, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
{
Key *key= ob_get_key(ob);
@@ -221,13 +228,13 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
/* firstly, Object's own AnimData */
if (ob->adt) {
- if (adt_keys_bezier_loop(bed, ob->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, ob->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
/* shapekeys */
if ((key && key->adt) && !(filterflag & ADS_FILTER_NOSHAPEKEYS)) {
- if (adt_keys_bezier_loop(bed, key->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, key->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
@@ -243,7 +250,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
continue;
/* add material's data */
- if (adt_keys_bezier_loop(bed, ma->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, ma->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
}
@@ -255,7 +262,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
Camera *ca= (Camera *)ob->data;
if ((ca->adt) && !(filterflag & ADS_FILTER_NOCAM)) {
- if (adt_keys_bezier_loop(bed, ca->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, ca->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
}
@@ -265,7 +272,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
Lamp *la= (Lamp *)ob->data;
if ((la->adt) && !(filterflag & ADS_FILTER_NOLAM)) {
- if (adt_keys_bezier_loop(bed, la->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, la->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
}
@@ -277,7 +284,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
Curve *cu= (Curve *)ob->data;
if ((cu->adt) && !(filterflag & ADS_FILTER_NOCUR)) {
- if (adt_keys_bezier_loop(bed, cu->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, cu->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
}
@@ -287,7 +294,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
MetaBall *mb= (MetaBall *)ob->data;
if ((mb->adt) && !(filterflag & ADS_FILTER_NOMBA)) {
- if (adt_keys_bezier_loop(bed, mb->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, mb->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
}
@@ -297,7 +304,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
bArmature *arm= (bArmature *)ob->data;
if ((arm->adt) && !(filterflag & ADS_FILTER_NOARM)) {
- if (adt_keys_bezier_loop(bed, arm->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, arm->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
}
@@ -307,7 +314,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
Mesh *me= (Mesh *)ob->data;
if ((me->adt) && !(filterflag & ADS_FILTER_NOMESH)) {
- if (adt_keys_bezier_loop(bed, me->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, me->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
}
@@ -322,7 +329,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
if (ELEM(NULL, psys->part, psys->part->adt))
continue;
- if (adt_keys_bezier_loop(bed, psys->part->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, psys->part->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
}
@@ -331,7 +338,7 @@ static short ob_keys_bezier_loop(BeztEditData *bed, Object *ob, BeztEditFunc bez
}
/* This function is used to loop over the keyframe data in a Scene */
-static short scene_keys_bezier_loop(BeztEditData *bed, Scene *sce, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb, int filterflag)
+static short scene_keyframes_loop(KeyframeEditData *ked, Scene *sce, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
{
World *wo= (sce) ? sce->world : NULL;
bNodeTree *ntree= (sce) ? sce->nodetree : NULL;
@@ -342,19 +349,19 @@ static short scene_keys_bezier_loop(BeztEditData *bed, Scene *sce, BeztEditFunc
/* Scene's own animation */
if (sce->adt) {
- if (adt_keys_bezier_loop(bed, sce->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, sce->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
/* World */
if (wo && wo->adt) {
- if (adt_keys_bezier_loop(bed, wo->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, wo->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
/* NodeTree */
if (ntree && ntree->adt) {
- if (adt_keys_bezier_loop(bed, ntree->adt, bezt_ok, bezt_cb, fcu_cb, filterflag))
+ if (adt_keyframes_loop(ked, ntree->adt, key_ok, key_cb, fcu_cb, filterflag))
return 1;
}
@@ -363,7 +370,7 @@ static short scene_keys_bezier_loop(BeztEditData *bed, Scene *sce, BeztEditFunc
}
/* This function is used to loop over the keyframe data in a DopeSheet summary */
-static short summary_keys_bezier_loop(BeztEditData *bed, bAnimContext *ac, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb, int filterflag)
+static short summary_keyframes_loop(KeyframeEditData *ked, bAnimContext *ac, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
{
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
@@ -379,7 +386,7 @@ static short summary_keys_bezier_loop(BeztEditData *bed, bAnimContext *ac, BeztE
/* loop through each F-Curve, working on the keyframes until the first curve aborts */
for (ale= anim_data.first; ale; ale= ale->next) {
- ret_code= ANIM_fcurve_keys_bezier_loop(bed, ale->data, bezt_ok, bezt_cb, fcu_cb);
+ ret_code= ANIM_fcurve_keyframes_loop(ked, ale->data, key_ok, key_cb, fcu_cb);
if (ret_code)
break;
@@ -393,7 +400,7 @@ static short summary_keys_bezier_loop(BeztEditData *bed, bAnimContext *ac, BeztE
/* --- */
/* This function is used to apply operation to all keyframes, regardless of the type */
-short ANIM_animchannel_keys_bezier_loop(BeztEditData *bed, bAnimListElem *ale, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb, int filterflag)
+short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
{
/* sanity checks */
if (ale == NULL)
@@ -403,29 +410,29 @@ short ANIM_animchannel_keys_bezier_loop(BeztEditData *bed, bAnimListElem *ale, B
switch (ale->datatype) {
/* direct keyframe data (these loops are exposed) */
case ALE_FCURVE: /* F-Curve */
- return ANIM_fcurve_keys_bezier_loop(bed, ale->key_data, bezt_ok, bezt_cb, fcu_cb);
+ return ANIM_fcurve_keyframes_loop(ked, ale->key_data, key_ok, key_cb, fcu_cb);
/* indirect 'summaries' (these are not exposed directly)
* NOTE: must keep this code in sync with the drawing code and also the filtering code!
*/
case ALE_GROUP: /* action group */
- return agrp_keys_bezier_loop(bed, (bActionGroup *)ale->data, bezt_ok, bezt_cb, fcu_cb);
+ return agrp_keyframes_loop(ked, (bActionGroup *)ale->data, key_ok, key_cb, fcu_cb);
case ALE_ACT: /* action */
- return act_keys_bezier_loop(bed, (bAction *)ale->key_data, bezt_ok, bezt_cb, fcu_cb);
+ return act_keyframes_loop(ked, (bAction *)ale->key_data, key_ok, key_cb, fcu_cb);
case ALE_OB: /* object */
- return ob_keys_bezier_loop(bed, (Object *)ale->key_data, bezt_ok, bezt_cb, fcu_cb, filterflag);
+ return ob_keyframes_loop(ked, (Object *)ale->key_data, key_ok, key_cb, fcu_cb, filterflag);
case ALE_SCE: /* scene */
- return scene_keys_bezier_loop(bed, (Scene *)ale->data, bezt_ok, bezt_cb, fcu_cb, filterflag);
+ return scene_keyframes_loop(ked, (Scene *)ale->data, key_ok, key_cb, fcu_cb, filterflag);
case ALE_ALL: /* 'all' (DopeSheet summary) */
- return summary_keys_bezier_loop(bed, (bAnimContext *)ale->data, bezt_ok, bezt_cb, fcu_cb, filterflag);
+ return summary_keyframes_loop(ked, (bAnimContext *)ale->data, key_ok, key_cb, fcu_cb, filterflag);
}
return 0;
}
/* This function is used to apply operation to all keyframes, regardless of the type without needed an AnimListElem wrapper */
-short ANIM_animchanneldata_keys_bezier_loop(BeztEditData *bed, void *data, int keytype, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb, int filterflag)
+short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, void *data, int keytype, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
{
/* sanity checks */
if (data == NULL)
@@ -435,22 +442,22 @@ short ANIM_animchanneldata_keys_bezier_loop(BeztEditData *bed, void *data, int k
switch (keytype) {
/* direct keyframe data (these loops are exposed) */
case ALE_FCURVE: /* F-Curve */
- return ANIM_fcurve_keys_bezier_loop(bed, data, bezt_ok, bezt_cb, fcu_cb);
+ return ANIM_fcurve_keyframes_loop(ked, data, key_ok, key_cb, fcu_cb);
/* indirect 'summaries' (these are not exposed directly)
* NOTE: must keep this code in sync with the drawing code and also the filtering code!
*/
case ALE_GROUP: /* action group */
- return agrp_keys_bezier_loop(bed, (bActionGroup *)data, bezt_ok, bezt_cb, fcu_cb);
+ return agrp_keyframes_loop(ked, (bActionGroup *)data, key_ok, key_cb, fcu_cb);
case ALE_ACT: /* action */
- return act_keys_bezier_loop(bed, (bAction *)data, bezt_ok, bezt_cb, fcu_cb);
+ return act_keyframes_loop(ked, (bAction *)data, key_ok, key_cb, fcu_cb);
case ALE_OB: /* object */
- return ob_keys_bezier_loop(bed, (Object *)data, bezt_ok, bezt_cb, fcu_cb, filterflag);
+ return ob_keyframes_loop(ked, (Object *)data, key_ok, key_cb, fcu_cb, filterflag);
case ALE_SCE: /* scene */
- return scene_keys_bezier_loop(bed, (Scene *)data, bezt_ok, bezt_cb, fcu_cb, filterflag);
+ return scene_keyframes_loop(ked, (Scene *)data, key_ok, key_cb, fcu_cb, filterflag);
case ALE_ALL: /* 'all' (DopeSheet summary) */
- return summary_keys_bezier_loop(bed, (bAnimContext *)data, bezt_ok, bezt_cb, fcu_cb, filterflag);
+ return summary_keyframes_loop(ked, (bAnimContext *)data, key_ok, key_cb, fcu_cb, filterflag);
}
return 0;
@@ -487,50 +494,113 @@ void ANIM_editkeyframes_refresh(bAnimContext *ac)
/* ************************************************************************** */
/* BezTriple Validation Callbacks */
-static short ok_bezier_frame(BeztEditData *bed, BezTriple *bezt)
+/* ------------------------ */
+/* Some macros to make this easier... */
+
+/* run the given check on the 3 handles
+ * - check should be a macro, which takes the handle index as its single arg, which it substitutes later
+ * - requires that a var, of type short, is named 'ok', and has been initialised ot 0
+ */
+#define KEYFRAME_OK_CHECKS(check) \
+ { \
+ if (check(1)) \
+ ok |= KEYFRAME_OK_KEY; \
+ \
+ if (ked && (ked->iterflags & KEYFRAME_ITER_INCL_HANDLES)) { \
+ if (check(0)) \
+ ok |= KEYFRAME_OK_H1; \
+ if (check(2)) \
+ ok |= KEYFRAME_OK_H2; \
+ } \
+ }
+
+/* ------------------------ */
+
+static short ok_bezier_frame(KeyframeEditData *ked, BezTriple *bezt)
{
+ short ok = 0;
+
/* frame is stored in f1 property (this float accuracy check may need to be dropped?) */
- return IS_EQ(bezt->vec[1][0], bed->f1);
+ #define KEY_CHECK_OK(_index) IS_EQ(bezt->vec[_index][0], ked->f1)
+ KEYFRAME_OK_CHECKS(KEY_CHECK_OK);
+ #undef KEY_CHECK_OK
+
+ /* return ok flags */
+ return ok;
}
-static short ok_bezier_framerange(BeztEditData *bed, BezTriple *bezt)
+static short ok_bezier_framerange(KeyframeEditData *ked, BezTriple *bezt)
{
+ short ok = 0;
+
/* frame range is stored in float properties */
- return ((bezt->vec[1][0] > bed->f1) && (bezt->vec[1][0] < bed->f2));
+ #define KEY_CHECK_OK(_index) ((bezt->vec[_index][0] > ked->f1) && (bezt->vec[_index][0] < ked->f2))
+ KEYFRAME_OK_CHECKS(KEY_CHECK_OK);
+ #undef KEY_CHECK_OK
+
+ /* return ok flags */
+ return ok;
}
-static short ok_bezier_selected(BeztEditData *bed, BezTriple *bezt)
+static short ok_bezier_selected(KeyframeEditData *ked, BezTriple *bezt)
{
- /* this macro checks all beztriple handles for selection... */
- return BEZSELECTED(bezt);
+ /* this macro checks all beztriple handles for selection...
+ * only one of the verts has to be selected for this to be ok...
+ */
+ if (BEZSELECTED(bezt))
+ return KEYFRAME_OK_ALL;
+ else
+ return 0;
}
-static short ok_bezier_value(BeztEditData *bed, BezTriple *bezt)
-{
+static short ok_bezier_value(KeyframeEditData *ked, BezTriple *bezt)
+{
+ short ok = 0;
+
/* value is stored in f1 property
* - this float accuracy check may need to be dropped?
* - should value be stored in f2 instead so that we won't have conflicts when using f1 for frames too?
*/
- return IS_EQ(bezt->vec[1][1], bed->f1);
+ #define KEY_CHECK_OK(_index) IS_EQ(bezt->vec[_index][1], ked->f1)
+ KEYFRAME_OK_CHECKS(KEY_CHECK_OK);
+ #undef KEY_CHECK_OK
+
+ /* return ok flags */
+ return ok;
}
-static short ok_bezier_valuerange(BeztEditData *bed, BezTriple *bezt)
+static short ok_bezier_valuerange(KeyframeEditData *ked, BezTriple *bezt)
{
+ short ok = 0;
+
/* value range is stored in float properties */
- return ((bezt->vec[1][1] > bed->f1) && (bezt->vec[1][1] < bed->f2));
+ #define KEY_CHECK_OK(_index) ((bezt->vec[_index][1] > ked->f1) && (bezt->vec[_index][1] < ked->f2))
+ KEYFRAME_OK_CHECKS(KEY_CHECK_OK);
+ #undef KEY_CHECK_OK
+
+ /* return ok flags */
+ return ok;
}
-static short ok_bezier_region(BeztEditData *bed, BezTriple *bezt)
+static short ok_bezier_region(KeyframeEditData *ked, BezTriple *bezt)
{
/* rect is stored in data property (it's of type rectf, but may not be set) */
- if (bed->data)
- return BLI_in_rctf(bed->data, bezt->vec[1][0], bezt->vec[1][1]);
+ if (ked->data) {
+ short ok = 0;
+
+ #define KEY_CHECK_OK(_index) BLI_in_rctf(ked->data, bezt->vec[_index][0], bezt->vec[_index][1])
+ KEYFRAME_OK_CHECKS(KEY_CHECK_OK);
+ #undef KEY_CHECK_OK
+
+ /* return ok flags */
+ return ok;
+ }
else
return 0;
}
-BeztEditFunc ANIM_editkeyframes_ok(short mode)
+KeyframeEditFunc ANIM_editkeyframes_ok(short mode)
{
/* eEditKeyframes_Validate */
switch (mode) {
@@ -555,32 +625,32 @@ BeztEditFunc ANIM_editkeyframes_ok(short mode)
/* Assorted Utility Functions */
/* helper callback for <animeditor>_cfrasnap_exec() -> used to help get the average time of all selected beztriples */
-short bezt_calc_average(BeztEditData *bed, BezTriple *bezt)
+short bezt_calc_average(KeyframeEditData *ked, BezTriple *bezt)
{
/* only if selected */
if (bezt->f2 & SELECT) {
/* store average time in float 1 (only do rounding at last step) */
- bed->f1 += bezt->vec[1][0];
+ ked->f1 += bezt->vec[1][0];
/* store average value in float 2 (only do rounding at last step)
* - this isn't always needed, but some operators may also require this
*/
- bed->f2 += bezt->vec[1][1];
+ ked->f2 += bezt->vec[1][1];
/* increment number of items */
- bed->i1++;
+ ked->i1++;
}
return 0;
}
/* helper callback for columnselect_<animeditor>_keys() -> populate list CfraElems with frame numbers from selected beztriples */
-short bezt_to_cfraelem(BeztEditData *bed, BezTriple *bezt)
+short bezt_to_cfraelem(KeyframeEditData *ked, BezTriple *bezt)
{
/* only if selected */
if (bezt->f2 & SELECT) {
CfraElem *ce= MEM_callocN(sizeof(CfraElem), "cfraElem");
- BLI_addtail(&bed->list, ce);
+ BLI_addtail(&ked->list, ce);
ce->cfra= bezt->vec[1][0];
}
@@ -589,11 +659,11 @@ short bezt_to_cfraelem(BeztEditData *bed, BezTriple *bezt)
}
/* used to remap times from one range to another
- * requires: bed->data = BeztEditCD_Remap
+ * requires: ked->data = KeyframeEditCD_Remap
*/
-void bezt_remap_times(BeztEditData *bed, BezTriple *bezt)
+void bezt_remap_times(KeyframeEditData *ked, BezTriple *bezt)
{
- BeztEditCD_Remap *rmap= (BeztEditCD_Remap*)bed->data;
+ KeyframeEditCD_Remap *rmap= (KeyframeEditCD_Remap*)ked->data;
const float scale = (rmap->newMax - rmap->newMin) / (rmap->oldMax - rmap->oldMin);
/* perform transform on all three handles unless indicated otherwise */
@@ -607,16 +677,18 @@ void bezt_remap_times(BeztEditData *bed, BezTriple *bezt)
/* ******************************************* */
/* Transform */
-static short snap_bezier_nearest(BeztEditData *bed, BezTriple *bezt)
+/* snaps the keyframe to the nearest frame */
+static short snap_bezier_nearest(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT)
bezt->vec[1][0]= (float)(floor(bezt->vec[1][0]+0.5));
return 0;
}
-static short snap_bezier_nearestsec(BeztEditData *bed, BezTriple *bezt)
+/* snaps the keyframe to the neares second */
+static short snap_bezier_nearestsec(KeyframeEditData *ked, BezTriple *bezt)
{
- const Scene *scene= bed->scene;
+ const Scene *scene= ked->scene;
const float secf = (float)FPS;
if (bezt->f2 & SELECT)
@@ -624,41 +696,44 @@ static short snap_bezier_nearestsec(BeztEditData *bed, BezTriple *bezt)
return 0;
}
-static short snap_bezier_cframe(BeztEditData *bed, BezTriple *bezt)
+/* snaps the keyframe to the current frame */
+static short snap_bezier_cframe(KeyframeEditData *ked, BezTriple *bezt)
{
- const Scene *scene= bed->scene;
+ const Scene *scene= ked->scene;
if (bezt->f2 & SELECT)
bezt->vec[1][0]= (float)CFRA;
return 0;
}
-static short snap_bezier_nearmarker(BeztEditData *bed, BezTriple *bezt)
+/* snaps the keyframe time to the nearest marker's frame */
+static short snap_bezier_nearmarker(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT)
- bezt->vec[1][0]= (float)ED_markers_find_nearest_marker_time(&bed->list, bezt->vec[1][0]);
+ bezt->vec[1][0]= (float)ED_markers_find_nearest_marker_time(&ked->list, bezt->vec[1][0]);
return 0;
}
-static short snap_bezier_horizontal(BeztEditData *bed, BezTriple *bezt)
+/* make the handles have the same value as the key */
+static short snap_bezier_horizontal(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT) {
- // XXX currently this snaps both handles to the nearest horizontal value, but perhaps user just wants to level out handles instead?
- bezt->vec[0][1]= bezt->vec[2][1]= (float)floor(bezt->vec[1][1] + 0.5f);
+ bezt->vec[0][1]= bezt->vec[2][1]= bezt->vec[1][1];
+
if ((bezt->h1==HD_AUTO) || (bezt->h1==HD_VECT)) bezt->h1= HD_ALIGN;
if ((bezt->h2==HD_AUTO) || (bezt->h2==HD_VECT)) bezt->h2= HD_ALIGN;
}
return 0;
}
-static short snap_bezier_value(BeztEditData *bed, BezTriple *bezt)
+/* value to snap to is stored in the custom data -> first float value slot */
+static short snap_bezier_value(KeyframeEditData *ked, BezTriple *bezt)
{
- /* value to snap to is stored in the custom data -> first float value slot */
if (bezt->f2 & SELECT)
- bezt->vec[1][1]= bed->f1;
+ bezt->vec[1][1]= ked->f1;
return 0;
}
-BeztEditFunc ANIM_editkeyframes_snap(short type)
+KeyframeEditFunc ANIM_editkeyframes_snap(short type)
{
/* eEditKeyframes_Snap */
switch (type) {
@@ -681,9 +756,9 @@ BeztEditFunc ANIM_editkeyframes_snap(short type)
/* --------- */
-static short mirror_bezier_cframe(BeztEditData *bed, BezTriple *bezt)
+static short mirror_bezier_cframe(KeyframeEditData *ked, BezTriple *bezt)
{
- const Scene *scene= bed->scene;
+ const Scene *scene= ked->scene;
float diff;
if (bezt->f2 & SELECT) {
@@ -694,7 +769,7 @@ static short mirror_bezier_cframe(BeztEditData *bed, BezTriple *bezt)
return 0;
}
-static short mirror_bezier_yaxis(BeztEditData *bed, BezTriple *bezt)
+static short mirror_bezier_yaxis(KeyframeEditData *ked, BezTriple *bezt)
{
float diff;
@@ -706,7 +781,7 @@ static short mirror_bezier_yaxis(BeztEditData *bed, BezTriple *bezt)
return 0;
}
-static short mirror_bezier_xaxis(BeztEditData *bed, BezTriple *bezt)
+static short mirror_bezier_xaxis(KeyframeEditData *ked, BezTriple *bezt)
{
float diff;
@@ -718,25 +793,25 @@ static short mirror_bezier_xaxis(BeztEditData *bed, BezTriple *bezt)
return 0;
}
-static short mirror_bezier_marker(BeztEditData *bed, BezTriple *bezt)
+static short mirror_bezier_marker(KeyframeEditData *ked, BezTriple *bezt)
{
/* mirroring time stored in f1 */
if (bezt->f2 & SELECT) {
- const float diff= (bed->f1 - bezt->vec[1][0]);
- bezt->vec[1][0]= (bed->f1 + diff);
+ const float diff= (ked->f1 - bezt->vec[1][0]);
+ bezt->vec[1][0]= (ked->f1 + diff);
}
return 0;
}
-static short mirror_bezier_value(BeztEditData *bed, BezTriple *bezt)
+static short mirror_bezier_value(KeyframeEditData *ked, BezTriple *bezt)
{
float diff;
/* value to mirror over is stored in the custom data -> first float value slot */
if (bezt->f2 & SELECT) {
- diff= (bed->f1 - bezt->vec[1][1]);
- bezt->vec[1][1]= (bed->f1 + diff);
+ diff= (ked->f1 - bezt->vec[1][1]);
+ bezt->vec[1][1]= (ked->f1 + diff);
}
return 0;
@@ -744,7 +819,7 @@ static short mirror_bezier_value(BeztEditData *bed, BezTriple *bezt)
/* Note: for markers and 'value', the values to use must be supplied as the first float value */
// calchandles_fcurve
-BeztEditFunc ANIM_editkeyframes_mirror(short type)
+KeyframeEditFunc ANIM_editkeyframes_mirror(short type)
{
switch (type) {
case MIRROR_KEYS_CURFRAME: /* mirror over current frame */
@@ -767,7 +842,7 @@ BeztEditFunc ANIM_editkeyframes_mirror(short type)
/* Settings */
/* Sets the selected bezier handles to type 'auto' */
-static short set_bezier_auto(BeztEditData *bed, BezTriple *bezt)
+static short set_bezier_auto(KeyframeEditData *ked, BezTriple *bezt)
{
if((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) {
if (bezt->f1 & SELECT) bezt->h1= HD_AUTO; /* the secret code for auto */
@@ -785,7 +860,7 @@ static short set_bezier_auto(BeztEditData *bed, BezTriple *bezt)
}
/* Sets the selected bezier handles to type 'vector' */
-static short set_bezier_vector(BeztEditData *bed, BezTriple *bezt)
+static short set_bezier_vector(KeyframeEditData *ked, BezTriple *bezt)
{
if ((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) {
if (bezt->f1 & SELECT) bezt->h1= HD_VECT;
@@ -805,7 +880,7 @@ static short set_bezier_vector(BeztEditData *bed, BezTriple *bezt)
/* Queries if the handle should be set to 'free' or 'align' */
// NOTE: this was used for the 'toggle free/align' option
// currently this isn't used, but may be restored later
-static short bezier_isfree(BeztEditData *bed, BezTriple *bezt)
+static short bezier_isfree(KeyframeEditData *ked, BezTriple *bezt)
{
if ((bezt->f1 & SELECT) && (bezt->h1)) return 1;
if ((bezt->f3 & SELECT) && (bezt->h2)) return 1;
@@ -813,7 +888,7 @@ static short bezier_isfree(BeztEditData *bed, BezTriple *bezt)
}
/* Sets selected bezier handles to type 'align' */
-static short set_bezier_align(BeztEditData *bed, BezTriple *bezt)
+static short set_bezier_align(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f1 & SELECT) bezt->h1= HD_ALIGN;
if (bezt->f3 & SELECT) bezt->h2= HD_ALIGN;
@@ -821,7 +896,7 @@ static short set_bezier_align(BeztEditData *bed, BezTriple *bezt)
}
/* Sets selected bezier handles to type 'free' */
-static short set_bezier_free(BeztEditData *bed, BezTriple *bezt)
+static short set_bezier_free(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f1 & SELECT) bezt->h1= HD_FREE;
if (bezt->f3 & SELECT) bezt->h2= HD_FREE;
@@ -830,7 +905,7 @@ static short set_bezier_free(BeztEditData *bed, BezTriple *bezt)
/* Set all selected Bezier Handles to a single type */
// calchandles_fcurve
-BeztEditFunc ANIM_editkeyframes_handles(short code)
+KeyframeEditFunc ANIM_editkeyframes_handles(short code)
{
switch (code) {
case HD_AUTO: /* auto */
@@ -851,21 +926,21 @@ BeztEditFunc ANIM_editkeyframes_handles(short code)
/* ------- */
-static short set_bezt_constant(BeztEditData *bed, BezTriple *bezt)
+static short set_bezt_constant(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT)
bezt->ipo= BEZT_IPO_CONST;
return 0;
}
-static short set_bezt_linear(BeztEditData *bed, BezTriple *bezt)
+static short set_bezt_linear(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT)
bezt->ipo= BEZT_IPO_LIN;
return 0;
}
-static short set_bezt_bezier(BeztEditData *bed, BezTriple *bezt)
+static short set_bezt_bezier(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT)
bezt->ipo= BEZT_IPO_BEZ;
@@ -874,7 +949,7 @@ static short set_bezt_bezier(BeztEditData *bed, BezTriple *bezt)
/* Set the interpolation type of the selected BezTriples in each F-Curve to the specified one */
// ANIM_editkeyframes_ipocurve_ipotype() !
-BeztEditFunc ANIM_editkeyframes_ipo(short code)
+KeyframeEditFunc ANIM_editkeyframes_ipo(short code)
{
switch (code) {
case BEZT_IPO_CONST: /* constant */
@@ -888,21 +963,21 @@ BeztEditFunc ANIM_editkeyframes_ipo(short code)
/* ------- */
-static short set_keytype_keyframe(BeztEditData *bed, BezTriple *bezt)
+static short set_keytype_keyframe(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT)
BEZKEYTYPE(bezt)= BEZT_KEYTYPE_KEYFRAME;
return 0;
}
-static short set_keytype_breakdown(BeztEditData *bed, BezTriple *bezt)
+static short set_keytype_breakdown(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT)
BEZKEYTYPE(bezt)= BEZT_KEYTYPE_BREAKDOWN;
return 0;
}
-static short set_keytype_extreme(BeztEditData *bed, BezTriple *bezt)
+static short set_keytype_extreme(KeyframeEditData *ked, BezTriple *bezt)
{
if (bezt->f2 & SELECT)
BEZKEYTYPE(bezt)= BEZT_KEYTYPE_EXTREME;
@@ -910,7 +985,7 @@ static short set_keytype_extreme(BeztEditData *bed, BezTriple *bezt)
}
/* Set the interpolation type of the selected BezTriples in each F-Curve to the specified one */
-BeztEditFunc ANIM_editkeyframes_keytype(short code)
+KeyframeEditFunc ANIM_editkeyframes_keytype(short code)
{
switch (code) {
case BEZT_KEYTYPE_BREAKDOWN: /* breakdown */
@@ -928,23 +1003,45 @@ BeztEditFunc ANIM_editkeyframes_keytype(short code)
/* ******************************************* */
/* Selection */
-static short select_bezier_add(BeztEditData *bed, BezTriple *bezt)
+static short select_bezier_add(KeyframeEditData *ked, BezTriple *bezt)
{
- /* Select the bezier triple */
- BEZ_SEL(bezt);
+ /* if we've got info on what to select, use it, otherwise select all */
+ if ((ked) && (ked->iterflags & KEYFRAME_ITER_INCL_HANDLES)) {
+ if (ked->curflags & KEYFRAME_OK_KEY)
+ bezt->f2 |= SELECT;
+ if (ked->curflags & KEYFRAME_OK_H1)
+ bezt->f1 |= SELECT;
+ if (ked->curflags & KEYFRAME_OK_H2)
+ bezt->f3 |= SELECT;
+ }
+ else {
+ BEZ_SEL(bezt);
+ }
+
return 0;
}
-static short select_bezier_subtract(BeztEditData *bed, BezTriple *bezt)
+static short select_bezier_subtract(KeyframeEditData *ked, BezTriple *bezt)
{
- /* Deselect the bezier triple */
- BEZ_DESEL(bezt);
+ /* if we've got info on what to deselect, use it, otherwise deselect all */
+ if ((ked) && (ked->iterflags & KEYFRAME_ITER_INCL_HANDLES)) {
+ if (ked->curflags & KEYFRAME_OK_KEY)
+ bezt->f2 &= ~SELECT;
+ if (ked->curflags & KEYFRAME_OK_H1)
+ bezt->f1 &= ~SELECT;
+ if (ked->curflags & KEYFRAME_OK_H2)
+ bezt->f3 &= ~SELECT;
+ }
+ else {
+ BEZ_DESEL(bezt);
+ }
+
return 0;
}
-static short select_bezier_invert(BeztEditData *bed, BezTriple *bezt)
+static short select_bezier_invert(KeyframeEditData *ked, BezTriple *bezt)
{
- /* Invert the selection for the bezier triple */
+ /* Invert the selection for the whole bezier triple */
bezt->f2 ^= SELECT;
if (bezt->f2 & SELECT) {
bezt->f1 |= SELECT;
@@ -957,7 +1054,7 @@ static short select_bezier_invert(BeztEditData *bed, BezTriple *bezt)
return 0;
}
-BeztEditFunc ANIM_editkeyframes_select(short selectmode)
+KeyframeEditFunc ANIM_editkeyframes_select(short selectmode)
{
switch (selectmode) {
case SELECT_ADD: /* add */
@@ -982,11 +1079,11 @@ BeztEditFunc ANIM_editkeyframes_select(short selectmode)
/* ----------- */
-static short selmap_build_bezier_more(BeztEditData *bed, BezTriple *bezt)
+static short selmap_build_bezier_more(KeyframeEditData *ked, BezTriple *bezt)
{
- FCurve *fcu= bed->fcu;
- char *map= bed->data;
- int i= bed->curIndex;
+ FCurve *fcu= ked->fcu;
+ char *map= ked->data;
+ int i= ked->curIndex;
/* if current is selected, just make sure it stays this way */
if (BEZSELECTED(bezt)) {
@@ -1017,11 +1114,11 @@ static short selmap_build_bezier_more(BeztEditData *bed, BezTriple *bezt)
return 0;
}
-static short selmap_build_bezier_less(BeztEditData *bed, BezTriple *bezt)
+static short selmap_build_bezier_less(KeyframeEditData *ked, BezTriple *bezt)
{
- FCurve *fcu= bed->fcu;
- char *map= bed->data;
- int i= bed->curIndex;
+ FCurve *fcu= ked->fcu;
+ char *map= ked->data;
+ int i= ked->curIndex;
/* if current is selected, check the left/right keyframes
* since it might need to be deselected (but otherwise no)
@@ -1059,7 +1156,7 @@ static short selmap_build_bezier_less(BeztEditData *bed, BezTriple *bezt)
}
/* Get callback for building selection map */
-BeztEditFunc ANIM_editkeyframes_buildselmap(short mode)
+KeyframeEditFunc ANIM_editkeyframes_buildselmap(short mode)
{
switch (mode) {
case SELMAP_LESS: /* less */
@@ -1074,10 +1171,10 @@ BeztEditFunc ANIM_editkeyframes_buildselmap(short mode)
/* ----------- */
/* flush selection map values to the given beztriple */
-short bezt_selmap_flush(BeztEditData *bed, BezTriple *bezt)
+short bezt_selmap_flush(KeyframeEditData *ked, BezTriple *bezt)
{
- char *map= bed->data;
- short on= map[bed->curIndex];
+ char *map= ked->data;
+ short on= map[ked->curIndex];
/* select or deselect based on whether the map allows it or not */
if (on) {
diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c
index 1784c6ef32c..abced485769 100644
--- a/source/blender/editors/animation/keyframes_general.c
+++ b/source/blender/editors/animation/keyframes_general.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -36,14 +36,9 @@
#include "BLI_math.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_key_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "RNA_access.h"
#include "BKE_action.h"
#include "BKE_fcurve.h"
@@ -100,8 +95,8 @@ void delete_fcurve_keys(FCurve *fcu)
{
int i;
- if(fcu->bezt==NULL) /* ignore baked curves */
- return;
+ if(fcu->bezt==NULL) /* ignore baked curves */
+ return;
/* Delete selected BezTriples */
for (i=0; i < fcu->totvert; i++) {
@@ -505,7 +500,7 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data)
* - skip if no selected keyframes found (so no need to create unnecessary copy-buffer data)
* - this check should also eliminate any problems associated with using sample-data
*/
- if (ANIM_fcurve_keys_bezier_loop(NULL, fcu, NULL, ANIM_editkeyframes_ok(BEZT_OK_SELECTED), NULL) == 0)
+ if (ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, ANIM_editkeyframes_ok(BEZT_OK_SELECTED), NULL) == 0)
continue;
/* init copybuf item info */
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index d0675dc42ba..f60181d7f6c 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -40,15 +40,11 @@
#include "BLI_dynstr.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
#include "DNA_key_types.h"
-#include "DNA_object_types.h"
#include "DNA_material_types.h"
#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
@@ -67,7 +63,6 @@
#include "ED_keyframing.h"
#include "ED_keyframes_edit.h"
#include "ED_screen.h"
-#include "ED_util.h"
#include "UI_interface.h"
@@ -76,7 +71,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_types.h"
#include "anim_intern.h"
@@ -136,8 +130,11 @@ bAction *verify_adt_action (ID *id, short add)
/* init action if none available yet */
// TODO: need some wizardry to handle NLA stuff correct
- if ((adt->action == NULL) && (add))
- adt->action= add_empty_action("Action");
+ if ((adt->action == NULL) && (add)) {
+ char actname[sizeof(id->name)-2];
+ BLI_snprintf(actname, sizeof(actname), "%sAction", id->name+2);
+ adt->action= add_empty_action(actname);
+ }
/* return the action */
return adt->action;
@@ -182,16 +179,8 @@ FCurve *verify_fcurve (bAction *act, const char group[], const char rna_path[],
grp= action_groups_find_named(act, group);
/* no matching groups, so add one */
- if (grp == NULL) {
- /* Add a new group, and make it active */
- grp= MEM_callocN(sizeof(bActionGroup), "bActionGroup");
-
- grp->flag = AGRP_SELECTED;
- strncpy(grp->name, group, sizeof(grp->name));
-
- BLI_addtail(&act->groups, grp);
- BLI_uniquename(&act->groups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name));
- }
+ if (grp == NULL)
+ grp= action_groups_add_new(act, group);
/* add F-Curve to group */
action_groups_add_channel(act, grp, fcu);
@@ -231,27 +220,16 @@ int insert_bezt_fcurve (FCurve *fcu, BezTriple *bezt, short flag)
if (replace) {
/* sanity check: 'i' may in rare cases exceed arraylen */
if ((i >= 0) && (i < fcu->totvert)) {
- /* take care with the handletypes and other info if the replacement flags are set */
- if (flag & INSERTKEY_REPLACE) {
- BezTriple *dst= (fcu->bezt + i);
- float dy= bezt->vec[1][1] - dst->vec[1][1];
-
- /* just apply delta value change to the handle values */
- dst->vec[0][1] += dy;
- dst->vec[1][1] += dy;
- dst->vec[2][1] += dy;
-
- // TODO: perform some other operations?
- }
- else {
- char oldKeyType= BEZKEYTYPE(fcu->bezt + i);
-
- /* just brutally replace the values */
- *(fcu->bezt + i) = *bezt;
-
- /* special exception for keyframe type - copy value back so that this info isn't lost */
- BEZKEYTYPE(fcu->bezt + i)= oldKeyType;
- }
+ /* just change the values when replacing, so as to not overwrite handles */
+ BezTriple *dst= (fcu->bezt + i);
+ float dy= bezt->vec[1][1] - dst->vec[1][1];
+
+ /* just apply delta value change to the handle values */
+ dst->vec[0][1] += dy;
+ dst->vec[1][1] += dy;
+ dst->vec[2][1] += dy;
+
+ // TODO: perform some other operations?
}
}
/* keyframing modes allow to not replace keyframe */
@@ -259,14 +237,14 @@ int insert_bezt_fcurve (FCurve *fcu, BezTriple *bezt, short flag)
/* insert new - if we're not restricted to replacing keyframes only */
BezTriple *newb= MEM_callocN((fcu->totvert+1)*sizeof(BezTriple), "beztriple");
- /* add the beztriples that should occur before the beztriple to be pasted (originally in ei->icu) */
+ /* add the beztriples that should occur before the beztriple to be pasted (originally in fcu) */
if (i > 0)
memcpy(newb, fcu->bezt, i*sizeof(BezTriple));
/* add beztriple to paste at index i */
*(newb + i)= *bezt;
- /* add the beztriples that occur after the beztriple to be pasted (originally in icu) */
+ /* add the beztriples that occur after the beztriple to be pasted (originally in fcu) */
if (i < fcu->totvert)
memcpy(newb+i+1, fcu->bezt+i, (fcu->totvert-i)*sizeof(BezTriple));
@@ -311,17 +289,19 @@ int insert_vert_fcurve (FCurve *fcu, float x, float y, short flag)
BezTriple beztr;
int a;
- /* set all three points, for nicer start position */
+ /* set all three points, for nicer start position
+ * NOTE: +/- 1 on vec.x for left and right handles is so that 'free' handles work ok...
+ */
memset(&beztr, 0, sizeof(BezTriple));
- beztr.vec[0][0]= x;
+ beztr.vec[0][0]= x-1.0f;
beztr.vec[0][1]= y;
beztr.vec[1][0]= x;
beztr.vec[1][1]= y;
- beztr.vec[2][0]= x;
+ beztr.vec[2][0]= x+1.0f;
beztr.vec[2][1]= y;
beztr.ipo= U.ipo_new; /* use default interpolation mode here... */
beztr.f1= beztr.f2= beztr.f3= SELECT;
- beztr.h1= beztr.h2= HD_AUTO; // XXX what about when we replace an old one?
+ beztr.h1= beztr.h2= U.keyhandles_new; /* use default handle type here */
//BEZKEYTYPE(&beztr)= scene->keytype; /* default keyframe type */
/* add temp beztriple to keyframes */
@@ -342,18 +322,9 @@ int insert_vert_fcurve (FCurve *fcu, float x, float y, short flag)
/* set handletype and interpolation */
if ((fcu->totvert > 2) && (flag & INSERTKEY_REPLACE)==0) {
BezTriple *bezt= (fcu->bezt + a);
- char h1, h2;
-
- /* set handles (autohandles by default) */
- h1= h2= HD_AUTO;
-
- if (a > 0) h1= (bezt-1)->h2;
- if (a < fcu->totvert-1) h2= (bezt+1)->h1;
-
- bezt->h1= h1;
- bezt->h2= h2;
/* set interpolation from previous (if available) */
+ // FIXME: this doesn't work if user tweaked the interpolation specifically, and they were just overwriting some existing key in the process...
if (a > 0) bezt->ipo= (bezt-1)->ipo;
else if (a < fcu->totvert-1) bezt->ipo= (bezt+1)->ipo;
@@ -846,15 +817,21 @@ short insert_keyframe_direct (PointerRNA ptr, PropertyRNA *prop, FCurve *fcu, fl
short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag)
{
PointerRNA id_ptr, ptr;
- PropertyRNA *prop;
+ PropertyRNA *prop = NULL;
FCurve *fcu;
int array_index_max= array_index+1;
int ret= 0;
/* validate pointer first - exit if failure */
+ if (id == NULL) {
+ printf("Insert Key: no ID-block to insert keyframe in (Path = %s) \n", rna_path);
+ return 0;
+ }
+
RNA_id_pointer_create(id, &id_ptr);
if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) {
- printf("Insert Key: Could not insert keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path);
+ printf("Insert Key: Could not insert keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n",
+ (id)? id->name : "<Missing ID-Block>", rna_path);
return 0;
}
@@ -903,21 +880,27 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_
/* will only loop once unless the array index was -1 */
for (; array_index < array_index_max; array_index++) {
- /* make sure the F-Curve exists */
- fcu= verify_fcurve(act, group, rna_path, array_index, 1);
+ /* make sure the F-Curve exists
+ * - if we're replacing keyframes only, DO NOT create new F-Curves if they do not exist yet
+ * but still try to get the F-Curve if it exists...
+ */
+ fcu= verify_fcurve(act, group, rna_path, array_index, (flag & INSERTKEY_REPLACE)==0);
- /* set color mode if the F-Curve is new (i.e. without any keyframes) */
- if ((fcu->totvert == 0) && (flag & INSERTKEY_XYZ2RGB)) {
- /* for Loc/Rot/Scale and also Color F-Curves, the color of the F-Curve in the Graph Editor,
- * is determined by the array index for the F-Curve
- */
- if (ELEM4(RNA_property_subtype(prop), PROP_TRANSLATION, PROP_XYZ, PROP_EULER, PROP_COLOR)) {
- fcu->color_mode= FCURVE_COLOR_AUTO_RGB;
+ /* we may not have a F-Curve when we're replacing only... */
+ if (fcu) {
+ /* set color mode if the F-Curve is new (i.e. without any keyframes) */
+ if ((fcu->totvert == 0) && (flag & INSERTKEY_XYZ2RGB)) {
+ /* for Loc/Rot/Scale and also Color F-Curves, the color of the F-Curve in the Graph Editor,
+ * is determined by the array index for the F-Curve
+ */
+ if (ELEM4(RNA_property_subtype(prop), PROP_TRANSLATION, PROP_XYZ, PROP_EULER, PROP_COLOR)) {
+ fcu->color_mode= FCURVE_COLOR_AUTO_RGB;
+ }
}
+
+ /* insert keyframe */
+ ret += insert_keyframe_direct(ptr, prop, fcu, cfra, flag);
}
-
- /* insert keyframe */
- ret += insert_keyframe_direct(ptr, prop, fcu, cfra, flag);
}
return ret;
@@ -945,7 +928,7 @@ short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_
if ELEM(NULL, id, adt) {
printf("ERROR: no ID-block and/or AnimData to delete keyframe from \n");
return 0;
- }
+ }
/* validate pointer first - exit if failure */
RNA_id_pointer_create(id, &id_ptr);
@@ -1059,9 +1042,13 @@ static int modify_key_op_poll(bContext *C)
if (ELEM(NULL, sa, scene))
return 0;
- /* if Outliner, only allow in DataBlocks view */
- if (so && (so->outlinevis != SO_DATABLOCKS))
- return 0;
+ /* if Outliner, don't allow in some views */
+ if (so) {
+ if (ELEM4(so->outlinevis, SO_GROUPS, SO_LIBRARIES, SO_VERSE_SESSION, SO_VERSE_SESSION))
+ return 0;
+ if (ELEM3(so->outlinevis, SO_SEQUENCE, SO_USERDEF, SO_KEYMAP))
+ return 0;
+ }
/* TODO: checks for other space types can be added here */
@@ -1073,7 +1060,6 @@ static int modify_key_op_poll(bContext *C)
static int insert_key_exec (bContext *C, wmOperator *op)
{
- ListBase dsources = {NULL, NULL};
Scene *scene= CTX_data_scene(C);
KeyingSet *ks= NULL;
int type= RNA_int_get(op->ptr, "type");
@@ -1098,38 +1084,26 @@ static int insert_key_exec (bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- /* get context info for relative Keying Sets */
- if ((ks->flag & KEYINGSET_ABSOLUTE) == 0) {
- /* exit if no suitable data obtained */
- if (modifykey_get_context_data(C, &dsources, ks) == 0) {
- BKE_report(op->reports, RPT_ERROR, "No suitable context info for active Keying Set");
- return OPERATOR_CANCELLED;
- }
- }
-
/* try to insert keyframes for the channels specified by KeyingSet */
- success= modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ success= ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
if (G.f & G_DEBUG)
BKE_reportf(op->reports, RPT_INFO, "KeyingSet '%s' - Successfully added %d Keyframes \n", ks->name, success);
/* report failure or do updates? */
- if (success) {
+ if (success == MODIFYKEY_INVALID_CONTEXT) {
+ BKE_report(op->reports, RPT_ERROR, "No suitable context info for active Keying Set");
+ return OPERATOR_CANCELLED;
+ }
+ else if (success) {
/* if the appropriate properties have been set, make a note that we've inserted something */
if (RNA_boolean_get(op->ptr, "confirm_success"))
BKE_reportf(op->reports, RPT_INFO, "Successfully added %d Keyframes for KeyingSet '%s'", success, ks->name);
/* send notifiers that keyframes have been changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
else
BKE_report(op->reports, RPT_WARNING, "Keying Set failed to insert any keyframes");
-
-
- /* free temp context-data if available */
- if (dsources.first) {
- /* we assume that there is no extra data that needs to be freed from here... */
- BLI_freelistN(&dsources);
- }
/* send updates */
DAG_ids_flush_update(0);
@@ -1139,6 +1113,8 @@ static int insert_key_exec (bContext *C, wmOperator *op)
void ANIM_OT_keyframe_insert (wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Insert Keyframe";
ot->idname= "ANIM_OT_keyframe_insert";
@@ -1154,60 +1130,20 @@ void ANIM_OT_keyframe_insert (wmOperatorType *ot)
/* keyingset to use
* - here the type is int not enum, since many of the indicies here are determined dynamically
*/
- RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
+ prop= RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
+ RNA_def_property_flag(prop, PROP_HIDDEN);
/* confirm whether a keyframe was added by showing a popup
* - by default, this is enabled, since this operator is assumed to be called independently
*/
- RNA_def_boolean(ot->srna, "confirm_success", 1, "Confirm Successful Insert", "Show a popup when the keyframes get successfully added");
+ prop= RNA_def_boolean(ot->srna, "confirm_success", 1, "Confirm Successful Insert", "Show a popup when the keyframes get successfully added");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
}
/* Insert Key Operator (With Menu) ------------------------ */
/* This operator checks if a menu should be shown for choosing the KeyingSet to use,
- * then calls the
+ * then calls the menu if necessary before
*/
-static void insert_key_menu_prompt (bContext *C)
-{
- Scene *scene= CTX_data_scene(C);
- KeyingSet *ks;
- uiPopupMenu *pup;
- uiLayout *layout;
- int i = 0;
-
- pup= uiPupMenuBegin(C, "Insert Keyframe", 0);
- layout= uiPupMenuLayout(pup);
-
- /* active Keying Set
- * - only include entry if it exists
- */
- if (scene->active_keyingset) {
- uiItemIntO(layout, "Active Keying Set", 0, "ANIM_OT_keyframe_insert_menu", "type", i++);
- uiItemS(layout);
- }
- else
- i++;
-
- /* user-defined Keying Sets
- * - these are listed in the order in which they were defined for the active scene
- */
- if (scene->keyingsets.first) {
- for (ks= scene->keyingsets.first; ks; ks= ks->next)
- uiItemIntO(layout, ks->name, 0, "ANIM_OT_keyframe_insert_menu", "type", i++);
- uiItemS(layout);
- }
-
- /* builtin Keying Sets */
- i= -1;
- for (ks= builtin_keyingsets.first; ks; ks= ks->next) {
- /* only show KeyingSet if context is suitable */
- if (keyingset_context_ok_poll(C, ks)) {
- uiItemIntO(layout, ks->name, 0, "ANIM_OT_keyframe_insert_menu", "type", i--);
- }
- }
-
- uiPupMenuEnd(C, pup);
-}
-
static int insert_key_menu_invoke (bContext *C, wmOperator *op, wmEvent *event)
{
Scene *scene= CTX_data_scene(C);
@@ -1215,7 +1151,7 @@ static int insert_key_menu_invoke (bContext *C, wmOperator *op, wmEvent *event)
/* if prompting or no active Keying Set, show the menu */
if ((scene->active_keyingset == 0) || RNA_boolean_get(op->ptr, "always_prompt")) {
/* call the menu, which will call this operator again, hence the cancelled */
- insert_key_menu_prompt(C);
+ ANIM_keying_sets_menu_setup(C, op->type->name, "ANIM_OT_keyframe_insert_menu");
return OPERATOR_CANCELLED;
}
else {
@@ -1229,6 +1165,8 @@ static int insert_key_menu_invoke (bContext *C, wmOperator *op, wmEvent *event)
void ANIM_OT_keyframe_insert_menu (wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Insert Keyframe Menu";
ot->idname= "ANIM_OT_keyframe_insert_menu";
@@ -1244,24 +1182,26 @@ void ANIM_OT_keyframe_insert_menu (wmOperatorType *ot)
/* keyingset to use
* - here the type is int not enum, since many of the indicies here are determined dynamically
*/
- RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
+ prop= RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
+ RNA_def_property_flag(prop, PROP_HIDDEN);
/* confirm whether a keyframe was added by showing a popup
* - by default, this is disabled so that if a menu is shown, this doesn't come up too
*/
// XXX should this just be always on?
- RNA_def_boolean(ot->srna, "confirm_success", 0, "Confirm Successful Insert", "Show a popup when the keyframes get successfully added");
+ prop= RNA_def_boolean(ot->srna, "confirm_success", 0, "Confirm Successful Insert", "Show a popup when the keyframes get successfully added");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
/* whether the menu should always be shown
* - by default, the menu should only be shown when there is no active Keying Set (2.5 behaviour),
* although in some cases it might be useful to always shown (pre 2.5 behaviour)
*/
- RNA_def_boolean(ot->srna, "always_prompt", 0, "Always Show Menu", "");
+ prop= RNA_def_boolean(ot->srna, "always_prompt", 0, "Always Show Menu", "");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
}
/* Delete Key Operator ------------------------ */
static int delete_key_exec (bContext *C, wmOperator *op)
{
- ListBase dsources = {NULL, NULL};
Scene *scene= CTX_data_scene(C);
KeyingSet *ks= NULL;
int type= RNA_int_get(op->ptr, "type");
@@ -1286,38 +1226,27 @@ static int delete_key_exec (bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- /* get context info for relative Keying Sets */
- if ((ks->flag & KEYINGSET_ABSOLUTE) == 0) {
- /* exit if no suitable data obtained */
- if (modifykey_get_context_data(C, &dsources, ks) == 0) {
- BKE_report(op->reports, RPT_ERROR, "No suitable context info for active Keying Set");
- return OPERATOR_CANCELLED;
- }
- }
-
/* try to insert keyframes for the channels specified by KeyingSet */
- success= modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_DELETE, cfra);
+ success= ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_DELETE, cfra);
if (G.f & G_DEBUG)
printf("KeyingSet '%s' - Successfully removed %d Keyframes \n", ks->name, success);
/* report failure or do updates? */
- if (success) {
+ if (success == MODIFYKEY_INVALID_CONTEXT) {
+ BKE_report(op->reports, RPT_ERROR, "No suitable context info for active Keying Set");
+ return OPERATOR_CANCELLED;
+ }
+ else if (success) {
/* if the appropriate properties have been set, make a note that we've inserted something */
if (RNA_boolean_get(op->ptr, "confirm_success"))
BKE_reportf(op->reports, RPT_INFO, "Successfully removed %d Keyframes for KeyingSet '%s'", success, ks->name);
/* send notifiers that keyframes have been changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
else
BKE_report(op->reports, RPT_WARNING, "Keying Set failed to remove any keyframes");
- /* free temp context-data if available */
- if (dsources.first) {
- /* we assume that there is no extra data that needs to be freed from here... */
- BLI_freelistN(&dsources);
- }
-
/* send updates */
DAG_ids_flush_update(0);
@@ -1474,7 +1403,7 @@ static int insert_key_button_exec (bContext *C, wmOperator *op)
DAG_ids_flush_update(0);
/* send notifiers that keyframes have been changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED;
@@ -1544,7 +1473,7 @@ static int delete_key_button_exec (bContext *C, wmOperator *op)
DAG_ids_flush_update(0);
/* send notifiers that keyframes have been changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED;
diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c
index 63323a8519d..1c06266a148 100644
--- a/source/blender/editors/animation/keyingsets.c
+++ b/source/blender/editors/animation/keyingsets.c
@@ -40,18 +40,12 @@
#include "BLI_dynstr.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_object_types.h"
-#include "DNA_material_types.h"
#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
+#include "BKE_context.h"
#include "BKE_constraint.h"
#include "BKE_depsgraph.h"
#include "BKE_fcurve.h"
@@ -61,11 +55,8 @@
#include "BKE_key.h"
#include "BKE_material.h"
-#include "ED_anim_api.h"
#include "ED_keyframing.h"
-#include "ED_keyframes_edit.h"
#include "ED_screen.h"
-#include "ED_util.h"
#include "UI_interface.h"
@@ -74,7 +65,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_types.h"
#include "anim_intern.h"
@@ -174,6 +164,10 @@ static int remove_active_keyingset_exec (bContext *C, wmOperator *op)
BKE_report(op->reports, RPT_ERROR, "No active Keying Set to remove");
return OPERATOR_CANCELLED;
}
+ else if (scene->active_keyingset < 0) {
+ BKE_report(op->reports, RPT_ERROR, "Cannot remove built in Keying Set");
+ return OPERATOR_CANCELLED;
+ }
else
ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1);
@@ -256,14 +250,8 @@ static int remove_active_ks_path_exec (bContext *C, wmOperator *op)
KS_Path *ksp= BLI_findlink(&ks->paths, ks->active_path-1);
if (ksp) {
- /* NOTE: sync this code with BKE_keyingset_free() */
- {
- /* free RNA-path info */
- MEM_freeN(ksp->rna_path);
-
- /* free path itself */
- BLI_freelinkN(&ks->paths, ksp);
- }
+ /* remove the active path from the KeyingSet */
+ BKE_keyingset_free_path(ks, ksp);
/* the active path should now be the previously second-to-last active one */
ks->active_path--;
@@ -331,6 +319,10 @@ static int add_keyingset_button_exec (bContext *C, wmOperator *op)
scene->active_keyingset= BLI_countlist(&scene->keyingsets);
}
+ else if (scene->active_keyingset < 0) {
+ BKE_report(op->reports, RPT_ERROR, "Cannot add property to built in Keying Set");
+ return OPERATOR_CANCELLED;
+ }
else
ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1);
@@ -412,6 +404,10 @@ static int remove_keyingset_button_exec (bContext *C, wmOperator *op)
BKE_report(op->reports, RPT_ERROR, "No active Keying Set to remove property from");
return OPERATOR_CANCELLED;
}
+ else if (scene->active_keyingset < 0) {
+ BKE_report(op->reports, RPT_ERROR, "Cannot remove property from built in Keying Set");
+ return OPERATOR_CANCELLED;
+ }
else
ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1);
@@ -467,802 +463,344 @@ void ANIM_OT_keyingset_button_remove (wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-/* ************************************************** */
-/* KEYING SETS - EDITING API */
-
-/* UI API --------------------------------------------- */
-
-/* Build menu-string of available keying-sets (allocates memory for string)
- * NOTE: mode must not be longer than 64 chars
- */
-char *ANIM_build_keyingsets_menu (ListBase *list, short for_edit)
-{
- DynStr *pupds= BLI_dynstr_new();
- KeyingSet *ks;
- char buf[64];
- char *str;
- int i;
-
- /* add title first */
- BLI_dynstr_append(pupds, "Keying Sets%t|");
-
- /* add dummy entries for none-active */
- if (for_edit) {
- BLI_dynstr_append(pupds, "Add New%x-1|");
- BLI_dynstr_append(pupds, " %x0|");
- }
- else
- BLI_dynstr_append(pupds, "No Keying Set%x0|");
-
- /* loop through keyingsets, adding them */
- for (ks=list->first, i=1; ks; ks=ks->next, i++) {
- if (for_edit == 0)
- BLI_dynstr_append(pupds, "KS: ");
-
- BLI_dynstr_append(pupds, ks->name);
- BLI_snprintf( buf, 64, "%%x%d%s", i, ((ks->next)?"|":"") );
- BLI_dynstr_append(pupds, buf);
- }
-
- /* convert to normal MEM_malloc'd string */
- str= BLI_dynstr_get_cstring(pupds);
- BLI_dynstr_free(pupds);
-
- return str;
-}
-
-
/* ******************************************* */
-/* KEYING SETS - BUILTIN */
-
-#if 0 // XXX old keyingsets code based on adrcodes... to be restored in due course
-
-/* ------------- KeyingSet Defines ------------ */
-/* Note: these must all be named with the defks_* prefix, otherwise the template macro will not work! */
-
-/* macro for defining keyingset contexts */
-#define KSC_TEMPLATE(ctx_name) {&defks_##ctx_name[0], NULL, sizeof(defks_##ctx_name)/sizeof(bKeyingSet)}
-/* --- */
+/* Change Active KeyingSet Operator ------------------------ */
+/* This operator checks if a menu should be shown for choosing the KeyingSet to make the active one */
-/* check if option not available for deleting keys */
-static short incl_non_del_keys (bKeyingSet *ks, const char mode[])
+static int keyingset_active_menu_invoke (bContext *C, wmOperator *op, wmEvent *event)
{
- /* as optimisation, assume that it is sufficient to check only first letter
- * of mode (int comparison should be faster than string!)
- */
- //if (strcmp(mode, "Delete")==0)
- if (mode && mode[0]=='D')
- return 0;
-
- return 1;
+ /* call the menu, which will call this operator again, hence the cancelled */
+ ANIM_keying_sets_menu_setup(C, op->type->name, "ANIM_OT_keying_set_active_set");
+ return OPERATOR_CANCELLED;
}
-/* Object KeyingSets ------ */
-
-/* check if include shapekey entry */
-static short incl_v3d_ob_shapekey (bKeyingSet *ks, const char mode[])
+static int keyingset_active_menu_exec (bContext *C, wmOperator *op)
{
- //Object *ob= (G.obedit)? (G.obedit) : (OBACT); // XXX
- Object *ob= NULL;
- char *newname= NULL;
-
- if(ob==NULL)
- return 0;
-
- /* not available for delete mode */
- if (strcmp(mode, "Delete")==0)
- return 0;
+ Scene *scene= CTX_data_scene(C);
+ int type= RNA_int_get(op->ptr, "type");
- /* check if is geom object that can get shapekeys */
- switch (ob->type) {
- /* geometry? */
- case OB_MESH: newname= "Mesh"; break;
- case OB_CURVE: newname= "Curve"; break;
- case OB_SURF: newname= "Surface"; break;
- case OB_LATTICE: newname= "Lattice"; break;
+ /* simply set the scene's active keying set index, unless the type == 0
+ * (i.e. which happens if we want the current active to be maintained)
+ */
+ if (type)
+ scene->active_keyingset= type;
- /* not geometry! */
- default:
- return 0;
- }
-
- /* if ks is shapekey entry (this could be callled for separator before too!) */
- if (ks->flag == -3)
- BLI_strncpy(ks->name, newname, sizeof(ks->name));
+ /* send notifiers */
+ WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL);
- /* if it gets here, it's ok */
- return 1;
+ return OPERATOR_FINISHED;
}
-
-/* array for object keyingset defines */
-bKeyingSet defks_v3d_object[] =
-{
- /* include_cb, adrcode-getter, name, blocktype, flag, chan_num, adrcodes */
- {NULL, "Loc", ID_OB, 0, 3, {OB_LOC_X,OB_LOC_Y,OB_LOC_Z}},
- {NULL, "Rot", ID_OB, 0, 3, {OB_ROT_X,OB_ROT_Y,OB_ROT_Z}},
- {NULL, "Scale", ID_OB, 0, 3, {OB_SIZE_X,OB_SIZE_Y,OB_SIZE_Z}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "LocRot", ID_OB, 0, 6,
- {OB_LOC_X,OB_LOC_Y,OB_LOC_Z,
- OB_ROT_X,OB_ROT_Y,OB_ROT_Z}},
-
- {NULL, "LocScale", ID_OB, 0, 6,
- {OB_LOC_X,OB_LOC_Y,OB_LOC_Z,
- OB_SIZE_X,OB_SIZE_Y,OB_SIZE_Z}},
-
- {NULL, "LocRotScale", ID_OB, 0, 9,
- {OB_LOC_X,OB_LOC_Y,OB_LOC_Z,
- OB_ROT_X,OB_ROT_Y,OB_ROT_Z,
- OB_SIZE_X,OB_SIZE_Y,OB_SIZE_Z}},
-
- {NULL, "RotScale", ID_OB, 0, 6,
- {OB_ROT_X,OB_ROT_Y,OB_ROT_Z,
- OB_SIZE_X,OB_SIZE_Y,OB_SIZE_Z}},
-
- {incl_non_del_keys, "%l", 0, -1, 0, {0}}, // separator
-
- {incl_non_del_keys, "VisualLoc", ID_OB, INSERTKEY_MATRIX, 3, {OB_LOC_X,OB_LOC_Y,OB_LOC_Z}},
- {incl_non_del_keys, "VisualRot", ID_OB, INSERTKEY_MATRIX, 3, {OB_ROT_X,OB_ROT_Y,OB_ROT_Z}},
-
- {incl_non_del_keys, "VisualLocRot", ID_OB, INSERTKEY_MATRIX, 6,
- {OB_LOC_X,OB_LOC_Y,OB_LOC_Z,
- OB_ROT_X,OB_ROT_Y,OB_ROT_Z}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "Layer", ID_OB, 0, 1, {OB_LAY}}, // icky option...
- {NULL, "Available", ID_OB, -2, 0, {0}},
-
- {incl_v3d_ob_shapekey, "%l%l", 0, -1, 0, {0}}, // separator (linked to shapekey entry)
- {incl_v3d_ob_shapekey, "<ShapeKey>", ID_OB, -3, 0, {0}}
-};
-
-/* PoseChannel KeyingSets ------ */
-
-/* array for posechannel keyingset defines */
-bKeyingSet defks_v3d_pchan[] =
-{
- /* include_cb, name, blocktype, flag, chan_num, adrcodes */
- {NULL, "Loc", ID_PO, 0, 3, {AC_LOC_X,AC_LOC_Y,AC_LOC_Z}},
- {NULL, "Rot", ID_PO, COMMONKEY_PCHANROT, 1, {KAG_CHAN_EXTEND}},
- {NULL, "Scale", ID_PO, 0, 3, {AC_SIZE_X,AC_SIZE_Y,AC_SIZE_Z}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "LocRot", ID_PO, COMMONKEY_PCHANROT, 4,
- {AC_LOC_X,AC_LOC_Y,AC_LOC_Z,
- KAG_CHAN_EXTEND}},
-
- {NULL, "LocScale", ID_PO, 0, 6,
- {AC_LOC_X,AC_LOC_Y,AC_LOC_Z,
- AC_SIZE_X,AC_SIZE_Y,AC_SIZE_Z}},
-
- {NULL, "LocRotScale", ID_PO, COMMONKEY_PCHANROT, 7,
- {AC_LOC_X,AC_LOC_Y,AC_LOC_Z,AC_SIZE_X,AC_SIZE_Y,AC_SIZE_Z,
- KAG_CHAN_EXTEND}},
-
- {NULL, "RotScale", ID_PO, 0, 4,
- {AC_SIZE_X,AC_SIZE_Y,AC_SIZE_Z,
- KAG_CHAN_EXTEND}},
-
- {incl_non_del_keys, "%l", 0, -1, 0, {0}}, // separator
-
- {incl_non_del_keys, "VisualLoc", ID_PO, INSERTKEY_MATRIX, 3, {AC_LOC_X,AC_LOC_Y,AC_LOC_Z}},
- {incl_non_del_keys, "VisualRot", ID_PO, INSERTKEY_MATRIX|COMMONKEY_PCHANROT, 1, {KAG_CHAN_EXTEND}},
-
- {incl_non_del_keys, "VisualLocRot", ID_PO, INSERTKEY_MATRIX|COMMONKEY_PCHANROT, 4,
- {AC_LOC_X,AC_LOC_Y,AC_LOC_Z, KAG_CHAN_EXTEND}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "Available", ID_PO, -2, 0, {0}}
-};
-
-/* Material KeyingSets ------ */
-
-/* array for material keyingset defines */
-bKeyingSet defks_buts_shading_mat[] =
+
+void ANIM_OT_keying_set_active_set (wmOperatorType *ot)
{
- /* include_cb, name, blocktype, flag, chan_num, adrcodes */
- {NULL, "RGB", ID_MA, 0, 3, {MA_COL_R,MA_COL_G,MA_COL_B}},
- {NULL, "Alpha", ID_MA, 0, 1, {MA_ALPHA}},
- {NULL, "Halo Size", ID_MA, 0, 1, {MA_HASIZE}},
- {NULL, "Mode", ID_MA, 0, 1, {MA_MODE}}, // evil bitflags
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "All Color", ID_MA, 0, 18,
- {MA_COL_R,MA_COL_G,MA_COL_B,
- MA_ALPHA,MA_HASIZE, MA_MODE,
- MA_SPEC_R,MA_SPEC_G,MA_SPEC_B,
- MA_REF,MA_EMIT,MA_AMB,MA_SPEC,MA_HARD,
- MA_MODE,MA_TRANSLU,MA_ADD}},
-
- {NULL, "All Mirror", ID_MA, 0, 5,
- {MA_RAYM,MA_FRESMIR,MA_FRESMIRI,
- MA_FRESTRA,MA_FRESTRAI}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "Ofs", ID_MA, COMMONKEY_ADDMAP, 3, {MAP_OFS_X,MAP_OFS_Y,MAP_OFS_Z}},
- {NULL, "Size", ID_MA, COMMONKEY_ADDMAP, 3, {MAP_SIZE_X,MAP_SIZE_Y,MAP_SIZE_Z}},
+ /* identifiers */
+ ot->name= "Set Active Keying Set";
+ ot->idname= "ANIM_OT_keying_set_active_set";
- {NULL, "All Mapping", ID_MA, COMMONKEY_ADDMAP, 14,
- {MAP_OFS_X,MAP_OFS_Y,MAP_OFS_Z,
- MAP_SIZE_X,MAP_SIZE_Y,MAP_SIZE_Z,
- MAP_R,MAP_G,MAP_B,MAP_DVAR,
- MAP_COLF,MAP_NORF,MAP_VARF,MAP_DISP}},
+ /* callbacks */
+ ot->invoke= keyingset_active_menu_invoke;
+ ot->exec= keyingset_active_menu_exec;
+ ot->poll= ED_operator_areaactive;
- {NULL, "%l", 0, -1, 0, {0}}, // separator
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- {NULL, "Available", ID_MA, -2, 0, {0}}
-};
-
-/* World KeyingSets ------ */
+ /* keyingset to use
+ * - here the type is int not enum, since many of the indicies here are determined dynamically
+ */
+ RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
+}
-/* array for world keyingset defines */
-bKeyingSet defks_buts_shading_wo[] =
-{
- /* include_cb, name, blocktype, flag, chan_num, adrcodes */
- {NULL, "Zenith RGB", ID_WO, 0, 3, {WO_ZEN_R,WO_ZEN_G,WO_ZEN_B}},
- {NULL, "Horizon RGB", ID_WO, 0, 3, {WO_HOR_R,WO_HOR_G,WO_HOR_B}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "Mist", ID_WO, 0, 4, {WO_MISI,WO_MISTDI,WO_MISTSTA,WO_MISTHI}},
- {NULL, "Stars", ID_WO, 0, 5, {WO_STAR_R,WO_STAR_G,WO_STAR_B,WO_STARDIST,WO_STARSIZE}},
-
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "Ofs", ID_WO, COMMONKEY_ADDMAP, 3, {MAP_OFS_X,MAP_OFS_Y,MAP_OFS_Z}},
- {NULL, "Size", ID_WO, COMMONKEY_ADDMAP, 3, {MAP_SIZE_X,MAP_SIZE_Y,MAP_SIZE_Z}},
-
- {NULL, "All Mapping", ID_WO, COMMONKEY_ADDMAP, 14,
- {MAP_OFS_X,MAP_OFS_Y,MAP_OFS_Z,
- MAP_SIZE_X,MAP_SIZE_Y,MAP_SIZE_Z,
- MAP_R,MAP_G,MAP_B,MAP_DVAR,
- MAP_COLF,MAP_NORF,MAP_VARF,MAP_DISP}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "Available", ID_WO, -2, 0, {0}}
-};
+/* ******************************************* */
+/* REGISTERED KEYING SETS */
-/* Lamp KeyingSets ------ */
+/* Keying Set Type Info declarations */
+ListBase keyingset_type_infos = {NULL, NULL};
-/* array for lamp keyingset defines */
-bKeyingSet defks_buts_shading_la[] =
-{
- /* include_cb, name, blocktype, flag, chan_num, adrcodes */
- {NULL, "RGB", ID_LA, 0, 3, {LA_COL_R,LA_COL_G,LA_COL_B}},
- {NULL, "Energy", ID_LA, 0, 1, {LA_ENERGY}},
- {NULL, "Spot Size", ID_LA, 0, 1, {LA_SPOTSI}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "Ofs", ID_LA, COMMONKEY_ADDMAP, 3, {MAP_OFS_X,MAP_OFS_Y,MAP_OFS_Z}},
- {NULL, "Size", ID_LA, COMMONKEY_ADDMAP, 3, {MAP_SIZE_X,MAP_SIZE_Y,MAP_SIZE_Z}},
-
- {NULL, "All Mapping", ID_LA, COMMONKEY_ADDMAP, 14,
- {MAP_OFS_X,MAP_OFS_Y,MAP_OFS_Z,
- MAP_SIZE_X,MAP_SIZE_Y,MAP_SIZE_Z,
- MAP_R,MAP_G,MAP_B,MAP_DVAR,
- MAP_COLF,MAP_NORF,MAP_VARF,MAP_DISP}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
- {NULL, "Available", ID_LA, -2, 0, {0}}
-};
+/* Built-In Keying Sets (referencing type infos)*/
+ListBase builtin_keyingsets = {NULL, NULL};
-/* Texture KeyingSets ------ */
+/* --------------- */
-/* array for texture keyingset defines */
-bKeyingSet defks_buts_shading_tex[] =
+/* Find KeyingSet type info given a name */
+KeyingSetInfo *ANIM_keyingset_info_find_named (const char name[])
{
- /* include_cb, name, blocktype, flag, chan_num, adrcodes */
- {NULL, "Clouds", ID_TE, 0, 5,
- {TE_NSIZE,TE_NDEPTH,TE_NTYPE,
- TE_MG_TYP,TE_N_BAS1}},
-
- {NULL, "Marble", ID_TE, 0, 7,
- {TE_NSIZE,TE_NDEPTH,TE_NTYPE,
- TE_TURB,TE_MG_TYP,TE_N_BAS1,TE_N_BAS2}},
-
- {NULL, "Stucci", ID_TE, 0, 5,
- {TE_NSIZE,TE_NTYPE,TE_TURB,
- TE_MG_TYP,TE_N_BAS1}},
-
- {NULL, "Wood", ID_TE, 0, 6,
- {TE_NSIZE,TE_NTYPE,TE_TURB,
- TE_MG_TYP,TE_N_BAS1,TE_N_BAS2}},
-
- {NULL, "Magic", ID_TE, 0, 2, {TE_NDEPTH,TE_TURB}},
-
- {NULL, "Blend", ID_TE, 0, 1, {TE_MG_TYP}},
-
- {NULL, "Musgrave", ID_TE, 0, 6,
- {TE_MG_TYP,TE_MGH,TE_MG_LAC,
- TE_MG_OCT,TE_MG_OFF,TE_MG_GAIN}},
-
- {NULL, "Voronoi", ID_TE, 0, 9,
- {TE_VNW1,TE_VNW2,TE_VNW3,TE_VNW4,
- TE_VNMEXP,TE_VN_DISTM,TE_VN_COLT,
- TE_ISCA,TE_NSIZE}},
-
- {NULL, "Distorted Noise", ID_TE, 0, 4,
- {TE_MG_OCT,TE_MG_OFF,TE_MG_GAIN,TE_DISTA}},
-
- {NULL, "Color Filter", ID_TE, 0, 5,
- {TE_COL_R,TE_COL_G,TE_COL_B,TE_BRIGHT,TE_CONTRA}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
+ KeyingSetInfo *ksi;
- {NULL, "Available", ID_TE, -2, 0, {0}}
-};
-
-/* Object Buttons KeyingSets ------ */
-
-/* check if include particles entry */
-static short incl_buts_ob (bKeyingSet *ks, const char mode[])
-{
- //Object *ob= OBACT; // xxx
- Object *ob= NULL;
- /* only if object is mesh type */
+ /* sanity checks */
+ if ((name == NULL) || (name[0] == 0))
+ return NULL;
+
+ /* search by comparing names */
+ for (ksi = keyingset_type_infos.first; ksi; ksi = ksi->next) {
+ if (strcmp(ksi->idname, name) == 0)
+ return ksi;
+ }
- if(ob==NULL) return 0;
- return (ob->type == OB_MESH);
+ /* no matches found */
+ return NULL;
}
-/* array for texture keyingset defines */
-bKeyingSet defks_buts_object[] =
+/* Find builtin KeyingSet by name */
+KeyingSet *ANIM_builtin_keyingset_get_named (KeyingSet *prevKS, const char name[])
{
- /* include_cb, name, blocktype, flag, chan_num, adrcodes */
- {incl_buts_ob, "Surface Damping", ID_OB, 0, 1, {OB_PD_SDAMP}},
- {incl_buts_ob, "Random Damping", ID_OB, 0, 1, {OB_PD_RDAMP}},
- {incl_buts_ob, "Permeability", ID_OB, 0, 1, {OB_PD_PERM}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
+ KeyingSet *ks, *first=NULL;
- {NULL, "Force Strength", ID_OB, 0, 1, {OB_PD_FSTR}},
- {NULL, "Force Falloff", ID_OB, 0, 1, {OB_PD_FFALL}},
+ /* sanity checks any name to check? */
+ if (name[0] == 0)
+ return NULL;
- {NULL, "%l", 0, -1, 0, {0}}, // separator
+ /* get first KeyingSet to use */
+ if (prevKS && prevKS->next)
+ first= prevKS->next;
+ else
+ first= builtin_keyingsets.first;
+
+ /* loop over KeyingSets checking names */
+ for (ks= first; ks; ks= ks->next) {
+ if (strcmp(name, ks->name) == 0)
+ return ks;
+ }
- {NULL, "Available", ID_OB, -2, 0, {0}} // this will include ob-transforms too!
-};
-
-/* Camera Buttons KeyingSets ------ */
-
-/* check if include internal-renderer entry */
-static short incl_buts_cam1 (bKeyingSet *ks, const char mode[])
-{
- Scene *scene= NULL; // FIXME this will cause a crash, but we need an extra arg first!
- /* only if renderer is internal renderer */
- return (scene->r.renderer==R_INTERN);
+ /* no matches found */
+ return NULL;
}
-/* check if include external-renderer entry */
-static short incl_buts_cam2 (bKeyingSet *ks, const char mode[])
-{
- Scene *scene= NULL; // FIXME this will cause a crash, but we need an extra arg first!
- /* only if renderer is internal renderer */
- return (scene->r.renderer!=R_INTERN);
-}
+/* --------------- */
-/* array for camera keyingset defines */
-bKeyingSet defks_buts_cam[] =
+/* Add the given KeyingSetInfo to the list of type infos, and create an appropriate builtin set too */
+void ANIM_keyingset_info_register (const bContext *C, KeyingSetInfo *ksi)
{
- /* include_cb, name, blocktype, flag, chan_num, adrcodes */
- {NULL, "Lens", ID_CA, 0, 1, {CAM_LENS}},
- {NULL, "Clipping", ID_CA, 0, 2, {CAM_STA,CAM_END}},
- {NULL, "Focal Distance", ID_CA, 0, 1, {CAM_YF_FDIST}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
-
-
- {incl_buts_cam2, "Aperture", ID_CA, 0, 1, {CAM_YF_APERT}},
- {incl_buts_cam1, "Viewplane Shift", ID_CA, 0, 2, {CAM_SHIFT_X,CAM_SHIFT_Y}},
-
- {NULL, "%l", 0, -1, 0, {0}}, // separator
+ KeyingSet *ks;
- {NULL, "Available", ID_CA, -2, 0, {0}}
-};
-
-/* --- */
-
-/* Keying Context Defines - Must keep in sync with enumeration (eKS_Contexts) */
-bKeyingContext ks_contexts[] =
-{
- KSC_TEMPLATE(v3d_object),
- KSC_TEMPLATE(v3d_pchan),
-
- KSC_TEMPLATE(buts_shading_mat),
- KSC_TEMPLATE(buts_shading_wo),
- KSC_TEMPLATE(buts_shading_la),
- KSC_TEMPLATE(buts_shading_tex),
-
- KSC_TEMPLATE(buts_object),
- KSC_TEMPLATE(buts_cam)
-};
-
-/* Keying Context Enumeration - Must keep in sync with definitions*/
-typedef enum eKS_Contexts {
- KSC_V3D_OBJECT = 0,
- KSC_V3D_PCHAN,
-
- KSC_BUTS_MAT,
- KSC_BUTS_WO,
- KSC_BUTS_LA,
- KSC_BUTS_TEX,
-
- KSC_BUTS_OB,
- KSC_BUTS_CAM,
-
- /* make sure this last one remains untouched! */
- KSC_TOT_TYPES
-} eKS_Contexts;
-
-
-#endif // XXX old keyingsets code based on adrcodes... to be restored in due course
-
-/* Macros for Declaring KeyingSets ------------------- */
-
-/* A note about this system for declaring built-in Keying Sets:
- * One may ask, "What is the purpose of all of these macros and static arrays?" and
- * "Why not call the KeyingSets API defined in BKE_animsys.h?". The answer is two-fold.
- *
- * 1) Firstly, we use static arrays of struct definitions instead of function calls, as
- * it reduces the start-up overhead and allocated-memory footprint of Blender. If we called
- * the KeyingSets API to build these sets, the overhead of checking for unique names, allocating
- * memory for each and every path and KeyingSet, scattered around in RAM, all of which would increase
- * the startup time (which is totally unacceptable) and could lead to fragmentation+slower access times.
- * 2) Since we aren't using function calls, we need a nice way of defining these KeyingSets in a way which
- * is easily readable and less prone to breakage from changes to the underlying struct definitions. Further,
- * adding additional entries SHOULD NOT require custom code to be written to access these new entries/sets.
- * Therefore, here we have a system with nice, human-readable statements via macros, and static arrays which
- * are linked together using more special macros + struct definitions, allowing for such a generic + simple
- * initialisation function (init_builtin_keyingsets()) compared with that of something like the Nodes system.
- *
- * -- Joshua Leung, April 2009
- */
-
-/* Struct type for declaring builtin KeyingSets in as entries in static arrays*/
-typedef struct bBuiltinKeyingSet {
- KeyingSet ks; /* the KeyingSet to build */
- int tot; /* the total number of paths defined */
- KS_Path paths[64]; /* the paths for the KeyingSet to use */
-} bBuiltinKeyingSet;
-
- /* WARNING: the following macros must be kept in sync with the
- * struct definitions in DNA_anim_types.h!
+ /* create a new KeyingSet
+ * - inherit name and keyframing settings from the typeinfo
*/
-
-/* macro for defining a builtin KeyingSet */
-#define BI_KS_DEFINE_BEGIN(name, keyingflag) \
- {{NULL, NULL, {NULL, NULL}, name, KEYINGSET_BUILTIN, keyingflag},
-
-/* macro to finish defining a builtin KeyingSet */
-#define BI_KS_DEFINE_END \
- }
-
-/* macro to start defining paths for a builtin KeyingSet */
-#define BI_KS_PATHS_BEGIN(tot) \
- tot, {
-
-/* macro to finish defining paths for a builtin KeyingSet */
-#define BI_KS_PATHS_END \
- }
+ ks = BKE_keyingset_add(&builtin_keyingsets, ksi->name, 1, ksi->keyingflag);
-/* macro for defining a builtin KeyingSet's path */
-#define BI_KSP_DEFINE(id_type, templates, prop_path, array_index, flag, groupflag) \
- {NULL, NULL, NULL, "", id_type, templates, prop_path, array_index, flag, groupflag}
+ /* link this KeyingSet with its typeinfo */
+ memcpy(&ks->typeinfo, ksi->idname, sizeof(ks->typeinfo));
-/* macro for defining a builtin KeyingSet with no paths (use in place of BI_KS_PAHTS_BEGIN/END block) */
-#define BI_KS_PATHS_NONE \
- 0, {0}
-
-/* ---- */
-
-/* Struct type for finding all the arrays of builtin KeyingSets */
-typedef struct bBuiltinKSContext {
- bBuiltinKeyingSet *bks; /* array of KeyingSet definitions */
- int tot; /* number of KeyingSets in this array */
-} bBuiltinKSContext;
-
-/* macro for defining builtin KeyingSet sets
- * NOTE: all the arrays of sets must follow this naming convention!
- */
-#define BKSC_TEMPLATE(ctx_name) {&def_builtin_keyingsets_##ctx_name[0], sizeof(def_builtin_keyingsets_##ctx_name)/sizeof(bBuiltinKeyingSet)}
-
-
-/* 3D-View Builtin KeyingSets ------------------------ */
-
-static bBuiltinKeyingSet def_builtin_keyingsets_v3d[] =
-{
- /* Simple Keying Sets ************************************* */
- /* Keying Set - "Location" ---------- */
- BI_KS_DEFINE_BEGIN("Location", 0)
- BI_KS_PATHS_BEGIN(1)
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN, "location", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM)
- BI_KS_PATHS_END
- BI_KS_DEFINE_END,
-
- /* Keying Set - "Rotation" ---------- */
- BI_KS_DEFINE_BEGIN("Rotation", 0)
- BI_KS_PATHS_BEGIN(1)
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN|KSP_TEMPLATE_ROT, "rotation", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM)
- BI_KS_PATHS_END
- BI_KS_DEFINE_END,
-
- /* Keying Set - "Scaling" ---------- */
- BI_KS_DEFINE_BEGIN("Scaling", 0)
- BI_KS_PATHS_BEGIN(1)
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN, "scale", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM)
- BI_KS_PATHS_END
- BI_KS_DEFINE_END,
-
- /* Compound Keying Sets *********************************** */
- /* Keying Set - "LocRot" ---------- */
- BI_KS_DEFINE_BEGIN("LocRot", 0)
- BI_KS_PATHS_BEGIN(2)
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN, "location", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM),
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN|KSP_TEMPLATE_ROT, "rotation", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM)
- BI_KS_PATHS_END
- BI_KS_DEFINE_END,
-
- /* Keying Set - "LocRotScale" ---------- */
- BI_KS_DEFINE_BEGIN("LocRotScale", 0)
- BI_KS_PATHS_BEGIN(3)
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN, "location", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM),
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN|KSP_TEMPLATE_ROT, "rotation", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM),
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN, "scale", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM)
- BI_KS_PATHS_END
- BI_KS_DEFINE_END,
-
- /* Keying Sets with Keying Flags ************************* */
- /* Keying Set - "VisualLoc" ---------- */
- BI_KS_DEFINE_BEGIN("VisualLoc", INSERTKEY_MATRIX)
- BI_KS_PATHS_BEGIN(1)
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN, "location", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM)
- BI_KS_PATHS_END
- BI_KS_DEFINE_END,
-
- /* Keying Set - "Rotation" ---------- */
- BI_KS_DEFINE_BEGIN("VisualRot", INSERTKEY_MATRIX)
- BI_KS_PATHS_BEGIN(1)
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN|KSP_TEMPLATE_ROT, "rotation", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM)
- BI_KS_PATHS_END
- BI_KS_DEFINE_END,
-
- /* Keying Set - "VisualLocRot" ---------- */
- BI_KS_DEFINE_BEGIN("VisualLocRot", INSERTKEY_MATRIX)
- BI_KS_PATHS_BEGIN(2)
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN, "location", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM),
- BI_KSP_DEFINE(ID_OB, KSP_TEMPLATE_OBJECT|KSP_TEMPLATE_PCHAN|KSP_TEMPLATE_ROT, "rotation", 0, KSP_FLAG_WHOLE_ARRAY, KSP_GROUP_TEMPLATE_ITEM)
- BI_KS_PATHS_END
- BI_KS_DEFINE_END
-};
-
-/* All Builtin KeyingSets ------------------------ */
-
-/* total number of builtin KeyingSet contexts */
-#define MAX_BKSC_TYPES 1
-
-/* array containing all the available builtin KeyingSets definition sets
- * - size of this is MAX_BKSC_TYPES+1 so that we don't smash the stack
- */
-static bBuiltinKSContext def_builtin_keyingsets[MAX_BKSC_TYPES+1] =
-{
- BKSC_TEMPLATE(v3d)
- /* add more contexts above this line... */
-};
-
-
-/* ListBase of these KeyingSets chained up ready for usage
- * NOTE: this is exported to keyframing.c for use...
- */
-ListBase builtin_keyingsets = {NULL, NULL};
-
-/* Utility API ------------------------ */
+ /* add type-info to the list */
+ BLI_addtail(&keyingset_type_infos, ksi);
+}
-/* Link up all of the builtin Keying Sets when starting up Blender
- * This is called from WM_init() in wm_init_exit.c
- */
-void init_builtin_keyingsets (void)
+/* Remove the given KeyingSetInfo from the list of type infos, and also remove the builtin set if appropriate */
+void ANIM_keyingset_info_unregister (const bContext *C, KeyingSetInfo *ksi)
{
- bBuiltinKSContext *bksc;
- bBuiltinKeyingSet *bks;
- int bksc_i, bks_i;
-
- /* loop over all the sets of KeyingSets, setting them up, and chaining them to the builtins list */
- for (bksc_i= 0, bksc= &def_builtin_keyingsets[0]; bksc_i < MAX_BKSC_TYPES; bksc_i++, bksc++)
- {
- /* for each set definitions for a builtin KeyingSet, chain the paths to that KeyingSet and add */
- for (bks_i= 0, bks= bksc->bks; bks_i < bksc->tot; bks_i++, bks++)
- {
- KeyingSet *ks= &bks->ks;
- KS_Path *ksp;
- int pIndex;
-
- /* loop over paths, linking them to the KeyingSet and each other */
- for (pIndex= 0, ksp= &bks->paths[0]; pIndex < bks->tot; pIndex++, ksp++)
- BLI_addtail(&ks->paths, ksp);
-
- /* add KeyingSet to builtin sets list */
- BLI_addtail(&builtin_keyingsets, ks);
+ Scene *scene = CTX_data_scene(C);
+ KeyingSet *ks, *ksn;
+
+ /* find relevant builtin KeyingSets which use this, and remove them */
+ // TODO: this isn't done now, since unregister is really only used atm when we
+ // reload the scripts, which kindof defeats the purpose of "builtin"?
+ for (ks= builtin_keyingsets.first; ks; ks= ksn) {
+ ksn = ks->next;
+
+ /* remove if matching typeinfo name */
+ if (strcmp(ks->typeinfo, ksi->idname) == 0) {
+ BKE_keyingset_free(ks);
+ BLI_freelinkN(&scene->keyingsets, ks);
}
}
+
+ /* free the type info */
+ BLI_freelinkN(&keyingset_type_infos, ksi);
}
+/* --------------- */
-/* Get the first builtin KeyingSet with the given name, which occurs after the given one (or start of list if none given) */
-KeyingSet *ANIM_builtin_keyingset_get_named (KeyingSet *prevKS, char name[])
+void ANIM_keyingset_infos_exit ()
{
- KeyingSet *ks, *first=NULL;
-
- /* sanity checks - any name to check? */
- if (name[0] == 0)
- return NULL;
+ KeyingSetInfo *ksi, *next;
- /* get first KeyingSet to use */
- if (prevKS && prevKS->next)
- first= prevKS->next;
- else
- first= builtin_keyingsets.first;
+ /* free type infos */
+ for (ksi=keyingset_type_infos.first; ksi; ksi=next) {
+ next= ksi->next;
- /* loop over KeyingSets checking names */
- for (ks= first; ks; ks= ks->next) {
- if (strcmp(name, ks->name) == 0)
- return ks;
+ /* free extra RNA data, and remove from list */
+ if (ksi->ext.free)
+ ksi->ext.free(ksi->ext.data);
+ BLI_freelinkN(&keyingset_type_infos, ksi);
}
- /* no matches found */
- return NULL;
+ /* free builtin sets */
+ BKE_keyingsets_free(&builtin_keyingsets);
}
+/* ******************************************* */
+/* KEYING SETS API (for UI) */
+
+/* Getters for Active/Indices ----------------------------- */
/* Get the active Keying Set for the Scene provided */
KeyingSet *ANIM_scene_get_active_keyingset (Scene *scene)
{
- if (ELEM(NULL, scene, scene->keyingsets.first))
+ /* if no scene, we've got no hope of finding the Keying Set */
+ if (scene == NULL)
return NULL;
/* currently, there are several possibilities here:
* - 0: no active keying set
* - > 0: one of the user-defined Keying Sets, but indices start from 0 (hence the -1)
- * - < 0: a builtin keying set (XXX this isn't enabled yet so that we don't get errors on reading back files)
+ * - < 0: a builtin keying set
*/
if (scene->active_keyingset > 0)
return BLI_findlink(&scene->keyingsets, scene->active_keyingset-1);
- else // for now...
- return NULL;
+ else
+ return BLI_findlink(&builtin_keyingsets, (-scene->active_keyingset)-1);
}
-/* ******************************************* */
-/* KEYFRAME MODIFICATION */
-
-/* KeyingSet Menu Helpers ------------ */
-
-/* Extract the maximum set of requirements from the KeyingSet */
-static int keyingset_relative_get_templates (KeyingSet *ks)
+/* Get the index of the Keying Set provided, for the given Scene */
+int ANIM_scene_get_keyingset_index (Scene *scene, KeyingSet *ks)
{
- KS_Path *ksp;
- int templates= 0;
+ int index;
+
+ /* if no KeyingSet provided, have none */
+ if (ks == NULL)
+ return 0;
- /* loop over the paths (could be slow to do for a number of KeyingSets)? */
- for (ksp= ks->paths.first; ksp; ksp= ksp->next) {
- /* add the destination's templates to the set of templates required for the set */
- templates |= ksp->templates;
+ /* check if the KeyingSet exists in scene list */
+ if (scene) {
+ /* get index and if valid, return
+ * - (absolute) Scene KeyingSets are from (>= 1)
+ */
+ index = BLI_findindex(&scene->keyingsets, ks);
+ if (index != -1)
+ return (index + 1);
}
- return templates;
+ /* still here, so try builtins list too
+ * - builtins are from (<= -1)
+ * - none/invalid is (= 0)
+ */
+ index = BLI_findindex(&builtin_keyingsets, ks);
+ if (index != -1)
+ return -(index + 1);
+ else
+ return 0;
}
-/* Check if context data is suitable for the given Keying Set */
-short keyingset_context_ok_poll (bContext *C, KeyingSet *ks)
+/* Menu of All Keying Sets ----------------------------- */
+
+/* Create (and show) a menu containing all the Keying Sets which can be used in the current context */
+void ANIM_keying_sets_menu_setup (bContext *C, char title[], char op_name[])
{
- // TODO:
- // For 'relative' keyingsets (i.e. py-keyingsets), add a call here
- // which basically gets a listing of all the paths to be used for this
- // set.
+ Scene *scene= CTX_data_scene(C);
+ KeyingSet *ks;
+ uiPopupMenu *pup;
+ uiLayout *layout;
+ int i = 0;
+ pup= uiPupMenuBegin(C, title, 0);
+ layout= uiPupMenuLayout(pup);
- return 1;
-}
+ /* active Keying Set
+ * - only include entry if it exists
+ */
+ if (scene->active_keyingset) {
+ uiItemIntO(layout, "Active Keying Set", 0, op_name, "type", i++);
+ uiItemS(layout);
+ }
+ else
+ i++;
+
+ /* user-defined Keying Sets
+ * - these are listed in the order in which they were defined for the active scene
+ */
+ if (scene->keyingsets.first) {
+ for (ks= scene->keyingsets.first; ks; ks= ks->next) {
+ if (ANIM_keyingset_context_ok_poll(C, ks))
+ uiItemIntO(layout, ks->name, 0, op_name, "type", i++);
+ }
+ uiItemS(layout);
+ }
+
+ /* builtin Keying Sets */
+ i= -1;
+ for (ks= builtin_keyingsets.first; ks; ks= ks->next) {
+ /* only show KeyingSet if context is suitable */
+ if (ANIM_keyingset_context_ok_poll(C, ks))
+ uiItemIntO(layout, ks->name, 0, op_name, "type", i--);
+ }
+
+ uiPupMenuEnd(C, pup);
+}
+
+/* ******************************************* */
+/* KEYFRAME MODIFICATION */
-/* KeyingSet Context Operations ------------ */
+/* Polling API ----------------------------------------------- */
-/* Get list of data-sources from context (in 3D-View) for inserting keyframes using the given relative Keying Set */
-static short modifykey_get_context_v3d_data (bContext *C, ListBase *dsources, KeyingSet *ks)
+/* Check if KeyingSet can be used in the current context */
+short ANIM_keyingset_context_ok_poll (bContext *C, KeyingSet *ks)
{
- bCommonKeySrc *cks;
- Object *obact= CTX_data_active_object(C);
- int templates;
- short ok= 0;
-
- /* get the templates in use in this KeyingSet which we should supply data for */
- templates = keyingset_relative_get_templates(ks);
-
- /* check if the active object is in PoseMode (i.e. only deal with bones) */
- // TODO: check with the templates to see what we really need to store
- if ((obact && obact->pose) && (obact->mode & OB_MODE_POSE)) {
- /* Pose Mode: Selected bones */
-#if 0
- //set_pose_keys(ob); /* sets pchan->flag to POSE_KEY if bone selected, and clears if not */
+ if ((ks->flag & KEYINGSET_ABSOLUTE) == 0) {
+ KeyingSetInfo *ksi = ANIM_keyingset_info_find_named(ks->typeinfo);
- /* loop through posechannels */
- //for (pchan=ob->pose->chanbase.first; pchan; pchan=pchan->next) {
- // if (pchan->flag & POSE_KEY) {
- // }
- //}
-#endif
+ /* get the associated 'type info' for this KeyingSet */
+ if (ksi == NULL)
+ return 0;
+ // TODO: check for missing callbacks!
- CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
- {
- /* add a new keying-source */
- cks= MEM_callocN(sizeof(bCommonKeySrc), "bCommonKeySrc");
- BLI_addtail(dsources, cks);
-
- /* set necessary info */
- cks->id= &obact->id;
- cks->pchan= pchan;
-
- if (templates & KSP_TEMPLATE_CONSTRAINT)
- cks->con= constraints_get_active(&pchan->constraints);
-
- ok= 1;
- }
- CTX_DATA_END;
- }
- else {
- /* Object Mode: Selected objects */
- CTX_DATA_BEGIN(C, Object*, ob, selected_objects)
- {
- /* add a new keying-source */
- cks= MEM_callocN(sizeof(bCommonKeySrc), "bCommonKeySrc");
- BLI_addtail(dsources, cks);
-
- /* set necessary info */
- cks->id= &ob->id;
-
- if (templates & KSP_TEMPLATE_CONSTRAINT)
- cks->con= constraints_get_active(&ob->constraints);
-
- ok= 1;
- }
- CTX_DATA_END;
+ /* check if it can be used in the current context */
+ return (ksi->poll(ksi, C));
}
- /* return whether any data was extracted */
- return ok;
+ return 1;
}
-/* Get list of data-sources from context for inserting keyframes using the given relative Keying Set */
-short modifykey_get_context_data (bContext *C, ListBase *dsources, KeyingSet *ks)
+/* Special 'Overrides' Iterator for Relative KeyingSets ------ */
+
+/* 'Data Sources' for relative Keying Set 'overrides'
+ * - this is basically a wrapper for PointerRNA's in a linked list
+ * - do not allow this to be accessed from outside for now
+ */
+typedef struct tRKS_DSource {
+ struct tRKS_DSource *next, *prev;
+ PointerRNA ptr; /* the whole point of this exercise! */
+} tRKS_DSource;
+
+
+/* Iterator used for overriding the behaviour of iterators defined for
+ * relative Keying Sets, with the main usage of this being operators
+ * requiring Auto Keyframing. Internal Use Only!
+ */
+static void RKS_ITER_overrides_list (KeyingSetInfo *ksi, bContext *C, KeyingSet *ks, ListBase *dsources)
{
- ScrArea *sa= CTX_wm_area(C);
+ tRKS_DSource *ds;
- /* for now, the active area is used to determine what set of contexts apply */
- if (sa == NULL)
- return 0;
-
-#if 0
- switch (sa->spacetype) {
- case SPACE_VIEW3D: /* 3D-View: Selected Objects or Bones */
- return modifykey_get_context_v3d_data(C, dsources, ks);
+ for (ds = dsources->first; ds; ds = ds->next) {
+ /* run generate callback on this data */
+ ksi->generate(ksi, C, ks, &ds->ptr);
}
-
- /* nothing happened */
- return 0;
-#endif
+}
- /* looking into this code, it doesnt use the 3D view - Campbell */
- return modifykey_get_context_v3d_data(C, dsources, ks);
-}
+/* Add new data source for relative Keying Sets */
+void ANIM_relative_keyingset_add_source (ListBase *dsources, ID *id, StructRNA *srna, void *data)
+{
+ tRKS_DSource *ds;
+
+ /* sanity checks
+ * - we must have somewhere to output the data
+ * - we must have both srna+data (and with id too optionally), or id by itself only
+ */
+ if (dsources == NULL)
+ return;
+ if (ELEM(NULL, srna, data) && (id == NULL))
+ return;
+
+ /* allocate new elem, and add to the list */
+ ds = MEM_callocN(sizeof(tRKS_DSource), "tRKS_DSource");
+ BLI_addtail(dsources, ds);
+
+ /* depending on what data we have, create using ID or full pointer call */
+ if (srna && data)
+ RNA_pointer_create(id, srna, data, &ds->ptr);
+ else
+ RNA_id_pointer_create(id, &ds->ptr);
+}
/* KeyingSet Operations (Insert/Delete Keyframes) ------------ */
@@ -1270,8 +808,9 @@ short modifykey_get_context_data (bContext *C, ListBase *dsources, KeyingSet *ks
* by the KeyingSet. This takes into account many of the different combinations of using KeyingSets.
* Returns the number of channels that keyframes were added to
*/
-int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet *ks, short mode, float cfra)
+int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingSet *ks, short mode, float cfra)
{
+ Scene *scene= CTX_data_scene(C);
KS_Path *ksp;
int kflag=0, success= 0;
char *groupname= NULL;
@@ -1291,201 +830,101 @@ int modify_keyframes (Scene *scene, ListBase *dsources, bAction *act, KeyingSet
else if (mode == MODIFYKEY_MODE_DELETE)
kflag= 0;
- /* check if the KeyingSet is absolute or not (i.e. does it requires sources info) */
- if (ks->flag & KEYINGSET_ABSOLUTE) {
- /* Absolute KeyingSets are simpler to use, as all the destination info has already been
- * provided by the user, and is stored, ready to use, in the KeyingSet paths.
+ /* if relative Keying Sets, poll and build up the paths */
+ if ((ks->flag & KEYINGSET_ABSOLUTE) == 0) {
+ KeyingSetInfo *ksi = ANIM_keyingset_info_find_named(ks->typeinfo);
+
+ /* clear all existing paths
+ * NOTE: BKE_keyingset_free() frees all of the paths for the KeyingSet, but not the set itself
*/
- for (ksp= ks->paths.first; ksp; ksp= ksp->next) {
- int arraylen, i;
-
- /* get pointer to name of group to add channels to */
- if (ksp->groupmode == KSP_GROUP_NONE)
- groupname= NULL;
- else if (ksp->groupmode == KSP_GROUP_KSNAME)
- groupname= ks->name;
- else
- groupname= ksp->group;
-
- /* init arraylen and i - arraylen should be greater than i so that
- * normal non-array entries get keyframed correctly
- */
- i= ksp->array_index;
- arraylen= i;
-
- /* get length of array if whole array option is enabled */
- if (ksp->flag & KSP_FLAG_WHOLE_ARRAY) {
- PointerRNA id_ptr, ptr;
- PropertyRNA *prop;
-
- RNA_id_pointer_create(ksp->id, &id_ptr);
- if (RNA_path_resolve(&id_ptr, ksp->rna_path, &ptr, &prop) && prop)
- arraylen= RNA_property_array_length(&ptr, prop);
- }
-
- /* we should do at least one step */
- if (arraylen == i)
- arraylen++;
-
- /* for each possible index, perform operation
- * - assume that arraylen is greater than index
+ BKE_keyingset_free(ks);
+
+ /* get the associated 'type info' for this KeyingSet */
+ if (ksi == NULL)
+ return MODIFYKEY_MISSING_TYPEINFO;
+ // TODO: check for missing callbacks!
+
+ /* check if it can be used in the current context */
+ if (ksi->poll(ksi, C)) {
+ /* if a list of data sources are provided, run a special iterator over them,
+ * otherwise, just continue per normal
*/
- for (; i < arraylen; i++) {
- /* action to take depends on mode */
- if (mode == MODIFYKEY_MODE_INSERT)
- success += insert_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag);
- else if (mode == MODIFYKEY_MODE_DELETE)
- success += delete_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag);
- }
-
- /* set recalc-flags */
- if (ksp->id) {
- switch (GS(ksp->id->name)) {
- case ID_OB: /* Object (or Object-Related) Keyframes */
- {
- Object *ob= (Object *)ksp->id;
-
- ob->recalc |= OB_RECALC;
- }
- break;
- }
+ if (dsources)
+ RKS_ITER_overrides_list(ksi, C, ks, dsources);
+ else
+ ksi->iter(ksi, C, ks);
- /* send notifiers for updates (this doesn't require context to work!) */
- WM_main_add_notifier(NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
- }
+ /* if we don't have any paths now, then this still qualifies as invalid context */
+ if (ks->paths.first == NULL)
+ return MODIFYKEY_INVALID_CONTEXT;
+ }
+ else {
+ /* poll callback tells us that KeyingSet is useless in current context */
+ return MODIFYKEY_INVALID_CONTEXT;
}
}
- else if (dsources && dsources->first) {
- /* for each one of the 'sources', resolve the template markers and expand arrays, then insert keyframes */
- bCommonKeySrc *cks;
+
+ /* apply the paths as specified in the KeyingSet now */
+ for (ksp= ks->paths.first; ksp; ksp= ksp->next) {
+ int arraylen, i;
+ short kflag2;
- /* for each 'source' for keyframe data, resolve each of the paths from the KeyingSet */
- for (cks= dsources->first; cks; cks= cks->next) {
- /* for each path in KeyingSet, construct a path using the templates */
- for (ksp= ks->paths.first; ksp; ksp= ksp->next) {
- DynStr *pathds= BLI_dynstr_new();
- char *path = NULL;
- int arraylen, i;
-
- /* set initial group name */
- if (cks->id == NULL) {
- printf("ERROR: Skipping 'Common-Key' Source. No valid ID present.\n");
- continue;
- }
- else
- groupname= cks->id->name+2;
-
- /* construct the path */
- // FIXME: this currently only works with a few hardcoded cases
- if ((ksp->templates & KSP_TEMPLATE_PCHAN) && (cks->pchan)) {
- /* add basic pose-channel path access */
- BLI_dynstr_append(pathds, "pose.bones[\"");
- BLI_dynstr_append(pathds, cks->pchan->name);
- BLI_dynstr_append(pathds, "\"]");
-
- /* override default group name */
- groupname= cks->pchan->name;
- }
- if ((ksp->templates & KSP_TEMPLATE_CONSTRAINT) && (cks->con)) {
- /* add basic constraint path access */
- BLI_dynstr_append(pathds, "constraints[\"");
- BLI_dynstr_append(pathds, cks->con->name);
- BLI_dynstr_append(pathds, "\"]");
-
- /* override default group name */
- groupname= cks->con->name;
- }
+ /* since keying settings can be defined on the paths too, extend the path before using it */
+ kflag2 = (kflag | ksp->keyingflag);
+
+ /* get pointer to name of group to add channels to */
+ if (ksp->groupmode == KSP_GROUP_NONE)
+ groupname= NULL;
+ else if (ksp->groupmode == KSP_GROUP_KSNAME)
+ groupname= ks->name;
+ else
+ groupname= ksp->group;
+
+ /* init arraylen and i - arraylen should be greater than i so that
+ * normal non-array entries get keyframed correctly
+ */
+ i= ksp->array_index;
+ arraylen= i;
+
+ /* get length of array if whole array option is enabled */
+ if (ksp->flag & KSP_FLAG_WHOLE_ARRAY) {
+ PointerRNA id_ptr, ptr;
+ PropertyRNA *prop;
+
+ RNA_id_pointer_create(ksp->id, &id_ptr);
+ if (RNA_path_resolve(&id_ptr, ksp->rna_path, &ptr, &prop) && prop)
+ arraylen= RNA_property_array_length(&ptr, prop);
+ }
+
+ /* we should do at least one step */
+ if (arraylen == i)
+ arraylen++;
+
+ /* for each possible index, perform operation
+ * - assume that arraylen is greater than index
+ */
+ for (; i < arraylen; i++) {
+ /* action to take depends on mode */
+ if (mode == MODIFYKEY_MODE_INSERT)
+ success += insert_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag2);
+ else if (mode == MODIFYKEY_MODE_DELETE)
+ success += delete_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag2);
+ }
+
+ /* set recalc-flags */
+ if (ksp->id) {
+ switch (GS(ksp->id->name)) {
+ case ID_OB: /* Object (or Object-Related) Keyframes */
{
- /* add property stored in KeyingSet Path */
- if (BLI_dynstr_get_len(pathds))
- BLI_dynstr_append(pathds, ".");
-
- /* apply some further templates? */
- if (ksp->templates & KSP_TEMPLATE_ROT) {
- /* for builtin Keying Sets, this template makes the best fitting path for the
- * current rotation mode of the Object / PoseChannel to be used
- */
- if (strcmp(ksp->rna_path, "rotation")==0) {
- /* get rotation mode */
- short rotmode= (cks->pchan)? (cks->pchan->rotmode) :
- (GS(cks->id->name)==ID_OB)? ( ((Object *)cks->id)->rotmode ) :
- (0);
-
- /* determine path to build */
- if (rotmode == ROT_MODE_QUAT)
- BLI_dynstr_append(pathds, "rotation_quaternion");
- else if (rotmode == ROT_MODE_AXISANGLE)
- BLI_dynstr_append(pathds, "rotation_axis_angle");
- else
- BLI_dynstr_append(pathds, "rotation_euler");
- }
- }
- else {
- /* just directly use the path */
- BLI_dynstr_append(pathds, ksp->rna_path);
- }
-
- /* convert to C-string */
- path= BLI_dynstr_get_cstring(pathds);
- BLI_dynstr_free(pathds);
- }
-
- /* get pointer to name of group to add channels to
- * - KSP_GROUP_TEMPLATE_ITEM is handled above while constructing the paths
- */
- if (ksp->groupmode == KSP_GROUP_NONE)
- groupname= NULL;
- else if (ksp->groupmode == KSP_GROUP_KSNAME)
- groupname= ks->name;
- else if (ksp->groupmode == KSP_GROUP_NAMED)
- groupname= ksp->group;
-
- /* init arraylen and i - arraylen should be greater than i so that
- * normal non-array entries get keyframed correctly
- */
- i= ksp->array_index;
- arraylen= i+1;
-
- /* get length of array if whole array option is enabled */
- if (ksp->flag & KSP_FLAG_WHOLE_ARRAY) {
- PointerRNA id_ptr, ptr;
- PropertyRNA *prop;
+ Object *ob= (Object *)ksp->id;
- RNA_id_pointer_create(cks->id, &id_ptr);
- if (RNA_path_resolve(&id_ptr, path, &ptr, &prop) && prop)
- arraylen= RNA_property_array_length(&ptr, prop);
- }
-
- /* for each possible index, perform operation
- * - assume that arraylen is greater than index
- */
- for (; i < arraylen; i++) {
- /* action to take depends on mode */
- if (mode == MODIFYKEY_MODE_INSERT)
- success+= insert_keyframe(cks->id, act, groupname, path, i, cfra, kflag);
- else if (mode == MODIFYKEY_MODE_DELETE)
- success+= delete_keyframe(cks->id, act, groupname, path, i, cfra, kflag);
+ ob->recalc |= OB_RECALC_ALL; // XXX: only object transforms only?
}
-
- /* free the path */
- MEM_freeN(path);
+ break;
}
- /* set recalc-flags */
- if (cks->id) {
- switch (GS(cks->id->name)) {
- case ID_OB: /* Object (or Object-Related) Keyframes */
- {
- Object *ob= (Object *)cks->id;
-
- ob->recalc |= OB_RECALC;
- }
- break;
- }
-
- /* send notifiers for updates (this doesn't require context to work!) */
- WM_main_add_notifier(NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
- }
+ /* send notifiers for updates (this doesn't require context to work!) */
+ WM_main_add_notifier(NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
}
diff --git a/source/blender/editors/armature/CMakeLists.txt b/source/blender/editors/armature/CMakeLists.txt
new file mode 100644
index 00000000000..9e22bbd7d44
--- /dev/null
+++ b/source/blender/editors/armature/CMakeLists.txt
@@ -0,0 +1,39 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../../../intern/guardedalloc
+ ../../../../intern/opennl/extern
+)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_armature "${SRC}" "${INC}")
diff --git a/source/blender/editors/armature/Makefile b/source/blender/editors/armature/Makefile
index 0291bcb1830..4838282de92 100644
--- a/source/blender/editors/armature/Makefile
+++ b/source/blender/editors/armature/Makefile
@@ -50,7 +50,6 @@ CPPFLAGS += -I../../imbuf
CPPFLAGS += -I../../python
CPPFLAGS += -I../../gpu
CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../render/extern/include
CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
# own include
diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h
index 9d0db52d007..fadb4f234d9 100644
--- a/source/blender/editors/armature/armature_intern.h
+++ b/source/blender/editors/armature/armature_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -107,6 +107,8 @@ void POSE_OT_group_remove(struct wmOperatorType *ot);
void POSE_OT_group_remove(struct wmOperatorType *ot);
void POSE_OT_group_assign(struct wmOperatorType *ot);
void POSE_OT_group_unassign(struct wmOperatorType *ot);
+void POSE_OT_group_select(struct wmOperatorType *ot);
+void POSE_OT_group_deselect(struct wmOperatorType *ot);
void POSE_OT_paths_calculate(struct wmOperatorType *ot);
void POSE_OT_paths_clear(struct wmOperatorType *ot);
@@ -130,6 +132,7 @@ void SKETCH_OT_draw_stroke(struct wmOperatorType *ot);
void SKETCH_OT_draw_preview(struct wmOperatorType *ot);
void SKETCH_OT_finish_stroke(struct wmOperatorType *ot);
void SKETCH_OT_cancel_stroke(struct wmOperatorType *ot);
+void SKETCH_OT_convert(struct wmOperatorType *ot);
void SKETCH_OT_select(struct wmOperatorType *ot);
/* ******************************************************* */
diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c
index ba2c6597e43..7abf8575921 100644
--- a/source/blender/editors/armature/armature_ops.c
+++ b/source/blender/editors/armature/armature_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,13 +31,6 @@
#include "MEM_guardedalloc.h"
-#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -47,14 +40,12 @@
#include "BKE_utildefines.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_armature.h"
#include "ED_screen.h"
-#include "ED_object.h"
#include "ED_transform.h"
#include "armature_intern.h"
@@ -105,6 +96,7 @@ void ED_operatortypes_armature(void)
WM_operatortype_append(SKETCH_OT_draw_preview);
WM_operatortype_append(SKETCH_OT_finish_stroke);
WM_operatortype_append(SKETCH_OT_cancel_stroke);
+ WM_operatortype_append(SKETCH_OT_convert);
WM_operatortype_append(SKETCH_OT_select);
/* POSE */
@@ -134,6 +126,8 @@ void ED_operatortypes_armature(void)
WM_operatortype_append(POSE_OT_group_remove);
WM_operatortype_append(POSE_OT_group_assign);
WM_operatortype_append(POSE_OT_group_unassign);
+ WM_operatortype_append(POSE_OT_group_select);
+ WM_operatortype_append(POSE_OT_group_deselect);
WM_operatortype_append(POSE_OT_paths_calculate);
WM_operatortype_append(POSE_OT_paths_clear);
@@ -198,14 +192,16 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
/* Armature -> Etch-A-Ton ------------------------ */
WM_keymap_add_item(keymap, "SKETCH_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SKETCH_OT_delete", DELKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SKETCH_OT_finish_stroke", SELECTMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "SKETCH_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "SKETCH_OT_finish_stroke", RIGHTMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SKETCH_OT_cancel_stroke", ESCKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SKETCH_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
+ // Already part of view3d select
+ //WM_keymap_add_item(keymap, "SKETCH_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
/* sketch poll checks mode */
- WM_keymap_add_item(keymap, "SKETCH_OT_gesture", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", ACTIONMOUSE, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "SKETCH_OT_gesture", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", LEFTMOUSE, KM_PRESS, 0, 0);
+ kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
RNA_boolean_set(kmi->ptr, "snap", 1);
WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, KM_ANY, 0, 0);
kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, KM_ANY, KM_CTRL, 0);
@@ -242,6 +238,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "ARMATURE_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "ARMATURE_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "ARMATURE_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "ARMATURE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "ARMATURE_OT_extrude_move", EKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "ARMATURE_OT_extrude_forked", EKEY, KM_PRESS, KM_SHIFT, 0);
@@ -265,7 +262,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
/* special transforms: */
/* 1) envelope/b-bone size */
- kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
+ kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
RNA_enum_set(kmi->ptr, "mode", TFM_BONESIZE);
/* 2) set roll */
kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", RKEY, KM_PRESS, KM_CTRL, 0);
@@ -286,9 +283,9 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
kmi= WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
RNA_boolean_set(kmi->ptr, "unselected", 1);
WM_keymap_add_item(keymap, "POSE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
-
+
WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_apply", AKEY, KM_PRESS, KM_CTRL, 0);
-
+
// TODO: clear pose
WM_keymap_add_item(keymap, "POSE_OT_rot_clear", RKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "POSE_OT_loc_clear", GKEY, KM_PRESS, KM_ALT, 0);
@@ -342,12 +339,13 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
/* special transforms: */
/* 1) envelope/b-bone size */
- kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
+ kmi= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
RNA_enum_set(kmi->ptr, "mode", TFM_BONESIZE);
- // XXX this should probably be in screen instead... here for testing purposes in the meantime... - Aligorith
+ /* keyframes management */
WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_insert_menu", IKEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_delete_v3d", IKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0);
/* Pose -> PoseLib ------------- */
/* only set in posemode, by space_view3d listener */
diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c
index eeb256a8be5..7a2d26af4ed 100644
--- a/source/blender/editors/armature/editarmature.c
+++ b/source/blender/editors/armature/editarmature.c
@@ -34,22 +34,10 @@
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_ID.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_nla_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_ipo_types.h"
-#include "DNA_curve_types.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
@@ -72,7 +60,6 @@
#include "BKE_subsurf.h"
#include "BKE_utildefines.h"
#include "BKE_modifier.h"
-#include "PIL_time.h"
#include "BIF_gl.h"
#include "BIF_generate.h"
@@ -88,7 +75,6 @@
#include "ED_mesh.h"
#include "ED_object.h"
#include "ED_screen.h"
-#include "ED_transform.h"
#include "ED_util.h"
#include "ED_view3d.h"
@@ -102,7 +88,6 @@
#endif
/* ************* XXX *************** */
-static int okee() {return 0;}
static void BIF_undo_push(const char *msg) {}
/* ************* XXX *************** */
@@ -154,7 +139,7 @@ static void bone_free(bArmature *arm, EditBone *bone)
BLI_freelinkN(arm->edbo, bone);
}
-void ED_armature_edit_bone_remove(bArmature *arm, EditBone* exBone)
+void ED_armature_edit_bone_remove(bArmature *arm, EditBone *exBone)
{
EditBone *curBone;
@@ -471,8 +456,8 @@ void docenter_armature (Scene *scene, View3D *v3d, Object *ob, int centermode)
/* Do the adjustments */
for (ebone= arm->edbo->first; ebone; ebone=ebone->next) {
- sub_v3_v3v3(ebone->head, ebone->head, cent);
- sub_v3_v3v3(ebone->tail, ebone->tail, cent);
+ sub_v3_v3(ebone->head, cent);
+ sub_v3_v3(ebone->tail, cent);
}
/* Turn the list into an armature */
@@ -483,9 +468,7 @@ void docenter_armature (Scene *scene, View3D *v3d, Object *ob, int centermode)
copy_m3_m4(omat, ob->obmat);
mul_m3_v3(omat, cent);
- ob->loc[0] += cent[0];
- ob->loc[1] += cent[1];
- ob->loc[2] += cent[2];
+ add_v3_v3(ob->loc, cent);
}
else
ED_armature_edit_free(ob);
@@ -493,9 +476,10 @@ void docenter_armature (Scene *scene, View3D *v3d, Object *ob, int centermode)
/* ---------------------- */
-static EditBone *editbone_name_exists (ListBase *edbo, char *name)
+/* checks if an EditBone with a matching name already, returning the matching bone if it exists */
+static EditBone *editbone_name_exists (ListBase *edbo, const char *name)
{
- EditBone *eBone;
+ EditBone *eBone;
for (eBone=edbo->first; eBone; eBone=eBone->next) {
if (!strcmp(name, eBone->name))
@@ -508,9 +492,9 @@ static EditBone *editbone_name_exists (ListBase *edbo, char *name)
void unique_editbone_name (ListBase *edbo, char *name, EditBone *bone)
{
EditBone *dupli;
- char tempname[64];
- int number;
- char *dot;
+ char tempname[64];
+ int number;
+ char *dot;
dupli = editbone_name_exists(edbo, name);
@@ -545,7 +529,7 @@ static void applyarmature_fix_boneparents (Scene *scene, Object *armob)
/* apply current transform from parent (not yet destroyed),
* then calculate new parent inverse matrix
*/
- ED_object_apply_obmat(ob);
+ object_apply_mat4(ob, ob->obmat);
what_does_parent(scene, ob, &workob);
invert_m4_m4(ob->parentinv, workob.obmat);
@@ -906,6 +890,8 @@ int join_armature_exec(bContext *C, wmOperator *op)
BLI_remlink(&opose->chanbase, pchan);
BLI_addtail(&pose->chanbase, pchan);
+ free_pose_channels_hash(opose);
+ free_pose_channels_hash(pose);
}
ED_base_object_free_and_unlink(scene, base);
@@ -1109,6 +1095,7 @@ static void separate_armature_bones (Scene *scene, Object *ob, short sel)
/* free any of the extra-data this pchan might have */
free_pose_channel(pchan);
+ free_pose_channels_hash(ob->pose);
/* get rid of unneeded bone */
bone_free(arm, curbone);
@@ -1816,6 +1803,7 @@ static int armature_delete_selected_exec(bContext *C, wmOperator *op)
if (curBone && (curBone->flag & BONE_SELECTED) && (arm->layer & curBone->layer)) {
free_pose_channel(pchan);
+ free_pose_channels_hash(obedit->pose);
BLI_freelinkN (&obedit->pose->chanbase, pchan);
}
else {
@@ -1937,10 +1925,6 @@ void ED_armature_deselectall(Object *obedit, int toggle, int doundo)
}
ED_armature_sync_selection(arm->edbo);
- if (doundo) {
- if (sel==1) BIF_undo_push("Select All");
- else BIF_undo_push("Deselect All");
- }
}
@@ -1964,7 +1948,7 @@ int mouse_armature(bContext *C, short mval[2], int extend)
ED_armature_deselectall(obedit, 0, 0);
/* by definition the non-root connected bones have no root point drawn,
- so a root selection needs to be delivered to the parent tip */
+ so a root selection needs to be delivered to the parent tip */
if(selmask & BONE_SELECTED) {
if(nearBone->parent && (nearBone->flag & BONE_CONNECTED)) {
@@ -2045,15 +2029,6 @@ void ED_armature_edit_free(struct Object *ob)
}
}
-void ED_armature_edit_remake(Object *obedit)
-{
- if(okee("Reload original data")==0) return;
-
- ED_armature_to_edit(obedit);
-
-// BIF_undo_push("Delete bone");
-}
-
/* Put armature in EditMode */
void ED_armature_to_edit(Object *ob)
{
@@ -3691,7 +3666,7 @@ static int armature_subdivs_exec(bContext *C, wmOperator *op)
void ARMATURE_OT_subdivs(wmOperatorType *ot)
{
static EnumPropertyItem type_items[]= {
- {0, "SIMPLE", 0, "Simple", ""},
+ {0, "SIMPLE", 0, "Simple", ""},
{1, "MULTI", 0, "Multi", ""},
{0, NULL, 0, NULL, NULL}};
@@ -3849,7 +3824,7 @@ static void bone_connect_to_new_parent(ListBase *edbo, EditBone *selbone, EditBo
VECCOPY(selbone->head, actbone->tail);
selbone->rad_head= actbone->rad_tail;
- add_v3_v3v3(selbone->tail, selbone->tail, offset);
+ add_v3_v3(selbone->tail, offset);
/* offset for all its children */
for (ebone = edbo->first; ebone; ebone=ebone->next) {
@@ -3857,8 +3832,8 @@ static void bone_connect_to_new_parent(ListBase *edbo, EditBone *selbone, EditBo
for (par= ebone->parent; par; par= par->parent) {
if (par==selbone) {
- add_v3_v3v3(ebone->head, ebone->head, offset);
- add_v3_v3v3(ebone->tail, ebone->tail, offset);
+ add_v3_v3(ebone->head, offset);
+ add_v3_v3(ebone->tail, offset);
break;
}
}
@@ -3958,11 +3933,11 @@ static int armature_parent_set_invoke(bContext *C, wmOperator *op, wmEvent *even
}
CTX_DATA_END;
- uiItemEnumO(layout, NULL, 0, "ARMATURE_OT_parent_set", "type", ARM_PAR_CONNECT);
+ uiItemEnumO(layout, "ARMATURE_OT_parent_set", NULL, 0, "type", ARM_PAR_CONNECT);
/* ob becomes parent, make the associated menus */
if (allchildbones)
- uiItemEnumO(layout, NULL, 0, "ARMATURE_OT_parent_set", "type", ARM_PAR_OFFSET);
+ uiItemEnumO(layout, "ARMATURE_OT_parent_set", NULL, 0, "type", ARM_PAR_OFFSET);
uiPupMenuEnd(C, pup);
@@ -4212,7 +4187,7 @@ void ARMATURE_OT_select_hierarchy(wmOperatorType *ot)
/* props */
RNA_def_enum(ot->srna, "direction", direction_items,
- BONE_SELECT_PARENT, "Direction", "");
+ BONE_SELECT_PARENT, "Direction", "");
RNA_def_boolean(ot->srna, "extend", 0, "Add to Selection", "");
}
@@ -4228,8 +4203,8 @@ static void fix_connected_bone(EditBone *ebone)
/* if the parent has moved we translate child's head and tail accordingly*/
sub_v3_v3v3(diff, ebone->parent->tail, ebone->head);
- add_v3_v3v3(ebone->head, ebone->head, diff);
- add_v3_v3v3(ebone->tail, ebone->tail, diff);
+ add_v3_v3(ebone->head, diff);
+ add_v3_v3(ebone->tail, diff);
return;
}
@@ -4357,28 +4332,28 @@ void ARMATURE_OT_align(wmOperatorType *ot)
static int bone_looper(Object *ob, Bone *bone, void *data,
int (*bone_func)(Object *, Bone *, void *))
{
- /* We want to apply the function bone_func to every bone
+ /* We want to apply the function bone_func to every bone
* in an armature -- feed bone_looper the first bone and
* a pointer to the bone_func and watch it go!. The int count
* can be useful for counting bones with a certain property
* (e.g. skinnable)
*/
- int count = 0;
+ int count = 0;
- if (bone) {
+ if (bone) {
/* only do bone_func if the bone is non null */
- count += bone_func(ob, bone, data);
+ count += bone_func(ob, bone, data);
/* try to execute bone_func for the first child */
- count += bone_looper(ob, bone->childbase.first, data, bone_func);
+ count += bone_looper(ob, bone->childbase.first, data, bone_func);
/* try to execute bone_func for the next bone at this
* depth of the recursion.
*/
- count += bone_looper(ob, bone->next, data, bone_func);
- }
+ count += bone_looper(ob, bone->next, data, bone_func);
+ }
- return count;
+ return count;
}
/* called from editview.c, for mode-less pose selection */
@@ -4496,28 +4471,28 @@ void ED_pose_deselectall (Object *ob, int test, int doundo)
static int bone_skinnable(Object *ob, Bone *bone, void *datap)
{
- /* Bones that are deforming
- * are regarded to be "skinnable" and are eligible for
- * auto-skinning.
- *
- * This function performs 2 functions:
- *
- * a) It returns 1 if the bone is skinnable.
- * If we loop over all bones with this
- * function, we can count the number of
- * skinnable bones.
- * b) If the pointer data is non null,
- * it is treated like a handle to a
- * bone pointer -- the bone pointer
- * is set to point at this bone, and
- * the pointer the handle points to
- * is incremented to point to the
- * next member of an array of pointers
- * to bones. This way we can loop using
- * this function to construct an array of
- * pointers to bones that point to all
- * skinnable bones.
- */
+ /* Bones that are deforming
+ * are regarded to be "skinnable" and are eligible for
+ * auto-skinning.
+ *
+ * This function performs 2 functions:
+ *
+ * a) It returns 1 if the bone is skinnable.
+ * If we loop over all bones with this
+ * function, we can count the number of
+ * skinnable bones.
+ * b) If the pointer data is non null,
+ * it is treated like a handle to a
+ * bone pointer -- the bone pointer
+ * is set to point at this bone, and
+ * the pointer the handle points to
+ * is incremented to point to the
+ * next member of an array of pointers
+ * to bones. This way we can loop using
+ * this function to construct an array of
+ * pointers to bones that point to all
+ * skinnable bones.
+ */
Bone ***hbone;
int a, segments;
struct { Object *armob; void *list; int heat; } *data = datap;
@@ -4540,62 +4515,65 @@ static int bone_skinnable(Object *ob, Bone *bone, void *datap)
return segments;
}
}
- return 0;
+ return 0;
}
static int ED_vgroup_add_unique_bone(Object *ob, Bone *bone, void *data)
{
- /* This group creates a vertex group to ob that has the
- * same name as bone (provided the bone is skinnable).
+ /* This group creates a vertex group to ob that has the
+ * same name as bone (provided the bone is skinnable).
* If such a vertex group aleady exist the routine exits.
- */
+ */
if (!(bone->flag & BONE_NO_DEFORM)) {
if (!defgroup_find_name(ob,bone->name)) {
ED_vgroup_add_name(ob, bone->name);
return 1;
}
- }
- return 0;
+ }
+ return 0;
}
static int dgroup_skinnable(Object *ob, Bone *bone, void *datap)
{
- /* Bones that are deforming
- * are regarded to be "skinnable" and are eligible for
- * auto-skinning.
- *
- * This function performs 2 functions:
- *
- * a) If the bone is skinnable, it creates
- * a vertex group for ob that has
- * the name of the skinnable bone
- * (if one doesn't exist already).
- * b) If the pointer data is non null,
- * it is treated like a handle to a
- * bDeformGroup pointer -- the
- * bDeformGroup pointer is set to point
- * to the deform group with the bone's
- * name, and the pointer the handle
- * points to is incremented to point to the
- * next member of an array of pointers
- * to bDeformGroups. This way we can loop using
- * this function to construct an array of
- * pointers to bDeformGroups, all with names
- * of skinnable bones.
- */
- bDeformGroup ***hgroup, *defgroup;
+ /* Bones that are deforming
+ * are regarded to be "skinnable" and are eligible for
+ * auto-skinning.
+ *
+ * This function performs 2 functions:
+ *
+ * a) If the bone is skinnable, it creates
+ * a vertex group for ob that has
+ * the name of the skinnable bone
+ * (if one doesn't exist already).
+ * b) If the pointer data is non null,
+ * it is treated like a handle to a
+ * bDeformGroup pointer -- the
+ * bDeformGroup pointer is set to point
+ * to the deform group with the bone's
+ * name, and the pointer the handle
+ * points to is incremented to point to the
+ * next member of an array of pointers
+ * to bDeformGroups. This way we can loop using
+ * this function to construct an array of
+ * pointers to bDeformGroups, all with names
+ * of skinnable bones.
+ */
+ bDeformGroup ***hgroup, *defgroup= NULL;
int a, segments;
struct { Object *armob; void *list; int heat; } *data= datap;
+ int wpmode = (ob->mode & OB_MODE_WEIGHT_PAINT);
+ bArmature *arm= data->armob->data;
- if (!(ob->mode & OB_MODE_WEIGHT_PAINT) || !(bone->flag & BONE_HIDDEN_P)) {
+ if (!wpmode || !(bone->flag & BONE_HIDDEN_P)) {
if (!(bone->flag & BONE_NO_DEFORM)) {
if (data->heat && data->armob->pose && get_pose_channel(data->armob->pose, bone->name))
segments = bone->segments;
else
segments = 1;
-
- if (!(defgroup = defgroup_find_name(ob, bone->name)))
- defgroup = ED_vgroup_add_name(ob, bone->name);
+
+ if(!wpmode || ((arm->layer & bone->layer) && (bone->flag & BONE_SELECTED)))
+ if (!(defgroup = defgroup_find_name(ob, bone->name)))
+ defgroup = ED_vgroup_add_name(ob, bone->name);
if (data->list != NULL) {
hgroup = (bDeformGroup ***) &data->list;
@@ -4608,7 +4586,7 @@ static int dgroup_skinnable(Object *ob, Bone *bone, void *datap)
return segments;
}
}
- return 0;
+ return 0;
}
static void add_vgroups__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
@@ -4721,7 +4699,7 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
selected = MEM_callocN(numbones*sizeof(int), "selected");
for (j=0; j < numbones; ++j) {
- bone = bonelist[j];
+ bone = bonelist[j];
dgroup = dgrouplist[j];
/* handle bbone */
@@ -4769,7 +4747,7 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
selected[j] = 1;
/* find flipped group */
- if (mirror) {
+ if (dgroup && mirror) {
char name[32];
BLI_strncpy(name, dgroup->name, 32);
@@ -4786,7 +4764,7 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
}
/* create verts */
- mesh = (Mesh*)ob->data;
+ mesh = (Mesh*)ob->data;
verts = MEM_callocN(mesh->totvert*sizeof(*verts), "closestboneverts");
if (wpmode) {
@@ -4802,7 +4780,7 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
}
else if (modifiers_findByType(ob, eModifierType_Subsurf)) {
/* is subsurf on? Lets use the verts on the limit surface then.
- * = same amount of vertices as mesh, but vertices moved to the
+ * = same amount of vertices as mesh, but vertices moved to the
* subsurfed position, like for 'optimal'. */
subsurf_calculate_limit_positions(mesh, verts);
vertsfilled = 1;
@@ -4825,9 +4803,9 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
dgroupflip, root, tip, selected, mat4_to_scale(par->obmat));
}
- /* free the memory allocated */
- MEM_freeN(bonelist);
- MEM_freeN(dgrouplist);
+ /* free the memory allocated */
+ MEM_freeN(bonelist);
+ MEM_freeN(dgrouplist);
MEM_freeN(dgroupflip);
MEM_freeN(root);
MEM_freeN(tip);
@@ -4867,12 +4845,7 @@ static int pose_clear_scale_exec(bContext *C, wmOperator *op)
Object *ob= CTX_data_active_object(C);
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Scaling");
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
+ short autokey = 0;
/* only clear those channels that are not locked */
CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) {
@@ -4885,13 +4858,12 @@ static int pose_clear_scale_exec(bContext *C, wmOperator *op)
/* do auto-keyframing as appropriate */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
-
/* clear any unkeyed tags */
if (pchan->bone)
pchan->bone->flag &= ~BONE_UNKEYED;
+
+ /* tag for autokeying later */
+ autokey = 1;
}
else {
/* add unkeyed tags */
@@ -4901,6 +4873,16 @@ static int pose_clear_scale_exec(bContext *C, wmOperator *op)
}
CTX_DATA_END;
+ /* perform autokeying on the bones if needed */
+ if (autokey) {
+ /* insert keyframes */
+ ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+
+ /* now recalculate paths */
+ if ((ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS))
+ ED_pose_recalculate_paths(C, scene, ob);
+ }
+
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
@@ -4930,12 +4912,7 @@ static int pose_clear_loc_exec(bContext *C, wmOperator *op)
Object *ob= CTX_data_active_object(C);
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
+ short autokey = 0;
/* only clear those channels that are not locked */
CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) {
@@ -4949,13 +4926,12 @@ static int pose_clear_loc_exec(bContext *C, wmOperator *op)
/* do auto-keyframing as appropriate */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
-
/* clear any unkeyed tags */
if (pchan->bone)
pchan->bone->flag &= ~BONE_UNKEYED;
+
+ /* tag for autokeying later */
+ autokey = 1;
}
else {
/* add unkeyed tags */
@@ -4965,6 +4941,16 @@ static int pose_clear_loc_exec(bContext *C, wmOperator *op)
}
CTX_DATA_END;
+ /* perform autokeying on the bones if needed */
+ if (autokey) {
+ /* insert keyframes */
+ ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+
+ /* now recalculate paths */
+ if ((ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS))
+ ED_pose_recalculate_paths(C, scene, ob);
+ }
+
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
@@ -4994,12 +4980,7 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *op)
Object *ob= CTX_data_active_object(C);
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
+ short autokey = 0;
/* only clear those channels that are not locked */
CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) {
@@ -5079,7 +5060,7 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *op)
VECCOPY(pchan->eul, eul);
}
}
- }
+ } // Duplicated in source/blender/editors/object/object_transform.c
else {
if (pchan->rotmode == ROT_MODE_QUAT) {
pchan->quat[1]=pchan->quat[2]=pchan->quat[3]= 0.0f;
@@ -5097,13 +5078,12 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *op)
/* do auto-keyframing as appropriate */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
-
/* clear any unkeyed tags */
if (pchan->bone)
pchan->bone->flag &= ~BONE_UNKEYED;
+
+ /* tag for autokeying later */
+ autokey = 1;
}
else {
/* add unkeyed tags */
@@ -5113,6 +5093,16 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *op)
}
CTX_DATA_END;
+ /* perform autokeying on the bones if needed */
+ if (autokey) {
+ /* insert keyframes */
+ ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+
+ /* now recalculate paths */
+ if ((ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS))
+ ED_pose_recalculate_paths(C, scene, ob);
+ }
+
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
@@ -5528,7 +5518,7 @@ void ED_armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
// TODO: should we be using the database wide version instead (since drivers may break)
if (ob->adt) {
/* posechannels only... */
- BKE_animdata_fix_paths_rename(&ob->id, ob->adt, "pose.bones", oldname, newname);
+ BKE_animdata_fix_paths_rename(&ob->id, ob->adt, "pose.bones", oldname, newname, 0, 0, 1);
}
}
}
@@ -5596,8 +5586,8 @@ static int armature_autoside_names_exec (bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones)
{
BLI_strncpy(newname, ebone->name, sizeof(newname));
- bone_autoside_name(newname, 1, axis, ebone->head[axis], ebone->tail[axis]);
- ED_armature_bone_rename(arm, ebone->name, newname);
+ if(bone_autoside_name(newname, 1, axis, ebone->head[axis], ebone->tail[axis]))
+ ED_armature_bone_rename(arm, ebone->name, newname);
}
CTX_DATA_END;
@@ -5613,7 +5603,7 @@ static int armature_autoside_names_exec (bContext *C, wmOperator *op)
void ARMATURE_OT_autoside_names (wmOperatorType *ot)
{
static EnumPropertyItem axis_items[]= {
- {0, "XAXIS", 0, "X-Axis", "Left/Right"},
+ {0, "XAXIS", 0, "X-Axis", "Left/Right"},
{1, "YAXIS", 0, "Y-Axis", "Front/Back"},
{2, "ZAXIS", 0, "Z-Axis", "Top/Bottom"},
{0, NULL, 0, NULL, NULL}};
@@ -5793,7 +5783,7 @@ EditBone * test_subdivideByCorrelation(Scene *scene, Object *obedit, ReebArc *ar
lastBone = subdivideArcBy(arm, arm->edbo, iter, invmat, tmat, nextAdaptativeSubdivision);
}
- return lastBone;
+ return lastBone;
}
float arcLengthRatio(ReebArc *arc)
@@ -5880,7 +5870,7 @@ void generateSkeletonFromReebGraph(Scene *scene, ReebGraph *rg)
ED_armature_to_edit(obedit);
- arcBoneMap = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ arcBoneMap = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "SkeletonFromReebGraph gh");
BLI_markdownSymmetry((BGraph*)rg, rg->nodes.first, scene->toolsettings->skgen_symmetry_limit);
diff --git a/source/blender/editors/armature/editarmature_generate.c b/source/blender/editors/armature/editarmature_generate.c
index b92e1652b4e..c48e7686ca9 100644
--- a/source/blender/editors/armature/editarmature_generate.c
+++ b/source/blender/editors/armature/editarmature_generate.c
@@ -34,7 +34,6 @@
#include "MEM_guardedalloc.h"
-#include "DNA_listBase.h"
#include "DNA_scene_types.h"
#include "DNA_armature_types.h"
@@ -61,7 +60,7 @@ void setBoneRollFromNormal(EditBone *bone, float *no, float invmat[][4], float t
sub_v3_v3v3(tangent, bone->tail, bone->head);
project_v3_v3v3(vec, tangent, normal);
- sub_v3_v3v3(normal, normal, vec);
+ sub_v3_v3(normal, vec);
normalize_v3(normal);
@@ -103,7 +102,7 @@ float calcArcCorrelation(BArcIterator *iter, int start, int end, float v0[3], fl
IT_peek(iter, i);
sub_v3_v3v3(v, iter->p, v0);
project_v3_v3v3(d, v, n);
- sub_v3_v3v3(v, v, d);
+ sub_v3_v3(v, d);
dt = len_v3(d) - avg_t;
@@ -250,7 +249,7 @@ int nextLengthSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int st
{
VECCOPY(p, dv);
mul_v3_fl(p, f);
- add_v3_v3v3(p, p, vec0);
+ add_v3_v3(p, vec0);
}
else
{
@@ -266,7 +265,7 @@ int nextLengthSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int st
VECCOPY(p, dv);
mul_v3_fl(p, lengthLimit);
- add_v3_v3v3(p, p, head);
+ add_v3_v3(p, head);
}
return i - 1; /* restart at lower bound */
diff --git a/source/blender/editors/armature/editarmature_retarget.c b/source/blender/editors/armature/editarmature_retarget.c
index b3960c3cfd5..c2e21755f94 100644
--- a/source/blender/editors/armature/editarmature_retarget.c
+++ b/source/blender/editors/armature/editarmature_retarget.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,23 +29,13 @@
#include <math.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "PIL_time.h"
-#include "DNA_ID.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_view3d_types.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
@@ -68,7 +58,6 @@
#include "BIF_retarget.h"
-#include "PIL_time.h"
//#include "mydevice.h"
#include "reeb.h" // FIX ME
@@ -327,8 +316,8 @@ static RigGraph *newRigGraph()
rg->head = NULL;
- rg->bones_map = BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp);
- rg->controls_map = BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp);
+ rg->bones_map = BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "newRigGraph bones gh");
+ rg->controls_map = BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "newRigGraph cont gh");
rg->free_arc = RIG_freeRigArc;
rg->free_node = NULL;
@@ -572,7 +561,7 @@ static RigGraph *cloneRigGraph(RigGraph *src, ListBase *editbones, Object *ob, c
RigControl *ctrl;
RigGraph *rg;
- ptr_hash = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ ptr_hash = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "cloneRigGraph gh");
rg = newRigGraph();
diff --git a/source/blender/editors/armature/editarmature_sketch.c b/source/blender/editors/armature/editarmature_sketch.c
index 6d1d26865af..a1af68458f6 100644
--- a/source/blender/editors/armature/editarmature_sketch.c
+++ b/source/blender/editors/armature/editarmature_sketch.c
@@ -26,14 +26,8 @@
#include "MEM_guardedalloc.h"
-#include "DNA_listBase.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_object_types.h"
#include "DNA_armature_types.h"
-#include "DNA_userdef_types.h"
#include "RNA_define.h"
#include "RNA_access.h"
@@ -55,7 +49,6 @@
#include "ED_screen.h"
#include "BIF_gl.h"
-#include "UI_resources.h"
//#include "BIF_screen.h"
//#include "BIF_space.h"
//#include "BIF_mywindow.h"
@@ -175,7 +168,7 @@ void BIF_makeListTemplates(const bContext *C)
BLI_ghash_free(TEMPLATES_HASH, NULL, NULL);
}
- TEMPLATES_HASH = BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp);
+ TEMPLATES_HASH = BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp, "makeListTemplates gh");
TEMPLATES_CURRENT = 0;
for ( base = FIRSTBASE; base; base = base->next )
@@ -575,8 +568,8 @@ void sk_drawStroke(SK_Stroke *stk, int id, float color[3], int start, int end)
{
float d_rgb[3] = {1, 1, 1};
- VECCOPY(rgb, color);
- sub_v3_v3v3(d_rgb, d_rgb, rgb);
+ copy_v3_v3(rgb, color);
+ sub_v3_v3(d_rgb, rgb);
mul_v3_fl(d_rgb, 1.0f / (float)stk->nb_points);
for (i = 0; i < stk->nb_points; i++)
@@ -614,7 +607,7 @@ void sk_drawStroke(SK_Stroke *stk, int id, float color[3], int start, int end)
glPopMatrix();
- add_v3_v3v3(rgb, rgb, d_rgb);
+ add_v3_v3(rgb, d_rgb);
}
}
@@ -1012,7 +1005,7 @@ void sk_interpolateDepth(bContext *C, SK_Stroke *stk, int start, int end, float
viewray(ar, v3d, pval, ray_start, ray_normal);
mul_v3_fl(ray_normal, distance * progress / length);
- add_v3_v3v3(stk->points[i].p, stk->points[i].p, ray_normal);
+ add_v3_v3(stk->points[i].p, ray_normal);
progress += delta ;
}
@@ -1635,7 +1628,7 @@ int sk_getSelfIntersections(bContext *C, ListBase *list, SK_Stroke *gesture)
sub_v3_v3v3(isect->p, gesture->points[s_i + 1].p, gesture->points[s_i].p);
mul_v3_fl(isect->p, lambda);
- add_v3_v3v3(isect->p, isect->p, gesture->points[s_i].p);
+ add_v3_v3(isect->p, gesture->points[s_i].p);
BLI_addtail(list, isect);
@@ -2161,7 +2154,7 @@ void sk_applyGesture(bContext *C, SK_Sketch *sketch)
/********************************************/
-void sk_selectStroke(bContext *C, SK_Sketch *sketch, short mval[2], int extend)
+int sk_selectStroke(bContext *C, SK_Sketch *sketch, short mval[2], int extend)
{
ViewContext vc;
rcti rect;
@@ -2206,7 +2199,10 @@ void sk_selectStroke(bContext *C, SK_Sketch *sketch, short mval[2], int extend)
}
+ return 1;
}
+
+ return 0;
}
void sk_queueRedrawSketch(SK_Sketch *sketch)
@@ -2308,7 +2304,7 @@ void sk_drawSketch(Scene *scene, View3D *v3d, SK_Sketch *sketch, int with_names)
}
}
-#if 1
+#if 0
if (sketch->depth_peels.first != NULL)
{
float colors[8][3] = {
@@ -2478,7 +2474,8 @@ void BIF_sk_selectStroke(bContext *C, short mval[2], short extend)
if (sketch != NULL && ts->bone_sketching & BONE_SKETCHING)
{
- sk_selectStroke(C, sketch, mval, extend);
+ if (sk_selectStroke(C, sketch, mval, extend))
+ ED_area_tag_redraw(CTX_wm_area(C));
}
}
@@ -2565,6 +2562,17 @@ SK_Sketch* viewcontextSketch(ViewContext *vc, int create)
return sketch;
}
+static int sketch_convert(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SK_Sketch *sketch = contextSketch(C, 0);
+ if (sketch != NULL)
+ {
+ sk_convert(C, sketch);
+ ED_area_tag_redraw(CTX_wm_area(C));
+ }
+ return OPERATOR_FINISHED;
+}
+
static int sketch_cancel(bContext *C, wmOperator *op, wmEvent *event)
{
SK_Sketch *sketch = contextSketch(C, 0);
@@ -2597,8 +2605,8 @@ static int sketch_select(bContext *C, wmOperator *op, wmEvent *event)
if (sketch)
{
short extend = 0;
- sk_selectStroke(C, sketch, event->mval, extend);
- ED_area_tag_redraw(CTX_wm_area(C));
+ if (sk_selectStroke(C, sketch, event->mval, extend))
+ ED_area_tag_redraw(CTX_wm_area(C));
}
return OPERATOR_FINISHED;
@@ -2671,6 +2679,7 @@ static int sketch_draw_modal(bContext *C, wmOperator *op, wmEvent *event, short
RNA_boolean_set(op->ptr, "snap", snap);
break;
case MOUSEMOVE:
+ case INBETWEEN_MOUSEMOVE:
dd->mval[0] = event->mval[0];
dd->mval[1] = event->mval[1];
sk_draw_stroke(C, sketch, stk, dd, snap);
@@ -2866,6 +2875,21 @@ void SKETCH_OT_cancel_stroke(wmOperatorType *ot)
// ot->flag= OPTYPE_UNDO;
}
+void SKETCH_OT_convert(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "convert";
+ ot->idname= "SKETCH_OT_convert";
+
+ /* api callbacks */
+ ot->invoke= sketch_convert;
+
+ ot->poll= ED_operator_sketch_full_mode;
+
+ /* flags */
+ ot->flag= OPTYPE_UNDO;
+}
+
void SKETCH_OT_finish_stroke(wmOperatorType *ot)
{
/* identifiers */
diff --git a/source/blender/editors/armature/meshlaplacian.c b/source/blender/editors/armature/meshlaplacian.c
index 74793900f65..98986aa4663 100644
--- a/source/blender/editors/armature/meshlaplacian.c
+++ b/source/blender/editors/armature/meshlaplacian.c
@@ -33,7 +33,6 @@
#include "MEM_guardedalloc.h"
-#include "DNA_listBase.h"
#include "DNA_object_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
@@ -45,6 +44,7 @@
#include "BLI_memarena.h"
#include "BKE_DerivedMesh.h"
+#include "BKE_modifier.h"
#include "BKE_utildefines.h"
#ifdef RIGID_DEFORM
@@ -52,13 +52,10 @@
#include "BLI_polardecomp.h"
#endif
-#include "RE_raytrace.h"
-
#include "ONL_opennl.h"
#include "BLO_sys_types.h" // for intptr_t support
-#include "ED_armature.h"
#include "ED_mesh.h"
#include "meshlaplacian.h"
@@ -66,7 +63,7 @@
/* ************* XXX *************** */
static void waitcursor(int val) {}
-static void progress_bar() {}
+static void progress_bar(int dummy_val, const char *dummy) {}
static void start_progress_bar() {}
static void end_progress_bar() {}
static void error(char *str) { printf("error: %s\n", str); }
@@ -108,8 +105,7 @@ struct LaplacianSystem {
float *p; /* values from all p vectors */
float *mindist; /* minimum distance to a bone for all vertices */
- RayObject *raytree; /* ray tracing acceleration structure */
- RayFace *faces; /* faces to add to the ray tracing struture */
+ BVHTree *bvhtree; /* ray tracing acceleration structure */
MFace **vface; /* a face that the vertex belongs to */
} heat;
@@ -390,36 +386,72 @@ float laplacian_system_get_solution(int v)
/************************* Heat Bone Weighting ******************************/
/* From "Automatic Rigging and Animation of 3D Characters"
- Ilya Baran and Jovan Popovic, SIGGRAPH 2007 */
+ Ilya Baran and Jovan Popovic, SIGGRAPH 2007 */
#define C_WEIGHT 1.0f
#define WEIGHT_LIMIT_START 0.05f
#define WEIGHT_LIMIT_END 0.025f
#define DISTANCE_EPSILON 1e-4f
+typedef struct BVHCallbackUserData {
+ float start[3];
+ float vec[3];
+ LaplacianSystem *sys;
+} BVHCallbackUserData;
+
+static void bvh_callback(void *userdata, int index, const BVHTreeRay *ray, BVHTreeRayHit *hit)
+{
+ BVHCallbackUserData *data = (struct BVHCallbackUserData*)userdata;
+ MFace *mf = data->sys->heat.mface + index;
+ float (*verts)[3] = data->sys->heat.verts;
+ float lambda, uv[2], n[3], dir[3];
+
+ mul_v3_v3fl(dir, data->vec, hit->dist);
+
+ if(isect_ray_tri_v3(data->start, dir, verts[mf->v1], verts[mf->v2], verts[mf->v3], &lambda, uv)) {
+ normal_tri_v3(n, verts[mf->v1], verts[mf->v2], verts[mf->v3]);
+ if(lambda < 1.0f && dot_v3v3(n, data->vec) < -1e-5f) {
+ hit->index = index;
+ hit->dist *= lambda;
+ }
+ }
+
+ mul_v3_v3fl(dir, data->vec, hit->dist);
+
+ if(isect_ray_tri_v3(data->start, dir, verts[mf->v1], verts[mf->v3], verts[mf->v4], &lambda, uv)) {
+ normal_tri_v3(n, verts[mf->v1], verts[mf->v3], verts[mf->v4]);
+ if(lambda < 1.0f && dot_v3v3(n, data->vec) < -1e-5f) {
+ hit->index = index;
+ hit->dist *= lambda;
+ }
+ }
+}
+
/* Raytracing for vertex to bone/vertex visibility */
static void heat_ray_tree_create(LaplacianSystem *sys)
{
MFace *mface = sys->heat.mface;
+ float (*verts)[3] = sys->heat.verts;
int totface = sys->heat.totface;
int totvert = sys->heat.totvert;
int a;
- sys->heat.raytree = RE_rayobject_vbvh_create(totface);
- sys->heat.faces = MEM_callocN(sizeof(RayFace)*totface, "Heat RayFaces");
+ sys->heat.bvhtree = BLI_bvhtree_new(totface, 0.0f, 4, 6);
sys->heat.vface = MEM_callocN(sizeof(MFace*)*totvert, "HeatVFaces");
for(a=0; a<totface; a++) {
-
MFace *mf = mface+a;
- RayFace *rayface = sys->heat.faces+a;
-
- RayObject *obj = RE_rayface_from_coords(
- rayface, &sys->heat, mf,
- sys->heat.verts[mf->v1], sys->heat.verts[mf->v2],
- sys->heat.verts[mf->v3], mf->v4 ? sys->heat.verts[mf->v4] : 0
- );
- RE_rayobject_add(sys->heat.raytree, obj);
+ float bb[6];
+
+ INIT_MINMAX(bb, bb+3);
+ DO_MINMAX(verts[mf->v1], bb, bb+3);
+ DO_MINMAX(verts[mf->v2], bb, bb+3);
+ DO_MINMAX(verts[mf->v3], bb, bb+3);
+ if(mf->v4) {
+ DO_MINMAX(verts[mf->v4], bb, bb+3);
+ }
+
+ BLI_bvhtree_insert(sys->heat.bvhtree, a, bb, 2);
//Setup inverse pointers to use on isect.orig
sys->heat.vface[mf->v1]= mf;
@@ -427,12 +459,14 @@ static void heat_ray_tree_create(LaplacianSystem *sys)
sys->heat.vface[mf->v3]= mf;
if(mf->v4) sys->heat.vface[mf->v4]= mf;
}
- RE_rayobject_done(sys->heat.raytree);
+
+ BLI_bvhtree_balance(sys->heat.bvhtree);
}
static int heat_ray_source_visible(LaplacianSystem *sys, int vertex, int source)
{
- Isect isec;
+ BVHTreeRayHit hit;
+ BVHCallbackUserData data;
MFace *mface;
float end[3];
int visible;
@@ -441,27 +475,24 @@ static int heat_ray_source_visible(LaplacianSystem *sys, int vertex, int source)
if(!mface)
return 1;
- /* setup isec */
- memset(&isec, 0, sizeof(isec));
- isec.mode= RE_RAY_SHADOW;
- isec.lay= -1;
- isec.orig.ob = &sys->heat;
- isec.orig.face = mface;
- isec.skip = RE_SKIP_CULLFACE;
-
- copy_v3_v3(isec.start, sys->heat.verts[vertex]);
+ data.sys= sys;
+ copy_v3_v3(data.start, sys->heat.verts[vertex]);
if(sys->heat.root) /* bone */
- closest_to_line_segment_v3(end, isec.start,
+ closest_to_line_segment_v3(end, data.start,
sys->heat.root[source], sys->heat.tip[source]);
else /* vertex */
copy_v3_v3(end, sys->heat.source[source]);
- sub_v3_v3v3(isec.vec, end, isec.start);
- isec.labda = 1.0f - 1e-5;
- madd_v3_v3v3fl(isec.start, isec.start, isec.vec, 1e-5);
+ sub_v3_v3v3(data.vec, end, data.start);
+ madd_v3_v3v3fl(data.start, data.start, data.vec, 1e-5);
+ mul_v3_fl(data.vec, 1.0f - 2e-5);
- visible= !RE_rayobject_raycast(sys->heat.raytree, &isec);
+ /* pass normalized vec + distance to bvh */
+ hit.index = -1;
+ hit.dist = normalize_v3(data.vec);
+
+ visible= BLI_bvhtree_ray_cast(sys->heat.bvhtree, data.start, data.vec, 0.0f, &hit, bvh_callback, (void*)&data) == -1;
return visible;
}
@@ -525,10 +556,8 @@ static void heat_set_H(LaplacianSystem *sys, int vertex)
/* compute H entry */
if(numclosest > 0) {
- if(mindist > 1e-5)
- h= numclosest*C_WEIGHT/(mindist*mindist);
- else
- h= 1e10f;
+ mindist= maxf(mindist, 1e-4f);
+ h= numclosest*C_WEIGHT/(mindist*mindist);
}
else
h= 0.0f;
@@ -550,9 +579,9 @@ void heat_calc_vnormals(LaplacianSystem *sys)
normal_tri_v3( fnor,sys->verts[v1], sys->verts[v2], sys->verts[v3]);
- add_v3_v3v3(sys->heat.vnors[v1], sys->heat.vnors[v1], fnor);
- add_v3_v3v3(sys->heat.vnors[v2], sys->heat.vnors[v2], fnor);
- add_v3_v3v3(sys->heat.vnors[v3], sys->heat.vnors[v3], fnor);
+ add_v3_v3(sys->heat.vnors[v1], fnor);
+ add_v3_v3(sys->heat.vnors[v2], fnor);
+ add_v3_v3(sys->heat.vnors[v3], fnor);
}
for(a=0; a<sys->totvert; a++)
@@ -590,9 +619,8 @@ static void heat_laplacian_create(LaplacianSystem *sys)
static void heat_system_free(LaplacianSystem *sys)
{
- RE_rayobject_free(sys->heat.raytree);
+ BLI_bvhtree_free(sys->heat.bvhtree);
MEM_freeN(sys->heat.vface);
- MEM_freeN(sys->heat.faces);
MEM_freeN(sys->heat.mindist);
MEM_freeN(sys->heat.H);
@@ -620,13 +648,24 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
LaplacianSystem *sys;
MFace *mface;
float solution, weight;
- int *vertsflipped = NULL;
+ int *vertsflipped = NULL, *mask= NULL;
int a, totface, j, bbone, firstsegment, lastsegment, thrownerror = 0;
- /* count triangles */
+ /* count triangles and create mask */
+ if(me->editflag & ME_EDIT_PAINT_MASK)
+ mask= MEM_callocN(sizeof(int)*me->totvert, "heat_bone_weighting mask");
+
for(totface=0, a=0, mface=me->mface; a<me->totface; a++, mface++) {
totface++;
if(mface->v4) totface++;
+
+ if(mask && (mface->flag & ME_FACE_SEL)) {
+ mask[mface->v1]= 1;
+ mask[mface->v2]= 1;
+ mask[mface->v3]= 1;
+ if(mface->v4)
+ mask[mface->v4]= 1;
+ }
}
/* create laplacian */
@@ -663,6 +702,9 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
/* clear weights */
if(bbone && firstsegment) {
for(a=0; a<me->totvert; a++) {
+ if(mask && !mask[a])
+ continue;
+
ED_vgroup_vert_remove(ob, dgrouplist[j], a);
if(vertsflipped && dgroupflip[j] && vertsflipped[a] >= 0)
ED_vgroup_vert_remove(ob, dgroupflip[j], vertsflipped[a]);
@@ -681,6 +723,9 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
if(laplacian_system_solve(sys)) {
/* load solution into vertex groups */
for(a=0; a<me->totvert; a++) {
+ if(mask && !mask[a])
+ continue;
+
solution= laplacian_system_get_solution(a);
if(bbone) {
@@ -725,6 +770,9 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
/* remove too small vertex weights */
if(bbone && lastsegment) {
for(a=0; a<me->totvert; a++) {
+ if(mask && !mask[a])
+ continue;
+
weight= ED_vgroup_vert_weight(ob, dgrouplist[j], a);
weight= heat_limit_weight(weight);
if(weight <= 0.0f)
@@ -742,6 +790,7 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
/* free */
if(vertsflipped) MEM_freeN(vertsflipped);
+ if(mask) MEM_freeN(mask);
heat_system_free(sys);
@@ -751,7 +800,7 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
#ifdef RIGID_DEFORM
/********************** As-Rigid-As-Possible Deformation ******************/
/* From "As-Rigid-As-Possible Surface Modeling",
- Olga Sorkine and Marc Alexa, ESGP 2007. */
+ Olga Sorkine and Marc Alexa, ESGP 2007. */
/* investigate:
- transpose R in orthogonal
@@ -808,7 +857,7 @@ static void rigid_add_half_edge_to_rhs(LaplacianSystem *sys, EditVert *v1, EditV
mul_v3_fl(rhs, 0.5f);
mul_v3_fl(rhs, w);
- add_v3_v3v3(sys->rigid.rhs[v1->tmp.l], sys->rigid.rhs[v1->tmp.l], rhs);
+ add_v3_v3(sys->rigid.rhs[v1->tmp.l], rhs);
}
static void rigid_add_edge_to_rhs(LaplacianSystem *sys, EditVert *v1, EditVert *v2, float w)
@@ -1032,17 +1081,25 @@ typedef struct MeshDeformBind {
/* direct solver */
int *varidx;
-
- /* raytrace */
- RayObject *raytree;
} MeshDeformBind;
+typedef struct MeshDeformIsect {
+ float start[3];
+ float vec[3];
+ float labda;
+
+ void *face;
+ int isect;
+ float u, v;
+
+} MeshDeformIsect;
+
/* ray intersection */
/* our own triangle intersection, so we can fully control the epsilons and
* prevent corner case from going wrong*/
static int meshdeform_tri_intersect(float orig[3], float end[3], float vert0[3],
- float vert1[3], float vert2[3], float *isectco, float *uvw)
+ float vert1[3], float vert2[3], float *isectco, float *uvw)
{
float edge1[3], edge2[3], tvec[3], pvec[3], qvec[3];
float det,inv_det, u, v, dir[3], isectdir[3];
@@ -1099,63 +1156,7 @@ static int meshdeform_tri_intersect(float orig[3], float end[3], float vert0[3],
return 1;
}
-/* blender's raytracer is not use now, even though it is much faster. it can
- * give problems with rays falling through, so we use our own intersection
- * function above with tweaked epsilons */
-
-#if 0
-static MeshDeformBind *MESHDEFORM_BIND = NULL;
-
-static void meshdeform_ray_coords_func(RayFace *face, float **v1, float **v2, float **v3, float **v4)
-{
- MFace *mface= (MFace*)face;
- float (*cagecos)[3]= MESHDEFORM_BIND->cagecos;
-
- *v1= cagecos[mface->v1];
- *v2= cagecos[mface->v2];
- *v3= cagecos[mface->v3];
- *v4= (mface->v4)? cagecos[mface->v4]: NULL;
-}
-
-static int meshdeform_ray_check_func(Isect *is, RayFace *face)
-{
- return 1;
-}
-
-static void meshdeform_ray_tree_create(MeshDeformBind *mdb)
-{
- MFace *mface;
- float min[3], max[3];
- int a, totface;
-
- /* create a raytrace tree from the mesh */
- INIT_MINMAX(min, max);
-
- for(a=0; a<mdb->totcagevert; a++)
- DO_MINMAX(mdb->cagecos[a], min, max)
-
- MESHDEFORM_BIND= mdb;
-
- mface= mdb->cagedm->getTessFaceArray(mdb->cagedm);
- totface= mdb->cagedm->getNumTessFaces(mdb->cagedm);
-
- mdb->raytree= RE_ray_tree_create(64, totface, min, max,
- meshdeform_ray_coords_func, meshdeform_ray_check_func);
-
- for(a=0; a<totface; a++, mface++)
- RE_ray_tree_add_face(mdb->raytree, mface);
-
- RE_ray_tree_done(mdb->raytree);
-}
-
-static void meshdeform_ray_tree_free(MeshDeformBind *mdb)
-{
- MESHDEFORM_BIND= NULL;
- RE_ray_tree_free(mdb->raytree);
-}
-#endif
-
-static int meshdeform_intersect(MeshDeformBind *mdb, Isect *isec)
+static int meshdeform_intersect(MeshDeformBind *mdb, MeshDeformIsect *isec)
{
MFace *mface;
float face[4][3], co[3], uvw[3], len, nor[3], end[3];
@@ -1194,7 +1195,7 @@ static int meshdeform_intersect(MeshDeformBind *mdb, Isect *isec)
len= len_v3v3(isec->start, co)/len_v3v3(isec->start, end);
if(len < isec->labda) {
isec->labda= len;
- isec->hit.face = mface;
+ isec->face = mface;
isec->isect= (INPR(isec->vec, nor) <= 0.0f);
is= 1;
}
@@ -1207,7 +1208,7 @@ static int meshdeform_intersect(MeshDeformBind *mdb, Isect *isec)
static MDefBoundIsect *meshdeform_ray_tree_intersect(MeshDeformBind *mdb, float *co1, float *co2)
{
MDefBoundIsect *isect;
- Isect isec;
+ MeshDeformIsect isec;
float (*cagecos)[3];
MFace *mface;
float vert[4][3], len, end[3];
@@ -1215,21 +1216,15 @@ static MDefBoundIsect *meshdeform_ray_tree_intersect(MeshDeformBind *mdb, float
/* setup isec */
memset(&isec, 0, sizeof(isec));
- isec.mode= RE_RAY_MIRROR; /* we want the closest intersection */
- isec.lay= -1;
isec.labda= 1e10f;
VECADD(isec.start, co1, epsilon);
VECADD(end, co2, epsilon);
sub_v3_v3v3(isec.vec, end, isec.start);
-#if 0
- /*if(RE_ray_tree_intersect(mdb->raytree, &isec)) {*/
-#endif
-
if(meshdeform_intersect(mdb, &isec)) {
len= isec.labda;
- mface=(MFace*)isec.hit.face;
+ mface=(MFace*)isec.face;
/* create MDefBoundIsect */
isect= BLI_memarena_alloc(mdb->memarena, sizeof(*isect));
@@ -1747,7 +1742,7 @@ static void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd,
else
mdb->weights= MEM_callocN(sizeof(float)*mdb->totvert*mdb->totcagevert, "MDefWeights");
- mdb->memarena= BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE);
+ mdb->memarena= BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE, "harmonic coords arena");
BLI_memarena_use_calloc(mdb->memarena);
/* make bounding box equal size in all directions, add padding, and compute
@@ -1772,11 +1767,6 @@ static void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd,
progress_bar(0, "Setting up mesh deform system");
-#if 0
- /* create ray tree */
- meshdeform_ray_tree_create(mdb);
-#endif
-
totinside= 0;
for(a=0; a<mdb->totvert; a++) {
copy_v3_v3(vec, mdb->vertexcos[a]);
@@ -1787,7 +1777,7 @@ static void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd,
/* free temporary MDefBoundIsects */
BLI_memarena_free(mdb->memarena);
- mdb->memarena= BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE);
+ mdb->memarena= BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE, "harmonic coords arena");
/* start with all cells untyped */
for(a=0; a<mdb->size3; a++)
@@ -1799,11 +1789,6 @@ static void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd,
for(x=0; x<mdb->size; x++)
meshdeform_add_intersections(mdb, x, y, z);
-#if 0
- /* free ray tree */
- meshdeform_ray_tree_free(mdb);
-#endif
-
/* compute exterior and interior tags */
meshdeform_bind_floodfill(mdb);
@@ -1867,6 +1852,7 @@ static void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd,
BLI_memarena_free(mdb->memarena);
}
+#if 0
static void heat_weighting_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifierData *mmd, MeshDeformBind *mdb)
{
LaplacianSystem *sys;
@@ -1934,8 +1920,9 @@ static void heat_weighting_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifie
mmd->bindweights= mdb->weights;
}
+#endif
-void mesh_deform_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifierData *mmd, float *vertexcos, int totvert, float cagemat[][4])
+void mesh_deform_bind(Scene *scene, MeshDeformModifierData *mmd, float *vertexcos, int totvert, float cagemat[][4])
{
MeshDeformBind mdb;
MVert *mvert;
@@ -1962,25 +1949,32 @@ void mesh_deform_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifierData *mmd
mul_v3_m4v3(mdb.vertexcos[a], mdb.cagemat, vertexcos + a*3);
/* solve */
+#if 0
if(mmd->mode == MOD_MDEF_VOLUME)
harmonic_coordinates_bind(scene, mmd, &mdb);
else
heat_weighting_bind(scene, dm, mmd, &mdb);
+#else
+ harmonic_coordinates_bind(scene, mmd, &mdb);
+#endif
/* assign bind variables */
- mmd->bindcos= (float*)mdb.cagecos;
+ mmd->bindcagecos= (float*)mdb.cagecos;
mmd->totvert= mdb.totvert;
mmd->totcagevert= mdb.totcagevert;
copy_m4_m4(mmd->bindmat, mmd->object->obmat);
- /* transform bindcos to world space */
+ /* transform bindcagecos to world space */
for(a=0; a<mdb.totcagevert; a++)
- mul_m4_v3(mmd->object->obmat, mmd->bindcos+a*3);
+ mul_m4_v3(mmd->object->obmat, mmd->bindcagecos+a*3);
/* free */
mdb.cagedm->release(mdb.cagedm);
MEM_freeN(mdb.vertexcos);
+ /* compact weights */
+ modifier_mdef_compact_influences((ModifierData*)mmd);
+
end_progress_bar();
waitcursor(0);
}
diff --git a/source/blender/editors/armature/meshlaplacian.h b/source/blender/editors/armature/meshlaplacian.h
index 4e5fbec9c82..640eb33c945 100644
--- a/source/blender/editors/armature/meshlaplacian.h
+++ b/source/blender/editors/armature/meshlaplacian.h
@@ -78,7 +78,7 @@ void rigid_deform_end(int cancel);
/* Harmonic Coordinates */
-void mesh_deform_bind(struct Scene *scene, struct DerivedMesh *dm,
+void mesh_deform_bind(struct Scene *scene,
struct MeshDeformModifierData *mmd,
float *vertexcos, int totvert, float cagemat[][4]);
diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c
index 1aa7ea07078..21b99bc10c0 100644
--- a/source/blender/editors/armature/poseSlide.c
+++ b/source/blender/editors/armature/poseSlide.c
@@ -39,15 +39,10 @@
#include "BLI_dynstr.h"
#include "BLI_dlrbTree.h"
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_object_force.h"
#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
@@ -63,21 +58,15 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_types.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "BIF_gl.h"
-#include "ED_anim_api.h"
#include "ED_armature.h"
#include "ED_keyframes_draw.h"
-#include "ED_keyframing.h"
-#include "ED_keyframes_edit.h"
#include "ED_screen.h"
#include "armature_intern.h"
diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c
index e2fc2bd4088..c9a80318050 100644
--- a/source/blender/editors/armature/poseUtils.c
+++ b/source/blender/editors/armature/poseUtils.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -39,15 +39,10 @@
#include "BLI_dynstr.h"
#include "BLI_dlrbTree.h"
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_object_force.h"
#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
@@ -62,23 +57,15 @@
#include "BKE_utildefines.h"
#include "RNA_access.h"
-#include "RNA_define.h"
-#include "RNA_types.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "BIF_gl.h"
-#include "ED_anim_api.h"
#include "ED_armature.h"
-#include "ED_keyframes_draw.h"
#include "ED_keyframing.h"
-#include "ED_keyframes_edit.h"
-#include "ED_screen.h"
#include "armature_intern.h"
@@ -229,27 +216,28 @@ void poseAnim_mapping_autoKeyframe (bContext *C, Scene *scene, Object *ob, ListB
/* insert keyframes as necessary if autokeyframing */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
tPChanFCurveLink *pfl;
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
-
/* iterate over each pose-channel affected, applying the changes */
for (pfl= pfLinks->first; pfl; pfl= pfl->next) {
+ ListBase dsources = {NULL, NULL};
bPoseChannel *pchan= pfl->pchan;
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- /* insert keyframes */
+ /* add datasource override for the PoseChannel so KeyingSet will do right thing */
+ ANIM_relative_keyingset_add_source(&dsources, &ob->id, &RNA_PoseBone, pchan);
+
+ /* insert keyframes
+ * - these keyingsets here use dsources, since we need to specify exactly which keyframes get affected
+ */
if (pchan->flag & POSE_LOC)
- modify_keyframes(scene, &dsources, NULL, ks_loc, MODIFYKEY_MODE_INSERT, cframe);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks_loc, MODIFYKEY_MODE_INSERT, cframe);
if (pchan->flag & POSE_ROT)
- modify_keyframes(scene, &dsources, NULL, ks_rot, MODIFYKEY_MODE_INSERT, cframe);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks_rot, MODIFYKEY_MODE_INSERT, cframe);
if (pchan->flag & POSE_SIZE)
- modify_keyframes(scene, &dsources, NULL, ks_scale, MODIFYKEY_MODE_INSERT, cframe);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks_scale, MODIFYKEY_MODE_INSERT, cframe);
+
+ /* free the temp info */
+ BLI_freelistN(&dsources);
}
}
}
diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c
index 02194035ee9..408a2e1e599 100644
--- a/source/blender/editors/armature/poselib.c
+++ b/source/blender/editors/armature/poselib.c
@@ -39,15 +39,10 @@
#include "BLI_dynstr.h"
#include "BLI_dlrbTree.h"
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_object_force.h"
#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
@@ -63,7 +58,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_types.h"
#include "RNA_enum_types.h"
#include "WM_api.h"
@@ -331,19 +325,14 @@ static int poselib_add_menu_invoke (bContext *C, wmOperator *op, wmEvent *evt)
static int poselib_add_exec (bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
bAction *act = poselib_validate(ob);
bArmature *arm= (ob) ? ob->data : NULL;
bPose *pose= (ob) ? ob->pose : NULL;
- bPoseChannel *pchan;
TimeMarker *marker;
int frame= RNA_int_get(op->ptr, "frame");
char name[64];
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
/* sanity check (invoke should have checked this anyway) */
if (ELEM3(NULL, ob, arm, pose))
return OPERATOR_CANCELLED;
@@ -373,25 +362,12 @@ static int poselib_add_exec (bContext *C, wmOperator *op)
/* validate name */
BLI_uniquename(&act->markers, marker, "Pose", '.', offsetof(TimeMarker, name), sizeof(marker->name));
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
-
- /* loop through selected posechannels, keying their pose to the action */
- for (pchan= pose->chanbase.first; pchan; pchan= pchan->next) {
- /* check if available */
- if ((pchan->bone) && (arm->layer & pchan->bone->layer)) {
- if (pchan->bone->flag & BONE_SELECTED || pchan->bone==arm->act_bone) {
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
-
- /* KeyingSet to use depends on rotation mode (but that's handled by the templates code) */
- if (poselib_ks_locrotscale == NULL)
- poselib_ks_locrotscale= ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
- modify_keyframes(scene, &dsources, act, poselib_ks_locrotscale, MODIFYKEY_MODE_INSERT, (float)frame);
- }
- }
- }
+ /* KeyingSet to use depends on rotation mode (but that's handled by the templates code) */
+ if (poselib_ks_locrotscale == NULL)
+ poselib_ks_locrotscale= ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
+
+ /* make the keyingset use context info to determine where to add keyframes */
+ ANIM_apply_keyingset(C, NULL, act, poselib_ks_locrotscale, MODIFYKEY_MODE_INSERT, (float)frame);
/* store new 'active' pose number */
act->active_marker= BLI_countlist(&act->markers);
@@ -728,8 +704,8 @@ static void poselib_apply_pose (tPoseLib_PreviewData *pld)
bAction *act= pld->act;
bActionGroup *agrp;
- BeztEditData bed;
- BeztEditFunc group_ok_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc group_ok_cb;
int frame= 1;
/* get the frame */
@@ -741,15 +717,15 @@ static void poselib_apply_pose (tPoseLib_PreviewData *pld)
/* init settings for testing groups for keyframes */
group_ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
- memset(&bed, 0, sizeof(BeztEditData));
- bed.f1= ((float)frame) - 0.5f;
- bed.f2= ((float)frame) + 0.5f;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.f1= ((float)frame) - 0.5f;
+ ked.f2= ((float)frame) + 0.5f;
/* start applying - only those channels which have a key at this point in time! */
for (agrp= act->groups.first; agrp; agrp= agrp->next) {
/* check if group has any keyframes */
- if (ANIM_animchanneldata_keys_bezier_loop(&bed, agrp, ALE_GROUP, NULL, group_ok_cb, NULL, 0)) {
+ if (ANIM_animchanneldata_keyframes_loop(&ked, agrp, ALE_GROUP, NULL, group_ok_cb, NULL, 0)) {
/* has keyframe on this frame, so try to get a PoseChannel with this name */
pchan= get_pose_channel(pose, agrp->name);
@@ -784,13 +760,6 @@ static void poselib_keytag_pose (bContext *C, Scene *scene, tPoseLib_PreviewData
bAction *act= pld->act;
bActionGroup *agrp;
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &pld->ob->id;
-
/* start tagging/keying */
for (agrp= act->groups.first; agrp; agrp= agrp->next) {
/* only for selected action channels */
@@ -798,21 +767,30 @@ static void poselib_keytag_pose (bContext *C, Scene *scene, tPoseLib_PreviewData
pchan= get_pose_channel(pose, agrp->name);
if (pchan) {
- // TODO: use a standard autokeying function in future (to allow autokeying-editkeys to work)
- if (IS_AUTOKEY_MODE(scene, NORMAL)) {
- /* Set keys on pose
- * - KeyingSet to use depends on rotation mode
- * (but that's handled by the templates code)
+ if (autokeyframe_cfra_can_key(scene, &pld->ob->id)) {
+ ListBase dsources = {NULL, NULL};
+ KeyingSet *ks = NULL;
+
+ /* get KeyingSet to use
+ * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
+ * or otherwise key transforms only
*/
- // TODO: for getting the KeyingSet used, we should really check which channels were affected
if (poselib_ks_locrotscale == NULL)
poselib_ks_locrotscale= ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
+
+ if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+ ks = ANIM_scene_get_active_keyingset(scene);
+ else
+ ks = ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
-
- /* now insert the keyframe */
- modify_keyframes(scene, &dsources, NULL, poselib_ks_locrotscale, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ /* now insert the keyframe(s) using the Keying Set
+ * 1) add datasource override for the PoseChannel
+ * 2) insert keyframes
+ * 3) free the extra info
+ */
+ ANIM_relative_keyingset_add_source(&dsources, &pld->ob->id, &RNA_PoseBone, pchan);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ BLI_freelistN(&dsources);
/* clear any unkeyed tags */
if (pchan->bone)
@@ -828,7 +806,7 @@ static void poselib_keytag_pose (bContext *C, Scene *scene, tPoseLib_PreviewData
}
/* send notifiers for this */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
/* Apply the relevant changes to the pose */
@@ -876,7 +854,7 @@ static void poselib_preview_apply (bContext *C, wmOperator *op)
/* get search-string */
index= pld->search_cursor;
- if (IN_RANGE(index, 0, 64)) {
+ if (index >= 0 && index <= 64) {
memcpy(&tempstr[0], &pld->searchstr[0], index);
tempstr[index]= '|';
memcpy(&tempstr[index+1], &pld->searchstr[index], 64-index);
diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c
index 8f0a4de758e..d0a898b1b61 100644
--- a/source/blender/editors/armature/poseobject.c
+++ b/source/blender/editors/armature/poseobject.c
@@ -38,18 +38,9 @@
#include "BLI_dynstr.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_anim.h"
#include "BKE_idprop.h"
@@ -78,22 +69,18 @@
#include "WM_types.h"
#include "ED_armature.h"
-#include "ED_anim_api.h"
#include "ED_keyframing.h"
-#include "ED_object.h"
#include "ED_mesh.h"
#include "ED_screen.h"
-#include "ED_transform.h" /* for autokey TFM_TRANSLATION, etc */
-#include "ED_view3d.h"
#include "UI_interface.h"
#include "armature_intern.h"
/* ************* XXX *************** */
-static int pupmenu() {return 0;}
-static void error() {};
-static void BIF_undo_push() {}
+static int pupmenu(const char *dummy) {return 0;}
+static void error(const char *dummy) {};
+static void BIF_undo_push(const char *dummy) {}
/* ************* XXX *************** */
/* This function is used to indicate that a bone is selected and needs keyframes inserted */
@@ -277,19 +264,26 @@ void POSE_OT_paths_calculate (wmOperatorType *ot)
void ED_pose_clear_paths(Object *ob)
{
bPoseChannel *pchan;
+ short skipped = 0;
if ELEM(NULL, ob, ob->pose)
return;
- /* free the motionpath blocks */
+ /* free the motionpath blocks, but also take note of whether we skipped some... */
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
- if ((pchan->bone) && (pchan->bone->flag & BONE_SELECTED)) {
- if (pchan->mpath) {
+ if (pchan->mpath) {
+ if ((pchan->bone) && (pchan->bone->flag & BONE_SELECTED)) {
animviz_free_motionpath(pchan->mpath);
pchan->mpath= NULL;
}
+ else
+ skipped = 1;
}
}
+
+ /* if we didn't skip any, we shouldn't have any paths left */
+ if (skipped == 0)
+ ob->pose->avs.path_bakeflag &= ~MOTIONPATH_BAKE_HAS_PATHS;
}
/* operator callback for this */
@@ -697,7 +691,7 @@ void pose_copy_menu(Scene *scene)
/* copy constraints to tmpbase and apply 'local' tags before
* appending to list of constraints for this channel
*/
- copy_constraints(&tmp_constraints, &pchanact->constraints);
+ copy_constraints(&tmp_constraints, &pchanact->constraints, TRUE);
if ((ob->proxy) && (pchan->bone->layer & arm->layer_protected)) {
bConstraint *con;
@@ -806,7 +800,7 @@ void pose_copy_menu(Scene *scene)
/* copy constraints to tmpbase and apply 'local' tags before
* appending to list of constraints for this channel
*/
- copy_constraints(&tmp_constraints, &const_copy);
+ copy_constraints(&tmp_constraints, &const_copy, TRUE);
if ((ob->proxy) && (pchan->bone->layer & arm->layer_protected)) {
bConstraint *con;
@@ -842,14 +836,14 @@ void free_posebuf(void)
{
if (g_posebuf) {
bPoseChannel *pchan;
-
+
for (pchan= g_posebuf->chanbase.first; pchan; pchan= pchan->next) {
if(pchan->prop) {
IDP_FreeProperty(pchan->prop);
MEM_freeN(pchan->prop);
}
}
-
+
/* was copied without constraints */
BLI_freelistN(&g_posebuf->chanbase);
MEM_freeN(g_posebuf);
@@ -898,12 +892,6 @@ void POSE_OT_copy (wmOperatorType *ot)
/* ---- */
-/* Pointers to the builtin KeyingSets that we want to use */
-static KeyingSet *posePaste_ks_locrotscale = NULL; /* the only keyingset we'll need */
-
-/* transform.h */
-extern void autokeyframe_pose_cb_func(struct bContext *C, struct Scene *scene, struct View3D *v3d, struct Object *ob, int tmode, short targetless_ik);
-
static int pose_paste_exec (bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
@@ -912,13 +900,6 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
char name[32];
int flip= RNA_boolean_get(op->ptr, "flipped");
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
-
/* sanity checks */
if ELEM(NULL, ob, ob->pose)
return OPERATOR_CANCELLED;
@@ -953,6 +934,10 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
if (pchan->rotmode > 0) {
VECCOPY(pchan->eul, chan->eul);
}
+ else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
+ VECCOPY(pchan->rotAxis, chan->rotAxis);
+ pchan->rotAngle = chan->rotAngle;
+ }
else {
QUATCOPY(pchan->quat, chan->quat);
}
@@ -967,14 +952,14 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
/* quat/euler to axis angle */
if (chan->rotmode > 0)
- eulO_to_axis_angle( pchan->rotAxis, &pchan->rotAngle,chan->eul, chan->rotmode);
+ eulO_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, chan->eul, chan->rotmode);
else
- quat_to_axis_angle( pchan->rotAxis, &pchan->rotAngle,chan->quat);
+ quat_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, chan->quat);
}
else {
/* euler/axis-angle to quat */
if (chan->rotmode > 0)
- eulO_to_quat( pchan->quat,chan->eul, chan->rotmode);
+ eulO_to_quat(pchan->quat, chan->eul, chan->rotmode);
else
axis_angle_to_quat(pchan->quat, chan->rotAxis, pchan->rotAngle);
}
@@ -991,77 +976,74 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
float eul[3];
- axis_angle_to_eulO( eul, EULER_ORDER_DEFAULT,pchan->rotAxis, pchan->rotAngle);
+ axis_angle_to_eulO(eul, EULER_ORDER_DEFAULT, pchan->rotAxis, pchan->rotAngle);
eul[1]*= -1;
eul[2]*= -1;
- eulO_to_axis_angle( pchan->rotAxis, &pchan->rotAngle,eul, EULER_ORDER_DEFAULT);
-
- // experimental method (uncomment to test):
-#if 0
- /* experimental method: just flip the orientation of the axis on x/y axes */
- pchan->quat[1] *= -1;
- pchan->quat[2] *= -1;
-#endif
+ eulO_to_axis_angle(pchan->rotAxis, &pchan->rotAngle, eul, EULER_ORDER_DEFAULT);
}
else {
float eul[3];
- quat_to_eul( eul,pchan->quat);
+ quat_to_eul(eul, pchan->quat);
eul[1]*= -1;
eul[2]*= -1;
- eul_to_quat( pchan->quat,eul);
+ eul_to_quat(pchan->quat, eul);
}
}
- /* ID property */
- if(pchan->prop) {
- IDP_FreeProperty(pchan->prop);
- MEM_freeN(pchan->prop);
- pchan->prop= NULL;
+ /* ID properties
+ * - only free the existing properties if the channel we're copying from has them
+ * NOTE: this means that if the pose depends on some pchan property, the pose may not be ok,
+ * but this is better than loosing all the setting you've painstakingly added...
+ */
+ if (chan->prop) {
+ /* free the old properties since we want to replace them now */
+ if (pchan->prop) {
+ IDP_FreeProperty(pchan->prop);
+ MEM_freeN(pchan->prop);
+ pchan->prop= NULL;
+ }
+
+ /* now copy over the new copy of the properties */
+ pchan->prop= IDP_CopyProperty(chan->prop);
}
-
- if(chan->prop) {
- pchan->prop= IDP_CopyProperty(chan->prop);
+
+ /* keyframing tagging */
+ if (autokeyframe_cfra_can_key(scene, &ob->id)) {
+ ListBase dsources = {NULL, NULL};
+ KeyingSet *ks = NULL;
+
+ /* get KeyingSet to use
+ * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
+ * or otherwise key transforms only
+ */
+ if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+ ks = ANIM_scene_get_active_keyingset(scene);
+ else
+ ks = ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
+
+ /* now insert the keyframe(s) using the Keying Set
+ * 1) add datasource override for the PoseChannel
+ * 2) insert keyframes
+ * 3) free the extra info
+ */
+ ANIM_relative_keyingset_add_source(&dsources, &ob->id, &RNA_PoseBone, pchan);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ BLI_freelistN(&dsources);
+
+ /* clear any unkeyed tags */
+ if (chan->bone)
+ chan->bone->flag &= ~BONE_UNKEYED;
}
-
- /* auto key, TODO, fix up this INSERTAVAIL vs all other cases */
- if (IS_AUTOKEY_FLAG(INSERTAVAIL) == 0) { /* deal with this case later */
- if (autokeyframe_cfra_can_key(scene, &ob->id)) {
-
- /* Set keys on pose
- * - KeyingSet to use depends on rotation mode
- * (but that's handled by the templates code)
- */
- // TODO: for getting the KeyingSet used, we should really check which channels were affected
- if (posePaste_ks_locrotscale == NULL)
- posePaste_ks_locrotscale= ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
-
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
-
- modify_keyframes(scene, &dsources, NULL, posePaste_ks_locrotscale, MODIFYKEY_MODE_INSERT, (float)CFRA);
-
- /* clear any unkeyed tags */
- if (chan->bone)
- chan->bone->flag &= ~BONE_UNKEYED;
- }
- else {
- /* add unkeyed tags */
- if (chan->bone)
- chan->bone->flag |= BONE_UNKEYED;
- }
+ else {
+ /* add unkeyed tags */
+ if (chan->bone)
+ chan->bone->flag |= BONE_UNKEYED;
}
}
}
}
-
- if (IS_AUTOKEY_FLAG(INSERTAVAIL)) {
- View3D *v3d= CTX_wm_view3d(C);
- autokeyframe_pose_cb_func(C, scene, v3d, ob, TFM_TRANSLATION, 0);
- autokeyframe_pose_cb_func(C, scene, v3d, ob, TFM_ROTATION, 0);
- autokeyframe_pose_cb_func(C, scene, v3d, ob, TFM_TIME_SCALE, 0);
- }
-
+
/* Update event for pose and deformation children */
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
@@ -1070,13 +1052,13 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
}
else {
/* need to trick depgraph, action is not allowed to execute on pose */
+ // XXX: this is probably not an issue anymore
where_is_pose(scene, ob);
ob->recalc= 0;
}
/* notifiers for updates */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL); // XXX not really needed, but here for completeness...
return OPERATOR_FINISHED;
}
@@ -1265,8 +1247,8 @@ static int pose_group_assign_exec (bContext *C, wmOperator *op)
pose_add_group(ob);
/* add selected bones to group then */
- // NOTE: unfortunately, we cannot use the context-iterators here, since they might not be defined...
- CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) {
+ CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
+ {
pchan->agrp_index= pose->active_group;
done= 1;
}
@@ -1308,7 +1290,6 @@ static int pose_group_unassign_exec (bContext *C, wmOperator *op)
Object *ob;
bArmature *arm;
bPose *pose;
- bPoseChannel *pchan;
short done= 0;
/* since this call may also be used from the buttons window, we need to check for where to get the object */
@@ -1324,20 +1305,14 @@ static int pose_group_unassign_exec (bContext *C, wmOperator *op)
arm= ob->data;
/* find selected bones to remove from all bone groups */
- // NOTE: unfortunately, we cannot use the context-iterators here, since they might not be defined...
- // CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
- for (pchan= pose->chanbase.first; pchan; pchan= pchan->next) {
- /* ensure that PoseChannel is on visible layer and is not hidden in PoseMode */
- // NOTE: sync this view3d_context() in space_view3d.c
- if ((pchan->bone) && (arm->layer & pchan->bone->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
- if ((pchan->bone->flag & BONE_SELECTED) || (pchan->bone == arm->act_bone)) {
- if (pchan->agrp_index) {
- pchan->agrp_index= 0;
- done= 1;
- }
- }
+ CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
+ {
+ if (pchan->agrp_index) {
+ pchan->agrp_index= 0;
+ done= 1;
}
}
+ CTX_DATA_END;
/* notifiers for updates */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -1364,6 +1339,102 @@ void POSE_OT_group_unassign (wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
+static void pose_group_select(bContext *C, Object *ob, int select)
+{
+ bPose *pose= ob->pose;
+
+ CTX_DATA_BEGIN(C, bPoseChannel*, pchan, visible_pose_bones)
+ {
+ if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) {
+ if (select) {
+ if (pchan->agrp_index == pose->active_group)
+ pchan->bone->flag |= BONE_SELECTED;
+ }
+ else {
+ if (pchan->agrp_index == pose->active_group)
+ pchan->bone->flag &= ~BONE_SELECTED;
+ }
+ }
+ }
+ CTX_DATA_END;
+}
+
+static int pose_group_select_exec (bContext *C, wmOperator *op)
+{
+ ScrArea *sa= CTX_wm_area(C);
+ Object *ob;
+
+ /* since this call may also be used from the buttons window, we need to check for where to get the object */
+ if (sa->spacetype == SPACE_BUTS)
+ ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+ else
+ ob= CTX_data_active_object(C);
+
+ /* only continue if there's an object, and a pose there too */
+ if (ELEM(NULL, ob, ob->pose))
+ return OPERATOR_CANCELLED;
+
+ pose_group_select(C, ob, 1);
+
+ /* notifiers for updates */
+ WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+
+ return OPERATOR_FINISHED;
+}
+
+void POSE_OT_group_select (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Select Bones of Bone Group";
+ ot->idname= "POSE_OT_group_select";
+ ot->description= "Select bones in active Bone Group";
+
+ /* api callbacks */
+ ot->exec= pose_group_select_exec;
+ ot->poll= ED_operator_posemode;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int pose_group_deselect_exec (bContext *C, wmOperator *op)
+{
+ ScrArea *sa= CTX_wm_area(C);
+ Object *ob;
+
+ /* since this call may also be used from the buttons window, we need to check for where to get the object */
+ if (sa->spacetype == SPACE_BUTS)
+ ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+ else
+ ob= CTX_data_active_object(C);
+
+ /* only continue if there's an object, and a pose there too */
+ if (ELEM(NULL, ob, ob->pose))
+ return OPERATOR_CANCELLED;
+
+ pose_group_select(C, ob, 0);
+
+ /* notifiers for updates */
+ WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+
+ return OPERATOR_FINISHED;
+}
+
+void POSE_OT_group_deselect (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Deselecte Bone Group";
+ ot->idname= "POSE_OT_group_deselect";
+ ot->description= "Deselect bones of active Bone Group";
+
+ /* api callbacks */
+ ot->exec= pose_group_deselect_exec;
+ ot->poll= ED_operator_posemode;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
/* ********************************************** */
static int pose_flip_names_exec (bContext *C, wmOperator *op)
@@ -1428,8 +1499,8 @@ static int pose_autoside_names_exec (bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
{
BLI_strncpy(newname, pchan->name, sizeof(newname));
- bone_autoside_name(newname, 1, axis, pchan->bone->head[axis], pchan->bone->tail[axis]);
- ED_armature_bone_rename(arm, pchan->name, newname);
+ if(bone_autoside_name(newname, 1, axis, pchan->bone->head[axis], pchan->bone->tail[axis]))
+ ED_armature_bone_rename(arm, pchan->name, newname);
}
CTX_DATA_END;
@@ -1445,7 +1516,7 @@ static int pose_autoside_names_exec (bContext *C, wmOperator *op)
void POSE_OT_autoside_names (wmOperatorType *ot)
{
static EnumPropertyItem axis_items[]= {
- {0, "XAXIS", 0, "X-Axis", "Left/Right"},
+ {0, "XAXIS", 0, "X-Axis", "Left/Right"},
{1, "YAXIS", 0, "Y-Axis", "Front/Back"},
{2, "ZAXIS", 0, "Z-Axis", "Top/Bottom"},
{0, NULL, 0, NULL, NULL}};
@@ -1477,7 +1548,7 @@ void pose_activate_flipped_bone(Scene *scene)
if(ob==NULL) return;
- if(ob->mode && OB_MODE_WEIGHT_PAINT) {
+ if(ob->mode & OB_MODE_WEIGHT_PAINT) {
ob= modifiers_isDeformedByArmature(ob);
}
if(ob && (ob->mode & OB_MODE_POSE)) {
@@ -1747,13 +1818,7 @@ static int pose_flip_quats_exec (bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
-
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
+ KeyingSet *ks = ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
/* loop through all selected pchans, flipping and keying (as needed) */
CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
@@ -1766,20 +1831,18 @@ static int pose_flip_quats_exec (bContext *C, wmOperator *op)
pchan->quat[2]= -pchan->quat[2];
pchan->quat[3]= -pchan->quat[3];
- /* perform auto-keying
- * NOTE: paths don't need recalculation here, since the orientations shouldn't have changed
- */
+ /* tagging */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* Set keys on pose
- * - KeyingSet to use depends on rotation mode
- * (but that's handled by the templates code)
- */
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
-
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
+ ListBase dsources = {NULL, NULL};
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ /* now insert the keyframe(s) using the Keying Set
+ * 1) add datasource override for the PoseChannel
+ * 2) insert keyframes
+ * 3) free the extra info
+ */
+ ANIM_relative_keyingset_add_source(&dsources, &ob->id, &RNA_PoseBone, pchan);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ BLI_freelistN(&dsources);
/* clear any unkeyed tags */
if (pchan->bone)
diff --git a/source/blender/editors/armature/reeb.c b/source/blender/editors/armature/reeb.c
index 59a8744f305..02e96bcf70a 100644
--- a/source/blender/editors/armature/reeb.c
+++ b/source/blender/editors/armature/reeb.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,14 +31,9 @@
#include <stdlib.h> // for qsort
#include <float.h>
-#include "PIL_time.h"
-#include "DNA_listBase.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
#include "DNA_object_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_armature_types.h"
#include "BKE_context.h"
@@ -53,13 +48,10 @@
//#include "BDR_editobject.h"
-#include "ED_mesh.h"
-#include "ED_armature.h"
//#include "BIF_interface.h"
//#include "BIF_toolbox.h"
//#include "BIF_graphics.h"
#include "BIF_gl.h"
-#include "UI_resources.h"
#include "BKE_global.h"
#include "BKE_utildefines.h"
@@ -357,7 +349,7 @@ ReebArc * copyArc(ReebGraph *rg, ReebArc *arc)
memcpy(cp_arc->buckets, arc->buckets, sizeof(EmbedBucket) * cp_arc->bcount);
/* copy faces map */
- cp_arc->faces = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ cp_arc->faces = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "copyArc gh");
mergeArcFaces(rg, cp_arc, arc);
/* find corresponding head and tail */
@@ -500,11 +492,11 @@ void repositionNodes(ReebGraph *rg)
VECCOPY(p, ((ReebArc*)arc)->buckets[0].p);
mul_v3_fl(p, 1.0f / arc->head->degree);
- add_v3_v3v3(arc->head->p, arc->head->p, p);
+ add_v3_v3(arc->head->p, p);
VECCOPY(p, ((ReebArc*)arc)->buckets[((ReebArc*)arc)->bcount - 1].p);
mul_v3_fl(p, 1.0f / arc->tail->degree);
- add_v3_v3v3(arc->tail->p, arc->tail->p, p);
+ add_v3_v3(arc->tail->p, p);
}
}
}
@@ -641,7 +633,7 @@ void addVertToBucket(EmbedBucket *b, float co[3])
void removeVertFromBucket(EmbedBucket *b, float co[3])
{
mul_v3_fl(b->p, (float)b->nv);
- sub_v3_v3v3(b->p, b->p, co);
+ sub_v3_v3(b->p, co);
b->nv--;
mul_v3_fl(b->p, 1.0f / (float)b->nv);
}
@@ -1112,7 +1104,7 @@ void REEB_AxialSymmetry(BNode* root_node, BNode* node1, BNode* node2, struct BAr
BLI_mirrorAlongAxis(p, root_node->p, nor);
/* average with node1 */
- add_v3_v3v3(node1->p, node1->p, p);
+ add_v3_v3(node1->p, p);
mul_v3_fl(node1->p, 0.5f);
/* mirror back on node2 */
@@ -1830,7 +1822,7 @@ int filterSmartReebGraph(ReebGraph *rg, float threshold)
efa->tmp.fp = saacos(fabs(angle));
#endif
#else
- add_v3_v3v3(avg_vec, avg_vec, efa->n);
+ add_v3_v3(avg_vec, efa->n);
#endif
}
@@ -2449,7 +2441,7 @@ ReebEdge * createArc(ReebGraph *rg, ReebNode *node1, ReebNode *node2)
arc->flag = 0; // clear flag on init
arc->symmetry_level = 0;
- arc->faces = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ arc->faces = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "createArc gh");
if (node1->weight <= node2->weight)
{
diff --git a/source/blender/editors/armature/reeb.h b/source/blender/editors/armature/reeb.h
index a4fc74bdd0d..3bebc423235 100644
--- a/source/blender/editors/armature/reeb.h
+++ b/source/blender/editors/armature/reeb.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/curve/CMakeLists.txt b/source/blender/editors/curve/CMakeLists.txt
new file mode 100644
index 00000000000..ab45d73a2de
--- /dev/null
+++ b/source/blender/editors/curve/CMakeLists.txt
@@ -0,0 +1,34 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../../../intern/guardedalloc
+)
+
+BLENDERLIB(bf_editor_curve "${SRC}" "${INC}")
diff --git a/source/blender/editors/curve/curve_intern.h b/source/blender/editors/curve/curve_intern.h
index a9a9b5619ff..10c1bd84262 100644
--- a/source/blender/editors/curve/curve_intern.h
+++ b/source/blender/editors/curve/curve_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -33,13 +33,13 @@
struct wmOperatorType;
/* lorem.c */
-char *ED_lorem;
+extern char *ED_lorem;
/* editfont.c */
enum { DEL_ALL, DEL_NEXT_CHAR, DEL_PREV_CHAR, DEL_SELECTION, DEL_NEXT_SEL, DEL_PREV_SEL };
enum { CASE_LOWER, CASE_UPPER };
enum { LINE_BEGIN, LINE_END, PREV_CHAR, NEXT_CHAR, PREV_WORD, NEXT_WORD,
- PREV_LINE, NEXT_LINE, PREV_PAGE, NEXT_PAGE };
+ PREV_LINE, NEXT_LINE, PREV_PAGE, NEXT_PAGE };
void FONT_OT_text_insert(struct wmOperatorType *ot);
void FONT_OT_line_break(struct wmOperatorType *ot);
@@ -66,6 +66,9 @@ void FONT_OT_change_spacing(struct wmOperatorType *ot);
void FONT_OT_open(struct wmOperatorType *ot);
void FONT_OT_unlink(struct wmOperatorType *ot);
+void FONT_OT_textbox_add(struct wmOperatorType *ot);
+void FONT_OT_textbox_remove(struct wmOperatorType *ot);
+
/* editcurve.c */
void CURVE_OT_hide(struct wmOperatorType *ot);
void CURVE_OT_reveal(struct wmOperatorType *ot);
@@ -85,6 +88,19 @@ void CURVE_OT_tilt_clear(struct wmOperatorType *ot);
void CURVE_OT_smooth(struct wmOperatorType *ot);
void CURVE_OT_smooth_radius(struct wmOperatorType *ot);
+void CURVE_OT_primitive_bezier_curve_add(struct wmOperatorType *ot);
+void CURVE_OT_primitive_bezier_circle_add(struct wmOperatorType *ot);
+void CURVE_OT_primitive_nurbs_curve_add(struct wmOperatorType *ot);
+void CURVE_OT_primitive_nurbs_circle_add(struct wmOperatorType *ot);
+void CURVE_OT_primitive_nurbs_path_add(struct wmOperatorType *ot);
+
+void SURFACE_OT_primitive_nurbs_surface_curve_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_circle_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_surface_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_tube_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_sphere_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_donut_add(struct wmOperatorType *ot);
+
void CURVE_OT_de_select_first(struct wmOperatorType *ot);
void CURVE_OT_de_select_last(struct wmOperatorType *ot);
void CURVE_OT_select_all(struct wmOperatorType *ot);
@@ -96,7 +112,7 @@ void CURVE_OT_select_previous(struct wmOperatorType *ot);
void CURVE_OT_select_more(struct wmOperatorType *ot);
void CURVE_OT_select_less(struct wmOperatorType *ot);
void CURVE_OT_select_random(struct wmOperatorType *ot);
-void CURVE_OT_select_every_nth(struct wmOperatorType *ot);
+void CURVE_OT_select_nth(struct wmOperatorType *ot);
void CURVE_OT_switch_direction(struct wmOperatorType *ot);
void CURVE_OT_subdivide(struct wmOperatorType *ot);
diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c
index e672e7148b8..8f826d318b6 100644
--- a/source/blender/editors/curve/curve_ops.c
+++ b/source/blender/editors/curve/curve_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,13 +32,6 @@
#include "MEM_guardedalloc.h"
#include "DNA_curve_types.h"
-#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -48,7 +41,6 @@
#include "BKE_utildefines.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -57,7 +49,6 @@
#include "ED_screen.h"
#include "ED_transform.h"
-#include "UI_interface.h"
#include "curve_intern.h"
@@ -90,6 +81,9 @@ void ED_operatortypes_curve(void)
WM_operatortype_append(FONT_OT_open);
WM_operatortype_append(FONT_OT_unlink);
+
+ WM_operatortype_append(FONT_OT_textbox_add);
+ WM_operatortype_append(FONT_OT_textbox_remove);
WM_operatortype_append(CURVE_OT_hide);
WM_operatortype_append(CURVE_OT_reveal);
@@ -105,7 +99,20 @@ void ED_operatortypes_curve(void)
WM_operatortype_append(CURVE_OT_shade_smooth);
WM_operatortype_append(CURVE_OT_shade_flat);
WM_operatortype_append(CURVE_OT_tilt_clear);
-
+
+ WM_operatortype_append(CURVE_OT_primitive_bezier_curve_add);
+ WM_operatortype_append(CURVE_OT_primitive_bezier_circle_add);
+ WM_operatortype_append(CURVE_OT_primitive_nurbs_curve_add);
+ WM_operatortype_append(CURVE_OT_primitive_nurbs_circle_add);
+ WM_operatortype_append(CURVE_OT_primitive_nurbs_path_add);
+
+ WM_operatortype_append(SURFACE_OT_primitive_nurbs_surface_curve_add);
+ WM_operatortype_append(SURFACE_OT_primitive_nurbs_surface_circle_add);
+ WM_operatortype_append(SURFACE_OT_primitive_nurbs_surface_surface_add);
+ WM_operatortype_append(SURFACE_OT_primitive_nurbs_surface_tube_add);
+ WM_operatortype_append(SURFACE_OT_primitive_nurbs_surface_sphere_add);
+ WM_operatortype_append(SURFACE_OT_primitive_nurbs_surface_donut_add);
+
WM_operatortype_append(CURVE_OT_smooth);
WM_operatortype_append(CURVE_OT_smooth_radius);
@@ -120,7 +127,7 @@ void ED_operatortypes_curve(void)
WM_operatortype_append(CURVE_OT_select_more);
WM_operatortype_append(CURVE_OT_select_less);
WM_operatortype_append(CURVE_OT_select_random);
- WM_operatortype_append(CURVE_OT_select_every_nth);
+ WM_operatortype_append(CURVE_OT_select_nth);
WM_operatortype_append(CURVE_OT_switch_direction);
WM_operatortype_append(CURVE_OT_subdivide);
@@ -140,9 +147,10 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
keymap->poll= ED_operator_editfont;
/* only set in editmode font, by space_view3d listener */
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", BKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_BOLD);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_ITALIC);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", UKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_UNDERLINE);
+ RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", BKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_BOLD);
+ RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_ITALIC);
+ RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", UKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_UNDERLINE);
+ RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", PKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_SMALLCAPS);
RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", DELKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_NEXT_SEL);
RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_SEL);
@@ -188,8 +196,8 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
/* only set in editmode curve, by space_view3d listener */
keymap= WM_keymap_find(keyconf, "Curve", 0, 0);
keymap->poll= ED_operator_editsurfcurve;
-
- WM_keymap_add_item(keymap, "OBJECT_OT_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0);
+
+ WM_keymap_add_menu(keymap, "INFO_MT_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "CURVE_OT_vertex_add", LEFTMOUSE, KM_CLICK, KM_CTRL, 0);
WM_keymap_add_item(keymap, "CURVE_OT_select_all", AKEY, KM_PRESS, 0, 0);
@@ -203,9 +211,10 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "CURVE_OT_extrude", EKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "CURVE_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "CURVE_OT_make_segment", FKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_cyclic_toggle", CKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "CURVE_OT_cyclic_toggle", CKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "CURVE_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "CURVE_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "CURVE_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "CURVE_OT_tilt_clear", TKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "TRANSFORM_OT_tilt", TKEY, KM_PRESS, KM_CTRL, 0);
@@ -225,6 +234,6 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
/* menus */
WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0);
- ED_object_generic_keymap(keyconf, keymap, TRUE);
+ ED_object_generic_keymap(keyconf, keymap, 2);
}
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index 2d68d19c589..90bec418e0e 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -43,15 +43,9 @@
#include "BLI_dynstr.h"
#include "BLI_rand.h"
-#include "DNA_curve_types.h"
#include "DNA_key_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_context.h"
#include "BKE_curve.h"
@@ -68,8 +62,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_anim_api.h"
-#include "ED_curve.h"
#include "ED_keyframes_edit.h"
#include "ED_object.h"
#include "ED_screen.h"
@@ -83,6 +75,12 @@
#include "RNA_access.h"
#include "RNA_define.h"
+/* Undo stuff */
+typedef struct {
+ ListBase nubase;
+ void *lastsel;
+} UndoCurve;
+
void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatus);
static void select_adjacent_cp(ListBase *editnurb, short next, short cont, short selstatus);
@@ -332,7 +330,7 @@ void make_editNurb(Object *obedit)
editnurb= cu->editnurb= MEM_callocN(sizeof(ListBase), "editnurb");
nu= cu->nurb.first;
- cu->lastselbp= NULL; /* for select row */
+ cu->lastsel= NULL; /* for select row */
while(nu) {
newnu= duplicateNurb(nu);
@@ -397,6 +395,8 @@ void CU_select_swap(Object *obedit)
BezTriple *bezt;
int a;
+ cu->lastsel= NULL;
+
for(nu= editnurb->first; nu; nu= nu->next) {
if(nu->type == CU_BEZIER) {
bezt= nu->bezt;
@@ -504,8 +504,8 @@ void CURVE_OT_separate(wmOperatorType *ot)
static short isNurbselUV(Nurb *nu, int *u, int *v, int flag)
{
/* return u!=-1: 1 row in u-direction selected. U has value between 0-pntsv
- * return v!=-1: 1 collumn in v-direction selected. V has value between 0-pntsu
- */
+ * return v!=-1: 1 collumn in v-direction selected. V has value between 0-pntsu
+ */
BPoint *bp;
int a, b, sel;
@@ -610,9 +610,9 @@ static void translateflagNurb(ListBase *editnurb, short flag, float *vec)
a= nu->pntsu;
bezt= nu->bezt;
while(a--) {
- if(bezt->f1 & flag) add_v3_v3v3(bezt->vec[0], bezt->vec[0], vec);
- if(bezt->f2 & flag) add_v3_v3v3(bezt->vec[1], bezt->vec[1], vec);
- if(bezt->f3 & flag) add_v3_v3v3(bezt->vec[2], bezt->vec[2], vec);
+ if(bezt->f1 & flag) add_v3_v3(bezt->vec[0], vec);
+ if(bezt->f2 & flag) add_v3_v3(bezt->vec[1], vec);
+ if(bezt->f3 & flag) add_v3_v3(bezt->vec[2], vec);
bezt++;
}
}
@@ -620,7 +620,7 @@ static void translateflagNurb(ListBase *editnurb, short flag, float *vec)
a= nu->pntsu*nu->pntsv;
bp= nu->bp;
while(a--) {
- if(bp->f1 & flag) add_v3_v3v3(bp->vec, bp->vec, vec);
+ if(bp->f1 & flag) add_v3_v3(bp->vec, vec);
bp++;
}
}
@@ -662,7 +662,7 @@ static int deleteflagNurb(bContext *C, wmOperator *op, int flag)
if(obedit && obedit->type==OB_SURF);
else return OPERATOR_CANCELLED;
- cu->lastselbp= NULL;
+ cu->lastsel= NULL;
nu= editnurb->first;
while(nu) {
@@ -895,9 +895,12 @@ static void adduplicateflagNurb(Object *obedit, short flag)
Nurb *nu, *newnu;
BezTriple *bezt, *bezt1;
BPoint *bp, *bp1;
+ Curve *cu= (Curve*)obedit->data;
int a, b, starta, enda, newu, newv;
char *usel;
+ cu->lastsel= NULL;
+
nu= editnurb->last;
while(nu) {
if(nu->type == CU_BEZIER) {
@@ -929,9 +932,9 @@ static void adduplicateflagNurb(Object *obedit, short flag)
bezt1++;
}
- if(nu->flagu & CU_CYCLIC) {
+ if(nu->flagu & CU_NURB_CYCLIC) {
if(starta!=0 || enda!=nu->pntsu-1) {
- newnu->flagu &= ~CU_CYCLIC;
+ newnu->flagu &= ~CU_NURB_CYCLIC;
}
}
}
@@ -966,9 +969,9 @@ static void adduplicateflagNurb(Object *obedit, short flag)
bp1++;
}
- if(nu->flagu & CU_CYCLIC) {
+ if(nu->flagu & CU_NURB_CYCLIC) {
if(starta!=0 || enda!=nu->pntsu-1) {
- newnu->flagu &= ~CU_CYCLIC;
+ newnu->flagu &= ~CU_NURB_CYCLIC;
}
}
@@ -1507,11 +1510,15 @@ void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatu
Nurb *nu;
BPoint *bp;
BezTriple *bezt;
+ Curve *cu;
int a;
short sel;
-
+
if(obedit==0) return;
-
+
+ cu= (Curve*)obedit->data;
+ cu->lastsel= NULL;
+
for(nu= editnurb->first; nu; nu= nu->next) {
sel= 0;
if(nu->type == CU_BEZIER) {
@@ -1827,6 +1834,8 @@ static int select_inverse_exec(bContext *C, wmOperator *op)
BezTriple *bezt;
int a;
+ cu->lastsel= NULL;
+
for(nu= editnurb->first; nu; nu= nu->next) {
if(nu->type == CU_BEZIER) {
bezt= nu->bezt;
@@ -1882,29 +1891,29 @@ void CURVE_OT_select_inverse(wmOperatorType *ot)
* @param None
*/
-static int subdivide_exec(bContext *C, wmOperator *op)
+static void subdividenurb(Object *obedit, int number_cuts)
{
- Object *obedit= CTX_data_edit_object(C);
Curve *cu= obedit->data;
ListBase *editnurb= curve_get_editcurve(obedit);
Nurb *nu;
BezTriple *prevbezt, *bezt, *beztnew, *beztn;
BPoint *bp, *prevbp, *bpnew, *bpn;
float vec[15];
- int a, b, sel, amount, *usel, *vsel;
+ int a, b, sel, amount, *usel, *vsel, i;
+ float factor;
// printf("*** subdivideNurb: entering subdivide\n");
for(nu= editnurb->first; nu; nu= nu->next) {
amount= 0;
if(nu->type == CU_BEZIER) {
- /*
- Insert a point into a 2D Bezier curve.
- Endpoints are preserved. Otherwise, all selected and inserted points are
- newly created. Old points are discarded.
- */
+ /*
+ Insert a point into a 2D Bezier curve.
+ Endpoints are preserved. Otherwise, all selected and inserted points are
+ newly created. Old points are discarded.
+ */
/* count */
- if(nu->flagu & CU_CYCLIC) {
+ if(nu->flagu & CU_NURB_CYCLIC) {
a= nu->pntsu;
bezt= nu->bezt;
prevbezt= bezt+(a-1);
@@ -1915,7 +1924,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
bezt= prevbezt+1;
}
while(a--) {
- if( BEZSELECTED_HIDDENHANDLES(cu, prevbezt) && BEZSELECTED_HIDDENHANDLES(cu, bezt) ) amount++;
+ if( BEZSELECTED_HIDDENHANDLES(cu, prevbezt) && BEZSELECTED_HIDDENHANDLES(cu, bezt) ) amount+=number_cuts;
prevbezt= bezt;
bezt++;
}
@@ -1925,7 +1934,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
beztnew =
(BezTriple*)MEM_mallocN((amount + nu->pntsu) * sizeof(BezTriple), "subdivNurb");
beztn= beztnew;
- if(nu->flagu & CU_CYCLIC) {
+ if(nu->flagu & CU_NURB_CYCLIC) {
a= nu->pntsu;
bezt= nu->bezt;
prevbezt= bezt+(a-1);
@@ -1940,37 +1949,46 @@ static int subdivide_exec(bContext *C, wmOperator *op)
beztn++;
if( BEZSELECTED_HIDDENHANDLES(cu, prevbezt) && BEZSELECTED_HIDDENHANDLES(cu, bezt) ) {
- memcpy(beztn, bezt, sizeof(BezTriple));
-
- /* midpoint subdividing */
- mid_v3_v3v3(vec, prevbezt->vec[1], prevbezt->vec[2]);
- mid_v3_v3v3(vec+3, prevbezt->vec[2], bezt->vec[0]);
- mid_v3_v3v3(vec+6, bezt->vec[0], bezt->vec[1]);
-
- mid_v3_v3v3(vec+9, vec, vec+3);
- mid_v3_v3v3(vec+12, vec+3, vec+6);
-
- /* change handle of prev beztn */
- VECCOPY((beztn-1)->vec[2], vec);
- /* new point */
- VECCOPY(beztn->vec[0], vec+9);
- mid_v3_v3v3(beztn->vec[1], vec+9, vec+12);
- VECCOPY(beztn->vec[2], vec+12);
- /* handle of next bezt */
- if(a==0 && (nu->flagu & CU_CYCLIC)) {VECCOPY(beztnew->vec[0], vec+6);}
- else {VECCOPY(bezt->vec[0], vec+6);}
-
- beztn->radius = (prevbezt->radius + bezt->radius)/2.0f;
- beztn->weight = (prevbezt->weight + bezt->weight)/2.0f;
-
- beztn++;
+ float prevvec[3][3];
+
+ memcpy(prevvec, prevbezt->vec, sizeof(float) * 9);
+
+ for (i = 0; i < number_cuts; i++) {
+ factor = 1.0f / (number_cuts + 1 - i);
+
+ memcpy(beztn, bezt, sizeof(BezTriple));
+
+ /* midpoint subdividing */
+ interp_v3_v3v3(vec, prevvec[1], prevvec[2], factor);
+ interp_v3_v3v3(vec+3, prevvec[2], bezt->vec[0], factor);
+ interp_v3_v3v3(vec+6, bezt->vec[0], bezt->vec[1], factor);
+
+ interp_v3_v3v3(vec+9, vec, vec+3, factor);
+ interp_v3_v3v3(vec+12, vec+3, vec+6, factor);
+
+ /* change handle of prev beztn */
+ VECCOPY((beztn-1)->vec[2], vec);
+ /* new point */
+ VECCOPY(beztn->vec[0], vec+9);
+ interp_v3_v3v3(beztn->vec[1], vec+9, vec+12, factor);
+ VECCOPY(beztn->vec[2], vec+12);
+ /* handle of next bezt */
+ if(a==0 && i == number_cuts - 1 && (nu->flagu & CU_NURB_CYCLIC)) {VECCOPY(beztnew->vec[0], vec+6);}
+ else {VECCOPY(bezt->vec[0], vec+6);}
+
+ beztn->radius = (prevbezt->radius + bezt->radius)/2;
+ beztn->weight = (prevbezt->weight + bezt->weight)/2;
+
+ memcpy(prevvec, beztn->vec, sizeof(float) * 9);
+ beztn++;
+ }
}
prevbezt= bezt;
bezt++;
}
/* last point */
- if((nu->flagu & CU_CYCLIC)==0) memcpy(beztn, prevbezt, sizeof(BezTriple));
+ if((nu->flagu & CU_NURB_CYCLIC)==0) memcpy(beztn, prevbezt, sizeof(BezTriple));
MEM_freeN(nu->bezt);
nu->bezt= beztnew;
@@ -1980,14 +1998,14 @@ static int subdivide_exec(bContext *C, wmOperator *op)
}
} /* End of 'if(nu->type == CU_BEZIER)' */
else if (nu->pntsv==1) {
- /*
- All flat lines (ie. co-planar), except flat Nurbs. Flat NURB curves
- are handled together with the regular NURB plane division, as it
- should be. I split it off just now, let's see if it is
- stable... nzc 30-5-'00
- */
+ /*
+ All flat lines (ie. co-planar), except flat Nurbs. Flat NURB curves
+ are handled together with the regular NURB plane division, as it
+ should be. I split it off just now, let's see if it is
+ stable... nzc 30-5-'00
+ */
/* count */
- if(nu->flagu & CU_CYCLIC) {
+ if(nu->flagu & CU_NURB_CYCLIC) {
a= nu->pntsu;
bp= nu->bp;
prevbp= bp+(a-1);
@@ -1998,7 +2016,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
bp= prevbp+1;
}
while(a--) {
- if( (bp->f1 & SELECT) && (prevbp->f1 & SELECT) ) amount++;
+ if( (bp->f1 & SELECT) && (prevbp->f1 & SELECT) ) amount+=number_cuts;
prevbp= bp;
bp++;
}
@@ -2009,7 +2027,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
(BPoint*)MEM_mallocN((amount + nu->pntsu) * sizeof(BPoint), "subdivNurb2");
bpn= bpnew;
- if(nu->flagu & CU_CYCLIC) {
+ if(nu->flagu & CU_NURB_CYCLIC) {
a= nu->pntsu;
bp= nu->bp;
prevbp= bp+(a-1);
@@ -2024,19 +2042,20 @@ static int subdivide_exec(bContext *C, wmOperator *op)
bpn++;
if( (bp->f1 & SELECT) && (prevbp->f1 & SELECT) ) {
- // printf("*** subdivideNurb: insert 'linear' point\n");
- memcpy(bpn, bp, sizeof(BPoint));
- bpn->vec[0]= (prevbp->vec[0]+bp->vec[0])/2.0;
- bpn->vec[1]= (prevbp->vec[1]+bp->vec[1])/2.0;
- bpn->vec[2]= (prevbp->vec[2]+bp->vec[2])/2.0;
- bpn->vec[3]= (prevbp->vec[3]+bp->vec[3])/2.0;
- bpn++;
+ // printf("*** subdivideNurb: insert 'linear' point\n");
+ for (i = 0; i < number_cuts; i++) {
+ factor = (float)(i + 1) / (number_cuts + 1);
+
+ memcpy(bpn, bp, sizeof(BPoint));
+ interp_v4_v4v4(bpn->vec, prevbp->vec, bp->vec, factor);
+ bpn++;
+ }
}
prevbp= bp;
bp++;
}
- if((nu->flagu & CU_CYCLIC)==0) memcpy(bpn, prevbp, sizeof(BPoint)); /* last point */
+ if((nu->flagu & CU_NURB_CYCLIC)==0) memcpy(bpn, prevbp, sizeof(BPoint)); /* last point */
MEM_freeN(nu->bp);
nu->bp= bpnew;
@@ -2048,54 +2067,54 @@ static int subdivide_exec(bContext *C, wmOperator *op)
}
} /* End of 'else if(nu->pntsv==1)' */
else if(nu->type == CU_NURBS) {
- /* This is a very strange test ... */
- /**
- Subdivide NURB surfaces - nzc 30-5-'00 -
+ /* This is a very strange test ... */
+ /**
+ Subdivide NURB surfaces - nzc 30-5-'00 -
- Subdivision of a NURB curve can be effected by adding a
- control point (insertion of a knot), or by raising the
- degree of the functions used to build the NURB. The
- expression
-
- degree = #knots - #controlpoints + 1 (J Walter piece)
- degree = #knots - #controlpoints (Blender
- implementation)
- ( this is confusing.... what is true? Another concern
- is that the JW piece allows the curve to become
- explicitly 1st order derivative discontinuous, while
- this is not what we want here... )
-
- is an invariant for a single NURB curve. Raising the degree
- of the NURB is done elsewhere; the degree is assumed
- constant during this opration. Degree is a property shared
- by all controlpoints in a curve (even though it is stored
- per control point - this can be misleading).
- Adding a knot is done by searching for the place in the
- knot vector where a certain knot value must be inserted, or
- by picking an appropriate knot value between two existing
- ones. The number of controlpoints that is influenced by the
- insertion depends on the order of the curve. A certain
- minimum number of knots is needed to form high-order
- curves, as can be seen from the equation above. In Blender,
- currently NURBs may be up to 6th order, so we modify at
- most 6 points. One point is added. For an n-degree curve,
- n points are discarded, and n+1 points inserted
- (so effectively, n points are modified). (that holds for
- the JW piece, but it seems not for our NURBs)
- In practice, the knot spacing is copied, but the tail
- (the points following the insertion point) need to be
- offset to keep the knot series ascending. The knot series
- is always a series of monotonically ascending integers in
- Blender. When not enough control points are available to
- fit the order, duplicates of the endpoints are added as
- needed.
- */
+ Subdivision of a NURB curve can be effected by adding a
+ control point (insertion of a knot), or by raising the
+ degree of the functions used to build the NURB. The
+ expression
+
+ degree = #knots - #controlpoints + 1 (J Walter piece)
+ degree = #knots - #controlpoints (Blender
+ implementation)
+ ( this is confusing.... what is true? Another concern
+ is that the JW piece allows the curve to become
+ explicitly 1st order derivative discontinuous, while
+ this is not what we want here... )
+
+ is an invariant for a single NURB curve. Raising the degree
+ of the NURB is done elsewhere; the degree is assumed
+ constant during this opration. Degree is a property shared
+ by all controlpoints in a curve (even though it is stored
+ per control point - this can be misleading).
+ Adding a knot is done by searching for the place in the
+ knot vector where a certain knot value must be inserted, or
+ by picking an appropriate knot value between two existing
+ ones. The number of controlpoints that is influenced by the
+ insertion depends on the order of the curve. A certain
+ minimum number of knots is needed to form high-order
+ curves, as can be seen from the equation above. In Blender,
+ currently NURBs may be up to 6th order, so we modify at
+ most 6 points. One point is added. For an n-degree curve,
+ n points are discarded, and n+1 points inserted
+ (so effectively, n points are modified). (that holds for
+ the JW piece, but it seems not for our NURBs)
+ In practice, the knot spacing is copied, but the tail
+ (the points following the insertion point) need to be
+ offset to keep the knot series ascending. The knot series
+ is always a series of monotonically ascending integers in
+ Blender. When not enough control points are available to
+ fit the order, duplicates of the endpoints are added as
+ needed.
+ */
/* selection-arrays */
usel= MEM_callocN(sizeof(int)*nu->pntsu, "subivideNurb3");
vsel= MEM_callocN(sizeof(int)*nu->pntsv, "subivideNurb3");
sel= 0;
- /* Count the number of selected points. */
+ /* Count the number of selected points. */
bp= nu->bp;
for(a=0; a<nu->pntsv; a++) {
for(b=0; b<nu->pntsu; b++) {
@@ -2108,9 +2127,16 @@ static int subdivide_exec(bContext *C, wmOperator *op)
}
}
if( sel == (nu->pntsu*nu->pntsv) ) { /* subdivide entire nurb */
- /* Global subdivision is a special case of partial
- subdivision. Strange it is considered separately... */
- bpn=bpnew= MEM_mallocN( (2*nu->pntsu-1)*(2*nu->pntsv-1)*sizeof(BPoint), "subdivideNurb4");
+ /* Global subdivision is a special case of partial
+ subdivision. Strange it is considered separately... */
+
+ /* count of nodes (after subdivision) along U axis */
+ int countu= nu->pntsu + (nu->pntsu - 1) * number_cuts;
+
+ /* total count of nodes after subdivision */
+ int tot= ((number_cuts+1)*nu->pntsu-number_cuts)*((number_cuts+1)*nu->pntsv-number_cuts);
+
+ bpn=bpnew= MEM_mallocN( tot*sizeof(BPoint), "subdivideNurb4");
bp= nu->bp;
/* first subdivide rows */
for(a=0; a<nu->pntsv; a++) {
@@ -2119,41 +2145,43 @@ static int subdivide_exec(bContext *C, wmOperator *op)
bpn++;
bp++;
if(b<nu->pntsu-1) {
- *bpn= *bp;
prevbp= bp-1;
- bpn->vec[0]= (prevbp->vec[0]+bp->vec[0])/2.0;
- bpn->vec[1]= (prevbp->vec[1]+bp->vec[1])/2.0;
- bpn->vec[2]= (prevbp->vec[2]+bp->vec[2])/2.0;
- bpn->vec[3]= (prevbp->vec[3]+bp->vec[3])/2.0;
- bpn++;
+ for (i = 0; i < number_cuts; i++) {
+ factor = (float)(i + 1) / (number_cuts + 1);
+ *bpn= *bp;
+ interp_v4_v4v4(bpn->vec, prevbp->vec, bp->vec, factor);
+ bpn++;
+ }
}
}
- bpn+= (2*nu->pntsu-1);
+ bpn+= number_cuts * countu;
}
/* now insert new */
- bpn= bpnew+(2*nu->pntsu-1);
- bp= bpnew+(4*nu->pntsu-2);
+ bpn= bpnew+((number_cuts+1)*nu->pntsu - number_cuts);
+ bp= bpnew+(number_cuts+1)*((number_cuts+1)*nu->pntsu-number_cuts);
prevbp= bpnew;
for(a=1; a<nu->pntsv; a++) {
- for(b=0; b<2*nu->pntsu-1; b++) {
- *bpn= *bp;
- bpn->vec[0]= (prevbp->vec[0]+bp->vec[0])/2.0;
- bpn->vec[1]= (prevbp->vec[1]+bp->vec[1])/2.0;
- bpn->vec[2]= (prevbp->vec[2]+bp->vec[2])/2.0;
- bpn->vec[3]= (prevbp->vec[3]+bp->vec[3])/2.0;
- bpn++;
+ for(b=0; b<(number_cuts+1)*nu->pntsu-number_cuts; b++) {
+ BPoint *tmp= bpn;
+ for (i = 0; i < number_cuts; i++) {
+ factor = (float)(i + 1) / (number_cuts + 1);
+ *tmp= *bp;
+ interp_v4_v4v4(tmp->vec, prevbp->vec, bp->vec, factor);
+ tmp += countu;
+ }
bp++;
prevbp++;
+ bpn++;
}
- bp+= (2*nu->pntsu-1);
- bpn+= (2*nu->pntsu-1);
- prevbp+= (2*nu->pntsu-1);
+ bp+= number_cuts * countu;
+ bpn+= number_cuts * countu;
+ prevbp+= number_cuts * countu;
}
MEM_freeN(nu->bp);
nu->bp= bpnew;
- nu->pntsu= 2*nu->pntsu-1;
- nu->pntsv= 2*nu->pntsv-1;
+ nu->pntsu= (number_cuts+1)*nu->pntsu-number_cuts;
+ nu->pntsv= (number_cuts+1)*nu->pntsv-number_cuts;
makeknots(nu, 1);
makeknots(nu, 2);
} /* End of 'if(sel== nu->pntsu*nu->pntsv)' (subdivide entire NURB) */
@@ -2161,7 +2189,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
/* subdivide in v direction? */
sel= 0;
for(a=0; a<nu->pntsv-1; a++) {
- if(vsel[a]==nu->pntsu && vsel[a+1]==nu->pntsu) sel++;
+ if(vsel[a]==nu->pntsu && vsel[a+1]==nu->pntsu) sel+=number_cuts;
}
if(sel) { /* V ! */
@@ -2170,29 +2198,30 @@ static int subdivide_exec(bContext *C, wmOperator *op)
for(a=0; a<nu->pntsv; a++) {
for(b=0; b<nu->pntsu; b++) {
*bpn= *bp;
- bpn++;
+ bpn++;
bp++;
}
if( (a<nu->pntsv-1) && vsel[a]==nu->pntsu && vsel[a+1]==nu->pntsu ) {
- prevbp= bp- nu->pntsu;
- for(b=0; b<nu->pntsu; b++) {
- /*
- This simple bisection must be replaces by a
- subtle resampling of a number of points. Our
- task is made slightly easier because each
- point in our curve is a separate data
- node. (is it?)
- */
- *bpn= *prevbp;
- bpn->vec[0]= (prevbp->vec[0]+bp->vec[0])/2.0;
- bpn->vec[1]= (prevbp->vec[1]+bp->vec[1])/2.0;
- bpn->vec[2]= (prevbp->vec[2]+bp->vec[2])/2.0;
- bpn->vec[3]= (prevbp->vec[3]+bp->vec[3])/2.0;
- bpn++;
- prevbp++;
- bp++;
+ for (i = 0; i < number_cuts; i++) {
+ factor = (float)(i + 1) / (number_cuts + 1);
+ prevbp= bp- nu->pntsu;
+ for(b=0; b<nu->pntsu; b++) {
+ /*
+ This simple bisection must be replaces by a
+ subtle resampling of a number of points. Our
+ task is made slightly easier because each
+ point in our curve is a separate data
+ node. (is it?)
+ */
+ *bpn= *prevbp;
+ interp_v4_v4v4(bpn->vec, prevbp->vec, bp->vec, factor);
+ bpn++;
+
+ prevbp++;
+ bp++;
+ }
+ bp-= nu->pntsu;
}
- bp-= nu->pntsu;
}
}
MEM_freeN(nu->bp);
@@ -2204,12 +2233,12 @@ static int subdivide_exec(bContext *C, wmOperator *op)
/* or in u direction? */
sel= 0;
for(a=0; a<nu->pntsu-1; a++) {
- if(usel[a]==nu->pntsv && usel[a+1]==nu->pntsv) sel++;
+ if(usel[a]==nu->pntsv && usel[a+1]==nu->pntsv) sel+=number_cuts;
}
if(sel) { /* U ! */
- /* Inserting U points is sort of 'default' Flat curves only get */
- /* U points inserted in them. */
+ /* Inserting U points is sort of 'default' Flat curves only get */
+ /* U points inserted in them. */
bpn=bpnew= MEM_mallocN( (sel+nu->pntsu)*nu->pntsv*sizeof(BPoint), "subdivideNurb4");
bp= nu->bp;
for(a=0; a<nu->pntsv; a++) {
@@ -2218,20 +2247,20 @@ static int subdivide_exec(bContext *C, wmOperator *op)
bpn++;
bp++;
if( (b<nu->pntsu-1) && usel[b]==nu->pntsv && usel[b+1]==nu->pntsv ) {
- /*
- One thing that bugs me here is that the
- orders of things are not the same as in
- the JW piece. Also, this implies that we
- handle at most 3rd order curves? I miss
- some symmetry here...
- */
+ /*
+ One thing that bugs me here is that the
+ orders of things are not the same as in
+ the JW piece. Also, this implies that we
+ handle at most 3rd order curves? I miss
+ some symmetry here...
+ */
+ for (i = 0; i < number_cuts; i++) {
+ factor = (float)(i + 1) / (number_cuts + 1);
prevbp= bp- 1;
*bpn= *prevbp;
- bpn->vec[0]= (prevbp->vec[0]+bp->vec[0])/2.0;
- bpn->vec[1]= (prevbp->vec[1]+bp->vec[1])/2.0;
- bpn->vec[2]= (prevbp->vec[2]+bp->vec[2])/2.0;
- bpn->vec[3]= (prevbp->vec[3]+bp->vec[3])/2.0;
+ interp_v4_v4v4(bpn->vec, prevbp->vec, bp->vec, factor);
bpn++;
+ }
}
}
}
@@ -2239,7 +2268,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
nu->bp= bpnew;
nu->pntsu+= sel;
makeknots(nu, 1); /* shift knots
- forward */
+ forward */
}
}
}
@@ -2248,6 +2277,14 @@ static int subdivide_exec(bContext *C, wmOperator *op)
} /* End of 'if(nu->type == CU_NURBS)' */
}
+}
+
+static int subdivide_exec(bContext *C, wmOperator *op)
+{
+ Object *obedit= CTX_data_edit_object(C);
+ int number_cuts= RNA_int_get(op->ptr, "number_cuts");
+
+ subdividenurb(obedit, number_cuts);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
@@ -2267,6 +2304,8 @@ void CURVE_OT_subdivide(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "number_cuts", 1, 1, 100, "Number of cuts", "", 1, 100);
}
/******************** find nearest ************************/
@@ -2423,8 +2462,8 @@ static int convertspline(short type, Nurb *nu)
else if(type==CU_NURBS) {
nu->type = CU_NURBS;
nu->orderu= 4;
- nu->flagu &= CU_CYCLIC; /* disable all flags except for cyclic */
- nu->flagu += 4;
+ nu->flagu &= CU_NURB_CYCLIC; /* disable all flags except for cyclic */
+ nu->flagu |= CU_NURB_BEZIER;
makeknots(nu, 1);
a= nu->pntsu*nu->pntsv;
bp= nu->bp;
@@ -2473,11 +2512,11 @@ static int convertspline(short type, Nurb *nu)
nu->orderu= 4;
nu->orderv= 1;
nu->type = type;
- if(nu->flagu & CU_CYCLIC) c= nu->orderu-1;
+ if(nu->flagu & CU_NURB_CYCLIC) c= nu->orderu-1;
else c= 0;
if(type== CU_NURBS) {
- nu->flagu &= CU_CYCLIC; /* disable all flags except for cyclic */
- nu->flagu += 4;
+ nu->flagu &= CU_NURB_CYCLIC; /* disable all flags except for cyclic */
+ nu->flagu |= CU_NURB_BEZIER;
makeknots(nu, 1);
}
}
@@ -2737,7 +2776,7 @@ static void make_selection_list_nurb(ListBase *editnurb)
bp= nu->bp;
a= nu->pntsu;
while(a--) {
- add_v3_v3v3(nus->vec, nus->vec, bp->vec);
+ add_v3_v3(nus->vec, bp->vec);
bp++;
}
mul_v3_fl(nus->vec, 1.0/(float)nu->pntsu);
@@ -2798,6 +2837,10 @@ static void merge_2_nurb(wmOperator *op, ListBase *editnurb, Nurb *nu1, Nurb *nu
if( is_u_selected(nu1, nu1->pntsu-1) );
else {
+ /* For 2D curves blender uses orderv=0. It doesn't make any sense mathematically. */
+ /* but after rotating orderu=0 will be confusing. */
+ if (nu1->orderv == 0) nu1->orderv= 1;
+
rotate_direction_nurb(nu1);
if( is_u_selected(nu1, nu1->pntsu-1) );
else {
@@ -2818,6 +2861,7 @@ static void merge_2_nurb(wmOperator *op, ListBase *editnurb, Nurb *nu1, Nurb *nu
/* 2nd nurbs: u = 0 selected */
if( is_u_selected(nu2, 0) );
else {
+ if (nu2->orderv == 0) nu2->orderv= 1;
rotate_direction_nurb(nu2);
if( is_u_selected(nu2, 0) );
else {
@@ -2863,8 +2907,8 @@ static void merge_2_nurb(wmOperator *op, ListBase *editnurb, Nurb *nu1, Nurb *nu
/* merge */
origu= nu1->pntsu;
nu1->pntsu+= nu2->pntsu;
- if(nu1->orderu<3) nu1->orderu++;
- if(nu1->orderv<3) nu1->orderv++;
+ if(nu1->orderu<3 && nu1->orderu<nu1->pntsu) nu1->orderu++;
+ if(nu1->orderv<3 && nu1->orderv<nu1->pntsv) nu1->orderv++;
temp= nu1->bp;
nu1->bp= MEM_mallocN(nu1->pntsu*nu1->pntsv*sizeof(BPoint), "mergeBP");
@@ -2939,7 +2983,7 @@ static int merge_nurb(bContext *C, wmOperator *op)
BLI_freelistN(&nsortbase);
return OPERATOR_CANCELLED;
}
-
+
while(nus2) {
merge_2_nurb(op, editnurb, nus1->nu, nus2->nu);
nus2= nus2->next;
@@ -2992,7 +3036,7 @@ static int make_segment_exec(bContext *C, wmOperator *op)
/* find both nurbs and points, nu1 will be put behind nu2 */
for(nu= editnurb->first; nu; nu= nu->next) {
- if((nu->flagu & CU_CYCLIC)==0) { /* not cyclic */
+ if((nu->flagu & CU_NURB_CYCLIC)==0) { /* not cyclic */
if(nu->type == CU_BEZIER) {
bezt= nu->bezt;
if(nu1==0) {
@@ -3156,12 +3200,18 @@ int mouse_nurb(bContext *C, short mval[2], int extend)
if(bezt) {
- if(hand==1) select_beztriple(bezt, SELECT, 1, HIDDEN);
- else if(hand==0) bezt->f1|= SELECT;
- else bezt->f3|= SELECT;
+ if(hand==1) {
+ select_beztriple(bezt, SELECT, 1, HIDDEN);
+ cu->lastsel= bezt;
+ } else {
+ if(hand==0) bezt->f1|= SELECT;
+ else bezt->f3|= SELECT;
+
+ cu->lastsel= NULL;
+ }
}
else {
- cu->lastselbp= bp;
+ cu->lastsel= bp;
select_bpoint(bp, SELECT, 1, HIDDEN);
}
@@ -3169,8 +3219,13 @@ int mouse_nurb(bContext *C, short mval[2], int extend)
else {
if(bezt) {
if(hand==1) {
- if(bezt->f2 & SELECT) select_beztriple(bezt, DESELECT, 1, HIDDEN);
- else select_beztriple(bezt, SELECT, 1, HIDDEN);
+ if(bezt->f2 & SELECT) {
+ select_beztriple(bezt, DESELECT, 1, HIDDEN);
+ if (bezt == cu->lastsel) cu->lastsel = NULL;
+ } else {
+ select_beztriple(bezt, SELECT, 1, HIDDEN);
+ cu->lastsel= bezt;
+ }
} else if(hand==0) {
bezt->f1 ^= SELECT;
} else {
@@ -3178,10 +3233,12 @@ int mouse_nurb(bContext *C, short mval[2], int extend)
}
}
else {
- if(bp->f1 & SELECT) select_bpoint(bp, DESELECT, 1, HIDDEN);
- else {
+ if(bp->f1 & SELECT) {
+ select_bpoint(bp, DESELECT, 1, HIDDEN);
+ if (cu->lastsel == bp) cu->lastsel = NULL;
+ } else {
select_bpoint(bp, SELECT, 1, HIDDEN);
- cu->lastselbp= bp;
+ cu->lastsel= bp;
}
}
@@ -3284,7 +3341,7 @@ static int spin_nurb(bContext *C, Scene *scene, Object *obedit, float *dvec, flo
for(nu= editnurb->first; nu; nu= nu->next) {
if(isNurbsel(nu)) {
nu->orderv= 4;
- nu->flagv |= CU_CYCLIC;
+ nu->flagv |= CU_NURB_CYCLIC;
makeknots(nu, 2);
}
}
@@ -3357,7 +3414,6 @@ static int addvert_Nurb(bContext *C, short mode, float location[3])
copy_m3_m4(mat, obedit->obmat);
invert_m3_m3(imat,mat);
- view3d_operator_needs_opengl(C);
findselectedNurbvert(editnurb, &nu, &bezt, &bp);
if(bezt==0 && bp==0) return OPERATOR_CANCELLED;
@@ -3396,13 +3452,13 @@ static int addvert_Nurb(bContext *C, short mode, float location[3])
nu->pntsu++;
if(mode=='e') {
- VECCOPY(newbezt->vec[0], bezt->vec[0]);
- VECCOPY(newbezt->vec[1], bezt->vec[1]);
- VECCOPY(newbezt->vec[2], bezt->vec[2]);
+ copy_v3_v3(newbezt->vec[0], bezt->vec[0]);
+ copy_v3_v3(newbezt->vec[1], bezt->vec[1]);
+ copy_v3_v3(newbezt->vec[2], bezt->vec[2]);
}
else {
- VECCOPY(newbezt->vec[1], location);
- sub_v3_v3v3(newbezt->vec[1],newbezt->vec[1], obedit->obmat[3]);
+ copy_v3_v3(newbezt->vec[1], location);
+ sub_v3_v3(newbezt->vec[1], obedit->obmat[3]);
mul_m3_v3(imat,newbezt->vec[1]);
sub_v3_v3v3(temp, newbezt->vec[1],temp);
add_v3_v3v3(newbezt->vec[0], bezt->vec[0],temp);
@@ -3444,11 +3500,11 @@ static int addvert_Nurb(bContext *C, short mode, float location[3])
makeknots(nu, 1);
if(mode=='e') {
- VECCOPY(newbp->vec, bp->vec);
+ copy_v3_v3(newbp->vec, bp->vec);
}
else {
- VECCOPY(newbp->vec, location);
- sub_v3_v3v3(newbp->vec, newbp->vec, obedit->obmat[3]);
+ copy_v3_v3(newbp->vec, location);
+ sub_v3_v3(newbp->vec, obedit->obmat[3]);
mul_m3_v3(imat,newbp->vec);
newbp->vec[3]= 1.0;
}
@@ -3477,7 +3533,7 @@ static int add_vertex_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
RegionView3D *rv3d= CTX_wm_region_view3d(C);
ViewContext vc;
- float location[3];
+ float location[3] = {0.0f, 0.0f, 0.0f};
short mval[2];
if(rv3d && !RNA_property_is_set(op->ptr, "location")) {
@@ -3587,7 +3643,7 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op)
bp= nu->bp;
while(a--) {
if( bp->f1 & SELECT ) {
- nu->flagu ^= CU_CYCLIC;
+ nu->flagu ^= CU_NURB_CYCLIC;
break;
}
bp++;
@@ -3598,7 +3654,7 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op)
bezt= nu->bezt;
while(a--) {
if( BEZSELECTED_HIDDENHANDLES(cu, bezt) ) {
- nu->flagu ^= CU_CYCLIC;
+ nu->flagu ^= CU_NURB_CYCLIC;
break;
}
bezt++;
@@ -3611,7 +3667,7 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op)
bp= nu->bp;
while(a--) {
if( bp->f1 & SELECT ) {
- nu->flagu ^= CU_CYCLIC;
+ nu->flagu ^= CU_NURB_CYCLIC;
makeknots(nu, 1); /* 1==u type is ignored for cyclic curves */
break;
}
@@ -3626,11 +3682,11 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op)
if( bp->f1 & SELECT) {
if(direction==0 && nu->pntsu>1) {
- nu->flagu ^= CU_CYCLIC;
+ nu->flagu ^= CU_NURB_CYCLIC;
makeknots(nu, 1); /* 1==u type is ignored for cyclic curves */
}
if(direction==1 && nu->pntsv>1) {
- nu->flagv ^= CU_CYCLIC;
+ nu->flagv ^= CU_NURB_CYCLIC;
makeknots(nu, 2); /* 2==v type is ignored for cyclic curves */
}
break;
@@ -3699,7 +3755,7 @@ void CURVE_OT_cyclic_toggle(wmOperatorType *ot)
static int select_linked_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- RegionView3D *rv3d= CTX_wm_region_view3d(C);
+ RegionView3D *rv3d= ED_view3d_context_rv3d(C);
ViewContext vc;
Nurb *nu;
BezTriple *bezt;
@@ -3786,7 +3842,7 @@ static int select_row_exec(bContext *C, wmOperator *op)
if(editnurb->first==0)
return OPERATOR_CANCELLED;
- if(cu->lastselbp==NULL)
+ if(cu->lastsel==NULL)
return OPERATOR_CANCELLED;
/* find the correct nurb and toggle with u of v */
@@ -3794,7 +3850,7 @@ static int select_row_exec(bContext *C, wmOperator *op)
bp= nu->bp;
for(v=0; v<nu->pntsv; v++) {
for(u=0; u<nu->pntsu; u++, bp++) {
- if(bp==cu->lastselbp) {
+ if(bp==cu->lastsel) {
if(bp->f1 & SELECT) {
ok= 1;
break;
@@ -3805,11 +3861,11 @@ static int select_row_exec(bContext *C, wmOperator *op)
}
if(ok) {
- if(last==cu->lastselbp) {
+ if(last==cu->lastsel) {
direction= 1-direction;
setflagsNurb(editnurb, 0);
}
- last= cu->lastselbp;
+ last= cu->lastsel;
bp= nu->bp;
for(a=0; a<nu->pntsv; a++) {
@@ -4215,37 +4271,128 @@ void CURVE_OT_select_random(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "extend", FALSE, "Extend Selection", "Extend selection instead of deselecting everything first.");
}
-/********************** select every nth *********************/
+/********************* every nth number of point *******************/
+
+static int point_on_nurb(Nurb *nu, void *point)
+{
+ if (nu->bezt) {
+ BezTriple *bezt= (BezTriple*)point;
+ return bezt >= nu->bezt && bezt < nu->bezt + nu->pntsu;
+ } else {
+ BPoint *bp= (BPoint*)point;
+ return bp >= nu->bp && bp < nu->bp + nu->pntsu * nu->pntsv;
+ }
+}
-static int select_every_nth_exec(bContext *C, wmOperator *op)
+static void select_nth_bezt(Nurb *nu, BezTriple *bezt, int nth)
+{
+ int a, start;
+
+ start= bezt - nu->bezt;
+ a= nu->pntsu;
+ bezt= nu->bezt + a - 1;
+
+ while (a--) {
+ if (abs(start - a) % nth) {
+ select_beztriple(bezt, DESELECT, 1, HIDDEN);
+ }
+
+ bezt--;
+ }
+}
+
+static void select_nth_bp(Nurb *nu, BPoint *bp, int nth)
+{
+ int a, startrow, startpnt;
+ int dist, row, pnt;
+
+ startrow= (bp - nu->bp) / nu->pntsu;
+ startpnt= (bp - nu->bp) % nu->pntsu;
+
+ a= nu->pntsu * nu->pntsv;
+ bp= nu->bp + a - 1;
+ row = nu->pntsv - 1;
+ pnt = nu->pntsu - 1;
+
+ while (a--) {
+ dist= abs(pnt - startpnt) + abs(row - startrow);
+ if (dist % nth) {
+ select_bpoint(bp, DESELECT, 1, HIDDEN);
+ }
+
+ pnt--;
+ if (pnt < 0) {
+ pnt= nu->pntsu - 1;
+ row--;
+ }
+
+ bp--;
+ }
+}
+
+int CU_select_nth(Object *obedit, int nth)
+{
+ Curve *cu= (Curve*)obedit->data;
+ ListBase *nubase= cu->editnurb;
+ Nurb *nu;
+ int ok=0;
+
+ /* Search nurb to which selected point belongs to */
+ nu= nubase->first;
+ while (nu) {
+ if (point_on_nurb(nu, cu->lastsel)) {
+ ok= 1;
+ break;
+ }
+ nu= nu->next;
+ }
+
+ if (!ok) return 0;
+
+ if (nu->bezt) {
+ select_nth_bezt(nu, cu->lastsel, nth);
+ } else {
+ select_nth_bp(nu, cu->lastsel, nth);
+ }
+
+ return 1;
+}
+
+static int select_nth_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- ListBase *editnurb= curve_get_editcurve(obedit);
- int n= RNA_int_get(op->ptr, "n");
-
- select_adjacent_cp(editnurb, n, 1, SELECT);
- select_adjacent_cp(editnurb, -n, 1, SELECT);
-
+ int nth= RNA_int_get(op->ptr, "nth");
+
+ if (!CU_select_nth(obedit, nth)) {
+ if (obedit->type == OB_SURF) {
+ BKE_report(op->reports, RPT_ERROR, "Surface hasn't got active point");
+ } else {
+ BKE_report(op->reports, RPT_ERROR, "Curve hasn't got active point");
+ }
+
+ return OPERATOR_CANCELLED;
+ }
+
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
return OPERATOR_FINISHED;
}
-void CURVE_OT_select_every_nth(wmOperatorType *ot)
+void CURVE_OT_select_nth(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Select Every Nth";
- ot->idname= "CURVE_OT_select_every_nth";
-
+ ot->name= "Select Nth";
+ ot->description= "";
+ ot->idname= "CURVE_OT_select_nth";
+
/* api callbacks */
- ot->exec= select_every_nth_exec;
+ ot->exec= select_nth_exec;
ot->poll= ED_operator_editsurfcurve;
-
+
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- /* properties */
- RNA_def_int(ot->srna, "n", 2, 2, INT_MAX, "N", "Select every Nth element", 2, 25);
+ RNA_def_int(ot->srna, "nth", 2, 2, 100, "Nth Selection", "", 1, INT_MAX);
}
/********************** add duplicate operator *********************/
@@ -4255,6 +4402,7 @@ static int duplicate_exec(bContext *C, wmOperator *op)
Object *obedit= CTX_data_edit_object(C);
adduplicateflagNurb(obedit, 1);
+ WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
return OPERATOR_FINISHED;
}
@@ -4429,10 +4577,10 @@ static int delete_exec(bContext *C, wmOperator *op)
bezt2= bezt+1;
if( (bezt2->f1 & SELECT) || (bezt2->f2 & SELECT) || (bezt2->f3 & SELECT) ) ;
else { /* maybe do not make cyclic */
- if(a==0 && (nu->flagu & CU_CYCLIC) ) {
+ if(a==0 && (nu->flagu & CU_NURB_CYCLIC) ) {
bezt2= bezt+(nu->pntsu-1);
if( (bezt2->f1 & SELECT) || (bezt2->f2 & SELECT) || (bezt2->f3 & SELECT) ) {
- nu->flagu &= ~CU_CYCLIC;
+ nu->flagu &= ~CU_NURB_CYCLIC;
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
}
@@ -4455,10 +4603,10 @@ static int delete_exec(bContext *C, wmOperator *op)
bp2= bp+1;
if( bp2->f1 & 1 ) ;
else { /* maybe do not make cyclic */
- if(a==0 && (nu->flagu & CU_CYCLIC) ) {
+ if(a==0 && (nu->flagu & CU_NURB_CYCLIC) ) {
bp2= bp+(nu->pntsu-1);
if( bp2->f1 & SELECT ) {
- nu->flagu &= ~CU_CYCLIC;
+ nu->flagu &= ~CU_NURB_CYCLIC;
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
}
@@ -4483,14 +4631,14 @@ static int delete_exec(bContext *C, wmOperator *op)
BLI_remlink(editnurb, nu);
freeNurb(nu); nu = NULL;
}
- else if(nu1->flagu & CU_CYCLIC) { /* cyclic */
+ else if(nu1->flagu & CU_NURB_CYCLIC) { /* cyclic */
bezt =
(BezTriple*)MEM_mallocN((cut+1) * sizeof(BezTriple), "delNurb1");
memcpy(bezt, nu1->bezt,(cut+1)*sizeof(BezTriple));
a= nu1->pntsu-cut-1;
memcpy(nu1->bezt, bezt2, a*sizeof(BezTriple));
memcpy(nu1->bezt+a, bezt, (cut+1)*sizeof(BezTriple));
- nu1->flagu &= ~CU_CYCLIC;
+ nu1->flagu &= ~CU_NURB_CYCLIC;
MEM_freeN(bezt);
calchandlesNurb(nu);
}
@@ -4525,14 +4673,14 @@ static int delete_exec(bContext *C, wmOperator *op)
BLI_remlink(editnurb, nu);
freeNurb(nu); nu= NULL;
}
- else if(nu1->flagu & CU_CYCLIC) { /* cyclic */
+ else if(nu1->flagu & CU_NURB_CYCLIC) { /* cyclic */
bp =
(BPoint*)MEM_mallocN((cut+1) * sizeof(BPoint), "delNurb5");
memcpy(bp, nu1->bp,(cut+1)*sizeof(BPoint));
a= nu1->pntsu-cut-1;
memcpy(nu1->bp, bp2, a*sizeof(BPoint));
memcpy(nu1->bp+a, bp, (cut+1)*sizeof(BPoint));
- nu1->flagu &= ~CU_CYCLIC;
+ nu1->flagu &= ~CU_NURB_CYCLIC;
MEM_freeN(bp);
}
else { /* add new curve */
@@ -4572,8 +4720,8 @@ static int delete_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(obedit->type==OB_SURF) {
pup= uiPupMenuBegin(C, "Delete", 0);
layout= uiPupMenuLayout(pup);
- uiItemEnumO(layout, NULL, 0, op->type->idname, "type", 0);
- uiItemEnumO(layout, NULL, 0, op->type->idname, "type", 2);
+ uiItemEnumO(layout, op->type->idname, NULL, 0, "type", 0);
+ uiItemEnumO(layout, op->type->idname, NULL, 0, "type", 2);
uiPupMenuEnd(C, pup);
}
else {
@@ -4737,7 +4885,6 @@ int join_curve_exec(bContext *C, wmOperator *op)
}
/************ add primitive, used by object/ module ****************/
-
Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
{
static int xzproj= 0; /* this function calls itself... */
@@ -4848,7 +4995,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
nu->pntsu= 5;
nu->pntsv= 1;
nu->orderu= 5;
- nu->flagu= 2; /* endpoint */
+ nu->flagu= CU_NURB_ENDPOINT; /* endpoint */
nu->resolu= 8;
nu->bp= callocstructN(BPoint, 5, "addNurbprim3");
@@ -4887,7 +5034,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
if (!force_3d) nu->flag |= CU_2D;
nu->pntsu= 4;
nu->bezt= callocstructN(BezTriple, 4, "addNurbprim1");
- nu->flagu= CU_CYCLIC;
+ nu->flagu= CU_NURB_CYCLIC;
bezt= nu->bezt;
bezt->h1= bezt->h2= HD_AUTO;
@@ -4924,7 +5071,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
nu->pntsv= 1;
nu->orderu= 4;
nu->bp= callocstructN(BPoint, 8, "addNurbprim6");
- nu->flagu= CU_CYCLIC;
+ nu->flagu= CU_NURB_CYCLIC;
bp= nu->bp;
for(a=0; a<8; a++) {
@@ -5046,7 +5193,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
mul_m4_v3(mat,bp->vec);
bp++;
}
- nu->flagu= 4;
+ nu->flagu= CU_NURB_BEZIER;
makeknots(nu, 1);
BLI_addtail(editnurb, nu); /* temporal for spin */
@@ -5072,8 +5219,8 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
float tmp_vec[3] = {0.f, 0.f, 0.f};
if(newname) {
- rename_id((ID *)obedit, "SurfDonut");
- rename_id((ID *)obedit->data, "SurfDonut");
+ rename_id((ID *)obedit, "SurfTorus");
+ rename_id((ID *)obedit->data, "SurfTorus");
}
xzproj= 1;
@@ -5109,6 +5256,318 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
return nu;
}
+static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf) {
+
+ Object *obedit= CTX_data_edit_object(C);
+ ListBase *editnurb;
+ Nurb *nu;
+ int newob= 0;
+ int enter_editmode;
+ unsigned int layer;
+ float loc[3], rot[3];
+ float mat[4][4];
+
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return OPERATOR_CANCELLED;
+
+ if (!isSurf) { /* adding curve */
+ if(obedit==NULL || obedit->type!=OB_CURVE) {
+ Curve *cu;
+ obedit= ED_object_add_type(C, OB_CURVE, loc, rot, TRUE, layer);
+ newob = 1;
+
+ cu= (Curve*)obedit->data;
+ cu->flag |= CU_DEFORM_FILL;
+ if(type & CU_PRIM_PATH)
+ cu->flag |= CU_PATH|CU_3D;
+ } else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ } else { /* adding surface */
+ if(obedit==NULL || obedit->type!=OB_SURF) {
+ obedit= ED_object_add_type(C, OB_SURF, loc, rot, TRUE, layer);
+ newob = 1;
+ } else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ }
+
+ ED_object_new_primitive_matrix(C, obedit, loc, rot, mat);
+
+ nu= add_nurbs_primitive(C, mat, type, newob);
+ editnurb= curve_get_editcurve(obedit);
+ BLI_addtail(editnurb, nu);
+
+ /* userdef */
+ if (newob && !enter_editmode) {
+ ED_object_exit_editmode(C, EM_FREEDATA);
+ }
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit);
+
+ return OPERATOR_FINISHED;
+}
+
+static int curve_prim_add(bContext *C, wmOperator *op, int type) {
+ return curvesurf_prim_add(C, op, type, 0);
+}
+
+static int surf_prim_add(bContext *C, wmOperator *op, int type) {
+ return curvesurf_prim_add(C, op, type, 1);
+}
+
+/* ******************** Curves ******************* */
+
+static int add_primitive_bezier_exec(bContext *C, wmOperator *op)
+{
+ return curve_prim_add(C, op, CU_BEZIER|CU_PRIM_CURVE);
+}
+
+void CURVE_OT_primitive_bezier_curve_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Bezier";
+ ot->description= "Construct a Bezier Curve";
+ ot->idname= "CURVE_OT_primitive_bezier_curve_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_bezier_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_bezier_circle_exec(bContext *C, wmOperator *op)
+{
+ return curve_prim_add(C, op, CU_BEZIER|CU_PRIM_CIRCLE);
+}
+
+void CURVE_OT_primitive_bezier_circle_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Circle";
+ ot->description= "Construct a Bezier Circle";
+ ot->idname= "CURVE_OT_primitive_bezier_circle_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_bezier_circle_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_nurbs_curve_exec(bContext *C, wmOperator *op)
+{
+ return curve_prim_add(C, op, CU_NURBS|CU_PRIM_CURVE);
+}
+
+void CURVE_OT_primitive_nurbs_curve_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Nurbs Curve";
+ ot->description= "Construct a Nurbs Curve";
+ ot->idname= "CURVE_OT_primitive_nurbs_curve_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_nurbs_curve_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_nurbs_circle_exec(bContext *C, wmOperator *op)
+{
+ return curve_prim_add(C, op, CU_NURBS|CU_PRIM_CIRCLE);
+}
+
+void CURVE_OT_primitive_nurbs_circle_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Nurbs Circle";
+ ot->description= "Construct a Nurbs Circle";
+ ot->idname= "CURVE_OT_primitive_nurbs_circle_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_nurbs_circle_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_curve_path_exec(bContext *C, wmOperator *op)
+{
+ return curve_prim_add(C, op, CU_NURBS|CU_PRIM_PATH);
+}
+
+void CURVE_OT_primitive_nurbs_path_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Path";
+ ot->description= "Construct a Path";
+ ot->idname= "CURVE_OT_primitive_nurbs_path_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_curve_path_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+/* **************** NURBS surfaces ********************** */
+static int add_primitive_nurbs_surface_curve_exec(bContext *C, wmOperator *op)
+{
+ return surf_prim_add(C, op, CU_PRIM_CURVE|CU_NURBS);
+}
+
+void SURFACE_OT_primitive_nurbs_surface_curve_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Surface Curve";
+ ot->description= "Construct a Nurbs surface Curve";
+ ot->idname= "SURFACE_OT_primitive_nurbs_surface_curve_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_nurbs_surface_curve_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_nurbs_surface_circle_exec(bContext *C, wmOperator *op)
+{
+ return surf_prim_add(C, op, CU_PRIM_CIRCLE|CU_NURBS);
+}
+
+void SURFACE_OT_primitive_nurbs_surface_circle_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Surface Circle";
+ ot->description= "Construct a Nurbs surface Circle";
+ ot->idname= "SURFACE_OT_primitive_nurbs_surface_circle_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_nurbs_surface_circle_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_nurbs_surface_surface_exec(bContext *C, wmOperator *op)
+{
+ return surf_prim_add(C, op, CU_PRIM_PATCH|CU_NURBS);
+}
+
+void SURFACE_OT_primitive_nurbs_surface_surface_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Surface Patch";
+ ot->description= "Construct a Nurbs surface Patch";
+ ot->idname= "SURFACE_OT_primitive_nurbs_surface_surface_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_nurbs_surface_surface_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_nurbs_surface_tube_exec(bContext *C, wmOperator *op)
+{
+ return surf_prim_add(C, op, CU_PRIM_TUBE|CU_NURBS);
+}
+
+void SURFACE_OT_primitive_nurbs_surface_tube_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Surface Tube";
+ ot->description= "Construct a Nurbs surface Tube";
+ ot->idname= "SURFACE_OT_primitive_nurbs_surface_tube_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_nurbs_surface_tube_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_nurbs_surface_sphere_exec(bContext *C, wmOperator *op)
+{
+ return surf_prim_add(C, op, CU_PRIM_SPHERE|CU_NURBS);
+}
+
+void SURFACE_OT_primitive_nurbs_surface_sphere_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Surface Sphere";
+ ot->description= "Construct a Nurbs surface Sphere";
+ ot->idname= "SURFACE_OT_primitive_nurbs_surface_sphere_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_nurbs_surface_sphere_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
+static int add_primitive_nurbs_surface_donut_exec(bContext *C, wmOperator *op)
+{
+ return surf_prim_add(C, op, CU_PRIM_DONUT|CU_NURBS);
+}
+
+void SURFACE_OT_primitive_nurbs_surface_donut_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Surface Donut";
+ ot->description= "Construct a Nurbs surface Donut";
+ ot->idname= "SURFACE_OT_primitive_nurbs_surface_donut_add";
+
+ /* api callbacks */
+ ot->invoke= ED_object_add_generic_invoke;
+ ot->exec= add_primitive_nurbs_surface_donut_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ ED_object_add_generic_props(ot, TRUE);
+}
+
/***************** clear tilt operator ********************/
static int clear_tilt_exec(bContext *C, wmOperator *op)
@@ -5162,49 +5621,87 @@ void CURVE_OT_tilt_clear(wmOperatorType *ot)
/****************** undo for curves ****************/
-static void undoCurve_to_editCurve(void *lbu, void *lbe, void *obdata)
+static void *undo_check_lastsel(void *lastsel, Nurb *nu, Nurb *newnu)
{
- ListBase *lb= lbu;
- ListBase *editnurb= lbe;
+ if (nu->bezt) {
+ BezTriple *lastbezt= (BezTriple*)lastsel;
+ if (lastbezt >= nu->bezt && lastbezt < nu->bezt + nu->pntsu) {
+ return newnu->bezt + (lastbezt - nu->bezt);
+ }
+ } else {
+ BPoint *lastbp= (BPoint*)lastsel;
+ if (lastbp >= nu->bp && lastbp < nu->bp + nu->pntsu*nu->pntsv) {
+ return newnu->bp + (lastbp - nu->bp);
+ }
+ }
+
+ return NULL;
+}
+
+static void undoCurve_to_editCurve(void *ucu, void *cue)
+{
+ Curve *cu= cue;
+ UndoCurve *undoCurve= ucu;
+ ListBase *undobase= &undoCurve->nubase;
+ ListBase *editbase= cu->editnurb;
Nurb *nu, *newnu;
-
- freeNurblist(editnurb);
+ void *lastsel= NULL;
+
+ freeNurblist(editbase);
/* copy */
- for(nu= lb->first; nu; nu= nu->next) {
+ for(nu= undobase->first; nu; nu= nu->next) {
newnu= duplicateNurb(nu);
- BLI_addtail(editnurb, newnu);
+
+ if (lastsel == NULL) {
+ lastsel= undo_check_lastsel(undoCurve->lastsel, nu, newnu);
+ }
+
+ BLI_addtail(editbase, newnu);
}
+
+ cu->lastsel= lastsel;
}
-static void *editCurve_to_undoCurve(void *lbe, void *obdata)
+static void *editCurve_to_undoCurve(void *lbe, void *cue)
{
- ListBase *editnurb= lbe;
- ListBase *lb;
+ Curve *cu= cue;
+ ListBase *nubase= cu->editnurb;
+ UndoCurve *undoCurve;
Nurb *nu, *newnu;
+ void *lastsel= NULL;
+
+ undoCurve= MEM_callocN(sizeof(UndoCurve), "undoCurve");
- lb= MEM_callocN(sizeof(ListBase), "listbase undo");
-
/* copy */
- for(nu= editnurb->first; nu; nu= nu->next) {
+ for(nu= nubase->first; nu; nu= nu->next) {
newnu= duplicateNurb(nu);
- BLI_addtail(lb, newnu);
+
+ if (lastsel == NULL) {
+ lastsel= undo_check_lastsel(cu->lastsel, nu, newnu);
+ }
+
+ BLI_addtail(&undoCurve->nubase, newnu);
}
- return lb;
+
+ undoCurve->lastsel= lastsel;
+
+ return undoCurve;
}
-static void free_undoCurve(void *lbv)
+static void free_undoCurve(void *ucv)
{
- ListBase *lb= lbv;
-
- freeNurblist(lb);
- MEM_freeN(lb);
+ UndoCurve *undoCurve= ucv;
+
+ freeNurblist(&undoCurve->nubase);
+
+ MEM_freeN(undoCurve);
}
static void *get_data(bContext *C)
{
Object *obedit= CTX_data_edit_object(C);
- return curve_get_editcurve(obedit);
+ return obedit->data;
}
/* and this is all the undo system needs to know */
diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c
index 0511558f544..ded908a52b9 100644
--- a/source/blender/editors/curve/editfont.c
+++ b/source/blender/editors/curve/editfont.c
@@ -46,8 +46,6 @@
#include "DNA_vfont_types.h"
#include "DNA_scene_types.h"
#include "DNA_text_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_context.h"
#include "BKE_curve.h"
@@ -66,7 +64,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_curve.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_util.h"
@@ -320,7 +317,7 @@ void FONT_OT_insert_lorem(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Insert Lorem";
- ot->description= "Insert placeholder text";
+ ot->description= "Insert placeholder text";
ot->idname= "FONT_OT_insert_lorem";
/* api callbacks */
@@ -387,7 +384,7 @@ static int paste_file_exec(bContext *C, wmOperator *op)
char *path;
int retval;
- path= RNA_string_get_alloc(op->ptr, "path", NULL, 0);
+ path= RNA_string_get_alloc(op->ptr, "filepath", NULL, 0);
retval= paste_file(C, op->reports, path);
MEM_freeN(path);
@@ -396,7 +393,7 @@ static int paste_file_exec(bContext *C, wmOperator *op)
static int paste_file_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- if(RNA_property_is_set(op->ptr, "path"))
+ if(RNA_property_is_set(op->ptr, "filepath"))
return paste_file_exec(C, op);
WM_event_add_fileselect(C, op);
@@ -408,7 +405,7 @@ void FONT_OT_file_paste(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Paste File";
- ot->description= "Paste contents from file";
+ ot->description= "Paste contents from file";
ot->idname= "FONT_OT_file_paste";
/* api callbacks */
@@ -420,7 +417,7 @@ void FONT_OT_file_paste(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|TEXTFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|TEXTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH);
}
/******************* paste buffer operator ********************/
@@ -457,7 +454,7 @@ void FONT_OT_buffer_paste(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Paste Buffer";
- ot->description= "Paste text from OS buffer";
+ ot->description= "Paste text from OS buffer";
ot->idname= "FONT_OT_buffer_paste";
/* api callbacks */
@@ -568,7 +565,7 @@ static short next_word(Curve *cu)
{
short s;
for(s=cu->pos; (cu->str[s]) && (cu->str[s]!=' ') && (cu->str[s]!='\n') &&
- (cu->str[s]!=1) && (cu->str[s]!='\r'); s++);
+ (cu->str[s]!=1) && (cu->str[s]!='\r'); s++);
if(cu->str[s]) return(s+1); else return(s);
}
@@ -578,7 +575,7 @@ static short prev_word(Curve *cu)
if(cu->pos==0) return(0);
for(s=cu->pos-2; (cu->str[s]) && (cu->str[s]!=' ') && (cu->str[s]!='\n') &&
- (cu->str[s]!=1) && (cu->str[s]!='\r'); s--);
+ (cu->str[s]!=1) && (cu->str[s]!='\r'); s--);
if(cu->str[s]) return(s+1); else return(s);
}
@@ -614,9 +611,10 @@ static int kill_selection(Object *obedit, int ins) /* 1 == new character */
/******************* set style operator ********************/
static EnumPropertyItem style_items[]= {
- {CU_BOLD, "BOLD", 0, "Bold", ""},
- {CU_ITALIC, "ITALIC", 0, "Italic", ""},
- {CU_UNDERLINE, "UNDERLINE", 0, "Underline", ""},
+ {CU_CHINFO_BOLD, "BOLD", 0, "Bold", ""},
+ {CU_CHINFO_ITALIC, "ITALIC", 0, "Italic", ""},
+ {CU_CHINFO_UNDERLINE, "UNDERLINE", 0, "Underline", ""},
+ {CU_CHINFO_SMALLCAPS, "SMALL_CAPS", 0, "Small Caps", ""},
{0, NULL, 0, NULL, NULL}};
static int set_style(bContext *C, int style, int clear)
@@ -656,7 +654,7 @@ void FONT_OT_style_set(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Set Style";
- ot->description= "Set font style";
+ ot->description= "Set font style";
ot->idname= "FONT_OT_style_set";
/* api callbacks */
@@ -667,7 +665,7 @@ void FONT_OT_style_set(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- RNA_def_enum(ot->srna, "style", style_items, CU_BOLD, "Style", "Style to set selection to.");
+ RNA_def_enum(ot->srna, "style", style_items, CU_CHINFO_BOLD, "Style", "Style to set selection to.");
RNA_def_boolean(ot->srna, "clear", 0, "Clear", "Clear style rather than setting it.");
}
@@ -694,7 +692,7 @@ void FONT_OT_style_toggle(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Toggle Style";
- ot->description= "Toggle font style";
+ ot->description= "Toggle font style";
ot->idname= "FONT_OT_style_toggle";
/* api callbacks */
@@ -705,7 +703,7 @@ void FONT_OT_style_toggle(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- RNA_def_enum(ot->srna, "style", style_items, CU_BOLD, "Style", "Style to set selection to.");
+ RNA_def_enum(ot->srna, "style", style_items, CU_CHINFO_BOLD, "Style", "Style to set selection to.");
}
/******************* copy text operator ********************/
@@ -737,7 +735,7 @@ void FONT_OT_text_copy(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Copy Text";
- ot->description= "Copy selected text to clipboard";
+ ot->description= "Copy selected text to clipboard";
ot->idname= "FONT_OT_text_copy";
/* api callbacks */
@@ -768,7 +766,7 @@ void FONT_OT_text_cut(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Cut Text";
- ot->description= "Cut selected text to clipboard";
+ ot->description= "Cut selected text to clipboard";
ot->idname= "FONT_OT_text_cut";
/* api callbacks */
@@ -826,7 +824,7 @@ void FONT_OT_text_paste(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Paste Text";
- ot->description= "Paste text from clipboard";
+ ot->description= "Paste text from clipboard";
ot->idname= "FONT_OT_text_paste";
/* api callbacks */
@@ -865,7 +863,7 @@ static int move_cursor(bContext *C, int type, int select)
if((select) && (cu->selstart==0)) cu->selstart = cu->selend = cu->pos+1;
while(cu->pos>0) {
if(ef->textbuf[cu->pos-1]=='\n') break;
- if(ef->textbufinfo[cu->pos-1].flag & CU_WRAP ) break;
+ if(ef->textbufinfo[cu->pos-1].flag & CU_CHINFO_WRAP) break;
cu->pos--;
}
cursmove=FO_CURS;
@@ -876,7 +874,7 @@ static int move_cursor(bContext *C, int type, int select)
while(cu->pos<cu->len) {
if(ef->textbuf[cu->pos]==0) break;
if(ef->textbuf[cu->pos]=='\n') break;
- if(ef->textbufinfo[cu->pos].flag & CU_WRAP ) break;
+ if(ef->textbufinfo[cu->pos].flag & CU_CHINFO_WRAP ) break;
cu->pos++;
}
cursmove=FO_CURS;
@@ -962,7 +960,7 @@ void FONT_OT_move(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Move Cursor";
- ot->description= "Move cursor to position type";
+ ot->description= "Move cursor to position type";
ot->idname= "FONT_OT_move";
/* api callbacks */
@@ -989,7 +987,7 @@ void FONT_OT_move_select(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Move Select";
- ot->description= "Make selection from current cursor position to new cursor position type";
+ ot->description= "Make selection from current cursor position to new cursor position type";
ot->idname= "FONT_OT_move_select";
/* api callbacks */
@@ -1031,7 +1029,7 @@ void FONT_OT_change_spacing(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Change Spacing";
- ot->description= "Change font spacing";
+ ot->description= "Change font spacing";
ot->idname= "FONT_OT_change_spacing";
/* api callbacks */
@@ -1076,7 +1074,7 @@ void FONT_OT_change_character(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Change Character";
- ot->description= "Change font character code";
+ ot->description= "Change font character code";
ot->idname= "FONT_OT_change_character";
/* api callbacks */
@@ -1119,7 +1117,7 @@ void FONT_OT_line_break(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Line Break";
- ot->description= "Insert line break at cursor position";
+ ot->description= "Insert line break at cursor position";
ot->idname= "FONT_OT_line_break";
/* api callbacks */
@@ -1209,7 +1207,7 @@ void FONT_OT_delete(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Delete";
- ot->description= "Delete text by cursor position";
+ ot->description= "Delete text by cursor position";
ot->idname= "FONT_OT_delete";
/* api callbacks */
@@ -1351,7 +1349,7 @@ void FONT_OT_text_insert(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Insert Text";
- ot->description= "Insert text at cursor position";
+ ot->description= "Insert text at cursor position";
ot->idname= "FONT_OT_text_insert";
/* api callbacks */
@@ -1366,6 +1364,99 @@ void FONT_OT_text_insert(wmOperatorType *ot)
RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position.");
}
+
+/*********************** textbox add operator *************************/
+static int textbox_poll(bContext *C)
+{
+ Object *ob = CTX_data_active_object(C);
+
+ if (!ED_operator_object_active_editable(C) ) return 0;
+ if (ob->type != OB_FONT) return 0;
+
+ return 1;
+}
+
+static int textbox_add_exec(bContext *C, wmOperator *op)
+{
+ Object *obedit= CTX_data_active_object(C);
+ Curve *cu= obedit->data;
+ int i;
+
+ if (cu->totbox < 256) {
+ for (i = cu->totbox; i>cu->actbox; i--) cu->tb[i]= cu->tb[i-1];
+ cu->tb[cu->actbox]= cu->tb[cu->actbox-1];
+ cu->actbox++;
+ cu->totbox++;
+ }
+
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
+ return OPERATOR_FINISHED;
+}
+
+void FONT_OT_textbox_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Textbox";
+ ot->description= "Add a new text box";
+ ot->idname= "FONT_OT_textbox_add";
+
+ /* api callbacks */
+ ot->exec= textbox_add_exec;
+ ot->poll= textbox_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+
+}
+
+
+
+/*********************** textbox remove operator *************************/
+
+
+
+static int textbox_remove_exec(bContext *C, wmOperator *op)
+{
+ Object *obedit= CTX_data_active_object(C);
+ Curve *cu= obedit->data;
+ int i;
+ int index = RNA_int_get(op->ptr, "index");
+
+
+ if (cu->totbox > 1) {
+ for (i = index; i < cu->totbox; i++) cu->tb[i]= cu->tb[i+1];
+ cu->totbox--;
+ if (cu->actbox >= index)
+ cu->actbox--;
+ }
+
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
+
+ return OPERATOR_FINISHED;
+}
+
+void FONT_OT_textbox_remove(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Remove Textbox";
+ ot->description= "Remove the textbox";
+ ot->idname= "FONT_OT_textbox_remove";
+
+ /* api callbacks */
+ ot->exec= textbox_remove_exec;
+ ot->poll= textbox_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "The current text box.", 0, INT_MAX);
+
+
+}
+
+
+
/***************** editmode enter/exit ********************/
void make_editText(Object *obedit)
@@ -1487,7 +1578,7 @@ void FONT_OT_case_set(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Set Case";
- ot->description= "Set font case";
+ ot->description= "Set font case";
ot->idname= "FONT_OT_case_set";
/* api callbacks */
@@ -1530,7 +1621,7 @@ void FONT_OT_case_toggle(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Toggle Case";
- ot->description= "Toggle font case";
+ ot->description= "Toggle font case";
ot->idname= "FONT_OT_case_toggle";
/* api callbacks */
@@ -1567,7 +1658,7 @@ static int open_exec(bContext *C, wmOperator *op)
PointerRNA idptr;
char str[FILE_MAX];
- RNA_string_get(op->ptr, "path", str);
+ RNA_string_get(op->ptr, "filepath", str);
font = load_vfont(str);
@@ -1616,12 +1707,12 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
path = (font && font->name)? font->name: U.fontdir;
- if(RNA_property_is_set(op->ptr, "path"))
+ if(RNA_property_is_set(op->ptr, "filepath"))
return open_exec(C, op);
open_init(C, op);
- RNA_string_set(op->ptr, "path", path);
+ RNA_string_set(op->ptr, "filepath", path);
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
@@ -1642,7 +1733,7 @@ void FONT_OT_open(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|FTFONTFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|FTFONTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH);
}
/******************* delete operator *********************/
diff --git a/source/blender/editors/datafiles/B.blend.c b/source/blender/editors/datafiles/B.blend.c
deleted file mode 100644
index d8553e30a6a..00000000000
--- a/source/blender/editors/datafiles/B.blend.c
+++ /dev/null
@@ -1,10668 +0,0 @@
-/* DataToC output of file <_B25_blend> */
-
-int datatoc_B_blend_size= 341204;
-char datatoc_B_blend[]= {
- 66, 76, 69, 78, 68, 69, 82, 95,118, 50, 53, 49, 82, 69, 78, 68, 32, 0, 0, 0,
-168, 93,199,191, 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, 16, 1, 0, 0,180, 92,199,191,199, 0, 0, 0, 1, 0, 0, 0,
- 32, 32, 32, 48, 0, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1, 8, 71,112, 10,240,212,114, 10, 0, 16, 0, 0,128, 0, 4, 0,
- 47,104,111,109,101, 47,105,100,101, 97,115,109, 97,110, 52, 50, 47, 46, 66, 50, 53, 46, 98,108,101,110,100, 0, 20, 93,199,191,
- 60, 94,199,191,192, 93,199,191, 76, 97,173, 0, 20, 93,199,191,127, 14,189, 8,232, 93,199,191, 60, 94,199,191, 0, 0, 0, 0,
- 1,128,173,251, 76,103,199,191, 41,207,126, 8, 96,166,190, 11,168, 93,199,191, 32, 0, 0, 0,255,255,255,255, 60, 94,199,191,
-255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244,175,205, 8,136, 93,199,191,114,209,126, 8,104,160,222, 10,
-168, 93,199,191, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 32, 0, 0, 0,
-168, 93,199,191, 0, 0, 0, 0, 1, 0, 0, 0, 40,120,113, 11, 76,103,199,191,216, 93,199,191, 46,216,126, 8,104,160,222, 10,
- 82, 69, 78, 68, 32, 0, 0, 0,168, 93,199,191, 48,208,115, 10,244,175,205, 8, 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, 87, 77, 0, 0,164, 0, 0, 0,176,233,110, 10,103, 1, 0, 0,
- 1, 0, 0, 0, 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,128,234,110, 10,128,234,110, 10,
-128,234,110, 10,128,234,110, 10, 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, 2, 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, 24,110,115, 10, 24,110,115, 10, 24,110,115, 10, 32,111,115, 10,
- 32,111,115, 10, 32,111,115, 10, 68, 65, 84, 65,148, 0, 0, 0,128,234,110, 10,104, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,144,111,115, 10, 1, 0, 0, 0, 0, 0, 0, 0, 8, 71,112, 10, 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, 26, 0,254, 4,214, 2,
- 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 1, 0, 0, 0, 0, 0,136,189,163, 10, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 88,138,164, 10,144,140,184, 11,144,140,184, 11,144,101,164, 10,152,102,164, 10,160,103,164, 10,160,103,164, 10,
- 24,104,164, 10, 96,142,164, 10, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,140, 0, 0, 0, 64,235,110, 10,193, 0, 0, 0,
- 1, 0, 0, 0,176,172,111, 10, 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,248,235,110, 10, 56,240,110, 10,
-120,240,110, 10, 88,248,110, 10,160,248,110, 10,240,156,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 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, 68, 65, 84, 65, 20, 0, 0, 0,248,235,110, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 56,236,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 56,236,110, 10,194, 0, 0, 0, 1, 0, 0, 0,120,236,110, 10,248,235,110, 10, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,120,236,110, 10,194, 0, 0, 0, 1, 0, 0, 0,184,236,110, 10, 56,236,110, 10, 0, 0, 0, 0,
-254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,184,236,110, 10,194, 0, 0, 0, 1, 0, 0, 0,248,236,110, 10,
-120,236,110, 10, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,248,236,110, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 56,237,110, 10,184,236,110, 10, 0, 0, 0, 0, 0, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 56,237,110, 10,194, 0, 0, 0, 1, 0, 0, 0,120,237,110, 10,248,236,110, 10, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,120,237,110, 10,194, 0, 0, 0, 1, 0, 0, 0,184,237,110, 10, 56,237,110, 10, 0, 0, 0, 0,
- 32, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,184,237,110, 10,194, 0, 0, 0, 1, 0, 0, 0,248,237,110, 10,
-120,237,110, 10, 0, 0, 0, 0, 32, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,248,237,110, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 56,238,110, 10,184,237,110, 10, 0, 0, 0, 0, 32, 4, 52, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 56,238,110, 10,194, 0, 0, 0, 1, 0, 0, 0,120,238,110, 10,248,237,110, 10, 0, 0, 0, 0,254, 4, 52, 1, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,120,238,110, 10,194, 0, 0, 0, 1, 0, 0, 0,184,238,110, 10, 56,238,110, 10, 0, 0, 0, 0,
- 0, 0, 84, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,184,238,110, 10,194, 0, 0, 0, 1, 0, 0, 0,248,238,110, 10,
-120,238,110, 10, 0, 0, 0, 0, 32, 4, 84, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,248,238,110, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 56,239,110, 10,184,238,110, 10, 0, 0, 0, 0,192, 1, 84, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 56,239,110, 10,194, 0, 0, 0, 1, 0, 0, 0,120,239,110, 10,248,238,110, 10, 0, 0, 0, 0,192, 1,187, 2, 1, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,120,239,110, 10,194, 0, 0, 0, 1, 0, 0, 0,184,239,110, 10, 56,239,110, 10, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,184,239,110, 10,194, 0, 0, 0, 1, 0, 0, 0,248,239,110, 10,
-120,239,110, 10, 0, 0, 0, 0,192, 1, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,248,239,110, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 56,240,110, 10,184,239,110, 10, 0, 0, 0, 0, 32, 4, 48, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 56,240,110, 10,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248,239,110, 10, 0, 0, 0, 0,254, 4, 48, 2, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,120,240,110, 10,195, 0, 0, 0, 1, 0, 0, 0,192,240,110, 10, 0, 0, 0, 0, 56,236,110, 10,
-120,236,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,192,240,110, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 8,241,110, 10,120,240,110, 10, 56,236,110, 10,248,236,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 8,241,110, 10,195, 0, 0, 0, 1, 0, 0, 0, 80,241,110, 10,192,240,110, 10,120,236,110, 10, 56,237,110, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,241,110, 10,195, 0, 0, 0, 1, 0, 0, 0,152,241,110, 10, 8,241,110, 10,
-248,236,110, 10, 56,237,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152,241,110, 10,195, 0, 0, 0,
- 1, 0, 0, 0,224,241,110, 10, 80,241,110, 10,248,235,110, 10,120,237,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,224,241,110, 10,195, 0, 0, 0, 1, 0, 0, 0, 40,242,110, 10,152,241,110, 10,184,236,110, 10,120,237,110, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40,242,110, 10,195, 0, 0, 0, 1, 0, 0, 0,112,242,110, 10,
-224,241,110, 10, 56,237,110, 10,184,237,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112,242,110, 10,
-195, 0, 0, 0, 1, 0, 0, 0,184,242,110, 10, 40,242,110, 10,120,237,110, 10,248,237,110, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,184,242,110, 10,195, 0, 0, 0, 1, 0, 0, 0, 0,243,110, 10,112,242,110, 10,184,236,110, 10,
- 56,238,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 0,243,110, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 72,243,110, 10,184,242,110, 10,248,237,110, 10, 56,238,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 72,243,110, 10,195, 0, 0, 0, 1, 0, 0, 0,144,243,110, 10, 0,243,110, 10,248,235,110, 10,120,238,110, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,243,110, 10,195, 0, 0, 0, 1, 0, 0, 0,216,243,110, 10, 72,243,110, 10,
-184,237,110, 10,184,238,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216,243,110, 10,195, 0, 0, 0,
- 1, 0, 0, 0, 32,244,110, 10,144,243,110, 10,120,237,110, 10,184,238,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 32,244,110, 10,195, 0, 0, 0, 1, 0, 0, 0,104,244,110, 10,216,243,110, 10,120,238,110, 10,184,238,110, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,104,244,110, 10,195, 0, 0, 0, 1, 0, 0, 0,176,244,110, 10,
- 32,244,110, 10,120,238,110, 10,248,238,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176,244,110, 10,
-195, 0, 0, 0, 1, 0, 0, 0,248,244,110, 10,104,244,110, 10,184,238,110, 10,248,238,110, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,248,244,110, 10,195, 0, 0, 0, 1, 0, 0, 0, 64,245,110, 10,176,244,110, 10,248,236,110, 10,
- 56,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64,245,110, 10,195, 0, 0, 0, 1, 0, 0, 0,
-136,245,110, 10,248,244,110, 10,184,237,110, 10, 56,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-136,245,110, 10,195, 0, 0, 0, 1, 0, 0, 0,208,245,110, 10, 64,245,110, 10,248,238,110, 10, 56,239,110, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208,245,110, 10,195, 0, 0, 0, 1, 0, 0, 0, 24,246,110, 10,136,245,110, 10,
-120,238,110, 10,120,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 24,246,110, 10,195, 0, 0, 0,
- 1, 0, 0, 0, 96,246,110, 10,208,245,110, 10,248,238,110, 10,184,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 96,246,110, 10,195, 0, 0, 0, 1, 0, 0, 0,168,246,110, 10, 24,246,110, 10,120,239,110, 10,184,239,110, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168,246,110, 10,195, 0, 0, 0, 1, 0, 0, 0,240,246,110, 10,
- 96,246,110, 10,248,237,110, 10,248,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,240,246,110, 10,
-195, 0, 0, 0, 1, 0, 0, 0, 56,247,110, 10,168,246,110, 10,184,237,110, 10,248,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 56,247,110, 10,195, 0, 0, 0, 1, 0, 0, 0,128,247,110, 10,240,246,110, 10, 56,237,110, 10,
- 56,240,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,128,247,110, 10,195, 0, 0, 0, 1, 0, 0, 0,
-200,247,110, 10, 56,247,110, 10, 56,238,110, 10, 56,240,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-200,247,110, 10,195, 0, 0, 0, 1, 0, 0, 0, 16,248,110, 10,128,247,110, 10,248,239,110, 10, 56,240,110, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16,248,110, 10,195, 0, 0, 0, 1, 0, 0, 0, 88,248,110, 10,200,247,110, 10,
-248,236,110, 10,120,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 88,248,110, 10,195, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 16,248,110, 10, 56,239,110, 10,184,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 96, 0, 0, 0,160,248,110, 10,197, 0, 0, 0, 1, 0, 0, 0,128,251,110, 10, 0, 0, 0, 0,248,236,110, 10, 56,236,110, 10,
-120,236,110, 10, 56,237,110, 10, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0, 7, 7,255, 4,
- 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 80,172,111, 10, 80,172,111, 10, 48,249,110, 10, 88,250,110, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48,249,110, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 88,250,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68,
- 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 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, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255, 4, 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, 68, 65, 84, 65,
-248, 0, 0, 0, 88,250,110, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,249,110, 10, 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, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 0, 0, 0, 0,214, 2, 0, 0,214, 2, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0,128,251,110, 10,197, 0, 0, 0, 1, 0, 0, 0, 96, 29,111, 10,
-160,248,110, 10,120,237,110, 10,248,237,110, 10, 56,238,110, 10,184,236,110, 10, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0,
- 0, 0, 0, 0, 51, 1, 0, 0, 4, 4,222, 0, 52, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 21,111, 10,
- 56, 28,111, 10, 16,252,110, 10, 56,253,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0, 16,252,110, 10,198, 0, 0, 0, 1, 0, 0, 0, 56,253,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 94, 67, 0, 0, 0, 0, 0, 0,248, 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,221, 0, 0, 0,
- 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,222, 0, 31, 0,222, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 21, 1, 0, 0, 51, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 0, 31, 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, 68, 65, 84, 65,248, 0, 0, 0, 56,253,110, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 16,252,110, 10, 0, 0, 0, 0, 0, 0, 94, 67, 0, 64, 80,196, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 77, 67, 1,128,138,195,
- 0, 0, 0, 0,205, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 20, 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,222, 0, 21, 1,205, 0,
- 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0,
- 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 0, 21, 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, 96,254,110, 10,
-240, 19,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 96,254,110, 10,
-196, 0, 0, 0, 1, 0, 0, 0,208,255,110, 10, 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,205, 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, 0, 68, 65, 84, 65, 64, 1, 0, 0,208,255,110, 10,196, 0, 0, 0, 1, 0, 0, 0, 64, 1,111, 10,
- 96,254,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,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, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,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, 83, 99,101,110,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,135,255, 63, 1, 61, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 64, 1,111, 10,196, 0, 0, 0, 1, 0, 0, 0,176, 2,111, 10,208,255,110, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,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,
- 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,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,
- 85,110,105,116,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, 0, 50,255, 63, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,176, 2,111, 10,196, 0, 0, 0,
- 1, 0, 0, 0, 32, 4,111, 10, 64, 1,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,
-105,110,103, 95,115,101,116,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, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,
-105,110,103, 95,115,101,116,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, 75,101,121,105,110,103, 32, 83,101,116,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,213,254, 63, 1, 69, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 14, 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, 68, 65, 84, 65, 64, 1, 0, 0, 32, 4,111, 10,196, 0, 0, 0, 1, 0, 0, 0,144, 5,111, 10,176, 2,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,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, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,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, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,254, 63, 1, 36, 0, 20, 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, 68, 65, 84, 65, 64, 1, 0, 0,
-144, 5,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 7,111, 10, 32, 4,111, 10, 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,
-205, 0, 61, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 0, 7,111, 10,196, 0, 0, 0, 1, 0, 0, 0,
-112, 8,111, 10,144, 5,111, 10, 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,205, 0, 0, 0, 0, 0, 0, 0, 4, 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,
- 68, 65, 84, 65, 64, 1, 0, 0,112, 8,111, 10,196, 0, 0, 0, 1, 0, 0, 0,224, 9,111, 10, 0, 7,111, 10, 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,205, 0,203, 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, 68, 65, 84, 65, 64, 1, 0, 0,224, 9,111, 10,
-196, 0, 0, 0, 1, 0, 0, 0, 80, 11,111, 10,112, 8,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,205, 0, 58, 0,
- 20, 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, 68, 65, 84, 65, 64, 1, 0, 0, 80, 11,111, 10,196, 0, 0, 0, 1, 0, 0, 0,192, 12,111, 10,
-224, 9,111, 10, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,253,205, 0,102, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,192, 12,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 48, 14,111, 10, 80, 11,111, 10, 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, 35,253,205, 0,105, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 48, 14,111, 10,196, 0, 0, 0,
- 1, 0, 0, 0,160, 15,111, 10,192, 12,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,253,205, 0, 0, 0, 0, 0, 0, 0,
- 4, 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, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,160, 15,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 16, 17,111, 10, 48, 14,111, 10,
- 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,243,252,205, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,
- 16, 17,111, 10,196, 0, 0, 0, 1, 0, 0, 0,128, 18,111, 10,160, 15,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219,252,
-205, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,128, 18,111, 10,196, 0, 0, 0, 1, 0, 0, 0,
-240, 19,111, 10, 16, 17,111, 10, 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, 70,117,108,108, 32, 83, 97,109,112,108,101, 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, 34,254,205, 0, 0, 0, 20, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,240, 19,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 18,111, 10, 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,195,252,205, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, 96, 21,111, 10,
-164, 0, 0, 0, 1, 0, 0, 0, 56, 28,111, 10, 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, 0, 0, 0, 0,255, 21, 0, 0,
-160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,112, 22,111, 10,198, 0, 0, 0, 1, 0, 0, 0,152, 23,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 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, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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,152, 23,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112, 22,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 1, 55, 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,192, 24,111, 10,
- 68, 65, 84, 65, 72, 3, 0, 0,192, 24,111, 10,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191,
- 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191,
- 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,
-115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191,
- 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 56, 28,111, 10,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96, 21,111, 10,112, 22,111, 10,152, 23,111, 10,
- 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,
-159, 0, 0, 0, 1, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 96, 29,111, 10,197, 0, 0, 0, 1, 0, 0, 0, 16, 40,111, 10,
-128,251,110, 10,248,235,110, 10,120,238,110, 10,184,238,110, 10,120,237,110, 10, 0, 0, 0, 0, 0, 0, 0, 0, 31, 4, 0, 0,
- 0, 0, 0, 0, 83, 0, 0, 0, 15, 15, 32, 4, 84, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32,111, 10,
-232, 38,111, 10,240, 29,111, 10, 24, 31,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0,240, 29,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 24, 31,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,140, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,132, 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, 31, 4, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 32, 4, 26, 0, 32, 4, 26, 0, 0, 0, 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, 4, 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, 32, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 24, 31,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-240, 29,111, 10, 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, 31, 4, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0, 31, 4, 0, 0, 18, 0, 0, 0, 57, 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, 32, 4, 58, 0, 0, 0,
- 0, 0, 0, 0, 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, 4, 0, 0,
- 26, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 4, 58, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,180, 0, 0, 0, 64, 32,111, 10,
-174, 0, 0, 0, 1, 0, 0, 0,232, 38,111, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0, 32, 33,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 72, 34,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 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, 87, 6, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 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, 0, 0, 0, 0, 87, 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, 88, 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, 0, 0, 0, 0, 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, 72, 34,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 32, 33,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 6, 0, 0,
- 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 35,111, 10, 68, 65, 84, 65, 72, 3, 0, 0,112, 35,111, 10,
-158, 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, 87,213,108, 66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,
-226,215,163,188, 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
-184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0,
- 98,127,249, 67,129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
-184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,232, 38,111, 10,159, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 64, 32,111, 10, 32, 33,111, 10, 72, 34,111, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 96, 0, 0, 0, 16, 40,111, 10,197, 0, 0, 0, 1, 0, 0, 0,112, 55,111, 10, 96, 29,111, 10,248,237,110, 10,248,239,110, 10,
- 56,240,110, 10, 56,238,110, 10, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 53, 1, 0, 0, 47, 2, 0, 0, 3, 3,222, 0,
-251, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 42,111, 10, 72, 54,111, 10,160, 40,111, 10,200, 41,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160, 40,111, 10,198, 0, 0, 0,
- 1, 0, 0, 0,200, 41,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0, 94, 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,221, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67,
- 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,222, 0, 26, 0,222, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 4, 0, 0,254, 4, 0, 0, 22, 2, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-222, 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, 68, 65, 84, 65,
-248, 0, 0, 0,200, 41,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160, 40,111, 10, 0, 0, 0, 0, 0,128,131, 67,
- 0, 0,228,194, 0, 0, 0, 0, 0, 0,100, 66, 0, 0,131, 67, 0, 0, 79,195, 0, 0, 0, 0,205, 0, 0, 0,222, 0, 0, 0,
- 18, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,204, 0, 0, 0,
- 18, 0, 0, 0,224, 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,
- 18, 2, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,222, 0,225, 0,205, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 53, 1, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 0,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 1, 0, 0,240, 42,111, 10,168, 0, 0, 0, 1, 0, 0, 0,112, 47,111, 10,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 44,111, 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, 1, 0, 0, 0,
- 68, 65, 84, 65, 12, 0, 0, 0, 32, 44,111, 10,221, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 88, 44,111, 10,
- 68, 65, 84, 65,156, 0, 0, 0, 88, 44,111, 10,220, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,240,212,114, 10,
- 19, 0, 0, 0, 1, 0, 1, 0,240,212,114, 10, 20, 0, 0, 0, 1, 0, 1, 0,240,212,114, 10, 21, 0, 1, 0, 1, 0, 1, 0,
-240,212,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,208,229,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,160,240,114, 10, 0, 0, 0, 0,
- 1, 0, 1, 0, 16, 31,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,176,248,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 56, 13,115, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,168,244,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 72,226,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,
-152,236,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,160,225,114, 10, 68, 65, 84, 65,248, 0, 0, 0, 32, 45,111, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 72, 46,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55,
- 0, 0, 67, 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,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67,
- 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-195, 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, 68, 65, 84, 65,
-248, 0, 0, 0, 72, 46,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 32, 45,111, 10, 0, 0, 0, 0, 0, 0,150, 67,
- 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 0, 0, 0,
- 0, 0, 0, 0,155, 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,
- 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,224, 0, 0, 0,112, 47,111, 10,164, 0, 0, 0, 1, 0, 0, 0, 72, 54,111, 10,
-240, 42,111, 10, 32, 45,111, 10, 72, 46,111, 10, 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, 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,128, 48,111, 10,198, 0, 0, 0, 1, 0, 0, 0,168, 49,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 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, 19, 1, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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,168, 49,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-128, 48,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0,
- 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 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,208, 50,111, 10, 68, 65, 84, 65, 72, 3, 0, 0,208, 50,111, 10,
-158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,
-226,215,163,188, 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
-184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0,
- 98,127,249, 67,129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
-184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 54,111, 10,159, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,112, 47,111, 10,128, 48,111, 10,168, 49,111, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 96, 0, 0, 0,112, 55,111, 10,197, 0, 0, 0, 1, 0, 0, 0,168, 79,111, 10, 16, 40,111, 10,248,238,110, 10, 56,239,110, 10,
-184,237,110, 10,184,238,110, 10, 0, 0, 0, 0,193, 1, 0, 0, 31, 4, 0, 0, 85, 0, 0, 0,186, 2, 0, 0, 1, 1, 95, 2,
-102, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 75,111, 10,200, 78,111, 10, 0, 56,111, 10,176, 70,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 0, 56,111, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 40, 57,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0,192, 23, 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, 94, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68,
- 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0, 95, 2, 26, 0, 95, 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,
-193, 1, 0, 0, 31, 4, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 95, 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,
- 0, 0, 0, 0, 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, 40, 57,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 80, 58,111, 10, 0, 56,111, 10, 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, 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,111, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 76, 2, 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, 68, 65, 84, 65,248, 0, 0, 0, 80, 58,111, 10,198, 0, 0, 0, 1, 0, 0, 0,120, 59,111, 10,
- 40, 57,111, 10, 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, 0, 0, 0, 0,193, 1, 0, 0, 31, 4, 0, 0,
-111, 0, 0, 0,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0,176, 70,111, 10, 80, 58,111, 10, 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,
- 0, 0, 0, 0, 31, 4, 0, 0, 31, 4, 0, 0,111, 0, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 60,111, 10, 64, 69,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 1, 0, 0,160, 60,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 16, 62,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,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, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 16, 62,111, 10,
-196, 0, 0, 0, 1, 0, 0, 0,128, 63,111, 10,160, 60,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,
-101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,252,163, 0, 58, 0,
- 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63,111, 10,196, 0, 0, 0, 1, 0, 0, 0,240, 64,111, 10,
- 16, 62,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,
-112,101,114,116,105,101,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,
-112,101,114,116,105,101,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, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 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, 68, 65, 84, 65,
- 64, 1, 0, 0,240, 64,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 96, 66,111, 10,128, 63,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,211,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0, 96, 66,111, 10,196, 0, 0, 0,
- 1, 0, 0, 0,208, 67,111, 10,240, 64,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97,
- 99,107,103,114,111,117,110,100, 95,105,109, 97,103,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97,
- 99,107,103,114,111,117,110,100, 95,105,109, 97,103,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, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,
-109, 97,103,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,187,252,163, 0, 0, 0, 20, 0, 0, 0,
- 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,208, 67,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 64, 69,111, 10, 96, 66,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,
-110,116, 97,116,105,111,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, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,
-110,116, 97,116,105,111,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, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,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,163,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
- 64, 69,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 67,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,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, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,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, 73,116,101,109,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,
-163, 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, 0, 68, 65, 84, 65,248, 0, 0, 0,176, 70,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,120, 59,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0,
- 31, 4, 0, 0,111, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 2, 76, 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,216, 71,111, 10, 68, 65, 84, 65, 72, 3, 0, 0,
-216, 71,111, 10,158, 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,
- 25,134,144, 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,215, 62,232,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63,
-158,227, 95, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,243, 90,129, 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, 99,240,191, 62,110,116, 85, 63, 80,185, 70,188, 0, 0, 82,180,206, 44,182,190,
-198,158, 47, 62, 36,239, 74, 63, 0, 0, 8,179, 67,108,117,194,183,204,216, 65,104,156, 5,194,212,247,159,192,235, 62,114, 66,
- 59,254,213,193,157,225, 3, 66, 55, 8,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,215, 62,232,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63,
-158,227, 95, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,243, 90,129, 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,255,189, 88, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,189, 88, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,189, 88, 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,234,108, 69, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,255, 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,128, 63, 32, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 80, 75,111, 10,
-159, 0, 0, 0, 1, 0, 0, 0,200, 78,111, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0,
- 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 3, 0,255,255, 25, 0, 0, 0, 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, 76,111, 10,198, 0, 0, 0, 1, 0, 0, 0,160, 77,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,
-151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,160, 77,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,120, 76,111, 10, 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,151, 4, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,
-122, 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,
-151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,
-200, 78,111, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 75,111, 10,120, 76,111, 10,160, 77,111, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0,
- 68, 65, 84, 65, 96, 0, 0, 0,168, 79,111, 10,197, 0, 0, 0, 1, 0, 0, 0, 8,116,111, 10,112, 55,111, 10,120,238,110, 10,
-120,239,110, 10,184,239,110, 10,248,238,110, 10, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 85, 0, 0, 0,255, 0, 0, 0,
- 2, 2,192, 1,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 84,111, 10, 40,115,111, 10, 56, 80,111, 10,
-176, 83,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 56, 80,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 96, 81,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 93, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,224, 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,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,192, 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, 0, 0, 0, 0, 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, 96, 81,111, 10,198, 0, 0, 0, 1, 0, 0, 0,136, 82,111, 10, 56, 80,111, 10, 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,254,194, 0, 0, 0, 0,200, 0, 0, 0,
-217, 0, 0, 0, 18, 0, 0, 0,144, 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,144, 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,145, 0,200, 0,127, 0, 0, 0, 0, 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,111, 0, 0, 0,255, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,145, 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, 68, 65, 84, 65,248, 0, 0, 0,136, 82,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
-176, 83,111, 10, 96, 81,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
-191, 1, 0, 0,111, 0, 0, 0,255, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,
-176, 83,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136, 82,111, 10, 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,
-144, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,
-144, 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,231, 0,145, 0, 0, 0, 0, 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,191, 1, 0, 0,111, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216, 84,111, 10,163, 0, 0, 0, 1, 0, 0, 0,160, 89,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 85,111, 10, 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, 24, 0, 0, 0,224, 85,111, 10, 22, 1, 0, 0,
- 1, 0, 0, 0,240,212,114, 10, 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, 40, 86,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 80, 87,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 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,159, 3, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 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, 0, 0, 0, 0, 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, 80, 87,111, 10,198, 0, 0, 0, 1, 0, 0, 0,120, 88,111, 10,
- 40, 86,111, 10, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196,
- 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 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,189, 0,164, 3,172, 0,
-146, 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,
-111, 0, 0, 0, 18, 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, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,120, 88,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 87,111, 10, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,
- 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 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, 0, 0, 0, 0, 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 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,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,160, 3,164, 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,
- 68, 65, 84, 65,160, 12, 0, 0,160, 89,111, 10,169, 0, 0, 0, 1, 0, 0, 0,176,111,111, 10,216, 84,111, 10, 40, 86,111, 10,
-120, 88,111, 10, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,112,102,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0,152,103,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 42, 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,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 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, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168, 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, 0, 0, 0, 0, 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,152,103,111, 10,198, 0, 0, 0, 1, 0, 0, 0,192,104,111, 10,112,102,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 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, 68, 65, 84, 65,248, 0, 0, 0,192,104,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
-232,105,111, 10,152,103,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,
-167, 2, 0, 0,111, 0, 0, 0,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-232,105,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 16,107,111, 10,192,104,111, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,
-121, 2, 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,
-121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 16,107,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,232,105,111, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,
- 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 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, 56,108,111, 10, 68, 65, 84, 65, 72, 3, 0, 0, 56,108,111, 10,158, 0, 0, 0,
- 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188,
- 0, 0, 0,128, 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,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62,
- 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,
-214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63,
- 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,
-151,254, 71, 66, 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,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62,
- 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,
-214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,172,148, 0, 59, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,176,111,111, 10,159, 0, 0, 0, 1, 0, 0, 0,
- 40,115,111, 10,160, 89,111, 10,112,102,111, 10, 16,107,111, 10, 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,152,236,114, 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,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-216,112,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0,114,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 0,114,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216,112,111, 10,
- 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,
-248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0, 40,115,111, 10,174, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,176,111,111, 10,216,112,111, 10, 0,114,111, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
- 8,116,111, 10,197, 0, 0, 0, 1, 0, 0, 0,240,156,111, 10,168, 79,111, 10,120,239,110, 10,248,236,110, 10, 56,239,110, 10,
-184,239,110, 10, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 1, 1, 0, 0,186, 2, 0, 0, 12, 12,192, 1,186, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,120,111, 10, 16,156,111, 10,152,116,111, 10,232,118,111, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,152,116,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
-192,117,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 98, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 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,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65,
- 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,192, 1,
- 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-191, 1, 0, 0, 1, 1, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 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, 0, 0, 0, 0,
- 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,
-192,117,111, 10,198, 0, 0, 0, 1, 0, 0, 0,232,118,111, 10,152,116,111, 10, 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, 0,199,195, 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,
-159, 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, 8, 4, 0, 0,
- 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,160, 1,200, 0,142, 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,199, 0, 0, 0, 27, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200, 0,160, 1, 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, 68, 65, 84, 65,248, 0, 0, 0,232,118,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192,117,111, 10,
- 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, 0,199,195, 0, 0, 0, 0,
-231, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,159, 1, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,159, 1, 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,248, 0,160, 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,200, 0, 0, 0,191, 1, 0, 0, 27, 1, 0, 0,
-186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 0,160, 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,224, 0, 0, 0, 16,120,111, 10, 23, 1, 0, 0,
- 1, 0, 0, 0,192,125,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240,212,114, 10, 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,248, 0, 0, 0, 32,121,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 72,122,111, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128, 78, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 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,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0, 49, 2, 0, 0,
- 74, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 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, 0, 0, 0, 0, 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, 72,122,111, 10,198, 0, 0, 0,
- 1, 0, 0, 0,112,123,111, 10, 32,121,111, 10, 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,219,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,199, 1, 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,199, 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, 10, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4,
- 6, 0,217, 0,200, 1,200, 0,182, 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,216, 0, 0, 0, 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-217, 0,200, 1, 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, 68, 65, 84, 65,
-248, 0, 0, 0,112,123,111, 10,198, 0, 0, 0, 1, 0, 0, 0,152,124,111, 10, 72,122,111, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,159, 3, 0, 0, 75, 2, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,152,124,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-112,123,111, 10, 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,199, 1, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 18, 0, 0, 0,198, 2, 0, 0, 18, 0, 0, 0,199, 1, 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,199, 2,200, 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,217, 0, 0, 0,159, 3, 0, 0,
- 75, 2, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 2,200, 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,216, 0, 0, 0,192,125,111, 10,
-163, 0, 0, 0, 1, 0, 0, 0,136,130,111, 10, 16,120,111, 10, 32,121,111, 10,152,124,111, 10, 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,200,126,111, 10, 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, 24, 0, 0, 0,200,126,111, 10, 22, 1, 0, 0, 1, 0, 0, 0,240,212,114, 10, 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, 16,127,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 56,128,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 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,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65,
- 0,192, 41, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3,
- 26, 0,160, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-159, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 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, 0, 0, 0, 0,
- 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,
- 56,128,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 96,129,111, 10, 16,127,111, 10, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,
-163, 3, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,
-163, 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,189, 0,164, 3,172, 0,146, 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,111, 0, 0, 0, 18, 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, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 96,129,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56,128,111, 10,
- 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 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, 0, 0, 0, 0,
- 0, 0, 0, 0,160, 3, 0, 0, 0, 0, 0, 0,164, 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,159, 3, 0, 0,111, 0, 0, 0,
- 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 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, 68, 65, 84, 65,160, 12, 0, 0,136,130,111, 10,169, 0, 0, 0,
- 1, 0, 0, 0,152,152,111, 10,192,125,111, 10, 16,127,111, 10, 96,129,111, 10, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 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,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88,143,111, 10,198, 0, 0, 0, 1, 0, 0, 0,128,144,111, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 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,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 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, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,
-110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 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, 0, 0, 0, 0, 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,128,144,111, 10,198, 0, 0, 0,
- 1, 0, 0, 0,168,145,111, 10, 88,143,111, 10, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0,164, 3, 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, 68, 65, 84, 65,
-248, 0, 0, 0,168,145,111, 10,198, 0, 0, 0, 1, 0, 0, 0,208,146,111, 10,128,144,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,208,146,111, 10,198, 0, 0, 0, 1, 0, 0, 0,248,147,111, 10,
-168,145,111, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196,
- 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,
-104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,
-111, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,248,147,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208,146,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168, 2,164, 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, 32,149,111, 10,
- 68, 65, 84, 65, 72, 3, 0, 0, 32,149,111, 10,158, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191,
- 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 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,192, 90, 29, 63,208,249,224,190,222,160, 81,191,
-184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190,
- 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188,
- 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,
-136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 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,192, 90, 29, 63,208,249,224,190,222,160, 81,191,
-184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190,
- 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,172,148, 0, 59, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,152,152,111, 10,159, 0, 0, 0, 1, 0, 0, 0, 16,156,111, 10,136,130,111, 10, 88,143,111, 10,248,147,111, 10,
- 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,
- 0, 0, 0, 0, 1, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,192,153,111, 10,198, 0, 0, 0, 1, 0, 0, 0,232,154,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,
-101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,232,154,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192,153,111, 10, 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0, 16,156,111, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152,152,111, 10,192,153,111, 10,
-232,154,111, 10, 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,
- 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,240,156,111, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 8,116,111, 10,248,239,110, 10,184,237,110, 10, 56,237,110, 10, 56,240,110, 10, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0,
- 49, 2, 0, 0,186, 2, 0, 0, 1, 1,222, 0,138, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,163,111, 10,
- 64,171,111, 10,128,157,111, 10,168,158,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0,128,157,111, 10,198, 0, 0, 0, 1, 0, 0, 0,168,158,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 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,131, 1, 0, 0,
- 0, 0, 0, 0, 23, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 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,132, 1, 24, 0,132, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 49, 2, 0, 0, 49, 2, 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, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,168,158,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-128,157,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0,
- 49, 2, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 0,138, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,159,111, 10, 68, 65, 84, 65, 72, 3, 0, 0,208,159,111, 10,
-158, 0, 0, 0, 1, 0, 0, 0, 23,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,109,100, 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, 2,201,194, 63, 61,254,144,191,244,250, 39,191, 8,165, 39,191,142,164,206, 63,250,192,142, 63,
-180,164, 28, 63,149, 84, 28, 63,177,153,196,188,189,133, 76, 64, 8,108,228,190, 50,247,227,190, 81, 21, 64,191,119, 24,172,191,
-216, 49, 49, 65,152, 9, 52, 65,231, 70,158, 62, 24,234,167, 62,160,206,159,187, 0, 0,170,180,243, 26,182,189,252, 74,179, 61,
-195,111,128, 62, 0, 0,124, 51,211,120, 21,194,144, 5, 2, 66, 10,136,213,193,193,214,159,192,219, 38, 19, 66,196,173,255,193,
-158,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, 2,201,194, 63, 61,254,144,191,244,250, 39,191, 8,165, 39,191,142,164,206, 63,250,192,142, 63,
-180,164, 28, 63,149, 84, 28, 63,177,153,196,188,189,133, 76, 64, 8,108,228,190, 50,247,227,190, 81, 21, 64,191,119, 24,172,191,
-216, 49, 49, 65,152, 9, 52, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 2, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 13,133, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 72,163,111, 10,159, 0, 0, 0,
- 1, 0, 0, 0,192,166,111, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0,112,164,111, 10,198, 0, 0, 0, 1, 0, 0, 0,152,165,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 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,131, 1, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 1, 26, 0,132, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0,128, 7, 0, 0,249, 3, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 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, 0, 0, 0, 0, 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,152,165,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-112,164,111, 10, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,185, 67, 0, 0, 62,195,
- 0, 0, 0, 0,115, 1, 0, 0,132, 1, 0, 0, 18, 0, 0, 0,207, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 18, 0, 0, 0,207, 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, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,132, 1,208, 0,115, 1,
-190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 5, 0, 0,128, 7, 0, 0,
- 41, 3, 0, 0,248, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 1,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 1, 0, 0,192,166,111, 10,
-168, 0, 0, 0, 1, 0, 0, 0, 64,171,111, 10, 72,163,111, 10,112,164,111, 10,152,165,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,167,111, 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, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,240,167,111, 10,221, 0, 0, 0, 1, 0, 0, 0,
- 13, 0, 0, 0, 13, 0, 0, 0, 40,168,111, 10, 68, 65, 84, 65,156, 0, 0, 0, 40,168,111, 10,220, 0, 0, 0, 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0,240,212,114, 10, 19, 0, 0, 0, 1, 0, 1, 0,240,212,114, 10, 20, 0, 0, 0, 1, 0, 1, 0,
-240,212,114, 10, 21, 0, 1, 0, 1, 0, 1, 0,240,212,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,208,229,114, 10, 0, 0, 0, 0,
- 1, 0, 1, 0,160,240,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 16, 31,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,176,248,114, 10,
- 0, 0, 0, 0, 1, 0, 1, 0, 56, 13,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,168,244,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,
- 72,226,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,152,236,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,160,225,114, 10, 68, 65, 84, 65,
-248, 0, 0, 0,240,168,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 24,170,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 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,194, 0, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 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, 68, 65, 84, 65,248, 0, 0, 0, 24,170,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-240,168,111, 10, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0, 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196,
- 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0,155, 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, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,
-156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0,
- 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,224, 0, 0, 0, 64,171,111, 10,
-164, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192,166,111, 10,240,168,111, 10, 24,170,111, 10, 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, 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,140, 0, 0, 0,176,172,111, 10,193, 0, 0, 0, 1, 0, 0, 0, 8, 71,112, 10,
- 64,235,110, 10, 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,104,173,111, 10,168,176,111, 10,232,176,111, 10,208,182,111, 10,
- 24,183,111, 10, 24, 31,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 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, 68, 65, 84, 65, 20, 0, 0, 0,104,173,111, 10,194, 0, 0, 0, 1, 0, 0, 0,168,173,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,168,173,111, 10,194, 0, 0, 0,
- 1, 0, 0, 0,232,173,111, 10,104,173,111, 10, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-232,173,111, 10,194, 0, 0, 0, 1, 0, 0, 0, 40,174,111, 10,168,173,111, 10, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 40,174,111, 10,194, 0, 0, 0, 1, 0, 0, 0,104,174,111, 10,232,173,111, 10, 0, 0, 0, 0,
-254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,104,174,111, 10,194, 0, 0, 0, 1, 0, 0, 0,168,174,111, 10,
- 40,174,111, 10, 0, 0, 0, 0, 0, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,168,174,111, 10,194, 0, 0, 0,
- 1, 0, 0, 0,232,174,111, 10,104,174,111, 10, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-232,174,111, 10,194, 0, 0, 0, 1, 0, 0, 0, 40,175,111, 10,168,174,111, 10, 0, 0, 0, 0, 20, 4, 64, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 40,175,111, 10,194, 0, 0, 0, 1, 0, 0, 0,104,175,111, 10,232,174,111, 10, 0, 0, 0, 0,
-254, 4, 64, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,104,175,111, 10,194, 0, 0, 0, 1, 0, 0, 0,168,175,111, 10,
- 40,175,111, 10, 0, 0, 0, 0, 20, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,168,175,111, 10,194, 0, 0, 0,
- 1, 0, 0, 0,232,175,111, 10,104,175,111, 10, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-232,175,111, 10,194, 0, 0, 0, 1, 0, 0, 0, 40,176,111, 10,168,175,111, 10, 0, 0, 0, 0, 20, 4, 20, 1, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 40,176,111, 10,194, 0, 0, 0, 1, 0, 0, 0,104,176,111, 10,232,175,111, 10, 0, 0, 0, 0,
- 0, 2, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,104,176,111, 10,194, 0, 0, 0, 1, 0, 0, 0,168,176,111, 10,
- 40,176,111, 10, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,168,176,111, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,104,176,111, 10, 0, 0, 0, 0, 20, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-232,176,111, 10,195, 0, 0, 0, 1, 0, 0, 0, 48,177,111, 10, 0, 0, 0, 0,168,173,111, 10,232,173,111, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 48,177,111, 10,195, 0, 0, 0, 1, 0, 0, 0,120,177,111, 10,232,176,111, 10,
-168,173,111, 10,104,174,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,177,111, 10,195, 0, 0, 0,
- 1, 0, 0, 0,192,177,111, 10, 48,177,111, 10,232,173,111, 10,168,174,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,192,177,111, 10,195, 0, 0, 0, 1, 0, 0, 0, 8,178,111, 10,120,177,111, 10,104,174,111, 10,168,174,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 8,178,111, 10,195, 0, 0, 0, 1, 0, 0, 0, 80,178,111, 10,
-192,177,111, 10, 40,174,111, 10, 40,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,178,111, 10,
-195, 0, 0, 0, 1, 0, 0, 0,152,178,111, 10, 8,178,111, 10,232,174,111, 10, 40,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,152,178,111, 10,195, 0, 0, 0, 1, 0, 0, 0,224,178,111, 10, 80,178,111, 10,168,174,111, 10,
-104,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,178,111, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 40,179,111, 10,152,178,111, 10,104,174,111, 10,104,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 40,179,111, 10,195, 0, 0, 0, 1, 0, 0, 0,112,179,111, 10,224,178,111, 10,232,174,111, 10,104,175,111, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112,179,111, 10,195, 0, 0, 0, 1, 0, 0, 0,184,179,111, 10, 40,179,111, 10,
-168,174,111, 10, 40,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184,179,111, 10,195, 0, 0, 0,
- 1, 0, 0, 0, 0,180,111, 10,112,179,111, 10,104,174,111, 10,168,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 0,180,111, 10,195, 0, 0, 0, 1, 0, 0, 0, 72,180,111, 10,184,179,111, 10,104,175,111, 10,232,175,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72,180,111, 10,195, 0, 0, 0, 1, 0, 0, 0,144,180,111, 10,
- 0,180,111, 10,168,175,111, 10,232,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,180,111, 10,
-195, 0, 0, 0, 1, 0, 0, 0,216,180,111, 10, 72,180,111, 10,168,175,111, 10, 40,176,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,216,180,111, 10,195, 0, 0, 0, 1, 0, 0, 0, 32,181,111, 10,144,180,111, 10,232,175,111, 10,
- 40,176,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32,181,111, 10,195, 0, 0, 0, 1, 0, 0, 0,
-104,181,111, 10,216,180,111, 10,104,173,111, 10,104,176,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-104,181,111, 10,195, 0, 0, 0, 1, 0, 0, 0,176,181,111, 10, 32,181,111, 10,104,176,111, 10,168,176,111, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176,181,111, 10,195, 0, 0, 0, 1, 0, 0, 0,248,181,111, 10,104,181,111, 10,
- 40,174,111, 10,168,176,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248,181,111, 10,195, 0, 0, 0,
- 1, 0, 0, 0, 64,182,111, 10,176,181,111, 10,232,174,111, 10,168,176,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 64,182,111, 10,195, 0, 0, 0, 1, 0, 0, 0,136,182,111, 10,248,181,111, 10, 40,176,111, 10,104,176,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136,182,111, 10,195, 0, 0, 0, 1, 0, 0, 0,208,182,111, 10,
- 64,182,111, 10,232,175,111, 10,168,176,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208,182,111, 10,
-195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136,182,111, 10,104,173,111, 10,168,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 96, 0, 0, 0, 24,183,111, 10,197, 0, 0, 0, 1, 0, 0, 0,248,185,111, 10, 0, 0, 0, 0,104,174,111, 10,
-168,173,111, 10,232,173,111, 10,168,174,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0,
- 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,168, 70,112, 10,168, 70,112, 10,168,183,111, 10,
-208,184,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,168,183,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0,208,184,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 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, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,255, 4, 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,
- 68, 65, 84, 65,248, 0, 0, 0,208,184,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,168,183,111, 10, 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, 0, 63,
- 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 0, 0, 0, 0,214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0,248,185,111, 10,197, 0, 0, 0, 1, 0, 0, 0,
-168,196,111, 10, 24,183,111, 10,168,176,111, 10,232,174,111, 10, 40,175,111, 10, 40,174,111, 10, 0, 0, 0, 0, 21, 4, 0, 0,
-254, 4, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 15, 15,234, 0, 64, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-216,188,111, 10,128,195,111, 10,136,186,111, 10,176,187,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,136,186,111, 10,198, 0, 0, 0, 1, 0, 0, 0,176,187,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,192,116, 68, 0, 0, 0, 0, 0, 0,208, 65, 0,128,190, 67, 0,192, 25, 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,
-233, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,234, 0, 26, 0,234, 0, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,254, 4, 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,234, 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, 68, 65, 84, 65,248, 0, 0, 0,176,187,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,136,186,111, 10, 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,233, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,233, 0, 0, 0, 18, 0, 0, 0, 37, 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,234, 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, 21, 4, 0, 0,
-254, 4, 0, 0, 26, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 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, 68, 65, 84, 65,180, 0, 0, 0,
-216,188,111, 10,174, 0, 0, 0, 1, 0, 0, 0,128,195,111, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,184,189,111, 10,198, 0, 0, 0, 1, 0, 0, 0,224,190,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 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,
- 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 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, 0, 0, 0, 0, 87, 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, 88, 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, 0, 0, 0, 0, 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,224,190,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,184,189,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,192,111, 10, 68, 65, 84, 65, 72, 3, 0, 0,
- 8,192,111, 10,158, 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,
- 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128,
- 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0,
- 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0,
- 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0,
- 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128,195,111, 10,
-159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216,188,111, 10,184,189,111, 10,224,190,111, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
- 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 96, 0, 0, 0,168,196,111, 10,197, 0, 0, 0, 1, 0, 0, 0,120,230,111, 10,248,185,111, 10,232,174,111, 10,
-104,175,111, 10,168,174,111, 10, 40,175,111, 10, 0, 0, 0, 0, 21, 4, 0, 0,254, 4, 0, 0, 65, 0, 0, 0,186, 2, 0, 0,
- 4, 4,234, 0,122, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,216,111, 10, 80,229,111, 10, 56,197,111, 10,
- 96,198,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 56,197,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 96,198,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 55, 0, 0,106, 67, 0, 0, 0, 0, 0, 0,248, 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,233, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0,
- 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,234, 0, 31, 0,234, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 21, 4, 0, 0,254, 4, 0, 0,156, 2, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,234, 0, 31, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 96,198,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56,197,111, 10, 0, 0, 0, 0,
- 0, 0,105, 67, 0, 64, 80,196, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 88, 67, 0,192, 22,196, 0, 0, 0, 0,217, 0, 0, 0,
-234, 0, 0, 0, 0, 0, 0, 0, 90, 2, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-216, 0, 0, 0, 0, 0, 0, 0, 90, 2, 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,234, 0, 91, 2,217, 0, 91, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,254, 4, 0, 0, 65, 0, 0, 0,155, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 0, 91, 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,136,199,111, 10, 88,215,111, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,136,199,111, 10,196, 0, 0, 0, 1, 0, 0, 0,
-248,200,111, 10, 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,216, 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, 0,
- 68, 65, 84, 65, 64, 1, 0, 0,248,200,111, 10,196, 0, 0, 0, 1, 0, 0, 0,104,202,111, 10,136,199,111, 10, 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,216, 0, 61, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,104,202,111, 10,
-196, 0, 0, 0, 1, 0, 0, 0,216,203,111, 10,248,200,111, 10, 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,216, 0, 0, 0,
- 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,216,203,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 72,205,111, 10,
-104,202,111, 10, 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,216, 0,203, 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, 68, 65, 84, 65,
- 64, 1, 0, 0, 72,205,111, 10,196, 0, 0, 0, 1, 0, 0, 0,184,206,111, 10,216,203,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 58,254,216, 0, 58, 0, 20, 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, 68, 65, 84, 65, 64, 1, 0, 0,184,206,111, 10,196, 0, 0, 0,
- 1, 0, 0, 0, 40,208,111, 10, 72,205,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,253,216, 0,102, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 40,208,111, 10,196, 0, 0, 0, 1, 0, 0, 0,152,209,111, 10,184,206,111, 10,
- 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, 35,253,216, 0,105, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,209,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 8,211,111, 10, 40,208,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 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,253,
-216, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 8,211,111, 10,196, 0, 0, 0, 1, 0, 0, 0,
-120,212,111, 10,152,209,111, 10, 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,243,252,216, 0, 0, 0, 0, 0, 0, 0, 4, 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,
- 68, 65, 84, 65, 64, 1, 0, 0,120,212,111, 10,196, 0, 0, 0, 1, 0, 0, 0,232,213,111, 10, 8,211,111, 10, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,219,252,216, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,232,213,111, 10,
-196, 0, 0, 0, 1, 0, 0, 0, 88,215,111, 10,120,212,111, 10, 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, 70,117,108,108, 32, 83, 97,109,
-112,108,101, 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, 34,254,216, 0, 0, 0,
- 20, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88,215,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-232,213,111, 10, 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,195,252,216, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-224, 0, 0, 0,200,216,111, 10,164, 0, 0, 0, 1, 0, 0, 0,120,222,111, 10, 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,
- 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,217,111, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0,219,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0,
- 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 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,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67,
- 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-228, 1, 27, 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, 68, 65, 84, 65,
-248, 0, 0, 0, 0,219,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 40,220,111, 10,216,217,111, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 40,220,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 80,221,111, 10,
- 0,219,111, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196,
- 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 59, 70,
- 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 80,221,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40,220,111, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0,
- 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0,
- 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 8, 0,228, 1,124, 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,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,228, 1,124, 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,224, 0, 0, 0,120,222,111, 10,165, 0, 0, 0, 1, 0, 0, 0, 80,229,111, 10,200,216,111, 10,216,217,111, 10,
- 80,221,111, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,136,223,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0,176,224,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,138, 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, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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,176,224,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136,223,111, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 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,216,225,111, 10, 68, 65, 84, 65, 72, 3, 0, 0,216,225,111, 10,158, 0, 0, 0, 1, 0, 0, 0,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,
-237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 80,229,111, 10,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-120,222,111, 10,136,223,111, 10,176,224,111, 10, 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,152,236,114, 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, 1, 0, 0, 0,
- 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,120,230,111, 10,
-197, 0, 0, 0, 1, 0, 0, 0,208, 7,112, 10,168,196,111, 10,104,176,111, 10, 40,176,111, 10,232,175,111, 10,168,176,111, 10,
- 0, 0, 0, 0, 1, 2, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 1, 1, 19, 2, 20, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88,250,111, 10,240, 6,112, 10, 8,231,111, 10,184,245,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 8,231,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 48,232,111, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 4, 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, 18, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 19, 2, 26, 0, 19, 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, 1, 2, 0, 0, 19, 4, 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, 19, 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, 0, 0, 0, 0, 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, 48,232,111, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 88,233,111, 10, 8,231,111, 10, 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,
- 0, 0, 0, 0, 1, 2, 0, 0, 1, 2, 0, 0, 26, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0,250, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 88,233,111, 10,198, 0, 0, 0, 1, 0, 0, 0,128,234,111, 10, 48,232,111, 10, 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, 0, 0, 0, 0, 1, 2, 0, 0, 19, 4, 0, 0, 26, 0, 0, 0, 26, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128,234,111, 10,198, 0, 0, 0, 1, 0, 0, 0,
-184,245,111, 10, 88,233,111, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
- 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 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,129, 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, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,
-130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0,
- 19, 4, 0, 0, 26, 0, 0, 0, 19, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,235,111, 10, 72,244,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,
-168,235,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 24,237,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,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, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,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, 84,114, 97,110,
-115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,
-163, 0,110, 1, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 24,237,111, 10,196, 0, 0, 0, 1, 0, 0, 0,
-136,238,111, 10,168,235,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,
-108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,
-108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,253,163, 0, 58, 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,
- 68, 65, 84, 65, 64, 1, 0, 0,136,238,111, 10,196, 0, 0, 0, 1, 0, 0, 0,248,239,111, 10, 24,237,111, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,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, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, 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, 68, 65, 84, 65, 64, 1, 0, 0,248,239,111, 10,
-196, 0, 0, 0, 1, 0, 0, 0,104,241,111, 10,136,238,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,115,112,108, 97,121, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0,
- 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,104,241,111, 10,196, 0, 0, 0, 1, 0, 0, 0,216,242,111, 10,
-248,239,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100,
- 95,105,109, 97,103,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100,
- 95,105,109, 97,103,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, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,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,105,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,216,242,111, 10,196, 0, 0, 0, 1, 0, 0, 0, 72,244,111, 10,104,241,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,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, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,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, 0, 0, 0, 0, 0,
- 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,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, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72,244,111, 10,196, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,216,242,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,
-118,105,101,119, 95,110, 97,109,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,
-118,105,101,119, 95,110, 97,109,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, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 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, 0, 68, 65, 84, 65,248, 0, 0, 0,184,245,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128,234,111, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 19, 4, 0, 0, 26, 0, 0, 0,
- 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,246,111, 10, 68, 65, 84, 65, 72, 3, 0, 0,224,246,111, 10,158, 0, 0, 0,
- 1, 0, 0, 0, 37,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,173,116, 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, 4, 6,158, 63,214, 78,155,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,203,232,152, 63,180,164, 28, 63,
-149, 84, 28, 63, 1,127,159,188,123, 18, 91, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,168, 86,184,191,216, 49, 49, 65,
-152, 9, 52, 65, 80, 25,195, 62,218,249,206, 62, 0,237,196,187, 0, 0, 96,179,234, 2,170,189,191, 98,167, 61, 1,208,111, 62,
- 0, 0,224, 49,254,120, 21,194,182, 5, 2, 66, 70,136,213,193,239,214,159,192, 5, 39, 19, 66, 15,174,255,193,217,101,210, 65,
-219, 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, 4, 6,158, 63,214, 78,155,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,203,232,152, 63,180,164, 28, 63,
-149, 84, 28, 63, 1,127,159,188,123, 18, 91, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,168, 86,184,191,216, 49, 49, 65,
-152, 9, 52, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 2, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0,
- 0, 0, 0, 0,223, 34, 9, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 88,250,111, 10,159, 0, 0, 0, 1, 0, 0, 0,
-208,253,111, 10, 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,152,236,114, 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,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-128,251,111, 10,198, 0, 0, 0, 1, 0, 0, 0,168,252,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0,192, 59, 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,238, 2, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,239, 2, 26, 0,239, 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, 1, 3, 0, 0,239, 5, 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,239, 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, 0, 0, 0, 0, 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,168,252,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128,251,111, 10,
- 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 40, 57, 61,194,146,211, 11, 68,174,122,214, 66, 82, 97,202, 67,
-222, 2, 0, 0,239, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,221, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,
-205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,239, 2,122, 1,222, 2,104, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,
-147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 2,122, 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,244, 0, 0, 0,208,253,111, 10,175, 0, 0, 0,
- 1, 0, 0, 0,144, 3,112, 10, 88,250,111, 10,128,251,111, 10,168,252,111, 10, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240,212,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,242,199, 78, 63, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-240,254,111, 10,198, 0, 0, 0, 1, 0, 0, 0, 24, 0,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0,
- 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0,
- 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 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, 68, 65, 84, 65,248, 0, 0, 0, 24, 0,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 64, 1,112, 10,240,254,111, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0,
- 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 64, 1,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0,104, 2,112, 10, 24, 0,112, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196,
- 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,
-248, 0, 0, 0,104, 2,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 1,112, 10, 0, 0, 0, 0, 0, 0,122, 67,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0,
- 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0,
- 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,
-105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 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,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 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, 68, 65, 84, 65,224, 0, 0, 0,144, 3,112, 10,165, 0, 0, 0, 1, 0, 0, 0,240, 6,112, 10,
-208,253,111, 10,240,254,111, 10,104, 2,112, 10, 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, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0,160, 4,112, 10,198, 0, 0, 0, 1, 0, 0, 0,200, 5,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,200, 5,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-160, 4,112, 10, 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,151, 4, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,
-127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,240, 6,112, 10,
-174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,144, 3,112, 10,160, 4,112, 10,200, 5,112, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,
- 96, 0, 0, 0,208, 7,112, 10,197, 0, 0, 0, 1, 0, 0, 0, 24, 31,112, 10,120,230,111, 10,168,175,111, 10,104,174,111, 10,
-104,175,111, 10,232,175,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 21, 1, 0, 0,186, 2, 0, 0, 16, 16, 20, 4,
-166, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 10,112, 10, 56, 30,112, 10, 96, 8,112, 10,136, 9,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 96, 8,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0,136, 9,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0,128,130, 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, 19, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68,
- 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0, 20, 4, 26, 0, 20, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 19, 4, 0, 0, 21, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 4, 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, 68, 65, 84, 65,
-248, 0, 0, 0,136, 9,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96, 8,112, 10, 0, 0, 32,193, 0, 0, 0, 68,
- 0, 0, 32,193, 0, 0, 0, 68,110,142,241,195, 55,199,120, 68,240, 80,128,193,136, 2, 4, 68, 3, 4, 0, 0, 20, 4, 0, 0,
- 18, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0,
- 18, 0, 0, 0,139, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63,
- 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 20, 4,140, 1, 3, 4,122, 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, 19, 4, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4,140, 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,244, 0, 0, 0,176, 10,112, 10,175, 0, 0, 0, 1, 0, 0, 0,112, 16,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 61,181, 63, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,208, 11,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0,248, 12,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0,
- 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68,
- 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5, 27, 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, 68, 65, 84, 65,
-248, 0, 0, 0,248, 12,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 32, 14,112, 10,208, 11,112, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 32, 14,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 72, 15,112, 10,
-248, 12,112, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196,
- 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 59, 70,
- 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 72, 15,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 32, 14,112, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0,
- 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0,
- 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 8, 0,240, 5,163, 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,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 5,163, 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,
- 68, 65, 84, 65,224, 0, 0, 0,112, 16,112, 10,165, 0, 0, 0, 1, 0, 0, 0,192, 26,112, 10,176, 10,112, 10,208, 11,112, 10,
- 72, 15,112, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,128, 17,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0,168, 18,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,157, 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,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,232, 4, 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,
- 68, 65, 84, 65,248, 0, 0, 0,168, 18,112, 10,198, 0, 0, 0, 1, 0, 0, 0,208, 19,112, 10,128, 17,112, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 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, 68, 65, 84, 65,248, 0, 0, 0,208, 19,112, 10,198, 0, 0, 0, 1, 0, 0, 0,
-248, 20,112, 10,168, 18,112, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,
-128, 7, 0, 0,251, 1, 0, 0,251, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,
-248, 20,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 32, 22,112, 10,208, 19,112, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,
-121, 2, 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,
-121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 32, 22,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248, 20,112, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,
- 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 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, 72, 23,112, 10, 68, 65, 84, 65, 72, 3, 0, 0, 72, 23,112, 10,158, 0, 0, 0,
- 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188,
- 0, 0, 0,128, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62,
- 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,
-214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62,
- 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,
-151,254, 71, 66, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62,
- 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,
-214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,218,210,190, 58, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,192, 26,112, 10,159, 0, 0, 0, 1, 0, 0, 0,
- 56, 30,112, 10,112, 16,112, 10,128, 17,112, 10, 32, 22,112, 10, 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,152,236,114, 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,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-232, 27,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 16, 29,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 16, 29,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,232, 27,112, 10,
- 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,
-248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0, 56, 30,112, 10,174, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,192, 26,112, 10,232, 27,112, 10, 16, 29,112, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
- 24, 31,112, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 7,112, 10,104,173,111, 10,168,175,111, 10, 40,176,111, 10,
-104,176,111, 10, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 6, 6, 0, 2, 20, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 35,112, 10,200, 69,112, 10,168, 31,112, 10,248, 33,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,168, 31,112, 10,198, 0, 0, 0, 1, 0, 0, 0,
-208, 32,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 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,255, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65,
- 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 2,
- 26, 0, 0, 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, 0, 0, 0, 0,
-255, 1, 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, 0, 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, 0, 0, 0, 0,
- 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,
-208, 32,112, 10,198, 0, 0, 0, 1, 0, 0, 0,248, 33,112, 10,168, 31,112, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 19, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,248, 33,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 32,112, 10,
- 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0,191, 0, 0,192, 63, 0, 0, 64, 60, 0, 0,125, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 1, 0, 0, 26, 0, 0, 0,
- 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,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, 0, 0, 0, 0, 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, 12, 0, 0, 32, 35,112, 10,169, 0, 0, 0,
- 1, 0, 0, 0, 64, 50,112, 10, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,240, 47,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 24, 49,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 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,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0,
- 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, 2, 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, 0, 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, 0, 0, 0, 0, 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, 24, 49,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,240, 47,112, 10, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194,
- 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,
-238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4,
- 0, 0, 0, 3,122, 1,239, 2,104, 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,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3,122, 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,
-244, 0, 0, 0, 64, 50,112, 10,175, 0, 0, 0, 1, 0, 0, 0, 0, 56,112, 10, 32, 35,112, 10,240, 47,112, 10, 24, 49,112, 10,
- 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0,
- 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 96, 51,112, 10,198, 0, 0, 0, 1, 0, 0, 0,136, 52,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,
-111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 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, 68, 65, 84, 65,248, 0, 0, 0,136, 52,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0,176, 53,112, 10, 96, 51,112, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,
-248, 0, 0, 0,176, 53,112, 10,198, 0, 0, 0, 1, 0, 0, 0,216, 54,112, 10,136, 52,112, 10, 0, 0,112,196, 0, 0,112, 68,
- 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0,216, 54,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-176, 53,112, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0,
- 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72,
- 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 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,239, 5, 0, 0,
-112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 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, 68, 65, 84, 65,224, 0, 0, 0, 0, 56,112, 10,
-165, 0, 0, 0, 1, 0, 0, 0, 80, 66,112, 10, 64, 50,112, 10, 96, 51,112, 10,216, 54,112, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 16, 57,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 56, 58,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 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,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,
-225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 56, 58,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 96, 59,112, 10, 16, 57,112, 10, 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,
- 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 24, 2, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 96, 59,112, 10,198, 0, 0, 0, 1, 0, 0, 0,136, 60,112, 10, 56, 58,112, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,136, 60,112, 10,198, 0, 0, 0, 1, 0, 0, 0,
-176, 61,112, 10, 96, 59,112, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
- 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,
-122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,
-128, 7, 0, 0,251, 1, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,
-176, 61,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136, 60,112, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 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,
-216, 62,112, 10, 68, 65, 84, 65, 72, 3, 0, 0,216, 62,112, 10,158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 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,180,157,229, 62,169,203,131,191,
-222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,
-129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,
-224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67,
- 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66, 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,180,157,229, 62,169,203,131,191,
-222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,
-129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,218,210,190, 58, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 80, 66,112, 10,159, 0, 0, 0, 1, 0, 0, 0,200, 69,112, 10, 0, 56,112, 10, 16, 57,112, 10,
-176, 61,112, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0,
- 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120, 67,112, 10,198, 0, 0, 0, 1, 0, 0, 0,
-160, 68,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65,
- 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4,
- 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,
-160, 68,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,120, 67,112, 10, 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,
-121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,200, 69,112, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 66,112, 10,
-120, 67,112, 10,160, 68,112, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,140, 0, 0, 0, 8, 71,112, 10,193, 0, 0, 0, 1, 0, 0, 0,
-120,184,112, 10,176,172,111, 10, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 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,192, 71,112, 10,128, 74,112, 10,192, 74,112, 10,
-136, 79,112, 10,208, 79,112, 10,224,136,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0, 0, 0, 1, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,251, 69, 8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,192, 71,112, 10,194, 0, 0, 0, 1, 0, 0, 0,
- 0, 72,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 0, 72,112, 10,
-194, 0, 0, 0, 1, 0, 0, 0, 64, 72,112, 10,192, 71,112, 10, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 64, 72,112, 10,194, 0, 0, 0, 1, 0, 0, 0,128, 72,112, 10, 0, 72,112, 10, 0, 0, 0, 0,254, 4,214, 2,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,128, 72,112, 10,194, 0, 0, 0, 1, 0, 0, 0,192, 72,112, 10, 64, 72,112, 10,
- 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,192, 72,112, 10,194, 0, 0, 0, 1, 0, 0, 0,
- 0, 73,112, 10,128, 72,112, 10, 0, 0, 0, 0, 0, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 0, 73,112, 10,
-194, 0, 0, 0, 1, 0, 0, 0, 64, 73,112, 10,192, 72,112, 10, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 64, 73,112, 10,194, 0, 0, 0, 1, 0, 0, 0,128, 73,112, 10, 0, 73,112, 10, 0, 0, 0, 0, 24, 4, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,128, 73,112, 10,194, 0, 0, 0, 1, 0, 0, 0,192, 73,112, 10, 64, 73,112, 10,
- 0, 0, 0, 0, 24, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,192, 73,112, 10,194, 0, 0, 0, 1, 0, 0, 0,
- 0, 74,112, 10,128, 73,112, 10, 0, 0, 0, 0, 24, 4, 48, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 0, 74,112, 10,
-194, 0, 0, 0, 1, 0, 0, 0, 64, 74,112, 10,192, 73,112, 10, 0, 0, 0, 0,254, 4, 48, 2, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 64, 74,112, 10,194, 0, 0, 0, 1, 0, 0, 0,128, 74,112, 10, 0, 74,112, 10, 0, 0, 0, 0, 0, 0, 68, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,128, 74,112, 10,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 74,112, 10,
- 0, 0, 0, 0, 24, 4, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,192, 74,112, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 8, 75,112, 10, 0, 0, 0, 0, 0, 72,112, 10, 64, 72,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 8, 75,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 80, 75,112, 10,192, 74,112, 10, 0, 72,112, 10,192, 72,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80, 75,112, 10,195, 0, 0, 0, 1, 0, 0, 0,152, 75,112, 10, 8, 75,112, 10,
- 64, 72,112, 10, 0, 73,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152, 75,112, 10,195, 0, 0, 0,
- 1, 0, 0, 0,224, 75,112, 10, 80, 75,112, 10,192, 72,112, 10, 0, 73,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,224, 75,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 40, 76,112, 10,152, 75,112, 10,192, 71,112, 10, 64, 73,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40, 76,112, 10,195, 0, 0, 0, 1, 0, 0, 0,112, 76,112, 10,
-224, 75,112, 10,128, 72,112, 10, 64, 73,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112, 76,112, 10,
-195, 0, 0, 0, 1, 0, 0, 0,184, 76,112, 10, 40, 76,112, 10,192, 72,112, 10,128, 73,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,184, 76,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 0, 77,112, 10,112, 76,112, 10, 0, 73,112, 10,
-128, 73,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 0, 77,112, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 72, 77,112, 10,184, 76,112, 10, 64, 73,112, 10,192, 73,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 72, 77,112, 10,195, 0, 0, 0, 1, 0, 0, 0,144, 77,112, 10, 0, 77,112, 10,128, 73,112, 10,192, 73,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144, 77,112, 10,195, 0, 0, 0, 1, 0, 0, 0,216, 77,112, 10, 72, 77,112, 10,
- 0, 73,112, 10, 0, 74,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216, 77,112, 10,195, 0, 0, 0,
- 1, 0, 0, 0, 32, 78,112, 10,144, 77,112, 10,128, 72,112, 10, 0, 74,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 32, 78,112, 10,195, 0, 0, 0, 1, 0, 0, 0,104, 78,112, 10,216, 77,112, 10,192, 73,112, 10, 0, 74,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,104, 78,112, 10,195, 0, 0, 0, 1, 0, 0, 0,176, 78,112, 10,
- 32, 78,112, 10,192, 71,112, 10, 64, 74,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176, 78,112, 10,
-195, 0, 0, 0, 1, 0, 0, 0,248, 78,112, 10,104, 78,112, 10,192, 72,112, 10, 64, 74,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,248, 78,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 64, 79,112, 10,176, 78,112, 10,128, 73,112, 10,
-128, 74,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64, 79,112, 10,195, 0, 0, 0, 1, 0, 0, 0,
-136, 79,112, 10,248, 78,112, 10, 64, 73,112, 10,128, 74,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-136, 79,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 79,112, 10, 64, 74,112, 10,128, 74,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,208, 79,112, 10,197, 0, 0, 0, 1, 0, 0, 0,176, 82,112, 10, 0, 0, 0, 0,
-192, 72,112, 10, 0, 72,112, 10, 64, 72,112, 10, 0, 73,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,
-214, 2, 0, 0, 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,192, 9, 94, 10, 24,184,112, 10, 24,184,112, 10,
- 96, 80,112, 10,136, 81,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 32, 96,219, 10,152,154,220, 10, 68, 65, 84, 65,248, 0, 0, 0,
- 96, 80,112, 10,198, 0, 0, 0, 1, 0, 0, 0,136, 81,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 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, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 11, 94, 10,200,200,116, 11,200,200,116, 11, 0, 0, 0, 0, 0, 0, 0, 0,176,184,192, 11,240,112,164, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,136, 81,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96, 80,112, 10,
- 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 0, 0, 0, 0,214, 2, 0, 0,
-214, 2, 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,120, 10, 94, 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, 68, 65, 84, 65, 96, 0, 0, 0,176, 82,112, 10,197, 0, 0, 0,
- 1, 0, 0, 0,208,110,112, 10,208, 79,112, 10, 64, 73,112, 10,192, 73,112, 10, 0, 74,112, 10,128, 72,112, 10, 0, 0, 0, 0,
- 25, 4, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 4, 4,230, 0, 48, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216, 6, 94, 10,208,102,112, 10,168,109,112, 10, 64, 83,112, 10,104, 84,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 24,231,222, 10,
- 64,208,208, 10, 68, 65, 84, 65,248, 0, 0, 0, 64, 83,112, 10,198, 0, 0, 0, 1, 0, 0, 0,104, 84,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,102, 67, 0, 0, 0, 0, 0, 0,248, 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,229, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,230, 0, 31, 0,230, 0, 31, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,254, 4, 0, 0, 17, 2, 0, 0,
- 47, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 0, 31, 0, 3, 0, 1, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 9, 94, 10, 32,139,112, 11, 32,139,112, 11, 0, 0, 0, 0, 0, 0, 0, 0,
- 88,112,199, 11, 32,116,164, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,104, 84,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 64, 83,112, 10, 0, 0, 0, 0, 0, 0,101, 67, 0, 64, 80,196, 0, 0, 0, 0, 0, 0, 0, 0,
-249,255, 84, 67,252, 63, 4,196, 0, 0, 0, 0,213, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0,
- 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, 16, 2, 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,230, 0, 17, 2,213, 0, 17, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,139,113, 11, 1, 0, 0, 0, 0, 0, 0, 0,
- 25, 4, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-230, 0, 17, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 7, 94, 10,168,230,184, 11,
-184,231,112, 11,144, 85,112, 10, 96,101,112, 10, 48, 17,184, 11,104,119,164, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,144, 85,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 87,112, 10, 0, 0, 0, 0, 24, 8, 94, 10, 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,212, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0, 0, 87,112, 10,196, 0, 0, 0,
- 1, 0, 0, 0,112, 88,112, 10,144, 85,112, 10, 0, 14,220, 10, 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,212, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0,112, 88,112, 10,196, 0, 0, 0, 1, 0, 0, 0,224, 89,112, 10, 0, 87,112, 10,
-152, 17,220, 10, 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,127,253,212, 0,240, 1, 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, 2, 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, 68, 65, 84, 65, 64, 1, 0, 0,
-224, 89,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 80, 91,112, 10,112, 88,112, 10,152, 19,220, 10, 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,
-212, 0,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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 80, 91,112, 10,196, 0, 0, 0, 1, 0, 0, 0,
-192, 92,112, 10,224, 89,112, 10, 48, 23,220, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,212, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,192, 92,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 48, 94,112, 10, 80, 91,112, 10, 72, 30,220, 10,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,164,253,212, 0,102, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 48, 94,112, 10,
-196, 0, 0, 0, 1, 0, 0, 0,160, 95,112, 10,192, 92,112, 10,224, 33,220, 10, 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, 35,253,212, 0,105, 0,
- 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,160, 95,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 16, 97,112, 10,
- 48, 94,112, 10,144, 42,220, 10, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,252,212, 0,168, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 16, 97,112, 10,196, 0, 0, 0, 1, 0, 0, 0,128, 98,112, 10,160, 95,112, 10,144, 44,220, 10, 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,243,252,212, 0, 0, 0, 0, 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, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 98,112, 10,196, 0, 0, 0,
- 1, 0, 0, 0,240, 99,112, 10, 16, 97,112, 10,144, 46,220, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238,251,212, 0,237, 0, 20, 0, 0, 0,
- 4, 0, 6, 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, 68, 65, 84, 65, 64, 1, 0, 0,240, 99,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 96,101,112, 10,128, 98,112, 10,
-168, 51,220, 10, 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,195,252,212, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0,
- 96,101,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 99,112, 10, 48, 25,220, 10, 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, 70,117,108,108,
- 32, 83, 97,109,112,108,101, 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, 34,254,
-212, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,224, 0, 0, 0,208,102,112, 10,164, 0, 0, 0, 1, 0, 0, 0,
-168,109,112, 10, 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,128, 43,117, 11,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,224,103,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 8,105,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 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,
- 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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, 8,105,112, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,224,103,112, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,
-108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 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, 48,106,112, 10, 68, 65, 84, 65, 72, 3, 0, 0,
- 48,106,112, 10,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128,
- 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0,
- 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0,
- 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0,
- 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,168,109,112, 10,
-159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208,102,112, 10,224,103,112, 10, 8,105,112, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
- 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 96, 0, 0, 0,208,110,112, 10,197, 0, 0, 0, 1, 0, 0, 0,128,121,112, 10,176, 82,112, 10,192, 71,112, 10,
- 64, 74,112, 10,128, 74,112, 10, 64, 73,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
- 15, 15, 24, 4, 68, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,233, 93, 10,176,113,112, 10, 88,120,112, 10, 96,111,112, 10,
-136,112,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 16,187,221, 10, 64,209,222, 10, 68, 65, 84, 65,248, 0, 0, 0, 96,111,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0,136,112,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,140, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,131, 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, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0, 24, 4, 26, 0, 24, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 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, 24, 4, 26, 0, 5, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,234, 93, 10,
- 56, 91,117, 11, 56, 91,117, 11, 0, 0, 0, 0, 0, 0, 0, 0,232,255,209, 10,152,122,164, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,136,112,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96,111,112, 10, 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, 23, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
- 23, 4, 0, 0, 18, 0, 0, 0, 41, 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, 24, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 26, 0, 0, 0, 67, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 42, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216,233, 93, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,123,164, 10,
-232,126,164, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,180, 0, 0, 0,176,113,112, 10,174, 0, 0, 0, 1, 0, 0, 0,
- 88,120,112, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,144,114,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0,184,115,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,203, 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, 87, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 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, 0, 0, 0, 0, 87, 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, 88, 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, 0, 0, 0, 0, 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,184,115,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,144,114,112, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,224,116,112, 10, 68, 65, 84, 65, 72, 3, 0, 0,224,116,112, 10,158, 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, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,
- 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,
-161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,
- 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88,120,112, 10,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-176,113,112, 10,144,114,112, 10,184,115,112, 10, 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,152,236,114, 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, 1, 0, 0, 0,
- 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,128,121,112, 10,
-197, 0, 0, 0, 1, 0, 0, 0,224,136,112, 10,208,110,112, 10,192, 73,112, 10,128, 73,112, 10, 0, 73,112, 10, 0, 74,112, 10,
- 0, 0, 0, 0, 25, 4, 0, 0,254, 4, 0, 0, 49, 2, 0, 0,186, 2, 0, 0, 3, 3,230, 0,138, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 88,231, 93, 10, 96,124,112, 10,184,135,112, 10, 16,122,112, 10, 56,123,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
-208,233,221, 10, 56,177,209, 10, 68, 65, 84, 65,248, 0, 0, 0, 16,122,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 56,123,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,102, 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,229, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,230, 0, 26, 0,230, 0,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,254, 4, 0, 0,
-161, 2, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 0, 26, 0, 7, 0, 1, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,232, 93, 10,208,132,164, 10,208,132,164, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,154, 14, 11, 24,130,164, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 56,123,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16,122,112, 10, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 86, 67, 0, 0,188,194, 0, 0, 0, 0,213, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,111, 0, 0, 0,
- 0, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,212, 0, 0, 0, 18, 0, 0, 0,111, 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, 18, 0, 0, 0, 2, 0, 3, 3,
- 0, 0, 0, 4, 6, 0,230, 0,112, 0,213, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 25, 4, 0, 0,254, 4, 0, 0, 49, 2, 0, 0,160, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,230, 0,112, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,232, 93, 10,
- 8,122,184, 11, 8,122,184, 11, 0, 0, 0, 0, 0, 0, 0, 0,128,247,209, 10, 88,132,164, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 4, 1, 0, 0, 96,124,112, 10,168, 0, 0, 0, 1, 0, 0, 0,224,128,112, 10, 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, 0, 0, 0,248, 45,128, 11,248, 45,128, 11,144,125,112, 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, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,
-144,125,112, 10,221, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,200,125,112, 10, 68, 65, 84, 65,156, 0, 0, 0,
-200,125,112, 10,220, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,240,212,114, 10, 19, 0, 0, 0, 1, 0, 1, 0,
-240,212,114, 10, 20, 0, 0, 0, 1, 0, 1, 0,240,212,114, 10, 21, 0, 1, 0, 1, 0, 1, 0,240,212,114, 10, 0, 0, 0, 0,
- 1, 0, 1, 0,208,229,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,160,240,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 16, 31,115, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,176,248,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 56, 13,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,
-168,244,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 72,226,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,152,236,114, 10, 0, 0, 0, 0,
- 1, 0, 1, 0,160,225,114, 10, 68, 65, 84, 65,248, 0, 0, 0,144,126,112, 10,198, 0, 0, 0, 1, 0, 0, 0,184,127,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 67, 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,194, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,195, 0, 26, 0,195, 0,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0,
- 69, 2, 0, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 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, 68, 65, 84, 65,248, 0, 0, 0,184,127,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,144,126,112, 10, 0, 0, 0, 0, 0, 0,150, 67, 0,192,116,196, 0, 0, 0, 0,
- 0, 0, 0, 0,205, 85,150, 67,223,204, 35,196, 26, 85,207,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0,155, 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, 0, 0, 0, 0, 1, 0, 3, 0,
- 2, 0, 0, 4, 6, 0,195, 0,156, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 53, 4, 0, 0,247, 4, 0, 0, 95, 2, 0, 0,250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,195, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,224, 0, 0, 0,224,128,112, 10,164, 0, 0, 0, 1, 0, 0, 0,184,135,112, 10, 96,124,112, 10,144,126,112, 10,
-184,127,112, 10, 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, 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,240,129,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 24,131,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,138, 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, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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, 24,131,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240,129,112, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 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, 64,132,112, 10, 68, 65, 84, 65, 72, 3, 0, 0, 64,132,112, 10,158, 0, 0, 0, 1, 0, 0, 0,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,
-237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,184,135,112, 10,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-224,128,112, 10,240,129,112, 10, 24,131,112, 10, 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,152,236,114, 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, 1, 0, 0, 0,
- 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,224,136,112, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128,121,112, 10, 64, 74,112, 10,192, 72,112, 10,128, 73,112, 10,128, 74,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 69, 0, 0, 0,186, 2, 0, 0, 1, 1, 24, 4,118, 2, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,232,234, 93, 10,192,179,112, 10, 56,183,112, 10,112,137,112, 10, 32,175,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
-152,213,220, 10, 56, 2,222, 10, 68, 65, 84, 65,248, 0, 0, 0,112,137,112, 10,198, 0, 0, 0, 1, 0, 0, 0,152,138,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,131, 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, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 4, 26, 0, 24, 4,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0,
- 69, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 26, 0, 9, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,243, 93, 10, 40, 78,192, 11, 40, 78,192, 11, 0, 0, 0, 0,
- 0, 0, 0, 0,184,114,164, 10,152,137,164, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,152,138,112, 10,
-198, 0, 0, 0, 1, 0, 0, 0,224,159,112, 10,112,137,112, 10, 0, 0, 0, 0, 0, 0, 32, 67, 0,128,254,195, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,242,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,227, 1, 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, 0, 0, 0, 0,227, 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,160, 0,228, 1,143, 0,228, 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,159, 0, 0, 0,215, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,160, 0,228, 1, 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,240, 93, 10,
-160,187,126, 11, 24, 41,128, 11,192,139,112, 10,112,158,112, 10,224,116,164, 10,192,139,164, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 1, 0, 0,192,139,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 48,141,112, 10, 0, 0, 0, 0,152,240, 93, 10,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,196,255,143, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0, 48,141,112, 10,
-196, 0, 0, 0, 1, 0, 0, 0,160,142,112, 10,192,139,112, 10,208, 62,223, 10, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,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, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,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, 79, 98,106,101, 99,116, 32, 84,
-111,111,108,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, 7,254,143, 0,165, 1,
- 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,160,142,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 16,144,112, 10,
- 48,141,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,
-101,100,105,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,
-101,100,105,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, 77,101,115,104, 32, 84,111,111,108,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,184,252,143, 0,244, 2, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0, 16,144,112, 10,196, 0, 0, 0, 1, 0, 0, 0,128,145,112, 10,160,142,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,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, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,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, 0, 0, 0, 0, 0,
- 77,101,115,104, 32, 79,112,116,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,124,252,143, 0, 36, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128,145,112, 10,196, 0, 0, 0,
- 1, 0, 0, 0,240,146,112, 10, 16,144,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,
-111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,
-111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,114,117,115,104, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226,253,143, 0, 54, 1, 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, 7, 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, 0, 0, 0, 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,240,146,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 96,148,112, 10,128,145,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111,
-111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111,
-111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,253,143, 0,156, 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, 68, 65, 84, 65, 64, 1, 0, 0,
- 96,148,112, 10,196, 0, 0, 0, 1, 0, 0, 0,208,149,112, 10,240,146,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,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, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,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, 83,116,114,111,
-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, 45,252,
-143, 0,233, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,208,149,112, 10,196, 0, 0, 0, 1, 0, 0, 0,
- 64,151,112, 10, 96,148,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
- 98,114,117,115,104, 95, 99,117,114,118,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
- 98,114,117,115,104, 95, 99,117,114,118,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, 67,117,114,118,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,254,252,143, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 64,151,112, 10,196, 0, 0, 0, 1, 0, 0, 0,176,152,112, 10,208,149,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,112,114,111,106,101, 99,116,112, 97,105,110,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,112,114,111,106,101, 99,116,112, 97,105,110,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, 80,114,111,106,101, 99,116, 32, 80, 97,105,110,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,223,252,143, 0,155, 0, 20, 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, 68, 65, 84, 65, 64, 1, 0, 0,176,152,112, 10,
-196, 0, 0, 0, 1, 0, 0, 0, 32,154,112, 10, 64,151,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,115, 99,117,108,112,116, 95,111,112,116,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, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,115, 99,117,108,112,116, 95,111,112,116,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, 79,112,116,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, 0, 0, 0,182,252,143, 0,149, 0,
- 0, 0, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0, 32,154,112, 10,196, 0, 0, 0, 1, 0, 0, 0,144,155,112, 10,
-176,152,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,
-101,120,112, 97,105,110,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,
-101,120,112, 97,105,110,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, 79,112,116,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, 0, 0, 0,246,252,143, 0, 80, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,144,155,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 0,157,112, 10, 32,154,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,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,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,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,
- 84,101,120,116,117,114,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, 91,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0, 0,157,112, 10,196, 0, 0, 0,
- 1, 0, 0, 0,112,158,112, 10,144,155,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,
-111,108,115, 95,119,101,105,103,104,116,112, 97,105,110,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,
-111,108,115, 95,119,101,105,103,104,116,112, 97,105,110,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, 87,101,105,103,104,116, 32, 84,111,111,108,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, 48,255,143, 0,124, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,112,158,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,157,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,119,101,105,103,104,116,112, 97,
-105,110,116, 95,111,112,116,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,119,101,105,103,104,116,112, 97,
-105,110,116, 95,111,112,116,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, 79,112,116,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, 0, 0, 0,128,252,143, 0,102, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-224,159,112, 10,198, 0, 0, 0, 1, 0, 0, 0,120,162,112, 10,152,138,112, 10, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194,
- 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 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, 0, 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, 3, 0, 0,
- 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 95, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-184,241, 93, 10, 32,107,184, 11, 32,107,184, 11, 8,161,112, 10, 8,161,112, 10, 48,121,164, 10,232,141,164, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8,161,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 64,242, 93, 10, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,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, 79,112,101,114, 97,116,111,114, 0,116, 32, 77,111,100,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,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,162,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 32,175,112, 10,224,159,112, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,143,196,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,102,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,
-171, 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,
-171, 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,172, 3,163, 0,154, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 23, 4, 0, 0, 95, 0, 0, 0,186, 2, 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,
- 40,236, 93, 10, 0, 0, 0, 0, 0, 0, 0, 0,160,163,112, 10,176,173,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,160,163,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 16,165,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,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, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,
- 16,165,112, 10,196, 0, 0, 0, 1, 0, 0, 0,128,166,112, 10,160,163,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,
-115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,251,
-163, 0, 58, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128,166,112, 10,196, 0, 0, 0, 1, 0, 0, 0,
-240,167,112, 10, 16,165,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119,
- 95,112,114,111,112,101,114,116,105,101,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119,
- 95,112,114,111,112,101,114,116,105,101,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, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,252,163, 0, 59, 1, 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,
- 68, 65, 84, 65, 64, 1, 0, 0,240,167,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 96,169,112, 10,128,166,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,208,251,163, 0, 3, 1, 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, 68, 65, 84, 65, 64, 1, 0, 0, 96,169,112, 10,
-196, 0, 0, 0, 1, 0, 0, 0,208,170,112, 10,240,167,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,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, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,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, 66, 97, 99,107,103,114,111,117,
-110,100, 32, 73,109, 97,103,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,184,251,163, 0, 0, 0,
- 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,208,170,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 64,172,112, 10,
- 96,169,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,
-111,114,105,101,110,116, 97,116,105,111,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, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,
-111,114,105,101,110,116, 97,116,105,111,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, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,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,160,251,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 64,172,112, 10,196, 0, 0, 0, 1, 0, 0, 0,176,173,112, 10,208,170,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,109,101,115,104,100,105,115,112,108, 97,121, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 77,101,115,104, 32, 68,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 23,252,163, 0,104, 1, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,176,173,112, 10,196, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 64,172,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,
-118,105,101,119, 95,110, 97,109,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,
-118,105,101,119, 95,110, 97,109,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, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,163, 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, 0, 68, 65, 84, 65,248, 0, 0, 0, 32,175,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,120,162,112, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 23, 4, 0, 0, 95, 0, 0, 0,
-186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 3, 92, 2, 12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,235, 93, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,162,164, 10,176,161,164, 10, 0, 0, 0, 0, 72,176,112, 10, 68, 65, 84, 65, 72, 3, 0, 0, 72,176,112, 10,158, 0, 0, 0,
- 1, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,211,205, 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,177,157,229, 62, 44, 97, 37,191, 48,180, 81,191,184,158, 81,191,115, 90,127, 63,218,109,159, 62, 26, 63,185, 62,
- 35, 44,185, 62,143,180,109,188,159, 57,184, 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,159,240,191, 62, 99,116, 85, 63, 32,181, 70,188, 0, 0, 80,179,241,212,127,190,115,160,246, 61,242,125, 14, 63,
- 0, 0, 48,179, 67,108,117,194,184,204,216, 65,105,156, 5,194,213,247,159,192,235, 62,114, 66, 60,254,213,193,158,225, 3, 66,
- 56, 8,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,177,157,229, 62, 44, 97, 37,191, 48,180, 81,191,184,158, 81,191,115, 90,127, 63,218,109,159, 62, 26, 63,185, 62,
- 35, 44,185, 62,143,180,109,188,159, 57,184, 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,239, 39, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 39, 20, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 39, 20, 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,174,243, 6, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 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,128, 63, 32, 33, 12, 66,
- 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,192,179,112, 10,159, 0, 0, 0, 1, 0, 0, 0,
- 56,183,112, 10, 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,152,236,114, 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,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0,
- 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,
-232,180,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 16,182,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 16,182,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,232,180,112, 10,
- 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,
-248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0, 56,183,112, 10,174, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,192,179,112, 10,232,180,112, 10, 16,182,112, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,140, 0, 0, 0,
-120,184,112, 10,193, 0, 0, 0, 1, 0, 0, 0,168,107,113, 10, 8, 71,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,
-109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 48,185,112, 10,112,188,112, 10,176,188,112, 10, 80,194,112, 10,152,194,112, 10,128, 79,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
-240,212,114, 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, 68, 65, 84, 65, 20, 0, 0, 0,
- 48,185,112, 10,194, 0, 0, 0, 1, 0, 0, 0,112,185,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,112,185,112, 10,194, 0, 0, 0, 1, 0, 0, 0,176,185,112, 10, 48,185,112, 10, 0, 0, 0, 0,
- 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,176,185,112, 10,194, 0, 0, 0, 1, 0, 0, 0,240,185,112, 10,
-112,185,112, 10, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240,185,112, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 48,186,112, 10,176,185,112, 10, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 48,186,112, 10,194, 0, 0, 0, 1, 0, 0, 0,112,186,112, 10,240,185,112, 10, 0, 0, 0, 0, 0, 0,187, 2, 1, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,112,186,112, 10,194, 0, 0, 0, 1, 0, 0, 0,176,186,112, 10, 48,186,112, 10, 0, 0, 0, 0,
-254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,176,186,112, 10,194, 0, 0, 0, 1, 0, 0, 0,240,186,112, 10,
-112,186,112, 10, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240,186,112, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 48,187,112, 10,176,186,112, 10, 0, 0, 0, 0, 20, 4, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 48,187,112, 10,194, 0, 0, 0, 1, 0, 0, 0,112,187,112, 10,240,186,112, 10, 0, 0, 0, 0, 20, 4, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,112,187,112, 10,194, 0, 0, 0, 1, 0, 0, 0,176,187,112, 10, 48,187,112, 10, 0, 0, 0, 0,
-254, 4, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,176,187,112, 10,194, 0, 0, 0, 1, 0, 0, 0,240,187,112, 10,
-112,187,112, 10, 0, 0, 0, 0,124, 3, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240,187,112, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 48,188,112, 10,176,187,112, 10, 0, 0, 0, 0,124, 3,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 48,188,112, 10,194, 0, 0, 0, 1, 0, 0, 0,112,188,112, 10,240,187,112, 10, 0, 0, 0, 0,212, 0, 20, 1, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,112,188,112, 10,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,188,112, 10, 0, 0, 0, 0,
-212, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176,188,112, 10,195, 0, 0, 0, 1, 0, 0, 0,248,188,112, 10,
- 0, 0, 0, 0,112,185,112, 10,176,185,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248,188,112, 10,
-195, 0, 0, 0, 1, 0, 0, 0, 64,189,112, 10,176,188,112, 10,112,185,112, 10, 48,186,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 64,189,112, 10,195, 0, 0, 0, 1, 0, 0, 0,136,189,112, 10,248,188,112, 10,176,185,112, 10,
-112,186,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136,189,112, 10,195, 0, 0, 0, 1, 0, 0, 0,
-208,189,112, 10, 64,189,112, 10, 48,186,112, 10,112,186,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-208,189,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 24,190,112, 10,136,189,112, 10, 48,186,112, 10,176,186,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 24,190,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 96,190,112, 10,208,189,112, 10,
-176,186,112, 10,240,186,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96,190,112, 10,195, 0, 0, 0,
- 1, 0, 0, 0,168,190,112, 10, 24,190,112, 10,240,185,112, 10, 48,187,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,168,190,112, 10,195, 0, 0, 0, 1, 0, 0, 0,240,190,112, 10, 96,190,112, 10,240,186,112, 10, 48,187,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,240,190,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 56,191,112, 10,
-168,190,112, 10, 48,185,112, 10,176,186,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56,191,112, 10,
-195, 0, 0, 0, 1, 0, 0, 0,128,191,112, 10,240,190,112, 10, 48,185,112, 10, 48,187,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,128,191,112, 10,195, 0, 0, 0, 1, 0, 0, 0,200,191,112, 10, 56,191,112, 10,112,186,112, 10,
-112,187,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,200,191,112, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 16,192,112, 10,128,191,112, 10,240,185,112, 10,112,187,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 16,192,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 88,192,112, 10,200,191,112, 10,240,186,112, 10,112,187,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 88,192,112, 10,195, 0, 0, 0, 1, 0, 0, 0,160,192,112, 10, 16,192,112, 10,
-176,187,112, 10,240,187,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160,192,112, 10,195, 0, 0, 0,
- 1, 0, 0, 0,232,192,112, 10, 88,192,112, 10,112,186,112, 10,240,187,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,232,192,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 48,193,112, 10,160,192,112, 10,112,187,112, 10,176,187,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 48,193,112, 10,195, 0, 0, 0, 1, 0, 0, 0,120,193,112, 10,
-232,192,112, 10,176,186,112, 10, 48,188,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,193,112, 10,
-195, 0, 0, 0, 1, 0, 0, 0,192,193,112, 10, 48,193,112, 10,176,187,112, 10, 48,188,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,192,193,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 8,194,112, 10,120,193,112, 10, 48,186,112, 10,
-112,188,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 8,194,112, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 80,194,112, 10,192,193,112, 10,240,187,112, 10,112,188,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 80,194,112, 10,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8,194,112, 10, 48,188,112, 10,112,188,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,152,194,112, 10,197, 0, 0, 0, 1, 0, 0, 0,120,197,112, 10, 0, 0, 0, 0,
- 48,186,112, 10,112,185,112, 10,176,185,112, 10,112,186,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,
-214, 2, 0, 0, 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 72,107,113, 10, 72,107,113, 10,
- 40,195,112, 10, 80,196,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
- 40,195,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 80,196,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 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, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 80,196,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40,195,112, 10,
- 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 0, 0, 0, 0,214, 2, 0, 0,
-214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0,120,197,112, 10,197, 0, 0, 0,
- 1, 0, 0, 0, 72,231,112, 10,152,194,112, 10, 48,187,112, 10,240,186,112, 10,112,187,112, 10,240,185,112, 10, 0, 0, 0, 0,
- 21, 4, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 4, 4,234, 0, 20, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152,217,112, 10, 32,230,112, 10, 8,198,112, 10, 48,199,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 8,198,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 48,199,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0,106, 67, 0, 0, 0, 0, 0, 0,248, 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,233, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,234, 0, 31, 0,234, 0, 31, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,254, 4, 0, 0,245, 0, 0, 0,
- 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 0, 31, 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, 68, 65, 84, 65,248, 0, 0, 0, 48,199,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 8,198,112, 10, 0, 0, 0, 0, 0, 0,105, 67, 0, 64, 80,196, 0, 0, 0, 0, 0, 0, 0, 0,
-254,255, 88, 67,254,255,116,195, 0, 0, 0, 0,217, 0, 0, 0,234, 0, 0, 0, 0, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 0,
- 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0,244, 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, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4,
- 6, 0,234, 0,245, 0,217, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 21, 4, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-234, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,200,112, 10, 40,216,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0, 88,200,112, 10,196, 0, 0, 0, 1, 0, 0, 0,200,201,112, 10, 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,216, 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, 0, 68, 65, 84, 65, 64, 1, 0, 0,200,201,112, 10,196, 0, 0, 0,
- 1, 0, 0, 0, 56,203,112, 10, 88,200,112, 10, 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,216, 0, 61, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 56,203,112, 10,196, 0, 0, 0, 1, 0, 0, 0,168,204,112, 10,200,201,112, 10,
- 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,216, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,
-168,204,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 24,206,112, 10, 56,203,112, 10, 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,
-216, 0,203, 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, 68, 65, 84, 65, 64, 1, 0, 0, 24,206,112, 10,196, 0, 0, 0, 1, 0, 0, 0,
-136,207,112, 10,168,204,112, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,216, 0, 58, 0, 20, 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,
- 68, 65, 84, 65, 64, 1, 0, 0,136,207,112, 10,196, 0, 0, 0, 1, 0, 0, 0,248,208,112, 10, 24,206,112, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,164,253,216, 0,102, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,248,208,112, 10,
-196, 0, 0, 0, 1, 0, 0, 0,104,210,112, 10,136,207,112, 10, 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, 35,253,216, 0,105, 0,
- 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104,210,112, 10,196, 0, 0, 0, 1, 0, 0, 0,216,211,112, 10,
-248,208,112, 10, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,253,216, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,216,211,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 72,213,112, 10,104,210,112, 10, 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,243,252,216, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0, 72,213,112, 10,196, 0, 0, 0,
- 1, 0, 0, 0,184,214,112, 10,216,211,112, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219,252,216, 0, 0, 0, 20, 0, 0, 0,
- 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,184,214,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 40,216,112, 10, 72,213,112, 10,
- 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, 70,117,108,108, 32, 83, 97,109,112,108,101, 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, 34,254,216, 0, 0, 0, 20, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
- 40,216,112, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,184,214,112, 10, 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,195,252,
-216, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,152,217,112, 10,164, 0, 0, 0, 1, 0, 0, 0,
- 72,223,112, 10, 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, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,168,218,112, 10,198, 0, 0, 0, 1, 0, 0, 0,208,219,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 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,
-227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 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, 68, 65, 84, 65,248, 0, 0, 0,208,219,112, 10,198, 0, 0, 0, 1, 0, 0, 0,
-248,220,112, 10,168,218,112, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 7, 0, 0,
-128, 7, 0, 0,112, 0, 0, 0,235, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-248,220,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 32,222,112, 10,208,219,112, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196,
- 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 32,222,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248,220,112, 10,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
- 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66,
- 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 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,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,
-235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 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,224, 0, 0, 0, 72,223,112, 10,165, 0, 0, 0,
- 1, 0, 0, 0, 32,230,112, 10,152,217,112, 10,168,218,112, 10, 32,222,112, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 64, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 88,224,112, 10,198, 0, 0, 0, 1, 0, 0, 0,128,225,112, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 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, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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,128,225,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 88,224,112, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 1, 55, 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,168,226,112, 10, 68, 65, 84, 65,
- 72, 3, 0, 0,168,226,112, 10,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
- 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
- 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194,
- 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
- 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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,
- 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
- 32,230,112, 10,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72,223,112, 10, 88,224,112, 10,128,225,112, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0,
- 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0,
- 1, 0, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 72,231,112, 10,197, 0, 0, 0, 1, 0, 0, 0, 32, 20,113, 10,120,197,112, 10,
- 48,185,112, 10,176,186,112, 10,240,186,112, 10, 48,187,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0,
- 19, 1, 0, 0, 17, 17, 20, 4, 20, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,236,112, 10, 64, 19,113, 10,
-216,231,112, 10,152,235,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-216,231,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0,233,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0,128,130, 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, 19, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 4, 26, 0, 20, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 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, 20, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 0,233,112, 10,198, 0, 0, 0, 1, 0, 0, 0,152,235,112, 10,216,231,112, 10,
- 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,122,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,122,195, 0, 0, 0, 0,
-203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,249, 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, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,250, 0,203, 0,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,219, 0, 0, 0, 26, 0, 0, 0,
- 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,250, 0, 0, 0, 4, 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, 40,234,112, 10, 40,234,112, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 40,234,112, 10,196, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,
-112,101,114,116,105,101,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, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,
-112,101,114,116,105,101,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, 80,114,111,112,101,114,116,105,101,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,196,255,203, 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, 0, 68, 65, 84, 65,248, 0, 0, 0,152,235,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,233,112, 10,
- 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67, 4, 0, 39,195, 0,224,180, 68, 1, 0,224,194, 0, 0,176, 67,
- 39, 3, 0, 0, 56, 3, 0, 0, 18, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 0, 38, 3, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 38, 3, 0, 0, 18, 0, 0, 0,249, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,
- 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 56, 3,250, 0, 39, 3,232, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 19, 4, 0, 0, 26, 0, 0, 0,
- 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 3,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, 0, 0, 0, 0, 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, 52, 0, 0, 0,192,236,112, 10,176, 0, 0, 0,
- 1, 0, 0, 0,152,240,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 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, 7, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
- 32,237,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 72,238,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 64, 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,255, 2, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 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, 2, 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, 0, 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, 0, 0, 0, 0, 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, 72,238,112, 10,198, 0, 0, 0, 1, 0, 0, 0,112,239,112, 10, 32,237,112, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
-147, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,112,239,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 72,238,112, 10, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,128,191,
- 0, 0, 0, 64, 0, 0,116,190, 0,128,158, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,122, 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,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3,122, 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,
-160, 12, 0, 0,152,240,112, 10,169, 0, 0, 0, 1, 0, 0, 0,184,255,112, 10,192,236,112, 10, 32,237,112, 10,112,239,112, 10,
- 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,
-100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104,253,112, 10,198, 0, 0, 0,
- 1, 0, 0, 0,144,254,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0, 64, 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,255, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68,
- 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0, 0, 3, 26, 0, 0, 3, 26, 0, 0, 0, 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, 2, 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,
- 0, 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,
- 0, 0, 0, 0, 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,144,254,112, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104,253,112, 10, 0, 0, 32,193, 0, 0, 0, 68,
- 0, 0, 32,193, 0, 0, 0, 68,144, 82, 89,194, 41,149, 13, 68,176,122,214, 66, 82, 97,202, 67,239, 2, 0, 0, 0, 3, 0, 0,
- 18, 0, 0, 0,121, 1, 0, 0, 0, 0, 0, 0,238, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,238, 2, 0, 0,
- 18, 0, 0, 0,121, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63,
- 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 3,122, 1,239, 2,104, 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,255, 2, 0, 0, 26, 0, 0, 0,147, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,122, 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,244, 0, 0, 0,184,255,112, 10,175, 0, 0, 0, 1, 0, 0, 0,120, 5,113, 10,
-152,240,112, 10,104,253,112, 10,144,254,112, 10, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 24,227, 78, 63, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216, 0,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 2,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0,
- 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68,
- 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5, 27, 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, 68, 65, 84, 65,
-248, 0, 0, 0, 0, 2,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 40, 3,113, 10,216, 0,113, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 40, 3,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 80, 4,113, 10,
- 0, 2,113, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196,
- 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 59, 70,
- 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 80, 4,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40, 3,113, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0,
- 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0,
- 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 8, 0,240, 5,163, 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,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 5,163, 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,
- 68, 65, 84, 65,224, 0, 0, 0,120, 5,113, 10,165, 0, 0, 0, 1, 0, 0, 0,200, 15,113, 10,184,255,112, 10,216, 0,113, 10,
- 80, 4,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,136, 6,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0,176, 7,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,157, 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,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,232, 4, 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,
- 68, 65, 84, 65,248, 0, 0, 0,176, 7,113, 10,198, 0, 0, 0, 1, 0, 0, 0,216, 8,113, 10,136, 6,113, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 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, 68, 65, 84, 65,248, 0, 0, 0,216, 8,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 10,113, 10,176, 7,113, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,
-128, 7, 0, 0,251, 1, 0, 0,251, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,
- 0, 10,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 40, 11,113, 10,216, 8,113, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,
-121, 2, 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,
-121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 40, 11,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10,113, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,
- 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 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, 80, 12,113, 10, 68, 65, 84, 65, 72, 3, 0, 0, 80, 12,113, 10,158, 0, 0, 0,
- 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188,
- 0, 0, 0,128, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62,
- 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,
-214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62,
- 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,
-151,254, 71, 66, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62,
- 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,
-214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,218,210,190, 58, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,200, 15,113, 10,159, 0, 0, 0, 1, 0, 0, 0,
- 64, 19,113, 10,120, 5,113, 10,136, 6,113, 10, 40, 11,113, 10, 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,152,236,114, 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,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-240, 16,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 24, 18,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 24, 18,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 16,113, 10,
- 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,
-248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0, 64, 19,113, 10,174, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,200, 15,113, 10,240, 16,113, 10, 24, 18,113, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
- 32, 20,113, 10,197, 0, 0, 0, 1, 0, 0, 0, 40, 46,113, 10, 72,231,112, 10,176,187,112, 10,240,187,112, 10,112,186,112, 10,
-112,187,112, 10, 0, 0, 0, 0,125, 3, 0, 0,254, 4, 0, 0, 21, 1, 0, 0,186, 2, 0, 0, 9, 9,130, 1,166, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,113, 10, 0, 45,113, 10,176, 20,113, 10,216, 21,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,176, 20,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-216, 21,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,193, 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,129, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,181, 67, 0, 0,200, 65,
- 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,130, 1,
- 26, 0,130, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125, 3, 0, 0,
-254, 4, 0, 0, 21, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130, 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, 0, 0, 0, 0,
- 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,
-216, 21,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,176, 20,113, 10, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0,
- 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0,126, 86, 5, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,
-139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0,
- 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,130, 1,140, 1,130, 1,140, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,125, 3, 0, 0,254, 4, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,130, 1,140, 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,124, 2, 0, 0, 0, 23,113, 10,171, 0, 0, 0, 1, 0, 0, 0,248, 27,113, 10, 0, 0, 0, 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, 12, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,168, 25,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0,208, 26,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,182, 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,107, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,108, 1, 26, 0,108, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,108, 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, 0, 0, 0, 0, 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,208, 26,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,168, 25,113, 10, 0, 0, 0, 0,
- 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,173, 67, 0, 0,210,195, 0, 0, 0, 0, 91, 1, 0, 0,
-108, 1, 0, 0, 18, 0, 0, 0,181, 1, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
- 90, 1, 0, 0, 18, 0, 0, 0,181, 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, 0, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,108, 1,182, 1, 91, 1,164, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 4, 0, 0,160, 5, 0, 0, 67, 1, 0, 0,248, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1,182, 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, 4, 1, 0, 0,248, 27,113, 10,168, 0, 0, 0, 1, 0, 0, 0,
-120, 32,113, 10, 0, 23,113, 10,168, 25,113, 10,208, 26,113, 10, 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, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 40, 29,113, 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,
- 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0, 40, 29,113, 10,221, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,
- 96, 29,113, 10, 68, 65, 84, 65,156, 0, 0, 0, 96, 29,113, 10,220, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-240,212,114, 10, 19, 0, 0, 0, 1, 0, 1, 0,240,212,114, 10, 20, 0, 0, 0, 1, 0, 1, 0,240,212,114, 10, 21, 0, 1, 0,
- 1, 0, 1, 0,240,212,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,208,229,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,160,240,114, 10,
- 0, 0, 0, 0, 1, 0, 1, 0, 16, 31,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,176,248,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,
- 56, 13,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,168,244,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 72,226,114, 10, 0, 0, 0, 0,
- 1, 0, 1, 0,152,236,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,160,225,114, 10, 68, 65, 84, 65,248, 0, 0, 0, 40, 30,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 80, 31,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,240, 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, 67, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0,
- 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0, 68, 1, 30, 0, 68, 1, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0,252, 3, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 1, 30, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 80, 31,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40, 30,113, 10, 0, 0, 0, 0,
- 0, 0,153, 67, 0, 0,137,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,153, 67,253,127,198,195, 0, 0, 0, 0, 51, 1, 0, 0,
- 68, 1, 0, 0, 18, 0, 0, 0,158, 1, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
- 50, 1, 0, 0, 18, 0, 0, 0,158, 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, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 68, 1,159, 1, 51, 1,141, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 6, 0, 0,128, 7, 0, 0, 93, 2, 0, 0,251, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,159, 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,224, 0, 0, 0,120, 32,113, 10,164, 0, 0, 0, 1, 0, 0, 0,
- 40, 38,113, 10,248, 27,113, 10, 40, 30,113, 10, 80, 31,113, 10, 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, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,136, 33,113, 10,198, 0, 0, 0, 1, 0, 0, 0,176, 34,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 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,
-227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 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, 68, 65, 84, 65,248, 0, 0, 0,176, 34,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-216, 35,113, 10,136, 33,113, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 7, 0, 0,
-128, 7, 0, 0,112, 0, 0, 0,235, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-216, 35,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 37,113, 10,176, 34,113, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196,
- 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 0, 37,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216, 35,113, 10,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
- 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66,
- 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 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,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,
-235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 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,224, 0, 0, 0, 40, 38,113, 10,165, 0, 0, 0,
- 1, 0, 0, 0, 0, 45,113, 10,120, 32,113, 10,136, 33,113, 10, 0, 37,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 64, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 56, 39,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 96, 40,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 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, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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, 96, 40,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 56, 39,113, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 1, 55, 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,136, 41,113, 10, 68, 65, 84, 65,
- 72, 3, 0, 0,136, 41,113, 10,158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
- 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
- 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194,
- 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
- 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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,
- 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
- 0, 45,113, 10,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40, 38,113, 10, 56, 39,113, 10, 96, 40,113, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0,
- 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0,
- 1, 0, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 40, 46,113, 10,197, 0, 0, 0, 1, 0, 0, 0,128, 79,113, 10, 32, 20,113, 10,
- 48,188,112, 10,112,188,112, 10,240,187,112, 10,176,187,112, 10, 0, 0, 0, 0,213, 0, 0, 0,123, 3, 0, 0, 21, 1, 0, 0,
-186, 2, 0, 0, 1, 1,167, 2,166, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 66,113, 10,160, 78,113, 10,
-184, 46,113, 10,104, 61,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-184, 46,113, 10,198, 0, 0, 0, 1, 0, 0, 0,224, 47,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 56, 0,192, 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,166, 2, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,167, 2, 26, 0,167, 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,213, 0, 0, 0,123, 3, 0, 0, 21, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,167, 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, 0, 0, 0, 0, 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,224, 47,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 8, 49,113, 10,184, 46,113, 10,
- 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, 0, 0, 0, 0,213, 0, 0, 0,213, 0, 0, 0, 47, 1, 0, 0,
-186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,140, 1, 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, 68, 65, 84, 65,248, 0, 0, 0, 8, 49,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 48, 50,113, 10,224, 47,113, 10, 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, 0, 0, 0, 0,
-213, 0, 0, 0,123, 3, 0, 0, 47, 1, 0, 0, 47, 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, 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, 68, 65, 84, 65,
-248, 0, 0, 0, 48, 50,113, 10,198, 0, 0, 0, 1, 0, 0, 0,104, 61,113, 10, 8, 49,113, 10, 0, 0, 0, 0, 0, 0, 35, 67,
- 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 23,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0,
- 18, 0, 0, 0,111, 2, 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,111, 2, 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,112, 2,163, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123, 3, 0, 0,123, 3, 0, 0, 47, 1, 0, 0,186, 2, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 51,113, 10,248, 59,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 88, 51,113, 10,196, 0, 0, 0, 1, 0, 0, 0,200, 52,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,111, 98,106,101, 99,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, 84,114, 97,110,115,102,111,114,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,254,163, 0,110, 1, 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, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,200, 52,113, 10,196, 0, 0, 0, 1, 0, 0, 0, 56, 54,113, 10, 88, 51,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,236,253,163, 0, 58, 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, 68, 65, 84, 65, 64, 1, 0, 0, 56, 54,113, 10,196, 0, 0, 0,
- 1, 0, 0, 0,168, 55,113, 10,200, 52,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,
-118,105,101,119, 95,112,114,111,112,101,114,116,105,101,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,
-118,105,101,119, 95,112,114,111,112,101,114,116,105,101,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, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,252,163, 0, 59, 1, 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, 68, 65, 84, 65, 64, 1, 0, 0,168, 55,113, 10,196, 0, 0, 0, 1, 0, 0, 0, 24, 57,113, 10, 56, 54,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,100,105,115,112,108, 97,121,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,
- 24, 57,113, 10,196, 0, 0, 0, 1, 0, 0, 0,136, 58,113, 10,168, 55,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,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, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,103,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, 66, 97, 99,107,
-103,114,111,117,110,100, 32, 73,109, 97,103,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,105,252,
-163, 0, 0, 0, 20, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,136, 58,113, 10,196, 0, 0, 0, 1, 0, 0, 0,
-248, 59,113, 10, 24, 57,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,
-111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,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, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,
-111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,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, 0, 0, 0, 0, 0, 84,114, 97,110,115,102,111,114,109, 32, 79,114,105,101,110,116,
- 97,116,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, 81,252,163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,248, 59,113, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136, 58,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,110, 97,109,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, 73,116,101,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,196,255,163, 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, 0, 68, 65, 84, 65,248, 0, 0, 0,104, 61,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48, 50,113, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,213, 0, 0, 0,123, 3, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,167, 2,140, 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,144, 62,113, 10,
- 68, 65, 84, 65, 72, 3, 0, 0,144, 62,113, 10,158, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,167,147,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,167,147,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126,177,113, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,167,147,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 6, 63,156, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190,
- 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0, 8, 66,113, 10,159, 0, 0, 0, 1, 0, 0, 0,128, 69,113, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0,
- 0, 0, 0, 0, 1, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48, 67,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 88, 68,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 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, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 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, 0, 0, 0, 0, 23, 6, 0, 0,
-149, 1, 0, 0,174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 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, 0, 0, 0, 0, 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, 88, 68,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48, 67,113, 10, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,
- 56,205,190,195,156,102, 95, 68,160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0,
- 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0,
- 0, 0, 0, 4, 0, 0, 24, 6,107, 2, 7, 6, 89, 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, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 24, 6,107, 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,244, 0, 0, 0,128, 69,113, 10,175, 0, 0, 0, 1, 0, 0, 0, 64, 75,113, 10, 8, 66,113, 10, 48, 67,113, 10,
- 88, 68,113, 10, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63,
- 0, 0, 0, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160, 70,113, 10,198, 0, 0, 0, 1, 0, 0, 0,200, 71,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0,
- 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68,
- 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5,
- 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,
- 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 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, 68, 65, 84, 65,248, 0, 0, 0,200, 71,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0,240, 72,113, 10,160, 70,113, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 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, 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,
- 68, 65, 84, 65,248, 0, 0, 0,240, 72,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 24, 74,113, 10,200, 71,113, 10, 0, 0,112,196,
- 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55,
- 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 24, 74,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,240, 72,113, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64,
- 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,
-163, 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,
-239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 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, 68, 65, 84, 65,224, 0, 0, 0,
- 64, 75,113, 10,165, 0, 0, 0, 1, 0, 0, 0,160, 78,113, 10,128, 69,113, 10,160, 70,113, 10, 24, 74,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 80, 76,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-120, 77,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65,
- 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4,
- 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,
-120, 77,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 76,113, 10, 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,
-121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,160, 78,113, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 75,113, 10,
- 80, 76,113, 10,120, 77,113, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,128, 79,113, 10,197, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 40, 46,113, 10,176,186,112, 10, 48,186,112, 10,112,188,112, 10, 48,188,112, 10, 0, 0, 0, 0, 0, 0, 0, 0,
-211, 0, 0, 0, 21, 1, 0, 0,186, 2, 0, 0, 3, 3,212, 0,166, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 96, 82,113, 10,104,106,113, 10, 16, 80,113, 10, 56, 81,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0, 16, 80,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 56, 81,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 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,
-211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 21, 1, 0, 0, 46, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 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, 68, 65, 84, 65,248, 0, 0, 0, 56, 81,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 16, 80,113, 10, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 80, 66, 0, 0,119, 67,
- 0, 0,189,195, 0, 0, 0, 0,195, 0, 0, 0,212, 0, 0, 0, 18, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0,194, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 18, 0, 0, 0,139, 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, 2, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,212, 0,
-140, 1,195, 0,122, 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,
-211, 0, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 0,140, 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, 4, 1, 0, 0,
- 96, 82,113, 10,168, 0, 0, 0, 1, 0, 0, 0,208, 93,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 83,113, 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, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,144, 83,113, 10,221, 0, 0, 0,
- 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,200, 83,113, 10, 68, 65, 84, 65,156, 0, 0, 0,200, 83,113, 10,220, 0, 0, 0,
- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,240,212,114, 10, 19, 0, 0, 0, 1, 0, 1, 0,240,212,114, 10, 20, 0, 0, 0,
- 1, 0, 1, 0,240,212,114, 10, 21, 0, 1, 0, 1, 0, 1, 0,240,212,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,208,229,114, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,160,240,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 16, 31,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,
-176,248,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 56, 13,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,168,244,114, 10, 0, 0, 0, 0,
- 1, 0, 1, 0, 72,226,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,152,236,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,160,225,114, 10,
- 68, 65, 84, 65,248, 0, 0, 0,144, 84,113, 10,198, 0, 0, 0, 1, 0, 0, 0,184, 85,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,128, 68, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 84, 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,
-211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 41, 1, 0, 0, 66, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 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, 68, 65, 84, 65,248, 0, 0, 0,184, 85,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-224, 86,113, 10,144, 84,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,182, 1,
- 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, 68, 65, 84, 65,248, 0, 0, 0,
-224, 86,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 8, 88,113, 10,184, 85,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0, 67, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 8, 88,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 48, 89,113, 10,224, 86,113, 10,
- 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,
-163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,104, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,
-248, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 48, 89,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 8, 88,113, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,211, 0, 0, 0, 67, 1, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-212, 0,182, 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, 88, 90,113, 10, 68, 65, 84, 65,
- 72, 3, 0, 0, 88, 90,113, 10,158, 0, 0, 0, 1, 0, 0, 0,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128,111, 18,131,187, 0, 0, 0,128,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 15,150, 72, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,121, 92,163, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 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, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
-149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,159, 55,242, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,
- 1, 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,
-208, 93,113, 10,159, 0, 0, 0, 1, 0, 0, 0, 72, 97,113, 10, 96, 82,113, 10,144, 84,113, 10, 48, 89,113, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8,
- 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0,
- 1, 0, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,248, 94,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 32, 96,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,195, 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, 23, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 24, 6, 26, 0, 24, 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, 0, 0, 0, 0, 23, 6, 0, 0,149, 1, 0, 0,
-174, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 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, 0, 0, 0, 0, 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, 32, 96,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,248, 94,113, 10, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68, 56,205,190,195,
-156,102, 95, 68,160,228,244, 64,110, 44,252, 67, 7, 6, 0, 0, 24, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0, 0, 0,
- 6, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 18, 0, 0, 0,106, 2, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4,
- 0, 0, 24, 6,107, 2, 7, 6, 89, 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, 23, 6, 0, 0,175, 1, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 6,107, 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,
-244, 0, 0, 0, 72, 97,113, 10,175, 0, 0, 0, 1, 0, 0, 0, 8,103,113, 10,208, 93,113, 10,248, 94,113, 10, 32, 96,113, 10,
- 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,193, 67, 81, 63, 0, 0, 0, 0,
- 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,104, 98,113, 10,198, 0, 0, 0, 1, 0, 0, 0,144, 99,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,
-111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 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, 68, 65, 84, 65,248, 0, 0, 0,144, 99,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0,184,100,113, 10,104, 98,113, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,
-248, 0, 0, 0,184,100,113, 10,198, 0, 0, 0, 1, 0, 0, 0,224,101,113, 10,144, 99,113, 10, 0, 0,112,196, 0, 0,112, 68,
- 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0,224,101,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-184,100,113, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0,
- 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72,
- 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 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,239, 5, 0, 0,
-112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 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, 68, 65, 84, 65,224, 0, 0, 0, 8,103,113, 10,
-165, 0, 0, 0, 1, 0, 0, 0,104,106,113, 10, 72, 97,113, 10,104, 98,113, 10,224,101,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 24,104,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 64,105,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,
-101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 64,105,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24,104,113, 10, 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,104,106,113, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8,103,113, 10, 24,104,113, 10,
- 64,105,113, 10, 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,
- 1, 0, 0, 0, 6, 0, 0, 0, 83, 78, 0, 0,140, 0, 0, 0,168,107,113, 10,193, 0, 0, 0, 1, 0, 0, 0,152, 41,114, 10,
-120,184,112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,108,113, 10,224,111,113, 10, 32,112,113, 10, 80,118,113, 10,
-152,118,113, 10,248, 12,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 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, 68, 65, 84, 65, 20, 0, 0, 0, 96,108,113, 10,194, 0, 0, 0, 1, 0, 0, 0,160,108,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160,108,113, 10,194, 0, 0, 0,
- 1, 0, 0, 0,224,108,113, 10, 96,108,113, 10, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-224,108,113, 10,194, 0, 0, 0, 1, 0, 0, 0, 32,109,113, 10,160,108,113, 10, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 32,109,113, 10,194, 0, 0, 0, 1, 0, 0, 0, 96,109,113, 10,224,108,113, 10, 0, 0, 0, 0,
-254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96,109,113, 10,194, 0, 0, 0, 1, 0, 0, 0,160,109,113, 10,
- 32,109,113, 10, 0, 0, 0, 0, 0, 0,187, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160,109,113, 10,194, 0, 0, 0,
- 1, 0, 0, 0,224,109,113, 10, 96,109,113, 10, 0, 0, 0, 0,254, 4,187, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-224,109,113, 10,194, 0, 0, 0, 1, 0, 0, 0, 32,110,113, 10,160,109,113, 10, 0, 0, 0, 0,244, 3,187, 2, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 32,110,113, 10,194, 0, 0, 0, 1, 0, 0, 0, 96,110,113, 10,224,109,113, 10, 0, 0, 0, 0,
-244, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96,110,113, 10,194, 0, 0, 0, 1, 0, 0, 0,160,110,113, 10,
- 32,110,113, 10, 0, 0, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160,110,113, 10,194, 0, 0, 0,
- 1, 0, 0, 0,224,110,113, 10, 96,110,113, 10, 0, 0, 0, 0,244, 3, 28, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-224,110,113, 10,194, 0, 0, 0, 1, 0, 0, 0, 32,111,113, 10,160,110,113, 10, 0, 0, 0, 0,248, 1, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 32,111,113, 10,194, 0, 0, 0, 1, 0, 0, 0, 96,111,113, 10,224,110,113, 10, 0, 0, 0, 0,
-248, 1, 28, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96,111,113, 10,194, 0, 0, 0, 1, 0, 0, 0,160,111,113, 10,
- 32,111,113, 10, 0, 0, 0, 0,244, 3, 12, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160,111,113, 10,194, 0, 0, 0,
- 1, 0, 0, 0,224,111,113, 10, 96,111,113, 10, 0, 0, 0, 0,254, 4, 12, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-224,111,113, 10,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160,111,113, 10, 0, 0, 0, 0,248, 1,187, 2, 1, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 32,112,113, 10,195, 0, 0, 0, 1, 0, 0, 0,104,112,113, 10, 0, 0, 0, 0,160,108,113, 10,
-224,108,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,104,112,113, 10,195, 0, 0, 0, 1, 0, 0, 0,
-176,112,113, 10, 32,112,113, 10,160,108,113, 10, 96,109,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-176,112,113, 10,195, 0, 0, 0, 1, 0, 0, 0,248,112,113, 10,104,112,113, 10,224,108,113, 10,160,109,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248,112,113, 10,195, 0, 0, 0, 1, 0, 0, 0, 64,113,113, 10,176,112,113, 10,
- 96,109,113, 10,160,109,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64,113,113, 10,195, 0, 0, 0,
- 1, 0, 0, 0,136,113,113, 10,248,112,113, 10,160,109,113, 10,224,109,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,136,113,113, 10,195, 0, 0, 0, 1, 0, 0, 0,208,113,113, 10, 64,113,113, 10, 32,109,113, 10, 32,110,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208,113,113, 10,195, 0, 0, 0, 1, 0, 0, 0, 24,114,113, 10,
-136,113,113, 10, 96,108,113, 10, 96,110,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 24,114,113, 10,
-195, 0, 0, 0, 1, 0, 0, 0, 96,114,113, 10,208,113,113, 10, 96,109,113, 10, 96,110,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 96,114,113, 10,195, 0, 0, 0, 1, 0, 0, 0,168,114,113, 10, 24,114,113, 10,224,109,113, 10,
-160,110,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168,114,113, 10,195, 0, 0, 0, 1, 0, 0, 0,
-240,114,113, 10, 96,114,113, 10, 32,110,113, 10,160,110,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-240,114,113, 10,195, 0, 0, 0, 1, 0, 0, 0, 56,115,113, 10,168,114,113, 10, 96,108,113, 10,224,110,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56,115,113, 10,195, 0, 0, 0, 1, 0, 0, 0,128,115,113, 10,240,114,113, 10,
- 32,110,113, 10,224,110,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,128,115,113, 10,195, 0, 0, 0,
- 1, 0, 0, 0,200,115,113, 10, 56,115,113, 10, 96,110,113, 10, 32,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,200,115,113, 10,195, 0, 0, 0, 1, 0, 0, 0, 16,116,113, 10,128,115,113, 10,160,110,113, 10, 32,111,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16,116,113, 10,195, 0, 0, 0, 1, 0, 0, 0, 88,116,113, 10,
-200,115,113, 10,224,110,113, 10, 32,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 88,116,113, 10,
-195, 0, 0, 0, 1, 0, 0, 0,160,116,113, 10, 16,116,113, 10, 32,110,113, 10, 96,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,160,116,113, 10,195, 0, 0, 0, 1, 0, 0, 0,232,116,113, 10, 88,116,113, 10,224,109,113, 10,
- 96,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,232,116,113, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 48,117,113, 10,160,116,113, 10,160,109,113, 10,160,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 48,117,113, 10,195, 0, 0, 0, 1, 0, 0, 0,120,117,113, 10,232,116,113, 10, 32,109,113, 10,160,111,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,117,113, 10,195, 0, 0, 0, 1, 0, 0, 0,192,117,113, 10, 48,117,113, 10,
- 96,111,113, 10,160,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,192,117,113, 10,195, 0, 0, 0,
- 1, 0, 0, 0, 8,118,113, 10,120,117,113, 10, 96,109,113, 10,224,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 8,118,113, 10,195, 0, 0, 0, 1, 0, 0, 0, 80,118,113, 10,192,117,113, 10,224,109,113, 10,224,111,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,118,113, 10,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 8,118,113, 10, 32,111,113, 10,224,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,152,118,113, 10,
-197, 0, 0, 0, 1, 0, 0, 0,120,121,113, 10, 0, 0, 0, 0, 96,109,113, 10,160,108,113, 10,224,108,113, 10,160,109,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0, 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 0, 0, 56, 41,114, 10, 56, 41,114, 10, 40,119,113, 10, 80,120,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 40,119,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 80,120,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4,
- 26, 0, 0, 0, 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, 4, 0, 0,
-188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 80,120,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40,119,113, 10, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 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, 0, 0, 0, 0,214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0,120,121,113, 10,197, 0, 0, 0, 1, 0, 0, 0, 72,155,113, 10,152,118,113, 10, 32,110,113, 10,
- 96,111,113, 10,160,111,113, 10, 32,109,113, 10, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0,
- 4, 4, 10, 1, 12, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,141,113, 10, 32,154,113, 10, 8,122,113, 10,
- 48,123,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 8,122,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 48,123,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,133, 67, 0, 0, 0, 0, 0, 0,248, 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, 9, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0,
- 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0, 10, 1, 31, 0, 10, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0,237, 1, 0, 0, 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 1, 31, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 48,123,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8,122,113, 10, 0, 0, 0, 0,
- 0,128,132, 67, 0, 64, 80,196, 0, 0, 0, 0, 0, 0, 0, 0,255,255,120, 67,255,127,246,195, 0, 0, 0, 0,249, 0, 0, 0,
- 10, 1, 0, 0, 0, 0, 0, 0,236, 1, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-248, 0, 0, 0, 0, 0, 0, 0,236, 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, 10, 1,237, 1,249, 0,237, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,236, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1,237, 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, 88,124,113, 10, 40,140,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 88,124,113, 10,196, 0, 0, 0, 1, 0, 0, 0,
-200,125,113, 10, 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,248, 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, 0,
- 68, 65, 84, 65, 64, 1, 0, 0,200,125,113, 10,196, 0, 0, 0, 1, 0, 0, 0, 56,127,113, 10, 88,124,113, 10, 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,248, 0, 61, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 56,127,113, 10,
-196, 0, 0, 0, 1, 0, 0, 0,168,128,113, 10,200,125,113, 10, 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,248, 0, 0, 0,
- 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,168,128,113, 10,196, 0, 0, 0, 1, 0, 0, 0, 24,130,113, 10,
- 56,127,113, 10, 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,248, 0,203, 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, 68, 65, 84, 65,
- 64, 1, 0, 0, 24,130,113, 10,196, 0, 0, 0, 1, 0, 0, 0,136,131,113, 10,168,128,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 58,254,248, 0, 58, 0, 20, 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, 68, 65, 84, 65, 64, 1, 0, 0,136,131,113, 10,196, 0, 0, 0,
- 1, 0, 0, 0,248,132,113, 10, 24,130,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,253,248, 0,102, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,248,132,113, 10,196, 0, 0, 0, 1, 0, 0, 0,104,134,113, 10,136,131,113, 10,
- 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, 35,253,248, 0,105, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-104,134,113, 10,196, 0, 0, 0, 1, 0, 0, 0,216,135,113, 10,248,132,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 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,253,
-248, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216,135,113, 10,196, 0, 0, 0, 1, 0, 0, 0,
- 72,137,113, 10,104,134,113, 10, 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,243,252,248, 0, 0, 0, 0, 0, 0, 0, 4, 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,
- 68, 65, 84, 65, 64, 1, 0, 0, 72,137,113, 10,196, 0, 0, 0, 1, 0, 0, 0,184,138,113, 10,216,135,113, 10, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,238,251,248, 0,237, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,184,138,113, 10,
-196, 0, 0, 0, 1, 0, 0, 0, 40,140,113, 10, 72,137,113, 10, 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, 70,117,108,108, 32, 83, 97,109,
-112,108,101, 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, 34,254,248, 0, 0, 0,
- 20, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 40,140,113, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-184,138,113, 10, 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,195,252,248, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-224, 0, 0, 0,152,141,113, 10,164, 0, 0, 0, 1, 0, 0, 0, 72,147,113, 10, 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,
- 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,168,142,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0,208,143,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0,
- 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 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,227, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,128,241, 67,
- 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-228, 1, 27, 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, 68, 65, 84, 65,
-248, 0, 0, 0,208,143,113, 10,198, 0, 0, 0, 1, 0, 0, 0,248,144,113, 10,168,142,113, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,248,144,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 32,146,113, 10,
-208,143,113, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196,
- 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 59, 70,
- 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 32,146,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248,144,113, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,123, 1, 0, 0,
- 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 18, 0, 0, 0,123, 1, 0, 0,
- 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 8, 0,228, 1,124, 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,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,228, 1,124, 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,224, 0, 0, 0, 72,147,113, 10,165, 0, 0, 0, 1, 0, 0, 0, 32,154,113, 10,152,141,113, 10,168,142,113, 10,
- 32,146,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 88,148,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0,128,149,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,138, 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, 19, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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,128,149,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88,148,113, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0, 26, 0, 0, 0, 80, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 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,168,150,113, 10, 68, 65, 84, 65, 72, 3, 0, 0,168,150,113, 10,158, 0, 0, 0, 1, 0, 0, 0,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 63,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 65,
-237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,129,255, 71, 66,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,128, 63,
-103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 32,154,113, 10,159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 72,147,113, 10, 88,148,113, 10,128,149,113, 10, 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,152,236,114, 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, 1, 0, 0, 0,
- 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 72,155,113, 10,
-197, 0, 0, 0, 1, 0, 0, 0,120,187,113, 10,120,121,113, 10,224,110,113, 10, 32,111,113, 10,160,110,113, 10, 32,110,113, 10,
- 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 18, 18,251, 1, 28, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,158,113, 10,152,186,113, 10,216,155,113, 10, 0,157,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,155,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0,157,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,253, 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,250, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 1, 26, 0,251, 1,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 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,251, 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, 0, 0, 0, 0, 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, 0,157,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216,155,113, 10, 0, 0, 0, 0, 0, 0,253, 67, 0, 0, 0, 0, 0, 0, 48, 65,
- 0, 0, 0, 0, 0, 0,245, 67, 0, 0, 0, 0, 0, 0,129, 67,234, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3,
- 2, 0, 0, 4, 10, 0,251, 1, 2, 1,234, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 26, 0, 0, 0, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,251, 1, 2, 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,112, 1, 0, 0, 40,158,113, 10,179, 0, 0, 0, 1, 0, 0, 0, 24,162,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 18, 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,
- 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,200,159,113, 10,198, 0, 0, 0, 1, 0, 0, 0,240,160,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 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,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 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,240, 5, 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, 68, 65, 84, 65,248, 0, 0, 0,240,160,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,200,159,113, 10, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67, 0, 6,188, 63,
-254,176,189, 68, 0, 0, 0, 0, 0,128,192, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4,
- 10, 0,240, 5,130, 1,240, 5,130, 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,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5,130, 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,
-124, 2, 0, 0, 24,162,113, 10,171, 0, 0, 0, 1, 0, 0, 0, 16,167,113, 10, 40,158,113, 10,200,159,113, 10,240,160,113, 10,
- 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, 12, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,192,164,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-232,165,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 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,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65,
- 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5,
- 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-239, 5, 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,240, 5, 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, 68, 65, 84, 65,248, 0, 0, 0,
-232,165,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192,164,113, 10, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193,
- 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0,
-129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0,
-129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0,
- 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5,112, 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,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 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,244, 0, 0, 0, 16,167,113, 10,175, 0, 0, 0, 1, 0, 0, 0,208,172,113, 10, 24,162,113, 10,
-192,164,113, 10,232,165,113, 10, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 58, 52, 81, 63, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48,168,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 88,169,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68,
- 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65,
- 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5,
- 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 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, 68, 65, 84, 65,248, 0, 0, 0,
- 88,169,113, 10,198, 0, 0, 0, 1, 0, 0, 0,128,170,113, 10, 48,168,113, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,128,170,113, 10,198, 0, 0, 0, 1, 0, 0, 0,168,171,113, 10, 88,169,113, 10,
- 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 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, 59, 70, 0,128, 59, 70,
-172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0,168,171,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,128,170,113, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0,
- 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,
-239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65,
- 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 8, 0,240, 5,163, 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,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5,163, 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, 68, 65, 84, 65,
-224, 0, 0, 0,208,172,113, 10,165, 0, 0, 0, 1, 0, 0, 0, 32,183,113, 10, 16,167,113, 10, 48,168,113, 10,168,171,113, 10,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,224,173,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 8,175,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0,157, 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,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68,
- 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 4, 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, 68, 65, 84, 65,
-248, 0, 0, 0, 8,175,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 48,176,113, 10,224,173,113, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 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, 68, 65, 84, 65,248, 0, 0, 0, 48,176,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 88,177,113, 10,
- 8,175,113, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,
-251, 1, 0, 0,251, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 88,177,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0,128,178,113, 10, 48,176,113, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 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, 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,
- 68, 65, 84, 65,248, 0, 0, 0,128,178,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88,177,113, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 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,168,179,113, 10, 68, 65, 84, 65, 72, 3, 0, 0,168,179,113, 10,158, 0, 0, 0, 1, 0, 0, 0,
- 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128,
- 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,
-180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,
-147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,
-217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,
-215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,151,254, 71, 66,
- 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,
-180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,
-147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-218,210,190, 58, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 32,183,113, 10,159, 0, 0, 0, 1, 0, 0, 0,152,186,113, 10,
-208,172,113, 10,224,173,113, 10,128,178,113, 10, 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,152,236,114, 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, 1, 0, 0, 0,
- 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 72,184,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0,112,185,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152, 4, 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,
- 68, 65, 84, 65,248, 0, 0, 0,112,185,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72,184,113, 10, 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,152,186,113, 10,174, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 32,183,113, 10, 72,184,113, 10,112,185,113, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,120,187,113, 10,
-197, 0, 0, 0, 1, 0, 0, 0,184,215,113, 10, 72,155,113, 10, 32,111,113, 10,224,111,113, 10,224,109,113, 10,160,110,113, 10,
- 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 29, 1, 0, 0,186, 2, 0, 0, 1, 1,251, 1,158, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 72,197,113, 10,216,214,113, 10, 8,188,113, 10,168,192,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 8,188,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 48,189,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,253, 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,250, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 1, 26, 0,251, 1,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0,
- 29, 1, 0, 0, 54, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 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, 0, 0, 0, 0, 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, 48,189,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 88,190,113, 10, 8,188,113, 10, 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,
- 0, 0, 0, 0,249, 1, 0, 0,249, 1, 0, 0, 55, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0,132, 1, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 88,190,113, 10,198, 0, 0, 0, 1, 0, 0, 0,128,191,113, 10, 48,189,113, 10, 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, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 55, 1, 0, 0, 55, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,128,191,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-168,192,113, 10, 88,190,113, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
- 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,
-122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 3, 0, 0,
-243, 3, 0, 0, 55, 1, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-168,192,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128,191,113, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 55, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,251, 1,132, 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,
-208,193,113, 10, 68, 65, 84, 65, 72, 3, 0, 0,208,193,113, 10,158, 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, 42,240,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,225,215,163,188, 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,242,252, 18,191,
-222,160, 81,191,184,158, 81,191,117, 90,127, 63, 8,179,141, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,225,188,163, 63,
-129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,
- 0,247, 70,188, 0,192, 32,182, 15,232,143,190,210,186, 10, 62, 44, 83, 32, 63, 0,192, 24, 54,215,104, 25,196,133,132,135, 67,
- 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,158, 87,135,195,205,209,166, 67,151,254, 71, 66, 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,242,252, 18,191,
-222,160, 81,191,184,158, 81,191,117, 90,127, 63, 8,179,141, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,225,188,163, 63,
-129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,138, 93,108, 59, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0, 72,197,113, 10,159, 0, 0, 0, 1, 0, 0, 0,192,200,113, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0,
- 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,112,198,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-152,199,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,253, 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,250, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65,
- 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 1,
- 26, 0,251, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,
-243, 3, 0, 0, 29, 1, 0, 0, 54, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 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, 0, 0, 0, 0,
- 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,
-152,199,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112,198,113, 10, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0,
- 0,192, 22, 68,125, 79, 21, 68,131,112,102, 68,133, 83, 49, 67, 62,214,212, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 1, 0, 0, 0, 0, 0, 0,
-131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0,
- 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,251, 1,132, 1,251, 1,132, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 55, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,251, 1,132, 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,124, 2, 0, 0,192,200,113, 10,171, 0, 0, 0, 1, 0, 0, 0,184,205,113, 10, 72,197,113, 10,
-112,198,113, 10,152,199,113, 10, 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, 12, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104,203,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0,144,204,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,190, 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,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 5, 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,
- 68, 65, 84, 65,248, 0, 0, 0,144,204,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104,203,113, 10, 0, 0, 32,193,
- 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,132,137,182,195,194, 68, 91, 68,112,158, 93, 65, 8, 19,249, 67,223, 5, 0, 0,
-240, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-222, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62,
- 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5, 92, 2,223, 5, 74, 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,239, 5, 0, 0,183, 1, 0, 0, 18, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 92, 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,244, 0, 0, 0,184,205,113, 10,175, 0, 0, 0, 1, 0, 0, 0,
-120,211,113, 10,192,200,113, 10,104,203,113, 10,144,204,113, 10, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 57, 52, 81, 63, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,206,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0,208,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65,
- 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
- 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 5, 27, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 0,208,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 40,209,113, 10,216,206,113, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 40,209,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 80,210,113, 10, 0,208,113, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68,
- 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0,
- 80,210,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40,209,113, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0,
- 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,
-162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,
-162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 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,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 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, 68, 65, 84, 65,224, 0, 0, 0,120,211,113, 10,165, 0, 0, 0, 1, 0, 0, 0,216,214,113, 10,184,205,113, 10,
-216,206,113, 10, 80,210,113, 10, 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, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-136,212,113, 10,198, 0, 0, 0, 1, 0, 0, 0,176,213,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,176,213,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136,212,113, 10,
- 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,
-248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,216,214,113, 10,174, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,120,211,113, 10,136,212,113, 10,176,213,113, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
-184,215,113, 10,197, 0, 0, 0, 1, 0, 0, 0,232,247,113, 10,120,187,113, 10, 96,108,113, 10, 96,110,113, 10, 32,111,113, 10,
-224,110,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 18, 18,248, 1, 28, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,218,113, 10, 8,247,113, 10, 72,216,113, 10,112,217,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 72,216,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-112,217,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,231, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,252, 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,247, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65,
- 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,248, 1,
- 26, 0,248, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-247, 1, 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,248, 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, 0, 0, 0, 0,
- 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,
-112,217,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72,216,113, 10, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0,
- 0, 0, 65, 67, 0, 0, 0, 0, 0,128,243, 67, 0, 0, 0, 0, 0, 0,129, 67,231, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 0,
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0,
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0,
- 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,248, 1, 2, 1,231, 1, 2, 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,247, 1, 0, 0, 26, 0, 0, 0, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,248, 1, 2, 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,112, 1, 0, 0,152,218,113, 10,179, 0, 0, 0, 1, 0, 0, 0,136,222,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 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, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 62, 62, 62, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-112,121,116,104,111,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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 56,220,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 96,221,113, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 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,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 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,240, 5, 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, 68, 65, 84, 65,248, 0, 0, 0, 96,221,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56,220,113, 10, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,128,192, 67,
- 0, 6,188, 63,254,176,189, 68, 0, 0, 0, 0, 0,128,192, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,129, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0,
- 0, 0, 0, 4, 10, 0,240, 5,130, 1,240, 5,130, 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,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 5,130, 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,124, 2, 0, 0,136,222,113, 10,171, 0, 0, 0, 1, 0, 0, 0,128,227,113, 10,152,218,113, 10, 56,220,113, 10,
- 96,221,113, 10, 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, 12, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 48,225,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 88,226,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0,190, 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,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68,
- 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,239, 5, 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,
-240, 5, 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, 68, 65, 84, 65,
-248, 0, 0, 0, 88,226,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,225,113, 10, 0, 0, 32,193, 0, 0, 0, 68,
- 0, 0, 32,193, 0, 0, 0, 68,134,137,182,195,195, 68, 91, 68, 30,222,207, 66,116, 8,204, 67,223, 5, 0, 0,240, 5, 0, 0,
- 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0,
- 18, 0, 0, 0,129, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,205,204, 76, 62, 72,225,154, 63,
- 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5,130, 1,223, 5,112, 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,239, 5, 0, 0, 26, 0, 0, 0,155, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,130, 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,244, 0, 0, 0,128,227,113, 10,175, 0, 0, 0, 1, 0, 0, 0, 64,233,113, 10,
-136,222,113, 10, 48,225,113, 10, 88,226,113, 10, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 58, 52, 81, 63, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160,228,113, 10,198, 0, 0, 0,
- 1, 0, 0, 0,200,229,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,216, 65, 0, 0, 0, 0,
- 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,224,189, 68,
- 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 5, 27, 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, 68, 65, 84, 65,
-248, 0, 0, 0,200,229,113, 10,198, 0, 0, 0, 1, 0, 0, 0,240,230,113, 10,160,228,113, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,240,230,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 24,232,113, 10,
-200,229,113, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196,
- 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 59, 70,
- 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 24,232,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240,230,113, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,162, 3, 0, 0,
- 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 18, 0, 0, 0,162, 3, 0, 0,
- 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 8, 0,240, 5,163, 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,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 5,163, 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,
- 68, 65, 84, 65,224, 0, 0, 0, 64,233,113, 10,165, 0, 0, 0, 1, 0, 0, 0,144,243,113, 10,128,227,113, 10,160,228,113, 10,
- 24,232,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 80,234,113, 10,
-198, 0, 0, 0, 1, 0, 0, 0,120,235,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,157, 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,231, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,232, 4, 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,
- 68, 65, 84, 65,248, 0, 0, 0,120,235,113, 10,198, 0, 0, 0, 1, 0, 0, 0,160,236,113, 10, 80,234,113, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,251, 1, 0, 0, 18, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 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, 68, 65, 84, 65,248, 0, 0, 0,160,236,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-200,237,113, 10,120,235,113, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,
-128, 7, 0, 0,251, 1, 0, 0,251, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,
-200,237,113, 10,198, 0, 0, 0, 1, 0, 0, 0,240,238,113, 10,160,236,113, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,
-121, 2, 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,
-121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,240,238,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,200,237,113, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,
- 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 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, 24,240,113, 10, 68, 65, 84, 65, 72, 3, 0, 0, 24,240,113, 10,158, 0, 0, 0,
- 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 7, 36, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188,
- 0, 0, 0,128, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62,
- 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,
-214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,250,186,154, 61,170,205,178, 62,
- 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,160, 87,135,195,205,209,166, 67,
-151,254, 71, 66, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63, 95, 27,254, 62, 9, 46,185, 62,
- 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,
-214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,218,210,190, 58, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,144,243,113, 10,159, 0, 0, 0, 1, 0, 0, 0,
- 8,247,113, 10, 64,233,113, 10, 80,234,113, 10,240,238,113, 10, 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,152,236,114, 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,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-184,244,113, 10,198, 0, 0, 0, 1, 0, 0, 0,224,245,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,224,245,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,184,244,113, 10,
- 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,
-248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0, 8,247,113, 10,174, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,144,243,113, 10,184,244,113, 10,224,245,113, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
-232,247,113, 10,197, 0, 0, 0, 1, 0, 0, 0,248, 12,114, 10,184,215,113, 10, 96,111,113, 10,224,109,113, 10,160,109,113, 10,
-160,111,113, 10, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 13, 2, 0, 0,186, 2, 0, 0, 3, 3, 10, 1,174, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,250,113, 10,208, 11,114, 10,120,248,113, 10,160,249,113, 10, 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,248,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
-160,249,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,133, 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, 9, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,149, 67, 0, 0,200, 65,
- 0,128,149, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 10, 1,
- 26, 0, 10, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,
-254, 4, 0, 0, 13, 2, 0, 0, 38, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 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, 0, 0, 0, 0,
- 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,
-160,249,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,120,248,113, 10, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,121, 67, 0, 0, 2,195, 0, 0, 0, 0,249, 0, 0, 0, 10, 1, 0, 0, 18, 0, 0, 0,
-147, 0, 0, 0, 0, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,
-147, 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, 18, 2, 0, 0,
- 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 10, 1,148, 0,249, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 39, 2, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 10, 1,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 1, 0, 0,200,250,113, 10,168, 0, 0, 0, 1, 0, 0, 0, 72,255,113, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,251,113, 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, 1, 0, 0, 0, 68, 65, 84, 65,
- 12, 0, 0, 0,248,251,113, 10,221, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 48,252,113, 10, 68, 65, 84, 65,
-156, 0, 0, 0, 48,252,113, 10,220, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,240,212,114, 10, 19, 0, 0, 0,
- 1, 0, 1, 0,240,212,114, 10, 20, 0, 0, 0, 1, 0, 1, 0,240,212,114, 10, 21, 0, 1, 0, 1, 0, 1, 0,240,212,114, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,208,229,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,160,240,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,
- 16, 31,115, 10, 0, 0, 0, 0, 1, 0, 1, 0,176,248,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 56, 13,115, 10, 0, 0, 0, 0,
- 1, 0, 1, 0,168,244,114, 10, 0, 0, 0, 0, 1, 0, 1, 0, 72,226,114, 10, 0, 0, 0, 0, 1, 0, 1, 0,152,236,114, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,160,225,114, 10, 68, 65, 84, 65,248, 0, 0, 0,248,252,113, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 32,254,113, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,150, 67,
- 0, 0, 0, 0, 0, 0,248, 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, 43, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65,
- 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 44, 1,
- 31, 0, 44, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,
-160, 5, 0, 0,218, 2, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1, 31, 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, 68, 65, 84, 65,248, 0, 0, 0,
- 32,254,113, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248,252,113, 10, 0, 0, 0, 0, 0,128,141, 67, 0, 0, 62,196,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,246,194, 0, 0, 0, 0, 27, 1, 0, 0, 44, 1, 0, 0, 18, 0, 0, 0,
-140, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 18, 0, 0, 0,
-140, 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, 44, 1,141, 0, 27, 1,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,117, 4, 0, 0,160, 5, 0, 0, 77, 2, 0, 0,217, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 44, 1,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,224, 0, 0, 0, 72,255,113, 10,164, 0, 0, 0, 1, 0, 0, 0,248, 4,114, 10,200,250,113, 10,
-248,252,113, 10, 32,254,113, 10, 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, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
- 88, 0,114, 10,198, 0, 0, 0, 1, 0, 0, 0,128, 1,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0,
- 0, 0,216, 65, 0, 0, 0, 0, 0, 0,242, 67, 0, 0, 0, 0, 0, 0,216, 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,227, 1, 0, 0, 0, 0, 0, 0,
- 26, 0, 0, 0, 0,128,241, 67, 0, 0,208, 65, 0,128,241, 67, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,228, 1, 27, 0,228, 1, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,157, 5, 0, 0,128, 7, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,228, 1, 27, 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, 68, 65, 84, 65,248, 0, 0, 0,128, 1,114, 10,198, 0, 0, 0, 1, 0, 0, 0,168, 2,114, 10, 88, 0,114, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 0, 0,128, 7, 0, 0,112, 0, 0, 0,
-235, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,168, 2,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0,208, 3,114, 10,128, 1,114, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196,
- 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,
-248, 0, 0, 0,208, 3,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,168, 2,114, 10, 0, 0, 0, 0, 0, 0,122, 67,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0,
- 18, 0, 0, 0,123, 1, 0, 0, 18, 0, 0, 0,227, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,227, 1, 0, 0,
- 18, 0, 0, 0,123, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,
-105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,228, 1,124, 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,157, 5, 0, 0,128, 7, 0, 0,112, 0, 0, 0,235, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 1,124, 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,224, 0, 0, 0,248, 4,114, 10,165, 0, 0, 0, 1, 0, 0, 0,208, 11,114, 10,
- 72,255,113, 10, 88, 0,114, 10,208, 3,114, 10, 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, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0, 8, 6,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 48, 7,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,138, 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, 19, 1, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 1, 26, 0, 20, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 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, 20, 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, 0, 0, 0, 0, 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, 48, 7,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 8, 6,114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 6, 0, 0,108, 7, 0, 0,
- 26, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 55, 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, 88, 8,114, 10, 68, 65, 84, 65, 72, 3, 0, 0, 88, 8,114, 10,
-158, 0, 0, 0, 1, 0, 0, 0,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,
-226,215,163,188, 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32,193, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 65, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
-184,175, 31, 65, 0, 0, 32, 65,237,122,111, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,161, 14,106, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0,
- 98,127,249, 67,129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32,193, 0, 0,128, 63,103,212,136, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
-184,175, 31, 65, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,100, 32,222, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,208, 11,114, 10,159, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,248, 4,114, 10, 8, 6,114, 10, 48, 7,114, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 96, 0, 0, 0,248, 12,114, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,232,247,113, 10, 96,110,113, 10, 96,109,113, 10,
-224,111,113, 10, 32,111,113, 10, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 29, 1, 0, 0,186, 2, 0, 0, 9, 9,248, 1,
-158, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 15,114, 10, 88, 40,114, 10,136, 13,114, 10,176, 14,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,136, 13,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0,176, 14,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 73, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0,252, 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,247, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68,
- 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,248, 1, 26, 0,248, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,247, 1, 0, 0, 29, 1, 0, 0, 54, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248, 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,
- 0, 0, 0, 0, 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,176, 14,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136, 13,114, 10, 0, 0, 0, 0, 0,224,189, 68,
- 0, 0, 0, 0, 0,192, 22, 68,236,140, 21, 68, 20, 51,102, 68,120, 83, 49, 67, 68,214,212, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 0, 0,
- 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68,
- 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 1,132, 1,248, 1,132, 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,247, 1, 0, 0, 55, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 1,132, 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,124, 2, 0, 0,216, 15,114, 10,171, 0, 0, 0, 1, 0, 0, 0,208, 20,114, 10,
- 0, 0, 0, 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,120,231,114, 10, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0,
-231, 1, 0, 0,243, 1, 0, 0, 4, 0, 0, 0,124, 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, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-128, 18,114, 10,198, 0, 0, 0, 1, 0, 0, 0,168, 19,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 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,239, 5, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,157, 1, 0, 0,182, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 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, 68, 65, 84, 65,248, 0, 0, 0,168, 19,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 18,114, 10,
- 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,132,137,182,195,194, 68, 91, 68,112,158, 93, 65, 8, 19,249, 67,
-223, 5, 0, 0,240, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,222, 5, 0, 0, 18, 0, 0, 0, 91, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,
-205,204, 76, 62, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,240, 5, 92, 2,223, 5, 74, 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,239, 5, 0, 0,183, 1, 0, 0,
- 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 92, 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,244, 0, 0, 0,208, 20,114, 10,175, 0, 0, 0,
- 1, 0, 0, 0,144, 26,114, 10,216, 15,114, 10,128, 18,114, 10,168, 19,114, 10, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240,212,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 57, 52, 81, 63, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-240, 21,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 24, 23,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0,
- 0, 0,216, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,216, 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,239, 5, 0, 0, 0, 0, 0, 0,
- 26, 0, 0, 0, 0,224,189, 68, 0, 0,208, 65, 0,224,189, 68, 0, 0,208, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,240, 5, 27, 0,240, 5, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 85, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 27, 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, 68, 65, 84, 65,248, 0, 0, 0, 24, 23,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 64, 24,114, 10,240, 21,114, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,112, 0, 0, 0,
- 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 64, 24,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0,104, 25,114, 10, 24, 23,114, 10, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196,
- 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 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, 68, 65, 84, 65,
-248, 0, 0, 0,104, 25,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 24,114, 10, 0, 0, 0, 0, 0, 0,122, 67,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0,
- 18, 0, 0, 0,162, 3, 0, 0, 18, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,239, 5, 0, 0,
- 18, 0, 0, 0,162, 3, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,
-105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0,240, 5,163, 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,239, 5, 0, 0,112, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,163, 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, 68, 65, 84, 65,224, 0, 0, 0,144, 26,114, 10,165, 0, 0, 0, 1, 0, 0, 0,224, 36,114, 10,
-208, 20,114, 10,240, 21,114, 10,104, 25,114, 10, 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, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0,160, 27,114, 10,198, 0, 0, 0, 1, 0, 0, 0,200, 28,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 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,231, 4, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,200, 28,114, 10,198, 0, 0, 0, 1, 0, 0, 0,240, 29,114, 10,
-160, 27,114, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,
-251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 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, 68, 65, 84, 65,248, 0, 0, 0,240, 29,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 24, 31,114, 10,200, 28,114, 10, 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,
- 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 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, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 24, 31,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 64, 32,114, 10,240, 29,114, 10, 0, 0, 0, 0,
- 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,
-180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 64, 32,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 24, 31,114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,
-128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 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,104, 33,114, 10, 68, 65, 84, 65, 72, 3, 0, 0,
-104, 33,114, 10,158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128,
- 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63,
- 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,
-250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,
-160, 87,135,195,205,209,166, 67,151,254, 71, 66, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63,
- 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,218,210,190, 58, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,224, 36,114, 10,
-159, 0, 0, 0, 1, 0, 0, 0, 88, 40,114, 10,144, 26,114, 10,160, 27,114, 10, 64, 32,114, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0,
- 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0, 8, 38,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 48, 39,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,
-151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 48, 39,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 8, 38,114, 10, 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,151, 4, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,
-122, 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,
-151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,
- 88, 40,114, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,224, 36,114, 10, 8, 38,114, 10, 48, 39,114, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0,
- 83, 78, 0, 0,140, 0, 0, 0,152, 41,114, 10,193, 0, 0, 0, 1, 0, 0, 0,160,109,114, 10,168,107,113, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 42,114, 10, 16, 44,114, 10, 80, 44,114, 10, 32, 47,114, 10,104, 47,114, 10, 40, 82,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 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,
- 68, 65, 84, 65, 20, 0, 0, 0, 80, 42,114, 10,194, 0, 0, 0, 1, 0, 0, 0,144, 42,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,144, 42,114, 10,194, 0, 0, 0, 1, 0, 0, 0,208, 42,114, 10,
- 80, 42,114, 10, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,208, 42,114, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 16, 43,114, 10,144, 42,114, 10, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 16, 43,114, 10,194, 0, 0, 0, 1, 0, 0, 0, 80, 43,114, 10,208, 42,114, 10, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 80, 43,114, 10,194, 0, 0, 0, 1, 0, 0, 0,144, 43,114, 10, 16, 43,114, 10, 0, 0, 0, 0,
- 0, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,144, 43,114, 10,194, 0, 0, 0, 1, 0, 0, 0,208, 43,114, 10,
- 80, 43,114, 10, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,208, 43,114, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 16, 44,114, 10,144, 43,114, 10, 0, 0, 0, 0,132, 2,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 16, 44,114, 10,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208, 43,114, 10, 0, 0, 0, 0,132, 2, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 80, 44,114, 10,195, 0, 0, 0, 1, 0, 0, 0,152, 44,114, 10, 0, 0, 0, 0,144, 42,114, 10,
-208, 42,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152, 44,114, 10,195, 0, 0, 0, 1, 0, 0, 0,
-224, 44,114, 10, 80, 44,114, 10,144, 42,114, 10, 80, 43,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-224, 44,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 40, 45,114, 10,152, 44,114, 10,208, 42,114, 10,144, 43,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40, 45,114, 10,195, 0, 0, 0, 1, 0, 0, 0,112, 45,114, 10,224, 44,114, 10,
- 80, 43,114, 10,144, 43,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112, 45,114, 10,195, 0, 0, 0,
- 1, 0, 0, 0,184, 45,114, 10, 40, 45,114, 10, 80, 43,114, 10,208, 43,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,184, 45,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 0, 46,114, 10,112, 45,114, 10, 80, 42,114, 10, 16, 44,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 0, 46,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 72, 46,114, 10,
-184, 45,114, 10, 80, 42,114, 10, 80, 43,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72, 46,114, 10,
-195, 0, 0, 0, 1, 0, 0, 0,144, 46,114, 10, 0, 46,114, 10,208, 43,114, 10, 16, 44,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,144, 46,114, 10,195, 0, 0, 0, 1, 0, 0, 0,216, 46,114, 10, 72, 46,114, 10,144, 43,114, 10,
-208, 43,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216, 46,114, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 32, 47,114, 10,144, 46,114, 10, 16, 43,114, 10, 16, 44,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 32, 47,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216, 46,114, 10, 16, 43,114, 10,144, 43,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,104, 47,114, 10,197, 0, 0, 0, 1, 0, 0, 0, 72, 50,114, 10, 0, 0, 0, 0,
- 80, 43,114, 10,144, 42,114, 10,208, 42,114, 10,144, 43,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,
-214, 2, 0, 0, 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 64,109,114, 10, 64,109,114, 10,
-248, 47,114, 10, 32, 49,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-248, 47,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 32, 49,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 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, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 32, 49,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248, 47,114, 10,
- 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 0, 0, 0, 0,214, 2, 0, 0,
-214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0, 72, 50,114, 10,197, 0, 0, 0,
- 1, 0, 0, 0, 40, 82,114, 10,104, 47,114, 10, 80, 42,114, 10, 80, 43,114, 10,208, 43,114, 10, 16, 44,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0,131, 2, 0, 0, 0, 0, 0, 0,186, 2, 0, 0, 6, 6,132, 2,187, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,192, 55,114, 10, 72, 81,114, 10,216, 50,114, 10,152, 54,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216, 50,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 52,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 33, 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,131, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 2, 26, 0,132, 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, 0, 0, 0, 0,131, 2, 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,132, 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, 0, 0, 0, 0, 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, 0, 52,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0,152, 54,114, 10,216, 50,114, 10, 0, 0, 0, 0, 0, 0, 91, 67, 0, 0, 40,196, 0, 0, 0, 0, 0, 0, 0, 0,
-254,255, 74, 67,254, 63, 40,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,160, 2, 0, 0, 0, 0, 0, 0,
-202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,160, 2, 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,220, 0,161, 2,203, 0,161, 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,219, 0, 0, 0, 26, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-220, 0,161, 2, 0, 0, 4, 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, 40, 53,114, 10, 40, 53,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0, 40, 53,114, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,196,255,202, 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, 0, 68, 65, 84, 65,248, 0, 0, 0,152, 54,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 52,114, 10, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,102,102, 38,190,
-205,204,148, 63, 51, 51, 13,191,154,153,198, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0,161, 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,
-220, 0, 0, 0,131, 2, 0, 0, 26, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 1,161, 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,
-160, 12, 0, 0,192, 55,114, 10,169, 0, 0, 0, 1, 0, 0, 0,208, 77,114, 10, 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,
-100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,144, 68,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0,184, 69,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0, 42, 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,167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68,
- 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,168, 2, 26, 0,168, 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,
- 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 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,
- 0, 0, 0, 0, 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,184, 69,114, 10,198, 0, 0, 0, 1, 0, 0, 0,224, 70,114, 10,144, 68,114, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3, 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, 68, 65, 84, 65,248, 0, 0, 0,224, 70,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 8, 72,114, 10,
-184, 69,114, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,
-111, 0, 0, 0,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 8, 72,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 48, 73,114, 10,224, 70,114, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 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, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 48, 73,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 72,114, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 2,164, 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, 74,114, 10, 68, 65, 84, 65, 72, 3, 0, 0, 88, 74,114, 10,158, 0, 0, 0, 1, 0, 0, 0,
-226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128,
- 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,
-192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,
-232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,
-250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,
-215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66,
- 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,
-192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,
-232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
-172,148, 0, 59, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,208, 77,114, 10,159, 0, 0, 0, 1, 0, 0, 0, 72, 81,114, 10,
-192, 55,114, 10,144, 68,114, 10, 48, 73,114, 10, 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,152,236,114, 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, 1, 0, 0, 0,
- 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,248, 78,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 32, 80,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152, 4, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 32, 80,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248, 78,114, 10, 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0, 72, 81,114, 10,174, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,208, 77,114, 10,248, 78,114, 10, 32, 80,114, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 40, 82,114, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72, 50,114, 10, 16, 44,114, 10,208, 43,114, 10,144, 43,114, 10, 16, 43,114, 10,
- 0, 0, 0, 0,133, 2, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,186, 2, 0, 0, 1, 1,122, 2,187, 2, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232,104,114, 10, 96,108,114, 10,184, 82,114, 10, 72,100,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,184, 82,114, 10,198, 0, 0, 0, 1, 0, 0, 0,224, 83,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 30, 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,121, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,122, 2, 26, 0,122, 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,133, 2, 0, 0,254, 4, 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,122, 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, 0, 0, 0, 0, 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,224, 83,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0,232, 87,114, 10,184, 82,114, 10, 0, 0, 0, 0, 0, 0, 32, 67, 0, 64, 10,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 10,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 40, 2, 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, 0, 0, 0, 0, 40, 2, 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,160, 0, 41, 2,143, 0, 41, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,133, 2, 0, 0, 36, 3, 0, 0,146, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,160, 0, 41, 2, 0, 0, 5, 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, 8, 85,114, 10,120, 86,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 1, 0, 0, 8, 85,114, 10,196, 0, 0, 0, 1, 0, 0, 0,120, 86,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108, 95,115,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 84,111,111,108, 32, 83,104,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,196,255,143, 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, 0, 68, 65, 84, 65, 64, 1, 0, 0,120, 86,114, 10,
-196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 85,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,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, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,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, 79, 98,106,101, 99,116, 32, 84,
-111,111,108,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, 7,254,143, 0,165, 1,
- 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, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,232, 87,114, 10,198, 0, 0, 0, 1, 0, 0, 0,128, 90,114, 10,
-224, 83,114, 10, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194,
- 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 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, 0, 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, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,
-120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,133, 2, 0, 0, 36, 3, 0, 0,
- 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0,
- 34, 0, 0, 0, 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, 89,114, 10,
- 16, 89,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 16, 89,114, 10,
-196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,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, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,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, 79,112,101,114, 97,116,111,114,
- 0, 97,121,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,216,255,144, 0, 16, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 90,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 72,100,114, 10,
-232, 87,114, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196,
- 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 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, 12, 4, 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, 13, 4,163, 0,
-251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,254, 4, 0, 0,
- 26, 0, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 91,114, 10,
-216, 98,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,168, 91,114, 10,
-196, 0, 0, 0, 1, 0, 0, 0, 24, 93,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,111, 98,106,101, 99,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, 86, 73, 69, 87, 51, 68, 95, 80,
- 84, 95,111, 98,106,101, 99,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, 84,114, 97,110,115,102,111,114,
-109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,163, 0,110, 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, 68, 65, 84, 65, 64, 1, 0, 0, 24, 93,114, 10,196, 0, 0, 0, 1, 0, 0, 0,136, 94,114, 10,
-168, 91,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,254,163, 0, 58, 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, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,136, 94,114, 10,196, 0, 0, 0, 1, 0, 0, 0,248, 95,114, 10, 24, 93,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,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,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,118,105,101,119, 95,112,114,111,112,101,114,116,105,101,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,
- 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,213,252,163, 0, 59, 1, 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, 68, 65, 84, 65, 64, 1, 0, 0,248, 95,114, 10,196, 0, 0, 0,
- 1, 0, 0, 0,104, 97,114, 10,136, 94,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,
-118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 51,100,
-118,105,101,119, 95,100,105,115,112,108, 97,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,115,112,108, 97,121, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,189,252,163, 0, 0, 0, 0, 0, 0, 0,
- 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,104, 97,114, 10,196, 0, 0, 0, 1, 0, 0, 0,216, 98,114, 10,248, 95,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,
-103,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, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95, 98, 97, 99,107,103,114,111,117,110,100, 95,105,109, 97,
-103,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, 66, 97, 99,107,103,114,111,117,110,100, 32, 73,109, 97,103,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,165,252,163, 0, 0, 0, 20, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,
-216, 98,114, 10,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104, 97,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,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, 0, 0, 0, 0, 0, 86, 73, 69, 87,
- 51, 68, 95, 80, 84, 95,116,114, 97,110,115,102,111,114,109, 95,111,114,105,101,110,116, 97,116,105,111,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, 0, 0, 0, 0, 0, 84,114, 97,110,
-115,102,111,114,109, 32, 79,114,105,101,110,116, 97,116,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,141,252,
-163, 0, 0, 0, 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72,100,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,128, 90,114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 3, 0, 0,
-254, 4, 0, 0, 26, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 1,161, 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,112,101,114, 10, 68, 65, 84, 65, 72, 3, 0, 0,
-112,101,114, 10,158, 0, 0, 0, 1, 0, 0, 0,193,198,198, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,140, 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, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,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,188,173, 54, 64,
-136, 95,161,191,147,231,198, 63, 0, 0,128, 63, 12, 2, 35, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,130, 71,181, 63,
-140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, 49,192,168,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0,
- 0, 0, 0, 0,101, 98, 82, 64, 0, 25, 95, 64,101, 47,135, 62,134, 86, 22, 63, 32,243, 11,188, 0, 0,160,179,195, 15,188,190,
-132, 75, 53, 62,216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64,181,148,248,192,202,247,159,192,233, 74, 87, 65,
-247, 46,190,192, 88,106,234, 64, 44, 8,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, 0, 25, 95,192, 0, 0,128, 63, 12, 2, 35, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,130, 71,181, 63,
-140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62, 49,192,168,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0,
- 0, 0, 0, 0,101, 98, 82, 64, 0, 25, 95, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64,
- 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,116, 16, 50, 59, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,232,104,114, 10,
-159, 0, 0, 0, 1, 0, 0, 0, 96,108,114, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0,
- 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0, 16,106,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 56,107,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,
-151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 56,107,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 16,106,114, 10, 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,151, 4, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,
-122, 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,
-151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,
- 96,108,114, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,232,104,114, 10, 16,106,114, 10, 56,107,114, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0,
- 83, 78, 0, 0,140, 0, 0, 0,160,109,114, 10,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152, 41,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88,110,114, 10, 24,113,114, 10, 88,113,114, 10, 32,118,114, 10,104,118,114, 10,184,192,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 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,
- 68, 65, 84, 65, 20, 0, 0, 0, 88,110,114, 10,194, 0, 0, 0, 1, 0, 0, 0,152,110,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,110,114, 10,194, 0, 0, 0, 1, 0, 0, 0,216,110,114, 10,
- 88,110,114, 10, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,216,110,114, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 24,111,114, 10,152,110,114, 10, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 24,111,114, 10,194, 0, 0, 0, 1, 0, 0, 0, 88,111,114, 10,216,110,114, 10, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 88,111,114, 10,194, 0, 0, 0, 1, 0, 0, 0,152,111,114, 10, 24,111,114, 10, 0, 0, 0, 0,
- 0, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,111,114, 10,194, 0, 0, 0, 1, 0, 0, 0,216,111,114, 10,
- 88,111,114, 10, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,216,111,114, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 24,112,114, 10,152,111,114, 10, 0, 0, 0, 0,254, 4, 84, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 24,112,114, 10,194, 0, 0, 0, 1, 0, 0, 0, 88,112,114, 10,216,111,114, 10, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 88,112,114, 10,194, 0, 0, 0, 1, 0, 0, 0,152,112,114, 10, 24,112,114, 10, 0, 0, 0, 0,
- 52, 2,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,112,114, 10,194, 0, 0, 0, 1, 0, 0, 0,216,112,114, 10,
- 88,112,114, 10, 0, 0, 0, 0, 0, 0, 84, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,216,112,114, 10,194, 0, 0, 0,
- 1, 0, 0, 0, 24,113,114, 10,152,112,114, 10, 0, 0, 0, 0, 52, 2, 84, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
- 24,113,114, 10,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216,112,114, 10, 0, 0, 0, 0,254, 4, 64, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 88,113,114, 10,195, 0, 0, 0, 1, 0, 0, 0,160,113,114, 10, 0, 0, 0, 0,152,110,114, 10,
-216,110,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160,113,114, 10,195, 0, 0, 0, 1, 0, 0, 0,
-232,113,114, 10, 88,113,114, 10,152,110,114, 10, 88,111,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-232,113,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 48,114,114, 10,160,113,114, 10,216,110,114, 10,152,111,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 48,114,114, 10,195, 0, 0, 0, 1, 0, 0, 0,120,114,114, 10,232,113,114, 10,
- 88,111,114, 10,152,111,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,114,114, 10,195, 0, 0, 0,
- 1, 0, 0, 0,192,114,114, 10, 48,114,114, 10,152,111,114, 10,216,111,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,192,114,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 8,115,114, 10,120,114,114, 10, 88,110,114, 10, 24,112,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 8,115,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 80,115,114, 10,
-192,114,114, 10, 88,111,114, 10, 88,112,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,115,114, 10,
-195, 0, 0, 0, 1, 0, 0, 0,152,115,114, 10, 8,115,114, 10, 24,112,114, 10,152,112,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,152,115,114, 10,195, 0, 0, 0, 1, 0, 0, 0,224,115,114, 10, 80,115,114, 10,152,112,114, 10,
-216,112,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,115,114, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 40,116,114, 10,152,115,114, 10, 88,112,114, 10,216,112,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 40,116,114, 10,195, 0, 0, 0, 1, 0, 0, 0,112,116,114, 10,224,115,114, 10,216,111,114, 10, 24,113,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112,116,114, 10,195, 0, 0, 0, 1, 0, 0, 0,184,116,114, 10, 40,116,114, 10,
- 24,111,114, 10, 24,113,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184,116,114, 10,195, 0, 0, 0,
- 1, 0, 0, 0, 0,117,114, 10,112,116,114, 10, 24,112,114, 10, 24,113,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 0,117,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 72,117,114, 10,184,116,114, 10, 88,110,114, 10, 24,111,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72,117,114, 10,195, 0, 0, 0, 1, 0, 0, 0,144,117,114, 10,
- 0,117,114, 10,152,111,114, 10, 88,112,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,117,114, 10,
-195, 0, 0, 0, 1, 0, 0, 0,216,117,114, 10, 72,117,114, 10,216,111,114, 10,216,112,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,216,117,114, 10,195, 0, 0, 0, 1, 0, 0, 0, 32,118,114, 10,144,117,114, 10, 88,111,114, 10,
-152,112,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32,118,114, 10,195, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,216,117,114, 10,216,111,114, 10,152,112,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
-104,118,114, 10,197, 0, 0, 0, 1, 0, 0, 0, 72,121,114, 10, 0, 0, 0, 0, 88,111,114, 10,152,110,114, 10,216,110,114, 10,
-152,111,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0, 7, 7,255, 4, 27, 0, 1, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,144,212,114, 10,144,212,114, 10,248,118,114, 10, 32,120,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,248,118,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 32,120,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65,
- 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4,
- 26, 0,255, 4, 26, 0, 0, 0, 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, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,
- 32,120,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,248,118,114, 10, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
- 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 0, 0, 0, 0,214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0, 72,121,114, 10,197, 0, 0, 0, 1, 0, 0, 0,248,131,114, 10,104,118,114, 10,
- 88,110,114, 10, 24,112,114, 10, 24,113,114, 10, 24,111,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,
- 63, 0, 0, 0, 15, 15,255, 4, 64, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,124,114, 10,208,130,114, 10,
-216,121,114, 10, 0,123,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-216,121,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0,123,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,140, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 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, 4, 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,255, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 0,123,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216,121,114, 10,
- 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,254, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,254, 4, 0, 0, 18, 0, 0, 0, 37, 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,255, 4, 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,254, 4, 0, 0, 26, 0, 0, 0,
- 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 68, 65, 84, 65,180, 0, 0, 0, 40,124,114, 10,174, 0, 0, 0,
- 1, 0, 0, 0,208,130,114, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
- 8,125,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 48,126,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0,203, 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, 87, 6, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 88, 6, 26, 0, 88, 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, 0, 0, 0, 0, 87, 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, 88, 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, 0, 0, 0, 0, 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, 48,126,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8,125,114, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 6, 0, 0, 26, 0, 0, 0,
- 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,127,114, 10, 68, 65, 84, 65, 72, 3, 0, 0, 88,127,114, 10,158, 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, 87,213,108, 66, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188,
- 0, 0, 0,128, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193,
- 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,
- 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65,
- 0, 0, 32, 65,161, 14,106, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 91,138, 60, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,249,195,115,253, 71,194, 0, 0, 0, 0, 0, 0, 0, 0, 98,127,249, 67,
-129,255, 71, 66, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,193,
- 0, 0,128, 63, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,213,108, 66, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,184,175, 31, 65,
- 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 52,149,147, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,208,130,114, 10,159, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 40,124,114, 10, 8,125,114, 10, 48,126,114, 10, 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,152,236,114, 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,
- 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,159, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
-248,131,114, 10,197, 0, 0, 0, 1, 0, 0, 0,208,151,114, 10, 72,121,114, 10, 24,112,114, 10,152,112,114, 10,216,111,114, 10,
- 24,113,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 65, 0, 0, 0, 83, 1, 0, 0, 8, 8,255, 4, 19, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,137,114, 10,240,150,114, 10,136,132,114, 10, 0,136,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,136,132,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
-176,133,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65,
- 0, 96,191, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4,
- 26, 0,255, 4, 26, 0, 0, 0, 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, 4, 0, 0, 65, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,
-176,133,114, 10,198, 0, 0, 0, 1, 0, 0, 0,216,134,114, 10,136,132,114, 10, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,121,195,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,121,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,
-248, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,
-248, 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, 3, 0, 0,
- 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,249, 0,203, 0,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0,254, 4, 0, 0, 91, 0, 0, 0, 83, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,220, 0,249, 0, 0, 0, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,216,134,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0,136,114, 10,176,133,114, 10,
- 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 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, 59, 70, 0,128, 59, 70,
-172,197, 39, 55, 0, 80,195, 71, 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, 34, 4, 0, 0, 83, 1, 0, 0,
- 83, 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, 7, 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, 68, 65, 84, 65,248, 0, 0, 0, 0,136,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,216,134,114, 10, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0,
- 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,
- 34, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 34, 4, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 32, 65,
- 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 8, 0, 35, 4,249, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 91, 0, 0, 0, 83, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 35, 4,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,
-224, 0, 0, 0, 40,137,114, 10,165, 0, 0, 0, 1, 0, 0, 0,120,147,114, 10, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 56,138,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 96,139,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0,128,191, 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,251, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68,
- 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,252, 5, 26, 0,252, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,251, 5, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-252, 5, 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, 68, 65, 84, 65,
-248, 0, 0, 0, 96,139,114, 10,198, 0, 0, 0, 1, 0, 0, 0,136,140,114, 10, 56,138,114, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0,223, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,113, 1, 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, 68, 65, 84, 65,248, 0, 0, 0,136,140,114, 10,198, 0, 0, 0, 1, 0, 0, 0,176,141,114, 10,
- 96,139,114, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,
-111, 0, 0, 0,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,176,141,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0,216,142,114, 10,136,140,114, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,251, 5, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,216,142,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,176,141,114, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 5, 0, 0,111, 0, 0, 0,223, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 5,113, 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,144,114, 10, 68, 65, 84, 65, 72, 3, 0, 0, 0,144,114, 10,158, 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,200, 79,145, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128,
- 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,241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,
-145,180,109,188,119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,
-112,240,191, 62,108,116, 85, 63, 80,184, 70,188, 0, 0, 46,180,159, 49,181,189,125,172, 46, 61, 7,213, 73, 62, 0, 64,143,180,
-182,107, 25,196, 13,135,135, 67, 70, 12,167,195, 71, 0, 72,194,225, 56, 25, 68, 38, 90,135,195,237,212,166, 67, 84, 2, 72, 66,
- 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,241,130,233,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 14, 28, 97, 63, 9, 46,185, 62, 35, 44,185, 62,
-145,180,109,188,119, 15,130, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
- 13,114,156, 58, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,147,114, 10,159, 0, 0, 0, 1, 0, 0, 0,240,150,114, 10,
- 40,137,114, 10, 56,138,114, 10,216,142,114, 10, 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,152,236,114, 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, 1, 0, 0, 0,
- 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160,148,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0,200,149,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152, 4, 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,
- 68, 65, 84, 65,248, 0, 0, 0,200,149,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160,148,114, 10, 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,151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,240,150,114, 10,174, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,120,147,114, 10,160,148,114, 10,200,149,114, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,208,151,114, 10,
-197, 0, 0, 0, 1, 0, 0, 0,184,192,114, 10,248,131,114, 10,152,112,114, 10, 88,111,114, 10, 88,112,114, 10,216,112,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 51, 2, 0, 0, 85, 1, 0, 0,186, 2, 0, 0, 2, 2, 52, 2,102, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,157,114, 10,216,191,114, 10, 96,152,114, 10,216,155,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 96,152,114, 10,198, 0, 0, 0, 1, 0, 0, 0,136,153,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 93, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 13, 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, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 52, 2, 26, 0, 52, 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, 0, 0, 0, 0, 51, 2, 0, 0,
- 85, 1, 0, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 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, 0, 0, 0, 0, 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,136,153,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0,176,154,114, 10, 96,152,114, 10, 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,157,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 75, 1, 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, 75, 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, 10, 6, 0, 0, 2, 0, 3, 3,
- 0, 0, 0, 4, 6, 0,217, 0, 76, 1,200, 0, 58, 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,216, 0, 0, 0,111, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,217, 0, 76, 1, 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,
- 68, 65, 84, 65,248, 0, 0, 0,176,154,114, 10,198, 0, 0, 0, 1, 0, 0, 0,216,155,114, 10,136,153,114, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 51, 2, 0, 0,111, 1, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216,155,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,176,154,114, 10, 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, 75, 1, 0, 0, 18, 0, 0, 0, 90, 1, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 90, 1, 0, 0, 18, 0, 0, 0, 75, 1, 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, 91, 1,
- 76, 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,217, 0, 0, 0,
- 51, 2, 0, 0,111, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 76, 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,216, 0, 0, 0,
- 0,157,114, 10,163, 0, 0, 0, 1, 0, 0, 0,200,161,114, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8,158,114, 10, 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, 24, 0, 0, 0, 8,158,114, 10, 22, 1, 0, 0, 1, 0, 0, 0,240,212,114, 10, 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, 80,158,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0,120,159,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0, 38, 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,151, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68,
- 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4,
- 10, 0,152, 2, 26, 0,152, 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,
- 0, 0, 0, 0,151, 2, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152, 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,
- 0, 0, 0, 0, 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,159,114, 10,198, 0, 0, 0, 1, 0, 0, 0,160,160,114, 10, 80,158,114, 10, 0, 0, 0, 0, 0, 0, 55, 67,
- 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 67, 0,128, 4,196, 0, 0, 64,193, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,180, 0, 0, 0,
- 18, 0, 0, 0, 23, 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, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,181, 0, 24, 2,181, 0, 6, 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,180, 0, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0, 24, 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, 0, 0, 0, 0, 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,160,160,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-120,159,114, 10, 0, 0, 32,193, 0, 0,104, 68,171,170, 67,195, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68,171,170, 67,195,
- 0, 0, 0, 0,210, 1, 0, 0,227, 1, 0, 0, 18, 0, 0, 0, 23, 2, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,209, 1, 0, 0, 18, 0, 0, 0, 23, 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,227, 1, 24, 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,181, 0, 0, 0,151, 2, 0, 0,
-251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 1, 24, 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,224, 0, 0, 0,200,161,114, 10,
- 23, 1, 0, 0, 1, 0, 0, 0, 80,166,114, 10, 0,157,114, 10, 80,158,114, 10,160,160,114, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240,212,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,162,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0,164,114, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,104, 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,159, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,160, 3, 26, 0,160, 3,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 3, 0, 0,
- 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 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, 0, 0, 0, 0, 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, 0,164,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 40,165,114, 10,216,162,114, 10, 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 44, 67, 0,128,100,196, 0, 0, 0, 0,172, 0, 0, 0,189, 0, 0, 0, 18, 0, 0, 0,163, 3, 0, 0,
- 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,163, 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,189, 0,164, 3,172, 0,146, 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,111, 0, 0, 0, 18, 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, 4, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 40,165,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,164,114, 10, 0, 0, 0, 0,
- 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,168,191, 0, 0, 20, 64, 0, 0,169,191, 0,128, 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, 0, 0, 0, 0, 0, 0, 0, 0,
-160, 3, 0, 0, 0, 0, 0, 0,164, 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,159, 3, 0, 0,111, 0, 0, 0, 18, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 3,164, 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, 68, 65, 84, 65,160, 12, 0, 0, 80,166,114, 10,169, 0, 0, 0, 1, 0, 0, 0,
- 96,188,114, 10,200,161,114, 10,216,162,114, 10, 40,165,114, 10, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 32,179,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 72,180,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 42, 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,
-167, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,168, 2, 26, 0,168, 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, 0, 0, 0, 0,167, 2, 0, 0, 85, 0, 0, 0,110, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 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, 0, 0, 0, 0, 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, 72,180,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
-112,181,114, 10, 32,179,114, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,164, 3,
- 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, 68, 65, 84, 65,248, 0, 0, 0,
-112,181,114, 10,198, 0, 0, 0, 1, 0, 0, 0,152,182,114, 10, 72,180,114, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0,111, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152,182,114, 10,198, 0, 0, 0, 1, 0, 0, 0,192,183,114, 10,112,181,114, 10,
- 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,
-163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,104, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 2, 0, 0,167, 2, 0, 0,111, 0, 0, 0,
- 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,192,183,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,152,182,114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,167, 2, 0, 0,111, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 2,164, 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,232,184,114, 10, 68, 65, 84, 65,
- 72, 3, 0, 0,232,184,114, 10,158, 0, 0, 0, 1, 0, 0, 0,226,225,191, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
- 0, 0, 0,128, 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 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,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,
-253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190,
- 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,250, 8,140, 62,174,189, 27, 63,224, 25, 17,188, 0, 64,153,181,
-195, 13,188,190,191, 73, 53, 62, 99,126, 81, 63, 0,128,163, 53,215,104, 25,196,134,132,135, 67, 37, 9,167,195,136,252, 71,194,
- 3, 54, 25, 68,159, 87,135,195,205,209,166, 67,151,254, 71, 66, 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,192, 90, 29, 63,208,249,224,190,222,160, 81,191,184,158, 81,191,
-253,253,174, 63,140,225, 88, 62, 9, 46,185, 62, 35, 44,185, 62,232,229,162,188,206,156,122, 63,129, 63,228,190, 42, 61,228,190,
- 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,172,148, 0, 59, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
- 96,188,114, 10,159, 0, 0, 0, 1, 0, 0, 0,216,191,114, 10, 80,166,114, 10, 32,179,114, 10,192,183,114, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8,
- 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0,
- 1, 0, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,136,189,114, 10,198, 0, 0, 0, 1, 0, 0, 0,176,190,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,
-126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,176,190,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,136,189,114, 10, 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,
-151, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,122, 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,151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152, 4,122, 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,
-180, 0, 0, 0,216,191,114, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96,188,114, 10,136,189,114, 10,176,190,114, 10,
- 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, 1, 0, 0, 0,
- 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,184,192,114, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,208,151,114, 10,
-216,112,114, 10, 88,112,114, 10,152,111,114, 10,216,111,114, 10, 0, 0, 0, 0, 53, 2, 0, 0,254, 4, 0, 0, 85, 1, 0, 0,
-186, 2, 0, 0, 8, 8,202, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,197,114, 10,176,211,114, 10,
- 72,193,114, 10,192,196,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
- 72,193,114, 10,198, 0, 0, 0, 1, 0, 0, 0,112,194,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 15, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0,128, 50, 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,201, 2, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 64, 50, 68, 0, 0,200, 65, 0, 64, 50, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,202, 2, 26, 0,202, 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, 53, 2, 0, 0,254, 4, 0, 0, 85, 1, 0, 0,110, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,202, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,112,194,114, 10,198, 0, 0, 0, 1, 0, 0, 0,152,195,114, 10, 72,193,114, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0,254, 4, 0, 0,111, 1, 0, 0,
-186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152,195,114, 10,198, 0, 0, 0,
- 1, 0, 0, 0,192,196,114, 10,112,194,114, 10, 0, 0,112,195, 0, 0,112, 67, 0, 0, 7,195, 0, 0, 7, 67,105, 42,145,196,
-105, 42,145, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4,
- 0, 0,202, 2, 76, 1,202, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 53, 2, 0, 0,254, 4, 0, 0,111, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-202, 2, 76, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0,192,196,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152,195,114, 10, 0, 0, 0, 0, 0, 0,122, 67,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0,
- 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0,
- 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,
-105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, 76, 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, 1, 0, 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, 68, 65, 84, 65,224, 0, 0, 0,232,197,114, 10,165, 0, 0, 0, 1, 0, 0, 0, 56,208,114, 10,
- 0, 0, 0, 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, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0,248,198,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 32,200,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,157, 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,231, 4, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,232, 4, 26, 0,232, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,225, 1, 0, 0,250, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 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, 68, 65, 84, 65,248, 0, 0, 0, 32,200,114, 10,198, 0, 0, 0, 1, 0, 0, 0, 72,201,114, 10,
-248,198,114, 10, 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, 0, 0, 0, 0,153, 2, 0, 0,153, 2, 0, 0,
-251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 2, 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, 68, 65, 84, 65,248, 0, 0, 0, 72,201,114, 10,
-198, 0, 0, 0, 1, 0, 0, 0,112,202,114, 10, 32,200,114, 10, 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,
- 0, 0, 0, 0,153, 2, 0, 0,128, 7, 0, 0,251, 1, 0, 0,251, 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, 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,
- 68, 65, 84, 65,248, 0, 0, 0,112,202,114, 10,198, 0, 0, 0, 1, 0, 0, 0,152,203,114, 10, 72,201,114, 10, 0, 0, 0, 0,
- 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,
-180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 7, 0, 0,251, 1, 0, 0, 18, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,152,203,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,112,202,114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 2, 0, 0,
-128, 7, 0, 0,251, 1, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 24, 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,192,204,114, 10, 68, 65, 84, 65, 72, 3, 0, 0,
-192,204,114, 10,158, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-165, 7, 36, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0,128,
- 0, 0, 0,128,226,215,163,188, 0, 0, 0,128, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63,
- 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,128, 32,182, 69,129, 32,190,
-250,186,154, 61,170,205,178, 62, 0, 64, 1, 53,215,104, 25,196,135,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,
-160, 87,135,195,205,209,166, 67,151,254, 71, 66, 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,180,157,229, 62,169,203,131,191,222,160, 81,191,184,158, 81,191,118, 90,127, 63,
- 95, 27,254, 62, 9, 46,185, 62, 35, 44,185, 62,147,180,109,188,102,208, 18, 64,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,218,210,190, 58, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 56,208,114, 10,
-159, 0, 0, 0, 1, 0, 0, 0,176,211,114, 10,232,197,114, 10,248,198,114, 10,152,203,114, 10, 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,152,236,114, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0,
- 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0, 96,209,114, 10,198, 0, 0, 0, 1, 0, 0, 0,136,210,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 64,129, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,147, 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,
-151, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,152, 4, 26, 0,152, 4, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0,101, 0, 0, 0,126, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 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, 68, 65, 84, 65,248, 0, 0, 0,136,210,114, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 96,209,114, 10, 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,151, 4, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,151, 4, 0, 0, 18, 0, 0, 0,121, 2, 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,152, 4,
-122, 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,
-151, 4, 0, 0,127, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4,122, 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,180, 0, 0, 0,
-176,211,114, 10,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56,208,114, 10, 96,209,114, 10,136,210,114, 10, 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, 1, 0, 0, 0, 6, 0, 0, 0,
- 83, 67, 0, 0,168, 5, 0, 0,240,212,114, 10,156, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,200,218,114, 10, 0, 0, 0, 0,152,236,114, 10,208,229,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,104,220,114, 10,
-248,220,114, 10,104,220,114, 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, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,221,114, 10,168,216,113, 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, 68,172, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0,
- 32, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 25, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 0, 0, 24, 0, 17, 0,
- 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 23, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,
- 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,225,114, 10, 40,225,114, 10,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 47, 47, 98, 97, 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 5, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78,
- 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0,
- 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,216, 41, 76, 10, 0, 0, 0, 0, 0, 0, 0, 0,184, 42,115, 10, 1, 0, 0, 0, 1, 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,205,204, 28, 65,
- 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,
-180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4,205,204,204, 61, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 68, 65, 84, 65,
- 76, 0, 0, 0,200,218,114, 10, 16, 0, 0, 0, 1, 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,
- 0, 0, 0, 0, 64,219,114, 10, 64,219,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 76, 0, 0, 0, 64,219,114, 10, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,110,101,116,119,
-111,114,107, 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,184,219,114, 10,184,219,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 76, 0, 0, 0,184,219,114, 10, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115,101,114,118,
-101,114, 95, 97,100,100,114,101,115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 48,220,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 68, 65, 84, 65,
- 12, 0, 0, 0, 48,220,114, 10, 0, 0, 0, 0, 1, 0, 0, 0, 91,100,101,102, 97,117,108,116, 93, 0, 0, 0, 68, 65, 84, 65,
- 28, 0, 0, 0,104,220,114, 10,132, 0, 0, 0, 1, 0, 0, 0,176,220,114, 10, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0,188, 1, 46, 1,160,240,114, 10, 68, 65, 84, 65, 28, 0, 0, 0,176,220,114, 10,132, 0, 0, 0, 1, 0, 0, 0,
-248,220,114, 10,104,220,114, 10, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 61, 2,244, 1,168,244,114, 10, 68, 65, 84, 65,
- 28, 0, 0, 0,248,220,114, 10,132, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,176,220,114, 10, 1, 0, 0, 0, 3, 0, 0, 0,
- 0, 4, 0, 0, 98, 0,106, 1,152,236,114, 10, 68, 65, 84, 65,136, 1, 0, 0, 64,221,114, 10,152, 0, 0, 0, 1, 0, 0, 0,
-248,222,114, 10,152,223,114, 10, 56,224,114, 10, 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0,
- 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,232,224,114, 10, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255,
- 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,100, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 50, 0, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 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,128, 63, 10,215, 35, 60,205,204,204, 61,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65,
- 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 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, 68, 65, 84, 65, 44, 0, 0, 0,248,222,114, 10,151, 0, 0, 0, 1, 0, 0, 0, 80,223,114, 10,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 28, 0, 0, 0, 80,223,114, 10, 0, 0, 0, 0, 1, 0, 0, 0, 88, 78,115, 10,
- 8, 41,115, 10, 8, 98,115, 10,160, 81,115, 10,136, 45,115, 10, 16, 75,115, 10, 96, 55,115, 10, 68, 65, 84, 65, 44, 0, 0, 0,
-152,223,114, 10,151, 0, 0, 0, 1, 0, 0, 0,240,223,114, 10, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,200,200,255,128,
- 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 28, 0, 0, 0,
-240,223,114, 10, 0, 0, 0, 0, 1, 0, 0, 0, 88, 78,115, 10, 8, 41,115, 10, 8, 98,115, 10,160, 81,115, 10,136, 45,115, 10,
- 16, 75,115, 10, 96, 55,115, 10, 68, 65, 84, 65, 48, 0, 0, 0, 56,224,114, 10,150, 0, 0, 0, 1, 0, 0, 0,152,224,114, 10,
- 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,255,100,100,128, 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, 68, 65, 84, 65, 32, 0, 0, 0,152,224,114, 10, 0, 0, 0, 0, 1, 0, 0, 0,
-168, 58,115, 10,120, 91,115, 10,232, 84,115, 10,128, 68,115, 10, 56, 65,115, 10,200, 71,115, 10,240, 61,115, 10,208, 48,115, 10,
- 68, 65, 84, 65, 16, 0, 0, 0,232,224,114, 10, 0, 0, 0, 0, 1, 0, 0, 0,168, 58,115, 10,192, 94,115, 10, 24, 52,115, 10,
- 48, 88,115, 10, 68, 65, 84, 65, 72, 0, 0, 0, 40,225,114, 10,138, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82,101,110,100,101,114, 76, 97,121,101,114, 0,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,255,255, 15, 0, 0, 0, 0, 0,255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 67, 65, 0, 0,120, 0, 0, 0,160,225,114, 10, 29, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,145,137, 68, 66,205,204,204, 61, 0, 0,200, 66,
- 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 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, 65, 0, 0,140, 1, 0, 0, 72,226,114, 10, 41, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 0, 0, 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, 0, 0, 0, 0, 0, 32, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0,228,114, 10, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,229,114, 10, 68, 65, 84, 65, 8, 1, 0, 0, 0,228,114, 10, 78, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,
-242, 4, 53,191,243, 4, 53, 63, 56,229,114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56,229,114, 10, 76, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,128,229,114, 10,
- 19, 0, 0, 0, 1, 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, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,120, 1, 0, 0,208,229,114, 10,131, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,
-114, 99, 80, 61,114, 99, 80, 61, 0, 0, 0, 0,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 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,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 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, 64,
- 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,
-205,204, 76, 61, 0, 0, 5, 0, 3, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0, 1, 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, 84, 88, 0, 0,120, 0, 0, 0,120,231,114, 10,
- 27, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 84,101,120,116, 0, 0,
- 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,
- 7, 0, 0, 0, 1, 0, 0, 0, 32,232,114, 10, 32,232,114, 10, 32,232,114, 10, 32,232,114, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,104,232,114, 10,255,255,255,255, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 32,232,114, 10, 25, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 17, 77, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, 4, 0, 0, 0,168, 17, 77, 10, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 1, 0, 79, 66, 0, 0,220, 3, 0, 0,152,236,114, 10,120, 0, 0, 0, 1, 0, 0, 0,160,240,114, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,225,114, 10, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
- 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
- 10, 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,110,101,239, 64,150, 62,208,192, 78,255,170, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0,
- 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63,
- 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63,125,103,133, 51,176,219,194,178, 0, 0, 0, 0,190, 32, 66, 51, 1, 0,128, 63,168,200,153, 51, 0, 0, 0, 0,
- 32,206, 18,179,126,126,149, 50, 1, 0,128, 63, 0, 0, 0, 0,241,251,133, 52,172,182, 27,180,174,236,252, 51, 0, 0,128, 63,
- 0, 0,128, 63,157,190,215, 49,167,170, 4, 52, 0, 0, 0,128,129,116,157,178, 1, 0,128, 63, 33, 69, 15, 51, 0, 0, 0,128,
- 73,254, 67, 51,243, 97,106, 49, 0, 0,128, 63, 0, 0, 0,128, 3, 0, 64, 52,183,164,157, 39, 0, 0,128, 53, 0, 0,128, 63,
- 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,
-205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0,
- 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 66, 0, 0,220, 3, 0, 0,160,240,114, 10,
-120, 0, 0, 0, 1, 0, 0, 0,168,244,114, 10,152,236,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,
-104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 97,112, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 31,115, 10, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 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,240,141, 77, 10,232,203, 77, 10, 1, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,
- 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, 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, 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, 0, 0, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, 0, 0, 0,128,
- 86,126,162,190,227,251,159, 62, 56, 53,101, 63, 0, 0, 0,128, 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, 0, 0, 0,128,
-110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
- 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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, 64, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,158, 93, 10,168, 91,112, 11,
- 25, 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, 68, 65, 84, 65, 4, 0, 0, 0,240,141, 77, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 4, 0, 0, 0,232,203, 77, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,220, 3, 0, 0,168,244,114, 10,
-120, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160,240,114, 10, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 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,
- 72,226,114, 10, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 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,154,112,130, 64,
-183,178,128, 63,112,236,188, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, 87, 43, 98, 61,
-229,229,238, 63, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,
-221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,
-154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 35,233,134, 49,251,110, 17,179, 0, 0, 0, 0,
- 49,158,141, 50, 1, 0,128, 63,126,214,237, 50, 0, 0, 0, 0,155,248, 28,178,199,139, 96,177,254,255,127, 63, 0, 0, 0, 0,
- 80,136,159,178,192, 4,158,178,209,114,143,179, 0, 0,128, 63, 53,236,148,190,222,102, 69,191, 37,255, 16, 63, 0, 0, 0,128,
- 24,134,116, 63, 57,174, 76,190,240,161, 95, 62, 0, 0, 0,128,235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63, 0, 0, 0,128,
-208, 19, 13, 63,234, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0,
- 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
- 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 77, 65, 0, 0,160, 2, 0, 0,176,248,114, 10, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 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, 1, 0,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 0, 3, 67, 0, 0, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 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, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61,
- 0, 0,128, 63, 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,128, 63,
-128,251,114, 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,184,252,114, 10, 0, 0, 0, 63, 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,128, 63, 0, 0,128, 63,111,148, 26, 63,
-111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,
-128,251,114, 10, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 13,115, 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, 1, 2, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,144, 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,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 32, 0, 0, 0,184,252,114, 10,
- 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 8,253,114, 10, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 8,253,114, 10, 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, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153,
- 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255,
- 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 3, 3, 51, 10, 10, 10,153,
- 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255,
- 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255,
- 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255,
- 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255,
- 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255,
- 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255,
- 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255,
- 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255,
- 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255,
- 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255,
- 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255,
- 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255,
- 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255,
- 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255,
- 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255,
- 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255,
- 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255,
- 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255,
- 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255,
- 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255,
- 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255,
- 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255,
- 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255,
- 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255,
- 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255,
- 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255,
- 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102,
- 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,
-102,102,102,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255,
- 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255,
- 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102,
- 80, 80, 80,255, 93, 93, 93,255,100,100,100,255,104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,
-109,109,109,255,107,107,107,255,106,106,106,255,103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255,
- 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255,
- 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102,
- 89, 89, 89,255,100,100,100,255,107,107,107,255,112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,
-115,115,115,255,114,114,114,255,112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255,
- 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255,
- 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153,
- 95, 95, 95,255,107,107,107,255,114,114,114,255,118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,
-122,122,122,255,122,122,122,255,120,120,120,255,118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255,
- 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255,
- 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,
-101,101,101,255,113,113,113,255,120,120,120,255,125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,
-131,131,131,255,131,131,131,255,131,131,131,255,129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,
-103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255,
- 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,
-106,106,106,255,118,118,118,255,126,126,126,255,131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,
-142,142,142,255,147,147,147,255,149,149,149,255,148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,
-108,108,108,255,102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255,
- 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,
-109,109,109,255,123,123,123,255,131,131,131,255,136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,
-156,156,156,255,168,168,168,255,176,176,176,255,177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,
-114,114,114,255,107,107,107,255,101,101,101,255, 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255,
- 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,
-110,110,110,255,127,127,127,255,136,136,136,255,142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,
-174,174,174,255,195,195,195,255,212,212,212,255,216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,
-121,121,121,255,112,112,112,255,106,106,106,255, 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255,
- 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,
-107,107,107,255,130,130,130,255,140,140,140,255,146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,
-191,191,191,255,219,219,219,255,246,246,246,255,254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,
-127,127,127,255,117,117,117,255,110,110,110,255,103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255,
- 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0,
- 65, 65, 65,153,129,129,129,255,142,142,142,255,149,149,149,255,154,154,154,255,157,157,157,255,163,163,163,255,176,176,176,255,
-199,199,199,255,232,232,232,255,255,255,255,255,255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,
-132,132,132,255,121,121,121,255,113,113,113,255,106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255,
- 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0,
- 21, 21, 21, 51,127,127,127,255,143,143,143,255,152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,
-198,198,198,255,227,227,227,255,253,253,253,255,255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,
-135,135,135,255,124,124,124,255,117,117,117,255,110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255,
- 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255,153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,
-188,188,188,255,209,209,209,255,228,228,228,255,234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,
-136,136,136,255,127,127,127,255,119,119,119,255,112,112,112,255,105,105,105,255, 98, 98, 98,255, 91, 91, 91,255, 83, 83, 83,255,
- 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255,151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,
-178,178,178,255,189,189,189,255,200,200,200,255,202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,
-137,137,137,255,129,129,129,255,121,121,121,255,114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255,
- 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,
-172,172,172,255,176,176,176,255,180,180,180,255,179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,
-137,137,137,255,130,130,130,255,122,122,122,255,115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255,
- 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,
-169,169,169,255,170,170,170,255,169,169,169,255,167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,
-137,137,137,255,130,130,130,255,123,123,123,255,115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255,
- 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 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, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,
-167,167,167,255,167,167,167,255,166,166,166,255,163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,
-137,137,137,255,129,129,129,255,121,121,121,255,113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255,
- 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,
-161,161,161,255,163,163,163,255,162,162,162,255,160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,
-135,135,135,255,127,127,127,255,119,119,119,255,110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255,
- 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,
-148,148,148,255,154,154,154,255,155,155,155,255,154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,
-130,130,130,255,122,122,122,255,114,114,114,255,104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 73, 73,153,103,103,103,204,137,137,137,255,140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,
-120,120,120,255,113,113,113,255,102,102,102,255, 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204,
- 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,
- 40, 1, 0, 0, 56, 13,115, 10, 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 69, 84,101,120, 0, 0, 0, 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, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 5, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 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,144, 14,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-144, 14,115, 10, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0,224, 14,115, 10, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,224, 14,115, 10, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 77, 69, 0, 0, 40, 1, 0, 0, 16, 31,115, 10, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 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,
- 80,241, 78, 10,152, 38,115, 10, 64, 39,115, 10, 0, 0, 0, 0,232, 33,115, 10, 88, 36,115, 10, 0, 0, 0, 0,120, 40,115, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 32,115, 10, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 34,115, 10, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 37,115, 10, 3, 0, 0, 0, 5, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 51,
- 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 4, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 4, 0, 0, 0, 80,241, 78, 10, 0, 0, 0, 0, 1, 0, 0, 0,176,248,114, 10, 68, 65, 84, 65, 84, 1, 0, 0,104, 32,115, 10,
- 82, 1, 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, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232, 33,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,
-192, 0, 0, 0,232, 33,115, 10, 60, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73,
- 26,182,255,127, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255,127, 1, 0, 0, 0,
- 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,250,255,127,191, 3, 0,128, 63,
- 0, 0,128,191, 26,182,230, 73, 26,182,255,127, 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,
-230, 73,255,127, 1, 0, 0, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, 1, 0, 0, 0,
- 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,255,255,127,191, 0, 0,128, 63,
- 0, 0,128, 63, 26,182,230, 73,230, 73,255,127, 1, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,216, 34,115, 10, 82, 1, 0, 0,
- 5, 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, 88, 36,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,144, 0, 0, 0,
- 88, 36,115, 10, 57, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,
- 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0,
- 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,
- 84, 1, 0, 0, 24, 37,115, 10, 82, 1, 0, 0, 5, 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,152, 38,115, 10, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 39,115, 10, 6, 0, 0, 0, 68, 0, 0, 0,
- 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,108, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 40,115, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,120, 0, 0, 0,152, 38,115, 10, 56, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2,
- 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, 68, 65, 84, 65, 8, 1, 0, 0, 64, 39,115, 10, 67, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,120, 40,115, 10, 61, 0, 0, 0, 24, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 66, 82, 0, 0,132, 1, 0, 0, 8, 41,115, 10, 81, 1, 0, 0, 1, 0, 0, 0,136, 45,115, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 66, 82, 65,100,100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,240, 43,115, 10,
- 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,
-205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 1, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,
- 84, 41,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,240, 43,115, 10,
- 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
- 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 40, 45,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40, 45,115, 10, 76, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63,
- 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,136, 45,115, 10,
- 81, 1, 0, 0, 1, 0, 0, 0,208, 48,115, 10, 8, 41,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,117,114, 0, 46,
- 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0, 56, 47,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 1, 4, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,212, 45,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0, 56, 47,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191,
- 46,189,194, 61,112, 48,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,112, 48,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,208, 48,115, 10, 81, 1, 0, 0, 1, 0, 0, 0, 24, 52,115, 10,
-136, 45,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 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, 63,
- 0, 0, 0, 0,128, 50,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64,
- 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 8, 0, 0, 0,
- 68, 65, 84, 65, 8, 1, 0, 0, 28, 49,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
- 8, 1, 0, 0,128, 50,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,184, 51,115, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-184, 51,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63,
- 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
-132, 1, 0, 0, 24, 52,115, 10, 81, 1, 0, 0, 1, 0, 0, 0, 96, 55,115, 10,208, 48,115, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,200, 53,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 3, 0, 68, 65, 84, 65, 8, 1, 0, 0,100, 52,115, 10,
- 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,200, 53,115, 10, 78, 1, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191,
- 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 0, 55,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 0, 55,115, 10, 76, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0, 96, 55,115, 10, 81, 1, 0, 0,
- 1, 0, 0, 0,168, 58,115, 10, 24, 52,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97,114,107,101,110, 0, 48, 54, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0, 16, 57,115, 10, 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,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 1, 6, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,172, 55,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0, 16, 57,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
- 72, 58,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 72, 58,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,168, 58,115, 10, 81, 1, 0, 0, 1, 0, 0, 0,240, 61,115, 10, 96, 55,115, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 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, 63, 0, 0, 0, 0,
- 88, 60,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 0, 0, 68, 65, 84, 65,
- 8, 1, 0, 0,244, 58,115, 10, 32, 0, 0, 0, 1, 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,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,
- 88, 60,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
- 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,144, 61,115, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,144, 61,115, 10,
- 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,
-240, 61,115, 10, 81, 1, 0, 0, 1, 0, 0, 0, 56, 65,115, 10,168, 58,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108,
- 97,116,116,101,110, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,160, 63,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 7, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, 60, 62,115, 10, 32, 0, 0, 0,
- 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,160, 63,115, 10, 78, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
- 14,215,126,191, 46,189,194, 61,216, 64,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216, 64,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0, 56, 65,115, 10, 81, 1, 0, 0, 1, 0, 0, 0,
-128, 68,115, 10,240, 61,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,232, 66,115, 10, 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, 1, 2, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 5, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,132, 65,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 8, 1, 0, 0,232, 66,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
- 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 32, 68,115, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 48, 0, 0, 0, 32, 68,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0,132, 1, 0, 0,128, 68,115, 10, 81, 1, 0, 0, 1, 0, 0, 0,200, 71,115, 10, 56, 65,115, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116,101, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0, 48, 70,115, 10,
- 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,
-205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 4, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,
-204, 68,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0, 48, 70,115, 10,
- 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
- 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,104, 71,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,104, 71,115, 10, 76, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63,
- 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,200, 71,115, 10,
- 81, 1, 0, 0, 1, 0, 0, 0, 16, 75,115, 10,128, 68,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0,
- 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,120, 73,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 6, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, 20, 72,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,120, 73,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191,
- 46,189,194, 61,176, 74,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,176, 74,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0, 16, 75,115, 10, 81, 1, 0, 0, 1, 0, 0, 0, 88, 78,115, 10,
-200, 71,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 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, 63,
- 0, 0, 0, 0,192, 76,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64,
- 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 5, 0, 0,
- 68, 65, 84, 65, 8, 1, 0, 0, 92, 75,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
- 8, 1, 0, 0,192, 76,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,248, 77,115, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-248, 77,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63,
- 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,
-132, 1, 0, 0, 88, 78,115, 10, 81, 1, 0, 0, 1, 0, 0, 0,160, 81,115, 10, 16, 75,115, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 77,105,120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0, 8, 80,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,164, 78,115, 10,
- 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0, 8, 80,115, 10, 78, 1, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191,
- 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 64, 81,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 64, 81,115, 10, 76, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,160, 81,115, 10, 81, 1, 0, 0,
- 1, 0, 0, 0,232, 84,115, 10, 88, 78,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,108,121, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0, 80, 83,115, 10, 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,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 1, 3, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,236, 81,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0, 80, 83,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
-136, 84,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0,136, 84,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,232, 84,115, 10, 81, 1, 0, 0, 1, 0, 0, 0, 48, 88,115, 10,160, 81,115, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105,110, 99,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 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, 63, 0, 0, 0, 0,
-152, 86,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 3, 0, 0, 0, 68, 65, 84, 65,
- 8, 1, 0, 0, 52, 85,115, 10, 32, 0, 0, 0, 1, 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,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,
-152, 86,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0,
- 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,208, 87,115, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,208, 87,115, 10,
- 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,
- 48, 88,115, 10, 81, 1, 0, 0, 1, 0, 0, 0,120, 91,115, 10,232, 84,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,
-101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,224, 89,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 2, 0, 68, 65, 84, 65, 8, 1, 0, 0,124, 88,115, 10, 32, 0, 0, 0,
- 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,224, 89,115, 10, 78, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
- 14,215,126,191, 46,189,194, 61, 24, 91,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 24, 91,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0,120, 91,115, 10, 81, 1, 0, 0, 1, 0, 0, 0,
-192, 94,115, 10, 48, 88,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,111,111,116,104, 0, 48, 49, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0, 40, 93,115, 10, 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, 1, 2, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 2, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,196, 91,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 8, 1, 0, 0, 40, 93,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0,
- 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 96, 94,115, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 48, 0, 0, 0, 96, 94,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0,132, 1, 0, 0,192, 94,115, 10, 81, 1, 0, 0, 1, 0, 0, 0, 8, 98,115, 10,120, 91,115, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,112, 96,115, 10,
- 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,
-205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 1, 0, 68, 65, 84, 65, 8, 1, 0, 0,
- 12, 95,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,112, 96,115, 10,
- 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
- 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,168, 97,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168, 97,115, 10, 76, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63,
- 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,132, 1, 0, 0, 8, 98,115, 10,
- 81, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,192, 94,115, 10, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, 98,116,114, 97,
- 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,184, 99,115, 10, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,205,204, 76, 62, 1, 2, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0, 84, 98,115, 10, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 1, 0, 0,184, 99,115, 10, 78, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191,
- 46,189,194, 61,240,100,115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,240,100,115, 10, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82,232, 11, 0, 0, 0, 85, 7, 9,192, 0, 0, 0, 1, 0, 0, 0, 33,152, 65, 0,
- 63, 2, 0, 0, 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112, 47, 0, 45,112,
-111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,110,116,115, 47,
- 82,101,115,111,117,114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 35, 0, 0, 0,
- 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 48, 52, 6, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0,
- 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0,104,113,115, 10,
- 40,138,115, 10,160,162,164, 10,160,162,164, 10,112,243,164, 10,112,243,164, 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, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,
-205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191,
-154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63,
- 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,184,243,125, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 0, 0,
- 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 15, 0, 8, 0, 10, 0,
-250, 0, 0, 0,100, 0,100, 0, 0, 0, 2, 0, 0, 0, 0, 0, 10, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,144, 24, 0, 0,104,113,115, 10,189, 0, 0, 0, 1, 0, 0, 0, 40,138,115, 10, 0, 0, 0, 0,
- 68,101,102, 97,117,108,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,
- 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0,
- 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0,
- 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0,
- 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0,
- 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0,
- 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0,
- 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0,
- 0, 0, 0,255, 25, 25, 25,230, 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0,
- 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0,
- 25, 25, 25,255,128,128,128,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 50, 50, 50,180, 80, 80, 80,180,100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0,
- 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
-115,190, 76,255, 90,166, 51,255,240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
- 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
-255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
-255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 76, 76,255, 0, 0, 0, 0,250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-145,145,145,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255,
- 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,
-255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,
-255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
- 0, 0, 0, 0, 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, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100,
- 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,
-255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
- 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 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,255,255,255,128,
- 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
- 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
-255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
-255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255,
- 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,
-255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,
-255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,
- 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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,255,255,255,128, 0, 0, 0,255,255,133, 0,255,
- 3, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100,
- 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,
-255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
- 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,
-255,140, 0,255, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 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,255,255,255,128,
- 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
- 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
-255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,
-109,145,131,255,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
-255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,
-110,110,110,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-132,132,132,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255,
- 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,
-255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,
-255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
- 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,
-255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,
-255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
- 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 4, 0, 0,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,255,255,128,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
- 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
-255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
-255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255,
- 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,
-255,133, 0,255, 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,
-255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
- 0, 0, 0, 0, 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, 4, 0, 0,
-155,155,155,160,100,100,100,255,108,105,111,255,104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 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,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
- 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,
-255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
- 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
- 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
-255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
-255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255,220, 96, 96,255, 3, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0,
- 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,
-169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0,
- 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,
-244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,
-111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,
-141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0,
- 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,144, 24, 0, 0, 40,138,115, 10,189, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-104,113,115, 10, 82,111,117,110,100,101,100, 0, 0,101,119, 32, 85,115,101,114, 32, 84,104,101,109,101, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 25, 0,
-231,255, 0, 0, 25, 25, 25,255,153,153,153,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0,
- 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,
-241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,
-241,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255,
- 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255,
- 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255, 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,
-241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255, 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,
-236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230, 46,124,217,204,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 25, 0,
-236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,
-255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,175,175,175, 51, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,
-255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255,
- 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,
-217,217,217,255, 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255,102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255,
- 0, 0, 0,255,255,255,255,255,230,150, 50,255,255, 32, 32,255, 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255,
- 34,221,221,255, 0, 0, 0, 0,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0,
- 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,130, 0,255,
- 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,
-255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,
-200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,100,
-143,143,143,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,
-135,177,125,255,255,255,255,255,255,255,255,255,255,130, 0,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 82, 96,110,255,124,137,150,255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,255,255,255,255,130, 0,255, 2, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,
-255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,
-255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255,
- 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,
-255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255,
- 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255,178,178,178,100,255,130, 0,100,
- 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 79,101, 73,255,135,177,125,255,255,255,255,255,
-255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,143,143,255,
-200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,156,198,204,255,255,170,204,
- 96,192, 64,255, 82, 96,110,255,124,137,150,255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,143,143,143,255,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,107,107,107,255,
-178,178,178,100,255,130, 0,100, 94, 94, 94,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0,
- 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-228,156,198,255,255,255,170,255, 96,192, 64,255, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,
-255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,
-255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,130, 0,255, 0, 0, 0,255,144,144, 48,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,
-162, 95,111,255,109,145,131,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255,
- 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,
-255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255,
- 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60,255,133, 0,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,195,195,195,255, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,127,112,112,100, 0, 0, 0, 0,
- 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,
-255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,
-200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,153,153,153,255,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,
-198,119,119,255,255, 0, 0,255, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0,
- 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,100, 0, 0,255, 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,
-255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 88, 88, 88,255, 0, 0, 0,255,255,136,255,255, 0, 0, 0, 0,
-255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255, 0, 0, 0,255,144,144, 48,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158,158,158,255,
- 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,158,158,158,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,150,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,140,140,140,255,127,112,112,100, 0, 0, 0, 0,112,112, 96,255, 0, 0, 0,255,
-255,136,255,255, 0, 0, 0, 0,255,187,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,112,255,255,255,255,112,255,
- 0, 0, 0,255,144,144, 48,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,150, 30,200,100,200, 60, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0,
-143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0,255,130, 0,255,
- 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255, 10,
-255,130, 0, 60,255,138, 48,255, 34,221,221,255, 0, 0, 0, 0,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0,150,150,150,255,129,131,144,255,127,127,127,255,142,138,145,255,120,145,120,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,107,107,107,255,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255,
- 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 51, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,
-127,112,112,100, 0, 0, 0, 0,143,143,143,255, 0, 0, 0,255,217,217,217,255, 0, 0, 0, 40,255,255,255,255, 16, 64, 16,255,
-102,255,102,255,255,130, 0,255, 0, 0, 0,255,255,130, 0,255, 0, 0, 0,255,255,255,255,255,230,150, 50,255,255, 32, 32,255,
- 0, 0, 0, 0,255,255,255, 10,255,130, 0, 60,255,138, 48,255, 34,221,221,255, 0, 0, 0, 0,200,200,200,255, 80,200,255, 80,
- 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255, 0, 0, 0, 0, 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, 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,
-255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,245, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255,
-255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255,
- 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255,
- 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255,
- 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255,
- 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255,
- 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255,
- 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255,
- 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 78, 65, 49,236,218, 0, 0,160,161,188, 11, 0, 0, 0, 0, 1, 0, 0, 0,
- 83, 68, 78, 65, 78, 65, 77, 69,118, 11, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,
-105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,119, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,
-110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,
-121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,
-100, 97,116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,
-109,101, 91, 50, 52, 93, 0,117,115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100,
- 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,
-108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93,
- 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0,112, 97,100, 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116,
- 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49,
- 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,
-121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,
-107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,
-105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,
-111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,
-115, 0,118,103,114,111,117,112, 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120,
- 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,
-122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,
-104, 0, 42,108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,
-116, 0,101,110,100, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,
-101, 0,110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,
-115,101,108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,
-117,110,100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,
-101,107, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 97,110,103,108,101, 0, 99,108,105,112,115,116, 97, 0,
- 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,
-101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 89, 70, 95, 97,112,
-101,114,116,117,114,101, 0, 89, 70, 95, 98,107,104,116,121,112,101, 0, 89, 70, 95, 98,107,104, 98,105, 97,115, 0, 89, 70, 95,
- 98,107,104,114,111,116, 0, 42,100,111,102, 95,111, 98, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,
-102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,
-105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,109,101,110,117,110,114, 0, 42,115, 99,101,110,101, 0,105,
- 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114, 0,115,111,117,114, 99,
-101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,
-101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,
-112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0, 42,114,101,110,100,
-101,114, 95,116,101,120,116, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,105,109,
-115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,120, 0,
- 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,
-121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,111,106,
-120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,
-101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,
-116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,
-117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,103, 0,
- 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102, 97, 99,
- 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,114,114,
-102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,109,105,
-116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,102, 97,
- 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99, 0, 99,
-111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,114,101,
-102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102, 97, 99,
- 0,107,105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,108,105,102,101,
-102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,112,118,101,108,102, 97, 99, 0,115,104, 97,100,
-111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102,
- 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110,
- 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116,
- 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116,
- 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,
-111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91,
- 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,
-108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108,
- 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,
-116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,
-110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,
-111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,
-116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,
-105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51,
- 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0, 42, 99,111, 98, 97, 0,
-114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116,
- 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,101, 0,105,110,116, 95,109,117,108,116,105,112,108,105,
-101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 50, 52, 48, 93, 0,
- 42,100, 97,116, 97,115,101,116, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116,
- 0, 99,111,110,116,114, 97,115,116, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115,
-105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101,
-115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0,
-110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110,
- 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0,
-110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0,
-110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111,
-112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101,
-114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100,
-105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105,
-110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,
-114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109,
-111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119,
-112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101,
-110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115,
-104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104,
-114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,
-115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121,
- 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,
-109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101,
- 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,
-114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115,
-116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101,
- 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98,
-114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100,
- 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105,
-116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101,
-120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97,
- 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107,
-121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 0, 89, 70, 95,110,117,109,112,104,111,116,111,110,115, 0,
- 89, 70, 95,110,117,109,115,101, 97,114, 99,104, 0, 89, 70, 95,112,104,100,101,112,116,104, 0, 89, 70, 95,117,115,101,113,109,
- 99, 0, 89, 70, 95, 98,117,102,115,105,122,101, 0, 89, 70, 95,112, 97,100, 0, 89, 70, 95, 99, 97,117,115,116,105, 99, 98,108,
-117,114, 0, 89, 70, 95,108,116,114, 97,100,105,117,115, 0, 89, 70, 95,103,108,111,119,105,110,116, 0, 89, 70, 95,103,108,111,
-119,111,102,115, 0, 89, 70, 95,103,108,111,119,116,121,112,101, 0, 89, 70, 95,112, 97,100, 50, 0, 42,109,116,101,120, 91, 49,
- 56, 93, 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 91, 51, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,
-115,115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,
-115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,
-114,101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,
-100,101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,
-116,121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,
-104,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,
-115, 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, 97,116,101,114,105, 97,108, 95,116,
-121,112,101, 0,115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,
-109,105,114, 98, 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103,
- 0,115,112,101, 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,
-101, 99, 0,122,111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102,114,
-101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,
-116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,
-116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104,
- 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,
-108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,
-115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,
-114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,
-114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,
-108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,
-108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,
-110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,
-114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,
-105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97,115,
- 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,
-112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,
-100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,
-115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,
-114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114,
- 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,
-110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,
-111,108, 0,114, 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,
-102,104, 0,114,101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,
-100,101, 0,115,115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,
-101,114,114,111,114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102,
- 97, 99, 0,115,115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107,
- 0,115,115,115, 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,
-114,101,100, 0,103,112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49,
- 0,106, 49, 0,107, 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,
-113,117, 97,116, 91, 52, 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,
-115, 0, 42,109, 97,116, 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,
-109,115, 0, 42, 42,109, 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,
-101,110,100,101,114,115,105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51,
- 93, 91, 51, 93, 0, 97,108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,
-104,105,100,101, 0,118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,
-101,115,111,108,117, 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117,
- 0,102,108, 97,103,118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,
-114,112, 0,114, 97,100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,104, 0,
-110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106,
- 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,
-119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101, 0,112, 97,100, 91, 50, 93, 0,116,119,105,115,116, 95,115,109,
-111,111,116,104, 0,112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49,
- 0,101,120,116, 50, 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,
-117, 0, 42,108, 97,115,116,115,101,108, 98,112, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,
-105,110,101,100,105,115,116, 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,
-112,111,115, 0,117,108,104,101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,
-115,116,114, 0, 42,115,101,108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50,
- 52, 93, 0, 42,118,102,111,110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116,
- 98,105, 0,115,101,112, 99,104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,
-116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,
-110,102,111, 0,101,102,102,101, 99,116, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101,
- 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,
-105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,
-101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,
-116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0,101,100,105,116,102,108, 97,
-103, 0, 99,117, 98,101,109, 97,112,115,105,122,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,
-115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, 97,
-103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,
-110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0,
- 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91,
- 51, 93, 0,110,111, 91, 51, 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, 0,115,
- 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,
-100, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,
-118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116,
- 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108,
- 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,
-101,115, 0, 42,118,101,114,116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,
-115, 0, 42,111,108,100, 95,101,100,103,101,115, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0,115,117, 98,
-100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109,
- 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,
-111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,
-110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,
-101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,
-112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,
-110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101,
- 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115,
- 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93, 0, 42,100,111,
-109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0, 42,116,101,120,116,117,114,101, 0,115,
-116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0,116,101,120,109, 97,
-112,112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 51,
- 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,
-105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,
-101, 99,116,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,
-116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,
-105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,
-105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,
-105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112, 97,114,101,110,116,105,
-110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,
-101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115,
- 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,
-101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0,
- 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,
-109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0,
- 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110,
- 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110,100, 99,111,
-115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110,102,108,117,
-101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100,115,105,122,
-101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, 98,105,110,
-100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,
-111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,
-105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,
-114,111,117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116,108,118,
-108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116,
- 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107,
- 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102,
- 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,
-114,105,103,105,110, 79,112,116,115, 0, 99,114,101, 97,115,101, 95,105,110,110,101,114, 0, 99,114,101, 97,115,101, 95,111,117,
-116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,
-115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,
-118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,
-108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93,
- 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,
-112, 97,114,115,117, 98,115,116,114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,
-120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,
-115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,
-116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115,
- 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,
-111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,
-113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,
-111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,
-110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108,
- 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,
-110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115,
- 99, 97,118,105,115,102,108, 97,103, 0, 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102,
- 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,
-110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,
-110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,
-115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,100,116,120, 0,101,109,
-112,116,121, 95,100,114, 97,119,116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,
-105,122,101, 0,100,117,112,102, 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,
-114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,
-101,102, 0,103, 97,109,101,102,108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,
-116,102,108, 97,103, 0, 97,110,105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,
-115,116,114, 97,105,110,116,115, 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,
-101,115,121,115,116,101,109, 0, 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,
-109, 70,108, 97,103, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,110,114, 0,115,104, 97,112,101,
-102,108, 97,103, 0,114,101, 99, 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109,
- 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100,
- 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116,
- 97,116,101, 0,103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0, 99,117,
-114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,
-105,109, 97,116,101,100, 0,111,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,
-116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107,
- 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,
-112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,
-109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,
-112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,
-100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0,112,100,101,102, 95,115,116,105, 99,107,
-110,101,115,115, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102,
- 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,
-112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95,
- 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,
-105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116,
- 91, 51, 93, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,105,
-110,100,101,120, 95, 97,114,114, 97,121, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,115,116,101,112,
- 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,
-105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118,
- 95,110, 97,109,101, 91, 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0,109,101,109,
- 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,
-116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115,
- 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,
-105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,
-107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84,
- 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70,
- 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,
-111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,
-100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,
-109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,
-100, 86, 71, 95, 77, 97,115,115, 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,
-105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111,
- 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,
-118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,
-117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86,
- 71, 95, 83,112,114,105,110,103, 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99,
- 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,
-121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0,
- 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,
-111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108,
- 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101,
- 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101,
- 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,
-108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,
-100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,
-118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,
-100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,
-108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,
-101,110,116, 0,103,114, 97,118,120, 0,103,114, 97,118,121, 0,103,114, 97,118,122, 0, 97,110,105,109, 83,116, 97,114,116, 0,
- 97,110,105,109, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105, 86,101,108,120, 0,
-105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,101,115,104, 83,117,
-114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 50, 52, 48, 93, 0,
- 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,
-111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,
-116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114,
- 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117,
-114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,
-116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104,
- 83,117,114,102, 78,111,114,109, 97,108,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101,
- 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,
-103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121,102,
-111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115,
- 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114,103,
- 0,104,111,114, 98, 0,104,111,114,107, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,122,101,110,107, 0, 97,
-109, 98,107, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,
-105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120,
- 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,
-105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,
-104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116,
- 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116,
- 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,
-116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,
-110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97,
- 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0,
- 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111,
- 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114,
- 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,
-116, 95,101,110,101,114,103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,
-111, 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,
-112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,
-114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,
-101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99,
- 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,
-101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,
-121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,
-118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,
-109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0,
- 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,
-100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,
-101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121,
- 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101,
- 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,
-116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,
-117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114, 97,116,101,
- 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,117,120, 95,
-112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,
-110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,
-100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,
-103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112,
- 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,
-113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,
-100,101, 99,100, 97,116, 97, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,
-112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,
-101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,
-121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,114,116, 50, 0,102,114, 97,109,101, 95,
-115,116,101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116,
- 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,
-116,115, 0,119,105,110,112,111,115, 0,112,108, 97,110,101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,
-101, 0,113,117, 97,108,105,116,121, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100,
- 50, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114,
- 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0, 97,108,112,
-104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,
-121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,
-109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95,
- 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,
-109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,
-115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,
-111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0,
- 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,
-101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0, 71, 73,113,117, 97,108,105,116,121, 0, 71, 73,
- 99, 97, 99,104,101, 0, 71, 73,109,101,116,104,111,100, 0, 71, 73,112,104,111,116,111,110,115, 0, 71, 73,100,105,114,101, 99,
-116, 0, 89, 70, 95, 65, 65, 0, 89, 70,101,120,112,111,114,116,120,109,108, 0, 89, 70, 95,110,111, 98,117,109,112, 0, 89, 70,
- 95, 99,108, 97,109,112,114,103, 98, 0,121,102,112, 97,100, 49, 0, 71, 73,100,101,112,116,104, 0, 71, 73, 99, 97,117,115,100,
-101,112,116,104, 0, 71, 73,112,105,120,101,108,115,112,101,114,115, 97,109,112,108,101, 0, 71, 73,112,104,111,116,111,110, 99,
-111,117,110,116, 0, 71, 73,109,105,120,112,104,111,116,111,110,115, 0, 71, 73,112,104,111,116,111,110,114, 97,100,105,117,115,
- 0, 89, 70, 95,114, 97,121,100,101,112,116,104, 0, 89, 70, 95, 65, 65,112, 97,115,115,101,115, 0, 89, 70, 95, 65, 65,115, 97,
-109,112,108,101,115, 0,121,102,112, 97,100, 50, 0, 71, 73,115,104, 97,100,111,119,113,117, 97,108,105,116,121, 0, 71, 73,114,
-101,102,105,110,101,109,101,110,116, 0, 71, 73,112,111,119,101,114, 0, 71, 73,105,110,100,105,114,112,111,119,101,114, 0, 89,
- 70, 95,103, 97,109,109, 97, 0, 89, 70, 95,101,120,112,111,115,117,114,101, 0, 89, 70, 95,114, 97,121, 98,105, 97,115, 0, 89,
- 70, 95, 65, 65,112,105,120,101,108,115,105,122,101, 0, 89, 70, 95, 65, 65,116,104,114,101,115,104,111,108,100, 0, 98, 97, 99,
-107, 98,117,102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,
-111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93, 0,102,103, 95,115,116, 97,109,112,
- 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,
-109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,
-109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,
-121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0,
- 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104,
- 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,
-101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,
-101,110,103,105,110,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102,
- 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,
-116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,
-109,111,100,101, 0,102,114, 97,109,105,110,103, 0,114,116, 49, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103,
- 0,101,121,101,115,101,112, 97,114, 97,116,105,111,110, 0, 42, 99, 97,109,101,114, 97, 0, 42, 42, 98,114,117,115,104,101,115,
- 0, 97, 99,116,105,118,101, 95, 98,114,117,115,104, 95,105,110,100,101,120, 0, 98,114,117,115,104, 95, 99,111,117,110,116, 0,
- 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52,
- 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0,
- 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116,
- 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,
-114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,
-116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51, 54, 93, 0,109, 97,116, 91, 51, 93, 91,
- 51, 93, 0,112,105,118,111,116, 91, 51, 93, 0,116, 97, 98,108,101,116, 95,115,105,122,101, 0,116, 97, 98,108,101,116, 95,115,
-116,114,101,110,103,116,104, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,
-118, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0,
- 99,111,114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,
-109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,
-116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,
-114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,
-114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,
-114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,
-103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,
-109,111,100,101, 0,117,118, 95,112, 97,100, 91, 50, 93, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,
-109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,
-122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,
-116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,114,101,116,111,112,111, 95,109,
-111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,108,105,110,101, 95,100,105,118, 0,101,
-108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,112,111,116, 0,109,117,108,116,105,114,
-101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,
-115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,
-104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114,
- 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,
-103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,
-116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116,
- 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,
-116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,
-105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,
-101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,
-115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,
-105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,
-116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,
-103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116,
- 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,
-108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109,
- 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,115,110, 97,112, 95,109,111,100,101, 0,115,
-110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,
-108, 0,112,114,111,112, 95,109,111,100,101, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,105,110,116,112, 97,
-100, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,
-114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,
-110,103,116,104, 0,115,121,115,116,101,109, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0, 42,119,111,114,108,100, 0, 42,115,
-101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51,
- 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0, 42,101,
-100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,
-110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,
-100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103,
- 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,106,117,109,112,102,114, 97,109,101, 0,112,
- 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,
-103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100, 0,118,
-105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,
-105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,
-110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,
-111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93,
- 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111,
-109, 0,118,105,101,119, 98,117,116, 0,116,119,100,114, 97,119,102,108, 97,103, 0,114,102,108, 97,103, 0,118,105,101,119,108,
-111, 99,107, 0,112,101,114,115,112, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91,
- 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,114,101,116,111,
-112,111, 95,118,105,101,119, 95,100, 97,116, 97, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,
-104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,
-119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,112, 97,100,102, 0,114,101,103,105,111,
-110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,
-104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,
-103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 51,
- 50, 93, 0,108, 97,121, 97, 99,116, 0,100,114, 97,119,116,121,112,101, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,
-117,110,100, 0,112,105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,103,114,105,
-100,108,105,110,101,115, 0,103,114,105,100,102,108, 97,103, 0,103,114,105,100,115,117, 98,100,105,118, 0,109,111,100,101,115,
-101,108,101, 99,116, 0,107,101,121,102,108, 97,103,115, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,
-108, 97,103, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97,119, 0,122, 98,
-117,102, 0,120,114, 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,
-112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,
-110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,
-108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,
-101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,
-100,119,105,110,121, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,
-110,117,109, 0,116, 97, 98, 95, 99,117,114, 0, 42,115, 99,114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,
-115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110,
- 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,
-105,101,119, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110,
-100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,
-116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, 50, 52, 48, 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,
-102,105,108,101, 91, 56, 48, 93, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,111,
-107,109, 97,114,107, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 0,102, 95,102,112, 0,
-109,101,110,117, 0,102,112, 95,115,116,114, 91, 56, 93, 0, 42,112,117,112,109,101,110,117, 0, 42,112, 97,114, 97,109,115, 0,
- 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,
-120,116, 0, 42,111,112, 0, 42,108,111, 97,100,105,109, 97,103,101, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,
-114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,
-101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,
-101, 97,114, 99,104, 95,116,115,101, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,117,116,108,105,
-110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, 0, 99,117,114,
-116,105,108,101, 0,105,109,116,121,112,101,110,114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105,
- 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0,104,105,115,
-116, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,
-105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,
-115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101,
- 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,
-108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,
-115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,
-119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,
-101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112,
- 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53,
- 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0,114,101,100,114, 97,119,115, 0, 42,105,100,
- 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101,
- 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,
-105,108,101,115,121, 0,118,105,101,119,114,101, 99,116, 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,
-108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,
-116,118, 97,108, 0,112,114,118, 95,119, 0,112,114,118, 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41,
- 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,
-117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,
-105,109,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,114,112,116, 95,109, 97,115,107, 0,115, 99,
-114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,
-103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,101,
-110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,
-108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,
-100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,
-111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,
-100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97,
- 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112,
- 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,
-110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,
-112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,
-101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91,
- 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,
-104, 97,100,101,100,111,119,110, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,
-109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,
-115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,
-118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,
-108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,
-111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,
-115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119,
- 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,
-108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109,
- 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93,
- 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,
-101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101,
- 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110,
- 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,
-116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93,
- 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,
-110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116,
- 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,
-104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91,
- 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,
-114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,
-109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,
-101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109,
- 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52,
- 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,
-116, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0,
- 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112,
- 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,100,115,
- 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,
-115,111,108,101, 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0,
- 99,111,110,115,111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93,
- 0, 99,111,110,115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,102,
- 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112, 97,100, 91, 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,
-121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,
-115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,
-110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91,
- 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,
-104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,
-100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,
-101,120, 95,115,105,122,101, 0,104,112, 97,100, 91, 51, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, 52, 93, 0,
-115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,
-112,111, 0,116,105,110,102,111, 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109,
- 97, 0,116,105,109, 97,115,101,108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101,
- 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 97,114,109, 91,
- 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93,
- 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,
-114, 91, 49, 54, 48, 93, 0,102,111,110,116,100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54,
- 48, 93, 0,116,101,120,116,117,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93,
- 0,112,108,117,103,115,101,113,100,105,114, 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,
-115,111,117,110,100,100,105,114, 91, 49, 54, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 50, 52, 48, 93, 0, 97,
-110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103,114,105,100,115,105,
-122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,
-108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,
-111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,
-119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,
-105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115,
- 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,
-115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,
-111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121,
- 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,
-114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,
-100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,
-102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,
-119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,
-116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,
-101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, 97,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,
-105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111,114,
-116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105,
-115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111,111,
-116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,100,111,102, 95,112, 97,110, 0,110,100,
-111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0,105,112,111, 95,110,101,119, 0, 99,111,108,111,114,
- 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119,
- 97,105,116, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,114, 91, 49,
- 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,118,101,114,116,
- 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101,
- 0,102,117,108,108, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,
-111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,
-111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,
-119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,
-110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101,
- 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110,
- 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97,
- 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112,
- 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97,
- 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116,
- 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91,
- 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,
-101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,
-105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,
-101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,
-101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,
-116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110,
- 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,
-101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,
-105, 98,117,102, 0, 42,105, 98,117,102, 95, 99,111,109,112, 0, 42,115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,
-114, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93,
- 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,115, 97,116,117,114, 97,116,105,111,110, 0,100,105,114,
- 91, 49, 54, 48, 93, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,
-115,116,114,105,112,100, 97,116, 97, 0,111,114,120, 0,111,114,121, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,
-114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,
-115,116,114,105,112,100, 97,116, 97, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97,
- 95,101,110,100,115,116,105,108,108, 0, 42,105, 98,117,102, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102,
- 95,101,110,100,115,116,105,108,108, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97,
- 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,
-114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,
-110,100,100,105,115,112, 0,109,117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107,
- 0, 42,115,116,114,105,112, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114,
- 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,
-100, 0, 42,115, 99,101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,110,101,110,114,
- 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,
-115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,
-112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,
-101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,
-105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,101,100,103,101, 87,105,
-100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,
-112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0,
- 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99,
- 97,108,101,121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,
-110,105, 0,114,111,116, 70,105,110, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,
-115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116,
- 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,
-111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,
-102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109,
- 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0,
- 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,
-116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,
-102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91,
- 51, 50, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97,
- 99, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,
-108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,
-116, 78, 97,109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51,
- 50, 93, 0,109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109,
- 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,
-109,101, 91, 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101,
- 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109,
- 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,
-101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,
-112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,
-116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0,
- 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115,
- 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91,
- 51, 50, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,
-116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,115,110,100,110,114, 0,112, 97,100,
- 51, 91, 50, 93, 0,112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,
-105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99,
- 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93,
- 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,
-110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110,
- 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93,
- 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93,
- 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95,
- 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,
-116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116,
- 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,
-109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,
-103,101,116, 0,103,111, 0, 97, 99, 99,101,108,108,101,114, 97,116,105,111,110, 0,109, 97,120,115,112,101,101,100, 0,109, 97,
-120,114,111,116,115,112,101,101,100, 0,109, 97,120,116,105,108,116,115,112,101,101,100, 0,116,105,108,116,100, 97,109,112, 0,
-115,112,101,101,100,100, 97,109,112, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,
-114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,
-111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101,
- 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0, 42,110,101,
-119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101,
- 0, 42, 99, 97, 99,104,101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42, 97,114,101, 97, 0, 42,
-108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,
-111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51,
- 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109,
- 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,120,119,105,100,116,104, 0,122,119,
-105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,
-105,108, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116,
- 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,
-112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,
-116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112,
- 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,
-116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,
-102, 0,103,104,111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,
-115,116, 95,116,121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,
-116,104, 95,116,121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,
-112, 97,116,104, 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,
-116,104, 95, 98, 99, 0,112, 97,116,104, 95, 97, 99, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,
-101,108,101, 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,
-100, 0,105,107,116,114,101,101, 0, 42, 98, 95, 98,111,110,101, 95,109, 97,116,115, 0, 42,100,117, 97,108, 95,113,117, 97,116,
- 0, 42, 98, 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116,115, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,
-109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101,
- 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,
-105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,
-104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 42, 99,117,115,116,111,
-109, 0, 42, 99,117,115,116,111,109, 95,116,120, 0, 99,104, 97,110, 98, 97,115,101, 0,112,114,111,120,121, 95,108, 97,121,101,
-114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116,
- 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,
-114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,
-101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97,
- 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,
-108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,
-116,105,118,101, 95,109, 97,114,107,101,114, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,
-102,105,108,116,101,114,102,108, 97,103, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,116,101,
-109,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,
-102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,
-111,114, 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,
-100,101,114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,
-111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,
-101,115,117, 98,116, 97,114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,
-101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104,
- 97,105,110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,
-101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93,
- 0,108,111, 99,107,102,108, 97,103, 0,111,102,102,115,101,116, 95,102, 97, 99, 0,102,111,108,108,111,119,102,108, 97,103, 0,
-118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,
-118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,
-116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91,
- 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,
-105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109,
- 97,120, 91, 51, 93, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51,
- 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,
-100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,
-108,101,110, 0,115, 99, 97,108,101, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108,
- 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,
-117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,
-111, 99,107, 0,110,115, 0,108,105,109,105,116, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,105,110,116,101,114,110, 0,
-115,116, 97, 99,107, 95,105,110,100,101,120, 95,101,120,116, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,
-100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42,116,111,115,111, 99,107, 0, 42,108,105,110,107, 0, 42,110,101,119, 95,
-110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,
-119,105,100,116,104, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,
-115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97,
- 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111,
- 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0,110,111,100,
-101,115, 0,108,105,110,107,115, 0, 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,
-116, 0,115,116, 97, 99,107,115,105,122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 42,
-111,119,110,116,121,112,101, 0,112, 97,100, 50, 91, 50, 93, 0, 40, 42,116,105,109,101, 99,117,114,115,111,114, 41, 40, 41, 0,
- 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0,
- 42,116, 98,104, 0, 42,116, 99,104, 0, 42,115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,
-108,101,115, 0,109,105,110,115,112,101,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,
-111,107,101,104, 0,103, 97,109,109, 97, 0, 99,117,114,118,101,100, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104,
- 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114,
- 95,121, 0,115,112,105,110, 0,105,116,101,114, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,
-103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,115, 97,116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,
-110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0, 99,
-111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109, 99,111,
- 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0, 42,
-100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,120, 0,
-116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,
-115,108,111,112,101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,
-101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0,
- 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0, 99,117,114,114, 0,
- 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,
-109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,
-116, 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54,
- 93, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,109,116,101,120, 0,106,105,116,116,101,114, 0,115,109,
-111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101,
- 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,
-118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108,
- 0, 97, 99,116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,
-109, 97,115,107, 0, 42,108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,
-111,116,115,105,122,101, 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,118,101,108, 91, 51, 93, 0,114,111,
-116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,110,117,
-109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,
-101,116, 0,114,116, 91, 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,
-100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,
-108,105,118,101, 0, 42, 98,111,105,100,115, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,
-100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,
-115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,114,101,110, 95,115,116,101,112, 0,104,
- 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97,
-100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,
-108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105,
-116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98,
- 95,111,102,102,115,101,116, 91, 50, 93, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,
-108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,
-109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99,
- 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114,101,115, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97,
- 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,
-101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,
-115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0,114,101, 97, 99,116,115,104, 97,112,101, 0, 97, 99, 99, 91, 51, 93,
- 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,114, 97,110,100,108,101,
-110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,
-101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,
-108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116, 0, 99,108,117,109,112,112,111,119, 0,114,111,117,103,104, 49, 0,
-114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,
-111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,
-115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,116,104,114,101,115, 0, 98,114, 97,110,
- 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116,
- 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,
-115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111,
- 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42,
- 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,
-101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114,
- 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,
-108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, 97,109,101, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99,
- 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,
-116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91,
- 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,
-114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114,115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,
-110,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109,
- 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103,
- 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,
-115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,
-100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116,
-105,111,110, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114,
-105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118,
-103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,112,114,101,115,101,116,115,
- 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,
-101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,115,101,108,102, 95,108,111,
-111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0,116,104,105,
- 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,
-101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115,
- 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0, 42,116,121,112,101,115,116,114, 0, 42,
-109,101,115,115, 97,103,101, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,
-101,108, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105,110,100,111,
-119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112, 95,117,110,100,
-111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,
-106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99,111,110,102,105,
-103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,
-116,105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,110,101,119,115,
- 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,
-105,110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0, 97,100,
-100,109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0,
- 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,
-100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,
-115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116,
- 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,
-121,112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,
-107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,
-115,101,110, 97,109,101, 91, 54, 52, 93, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0,
- 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,
-115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,
-111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114,
- 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,
-101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,
-111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,
-115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105,
- 99, 97,116,105,111,110, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,
-116,114, 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,
-116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54,
- 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,
-110,100,101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50,
- 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,
-112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,
-120,116,101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,116,101,109,112,108, 97,116,101,115, 0,103,114,
-111,117,112,109,111,100,101, 0,112, 97,116,104,115, 0,107,101,121,105,110,103,102,108, 97,103, 0, 97, 99,116,105,118,101, 95,
-112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,
-112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,
-101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,
-117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,
-100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,
-119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,
-101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,
-108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,
-116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,
-110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97, 99, 99,117,114, 97, 99,121, 0, 97,105,114, 95,109,105,110, 95,115,
-112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,
-105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,
-110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,
-100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,
-111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,
-101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,
-108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0,
- 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,
-112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,
-118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,
-100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,
-109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,
-105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0,118,101,108,111, 99,105,116,
-121, 91, 51, 93, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,
-108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,
-112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 0,
- 84, 89, 80, 69,202, 1, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,
-105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0,118,111,105,100,
- 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101,
- 99, 50,102, 0,118,101, 99, 50,105, 0,118,101, 99, 50,100, 0,118,101, 99, 51,105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,
-100, 0,118,101, 99, 52,105, 0,118,101, 99, 52,102, 0,118,101, 99, 52,100, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68,
- 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,
-114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,
-101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,
-112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,
-120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,
-101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71,
- 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120,
- 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0,
- 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 86,111,120,101,108, 68,
- 97,116, 97, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 67,117,
-114,118,101, 77, 97,112,112,105,110,103, 0, 87, 97,118,101, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 77,
- 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,
-116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104,
- 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120,
- 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,
-101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77,
- 83,116,105, 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,
-116, 97, 0, 77,117,108,116,105,114,101,115, 0, 80, 97,114,116,105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,
-101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,
-111,112, 67,111,108, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,
-121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0,
- 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97,
- 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,
-116,105,114,101,115, 76,101,118,101,108, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,
-111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0,
- 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68,
- 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,
-101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,
-108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116,
- 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,
-114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,
-108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,
-115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,
-102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,
-111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116,
- 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,
-105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,
-121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0,
- 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108,
- 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,
-105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,
-114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,
-104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,
-110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68,
- 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80,
- 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,
-100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,
-117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,
-102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,
-119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,
-105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,
-111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,
-111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98,
- 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 77,
-111,116,105,111,110, 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,
-108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116,
- 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0,
- 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,
-111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,
-118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,
-117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101,
- 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114,
- 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,
-109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,
-101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,
-115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116,
- 83,101,116,116,105,110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 83, 99,
-117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0,
- 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,
-116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112,105, 99, 0,
- 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,116,111,112,111, 86,105,
-101,119, 68, 97,116, 97, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,
-101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50,
- 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 98, 83, 99,114,101,101,110, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,
-112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,
-101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,
-109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,
-114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,
-101, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, 83,
- 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,
-101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111,110,
-115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,
-114,101,102, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,
-105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,
-115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,
-108,111,114, 0, 98, 84,104,101,109,101, 0, 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,
-114, 68,101,102, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108,
- 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0,
- 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,
-116,114,105,112, 69,108,101,109, 0, 84, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,
-114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,
-116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110,
- 99,101, 0, 98, 83,111,117,110,100, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,
-119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,
-114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100,
- 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,
-111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0,
- 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,
-111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,
-108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,
-114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114,
- 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0,
- 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,
-115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0,
- 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,
-116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,
-100, 51, 68, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,
-116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116,
- 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,
-117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112,
- 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,
-101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,
-105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0,
- 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98,
- 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 70,114,101,101, 67, 97,109,101,114, 97, 0, 83,112, 97, 99,
-101, 83,111,117,110,100, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,
-101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 98,
- 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,
-101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,
-110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,
-116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109,
- 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105,
-110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107,
-101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,
-116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105,107,101,
- 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,
-116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119,
- 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,
-108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,
-105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116,
- 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116,
- 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116,
- 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,
-111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98,
- 78,111,100,101, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,
-121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,
-111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,
-116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101,
- 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0,
- 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,
-101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0,
- 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,
-111,114, 66, 97,108, 97,110, 99,101, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112,
- 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109,
- 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105,
-114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,
-105,100, 68, 97,116, 97, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,
-103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101,
- 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110,
-103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105,
- 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0,
- 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,
-101,112,111,114,116, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114,
- 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109,
- 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109,
- 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,
-121,112,101, 0, 70, 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,
-100, 95, 70,117,110, 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101,
- 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70,
- 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,
-101, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0, 67,104, 97,110,110,101,108,
- 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,105,114,
- 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0, 75, 83,
- 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,100, 65,
-100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101, 71,111, 97,108,
- 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110, 0, 66,111,105,
-100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118,101,114, 97,103,
-101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101, 0, 70,
- 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0,
- 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 8, 0, 12, 0, 8, 0, 4, 0, 8, 0, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0,
- 16, 0, 16, 0, 32, 0, 16, 0, 16, 0, 20, 0, 76, 0, 52, 0, 40, 2, 0, 0, 32, 0,140, 0,220, 3, 92, 0, 36, 0, 56, 0,
- 84, 0,112, 0,124, 0, 56, 0, 24, 0, 40, 0,120, 0, 12, 0,120, 0, 36, 0,168, 5,128, 1, 0, 0, 0, 0, 0, 0, 8, 1,
- 40, 1, 84, 1, 24, 0, 8, 3,168, 0, 0, 0, 72, 0, 24, 1,152, 0,132, 0,140, 1, 8, 1, 56, 0, 88, 0,160, 2, 76, 0,
- 60, 1, 0, 0,108, 0,104, 0,148, 0, 56, 0, 8, 0, 16, 0, 92, 1, 0, 0, 0, 0, 0, 0, 40, 1, 20, 0, 44, 0, 60, 0,
- 24, 0, 12, 0, 12, 0, 4, 0, 8, 0, 8, 0, 0, 0, 28, 0, 84, 0, 32, 0, 8, 0, 12, 0, 8, 0, 8, 0, 4, 0, 4, 0,
- 0, 1, 32, 0, 12, 0, 16, 0, 64, 0, 24, 0, 12, 0, 40, 0, 56, 0, 72, 0, 92, 0,100, 0, 72, 0,100, 0,120, 0, 68, 0,
- 64, 0,112, 0, 64, 0, 76, 0,188, 0, 48, 0,168, 0,152, 0,156, 0, 64, 0, 96, 0,108, 0,188, 0,104, 0,216, 0, 56, 0,
- 84, 0, 0, 0,136, 0, 28, 0,240, 1,104, 0, 0, 0, 80, 0, 0, 0, 0, 0, 68, 0, 8, 0, 8, 0,224, 0, 80, 0,124, 1,
- 76, 0, 68, 0, 64, 0, 64, 0,168, 1,112, 0,108, 0, 56, 0,112, 0,188, 0, 40, 0, 0, 0, 92, 0,112, 0, 72, 0, 48, 0,
- 20, 0,120, 0,144, 0, 88, 1,208, 0,180, 0, 0, 0, 68, 0, 92, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,120, 1, 28, 0,
-176, 0,144, 0, 40, 0, 60, 0, 24, 0, 72, 0, 40, 4, 56, 0, 20, 0, 16, 0,100, 0, 84, 0, 24, 0,132, 1, 36, 0, 16, 0,
-156, 0, 80, 0, 48, 0, 44, 0,136, 1, 32, 0, 8, 0, 16, 0, 24, 2, 0, 0, 0, 0, 72, 0, 72, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,248, 0, 40, 0,148, 0, 48, 0,140, 0,216, 0, 24, 0,224, 0,224, 0,204, 1, 60, 0, 0, 0,120, 0, 0, 0,
- 4, 1, 12, 0, 12, 0,160, 12, 24, 12,200, 0,124, 2, 80, 2, 40, 0,180, 0,244, 0, 52, 0,148, 2, 28, 0,112, 1, 24, 0,
- 16, 1, 32, 0,224, 0, 32, 0, 32, 0, 80, 2, 40, 1, 16, 0,144, 24, 72, 0, 56, 0,232, 11, 20, 0, 24, 0, 64, 1, 0, 0,
- 0, 0, 96, 0, 0, 0,248, 0, 0, 0, 16, 1, 80, 0, 28, 0, 16, 0, 8, 0, 52, 0,252, 0,240, 0,168, 1,204, 0, 12, 1,
- 16, 0, 12, 0, 24, 0, 52, 0, 16, 0, 20, 0, 16, 0, 24, 0, 56, 1, 0, 0, 56, 0, 52, 0, 48, 0, 8, 0, 44, 0, 72, 0,
-104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 68, 0, 76, 0, 80, 0, 60, 0,128, 0, 76, 0, 60, 0, 12, 0,
- 92, 0, 68, 0, 32, 0, 80, 0, 16, 0, 76, 0,108, 0, 84, 0, 28, 0, 96, 0, 56, 0, 56, 0,108, 0,140, 0, 4, 0, 20, 0,
- 12, 0, 8, 0, 80, 0, 40, 0,196, 0, 24, 0, 16, 1,144, 0, 16, 0,204, 1, 4, 0, 40, 0,104, 0,224, 0, 64, 0, 44, 0,
- 72, 0,116, 0, 60, 0,112, 0, 16, 0, 52, 0, 44, 0, 44, 0, 44, 0, 36, 0, 68, 0, 64, 0, 44, 0, 44, 0, 20, 0, 52, 0,
- 96, 0, 12, 0,108, 0, 92, 0, 28, 0, 28, 0, 28, 0, 52, 0, 20, 0, 60, 0,140, 0, 36, 0,120, 0, 32, 0,180, 0, 0, 0,
- 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1, 40, 0, 8, 0, 8, 0, 64, 0, 32, 0, 24, 0, 8, 0, 24, 0,
- 32, 0, 8, 0, 72, 0, 32, 0, 12, 0, 44, 0, 20, 0, 68, 0,240, 0, 24, 0, 56, 0, 52, 0, 20, 0, 64, 0, 28, 0, 20, 0,
-180, 0,196, 1, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 20, 0, 24, 0,172, 0, 24, 0, 24, 0,164, 0,148, 0,216, 0,
- 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 96, 0, 0, 0, 88, 0, 20, 0, 24, 0, 16, 0, 20, 0, 8, 0, 8, 0, 24, 0, 20, 0,
- 48, 0,208, 1, 28, 1, 16, 0, 68, 0, 0, 1, 20, 0,160, 0, 88, 0, 96, 0, 88, 0, 20, 0, 56, 0, 48, 0, 68, 0, 56, 0,
- 92, 0, 64, 0, 56, 0, 96, 0, 0, 0, 0, 0, 83, 84, 82, 67,144, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0,
- 11, 0, 3, 0, 11, 0, 0, 0, 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0,
- 2, 0, 5, 0, 2, 0, 6, 0, 14, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 15, 0, 2, 0, 4, 0, 5, 0, 4, 0, 6, 0,
- 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 18, 0, 3, 0,
- 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 20, 0, 4, 0,
- 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0,
- 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, 4, 0, 9, 0,
- 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0,
- 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, 26, 0, 1, 0,
- 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, 4, 0, 24, 0,
- 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, 2, 0, 19, 0,
- 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0,
- 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0,
- 2, 0, 43, 0, 4, 0, 44, 0, 31, 0, 6, 0, 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, 2, 0, 19, 0,
- 0, 0, 48, 0, 33, 0, 21, 0, 33, 0, 0, 0, 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, 24, 0, 52, 0,
- 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, 2, 0, 57, 0,
- 7, 0, 11, 0, 7, 0, 12, 0, 4, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, 36, 0, 7, 0,
- 27, 0, 31, 0, 12, 0, 63, 0, 24, 0, 64, 0, 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, 37, 0, 16, 0,
- 37, 0, 0, 0, 37, 0, 1, 0, 7, 0, 67, 0, 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, 2, 0, 19, 0,
- 4, 0, 69, 0, 4, 0, 70, 0, 9, 0, 2, 0, 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, 7, 0, 74, 0,
- 38, 0, 13, 0, 27, 0, 31, 0, 39, 0, 75, 0, 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, 12, 0, 79, 0,
- 36, 0, 80, 0, 27, 0, 81, 0, 2, 0, 17, 0, 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 6, 0, 40, 0, 0, 0,
- 40, 0, 1, 0, 0, 0, 84, 0, 0, 0, 85, 0, 4, 0, 23, 0, 4, 0, 86, 0, 41, 0, 10, 0, 41, 0, 0, 0, 41, 0, 1, 0,
- 4, 0, 87, 0, 4, 0, 88, 0, 4, 0, 89, 0, 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0,
- 42, 0, 15, 0, 27, 0, 31, 0, 0, 0, 93, 0, 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, 40, 0, 97, 0,
- 4, 0, 98, 0, 4, 0, 99, 0, 12, 0,100, 0, 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, 8, 0,105, 0,
- 43, 0, 3, 0, 4, 0,106, 0, 4, 0,107, 0, 9, 0, 2, 0, 44, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0,
- 2, 0, 19, 0, 7, 0,108, 0, 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0,
- 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 2, 0,119, 0, 2, 0,120, 0, 7, 0,121, 0, 36, 0, 80, 0,
- 32, 0,122, 0, 45, 0, 13, 0, 4, 0,123, 0, 4, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 2, 0,127, 0, 2, 0,128, 0,
- 2, 0, 19, 0, 2, 0,129, 0, 2, 0,130, 0, 2, 0,131, 0, 2, 0,132, 0, 2, 0,133, 0, 46, 0,134, 0, 47, 0, 32, 0,
- 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,135, 0, 48, 0,136, 0, 49, 0,137, 0, 50, 0,138, 0, 2, 0,129, 0, 2, 0, 19, 0,
- 2, 0,139, 0, 2, 0, 17, 0, 2, 0, 37, 0, 2, 0, 43, 0, 4, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,143, 0,
- 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, 4, 0,147, 0, 4, 0,148, 0, 43, 0,149, 0, 30, 0,150, 0, 0, 0,151, 0,
- 7, 0,152, 0, 4, 0,153, 0, 2, 0,154, 0, 2, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 7, 0,158, 0, 7, 0,159, 0,
- 51, 0, 63, 0, 2, 0,160, 0, 2, 0,161, 0, 2, 0,162, 0, 2, 0,163, 0, 32, 0,164, 0, 52, 0,165, 0, 0, 0,166, 0,
- 0, 0,167, 0, 0, 0,168, 0, 0, 0,169, 0, 0, 0,170, 0, 7, 0,171, 0, 7, 0,172, 0, 7, 0,173, 0, 2, 0,174, 0,
- 2, 0,175, 0, 2, 0,176, 0, 2, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 7, 0,182, 0,
- 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0, 57, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0,
- 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0,
- 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0,
- 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0,
- 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0,
- 53, 0, 15, 0, 0, 0,222, 0, 9, 0,223, 0, 0, 0,224, 0, 0, 0,225, 0, 4, 0,226, 0, 4, 0,227, 0, 9, 0,228, 0,
- 7, 0,229, 0, 7, 0,230, 0, 7, 0,231, 0, 4, 0,232, 0, 9, 0,233, 0, 9, 0,234, 0, 4, 0,235, 0, 4, 0, 37, 0,
- 54, 0, 6, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,236, 0, 7, 0, 67, 0, 4, 0, 64, 0, 55, 0, 5, 0,
- 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 64, 0, 2, 0,237, 0, 54, 0,231, 0, 56, 0, 17, 0, 32, 0,164, 0, 47, 0,238, 0,
- 57, 0,239, 0, 7, 0,240, 0, 7, 0,241, 0, 2, 0, 17, 0, 2, 0,242, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,243, 0,
- 4, 0,244, 0, 2, 0,245, 0, 2, 0,246, 0, 4, 0,129, 0, 4, 0,140, 0, 2, 0,247, 0, 2, 0,248, 0, 58, 0, 22, 0,
- 2, 0, 19, 0, 2, 0,249, 0, 7, 0,250, 0, 7, 0,251, 0, 2, 0,139, 0, 2, 0,252, 0, 4, 0,253, 0, 4, 0,254, 0,
- 32, 0,164, 0, 4, 0,255, 0, 2, 0, 0, 1, 2, 0, 1, 1, 9, 0, 2, 1, 7, 0, 3, 1, 7, 0, 4, 1, 2, 0, 5, 1,
- 2, 0, 6, 1, 2, 0, 7, 1, 2, 0, 8, 1, 7, 0, 9, 1, 7, 0, 10, 1, 55, 0, 11, 1, 59, 0, 11, 0, 4, 0, 12, 1,
- 4, 0, 13, 1, 2, 0, 14, 1, 2, 0, 19, 0, 2, 0, 15, 1, 2, 0, 16, 1, 32, 0,164, 0, 7, 0, 17, 1, 4, 0, 18, 1,
- 0, 0, 19, 1, 7, 0, 20, 1, 52, 0, 61, 0, 27, 0, 31, 0, 39, 0, 75, 0, 7, 0, 21, 1, 7, 0, 22, 1, 7, 0, 23, 1,
- 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1,
- 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1,
- 7, 0, 40, 1, 2, 0, 41, 1, 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 47, 1,
- 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,242, 0, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 7, 0, 51, 1, 4, 0, 52, 1,
- 4, 0, 53, 1, 2, 0, 54, 1, 2, 0, 55, 1, 2, 0, 15, 1, 2, 0,127, 0, 4, 0, 23, 0, 4, 0,124, 0, 4, 0,125, 0,
- 4, 0,126, 0, 7, 0, 56, 1, 7, 0, 57, 1, 7, 0,189, 0, 45, 0, 58, 1, 60, 0, 59, 1, 36, 0, 80, 0, 47, 0,238, 0,
- 53, 0, 60, 1, 55, 0, 11, 1, 56, 0, 61, 1, 30, 0,150, 0, 58, 0, 62, 1, 59, 0, 63, 1, 0, 0, 64, 1, 0, 0,181, 0,
- 61, 0, 8, 0, 7, 0, 65, 1, 7, 0, 66, 1, 7, 0,172, 0, 4, 0, 19, 0, 7, 0, 67, 1, 7, 0, 68, 1, 7, 0, 69, 1,
- 32, 0, 45, 0, 62, 0, 84, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 70, 1, 2, 0,175, 0,
- 2, 0, 71, 1, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0, 72, 1, 7, 0, 73, 1, 7, 0, 74, 1,
- 7, 0, 75, 1, 7, 0, 76, 1, 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 7, 0, 82, 1,
- 63, 0, 83, 1, 2, 0,249, 0, 2, 0, 70, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0, 84, 1, 7, 0, 85, 1, 7, 0, 86, 1,
- 7, 0, 87, 1, 7, 0, 88, 1, 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 2, 0, 92, 1, 0, 0, 93, 1, 0, 0, 94, 1,
- 2, 0, 95, 1, 2, 0, 96, 1, 2, 0, 97, 1, 2, 0, 98, 1, 2, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, 7, 0,102, 1,
- 7, 0,103, 1, 2, 0,104, 1, 2, 0, 43, 0, 2, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, 2, 0,108, 1, 7, 0,109, 1,
- 7, 0,110, 1, 7, 0,111, 1, 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1,
- 7, 0,118, 1, 7, 0,119, 1, 7, 0,120, 1, 2, 0,121, 1, 2, 0,122, 1, 4, 0,123, 1, 4, 0,124, 1, 2, 0,125, 1,
- 2, 0,126, 1, 2, 0,127, 1, 2, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 7, 0,132, 1, 2, 0,133, 1,
- 2, 0,134, 1, 36, 0, 80, 0, 51, 0,135, 1, 2, 0,136, 1, 2, 0,137, 1, 30, 0,150, 0, 64, 0, 2, 0, 27, 0, 31, 0,
- 36, 0, 80, 0, 65, 0, 18, 0, 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 7, 0,141, 1, 7, 0,142, 1, 7, 0,143, 1,
- 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1, 7, 0,147, 1, 2, 0,148, 1, 2, 0,149, 1, 2, 0,150, 1, 2, 0,151, 1,
- 7, 0,152, 1, 7, 0,153, 1, 7, 0,154, 1, 7, 0,155, 1, 66, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,156, 1,
- 2, 0, 19, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0,184, 0, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1,
- 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1,
- 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1, 7, 0,176, 1,
- 65, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 7, 0,184, 1,
- 2, 0,185, 1, 2, 0,186, 1, 2, 0,187, 1, 0, 0,188, 1, 0, 0,189, 1, 7, 0,190, 1, 7, 0,191, 1, 2, 0,192, 1,
- 2, 0,193, 1, 7, 0,194, 1, 7, 0,195, 1, 7, 0,196, 1, 7, 0,197, 1, 2, 0,198, 1, 2, 0,199, 1, 4, 0, 70, 1,
- 4, 0,200, 1, 2, 0,201, 1, 2, 0,202, 1, 2, 0,203, 1, 2, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, 7, 0,207, 1,
- 7, 0,208, 1, 7, 0,209, 1, 7, 0,210, 1, 7, 0,211, 1, 7, 0,212, 1, 7, 0,213, 1, 7, 0,214, 1, 0, 0,215, 1,
- 7, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1, 4, 0,219, 1, 0, 0,220, 1, 0, 0,105, 1, 0, 0,221, 1, 0, 0, 64, 1,
- 2, 0,222, 1, 2, 0,223, 1, 2, 0,136, 1, 2, 0,224, 1, 2, 0,225, 1, 2, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1,
- 7, 0,229, 1, 7, 0,230, 1, 7, 0,231, 1, 2, 0,160, 0, 2, 0,161, 0, 55, 0,232, 1, 55, 0,233, 1, 0, 0,234, 1,
- 0, 0,235, 1, 0, 0,236, 1, 0, 0,237, 1, 2, 0,238, 1, 2, 0,239, 1, 7, 0,240, 1, 7, 0,241, 1, 51, 0,135, 1,
- 60, 0, 59, 1, 36, 0, 80, 0, 67, 0,242, 1, 30, 0,150, 0, 7, 0,243, 1, 7, 0,244, 1, 7, 0,245, 1, 7, 0,246, 1,
- 7, 0,247, 1, 2, 0,248, 1, 2, 0, 70, 0, 7, 0,249, 1, 7, 0,250, 1, 7, 0,251, 1, 7, 0,252, 1, 7, 0,253, 1,
- 7, 0,254, 1, 7, 0,255, 1, 7, 0, 0, 2, 7, 0, 1, 2, 2, 0, 2, 2, 2, 0, 3, 2, 4, 0, 4, 2, 4, 0,122, 1,
- 12, 0, 5, 2, 68, 0, 4, 0, 27, 0, 31, 0, 0, 0, 6, 2, 69, 0, 2, 0, 43, 0,149, 0, 70, 0, 26, 0, 70, 0, 0, 0,
- 70, 0, 1, 0, 71, 0, 7, 2, 4, 0, 8, 2, 4, 0, 9, 2, 4, 0, 10, 2, 4, 0, 11, 2, 4, 0, 12, 2, 4, 0, 13, 2,
- 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 14, 2, 2, 0, 15, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 16, 2,
- 7, 0, 17, 2, 7, 0, 18, 2, 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 22, 2, 7, 0, 23, 0, 7, 0, 23, 2,
- 7, 0, 24, 2, 72, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 7, 2, 12, 0, 25, 2, 12, 0, 26, 2, 12, 0, 27, 2,
- 36, 0, 80, 0, 66, 0, 28, 2, 0, 0, 19, 0, 0, 0, 29, 2, 2, 0, 30, 2, 2, 0,174, 0, 2, 0, 37, 0, 7, 0, 65, 1,
- 7, 0,172, 0, 7, 0, 66, 1, 7, 0, 31, 2, 7, 0, 32, 2, 7, 0, 33, 2, 70, 0, 34, 2, 35, 0, 11, 0, 7, 0, 35, 2,
- 7, 0, 36, 2, 7, 0, 37, 2, 7, 0,251, 0, 2, 0, 55, 0, 0, 0, 38, 2, 0, 0, 39, 2, 0, 0, 40, 2, 0, 0, 41, 2,
- 0, 0, 42, 2, 0, 0, 43, 2, 34, 0, 7, 0, 7, 0, 44, 2, 7, 0, 36, 2, 7, 0, 37, 2, 2, 0, 40, 2, 2, 0, 43, 2,
- 7, 0,251, 0, 7, 0, 37, 0, 73, 0, 21, 0, 73, 0, 0, 0, 73, 0, 1, 0, 2, 0, 17, 0, 2, 0, 45, 2, 2, 0, 43, 2,
- 2, 0, 19, 0, 2, 0, 46, 2, 2, 0, 47, 2, 2, 0, 48, 2, 2, 0, 49, 2, 2, 0, 50, 2, 2, 0, 51, 2, 2, 0, 52, 2,
- 2, 0, 53, 2, 7, 0, 54, 2, 7, 0, 55, 2, 34, 0, 49, 0, 35, 0, 50, 0, 2, 0, 56, 2, 2, 0, 57, 2, 4, 0, 58, 2,
- 74, 0, 5, 0, 2, 0, 59, 2, 2, 0, 45, 2, 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 70, 0, 75, 0, 4, 0, 7, 0, 5, 0,
- 7, 0, 6, 0, 7, 0, 8, 0, 7, 0, 60, 2, 76, 0, 68, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 7, 2, 12, 0, 61, 2,
- 12, 0, 26, 2, 12, 0, 62, 2, 32, 0, 63, 2, 32, 0, 64, 2, 32, 0, 65, 2, 36, 0, 80, 0, 77, 0, 66, 2, 38, 0, 67, 2,
- 66, 0, 28, 2, 12, 0, 68, 2, 7, 0, 65, 1, 7, 0,172, 0, 7, 0, 66, 1, 2, 0,174, 0, 2, 0, 43, 0, 2, 0, 69, 2,
- 2, 0, 70, 2, 2, 0, 71, 2, 7, 0, 72, 2, 7, 0, 70, 0, 2, 0, 73, 2, 2, 0, 30, 2, 2, 0, 19, 0, 2, 0, 74, 2,
- 7, 0, 75, 2, 7, 0, 76, 2, 7, 0, 77, 2, 2, 0, 48, 2, 2, 0, 49, 2, 2, 0, 78, 2, 2, 0, 79, 2, 4, 0, 80, 2,
- 34, 0, 81, 2, 2, 0, 23, 0, 2, 0, 95, 0, 2, 0, 67, 0, 2, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, 7, 0, 85, 2,
- 7, 0, 86, 2, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, 7, 0, 92, 2, 0, 0, 93, 2,
- 78, 0, 94, 2, 79, 0, 95, 2, 0, 0, 96, 2, 68, 0, 97, 2, 68, 0, 98, 2, 68, 0, 99, 2, 68, 0,100, 2, 4, 0,101, 2,
- 7, 0,102, 2, 4, 0,103, 2, 4, 0,104, 2, 75, 0,105, 2, 4, 0,106, 2, 4, 0,107, 2, 74, 0,108, 2, 74, 0,109, 2,
- 80, 0, 41, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0, 7, 2, 12, 0,110, 2, 36, 0, 80, 0, 38, 0, 67, 2, 66, 0, 28, 2,
- 81, 0,111, 2, 82, 0,112, 2, 83, 0,113, 2, 84, 0,114, 2, 85, 0,115, 2, 86, 0,116, 2, 87, 0,117, 2, 88, 0,118, 2,
- 80, 0,119, 2, 89, 0,120, 2, 90, 0,121, 2, 91, 0,122, 2, 91, 0,123, 2, 91, 0,124, 2, 4, 0, 54, 0, 4, 0,125, 2,
- 4, 0,126, 2, 4, 0,127, 2, 4, 0,128, 2, 2, 0,174, 0, 2, 0,129, 2, 7, 0, 65, 1, 7, 0,172, 0, 7, 0, 66, 1,
- 7, 0,130, 2, 4, 0, 69, 2, 2, 0,131, 2, 2, 0, 19, 0, 2, 0,132, 2, 2, 0,133, 2, 2, 0, 30, 2, 2, 0,134, 2,
- 92, 0,135, 2, 93, 0,136, 2, 83, 0, 8, 0, 9, 0,137, 2, 7, 0,138, 2, 4, 0,139, 2, 0, 0, 19, 0, 0, 0,140, 2,
- 2, 0, 70, 1, 2, 0,141, 2, 2, 0,142, 2, 81, 0, 7, 0, 4, 0,143, 2, 4, 0,144, 2, 4, 0,145, 2, 4, 0,146, 2,
- 2, 0, 45, 2, 0, 0,147, 2, 0, 0, 19, 0, 85, 0, 5, 0, 4, 0,143, 2, 4, 0,144, 2, 0, 0,148, 2, 0, 0,149, 2,
- 2, 0, 19, 0, 94, 0, 2, 0, 4, 0,150, 2, 7, 0, 37, 2, 86, 0, 3, 0, 94, 0,151, 2, 4, 0,152, 2, 4, 0, 19, 0,
- 84, 0, 6, 0, 7, 0,153, 2, 2, 0,154, 2, 2, 0, 45, 2, 0, 0, 19, 0, 0, 0,149, 2, 0, 0, 71, 2, 87, 0, 4, 0,
- 0, 0,236, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 95, 0, 6, 0, 47, 0,137, 2, 0, 0, 19, 0, 0, 0,140, 2,
- 2, 0, 70, 1, 2, 0,141, 2, 2, 0,142, 2, 96, 0, 1, 0, 7, 0,155, 2, 97, 0, 5, 0, 0, 0,236, 0, 0, 0,182, 0,
- 0, 0,183, 0, 0, 0,184, 0, 4, 0, 37, 0, 88, 0, 1, 0, 7, 0,156, 2, 89, 0, 2, 0, 4, 0,157, 2, 4, 0, 17, 0,
- 82, 0, 7, 0, 7, 0,138, 2, 47, 0,137, 2, 0, 0, 19, 0, 0, 0,140, 2, 2, 0, 70, 1, 2, 0,141, 2, 2, 0,142, 2,
- 98, 0, 1, 0, 7, 0,158, 2, 99, 0, 1, 0, 4, 0,159, 2,100, 0, 1, 0, 0, 0,160, 2,101, 0, 1, 0, 7, 0,138, 2,
-102, 0, 3, 0, 4, 0,161, 2, 0, 0, 92, 0, 7, 0,162, 2,103, 0, 4, 0, 7, 0,236, 0, 7, 0,182, 0, 7, 0,183, 0,
- 7, 0,184, 0,104, 0, 1, 0,103, 0,139, 2,105, 0, 5, 0, 4, 0,163, 2, 4, 0,164, 2, 0, 0, 19, 0, 0, 0, 45, 2,
- 0, 0, 71, 2,106, 0, 2, 0, 4, 0,165, 2, 4, 0,164, 2,107, 0, 10, 0,107, 0, 0, 0,107, 0, 1, 0,105, 0,166, 2,
-104, 0,167, 2,106, 0,168, 2, 4, 0, 54, 0, 4, 0,126, 2, 4, 0,125, 2, 4, 0, 37, 0, 84, 0,169, 2, 92, 0, 14, 0,
- 12, 0,170, 2, 84, 0,169, 2, 0, 0,171, 2, 0, 0,172, 2, 0, 0,173, 2, 0, 0,174, 2, 0, 0,175, 2, 0, 0,176, 2,
- 0, 0,177, 2, 0, 0, 19, 0, 91, 0,122, 2, 91, 0,124, 2, 2, 0,178, 2, 0, 0,179, 2, 93, 0, 8, 0, 4, 0,180, 2,
- 4, 0,181, 2, 81, 0,182, 2, 85, 0,183, 2, 4, 0,126, 2, 4, 0,125, 2, 4, 0, 54, 0, 4, 0, 37, 0,108, 0, 7, 0,
-108, 0, 0, 0,108, 0, 1, 0, 4, 0, 17, 0, 4, 0, 70, 1, 0, 0, 20, 0, 46, 0,134, 0, 0, 0,184, 2,109, 0, 7, 0,
-108, 0,185, 2, 2, 0,186, 2, 2, 0,170, 2, 2, 0,187, 2, 2, 0, 90, 0, 9, 0,188, 2, 9, 0,189, 2,110, 0, 3, 0,
-108, 0,185, 2, 32, 0,164, 0, 0, 0, 20, 0,111, 0, 5, 0,108, 0,185, 2, 32, 0,164, 0, 0, 0, 20, 0, 2, 0,190, 2,
- 0, 0,191, 2,112, 0, 5, 0,108, 0,185, 2, 7, 0, 88, 0, 7, 0,192, 2, 4, 0,193, 2, 4, 0,194, 2,113, 0, 5, 0,
-108, 0,185, 2, 32, 0,195, 2, 0, 0, 72, 0, 4, 0, 70, 1, 4, 0, 19, 0,114, 0, 13, 0,108, 0,185, 2, 32, 0,196, 2,
- 32, 0,197, 2, 32, 0,198, 2, 32, 0,199, 2, 7, 0,200, 2, 7, 0,201, 2, 7, 0,192, 2, 7, 0,202, 2, 4, 0,203, 2,
- 4, 0,204, 2, 4, 0, 90, 0, 4, 0,205, 2,115, 0, 5, 0,108, 0,185, 2, 2, 0,206, 2, 2, 0, 19, 0, 7, 0,207, 2,
- 32, 0,208, 2,116, 0, 3, 0,108, 0,185, 2, 7, 0,209, 2, 4, 0, 90, 0,117, 0, 10, 0,108, 0,185, 2, 7, 0,210, 2,
- 4, 0,211, 2, 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,212, 2, 2, 0,213, 2, 2, 0,214, 2, 7, 0,215, 2, 0, 0,216, 2,
-118, 0, 3, 0,108, 0,185, 2, 7, 0, 37, 0, 4, 0, 17, 0,119, 0, 6, 0,108, 0,185, 2,120, 0,217, 2,121, 0,218, 2,
-122, 0,219, 2, 7, 0,220, 2, 4, 0, 17, 0,123, 0, 11, 0,108, 0,185, 2, 52, 0,221, 2, 7, 0,222, 2, 4, 0,223, 2,
- 0, 0,216, 2, 7, 0,224, 2, 4, 0,225, 2, 32, 0,226, 2, 0, 0,227, 2, 4, 0,228, 2, 4, 0, 37, 0,124, 0, 10, 0,
-108, 0,185, 2, 32, 0,229, 2, 47, 0,230, 2, 4, 0, 90, 0, 4, 0,231, 2, 7, 0,232, 2, 7, 0,233, 2, 0, 0,227, 2,
- 4, 0,228, 2, 4, 0, 37, 0,125, 0, 3, 0,108, 0,185, 2, 7, 0,234, 2, 4, 0,235, 2,126, 0, 5, 0,108, 0,185, 2,
- 7, 0,236, 2, 0, 0,216, 2, 2, 0, 19, 0, 2, 0,237, 2,127, 0, 8, 0,108, 0,185, 2, 32, 0,164, 0, 7, 0,236, 2,
- 7, 0,251, 0, 7, 0,106, 0, 0, 0,216, 2, 2, 0, 19, 0, 2, 0, 17, 0,128, 0, 21, 0,108, 0,185, 2, 32, 0,238, 2,
- 0, 0,216, 2, 52, 0,221, 2, 32, 0,226, 2, 2, 0, 19, 0, 2, 0, 37, 0, 7, 0,239, 2, 7, 0,240, 2, 7, 0,241, 2,
- 7, 0, 75, 2, 7, 0,242, 2, 7, 0,243, 2, 7, 0,244, 2, 7, 0,245, 2, 4, 0,225, 2, 4, 0,228, 2, 0, 0,227, 2,
- 7, 0,246, 2, 7, 0,247, 2, 7, 0, 43, 0,129, 0, 7, 0,108, 0,185, 2, 2, 0,248, 2, 2, 0,249, 2, 4, 0, 70, 0,
- 32, 0,164, 0, 7, 0,250, 2, 0, 0,216, 2,130, 0, 10, 0,108, 0,185, 2, 32, 0,164, 0, 0, 0,251, 2, 7, 0,252, 2,
- 7, 0,253, 2, 7, 0,245, 2, 4, 0,254, 2, 4, 0,255, 2, 7, 0, 0, 3, 0, 0, 20, 0,131, 0, 1, 0,108, 0,185, 2,
-132, 0, 7, 0,108, 0,185, 2, 46, 0,134, 0,133, 0, 1, 3,134, 0, 2, 3,135, 0, 3, 3,136, 0, 4, 3, 12, 0, 5, 3,
-137, 0, 13, 0,108, 0,185, 2, 84, 0, 6, 3, 84, 0, 7, 3, 84, 0, 8, 3, 84, 0, 9, 3, 84, 0, 10, 3, 84, 0, 11, 3,
- 81, 0, 12, 3, 4, 0, 13, 3, 4, 0, 14, 3, 7, 0,220, 2, 7, 0, 37, 0,138, 0, 15, 3,139, 0, 7, 0,108, 0,185, 2,
- 84, 0, 6, 3, 84, 0, 16, 3,140, 0, 17, 3,141, 0, 15, 3, 4, 0, 18, 3, 4, 0, 13, 3,142, 0, 4, 0,108, 0,185, 2,
- 32, 0,164, 0, 4, 0, 19, 3, 4, 0, 37, 0,143, 0, 2, 0, 4, 0, 20, 3, 7, 0, 37, 2,144, 0, 2, 0, 4, 0,125, 0,
- 4, 0, 21, 3,145, 0, 21, 0,108, 0,185, 2, 32, 0,164, 0, 0, 0,216, 2, 2, 0, 22, 3, 2, 0, 19, 0, 2, 0, 70, 1,
- 2, 0, 37, 0, 7, 0, 23, 3, 7, 0, 24, 3, 4, 0, 54, 0, 4, 0, 25, 3,144, 0, 26, 3,143, 0, 27, 3, 4, 0, 28, 3,
- 4, 0, 29, 3, 4, 0, 30, 3, 4, 0, 21, 3, 7, 0, 31, 3, 7, 0, 32, 3, 7, 0, 33, 3, 9, 0, 34, 3,146, 0, 8, 0,
-108, 0,185, 2,147, 0, 35, 3,140, 0, 17, 3, 4, 0, 36, 3, 4, 0, 37, 3, 4, 0, 38, 3, 2, 0, 19, 0, 2, 0, 57, 0,
-148, 0, 8, 0,108, 0,185, 2, 32, 0, 45, 0, 2, 0,255, 0, 2, 0, 19, 0, 2, 0,206, 2, 2, 0, 57, 0, 7, 0, 39, 3,
- 7, 0, 40, 3,149, 0, 5, 0,108, 0,185, 2, 4, 0, 41, 3, 2, 0, 19, 0, 2, 0, 42, 3, 7, 0, 43, 3,150, 0, 8, 0,
-108, 0,185, 2, 0, 0, 44, 3, 0, 0, 45, 3, 0, 0,176, 2, 0, 0, 46, 3, 0, 0, 47, 3, 0, 0, 90, 0, 0, 0, 71, 2,
-151, 0, 3, 0,108, 0,185, 2,152, 0, 48, 3,136, 0, 4, 3,153, 0, 10, 0,108, 0,185, 2, 32, 0, 49, 3, 32, 0, 50, 3,
- 0, 0, 51, 3, 7, 0, 52, 3, 2, 0, 53, 3, 2, 0, 54, 3, 0, 0, 55, 3, 0, 0, 56, 3, 0, 0,191, 2,154, 0, 9, 0,
-108, 0,185, 2, 32, 0, 57, 3, 0, 0, 51, 3, 7, 0, 58, 3, 7, 0, 59, 3, 0, 0, 70, 1, 0, 0,206, 2, 0, 0, 60, 3,
- 0, 0, 37, 0,155, 0, 1, 0,108, 0,185, 2,156, 0, 8, 0,108, 0,185, 2, 0, 0,216, 2, 7, 0,125, 0, 7, 0, 61, 3,
- 7, 0, 62, 3, 7, 0, 63, 3, 4, 0, 19, 0, 0, 0, 92, 0,157, 0, 27, 0, 27, 0, 31, 0, 2, 0, 46, 2, 2, 0, 47, 2,
- 2, 0, 64, 3, 2, 0, 19, 0, 2, 0, 65, 3, 2, 0, 66, 3, 2, 0, 67, 3, 2, 0, 70, 0, 0, 0, 68, 3, 0, 0, 69, 3,
- 0, 0, 70, 3, 0, 0, 17, 0, 4, 0, 37, 0, 7, 0, 71, 3, 7, 0, 72, 3, 7, 0, 73, 3, 7, 0, 74, 3, 7, 0, 75, 3,
- 7, 0, 76, 3, 34, 0, 77, 3, 36, 0, 80, 0, 38, 0, 67, 2, 86, 0,116, 2, 7, 0, 78, 3, 7, 0, 79, 3,157, 0, 80, 3,
-158, 0, 3, 0,158, 0, 0, 0,158, 0, 1, 0, 0, 0, 20, 0, 71, 0, 3, 0, 7, 0, 81, 3, 4, 0, 19, 0, 4, 0, 37, 0,
- 32, 0,126, 0, 27, 0, 31, 0, 39, 0, 75, 0,159, 0, 82, 3, 2, 0, 17, 0, 2, 0, 83, 3, 4, 0, 84, 3, 4, 0, 85, 3,
- 4, 0, 86, 3, 0, 0, 87, 3, 32, 0, 38, 0, 32, 0, 88, 3, 32, 0, 89, 3, 32, 0, 90, 3, 32, 0, 91, 3, 36, 0, 80, 0,
- 77, 0, 66, 2, 71, 0, 7, 2,160, 0, 92, 3,160, 0, 93, 3,161, 0, 94, 3, 9, 0, 2, 0,162, 0, 95, 3,163, 0, 96, 3,
-164, 0, 97, 3, 12, 0, 98, 3, 12, 0,110, 2, 12, 0, 26, 2, 12, 0, 99, 3, 12, 0,100, 3, 4, 0, 70, 1, 4, 0,101, 3,
- 66, 0, 28, 2, 0, 0,102, 3, 4, 0, 30, 2, 4, 0,103, 3, 7, 0, 65, 1, 7, 0,104, 3, 7, 0,105, 3, 7, 0,172, 0,
- 7, 0,106, 3, 7, 0, 66, 1, 7, 0,107, 3, 7, 0, 16, 2, 7, 0,108, 3, 7, 0,109, 3, 7, 0,110, 3, 7, 0,111, 3,
- 7, 0,112, 3, 7, 0,113, 3, 7, 0,252, 2, 7, 0,114, 3, 7, 0,240, 0, 4, 0,115, 3, 2, 0, 19, 0, 2, 0,116, 3,
- 2, 0,117, 3, 2, 0,118, 3, 2, 0,119, 3, 2, 0,120, 3, 2, 0,121, 3, 2, 0,122, 3, 2, 0,123, 3, 2, 0,124, 3,
- 2, 0,125, 3, 2, 0,126, 3, 4, 0,127, 3, 4, 0,128, 3, 4, 0,129, 3, 4, 0,130, 3, 7, 0,131, 3, 7, 0,102, 2,
- 7, 0,132, 3, 7, 0,133, 3, 7, 0,134, 3, 7, 0,135, 3, 7, 0,136, 3, 7, 0,215, 0, 7, 0,137, 3, 7, 0,138, 3,
- 7, 0,139, 3, 7, 0,140, 3, 2, 0,141, 3, 0, 0,142, 3, 0, 0,143, 3, 0, 0,144, 3, 0, 0,145, 3, 7, 0,146, 3,
- 7, 0,147, 3, 12, 0,148, 3, 12, 0,149, 3, 12, 0,150, 3, 12, 0,151, 3, 7, 0,152, 3, 2, 0,157, 2, 2, 0,153, 3,
- 7, 0,139, 2, 4, 0,154, 3, 4, 0,155, 3,165, 0,156, 3, 2, 0,157, 3, 2, 0,247, 0, 7, 0,158, 3, 12, 0,159, 3,
- 12, 0,160, 3, 12, 0,161, 3, 12, 0,162, 3,166, 0, 62, 1,167, 0,163, 3, 67, 0,164, 3, 2, 0,165, 3, 2, 0,166, 3,
- 2, 0,167, 3, 2, 0,168, 3, 7, 0,131, 2, 2, 0,169, 3, 2, 0,170, 3,152, 0,171, 3,140, 0,172, 3,140, 0,173, 3,
- 4, 0,174, 3, 4, 0,175, 3, 4, 0,176, 3, 4, 0, 70, 0, 12, 0,177, 3, 12, 0,178, 3, 12, 0,179, 3,168, 0, 14, 0,
-168, 0, 0, 0,168, 0, 1, 0, 32, 0, 38, 0, 7, 0,252, 2, 7, 0, 67, 1, 7, 0,253, 2, 7, 0,245, 2, 0, 0, 20, 0,
- 4, 0,254, 2, 4, 0,255, 2, 4, 0,180, 3, 2, 0, 17, 0, 2, 0,181, 3, 7, 0, 0, 3,169, 0, 12, 0,169, 0, 0, 0,
-169, 0, 1, 0, 32, 0, 45, 0, 4, 0,182, 3, 4, 0,157, 2, 4, 0,183, 3, 4, 0, 17, 0, 4, 0,184, 3, 7, 0, 67, 1,
- 7, 0,185, 3, 7, 0,186, 3, 7, 0,155, 2,166, 0, 40, 0, 4, 0, 19, 0, 2, 0,187, 3, 2, 0,188, 3, 2, 0,245, 2,
- 2, 0,189, 3, 2, 0,190, 3, 2, 0,191, 3, 2, 0,192, 3, 2, 0,193, 3, 7, 0,194, 3, 7, 0,195, 3, 7, 0,196, 3,
- 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3, 7, 0,204, 3,
- 7, 0,205, 3, 7, 0,206, 3, 7, 0,207, 3, 7, 0,208, 3, 7, 0,209, 3, 7, 0,210, 3, 7, 0,211, 3, 7, 0,212, 3,
- 7, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, 7, 0,216, 3, 7, 0,217, 3, 7, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3,
- 52, 0,165, 0,170, 0,221, 3, 7, 0,222, 3, 4, 0,194, 2,171, 0, 5, 0, 67, 0,242, 1, 7, 0,223, 3, 7, 0,224, 3,
- 2, 0, 19, 0, 2, 0,225, 3,172, 0, 9, 0,172, 0, 0, 0,172, 0, 1, 0, 4, 0,226, 3, 4, 0,227, 3, 4, 0,228, 3,
- 4, 0, 19, 0, 4, 0,229, 3, 9, 0,230, 3, 9, 0,231, 3,136, 0, 19, 0,136, 0, 0, 0,136, 0, 1, 0, 4, 0, 19, 0,
- 4, 0,232, 3, 4, 0,233, 3, 4, 0,234, 3, 4, 0,235, 3, 4, 0,236, 3, 4, 0,237, 3, 4, 0,227, 3, 4, 0,157, 2,
- 4, 0, 57, 0, 0, 0,238, 3, 0, 0,239, 3, 0, 0,240, 3, 0, 0,241, 3, 12, 0,242, 3,173, 0,243, 3, 9, 0,244, 3,
-174, 0, 1, 0, 7, 0, 44, 2,165, 0, 30, 0, 4, 0, 19, 0, 7, 0,245, 3, 7, 0,246, 3, 7, 0,247, 3, 4, 0,248, 3,
- 4, 0,249, 3, 4, 0,250, 3, 4, 0,251, 3, 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, 7, 0,255, 3, 7, 0, 0, 4,
- 7, 0, 1, 4, 7, 0, 2, 4, 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, 7, 0, 8, 4,
- 7, 0, 9, 4, 7, 0, 10, 4, 7, 0, 11, 4, 7, 0, 12, 4, 7, 0, 13, 4, 4, 0, 14, 4, 4, 0, 15, 4, 7, 0, 16, 4,
- 7, 0,137, 3,167, 0, 54, 0, 4, 0,227, 3, 4, 0, 17, 4,175, 0, 18, 4,176, 0, 19, 4, 0, 0, 37, 0, 0, 0, 20, 4,
- 2, 0, 21, 4, 7, 0, 22, 4, 0, 0, 23, 4, 7, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4, 7, 0, 27, 4, 7, 0, 28, 4,
- 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 2, 0, 33, 4, 0, 0, 34, 4, 2, 0, 35, 4, 7, 0, 36, 4,
- 7, 0, 37, 4, 0, 0, 38, 4, 4, 0,126, 0, 4, 0, 39, 4, 4, 0, 40, 4, 2, 0, 41, 4, 2, 0, 42, 4,174, 0, 43, 4,
- 4, 0, 44, 4, 4, 0, 82, 0, 7, 0, 45, 4, 7, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4, 2, 0, 49, 4, 2, 0, 50, 4,
- 2, 0, 51, 4, 2, 0, 52, 4, 2, 0, 53, 4, 2, 0, 54, 4, 2, 0, 55, 4, 2, 0, 56, 4,177, 0, 57, 4, 7, 0, 58, 4,
- 7, 0, 59, 4,136, 0, 60, 4, 12, 0, 5, 3,171, 0, 61, 4, 7, 0, 62, 4, 7, 0, 63, 4, 7, 0, 64, 4, 0, 0, 65, 4,
-152, 0, 49, 0,151, 0, 66, 4, 2, 0, 17, 0, 2, 0, 67, 4, 2, 0, 68, 4, 2, 0, 69, 4, 7, 0, 70, 4, 2, 0, 71, 4,
- 2, 0, 72, 4, 7, 0, 73, 4, 2, 0, 74, 4, 2, 0, 75, 4, 7, 0, 76, 4, 7, 0, 77, 4, 7, 0, 78, 4, 7, 0, 79, 4,
- 7, 0, 80, 4, 7, 0, 81, 4, 4, 0, 82, 4, 7, 0, 83, 4, 7, 0, 84, 4, 7, 0, 85, 4, 80, 0, 86, 4, 80, 0, 87, 4,
- 80, 0, 88, 4, 0, 0, 89, 4, 7, 0, 90, 4, 7, 0, 91, 4, 36, 0, 80, 0, 2, 0, 92, 4, 0, 0, 93, 4, 0, 0, 94, 4,
- 7, 0, 95, 4, 4, 0, 96, 4, 7, 0, 97, 4, 7, 0, 98, 4, 4, 0, 99, 4, 4, 0, 19, 0, 7, 0,100, 4, 7, 0,101, 4,
- 7, 0,102, 4, 84, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 7, 0,106, 4, 7, 0,107, 4, 7, 0,108, 4, 7, 0,109, 4,
- 7, 0,110, 4, 4, 0,111, 4,178, 0, 78, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,175, 0, 2, 0, 71, 1, 2, 0,105, 1,
- 2, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, 7, 0,115, 4, 7, 0,116, 4, 7, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4,
- 7, 0,120, 4, 7, 0,163, 1, 7, 0,165, 1, 7, 0,164, 1, 7, 0,121, 4, 4, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4,
- 7, 0,125, 4, 7, 0,126, 4, 7, 0,127, 4, 7, 0,128, 4, 7, 0,129, 4, 2, 0,130, 4, 2, 0, 70, 1, 2, 0,131, 4,
- 2, 0,132, 4, 2, 0,133, 4, 2, 0,134, 4, 2, 0,135, 4, 2, 0,136, 4, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4,
- 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 7, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 7, 0,147, 4,
- 7, 0,148, 4, 2, 0,149, 4, 2, 0,150, 4, 2, 0,151, 4, 2, 0,152, 4, 7, 0,153, 4, 7, 0,154, 4, 7, 0,155, 4,
- 7, 0,156, 4, 2, 0,157, 4, 2, 0,158, 4, 2, 0,159, 4, 2, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, 7, 0,163, 4,
- 7, 0,164, 4, 7, 0,165, 4, 7, 0,166, 4, 7, 0,167, 4, 2, 0,168, 4, 2, 0,169, 4, 2, 0,170, 4, 2, 0,171, 4,
- 2, 0,172, 4, 2, 0, 19, 0, 7, 0,173, 4, 7, 0,174, 4, 36, 0, 80, 0, 51, 0,135, 1, 2, 0,136, 1, 2, 0,137, 1,
- 30, 0,150, 0,179, 0, 8, 0,179, 0, 0, 0,179, 0, 1, 0, 4, 0,115, 3, 4, 0,175, 4, 4, 0, 19, 0, 2, 0,176, 4,
- 2, 0,177, 4, 32, 0,164, 0,180, 0, 13, 0, 9, 0,178, 4, 9, 0,179, 4, 4, 0,180, 4, 4, 0,181, 4, 4, 0,182, 4,
- 4, 0,183, 4, 4, 0,184, 4, 4, 0,185, 4, 4, 0,186, 4, 4, 0,187, 4, 4, 0,188, 4, 4, 0, 37, 0, 0, 0,189, 4,
-181, 0, 5, 0, 9, 0,190, 4, 9, 0,191, 4, 4, 0,192, 4, 4, 0, 70, 0, 0, 0,193, 4,182, 0, 10, 0, 4, 0,194, 4,
- 4, 0,195, 4, 4, 0,196, 4, 4, 0,197, 4, 4, 0,198, 4, 4, 0,199, 4, 4, 0,200, 4, 4, 0,201, 4, 4, 0,202, 4,
- 4, 0,203, 4,183, 0, 15, 0, 4, 0, 17, 0, 4, 0,196, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4,
- 7, 0,208, 4, 4, 0,209, 4, 4, 0, 90, 0, 4, 0,210, 4, 4, 0,211, 4, 4, 0,212, 4, 4, 0,213, 4, 4, 0,214, 4,
- 26, 0, 30, 0,184, 0, 7, 0, 4, 0,215, 4, 7, 0,216, 4, 7, 0,217, 4, 7, 0,218, 4, 4, 0,219, 4, 2, 0, 19, 0,
- 2, 0, 37, 0,185, 0, 11, 0,185, 0, 0, 0,185, 0, 1, 0, 0, 0, 20, 0, 66, 0,220, 4, 67, 0,221, 4, 4, 0,115, 3,
- 4, 0,222, 4, 4, 0,223, 4, 4, 0, 37, 0, 4, 0,224, 4, 4, 0,225, 4,186, 0,136, 0,180, 0,226, 4,181, 0,227, 4,
-182, 0,228, 4,183, 0,229, 4, 4, 0, 18, 3, 4, 0,126, 0, 4, 0, 39, 4, 4, 0,230, 4, 4, 0,231, 4, 4, 0,232, 4,
- 4, 0,233, 4, 2, 0, 19, 0, 2, 0,234, 4, 7, 0,102, 2, 7, 0,235, 4, 7, 0,236, 4, 7, 0,237, 4, 7, 0,238, 4,
- 7, 0,239, 4, 2, 0,240, 4, 2, 0,241, 4, 2, 0,242, 4, 2, 0,243, 4, 2, 0,246, 0, 2, 0,244, 4, 2, 0,245, 4,
- 2, 0,246, 4, 2, 0,247, 4, 2, 0,248, 4, 2, 0, 92, 1, 2, 0,106, 0, 2, 0,249, 4, 2, 0,250, 4, 2, 0,251, 4,
- 2, 0,252, 4, 2, 0,253, 4, 2, 0,254, 4, 2, 0,255, 4, 2, 0, 0, 5, 2, 0, 1, 5, 2, 0, 93, 1, 2, 0, 2, 5,
- 2, 0, 3, 5, 2, 0, 4, 5, 2, 0, 5, 5, 4, 0, 6, 5, 4, 0, 70, 1, 4, 0, 7, 5, 2, 0, 8, 5, 2, 0, 9, 5,
- 2, 0, 10, 5, 2, 0,122, 1, 2, 0, 11, 5, 2, 0, 12, 5, 2, 0, 13, 5, 2, 0, 14, 5, 24, 0, 15, 5, 24, 0, 16, 5,
- 23, 0, 17, 5, 12, 0, 18, 5, 2, 0, 19, 5, 2, 0, 20, 5, 7, 0, 21, 5, 7, 0, 22, 5, 7, 0, 23, 5, 7, 0, 24, 5,
- 4, 0, 25, 5, 7, 0, 26, 5, 7, 0, 27, 5, 7, 0, 28, 5, 7, 0, 29, 5, 2, 0, 30, 5, 2, 0, 31, 5, 2, 0, 32, 5,
- 2, 0, 33, 5, 2, 0, 34, 5, 2, 0, 35, 5, 7, 0, 36, 5, 7, 0, 37, 5, 7, 0, 38, 5, 2, 0, 39, 5, 2, 0, 40, 5,
- 2, 0, 41, 5, 2, 0, 42, 5, 2, 0, 43, 5, 2, 0, 44, 5, 2, 0, 45, 5, 2, 0, 46, 5, 2, 0, 47, 5, 2, 0, 48, 5,
- 4, 0, 49, 5, 4, 0, 50, 5, 4, 0, 51, 5, 4, 0, 52, 5, 4, 0, 53, 5, 7, 0, 54, 5, 4, 0, 55, 5, 4, 0, 56, 5,
- 4, 0, 57, 5, 4, 0, 58, 5, 7, 0, 59, 5, 7, 0, 60, 5, 7, 0, 61, 5, 7, 0, 62, 5, 7, 0, 63, 5, 7, 0, 64, 5,
- 7, 0, 65, 5, 7, 0, 66, 5, 7, 0, 67, 5, 0, 0, 68, 5, 0, 0, 69, 5, 4, 0, 70, 5, 2, 0, 71, 5, 2, 0,239, 1,
- 0, 0, 72, 5, 7, 0, 73, 5, 7, 0, 74, 5, 4, 0, 75, 5, 2, 0, 76, 5, 2, 0, 77, 5, 7, 0, 78, 5, 7, 0, 79, 5,
- 2, 0, 80, 5, 2, 0, 81, 5, 7, 0, 82, 5, 2, 0, 83, 5, 2, 0, 84, 5, 4, 0, 85, 5, 2, 0, 86, 5, 2, 0, 87, 5,
- 2, 0, 88, 5, 2, 0, 89, 5, 7, 0, 90, 5, 7, 0, 70, 0, 42, 0, 91, 5, 0, 0, 92, 5,187, 0, 9, 0,187, 0, 0, 0,
-187, 0, 1, 0, 0, 0, 20, 0, 2, 0, 93, 5, 2, 0, 94, 5, 2, 0, 95, 5, 2, 0, 43, 0, 7, 0, 96, 5, 7, 0, 70, 0,
-188, 0, 7, 0, 2, 0,211, 2, 2, 0, 70, 1, 2, 0,109, 0, 2, 0, 97, 5, 7, 0, 98, 5, 7, 0, 70, 0, 42, 0, 99, 5,
-189, 0, 5, 0, 7, 0,100, 5, 0, 0, 17, 0, 0, 0, 43, 0, 0, 0, 70, 0, 0, 0,239, 1,190, 0, 28, 0, 7, 0,128, 4,
- 7, 0,129, 4, 2, 0, 70, 1, 2, 0, 19, 0, 2, 0,101, 5, 2, 0,137, 1, 2, 0,131, 4, 2, 0,132, 4, 2, 0,133, 4,
- 2, 0,134, 4, 2, 0,135, 4, 2, 0,136, 4,189, 0,102, 5, 2, 0,240, 4, 2, 0,241, 4, 2, 0,242, 4, 2, 0,243, 4,
- 2, 0,246, 0, 2, 0,244, 4, 2, 0,103, 5, 2, 0,245, 4,188, 0,104, 5, 2, 0,105, 5, 2, 0,247, 4, 2, 0,250, 4,
- 2, 0,251, 4, 7, 0,106, 5, 7, 0, 43, 0,191, 0, 6, 0,191, 0, 0, 0,191, 0, 1, 0, 4, 0,226, 3, 0, 0,238, 3,
- 4, 0, 19, 0, 32, 0,107, 5,192, 0, 6, 0,193, 0,108, 5, 4, 0,109, 5, 4, 0,110, 5, 9, 0,111, 5, 0, 0,112, 5,
- 4, 0, 90, 0,194, 0, 6, 0,192, 0,113, 5, 2, 0, 19, 0, 2, 0, 37, 0, 2, 0,114, 5, 2, 0,115, 5, 9, 0,116, 5,
-195, 0, 6, 0, 2, 0,106, 0, 2, 0,222, 2, 2, 0,232, 3, 2, 0,117, 5, 4, 0, 19, 0, 4, 0, 37, 0,196, 0, 14, 0,
- 2, 0, 19, 0, 2, 0,118, 5, 2, 0,119, 5, 2, 0,120, 5,195, 0,121, 5, 9, 0,116, 5, 7, 0,122, 5, 7, 0, 57, 0,
- 4, 0,123, 5, 4, 0,124, 5, 4, 0,125, 5, 4, 0,126, 5, 46, 0,134, 0, 32, 0,164, 0,197, 0, 4, 0,197, 0, 0, 0,
-197, 0, 1, 0, 0, 0,127, 5, 7, 0,128, 5,198, 0, 6, 0,192, 0,113, 5, 7, 0,129, 5, 4, 0, 90, 0, 0, 0,130, 5,
- 0, 0,131, 5, 0, 0,191, 2,199, 0, 7, 0,192, 0,113, 5, 2, 0, 19, 0, 2, 0, 37, 0, 4, 0, 36, 0, 4, 0,132, 5,
- 86, 0,133, 5, 9, 0,116, 5,200, 0, 74, 0,199, 0,134, 5,199, 0,135, 5,198, 0, 82, 3, 7, 0,136, 5, 2, 0,137, 5,
- 2, 0,138, 5, 7, 0,139, 5, 7, 0,140, 5, 2, 0,232, 3, 2, 0,141, 5, 7, 0,142, 5, 7, 0,143, 5, 7, 0,144, 5,
- 2, 0,145, 5, 2, 0,123, 5, 2, 0,146, 5, 2, 0,147, 5, 2, 0,148, 5, 2, 0,149, 5, 7, 0,150, 5, 7, 0,151, 5,
- 7, 0,152, 5, 2, 0,153, 5, 2, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 2, 0,157, 5, 2, 0,158, 5, 2, 0,159, 5,
-194, 0,160, 5,196, 0,161, 5, 7, 0,162, 5, 7, 0,163, 5, 7, 0,164, 5, 2, 0,165, 5, 2, 0,166, 5, 0, 0,167, 5,
- 0, 0,168, 5, 0, 0,169, 5, 0, 0,170, 5, 0, 0,171, 5, 0, 0,172, 5, 2, 0,173, 5, 7, 0,174, 5, 7, 0,175, 5,
- 7, 0,176, 5, 7, 0,177, 5, 7, 0,178, 5, 7, 0,179, 5, 7, 0,180, 5, 7, 0,181, 5, 7, 0,182, 5, 7, 0,183, 5,
- 2, 0,184, 5, 0, 0,185, 5, 0, 0,186, 5, 0, 0,187, 5, 0, 0,188, 5, 32, 0,189, 5, 0, 0,190, 5, 0, 0,191, 5,
- 0, 0,192, 5, 0, 0,193, 5, 0, 0,194, 5, 0, 0,195, 5, 0, 0,196, 5, 0, 0,197, 5, 2, 0,198, 5, 2, 0,199, 5,
- 2, 0,200, 5, 2, 0,201, 5, 2, 0,202, 5, 4, 0,203, 5, 4, 0,204, 5,201, 0, 8, 0, 4, 0,205, 5, 4, 0,206, 5,
- 4, 0,207, 5, 4, 0,208, 5, 4, 0,209, 5, 4, 0,210, 5, 4, 0, 54, 0, 4, 0,126, 2,202, 0, 3, 0, 7, 0,211, 5,
- 2, 0,212, 5, 2, 0, 19, 0,203, 0, 2, 0, 7, 0,213, 5, 4, 0, 19, 0, 46, 0, 40, 0, 27, 0, 31, 0, 39, 0, 75, 0,
- 32, 0,107, 5,178, 0,214, 5, 46, 0,215, 5, 47, 0,238, 0, 12, 0,216, 5,179, 0,217, 5, 32, 0,218, 5, 7, 0,219, 5,
- 7, 0,220, 5, 7, 0,221, 5, 7, 0,222, 5, 4, 0,115, 3, 2, 0, 19, 0, 2, 0, 64, 1, 60, 0, 59, 1,204, 0,223, 5,
-200, 0,224, 5,205, 0,225, 5,186, 0,182, 0,184, 0,226, 5, 12, 0,100, 0, 12, 0,227, 5, 9, 0,228, 5, 9, 0,229, 5,
- 9, 0,230, 5,206, 0,231, 5, 2, 0,232, 5, 2, 0,233, 5, 2, 0,247, 0, 2, 0,234, 5, 4, 0,235, 5, 4, 0,236, 5,
- 12, 0,237, 5,189, 0,102, 5,190, 0,238, 5,202, 0,239, 5,162, 0, 95, 3,203, 0,240, 5,207, 0, 11, 0,207, 0, 0, 0,
-207, 0, 1, 0, 47, 0,238, 0, 45, 0, 58, 1, 7, 0, 90, 2, 7, 0, 91, 2, 7, 0,106, 0, 7, 0,241, 5, 2, 0,242, 5,
- 2, 0, 19, 0, 7, 0, 70, 0,208, 0, 39, 0, 7, 0,243, 5, 7, 0,244, 5, 7, 0,245, 5, 7, 0,246, 5, 7, 0,247, 5,
- 7, 0,248, 5, 7, 0,249, 5, 7, 0,250, 5, 7, 0,251, 5, 7, 0, 77, 1, 7, 0,252, 5, 7, 0,253, 5, 7, 0,254, 5,
- 7, 0,255, 5, 7, 0,171, 0, 2, 0, 0, 6, 2, 0, 1, 6, 2, 0, 2, 6, 2, 0, 37, 0, 2, 0, 3, 6, 2, 0, 4, 6,
- 2, 0, 5, 6, 2, 0,242, 5, 7, 0, 6, 6, 7, 0, 7, 6, 71, 0, 8, 6,162, 0, 95, 3,208, 0, 9, 6,209, 0, 10, 6,
-210, 0, 11, 6,211, 0, 12, 6,212, 0, 13, 6,213, 0, 14, 6, 7, 0, 15, 6, 2, 0, 16, 6, 2, 0, 17, 6, 7, 0, 18, 6,
- 7, 0, 19, 6, 7, 0, 20, 6,214, 0, 55, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6,
- 2, 0, 24, 6, 7, 0,251, 5, 7, 0, 77, 1, 7, 0, 43, 0, 4, 0, 25, 6, 2, 0, 5, 6, 2, 0,242, 5, 32, 0,107, 5,
- 32, 0, 26, 6, 12, 0, 27, 6,207, 0, 28, 6,214, 0, 9, 6, 0, 0, 29, 6, 4, 0,115, 3, 4, 0, 30, 6, 2, 0, 31, 6,
- 2, 0, 70, 0, 2, 0, 32, 6, 2, 0, 33, 6, 2, 0,239, 1, 2, 0, 19, 0, 2, 0, 29, 2, 2, 0, 34, 6, 7, 0,112, 0,
- 7, 0, 35, 6, 7, 0, 18, 6, 7, 0, 20, 6, 7, 0, 36, 6, 7, 0, 37, 6, 7, 0,171, 0, 7, 0,219, 5, 2, 0, 38, 6,
- 2, 0,122, 1, 2, 0, 39, 6, 2, 0, 40, 6, 2, 0, 41, 6, 2, 0, 42, 6, 2, 0, 43, 6, 2, 0, 44, 6, 2, 0, 45, 6,
- 2, 0, 2, 6, 4, 0, 46, 6, 12, 0, 47, 6, 2, 0, 48, 6, 2, 0,140, 2, 2, 0, 49, 6, 0, 0, 50, 6, 0, 0, 51, 6,
- 9, 0, 52, 6,162, 0, 95, 3,216, 0, 25, 0, 24, 0, 36, 0, 24, 0, 64, 0, 23, 0, 53, 6, 23, 0, 54, 6, 23, 0, 55, 6,
- 7, 0, 56, 6, 7, 0, 57, 6, 7, 0, 58, 6, 7, 0, 59, 6, 2, 0, 60, 6, 2, 0, 61, 6, 2, 0, 62, 6, 2, 0, 63, 6,
- 2, 0, 64, 6, 2, 0, 19, 0, 2, 0, 65, 6, 2, 0, 66, 6, 2, 0, 67, 6, 2, 0, 68, 6, 2, 0, 69, 6, 2, 0, 33, 6,
- 7, 0, 70, 6, 7, 0, 71, 6, 4, 0, 72, 6, 4, 0, 73, 6,215, 0, 6, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6,
- 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6,217, 0, 8, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6,
- 7, 0, 23, 6, 2, 0, 24, 6,218, 0, 74, 6, 46, 0,134, 0,219, 0, 14, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6,
- 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6,216, 0, 75, 6,220, 0, 76, 6, 12, 0, 77, 6, 2, 0, 70, 1, 2, 0, 78, 6,
- 4, 0, 19, 0, 7, 0, 79, 6, 4, 0, 33, 6,221, 0, 20, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6,
- 7, 0, 23, 6, 2, 0, 24, 6,209, 0, 10, 6,216, 0, 75, 6, 2, 0, 80, 6, 2, 0, 81, 6, 2, 0, 82, 6, 2, 0, 83, 6,
- 2, 0, 65, 6, 2, 0, 84, 6, 0, 0, 19, 0, 0, 0,137, 1, 9, 0, 66, 2, 4, 0, 85, 6, 4, 0, 86, 6, 27, 0, 87, 6,
-222, 0, 18, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6,216, 0, 75, 6,
- 7, 0, 90, 2, 7, 0, 91, 2, 2, 0, 80, 6, 2, 0, 88, 6, 2, 0, 89, 6, 2, 0, 90, 6, 4, 0, 19, 0, 7, 0, 91, 6,
- 4, 0,242, 5, 4, 0, 37, 0,162, 0, 95, 3,223, 0, 16, 0, 0, 0, 92, 6, 0, 0, 93, 6, 0, 0, 94, 6, 0, 0, 95, 6,
- 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 96, 6, 2, 0, 97, 6, 2, 0,182, 1, 2, 0, 98, 6, 4, 0, 99, 6, 4, 0,100, 6,
- 2, 0,101, 6, 2, 0,102, 6, 0, 0,103, 6, 0, 0,104, 6,224, 0, 16, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6,
- 4, 0, 22, 6, 4, 0, 37, 0,223, 0,105, 6,225, 0,106, 6, 12, 0,107, 6, 12, 0,108, 6,226, 0,109, 6,213, 0,110, 6,
-227, 0,111, 6, 2, 0,112, 6, 2, 0,113, 6, 2, 0,114, 6, 2, 0, 70, 0,228, 0, 17, 0,215, 0, 0, 0,215, 0, 1, 0,
- 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6,216, 0, 75, 6, 12, 0,115, 6,229, 0,116, 6, 0, 0,117, 6,
-230, 0,118, 6, 4, 0,119, 6, 4, 0,120, 6, 2, 0, 19, 0, 2, 0,121, 6, 2, 0,122, 6, 2, 0, 37, 0,231, 0, 30, 0,
-215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6, 47, 0,230, 2, 45, 0, 58, 1,
- 63, 0,123, 6, 2, 0,133, 0, 2, 0,124, 6, 2, 0, 70, 0, 2, 0,125, 6, 4, 0, 19, 0, 2, 0,126, 6, 2, 0,127, 6,
- 2, 0,128, 6, 2, 0,239, 1, 0, 0,129, 6, 0, 0,130, 6, 0, 0,131, 6, 0, 0, 33, 6, 7, 0, 90, 2, 7, 0, 91, 2,
- 7, 0, 91, 6, 7, 0,122, 1, 7, 0,132, 6, 7, 0,133, 6,162, 0, 95, 3,232, 0,134, 6,233, 0, 11, 0,215, 0, 0, 0,
-215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6, 2, 0, 78, 6, 2, 0, 19, 0, 4, 0, 37, 0,
-220, 0, 76, 6,216, 0, 75, 6,234, 0, 27, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6,
- 2, 0, 24, 6, 42, 0,135, 6, 4, 0,136, 6, 4, 0,137, 6, 2, 0, 90, 0, 2, 0,133, 0, 2, 0,138, 6, 0, 0,139, 6,
- 0, 0,140, 6, 4, 0,141, 6, 4, 0,142, 6, 4, 0,143, 6, 4, 0,144, 6, 2, 0,145, 6, 2, 0,146, 6, 7, 0,147, 6,
- 23, 0,148, 6, 23, 0,149, 6, 4, 0,150, 6, 4, 0,151, 6, 0, 0,152, 6, 0, 0,153, 6,235, 0, 10, 0, 27, 0, 31, 0,
- 9, 0,154, 6, 9, 0,155, 6, 9, 0,156, 6, 9, 0,157, 6, 9, 0,158, 6, 4, 0, 90, 0, 4, 0,159, 6, 0, 0,160, 6,
- 0, 0,161, 6,236, 0, 10, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6,235, 0,162, 6,
- 2, 0, 90, 0, 2, 0,133, 0, 4, 0, 43, 0, 9, 0,163, 6,237, 0, 8, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6,
- 4, 0, 22, 6, 7, 0, 23, 6,216, 0, 75, 6, 4, 0, 19, 0, 4, 0,164, 6,238, 0, 23, 0,215, 0, 0, 0,215, 0, 1, 0,
- 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6,216, 0, 75, 6, 27, 0,165, 6, 27, 0, 81, 0, 2, 0, 19, 0,
- 2, 0,133, 0, 7, 0,166, 6, 9, 0,167, 6, 7, 0, 90, 2, 7, 0, 91, 2, 7, 0,168, 6, 7, 0,169, 6, 60, 0, 59, 1,
- 60, 0,170, 6, 4, 0,171, 6, 2, 0,172, 6, 2, 0, 37, 0,162, 0, 95, 3,239, 0, 10, 0,215, 0, 0, 0,215, 0, 1, 0,
- 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6, 2, 0, 19, 0, 2, 0,124, 3, 4, 0, 37, 0,162, 0, 95, 3,
-240, 0, 42, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6,216, 0, 75, 6,
-225, 0,106, 6, 0, 0, 92, 6, 0, 0, 93, 6, 0, 0, 94, 6, 2, 0, 17, 0, 2, 0,102, 6, 2, 0, 19, 0, 2, 0, 96, 6,
- 9, 0,167, 6, 4, 0, 99, 6, 4, 0,173, 6, 4, 0,174, 6, 4, 0,100, 6, 23, 0,175, 6, 23, 0,176, 6, 7, 0,177, 6,
- 7, 0,178, 6, 7, 0,179, 6, 7, 0,166, 6, 2, 0,180, 6, 2, 0,237, 0, 2, 0,182, 1, 2, 0, 98, 6, 2, 0, 37, 0,
- 2, 0, 43, 0, 2, 0,181, 6, 2, 0,182, 6, 9, 0,183, 6, 9, 0,184, 6, 9, 0,185, 6, 9, 0,186, 6, 9, 0,187, 6,
- 2, 0,188, 6, 0, 0,104, 6, 57, 0,189, 6,241, 0, 7, 0,241, 0, 0, 0,241, 0, 1, 0, 4, 0,190, 6, 4, 0, 23, 0,
- 0, 0, 84, 0, 4, 0,191, 6, 4, 0, 17, 0,242, 0, 16, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6,
- 7, 0, 23, 6, 2, 0, 24, 6, 4, 0, 17, 0, 4, 0,192, 6, 4, 0, 19, 0, 4, 0,138, 6, 12, 0,193, 6, 12, 0,194, 6,
- 0, 0,195, 6, 0, 0,196, 6, 4, 0,197, 6, 4, 0,198, 6,243, 0, 5, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6,
- 4, 0, 22, 6, 4, 0, 37, 0,244, 0, 7, 0,244, 0, 0, 0,244, 0, 1, 0, 0, 0,199, 6, 2, 0,200, 6, 2, 0,201, 6,
- 2, 0,202, 6, 2, 0, 37, 0,245, 0, 12, 0, 2, 0,201, 6, 2, 0,203, 6, 2, 0,204, 6, 0, 0,191, 2, 2, 0,205, 6,
- 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, 2, 0,209, 6, 2, 0, 65, 6, 7, 0,210, 6, 7, 0,211, 6,246, 0, 18, 0,
-246, 0, 0, 0,246, 0, 1, 0, 0, 0,238, 3,245, 0,212, 6,245, 0,213, 6,245, 0,214, 6,245, 0,215, 6, 7, 0,216, 6,
- 2, 0,217, 6, 2, 0,218, 6, 2, 0,219, 6, 2, 0,220, 6, 2, 0,221, 6, 2, 0,222, 6, 2, 0,223, 6, 2, 0,224, 6,
- 2, 0,225, 6, 2, 0,226, 6,247, 0, 10, 0, 0, 0,227, 6, 0, 0,228, 6, 0, 0,229, 6, 0, 0,230, 6, 0, 0,231, 6,
- 0, 0,232, 6, 2, 0,233, 6, 2, 0,234, 6, 2, 0,235, 6, 2, 0, 37, 0,248, 0, 8, 0, 0, 0,236, 6, 0, 0,237, 6,
- 0, 0,238, 6, 0, 0,239, 6, 0, 0,240, 6, 0, 0,241, 6, 7, 0,241, 5, 7, 0, 37, 0,249, 0, 17, 0,247, 0,242, 6,
-247, 0,243, 6,247, 0,244, 6,247, 0,245, 6,247, 0,246, 6,247, 0,247, 6,247, 0,248, 6,247, 0,249, 6,247, 0,250, 6,
-247, 0,251, 6,247, 0,252, 6,247, 0,253, 6,247, 0,254, 6,247, 0,255, 6,247, 0, 0, 7,248, 0, 1, 7, 0, 0, 2, 7,
-250, 0, 77, 0, 0, 0, 3, 7, 0, 0, 4, 7, 0, 0,231, 6, 0, 0, 5, 7, 0, 0, 6, 7, 0, 0, 7, 7, 0, 0, 8, 7,
- 0, 0, 9, 7, 0, 0, 10, 7, 0, 0, 11, 7, 0, 0, 12, 7, 0, 0, 13, 7, 0, 0, 14, 7, 0, 0, 15, 7, 0, 0, 16, 7,
- 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7, 0, 0, 21, 7, 0, 0, 22, 7, 0, 0, 23, 7, 0, 0, 24, 7,
- 0, 0, 25, 7, 0, 0, 26, 7, 0, 0, 27, 7, 0, 0, 28, 7, 0, 0, 29, 7, 0, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7,
- 0, 0, 33, 7, 0, 0, 34, 7, 0, 0, 35, 7, 0, 0, 36, 7, 0, 0, 37, 7, 0, 0, 38, 7, 0, 0, 39, 7, 0, 0, 40, 7,
- 0, 0, 41, 7, 0, 0, 42, 7, 0, 0, 43, 7, 0, 0, 44, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7,
- 0, 0, 49, 7, 0, 0, 50, 7, 0, 0, 51, 7, 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7,
- 0, 0, 57, 7, 0, 0, 58, 7, 0, 0, 59, 7, 0, 0, 60, 7, 0, 0, 61, 7, 0, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7,
- 0, 0, 65, 7, 0, 0, 66, 7, 0, 0, 67, 7, 0, 0, 68, 7, 0, 0, 69, 7, 0, 0, 70, 7, 0, 0, 71, 7, 0, 0, 72, 7,
- 0, 0, 73, 7, 0, 0, 74, 7, 0, 0, 75, 7, 0, 0, 76, 7, 0, 0, 77, 7, 0, 0, 78, 7,251, 0, 5, 0, 0, 0, 79, 7,
- 0, 0, 27, 7, 0, 0, 29, 7, 2, 0, 19, 0, 2, 0, 37, 0,252, 0, 25, 0,252, 0, 0, 0,252, 0, 1, 0, 0, 0, 20, 0,
-249, 0, 80, 7,250, 0, 81, 7,250, 0, 82, 7,250, 0, 83, 7,250, 0, 84, 7,250, 0, 85, 7,250, 0, 86, 7,250, 0, 87, 7,
-250, 0, 88, 7,250, 0, 89, 7,250, 0, 90, 7,250, 0, 91, 7,250, 0, 92, 7,250, 0, 93, 7,250, 0, 94, 7,250, 0, 95, 7,
-250, 0, 96, 7,250, 0, 97, 7,250, 0, 98, 7,251, 0, 99, 7, 4, 0,100, 7, 4, 0, 37, 0,253, 0, 3, 0,253, 0, 0, 0,
-253, 0, 1, 0, 0, 0,101, 7,254, 0, 5, 0, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,139, 2, 7, 0,102, 7, 7, 0, 44, 2,
-255, 0, 81, 0, 4, 0, 19, 0, 4, 0,103, 7, 4, 0,104, 7, 0, 0,105, 7, 0, 0,106, 7, 0, 0,107, 7, 0, 0,108, 7,
- 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, 0, 0,113, 7, 4, 0,114, 7, 2, 0,115, 7, 2, 0,116, 7,
- 2, 0,117, 7, 2, 0,118, 7, 4, 0,119, 7, 4, 0,120, 7, 4, 0,121, 7, 4, 0,122, 7, 2, 0,123, 7, 2, 0,124, 7,
- 4, 0,125, 7, 4, 0,126, 7, 4, 0,127, 7, 4, 0,128, 7, 4, 0,129, 7, 4, 0,193, 6, 4, 0,130, 7, 2, 0,131, 7,
- 2, 0,132, 7, 2, 0,133, 7, 2, 0,134, 7, 12, 0,135, 7, 12, 0,136, 7, 12, 0,137, 7, 12, 0,138, 7, 12, 0,139, 7,
- 0, 0,140, 7, 2, 0,141, 7, 2, 0,142, 7, 2, 0,143, 7, 2, 0,144, 7, 2, 0,145, 7, 2, 0,146, 7, 2, 0,147, 7,
- 2, 0,148, 7,254, 0,149, 7, 2, 0,150, 7, 2, 0,151, 7, 2, 0,152, 7, 2, 0,153, 7, 2, 0,154, 7, 2, 0,155, 7,
- 2, 0,156, 7, 2, 0,157, 7, 4, 0,158, 7, 4, 0,159, 7, 2, 0,160, 7, 2, 0,161, 7, 2, 0,162, 7, 2, 0,163, 7,
- 2, 0,164, 7, 2, 0,165, 7, 2, 0,166, 7, 2, 0,167, 7, 2, 0,168, 7, 2, 0,169, 7, 2, 0,170, 7, 2, 0,171, 7,
- 2, 0,172, 7, 2, 0, 70, 0, 2, 0,173, 7, 2, 0,174, 7, 0, 0,175, 7, 0, 0,176, 7, 7, 0,177, 7, 2, 0,165, 5,
- 2, 0,166, 5, 55, 0,178, 7,218, 0, 21, 0, 27, 0, 31, 0, 12, 0,179, 7, 12, 0,180, 7, 12, 0,181, 7, 12, 0, 21, 6,
- 46, 0,134, 0, 46, 0,182, 7, 2, 0,183, 7, 2, 0,184, 7, 2, 0,185, 7, 2, 0,186, 7, 2, 0,187, 7, 2, 0,188, 7,
- 2, 0,189, 7, 2, 0,190, 7, 2, 0,191, 7, 2, 0,192, 7, 4, 0, 70, 0,213, 0,193, 7, 9, 0,194, 7, 2, 0,195, 7,
- 0, 1, 5, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1,196, 7, 13, 0,197, 7, 4, 0, 19, 0, 1, 1, 7, 0, 1, 1, 0, 0,
- 1, 1, 1, 0, 0, 1,198, 7, 0, 1,199, 7, 2, 0, 16, 5, 2, 0, 19, 0, 4, 0, 37, 0, 2, 1, 25, 0, 2, 1, 0, 0,
- 2, 1, 1, 0, 3, 1,200, 7, 4, 1,111, 6, 0, 0,201, 7, 0, 0,202, 7, 0, 0,203, 7, 2, 0,204, 7, 2, 0,205, 7,
- 2, 0,206, 7, 2, 0,207, 7, 2, 0,208, 7, 2, 0, 37, 0, 2, 0, 19, 0, 2, 0,209, 7, 2, 0,210, 7, 2, 0,211, 7,
- 4, 0,212, 7, 2, 1,213, 7, 9, 0,214, 7, 4, 0,215, 7, 4, 0,216, 7, 4, 0,217, 7, 4, 0,218, 7, 0, 0,219, 7,
- 5, 1, 22, 0, 5, 1, 0, 0, 5, 1, 1, 0, 0, 1,198, 7, 0, 1,199, 7, 0, 1,220, 7, 0, 1,221, 7,218, 0,222, 7,
- 23, 0, 52, 0, 0, 0, 22, 6, 0, 0,223, 7, 2, 0, 66, 6, 2, 0, 67, 6, 2, 0,224, 7, 2, 0, 37, 0, 2, 0,186, 7,
- 2, 0,191, 6, 2, 0, 19, 0, 6, 1,200, 7, 12, 0,225, 7, 12, 0, 21, 6, 12, 0,226, 7, 12, 0,227, 7, 7, 1, 22, 0,
- 7, 1, 0, 0, 7, 1, 1, 0,216, 0, 75, 6, 23, 0,228, 7, 23, 0,229, 7, 2, 0, 66, 6, 2, 0, 67, 6, 2, 0,230, 7,
- 2, 0,231, 7, 2, 0,232, 7, 2, 0, 19, 0, 7, 0, 86, 2, 2, 0,206, 7, 2, 0,207, 7, 2, 0,185, 7, 2, 0,190, 7,
- 8, 1,200, 7, 12, 0,233, 7, 12, 0,234, 7, 12, 0,226, 7, 0, 0,235, 7, 9, 0,236, 7, 9, 1, 12, 0, 0, 0,237, 7,
- 2, 0,238, 7, 2, 0,239, 7, 2, 0,240, 7, 2, 0,241, 7, 2, 0, 3, 5, 2, 0,254, 4,218, 0,242, 7, 46, 0,243, 7,
- 4, 0,244, 7, 4, 0,245, 7, 0, 0, 35, 0, 10, 1, 1, 0, 0, 0,246, 7, 11, 1, 8, 0, 57, 0,247, 7, 57, 0,248, 7,
- 11, 1,249, 7, 11, 1,250, 7, 11, 1,251, 7, 2, 0,129, 0, 2, 0, 19, 0, 4, 0,252, 7, 12, 1, 4, 0, 4, 0,136, 6,
- 4, 0,253, 7, 4, 0,141, 6, 4, 0,254, 7, 13, 1, 2, 0, 4, 0,255, 7, 4, 0, 0, 8, 14, 1, 7, 0, 7, 0, 1, 8,
- 7, 0, 2, 8, 7, 0, 3, 8, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,123, 4, 7, 0, 4, 8, 15, 1, 6, 0, 0, 0, 5, 8,
- 0, 0, 94, 6, 49, 0,137, 0, 2, 0,106, 0, 2, 0, 2, 5, 4, 0, 37, 0, 16, 1, 21, 0, 16, 1, 0, 0, 16, 1, 1, 0,
- 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, 4, 0, 6, 8, 4, 0, 7, 8, 4, 0, 8, 8, 10, 1, 9, 8, 0, 0, 5, 8,
- 4, 0, 10, 8, 4, 0, 11, 8, 15, 1, 89, 3, 12, 1, 12, 8, 13, 1, 13, 8, 14, 1, 14, 8, 11, 1, 15, 8, 11, 1, 16, 8,
- 11, 1, 17, 8, 57, 0, 18, 8, 57, 0, 19, 8, 17, 1, 12, 0, 0, 0, 6, 2, 9, 0,223, 0, 0, 0,224, 0, 4, 0,227, 0,
- 4, 0,235, 0, 9, 0,228, 0, 7, 0,230, 0, 7, 0,231, 0, 9, 0, 20, 8, 9, 0, 21, 8, 9, 0,232, 0, 9, 0,234, 0,
- 18, 1, 45, 0, 18, 1, 0, 0, 18, 1, 1, 0, 9, 0, 22, 8, 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0,
- 4, 0, 23, 0, 4, 0, 88, 0, 4, 0, 23, 8, 4, 0, 24, 8, 4, 0, 7, 8, 4, 0, 8, 8, 4, 0, 25, 8, 4, 0,246, 0,
- 4, 0, 26, 8, 4, 0, 27, 8, 7, 0, 28, 8, 7, 0, 29, 8, 4, 0,126, 0, 4, 0, 30, 8, 16, 1, 31, 8, 36, 0, 80, 0,
- 46, 0,134, 0, 49, 0,137, 0, 7, 0, 32, 8, 7, 0, 33, 8, 17, 1, 60, 1, 18, 1, 34, 8, 18, 1, 35, 8, 18, 1, 36, 8,
- 12, 0, 37, 8, 19, 1, 38, 8, 9, 0, 39, 8, 7, 0,247, 3, 7, 0, 37, 0, 7, 0, 40, 8, 7, 0, 41, 8, 4, 0, 42, 8,
- 7, 0, 43, 8, 9, 0, 44, 8, 4, 0, 45, 8, 4, 0, 46, 8, 4, 0, 47, 8, 7, 0, 48, 8, 20, 1, 4, 0, 20, 1, 0, 0,
- 20, 1, 1, 0, 12, 0, 49, 8, 18, 1, 50, 8,204, 0, 6, 0, 12, 0, 51, 8, 12, 0, 37, 8, 12, 0, 52, 8, 18, 1, 53, 8,
- 0, 0, 54, 8, 0, 0, 55, 8, 21, 1, 4, 0, 7, 0, 56, 8, 7, 0,109, 0, 2, 0, 57, 8, 2, 0, 58, 8, 22, 1, 6, 0,
- 7, 0, 59, 8, 7, 0, 60, 8, 7, 0, 61, 8, 7, 0, 62, 8, 4, 0, 63, 8, 4, 0, 64, 8, 23, 1, 13, 0, 7, 0, 65, 8,
- 7, 0, 66, 8, 7, 0, 67, 8, 7, 0, 68, 8, 7, 0, 69, 8, 7, 0, 70, 8, 7, 0, 71, 8, 7, 0, 72, 8, 7, 0, 73, 8,
- 7, 0, 74, 8, 4, 0,234, 2, 4, 0, 75, 8, 4, 0, 76, 8, 24, 1, 2, 0, 7, 0,100, 5, 7, 0, 37, 0, 25, 1, 5, 0,
- 7, 0, 77, 8, 7, 0, 78, 8, 4, 0, 90, 0, 4, 0,192, 2, 4, 0, 79, 8, 26, 1, 6, 0, 26, 1, 0, 0, 26, 1, 1, 0,
- 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 80, 8, 2, 0, 57, 0, 27, 1, 8, 0, 27, 1, 0, 0, 27, 1, 1, 0, 2, 0, 17, 0,
- 2, 0, 19, 0, 2, 0, 80, 8, 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,126, 0, 28, 1, 45, 0, 28, 1, 0, 0, 28, 1, 1, 0,
- 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 80, 8, 2, 0,242, 0, 2, 0, 33, 4, 2, 0, 81, 8, 7, 0, 82, 8, 7, 0, 89, 0,
- 7, 0,247, 2, 4, 0, 83, 8, 4, 0, 82, 0, 4, 0,194, 2, 7, 0, 84, 8, 7, 0, 85, 8, 7, 0, 86, 8, 7, 0, 87, 8,
- 7, 0, 88, 8, 7, 0, 89, 8, 7, 0,244, 2, 7, 0, 57, 1, 7, 0, 90, 8, 7, 0, 91, 8, 7, 0, 37, 0, 7, 0, 92, 8,
- 7, 0, 93, 8, 7, 0, 94, 8, 2, 0, 95, 8, 2, 0, 96, 8, 2, 0, 97, 8, 2, 0, 98, 8, 2, 0, 99, 8, 2, 0,100, 8,
- 2, 0,101, 8, 2, 0,102, 8, 2, 0, 29, 2, 2, 0,103, 8, 2, 0, 26, 2, 2, 0,104, 8, 0, 0,105, 8, 0, 0,106, 8,
- 7, 0,240, 0, 29, 1,107, 8, 67, 0,242, 1, 30, 1, 16, 0, 30, 1, 0, 0, 30, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0,
- 2, 0, 80, 8, 2, 0,242, 0, 7, 0,239, 2, 7, 0,240, 2, 7, 0,241, 2, 7, 0, 75, 2, 7, 0,242, 2, 7, 0,243, 2,
- 7, 0,108, 8, 7, 0,244, 2, 7, 0,246, 2, 7, 0,247, 2,230, 0, 5, 0, 2, 0, 17, 0, 2, 0,252, 7, 2, 0, 19, 0,
- 2, 0,109, 8, 27, 0,165, 6,229, 0, 3, 0, 4, 0, 69, 0, 4, 0,110, 8,230, 0, 2, 0, 31, 1, 7, 0, 31, 1, 0, 0,
- 31, 1, 1, 0, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, 9, 0,111, 8, 32, 1, 5, 0, 0, 0, 20, 0,
- 7, 0, 77, 1, 7, 0,112, 8, 4, 0,113, 8, 4, 0, 37, 0, 33, 1, 4, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 43, 0,
- 2, 0, 70, 0, 34, 1, 4, 0, 0, 0, 20, 0, 66, 0,114, 8, 7, 0, 77, 1, 7, 0, 37, 0, 35, 1, 6, 0, 2, 0,115, 8,
- 2, 0,116, 8, 2, 0, 17, 0, 2, 0,117, 8, 0, 0,118, 8, 0, 0,119, 8, 36, 1, 5, 0, 4, 0, 17, 0, 4, 0, 37, 0,
- 0, 0, 20, 0, 0, 0,120, 8, 0, 0,121, 8, 37, 1, 3, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 38, 1, 4, 0,
- 2, 0,122, 8, 2, 0,123, 8, 2, 0, 19, 0, 2, 0, 37, 0, 39, 1, 6, 0, 0, 0, 20, 0, 0, 0,124, 8, 2, 0,125, 8,
- 2, 0,244, 2, 2, 0, 70, 1, 2, 0, 70, 0, 40, 1, 5, 0, 0, 0, 20, 0, 7, 0,109, 0, 7, 0,125, 4, 2, 0, 19, 0,
- 2, 0,206, 2, 41, 1, 3, 0, 0, 0, 20, 0, 4, 0,194, 2, 4, 0,122, 8, 42, 1, 7, 0, 0, 0, 20, 0, 7, 0,125, 4,
- 0, 0,126, 8, 0, 0,127, 8, 2, 0, 70, 1, 2, 0, 43, 0, 4, 0,128, 8, 43, 1, 4, 0, 0, 0,129, 8, 0, 0,130, 8,
- 4, 0, 17, 0, 7, 0,210, 2, 44, 1, 3, 0, 32, 0,131, 8, 0, 0,132, 8, 0, 0,133, 8, 45, 1, 18, 0, 45, 1, 0, 0,
- 45, 1, 1, 0, 2, 0, 17, 0, 2, 0,134, 8, 2, 0, 19, 0, 2, 0,135, 8, 2, 0,136, 8, 2, 0,137, 8, 2, 0, 43, 0,
- 2, 0, 70, 0, 0, 0, 20, 0, 9, 0, 2, 0, 46, 1,138, 8, 32, 0, 45, 0, 2, 0,117, 5, 2, 0, 40, 8, 2, 0,139, 8,
- 2, 0, 37, 0, 47, 1, 11, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,140, 8, 2, 0, 19, 0, 2, 0,206, 2, 2, 0,141, 8,
- 4, 0,142, 8, 4, 0,143, 8, 4, 0,144, 8, 4, 0,145, 8, 4, 0,146, 8, 48, 1, 1, 0, 0, 0,147, 8, 49, 1, 4, 0,
- 42, 0,135, 6, 0, 0,101, 7, 4, 0, 70, 1, 4, 0, 19, 0, 46, 1, 18, 0, 46, 1, 0, 0, 46, 1, 1, 0, 46, 1,148, 8,
- 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,149, 8, 2, 0,137, 8, 2, 0,134, 8, 2, 0,150, 8, 2, 0, 70, 0, 2, 0,239, 1,
- 0, 0, 20, 0, 9, 0, 2, 0, 50, 1,138, 8, 45, 1,151, 8, 2, 0, 15, 0, 2, 0,152, 8, 4, 0,153, 8, 51, 1, 3, 0,
- 4, 0,220, 2, 4, 0, 37, 0, 32, 0, 45, 0, 52, 1, 12, 0,160, 0,154, 8, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 82, 8,
- 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,155, 8, 2, 0,156, 8, 2, 0,157, 8, 2, 0,158, 8, 2, 0,159, 8, 7, 0,160, 8,
- 53, 1, 13, 0, 2, 0, 19, 0, 2, 0,161, 8, 4, 0, 43, 0, 4, 0, 70, 0, 2, 0,162, 8, 7, 0,247, 3, 7, 0,163, 8,
- 19, 1, 38, 8, 54, 1,164, 8, 2, 0, 17, 0, 2, 0,122, 1, 2, 0,235, 5, 2, 0,165, 8, 55, 1, 11, 0, 4, 0,220, 2,
- 2, 0, 17, 0, 2, 0, 19, 0, 32, 0, 45, 0, 80, 0,166, 8, 0, 0, 20, 0, 7, 0,167, 8, 7, 0,168, 8, 7, 0,132, 3,
- 2, 0,169, 8, 2, 0,170, 8, 56, 1, 5, 0, 2, 0, 17, 0, 2, 0, 43, 0, 4, 0, 37, 0, 46, 0,134, 0, 32, 0,107, 5,
- 57, 1, 5, 0, 4, 0, 37, 0, 4, 0, 17, 0, 0, 0, 20, 0, 0, 0,120, 8, 32, 0, 45, 0, 58, 1, 13, 0, 2, 0, 19, 0,
- 2, 0, 17, 0, 2, 0,134, 8, 2, 0,133, 3, 7, 0,171, 8, 7, 0,172, 8, 7, 0,137, 1, 7, 0,145, 3, 7, 0,104, 3,
- 7, 0,107, 3, 7, 0,173, 8, 7, 0,174, 8, 32, 0,175, 8, 59, 1, 10, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 82, 8,
- 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,155, 8, 2, 0, 43, 0, 2, 0, 70, 0, 2, 0,239, 1, 2, 0,122, 1, 60, 1, 8, 0,
- 32, 0, 45, 0, 7, 0,241, 2, 7, 0,176, 8, 7, 0,177, 8, 7, 0, 37, 0, 2, 0, 43, 0, 2, 0,206, 2, 7, 0, 70, 0,
- 61, 1, 12, 0, 2, 0, 17, 0, 2, 0, 70, 1, 2, 0, 19, 0, 2, 0,244, 2, 2, 0,220, 2, 2, 0,178, 8, 4, 0, 37, 0,
- 7, 0,179, 8, 7, 0,180, 8, 7, 0,181, 8, 7, 0,182, 8, 0, 0,183, 8, 62, 1, 9, 0, 2, 0, 19, 0, 2, 0, 17, 0,
- 4, 0, 82, 8, 4, 0, 89, 0, 0, 0, 20, 0, 2, 0,137, 1, 2, 0, 64, 0, 2, 0,184, 8, 2, 0,185, 8, 63, 1, 7, 0,
- 4, 0,194, 2, 4, 0,186, 8, 4, 0,187, 8, 4, 0,188, 8, 7, 0,189, 8, 7, 0,190, 8, 0, 0,126, 8, 64, 1, 7, 0,
- 0, 0,191, 8, 32, 0,192, 8, 0, 0,132, 8, 2, 0,193, 8, 2, 0, 43, 0, 4, 0, 70, 0, 0, 0,133, 8, 65, 1, 6, 0,
- 2, 0, 19, 0, 2, 0, 17, 0, 4, 0, 82, 8, 4, 0, 89, 0, 0, 0,194, 8, 0, 0,195, 8, 66, 1, 1, 0, 4, 0, 19, 0,
- 67, 1, 6, 0, 0, 0, 92, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,196, 8, 7, 0,197, 8, 42, 0,135, 6, 68, 1, 4, 0,
- 0, 0, 71, 2, 2, 0, 19, 0, 4, 0, 17, 0, 32, 0, 45, 0, 69, 1, 2, 0, 4, 0, 17, 0, 4, 0, 55, 6, 70, 1, 6, 0,
- 0, 0,129, 8, 0, 0,130, 8, 4, 0, 17, 0, 7, 0, 37, 2, 32, 0, 49, 3, 32, 0,198, 8, 50, 1, 10, 0, 50, 1, 0, 0,
- 50, 1, 1, 0, 50, 1,148, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,134, 8, 2, 0,199, 8, 0, 0, 20, 0, 9, 0, 2, 0,
- 32, 0, 45, 0, 71, 1, 10, 0, 7, 0,132, 3, 7, 0,200, 8, 7, 0,201, 8, 7, 0,202, 8, 7, 0,203, 8, 4, 0, 19, 0,
- 7, 0,178, 8, 7, 0,204, 8, 7, 0,205, 8, 7, 0, 37, 0, 54, 1, 8, 0, 7, 0,206, 8, 7, 0,207, 8, 7, 0,208, 8,
- 7, 0,209, 8, 7, 0,210, 8, 7, 0,211, 8, 7, 0,212, 8, 7, 0,213, 8, 19, 1, 16, 0, 27, 0, 31, 0, 0, 0,222, 0,
- 43, 0,149, 0, 9, 0,223, 0, 43, 0,214, 8, 36, 0, 80, 0, 7, 0,247, 3, 7, 0,215, 8, 7, 0,163, 8, 7, 0,206, 8,
- 7, 0,207, 8, 7, 0,216, 8, 4, 0, 90, 0, 4, 0, 37, 0, 9, 0,217, 8, 9, 0,218, 8, 72, 1, 15, 0,215, 0, 0, 0,
-215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 5, 1,219, 8,216, 0, 75, 6, 19, 1, 38, 8, 2, 0, 70, 1,
- 2, 0,161, 8, 2, 0, 90, 2, 2, 0, 91, 2, 2, 0, 19, 0, 2, 0,127, 6, 4, 0, 70, 0, 73, 1, 6, 0, 73, 1, 0, 0,
- 73, 1, 1, 0, 32, 0, 45, 0, 9, 0,220, 8, 4, 0,247, 0, 4, 0, 37, 0, 67, 0, 4, 0, 27, 0, 31, 0, 12, 0,221, 8,
- 4, 0,131, 0, 7, 0,222, 8, 74, 1, 27, 0, 74, 1, 0, 0, 74, 1, 1, 0, 26, 0,223, 8, 74, 1, 38, 0, 12, 0,224, 8,
- 0, 0, 20, 0, 7, 0,225, 8, 7, 0,226, 8, 7, 0,227, 8, 7, 0,228, 8, 4, 0, 19, 0, 7, 0,229, 8, 7, 0,230, 8,
- 7, 0,231, 8, 7, 0, 77, 1, 7, 0, 37, 2, 7, 0,232, 8, 7, 0,192, 2, 7, 0,233, 8, 7, 0,234, 8, 7, 0,235, 8,
- 7, 0,236, 8, 7, 0,237, 8, 7, 0,172, 0, 4, 0,131, 0, 2, 0,146, 5, 2, 0,137, 1, 75, 1, 25, 0, 27, 0, 31, 0,
- 39, 0, 75, 0, 12, 0,238, 8, 12, 0,239, 8, 12, 0,240, 8, 74, 1,241, 8, 9, 0,242, 8, 9, 0,243, 8, 4, 0, 19, 0,
- 4, 0, 31, 6, 2, 0,248, 2, 2, 0, 85, 6, 4, 0, 37, 0, 4, 0,131, 0, 4, 0,244, 8, 2, 0,245, 8, 2, 0,246, 8,
- 2, 0,247, 8, 2, 0,248, 8, 4, 0,249, 8, 4, 0,250, 8, 4, 0,251, 8, 4, 0,252, 8, 4, 0,253, 8, 4, 0,254, 8,
- 76, 1, 2, 0, 7, 0,153, 2, 4, 0, 19, 0,164, 0, 5, 0, 76, 1,255, 8, 4, 0,192, 2, 4, 0, 0, 9, 4, 0, 1, 9,
- 4, 0, 19, 0,163, 0, 16, 0, 4, 0, 2, 9, 4, 0, 3, 9, 4, 0, 4, 9, 4, 0, 5, 9, 2, 0, 6, 9, 2, 0, 7, 9,
- 2, 0, 8, 9, 2, 0,247, 0, 2, 0, 9, 9, 2, 0, 10, 9, 2, 0, 11, 9, 2, 0, 12, 9, 4, 0, 13, 9, 4, 0, 14, 9,
- 4, 0, 15, 9, 4, 0, 16, 9, 77, 1, 44, 0, 77, 1, 0, 0, 77, 1, 1, 0, 26, 0,223, 8, 12, 0,159, 3, 0, 0, 20, 0,
- 2, 0, 19, 0, 2, 0, 17, 9, 2, 0, 18, 9, 2, 0, 19, 9, 2, 0,118, 3, 2, 0, 20, 9, 4, 0, 73, 2, 4, 0,251, 8,
- 4, 0,252, 8, 74, 1, 21, 9, 77, 1, 38, 0, 77, 1, 22, 9, 12, 0, 23, 9, 9, 0, 24, 9, 9, 0, 25, 9, 9, 0, 26, 9,
- 7, 0, 65, 1, 7, 0,172, 0, 7, 0, 27, 9, 7, 0, 16, 2, 7, 0,109, 3, 7, 0,111, 3, 2, 0,141, 3, 2, 0, 37, 0,
- 7, 0, 28, 9, 7, 0, 29, 9, 7, 0,114, 3, 7, 0, 30, 9, 7, 0, 31, 9, 7, 0, 32, 9, 7, 0, 33, 9, 7, 0, 34, 9,
- 7, 0, 35, 9, 7, 0, 36, 9, 7, 0, 37, 9, 7, 0, 66, 2,164, 0, 97, 3, 32, 0, 38, 9, 77, 1, 39, 9,161, 0, 12, 0,
- 12, 0, 40, 9, 2, 0, 19, 0, 2, 0, 41, 9, 7, 0,102, 2, 7, 0, 42, 9, 7, 0, 43, 9, 12, 0, 44, 9, 4, 0, 45, 9,
- 4, 0, 46, 9, 9, 0, 47, 9, 9, 0, 48, 9,163, 0, 96, 3, 78, 1, 1, 0, 4, 0, 46, 9, 79, 1, 12, 0, 4, 0, 46, 9,
- 7, 0,146, 8, 2, 0, 49, 9, 2, 0, 50, 9, 7, 0, 51, 9, 7, 0, 52, 9, 2, 0, 53, 9, 2, 0, 19, 0, 7, 0, 54, 9,
- 7, 0, 55, 9, 7, 0, 56, 9, 7, 0, 57, 9, 80, 1, 7, 0, 80, 1, 0, 0, 80, 1, 1, 0, 12, 0, 58, 9, 4, 0, 19, 0,
- 4, 0, 59, 9, 0, 0,238, 3,251, 0, 60, 9,160, 0, 7, 0, 27, 0, 31, 0, 12, 0, 61, 9, 12, 0, 40, 9, 12, 0, 62, 9,
- 12, 0,100, 0, 4, 0, 19, 0, 4, 0, 63, 9,220, 0, 5, 0, 27, 0, 64, 9, 12, 0, 40, 9, 67, 0, 65, 9, 4, 0, 66, 9,
- 4, 0, 19, 0, 81, 1, 13, 0,215, 0, 0, 0,215, 0, 1, 0, 12, 0, 21, 6, 4, 0, 22, 6, 7, 0, 23, 6, 2, 0, 24, 6,
-216, 0, 75, 6,160, 0, 92, 3,220, 0, 67, 9, 0, 0, 70, 1, 0, 0, 78, 6, 2, 0, 19, 0, 7, 0, 68, 9, 82, 1, 8, 0,
- 82, 1, 0, 0, 82, 1, 1, 0, 80, 1, 69, 9, 36, 0, 80, 0, 12, 0, 98, 3, 4, 0, 19, 0, 0, 0, 20, 0, 4, 0, 70, 9,
- 83, 1, 5, 0, 83, 1, 0, 0, 83, 1, 1, 0, 36, 0, 80, 0, 2, 0, 19, 0, 0, 0, 71, 9, 84, 1, 14, 0, 84, 1, 0, 0,
- 84, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 72, 9, 0, 0, 73, 9, 0, 0, 71, 9, 7, 0, 74, 9,
- 7, 0, 75, 9, 4, 0, 37, 0, 36, 0, 80, 0, 7, 0, 76, 9, 7, 0, 77, 9, 85, 1, 9, 0, 85, 1, 0, 0, 85, 1, 1, 0,
- 32, 0, 78, 9, 0, 0,251, 2, 7, 0, 79, 9, 2, 0, 80, 9, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0, 81, 9, 86, 1, 7, 0,
- 42, 0,135, 6, 26, 0,223, 8, 4, 0, 19, 0, 4, 0, 82, 9, 12, 0, 83, 9, 32, 0, 78, 9, 0, 0,251, 2, 87, 1, 15, 0,
- 32, 0, 78, 9, 2, 0, 84, 9, 2, 0, 19, 0, 2, 0, 85, 9, 2, 0, 86, 9, 0, 0,251, 2, 32, 0, 87, 9, 0, 0, 88, 9,
- 7, 0, 89, 9, 7, 0, 37, 2, 7, 0, 90, 9, 7, 0, 91, 9, 2, 0, 17, 0, 2, 0, 70, 1, 7, 0, 77, 1, 88, 1, 6, 0,
- 32, 0, 78, 9, 7, 0,255, 8, 2, 0, 92, 9, 2, 0, 93, 9, 2, 0, 19, 0, 2, 0, 94, 9, 89, 1, 6, 0, 32, 0, 78, 9,
- 4, 0, 95, 9, 4, 0, 96, 9, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,251, 2, 90, 1, 4, 0, 32, 0, 78, 9, 4, 0, 19, 0,
- 4, 0, 95, 9, 0, 0,251, 2, 91, 1, 4, 0, 32, 0, 78, 9, 4, 0, 19, 0, 4, 0, 95, 9, 0, 0,251, 2, 92, 1, 4, 0,
- 32, 0, 78, 9, 4, 0, 19, 0, 4, 0, 95, 9, 0, 0,251, 2, 93, 1, 2, 0, 32, 0, 78, 9, 0, 0,251, 2, 94, 1, 10, 0,
- 32, 0, 78, 9, 4, 0, 97, 9, 7, 0,125, 0, 4, 0, 19, 0, 2, 0,130, 6, 2, 0, 98, 9, 2, 0, 43, 0, 2, 0, 70, 0,
- 7, 0, 99, 9, 0, 0,251, 2, 95, 1, 10, 0, 32, 0, 78, 9, 2, 0, 17, 0, 2, 0, 41, 4, 4, 0, 88, 0, 4, 0, 89, 0,
- 7, 0,176, 8, 7, 0,177, 8, 4, 0, 37, 0,160, 0,154, 8, 0, 0,251, 2, 96, 1, 4, 0, 32, 0, 78, 9, 4, 0,119, 3,
- 4, 0,100, 9, 0, 0,251, 2, 97, 1, 4, 0, 32, 0, 78, 9, 4, 0,119, 3, 4, 0, 37, 0, 0, 0,251, 2, 98, 1, 6, 0,
- 32, 0, 78, 9, 7, 0,125, 0, 7, 0,101, 9, 4, 0,102, 9, 2, 0,119, 3, 2, 0,120, 3, 99, 1, 6, 0, 32, 0, 78, 9,
- 4, 0,103, 9, 4, 0,104, 9, 7, 0,105, 9, 7, 0,106, 9, 0, 0,251, 2,100, 1, 16, 0, 32, 0, 78, 9, 32, 0, 22, 9,
- 4, 0, 17, 0, 7, 0,107, 9, 7, 0,108, 9, 7, 0,109, 9, 7, 0,110, 9, 7, 0,111, 9, 7, 0,112, 9, 7, 0,113, 9,
- 7, 0,114, 9, 7, 0,115, 9, 2, 0, 19, 0, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0, 70, 0,101, 1, 3, 0, 32, 0, 78, 9,
- 4, 0, 19, 0, 4, 0, 29, 2,102, 1, 5, 0, 32, 0, 78, 9, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,116, 9, 0, 0,251, 2,
-103, 1, 10, 0, 32, 0, 78, 9, 0, 0,251, 2, 2, 0,117, 9, 2, 0,118, 9, 0, 0,119, 9, 0, 0,120, 9, 7, 0,121, 9,
- 7, 0,122, 9, 7, 0,123, 9, 7, 0,124, 9,104, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0,
- 7, 0,125, 9, 7, 0,126, 9, 2, 0, 19, 0, 2, 0, 29, 2,105, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0,
- 7, 0, 12, 0, 7, 0,125, 9, 7, 0,126, 9, 2, 0, 19, 0, 2, 0, 29, 2,106, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0,
- 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,125, 9, 7, 0,126, 9, 2, 0, 19, 0, 2, 0, 29, 2,107, 1, 7, 0, 32, 0, 78, 9,
- 0, 0,251, 2, 7, 0, 77, 1, 7, 0, 86, 1, 2, 0, 19, 0, 2, 0, 70, 1, 4, 0, 37, 0,108, 1, 5, 0, 32, 0, 49, 3,
- 7, 0, 77, 1, 2, 0, 53, 3, 0, 0, 55, 3, 0, 0,127, 9,109, 1, 10, 0,109, 1, 0, 0,109, 1, 1, 0, 2, 0, 17, 0,
- 2, 0, 19, 0, 0, 0,128, 9, 7, 0, 21, 1, 7, 0, 22, 1, 2, 0, 58, 9, 2, 0,129, 9, 32, 0, 45, 0,110, 1, 22, 0,
-110, 1, 0, 0,110, 1, 1, 0, 2, 0, 19, 0, 2, 0, 70, 1, 2, 0,130, 9, 2, 0,131, 9, 36, 0, 80, 0,160, 0,154, 8,
- 32, 0,164, 0, 7, 0, 88, 0, 7, 0, 89, 0, 7, 0,132, 9, 7, 0,133, 9, 7, 0,134, 9, 7, 0,135, 9, 7, 0,237, 2,
- 7, 0,136, 9, 7, 0,156, 8, 7, 0,137, 9, 0, 0,138, 9, 0, 0,139, 9, 12, 0,100, 3,111, 1, 8, 0, 7, 0, 44, 2,
- 7, 0,176, 8, 7, 0,177, 8, 9, 0, 2, 0, 2, 0,140, 9, 2, 0,141, 9, 2, 0,142, 9, 2, 0,143, 9,112, 1, 18, 0,
-112, 1, 0, 0,112, 1, 1, 0,112, 1,144, 9, 0, 0, 20, 0,111, 1,145, 9, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,146, 9,
- 2, 0,147, 9, 2, 0,148, 9, 2, 0,149, 9, 4, 0, 43, 0, 7, 0,150, 9, 7, 0,151, 9, 4, 0,152, 9, 4, 0,153, 9,
-112, 1,154, 9,113, 1,155, 9,114, 1, 33, 0,114, 1, 0, 0,114, 1, 1, 0,114, 1,156, 9, 0, 0, 20, 0, 2, 0, 17, 0,
- 2, 0, 19, 0, 2, 0, 6, 8, 2, 0, 40, 8, 2, 0,157, 9, 2, 0,133, 0, 2, 0,147, 9, 2, 0,252, 7, 12, 0,149, 8,
- 12, 0,158, 9, 27, 0,165, 6, 9, 0,159, 9, 7, 0,150, 9, 7, 0,151, 9, 7, 0, 75, 2, 7, 0,160, 9, 2, 0,161, 9,
- 2, 0,162, 9, 7, 0,163, 9, 7, 0,164, 9, 2, 0,165, 9, 2, 0,166, 9, 9, 0,167, 9, 24, 0,168, 9, 24, 0,169, 9,
- 24, 0,170, 9,115, 1,150, 0,116, 1,171, 9,117, 1,172, 9,113, 1, 8, 0,113, 1, 0, 0,113, 1, 1, 0,114, 1,173, 9,
-114, 1,174, 9,112, 1,175, 9,112, 1,154, 9, 4, 0, 19, 0, 4, 0, 37, 0, 60, 0, 22, 0, 27, 0, 31, 0, 39, 0, 75, 0,
-162, 0, 95, 3, 12, 0,176, 9, 12, 0,177, 9,111, 1,178, 9, 12, 0,179, 9, 4, 0, 17, 0, 4, 0,180, 9, 4, 0,181, 9,
- 4, 0,182, 9, 4, 0, 19, 0, 4, 0, 37, 0, 12, 0,183, 9,117, 1,184, 9, 4, 0,185, 9, 9, 0,186, 9, 9, 0,187, 9,
- 4, 0,188, 9, 9, 0,189, 9, 9, 0,190, 9, 9, 0,191, 9,118, 1, 6, 0, 4, 0,124, 0, 4, 0,126, 0, 4, 0,252, 7,
- 0, 0,192, 9, 0, 0,193, 9, 2, 0, 37, 0,119, 1, 16, 0, 2, 0,206, 7, 2, 0,207, 7, 2, 0,194, 9, 2, 0,201, 8,
- 2, 0,195, 9, 2, 0, 68, 0, 7, 0,236, 2, 7, 0,196, 9, 7, 0,197, 9, 2, 0, 92, 1, 0, 0,198, 9, 0, 0,199, 9,
- 2, 0,200, 9, 2, 0, 37, 0, 4, 0,201, 9, 4, 0,202, 9,120, 1, 9, 0, 7, 0,203, 9, 7, 0,204, 9, 7, 0,216, 8,
- 7, 0,109, 0, 7, 0,205, 9, 7, 0, 91, 6, 2, 0,206, 9, 0, 0,207, 9, 0, 0, 37, 0,121, 1, 4, 0, 7, 0,208, 9,
- 7, 0,209, 9, 2, 0,206, 9, 2, 0, 37, 0,122, 1, 3, 0, 7, 0,210, 9, 7, 0,211, 9, 7, 0, 15, 0,123, 1, 7, 0,
- 0, 0, 6, 2, 2, 0, 0, 5, 2, 0, 1, 5, 2, 0, 2, 5, 2, 0,196, 4, 4, 0,126, 0, 4, 0, 39, 4,124, 1, 7, 0,
- 7, 0,212, 9, 7, 0,213, 9, 7, 0,214, 9, 7, 0, 86, 2, 7, 0,215, 9, 7, 0,216, 9, 7, 0,217, 9,125, 1, 4, 0,
- 2, 0,218, 9, 2, 0,219, 9, 2, 0,220, 9, 2, 0,221, 9,126, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,127, 1, 2, 0,
- 0, 0,166, 0, 0, 0,222, 9,128, 1, 1, 0, 0, 0, 20, 0,129, 1, 10, 0, 0, 0,223, 9, 0, 0,224, 9, 0, 0, 84, 6,
- 0, 0,225, 9, 2, 0,194, 9, 2, 0,226, 9, 7, 0,227, 9, 7, 0,228, 9, 7, 0,229, 9, 7, 0,136, 9,130, 1, 2, 0,
- 9, 0,230, 9, 9, 0,231, 9,131, 1, 11, 0, 0, 0, 2, 5, 0, 0, 17, 0, 0, 0,206, 9, 0, 0,109, 0, 0, 0,232, 9,
- 0, 0,106, 0, 0, 0, 71, 2, 7, 0,233, 9, 7, 0,234, 9, 7, 0,235, 9, 7, 0,236, 9,132, 1, 8, 0, 7, 0,115, 8,
- 7, 0,125, 0, 7, 0,199, 9, 7, 0,158, 2, 7, 0,237, 9, 7, 0,236, 0, 7, 0,238, 9, 4, 0, 17, 0,133, 1, 4, 0,
- 2, 0,239, 9, 2, 0,240, 9, 2, 0,241, 9, 2, 0, 37, 0,134, 1, 6, 0, 7, 0,242, 9, 7, 0,200, 2, 7, 0,243, 9,
- 7, 0, 1, 8, 7, 0, 2, 8, 7, 0, 3, 8,135, 1, 1, 0, 0, 0, 20, 0,136, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0,
- 2, 0, 19, 0, 2, 0,244, 9,137, 1, 10, 0, 2, 0,227, 3, 2, 0, 19, 0, 7, 0,125, 4, 7, 0,245, 9, 7, 0,246, 9,
- 7, 0,247, 9, 7, 0,248, 9,136, 1,249, 9,136, 1,250, 9,136, 1,251, 9, 63, 0, 9, 0, 4, 0, 19, 0, 4, 0, 64, 0,
- 24, 0,252, 9, 24, 0,253, 9,137, 1,254, 9, 7, 0,255, 9, 7, 0, 0, 10, 7, 0, 1, 10, 7, 0, 2, 10,232, 0, 9, 0,
- 4, 0, 58, 9, 4, 0, 3, 10, 7, 0, 4, 10, 7, 0, 5, 10, 7, 0, 6, 10, 7, 0, 10, 0, 7, 0, 12, 0, 4, 0,129, 0,
- 4, 0, 19, 0,138, 1, 4, 0, 47, 0,230, 2, 7, 0, 7, 10, 7, 0,171, 1, 7, 0, 37, 0,193, 0, 18, 0, 27, 0, 31, 0,
-138, 1, 8, 10, 63, 0,249, 9, 51, 0, 9, 10, 2, 0, 19, 0, 2, 0,241, 5, 4, 0,106, 0, 7, 0, 10, 10, 7, 0, 83, 2,
- 4, 0, 11, 10, 7, 0, 12, 10, 7, 0, 13, 10, 7, 0, 14, 10, 7, 0,171, 1, 0, 0, 15, 10, 0, 0, 16, 10, 0, 0, 17, 10,
- 0, 0, 70, 0,139, 1, 10, 0, 4, 0, 17, 0, 4, 0,125, 0, 4, 0, 19, 0, 4, 0,181, 3, 4, 0, 18, 10, 4, 0, 19, 10,
- 4, 0, 20, 10, 0, 0, 92, 0, 0, 0, 20, 0, 9, 0, 2, 0,140, 1, 1, 0, 0, 0, 35, 0, 91, 0, 7, 0,139, 1, 21, 10,
- 4, 0, 22, 10, 4, 0, 23, 10, 4, 0, 24, 10, 4, 0, 37, 0, 9, 0, 25, 10,140, 1, 26, 10,141, 1, 5, 0, 7, 0,153, 2,
- 7, 0,220, 2, 7, 0, 37, 2, 2, 0,129, 2, 2, 0, 37, 0,142, 1, 5, 0, 7, 0,153, 2, 7, 0, 27, 10, 7, 0, 28, 10,
- 7, 0, 29, 10, 7, 0,220, 2,143, 1, 5, 0, 32, 0, 30, 10,144, 1, 22, 0, 7, 0,213, 5, 7, 0, 31, 10, 7, 0, 57, 0,
-145, 1, 7, 0, 4, 0, 32, 10, 4, 0, 33, 10, 4, 0, 34, 10, 7, 0, 35, 10, 7, 0, 36, 10, 7, 0, 37, 10, 7, 0, 57, 0,
-146, 1, 8, 0,146, 1, 0, 0,146, 1, 1, 0, 32, 0, 45, 0, 4, 0,255, 0, 2, 0, 19, 0, 2, 0, 70, 1, 7, 0,220, 2,
- 7, 0,123, 8,147, 1, 6, 0,147, 1, 0, 0,147, 1, 1, 0, 32, 0, 45, 0, 2, 0,205, 2, 2, 0, 19, 0, 2, 0, 38, 10,
-148, 1, 17, 0,142, 1,175, 3,142, 1, 39, 10,141, 1, 40, 10,142, 1,107, 8,143, 1, 41, 10, 4, 0, 82, 0, 7, 0,220, 2,
- 7, 0,247, 2, 7, 0, 42, 10, 4, 0, 32, 10, 4, 0, 43, 10, 7, 0, 36, 10, 7, 0, 37, 10, 7, 0,106, 0, 4, 0, 44, 10,
- 2, 0, 19, 0, 2, 0, 45, 10,149, 1,110, 0, 27, 0, 31, 0, 39, 0, 75, 0,150, 1, 46, 10,171, 0, 61, 4, 4, 0, 19, 0,
- 2, 0, 17, 0, 2, 0,117, 9, 2, 0, 47, 10, 2, 0, 48, 10, 2, 0,141, 3, 2, 0, 49, 10, 2, 0, 50, 10, 2, 0, 51, 10,
- 2, 0, 52, 10, 2, 0, 53, 10, 2, 0, 54, 10, 2, 0, 55, 10, 2, 0,245, 4, 2, 0,125, 5, 2, 0, 56, 10, 2, 0, 57, 10,
- 2, 0, 58, 10, 2, 0, 59, 10, 2, 0, 60, 10, 2, 0, 26, 2, 2, 0,100, 8, 2, 0, 75, 8, 2, 0, 61, 10, 2, 0, 62, 10,
- 2, 0,191, 3, 2, 0,192, 3, 2, 0, 63, 10, 2, 0, 64, 10, 2, 0, 65, 10, 2, 0, 66, 10, 7, 0, 67, 10, 7, 0, 68, 10,
- 7, 0, 69, 10, 2, 0, 75, 5, 2, 0, 70, 10, 7, 0, 71, 10, 7, 0, 72, 10, 7, 0, 73, 10, 7, 0, 82, 8, 7, 0, 89, 0,
- 7, 0,247, 2, 7, 0, 88, 8, 7, 0, 74, 10, 7, 0, 75, 10, 7, 0, 76, 10, 4, 0, 83, 8, 4, 0, 81, 8, 4, 0, 77, 10,
- 7, 0, 84, 8, 7, 0, 85, 8, 7, 0, 86, 8, 7, 0, 78, 10, 7, 0, 79, 10, 7, 0, 80, 10, 7, 0, 81, 10, 7, 0, 82, 10,
- 7, 0, 57, 0, 7, 0, 83, 10, 7, 0, 84, 10, 7, 0, 85, 10, 7, 0, 86, 10, 7, 0,132, 3, 7, 0,106, 0, 7, 0, 87, 10,
- 7, 0, 88, 10, 7, 0, 89, 10, 7, 0, 90, 10, 7, 0, 91, 10, 7, 0, 92, 10, 7, 0, 93, 10, 4, 0, 94, 10, 4, 0, 95, 10,
- 7, 0, 96, 10, 7, 0, 97, 10, 7, 0, 98, 10, 7, 0, 99, 10, 7, 0,100, 10, 7, 0,210, 0, 7, 0,101, 10, 7, 0,218, 3,
- 7, 0,216, 3, 7, 0,217, 3, 7, 0,102, 10, 7, 0,103, 10, 7, 0,104, 10, 7, 0,105, 10, 7, 0,106, 10, 7, 0,107, 10,
- 7, 0,108, 10, 7, 0,109, 10, 7, 0,110, 10, 7, 0,111, 10, 7, 0,112, 10, 7, 0,113, 10, 7, 0,114, 10, 4, 0,115, 10,
- 4, 0,116, 10, 67, 0,164, 3, 12, 0,117, 10, 67, 0,118, 10, 32, 0,119, 10, 32, 0,120, 10, 36, 0, 80, 0,166, 0, 62, 1,
-166, 0,121, 10,147, 0, 44, 0,147, 0, 0, 0,147, 0, 1, 0,149, 1,122, 10,148, 1,123, 10,145, 1, 22, 9,173, 0,243, 3,
- 9, 0,244, 3,151, 1,124, 10,151, 1,125, 10, 12, 0,126, 10, 12, 0,127, 10,132, 0,128, 10,140, 0,129, 10,140, 0,130, 10,
- 32, 0,131, 10, 32, 0,132, 10, 32, 0, 38, 0, 12, 0, 83, 9, 0, 0, 20, 0, 7, 0,240, 0, 7, 0, 18, 3, 7, 0,133, 10,
- 4, 0,194, 2, 4, 0, 57, 0, 4, 0, 19, 0, 4, 0, 83, 8, 4, 0,134, 10, 4, 0,135, 10, 4, 0,136, 10, 2, 0,247, 0,
- 2, 0,137, 10, 2, 0,138, 10, 2, 0,139, 10, 0, 0,140, 10, 2, 0,141, 10, 2, 0,142, 10, 2, 0,143, 10, 9, 0,144, 10,
-136, 0, 60, 4, 12, 0, 5, 3, 12, 0,145, 10,152, 1,146, 10,153, 1,147, 10, 7, 0,148, 10,134, 0, 35, 0,154, 1,217, 8,
- 7, 0, 30, 4, 7, 0,149, 10, 7, 0,150, 10, 7, 0,213, 5, 7, 0,142, 3, 7, 0,132, 3, 7, 0,151, 10, 7, 0, 85, 2,
- 7, 0,152, 10, 7, 0,153, 10, 7, 0,154, 10, 7, 0,155, 10, 7, 0,156, 10, 7, 0,157, 10, 7, 0, 31, 4, 7, 0,158, 10,
- 7, 0,159, 10, 7, 0,160, 10, 7, 0, 32, 4, 7, 0, 28, 4, 7, 0, 29, 4, 7, 0,161, 10, 7, 0,162, 10, 4, 0,163, 10,
- 4, 0, 90, 0, 4, 0,164, 10, 4, 0,165, 10, 2, 0,166, 10, 2, 0,167, 10, 2, 0,168, 10, 2, 0,169, 10, 2, 0,170, 10,
- 2, 0,171, 10,171, 0, 61, 4,135, 0, 8, 0,154, 1,172, 10, 7, 0,173, 10, 7, 0,174, 10, 7, 0,243, 1, 7, 0,175, 10,
- 4, 0, 90, 0, 2, 0,176, 10, 2, 0,177, 10,155, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,178, 10,
-156, 1, 6, 0,156, 1, 0, 0,156, 1, 1, 0,155, 1,255, 8, 4, 0,253, 0, 2, 0,179, 10, 2, 0, 19, 0,157, 1, 5, 0,
-157, 1, 0, 0,157, 1, 1, 0, 12, 0,180, 10, 4, 0,181, 10, 4, 0, 19, 0,158, 1, 9, 0,158, 1, 0, 0,158, 1, 1, 0,
- 12, 0,124, 0,157, 1,182, 10, 4, 0, 19, 0, 2, 0,179, 10, 2, 0,183, 10, 7, 0, 91, 0, 0, 0,184, 10,162, 0, 6, 0,
- 27, 0, 31, 0, 12, 0, 18, 5, 4, 0, 19, 0, 2, 0,185, 10, 2, 0,186, 10, 9, 0,187, 10,159, 1, 7, 0,159, 1, 0, 0,
-159, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, 0, 0,188, 10, 0, 0,189, 10,160, 1, 5, 0, 12, 0,190, 10,
- 4, 0,191, 10, 4, 0,192, 10, 4, 0, 19, 0, 4, 0, 37, 0,161, 1, 17, 0, 27, 0, 31, 0,162, 1,193, 10,162, 1,194, 10,
- 12, 0,195, 10, 4, 0,196, 10, 2, 0,197, 10, 2, 0,198, 10, 12, 0,199, 10, 12, 0,200, 10,160, 1,201, 10, 12, 0,202, 10,
- 12, 0,203, 10, 12, 0,204, 10, 12, 0,205, 10,163, 1,206, 10, 12, 0,207, 10,213, 0,208, 10,162, 1, 31, 0,162, 1, 0, 0,
-162, 1, 1, 0, 9, 0,209, 10, 4, 0,184, 7, 2, 0,210, 10, 2, 0, 37, 0,218, 0, 74, 6,218, 0,211, 10, 0, 0,212, 10,
- 2, 0,213, 10, 2, 0,214, 10, 2, 0,206, 7, 2, 0,207, 7, 2, 0,215, 10, 2, 0,216, 10, 2, 0,181, 3, 2, 0,191, 6,
- 2, 0,217, 10, 2, 0,218, 10, 2, 0,185, 9,164, 1,219, 10,165, 1,220, 10,166, 1,221, 10, 4, 0,222, 10, 4, 0,223, 10,
- 9, 0,224, 10, 12, 0,200, 10, 12, 0,226, 7, 12, 0,225, 10, 12, 0,226, 10, 12, 0,227, 10,167, 1, 17, 0,167, 1, 0, 0,
-167, 1, 1, 0, 0, 0,228, 10, 26, 0, 30, 0, 2, 0,229, 10, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,230, 10, 2, 0,231, 10,
- 2, 0,232, 10, 2, 0,233, 10, 2, 0,234, 10, 2, 0, 19, 0, 2, 0,235, 10, 2, 0, 31, 0, 2, 0, 37, 0,168, 1,236, 10,
-169, 1, 10, 0,169, 1, 0, 0,169, 1, 1, 0, 12, 0,237, 10, 0, 0,228, 10, 2, 0,238, 10, 2, 0,239, 10, 2, 0, 19, 0,
- 2, 0,240, 10, 4, 0,241, 10, 9, 0,242, 10,163, 1, 8, 0,163, 1, 0, 0,163, 1, 1, 0, 0, 0,228, 10, 0, 0,243, 10,
- 0, 0,244, 10, 12, 0,138, 7, 4, 0,245, 10, 4, 0, 19, 0,226, 0, 14, 0,226, 0, 0, 0,226, 0, 1, 0, 0, 0,228, 10,
- 26, 0, 30, 0,170, 1,200, 7, 9, 0,246, 10, 9, 0,247, 10,168, 1,236, 10,160, 1,248, 10, 12, 0,249, 10,226, 0,250, 10,
- 4, 1,111, 6, 2, 0, 19, 0, 2, 0,137, 1,171, 1, 8, 0,171, 1, 0, 0,171, 1, 1, 0, 9, 0, 2, 0, 9, 0,251, 10,
- 0, 0,238, 3, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,252, 10,172, 1, 5, 0, 7, 0,253, 10, 4, 0,254, 10, 4, 0,255, 10,
- 4, 0, 70, 1, 4, 0, 19, 0,173, 1, 6, 0, 7, 0, 0, 11, 7, 0, 1, 11, 7, 0, 2, 11, 7, 0, 3, 11, 4, 0, 17, 0,
- 4, 0, 19, 0,174, 1, 5, 0, 7, 0,176, 8, 7, 0,177, 8, 7, 0,220, 2, 2, 0, 40, 2, 2, 0, 41, 2,175, 1, 5, 0,
-174, 1, 2, 0, 4, 0, 54, 0, 7, 0, 4, 11, 7, 0,176, 8, 7, 0,177, 8,176, 1, 4, 0, 2, 0, 5, 11, 2, 0, 6, 11,
- 2, 0, 7, 11, 2, 0, 8, 11,177, 1, 2, 0, 42, 0,162, 6, 26, 0,223, 8,178, 1, 3, 0, 24, 0, 9, 11, 4, 0, 19, 0,
- 4, 0, 37, 0,179, 1, 6, 0, 7, 0,106, 0, 7, 0,222, 2, 7, 0, 10, 11, 7, 0, 37, 0, 2, 0,246, 0, 2, 0, 11, 11,
-180, 1, 6, 0, 27, 0,165, 6, 0, 0, 12, 11, 0, 0, 13, 11, 2, 0, 14, 11, 2, 0, 19, 0, 4, 0, 15, 11,181, 1, 7, 0,
-181, 1, 0, 0,181, 1, 1, 0, 0, 0,238, 3,180, 1, 16, 11, 2, 0, 17, 11, 2, 0, 17, 0, 7, 0, 61, 0,182, 1, 7, 0,
- 12, 0, 18, 11, 0, 0, 19, 11, 9, 0, 20, 11, 7, 0, 61, 0, 7, 0,252, 10, 4, 0, 17, 0, 4, 0, 19, 0,183, 1, 3, 0,
- 7, 0, 21, 11, 4, 0, 19, 0, 4, 0, 37, 0,184, 1, 15, 0,184, 1, 0, 0,184, 1, 1, 0, 80, 1, 69, 9,182, 1, 62, 0,
- 12, 0,100, 3, 35, 0, 50, 0,183, 1, 22, 11, 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0, 15, 1, 4, 0, 23, 11,
- 0, 0, 12, 11, 4, 0, 24, 11, 7, 0, 25, 11,185, 1, 2, 0, 0, 0, 26, 11, 0, 0, 27, 11,186, 1, 4, 0,186, 1, 0, 0,
-186, 1, 1, 0,160, 0, 49, 3, 12, 0, 28, 11,187, 1, 24, 0,187, 1, 0, 0,187, 1, 1, 0, 12, 0, 29, 11,160, 0,154, 8,
-186, 1, 30, 11, 12, 0, 31, 11, 12, 0,100, 3, 0, 0,238, 3, 7, 0,252, 10, 7, 0, 32, 11, 7, 0, 88, 0, 7, 0, 89, 0,
- 7, 0,132, 9, 7, 0,133, 9, 7, 0,237, 2, 7, 0,136, 9, 7, 0,156, 8, 7, 0,137, 9, 2, 0, 33, 11, 2, 0, 34, 11,
- 2, 0, 43, 0, 2, 0, 17, 0, 4, 0, 19, 0, 4, 0, 70, 0,188, 1, 6, 0,188, 1, 0, 0,188, 1, 1, 0, 12, 0, 29, 11,
- 4, 0, 19, 0, 4, 0,157, 2, 0, 0,238, 3,189, 1, 10, 0,189, 1, 0, 0,189, 1, 1, 0, 27, 0,165, 6, 0, 0, 35, 11,
- 4, 0, 15, 11, 4, 0, 36, 11, 0, 0, 12, 11, 4, 0, 23, 11, 2, 0, 19, 0, 2, 0, 37, 11,190, 1, 7, 0,190, 1, 0, 0,
-190, 1, 1, 0, 12, 0, 38, 11, 0, 0,238, 3, 2, 0, 19, 0, 2, 0, 39, 11, 4, 0, 40, 11,191, 1, 5, 0,191, 1, 0, 0,
-191, 1, 1, 0, 0, 0, 12, 11, 4, 0, 23, 11, 7, 0,210, 2, 39, 0, 12, 0,160, 0, 92, 3,160, 0, 41, 11,186, 1, 30, 11,
- 12, 0, 42, 11,187, 1, 43, 11, 12, 0, 44, 11, 12, 0, 45, 11, 4, 0, 19, 0, 4, 0,247, 0, 2, 0, 46, 11, 2, 0, 47, 11,
- 7, 0, 48, 11,192, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0,193, 1, 5, 0,193, 1, 0, 0,193, 1, 1, 0, 4, 0, 17, 0,
- 4, 0, 19, 0, 0, 0, 20, 0,194, 1, 6, 0,193, 1, 49, 11, 32, 0, 45, 0, 4, 0, 50, 11, 7, 0, 51, 11, 4, 0, 52, 11,
- 4, 0, 58, 9,195, 1, 3, 0,193, 1, 49, 11, 4, 0, 50, 11, 7, 0, 53, 11,196, 1, 8, 0,193, 1, 49, 11, 32, 0, 45, 0,
- 7, 0, 65, 1, 7, 0, 54, 11, 7, 0, 18, 3, 7, 0,216, 8, 4, 0, 50, 11, 4, 0, 55, 11,197, 1, 5, 0,193, 1, 49, 11,
- 7, 0, 56, 11, 7, 0, 40, 8, 7, 0,243, 2, 7, 0, 57, 0,198, 1, 3, 0,193, 1, 49, 11, 7, 0,216, 8, 7, 0, 57, 11,
-144, 1, 4, 0, 7, 0, 58, 11, 7, 0, 89, 10, 2, 0, 59, 11, 2, 0, 70, 1,199, 1, 14, 0,199, 1, 0, 0,199, 1, 1, 0,
- 12, 0, 60, 11, 12, 0, 61, 11, 12, 0, 62, 11, 0, 0, 20, 0, 4, 0, 31, 0, 4, 0, 19, 0, 4, 0, 63, 11, 7, 0, 64, 11,
- 4, 0, 52, 11, 4, 0, 58, 9, 7, 0,247, 3, 7, 0,245, 2,150, 1, 23, 0, 4, 0, 50, 11, 4, 0, 65, 11, 7, 0, 66, 11,
- 7, 0, 57, 0, 7, 0, 67, 11, 7, 0,241, 2, 7, 0, 58, 11, 7, 0, 68, 11, 7, 0,222, 2, 7, 0, 69, 11, 7, 0,125, 4,
- 7, 0, 70, 11, 7, 0, 71, 11, 7, 0, 72, 11, 7, 0, 73, 11, 7, 0, 74, 11, 7, 0, 75, 11, 7, 0, 76, 11, 7, 0, 77, 11,
- 7, 0, 78, 11, 7, 0, 79, 11, 7, 0, 80, 11, 12, 0, 81, 11,120, 0, 36, 0,119, 0, 82, 11,200, 1, 83, 11, 67, 0, 84, 11,
- 67, 0,118, 10, 67, 0, 85, 11,201, 1, 86, 11, 48, 0,165, 0, 48, 0, 87, 11, 48, 0, 88, 11, 7, 0, 89, 11, 7, 0, 90, 11,
- 7, 0, 91, 11, 7, 0, 92, 11, 7, 0, 93, 11, 7, 0, 70, 9, 7, 0, 94, 11, 7, 0,171, 1, 7, 0, 95, 11, 4, 0, 96, 11,
- 4, 0, 97, 11, 4, 0, 98, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0, 99, 11, 2, 0,100, 11, 2, 0,101, 11, 4, 0,102, 11,
- 7, 0,222, 2, 4, 0,103, 11, 7, 0,104, 11, 4, 0,105, 11, 4, 0,106, 11, 4, 0,107, 11,136, 0,108, 11, 12, 0,109, 11,
-171, 0, 61, 4,121, 0, 11, 0,119, 0, 82, 11,147, 0, 35, 3, 7, 0,138, 1, 7, 0, 70, 9, 7, 0,110, 11, 7, 0,111, 11,
- 2, 0,112, 11, 2, 0,113, 11, 2, 0,114, 11, 2, 0, 17, 0, 4, 0, 37, 0,122, 0, 13, 0,119, 0, 82, 11,138, 0, 15, 3,
-140, 0, 17, 3, 7, 0,255, 8, 7, 0,115, 11, 7, 0,116, 11, 7, 0, 67, 1, 7, 0,117, 11, 4, 0, 92, 9, 4, 0, 13, 3,
- 2, 0, 17, 0, 2, 0, 37, 0, 4, 0, 70, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0};
diff --git a/source/blender/editors/datafiles/Bfont.c b/source/blender/editors/datafiles/Bfont.c
index bbef7d1e2c3..324bcffde77 100644
--- a/source/blender/editors/datafiles/Bfont.c
+++ b/source/blender/editors/datafiles/Bfont.c
@@ -28,10 +28,6 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int datatoc_Bfont_size= 25181;
char datatoc_Bfont[]= {"\x80\x01\xe4\x01\x00\x00\x25\x21\x50\x53\x2d\x41\x64\x6f\x62\x65\x46\x6f\x6e\x74\x2d\x31\x2e\x30\x3a\x20\x42\x66\x6f\x6e\x74\x20\x30\x30\x31\x2e\x30\x30\x31\x0a\x31\x31\x20\x64\x69\x63\x74\x20\x62\x65\x67\x69\x6e\x0a\x2f\x46\x6f\x6e\x74\x49\x6e\x66\x6f\x20\x31\x30\x20\x64\x69\x63\x74\x20\x64\x75\x70\x20\x62\x65\x67\x69\x6e\x0a\x2f\x76\x65\x72\x73\x69\x6f\x6e\x20\x28" \
diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt
new file mode 100644
index 00000000000..d37ee338733
--- /dev/null
+++ b/source/blender/editors/datafiles/CMakeLists.txt
@@ -0,0 +1,26 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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 LicenseS
+# 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC "")
+
+BLENDERLIB(bf_editor_datafiles "${SRC}" "${INC}")
diff --git a/source/blender/editors/datafiles/blenderbuttons.c b/source/blender/editors/datafiles/blenderbuttons.c
index 64d2659dcb2..f4afe8b0252 100644
--- a/source/blender/editors/datafiles/blenderbuttons.c
+++ b/source/blender/editors/datafiles/blenderbuttons.c
@@ -1,6570 +1,6560 @@
/* DataToC output of file <blenderbuttons> */
-int datatoc_blenderbuttons_size= 210034;
+int datatoc_blenderbuttons_size= 209697;
char datatoc_blenderbuttons[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0,
- 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1,
- 66, 40,155,120, 0, 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,
-101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,
-145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138,
- 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207,
- 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,
-100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,
-234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,
-160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145,
- 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102,
- 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0,
- 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,
-206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,
-253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,
-209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218,
- 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,
-108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,
-143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146,
- 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,
-192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113,
- 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193,
- 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64,
- 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97,
- 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49,
- 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,
-212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,
-104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,
-198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,
-216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135,
- 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,
-210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,
-228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,
-163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,
-162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12,
- 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,
-231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,
-243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,
-135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,
-120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74,
- 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166,
- 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129,
- 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,
-161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245,
- 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149,
- 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75,
- 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,
-155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85,
- 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,
-176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,
-217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216,
- 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,
-198,221,200,189,228, 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204,
- 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35,
- 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204,
- 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,
-129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173,
- 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,
-133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45,
- 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,
-110,108,190,223,252,237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44,
- 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,
-136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13,
- 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,
-203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42,
- 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,
-146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182,
- 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,
-220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,
-135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,
-217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205,
- 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253,
- 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,
-199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45,
- 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,
-103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52,
- 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,
-206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,
-175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158,
- 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,
-187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,
-209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,
-233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,
-191,109,124,165,253,234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,
-223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0,
- 0, 0, 32, 99, 72, 82, 77, 0, 0,122, 37, 0, 0,128,131, 0, 0,249,255, 0, 0,128,233, 0, 0,117, 48, 0, 0,234, 96, 0,
- 0, 58,152, 0, 0, 23,111,146, 95,197, 70, 0, 3, 41,157, 73, 68, 65, 84,120,218,236, 93,119,152, 19, 69, 31,126,103,179,233,
-185,222, 27, 28,119,244,222,145,222,139,210,145,206,135, 32, 98,161,136, 21, 4, 11, 74,145,162, 72, 85, 16, 59,160, 72, 85, 16,
- 84,138,210,123,239, 85,234,221,113,189,167,151,157,239,143,203,198, 92, 72, 46, 57, 56, 16,113,222,231,217, 39,217,246,238,204,
-238,148,119,126,243,155, 25, 66, 41, 5, 3, 3, 3, 3, 3, 3, 3, 3, 67,217,131, 48,161,197,192,192,192,192,192,192,192,240,
- 96,192,149,246,134,205,155, 55,251,172,204, 8, 33, 29,125,229,180,111,109, 30,117,206, 7, 24,119, 90,134,156,109,236,156, 31,
-252, 75,194,217,230, 81,229, 20,227,235, 43,111,105, 56,125, 77, 83,165, 12, 39, 45,235,112, 62, 40,206,178,202, 71,110,194, 73,
- 31,192,119,255,224, 95, 18,206, 54,143, 26,167,107,250,241,133,183,180,156,190,164,169,123, 8, 39, 45,235,112, 62, 40,206,251,
-205, 71, 37,132,147,222,111, 90,242,240,237, 63,192,127, 8,252,131, 18, 89,165, 65,183,110,221,136, 19, 63,121, 84, 57,157,223,
-131,200, 95,150, 97, 45, 67,236, 44,107, 78,151,247, 89, 86,248,160, 91,183,110,100,243,230,205,187, 0,180, 41,203,184,151,197,
-119,119,137,107,153,240,150, 86,100,149,150,179,172,210,253,131,230, 44,171,188,228,202, 89, 22,233,222,221,119,127,128,223,168,
-172,194, 89, 38,121,233, 65,164,121, 55,233,231,190,121, 93, 57,203, 34, 47,185,114,150, 69,186,127, 24,156,101,145,151,220,113,
-150, 69,186,247,244,237,153, 69,235,225, 10, 2,215, 12,222,246, 81, 22, 68, 15, 74,108,250,106,129,121, 20, 56,203,248, 27,125,
- 96,231, 44,203,214, 77,219,178,250, 70, 15, 34,189, 59,115,150, 21,191, 43, 79, 89,124, 39,119,156,247, 27, 94, 15,225, 44,243,
-184,223,111,186,127, 88,156,101,252,141,202, 36, 47,185,112,182, 45,227,198, 64, 91,167,253, 15,202,146,179,172,242,146,155,112,
-222,247,119,114,199,121,191,225,245, 16,206, 50,143,123, 89,212, 33, 15,138,247,177,181,104, 61, 72,145,245,160, 42,181,178,228,
-126, 16, 86,157, 7,101,121, 43, 43,171,142, 27,222, 93,101, 72,183,179,172,195,105, 15, 31,121, 80,214,215, 71, 29, 44, 47,177,
-188,244,168,229, 37,119,233,166, 91,183,110, 31,108,222,188,249,253, 71,173, 17,237,204, 89, 86,130,200, 77,220,239, 43, 47,185,
-222, 91, 22,121,201, 11, 39,121, 16,241, 47,235,252,196,132, 86, 41, 44, 69,101,220, 50, 65, 25, 91, 96, 30, 88,188,203, 56,156,
-109, 31,132,133,240, 1,160,204,195,105,111, 41,191,255, 0,226,254,111,121,167, 44, 47,177,188,244,200,229, 37,151, 52,217,182,
- 12, 45, 69,101,106,121,118,229, 44,139,103, 56,115,148, 85, 26,125,208,113, 47,203,188,244, 32,190,253,191, 14,148,210, 7,182,
- 1,232,200, 56, 25, 39,227,100,156,140,147,113, 50, 78,198,249, 95,221, 56, 48, 48, 48, 48, 48, 48, 48, 48, 48, 60, 16,176,121,
-180, 24, 24, 24, 24, 24, 24, 24, 24, 30,182,208,138,141,141,221,164, 86,171, 43,121,186, 81,171,213,222, 73, 73, 73,105,199, 94,
- 33, 3, 3,131,215,130,134, 16, 14,127,143,114, 22, 0, 80,202, 90,121, 12, 12, 12,255, 1,120,116,134, 87, 40, 20,137, 23, 46,
- 92,168, 34, 8, 2,108, 54, 27,172, 86,171,227,215,100, 50,161,117,235,214,165,118,164,143,138,138,218, 45,145, 72, 42,148,230,
- 30,155,205,118, 43, 53, 53,181,101, 9, 5,248,126, 0,137,132, 16,231, 99, 37,254, 2, 72, 49,155,205, 13, 74,226, 36,132, 36,
-186,242,121,224, 18,255,151,200, 25, 20, 20,116,148,231,249, 56,119, 92,158,254, 11,130,112, 45, 61, 61,189, 57, 75,166, 15, 7,
- 81, 81, 81,187,121,158, 47,117,250,188,115,231,142,199,244, 25, 19, 19,115,130,227,184,152, 82, 80, 74, 4, 65,184,116,231,206,
-157,150,158,132,136,152,230,189, 8,155, 98,255, 9, 33, 73, 86,171,181,145,183,124, 84, 18,151,155, 52, 90, 34,167,179,200,226,
-121,126, 86, 68, 68,196, 40,157, 78,103, 0, 64, 37, 18, 9, 13, 13, 13, 21,195, 6, 0,176, 90,173, 25, 57, 57, 57,181, 89, 74,
-100, 96, 96,248, 79, 8, 45, 65, 16, 56,163,209,136,203,151, 47,195, 67,121,111,187,135,231, 85, 57,246,199,182, 8,255,136, 72,
- 88,205,102,104,194,194, 29,220,105,231,207,194,106, 49,195,106, 50,161,124,227,166, 98, 37,134,154, 53,107, 74,188,112,198,205,
-158, 61, 59,194,223,223, 31, 6,131, 1, 6,131, 1, 70,163, 17, 6,131, 1, 38,147, 9, 38,147, 9,102,179, 25,102,179, 25, 86,
-171, 21, 70,163, 17,219,183,111,247, 22,246,184, 15, 63,252, 48, 34, 32, 32,192,193, 39,110, 34,167,200,107,177, 88, 96, 48, 24,
-240,231,159,127,150,200,201,243,124, 92, 74, 74, 74,132, 76, 38, 3,165, 20,130, 32,184,115, 46, 44,134,138, 21, 43,154, 89, 18,
-125,168,168,242,225,202,205, 17,129, 42, 5,172,130,128,238,117, 43, 58, 78, 92,251,106, 13,168,213, 6,193,106, 69,229,177, 67,
-129, 34,147, 12,106,212,168, 81, 98,250,164,148,198,127,184,114,115,144,175,156,153,153,153,250,234,213,171,167,160,104,232,179,
- 39,139, 79,156, 94,175,143, 16,195,224, 42,136, 56,142, 43,182,109,217,178, 5,221,187,119,247, 22,247,184,215, 94,123, 45,194,
- 98,177,192,100, 50,193,104, 52,194, 98,177,192,106,181, 58, 54,155,205,230,216, 76, 38, 19, 14, 29, 58,228,171, 37,107,118,167,
- 78,157, 70,108,222,188, 89,243,243,207, 63,107, 42, 84,168, 0,153, 76, 6,137, 68, 2,137, 68, 2,142,227,192,243, 60,158,120,
-226, 9,194,146, 32, 3, 3,195,127, 70,104, 25,141,198,235,245,235,215,167,246,255,177, 10,133, 66,230, 82,128,198, 84,169, 82,
-229,146,235,125,222,186, 20,253, 35, 34, 49,169, 92, 8, 0, 96,242,205, 44, 71, 5,241, 81,243,122,142,107,166, 38,231, 1, 0,
- 84, 42, 21,136,115, 51,218, 3, 52, 26, 13, 58,117,234, 4,185, 92,142, 70,141, 26, 65, 42,149,186,221,100, 50, 25,164, 82,169,
- 47,149, 3,252,252,252, 48,101,202, 20, 81, 36, 65,163, 84,224,229,230,141,160, 4,197, 23,103,175,192, 36, 80,240, 60,239,216,
-124,225,148,201,100, 56,115,230, 12,120,158,135, 68, 34,113,252,138,255, 55,110,220,136,126,253,250,129,231,121,168, 84, 42,224,
- 63, 52,207,200,163,130, 64,149, 2,195,150,252, 4, 0,184, 61,111,172,227,219, 29, 26, 61,217,113, 77,252, 11, 3, 64, 8,129,
- 84, 42, 5,199,113,101,198,153,157,157,173, 31, 52,104,208, 94,127,127,255, 45,249,249,249,240, 34,224,112,251,246,109,240, 60,
-239, 49,189,115, 28,135,185,115,231,226,234,213,171, 62,197,221, 96, 48,224,203, 47,191,132,205,102, 43,198, 43,254,119, 61,230,
-163,200,154,222,185,115,231,161,155, 55,111, 14, 38,132,224,211, 79, 63,133, 76, 38, 67,215,174, 93, 17, 26, 26,138,173, 91,183,
- 66, 38,147, 97,194,132, 9, 44,241, 49, 48, 48,148, 4, 41,128,122, 0,194,237,134,158, 2, 0, 65, 78,231, 51,236,191,225, 78,
-251, 71,220,240, 52,182, 95, 35,158, 23,247, 77, 0,228,110,142,103, 1, 80,217, 55, 35,128,253, 0,106, 57, 61, 71,188, 15,158,
-158,203, 3, 69,235, 15, 1,216, 9,160,173, 56,137,222,157, 59,119,158,114,178,172, 92,184,116,233, 82, 53, 81,243,216,187, 16,
-101, 86,171,181,138,216,157, 40, 90,139, 58,118,236, 88, 98, 11,223,106, 54,223, 37, 64,220,105, 41,119,221, 21,158, 4,140,217,
-108,198,128, 1, 3,138,190,132,135, 74,199,121,243, 65,187,193,100, 50,129,231,121, 84, 45, 23,142,247,186,212, 71, 19,106,129,
-182,144,192,154,167, 69, 47, 63, 11, 46,212,104,128,165,183, 50,112, 51,191, 16, 60,207,251,196, 41, 8,130, 71,145, 37,145, 72,
-176,100,201, 18, 12, 26, 52, 8, 18,137,196, 39, 62,134,178,135, 85, 16,220,166, 67, 79,105,214,151,239,228, 11,103,118,118,182,
-190,123,247,238, 7, 21, 10,197,178,200,200,200,148,164,164, 36,175, 66,203, 85,252,184, 54, 42, 62,249,228, 19, 44, 92,184, 16,
-237,218,181,243, 41,156, 70,163, 17,132, 16, 44, 93,186,244,174,115,211,166, 77,187,235,121, 37,113,218, 27, 72, 92, 76, 76,204,
-232,223,127,255, 61, 64,188, 54, 44, 44, 12, 82,169, 20,181,107,215,134,191,191, 63,246,238,221, 11,155,205,230,115,190,100, 96,
- 96,120,124,225, 78,139, 56,161,245,164, 73,147, 26,205,154, 53,107, 70,179,102,205,126,220,191,127,255, 74, 66,200, 38,167, 50,
-177,187,189,236,217,228,180,223,216, 69,244, 72, 1,132, 19, 66, 54,137,215, 59,239, 59, 29,239, 8, 64, 46,238, 79,154, 52,169,
-214,172, 89,179,102, 76,156, 56,241,237,153, 51,103,202, 38, 77,154, 84,103,214,172, 89, 51,196,231,184, 11,135, 59,139, 86,137,
-179, 10,139,221,136, 23, 47, 94,132, 55,255, 85, 74,105,137,165,165, 38, 44,220, 97,201,154, 26, 31,234, 56, 62, 37, 41,215, 81,
-129, 45,106, 88, 9, 26,141, 6, 93,166,126,236,147,165,200,100, 50, 33, 61, 61,221, 97,101,240,182,249,202,169, 86, 41,177,253,
-181,218,184,157, 37,199, 7, 7,178,177,249,228, 85, 72,165, 82, 60, 89,163, 54,158,146,249,227,221,120, 57, 94,187,114, 3, 22,
- 31,125,122, 41,165,110, 5,150,248, 95,236, 66, 97, 66,235,159, 67,247,186, 21, 29, 86,167, 67,254, 29, 28,199,251,105,207, 56,
-190,201, 27, 75, 62, 2, 0,180,107,240, 4,124,241,231,246,198,153,149,149,165,111,217,161,237, 46,155,222,244,221,208,161, 67,
-175,239,216,177, 67,229, 83,243,206,141,208, 18,173,182,162,200,226,121, 30, 38,147,201,167,184,155, 76, 38,143,249, 67, 38,147,
-149,218,162, 5, 0, 90,173,214,180, 97,195, 6, 44, 90,180, 8,161,161,161,232,220,185, 51,162,163,163,177,102,205, 26, 80, 74,
- 49,118,236, 88,168, 84, 42,209,122,205, 18, 32, 3,195,127, 27, 37,105, 17,197,172, 89,179,102,184, 10, 25,231,125,103, 1,229,
- 34,166,156,197, 90, 45, 47,245,255, 38, 87,241, 36, 62,151, 16,178,105,230,204,153,221,189,132, 35,195,147,208, 42,113,250,126,
-163,209,120,189,110,221,186, 62,169, 9,157, 78,151,234, 77,108,184,107,213, 59, 91, 9,252,252,252,160, 9,240, 3,231, 99,185,
-107,177, 88, 28, 66,101,219,182,109, 80,169, 84,232,218,181,235,125, 89,180,204,102, 51,228, 50, 41,184,176, 72, 12,155,183, 3,
- 89, 5,122, 71, 5,179,243,218,117, 28, 79, 75,199,107,205, 58, 64,163, 74, 71,161,201,228,147,229, 77, 16,132,187, 68, 22,207,
-243, 24, 48, 96,128,195,154,224,236,183, 2,214,117,248,143,193, 93,250,116, 61, 46,184, 88,170,238,133, 51, 43, 43, 75,223,189,
-123,247,131, 54,189,233,187,228,228,228,131, 0,148, 77,154, 52, 41,181,208, 18, 5,150, 84, 42,197,220,185,115,177,112,225, 66,
-199,121, 95,133,150,213,106, 45, 38,160,174, 92,185, 82,236, 89,174,194,174,164,110, 83, 74, 41, 37,132, 8, 0,132,196,196, 68,
-199, 61, 81, 81, 81, 8, 10, 10,130, 32, 8, 16, 4, 1, 74,165, 18, 42,149, 10, 50,153,140, 37, 58, 6, 6,134,146,180,136,126,
-226,196,137,111, 19, 66, 54,217, 45, 75,103, 75, 16, 84,238,208,216, 69,172,101,120, 40,187,186,187, 19, 91,206,255, 69, 76,154,
- 52,169,150,155,112, 28,241, 40,180, 92,166,221, 47, 6,231,110,196,178,170,196, 74,170,200,252,130, 2,160,210,104, 32,145,112,
- 32,132, 80,111, 92,102,179,217, 81,240,143, 26, 53,170, 68,191, 21, 95,253,169,204,102, 51, 56, 94,130, 59, 81, 9,176,113,123,
- 28,247,138, 27,199, 75,113, 51,170, 26, 36, 23, 79, 64,234, 99,133,235,106,209, 26, 59,118, 44,190,252,242, 75,112, 28,231,120,
- 39, 60,207,163,114,229,202,184,126,253, 58,203,113,143,136,200,242,116,220,102, 19,124,182,194,184,187, 46, 43, 43, 75,223,191,
-127,255, 93,121,121,121,223,213,172, 89,243, 10,138,166, 63,224,124,229,227,121,190,152,192, 18, 69,214,130, 5, 11,138,137, 34,
-139,197,226, 83, 67,192, 98,177,220, 37,120,230,204,153, 83,236, 23, 0,154, 55,111,238,147,101, 24, 0,229, 56,142,202,100, 50,
-116,234,212, 9,117,234,212,193,207, 63,255, 12, 65, 16, 48,102,204, 24,168, 84, 42,204,159, 63, 31, 86,171, 21,179,103,207,102,
- 22, 45, 6, 6,134,146,180,136,113,230,204,153,103,103,206,156,233,176, 44,185, 90,180, 60, 81,218, 69, 85,184, 40,210, 80,228,
-107,117,164,132,186,186,187, 39, 1,230,124,108,214,172, 89, 51,220,132,195,181,187,242,225,175,117,152,122,238, 12, 62,110, 81,
- 31, 64,241,238,194, 37, 79, 84,131,198, 79, 3,141,191, 31,250,111,220, 3, 0,246, 66,127,162, 79, 22, 45, 81,104,101,101,101,
-149, 40,178, 74, 99,209,226,228, 60,214,198,229,128,202,165,224, 77,150, 98, 66, 75,194, 75,113, 59, 52, 1,156, 84, 6,222,102,
-245,137,147, 82,122, 87, 87,225,240,225,195, 65, 8,113,140, 16,171, 91,183,174, 51, 23,171,121, 30,118,250, 60,250, 21, 46,172,
- 27, 13, 0,104,169,213, 58,190,197,135,117,255, 30,223, 49,239,204, 46,135,245,113, 42,222,188, 39,206,172,172, 44,125,147,234,
-181, 14,202, 66, 2,191,187,117,235,214, 65, 0,220,192,129, 3,131,234,214,173,235, 83,158, 20, 7, 87,184,138, 44,103, 75,150,
-248,107,177, 88,124,138,187,232, 43,229, 13, 98, 55,162,183, 52, 79, 41,165, 33, 33, 33,224, 56, 14, 1, 1, 1,240,243,243,115,
-140,184, 85, 42,149, 80,171,213, 14,255, 78, 31,133, 27, 3, 3,195,127, 23,193,162,208,177,139,165, 98,150, 38, 74,105,119,103,
- 49,228,169, 11,209,110,129,218,237,205,176,102, 23,104,110, 33, 90,214, 92,202,228, 77,158, 68, 26, 47, 42, 72,231,223,232,232,
-232,223,252,252,252, 18,124,141,125,105, 38, 47,181, 89,204,119, 89,182, 8, 33,240,243,247,131,202, 79, 3,149,191,159, 71,171,
- 87, 73, 66, 75,180, 20,137,149,206,178,101,203,224,231,231,135,103,159,125,182,212, 62, 90, 14,161, 37,227,176, 85,241, 39, 36,
-114,190,152,200,226,121, 30, 18,169, 20,169,126,209,224,164, 82,240, 86,223,172,100,121,121,121,224,121, 30,239,189,247,158,163,
- 5,239, 44,178, 74, 19,103,134, 7, 3,106,179,220,101,133,242,100,125,189, 87, 78,209,146, 37, 11, 9,252,174, 90,181,106, 14,
- 75,150, 90,173, 22, 71,155,122, 5,199,113,110, 69,150,235, 8, 65,158,231,139,210,178,151,209,145,206, 22,173,153, 51,103, 58,
-120,157, 45, 89, 34, 74,147,143,196,176,238,218,181, 11,199,143, 31,199,168, 81,163,160, 82,169,176,112,225, 66, 88,173, 86, 76,
-155, 54, 13, 42,149, 10,114,185,156, 37, 62, 6, 6,102,205, 42,166, 69, 92,144,225,226, 7, 69, 92, 68, 77,134, 59,129,229,220,
- 77,232,244,223,226,134,215,228,210,165,232,122, 92,252,205,154, 57,115,230, 14,209,146,229,116,188, 88, 56,188, 90,180, 20, 10,
- 69,194,229,203,151, 29,147,149,150,244,107, 50,153,208,174, 93, 59,159, 45, 99,226,168, 67,158,151, 20, 19, 22,106,127, 63,168,
- 3,252,161,242,243,115, 21, 28,196, 91, 33, 46,182,136,157,133,214,251,239,191, 15,158,231,241,229,151, 95, 2, 0,222,124,243,
- 77,159,125,180, 68, 78,216, 8,146,232, 95,168, 63,175, 31, 76,223, 91,144,182,239, 20,120,158, 71, 68,211,167, 32, 52,233, 7,
-157,202, 15,188,205,234,243,168,195,236,236,108, 92,191,126, 29, 18,137, 4,175,191,254,122,177,185,142, 92, 71,178,109,219,182,
-141, 89,180,254, 9,161, 37, 88,125, 18, 85,165,177, 58, 58,115,138, 62, 89,121,121,121,223,221,186,117,235, 16, 0,110,232,208,
-161, 65,106,181, 26, 95,127,253,181, 14,128,124,205,154, 53, 42,111,162, 72, 76, 55,222, 68,150, 84, 42, 45, 74,203,190,196,157,
- 22,159,178,196,155, 99,188, 47,105, 94, 12, 43, 33, 4, 54,155, 13, 42,149,170,152, 37, 75,169, 84, 66,161, 80,176,132,199,192,
-192,224, 13, 71, 74,113,109, 99, 39,209,116,228, 30,121,143,148, 85,192,121, 79, 66,195,104, 52,226,252,249,243,190,242,248, 60,
-121,105,185, 70, 79, 96,106,114, 30, 8, 33,248,162,121, 77,104, 2,252,160,214,104,208,247,231, 93,142,130,251,204,140, 55,161,
-208,248, 33,166, 85,103,159, 10,114,177,235,208, 89,104,229,230,230, 66, 42,149, 98,250,244,233,224, 56, 14,179,103,207, 70,108,
-108, 44,238,220,185,131, 53,107,214,248,100,209,146,216, 36,136,126,166, 58,212,195, 3, 17,240, 76,107, 4,119,122, 31,201, 38,
- 30,251, 13,106,180, 54,156,131,124,235, 2,152, 4,155,207, 35,176,172, 86, 43,118,237,218,229,234,240, 14, 74,169, 99,214,125,
-139,197, 2,179,217,140,217,179,103,131,173, 80,242,240, 17,221,116, 44,194, 27,189, 4, 0,216, 56,243, 57,199,241,247,206,252,
-157, 62,231,126, 95,180, 0, 64,181, 10,157, 75,197,153,149,149,165,127,178, 93,243,221, 6, 65,250,109,237,218,181,139, 89,178,
-148, 74, 37,177,239,251, 36,174, 57,142,131, 68, 34,185,171,187,208,147,216,242,197, 71,203,106,181, 58, 38, 18, 45,201,159,241,
- 94, 44, 90,207, 61,247, 28,162,163,163, 29,150,172,169, 83,167, 66,165, 82, 97,210,164, 73,176, 88, 44, 88,176, 96, 1, 75,124,
- 12, 12, 12,255,132, 40,123,224,112, 91,146, 26, 12,134, 27,117,234,212,129,135,115,177, 74,165, 82,234, 82, 72,199, 84,169, 82,
-229,146,107, 23, 34, 33,164, 35,165,116,187,187, 66,157, 16, 2,255, 0,127, 40,253, 52, 80,187, 88,177,148,254, 1, 80,248,249,
-129,147, 73,221, 85, 8,119,113,138,190, 37,206, 66, 75,220,242,242,242, 32,149, 74,177,104,209, 34, 4, 4, 4,192,104, 52,122,
-229, 20, 43, 29,137, 68, 2,221,237, 2, 92,152,177, 29,114,229,126, 84,234, 60, 8,209, 82, 21,100,123,215, 67,111,179,148, 56,
- 97,169, 59,206, 42, 85,170, 96,242,228,201,119, 77,235,224, 9,177,177,177, 94,227,126,191, 96,156,238, 57, 75, 26, 21, 43, 66,
-160, 54,119,215,185,229, 20, 45, 89, 6, 65,250,237,245,235,215, 69, 75, 86,160, 90,173,198,231,159,127,174, 3,192, 77,155, 54,
- 77, 29, 31, 31, 47,241, 37, 45, 73, 36, 18,204,155, 55,207,173, 79,150, 59,209, 85,154,124,228,124,111,155, 54,109,220, 78, 88,
-234, 78,188,185,227, 20,195, 26, 26, 26,234,176,100,217,108, 54,199,104, 67,113,246,121, 79,141, 10,150, 62, 25, 39,227,252,239,
-112, 62,174,112, 91,203,167,164,164, 60,233,233,134, 74,149, 42, 93,190,124,249,114,101,113, 41, 14,123,193, 41, 51, 24, 12, 85,
-154, 55,111,238,213,180, 35, 8, 2, 20, 10, 5, 40,165,104, 63,121, 22, 8, 7,112, 40, 94,137, 69,180,232, 0,137,132,135, 80,
-180,212,135,215, 81,135,122,189,190, 88,229,224,110, 43, 44, 44,132,209,104,244,121, 54,111,131,193, 80,108, 10, 6, 66, 5,220,
-252, 99,245, 93,163, 15,197,205, 87,191, 29,165, 82, 89,172,235,167, 36,120,155,147,140,161,236, 33, 14, 88, 0,128,170,205,187,
- 66, 16,108,160, 54, 91,177,101,146,170, 39, 60, 9,129,218, 96,182,232, 96, 52, 26,189,153, 29, 73,102,102,166,190,127,255,254,
-187, 0,124,211,171, 87,175, 75, 40, 26,241, 66,253,252,252, 20, 82,169, 84, 0,144, 13,128,230,228,228, 4, 38, 39, 39, 11, 6,
-131,161,188,183,112,110,222,188, 25,231,207,159, 71,171, 86,173,138, 45, 7, 37, 90, 69,157,103,119,247, 37,125,138,221,229,238,
-102,132,247, 36,228,124,133, 68, 34, 65, 96, 96, 32,100, 50, 25,166, 79,159, 14,153, 76, 6,181, 90, 13, 0, 88,176, 96,129, 99,
-242, 85, 6, 6, 6,134,255,140,208,242, 86,110,150,208,173, 88, 98, 23,162,213,106, 77,138,143,143, 47,213,195,108, 54, 91,154,
- 23,225,150,180,102,205, 26,153,179, 21,194,219, 47,165, 52,205, 75,101,155,180,113,227, 70,153, 59,235,134,167, 5,166,189,113,
-218,108,182,164, 10, 21, 42,120,180,152,184,131,197, 98, 73,102, 73,244,225,193,102,179,149,144, 62,223,185,215,244,121,165,106,
-213,170,201, 65, 65, 65,191, 70, 70, 70,102,237,219,183, 47,180,113,227,198,161,206,215, 52,110,220, 56,218,229, 54, 19, 60,175,
-115, 8, 66, 72, 82,175, 94,189,220,166,121, 81, 52,185, 73,159, 73,222,210,252,225,195,135,101,206,247,123,226,119,202, 71, 73,
- 62, 8,215,155,245,235,215,231,156,121, 60,165,125,139,197,146,193, 82, 33, 3, 3,195,127, 94,104,233,245,250,219,117,234,212,
-177,122, 56,119,171,164,123, 51, 51, 51, 27,149,117, 4,204,102,115,243,127, 3,103, 70, 70, 70, 35,150,220, 30,109, 60,136,111,
-148,150,150,214,164,172, 57,173, 86,107,153,167, 79,139,197,210,252, 65,188,211,172,172,172,102, 44,101, 49, 48, 48, 48,161, 85,
- 10,248, 58,141, 3, 3, 3, 3, 3, 3, 3, 3,195,127, 29, 28,123, 5, 12, 12, 12, 12, 12, 12, 12, 12, 15, 6, 4, 69,171, 84,
-223,133,210,140, 38, 32,132,116, 44,237,131,189,241, 51, 78,198,201, 56, 25, 39,227,100,156,140,243,241,227,244,198,253,216,141,
-102, 20, 71, 83, 61,136, 13, 64, 71,198,201, 56, 25, 39,227,100,156,140,147,113, 50,206,255,234,198,186, 14, 25, 24, 24, 24, 24,
- 24, 24, 24, 30, 16,120,246, 10,254, 25, 16, 66, 36,148, 82, 91, 25, 82, 6, 3,240,180, 96,156, 9, 64,206,189, 4, 19,128,204,
-190,137, 19, 29, 89, 0,152,237,155, 15, 83,215, 79,225, 82, 82,130,107, 81,155,180, 49, 37, 68, 42, 8, 56, 89,190,124,185, 19,
-192,147, 38, 0,240,139,170, 81,195, 79,163,234,104, 52,155, 18, 20, 82,249,249, 92,109,225, 54, 67,218,165, 27, 44,133, 48, 48,
-252, 35,229, 82, 15, 0, 83,236,121,127, 38,165,116, 53,123, 43, 12, 12, 15, 72,104,249,251,251, 31,229, 56, 46,206,219,252, 60,
- 78, 25, 20, 54,155, 45, 41, 59, 59,187,145,143, 25,154, 7,208,223,207,207,175,157, 84, 42,109, 1, 0, 22,139,101, 95, 97, 97,
-225, 14, 0,107, 40,165,214,123, 44, 40, 2, 0, 12, 0, 48,196,126,232, 7, 0,171, 41,165,249,247,200, 87, 39, 48, 48,112,157,
- 84, 42,165,153,153,153, 77, 1, 32, 52, 52,244,160,197, 98, 33,249,249,249,125, 41,165,167, 75,201,199, 73,165,210,185,173, 90,
-181,106, 77, 8,249,134, 82,186,168,140,190,165,130,227, 56,183, 2, 69, 16,132, 10,247,192, 39, 3, 16,184,104,209,162,208, 21,
- 43, 86,212, 79, 74, 74,170, 13, 0,113,113,113,103,134, 14, 29,122,226,229,151, 95,206, 2,144,103, 23, 92, 30,145,146, 18, 92,
- 43, 61,245,218,168,180,244,243, 3, 0, 32, 42,186,246,106,137,132,147,197,198, 30, 63,160, 14, 27, 18, 86,181, 90,197,151,126,
-252,122,145,172, 66, 66, 57,252,185,255,120,189,151, 95,121,187,150, 50,178,234, 39, 76,108, 61, 60, 4, 4, 4, 28,229, 56, 46,
-174,164, 60,238, 46,207,219,108,182,164,172,172,172, 70,158, 56,121,158,143, 43,169,188,112,119, 76, 16,132,107, 25, 25, 25,110,
-167,154, 8, 12, 12, 60,192,243,124,130,175, 92,226,175,213,106, 77,242, 52,181, 76, 96, 96,224, 81,137, 68, 18, 87, 82, 60,221,
-157, 19, 4,225, 90,122,122,186,167,112,222, 21,247,178, 8,231,189,112,150, 20, 78,177, 60, 2,176, 32, 52, 52,244,137,172,172,
-172,255, 1,120, 59, 63, 63,191,174, 68, 34, 65, 72, 72,200,219,132,144,171,129,129,129, 95,229,229,229,237, 7,240, 10,165, 84,
- 96, 57,134,129,161,140,132, 22,199,113,113,201,201,201, 17, 26,141, 6,192,223,235,241,137,139, 73, 11,130, 0, 74,169,227,215,
-106,181,162,122,245,234,190,138,141,218, 1, 1, 1,107, 39, 77,154, 84,190,127,255,254,114,113,169,153,148,148,148, 42,235,214,
-173,251,223,244,233,211,223, 39,132,244,163,148,158,241, 85,188, 0,232, 0, 96,120,253,250,245,159,158, 58,117,170,172,125,251,
-246,176,217,108,248,245,215, 95, 91, 77,155, 54,109, 17, 33,100, 61,128,239, 0,252,225,107, 97, 65, 8,105, 25, 21, 21,181,114,
-239,222,189,209,215,175, 95,183,245,239,223,127, 21, 0, 28, 61,122, 52,209,102,179,145,166, 77,155,110, 38,132, 12,166,148,238,
- 45,197, 59,127,122,220,184,113, 3,199,142, 29, 27,241,236,179,207,142, 0,176,200,254, 44, 98,127,207,165, 93,224,208, 97,201,
-162,148,202, 74,184, 46,170, 20,150, 45,205,245,235,215,131,155, 55,111, 62, 58, 61, 61,253, 53,103,222,180,180, 52, 28, 59,118,
-204, 60, 99,198,140,121,251,247,239, 95,156,144,144,144, 3, 64,235,137,136,218,164,141,211,210,207, 15,104,221,108, 81, 32, 0,
-172,217, 56,122,208,225, 19, 25,254,155,126, 95,250, 63,185, 82,102, 92,241,197, 60, 89,229, 74, 21,176,243,232, 21, 28, 58,159,
- 77,106,183,236,206,231,109, 90,222, 9,192, 82,150, 61, 31, 14, 36, 18, 73,108, 82, 82, 82,132, 90,173,118,187,112,188,139, 95,
-134, 56, 1, 42,170, 84,169,226,185, 96,225,249,184,228,228,228, 8,165, 82,233, 40, 59, 92,203, 12,177, 92,113,164, 21, 74, 81,
-181,106, 85,115, 9,101, 82,252,173, 91,183, 34,212,106,181,131,199, 93,248, 92, 5, 71,213,170, 85, 75,138,123,177,112,250,194,
- 73, 41, 69,229,202,149,109,222,226, 46,174,128,225, 45,222, 34,103, 66, 66, 2, 45, 13,167, 47,225,172, 88,177,162,217,203,231,
- 95,112,233,210,165,177,229,202,149, 67,229,202,149,247, 63,241,196, 19, 1, 26,141, 6,191,255,254, 59,106,212,168, 81, 43, 32,
- 32,224,208,154, 53,107,164, 19, 38, 76,168,247,237,183,223, 2,192,203, 44,199, 48, 48,148,145,208, 34,132, 64,163,209, 96,213,
-170, 85, 30,151,227,112,254, 95,190,124,121,159, 30, 72, 8,105,148,144,144,176,107,239,222,189,170,232,232,191, 39,196, 54,153,
- 76, 8, 14, 14,198,152, 49, 99,228, 61,122,244,168,220,185,115,231,131,132,144, 54,148,210,163, 94,248,158, 14, 15, 15,255,244,
-189,247,222,139, 28, 56,112, 32, 66, 67,139, 77,186,141,254,253,251,163,111,223,190,178, 75,151, 46, 13, 90,182,108,217,160, 37,
- 75,150,164, 18, 66, 94,166,148,174, 47,137, 87,173, 86,247,170, 84,169,210,231,123,247,238,141,136,136,136, 64, 98, 98, 34, 55,
- 97,194,132,202, 85,170, 84, 81,197,197,197,113,119,238,220,193,207, 63,255, 28, 59,120,240,224,181,114,185,252, 37,147,201,180,
-193,135,184,203, 67, 67, 67,223,126,233,165,151,194,242,243,243,173,199,142, 29,187, 44, 30,151,203,229,211,154, 53,107,214,152,
- 16,242, 61,165,244,171,123,177,100,217,173,118,174,107,153, 88,196,243, 62, 90,182,228, 39, 79,158, 12,105,214,172,217,122,163,
-209,216, 96,212,168, 81,183,102,204,152,161, 10, 8, 8, 8, 0, 64,242,243,243,115,166, 76,153, 98,154, 63,127,254, 91, 53,106,
-212,232,112,224,192,129,167,235,213,171,103,177,139,184,187,133, 22, 33,142,240,220, 78,206,192,174,253,130,124,242,164, 55,227,
- 62,250, 48,225,230,145,115,183, 5, 94, 21,128, 95,118,159, 69, 90, 86, 33,126, 59,112, 14, 81,161,254, 68,166,144,214, 10,138,
-171,213, 38, 47,249,220,110,202, 86,214,126,224, 32,132, 64,173, 86,227,151, 95,126,185,107,233, 42,119,203, 90,241, 60,143,160,
-160, 32,175,171, 27, 40,149, 74,108,219,182,205,237,218,139,238,150,244, 9, 12, 12, 4, 74, 88, 84,155, 16, 2,165, 82,137,125,
-251,246,129,227, 56,183, 75, 3,185, 30,211,104, 52,224, 74, 88,235, 74,228,220,189,123,183, 87, 46,241,215,207,207, 15, 0, 36,
- 37,102, 74,133, 2,123,247,238,245, 24,103,215,255,126,246,245, 94,189,113,238,219,183,175,216,210, 95,174, 75,130, 57,239,107,
- 52, 26, 71, 3,206, 99, 43, 45, 56,184,105, 92, 92, 28, 14, 31, 62,140, 53,107,214,132,212,170, 85, 11, 87,174, 92, 1, 33, 4,
- 51,102,204, 32, 53,107,214,148,166,166,166,162, 85,171, 86,248,233,167,159,154,179,220,194,240, 15, 66, 10,160, 30,128,112, 20,
-173, 66, 83, 0, 32,200, 94,247,200, 1,100, 1, 80,217, 55, 35,128, 66, 0, 97,246,123, 51,237,101,139,179, 64,200, 64,241,197,
-167, 27,219,185,197, 21, 42,194,157,206,137,207,112,221,119,253,117,203,205, 3,192,230,205,155,197,202,172,109,183,110,221,118,
- 21,139,153, 15, 34, 75, 92,167,204, 53, 79,187, 89, 96, 86,161,209,104,214, 29, 60,120, 80, 21, 30,254,119, 28,140, 70, 35, 10,
- 10, 10, 80, 88, 88,136,130,130, 2,248,251,251, 99,205,154, 53,170, 14, 29, 58,172, 35,132, 84,161,148, 26, 61,113, 2,152,119,
-231,206,157, 72,171,213, 10,185, 92,238,169, 37,140,234,213,171,227,237,183,223, 70,151, 46, 93,162,218,181,107, 55, 15,192,250,
- 18, 56,161, 86,171, 63, 63,118,236, 88,132, 90,173,198,229,203,151,145,148,148,132, 55,222,120,163,156, 32, 8,184,125,251, 54,
-174, 92,185,130,228,228,100, 44, 91,182, 44,162,119,239,222,159, 3,216, 80, 82,220,237, 24,245,218,107,175, 85, 11, 14, 14,230,
- 62,254,248,227, 92,173, 86,251,153,253,248,228,133, 11, 23, 62,211,186,117,235,136,145, 35, 71, 82, 66,200, 10, 74,233, 93,194,
-197,133,211,157, 37,203, 6,224,130,203,109,213, 93, 44, 93, 81,246, 68,152,235,134,147, 0, 8,236,220,185,243,235, 70,163,177,
-193,222,189,123,175,182,104,209, 34, 30,192, 29, 49,241, 5, 6, 6,106,230,205,155, 23,217,189,123,247, 75,237,219,183,111,208,
-185,115,231,215, 51, 50, 50,102,216,207, 83, 87, 78, 65,192,201,168,232,218,171,119, 31,120,121,192,206,125, 38,217,155,175,188,
-127,171,124,185, 10,121, 39, 47,103,219,206, 93,203, 64,129,222,138, 62,237,139, 22, 48,111, 90,187, 60, 62, 93,181, 23, 99, 94,
-125, 71,186,126,245,242,190, 87, 41, 52, 0, 54,151,240, 62,239, 11,140,243,111,177, 33, 8, 2,164, 82, 41,158,122,234, 41, 16,
- 66,238, 90,203, 83, 42,149,226,192,129, 3,104,223,190, 61,164, 82, 41,158,123,238, 57,159, 56,121,158, 71,231,206,157, 29,235,
- 40, 58,243,185,138, 6,119,154,192, 53,238,148, 82,240, 60, 15,142,227, 60, 46,164,237,202,233,173, 92, 18,195, 89, 18,151,243,
- 57,111,225, 20,173, 73,190,138, 44, 95, 57,197,112,242, 60,143,230,205,155,227,196,137, 19, 37,138, 46,119,250,210, 53,238, 57,
- 57, 57,195,170, 84,169,178,123,209,162, 69, 33, 0,144,149,149,229, 88,240, 94, 34,145,224,226,197,139, 48,153, 76,248,224,131,
- 15,204,249,249,249, 35, 89, 62, 98,156, 15,146,179, 36, 45, 2,160,245,164, 73,147, 26,205,154, 53,107, 70,179,102,205,126,220,
-191,127,255, 74, 66,200, 38, 74,105,119,241,119,210,164, 73,181,102,205,154, 53, 99,226,196,137,111,207,156, 57,243, 44, 33,100,
- 19, 0,184,238,219,195,223,221, 69,196,133,139, 60,246, 60, 87,236, 90,119,251,174,191, 30,184,255,182,104,117,235,214,141,216,
- 35, 73,156, 11, 53, 95,133,150, 47,107,247,241, 60, 63,118,198,140, 25,145, 37,137,172,194,194, 66,164,164,164, 32, 62, 62, 30,
-207, 61,247, 92,228,162, 69,139,198, 2,152, 83, 2,173, 76, 34,145,224,240,225,195, 72, 79, 79, 71,157, 58,117,144,144,144, 80,
-236,130,191,254,250, 11,191,254,250, 43,114,115,115,209,176, 97, 67,160,200,255,200, 45,234,213,171,247, 65,245,234,213, 59,119,
-238,220,217,170, 82,169,112,242,228, 73, 52,104,208, 0,171, 86,173, 66,249,242,229,161, 86,171,113,233,210, 37,212,169, 83, 7,
-187,118,237, 66,120,120, 56,234,215,175,111,109,216,176,225,158,236,236,236, 29, 55,110,220,248,192, 67,203, 89, 22, 27, 27,251,
-254,139, 47,190, 40, 79, 73, 73, 17,190,251,238,187,189,148,210,189,132,144,177,239,188,243,206,136, 46, 93,186, 68, 28, 63,126,
- 60,239,200,145, 35,135,220,137, 44, 31, 45, 89, 86,215, 74,201,102,179, 25,245,122,189,201,104, 52, 90, 56,142,187, 65, 8, 49,
-217,108, 54, 79,125, 62,202,225,195,135, 87,204,204,204, 28,243,234,171,175, 94,183,139,172,139, 40,114,128, 7, 0, 88,173, 86,
- 99, 97, 97, 97,126,179,102,205,226, 7, 15, 30,124,117,229,202,149, 99,134, 15, 31,190,230,187,239,190, 43, 4,160,119, 37, 44,
- 95,190,220, 9,137,132,147,105, 11, 66,174,173, 93,243,213,107,191,110, 28, 91,238,246,237,228,202,161, 97,225, 90,153, 95,120,
-202,154, 31,190, 61, 10,192,148,146,145,143,211,127,165, 66, 42,149,224,252,237, 60,180,126,178,191,244,234,229, 15, 91,138, 66,
-139,225,129,130,138,139, 80,239,220,185,179, 68,139,214,129, 3, 7, 32,149, 74,161, 82,169, 48,127,254,252, 18, 73, 69, 97, 32,
- 90,139,188,137, 25,142,227, 74, 44, 71, 68,177, 33, 46,244,238,186,125,246,217,103,120,245,213, 87,139, 61,195, 46, 54,136, 55,
- 78, 79,225,139,175, 80, 1,233,105,105,197,142,249,178, 40,189,205,102,131, 84, 42,197,151, 95,126,137,238,221,187, 99,211,166,
- 77, 37,254, 62,245,212, 83,224, 56,142,250,242, 62,155, 55,111, 14,179,217,236, 8,243,197,139, 23,221,242, 46, 89,178,196,155,
- 37,179, 7,128, 41, 13, 26, 52, 8,104,215,174, 29,118,239,222,141,190,125,251, 26,205,102,243,101,123,157, 80,117,209,162, 69,
-242, 99,199,142, 33, 52, 52, 84,122,235,214,173,111, 8, 33,204, 65,158,225,129,194,157, 22, 17,235,188, 89,179,102,205,112, 21,
- 49,206, 16,207, 19, 66, 54,205,156, 57,179,187,179, 40,114,222,119,178, 58, 57,139,184, 90,206, 22, 41,103, 17,229, 73, 64,185,
-212,183,206,215,103,184, 21, 90,246,136,181,117,182, 2,137,133,175, 55,145,229,169,229,232,138,192,192,192,174,125,250,244,113,
-136, 28,131,193,224, 16, 88,162,200, 18,247, 47, 93,186,132, 70,141, 26,201, 2, 3, 3,187,122, 17, 90,162,136, 67, 76, 76, 12,
- 50, 51, 51,113,230,204, 25,196,199,199,195, 98,177, 96,203,150, 45,200,203,203,131, 84, 42,133, 76, 38,131,217, 92,178,203, 66,
-245,234,213,159, 90,177, 98, 69,163,229,203,151,231,136, 45,186, 31,126,248, 1,148, 82,132,135,135, 67,167,211, 33, 45, 45, 13,
- 59,118,236,128,213,106,133,159,159, 31, 18, 19, 19,229,189,122,245,106, 57,101,202, 20, 41,128, 15, 60, 80, 55,239,219,183,111,
- 96, 64, 64, 0, 94,121,229, 21,106, 54,155,103, 18, 66,154,247,237,219,247,253,151, 95,126, 57,244,198,141, 27,166,231,159,127,
-254,176,217,108,254,216, 94, 8, 74, 41,165, 22, 47, 45, 10,143,150, 44,139,197, 34,190,211,235,133,133,133, 8, 11, 11,139,247,
-226,195, 5, 0,178,125,251,246, 53, 7, 32,153, 54,109,154, 18, 64,154,179,200, 50,153, 76, 40, 44, 44,132, 86,171,181,228,229,
-229,165,143, 31, 63,222,186,114,229, 74,137,253,158,243,238,132, 22,240,164,169,102, 77,141,156, 82,201, 59, 75,151, 46,245,235,
-210,165, 11,231,231,231,135,130,130,130,128,223,126,255,221,175, 67,187,150,137, 51,102,125,180, 53, 32,174, 78,218,190,147,215,
-144,156,154, 7,147,197,130,196,232,192, 34,123, 24,195, 3,135,125, 32,139,195,162,229, 44, 42,118,239,222,141, 39,159,124,210,
-145,215,101, 50, 89, 49,203,151, 55, 78,158,231,241,228,147, 79,222,101,225,217,185,115,167, 91,235,147, 55, 56,139, 34, 87,113,
-228, 78,128,113, 28, 7,111,189,207,162, 53,207,157,216,114,182,234,187,136, 55,111,173,125,240, 60,143,151, 95,126, 25, 82,169,
- 20, 19, 38, 76, 0,207,243,168, 95,191, 62,120,158, 71,179,102,205, 32,149, 74,209,190,125,251, 82,199,253,224,193,131,104,208,
-160,129, 35, 76,245,235,215, 71,227,198,141,193,243, 60, 90,181,106, 5,169, 84,138,206,157, 59,251,194,249,118, 65, 65, 65, 93,
- 63, 63, 63, 92,186,116, 9, 18,137, 4,132,144, 43,148,210,186, 0,240,226,139, 47, 94,213,233,116, 21, 13, 6, 3, 94,124,241,
- 69, 98, 50,153,234, 76,152, 48,225, 29, 0, 76,104, 49, 60, 48,184,106, 17, 39,232, 39, 78,156,248, 54, 33,100,147,104,161,114,
-181, 60,185,219,119, 83, 54,137, 98, 72,236,218,107,236, 34,226,196,110,191,110, 37,220,107,114, 17, 86,174, 93,135, 71,124,182,
-104,137,133,175,175, 66,203, 27, 12, 6, 67,189,136,136, 8,143, 34,203,249,215,100, 50, 33, 33, 33, 1, 6,131,161, 94,105, 43,
-141,232,232,104,152,205,102,124,245,213, 87,144,201,100,144,201,254,214, 23, 38, 83,201,198,162,115,231,206, 93, 63,120,240, 96,
-131,134, 13, 27, 6,255,244,211, 79, 25,109,218,180, 9,239,210,165, 11, 84, 42, 21,244,122, 61, 44, 22, 11,154, 54,109,138,234,
-213,171, 35, 41, 41, 9,191,253,246, 91,102,149, 42, 85,194, 14, 29, 58, 36,164,166,166,222, 44,129,186, 83,135, 14, 29, 64, 8,
-193,239,191,255,158, 73, 41, 61,162, 84, 42,127,253,240,195, 15,131, 77, 38,147, 48,116,232,208, 91,217,217,217,175, 2, 48, 43,
- 20,138,133,157, 59,119,110, 38,145, 72,190,183,217,108,243, 75,155, 80, 93,223,173, 86,171,133, 82,169,244,101, 42, 9,105,118,
-118,118,109, 0,208,104, 52, 33, 0,174, 58, 82,184, 94, 95, 76, 12,155, 76, 38, 67, 72, 72,136, 6, 0,236,247, 72, 61,124,143,
-112,181, 90,189,246,230,205,107,254,206,254,115, 65, 65, 65, 24, 50,120, 48,215,162,121,115,121,221,122,245, 58,191,251,201,242,
- 85, 49,161, 1,166,196,152, 80, 88,108, 22,108,223,186, 69,160,130,101, 43, 43,118, 30,142,208, 18,197,134,171, 69, 75, 42,149,
- 98,215,174, 93,119, 29,147,201,100,248,226,139, 47,124, 18, 6,162,168,242,212,117,230,210,213, 69,188, 9, 24,169, 84, 10,137,
- 68,130, 47,191,252, 18,130, 32,224,181,215, 94, 43,214,157,232,204,239, 99, 23,136,227,158,234,239, 11, 0, 76, 72,154,171,112,
-220,239, 26, 94,251, 61, 62, 89,201, 22, 45, 90,228,147, 69,171, 91,183,110, 94,133,171,115, 15,131,115,184, 78,156, 56,225,150,
-119,233,210,165, 94,223,167,205,102,195,230,205,155, 29, 34, 85,196,123,239,189,247, 98, 92, 92, 92,228,158, 61,123,144,154,154,
- 10,173, 86,139,194,194, 66, 52,109,218, 52,177, 99,199,142, 39, 83, 83, 83,111,156, 59,119,174, 15,203, 61, 12, 15,209,162,101,
-156, 57,115,230,217,153, 51,103,186,181, 88,185, 90,150, 74,178, 60, 57, 9,172, 35,176,119, 25, 78,156, 56,241,109, 20,185,213,
- 28,241,225, 94,185,107,215, 97,137,134, 32, 23, 21, 57,197, 93,225,235, 75,247,161,143,230,116,158, 16, 2,131,193,224, 86, 96,
- 57,139, 3,179,217,140,236,236,108,216,108,182,123,158,235,203, 93, 75,214,155,208, 58,115,230,204,179, 35, 70,140, 72, 9, 12,
- 12,172,155,145,145,145, 46, 8, 66,251, 3, 7, 14,132,243, 60,143,128,128, 0, 4, 4, 4,224,215, 95,127,133, 90,173,198,203,
- 47,191,156,110,179,217,118,251,251,251,135,234,245,250, 83,169,169,169,239,122, 84, 48, 82,105,231, 86,173, 90,225,216,177, 99,
-200,201,201,217, 70, 8,169, 63,114,228,200, 39,203,149, 43, 71, 62,252,240, 67,195, 95,127,253, 53, 31, 64,186, 70,163, 89,177,
- 98,197,138,118, 13, 27, 54,244, 31, 58,116, 40, 8, 33, 75, 41,165, 6, 95,227,172,213,106,139, 9,172,252,252,124, 20, 20, 20,
- 64,163,209, 88,125,124,103, 82, 20,249, 90,137,254, 86,142,111, 99,183,102,137,223,135,242, 60, 79,139, 46,161, 82, 79,124, 26,
-141,102,218,242,229,203, 85,174,131, 20,108, 54, 27,210,210,210, 16, 16, 16,128,247,222,125, 87, 54,245,141,145, 13, 36,126,145,
- 7, 56,142,192,100,166,185, 84, 48,109,209,166, 13,220,195,138,157,135, 3, 81, 24,244,236,217,243,174,238, 66,153, 76,134,109,
-219,182,161,119,239,222,142,134, 75,195,134, 13,189, 54,174, 68, 97,208,163, 71, 15,135,101,104,203,150, 45,110,187,253, 68,139,
-148, 47,130, 80,188,118,220,184,113,224,121, 30,159,126,250, 41, 94,127,253,117,112, 28,135,185,115,231,130,227, 56, 76,158, 60,
-217,103,145,233, 44, 96,110,124, 84,244, 27,247,122, 62,178,150, 68, 2, 0,252, 3, 2,196, 8,149,170,236,225,121,222, 97,201,
-170, 87,175, 30,164, 82, 41,154, 53,107, 6,158,231, 29,150,172,174, 93,187, 58,191, 71,234, 11, 39,207,243,184,124,249,178, 35,
-204,205,154, 53, 43,102,201,226,121, 30,221,186,117,243, 37,152, 51,130,130,130,166, 84,175, 94,189,198,188,121,243,164, 18,137,
- 4, 29, 58,116,168,250,252,243,207,223, 12, 13, 13, 13,157, 54,109,154,218,205, 61, 42, 0,117,107,212,168,161, 97,185,134,225,
- 1, 90,180,166,184, 57, 21,236,236,115, 85,138,134,228, 38,231,235, 69, 14, 87,113,100,183,144,237,246,198,229,238, 94,111,224,
- 69, 5, 89,146, 73,221, 23,161,101, 55, 59,151,248, 48,181, 90,125, 58, 61, 61,189,153, 74,165, 42, 38,178,220, 9, 46,137, 68,
-130,212,212, 84,168,213,234,211,101,249, 17,189,117, 29,218, 69,205, 27, 78, 47,182, 99,215,174, 93,191,219,182,109, 91,244,246,
-237,219,113,232,208, 33,132,135,135, 99,209,162, 69,119,210,210,210,158,165,148,110,243,229,185, 21, 43, 86,172,237,231,231,135,
-125,251,246, 1,192, 46, 0, 35,199,140, 25, 67, 44, 22, 11,150, 44, 89,162, 5,240,123, 80, 80,208,230, 53,107,214, 52,168, 91,
-183,174,124,251,246,237,249,135, 14, 29,250,195, 71,145,101, 19, 4,225, 46,129,229,252, 78,253,253,253,125,177,104, 89, 2, 3,
- 3,207,228,231,231,247,215,235,245,249, 10,133,194, 63, 63, 63,223,232, 44,176, 68,126,158,231,165,151, 47, 95, 78, 1,144, 24,
- 24, 24,120, 6, 78, 93,140,197, 18, 24,207,119,232,208,161, 3,239,250, 13,210,210,210,144,154,154, 10,179,217,140,134, 13, 27,
- 18, 9,177, 72,178,111,157,122,145, 21, 51,255,136, 69,139,138,121, 93, 28, 37,232,110,164,225,150, 45, 91, 28,251, 28,199,193,
- 62,220,223,171, 40,218,182,109, 91,137, 14,235, 46, 93,135, 94, 77,227,226,245,139, 23, 47, 46, 90,222,194,110,201,226, 56, 14,
- 19, 39, 78,132, 66,161,192,135, 31,126,136,137, 19, 39,130,231,121,175, 93,135,206, 2,166,194, 4,157,115,227,168, 40, 83,216,
-253,161, 8, 33,206, 98,139,248, 42,222, 74,178,230,249,210, 19,224,204, 41,222,167, 84, 42, 61, 58,194,187,112,146, 18,226,253,
- 11, 33,228, 90,116,116,244,190,102,205,154, 5, 30, 61,122, 20,115,231,206,149, 25,141,198,242,219,183,111,119, 60,215,221,251,
-210,106,181, 42,150,115, 24, 30,132, 53,171,132,211, 25, 46,254, 85,196,185, 27,175,132, 95,215,235,225,116,204,153, 55,195,165,
- 30,115, 62,238, 42,174, 92,159,225,124, 77,134, 71,139,150,183,194,194,155,224,242,197,162,165,211,233,254,248,253,247,223, 27,
- 15, 30, 60,152, 47,169,219, 80,171,213, 34, 50, 50, 18,103,207,158,181,234,116,186, 63,124,176,148,149,153,208,114, 83,168,108,
-143,138,138,146, 88, 44, 22, 84,174, 92, 25,177,177,177, 48, 24, 12,200,205,205,149,248, 42,178, 8, 33,178, 70,141, 26, 73, 0,
- 32, 55, 55, 23, 40, 26,106, 90,181, 74,149, 42, 56,118,236, 24,178,179,179,215, 3,232, 50,101,202,148,134, 77,155, 54,149,173,
- 90,181, 74, 55,106,212,168,245, 22,139,229, 3, 31,173, 17, 38,171,213,154,192,113,156, 57, 55, 55, 55,217,249,125, 70, 70, 70,
-134,104, 52, 26,146,150,150,102,241, 69,104,213,173, 91,247,240,173, 91,183, 48,109,218,180,140, 25, 51,102, 84, 41, 40, 40,200,
-201,203,203,179, 58,139, 45,131,193,192,133,133,133, 41,150, 44, 89,162, 2,128,186,117,235, 30,246, 36,180,180, 90,109, 57,181,
-250,239,134,177,209,104, 68,106,106, 42, 82, 83, 83,145,150,150,134,130,130, 2, 36, 38, 38, 66,167,211,197,179, 98,230, 31, 19,
- 90,197,186,207,156,243,183,115, 69, 94,154,188,238, 44, 96,122,246,236,233,240,237, 18, 45,100,226,182,118,237, 90, 87, 7,115,
-159,132,214,226,197,139, 49,110,220, 56, 40,149, 74,204,155, 55,175, 88,215,161,171, 56, 16, 4,129,248, 18,247,132,183,244, 72,
- 93, 24, 2,169, 84,138,208, 81,105,197,186,232,220, 8, 14,159,194, 57, 99,198,140, 50,233, 58,116,230,140,143, 47,202, 42, 95,
-126,249, 37,250,247,239,143, 61,123,246,220,115,215, 97,173, 90,181,126,216,180,105, 83,224,185,115,231,144,159,159,143,140,140,
- 12, 24,141, 70, 36, 37, 37,121,236, 21,176,151,229, 74,150,115, 24, 30, 50,142, 60,100,222, 50,123, 30,239,165, 2,247, 89,104,
-249, 98,209, 50, 26,141,243, 94,121,229,149, 49, 29, 59,118, 12,241,247,247, 71, 74, 74,202, 93, 34,171,176,176, 16,126,126,126,
-208,235,245,216,184,113, 99,190,209,104,156,231, 77, 28, 88, 44, 22, 68, 68, 68, 32, 51, 51, 19,130, 7,255,105,142,227,160, 82,
-169, 80, 88, 88, 8, 79,162,160,164, 10,195,108, 54,195, 98,177,192, 98,177,192,108, 54,163,148,211, 59,169,197,137, 95,181, 90,
- 45, 0,104, 99, 98, 98, 42, 43,149, 74, 92,191,126, 29, 40, 26,217,215,241,201, 39,159,148,102,101,101,209,231,159,127,126, 47,
-165,244, 69, 47,179,227,155,118,239,222,157, 0, 0, 42,149,234, 18, 0, 36, 37, 37, 89,114,115,115,139, 89, 10,213,106, 53,237,
-221,187,119, 52,165, 20,187,119,239, 78,144,201,100, 20, 30,230,188, 2, 96,216,176, 97,195,185,192,192,192,149,179,102,205, 26,
-220,189,123,247,179,181,107,215, 78,208,106,181,233,122,189, 94,111, 48, 24,168, 68, 34,145, 5, 7, 7, 43,183,110,221,122,245,
-192,129, 3, 29, 3, 2, 2, 86,110,216,176,225, 28, 0,183,150, 55,141, 70,147,164,211,233, 42,136,223,212, 89,100,165,166,166,
-130, 82,138,107,215,174, 65,173, 86,223, 98,229,200, 63, 7,177, 81,229,106,121,113, 61,230,171,200,114, 22, 6, 91,183,110, 45,
-113, 14, 45, 95, 57,157, 69,209,235,175,191,142,133, 11, 23,222,101,209,250,240,195, 15, 1, 0,239,190,251,174,207, 62, 90,162,
-245, 42,117, 97, 8,162,198,101, 23, 11, 59, 0, 16, 49,124,165,156,210,141,231,121, 76,155, 54,237, 46, 39,117,231,174, 61, 31,
-187,248,138,133, 51, 61, 61, 29, 60,207, 35, 36, 36, 4, 67,134, 12, 65,231,206,157, 29, 93,144,165,229,189,112,225,194,190,183,
-222,122,171, 78,173, 90,181, 48,125,250,244,236,160,160, 32,255, 23, 94,120,129,207,205,205, 37, 37, 89,180,152,208, 98, 96, 40,
- 3,161, 37,102, 48, 95, 71, 29,186, 43, 44, 9, 33, 29,157,231,218,160,148,230, 17, 66,134,116,234,212,233,167,213,171, 87,171,
- 42, 86,172,136, 11, 23, 46, 32, 59, 59, 27, 38,147, 9, 50,153, 12,209,209,209,200,205,205,197,183,223,126,171,215,233,116, 67,
- 40,165,121, 37,113, 2,120,167, 81,163, 70,159,207,153, 51, 71, 89,191,126,125,100,103,103,163,176,176,176,216, 44,214, 1, 1,
- 1, 80,169, 84, 56,124,248, 48,182,108,217,162, 7,240,142, 23, 78,119,106, 14,102,179,217, 33,184,188, 9, 45, 23, 78,141,104,
-213,209,233,116, 0, 96, 41, 87,174, 92, 20, 0, 92,187,118, 13, 0,110, 36, 38, 38, 78,169, 88,177, 34, 89,177, 98, 5,165,148,
-110,113, 39,178, 92, 56,179, 91,181,106,149, 3, 32,202,100, 50,201, 0, 32, 47, 47,207, 28, 22, 22, 22,161, 80, 40, 4,149, 74,
- 37, 40,149, 74, 33, 37, 37,197,106,181, 90,101, 0,208,170, 85, 43, 19,128, 84, 56,249,130,184,112, 10, 0,242,151, 46, 93, 58,
-101,232,208,161,205,154, 55,111, 94,107,244,232,209,103,158,127,254,121, 46, 54, 54, 54,184,160,160,192,112,229,202,149,156, 79,
- 62,249,164,224,224,193,131, 29,165, 82,233,205,165, 75,151, 78, 1,144,111,191,247, 46, 78,171,213,250,199,246,237,219,159,237,
-222,189, 59,159,156,156,140,180,180, 52,135,200, 74, 75, 75, 67,245,234,213,113,224,192, 1,155,217,108,222, 94,138,247, 89, 86,
-150, 28,198, 89,212, 8,161, 98, 94,247, 36,176,196,198,148,175,156,206,162,168,127,255,254,197,172, 88, 50,153, 12,235,214,173,
-115, 91,110,184,153,225,188,163,235,124, 82, 98,152,222,122,235,173, 98,162,237,189,247,222,243, 24, 52,111,239, 83,228,201,251,
- 50,182,248,168, 67, 15,249,188,164,112,138,101,167, 84, 42,197,123,239,189,231,179, 69, 11, 46, 62, 90,238, 56,197,184,183,105,
-211, 6, 58,157,206, 33,100, 61, 89,180,188,189, 79,155,205, 54,110,225,194,133, 52, 32, 32,224,137,252,252,252,255,221,186,117,
-107,153, 78,167,107,146,151,151, 87,162, 69,203,104, 52, 42, 88, 62, 98,156, 15, 98, 46,173,255,148,208,178, 87,146, 40, 87,174,
- 92,177,181,179, 56,142, 43,182,149,198,207,192,158,113,183, 18, 66,158,110,209,162,197,247,227,198,141,243,175, 95,191,190,180,
- 66,133, 10,208,106,181,184,126,253, 58,206,158, 61,107,221,176, 97, 67,190, 78,167,251, 31,165,116,171, 15,124,203, 9, 33, 91,
-186,116,233, 50,185,105,211,166, 47,189,255,254,251,146,170, 85,171, 34, 47, 47, 15,193,193,193,136,136,136,192,197,139, 23,177,
-113,227, 70, 91,102,102,230,231, 0,166, 82, 74, 51, 74,219,224, 55,155,205, 24, 52,104, 16, 4, 65,192,252,249,243, 65, 8, 41,
- 77,243,214,108, 54,155, 41, 0,146,153,153, 9, 0, 58,251,236,210,184,114,229, 10, 0,220, 76, 72, 72,240, 7,128,237,219,183,
- 19, 0,190, 46,233, 67,157, 45, 91,213,171, 87,191,238, 90, 56,138,150, 44,209, 10, 6,239, 11, 65, 27, 6, 12, 24,144,174,211,
-233,186,188,254,250,235,147, 23, 47, 94, 60,120,241,226,197,119, 93, 20, 16, 16,176,114,238,220,185, 83, 7, 12, 24,144,238,201,
-154,101,183,224,189, 59,108,216,176, 1,167, 79,159,246, 87, 42,149,208,106,181,200,202,202,130,217,108, 70, 98, 98, 34,210,211,
-211,177,124,249,242, 2,189, 94,255, 1,203,142,255, 12,156,133,129, 39,171,150, 55,145, 85,146, 85,231,151, 95,126,113, 59, 71,
- 85,105, 57, 93,197,134,175,115, 91,149,212, 40, 18,167,165,113, 55,101, 68,105,202, 53,119,188, 60,207,227,227,143, 63,118, 76,
-218,234,206,146, 85, 26,139,150,200, 25, 18, 18, 82,100, 38,183, 47,153,212,173, 91,183,123,230,181, 47, 71,246,178,211, 51,102,
-140, 31, 63,126, 74,245,234,213,171, 2, 80, 56,191, 3,182, 72, 3, 3, 67, 25, 11, 45,155,205,150, 84,173, 90,181, 98, 5,156,
-183,197, 76, 45, 22, 75,146,143,153,123, 11, 33, 36,113,238,220,185,175,104, 52,154,142, 58,157,174,142,189,224, 56,173,213,106,
-183, 27,141,198, 5,165, 89, 4,218, 46,156,198, 18, 66,230,119,233,210,229,195,246,237,219,247,123,227,141, 55, 8,165, 20, 75,
-150, 44,161,127,253,245,215, 90, 0,239, 80, 74,255,186,151,151, 20, 18, 18,114,238,219,111,191,141,252,233,167,159, 96,177, 88,
-176, 96,193, 2,248,251,251,159, 43, 69,248,210,121,158,255,174,121,243,230,207, 28, 56,112, 96, 57,165,244,148, 92, 46, 95,214,
-178,101,203, 97, 7, 14, 28,248,129, 82,122,150,231,249,101, 77,155, 54, 29,118,228,200,145, 53,148,210, 19,165, 8,158,195,178,
-101,181,186,239,105,116,103,201,242,130,252, 17, 35, 70,152, 71,140, 24,241,198,128, 1, 3,190, 58,114,228, 72,147,220,220,220,
- 58, 0, 16, 20, 20,116,186,113,227,198,135, 87,175, 94,125,209,110,201, 50,120,251, 54,132,144,222,117,234,212, 89, 63,125,250,
-116, 77,173, 90,181,248,202,149, 43,227,198,141, 27, 56,115,230,140,245,155,111,190, 41,212,235,245, 61, 41,165, 57, 44, 59,254,
-115, 66,139, 82,138,160,160,160, 98,141, 40,113,200,127,105,187, 11,157, 43,102,113,169, 30, 87, 94, 79,156, 37, 77,155, 32,194,
-207,207,207, 49,185,169, 47, 46, 11,130, 80,242,124,108,148, 82, 7,167,184,249, 32,178,188,142, 16,180, 47,129,227, 51,167, 47,
-211, 59,104, 52, 26, 88, 44, 22, 7,175, 15, 35, 63, 73, 41,191,217, 47, 0,126,169, 92,185,242, 21, 0,149,152,184, 98, 96,120,
-128, 66, 43, 59, 59,187,209,131,124,176, 93, 72, 77,181,111,101,197,249, 23,128, 1,132,144, 57,127,254,249,167,216,143, 48,205,
-219,122,137,222,112,225,194,133,238, 82,169,244,139,149, 43, 87, 54,165,148, 34, 48, 48,240,224,141, 27, 55, 94, 40, 13,135,213,
-106, 29, 65, 8, 25, 35,142, 34, 52,153, 76, 35, 8, 33,175, 80, 74, 11,157,206, 59,246, 75, 27,117, 0, 70, 74,105,140,135,243,
-198, 82,136, 44,135,101, 11,128,105,245,234,213,133, 0, 78,226,239,121,178, 44,246,205, 0,167,238, 66, 47,223,101, 7, 33,164,
-242,123,239,189, 55, 67, 34,145,116,208,106,181,177, 26,141,230,182,213,106,253, 67,167,211,189, 67, 41,205, 98, 89,241,159,131,
-201,100, 74,174, 86,173, 26,239,174, 1, 85, 82, 69, 94, 82,195,202,102,179, 37, 85,169, 82,197,107,227,204, 13,103,114, 9,233,
-232,102, 98, 98, 34,231, 43,151, 8,179,217,156, 94, 82, 56, 19, 19, 19, 81, 90, 78,111,113, 79, 72, 72,112, 27,119, 47,130, 48,
-185,132,242,227,158, 56, 75,122,159, 37, 65,175,215,231,132,135,135, 23, 26, 12, 6,169,209,104,148, 90,173,214, 98,230, 71,149,
- 74,149,193,114, 14, 3,195,125, 10,173,127, 51,236,194,170, 71, 25,242, 25, 1, 60, 83, 6, 60, 6,151,253,194,146,246, 75,137,
- 7, 97, 17, 18, 0,232,202,232, 29,102, 2,120,158,101,185, 71, 15,153,153,153, 79,148, 53,103, 86, 86, 86,153, 55,212, 50, 50,
- 50,154, 61,128,184, 55,250,175,114,150,132,228,228,228, 39, 88,206, 96, 96, 40, 27,112,236, 21, 48, 48, 48, 48, 48, 48, 48, 48,
- 60, 24, 16, 0, 29,221,157, 40,205,104, 2, 66, 72,199,210, 62,216, 27, 63,227,100,156,140,147,113, 50, 78,198,201, 56, 31, 63,
- 78,111,220,143,221,104, 70, 74,233, 3,219, 0,116,100,156,140,147,113, 50, 78,198,201, 56, 25, 39,227,252,175,110,172,235,144,
-129,129,129,129,129,129,129,225, 1,129, 9, 45, 6, 6, 6, 6, 6, 6, 6, 6, 38,180, 24, 24, 24,254,141, 32,132, 84, 45, 95,
-190,252,249,106,213,170, 37, 19, 66,134, 63,224,103, 13,105,214,172, 89,150, 82,169,220, 74, 8,169,202,222, 62, 3, 3, 3, 19,
- 90, 12, 12, 12,143,181,200,170, 83,167,206,222, 11, 23, 46, 84,223,190,125,123, 76,108,108,236, 71, 15,242,121,141, 26, 53,154,
-189,103,207,158,144,223,127,255,189, 83, 84, 84,212,238,123, 17, 91,132,144,170,241,241,241,231,171, 85,171,150, 68, 8, 25, 82,
-198,239, 99,120,243,230,205,179, 21, 10,197, 22, 38, 4, 25,254, 3,249,191, 54, 33,164, 14, 19, 90, 12, 12, 12, 12, 15, 80,100,
-237,223,191, 63,212, 96, 48,224,194,133, 11,200,200,200, 56,241, 32,159,121,233,210,165,156,253,251,247, 35, 46, 46, 14, 63,252,
-240, 67,120, 66, 66,194,158,210, 8, 26, 49,204,231,207,159,175,190,125,251,246,216,136,136,136, 79,202, 50,124, 77,154, 52,249,
-112,207,158, 61,193, 91,183,110,237, 28, 30, 30,190,155,137, 45,134,199, 48,223, 43, 8, 33,207,112, 28,119,184,118,237,218,167,
-107,213,170,117,138,227,184, 3,132,144,254,132, 16,254, 63,249, 78,196, 37, 22, 54,111,222,188, 11, 0,186,117,235,214,134, 37,
- 21, 6, 6,134,251, 44,108,107,213,170, 85,235,224,193,131, 7,213,122,189, 30,107,214,172,193,251,239,191,111,201,206,206,222,
- 3, 64,235,230,150, 35, 0, 62,243,101,233, 45, 66, 72, 0,128, 49, 0, 26,187, 57,173, 9, 9, 9,105, 53,101,202, 20,233,147,
- 79, 62, 9,131,193,128,190,125,251, 26, 46, 93,186, 84,159, 82,122,201, 87, 97,168,215,235,113,244,232, 81,244,236,217,115,171,
-197, 98,233, 82, 86,239, 37, 48, 48,240,236, 47,191,252, 82, 51, 38, 38, 6,215,174, 93,195,176, 97,195, 50,210,210,210, 90,123,
- 11, 27, 3,195,191, 32,207, 87, 0,240,146,159,159,223,200,182,109,219, 6,247,236,217, 19,161,161,161,176, 90,173,184,125,251,
- 54, 54,109,218,132,253,251,247,167,152, 76,166,133, 0,190,164,148,230,186,227,121, 28,181, 8,161,148, 98,243,230,205, 20, 64,
- 91,123,228,118,177, 36,195,192,192,112,159,133,238,126,157, 78,215, 76,167,211,161,160,160, 0,229,202,149,131, 84, 42,117,123,
-109,122,122, 58,246,237,219,135,151, 95,126,249, 92,106,106,106,235,146,214,189, 36,132, 4, 55,104,208, 96,255,142, 29, 59,170,
-250,251,251, 59,142, 11,130, 0,179,217, 12,139,197, 2,179,217, 12,163,209, 8,163,209, 8,185, 92, 14,149, 74,133,144,144,144,
- 51,148,210, 58,190,138,172,227,199,143, 99,232,208,161, 25, 89, 89, 89,101, 42,130, 8, 33, 85, 35, 34, 34,118, 47, 95,190, 60,
- 60, 49, 49, 17,183,110,221,194,115,207, 61,151,121,243,230,205, 86, 76,108, 49,252,139,243,251,196,167,159,126,250,195,200,200,
- 72,174,118,237,218,136,142,142,134,209,104,132, 94,175, 7,165, 20, 60,207,131, 82,138,188,188, 60,236,222,189, 27, 59,118,236,
- 48,230,228,228,124, 11, 96, 1,165,244,178,147,200,122, 44,181,136, 67,104,117,235,214,141,176,228,194,192,192, 80, 70, 5,239,
-233,188,188,188,218, 70,163, 17, 90,173,214,167,123,174, 93,187,134,225,195,135,159, 75, 77, 77,109,225,206,178, 69, 8, 9,104,
-208,160,193,161,221,187,119, 87, 53, 24, 12,200,207,247,190,238,188, 92, 46,135, 82,169, 68,104,104,232, 1, 74,105,115, 79, 45,
-241,218,181,107, 31, 61,112,224, 64,136, 94,175,199,137, 19, 39, 48,100,200, 16,115,118,118,246, 94,184,183,190, 1, 64, 54,138,
-214, 81,189,233,134, 47, 30,192, 43, 0, 42,120,184, 87, 19, 30, 30,222,114,197,138, 21,178,138, 21, 43, 66,167,211,161,127,255,
-254,217,151, 46, 93,106, 76, 41,189,206, 82, 15,195,191, 48,191, 95,186,112,225, 66, 21,155,205,134,204,204, 76, 24,141, 70,232,
-116, 58,135,208,146, 72, 36,160,148,194,106,181, 58, 26, 70,199,142, 29,195,246,237,219,233,181,107,215,222,167,148, 78, 19,133,
-214,227,168, 69,120,150, 68, 24, 24, 24, 30, 0, 6, 52,105,210,228,196,111,191,253,166,148,203,229,216,184,113,163,199,174,195,
-200,200,200, 90,203,150, 45, 75, 72, 76, 76,196,162, 69,139,106,246,237,219,119, 12,128, 25,110, 56,199,236,216,177,163,170,193,
- 96,192,137, 19, 39, 48,108,216,176,235,105,105,105,103, 93, 69, 76, 66, 66, 66,171, 79, 62,249, 68,218,176, 97, 67,228,231,231,
-163, 83,167, 78, 58, 0, 47,149, 16,214,177, 59,119,238, 12,209,235,245, 40, 40, 40, 64,219,182,109,145,149,149, 37, 3,208,222,
-211, 13,122,189, 30, 21, 42, 84,168, 10,224, 46,241, 22, 26, 26,250,245,173, 91,183,218,169, 84,170, 18, 95,144,217,108, 70, 82,
- 82, 18,130,130,130,176,105,211,166,144, 74,149, 42,189, 11, 96, 4, 75, 58, 12,255, 70,152, 76, 38,252,248,227,143,104,208,160,
- 1,106,212,168,129,194,194, 66,135,232, 50,153, 76, 14,145, 5, 0, 28,199,161,113,227,198,168, 82,165, 10,121,237,181,215,134,
- 0,152,246, 56,191, 27, 81,104, 77, 97, 62, 90, 12, 12, 12,101, 5, 74,233, 37, 66, 72,253,142, 29, 59,238, 89,187,118,109, 88,
-215,174, 93, 81,169, 82, 37,105,159, 62,125,194,181, 90,109, 7,151,214,112,240,176, 97,195,142,222,190,125, 59,193,126,168,177,
- 7,218,198,254,254,254,162,111,211,245,180,180,180, 70,174,221,140, 10,133, 98,203,201,147, 39,165,114,185, 28, 71,142, 28,193,
-240,225,195, 51,175, 95,191,238,173, 91, 46,200,100, 50, 65, 34,145, 0, 0,146,146,146,188,198,239,214,173, 91, 16, 4,193,232,
-238, 28,199,113,138, 99,199,142, 33, 38, 38,166, 68, 14,142,227, 32,147,201,156, 15,229,178,148,195,240, 47,133,197,100, 50,161,
- 81,163, 70,184,126,253, 58,142, 29, 59,230, 16, 92,153,153,153, 72, 73, 73, 41,118,241,225,195,135,113,252,248,113,180,110,221,
-218,149,231,177,212, 34,188, 61, 66, 31,108,222,188,153, 9, 44, 6, 6,134,178, 22, 91,173,122,244,232,177,123,249,242,229,225,
-229,202,149,131,191,191,127,128,155,235,114, 8, 33,103,165, 82,105,130,175,220,105,105,105,103,221,249,114, 69, 69, 69,213, 55,
-153, 76, 56,126,252, 56,134, 12, 25,146, 97,247,249,242,230,251, 52,189, 67,135, 14, 61,182,110,221, 26,162, 84, 42,113,246,236,
- 89, 95,186, 14,111, 0, 88,224,238, 68, 70, 70,198,144,214,173, 91,191, 7, 32,196,195,189,154, 42, 85,170,180, 60,122,244,168,
-140, 16,130, 27, 55,110,160,127,255,254,217, 0, 62,101,169,134,225, 95,138,201, 79, 63,253,244, 55, 99,198,140, 9,108,218,180,
- 41,146,146,146, 28,130,171,126,253,250,168, 91,183, 46,254,250,235, 47,108,217,178, 5,199,143, 31,135, 66,161, 64,165, 74,149,
- 80, 56,231, 19,224, 19, 88, 68,146,199, 85,139, 56, 70, 29, 50, 48, 48, 48, 60,144, 66,134,144,170, 50,153,108,126,120,120,120,
-189,228,228,228,215, 41,165, 63,184,156, 15,238,215,175,223,217, 85,171, 86, 69,223,184,113, 3, 21, 43, 86,220, 72, 41,237,229,
-134,103, 3,165,180,231,181,107,215,208,162, 69, 11,183, 22, 45, 66,200,240,168,168,168,169, 5, 5, 5,121, 58,157,174,191,175,
- 14,230,132,144,170,149, 43, 87,222,179,113,227,198, 48,181, 90,141,243,231,207, 63, 48,103,248,106,213,170,237, 61,124,248,112,
-168, 84, 42,197,145, 35, 71, 48,108,216, 48,230, 12,207,240, 56,228,115,127, 0,227, 19, 19, 19,223, 28, 53,106,148,162,102,205,
-154, 72, 74, 74, 66, 70, 70, 6,114,114,114,112,240,224, 65, 0, 64,108,108, 44, 98, 99, 99,113,241,226, 69,236,219,183, 47,191,
-176,176,112, 4,165,244,167,199,250,221, 48,161,197,192,192,240,144, 11,228,120, 56, 57,139,247,235,215,175,209,138, 21, 43,162,
-179,178,178,112,232,208, 33,244,237,219,247, 29, 74,233, 12, 55,247,189,157,154,154,250, 33, 0,156, 57,115,198,213, 71,203,163,
-115,122,105, 68, 80,133, 10, 21,246,172, 89,179, 38, 44, 52, 52, 20, 23, 46, 92, 64,255,254,253,207,106,181,218,218,101, 21,119,
-181, 90,189, 53, 53, 53,181,147, 76, 38,195,129, 3, 7, 48,100,200, 16, 54,189, 3,195,227,150,191, 35, 0,188, 91,179,102,205,
-151, 70,142, 28,201,199,199,199, 35, 57, 57, 25,127,254,249, 39, 42, 85,170,132,219,183,111, 99,199,142, 29,166,140,140,140,249,
- 0,102, 81, 74,243, 30,251,151,242, 32, 87,172, 6, 91,217,156,113, 50, 78,198,121,247,117, 91,206,157, 59, 71, 69,216,108, 54,
-154,156,156, 76,183,110,221, 74,163,162,162,206, 2, 8,112,199, 9, 32,160, 70,141, 26, 23, 46, 94,188, 72,111,221,186, 69,205,
-102,179,131,227,194,133, 11, 20,192,174,251, 13, 39,128,170,177,177,177,233, 59,119,238,164, 23, 47, 94,164, 81, 81, 81,183,203,
- 50,238, 21, 42, 84, 72,207,200,200,160,127,254,249, 39, 13, 15, 15, 79, 7, 80,149,165, 37,198,249, 56,114,218, 27, 82, 43, 26,
- 54,108,104, 91,184,112, 33,125,233,165,151,104,124,124,188, 13,192,215, 0, 98, 31,164,246,120,212, 54, 54,234,144,129,129,225,
- 97, 67,113,240,224, 65, 40, 20, 10,199,129, 83,167, 78, 57,207,163,149,239,161, 81,152, 79, 8,105,209,181,107,215, 61, 11, 23,
- 46,172, 97,177, 56, 92, 59,176,115,231, 78, 0, 48,150, 65,195,243, 18, 33,164,117,151, 46, 93, 22,132,134,134,214, 75, 77, 77,
-157, 92,150, 17,191,113,227,198,235,117,234,212,153, 81, 80, 80,144, 95,154,174, 77, 6,134,127,161, 17,231, 6,128,161,132,144,
-143,142, 29, 59,246, 14, 0, 10, 96, 58,165,244,252,127,237, 93, 48,161,197,192,192,240,176, 49,252,249,231,159,119,117, 22,247,
-105,102,120,187,227,124,243,110,221,186,185,206, 12,239,209, 57,253, 94,196, 22,128,206, 15,168,242,249, 1,192, 15, 44, 9, 48,
-252,135, 4,215, 89, 0, 3,255,203,239,128, 9, 45, 6, 6,134,135, 93,240,222, 4,240,220,125,220,159, 15,247,243,108, 49, 48,
- 48, 48, 60,114, 96,139, 74, 51, 48, 48, 48, 48, 48, 48, 48, 48,161,197,192,192,192,192,192,192,192,240,239, 2, 1,208,209,221,
- 9, 74,233,118,159, 73, 8,233, 88,218, 7,123,227,103,156,140,147,113, 50, 78,198,201, 56, 25,231,227,199,233,141,187, 52,250,
-227, 95, 1, 31,135,113, 18, 54,244,149,113, 50, 78,198,201, 56, 25,167, 47,156,246, 70, 60, 65, 81,175, 9, 39,238, 63,226,211,
- 17,144, 71, 53,238,255, 21,206,255,228,244, 14,132, 16,199,203, 34,132, 8, 0, 4, 90, 6, 51,156, 18, 66,196, 15, 81, 38,124,
- 12, 15,192,212, 89,244,141,200,223,122,156,125, 39, 6, 6,134, 82,149, 29, 18,167,202,214, 6,192, 70, 8,193,163, 86,150,148,
-101, 61,247, 32,226,254, 95,230,124, 92,192,151,244,194, 36, 18,201,214,176,176,176,118,153,153,153,130,253, 56,228,114, 57, 56,
-142,131, 84, 42,213, 23, 20, 20, 4,220,195,199,248, 58, 50, 50,114,120, 86, 86,150,192,113, 28,148, 74, 37, 8, 33, 14,206,220,
-220,220,128,127,250,165, 84,168, 80, 33, 71,175,215,251,185, 30, 87, 42,149,134,155, 55,111,250,255, 23, 10, 74,153, 76,246,116,
- 72, 72, 72, 80, 70, 70, 6, 21, 23,191,149, 72, 36,226, 66,184,214,220,220,220,239,124,229, 11, 9, 9, 57, 28, 18, 18, 18, 36,
-222, 79, 8, 65, 86, 86, 86,110, 90, 90, 90, 19, 0, 80,169, 84,251, 52, 26, 77, 40,207,243,144, 72, 36,144, 72, 36,208,233,116,
- 89,153,153,153, 45, 88,181,245,239,196,218,181,107, 37, 93, 98,159,171,196, 83,125, 93,142,163,129,130, 64,242,172, 68,117,106,
- 75,242,215, 87,125,185,191, 95,191,126, 54,246, 22, 31, 30, 20, 10,197,252,200,200,200,145,133,133,133, 58, 66, 8, 37,132,160,
-168, 26,192, 93,191, 54,155, 45, 41, 51, 51,179,145,151,202, 86, 42,151,203,231, 70, 69, 69, 13,211,233,116, 58, 59, 31, 37,132,
- 32, 58, 58,186, 24, 31, 0, 88, 44,150,164,140,140,140, 70,190,132, 53, 34, 34, 98,169, 74,165,250,159, 78,167,211,218,133,145,
-115, 15,141,115,101,254, 87, 70, 70, 70, 43,111,194, 64, 46,151, 47,136,140,140,124,214, 30,119, 16, 66,104,120,120,248,125,199,
- 61, 50, 50,114,152, 86,171, 45, 22,247,136,136, 8,183,156,158,226,238,142,211, 57,156,132, 16,132,135,135,223,119, 56, 31, 69,
-206,199, 94,104, 1,224, 8, 33, 27, 90,180,104,209,118,215,174, 93,220,133, 11, 23,184,234,213,171,195,102,179, 65, 16,138,210,
-117, 92, 92,156,250, 30, 42,240,101,173, 90,181, 26,180,123,247,110,110,195,134, 13, 92,227,198,141, 65, 8,129,205,102,131,205,
-102, 67,237,218,181, 85,247, 41, 16,252,120,158,127, 77, 46,151,183,177, 90,173, 53, 0, 64, 42,149,158, 55, 26,141,187,172, 86,
-235, 60, 74,105,161, 47, 60,102,179, 89,157,158,158,126,215,187, 73, 76, 76,148,223,107,216, 2, 2, 2,246,115, 28,151,232,120,
-193,118,193,225, 46, 51,139,191,148,210,107, 25, 25, 25,205, 61,113, 6, 7, 7, 59, 56, 61,113,184, 30, 19, 4,225, 90,122,122,
-122,115, 47, 34,171,111,171, 86,173, 2,183,111,223, 78,110,223,190, 77, 84, 42, 21, 4, 65,128,205,102,131,197, 98, 65,205,154,
- 53, 75, 53, 45, 72, 80, 80, 80,192,196,137, 19, 43, 61,245,212, 83, 88,183,110, 29,158,121,230, 25,180,108,217,242,178,120, 94,
-163,209,132,158, 59,119,174, 74, 72, 72, 8,116, 58, 29,242,242,242,208,169, 83,167,127,125,230,106,218,160,220,116,194, 17,199,
- 92, 81,212,106,203, 62,120, 50,249,221,251,229, 13, 10, 10, 58, 46,151,203, 35,197,239,202,113,156,219,111,237,124,204, 96, 48,
-164,101,102,102, 54,240,146,127, 42, 0,232, 33,145, 72, 42,243, 60, 95, 13, 64, 5,171,213, 26, 9, 0, 50,153, 44, 77, 34,145,
-220,176, 88, 44, 23, 77, 38,211, 21, 0,191,216, 39, 36,116,139, 46,177,207, 85, 34, 86, 93,191, 2,163,208, 85, 93,113, 86, 85,
-221, 95, 19, 47,169, 21,186, 95,187,196, 62,183,214, 87,177,245, 15, 54, 52,170, 2, 88,141,162, 5,165, 95,178,207, 3,116, 63,
-124,177, 0,122, 2,168, 42,147,201, 18,204,102,115, 38,128, 99, 0,182, 83, 74, 47, 19, 66,226,195,195,195,127, 16, 4,193,152,
-149,149,245,156,187,101,132,154, 53, 42,127,148,227,184, 56,216,101,132, 64,109, 73, 7,142,222, 46,147, 10, 74, 34,145, 44,232,
-211,167,207,179,107,215,174, 85, 31, 59,118, 76, 93,163, 70, 13, 71,249, 36, 8, 2, 92, 13, 17, 9, 9, 37,174,253, 77, 0,240,
- 28,199,205,239,215,175,223,224, 21, 43, 86,168,111,222,188,169,142,137,137,113,112, 58,139, 56, 17, 49, 49, 49, 62,133, 53, 52,
- 52,244,235,167,158,122,106,232,242,229,203,165, 27, 55,110, 84,133,133,133, 33, 52, 52, 20, 50,153,236,174,107, 91,180,104, 33,
-120,161,227, 56,142, 91,208,171, 87,175,161,171, 86,173, 82, 31, 58,116, 72, 93,187,118,109, 72, 36,146,251,142,123,239,222,189,
- 7,255,248,227,143,234,211,167, 79,171, 43, 87,174, 12,142,227,192,113,220, 93,124, 28,199,161, 92,185,114, 62,113,246,236,217,
-115,240,234,213,171,213,199,143, 31, 87, 87,171, 86,205,241, 62,157,186,237, 74, 29,206, 71,156,243,241, 21, 90,118, 51,234,138,
- 22, 45, 90,116,217,181,107,151, 4, 0,142, 31, 63,142,236,236,108,196,198,198,194,207,207, 15, 10,133, 2, 6,131,129,150,178,
-176,249,218, 46,178,164, 0,176,254,127,189,113, 77, 10,188,156,110,130, 76, 38,195, 95,127,253, 5,137, 68, 66,239,163, 48,107,
- 29, 16, 16,176,252,167,159,126, 10,110,208,160, 1,151,153,153,137,132,132, 4,100,103,103, 55,217,189,123,119,195,231,158,123,
-238, 57, 66,200, 51,148,210,221,190,114,254,250,235,175,208,104, 52, 80,171,213,208,104, 52, 48,153, 76,228,158, 95, 52,207,199,
-221,184,113, 35,194,207,207, 15,130, 32, 56, 54,151,254,109, 7, 4, 65, 64,149, 42, 85,204, 94, 10,200,184,155, 55,111, 70,168,
- 84, 42, 80, 74,139,241,217,108, 54, 40, 20, 10,231,150, 3,108, 54, 27, 18, 19, 19,205,222, 44, 89,162,200, 2,128,149, 43, 87,
- 34, 42, 42, 10, 17, 17, 17,208,104, 52, 80,169, 84,197, 42,118, 31, 11,114,116,233,210, 5, 31,124,240, 1,102,205,154,133,241,
-227,199, 23, 43,104,165, 82, 41, 66, 66, 66,240,251,239,191, 35, 32, 32, 0,241,241,241,144, 74,165,255,126,203, 32, 71, 66, 14,
- 28,189,229,176,208, 62,217,190, 58,223,180, 97,252, 98,251, 23, 6,199, 1,130, 80, 84,117, 18, 2,106,181, 8, 57, 71, 78, 37,
- 79,246,225,125,198,220,188,121, 51,194,121,102,245,146, 96,179,217, 16, 27, 27, 43,241,146,127,186,214,170, 85,107,253,232,209,
-163,101,149, 43, 87, 38, 50,153, 12, 60,207,131,231,121, 49, 61,198, 83, 74,227, 5, 65,104,155,150,150, 70, 23, 45, 90,244, 17,
- 33,164, 15,165,244, 87,183,233,157,234,235, 22, 24,133,174,123, 78,160, 73,191,142,111,225,247, 53, 19,155,180,170, 47,192, 95,
-173,191, 10,224,145, 21, 90,132,144,170,181,106,213, 58,113,232,208, 33,165,217,108, 70,211,166, 77, 15, 18, 66, 26,222,203, 12,
-238,132,144, 96, 0,159, 76,154, 52,105,232,232,209,163, 37, 65, 65, 65,144,203,229, 40, 40, 40,192,213,171, 87,135,125,247,221,
-119,148, 16,242, 25, 0,255, 27, 55,110, 52, 59,124,248, 48,218,181,107,247, 10,128,215,238, 86, 4,146,184,125,135,175, 71,136,
-251, 61,187,212,145, 53,111, 28,159, 86,212, 32,115,189,154, 66,176, 9, 73,135, 78, 36, 53,242, 33,140, 31, 61,253,244,211, 67,
-214,174, 93,235, 7, 0, 75,150, 44,193,211, 79, 63,141,144,144, 16,168,213,106,200,100, 50, 72,165,210, 98,191, 94, 44, 68, 18,
- 0, 31, 13, 28, 56,176,223,138, 21, 43,252, 1, 96,197,138, 21,232,221,187, 55, 66, 67, 67,225,239,239, 15,185, 92, 14,137, 68,
- 82,234,111, 19, 26, 26,250,117,203, 38, 77, 70, 44, 95,190, 28, 0,240,206,171,175,226,169, 39,158,128,159, 90, 5,181, 74, 14,
-241, 93,200, 37, 82, 60,249,242, 56,111,241,230, 0,204,121,250,233,167, 7,172, 90,181,202, 31, 0,142, 29, 59,134,244,244,116,
- 68, 70, 70, 66,165, 82, 65, 46,151, 59,226, 76, 8,129, 74,165,242, 41,238, 79, 63,253,116,191, 31,127,252,209, 31, 0,150, 45,
- 91,134, 46, 93,186, 56,226,174, 80, 40, 32,147,201,138,109,174,162,211, 29,103,159, 62,125,250,173, 94,189,218, 31, 0,190,251,
-238, 59,116,236,216, 17,193,193,193,142,247, 41,114,149,230, 27, 61,202,156,143,181,208, 18,125,167, 34, 35, 35, 7,236,217,179,
-135,115, 18, 9, 80, 40, 20, 80, 40, 20,144,203,229,142,238,195, 82, 20, 56, 36, 50, 50,114,248,238,221,187, 29, 55,153,232, 93,
-166,235, 82, 87,224, 78,252, 29,219,181,107,247,227,166, 77,155,148, 50,153, 12,122,189, 30,103,207,158, 69, 96, 96, 32,228,114,
- 57,122,245,234, 37,105,209,162, 69,104,219,182,109,215, 17, 66, 6,251, 50,162,129, 82, 10, 63, 63,191, 98, 66,235,126,187,152,
- 85, 42, 21, 54,110,220, 8,137, 68,226,182, 0,115,254, 31, 17, 17,225, 75,188,161, 80, 40,176,127,255,126, 72, 36, 18, 72,165,
- 82,240, 60, 15,169, 84,138,205,155, 55,227,141, 55,222, 64,102,102, 38, 8, 33,144, 74,165,240,247,247,218,235, 73, 66, 66, 66,
-130, 68,145, 37,138, 32,149, 74, 5,169, 84, 74,120,158, 39, 98,215, 30, 33,132,248,218,231,206,113, 28,190,255,254,123,204,158,
- 61, 27, 19, 38, 76,192,210,165, 75, 81,183,110, 93,103, 17,138,252,252,124, 4, 7, 7, 35, 56, 56, 24, 74,165,242,158,211,194,
-163, 4,215,183, 51,119,222, 66, 53, 4,138, 34, 39, 16, 1, 16, 0, 10, 10,129, 10, 72, 75,190,138,247, 63,248,216,231,218, 71,
-161, 80, 96,223,190,125, 14, 49,196,243, 60, 8, 33,112, 22, 72,226, 22, 21, 21,229,149, 79, 38,147, 77,249,249,231,159,229,223,
-127,255, 61, 86,173, 90,229, 72, 91, 26,141, 6, 65, 65, 65, 8, 13, 13,117,108,113,113,113,228,155,111,190,145,213,173, 91,119,
- 10,128, 95,221,127,115, 26,168,174, 56,171,106,191,142,111, 1, 0,250,189, 69,145,115,249,195,122, 92,238,228,192, 71, 89,100,
-213,169, 83,103,239,254,253,251,149, 58,157, 14,130, 32,224,215, 95,127, 85,119,236,216,113, 15, 33,164, 85,105,197, 86,133, 10,
- 21, 54,238,223,191,191, 69,120,120, 56,242,242,242,144,159,159, 15,139,197, 2,137, 68,130,248,248,120,124,244,209, 71,164, 87,
-175, 94, 99,135, 13, 27,102, 80,169, 84,162,101,163,130,167,242,200, 25,139, 62, 93, 28, 68,105, 81,250,161, 2, 45,246,155,157,
-126, 3,175,190,254,190, 79, 97, 44, 87,174,220, 75,235,214,173,243,115,182, 44, 57,139, 0,231, 50, 74,220, 60, 9, 3,187, 85,
-131, 43, 95,190,252,136, 31,126,248,193,193, 25, 22, 22,230, 40,151,120,158, 7,199,113,216,179,103, 15,102, 78,153,132,224,240,
- 24, 44,252,116,137,215,112, 70, 68, 68, 44,237,218,181,235,255,150, 45, 91,230, 56, 86,167, 98, 69,116,107,241, 4, 34,194, 2,
- 16, 22, 92, 84,182, 81,129,224,212,197,235, 94,235, 35, 0, 92,185,114,229,158, 91,179,102,141,159,115,131, 80,140, 43, 0,232,
-116, 58,135, 21,223,100, 50,161, 81,163, 70, 62,197,221,153, 83,180,182,137,162,205,181,172, 23, 27, 50, 37,113,150, 43, 87,110,
-132, 40,132, 1, 32, 36, 36,164, 24,135, 84, 42,197,154,223,151,223, 85, 55,220, 47,103,105,191,187, 43,231,141, 27, 55, 48, 99,
-198, 12, 71,153, 36, 90,245, 8, 33,136,141,141,197,194,133, 11, 75,226,116,135,198, 0,194,157,246, 77, 0,228, 78,191, 25, 40,
- 90, 97,194,245, 58,241,184, 20, 64, 61,251, 57, 27,128, 2, 0, 65,110,248, 60,241,100,162,104, 25,161,112,151,235, 93,159,227,
- 94,104,109,222,188,153, 2,192,198,141, 27,219,245,236,217,115, 95,102,102,166,112,225,194, 5,238,216,177, 99,144, 74,165,136,
-136,136, 64,227,198,141,197,110, 53, 72,165, 82,104, 52, 26, 18, 20, 20,148, 38, 86,188,226, 75,116,238,107,119, 18, 52, 92,118,
-118,182,176,109,219, 54,110, 69,159,206, 48, 81,160,254,123, 51,209,165,123,119,108,137,149, 67, 2,160,201,133, 76,168,213,106,
- 94, 42,149, 90,196,143, 33,114, 58,251,110,185,138, 36, 66,136,191, 70,163,249,230,151, 95,126, 81,114, 28,135,130,130, 2, 8,
-130,128, 22, 45, 90,128,227, 56,156, 57,115, 6,239,188,243, 14,214,175, 95,143,159,127,254, 89,213,160, 65,131,111, 8, 33, 53,
- 40,165, 5, 78,133,216,118,119,137,212,223,223, 31,106,181,218, 33,180,196, 56, 59,155,192,197,235, 41,165,201,153,153,153, 13,
- 75,226,180,217,108,232,221,187, 55, 8, 33,144, 72, 36,197, 10, 31,231, 95,153, 76,134, 51,103,206,220,149, 8,221, 9, 68, 65,
- 16,208,178,101, 75, 0,128, 90,173,134,159,159,159,184,238, 27, 0,160,126,253,250, 48,153, 76, 8, 11, 11,195,249,243,231,221,
- 21,224,197, 56, 51, 50, 50,104, 74, 74, 10, 89,177, 98, 5,164, 82, 41, 66, 67, 67,161, 86,171,201,242,229,203, 39,201,100,178,
- 56,131,193, 32,152, 76, 38,200,229,242,133,162,117,139,231,121,109, 94, 94, 94,168, 39, 78,137, 68,130,209,163, 71,227,205, 55,
-223,196,210,165, 75,241,226,139, 47,222,101,241, 50, 24, 12, 8, 11, 11,115,136, 45, 95,226,126,255, 66,232, 1,115, 10, 20,103,
-143,111,193,185,211,219, 33,216, 4,216, 4, 10, 74,109, 16,172,192,177,109, 7,171,220,185,150, 18, 75, 65, 1,123, 7,135, 34,
-175,208,218, 54, 76, 81, 13,192,134,157,153,198,249,222,210, 39,207,243,176, 88, 44,248,229,151, 95,112,245,234, 85,108,221,186,
- 21,122,189,222,241, 30,155, 53,107,134, 17, 35, 70,184, 21, 90,174,156,148,210,101,183,111,223,174,223,178,101, 75,146,155,155,
-139,220,220, 92,232,245,122,216,108, 54, 88,173, 86,240, 60, 15,165, 82, 9,149, 74,133,200,200, 72, 24, 12, 6,106, 52, 26,151,
-121,226, 20, 4,146,167,251,107,226,165,223,215, 76,108,210,239, 45,138,181,179, 9, 42,149, 87,232,254, 56,234, 63, 98,195,222,
-241,157, 0, 80,193,174, 29, 56,128, 90,108, 66,230,155,147, 62, 25,251,208,191,209,221, 34, 43, 84,175,215,163,160,160,168,120,
-144,203,229, 88,187,118,109, 88,143, 30, 61,118, 19, 66, 90,123, 18, 91,238, 56,253,253,253,227, 37, 18, 9,206,156, 57,131,207,
- 63,255, 28,127,252,241, 7,210,210,210,114, 98, 98, 98, 2,219,182,109,203,189,250,234,171,168, 95,191, 62,190,253,246, 91,165,
- 55, 78, 74, 41,110, 92,222,131, 27, 87,246, 66, 16,168,147, 85,220,253,127,234, 99,220,181, 90,173,225,196,137, 19,126, 95,125,
-245, 21, 34, 34, 34,144,144,144, 0,181, 90, 13,165, 82, 89,172,146,117,174,120,189,229, 77,189, 94,111,184,113,227,134,223,143,
- 63,254,136,208,208, 80, 84,168, 80, 1,106,181, 26,114,185,220,209, 32, 88,177, 98, 5, 86,126, 48, 4, 55, 46,158, 70,239,110,
-157,188,134, 83,173, 86,255,111,217,178,101,197, 76, 32,145,193,193,224,165, 28, 36, 82,130,224, 14,125, 0, 0, 57,127,254,228,
-113,118, 72, 23, 78, 82, 80, 80, 96, 56,116,232,144,223,209,163, 71, 33, 8, 2, 42, 84,168, 0,157, 78,135,128,128, 0, 71,252,
-183,109,219,134, 94,189,122,225,251,239,191, 71,179,102,205,188,198,189,176,176,208,112,250,244,105,191, 31,126,248, 1, 33, 33,
- 33, 40, 87,174,156, 35,238,226, 38,149, 74, 33,145, 72,144,152,152,136,188,188, 60,248,249,249,121,253, 70,199,142, 29,243,251,
-225,135, 31, 16, 28, 28,140,184,184, 56,135,197, 77, 20, 71,179, 23,127, 80,140, 67, 73,162,239,155,179,180,223,221,149,179,119,
-239,222,168, 84,169, 18, 2, 2, 2,160,209,104, 28,220, 37,113,138, 90, 4, 64,219,110,221,186,237,114,249,132,225,132,144, 77,
- 78,207,239, 78, 8,217,228,252,235,233, 58,251,223,214,147, 38, 77,106, 52,107,214,172, 25,205,154, 53,251,113,255,254,253, 43,
- 61,241,121,226,153, 52,105, 82,173, 89,179,102,205,112,190,222,205,115, 60, 91,180,186,117,235, 70,236,145,228, 1,160,122,245,
-234,200,206,206,134, 66,161, 64,227,198,141,145,153,153, 9, 63, 63, 63,200,100, 50, 80, 74, 49,118,236, 88,201,248,241,227, 35,
- 56,142,131,213,106,117, 20,252, 30,250,218, 5,142,227,208,188,121,115,156,181,247, 8,117,233,222, 29,113,113,113, 16,157, 60,
-148, 74, 37,198,142, 29, 75,222,120,227, 13, 94,180,102, 80, 74,161,215,235, 17, 29, 29,173, 42,161, 75,238,213,117,235,214, 5,
-138, 38,121,177,235, 76, 34,145,224,194,133, 11,152, 51,103, 14,134, 13, 27,134, 91,183,110, 33, 38, 38, 6,111,190,249,166,223,
-172, 89,179, 94, 5, 48,213, 91,129,236,231,231,231, 16, 89,106,181, 26,175,190,250, 42,223,162, 69,139, 8, 63, 63, 63,248,251,
-251, 67,236, 6,180,217,108,168, 88,177,162, 87,105, 46, 8, 2,182,108,217, 2,158,231,189, 90,180,236, 9,208, 39,206, 67,135,
- 14, 57, 68,154,115, 43,137, 16,130,179,103,207, 58, 68,157, 15,156,148,227, 56,104, 52, 26, 68, 69, 69, 65,165, 82, 65,173, 86,
-147, 31,127,252,241,221,132,132,132,232, 55,222,120,131,203,207,207,231,154, 55,111,142,167,159,126,154, 23, 4, 1,102,179, 25,
-181,106,213,242,106,121,219,181,107, 23, 62,255,252,115,188,248,226,139,110, 45, 90,162,179,100, 64,192, 63, 62, 22,162,204, 32,
- 0, 48, 91, 45,208, 21,234, 29, 93,187, 54,155, 13,167,119,158,172,114,237,228,229, 90,155,126,252, 94, 10, 0,134,157, 63, 57,
-223, 22,253,244,226,213, 85,219,134,200, 14,237,204, 54, 31,242,102, 41, 28, 55,110, 28, 38, 79,158,140,129, 3, 7, 98,219,182,
-109,120,231,157,119,240,220,115,207, 21,179,104,249, 2,139,197,242,197, 51,207, 60,243,226,218,181,107,171,189,245,214, 91,156,
-104,209, 82,171,213,162,143, 23,140, 70, 35,244,122, 61, 46, 94,188, 40, 60,255,252,243,151, 76, 38,211, 23,158,248,172, 68,117,
- 74,173,208,253, 90, 49,142,171,164,189,254,177,127,203, 39, 42,232,137,170, 97, 94,159,170, 29,105,215,225, 21,130, 65, 41,168,
- 0, 8, 20, 48, 26,181, 24, 59,246, 21,201, 63,245,157,156, 69,150,193, 96,192,137, 19, 39,208,174, 93, 59,220,190,125, 27,231,
-207,159, 71,149, 42, 85,176,124,249,242,240,193,131, 7,151, 40,182, 92,113,250,244,233, 73,245,234,213, 91, 80, 88, 88,152, 93,
- 88, 88,184, 0,192, 74, 74,105, 46, 33,164,198,213,171, 87, 23,109,217,178,165,213,251,239,191, 47,113,241,209,145,120, 50,143,
- 90, 44, 86,232,245,198, 18, 5,150,184, 79,169,224,107,220,105,181,106,213,208,163, 71, 15, 72,165, 82, 71, 99,205,185,219,204,
- 85,112,149, 84,126, 0, 16, 8, 33,136,137,137, 65,215,174, 93, 33,147,201,138,113,138, 21,107,215,174, 93, 49,110,234,123,248,
- 98, 92,123,124,254, 76, 21,116,156,158, 86, 98, 56,117, 58, 93,225,142, 29, 59, 84,111,190,248, 34,234, 85,174,140,176,128, 0,
-148,143, 12,135, 74, 33,135,204, 57, 76,196,187,145,157, 82, 74, 9, 33,130, 68, 34, 65,237,218,181,145,150,150,134,235,215,175,
-227,250,245,235,224, 56, 14, 45, 91,182,116, 88, 97,174, 92,185,130,169, 83,167,194,104, 52,250, 28,247,202,149, 43,163,125,251,
-246,144,203,229, 80,171,213,197,186, 12,197,119, 90, 80, 80,128, 74,149, 42, 97,195,134, 13,168, 90,181,170, 87,206,234,213,171,
-163, 77,155, 54,197,222,167, 74,165,114,212, 27, 0,112,251, 80,161,227, 25,177,177,177,165,226,220,122,248, 22,190,218,182, 3,
- 70,147,128,124,157,165,216, 13,209, 97, 1,216,251,195, 91, 62,197, 93,228,252,242,203, 47,145,155,155,235, 40,131, 68,163,137,
-104,164, 40, 87,174, 28,150, 44,113,111,201,116,210, 34,196,195,247,235,238, 99,131, 74,188, 78, 76, 92,138, 89,179,102,205,112,
-189,223, 27,159,243,121,151,251, 77, 46,226, 44,205,167,174, 67,177,126, 16, 51, 67,108,108, 44, 68, 63, 16, 49,163, 56, 10, 82,
-171, 21,235,215,175, 71, 68, 68,132, 99, 11, 12, 12,244,152,176, 69, 63,162,113, 25, 69, 46, 66,191,199,200,112, 3, 64,183, 12,
-234,240, 35,177,217,108, 88,183,110, 29,156,133,140,191,191,127,137,221, 72,114,185,188,109,227,198,141, 57,163,209,120,151,200,
-154, 53,107, 22, 6, 15, 30,140,170, 85,171, 66, 16, 4, 20, 22, 22,162, 93,187,118,210,133, 11, 23,182, 45,141,208, 82,171,139,
-252,254, 77, 38, 19,118,238,220,137,224,224, 96,132,134,134, 34, 36, 36, 4,254,254,254,226,200, 73,234, 77,108, 80, 74,209,187,
-119,111, 71,226,115,182, 98,185,138,174,253,251,247,251,212, 37, 71, 41,197, 19, 79, 60, 1,141, 70, 3, 63, 63, 63,248,249,249,
- 97,203,150, 45,142,107,154, 52,105, 2, 65, 16, 16, 17, 17,129, 3, 7, 14,148,216,253, 73, 41,165, 50,153,204,113,189, 84, 42,
- 37,203,151, 47,159,148,152,152, 24,253,250,235,175,115, 18,137, 4,199,143, 31,199,185,115,231, 80,161, 66, 5,159,125,182,114,
-115,115,239, 76,154, 52,201, 54,105,210, 36, 0, 64,173, 90,181,144,155,155,155, 46,158,207,207,207,207,234,220,185,115, 49,191,
-141,204,204,204,172,127,189,208, 18, 4, 88,205, 86,232, 12, 6, 20, 22,232, 28,214,161,244,148,180,160,183,222,120, 77, 58,103,
-236,179, 0,128, 55,230,127,138,130,165,127, 23,100, 63,189, 49, 40,162,207, 39,171, 38, 2,232,229,165,242,129,209,104, 68,124,
-124, 60, 14, 31, 62,140,130,130, 2,116,236,216,177,152,197, 84,124,167,222, 76,244,148, 82, 19, 33,164, 69,247,238,221,143,204,
-155, 55,175, 98,141, 26, 53,136, 86,171,133, 78,167,131,243,239,233,211,167,233,202,149, 43,175,233,116,186,230,148, 82,147, 39,
-190, 45,201, 95, 95,237, 18,251,220,218, 63,142, 75,186, 71, 84,186, 20,144,156, 83,209,154,149,172,208,230,235, 47, 26,108,244,
- 28,168, 13,176, 65, 0,181, 10,176,217,187,189,254, 41,168, 84,170, 69,123,247,238, 13, 53, 24, 12, 56,118,236, 24,134, 14, 29,
-106,202,204,204,148, 3,192,255,254,247, 63,211,138, 21, 43,228,149, 42, 85,194,242,229,203,195,159,126,250,233, 53, 0,106,251,
- 88,208,127, 15,224,123,215,227,161,161,161, 11,111,221,186,213,214,217,231, 71,108,172, 2,112,219,168,164, 2, 96,177, 88,160,
-215, 27,145,151, 87, 0,147,217, 98, 47, 51, 5,216,108, 86,251,175, 0,171,189, 28,149,203,120,255,134,117,162, 11, 41,165,224,
- 8,201, 61,122,250, 78, 57, 79,229,146,167, 46, 46, 95,172, 89,110, 96, 19, 71,153,133,134,134, 66, 42,149,226,251,239,191,199,
-169,125, 91, 32,151, 80,216,172, 22, 88, 45,102,216, 44, 38, 72, 37, 18,252,113,252, 58, 58, 85,247, 62,144,155, 16, 66,195,194,
-194,208,173, 89, 51,116,111,214,172,104,120, 27,207,195, 79,161,128, 90,166, 44,178,100, 1,160, 54, 14,240, 45, 41, 9, 98, 56,
- 35, 35, 35,113,244,232, 81,140, 27, 55, 14,179,103,207,134, 74,165,114,140,126,190,112,225, 2, 86,175, 94,141, 78,157, 58,149,
- 58,238,162, 5,111,226,196,137, 72, 73, 73,193,252,249,243,209,176, 97, 67, 72,165, 82,228,230,230,162,121,243,230, 72, 75, 75,
-243,137,211,185,123, 79, 46,151, 23,179, 62,137, 2,176,180,223,200,153,243,217,222,209,216,184,111, 37, 8, 8, 14,254,240, 90,
-177,186,104,201,170, 61,165,230,156, 60,121,114,177,112,250, 98,205, 42, 69,195,104,147, 47, 98,203,233,186, 99,162,177,117,226,
-196,137,111, 19, 66, 54, 77,156, 56,241,237,153, 51,103,158,245,133,207,195,249,205,162, 46,116, 58,118,204,103,161, 69, 41,165,
-114,185, 28,130, 32, 20, 19, 87,174,142,183,162, 41,208,217,212,232, 77, 20, 8,130,224, 72, 20,174,205, 54,137, 68,130, 3, 7,
- 14,224,192,129, 3,197,142,127,245,213, 87, 37, 86,228, 86,171,181,134,191,191,127, 49,107,150, 76, 38,195,196,137, 19, 49,116,
-232, 80,135,200,146,201,100,248,238,187,239,208,168, 81, 35,152, 76,166, 26, 94,252, 85,116, 81, 81, 81,156, 88, 16,105, 52, 26,
- 50,110,220, 56,137,213,106,117,188, 19,113, 19,125,215,188, 37, 26,113, 20,203,214,173, 91,125,178,104,249,234,163, 68, 41,197,
-201,147, 39,139,137, 55,113,212, 12, 0,156, 60,121,210,225,191,229, 11,167, 68, 34,129,205,102,131, 74,165, 34, 50,153,140,200,
-100,178, 56, 81,100, 73, 36, 18,199,247,118,246,217,243, 22,247,228,228,228,118, 37,157, 79, 79, 79,127,108,167,113, 48, 91, 44,
-208,235, 76, 40, 40,212, 99,202,204,111,139, 14, 78,193, 33, 0,135, 90,188, 52, 14,163,187,116,106,239,226, 7,224, 75, 65,227,
-168, 28,215,173, 91, 7,169, 84,138, 13, 27, 54, 32, 32, 32, 0, 61,123,246, 68, 64, 64, 0,222,122,235, 45, 12, 28, 56,208,103,
-139,150, 61, 45,229, 17, 66, 90,188,250,234,171, 71, 62,254,248,227,242,229,202,149,131,201,100,130,217,108,134,201,100,194,213,
-171, 87,177,114,229,202,219, 58,157,174, 5,165, 52,207, 27,223,150,228,175,175,174,223,253, 70, 74,199,129, 79,235, 47,164,253,
-142,212,212, 44, 88,173,201, 16,108, 86,152,173, 69, 35,152,109, 86, 43,172, 86, 27,100, 50, 73,192,199, 31,190,182, 77, 0, 5,
-199, 17, 83,191,126,253,158,122, 88,223, 40, 40, 40,168, 86, 70, 70, 6, 46, 95,190,140, 97,195,134,165,102,101,101,157, 7,208,
- 1, 0,178,178,178,246, 14, 29, 58,180,198,178,101,203,162, 18, 18, 18,224,231,231, 23,224,195,247,241, 3, 48, 26, 64,103,187,
- 31,136,136,108, 0,211,194,195,195, 21,199,142, 29,187,203,250,191,123,247,110, 0, 56,228,222,100, 96,183,104, 25, 12,200,200,
-202,193,200,151,222,117,152, 18, 0, 90, 76, 92, 80, 80,140,122, 25, 74, 0,200, 76,187,138,103, 71,142, 83,120,107, 16,184,171,
- 8, 75,225,163,227,108, 41,114,164, 81, 63, 63,191,162,238,183, 13, 43,177,249,147,151, 0,155, 25,212,162, 7,204, 58,192, 92,
- 8,193,164, 3,145,169, 0,139,222, 39,161,229,231,231, 7, 63,149, 10, 17, 65, 65, 69,147, 64, 74, 36,144, 74,121, 8, 22,128,
-216,136, 67,144, 10, 54,159,210, 58, 13, 11, 11,131, 32, 8, 80,169, 84,184,113,227, 6, 70,143, 30, 13,179,217,140,222,189,123,
-195,100, 50,193, 96, 48, 64,175,215, 35, 49, 49, 17, 58,157,206,167,184,139,229,188,216,251,243,218,107,175,161, 81,163, 70,152,
- 58,117, 42, 38, 76,152,128,196,196, 68,140, 26, 53, 10, 43, 87,174, 68,173, 90,181, 74,228,117,126,159, 34,167,248, 93, 92,187,
-248, 0,148,250, 27,185,114, 22,141, 15,192, 93,223,253,149,103, 58,148,154,115,214,172, 89,200,200,200,184,203,146, 37,254,143,
-141,141,197,226,197,139,239,181,235, 95,180, 30, 69,186, 51,136,185,177, 68, 53, 70,145,239,148,113,230,204,153,103,103,206,156,
-217,157, 16,178,105,230,204,153,221, 75,176,104,117,243, 98,241,234,134, 34,159, 44,159,192,187,244,141,182,117,182,148,136, 21,
-169, 88,161, 59, 23,242,106,181, 26,235,215,175,135, 56, 2,196,249,154,146,132,214,175,225,118,211,177,221,146,229,188,223,163,
- 71, 15, 36, 36, 36, 20,179,102,169, 84,170, 18, 19,143, 32, 8,184,121,243, 38,206,158, 61,139,166, 77,155, 34, 47, 47, 15, 82,
-142,195, 27,167, 79,163,230, 51,207,192,100,183,208,200,229,114,188,248,226,139, 62, 57,180, 95,191,126, 61,216,121, 63, 44, 44,
- 44,169, 85,171, 86,177,135, 15, 31,118, 56,200,219,187,213, 28,130,195, 23, 17, 67, 41, 69,223,190,125,139, 89,177,156, 69,150,
-243,246,251,239,191,251,212,117, 72, 41, 69,171, 86,173, 28,214, 44,127,127,127,252,252,243,207,142,111,213,186,117,235, 34,127,
-134,200, 72,159, 56,197,120,216, 29,224, 97, 48, 24,132,130,130, 2,238,216,177, 99,144,203,229, 14, 11,158, 74,165,130, 82,169,
-132, 66,161,184,167, 17, 68,255, 5, 80, 42,192,100,177, 64,175,215,163,176,176,104,102,145,171,103,214, 21, 23, 98,198,252,123,
-230, 23,173, 86, 5, 5, 5,248,227,143, 63,240,211, 79, 63,161, 97,195,134,119, 57,195,251, 98,209,114, 74, 79, 25,132,144,150,
-227,199,143, 63, 56,125,250,244,152,144,144, 16,152,205,102,220,186,117, 11,223,124,243, 77,138, 78,167,107, 73, 41,205,240,253,
- 37, 0, 22,139, 21, 6,157, 17,121,249, 5,248,224,195,239, 60, 38, 61, 0,200, 78,191,136, 30, 61,251,203, 31,230,119, 74, 73,
- 73,121,189,101,203,150, 31, 22, 20, 20,228,234,116,186,254, 0,230, 56, 27, 14,179,178,178, 90,245,236,217,115, 94, 72, 72, 72,
-195,244,244,244,183,125,160,156,120,227,198,141,183,227,227,227,139, 29,180, 91, 31,171,166,167,167, 15,105,221,186,245,123, 0,
- 66,156, 78,251, 3,216, 10, 96,177,167,180, 36,118, 29, 22, 22,234, 17, 16, 20,141,228,235,187,188, 6, 68, 38, 49,128, 10,130,
-215, 6,160, 59, 43,150,115,249, 84,138,244, 67, 69,159, 64,177,194,126,170,239, 51,120,106,244, 44,168,165,192,140,103, 91, 32,
- 49, 8,128, 42, 4,178,214,111,129, 4,217,223,209,232, 95,124,226,159,240,249,231, 56,126,185,104,102,152,184,240,112,140, 31,
- 56, 16,212, 2,236, 63,119, 14,171,118,236,192,192,118,237,160, 86, 42,125,110,176,136,141,240,171, 87,175, 98,255,254,253,168,
- 94,189, 58,174, 92,185, 82,108, 26, 10, 74,169, 79,241,167,148, 82,113, 16,147, 66,161,128, 84, 42, 69,106,106, 42,186,119,239,
-238,104,232,239,218,181, 11,227,199,143,199,136, 17, 35,208,182,109, 91,183,126,179,174,156,225,225,225, 14, 3,130,235, 64, 5,
-231,238,220,210,124, 35,119,156, 34,238,245,187, 59,115, 78,159, 62,221,237,128, 10, 95, 56,157,181, 72, 9, 56,230, 98, 77,130,
-232, 47, 37, 10, 35,215,125, 0,193,226,177,137, 19, 39,190,237,235,125,206,251,162, 69,172, 52, 93,152, 14,161,213,173, 91, 55,
-226,174,178, 21,205,200,238,160,209,104, 48,102,204, 24, 76,158, 60, 25, 97, 97, 97, 94,125,107, 68, 37, 91, 18,126,249,229,238,
-204,182, 97,195, 6,111, 93,135, 23, 2, 3, 3, 27,181,107,215, 14,121,121,121,184,125,251, 54, 52, 26, 13,106,126,242, 9, 78,
-143, 30,141,122,159,127, 14,174,125,123,199,100,171,167, 79,159,134, 74,165,186, 80, 90, 11,130,191,191, 63,130,131,131, 29,125,
-238,162,224,114,178,104, 81, 31, 18, 35,126,253,245, 87,183,173,198,123,241,209, 18, 11,129,131, 7, 15, 22,243,207,114, 22, 62,
- 7, 15, 30,116, 88,180,196,219,124,233,242, 82,169, 84, 84,228, 83,171,213, 8, 9, 9,129, 66,161,128, 74,165, 42, 38,178,124,
-177,230,121,155,144, 84,165, 82, 29,214,104, 52, 65,226,121,169, 84,138,130,130,130,220,172,172,172, 38,255,234,174, 67, 80, 88,
-205, 86,232,245, 6, 20, 22,232,203,156, 95, 28,152,178,126,253,122, 60,241,196, 19,119,137, 44,241, 93,223, 67,139, 49,137, 16,
-210,118,193,130, 5,135,230,206,157, 27, 92, 88, 88,136,111,191,253, 54,175,176,176,176, 45,165, 52,169, 84, 92, 2,133,197,108,
-134,206, 96,132,182,176,232, 29,252,117,118,221, 35, 38,136,233, 74, 0, 43, 93, 45,134, 78,231,255, 2,208,189, 20,148, 79,196,
-199,199, 35, 53, 53,181,216,193,155, 55,111,194,102,179, 25,237,243,100, 61,231,244, 60, 9,165,212,230,173,236, 48,219,187, 14,
- 11, 11,139,172, 32, 6,109,102,217,164, 83,187,216,240,228,147,117, 47, 93, 60,226, 72,103,137, 68,130,177, 99,199,226,244,169,
- 83,232, 16,147,143,196, 40,127,208,252,100,200,218,191,143,147, 25, 42,204,153,247,107,169,185, 87, 59, 13,246,153,179,122,181,
-219,115,127,245,234, 85,170,184, 95,186,116, 9, 42,149, 10, 54,155,237,174,250,166,180,241,119, 22, 48,243,230,205,195,248,241,
-227,241,221,119,223,225,244,233,211,168, 87,175, 30, 58,118,236,136,244,244,116,156, 58,117, 10, 70,163,209,231,112, 58,251,205,
- 93,186,118, 14,219,247,255,134,155, 73,215,145,146,122,251,158,191,187, 51,167,171,208, 90,191,253, 4,250,118,106,112, 79,156,
- 31,124,240, 1,210,211,211,139, 89,178,156, 7,144,121,178,104,185,106, 17, 23,100,186,248, 66,137,251, 38, 23,209,227,186,239,
-122, 61, 0,164, 3,144,120,185,207,117, 63,115,230,204,153, 59, 69, 75,152,157, 87,226,205, 63,203,109,215,161, 40,138,196,140,
-226,106,169, 18,255,107, 52, 26,248,251,251,195,223,223, 31, 1, 1, 1, 94, 45, 69,162,208,106,117,173,160,152,175,151,104,217,
- 2,128, 17, 35, 70,220,101,209,114,158,216,211, 29,140, 70,227,174, 93,187,118,213,239,209,163,135,228,194,133, 11,144, 72, 36,
- 16, 4, 1,166,102,205, 80,239,243,207,113,230,181,215,208,230,198, 13, 24,204,102, 40,149, 74,108,217,178,197,172,211,233,118,
-149,182,220,112, 22, 90, 26,141, 6,129,129,129, 14,161,225,139, 74, 23, 51,111, 73,254, 15,226,230, 60, 24,192,151, 76, 45, 86,
-168,206,126, 57,132, 16,232,245,122,135, 83,167, 47, 86, 71,231,174, 67,231, 12,200,113, 28,130,130,130, 28,133,135,104,209,242,
-213,154,231,109, 66, 82,181, 90, 29,112,241,226,197, 74,226,244, 19,153,153,153,104,223,190,253,229,127,189, 73, 75, 0,204, 86,
- 27, 10,245, 6, 20,234,117,101, 70, 43,166,181,239,191,255, 30, 87,175, 94,133,217,108,198,204,153, 51,239, 18, 88,165,113,134,
-119,147,174,174, 54,104,208, 64,120,242,201, 39,113,240,224, 65, 40, 20, 10, 11,165,180,212,243, 95, 9, 84,128,217,106,133, 65,
-175, 71,161, 86,251, 95, 49,102, 58, 84,245,249,243,231, 97, 50,153, 48,117,234, 84,219,145, 35, 71,118, 2,120,201,254, 13, 57,
- 0, 67,218,180,105, 51,173, 91,183,110, 65,132,144, 87, 40,165,223,149,148,207, 45, 86,187,104, 47,195,247, 40,166, 37, 79,101,
-210,189, 76,179,226, 92,177, 10,130,128, 23,158,127, 30, 29, 99,242,209,167, 97, 56,180,119, 46, 67, 29, 24, 14, 18, 84, 1,115,
-230,253,138,179,215,124,118,197,164, 0,240,100,155, 94,168, 91,253,238,233,193, 90,118, 40,106,147,237,253,227, 48,210, 50, 83,
- 74, 29,119,173, 86,235,209,114,229,171, 69, 75,228, 20,167, 89,145, 74,165,168, 95,191, 62,170, 84,169,130,157, 59,119,162, 65,
-131, 6,184,114,229, 10,174, 92,185,130, 27, 55,110,224,244,233,211,200,201,201, 41,245, 55,250,121,235, 42,228, 20,100, 67, 46,
-147, 35, 59, 55, 19, 55,147,175, 35, 50, 52,234,190,191,187,136,106,221, 62, 0, 0,196,132, 7,150, 74,104, 57,115,126,244,209,
- 71,119,137,247, 50,152,178,231,176,151,253,210,222,255,208,192,123,176, 18,233, 67, 66, 66, 84,206,253,171, 28,199, 33, 48, 48,
-144,204,158, 61, 91,194,113, 28,252,253,253, 17, 24, 24, 8,209, 92,232, 13,114,185, 92, 95,161, 66, 5,149,152, 16,197,140, 24,
- 16, 16, 32,153, 61,123, 54,249,234,171,175, 60, 90,185,188,248,104,205, 29, 58,116,232,115, 73, 73, 73,193, 17, 17, 17,184,115,
-231, 14,228,114,121, 81,230,104,215, 14,173,174, 93,131,185,200,231, 8,151, 46, 93,194, 23, 95,124,161, 53, 26,141,115, 75,251,
-162,252,252,252, 16, 26, 26,234,232, 50, 20, 45, 58, 78,162,209, 39, 23,204,146, 76,244, 98, 11,240, 94,186,144, 92,197,214, 75,
- 47,189, 84, 76,116,249, 10,153, 76,102, 21,103,126,231, 56, 14,102,179, 25, 13, 26, 52, 64,122,122,186, 35,211, 56, 91,242,124,
- 17, 90,222, 38, 36,229,121, 30, 38,147, 9,173, 91,183, 6, 33, 4,159,126,250,233,227,209, 29, 41, 8,196,207, 47, 20, 49, 49,
- 85, 17, 30, 97,128, 32,148,221,170, 50, 86,171, 21,163, 70,141, 42,102,193, 18, 71, 54,138, 93,255,148, 82, 88, 44,150,123,158,
-252, 85,204,215,247, 51,127, 28, 5, 28, 93, 94, 90,173,225, 95,247, 9, 35, 34, 34,154, 18, 66, 54,184, 28,206, 6, 48,205,221,
- 12,238,118, 56, 62,244,237,219,183,209,165, 75, 23,252,246,219,111,146,159,126,250,169,195,198,141, 27,207, 85,170, 84,233,246,
-128, 1, 3,202,189,248,226,139,138,214,173, 91, 35, 51, 51, 19, 13, 27, 54,156, 2,160, 4,161,101,127,143, 6, 35,180,218,178,
-183,142,150,212,224,187, 31, 1, 55,121,242,123,232, 24,157,139,222,245, 2,177,108,211, 62, 12,169,175, 2, 76,138, 82,243,137,
- 97, 9,137, 73, 64,133, 90, 77,239, 58,175, 8, 40,234,178,171, 80,171, 41,184,219, 87, 74, 29,119,231, 48,187,150,151,247, 98,
-209,115,126,159, 35, 71,142,196, 91,111,189,133,206,157, 59,227,202,149, 43,216,189,123, 55,174, 92,185,130,113,227,198,161, 86,
-173, 90,168, 87,175, 94,169, 56, 55,110, 95,139,252,194, 60,112,132, 67,118, 94, 22, 12, 70, 61, 38,140,154,124,223,223, 93,196,
-245,237, 51, 1, 0,235,182, 29,191,103,206,119,222,121, 7,169,169,169,197, 44, 89,247,227,151,245,111,135, 91,161,149,149,149,
-229,182, 31, 48, 60, 60, 60,173, 83,167, 78, 17,119,238,220,129,159,159,159, 87,145, 69, 8,233, 40,206,181,145,154,154,234,150,
-211,223,223,223,220,169, 83, 39,105,116,116,116,177,209,134, 26,141,230,174, 76,230,202,105,175, 4, 10, 8, 33, 47,180,104,209,
- 98,217,239,191,255,174,174, 82,165, 10,242,243,243, 65, 41,197,119,223,125,135,177, 99,199, 66,169, 84,226,210,165, 75,232,217,
-179,167, 78,167,211,189,224, 60,135,150, 59, 78, 79, 45, 52,113, 86,124, 55, 34,171,196,184, 59,103,214, 5, 11, 22, 96,198,140,
- 25,120,251,237,146, 93, 61,150, 46, 93, 10,184,116,243,185,227,164,148, 98,206,156, 57,101,198,153,149,149,245,157,139, 53,234,
-211, 62,125,250,240,183,111,223, 46, 38,174,156, 55, 55, 5, 83, 49, 78,111, 19,146, 74, 36, 18, 68, 70, 70, 98,250,244,233, 8,
- 13, 13, 69, 84, 84,212, 93,150, 24,111,223,232, 30, 43,131, 7,202,105,163,194,177,143,103,189,215,242,219, 21, 27,165, 10, 57,
-112, 96,247, 58,228,231, 20,239, 78, 50,154,255, 30, 74, 45,111,208, 1,166,227,127,248, 20, 78,163,209,136,143, 62,250, 8, 31,
-124,240, 1, 62,248,224, 3, 95,190,251,125,197,221, 23,177,229,150, 83,160, 68,173, 9,134, 82, 19,131,154,181,130, 33, 80,235,
- 35,245,141, 60,224,200,225,195,135,123,134,134,134, 34, 41, 41, 41, 92, 42,149,246, 44,102,174,210,235, 81,161, 66,133,170, 0,
-154,123,227, 28, 55,110,156,241,221,119,223, 85, 12, 26, 52, 8,125,250,244,193,160, 65,131, 20, 50,153,172, 50,165, 20,102,179,
- 25, 73, 73, 73,248,227,143, 63,144,145,145,113,161,164,112, 10,148, 18,149, 58, 8, 74, 77, 52,106,214, 14,130, 32, 88,203, 36,
-238, 98, 37,232,106,205, 42,229,132,212,110,203, 58, 0, 56,242,199, 6, 76,126,173, 54,190,219,124, 8, 11, 15, 3,117,131,210,
- 81, 51, 60, 3, 66,198, 5,188, 57,164, 17,230,252,112, 20, 0,176,123,151,215,111, 84,226,252,200, 6,189,249,190,226,238,108,
-185,114,126,142, 55, 31, 45,119,156, 98, 35,177,160,160, 0,185,185,185, 88,182,108, 25,158,125,246, 89,164,167,167,227,198,141,
- 27,184,124,249, 50,126,252,241, 71,199,104,246,210,126,163, 55,158,127, 7,239,206,121, 29, 20, 20,213, 42,213,196,196,209, 31,
-160,113,221,102,247,253,221, 93,225,205,154, 85, 18,231,252,249,243,239, 41, 45,253,167,132, 86, 73,173, 10,142,227, 16, 22, 22,
-230, 72, 36,206, 9,240, 94, 90,190, 18,137, 4, 86,171,213,225,251, 35,110, 0,208,163, 71, 15,252,242,203, 47,190,140,164,248,
-157, 16,242,191, 26, 53,106,124, 51,101,202, 20,191, 54,109,218,240, 49, 49, 49,104,220,184, 49, 46, 93,186,132,205,155, 55, 91,
- 22, 47, 94,172,213,233,116, 35, 40,165,219,238,165,124, 18,151,180,113,222, 74,211,234, 49,155,205,183,175, 92,185, 18, 61,103,
-206, 28, 9,199,113,152, 63,127,190, 35, 83,138, 19,190, 58, 99,247,238,221, 86, 65, 16, 74,236,170,177, 88, 44,183,175, 92,185,
- 18,253,201, 39,159, 72, 8, 33, 14, 78,142,227,224,188,128,115,105, 56,221,137, 76,113, 96,132,187,205, 93,216,221,125,227,146,
- 38, 36,229,121, 30,151, 46, 93,194,228,201,147, 65, 8,193,186,117,235, 30,139,204,117,250, 66,230, 87,245,106, 70, 4,247,120,
-170,101, 29, 16, 2,179,233,238,217, 16,252,114, 10, 29, 34,171,207, 39,171,240,211, 27, 3,125, 17, 61, 87,247,238,221, 27,242,
-209, 71, 31,241, 18,137, 4,243,230,205, 43, 54,105,176,235,119,223,179,103,143,245, 94,186,253,196,252,108, 54,155,161,215,223,
-155, 21,133, 82,186,127,230,135,239,118, 90,254,253,175, 82, 66, 76, 56,176,107, 29,242,114,221,187, 51,200,165, 60,190, 90,182,
-222, 42,147, 74,110,255,195,159,238,179,222,189,123, 15, 90,180,104, 81, 77,119, 39,111,223,190, 13, 65, 16, 74,114,174,185, 97,
- 48, 24,144,156,156, 12,157, 78,183,118,210,164, 73,230, 95,127,253,245,185,167,159,126, 26,245,234,213, 67,116,116, 52,238,220,
-185,131,171, 87,175, 98,217,178,101,116,223,190,125,107, 1,140,241,242, 30, 55,204,250,240,221, 97,203,126,248, 85,206, 17, 51,
- 14,236, 94,135, 60, 23,209,126,183,117, 90,138,175,191, 91,111,150,201,164, 23,189,149,235,206,214,172,178,172, 24,123, 14, 29,
-141, 62, 11, 22,162, 98,227, 46,152, 53,187, 35,190,254,176, 63,230, 62, 41,131,121,205, 16,212,237,183, 28, 43,167,118, 5, 0,
-196,124,237,163,181,132,151,225,150, 27,139, 85,110,158,210, 46,110, 74,103, 53, 21,227, 94, 82, 25, 94, 90,139, 22,199,113, 72,
- 72, 72, 64,197,138, 21,209,162, 69, 11, 52,104,208, 0,237,218,181,195,169, 83,167,112,234,212, 41,140, 27, 55,206,163,200,242,
-229, 27,181,109,222, 9,135, 90, 93,188,239,111,227,250,221,203, 2,190,164,165,209,163, 71, 3,192,127,202,186,197,223,203, 75,
- 20, 19,230,253, 46, 73, 35,114,154, 76, 38, 71,151,156,243,188, 76,162,115,188,143, 35,250,182, 17, 66,106,189,247,222,123,175,
- 41,149,202,118, 58,157,174,170,221, 34,115,201,104, 52,238,208,235,245,243, 40,165,185,247, 19, 86,231,233, 28,220, 5,161,164,
-123,115,114,114,186,116,233,210,101, 27,207,243, 9,174, 11,254,186,203,200,130, 32,220, 72, 75, 75, 43,113,136,123, 86, 86, 86,
-151,206,157, 59,187,229,116, 87, 64,248,194,233,238,251, 8,130,224, 81,100,249, 82, 16,121,155,144,148,231,121,104, 52, 26,252,
-252,243,207, 8, 11, 11,123,172, 50,216,201,115,233, 31,149,116,190,109,152, 98, 23,128,240, 62,159,172,186,181, 51,211, 20,223,
- 54, 76,126,243,167, 55, 6,150, 47,233,158,204,204,204,206,207, 62,251,236,111, 60,207, 39,184,190,127,119,223,194,106,181, 94,
- 79, 77, 77, 45,245,116, 9,148, 82, 92,188,120, 81, 24, 57,114,100,102, 70, 70, 70,255,123,137,255,196,201, 11,231,206,152, 50,
- 54,244,201, 78, 77, 27,131, 3, 76,158,157,127, 41, 1, 40, 47,149,220, 30,255,246,252,231,255,201,111, 70, 41,205, 39,132,180,
-232,219,183,239, 24, 20, 13, 13,191, 75, 72, 1, 88, 80, 2,197,130,114,229,202,213,150, 72, 36, 10, 0,147, 41,165, 55, 9, 33,
-159,237,219,183,175, 51,128, 39, 36, 18, 73,180,205,102, 75, 70,209,154,143,171, 40,165, 39,189,167,163,180, 23,235,213, 8,143,
-123,178,227, 19, 93, 64, 8, 53,153,140, 94, 26, 72,160,160,148,202,100,210,139,135, 79,166,212,245,102,173,183,175,192, 81,230,
- 93,246, 99,198,140,193,152, 49, 99, 28,233,233,211, 79, 91, 97,237,153,189,232, 87, 55, 9,198, 47, 90,130, 4,148,247,185,193,
- 7, 0,239,188, 55,178, 44, 45,155,197, 6,105,149,149,143,150, 68, 34, 65,102,102, 38, 46, 93,186,132,180,180, 52,232,116, 58,
-156, 63,127, 30,102,179, 25, 57, 57, 57,168, 93,187,246, 61,135,179,172,190,209, 63,201,249, 95,236, 62, 44,149,208,178, 90,173,
- 73,222, 86, 89,183, 88, 44,165, 26,149, 36,149, 74, 13, 85,170, 84, 33,238, 70, 39,136,255, 53, 26,141,222,199, 2, 50, 23,192,
-100, 0,147,237,235, 89, 33, 59, 59,251,190,213,160,205,102, 75,137,143,143,151,120, 18, 48,246,119,147,230, 37,108, 90, 0,205,
-202,184, 66, 40,115, 78, 55,223, 71, 91,189,122,117,135,175,151,235,156, 40,246,197, 86, 75,244,206,245, 54, 33,169, 86,171,189,
-211,165, 75, 23,155,243,121,231, 9, 77, 31,107, 16,122,179,235,160,231,226,119,102,154,226, 1, 64, 20, 91,240,236,255, 3, 74,
-169, 30, 64,155, 7, 29,180,107,215,174,153,158,120,226,137,239, 11, 10, 10, 70, 83, 74,239,217,155,255,237,247, 63,125,251,223,
-246, 89, 40,165,249, 0,102,220,227,189, 55, 1,180,119, 57,118, 18,192,201,251, 9,211,201,243, 25,101, 62,183,152,213,106, 77,
-170, 88,177, 98,169, 44, 55,222,202,120,139,197, 82, 98, 61,113, 22,129,120,251, 32, 80,180, 76, 92,150, 79,156, 6,131, 33,187,
- 89,179,102,210, 82,198, 45,221,215,184, 71, 71, 71, 35, 38, 38,198,241, 43,194,245,184,183,112, 90,173,214,164,184,184, 56,132,
-133,133,121,156,241,221,213, 39,203, 23,206,178,254, 70, 37,113,198,196, 44, 47,115,206,178,210, 11,255, 9,161, 37,174, 97, 88,
-150, 72, 75, 75,123, 32,107,174,208,178, 48,183,253,109, 57,106,140,255, 40,178,178,178, 66,239,151,195,219,132,164,105,105,105,
-237,254,171,239,119,103,134,105,248, 93,199,236,162,235,159,134, 86,171, 45,239,109,218, 1, 79,232,215,175,159, 13, 12,143, 60,
- 50, 51, 51,203,188, 76,127, 16,245, 68,118,118,118,157,255,106,220, 31, 68, 56,255, 45,156,143, 11,152,151, 26, 3, 3,131,167,
-198, 10, 19, 75, 12, 12, 12, 12,247, 9, 2,160,163,135, 66,214,231,145, 62,132,144,142,247, 80,136,111,103,156,140,147,113, 50,
- 78,198,201, 56, 25,231,127,139,211, 27,119, 89,143, 52,126, 20, 90,173, 15,108, 3,208,145,113, 50, 78,198,201, 56, 25, 39,227,
-100,156,140,243,191,186,177,174, 67, 6, 6, 6, 6, 6, 6, 6,134, 7, 4, 38,180, 24, 24, 24, 24, 24, 24, 24, 24,152,208, 98,
- 96, 96, 96, 96, 96, 96, 96, 96, 66,139,129,129,129,129,129,129,129,129,129, 9, 45, 6, 6, 6, 6, 6, 6, 6,134, 7, 7, 82,
-134,243,122, 50, 48, 48, 48, 48, 48, 48, 48, 48,184, 10,173,205,155, 55, 59,212, 86,183,110,221, 8,123, 45, 12, 12, 12, 12, 12,
- 12, 12, 15, 19,143,171, 22,225,153,192, 98, 96, 96, 96, 96, 96, 96,120, 20,240, 56,106, 17,206,157,146,100, 96, 96, 96, 96, 96,
- 96, 96,120,216,120, 28,181, 8,247, 56,171, 72, 6, 6, 6, 6, 6, 6,134,127, 15, 30, 71, 45,194,124,180, 24, 24, 24, 24, 24,
- 24, 24,254,113,252,155,181, 8, 33,132, 2, 0,165,148,136,251,142,255,108,212, 33, 3, 3, 3, 3, 3, 3, 3,195,189, 9, 44,
- 74, 41,241,244,203,132, 22, 3, 3, 3, 3, 3, 3, 3, 67, 25, 9, 46,241, 63,240,183,117,139,123,192, 15,238,200, 56, 25, 39,
-227,100,156,140,147,113, 50, 78,198,249, 56, 67, 20, 85,226,127,231,125,158,189, 30, 6, 6, 6, 6, 6, 6, 6,134,251, 22,159,
-212,157,240, 98, 66,139,129,129,129,129,129,129,129,225, 62, 69,150,179,184,114,222,103,107, 29, 50, 48, 48, 48, 48, 48, 48, 48,
- 60, 32, 48,139, 22, 3, 3, 3, 3, 3, 3, 3,195,125, 64, 28,105,232,188,207,132, 22, 3, 3, 3, 3, 3, 3, 3, 67, 25,138,
- 45,119,199, 9,128,142, 30,110,216,238, 43,249,189,140, 62,240,198,207, 56, 25, 39,227,100,156,140,147,113, 50,206,199,143,211,
- 27,119,105,244,199,163, 2, 66, 72, 27, 0, 59, 1,180,181,255,254, 45,188, 40,165, 15,108, 3,208,145,113, 50, 78,198,201, 56,
- 25, 39,227,100,156,140,243,113,222,138,228,212,223,191,206, 27,115,134,103,240,166,210,121, 66, 8,127,175,231, 31, 22, 39, 3,
- 3, 3, 3, 3,195, 63, 92, 95, 82,241,215,217, 95,139,247,112,113,101, 0,111, 3, 8,116, 58,124,152, 82, 58,211,229,186, 31,
- 0,168,157, 14,105, 1, 76,165,148, 94,241, 33, 76, 50, 59,191,194,190, 9, 0, 12, 0,140, 0, 10, 0, 88,216,103,251,199, 19,
- 77, 51, 0,221,237,255, 55, 81, 74, 15,148,230,252,195,226,124, 88,136,137,137, 81, 5, 7, 7,119, 62,126,252,184,252,252,249,
-243,216,179,103, 15,253,234,171,175,204, 57, 57, 57, 91, 83, 82, 82,244, 44,197, 60, 22,105,190, 11,128,137,246,221, 89,148,210,
- 45,247,201, 71,212,106,245, 56,141, 70,211, 85,161, 80,196, 88,173, 86,162,211,233, 82,180, 90,237, 54,171,213,250, 9,165, 84,
-184, 7,206, 94, 33, 33, 33,207, 85,171, 86,173,242,141, 27, 55,146, 83, 82, 82,126, 0,176, 6, 64,255,152,152,152, 33, 21, 42,
- 84,136,189,120,241,226,149,236,236,236,175, 41,165, 27,254,169,112, 50, 48,252,151,224,201, 63,203,163,208, 2, 48,153, 82, 58,
-196, 37, 35,222,117, 81,251,246,237,123,110,221,186, 85, 45, 8, 2,196, 77,165, 82, 89, 1, 12,247, 18,166,208,253,251,247,199,
-143, 30, 61,186, 79, 74, 74, 74,163,130,130,130, 38, 0,160, 86,171, 15, 69, 68, 68, 28, 89,176, 96,193,143,157, 59,119, 78,178,
- 11,174, 82, 89, 74,164, 82,233,179,193,193,193, 93,173, 86,107, 3, 74, 41,164, 82,233,241,156,156,156, 45, 22,139,229,107, 74,
-105,169,197, 27, 33, 68,206,243,252, 24,133, 66,209,197,106,181,214, 1, 0,158,231, 79, 27,141,198, 45, 86,171,245, 51, 74,169,
-233, 30, 56,149,114,185,124, 76, 64, 64, 64, 39,147,201, 84, 7, 0,228,114,249,233,252,252,252,109, 38,147,233, 51, 74,169,225,
- 17,168,112,120, 0,221, 41,165, 82, 0,144, 72, 36,189,154, 53,107, 22, 79, 8, 17,196,249, 65, 56,142,171,111,179,217, 56,251,
-245,221, 9, 33, 71, 40,165,214,210,112, 62,241,196, 19,229,120,158,167,246,153,116, 57,142,227,234,150,134,179,172, 16, 30, 30,
- 62, 67, 16,132,152,146,174, 9, 12, 12,108,116,252,248,241,106,171, 87,175,182,125,241,197, 23,185, 35, 70,140,240, 27, 61,122,
- 52,255,233,167,159,126, 6,224, 21,215,235,195,194,194,230,114, 28, 23,230,203,243, 5, 65,200,204,204,204,124,157, 21, 87,255,
- 56, 38, 46,222, 94,208,154, 82, 96, 76, 39,127, 14,192,125, 9,173,216,216,216,101,195,134, 13, 27, 84,167, 78, 29,158, 82, 10,
-139,197, 2,163,209, 88,237,192,129, 3,109,215,173, 91,215, 8, 64,255, 82,230,203,231,223,122,235,173,233,211,166, 77, 11,147,
- 74,165,196, 98,177, 84, 90,189,122,117,131, 23, 95,124,241,213,165, 75,151,150, 27, 48, 96,128,191,120,124,242,228,201,141, 9,
- 33,137,148,210, 79, 30,118, 56, 25, 24,254,131,141,180, 54, 40,238,163, 53,133, 82,250, 65, 73, 66, 75, 99,191, 49, 13,192, 97,
-209,162,229,122,209,159,127,254,185,145,231,121,209,162,213, 68,171,213, 70,186, 88,193,220,161,194,208,161, 67,155,173, 93,187,
-118,198,128, 1, 3, 82,213,106,117,149,167,159,126,186,128, 16, 34, 89,189,122,117,253,138, 21, 43,170,122,244,232, 49,180,125,
-251,246,111,252,246,219,111,123, 0,100,248, 24,201,154, 33, 33, 33,235, 63,250,232,163,248, 46, 93,186,200,194,194,194, 64, 41,
- 69, 74, 74, 74,236,230,205,155,159,156, 50,101,202, 27,132,144,222,148,210,115,165,120,113,141, 85, 42,213,218, 41, 83,166, 68,
- 63,249,228,147,124, 84, 84, 20, 12, 6, 3,206,159, 63,223,113,203,150, 45,173,151, 46, 93,250, 10, 33,164, 31,165,244, 72, 41,
- 56,155, 4, 6, 6,174,251,246,173,183, 34,155, 62,251, 44, 31, 18, 18, 2, 74, 41, 50, 50, 50, 58,238, 93,190,188,237,168,143,
- 62,122,133, 16,210,151, 82,122,248, 81, 74, 68,114,185,156, 91,177, 98, 69, 61,185, 92, 14, 0, 48,153, 76,168, 85,171,214,125,
-173,174, 46,149, 74,185, 79, 62,249,164, 1,207,243, 48,155,205, 66, 65, 65, 1,125,250,233,167,185,127, 40,147,196,165,164,164,
- 4,202,100, 50,183,231,109, 54, 27, 90,183,110,157, 32,147,201,240,201, 39,159, 88, 50, 51, 51,235, 47, 90,180,232,248,202,149,
- 43,195, 62,251,236,179,126,238,132, 22,199,113, 97, 73, 73, 73,110, 57,109, 54, 27,204,102, 51,172, 86, 43, 76, 38, 19,106,212,
-168,193, 74,170, 71, 3,241, 0,240,235, 41, 3, 0,132,220, 47,153, 70,163,169, 62,120,240, 96, 62, 35, 35, 3, 82,169, 20,102,
-179, 25,169,169,169,168, 85,171,150,228,251,239,191,175, 90, 90,190, 74,149, 42,141,152, 53,107, 86,248,175,191,254,106, 94,177,
- 98,133,169, 83,167, 78,210, 17, 35, 70, 4,180,110,221,186, 70, 92, 92, 28,247,205, 55,223, 24,183,109,219,102, 25, 58,116,168,
-124,230,204,153,225,155, 55,111,238, 1,224,147,135, 29, 78, 6,134,255, 32,118,186, 46, 42, 13,160, 68,161, 37,226, 48,165,180,
- 23, 0,200,100,178,250,229,202,149, 91,102,181, 90,163,236, 86,157, 84,169, 84,250,137,217,108, 62, 97,175,168, 54, 8,130,208,
-211,155, 37,107,232,208,161,205,126,251,237,183, 57, 7, 14, 28,200,203,202,202,138,218,184,113,163,225,141, 55,222,184, 1, 0,
-215,174, 93, 75,236,209,163, 71,236,216,177, 99,147, 58,119,238,188,160, 93,187,118, 47,239,216,177, 99, 27,138,186, 36, 75, 20,
- 89,181,106,213,218,191,123,247,110,255,160,160,160,226,170,174, 66, 5,188,252,242,203,178,158, 61,123, 86,236,208,161,195, 62,
- 66, 72, 43, 74,233, 25, 95, 4, 81,229,202,149,183,255,249,231,159,126,193,193,193,200,205,205, 69,106,106, 42,116, 58, 29, 2,
- 2, 2, 48, 96,192, 0, 89,155,150, 45,202,141, 29,247,202,118, 66, 72, 71, 95,196, 22, 33,164, 73,139,154, 53,183,175,156, 57,
-211,207,114,235, 22, 84, 42, 21, 10, 11, 11, 1, 0,254,254,254,104,148,144,192, 31, 93,190, 60,118,200,132, 9, 34,231, 67, 23,
- 91,132, 16,133,221, 12,106, 36,132,108,146, 72, 36,189,228,114, 57,215,171, 87, 47,108,223,190,157, 24, 12, 6, 30, 0,148, 74,
-165,181, 87,175, 94, 80,169, 84, 48,153, 76, 2,128, 77,158, 44, 79,238, 56,165, 82, 41,215,174, 93, 59,221,225,195,135,179, 69,
- 78,181, 90,109,105,215,174, 93,168, 92, 46, 87, 89,173, 86, 90, 18,231, 3, 18,147,184,122,245,106,177, 99, 5, 5, 5,200,200,
-200, 64, 86, 86, 22,140, 70, 35,114,115,115, 33, 8, 2, 81,169, 84, 25,130, 32,128,227,138,140,111,158, 56,101, 50, 25, 46, 93,
-186, 84,236,152,213,106,133, 86,171,133,209,104,132,217,108, 70, 65, 65,129,202,223,223,191,114,205,154, 53,147, 0,108,200,206,
-206,254, 36, 53, 53,245, 38, 43,183,254, 17,220,218,116,194, 80, 30,128, 9,192,245, 50,224, 19, 0, 96,207,158, 61, 72, 75, 75,
- 67,102,102, 38, 50, 50, 50, 16, 23, 23,135,123,233,142,187,122,245,234,226,218,181,107,147,179,103,207,110, 1,240,233,234,213,
-171,135,103,103,103, 79, 28, 63,126,124,200,199, 31,127,156, 61, 97,194,132, 89, 0,190, 91,189,122,245, 75,213,171, 87,239,122,
-225,194,133,165,255, 68, 56, 25, 24, 30, 0, 26, 3, 8,183,255,207,180,151,187,161, 78,251,167,236,249, 86,188,206, 4, 64,238,
-230, 87,132,184,159, 1,224,136,211,125,226,254,189,212,159,212,249,215,209,232, 6,128,205,155, 55, 83,113,115,119,115,100,100,
-228,184,246,237,219,207, 57,118,236, 88,141, 59,119,238, 4,223,185,115, 39,248,216,177, 99, 53,218,183,111, 63, 39, 50, 50,114,
-156,120,157,221,227, 30, 78,251,206, 67, 52,101,251,247,239,143, 95,191,126,253,172,237,219,183,231,213,175, 95,223,244,231,159,
-127, 90, 59,119,238,156, 14,192, 10,192,218,185,115,231,244, 29, 59,118,216,154, 54,109,170,250,237,183,223,110,239,219,183,111,
-238,218,181,107, 35, 1, 72, 60,112,130, 16, 34, 13, 10, 10,250,121,215,174, 93,119,137, 44,103,148, 43, 87, 14,155, 54,109, 10,
- 8, 10, 10,218, 64, 8,145,149, 16, 78, 16, 66,148, 74,165,114,221,142, 29, 59,252,252,253,253,145,158,158, 14,169, 84,138,136,
-136, 8,228,229,229, 33,245,206, 29,220,188,124, 25,156,201,132,121, 31, 78,243, 87,169, 84,107, 9, 33,114,111,156,129,129,129,
-235, 86,206,152,225,151,181,125, 59, 78, 78,159, 14,179,217,236,232,114, 53,155,205,216, 55,122, 52, 50,254,248, 3,223, 76,158,
-236, 23, 24, 24,184,142, 16,162, 44,137,179, 44,224,204, 73, 8, 25, 13, 32, 27, 64, 54, 33,100, 52,165,244, 64,173, 90,181,142,
-157, 63,127, 30,173, 90,181,194,154, 53,107,234,142, 31, 63,126,244,248,241,227, 71,175, 89,179,166,110,171, 86,173,112,254,252,
-121,212,170, 85,235,152,179, 47,149, 47,156,187,118,237, 66,251,246,237,115,214,172, 89,147, 56,121,242,228, 25,147, 39, 79,158,
-177,106,213,170,138,237,219,183,207,153, 63,127,190,177, 36,206, 7, 17,119,103, 75,147,243, 38, 8,127,215, 49, 49, 49, 49,233,
-235,215,175,199,128, 1, 3, 56,185, 92,126,103,224,192,129,138,189,123,247, 82, 0,155, 74, 19, 78,131,193, 0,189, 94, 15,173,
- 86,139,107,215,174,169, 62,250,232,163,150, 31,124,240, 65,165,237,219,183,199,190,253,246,219,163,194,195,195,143, 71, 69, 69,
-197, 63,236,184, 51, 78, 0, 64, 42, 0,179,189,113,119,243,126, 56, 59,116,232, 80,187, 82,165, 74,145,171,207, 6, 35, 71, 86,
- 13,130, 44, 8,130, 44, 8,182,208,198,184, 42,127, 10,229,203,151,143,244,247,247,111, 86, 26, 78, 74,233,138, 51,103,206, 60,
- 65, 41,253,128, 82,154, 69, 41,157, 51, 97,194,132, 41,132,144, 61, 19, 38, 76,152, 70, 41,157, 99, 63, 62,253,252,249,243, 77,
- 41,165, 43,255,137,112,178,180,196, 56,239, 5, 94,180, 72, 56, 33,100, 19, 33,100,211,164, 73,147,218, 1, 8,117,217,111,238,
-124, 29, 0,185,187, 95,113,115, 58, 30, 14,160,155,211,125,225,247,248, 62,136,235, 86, 76,104, 1, 64,183,110,221, 72,183,110,
-221,196, 19,135, 9, 33, 27, 1, 28,150,201,100,245,235,213,171,215,235,247,223,127,247, 15, 15,255,251,249,225,225,225, 88,187,
-118,173,127,205,154, 53,123,201,100,178,250, 0, 14, 7, 4, 4,108,132,155, 46, 70, 59,130, 70,143, 30,221,231,153,103,158,201,
-175, 95,191, 62, 0,228,158, 59,119, 78,221,180,105, 83,173,213,106, 37, 86,171,149, 52,109,218, 84,123,238,220, 57,181,197, 98,
- 41,104,220,184,177,166, 67,135, 14, 55, 94,127,253,245,161, 0,148, 37,196,111,240,236,217,179,227,130,131,131, 75,122, 1, 40,
- 40, 40, 64,100,100, 36, 70,143, 30, 29, 37,149, 74,159, 43,233,133,241, 60, 63,102,246,236,217, 17, 65, 65, 65,200,201,201, 65,
- 92, 92, 28, 76, 38, 19, 46, 93,186, 4,131,182, 16,150,130,124, 88,242,115,145,241,215, 21, 4, 73,121, 12,237,217, 61,146,231,
-249, 49, 94,172, 37, 99,190,158, 48, 33,210,116,227, 6,174,173, 89, 3,155,245,110, 67,141,213,108,198,233, 47,191,132, 33, 41,
- 9,179, 70,142,140,148,203,229, 99, 30,178, 37,235, 99, 74,169,138, 82,170, 34,132, 44,104,222,188,249,247, 42,149,106,244,204,
-153, 51,187,108,221,186,245,201,221,187,119,183,181, 90,173, 82,171,213, 42,221,179,103, 79, 43,131,193,192, 43, 20, 10,240, 60,
- 79,125,229,108,214,172,217, 50,149, 74, 53,106,201,146, 37, 93,118,236,216, 49,244,232,209,163, 99,108, 54,155,220,102,179,201,
-143, 30, 61,250,162, 94,175,151, 82, 74,109,158, 56, 31, 54,164, 82, 41,100, 50, 25, 84, 42, 21, 90,182,108,249,215, 87, 95,125,
-101,137,139,139,147,174, 91,183, 46, 56, 38, 38, 70,243,233,167,159,230, 22, 20, 20,204,246,149,207,108, 54,195,104, 52, 66,175,
-215,195, 96, 48,224,207, 63,255, 76, 24, 59,118, 44,111, 48, 24,108, 61,122,244,200,182, 88, 44,198, 9, 19, 38, 4,132,132,132,
-188,193, 26,176,255, 8,172, 0, 10,237, 66,203,232,156,150, 9, 33,117, 68,235,172, 47,200,205,205, 93,250,245,215, 95,199,113,
-138, 32,236, 53,117,197,143,194, 20,108, 13,252, 20,233,241,111, 34, 34,174, 18, 6, 13, 26, 20, 65, 41,253,180, 12, 42,188, 69,
-148,210,214,148,210, 5,247,114,255,131, 14, 39, 33, 36,222,207,207,111, 77, 64, 64,192, 94, 63, 63,191, 53,132,144,248,251,141,
-115,231,202,164, 99,175, 26,146,164,206,149, 8,237, 85, 67,146,212,185,114,233,231,122, 98,120, 52,225,162, 69,156,145, 65, 41,
-237, 78, 41,237, 62,107,214,172, 25, 78,233, 95,220, 87,249,152, 95,186, 83, 74,187,187,164,209, 77,101, 80,135, 82,215,205,161,
- 41,156,149,164, 24, 57,231,209,133,229,202,149, 91,182,108,217, 50,127, 87,210, 59,119,238, 32, 63, 63, 31,239,190,251,174,255,
- 51,207, 60,243,202,237,219,183,135,121, 9,135, 60, 53, 53,181,193,144, 33, 67,148,102,179, 57, 71, 16, 4, 46, 63, 63,159, 15,
- 12, 12,180,137, 23, 4, 6, 6,218,242,242,242,164, 90,173, 86, 98,179,217,140,207, 60,243,140,124,228,200,145,141,156, 45, 90,
-119, 73,220,240,240, 78, 93,187,118,149,123, 58,111,177, 88,160,213,106,161,213,106, 97, 54,155,209,178,101, 75,197, 87, 95,125,
-213, 25,192, 18, 79,247, 40, 20,138, 78,157, 58,117,146,102,103,103, 35, 48, 48, 16, 55,111,222,196,245,235,215, 97, 44, 44,132,
-185, 48, 31,230,194, 2, 88, 11,242, 65,243,243,144,117,229, 34,154, 86,175, 38,251, 65,161,232, 2, 96,174, 39,206,128,128,128,
- 78, 77,135, 15,231, 53, 26, 13,218, 14, 41, 26,103,240, 91,245,234,160, 54, 27, 4,155, 13, 54,171, 21, 93, 46, 93,130,197, 98,
- 1,199,113,104,156,157,205, 7, 44, 95,222, 9,192,156,127, 34,177, 43, 20, 10,126,197,138, 21,131,229,114, 57, 40,165,196,100,
- 50, 97,235,214,173,247,205,185,124,249,242,161, 34,167,217,108,166,181,107,215,190, 43, 67, 25,141, 70,250,168,100,122,185, 92,
- 14,165, 82, 9,179,217,140, 10, 21, 42,232,135, 12, 25,178,255,195, 15, 63, 44,207,113,156, 70, 38,147,253,158,149,149, 53, 35,
- 37, 37,229,154,175,124, 22,139, 5, 38,147, 9, 38,147, 9,122,189, 30,127,253,245, 87, 84, 66, 66, 2, 25, 61,122,180, 77,167,
-211, 37, 46, 92,184,240,234,214,173, 91,213,179,103,207,126, 26,192,203,172,216,125,120,176, 91,165, 3,203,135,242, 90,169, 4,
-133, 0,252,237,162,224,105, 66, 72,211, 26, 53,106, 4,159, 63,127, 62,135, 16,114, 16,192,143,148,210, 59, 37,241, 9,130, 64,
- 4, 65,192,139, 77,114, 49,186,153, 4, 22, 75, 30,242,242,242,112,243,230, 77,156, 59,119, 14,135, 14,157,187,167,112, 42,149,
-202,231,252,252,252, 58, 43,149,202, 10, 86,171,149, 43, 44, 44,188,169,211,233,182, 11,130,176,148,186,118, 43,248,128, 7, 21,
- 78, 17, 26,141,230,163,183,223,126,187, 69, 96, 96, 32, 78,156, 56,145,184,106,213,170,143,112,159,206,245, 74, 41,247,205,220,
-249,159,198,198, 70, 4,225,212,238, 95, 98,103,124,190,250, 27, 0,113, 44, 21,255,251,225,172, 69, 92,112, 4, 64, 55,251,104,
-244,238,247,145,207,239,235,254,146, 44, 90,174, 11, 75,223, 37,180, 60, 68, 12, 86,171, 53,202,217,146, 69, 41,197,157, 59,119,
-144,156,156,140,140,140, 12, 4, 7, 7,195,108, 54, 71,249, 82,207, 22, 20, 20, 52, 9, 13, 13,213, 73,165, 82,163, 94,175,135,
- 90,173, 22,164, 82, 41,181, 63,135,216, 71, 45,218,140, 70, 35,225,121,222,226,239,239,239,103, 52, 26,171,161, 4, 95, 50, 74,
-105,147,208,208, 80,183,231,140, 70, 35, 10, 11, 11,161,213,106, 81, 88, 88, 8,163,209,136,200,200, 72, 88,173,214, 6, 37, 54,
-105,173,214, 58,225,225,225, 72, 73, 73,129, 74,165, 66, 82, 82, 18, 76,133, 5, 48, 23, 20,192,170,205,135, 45, 47, 15, 66,126,
- 62, 4,109, 62, 44, 38, 29, 98,171, 84,135, 56, 34,209, 19, 76, 38, 83,157,208,208, 80,104,181,127,187,155, 81,187,192,178, 90,
-173,176,218,157,163,197,238,196,176,176, 48,136, 35, 18, 31, 6,236,254, 83,227, 57,142, 91,160, 80, 40,248, 81,163, 70,225,206,
-157, 59,197,210,196,168, 81,163, 28, 62, 89,173, 91,183,222,163, 84, 42,173, 25, 25, 25, 48, 26,141, 82, 95, 56, 43, 84,168,112,
-243,221,119,223, 61,108, 50,153,226, 98, 98, 98,130,140, 70,163,190,106,213,170, 49, 42,149, 42,210,100, 50,217, 26, 53,106,180,
- 84,165, 82, 89, 10, 11, 11,169,213,106, 37,143, 66,166, 39,132,128, 16, 82,244,141,172, 86,132,133,133,105, 51, 51, 51, 15,229,
-228,228, 12,190, 23, 62,139,197, 34,142,232,130, 94,175, 7,165, 20, 39, 78,156,128, 82,169,148,218,108,182,179, 86,171, 85, 45,
-149, 74,193,217,157,191, 24, 30,218,119,110, 91, 45, 72, 62,119,102,211,136,160,122, 61, 52, 90,181, 92,162, 21,110,214,171,240,
-237,199,231, 86, 61, 51,244, 57,255,169, 83,167,198,135,133,133, 41,175, 94,189,106,152, 54,109, 90,194,138, 21, 43,136,183, 70,
-208,173, 91,183,126,122,251,237,183, 67,186,118,237,154,168, 80, 40, 72, 94, 94, 30, 50, 50, 50,144,150,150,134,235,215,175,211,
- 83,167, 78,253,101, 52, 26,215,148, 38,156, 49, 49, 49, 95,141, 29, 59,246,153,134, 13, 27, 74, 69, 11,169, 86,171,173,191,107,
-215,174,158,191,253,246, 91, 43, 0,165, 78,151,183,111,223, 94,243,206, 59,239,104,158,122,234,169,106, 10,133,130, 43,139,112,
- 58,131,227,184, 72, 63, 63, 63,108,223,190, 29, 65, 65, 65,224, 56, 46,242,126,191,151,193, 44,196,198, 68,133,194,176,111, 46,
-170,133,199,195, 96, 22, 98, 89, 42,126,124, 44, 90, 30, 78, 53, 22, 45, 82, 94,196,146,126,226,196,137,111, 19, 66, 54, 77,156,
- 56,241,109,119, 22, 45,251, 95,155,243,117, 78,215, 27,203, 90,108,149,106, 82, 72, 65, 16,144,156,156,140,148,148, 20, 36, 39,
- 39, 35, 43, 43, 11, 28,199,149, 56,127,132,115, 24, 8, 33,194,182,109,219,130,247,239,223,175,109,220,184,113,174,232,255, 98,
-181, 90,137,197, 98, 33,118,191, 24,114,243,230, 77,217,222,189,123,131, 46, 92,184, 16,137, 34,135, 53,193, 75,228,238, 58, 38,
- 10, 44,231,205, 96, 48, 64,169, 84,250, 20, 87,177, 34, 60,113,236, 88,145,200, 42, 44,176,119, 25,230,193,150,159, 7,170, 45,
-128,220,102,129, 28, 20,196,160,243,249,253, 57, 67, 20, 89,102,187,208, 50,153, 76,176, 88, 44, 16, 4, 1, 86,171,245,161, 39,
-112, 74,233,226,250,245,235, 55,248,233,167,159, 70, 36, 39, 39,223,117,190,119,239,222,120,249,229,151, 49,118,236,216, 11,221,
-186,117, 59,245,203, 47,191, 96,204,152, 49, 16, 4,161, 30, 33, 36,143, 82,250, 91, 73,156, 19, 39, 78, 60,122,251,246,237,157,
-151, 47, 95, 30, 21, 17, 17,161,168, 83,167,206,149, 58,117,234, 72,126,250,233,167,200,231,159,127,254,216,147, 79, 62,121,227,
-143, 63,254, 8,217,190,125,187, 82, 16,132,134,132,144,228,127,122, 30, 45,163,209,232,176, 64, 25, 12, 6,152,205,102,160, 4,
-231,119,111,105, 83,252,182, 86,171, 85,228, 38, 63,253,180, 30,123,246,236,225,206,157, 59, 27, 55,106,212,104,209,225,158,149,
-184, 15, 71, 96, 61, 37,231,200, 23,227,235,133, 42,223,168, 27,170,149,243,164,240,210, 23,111, 23, 94, 47, 31,160,141, 44,167,
- 54,197, 37, 4,197,204,152,241, 97,244,133, 11, 23,141,239,190,251,238,249,129, 3, 7, 70,188,241,198, 27, 53,214,173, 91,215,
-138, 16,242, 53,165, 52,215, 3,175,114,248,240,225, 7, 35, 34, 34, 18, 62,255,252,243,244,219,183,111, 7, 91, 44, 22,141,217,
-108, 22,180, 90,237,117,189, 94,191,221,108, 54,111,167,148, 30, 43, 77,120,253,253,253,235, 14, 31, 62, 92,154,155,155, 11,251,
-104, 93,164,167,167,163, 69,139, 22,146,141, 27, 55,214,188,151,119,144,157,157, 61,151, 16,178,115,229,202,149,157, 3, 2, 2,
- 26, 42, 20,138, 40, 0,182,130,130,130, 52,173, 86,123,242, 94,194, 89,172,156,179,217,210,142, 29, 59, 86, 49, 32, 32, 0,183,
-110,221,130,205,102, 75,187,223,239,166,148,113,183, 79,239,222, 88,174,122, 88, 2,246,238, 63, 8,165,140,187,205, 82,243, 99,
- 15,209,135, 10,206, 2,202,141, 64,218, 63,115,230, 76,213,172, 89,179, 48,115,230,204,179,238, 44, 90,162,224,154, 57,115,230,
- 89,241, 58,167,235,119,223, 71,121,226,217,162, 85,130,130, 4,207,243,169, 25, 25, 25,193, 65, 65, 65, 14,129,149,146,146,130,
-148,148, 20,200,229,114,220,188,121, 19,114,185,252,142, 47,141, 16,149, 74,117,180,126,253,250, 85,175, 93,187, 38,155, 54,109,
- 90,185, 99,199,142, 5,180,104,209,162,182, 74,165,178, 81, 74, 97, 48, 24,184,243,231,207,251,205,153, 51, 39,182, 73,147, 38,
-166, 38, 77,154, 28, 95,189,122,181, 30, 37, 76, 94, 74, 8, 57,124,231,206,157,196, 10, 21, 42,136,162,173,152,184,114, 22, 92,
- 64, 81,151, 39,207,243,199, 75, 10, 40,207,243,167, 47, 93,186,212, 81,173, 84,192, 84,144, 15,115, 97, 62,172, 5, 5,176, 21,
-228,193,150,151, 7,104,243, 33,183, 90, 33,181, 89,160, 82, 42,145,156,148, 4,158,231, 79,151,196, 41,151,203, 79,167,165,165,
-117, 12, 10, 10,114, 84,162, 22,171,181,104,179,217, 96,178, 90, 29, 22, 45,169, 84,138,219,183,111, 67, 46,151,159,126,216, 41,
-153,227, 56,155, 56,133,131,135,120, 32, 50, 50, 82,104,218,180, 41,198,140, 25, 3,155,205,102,255, 12,164, 45, 33,100, 47,165,
-180,208, 19,167, 32, 8,220,249,243,231,251, 92,189,122, 85, 34,149, 74,185, 39,158,120,162, 86,203,150, 45, 77,114,185, 28, 50,
-153,140, 47, 44, 44,244,223,190,125,187,210, 98,177, 16, 59,231, 67,155, 71, 75, 76, 59,119, 53,141,236, 78,235,122,189, 30,133,
-133,133,200,201,201,225, 85, 42, 85,213,218,181,107, 31, 52,153, 76,107,172, 86,235, 55,215,174, 93,203,247,196,105, 23,102, 14,
-209, 37, 8, 2, 40,165,176,217,108,176, 88, 44,144,201,100,194,174, 93,187, 49,103,222, 71, 88,246,205, 10,218,179,103, 79,178,
-113,227, 70, 8,130,144,196,202,213,135,130, 79,114,127,252, 80, 9,171, 77,107,220,181,178,240,251,203,249,218,169,223,207, 63,
-106,146, 75,242, 27,181,137,172,147,152, 80, 85, 18, 20, 20,204, 45, 89,186, 32,235,135, 21,107,175,222,186,117, 43,255,179,207,
- 62,107, 86,181,106,213,192,147, 39, 79,198, 2,112, 43,180,212,106,117,229,231,158,123,110,120, 78, 78,142,108,217,178,101,171,
-239,220,185,115, 20,192, 57, 74,169,214,169,236,234, 70, 8,249, 14, 69, 35,159, 34,237,229,220, 94, 74,233,180,146,218,107,132,
- 16,236,216,177,227,174,209,129,194,253,169,243,160, 74,149, 42, 13,184,118,237,218,158,212,212,212,190,110,242,253,212, 42, 85,
-170,116, 57,123,246,236, 20, 74,233,175,165, 33,214,233,116, 19,214,174, 93,251,177, 68, 34,137,177,217,108, 41,122,189,126,194,
-125, 91,180, 44,194,200,153, 75, 86,125,169, 55,217,202,171,228,146, 91, 6,139,240, 60, 75,202,143,181, 53, 11,176,251,104,137,
-255, 1, 16,151,253,147,246,255, 38,167,107, 51,156,172, 88, 38, 23, 43,152,187,115, 25,184,199,201,210,221,141, 56, 20, 69,151,
-167,153,225, 39, 1,104, 2,224,176, 84, 42, 93,240,204, 51,207,204,249,225,135, 31,252,243,243,243,145,150,150,134,244,244,116,
-240, 60,143,128,128, 0, 44, 94,188, 88,159,150,150,182,192,249, 30,215, 25,228,197,188, 17, 22, 22,118,116,197,138, 21, 81, 95,
-124,241, 5, 63,108,216,176,155,221,186,117,171,182,120,241,226,107, 50,153,140,218,108, 54, 98, 52, 26,201,139, 47,190, 88,113,
-222,188,121, 55, 36, 18,137,122,192,128, 1, 68,163,209, 28, 70,145,131,170,251, 55,159,145,177,237,231,159,127,238,243,250,235,
-175, 43, 76, 38,147, 91, 75,150,120, 44, 40, 40, 8,251,246,237, 51,229,228,228,108,245, 98,197,216,246,251,175,155, 91,255,111,
-224, 64,153,165, 32, 31,150,130,124, 88,243,243, 97, 43,200, 5, 41,204,135,212,102,133, 74, 38, 32, 42, 78, 9,171,222, 15,155,
-143,156,180, 24,141,198, 18, 39, 54,204,207,207,223,182,119,217,178,182, 77,226,227,249,125,227,198,193,108,177,224,169, 75,151,
- 28,226,202,108, 54, 99, 67,157, 58,176, 17,130,122, 47,188,128, 43, 86,171, 53, 63, 63,127,219,163,152, 25, 78,157, 58,149, 62,
-100,200,144, 99,130, 32, 52, 40,141,117, 71,132,159,159, 95, 65, 97, 97, 33, 50, 51, 51,109, 89, 89, 89, 6, 0, 72, 79, 79,207,
-217,184,113,227,121, 65, 16,154,220, 11,103, 89,192, 98,177,220,101,141,178,217,108, 69, 86,199, 34,203,129,124,243,230,205,173,
-207,159, 63, 47, 59,115,230, 12,246,236,217, 83,239,135, 31,126,152, 20, 31, 31, 95,231,230,205,155,169,222,196,155,187, 73,127,
- 97,247, 63, 92,189,114, 13, 94,122,233, 37,146,154,154,138, 31,127,252, 17,222, 38, 79,101, 40, 51,104, 97,181,169, 76,187, 86,
- 22,118,251,245, 86,193,129, 59,250,105, 0,182, 80,189,149,150, 43, 87,238, 84,195,134,193, 97, 0, 96, 52,216,162, 42, 87,174,
-220,134,231,121,185, 61, 13, 55, 12, 13, 13, 93, 12,160,165,155,242, 83, 50,112,224,192,166, 17, 17, 17,245,127,251,237,183,147,
-119,238,220, 57, 75, 41, 61,228,122, 93,197,138, 21,223,189,112,225, 66, 99,169, 84, 74,188,164, 17, 0, 64,219,182,109,171,198,
-199,199,135,254,122, 57, 16,249,178, 74,160,146, 60,128, 87,194, 22, 84, 23, 55,101, 53, 16, 23,119, 48, 52, 40, 40,168, 94,110,
-110,238,201, 82, 86, 16,237,250,244,233,243,205,178,101,203,226,218,180,105, 67, 9, 33,156,235,148, 14, 21, 43, 86,236,124,224,
-192,129, 6,207, 63,255,252,231,246,209,195, 62, 59, 15, 83, 74,111, 2,232, 87,150, 31,109,235, 21,186, 29,246, 57,207, 24,254,
- 51, 56,242,128,174, 45, 19,220,203,204,240, 77, 4, 65,232,201,113, 28,204,102,243,204,200,200,200, 13, 3, 6, 12,232, 61,105,
-210, 36,191,208,208, 80,135, 37,107,241,226,197,250,235,215,175,175, 51,155,205, 39, 8, 33,147, 83, 82, 82,122,198,196,120,172,
- 31, 10, 22, 46, 92,184,170, 71,143, 30,195, 94,120,225, 5,125,157, 58,117, 2,170, 85,171,166,219,191,127,191, 95,167, 78,157,
-242, 37, 18, 9,221,183,111,159,127,197,138, 21, 13,132, 16,197, 31,127,252,145,117,240,224,193,138, 51,103,206,252, 26, 69,195,
-173, 61, 97,229,244,233,211,223,237,217,179,103,197,208,208, 80,228,231,231, 23, 19, 91,226,127,165, 82,137,212,212, 84,172, 95,
-191,254,142,197, 98,249,218,139,101,227,179, 79, 23, 47,121,165, 93,211, 39, 98, 3,212, 42,164, 38,221,132, 45, 47, 7,208, 22,
- 66,110,181, 64, 37,167,136,173,164, 6, 47,209,224,106,106, 33,150,237, 63,146,106,181, 90, 63, 43,137,211,100, 50,125,246,242,
-188,121,175, 28, 88,178, 36, 54,190,127,127,156, 91,190,220,209, 85, 40, 10, 45, 27, 33, 40,223,161, 3,184,192, 64,204,248,252,
-243, 52,147,201,244,217,195, 78, 44,130, 32, 72, 76, 38, 83, 73,241,128, 32, 8, 73,231,206,157, 91, 69, 8, 41, 32,132,180,181,
-159,218,233,206,154,229,204,201,113,156, 80,163, 70,141,159, 34, 35, 35,251, 0,208,214,168, 81,227, 39,133, 66,209,222,100, 50,
- 61, 33, 8, 66,210,137, 19, 39,214, 19, 66, 82, 9, 33, 98,171,227,161,206,163,101,177, 88, 48,121,242,100,204,154, 53, 11, 19,
- 39, 78,116,196, 87,236, 62,204,205,205, 77,216,187,119,175,108,215,174, 93,244,243,207, 63,207, 26, 54,108, 88,208, 11, 47,188,
- 16,244,197, 23, 95,188, 6, 96,130, 39,206, 9, 19, 38,224,243,207, 63,199, 75, 47,189,116,183,202,146, 72,132,164,164,219, 48,
- 24, 12,116,225,194,133, 41, 82,169, 52,248,235,175,191, 86, 61,255,252,243,132,149,171, 15, 5,239,168,134,188,247,170,189,140,
- 89, 64, 41,221, 41,158, 8, 8, 8, 80,253,244,211,207, 60, 0,172, 91,187, 94, 74, 41, 13, 20, 39,152,253,254,251,239,149, 45,
- 90,180,136,240, 80,224,218,148, 74,165,113,246,236,217,161, 35, 71,142,124,242,207, 63,255, 12, 38,132, 52, 5,112, 20, 64,154,
- 93, 92, 71, 0, 56, 23, 22, 22, 22,176,122,245,234,216,206,157, 59,107,188, 5,180,160,160,224,235, 85,171, 86, 85,152,183, 55,
- 16,191,106,251,224,182,208, 31, 52,136, 34, 36,162, 0, 53,252,110, 97,240,224,193, 49, 11, 22, 44,248, 18, 64,195, 82,136,172,
-193,189,123,247,158,181,108,217,178,152,145, 35, 71,166, 30, 63,126, 60, 13,192, 50, 55,130, 47,243,153,103,158,185,179,124,249,
-242,104, 74,233, 18, 66,136,156, 82,186,142, 37, 31, 6, 6, 71, 94,106,131,162, 25,225,239, 18, 95,196,157,127, 19, 33,100,131,
-213,106,237,201,243,252, 70,231, 9, 75, 35, 35, 35, 95, 49,153, 76,209,132, 16, 42,147,201, 82,211,210,210, 22, 56, 79, 88,154,
-148,148,212, 51, 46, 46,206,113,143,125,210, 77,231,185, 54, 2,158,122,234,169,142, 7, 14, 28, 88,180,105,211,166,244,130,130,
- 2,191,181,107,215,170,102,205,154,117, 83, 16, 4,250,214, 91,111,197,119,233,210, 69,103,179,217,238,188,240,194, 11, 21, 19,
- 18, 18, 94,184,112,225,194,118,103,161,229,134, 19,132,144,154,149, 42, 85,218,183,110,221,186,128,160,160, 32,164,167,167, 35,
- 59, 59, 27, 90,173, 22, 54,155, 13, 82,169, 20, 25, 25, 25,152, 54,109, 90,126, 74, 74,202, 93, 19,150,122,224,108, 82, 33, 54,
-118,219,130, 41,147,253,131,120, 14, 89, 23,207,195,154,147, 5,169,213,130,114, 53, 3, 33,147,171,112,229, 82, 1, 94, 91,185,
-190,224, 86,118,238, 93, 19,150,122,226,108, 84,185,242,246,207,199,143,247, 51,220,190,141,232,103,159,133, 78,167,131,217,108,
- 6,199,113,248,107,193, 2,200,194,195,241,238,234,213,218,179,183,110,117,112,157,176,212, 29,103, 25, 36, 14, 7, 39, 33,100,
- 52, 33,196,225, 12,223,187,119,239, 98,215,254,252,243,207, 88,178,100, 9,140, 70,163,149, 82,250, 10,165,116, 49, 33,196,207,
-158,160, 10,189,113, 86,168, 80,225, 86,173, 90,181,142,216,108, 54,222, 46, 50,232,185,115,231, 26, 94,191,126,189,156, 11, 39,
-111,231,180, 62,172,184,135,134,134, 46,248,237,183,223, 42, 68, 68, 68, 16,231, 25,219,237, 66, 17, 0, 48,102,204,152, 14, 7,
- 15, 30, 84,212,175, 95,223,152,153,153,217, 56, 60, 60,252,207, 21, 43, 86,132, 13, 24, 48, 32,229,236,217,179,177,174,156, 97,
- 97, 97,115,214,173, 91, 87,169, 82,165, 74,156,104, 21,115,237,158, 28, 49, 98, 68,199, 21, 43, 86,200,251,244,233, 99,212,106,
-181,145,254,254,254, 87,215,173, 91, 23,214,171, 87,175,212,179,103,207, 70, 63,140,184, 51, 78,247,168, 85,171,214,149,179,103,
-207, 86, 18,247,245,122, 61, 50, 50, 50,144,153,153,137,160,160, 32,116,234,212,233,175,235,215,175, 87,114,199, 73, 8,169,223,
-175, 95,191, 41, 95,126,249,101, 71,141, 70, 35,219,189,123,183,118,251,246,237,134,155, 55,111, 90, 45, 22, 11,141,142,142,230,
- 91,182,108,169,236,218,181,171, 70,161, 80,112,239,189,247, 94,230,135, 31,126, 24, 70, 8, 89, 41, 46,127,230,202,217,160, 65,
-131, 67,191,255,254,123, 19, 66, 8, 36, 18, 9, 76, 38, 51,114,115,115,145,156,156,132,115,231,206,225,192,129, 3,216,186,117,
-235,201,194,194,194,250, 62,230,247, 80, 0,187,141, 70, 99, 53,185, 92,238,179,176,183,217,108,224,121,254, 34,128,206,148,210,
- 36,150,150, 24, 39,195,223,254, 89,165,114,134,183, 11,176, 38,132,144, 13,246, 67,135, 93,167,112, 32,132, 76, 34,132, 76,118,
-178,130,121, 11, 75,254,111,191,253,182,167, 99,199,142, 99, 58,116,232, 48,175,115,231,206,119,238,220,185,147, 56,119,238,220,
- 56,171,213,106, 62,119,238, 28,119,245,234,213,155, 71,143, 30,173, 84,165, 74,149, 23, 46, 92,184,176,203,139, 53, 75, 12,235,
- 57, 66, 72,139,118,237,218,173,127,225,133, 23,202, 55,109,218, 84, 30, 20, 20, 4,158,231,113,237,218, 53,156, 60,121,210,180,
-122,245,234,164,220,220, 92,159,151,224,161,148, 30, 38,132,116, 26, 48,246,149,117, 47,244,238, 17,246, 68,181,170,242,232,232,
-104, 64,175,199,197, 91,169, 56,120,241,164,249,171, 61, 7, 51,140, 70, 99, 95, 95,151,224,177,115,118,108, 63,126,252,186,169,
-255,251, 95, 36,238,220,225,163,163,163, 33,151,203,113,253,250,117, 92, 21, 4,235,236,165, 75,211,242,243,243, 31,250, 18, 60,
-226,156, 87,130, 32,240, 0,160, 82,169,240,242,203, 47,195,121,201,157, 37, 75,150, 64,175,215, 3, 0, 79, 8,249,152, 16,242,
-141, 39, 43,150, 7,206,242,191,254,250,107,121,103,206,234,213,171,187,227, 52, 62,236, 76,146,157,157,253,238, 83, 79, 61, 53,
-147,231,121,143,179,222, 6, 7, 7,163,160,160, 0, 86,171,213,150,156,156,124, 49, 56, 56, 24, 82,169, 20,148, 82,183,249, 40,
- 43, 43,235,221,190,125,251, 78,231, 56, 46,194, 19,103, 64, 64,192,205, 63,255,252,179,242,243,207, 63,207,125,251,237,183,215,
- 70,142, 28,169,248,243,207, 63,109,148,210,245,172,232,122,180,224,220, 40,181, 55,226,104, 9,215,158, 32,132,204, 59,122,244,
-104,248,152, 49, 99, 18,255,247,191,255, 5,180,107,215,206,207,249, 26,189, 94, 47,252,242,203, 47,218, 37, 75,150,228,237,217,
-179,231,198,136, 17, 35,154,162,200,191,196, 45,110,221,186,181,121,198,140, 25,129, 93,187,118,173, 2,192,225,159,149,145,145,
-129,155, 55,111,226,204,153, 51, 55,205,102,243,198, 82,196, 39,139, 16, 50,117,208,160, 65, 31, 47, 95,190, 60,102,228,200,145,
-169,171, 87,175, 62,131,162, 9,134, 93, 17,212,187,119,239, 58,203,151, 47,143, 30, 57,114,100, 42,128,105,148, 82,230, 71,200,
-192,240, 55,218,186,250,105,149,232,163, 5, 32, 79, 16, 4, 24, 12,134, 72, 65, 16,122, 10,130, 0, 63, 63, 63,119,215, 53, 73,
- 73, 73,233,233,188,168, 52,188, 44,151, 3, 32, 99,251,246,237,219, 86,174, 92,217,225,173,183,222,250, 95,110,110,110,147, 83,
-167, 78, 53, 5, 0,169, 84,122, 64,163,209, 28,154, 57,115,230,179, 19, 38, 76,200,240, 69,100,185,136,173, 26,115,230,204, 41,
-179, 69,165,237,194,168,242,103,107,214,143,249, 90,161,232,228,178,168,244, 54,251,162,210,134,123,225, 28,255,229,151, 99, 2,
-214,172,121,100, 23,149, 54, 26,141,214, 62,125,250,124,205,113,156, 96,111,197,242, 70,163,241, 89,148,114,164,170, 43,103,239,
-222,189,191,149, 72, 36, 86,187,165,136, 51, 26,141,207,221, 15,103, 25, 86,162,133, 0,198,150,116, 77,237,218,181, 87,108,220,
-184,113, 72,207,158, 61,109,102,179, 57,189, 71,143, 30,252,161, 67,135, 40,199,113,219, 61,112, 26, 1,188, 89, 18,103, 84, 84,
- 84,252,167,159,126,122,124,220,184,113, 1, 43, 87,174, 12,217,187,119,175,109,225,194,133,249,217,217,217,159,176,114,235,209,
-130, 84, 42,133, 90,173,134,201,100, 66, 70, 70, 6,188, 77, 89, 69, 41,221, 65, 8,233, 58,126,252,248,167,199,143, 31,223, 53,
- 42, 42,170, 98,133, 10, 21,212, 28,199, 33, 57, 57,217,154,146,146,146,110,177, 88,182, 1, 88, 15, 0, 21, 43, 86,124, 6,192,
- 87,158,248,178,178,178,166, 19, 66,118, 44, 95,190,188,155, 70,163,169,161, 84, 42, 67, 44, 22, 11, 87, 80, 80,144,173,215,235,
-207, 27, 12,134, 77,148,210,253,165, 76,247,171, 9, 33,153,195,134, 13,251,102,217,178,101,113,215,174, 93, 43, 56,122,244,232,
- 83,174,215,213,168, 81, 99,239,242,229,203,163,159,127,254,249, 59,171, 87,175, 46,149,143, 22, 3,195,127,164, 33,182, 11, 30,
-252,139, 61, 85,112, 51,228,114, 57, 15,251,226,210,162, 69,203,205,117,135, 93,124,178,242, 0,204,240, 33, 76,218,193,131, 7,
- 95, 31, 60,120,240,199,246, 48, 72, 80, 52,133,131, 21, 69, 30,255,102,120,153,210,193, 67, 68,173, 0,190,180,111,101,245,242,
- 12, 40,154, 47,103,206,163,204, 89, 6, 97, 50, 18, 66,198, 19, 66, 62,182, 31, 26,127,226,196,137,197, 46, 22,170, 83,206,231,
-189, 89,158,220,113,158, 60,121,210,149,243, 76,105, 56,255, 73,228,230,230,190,242,233,167,159, 30,158, 56,113,162, 98,248,240,
-225, 56,115,230, 12,102,205,154,101,204,205,205, 93,121,175,156,169,169,169, 55,163,162,162, 26,204,159, 63,255,141,121,243,230,
-245, 34,132,176,181, 14, 31, 17,232,245,250,191,234,214,173, 11, 82,228,176, 68,173, 86,171, 99,180,168,125,134,255,191,124,177,
- 26, 1, 88,106,223, 64, 8, 9, 65,209, 40,195, 44, 74,169,107, 67,114,188, 15,124, 7, 0, 28, 40,227,188,191,131, 16,242,236,
-213,171, 87,103,252,245,215, 95,110,133,218,149, 43, 87,118,182,108,217,210,255,212,169, 83,239, 80, 74, 55,179,212,193,192,224,
- 59,120, 15, 25,239, 10,128,255,249,144, 65,103,222,199,179,109, 62, 88,191, 24, 30,174,216, 90, 76, 8,249,198,201, 26, 83,170,
-243, 15,139,243,159, 66, 82, 82, 82, 14, 0,199, 82, 36,137,137,137,119,249,177,221,171,216, 66,209, 44,240,108, 38,248, 71, 8,
-215,174, 93,123,234, 1,228,177,236, 71, 52,239,239, 4,208,212,211,121,139,197, 50, 25,192,100,150, 42, 24, 24, 74, 15, 54,251,
- 52,131,107,129,107, 44, 73,240,120, 59,255,176, 56, 25, 24, 24, 24, 24, 24, 30, 21,184, 89,235,176,141,227, 28,128,142, 30, 42,
-191,237,165,120, 64,169, 23,244,244,198,207, 56, 25, 39,227,100,156,140,147,113, 50,206,199,143,211,137,123,158,135, 83, 23, 93,
-248,190,248, 55, 10, 47,199,232, 67, 74,233, 3,219, 0,116,100,156,140,147,113, 50, 78,198,201, 56, 25, 39,227,188,199,231,188,
-240, 48,158, 83,198, 97,166, 0,218,136,251, 60, 24, 24, 24, 24, 24, 24, 24, 24, 24,202, 4, 62,205,163,181,118,237, 90,137,248,
-127,208,160, 65, 35,108, 54,155, 99,216,187, 68, 34,249,244,199, 31,127,252,166,164,135,244,235,215,207, 86, 18,167, 59,120,123,
-142, 59,206, 90, 85, 3, 71,133, 6,170, 95,201,205,211,205,191,150, 98,219, 99, 48, 24,106,136,231,148, 74,229,249,111,190,249,
-230,114, 89,135,115,196,136, 17, 85, 92,159, 83, 33, 78,218, 54,196, 95,249,114,118,110,225,220, 51,151, 11,190, 96,201,236,193,
-162,127,255,254,165,186,254,250,245, 32, 28, 71, 52, 2, 52, 50, 20,106, 45,176, 29,123, 60,124,122,163,163,163,171, 5, 4, 4,
- 12, 5, 80, 83,167,211, 69,168,213,234,116, 0,231,242,243,243, 87,220,185,115,231,162,175, 60,109, 19,200, 77, 0,229,237,187,
-183,118, 94,167,241,190,156,243,134, 46,149,136,129, 2, 10, 66, 96,222,114,133, 58, 22,208,124,178, 50, 49, 8,244,238,227, 93,
- 42, 19, 19,165,144, 17,192,184,229, 42, 85, 62, 46,233,149, 16, 18, 0,160, 19,128, 90, 0, 78, 1,216, 74, 41,213,177,156,204,
-192,240,248,192,117,162, 82,231,125,222,131,152,104, 45,227,201, 34, 10, 26, 4,208, 80,163,209, 40,149,203,229, 48,153, 76, 80,
-171, 85,159,189, 56,114,196, 20,112,200,181, 88,241,242, 55,223,124,115,207, 43, 93,151,230, 57,253,250,245,219,225,122,127,112,
-128,106,250,206, 95,222, 10,110,221,109,246, 44,211,245,204, 9, 5, 5, 5,156, 66,161,128,209,104, 68, 96, 96, 96,139, 81, 47,
-188,208,144,147, 82,147, 76,166,217, 63,111,222,188,212,123, 13,231,107,175,189, 22,101, 54, 27,154, 11,130, 32, 55,153, 76, 10,
-215,231, 4,170, 53,179,119,254,242,150,186, 77,247, 89, 83, 0, 48,161,245, 8,161, 72,100, 69,225,213,193, 79,224,163,113, 29,
- 17,212,118,246,227,144,161, 37,137,137,137, 99,226,227,227, 7, 46, 93,186, 84,150,152,152, 8,165, 82, 9,189, 94, 31,253,215,
- 95,127, 69,143, 26, 53,170, 77,197,138, 21, 87, 93,187,118,237, 51, 74,169,205, 7,202,242, 59,191,123, 15, 0,208, 98,232,180,
-242,132,144, 55, 1,232, 0,160, 77,133,191,207,181, 29, 62,173, 60, 33,100, 60,138,143, 22,190, 67, 41,117, 59, 73, 38, 5,228,
-155,150,207, 65,207,103,222,228, 9, 33,163,196,227, 93,171, 0,191,127,191, 0, 79, 14,122,165,216,241, 46, 21,193,255,178,124,
- 14,186, 63,243,166,199, 85,205,159,172,194, 89, 4,129,122,180,196,115, 28,177,110,185, 66,221, 45, 48,156, 70, 41,221,226,230,
- 93,118, 65,209,130,206,110,175,239, 94,157, 79, 51, 91,108,110, 39,156,149, 73, 37,233,155, 46, 88,239,186,119,120, 3, 98,177,
-216,138,202, 86, 25, 15, 91, 96, 96,224,206,119,222,121,135,239,222,189, 59,190,250,234,171,150, 95,124,241,197, 11,132,144, 63,
- 0,108,164,148, 94,101,185,148,129,225,241, 21, 92, 30,133, 22, 47,193,231, 27,215,125, 83, 41, 45, 61, 19,195,158,127, 3, 43,
- 87,174, 68, 78, 78, 14,130,131,131, 33,151,201,164,243, 63,126, 47, 42, 32, 64, 19, 53,236,133, 9,159, 3,168,118,175, 1, 42,
-229,115, 42,223, 21, 33,251,132,166,188,132,147,202,229,114,110,213,170, 85,200,205,205, 69, 80, 80, 16,228,114, 41, 55,111,214,
- 36, 85, 64,128,159,234,185,209, 19, 91, 2, 88,115,175,225, 52,153, 10, 91,254,180,242,155,128,140,140, 12, 12,127,105, 2, 92,
-159, 35,147,201,108, 98,197,194,146,217, 63,135,204,204, 76, 0, 64, 88, 88,152,139,200,106,138,121,175,119,198,107,115,183, 66,
-103, 48,253,235,227,153,152,152, 56,166,127,255,254, 3,167, 79,159, 46,227,184,162,129,195, 90,173, 22,122,189, 30,177,177,177,
-216,185,115,167,236,221,119,223, 29,248,243,207, 63, 3,192,194,210,242,159, 61,123,182, 66,249,242,229, 13, 0,208,163,142,191,
-235,185,120,241, 28, 0,248,251,251,123,229, 11, 13,210, 24,207,158, 61, 88, 83,188,111, 76,135, 88,155,135,227, 6, 0,234,146,
-184, 4,129,242, 91, 23,141,242,120,254,249,233, 63, 88, 79,173,217, 83, 45, 49, 49, 81,239,124,220,195,132,203, 0, 16, 89, 88,
- 88, 88,222,245,160,120,189,217, 98,139,240,244,188,206, 47, 47,113, 43,192, 44, 54,240, 63,252,240, 3, 0,224,147, 55,135, 72,
-190, 60,148,201,243,124, 81, 81,251,241,199, 31, 99,234,212,169,242, 45, 91,182,116, 93,190,124,121, 87, 66,200,124, 79, 66,149,
-129,129,225,223, 39,178,156,127, 75, 20, 90, 28, 33,254, 1,254,126,232, 55,248, 69,252,246,219,239,104,221,186,181,227, 92, 66,
- 66, 2,250,247,237,133, 31,191,155, 7, 0,254,247, 19,168,251,125, 78, 78,158,246,253, 39, 7, 46,154,118, 43,181,240,192,166,
- 77,155,208,170, 85,171, 98,247, 15, 30,208, 15,223,127,253, 49, 40,165,178,251,122,121,148,147,249, 7,104, 48,104,216, 75,112,
-247,156, 23,134,247,222,212,165,255,130,142,105, 89,218,121, 44,169, 61, 92, 92,184,112, 1, 70,163, 17, 1, 1, 1,144, 74,165,
- 80, 4,149, 71, 10,223, 4, 25, 36, 17,233, 17, 58,188,222, 49, 18,159,188,218, 14,175,205,221,138,249, 43, 15,162, 1, 82,255,
-213,241,141,142,142,174, 22, 31, 31, 95, 76,100, 21, 20, 20,160,176,176, 16,249,249,249, 40, 40, 40, 0,199,113,152, 48, 97,130,
-108,215,174, 93, 3,163,163,163,183,251,208,141,120,171,197,208,105, 69, 98, 67, 34, 45,156, 60,121,178, 49, 34, 34,194,168, 86,
-171, 41, 47, 83, 20,180, 29, 62,205, 31, 0, 56, 94, 86, 48,127,254,124, 83,108,108,172,129,231,121,249, 43,175,188,226,211,244,
- 48, 70,163,145, 58,115,154, 76, 70,199,241,217,179,103,155, 34, 35, 35,141,106,181,154,154,205,190,139,224,211,215,179,161,144,
- 73,160,144, 73,160,148, 75,225, 95,161, 49, 20, 57,103, 96,181, 90,241,209, 71, 31,153,163,162,162, 76,106,181,154,202,229,114,
-217,184,113,227,188,134,115,196,136, 17, 52, 40, 40,200,172, 86,171,101, 83,167, 78,189,107,118,231, 63, 79, 37, 67, 37,151, 66,
-173,224, 81, 57, 33, 14, 10,170,247, 57,172, 18, 73,113,111, 4,133, 66,129,150, 45, 91,162,102,205,154,216,176, 97, 67, 91, 0,
- 76,104, 49, 48,252,203,225,106,197,186, 75,104,109,222,188,185, 13,236,171, 78,119,235,214,173,104,181,105, 80,140, 31,211, 23,
-207, 13, 31, 4,155, 77,112, 44, 55, 65, 56,130,209,207,118,133, 32,216,124,121,176,215, 33,158,165,125,142, 51, 39, 37,156, 4,
- 0, 42,197, 71,211, 23,158,251, 31,108,130, 80, 52, 13, 42, 0, 72,128, 23,135, 63, 89,116,172, 12,194, 41,129, 13,111,140,122,
- 26,238,158, 83,173, 82, 12,103, 53, 27, 64,156, 22,123,124, 16,139,109, 50,206,226,216,191,127, 63,212,106, 53,134, 12, 25,130,
-113,227,198,193,198, 7, 97,237,129, 44,188,181,248, 0,116, 70, 51, 6,183,171,128,215,255, 87, 7,175,207,255,211, 33,178, 18,
- 18,114,255,213,113, 15, 8, 8, 24,186,116,233,210,187, 68, 86, 90, 90, 26, 87, 88, 88, 8,179,217, 44, 20, 20, 20,192,102,179,
- 97,226,196,137,210,119,223,125,119, 40, 33,100,170,157,199,232,142,115,231,117, 26, 79, 8, 25,127,246,236,217,248,119,222,121,
-199,220,190,125,251, 91, 9, 9, 9, 90,137, 68,130,232,232,232, 5,157, 58,117, 10,153, 62,125,186,185,107,215,174, 55, 36, 18,
- 9, 42, 87,174,172, 61,115,230, 76, 60, 0,149,175,113,119,230,252,230,207, 79,197, 86, 31, 58,117,234,116,179,114,229,202, 90,
-137, 68,130,203,191,204,166,190,190, 79, 41,207,161, 74,108,160,216,140, 4, 84,126, 64, 78,209,110,167, 78,157,146,170, 85,171,
- 86,200,113, 28, 78,159, 62, 29, 7, 64,233,141, 83,165, 82, 89, 6, 15, 30,124,235,226,197,139,119, 93, 15, 0,188,132, 67,211,
-106,118, 3, 86,108, 3, 32,105,175,199,112, 74, 37,176,190, 59,102, 8, 31,164, 4, 20,254, 97,198,252,252,124, 4, 4, 4, 20,
- 89,200,204,102,156, 56,113, 2,205,154, 53,107,179,102,205,154, 93, 44,191, 51, 78,198,249, 55,220,105,145,127,155, 53, 75, 20,
- 92,238,124,180,118,186, 70,202,102,179, 34,161,124, 36,102,191, 55, 2, 54,155, 0,155,205, 6,171,253,215,102,179,193, 98, 54,
-151, 73,224,238,231, 57,193, 1,170,233,191,175,122, 57,184,125,239,143, 59,204,124,103,248, 54,155, 13, 16, 4, 11, 44, 22,192,
- 38, 88, 32,216,108,176, 88,202,166,171,200, 34, 8,136,143,139,194,204,119,134,195,245, 57, 43,126, 92,211,227,207,141, 19,212,
-173,187,207,122, 3,192, 71, 76,219, 63, 28, 75,150, 90,173,198,138, 21, 43,208,184,113, 99, 0,192,158, 75, 86,188,181,248, 0,
-182,204,108,129, 22, 53, 67,145,158,107,196, 43,159,157,196,111, 7,210,239, 18, 89,255, 98,212, 76, 76, 76, 44, 38,178,230,204,
-153, 19,182,120,241,226, 88, 0,232,219,183,111,114,135, 14, 29, 50, 47, 93,186,132,232,232,104,146,153,153,217, 13,192, 43,246,
-140, 63,158, 82,186,216, 3,175,182,124,249,242,134,240,240,112,163, 40,136, 56,142, 3,207,243, 40, 95,190,188, 33, 34, 34,194,
- 88,185,114,101,173, 76, 38, 3,199,113, 16,133,158,143, 5, 16, 36, 18, 9, 68, 78, 87,107,143,200, 89, 26, 72,121,167,235,233,
-221, 22, 36,142,227,220, 62,207, 19,148, 74, 37, 5,224,241,122, 9,231, 84, 60,242, 37,123, 8,124,119,156, 74, 9, 33, 59, 41,
-165, 56,126,252, 56,174, 93,187, 6,153, 76,134,168,168, 40, 76,157, 58, 21, 70, 99,145,222,237,223,191,127, 27, 0,167, 89,110,
-102, 96,112, 96,231,191, 77, 96,185, 90,181,220,249,104,113,110,212,164, 67, 0, 21,137, 29, 55,226,199, 98,133,197, 98, 6,188,
- 44,170,234,171,208,242,244, 28,155, 77, 40,241, 57,162,143,150, 32, 80,222,173,200, 18, 4, 88, 45,150, 50,121,129,130,205, 2,
- 65,176,192,221,115, 8,225,108,246, 2, 95,198,242,201,195,129,209,104,196,160, 65,131, 28, 34, 11, 0, 50, 11, 44,208, 25, 45,
-104, 81, 51, 20, 13,219,245, 71, 68,144, 2,171,119, 39, 35, 34, 72,253,184,136, 44,232,116,186, 8,165, 82, 9,173, 86,235,176,
-100, 45, 94,188, 56,214,100, 50,113, 38,147,137, 91,189,122, 77,220,202,109,151,202,173,216,114,169,220,210,245,199,202,229,228,
-228,213,164,148,170, 40,165, 42, 0, 31, 19, 66, 20, 37,241,203,100, 50,135, 64,113, 22, 64, 10,133,226,158, 4,140,163,160,177,
-139, 51,153, 76,230,246,184,107,247,154, 55,200,156,133, 22,104,145, 85,203, 69,108, 73, 36, 18,136,190, 81,222, 32,151,203, 29,
-113,119, 7, 94,226,244, 60, 73,233, 93, 49,205,102, 51, 10, 11, 11,145,155, 91,204,162, 10, 81, 4, 51, 48, 48,184,215, 34,255,
- 86,177, 85,172,252,112, 85,147,176,175, 62,109,181,152,221,138,159, 53,191,236,195,173, 84, 45,162,194, 14,131,122, 88,169,218,
- 19, 6, 14, 28,248, 93,116,116,180, 99, 61, 45,133,202, 47,244,133,151, 63,128,213,106,134,191,138,195,243, 67,159, 44, 38,178,
-138, 44, 90, 38,120,146,115, 57,121,218,247,159,236,191,112, 90, 96, 64,232, 1, 87,241, 51,115,217,177,126, 57,249,198, 56,142,
- 59,130, 28, 18,109,235,255,226, 7, 35,156, 10,247, 83,171,150, 76,126,221,231, 23, 71, 56,105,191, 81, 11, 94,160,188, 95, 13,
- 53, 87,176,251,173,225, 79,252,228, 44,230, 66, 66, 66, 54,117,238, 55,191, 99, 90, 54,243,209,122, 88,144,203,229, 24, 55,110,
- 92,177, 99, 97,254, 82,168, 21, 82,236, 59,151,137, 99, 59,214, 96,207,217, 76, 40,101, 18,132,211,107,143, 77,188,213,106,117,
-186, 78,167,139,214,235,245,200,207,207, 71,126,126,126,113, 65, 32,149,146, 23, 94, 26, 27, 38,149,201, 97, 49,155,240,219,138,
- 15,189,114,182, 77, 32, 55,219, 84, 64,249, 30,117,252, 33,145,202, 11,206, 37, 38, 46,224,121, 30, 28,199,225,151,207,222,122,
-101,253,220,151,253, 1,224,212,166,207,242, 7, 77,248,116, 33,199,113, 48, 26,141,138,210,132,251,246,237,219,113, 70,163,209,
- 96, 23,104,162,105, 29,215,175, 95, 47,103, 52, 26,245,206,199,125,129, 74,237, 15, 4, 37, 0,234,136,187,172,103, 55,110,220,
-136,177, 88, 44, 58,158,231, 97, 50,153,124, 82, 69, 28,199,201, 78,159, 62, 29, 39, 8,130,219,235,107, 86,140, 1,162,234, 0,
-242,192,210, 20,184, 62, 93,227,174, 5,204,192,240, 95,183,108,161,148,250,226, 81, 16, 88,238,254, 59, 11,173,182,155, 55,111,
-166,206, 45, 68,171,197, 98, 23, 89,127,139, 30,155, 77, 64, 74,134, 1,151, 46, 93,198,252,249,243,177,239,224,155,129,211,167,
- 79, 87,188,251,238,187,198,129, 3, 7,206, 21, 4,161, 46,199,113,167,250,245,235,231,182,149, 38, 8, 66,185, 99,199,142, 37,
-138,251, 22,139, 5,254,254,254,240,247,247, 71,181,202,113,119,137, 44,155,205, 6,115, 9, 93,135,162,143, 22,161, 2,181, 88,
-108,176, 9,130, 67,252,228,228, 27,227, 54,110, 63, 94,201,233,242,170,226,159,150,141,107,120, 22,131,163,166, 58,226,177,106,
-201,228,215,167,127,245,149, 34,199, 22, 62,110, 80,191,231,106,245, 31, 52, 20,131,159,126,170,141,209,100,218, 32,225,168, 96,
-113, 60, 15, 28, 40,138,249,104, 49, 60, 56,100,102,102, 66,175,215, 35, 40, 40,168, 88,133, 21,173,209, 98,194,128, 42,232,244,
-214, 94, 24,204, 54, 40,164, 28, 94,233, 21,143, 67, 63,175, 70,166, 49,211, 49, 26,241, 95,142,115, 87,175, 94,141, 46, 87,174,
- 28,242,243,243, 97,181, 90,133,190,125,251, 38,243,188, 52,142,151, 74, 73,247, 65, 99,133,212,212, 20, 11,199, 73, 64,169, 13,
- 79,245, 31, 69, 20, 74,149,204,108, 50, 89, 1,140,247,176,166,164,243, 20, 14,254,157, 58,117, 10, 17, 71, 2,174,159,251,178,
-191,211,185,128,134, 13, 27,134, 56,143, 58,244, 81, 20,147,129, 3, 7,170,202,151, 47, 79, 0,224,200,138,119, 68,235, 25,233,
-209,163,135,178,124,249, 34, 63,252, 63, 62,243,125, 77,237, 48, 53, 5,242,174, 3,121, 55,238,178,100,245,232,209, 67,145,152,
-152, 88,170,188,104,119,128,247, 56,119,151,134,183, 2,169,199,125,226, 26,222,128, 88,222,105, 13,126,238, 83, 28,228,126,161,
-198,166,111,109, 57,196,196, 22, 3,131, 79,112,209, 34,255, 30,216,215, 54,220, 9,160,173,253, 23,197,124,180,186,117,235,182,
-171,152,122,164,128,197,106,190, 75,100,217,108, 54, 72,137, 17,243,231,207,199,171,175,190, 10, 0,178,215, 95,127,253,167,233,
-211,167,247, 17, 4,161, 46,165,180, 21, 33,164,164, 86,227,206,232,232,232, 52, 74,169,148,227,184, 86,159,125,246, 89, 72,215,
-174, 93,225,239,239, 15, 42,208,187, 68,150,205, 38,192,108, 54,193,147, 73, 43, 56, 64, 53,253,247, 53,227,130,219,247,250,184,
-131, 77, 16,182,137, 34, 75,176,217, 0,161,232,166,172,244,100,108,253,109, 3, 62, 95,242,121, 14, 8,189, 0, 10,129,227,184,
- 83,158,194, 40, 8, 66,221,189, 71,206,183,106,217,184, 6,166,127,245,149,226,236,177, 59, 63,141,125,237,237, 90,253, 7, 13,
-197,154, 31, 87,128,179,230, 30,119, 22, 89, 54,139,128,188,156,204, 30, 59,152,143,214, 63, 6,139,197,130,156,156, 28, 88, 10,
-115,208, 40, 90,139, 15,250, 71, 32, 45,199, 0,169,160, 67,245,128,116,236,200,190, 1,181, 90,253, 88,196, 53, 63, 63,127,197,
-168, 81,163,218,236,222,189, 91,198,113, 28,242,243,243,209,174, 93,187,204, 12, 33, 86,249,194, 75, 99,195, 82, 82,146,173, 1,
- 42,222, 40,147, 73,145,158,158, 46,180,233, 58, 68, 63,104,196,171, 49,175,190, 51,115,105,202,190,197,139,125,121,134,243, 72,
- 64,215,115, 95,126,249,165, 41, 54, 54,214,160, 80, 40,228,195,135, 15,247,169,255,208,100, 50,209,217,179,103, 27, 93, 71, 23,
-154, 76, 38, 58,127,254,124, 83, 92, 92,156, 81,165, 82, 81,139,197,187,223, 39,199, 17,235,243,211,127,176, 90,173,214, 98, 86,
- 44, 81,100, 89, 4, 82,184,104,209, 34,115, 92, 92,156, 73,173, 86, 83,133, 66, 33,243, 37,156, 99,199,142,165,193,193,193,102,
-141, 70, 35,155, 48, 97,194,125,141, 58,180,216,192, 79,255,204, 49,189,131,194,223,223, 31, 5, 5, 5,142,176, 70, 71, 71, 51,
-177,197,192,224, 6,119,105,145,127,153, 21,206,147,143,150, 91, 7, 6, 1, 40, 76, 75,207,140, 8,139,172, 0,171,213,106,223,
- 44,176, 90, 44, 24,247,226, 32,204, 93,178, 8, 0, 68,177,213,233,245,215, 95,255, 9, 46,254, 94,238,176,106,213,170,105,175,
-191,254,122, 64, 90, 90,218,150,239,190,251, 46,100,200,144, 33, 24, 63,126, 60, 62,254,248, 99, 72,229, 74,132,132,151,115, 60,
- 71,124,110,102, 70, 54, 40,104,161, 91, 5,105,247,209,162, 20,124,104,120, 60, 44, 54, 11, 4,139, 5, 22,139, 5, 68, 82, 20,
-181,173,191,109,192,144,103,199, 66,170, 8, 8,254,116,254, 71,250, 90,141,162,251,188, 59,114,164,209,187, 60, 5,119,246,216,
-157,159,198,190, 58,161,147, 40,178,214,173, 88,114,225,147,137,189, 86, 42,228,188,227, 57, 22, 65, 0,199, 73,152,143,214, 67,
- 68, 88, 88, 24, 50, 50, 50,144,155,155, 11,141, 70,131,172,172, 44,100,103,103, 35, 55, 55, 23,198,252, 28,132,218,114, 65,172,
-217,224,121, 30,233,183,139,124, 0, 31, 19,107, 22,238,220,185,115,177, 98,197,138,171,222,126,251,237, 65, 19, 39, 78,148, 10,
-130,128, 75,151, 46, 1,132, 80,169, 76, 14,142,227, 32,149,242,200,203,203, 23,212,126, 65,119,204, 84,162,150,202,254,207,222,
-117,135, 71, 81,188,225,119,246,122,201,165,247,132,132,208,146,144,208,165, 19,138, 84,233, 82,164, 23,145, 38, 77, 16,233,210,
- 20, 65,154, 72,147, 34, 2,210,225,135,210,165, 72,239, 16,122, 8, 37,144,222,123,114,185,203,213,157,223, 31,228,226, 17, 83,
-238, 66, 20,197,125,159,103,159,189,155,221,125,119,102,118,119,246,221,111,190,249, 70, 4,134, 39, 44,109,152,112, 76,235, 97,
-175,194, 59, 48,124, 97,174,105, 36,160, 80, 40,196,245,253,203,115, 90, 15,251,202, 22, 0,132, 98,105,102,135, 14, 29,162,107,
-214,172,153,119,251,246,109, 95, 20, 25,117, 88,204,243,105,232, 57,108, 26, 79, 38,149,228,181,111,223, 62,198,196, 25,117,122,
-109,206,224, 79,103, 19,194, 19,229,117,237,218, 53, 58, 56, 56, 56,143,199,227,225,241,161,165, 57, 61,135, 77,147,144, 63,198,
-244,254, 9, 39,159,211,145,247,247, 95, 10, 88,180,104,145,190,115,231,206,177, 38,127,177,168,168, 40,207, 46, 93,186,136,191,
-251,238, 59,125,151, 46, 93,226,106,213,170,165,100, 24, 6,161,161,161,222,165, 89,170, 76,144, 74,165,250, 17, 35, 70,196, 60,
-124,248,176, 92,163, 14,203, 66,165, 74,149,192,178, 44,218,180,105,131,252,252,124,206,178,197,129,195, 59,136,162,113,180, 74,
-141, 12,175, 55,232,199,143,158,180, 96, 45, 64,108,204, 90,129, 63, 12, 75, 20,100,234,212,207,229, 0,164, 38,177, 53,121,242,
-228,204,178, 50, 97, 38,178,222, 27, 56,112, 32,102,206,156,137, 21, 43, 86, 24,151, 45, 91,198,123,242, 44, 82, 55,236,211,121,
- 89, 69,206, 3, 10,170,100,245,236,248,226,248, 50,179,243,230,133,116, 89,178, 32, 62, 89,117,121,216,216, 57,133,173,151, 17,
- 64, 14,241, 48, 2,192,134, 31,126,200, 19,136,109,229,125,251, 15, 6,128,246,107, 87, 45,253,229,107,252, 88,182,216,162, 36,
-112,252,228,105, 14, 38,145,181,238,187, 69, 15,237, 72,242,154, 9,159,135,233,205,207, 3, 0,142, 10,252, 18,210,101, 73,199,
-148,140,188,239,185, 91,237,239,129, 86,171,197,234,213,171, 49,103,206, 28,100,100,100, 32, 45, 45, 13,153,153,153,133,139, 82,
-169,132,187,187, 59,126,251,237,183, 63,249, 49,253,219,241,242,229,203,117,135, 15, 31,198,133, 11, 23,250,205,152, 49, 67,224,
-238,238, 78,236,236,146,137, 94,167, 5, 64,105,106,106, 42, 43,179,177, 79,116,118,243,142, 73, 72, 74, 9,212,235,180, 96,141,
-186, 18,189,205, 11,194, 59, 76,125,244,232, 81,229,229,203,151,107,205, 71, 2,246,159,182,118,117,131, 6, 13, 28,215,172, 89,
-163,237,218,181,107,180,201,121,221, 18,103,248, 83, 47, 48,233,209,163, 7, 65, 69, 57, 91,143, 90,190,197,196,105, 62, 26,177,
-219,231, 27,183, 84,175, 94,221, 49, 56, 56, 56,186, 52,222, 42, 85,170,168, 61, 60, 60,180, 1, 1, 1, 74,129, 64,240,202,146,
-165,215,171,170, 84,169,194,186,185,185,105,107,214,172,169,180,214,105, 95, 42,149, 82,147, 85,172, 56, 88, 51,234, 80,192,131,
- 97,224,192,129,133,145,225,167, 86,175,158, 56,120,240, 96,143, 41, 83,166, 96,203,150, 45,184,114,229, 74, 70,209, 99, 90,181,
-106,133,139, 23, 47, 46, 0, 48,143,123,186, 57,112,248,247,161,204, 56, 90, 69,177,117,235,142,223, 97,230,211, 84, 28,190,254,
-250,107,113,129, 37,171,253,103,159,125, 6,181, 90,237, 80,140,186,107,103,138,181, 81,156,200, 90,186,116,233,110, 74,169, 55,
-128, 22, 70, 35,123, 99,243,143, 91,219, 88,160, 24, 11, 57, 41, 97,120, 12, 67,148, 34, 1,189,251,195,166, 45, 59,205,247, 43,
-112,126,247, 7,193,253,181,171,150,170, 1,180, 47, 42,182,250,244,233,163, 42,202,105,194,152,177, 99, 10, 69,214,218, 85, 75,
- 79, 7,191,231,243,225,156, 79,190, 42, 86,156,125, 53,111,180,156, 97, 72, 51,115, 31,173,226, 56, 43, 64, 45,115,156, 5, 16,
-139,197,216,179,103, 15, 66, 66, 66, 80,167, 78, 29,100,100,100, 64,169, 84, 66,169, 84, 22, 90,189, 30, 63,126,140,232,232,104,
-136,197,226,119,170,236, 5,211,234,172,246,240,240, 56, 51,119,238,220,193,105,105,105, 93, 50, 51,179,156,142,110,253, 10,157,
-250,142, 37,173, 58, 15,200,211, 82,190, 36, 46, 49, 57,224,252,241, 93,142, 39,246,174,131, 78,171, 29, 77,200, 15,225,166,240,
- 14,197,228, 83,101, 10,227, 16, 16, 16,144,103, 46, 84,124,124,124,242, 61, 61, 61, 53,193,193,193,133,233,197,141,230, 43,174,
-236,214,114, 22,248,127,229,149, 85,159, 38,209, 86, 52,108,132, 76, 38,131, 73,124, 89,147, 79,243,209,150,197, 54,148,101,140,
- 58, 52,231,220,118,135, 10,204,183,109, 35,132,183, 99,199,142,118, 59,118,236,120, 15,192, 93, 0,167, 0,232, 11,142, 43,116,
-154,167,148,206, 7, 48,159,123,222, 57,206,255, 42,231,191,220,154,213, 10, 5,190, 89, 5,104, 77, 41,189, 80,162,208, 42, 11,
- 38,199,119, 0,204,228,201,147, 51,213,106,181,195,224,193,131, 75, 61, 38, 41, 41,105,203,246,237,219, 95, 19, 89,189,122,245,
- 26,126,224,192,129, 51, 41, 41, 41,229, 42,152,131,173,244,235, 11, 71,166, 59,180,234,186,228, 51, 0,203,138,151,153, 96,131,
-223,243,248,112,237,170,165,191, 20, 17, 91, 63, 3,232, 85, 92,125, 1, 64,135, 15,122, 96,215,214,181, 38,223, 46,233,195,219,
-241, 39,250,221, 89, 88,236,104, 69,123, 27,241,194,130,124, 76, 1,231,163,245,183, 32, 48, 48, 16, 87,175, 94,197,216,177, 99,
-209,182,109, 91,244,232,209, 3,149, 42, 85,130, 88, 44,198,139, 23, 47,112,233,210, 37,188,124,249, 18, 42,149, 10,117,234,212,
-121, 39,235, 32, 49, 49,241, 73, 65, 48,210, 73,166,175, 41,177, 68, 42, 28,240,241,103,222,133,163, 14,247,174,131, 38, 95, 13,
- 0,124, 66,200, 50, 66,200, 79, 37, 56,196,191, 18, 20,124,190,240,222,189,123,190, 38,171,149, 78,167, 19,155,210,111,223,190,
-237,107,138,173,149,159,159,111,241,168,195,191,138,243,193,131, 7,222,166,209,145,166,209,133,124, 62, 95, 24, 26, 26,234,109,
-226,212,104, 52, 22,141, 58, 20,137, 68,194,123,247,238,121, 27,141,198, 10, 27,117, 88, 68, 24,159, 44, 88, 76,141,178, 73,100,
-153,124, 58,184,110, 67, 14, 28,254,221, 56, 95,116, 82,105,147,158, 40,151,208, 50, 57,190, 91,161,244,248,149, 43, 87,238,208,
-191,127,255,215, 68, 86,159, 62,125,140, 7, 15, 30, 60,239,225,225,145,204, 48,204, 19,107,243, 81,232,163, 5, 8,138,110, 99,
- 24,230,126,139,134, 53,193, 48,204,253, 57,159,124,162,249, 26, 63,190, 38,182, 14,253,178,175, 99, 73,237, 34, 0, 56,185,122,
- 97,224,240,241, 24, 56,124,188, 3,128,230, 64,201,163, 21, 75,203, 7,135,191, 14,205,154, 53, 67,120,120, 56, 78,159, 62,141,
-139, 23, 47, 66,165, 82,129, 16, 2,169, 84, 10,173, 86, 11,177, 88,252,206,138,172,146,160,211,233, 12, 51, 22, 44,223,206,227,
- 11, 13, 44,171, 35, 58,157,238, 99,107,158,243, 25, 51,102, 48, 40,198,247,106,194,132, 9,197,166,191, 45,206, 89,179,102, 21,
- 59, 74,112,194,132, 9,165,142, 30, 44, 9,159,127,254,121,133,141, 58,180, 80,124,113,130,138, 3,135,119,207,170, 85,236,208,
-189,114, 9, 45,134, 97,238, 23, 51,186,144, 0,160,197,141,232,163,148, 26,120, 60,222, 2,123,123,251,209,121,121,121,191,245,
-234,213,107,114,159, 62,125,140,192, 43, 7,249,242, 22, 42, 51, 59,111, 94,235,110,223, 78,201, 82,106,214, 20,221, 86,212,242,
-100, 18, 91,235,190, 95,186,254,151, 3,123,250, 36, 37,196,173, 47,169,108, 37, 9,170,146, 70, 43,102,231,168, 23,180,238,246,
-237,103,153, 57,106,206, 71,235, 45, 88,182, 76, 40, 58,169,244,127, 1,148, 82, 13, 33,228, 11, 66,136,201,162,251,197,203,115,
-223,175,255,227,193, 95,253,192,124, 91, 41,214,172, 68, 75, 38,136, 46,238,184,210,182,253, 5,156,201,165, 76, 16, 93, 26,146,
-173,228, 75, 6, 0,161,128,151, 82,210,228,209, 66, 1, 47,165,130,174,161, 41,192,225, 2,238,137,230,192,225, 95,219, 22, 91,
-231,163,101, 18, 65, 37,161,164, 56, 89,165,193,104, 52,126, 11,224,219,138, 44,216,195,103,185,155, 0,108,178,116,255, 2,159,
-172,161, 5, 75,241,249, 76,127,100,117,217,250,244,233,179, 1,192, 6,238, 86,251,123,176,127,255,126,174, 18, 94,127,192,215,
- 19, 66,126, 50, 9, 47, 75,183, 21,217,239,240, 95,144,175,191,130,243,228,223,201,119, 52,220,224,246,182, 27,105, 14, 28, 56,
-252,243, 81,156, 53,171,212, 81,135, 28, 56,112,248,215,137, 45, 77,121,182,113,224,192,129, 3,135,138,251, 88, 42,206,215,146,
- 0,104, 87,194, 65, 22,143, 38, 32,132,180, 43, 71,166,206,112,156, 28, 39,199,201,113,114,156, 28, 39,199,249,223,226, 44,139,
-219,252,120, 66,200, 40, 74,233, 38,252, 11, 80,226,128, 22, 74,233, 95,182, 0,104,199,113,114,156, 28, 39,199,201,113,114,156,
- 28, 39,199, 89,206,243,140,250, 59,206, 83, 1,249,164, 69, 23,211, 54,174,235,144,195, 95, 14,111,111,111,176, 44, 11,134, 97,
- 16, 23, 23,199, 85, 8, 7, 14, 28, 56,112,120,167, 96,181, 51, 60,135, 98, 76,130,190, 61,231,128,197,172, 87,127,176,148,198,
-252, 58,255, 93, 43, 99,223,190,125,121,214,236, 31, 25,105,207,220,129,199, 10, 91,185,176,155, 50, 79,191,194, 24, 58,119, 77,
-113,251,177, 44,139, 35, 71,142,160, 91,183,110, 38,243, 42, 0,192,195,195, 3, 71,142, 28, 41,220,175, 65,131, 6,133,193, 27,
- 57,112,224,240, 23,183,105, 14, 65,149, 64,200,199, 0,253, 99,216, 37, 75,195,104,214,227,173,175,237,103, 95,115, 56, 24, 18,
-100,150,164, 6,197,102,154, 25, 22, 91, 66,247,137,233,133, 99, 31, 17, 17,225, 91,173, 90,181,104, 0, 89, 69,118,251,211, 54,
- 90,202,195, 79, 8, 33,206, 85,234, 15,145, 73,100,159,106,181, 90, 63, 27,133, 34, 37, 35, 61,117, 67, 70,204,131,117,102,187,
-217,222,184,113,195,163,113,227,198, 9, 0,114,203,226,228,192,161, 66,159,167, 63, 7, 44,173, 56,103,120, 82,163,183, 31, 12,
-204, 80, 80, 12, 2,193, 61,250,114,127,239,114,241, 84,235,229, 5,150,223, 8, 64,125,128,214,151, 75, 37,245,212, 90, 93, 10,
- 75,233, 16, 26,177,247,174,213,124, 85,250, 30, 3,208,185,132,173, 11,232,203,125,214, 9, 37,150,206,190,117,241,160,216, 94,
- 70, 80,173, 65,175,105, 48,139,224,252, 6, 23, 70, 10, 96, 24, 33,164,173, 76, 38,171,161, 82,169,162, 40,165, 15, 0,172,167,
-148, 38,148,147,147, 1, 48,194, 70, 46,239,228,171, 16,213,143, 73,203,142,207,213, 27, 47, 1, 88, 70, 41,205,172,168,155,234,
-149,200,114,223,244,217,128,198,195,150, 78,108, 7,251,214,223, 78, 3,176,166,180, 99, 24,134, 25,233,233,233,233,231,229,229,
- 21,185,182,123,221,205,227, 15,223, 67,143, 30, 61, 0, 96, 36,203,178,126, 94, 94, 94,145,132,144,205,150,182,141,132, 16, 15,
- 0,124, 74,105,108,193,127, 57,128, 96, 0, 85, 0,188, 4,240,136, 82,154,247,134,215,232, 95,193,233,237,237,237,201,178,236,
- 39,110,110,110, 93,146,147,147,143, 49, 12,243, 99, 92, 92, 92,194, 91,110,123, 54,154,252, 43, 44, 93, 3, 24,109,205, 9,164,
- 82,105,114,126,126,190, 43, 0, 72, 36,146, 20,181, 90,253,151,141, 18,252, 59,207,245,247,188, 25, 48,242,212,229, 71,157,204,
-147, 58,180, 8, 42,230,193, 37, 65,167, 46,135,181,124,125,191, 96, 99,113,109, 96, 65,244, 85, 44, 88,176,128, 44, 92,184,112,
-120,213,170, 85,171, 51, 12,243,116,238,220,185,175,133,190, 41,186,109,222,188,121,127, 68,110, 45,134,211,219,191,217,161,126,
-253,251,182, 30, 55,106,152,141,151,139, 13, 18,211,242,156,126,216,178, 99,249,142, 29,187,186,126,210,175,125, 39, 0,248,234,
-171,175,122, 86,170, 84,169, 50,143,199,139,252,242,203, 47,127, 46,141,147, 3,135,191, 0,214, 77, 42, 93,230,243, 25,212, 87,
-142,124,218, 7, 32,195, 90, 53,109,208, 98,244,144,110,132,242, 36, 24, 48,114,186,193,106,174,202,195,197,224,169,191,174, 29,
- 28, 52,185,111,183,118,204,123,193,149,225,225, 98, 7, 48, 2,108, 60, 30,229,180,102,233,151,235, 1, 52, 46, 71, 54, 59,191,
-184,182, 27,137, 89, 70, 16, 2, 16, 2, 48, 4, 80,230,179,232,208,115,232, 60,235,133, 18, 97,236,101, 4,147,119,231, 3, 0,
-239,141,219, 56, 66,234,187,184,184,172,155, 56,113,162, 67,237,218,181, 61, 36, 18,137, 76,173, 86, 87,143,136,136,240,155, 51,
-103, 78,123, 66,200, 18, 74,233, 65, 43, 57,125,170,121,123,238, 91, 51,121, 68,163, 58, 85,124, 33,208, 42,193,106,242, 42, 61,
-139,120,222,116,204,250,253, 35, 9, 33,253,203, 51,101, 66, 90, 90, 26, 1, 0,103,103,103,250,186,200,106, 50,236,187, 41, 29,
- 48,121,229, 41,168,242,181, 59, 75, 58, 62, 33, 33,193,100,217,242, 59,114,228, 72, 80,183,110,221,208,200,207, 27, 55,186,165,
-162,225,161, 56, 0, 40, 76,183,162,172, 11, 1,204, 42,104,135,119,241,120,188,211,237,218,181,243,251,228,147, 79, 72,131, 6,
- 13, 16, 26, 26, 90,101,247,238,221,237,248,124,126,164,209,104,124, 0,224, 41,165, 84,111, 33,183, 0,128, 63,143,199,171,253,
- 79,230,244,244,244,148,106,181,218,161,222,222,222,163,186,119,239, 94,187, 91,183,110,196,223,223, 31, 79,158, 60,105,112,226,
-196,137,121,117,235,214,125, 16, 23, 23,183, 73, 36, 18,109, 79, 72, 72, 80,191,133, 47,188, 81, 0, 60, 11, 12, 28, 11, 44, 88,
- 39, 0, 88, 64, 41, 77,180,244, 28,249,249,249,174,166,247, 40, 33,196,245,175, 44,143, 53,231, 34,132, 60, 38,132, 56, 22,252,
- 70,105,107,134, 97, 96, 48, 24,242, 12, 6, 67,213, 50, 56,253, 1, 48, 86,100,153, 82, 74, 75, 11, 4, 45, 5,128, 14,205,131,
- 50, 64, 16,102,178,104, 21,243,145, 25, 86, 40,192, 40,130, 78, 93, 9,115,124,205, 10, 86, 4, 11, 22, 44, 32,243,230,205,195,
-252,249,243,187, 1, 8, 97, 89,246, 82, 96, 96,224,234,215, 40, 89,182,112,219,188,121,243,190, 95,176, 96, 1, 1, 80,172, 32,
-114,172, 92,119,240,135, 31,246,104,189,104,246, 4,155,248,116, 29,238, 69,170,225,104, 35,196,188, 47,198,138, 52, 26,125,211,
-245, 63,239, 24,181,118,201,244,205, 70,163,241,125, 0,239, 25,141,198,219, 0,126, 46,141,147, 3,135,191, 0,173,173,154, 84,
-186,132,135,156,160,106,239,150, 48, 98,152,111, 37,183, 62, 19, 63,249, 72, 26, 28, 88, 13,249,176, 65, 84,154, 17,199,143,158,
- 0,128,189,214, 89,157,250,189,199, 23, 98,251,210,249, 95, 4,132, 52, 10,198,195,120, 61,110,199, 27,161,138,212,131,199,232,
- 97,100, 41, 64,145, 95,222, 82,199,101, 26,112,249,169, 22, 12, 1,120, 12,192, 48, 4, 60,166,156,100,172,246,217, 87, 91,239,
- 4,167, 37,179, 0,171,125,246,134, 47,160,247,107,212,168,177,106,225,194,133,238,201,201,201,142,183,111,223,134, 88, 44,134,
-131,131, 3,223,211,211, 51, 96,213,170, 85,217, 19, 38, 76,248,130, 16,114,151, 82, 26,101, 33,103, 96,231,247,106, 95,221,180,
-244, 43, 59,253,141, 19,200,218,243, 63,240, 24, 10,161,220, 6,126, 82, 41, 78,124, 88,205,177,207,209,200,131,132,144, 64, 74,
-105,124, 89,124,225,225,225, 60,141, 70,211,223,214,214,182,137, 64, 32,112, 19,219,251,176, 9,252, 70,233,169,164,202,203, 20,
- 87, 85,203, 41,237,220, 58,173,248,172, 13, 38,175, 60,133, 85,187,175,111,171,143,164,185,214,212, 65,214,173,115,184,151,249,
-231, 75,235, 46, 23, 88, 82, 86, 7, 0,211,181, 90, 45, 35, 20, 10,137, 68, 34, 25,188,104,209, 34,221,128, 1, 3, 10, 29,192,
- 66, 66, 66, 16, 18, 18, 66,114,115,115,171,156, 59,119,174,202,142, 29, 59, 12,132,144,199,148,210, 67, 37, 91, 44,100, 49,249,
-249,234, 74, 18,169, 84,245,195,250,245, 43, 90,182,108,201,154,207,147, 88, 30, 78, 0,176,183,183,223, 92,163, 70, 13, 50,115,
-230,204,132,138,226,244,243,243, 59, 21, 18, 18,210,166, 67,135, 14,252,230,205,155,195,211,211,179,112,155,179,179, 51, 66, 66,
- 66, 72,108,108,108,157, 75,151, 46,173, 63,117,234,212,106, 63, 63,191,115,145,145,145, 29,254,206, 86,167,192, 82, 5, 43,132,
-211,166, 98, 2, 33,255, 59,141, 69,132,216,108,220,184,209,213, 52, 39,163, 94,175,135,209,104, 44, 92,155, 22,150,101, 97, 52,
- 26,177,104,209, 34,163,133,117,154,135,130,224,208,102, 11, 91,220, 90, 36, 18, 89, 22,185,151, 32,204, 67,156, 85, 83, 46,151,
-251, 2,232, 92,163, 70,141,233,230,155,171,187,188, 90,231,229,229, 69, 39,106,236,195, 0,180, 44,237,118, 95,184,112,225,208,
-249,243,231,247,192, 31,115, 86,214,238,219,183,239,185, 34,251,213, 46, 88,231, 17, 66,206, 51, 12,115, 4,192, 86, 0,127,178,
-186,203,100, 54,163, 39,126,250,137, 77, 92,154, 14, 95, 31, 76,195,214,139, 57, 24, 26,162,192,228, 15,236, 48,112, 64, 63,249,
-254,255, 29, 24, 13, 96,179,217, 33, 79, 2, 3, 3, 73,120,120, 56, 39,178,222, 45, 52, 4,224, 98,246, 95, 11,192, 52,101, 86,
- 90,193,115,225, 84, 36,221,124, 63,211, 58,181, 32,221,165,224, 56,106,198,155, 10,224, 86, 57,219,187, 11, 5,121,248, 19,248,
- 0,112,236,216, 49,218,165, 75, 23, 98, 90, 23,223,178,247, 57, 62, 98, 64,247, 78, 93,218, 54, 3, 35,113,192,179, 20,224, 90,
- 12, 5,159,209,131, 1,197,141, 43,231, 40,248,236,246, 34, 39, 46,209,122, 66,252,250,124, 94,187, 86,240,183, 63, 46,157,196,
-123,156,194,199,214, 75, 42,232,242,149, 72, 77,138, 65, 74, 66, 52, 18,227, 94, 34, 62,230,229, 3,128,204,179,148,243,207, 5,
- 7,140,108,193, 55, 32,139,130,250, 44,118,228,101,217,156,186,188,240, 42,254,193,193,153, 34, 35,160,203, 11,183,160,210,207,
-148,208, 0,183,175, 86,173,218,178,217,179,103,123, 63,122,244,200, 54, 47, 47, 47,239,196,137, 19, 23,162,163,163,221,220,221,
-221, 99,199,142, 29,219,204,203,203,203,181,103,207,158,178,125,251,246,205, 6,240,137, 5,156,193,221,155,212,187,182,101,245,
-119,242,244,253,107,160,141,184,143,227,137,121,184,146,172,162, 85,236,196,100,124, 29, 23,216,136,249,248,170,185,167, 77,231,
- 95, 34,190, 5, 48,176, 52,206,171, 87,175,122,200,100,178,149, 3, 7, 14,244,156, 56,113,162,200,200,183,231, 31,184,150,110,
- 55,125,253, 53, 79,149, 70,199, 27,208,166, 50,166, 12,170,141, 41,171,206,154, 68,214, 40, 63,191, 44,182, 56, 78,111,111,239,
-145, 44,203,250, 21,252,173,108, 90,183,189,156,187,216,236,148,133,233, 68,225,188,216,211,211, 19, 12,195, 68,198,197,197,109,
-182,244, 26, 73, 36,197,207,158,226,224,224,128, 86,173, 90, 33, 48, 48,144,223,178,101,203,218, 0, 14,149,196,169,211,105, 61,
- 88,150, 66,161, 80, 72,157,156,156, 28, 20, 10, 69,186, 78,167,123, 35, 78, 0,112,116,116,236,221,170, 85, 43,254,238,221,187,
-211, 34, 35, 35,111, 12, 24, 48,224,165,173,173,237,107,214, 95,185, 92,142,234,213,171,227,203, 47,191,228,119,234,212,169, 76,
- 78, 55, 55,183,246, 59,118,236, 0, 33,164,240,165, 93, 20,190,190,190,112,119,119, 71,231,206,157,249,189,123,247,110, 95,222,
-231,200,138,134,230, 76, 49, 22,173, 5,175,139,217,146,187,223,138,219,223,130,235,158, 98,178, 46, 73, 36,146,148,242,228,179,
- 8, 74,236,238, 20,139,197,133, 86,168,162,231, 42,142,147, 97, 24,204,153, 51, 7,132, 16, 8, 4, 2, 8,133,194, 98,215,173,
- 91,183,182, 54,159,177,132, 16, 70, 40, 20, 78,231,243,249,159,104, 52, 26,111,137, 68,146, 96, 52, 26,183,105, 52,154, 69, 5,
- 22, 81,251,226,238,221,146, 56,229,114,185,239,179,103,207,106,148, 84, 41, 26,141, 6,181,107,215, 6, 52,120, 92, 26,103, 68,
- 68,132,111,213,170, 85,253, 1,152,166,104,187, 72, 41,109,105,246,223, 28, 23, 41,165, 31, 20,252,126,250,226,197, 11, 95,147,
-208, 50,231,212,235,116,126,222,174,182,184, 23,165,198,214,139, 57,248,125,182, 39,218, 46, 74, 64,175,250,124, 4,250,216,192,
-160,211,251,247,237,219,119, 59, 0,255,130,151,100,207,190,125,251, 6,240,120,188,179, 0,126, 5,144,253,119,221,243, 28,231,
-155,161, 12, 45,226, 66, 8, 57,106,118,254,174,166,255, 51,102,204,152,181,120,241,226, 71,132,144,163,230,233,230,251,153,175,
- 11,218,155,163,148,210,174, 51,103,206, 12, 94,178,100,201, 55,166,125,255, 10,133,104, 77,215,161,109,106,190, 28,151, 98,108,
-193,231, 25,193,103, 8,248, 60, 0,148, 32, 58, 42, 2,185, 57, 89,151,233,203,255, 69, 90,102,201,234,219,188,110,189,218, 75,
-119,173,154,198,252,116, 73,133,172,188,124,132,223, 61,143, 91,231,127, 77, 50, 26,140,191,130,208,219, 0, 19,138,151,236, 19,
- 74,247, 27,203,127, 35,224,149, 85, 12,164,136,216,122,107, 95,185, 31, 4, 4, 4, 44,158, 51,103,142,239,221,187,119, 21, 57,
- 57, 57,169, 59,119,238,124,162,209,104,238, 2,248, 62, 38, 38,166,213,247,223,127, 47, 91,190,124,121,135,218,181,107,251,239,
-223,191, 95,101, 1,103,157, 47,134, 13,188,246,201,196,207, 36,143,247,173,131,232,113, 40,230,220, 79, 51,254,158,168,154, 13,
- 96, 21, 98,149,205, 83,243, 13,167,191,107, 85,137,169,172, 16,162,154,189,168,117, 89,150, 44,153, 76,182,114,199,142, 29,190,
- 13, 27, 54,100, 0,224,210, 83,131,120,250,250,107,158, 39, 23, 55, 39,205,131,156,144,146,165,193,164,117,247,112,226, 90,202,
-111, 69, 69,214,159, 12,129, 5,221,133,230,105, 71,142, 28,145, 1,248,147, 51,136,121,122,105,221,136,148,210, 76, 66,200,183,
- 34,145,104, 14, 33,132, 54,108,216,240, 94,173, 90,181,148, 14, 14, 14, 80,171,213,208,104, 52, 16, 10,133, 80,171,213,136,142,
-142,198,141, 27, 55,224,224,224, 96,213,181, 82, 42,149, 80, 40, 20, 96, 89,246,141, 57,141, 70, 35,217,176, 97,131,252,209,163,
- 71,242, 3, 7, 14,184, 77,158, 60, 57,189,102,205,154,183,251,245,235,247,220,213,213, 85,115,255,254,125, 92,189,122, 21,153,
-153,153,104,210,164,137, 69,156, 90,173, 22,124, 62, 31,106,181, 26, 98,177, 24,124, 62, 31, 6,131, 1, 44,203, 22,138, 47,165,
- 82,137,140,140, 12, 8,133, 66,104,181,218,191,253,126, 55, 89,180,204, 81, 90,247, 91,113,251,151,133,138,246,147, 42,173,187,
- 51, 43, 43, 75,106,111,111, 63,221, 18, 11, 29, 33, 4, 60, 30, 15, 66,161, 16,132, 16,180,108,217, 18, 35, 70,140, 64,253,250,
-245, 17, 17, 17,129, 61,123,246,224,214,173, 91, 16, 8, 4,133,251, 91,220, 63,209,186, 53, 79, 34,145, 92,237,222,189,123,240,
-236,217,179, 37,149, 43, 87,198,227,199,143,125,150, 44, 89, 50,253,204,153, 51, 61, 8, 33,239, 81, 74,217,178,173,244, 5, 93,
-130,175,186, 11, 59,107, 52, 26, 60,126,252,216,154, 99,254,132,106,213,170, 69, 51, 12,243,156,101,217, 75, 0,106, 83, 74, 91,
- 18, 66, 78, 0,144, 23,217, 53,143, 82,250, 1, 33, 36, 7,192, 3,134, 97,158,178, 44, 27, 93,156, 59,149, 66,161, 72,141, 75,
-201,113,115,178,145, 96, 72, 11, 27,180, 93,148,128, 62,239,137, 33, 22, 18, 60,137, 76, 66,181,170,149,201,189,203,135,222, 43,
- 16, 89, 13, 19, 19, 19, 1,224, 61, 0,145,177,177,177, 30, 38,161,197,225,221, 64, 81, 49,100, 18, 80,139, 23, 47,238, 90,156,
-184, 42,230,217,124, 45,125,201,146, 37,223,152,253,207,124,131,182,163, 21, 94,119,134,111, 93, 96,229,250, 67,104, 29, 59,118,
-172,116, 5,194,162,215,209,131,187,175,183,213, 17,223,224, 6, 45,204,172, 67, 20,161, 55,174, 2,160,219, 44,202,140,103, 55,
- 41, 35,147,111,219,240,205, 4,102,227,121, 21, 98, 19, 82,112,245,248, 54,164, 38, 70,109, 5,232,100,250,114,127,206, 27, 55,
-150, 85,250, 6,187, 58, 59, 33, 95, 71,193, 82, 0,127, 18, 91,111, 69,100,117,243,247,247, 95,120,237,218, 53,223,252,252,124,
-197,149, 43, 87,178,118,236,216,241, 92,171,213,254, 72, 41,221, 89,176,207,225,180,180,180,175, 40,165, 80, 40, 20,124,129, 64,
- 32, 45,205,153,147, 16, 82,255,139, 79,134, 94,254,118,195, 22,201,243,135,247,240,253,129,227,200, 82,169,140,231, 83,212, 61,
- 41,165, 71, 11,246, 57,123, 39, 77, 29, 79, 65, 43, 9, 24, 2, 15,185,192,157, 16, 34,161,148,230,151,240,229, 58, 96,224,192,
-129,158, 38,145, 5, 0,105,185,122,190, 74,163,231, 53, 15,114, 66,131, 54,125, 17,122,110, 63,246, 93,140, 71, 85, 23,217, 69,
- 63,121, 86,169, 53,202, 48, 76,164,153,104,170,124,228,200, 17, 89,183,110,221, 84, 0,204,187, 68,255,148,206, 48, 76,100, 25,
- 15,219, 92, 66,136,219,246,237,219, 25,189, 94,175,140,136,136,128,187,187, 59,220,220,220, 96,103,103,135,240,240,112,252,254,
-251,239,120,242,228, 9, 88,150, 69,221,186,117,173,186, 94,233,233,233,184,127,255, 62, 58,119,238, 50, 57, 53, 53,197,214,193,
-209, 41,239,242,165,139,203,203,195,201,178, 44, 1,128,224,224, 96, 4, 7, 7, 75,226,227,227,189,143, 30, 61,234,250,245,215,
- 95,199,248,250,250,238, 82,171,213,175, 89, 14, 44, 21, 90, 5,194,165, 80, 4, 74, 36, 18, 8,133, 66,228,228,228, 32, 57, 57,
- 25,185,185,185,175,250,114,236,237,223,138,208, 42,206, 66, 85,145,251,255,149,226,176, 56, 49, 69, 8, 25, 4, 96,186,133,101,
-129,193, 96,128, 80, 40, 68,227,198,141,177,102,205, 26,220,186,117, 11,191,254,250, 43,124,124,124, 48,108,216, 48, 48, 12,131,
- 71,143, 30, 89,155, 69,246,218,181,107,211,123,246,236, 25,188,125,251,118, 73,116,116, 52,158, 60,121, 2,123,123,123,172, 89,
-179, 70, 60,106,212,168,106,231,206,157,155, 11, 96, 89,153,101, 53, 27, 93,232,233,233,249, 81,237,218,181,255,180,143,187,187,
-187,221,201,147, 39, 93, 77, 2,172,232,136,196, 98,144, 53,119,238,220,239, 2, 3, 3, 87, 21,116, 23,134, 0,144, 83, 74, 91,
- 31, 56,112,128, 0, 64,159, 62,125, 40, 33,196,244, 66,122,176,127,255,254, 54,225,225,225,116,254,252,249,197,182,115,169, 41,
-137, 27,190, 91,179,241,187,111, 23,124, 33,154,210,217, 14,125,222, 19, 64, 34, 36,176,149, 9,176,104,245,102,253,157, 27, 23,
-239,123,120,120, 28, 5,208, 51, 49, 49, 17, 30, 30, 30, 74, 0, 79,121, 60, 94,164,209,104, 76,224,124,225,255, 93, 40, 78,139,
- 20, 88,149, 19,139, 19, 74,229, 17,106,230, 22, 47, 19,102,206,156, 25,188,120,241,226,155,111, 34,178,204,157,224, 9, 33,148,
- 16,210,154, 82,122,161,240,101, 90, 98,151, 97,161,237,139,241,112,119,115,118,156, 49,172, 57, 88, 22, 48, 24, 1,131,145, 34,
- 79,165,198,227,135,183, 84,144,144, 3, 22,229, 72, 44, 90,250,245,236,207,170,220,139, 99,144,144,169,195,133, 67, 27,105,106,
- 98, 84,111,250,114,223,199, 21, 37,178,220, 93,157,207,239,222,248, 21,110,189,212,194,200,190,210, 89, 44, 75, 11,127,191,133,
- 23, 78,117,103,103,231,229,215,175, 95,175, 44, 22,139, 21,207,158, 61, 51,238,223,191, 63, 65,171,213,174, 55,137,172, 2, 12,
-106,208,160,129, 94, 46,151, 67,169, 84,106,116, 58,157,178, 20,145,229,221,186,126,157,139,223,110,216, 34,201,215,106,145,173,
-214,128,231,228,250,154,200, 42, 64,179, 54, 53,188,188,136, 68, 1, 10, 32, 42, 71,151, 80,146,200, 2, 0,145, 72,212,110,226,
-196,137,230,253,219,112, 86, 8, 12, 50,177,192,120, 37, 44,141, 13, 61,183, 31,151, 30,165,177, 18, 33,207,232, 66, 95, 86, 41,
-171,236,113,113,113,155, 19, 18, 18,102, 38, 36, 36,204, 52, 19, 87, 81, 0,102,214,180, 19,254, 41, 61,200, 94, 52, 51, 33, 33,
- 97, 38,203,178,155, 45,168,218,132,129, 3, 7,198, 5, 5, 5,101, 7, 6, 6,102,167,167,167, 35, 44, 44, 12,153,153,153,248,
-254,251,239,241,248,241, 99,176,236, 43, 29, 88, 92, 55,138, 5, 2, 9,153,153, 25, 54,148, 82,100,102,164,203,103,207,158,109,
- 87, 30, 78,163,209,248,218,179,229,229,229,133,177, 99,199, 10, 85, 42,149,125, 76, 76,140,173,249, 54, 75, 57,181, 90,109, 97,
- 40, 12, 74, 41,180, 90, 45,178,179,179,161,213,106,241,252,249,243, 66,145, 85,112,254,183,102,209, 50,253,150, 74,165,201, 38,
- 7, 81,137, 68, 2, 66, 72,113,221,111, 21, 18,253,217,116, 46, 66, 8,149, 74,165,201,229, 16,135,101,150,199,194,235, 14,161,
- 80,136, 17, 35, 70,224,230,205,155,136,136,136, 0,143,199, 67, 94, 94, 30, 84, 42, 21,218,183,111, 15,145, 72,100,173, 69,139,
- 10,133,194, 65,179,102,205,146, 68, 70, 70, 34, 45, 45,205,228, 76, 15,163,209,136,201,147, 39, 75,197, 98,241, 32,107, 77,247,
- 9, 9, 9, 29,159, 61,123,230, 95,116, 73, 74, 74,202, 54,247, 41, 44, 47, 14, 28, 56, 64,250,244,233, 67,251,244,233, 67, 77,
-130,203, 82,100,197,133,109,248,245,240,209,211,159,127,185, 84,169,202,203, 69, 85, 79, 41,148,185,217, 88,180,248, 91,253,181,
-107,151,206, 79,159, 60,166,233,254,253,251,151, 0,120, 90,112,200,211,253,251,247, 15,253,242,203, 47,127, 70, 65,152, 7, 14,
-255, 30, 20,167, 69,204,159,189,138,232,222, 43,142,163,160,251, 80, 90, 78, 74,211,136,195, 86, 38,225, 85, 32,186,206,191,102,
-209, 42,181,241,169,214,175,158,155,179,211,185,237,107, 23,216, 28,125, 8,196,197, 70, 33, 53, 49, 26,239, 53,109,141,199, 15,
-239,129,213, 27, 15,210,103,251,203, 28,158, 78,252,250,214, 8,172, 25,244,105,171,166,181,176,244,168, 18,207, 66, 79, 34, 43,
- 53,113, 45,141,220,119,176, 34, 46, 16,169,210, 55,216,205,197,249,252,207,235, 22, 58,158, 8, 99, 16, 27, 27,133, 67, 63,175,
-130, 94,247, 39, 93,113,220,234,198,155,213,138,148, 89,201,208,230, 26, 33, 97, 84, 18, 43, 47,234,115, 23, 23,151,237,223,125,
-247,221,152,166, 77,155,202, 6, 12, 24,240, 44, 51, 51,243,107, 74,233, 62,179, 6,254,125,127,127,255,169,107,215,174,173, 22,
- 27, 27,139,223,127,255,253, 25,128,219,165,112,198,241,120,188,245,191,255,188,249, 11,105,149, 0,124, 63,235,115,195,129, 91,
- 97,221, 41,165, 39,204, 56, 3,219,213,174,113,244,235,169,227, 24,246,206,111,184, 31,157,140,151,217,154,223, 75,226, 76, 75,
- 75, 35,106,181,186,178,189,189,189,249,121,224, 33,207,211, 76,251,168, 70, 66,251,233,151, 61,243,117, 70,136, 5, 12,157,212,
-195, 55,225,198,175,251,156,210, 52,105,196, 52, 26,209, 90, 60, 83, 26,193,231,243,225,234,250, 71, 15, 82, 88,166, 85, 99, 31,
-108,110,222,188,201,240,120,188,215, 4,186,185,133,200, 90, 75,145, 53,176,148,179,168,208, 50,193, 96, 48,144,242,114,106, 52,
-154, 98, 99,142, 21,231,171,197,178,236, 95, 82,126,107, 44, 84,230, 93,134, 38,127,186,252,252,124, 87,169, 84,154,108,234,254,
-171, 40,139,214,155,140, 68, 44,173,251,210,154,252, 49, 12, 3,150,101, 33, 20, 10, 81,183,110, 93, 28, 61,122, 20,142,142,142,
-176,181,181,133,173,173, 45,164, 82, 41,156,156,156, 10,133, 22,195, 88, 60, 74,135,106, 52, 26, 31, 31, 31, 31, 60,127,254, 28,
- 18,137,164,112, 17,139,197, 8, 14, 14, 70, 94, 94,158,215,219,179,221,255, 53, 24,217,175, 93,143,117, 59,126, 25,114,244,232,
-177, 79,117,154,252, 90, 1, 1,254,244,246,181,115,247,167, 79, 30,211,137,147, 38,255, 45,152,172, 81,230,190, 86, 51,102,204,
-152, 85, 94,190, 25, 51,102,204, 42,206,194, 85, 94,193,133, 87, 93,125,166, 53, 10,133,150, 73, 65, 22,167, 36, 77, 34,107,235,
-154,249,182,191,220, 5,226,226, 34,113,122,223,234, 92,189, 78,155,201,178,122,223,151, 79,238, 1, 12,182, 89,148, 5,134, 54,
-234,209,185, 13, 57,253, 72,139,156,172, 84, 60,189,125, 50, 10,106,209,204,138, 20, 89,219,215, 45,112, 60,242,144, 32, 54, 54,
- 10, 39,246,172,202,214, 27,116,239,211,151,251,239,190, 9,247, 96,145,168, 71,191,154,246, 93, 63, 9, 73,128,145, 24, 49,232,
-113,248, 7,158, 33,164, 71,194,165,210, 71,134,153, 35, 53, 53,117,145,141,141, 13,179,108,217,178,143,243,243,243,231, 83, 74,
- 15,152,221, 56,237,171, 86,173,186,116,195,134, 13,222, 49, 49, 49,162,203,151, 47,103,156, 63,127,158, 2, 88, 92,198, 11,124,
- 26, 33,132, 87,191,178,215,132, 59, 81,241,221, 41,165,191,153,113, 6,119,109, 16,116,101,203,226,185, 10,253,149, 3, 80, 38,
-198, 98,230,149,184, 28, 0, 22,215,183, 94,175, 71,102,102, 38,244,202, 76,195,123, 30,121,217,243,251,186,106,146, 51,243,249,
- 2, 86,101, 8,180, 77,209,156,203,136,226,201,100,178,114,215,171, 80, 36,130, 94,175,135,151,151, 87, 97, 90, 78,174, 18,132,
- 16,120,120,120,148,245,176, 45, 4, 48,185, 89,179,102,164,113,227,198, 55, 86,173, 90,117,170, 52,177, 82, 30,139, 86, 89,176,
-148,147,101, 89,166,132,250, 37,229,229, 52,183,104,149, 37,180,222,166, 69,171, 56,209, 98, 46, 18,205,133, 80,121,124,180,254,
- 74,113,104,141, 8, 43,134,167,208,162,117,239,222, 61, 84,170, 84, 9, 58,157, 14, 10,133, 2, 10,133, 2, 54, 54, 54,200,205,
-205,133, 64, 32,128,149,101,102, 37, 18, 73, 76, 88, 88,152,191,139,139, 11,140, 70,227,107, 98,235,217,179,103,144,203,229,241,
-214, 90,180, 60, 61, 61, 79, 22,140, 58,124, 13,238,238,238,118, 21, 81,175,230,150,172, 62,125,250,148,235,195,108,221,226, 47,
-118, 0,216,209,183,111,223,237, 15,174, 29,123,207,195,195,227, 88, 96, 96, 32, 1, 0,110,132,225,187,101,205, 42,161,135, 45,
-181,136, 37, 74,107,246, 63, 21, 0, 41,248,159,106, 38,196,204,127,107,139, 73, 75, 95,188,120,241, 57, 51,255,174,212, 55, 44,
-130, 41,196,195,107,190,208,252,178, 44, 89,174, 78,142,231,126,252,126,190,237,190, 80, 32, 62, 54, 18, 23, 14,174,201, 54, 24,
-117,239,131,165,137,215,206, 28, 60, 0, 2, 21, 94, 30,184, 0,236,179,160,137, 64,253,250, 53,125,241,235, 35, 61, 82,227,158,
-129, 82,118, 43, 77,254, 89,245,198,141, 99,129,200,218,186,102,190,227, 47,247, 8,226, 98, 35,113,122,223,234,108,131, 81,247,
-126,121,130,157,154,240, 9, 33, 14, 60,185,100,253,144, 14, 13, 63,242,173,234, 13,150,234,193, 10, 41,122, 77,115,230, 63,189,
-163,250,213,167, 3,111, 31,171,100, 63,141,187,102, 89, 32, 80,165, 82,249, 21, 33,228, 23, 74,233, 99,179, 6,249,131,106,213,
-170,125,243,195, 15, 63, 84,142,143,143, 87,220,185,115, 39,103,211,166, 77,145, 44,203, 46,164,148,150, 57,138,138, 82,250, 57,
- 33,228, 71,243,120, 57,132,144, 58, 95,124, 60,240,218,192,225,159, 72, 34,207,236,128, 67,228, 99, 76,189,146, 96,124,154,169,
- 29, 64, 41, 77, 42,137,203,217,217,153,166,166,166, 70,101,101,101,249,203,229,114,164,167,167, 35, 35, 35, 3, 89, 89, 89,208,
-228,100, 26,156,140, 89,121,196,144, 1, 62,159,143,148, 88, 3,140, 70, 99, 82, 89,214,172,146, 70, 29, 2, 88,172, 86,171, 77,
- 34,171, 48,221,214,214,118,177,173,173,173,201, 71,107,115, 9, 47, 49, 83,120, 7, 82, 16,222,161,201,111,191,253, 22,222,169,
- 83,167,184,226,196,138, 88, 44, 70,126,190,117, 81, 66, 74, 26,197, 88, 30,206,146, 44, 90, 69,211,173,225, 52,117, 95,154,156,
-224,139,166,155,192,227,241,192,178,236,159,210,255,110,209, 98, 62, 58,176, 60, 34,231, 53,235,114, 25,129, 67,203, 51, 18,177,
-162, 45, 90,166,107, 33, 20, 10,113,248,240, 97, 12, 31, 62, 28, 70,163, 17, 50,153, 12, 54, 54, 54,144,203,229, 56,120,240, 32,
- 76,225, 31,172,201,162, 94,175,223,185,120,241,226, 89, 27, 54,108,144, 82, 74, 33, 18,137, 10,133,214,252,249,243,213, 58,157,
-110,167, 37, 66,171, 48,226, 59, 75,195,170,187,148, 62,234,176,184, 99, 74,240,215,178, 95,184,112,225, 80,150,101,123,160, 72,
- 8,135, 34,251,189, 22,250,161,180,240, 14, 0, 28, 22, 46, 92, 56,146,101, 89,211, 0,154,215, 70, 23,154,237,103,122,151,248,
-247,237,219,119,123,209, 81,135, 28,254,245,184,245, 15,206, 91,107,179, 64,165,164,160,189, 40, 20, 92,252,146, 69, 86,223, 64,
- 87, 39,231,115,155, 87,205,183,221,117, 19, 72,136,125,137,171,135,215,102, 27, 89,189,185,120,105, 97,101,203, 91,223,211,213,
- 30, 25,215,213,200, 73,139, 1, 40,238,188,185,200,234, 87,221,213,217,233,252,150,213,243, 29,247,223,101, 16, 31, 19,137,243,
- 5, 98,240, 77, 68,214, 96,145,168, 71,112, 13,239, 45,253, 63,104,238, 96, 71, 12, 48, 68,135,227,199, 97, 31, 33,180,155, 14,
-205,251,217,161, 81,103, 5,170,213,147,124,116,124,115, 70, 91,207, 16,242,137,165,214,173, 34, 34,171, 91,229,202,149, 23,220,
-184,113,195,151,101, 89,197,133, 11, 23,114, 55,108,216,240, 50, 63, 63,127, 53,165,244,152, 21, 47, 7,115,145, 85,127,198,168,
- 97,151,191,249,225, 71, 73, 88,232, 45, 44,221,121, 4,106,189,214,120, 50, 78,217,215,188, 91,177, 20, 75,201,153,213,171, 87,
- 87,158, 51,103,142, 40, 35, 35, 3,105,105,105,200,204,204, 44, 92,148, 74, 37,220,221,221,241,219,111,191,233,114,114,114,174,
- 91,240,178,169,240, 81,135,197, 65,161, 80, 64, 40, 20, 66,167,211, 21, 90,180,196, 98, 49,236,236,236,144,158,158,142,189,123,
-247, 2, 64, 70,169, 22, 54,161, 40,145, 97, 72, 37,169, 76,166,145, 72, 36,108,113, 86, 53,107, 57, 11, 16,247,193, 7, 31,120,
- 47, 92,184, 80,210,160, 65,131, 63, 89,180,202,195, 73, 41, 85,117,232,208, 65,182,122,245,106,248,250,250, 66,171,213,190, 38,
-168, 24,134,129, 80, 40, 68,108,108, 44,190,254,250,107, 80, 74, 85,127,119,203, 99, 46, 90,204,197, 80,129, 15,213,159,132,144,
-165, 22,163,178,186, 6,173, 29,137,104, 46,220,196, 98, 49,178,178,178,164,132,144, 65, 37, 68,176,183,216,162,101, 18, 90,143,
- 31, 63,198,246,237,219,209,185,115,103, 56, 56, 56, 32, 51, 51, 19,251,246,237, 67,120,120, 56, 68, 34, 17, 8, 33,214, 88,181,
-216,198,141, 27,127,123,233,210,165,110, 3, 6, 12, 8,154, 58,117,170,180, 86,173, 90,120,250,244, 41, 22, 46, 92,152, 31, 26,
- 26, 26,161, 86,171, 23,194,146,192,166, 5, 17,223, 77,193, 72, 45, 26,117, 88,228,152,162, 40, 33,188,195, 7, 37,176,153,135,
-126,120, 45,188,131, 57,174, 94,189,234, 87,185,114,229, 64,188, 26, 73,104,122,225,154,143, 46,124,237,101,156,152,152,216, 16,
-220,168, 67, 14,127,111, 91,119,129, 16, 82, 24,176,212, 36,190,254, 52,234,240,207, 71,146,201, 3,134,141,178,221,121,147, 32,
- 54, 58, 2,183,143,175, 47, 42,178, 44,105,108,218,153,199,218,144, 72,229,181, 88,242,106, 56,115, 78, 90, 44, 64,121, 86, 11,
-173,162,156,160,236,231, 3,134,142,114,220,125,155, 32, 33,246, 5,174, 28, 90,103,181,200, 50,231, 28, 44, 18,125, 41,224,145,
- 57, 93, 90,214, 23,182,168, 87, 3,242,148, 40, 36,197, 37, 96,239,227,212,140,136, 76,205, 39, 87,136, 14,209, 47, 52, 63,118,
- 30,233,232,232,224, 46, 64,215, 49, 78,142,215,143,228,252,234,245, 62,163,163, 58,186, 56,225, 50,157, 95,108, 62,255,124,206,
-234,182,182,182,203, 66, 67, 67, 93, 36, 18,137,237,237,219,183,141, 27, 55,110,140,205,207,207, 95, 78, 41,221, 99, 81,217,255,
-188,221,187, 97,141,170, 23,190, 89,183, 89,162,204, 83, 33, 79,171,131,216,205,195,248,203,181,135,189, 75, 10,128, 89,148, 83,
- 44, 22,239,222,179,103, 79,231,144,144, 16,223, 58,117,234, 48, 25, 25, 25, 80, 42,149, 80, 42,149, 38,171, 23, 30, 63,126,204,
- 70, 71, 71,199,139,197,226, 50,243, 89, 81,163, 14,205, 57,205,194, 59,204, 2,192, 16, 66,110,221,187,119, 79,217,169, 83, 39,
- 72,165, 82,228,229,229,193,199,199, 7, 6,131, 1,199,143, 31, 71,104,104,104, 30,203,178, 23, 0,220, 43,173,236,106,181,202,
-135, 16,194,168, 85,170,186, 67,135, 14,109, 53,101,202,148,215,134,164,187,186,186,194,209,209,209, 42, 78, 0,200,200,200,168,
-249,219,111,191,125,118,239,222,189,207, 59,119,238,108, 55,107,214, 44,177,159,159, 31,140, 70, 35, 83, 94,206,204,204, 76,187,
- 59,119,238, 44,111,209,162,197,184, 78,157, 58,241,191,249,230, 27,216,217,217,193,104, 52, 66, 42,149, 34, 39, 39, 7, 11, 23,
- 46,196,229,203,151, 13,148,210,117,217,217,217, 83,173,185,151,202,105,193,122,141,179, 36, 11, 80, 73, 66,168,184,253,255,142,
-124, 22, 17,110,176,183,183,159, 14, 96,122, 9, 17,236, 97,233,179,105, 18, 90, 60, 30, 15, 81, 81, 81,216,184,113,227,159,226,
-104,153,194, 63, 20,199, 93, 66,217,233,249,243,231,141,132,144,166,183,111,223,158, 62,100,200,144, 79,242,242,242,188,229,114,
-121,130, 94,175,223,166, 86,171, 77,113,180,132,214,180, 33,121,121,121,209,197,141, 58, 44,186, 15, 96, 95, 42,103,145,240, 14,
-175,133,112, 40,114,216,107,161, 31,138,134,119, 48,231,108,214,172, 89, 36,195, 48, 79, 10,186,224,159,160,200,232, 66, 51, 78,
-255,196,196,196,134, 30, 30, 30, 23, 0,200,138,142, 58,252, 59,238, 37,142,243,191, 45,182, 80, 90,192,210,226,143,130,228,204,
-141, 40,136,164, 25,184,255,251, 86,171, 69, 86,113,208,228,171, 34,230,238,142,169,167,213,228, 35, 47, 59,249, 41,141,220,147,
-242,230, 87, 27,242, 51,183,162, 33,145,103,225,238,153,159,178,140,198,252,247,105,196,255,238,149,159, 14, 51,127, 56,113, 64,
- 72,236, 28,113,255,179,225, 72,200,202,195,137,151,153,251,168, 74,243,233,142,130,185, 2,189,155,146, 75, 91,102, 39,173, 15,
-233,101,247,145,179,151, 0, 43,191,216, 6,201, 12, 39, 97,163,182, 45, 45,158, 3,209,228, 32,255,253,247,223,143, 13, 9, 9,
-177,249,232,163,143,158,101,100,100,188,230, 32, 95,142, 11, 29, 71, 8,249,225,216,134, 21, 95, 56,213,110,130,181, 95, 78, 51,
-238,190,246,176,232, 40,196, 82, 17, 24, 24,104,188,122,245,234,148,177, 99,199,174,108,219,182,173, 87,143, 30, 61,132,149, 42,
- 85,130, 88, 44,198,139, 23, 47,112,233,210, 37,221,203,151, 47,227, 85, 42,213,148, 58,117,234,148, 25,227, 44, 46, 46,110,179,
- 72, 36, 66, 88, 88, 24, 90,181,106,181,184,192, 98, 21,117,245,234,213,153, 57, 57, 57,200,201,201, 65,255,254,253, 11,211,199,
-143, 31, 63,179,106,213,170,200,200,200, 40,171,172,115, 9, 33, 27,240,106,174,195,164, 29, 59,118, 52, 61,116,232, 80,211,201,
-147, 39, 11, 59,119,238,140,235,215,175,227,244,233,211, 58,157, 78,119, 13,192, 53, 75,167,181, 41,136, 63,116,135, 16,242,112,
-233,210,165, 77,121, 60, 94, 97,196,251,176,176, 48,108,221,186,181, 60,156, 6, 0,203, 9, 33, 63,236,216,177, 99,238,153, 51,
-103, 62, 30, 58,116,168,173, 94,175,199,227,199,143,241,211, 79, 63,149,151,243, 51, 23, 23,151, 57,199,143, 31,223,118,234,212,
-169,158,131, 7, 15,102, 38, 78,156,136, 53,107,214,224,127,255,251, 31,107, 52, 26, 15, 9, 4,130,161,169,169,169,121,111,169,
-225,217, 84, 48,173,206, 38, 43,230, 60, 44,147,247, 77,186, 6, 45,204,119,226, 27, 55, 75, 5,229,104,221,186,117,161,149,145,
- 82,250,154, 95,157, 73, 96, 89,219,117, 8,192,190,224, 62, 93,135, 87,243,139,154, 71,133,231,225,143,200,241,150, 50, 6, 37,
-106,236,195,160,193,227,210, 39,149,182, 7, 40,130,202, 96,203,154, 59,119,238,119,243,230,205,251,174,104, 8, 7,243,157,138,
-134,126, 88,176, 96, 1, 74, 10,239, 0, 32,115,238,220,185,223, 22,180, 79,164,160,187,240, 61, 20,140, 46, 52,227,220, 94,144,
- 46,155, 63,127,254, 16, 0,165,113,114,224,240,183,161, 20, 31, 45, 58, 43,236,210,110, 61, 0, 39, 16,102, 38,125,177, 55,236,
-141, 27, 48,150,206, 56,187,107,254, 26, 80,100, 82,163, 97,122,133,148,128,229,205, 14,187,180,139, 5,136, 61, 8, 51,131,190,
-248,223, 27,231,147,216, 57, 34,119,225, 88,252,239, 81, 2, 77,202,211,127,184, 67,171,125,205, 26, 84,224,147,213,207, 51,132,
-236,117,240, 20,252,242,217,251, 78,228, 88,198, 16,171,207,147,154,154,250,141,141,141, 13,111,249,242,229, 31,171,213,234,215,
- 28,228,223,224, 37, 49,141, 16,194,107, 84,221,119,194,205,231,209, 61, 44,233, 46, 44,138,102,205,154, 37,134,135,135, 15, 60,
-125,250,244,128,139, 23, 47,182, 83,169, 84,149, 9, 33,144, 74,165, 81, 90,173,246,140, 88, 44,222,109,137,200, 50,127,161,152,
- 79, 17, 3, 0, 57, 57, 57,200,205,205,125, 45, 12, 1,240,202,191, 42, 53, 53, 21, 62, 62, 62,214,190, 16, 47, 18, 66, 66, 23,
- 46, 92,216,114,225,194,133,117, 11,172, 66, 23,203,219,101, 86, 32,120, 46, 74,165,178, 4, 66,136,183, 80, 36,206,187,122,245,
-234,153, 55,228, 84, 21, 88, 74, 86,174, 92,185,114,145, 92, 46,111, 24, 22, 22,246,251,155,112, 22,136,168,222, 78, 78, 78,158,
-219,183,111,223,191,101,203,150, 38,124, 62,255, 58, 33,164,111, 86, 86,214,219,158, 84,122, 52, 44,155,227,176, 76,139,145, 37,
- 22,177,242,226,175, 16,110, 70,163, 81, 57,103,206,156,148,162,194,171,168,245,202,244, 95,167,211,229, 91,248, 44, 89, 51,138,
-178, 12,145, 65,148, 0,240,106,238,194, 87,211,234, 88, 58,169, 52,128, 18,231,206,156, 55,111, 30, 93,176, 96, 1, 97, 24,230,
- 16,128,167, 12,195, 60, 47,234,172,110,190,109,193,130, 5,152, 55,111, 30,157, 63,191,228,111, 84, 19,103,120,120, 56,229,241,
-120,191, 3,136,228,241,120, 81,230,188,230,233,166, 99, 74,227,228,192,225,173, 11, 45,250,114,127, 44,128,225, 21,250,165, 24,
-185,255, 12, 94, 57, 50, 86, 28,103,212,158,104, 0,131, 43,138,143, 5,150,125,210,168,245, 23, 0, 8, 5, 86, 22, 21, 89,230,
- 72,184, 68, 15,121, 52, 39,139, 27,181,109, 57,185,192, 26,246,141,181,231, 43,206, 65,190, 2,196,214,159, 28,228,173, 69, 96,
- 96,160, 17,192, 14, 0, 59,138, 78, 42, 93,142,151, 14,164, 82,105, 97, 55, 34,195, 48,145, 89, 89, 89, 48, 89,180,204,211, 11,
-234, 4,118,118,118,229, 21, 50, 39, 8, 33,167, 40,165,198,138,168, 75,181, 90, 85,169,224, 5,199,171, 40,206,130, 65, 14,159,
- 84, 36,103,122,122,122, 2,128,102,213,170, 85, 19, 69, 68, 68,104,255, 41, 13, 76, 69, 88,135,254,106, 84,180,112, 43,248, 96,
-168,249, 23,212,229,211, 10, 38,252,169, 67,139, 32, 30,204, 99, 7,149, 53,169,180, 73,160, 81,252, 84, 66, 30, 41,121,165, 36,
- 41,128,237, 47, 94,188,240,101, 89, 54,186, 24,203,210,107,219,230,207,159,143,146, 98, 6, 22,225, 4,128, 95, 99, 99, 99, 61,
-141, 70, 99, 98, 17,222,215,210, 75,227,228,192,225, 31, 98,209,250,111, 98,167, 86, 59, 15,192, 60, 75,247, 79,188, 66,103, 3,
-152,253,134, 13,232,227,138, 46, 71,121, 68,214,254,253,251,141,127, 69,157,234,245,175,122,195,204,231, 46, 52,199,144, 33, 67,
- 54, 87,112,217,141,127, 65,125,254, 43, 56,255, 73, 34,139,195, 63, 27, 52, 51, 44, 22,192,151,101,238, 87,118, 52,248, 63, 9,
-163,130,159,153, 0, 50, 75,208, 58,165,109, 43,141, 19, 0,114, 0,228, 20,115,108, 73,233, 28, 56,188, 85, 48, 92, 21,112,224,
-192,129, 3, 7, 14, 28, 56,252, 53, 32, 0,218,149,240, 5, 97,241,104, 2, 66, 72,187,114,124,205,159,225, 56, 57, 78,142,147,
-227,228, 56, 57, 78,142,243,191,197, 89, 22,119,209,209,203, 21, 53, 61,215,223, 42,174,204,243,109, 26, 9,243, 87, 44, 0,218,
-113,156, 28, 39,199,201,113,114,156, 28, 39,199,201,113,150,243, 60,163,254,142,243,252,149, 11,231,163,197,129, 3, 7, 14, 28,
- 56,252,139,208,222,159,120,240,141, 96, 78, 68,208,248,138,224,251,160, 26,241, 2,128,138,226,251, 47,130, 16,226, 1,160,139,
- 89,210, 49,211, 96, 32, 78,104,253,123, 47,106,117, 0,179, 0,216,153, 37,223,164,148, 46, 46,178,223, 46, 0,230, 19, 18,230,
- 1, 88, 72, 41,125,110,205,249,120, 60,222,226,150, 45, 91,126,122,249,242,229, 21,122,189,126, 97, 57,242,235,235,225,225,241,
- 45, 33,164, 1, 0, 1, 33,228, 69,114,114,242, 98,189, 94,127,230, 13,234,160,138,187,187,251, 18, 0,245, 24,134, 17, 16, 66,
- 34,146,147,147,191,214,235,245,231,223,128, 83,225,230,230,214,156, 82,234, 14,128, 39, 16, 8,210,227,227,227,111,148,119,244,
- 92,223, 5,225,194,156, 60,131, 0, 0,108,229,124,253,254,121,129, 58, 75,211,184,187,156, 3,135,255,124, 67,207, 43,154,212,
-177, 42, 22, 17,138,169, 70,128,116,172, 66, 86,159,140,196,212, 18,143, 47,110,192, 77, 17,206,142, 85,177,136,210, 87, 28, 29,
-171,145,229, 39, 95,148, 49,184,203, 2, 78, 19, 54, 1,204, 40, 75, 38, 56,255, 11, 6, 6,189, 5,116, 49,239,226, 44, 8,192,
-188,169, 76,161,213,223,159,120, 24,249,224,239, 15,163,177,166,151, 16,128,186, 0,170, 3,120, 14,224, 30,165, 52,247, 13, 5,
-195,191,130,243, 31,136,185,148,210,129, 69,202,253,167,157,222,127,255,253,238,167, 78,157,146,153,166,103, 97, 89, 22, 82,169,
-212, 0, 96,152, 21,245,233, 58, 96,192,128, 25, 63,254,248, 35, 62,250,232,163, 57,132,144,239, 40,165, 74, 75,143,119,116,116,
-236, 83,165, 74,149, 53,155, 55,111,118,105,210,164, 41, 17,137, 68,120,241, 34,194,123,244,232,209,181,220,220,220, 14, 37, 39,
- 39,127, 98,109,225,157,156,156, 6, 85,173, 90,117,229,198,141, 27,157, 91,180,104, 1, 66, 8, 66, 67, 67,189, 63,251,236,179,
-186,238,238,238,123,146,146,146,198, 89,203,233,236,236, 92,163,106,213,170,109,214,174, 93, 43,109,222,188, 57, 36, 18, 9,238,
-221,187,103, 51,102,204, 24,119,119,119,247,199, 73, 73, 73, 23,172, 21, 89, 15, 66,143,244, 52,232, 52, 75, 1,128, 47, 20, 79,
-107,250, 93,206,145,140,208,139,221,202, 74,235,187, 0,191,114, 98,139, 3, 7, 14,230, 24,228, 9,119, 74,241,197,169,159,190,
-100, 0,160,195,199, 95, 77, 28,228,137, 21, 59, 19,144, 84, 65,124, 83,135,122, 97,205,246,120, 36,191, 73, 62, 55, 1,204,103,
-124,254,196, 70,141, 27, 59,143,191,114, 37, 66, 7,108,251,143, 24, 64, 70, 21,151, 94,162,208,234, 19, 68, 22,130,143, 89, 0,
-200, 7,213,201,158,211,145,188, 75,237,219,183,175, 54, 98,196, 8, 82,191,126,125,132,134,134,214,216,179,103, 79, 23, 62,159,
- 31, 97, 52, 26, 67, 1, 60,178, 52,170, 53, 33, 68, 0, 32,152,199,227, 53,248, 39,115,254,195, 33, 47, 40,119, 50,128,155, 38,
-139, 86,209,157,206,158, 61,123,152,207,231,155, 44, 90,141,242,242,242,220,138, 88,193, 44, 65,101,189, 94,143, 39, 79,158,128,
- 97, 24, 1, 0, 63,252,121, 74,141,146,174,139,183,183,183,247,250,107, 55, 67,157, 8, 95,138,204,124, 0,249, 58,136,108,220,
-240,227,214, 29,142, 83, 38,141,235,109,107,107,123, 41, 39, 39,231,103, 43,110,102, 63, 31, 31,159,239,238,223,191,239, 36,147,
-201,192,178, 44,114,115,115,225,238,238,142,205,155, 55,219, 79,153, 50,101,160, 84, 42, 61,175, 86,171,255,103,141, 56,175, 90,
-181,106,155,135, 15, 31, 74, 77, 19, 74,107,181, 90,120,123,123, 99,215,174, 93,226,137, 19, 39,214, 20,139,197,113, 26,141,230,
-165,165,156, 57,121, 6,129, 65,167, 89,186,125,221,252, 74, 0, 48,116,220,252,165,162, 92,219,227,150,164,229,228, 25,142, 1,
-224,132, 22,135,191,251, 69,209,192,217,217,249, 64, 90, 90,218, 5, 0,159, 84, 68, 8, 18, 66,136, 39,159,207,247,163,148,218,
- 23,252,207, 50, 24, 12,145,148,210,114, 7,212,117,174,214,166, 27,196,178,225,160,108, 93, 6, 0, 97,152,123, 70,157,106,107,
-218,211,115, 71,222,136, 83, 36,253, 24,160,117, 25,128, 37, 12,115,159, 53,168, 54,167,134,159, 59,241, 79,185, 62,215,179,225,
- 95,213,221,242,137, 49, 43,130,175,127, 21,120, 48, 44,152, 93, 81,176,184, 91,113, 2,208,121,210,164, 73,238,227, 62,253,148,
- 12, 31, 54,172,250,133,203,151, 73, 43,107,102, 43,248, 23,162, 52,135,253, 98,133, 86,223, 32,226, 0, 96,250,158, 53,179, 24,
- 62,143, 71, 6, 76, 90, 60,112,203,186,229, 76,251,110,125, 11,187, 79, 66, 66, 66, 16, 18, 18, 66,150, 46, 93, 90,253,247,223,
-127,175,190,107,215, 46, 3, 33,228, 62,165,116,111, 73, 39,235, 84,141,168, 89, 64,210, 37,128,159, 55,224,203,159, 55, 54,110,
-220, 24, 98,177, 24,111,194, 9, 0, 29,170,243, 94,118,110, 92,237,254,128, 9,115,163,155, 52,105, 70, 43,130,243, 95,132,155,
-148,210, 30, 5, 13,152,131,143,143, 79,115,131,193, 32, 1, 0, 62,159,159, 15, 96, 2, 45,152, 58,136, 16,114,136,101,217,238,
- 86, 52,144, 12,128,121,221,187,119,159, 51,126,252,120,248,248,248, 96,226,196,137,208,235,245,161,132,144,185, 0,150,148, 21,
- 16,208,213,213,117,238,250,245,235, 29,249, 34, 57,234, 79,143, 68, 98,150, 1, 0, 96, 35, 6, 14,143,165,152, 56,113,162,237,
-237,219,183,191, 6, 96,177,208,114,117,117, 93,184,121,243,102, 71,153, 76, 6, 74, 41,148, 74, 37,114,115,115, 11,231,100, 28,
- 55,110,156,237,227,199,143,191, 5, 96,177,208,114,115,115,107,190,118,237, 90,169, 68, 34,129, 82,169, 20,234,116, 58,146,155,
-155, 11,149, 74, 69,181, 90,173,110,194,132, 9,226, 71,143, 30,181, 6,240, 18, 28,254, 41,162,128, 7,224, 67,129, 64,208,171,
- 90,181,106,239, 61,127,254,252,174,193, 96, 56, 8,224,224,155,126, 76, 17, 66,218,122,122,122, 46, 74, 72, 72, 88, 75, 41,221,
-241, 95,169, 83, 55, 55,183,131, 87,175, 94,173,180,126,253,250, 97, 43, 86,172, 56,110,205, 51, 84,194,199,111,211, 70,141, 26,
- 57,247,234,213, 75,224,238,238, 14,149, 74,133,136,136, 8,217,153, 51,103, 92, 36, 18, 73,186, 70,163,185,102,205,181,114,246,
-111,110, 3,190,237,158,166,109,218,181,248,168,247,135, 10, 55, 39, 59,168,181, 70, 60,143, 78,244,249,237,248,225, 86,158,181,
-186, 92,213,233,178,251,167, 61,189,162,180,150,179, 77,167,174, 45,218,181,109,171,176,179,183, 67,118,158, 14, 47,162,226,125,
-207,157, 62, 18,226, 81,171,203, 69,150,232, 7, 39, 63, 56,165,122,155,215,102, 34,192,207,147, 56,213,169,219,172,254,237, 14,
- 35,190,126,143, 82, 10,134, 98,117, 81,107,214, 68,128,191, 26, 48, 88,203, 7, 74, 41, 33, 88,110,110,205, 42,236, 86,100, 64,
- 58,250,161,244,110, 74,211,251, 24, 16,219, 59, 58, 54, 30, 51,106, 20,201,205,201,193,189,123,247, 84, 69, 69,214,119, 94, 16,
- 94,100, 80,249, 80, 44,158,189, 75,214,172,162, 93,135,166,255, 22,199,209,146,201,100,197,166,219,217,217,161, 77,155, 54, 88,
-188,120, 49, 31, 64,131, 34, 10,239,245, 73, 86, 1,241,209, 13, 51, 97, 39, 23, 51, 62, 62, 62, 10, 91, 91,219, 55,230,124,149,
-200,250, 53,243,161, 31,220,250,121,214,176, 51,187, 86, 6,231,229,102, 9,138,238, 98, 99, 99, 3,127,127,127,204,153, 51,199,
- 50,206, 55, 87,183,127, 43,167,135,135, 71, 64, 72, 72, 72,131,179, 23, 46,216, 39, 36, 36,136, 19, 18, 18,196,167,206,158,181,
-111,218,180,105, 3, 15, 15,143, 0, 51, 14,107,242,249,213,186,117,235,230, 30, 58,116,136, 9, 9, 9,129,131,131, 3,218,180,
-105,131,227,199,143,243, 87,172, 88,241, 13,128, 57,101,229,147, 97,152, 22, 33, 33, 33, 4,148, 34, 41,219,128, 27,139, 3,112,
-111,121, 32,114,243, 41, 50,178,115,160, 86,231, 67, 38,147, 73, 10,186,123, 45, 45,123,179,166, 77,155, 18, 0,133,226, 42, 55,
-247,213,162, 84,230, 65,171,213, 65, 44, 22, 43, 8, 33, 18, 75, 57, 41,165,238,205,155, 55, 7, 0,232,116,186,194, 47,188,172,
-172, 44,146,157,157, 13,173, 86, 11,129, 64, 32, 36,132,240, 45,229,180,149,243,245,124,161,120,218,208,113,243, 99,135,142,155,
- 31,203, 23,138,167,105, 21, 57, 70, 75,210,108,229,124,253,219,188, 63, 9, 33, 46, 60, 30,239,167,106,213,170, 61,230,241,120,
-219, 9, 33,238,111,194, 73, 8,105, 72, 8,249, 70, 38,147,157,169, 89,179,102,172, 92, 46, 63, 75, 8, 89, 66, 8,105, 90, 30,
- 78, 66,136, 72, 38,147,157,253,230,155,111,246,223,189,123,247,163,223,127,255,221,239,193,131, 7,189,151, 46, 93,186,199,198,
-198,230, 18, 33, 68,246, 38,207,166,159,159,223,150, 27, 55,110, 52,108,214,172,217,143,132, 16,113, 69, 60,239,132, 16, 30, 33,
-164, 30,177,112,174,161,191,251,186, 19, 66, 60,235,215,175, 95, 73, 34,145,160, 93,187,118, 0,208,250, 13, 57,155,142, 25, 51,
-198,125,202,148, 41,130,123,247,238,225,199, 31,127,196,161, 67,135,144,146,146,130,174, 93,187, 10,223,127,255,125,119,177, 88,
-220,212, 42, 78,190,237,158, 73,159, 77,238,244,197,196,145,138,251, 49, 58,108, 61, 19,131, 95,175, 37, 34, 69, 37, 66,183,222,
- 67,237, 58,246,232,215, 81, 36,182,219, 99, 45,231,140,233,211, 59,141,250,120,160, 34, 44,145,197,225,235, 73,184,254, 36, 27,
- 6,129, 61, 58,247,254,196,161,110,243, 78, 93,248, 16,108,123,219,215,104, 51,208,100,210,164, 73, 46,211,150,239,188,226,217,
-240,195,213,169,153, 8, 49, 23, 62, 53, 0,123, 71,185,252,195, 39,173, 90,141,148,190,154,243,177, 84,206,215,248, 26,244, 88,
-147,146,137,150,230,254, 89, 45, 29, 81,189,160, 91,145,119,234,167, 47, 25, 74, 48,113,144, 39,220,203,202,231,121,224,163, 73,
-147, 39, 11,236, 28, 28,176,110,221, 58,104,242,242, 94,243,153,109, 91, 9,157,206,200,248,113, 85, 2,189, 31,183,241, 37,151,
-222,193, 15,192, 81, 37, 90,180,142, 29, 59, 70,187,116,233, 66, 0, 96,127, 24,205,236, 19, 68,190,237, 55,254,155, 57,132, 33,
-180,114,112,179, 48,175,170, 65,121, 78, 78, 78, 80,169, 84,208,104, 52, 16, 10,133,200,207,207, 71, 76, 76, 12,174, 95,191, 14,
- 7, 7, 7,171, 50,147,147,147, 3, 27, 27, 27,216,216,216, 84, 8,231,204, 97,237,196, 47, 98, 83,197, 39,175,159,111,245,253,
-167,255,107, 82,181, 94,235, 7,109,251, 77,124,104,235,226,153,255,224,193, 3, 92,189,122, 21,153,153,153,104,220,184,241,187,
-114, 61,111, 22,180,215, 55, 9, 33, 14, 33, 33, 33,222, 39,207, 92,116, 80,230,179,182, 81,201,122, 1,203,178,144,201, 60, 12,
-123, 15, 28,206,254,168,119, 55, 66, 8, 73, 1,112,179, 64,220,222, 44,227, 70,145, 0, 8,232,211,167,207,140, 79, 63,253, 20,
- 17, 17, 17, 24, 57,114,164,250,230,205,155,233,205,154, 53,115,218,188,121,179,116,202,148, 41,184,112,225,194, 60, 66,200, 47,
- 0, 34, 41,165,249, 37, 52, 26, 66,161, 80, 8, 67,129,108,208, 25,217, 66,125,159,147,147, 3,170,206,132, 80, 40,228, 1,112,
- 1, 96,145, 31, 29,203,178, 66,129, 64, 80, 40,178, 98,146,115, 16,147,162, 66,142, 82, 11,181,218, 0,173,154,130, 39,115,226,
- 3, 81,110, 0,162, 44,172, 79,158, 68, 34,129,193, 96, 40,156,127,209,100, 41,211,106,181,200,206,206, 6,143,199,179, 1, 96,
- 11, 32,195, 18,194, 87, 78,238,248,181,160, 27, 16,183,118,118,119,126,126,108,166,174,207,252,199,133,105,182,114,190,254,192,
-148,154, 60, 39,239,186,151,235,125,180, 45,208,148,246, 54,253,179, 8, 33, 98, 23, 23,151,115,251,247,239,175, 89,189,122,117,
- 68, 70, 70, 6,246,237,219,183, 49, 33,164,158,181,115, 50, 18, 66,100, 12,195,124, 59,124,248,240, 79, 7, 12, 24, 64,106,212,
-168, 1, 62,159, 15,131,193,224, 29, 17, 17,209,102,223,190,125,211,249,124,254,102,163,209,248,185,165,126,127,132, 16, 70, 36,
- 18,237,221,184,113, 99,203,198,141, 27, 99,251,246,237,184,121,243, 38,219,176, 97, 67,102,200,144, 33,240,245,245,109, 60,100,
-200,144, 95, 9, 33,157,203, 99,217, 34,132,248, 14, 26, 52,168, 18,143,199, 67,179,102,205,132, 87,175, 94,173, 15,224,234, 27,
-214,169,141,183,183,247,133,214,173, 91,215, 59,115,230,204, 29, 66, 72,107,107,252, 28, 9, 33, 61, 60, 61, 61,151,218,217,217,
- 57, 88,209,198,170,226,227,227,167, 90, 49,135,106,147, 6, 13, 26, 32, 58, 58, 26, 1, 1, 1, 16, 10,133, 77, 9, 33,163, 1,
-116, 2, 48,219,154, 25, 44, 8, 33,158, 77,155, 54,117,110,221,186, 53, 89,178,100, 9, 0, 64, 32, 16,192,104, 52,130, 97, 24,
- 8, 4, 2, 4, 6, 6,146,151, 47, 95, 58, 18, 66, 60, 45,233, 70,116,174,214,166, 91,179,182,157, 90,180,108, 92,135, 89,113,
-224, 57,140,172, 17, 60, 98, 0,159,176, 96,245, 98,136,133, 60,212, 8,126,143,247,228,209,253,198,206,254,237,187,165, 61, 61,
-125,196, 18,206, 78,221,186,135,212, 12,168,193,124,255,235, 11,100,197, 63, 54,198,135, 95, 76, 99,120, 12,106, 54,120,223,185,
- 70, 80, 61, 94,189,198,173, 5, 9,145,143,218, 56, 86,111,213, 46,227,249,133, 51,111,227,153, 92, 0,240,188,189,156, 63,236,
-218,190,181, 48, 49, 33, 33,111,223,129, 35, 15, 85,122, 92, 7,128, 11, 0,233, 12,212,169,221,168, 81,171,205, 75,150, 56,121,
-120,120, 8, 6, 15, 24, 96,216,116,231,206,157, 81,128,177, 36, 62,103,119,247,118, 99,198,140,225, 37, 38, 36,208,125, 7,143,
- 61, 48,241, 1,128, 12,168, 93,199, 59,176, 43,242,158, 88,213, 77,217, 13, 16,185,185,187,215, 28, 61,122, 52,146, 18, 18,176,
-125,199, 14,101, 62,112,205,100,197, 58,204,195,218,160,170,238,195,167,125,210,157, 84,242,112,198,152,121,155,154,182,209,165,
- 84, 61,135, 63, 44, 91,230, 90,228,223, 42,178,138,138,173, 18,191,206, 15,132,209,185,182, 34,226,183,111,223,110, 38, 53, 87,
-151, 23, 17, 17, 1,103,103,103,120,120,120,192,206,206, 14, 97, 97, 97, 56,123,246, 44,158, 62,125, 10,150,101, 81,183,110, 93,
-171, 50,148,150,150,134,251,247,239,195,193,193,161,194, 56,171, 86,114,193,248, 74, 46,194,228,244, 28,225,153,155, 79, 27,111,
-154,217, 59,136, 9,236,189, 37, 63,255, 15, 13,160,213,190, 27, 51,148,152,143, 46,244,241,241,105,190,117,235, 86,161,198, 0,
- 69,141,209,215,150,229,229, 27,229, 0, 32,151,240,242, 66,151,250,127,254,213, 87, 95,229,125,252,241,199,129, 49, 49, 49,139,
-203,226, 21,137, 68,139, 62,248,224,131, 47, 40,165,130, 73,147, 38, 1, 0,134, 14, 29,154,115,253,250,245, 26,148,210, 20, 66,
-136,231,136, 17, 35,158,157, 59,119, 78, 54,121,242,100,158,193, 96, 8,227,243,249,148, 16,178,144, 82, 58,191, 40, 31,195, 48,
-183,239,220,185, 83,217,211,215, 31,190, 78, 12, 66,230,188,154,174,205, 73,198, 34, 46,234, 5,194, 31,220,132,187,187,187,157,
-135,135,199,227,128,128, 0, 93,124,124,252,116,165, 82,185,190,180, 60, 10,133,194,123,161,161,161, 30,190,190,190, 80, 42,149,
-136, 75, 85, 97,226, 65, 25,114,212,175,140, 24, 2,168, 81,175,146,191, 66,202,104,111,186,185,185,233,180, 90,237,151, 89, 89,
- 89,165, 78, 35, 34, 16, 8,210, 31, 60,120, 96,227,227,227,131,252,252,124,154,145,145, 65,242,242,242,144,155,155, 75,142, 29,
- 59,214, 51, 49, 49,177,161,159,159, 31,241,246,246, 94, 88,189,122,117,117,124,124,252, 72, 75,124,192,246,207, 11,212, 17, 66,
-140,124, 62,127,197,168, 81,163, 62,250,229,151, 95,110, 31,152, 95,179, 7,165, 84, 87,240, 64,218, 5, 7, 7,159,172, 83, 39,
-200,115,199,242,218,171, 41,165,203,254, 1,183,215,240, 89,179,102,213,116,116,116,196,152, 49, 99,176, 96,193, 2,204,157, 59,
-183,250,152, 49, 99, 70, 1,248,206,138, 70, 71,234,238,238,126,235,251,239,191, 15,108,222,188, 57,142, 31, 63,142,221,187,119,
-227,229,203,151, 6, 63, 63, 63,126,227,198,141, 49,111,222, 60,116,236,216,113,228,132, 9, 19, 90, 17, 66,234, 91, 40, 62, 62,
-158, 55,111, 94,143, 22, 45, 90, 96,216,176, 97,154,243,231,207,127, 4,224,212,233,211,167,223,191,112,225,194,129,157, 59,119,
- 74,191,249,230,155,118, 83,166, 76, 25, 3, 96, 77, 57,202,223,179,101,203, 87,115, 40,183,104,209, 2, 75,151, 46,237,248, 38,
- 66,139, 16, 34,114,114,114, 58,182,125,251,246,122,254,254,254, 24, 60,120,112,253,143, 62,250,232, 24, 33,164, 61,165,212,162,
- 6,201,203,203,235,219, 67,135, 14, 85, 43,169,103,161, 56,104, 52, 26,199, 15, 63,252,112, 9, 0,171,132,214,174, 93,187, 48,
-117,234, 84,212,173, 91,183, 78,147, 38, 77, 54,140, 30, 61, 26,125,250,244,105, 75, 8,113,163,148,230, 89, 66,196,231,243,253,
-186,118,237, 42, 56,120,240,224, 43,235, 72,203,150,104,215,174, 29, 30, 62,124,136,203,151, 47,131,199,227, 65, 46,151,163,121,
-243,230,162,132,132, 4, 63, 0,101, 10, 45, 70, 44, 27,222,163,107,103,197,225,235,137, 48,178, 6,188, 87,205, 22,141, 3, 93,
-241, 36, 46, 7,161,143,227, 96,212, 10, 97,235,232,132,166,173, 58, 56, 38,197,191, 28, 14,160,108,127, 45,177,108,120,175, 30,
- 93,108, 14, 95, 75, 64, 86, 66, 56,125,126,243,151,179,250,252,188,145, 0,112,251,247, 61, 27,220,157,164,237,107, 52,120,143,
-215,186,125,119,135,131,187,147,134, 3,120, 43, 66,235, 66, 37,108,244, 21,164, 13,157, 54, 48,132, 10, 28,188,111, 42,244,250,
-181,166,109, 29,129, 14,211,103,205,106,242,201,168, 81, 18,150,101,177,243,231,159,115,238,223,185,243,164,180,209,126,107, 1,
-223,143,122,244, 16, 43,108,109,241,217,196,137, 80,232,245,231, 10,171, 4,104,251,217, 23, 95, 52, 31, 55,110,156,116,195,194,
- 79,111,119, 28,241,117, 3,150, 82, 82, 92, 55,101, 81,156, 1, 26,142,232,209, 3, 10, 91, 91, 76,154, 52, 9, 68,167, 59,105,
-218,118,148,143,115, 31,247, 12,105, 60,176, 91, 11, 16, 16,236, 62,122, 25,207,163, 83, 31,156, 75,196,139,119,228,157,108,157,
-143,150, 9,185, 58, 36,183,237,210, 27,119,238,220, 1, 0,164,167,167, 35, 61, 61, 29,213,170, 85,195,154, 53,175,183, 95,229,
- 17, 48, 44,203, 86, 56, 39, 0,184, 57,217, 98,112,231, 70,252,203,247,119, 75,242, 82, 83, 37, 54, 54, 54,249,239,154,208, 50,
-135,193, 96,144,248,249,249, 33, 71, 13,146,173,210,219,164,237,121,101,241,119,238,127,222, 70,171,213, 50, 54, 54, 54,208,104,
- 52, 18, 11, 94, 8,130, 30, 61,122,124,177,119,239, 94, 65,120,120, 56,170, 86,173, 10,157, 78,135,235,215,175,199, 21, 76,132,
- 12, 74,105, 2,143,199, 75, 96, 89,182,122,221,186,117,177,120,241, 98, 4, 6, 6,146,206,157, 59, 79, 47, 16, 91,175, 61,220,
-137,137,137,223,142, 30, 61,250,253,125, 7,126,113,220,216, 79,141,156,236, 28, 40,149, 74,220,187,123, 27, 25,201,249,216,180,
-105, 19, 36, 18, 41, 1, 32, 76, 73, 73, 22, 78,158, 60,121,181,183,183,119,167,184,184,184,174, 37,229, 51, 33, 33, 97,209,184,
-113,227,154,238,217,179,199, 62, 55, 55, 23,106,117, 62, 50,242,100,120,188,234,213, 60,190, 53, 63,123,140,117,107,215, 51,181,
- 43,203,157, 85, 42, 21, 62,253,244,211,149,158,158,158,205, 19, 18, 18, 70,148,196, 25, 31, 31,127, 99,252,248,241,110, 59,119,
-238,148,104,181, 90,157,209,104,132, 90,173,102,246,236,217, 51,189,114,229,202, 14,155, 55,111, 38, 18,137,180, 96,223, 56,225,
-216,177, 99,247,186,187,187,239, 76, 74, 74, 26, 86, 86,119, 17,143,199, 91,181, 99,199,142, 33,253,250,245, 83, 36, 38, 38, 6,
- 29, 58,116, 72, 12, 64, 93,176,139, 71,251,246,237, 43, 47, 95,190,220, 37, 56, 56,120, 58, 33, 68, 64, 41,253,230,109,222, 79,
-206,206,206, 19,122,244,232,129, 37, 75,150,224,200,145, 35, 83, 28, 29, 29, 87, 46, 88,176, 0,158,158,158,227, 9, 33,171,172,
-152,168,119,217,119,223,125, 23, 24, 24, 24,136,161, 67,135,106,207,156, 57, 51, 11,192,175, 0,162, 47, 93,186,228,179,109,219,
-182,110,123,247,238, 93,242,253,247,223, 75,214,172, 89, 83,173,119,239,222,171, 0,140, 40,243,249,118,115,155, 60, 96,192, 0,
- 44, 95,190, 28,231,207,159,239, 77, 41, 61, 94,176,233, 4, 33,164,219, 55,223,124,243,251,156, 57,115,240,221,119,223, 77,178,
- 86,104, 17, 66,108,106,214,172,249,101,167, 78,157,112,233,210, 37,132,132,132,160,105,211,166, 83, 8, 33,171, 41,165,105,229,
- 16, 89,140,141,141,205,222,173, 91,183,134, 84,174, 92, 25, 95,127,253, 53,190,248,226, 11,108,217,178, 37,100,240,224,193,123,
- 9, 33,189,138, 62, 51,197,193,206,206,206, 70, 38,147, 97,250,244,233,244,229,203,151,153,101,237, 95,169, 82, 37,135,149, 43,
- 87, 18, 7, 7, 7, 59, 75, 69,177, 68, 34,105, 86,171, 86, 45,204,155, 55, 15,167, 79,159,198,156, 57,115, 80,171, 86, 45, 68,
- 71, 71,163,127,255,254,178,217,179,103,247, 1,176,213,194,151,142,157,147,147, 19, 82, 82, 82, 32, 16, 8,208,188,121,115,252,
-250,235,175,208,104, 52,112,117,117, 69, 86, 86, 22, 26, 53,106,100, 18,101,118, 22,190,202,106, 57, 59,218, 33,229, 81, 60,248,
- 48,160, 65, 13,103,156,123,152, 14,157,158,133,171,147, 61,146, 82,146,209,164,150, 55,180, 90, 31, 80,202,214,178,132, 81,196,
- 99, 26,136, 37, 82,100,228,166, 33,254,241,249,116,157, 81, 51, 58,235,229,229, 88, 0,112,172,218,114,244,237,203,167,111,247,
-237,210,210, 85,153, 87, 9,132,178,141,222,198,243,216,215, 7,149,228, 18,254,208,163, 27,103, 18, 3,203,226,131, 17,139, 26,
-118,114,131, 10,201,128, 11,224,215,183,127,255,102,159,127,254,185,232, 89, 68, 4, 59,121,226,196,172,187,183,110,157,255, 13,
-184, 93, 26,167, 18,168,222,190,125,123, 48, 0,126, 59,117, 42, 47, 13,136, 3, 0, 55,160, 82,247, 15, 63,108, 57,107,198, 12,
-209,139,168, 40,246,122,132,242,240,139, 20,186,184,153, 35,238,239,137,126,181, 79,105, 48, 2,181, 77,188, 39, 79,158,164,234,
-130,124,180,174,132,241, 29,155, 7, 55, 30,210,163, 37,226,146,210,177,244,199,195,120,240, 44,241,164, 19,139, 65,239,202,123,
-184,180, 8,246,140, 5, 15,204,159,210, 84,170, 63,247, 30,188,169,128,249, 43, 56,139,195,187, 40,180, 76, 48, 77,222,172,213,
-179,208,234, 89,211, 87, 45,212,106,181,165,138, 92,127,242,228,201,237, 19, 39, 78,196,202,149, 43,241,236,217, 51, 8,133, 66,
-212,170, 85,203,131, 16, 98, 99,178,192, 52,104,208,192,149, 97, 24, 60,121,242, 4, 43, 86,172,192,199, 31,127, 76,175, 94,189,
-186,165,184, 23, 6,165,244,110, 70, 70,198,218,209, 35, 63,206,202, 76,142,129, 94,157,137,148,248, 23,208,228,101,225,235,197,
-223, 66,165,231, 35, 41, 91,135,164,108, 29, 24,177, 35, 54,108,222,202,171, 89,179,102, 39, 62,159,223,181,148,124, 94, 79, 78,
- 78,222, 60,118,236,216,172,164,164,164,194,242,105,245, 20, 90,253,235,247,171, 76, 38,195,170, 85,171,236,106,212,168,209, 67,
- 32, 16,180, 41,133, 51, 49, 54, 54, 54,124,236,216,177,218,228,228,100,100,103,103,227,240,225,195,221, 42, 87,174,236,176,100,
-217, 74,146,167,227, 35, 41, 75,135,164, 44, 29, 68, 54,174,216,123,224, 23,158,191,191,255, 64,129, 64,208,180, 44,145,181,115,
-231,206, 33,253,250,245, 83, 44, 91,182, 44,227,208,161, 67,235, 40,165,230, 23,228,201,170, 85,171,246,237,221,187, 55,247,139,
- 47,190,112, 92,186,116,233, 20, 66,200,172,183,216, 88,180,233,215,175, 95, 0,203,178,216,191,127,255, 3, 74,233,119,191,252,
-242,203, 45,141, 70,131,254,253,251,251, 21,116, 35, 89,194,211,112,224,192,129,159,134,132,132,224,179,207, 62,211,157, 57,115,
-166, 1,165,116, 37,165, 52,138,190, 66, 52,165,116,245,133, 11, 23,234, 78,152, 48, 65,211,168, 81, 35, 12, 27, 54,236, 99, 66,
- 72, 72, 25,188,205, 6, 12, 24, 16,200,178, 44,246,236,217,115,223, 76,100,153,174,227,217, 3, 7, 14, 92,215,106,181, 24, 52,
-104, 80, 21, 66,200,251, 86,148, 93, 40, 22,139,247,127,245,213, 87,246,241,241,241, 24, 50,100,136,230,201,147, 39,152, 63,127,
-190,212,206,206,238,184,233, 25,176, 6, 98,177,120,211, 15, 63,252,208,163,118,237,218, 24, 59,118,172,118,253,250,245, 19, 63,
-253,244, 83,109,131, 6, 13,176,110,221,186, 30, 34,145,200,170,169, 69, 18, 18, 18,178,194,194,194,156,202, 90,226,226,226,146,
- 45, 44,179, 76,161, 80, 92, 11, 14, 14,206,169, 85,171,214,123, 6,131, 1, 97, 97, 97, 47,182,111,223,206,214,170, 85, 11,107,
-215,174,197,210,165, 75,209,181,107, 87,240,120,188, 62,214,228, 53, 47, 47, 15, 18,137, 4, 66,161, 16,161,161,161,208,104, 52,
-144,201,100,144, 72, 36,224,241,120,176,183,183,135, 66,161, 0, 44, 28,141, 70, 8,104,142, 74, 15,129,128, 1,159, 97, 17, 30,
-157, 13,157,158,133, 68,200,131,128, 79, 0,202,194, 94, 46,128, 68,196, 3, 67, 8,107, 33, 39,178,243,116, 16, 9, 25, 8,132,
- 34,194, 24,140,210,194,151, 35,223, 40,149, 74, 69,196,217, 86, 12,137,240, 31, 52, 45, 48,121, 85, 95,195, 1,129,220,199,231,
-163,229, 43, 86,136,114,148, 74,244,238,221, 59, 35,234,214,173, 29,106,224, 86,171, 50,234,148,225,243,107,180,110,213, 10,161,
-119,238, 32, 55, 51,243, 57,240,202, 57, 94,228,233,217,111,213,170, 85, 34,117,126, 62,122,247,234,149,245,236,242,229,157,177,
- 74, 28,181, 68,100, 1, 0, 79, 40,116, 55,241,102,103,102,102, 2,175, 66, 72,184,185,216, 44, 25, 55,176, 35,114, 85,249,152,
-246,237, 14,246, 78,120,226,248, 75,113,232,242, 75, 2,178,223,165,119, 48, 33,100,148,249, 98,145, 69,203,100,117,178, 68,172,
-104, 52,154, 10, 23, 64,111,202, 89,156, 72,124, 83,206,127, 34,248,124,126,254,211,167, 79, 69,182, 78,158,172,147, 66,144, 89,
-249,227,203,118, 0,224,104,195,207,214, 25,245,108, 66, 66, 2,196, 98,113,190, 37, 92,249,249,249, 35, 9, 33, 95, 3, 8,226,
-243,249, 71,183,110,221, 74,118,236,216,225, 48, 96,192,128, 8, 66, 72,124,112,112,176,239,214,173, 91,109, 1, 96,245,234,213,
-116,239,222,189, 29,241, 42,100, 70,137, 38,229,164,164,164,249, 2,129,224,234,184,113,227,214,136, 68, 34, 7,185, 92,238,116,
-233,210, 37,146,175,163,104, 56, 43,186,112, 36,162,173,148,193,197,153,182, 24, 53,106, 20,239,241,227,199,139, 1, 28, 45,133,
-115,186, 88, 44,190,244,236,217,179,149,118,222,245, 92,228,190,179,236, 26,207,124, 2, 0,240,117, 22,128, 41,104, 23,179,178,
-178,144,154,154,138, 79, 63,253,212, 33, 34, 34, 98, 58,128,115, 37,113,198,197,197, 93, 16,139,197,113,143, 30, 61,106, 45, 16,
- 8, 68,114,185,188,225,181,107,215, 72,190,150, 69,157,233,209,200, 80,190,202,167,163, 13, 31,183,191,114,195,248,241,227,249,
-207,159, 63,255, 22, 64,139, 98, 27, 51,134, 89,106, 46,178,166, 77,155,118, 15, 64, 21, 66,200,107, 93,163, 70,163,145, 12, 26,
- 52,232, 33,128, 90, 95,124,241,133, 35,165,116, 10, 33, 36,131, 82,186,241,239,190,151,108,109,109,151,140, 30, 61, 26,123,247,
-238, 69,102,102,230, 42, 0,200,201,201,249,110,215,174, 93,123, 70,142, 28,137,159,127,254,121, 9, 33,228, 55, 11,172, 90, 31,
-244,239,223, 31, 39, 78,156,192,239,191,255,254, 37,165, 52,172,132,103,244, 25, 33,100,250,161, 67,135,190, 31, 48, 96, 0,126,
-250,233,167, 78, 0, 74,115,144,109,223,177, 99, 71, 28, 63,126, 28,233,233,233,235,138,219, 33, 43, 43,107,253,225,195,135,155,
-116,236,216, 17,139, 23, 47,110, 15,224,172, 5, 13,100,160,157,157,221,214,239,191,255,190, 97,237,218,181, 49,112,224,192,124,
-157, 78,215,233,139, 47,190, 56,178,123,247,110,197,246,237,219,223, 27, 53,106,212, 13, 66,200, 39,148,210,235, 22,189,116,120,
-188,111,214,172, 89, 51,162,117,235,214,152, 50,101,138,225,228,201,147,221, 41,165,167, 8, 33, 17,211,166, 77, 59,182, 98,197,
- 10,222,242,229,203, 71,240,120,188, 84,163,209,248,182,196,245, 87,171, 87,175,110,210,161, 67, 7,188,120,241, 2,215,175, 95,
-135, 78,167,251,249,218,181,107, 23,171, 87,175,254,149, 86,171, 61, 34,151,203,135, 42, 20,138,224,122,245,234,189, 79, 8,145,
- 89,226,167, 71, 8,201,138,136,136,144,187,186,186, 66, 32, 16,224,254,253,251,112,117,117, 5, 0,164,164,164,160, 86,173, 90,
-224,241,120,200,202,202, 2, 96,217,203,150, 16,230, 65, 68, 84, 66, 21, 71,133, 28, 48, 74,112,247, 73, 28, 92,156, 29, 96, 36,
- 12,146,146, 18, 81, 47,192, 27,132, 16,100,165, 39,129, 16,242,208, 18, 78, 35,101, 67, 99, 18, 82,188,156, 20, 98,212,110,210,
-193,233,218,111,169, 59,236,170,182, 24,197,231, 17,158, 88, 98,187,113,196,176, 97,206, 44, 75,145,149,158, 12, 62,195,220,124,
- 27, 23,104,127, 12, 98, 91, 85,149,220,237, 48,226,235,122,132,130,170,117,216,254, 83, 50, 50,101, 64,189,213,179,103,219, 59,
- 57, 59, 99,224,192,129,108,122,124,252, 25, 21, 96, 81, 96,229, 42,213,171,187,217, 40, 20,184,114,229, 10,120, 64, 36, 0,108,
- 1, 2,151, 78,155,230,228,234,238,142,143, 71,140, 96,147, 99, 98,206,170, 45,232,210,125,141,183,106, 85,129,137,151, 41,224,
- 77,228, 97,226, 23,221, 67,196,114,169, 24,223,108,248, 5,177,105,121,123,174, 37, 98,195,187,104,236, 40,211,162, 85,146,243,
-217, 43,167,106, 89,169, 98, 69, 34,145, 20, 90, 83,172,248,210,171,112,206,178,240, 87,112,190, 69,229, 60,147, 16,114,136, 16,
- 50, 51, 54, 54, 54,124,196,136, 17, 58,131, 78,147,123,245,235, 42, 51,238, 44,174, 60,246,218,124,143,177,191, 78,180,155,161,
-202,206,200, 93,189,122,181, 62, 54, 54, 54,220,252,152, 50,110,150, 24, 74,233,241,109,219,182,173,223,191,127, 63,106,213,170,
-133,176,176, 48,215,188,188,188,250, 15, 31, 62,116, 12, 12, 12,196,142, 29, 59,176,119,239,222,149,148,210,211,165,137, 44, 51,
-107,219,153,196,196, 68,255,232,232,232,106,246,246,246,122,123,123,123, 20, 29,137,152,163,102,145,158,149, 13, 71, 71, 39,216,
-218,218,250,149,197,169,209,104,142, 39, 38, 38,214, 96, 29, 2, 90,214, 72, 91,149, 29,250, 77, 37,132,126, 83, 9,199,167,123,
-194,195, 94,132,204,204, 76,164,166,166, 34, 53, 53, 21,132, 16,232,245,250,154, 22,112,190, 76, 72, 72,248, 49, 38, 38,230,144,
-155,155, 27, 20, 10, 5, 40,128,164, 44, 61,238, 45, 15,196,189,229,129, 72,202,210, 35, 39, 55, 23,149, 43, 87,134, 66,161,168,
- 85, 82,151,145,151,151, 87,231,126,253,250, 41, 0,160, 64, 64,181,165,148,142, 45,102, 25, 99, 48, 24,154,155,246,157, 58,117,
-170, 35,128,142,127,243,253,196, 35,132,140, 27, 57,114,228,123, 18,137, 4,107,215,174,125, 9, 96,167,169,173, 95,191,126,253,
- 19, 0,152, 56,113, 98, 48,128, 41,164,132, 72,208, 38, 8,133,194, 6, 53,107,214,196,181,107,215, 0,224,151, 50, 78,127,224,
-234,213,171,168, 94,189, 58, 36, 18, 73,195, 50,246,245,171, 84,169, 18,158, 60,121, 2, 0,119, 75,216,231,238,147, 39, 79, 80,
-169, 82, 37, 16, 66,252, 44, 40,123,143, 14, 29, 58, 60, 56,119,238, 92,195,102,205,154, 97,196,136, 17,218, 27, 55,110,116,166,
-148, 94,188,123,247,110,155, 65,131, 6,229,213,168, 81, 3, 23, 46, 92, 8, 28, 52,104,208, 85, 30,143,247,181, 5,156, 31, 47,
- 92,184,112,102,207,158, 61,177,112,225, 66,186,111,223,190,129,148,210, 83, 5,207,215,201, 61,123,246, 12, 89,180,104, 17,237,
-213,171, 23, 22, 44, 88, 48,147, 16, 50,182, 12,235, 80,182,209,104, 68, 94, 94,158, 69, 38,121, 75,247,119,118,118,254,160, 67,
-135, 14,152, 51,103, 14,188,188,188,112,228,200, 17, 10,224, 40,165,244,146, 70,163,105, 73, 41, 93,145,151,151,247,235,181,107,
-215,208,190,125,123, 33, 94,159, 98,164, 68, 24, 12,134,168,115,231,206,233,156,156,156,224,237,237, 13, 31, 31, 31,228,229,229,
- 33, 43, 43, 11,181,106,213, 66,147, 38, 77,144,151,151,135,163, 71,143,234,178,178,178, 44, 26,176, 98,208,230,109, 63,125,236,
- 96,182,147, 66, 12,111, 87, 59, 84,246,114,132, 50, 43, 13,169, 73, 9,104, 80,211, 7,173, 26, 84, 70, 90,182, 22, 39,143, 30,
-204,204,205, 85,109,183,168, 23, 64,163,218,122,230,183, 35,217, 14, 10, 33,252, 3,130, 49,104,196,196,122,245,234, 55, 62,221,
-168, 81,243,147,203,150,124, 83,167,109,211,154, 36, 46, 45, 31, 39,142,254,146,153,157,147,179,245,109,180,245, 11, 0, 94,190,
- 93,141,139,235, 14,133,254, 24,212,105,228,143,225,113, 88, 5, 0,122, 30, 47,176,243, 7, 31, 32, 46, 46, 14, 7,247,239, 79,
- 84, 1,247, 45,229,147, 74,165, 12, 0,100,103,103, 67,252,106,182, 16, 24,128,128, 46, 93,186, 32, 53, 45, 13,187,118,238, 76,
- 61, 1,220,177, 38,159,221, 0,145, 76,250,202, 32,152,157,157, 13, 2,228, 0, 0,225,163,115,163, 90,213,145,154,145,131,115,
- 55,195,149,149,213,248,180, 52,158,127,171, 35,124,105, 62, 90,101,217, 67,211,166, 76,153, 2,177, 88, 12, 15, 15,143, 66,113,
-100, 18, 43, 34,145, 8, 30, 30, 30, 48, 24, 12,216,179,103, 15, 0,148,234,195,192, 0,154,238, 99, 23,179, 26, 61, 85, 9, 4,
-130, 10,225, 44,176, 28,104,122, 79,251,137,253,237,106,241,131, 98,202,195,249, 47, 64,163,130,152, 88,141, 40,165,153, 81, 81,
- 81,113, 31,245,238,158, 29, 29,241, 40, 41, 47, 43, 33, 49, 39, 61, 54, 49,246,229,195,164, 89,211,167,100,199,197,197,197, 22,
-196,210,106,148,144,144,208, 29,128,165,190, 6, 83, 62,250,232,163, 31, 70,142, 28, 73,239,221,187, 7, 0, 8, 13, 13,197,176,
- 97,195,232,144, 33, 67, 86, 1,152, 81,142,124,231,169,213,234,215,172, 33, 58, 35, 91,216,229,151,147,147,131,132,132, 4,104,
-181, 90,139, 21,241,179,147,203,159,102, 68,221,214, 7,251,202, 17,236, 43, 71, 96, 37, 25,136, 65, 89, 40,178, 82, 83, 83,145,
-156,156, 12, 0,249, 86,228, 51, 71,163,209,188,150, 79,243,174,201,156,156, 28, 36, 37, 37,193,104, 52,106, 75,120,232,216,248,
-248,248,147,123,247,238,205, 5,128,101,203,150,101, 16, 66,126, 39,132,252, 80,204,178,129,207,231, 95, 49,237,187,124,249,242,
- 12, 0,199,255, 70,145,213,179,118,237,218,153, 51,103,206, 92, 59,105,210, 36,108,216,176, 1,137,137,137, 51, 40,165, 6, 83,
- 89,210,210,210,166,173, 91,183, 14,195,135, 15,199,220,185,115,151,215,175, 95, 63,135, 16, 82,162,127,133,139,139,139, 55,159,
-207,199,157, 59,119,114, 40,165, 47,202,104,160,146,238,220,185,147, 76, 8,129,135,135, 71,213,210,246,117,116,116,172,166, 80,
- 40, 16, 31, 31, 15, 20,124, 49, 23,131,168,132,132, 4, 42, 18,137,224,233,233, 89,189,172,242, 59, 56, 56, 76,251,241,199, 31,
-249,143, 30, 61, 66,219,182,109,227, 46, 92,184,208,158, 82,122,190, 32,111,119, 66, 67, 67, 67,218,180,105,243,244,244,233,211,
-248,246,219,111, 73,221,186,117,199,150,197,233,235,235, 59,230,227,143, 63,198,154, 53,107,176,113,227,198,177,148,210,253, 69,
-202,188,123,221,186,117, 19, 55,110,220,136, 17, 35, 70,192,207,207,175, 84, 95,149,232,232,232,233,173, 91,183, 14,125,246,236,
-153, 69, 51, 30, 88,178, 63, 33,164, 77,227,198,141,171,169,213,106,108,221,186,245, 69,181,106,213,110,237,223,191,127, 10,165,
-180,232, 11,251,215,131, 7, 15, 98,240,224,193,168, 91,183,238, 86, 66,200, 0, 11, 94, 58, 9,209,209,209,105,247,239,223,103,
-121, 60, 30,188,189,189,209,185,115,103,244,239,223, 31,117,235,214, 69, 74, 74, 10, 46, 94,188,200, 70, 68, 68,164, 89, 26,184,
- 52,237,233,185, 35,145,145, 79,175,220,185,113, 81,207,231, 49,240,241,112,196,135,237,234,225,147, 62,205,209, 32,208, 11,209,
- 41,106,156, 61,123, 90, 31, 25,249,226,154, 37, 35, 14, 77,156,225, 97,247,175, 62,186,115,217, 32,224, 19, 4, 6,212,192,156,
- 89,211, 28, 22,205,155,110, 95,163,170, 15,238,191,204,198,233, 83, 39,244, 9,113,177,231,222,214,136,195, 11,128,208, 70, 76,
-228, 60,134,129,145, 17,231,241, 10, 2, 25,215, 10, 10,242,119,115,119,199,177, 99,199,192, 0,143,173,226,179,121,213, 11,174,
- 84, 42, 97,226,171, 22, 16, 16,224,227,235,139,227,199,142,129,199,178,143, 91, 89, 25, 96,244, 9, 32, 51,231, 37, 64,254,167,
-149,160,168, 86,201, 53,192,193, 78,142, 27,247,159, 67,163,167, 55,119,102, 66,133,119, 16, 69,187, 13,173,233, 58, 92,182, 97,
-195,134, 70, 63,254,248, 99,251, 41, 83,166,216, 12, 29, 58, 20, 18,137, 4, 42,149, 10,222,222,222, 48, 26,141,248,237,183,223,
-112,251,246,109, 37,203,178,167, 81, 36,108, 0, 33,164,157,121,172,141,223, 34,168,244, 85, 16, 76, 85,163, 67,125,251, 86, 8,
- 39, 0,216, 60,103,109,211, 43,107,119,172,222,127,185,215,174,147,119,200,103, 3, 90, 49, 13, 2, 42, 1, 0,220,220,220, 96,
-107,107,107, 53,103, 5, 84,250, 95,206,105,222,173,155,152,152,248,132, 16,146, 50,114,228,200, 64,147,227,187, 88, 44,206,143,
-141,141, 13, 55, 5, 44, 45,122, 76, 89,249, 44, 24, 25,247, 41, 33,228,112,118,118,246,201, 47,190,248, 2,139, 22, 45,194,145,
- 35, 71, 66, 40,165, 87,202, 83,118, 74,169,209,207,207, 47,235,230,205,155,110,213,107,214, 71, 21, 87, 1, 90,126,249, 12,148,
- 82, 56,201, 40,114,179, 50,112,247,238, 29,228,230,230,222,176, 38,159,158,158,158, 89, 41, 41, 41,206,174,174,174,200,200,200,
- 64, 90, 90, 90,161,200,202,204,204, 68, 70, 70, 6, 37,228,245,152, 45,101,112,230, 85,171, 86, 77, 21, 30, 30, 46,114,171, 84,
- 29, 85, 93,133,104, 60,235, 9, 64, 41,124, 28, 25,228,230,100,225,218,181,107,200,206,206, 62, 95, 18, 39,203,178,159, 15, 26,
- 52,136, 7, 96,200, 23, 95,124,225, 8,160,238,180,105,211, 78, 23, 29, 89, 40, 16, 8,190,219,177, 99, 71, 45, 83, 23,227,244,
-233,211, 87, 82, 74,127,252,187,238, 37, 39, 39,167,207,143, 29, 59,166,208,233,116, 88,189,122, 53, 86,174, 92,185,133, 82,250,
-191, 34,245,113,140,199,227,173, 99, 24,102,220,248,241,227, 49,122,244,104,217,123,239,189, 55,197,204,234,245, 26,103,124,124,
-252,156, 6, 13, 26,204, 77, 73, 73,177,200,177,255,217,179,103,163, 26, 52,104, 48, 39, 37, 37,101,105,105,215, 72, 46,151,203,
-141, 70, 35, 34, 35, 35, 51, 41,165,217, 37, 92,187,252, 26, 53,106,196, 27,141, 70,111,153, 76,230, 88,214,253,153,153,153,249,
-205,123,239,189, 55, 63, 57, 57,249, 20,128,175,139,134, 42,161,148,222, 35,132, 4, 79,154, 52,105,194,146, 37, 75,122, 37, 37,
- 37,237, 41,139, 51, 58, 58,250,155, 54,109,218,124,249,244,233,211,109, 37,117, 1, 83, 74,215, 18, 66,116, 59,118,236, 24, 27,
- 25, 25,185,184, 52, 78, 74,233, 81,148,210,149, 94, 12,119,177,251,155,115,242,120,188,105, 75,150, 44, 97, 54,108,216, 0, 74,
-233,114,131,193, 80, 82, 62,239,243,120,188,237,205,155, 55, 31,186,127,255,126, 73,112,112,240,104, 0,187,203,186, 63, 53, 26,
-205,245,171, 87,175, 54,137,138,138,114,110,211,166,141,208,244,129,146,149,149,133,163, 71,143,234, 34, 34, 34,210,242,242,242,
-174, 91,211,134, 24,180, 57, 3,174,158, 61,180, 59,234,217,195,166,173, 59,245,112,208,234,188, 33, 78,231, 33, 43, 61, 9,191,
- 29, 61,152, 25, 25,249,226,154, 74,149, 53,192, 26, 78,157, 38,187,255,181,115,135,247,196, 69,134, 55,105,217,166,179, 67,190,
-214, 23, 98, 33,131,244,228,120,252,118,236, 80, 70,100,228,203, 75,249,122,205,176,183,213,206,243,252,240, 53, 47,233,246,200,
- 49,221,234, 65,234,224,125, 87, 0,172,110, 14, 72,157,221,220,132, 5,207, 14,108,128,104, 75, 57,147, 1, 81,245,130, 94, 42,
-149, 74, 5, 1,160, 29, 14, 8, 92, 92, 92,164, 0,240,244,233, 83,200,128, 24,107,243,169, 4,228, 50, 51, 94, 6, 80,165,243,
-225, 85,205, 86, 78, 0, 32, 46, 41, 29, 90, 61,174,224, 29,133,201,162, 85,156, 83,124, 89,193, 23, 89, 0,215, 9, 33,119,150,
- 46, 93,218,242,135, 31,126,104, 53,121,242,100,209, 7, 31,124,128, 91,183,110,225,204,153, 51, 90,141, 70,115, 1,192, 69,211,
-112,117, 11, 50, 83,225,156,251, 95,237,247, 81, 35, 47,226,168, 99,213,191,204,249,225, 68,139,202,238,246,212, 96,100,201,195,
-135, 15,113,245,234, 85,171, 57,255, 37, 23, 22, 0, 26, 17, 66, 14, 21, 36,221, 44, 26,194,161,160,187,176,145,153, 21,172, 60,
-167,186,203,231,243,105, 64, 64, 0, 41,152,158, 38,236, 77,242,157,148,148, 52,112,250,244,233,167,246, 29,248,133,127,112,188,
- 20,217, 89,217,175, 26,224,236, 44,164, 39, 39,224,236,217,179,186,212,212,212,209,214,112,166,166,166,126, 58, 96,192,128,125,
-187,119,239,118,204,204,204, 44, 20, 90,153,153,153, 96, 89, 22, 91,182,108, 73, 77, 78, 78,158,109, 13,103, 98, 98,226,136, 47,
-190,248,226,192,174, 61, 7,248,167,103, 56, 64,105,138, 62,159,151,141,244,148, 68, 28, 57,114, 68,147,150,150, 54,169,148,235,
- 99, 36,132,124, 54,104,208, 32,152,196,214,181,107,215, 38, 18, 66,214,154, 94,230,132,144, 42,159,127,254,249, 0, 51, 63,174,
-149,127,247,168,195,244,244,244, 69, 77,154, 52, 89,153,154,154,250, 82,167,211,237,167,148, 22, 27,165,223,104, 52,142, 39,132,
- 92, 93,187,118,109,127,103,103,103,183,164,164,164, 37,214,190,232,223,116,255,152,152,152,153, 13, 26, 52,152,149,146,146,178,
-164,180,253,158, 63,127, 62,174, 96,191,165, 22,156,251, 24,128, 99,101,236, 99,192,171,208, 22,223, 89, 88,158, 67, 0, 14, 89,
-216, 56,111,122, 27,237,135,209,104, 92, 86,187,118,109,137,193, 96, 56, 93,150, 63, 32,203,178,163, 38, 79,158, 28, 55,117,234,
-212,122, 70,163,209,210, 58,208, 3,184, 68, 8,241, 76, 75, 75,243, 3, 96, 15, 0,124, 62, 63, 43, 43, 43,171, 92, 83,240, 20,
- 68,124,239,234,236,223,190,219,254,109,107,134, 83,214, 88,151, 16, 2, 30,195,187,151,171, 84,109,181,212,146, 85, 12,103, 23,
-103,255,246,221,146,227,163, 63,166,172,177, 46, 64, 88, 62,159,185,159,171, 84,109, 78, 13, 63,253,214,166,224, 25,234, 5, 55,
- 30,193,248, 83, 63,125, 73, 0,160,253,199, 95,213,171,108, 15, 27, 67, 22,178, 80,208,150, 39, 38, 38,194, 1,200,180,148, 83,
- 6, 24,116, 5, 62,209,153, 25, 25,144, 1,234, 68,128, 87,224,119, 73,146,147,146, 96, 99, 5, 95,225, 7, 35,160, 43,194,155,
- 13, 64,108,114,231,204,200,201, 3, 44,143,107,248,175,180,104, 21,253, 93, 40,184, 40,165, 22, 47,120, 53,191,222,135, 0, 22,
- 23,172,229,101,236,223,238,109,112, 54,241,128,127,187,106, 36,188,115, 0, 63, 3, 64,159,138,224,180,118,249,171, 57, 1,108,
-211,106,181, 52, 63, 63,159,170, 84, 42,170, 84, 42, 41,128, 67,197, 28,115, 40, 33, 33,129,198,197,197,209,152,152, 24, 26, 21,
- 21, 69, 1,236,180, 54,159,182,182,182, 63,246,237,219,215, 40, 16, 8,214, 84, 68,217, 29, 29, 29, 23, 55,110,220, 88,247,253,
-247,223,211, 95,127,253,149,110,222,188,153,142, 31, 63,158,214,170, 85, 75, 99,111,111, 63,160, 60,156,238,238,238,115, 2, 2,
- 2,210,183,108,217, 66,119,238,220, 73, 87,173, 90, 69,103,207,158,109,244,246,246, 78, 82, 40, 20, 29,203,195,233,234,234,186,
-169, 69,139, 22,186, 77,155, 54,209,211,167, 79,211, 93,187,118,209,207, 63,255,156, 6, 6, 6,106,228,114,121,111, 75, 56, 1,
-240,248,124,254,138, 49, 99,198, 36,121,122,122, 30, 43,178, 77, 22, 20, 20,116,107,208,160, 65, 9, 0,166,191, 43,247, 39,199,
-201,113,114,156,111,206, 57,196, 11,158,237,171,192, 64, 47,126, 73,233,197, 47,105,187, 42, 96, 7,122,194,139, 2, 60,153, 80,
-216,191, 85, 72,200,114, 33,208,159, 2,188, 98,151,226,242, 9,240, 36, 60, 94,159,230,141, 27, 47, 23, 2, 3, 76,251, 74,120,
-188, 62,173, 66, 66,150, 11,120,188,193, 37,242,149,194, 73, 1,158,144,207,159,222,188,105,211, 21,124, 96,150, 41,237,253, 42,
-228,241,231,157, 42,209, 16, 95,242,124,176, 43,100,165,113,150, 80, 31,163, 42,186,142,255,238,165,188, 55, 2,191,162,111,194,
-127, 11,231, 63, 72,104, 85, 47,232,182, 57,100,182,204, 44,230,152,153, 69,246,217, 6,160,122, 57,235, 83, 90,145,101, 7, 80,
-219,217,217,249, 68,245,234,213, 83, 43, 87,174,156,224,224,224,176, 27,128,247, 27,114, 6,187,187,187,255,236,230,230,246,204,
-195,195,227,190,179,179,243,119, 0, 92,222,132, 83, 32, 16, 52,118,115,115, 59,239,231,231,151,229,235,235,155,236,236,236,188,
- 7,128,155,181,156, 0, 60, 80, 76,163, 2, 64, 8,192,131,123,233,112,156, 28, 39,199, 89, 84,192,116,168,138, 37,237,171,192,
-208,190, 10,140, 29,252,240,157,185, 64,233, 10, 72,203, 43,138,134, 1,226,162,251,151,201, 87, 6, 39, 5,120,205, 0,155,162,
-199,116,246, 70,144, 37,156,255,102,161,101,202,103, 65, 59, 63,202, 60,223,252,242,152,200, 76, 78,178, 21,220, 13,246,175,224,
-252, 7,117, 27, 62, 7,202, 14,246,102, 30, 65,190, 2,206,169,174,224, 50, 60, 0,240, 65, 5,115, 62, 2, 48,164, 34, 57,117,
- 58,221, 13, 88, 56,239, 91, 25,121, 75, 44,197, 23, 46, 17, 28, 56,112,224,240,122,227, 96, 60, 9,204,104,239, 79, 86,243,141,
- 96, 78,188,160,241,230,155,143,252, 17,248,216, 42, 78, 0,216, 90,204,244, 60,229,226, 51,227, 4,128, 43,192,159,102,119, 56,
-246,134,238, 38,255,178,119,115, 34,128, 77, 86,197,209,226,192,129, 3, 7, 14, 28, 56,188, 61,156,126, 74,185, 15,177,127, 62,
-142, 21,153,227,176,208,239,147, 0,104, 87,130, 42,179,120, 36, 5, 33,164, 93, 57, 84,223, 25,142,147,227,228, 56, 57, 78,142,
-147,227,228, 56,255, 91,156,102,220, 37, 13,172,120, 82,132,239,173, 12, 24,169, 40, 16,203,167, 45, 43, 7,249,191, 52,108, 2,
-199,201,113,114,156, 28, 39,199,201,113,114,156,127, 47,231,191, 90, 76,189,110,205,122, 77, 32,114, 93,135, 28, 56,112,224,192,
-129, 3, 7, 14,111,128,210,172,110,156,208,226,192,129, 3, 7, 14, 28, 56,112,120, 3, 16, 66, 60,240,106,138,170, 99, 5,107,
-206,162,197,129, 3, 7, 14, 28, 56,112,224, 80, 65,232, 66, 41,221, 84, 92,100,120,134,171, 27, 14, 28, 56,112,224,192,129, 3,
-135, 55,131,201, 79,203,218,185, 14, 57,112,224,192,129, 3, 7, 14, 28, 56,148,130,210,124,180, 94, 27,117,120,236,216, 49,218,
-165, 75, 23,194, 85, 25, 7, 14, 28, 56,112,224,192,225,109,224,223,168, 69,204, 44, 88,199,138, 6,167,230, 44, 90, 28, 56,112,
-224,192,129, 3, 7, 14,111, 0,147, 69,171,160,219,240,181, 52, 78,104,113,224,192,129, 3, 7, 14, 28, 56,188, 1, 74,179,104,
- 49,192, 43, 51, 29, 87, 77, 28, 56,112,224,192,129, 3,135,183,133,127,179, 22,161,148,110, 42, 88,254, 52, 93,146,105,212, 97,
-235,130, 2,182,230, 46, 53, 7, 14, 28, 56,112,224,192,225, 45,224, 95,171, 69, 8, 33, 30, 5,221,134, 30,127,218,246, 87, 78,
-193,195,129, 3, 7, 14, 28, 56,112,224,240,174,195, 20, 63,171,184, 56, 90,156,208,226,192,129, 3, 7, 14, 28, 56,112,120, 67,
-161, 85, 52,173,208, 65,158, 19, 90, 28, 56,112,224,192,129, 3, 7, 14,127, 13,254,210,200,240,132,144,118, 28, 39,199,201,113,
-114,156, 28, 39,199,201,113,114,156,239, 58, 76, 17,225,139, 90,183,184,240, 14, 28, 56,112,224,192,129, 3, 7, 14,111, 40,178,
-204,125,179,204,255,115,115, 29,114,224,192,129, 3, 7, 14, 28, 56,252, 69,224, 44, 90, 28, 56,112,224,192,129, 3, 7, 14,111,
- 0,211,136, 67,243,255,156,208,226,192,129, 3, 7, 14, 28, 56,112,168, 64,177, 85, 92, 58,215,117,200,129, 3, 7, 14, 28, 56,
-112,224,240, 6, 40,234, 0,111,254,159, 0,104, 87,130, 50, 59, 99,197, 9,172, 30,125, 80, 22, 63,199,201,113,114,156, 28, 39,
-199,201,113,114,156,239, 30,103, 89,220,214,232,143,127,146,208, 42,201, 25, 30,148,210,191,108, 1,208,142,227,228, 56, 57, 78,
-142,147,227,228, 56, 57, 78,142,243, 93, 94, 0,120, 0, 24,101,182,120,152,182,113, 62, 90, 28, 56,252,219,113,128,240,144, 25,
-224, 7, 74, 61,193, 19, 37, 34,241,193, 11,204,163,236, 27,115, 38, 7,249, 66,170,119,131, 65,146,138,228,251, 47,223,152,147,
- 3, 7, 14, 28,222, 81, 20, 76, 38, 93,172,143, 22, 39,180, 56,112,248,183, 35, 53,208, 31,124, 44, 6, 3, 15, 80, 93, 4, 92,
-130, 22, 3,120,248,198,156, 66,246,107, 24, 25,111, 80,221, 83,184, 6, 44, 1, 16,198, 85, 54, 7, 14, 28, 56, 88,135,191,221,
- 25, 94, 32, 16, 36, 19, 66, 88,177, 88,124,176,184, 89,174, 57,112,168, 40, 16, 66, 60,164, 82,233, 65, 66, 8, 43, 20, 10,147,
-223,201, 66,238,168, 45, 3, 99,252, 64,171,103,189,126,123,144,229,170,210, 24,253,193, 24, 58,227, 39,127,155, 55,226,228,147,
- 14,249, 58,214,103,231, 77,149, 91,158,214, 80, 19, 20,111,198,249,199, 53,177, 23,137, 68,191, 17, 66,156,185, 59,244,221, 68,
- 16, 33,239, 53, 20, 8,166,214, 36,228,125, 66, 8,225,106,132, 3, 39,180,254,102, 24, 12, 6,215,216,216, 88,178,121,243,230,
-238,182,182,182, 17, 2,129, 96, 38, 33, 68,248, 95,169,112,133, 66,113,213,206,206, 46,217,222,222, 62,217,206,206,238, 78, 89,
-233,239,168, 0,242,119,117,117,141,118,114,114,122,106,158,238, 90,183, 87,179, 26, 45,134,206,115, 14,238,217,234, 13,249,133,
- 2,129, 96,166,157,157, 93,196,166, 77,155,186,135,135,135, 19,189, 94,239,250, 78, 86,102, 62,235, 6,134,215,230, 81,162, 74,
-150,152,163,119, 11,141, 82, 41, 0, 94,107,104, 81,254,143,152,108,214, 13,160,239,223,139, 83,203,175,102,184,184, 93,122,161,
-177, 5,195,180, 65, 62,113,127,227, 6,135, 97,198,178, 44,219, 94, 40, 20,126,198, 53,191,239, 38, 68, 12,211,252,106,247,238,
- 95, 79,175, 83,103, 66, 32,208,173, 56,177, 69, 94, 97, 98,205,154, 53, 79, 16, 66,250, 87, 96,219,242,109, 96, 96, 96, 60, 33,
-100, 18,119, 37, 56,252,205,239,181,250,166, 15,252,130,105,120, 60,172, 22, 90,125,171,144,230, 3,171,146, 11,253,170,144,220,
-254, 85,137,114, 72, 85,114,185, 79, 21,242,126,121, 50,228,237,237,141,102,205,154,241, 98, 98, 98,164,147, 38, 77,154, 39, 22,
-139, 35, 9, 33, 29,203,195, 37,147,201,110,203,229,242, 88,129, 64,240, 90, 94,228,114,249,109, 27, 27,155, 88,129, 64,208,214,
- 60,221,214,214,246,170,157,157, 93,178,173,173,237,157, 18,132,208,109, 59, 59,187,100,133, 66,113,219, 60, 93, 32, 16,180, 85,
- 40, 20,113,182,182,182, 69,211,223,183,181,181,141, 45,154, 94, 18, 4, 2,129,119,108,108,172,107, 92, 92,156,171, 72, 36,114,
- 51, 79,143,137,137,113,141,141,141,125, 45,221, 26, 8, 4,130,247,109,108,108, 98,229,114,249,237,226,210,139,150,169, 36,152,
-213,221,251,150,164, 91, 43,178, 58,116,232,112, 57, 49, 49,209,199,222,222,222,222,124,155,163,157,125,199,159,183,172,155,210,
-163,115,135,177,174, 65, 31,214, 46, 39,127, 71,177, 88, 28, 57,121,242,228,121,113,113,113,210,198,141, 27,243,132,194,119, 84,
-199, 31, 8, 18,130,176, 45, 89, 74, 93, 30,199,231,187,116,233,222,151,127, 55, 86,237,162, 55, 26, 29, 1, 94,107,108,171, 44,
- 46, 23, 39, 95, 31,194, 82,234,246,123,148,192,165,205, 71, 19,120,103,163,248, 46,122,163,209, 9, 12, 90,149,139,243,143,107,
- 35,224,241,120, 83, 86,172, 88,193, 0, 24, 79, 8, 17,253,151, 26,226,198, 94,196,171,109,117,254,205, 6,158,164,121, 5, 54,
-238,193,114,185,252, 54, 33,196,255,159, 82, 78, 45,203, 62,217,243,242,229,201,193,213,170,117,157, 94,167,206,240,162, 98,171,
-224,247,244, 37, 75,150, 12,121,244,232,145, 75,149, 42, 85, 70, 19, 66,152, 10,168,139, 85, 75,150, 44,153,246,232,209, 35, 79,
- 63, 63,191, 5, 21,193,201,225,159,165,225, 1,180, 1,208, 5, 64, 91, 0,141, 10,126, 55, 44, 88,186,224, 85, 20, 5,243,117,
-195,130, 99, 77,219, 27,151,192,209,165,152,227, 26,154,165,155,255, 47,250,219,132,250, 5,235, 46, 5,163, 13,187, 20,110,161,
-148,226,232,209,163,212,124, 93,116,233,231,135,249, 19,154,121,169, 30, 31,217, 69,149,177, 47,105,102,248, 93,122,119,211, 55,
-116, 66, 67, 23,213,192, 42,248,214, 74,207,124, 74, 41,165, 59,119,238,164,103,207,158,165, 89, 89, 89, 52, 44, 44,140, 54,106,
-212, 72, 45,147,201,126, 7,224,103, 13,159, 66,161, 72,254,253,247,223,105,135, 14, 29,178,109,108,108,150, 3, 96, 40,165,176,
-181,181, 77,190,114,229, 10,237,208,161, 67,182, 66,161, 88, 5,128, 71, 41, 69,239,222,189, 83, 40,165,212,197,197, 37,161, 56,
-190, 30, 61,122,100, 82, 74,169,157,157, 93,114, 65,126,121, 10,133, 98,213,184,113,227,148,183,110,221,162, 14, 14, 14,166,116,
-198,214,214,118,249,248,241,227,149,161,161,161,133,233,101, 45,142,142,142,177, 70,163,145, 30, 57,114,132,186,186,186, 22,230,
-193,193,193, 33,214,104, 52,210, 67,135, 14,149,152,183, 82,234,148,177,177,177, 89, 54,120,240,224,220,168,168, 40,234,228,228,
-148,108,150,190,124,232,208,161,185, 49, 49, 49,212,217,217,217,162, 60, 58, 57, 57, 37, 95,189,122,149,246,234,213, 43,199,188,
- 78,157,156,156,146,175, 93,187,102, 74, 95,102, 74, 47,109,241,244,244, 28,237,234,234,154,224,234,234,154, 96,111,111,191,200,
-195,195, 35, 41, 53, 53,149, 82, 74,105,213,170, 85, 83, 40,165,112,169,243, 97,179,234,205,135,204,115, 13,238, 62,121,195,254,
-107, 55, 46, 62, 76, 79,173,211,126,236, 50,187, 58, 61,236,172,168, 3, 63,137, 68,242,123,203,150, 45,213, 81, 81, 81, 84,169,
- 84,210,219,183,111,211, 75,151, 46,209,199,143, 31,211,130,251,238,221, 26,233,178, 46,200,155,110, 12,216, 19, 54,215, 39,252,
-226,146, 78,122, 26,117,150,238, 26,238,162,191, 48,217, 43,130,254, 16,248, 63,186,177,102,165,114,113,254, 80,115,215,253,217,
- 62, 79,214, 44,152,168,143,142,142,166, 83,135,118, 50,156,154,224,245,130,110, 8,220, 95, 46,206, 63,174,209,128, 15, 63,252,
- 80, 25, 19, 19, 67,131,130,130,242,120, 60,222,136,255,202,136,164, 70,158,240,106,231, 47,138,191,191,115, 42,219, 45, 88,150,
- 94,223, 3,205, 43, 96,148, 83,176,171,171,107,218,182,109,219,168, 66,161, 72, 1,224,255, 15, 25,125, 69, 2,129,238,219,235,
-212, 57,196,246,233, 99,220, 94,167,206,161, 64,160, 59, 94,133, 19, 34, 0,102, 44, 93,186, 52, 84,175,215,135,110,221,186, 53,
-180,123,247,238,161, 0,166,190,225, 57,191,255,246,219,111,169, 94,175,167, 91,183,110,165,221,187,119,167, 0, 86, 91,122,188,
-141,141, 77,245,218,181,107,239, 8, 10, 10,138,169, 91,183,174,182,102,205,154,249,254,254,254, 81,193,193,193,219,196, 98,177,
- 31, 55,170,238,239, 89,202,208, 34,141,102,204,152, 49, 19, 0,157, 49, 99,198, 76, 74,105,151,130,118,189,139,249,239,162,107,
- 74,105, 59,243,255,197,113,152,150,226, 56,139, 59, 71,145,223, 69, 71, 29,122, 20,252, 31, 85,184,205, 84,168,163, 71,143,182,
- 58,122,244,232,133,162,133,235, 91, 5,205, 38, 52,243, 82,171, 83, 19,233,195,111, 62,163,231,218,120,211, 43,173,221,233,211,
- 41, 31,210,196,157,171,232,167,245, 28, 84,125,170,160,141,181, 66,235,224,193,131,244,208,161, 67,244,248,241,227,244,225,195,
-135, 52, 61, 61,157,238,220,185,211,232,228,228,164, 22,139,197, 75, 0, 72, 45,225,179,181,181, 77,166,148, 82,141, 70, 67, 23,
- 45, 90,148,175, 80, 40,238, 0,112, 43, 16, 74, 52, 43, 43,139, 46, 89,178, 36,223,206,206,238, 62, 0, 79,103,103,231,216,151,
- 47, 95, 82, 55, 55,183, 98,197,140,131,131, 67,242,147, 39, 79,168,131,131, 67, 50, 0, 47, 7, 7,135,135,135, 15, 31,214, 81,
- 74,105, 92, 92, 28,117,116,116, 76, 6,224,230,228,228,116,247,232,209,163, 58, 74, 41, 77, 72, 72,160,142,142,142, 22, 11, 45,
-181, 90, 77, 79,157, 58,245, 90, 30, 76,233, 39, 78,156,120, 77,128, 89, 80,159,110,118,118,118,161,123,247,238,213, 26,141, 70,
-250,240,225, 67,106,103,103,151, 12,192,205,222,222,254,206,254,253,251,181, 70,163,145,134,135,135, 91, 44, 6, 43, 87,174,156,
- 66, 41,165, 6,131,129,110,216,176, 65, 99,170, 83, 83,186, 86,171,165,235,215,175,215,216,218,218,134, 2,112, 43,141,203,217,
-217, 57, 65,171,213,210,172,172, 44,218,184,113, 99,229,149, 43, 87,104, 78, 78, 14,165,148,210, 2, 62, 4,180, 26,241,213,141,
-103,202,156,143,167,173,219,231,215,104,224, 55, 39,111,198,199,253,248,235,237, 80,231,224, 30,157, 44, 40,191, 84, 40, 20, 46,
-241,240,240,200, 63,123,246,172, 81,171,213,210,231,207,159,211,171, 87,175,210,235,215,175,211,219,183,111,211,135, 15, 31,190,
-123, 66,107, 63,120,116, 99, 64, 15,186, 49, 32,116,219, 96,231,180,220, 59,187, 41, 61, 61,137,190,248,170, 10,157,219, 73,145,
-203,110, 12, 8,165, 27, 3,251,208,249,173,248, 86,113,110,170,217,141,110, 12, 8,253,182,175,111,250,221,208, 91,244,194,133,
- 11,116,253,170,165,116, 66, 59,175, 60,118, 99, 64, 40,253,161,102, 47,171, 56,205, 22,177, 88,252,236,242,229,203,244,226,197,
-139,116,193,130, 5, 84, 38,147,197,188,121, 61,212, 20,210, 31,252,125,233,102,255, 86,116, 75, 13, 15,122,190,124,121,251,171,
- 69, 86,123,127, 81, 92,218,221, 95, 41,205,120, 78,147,150, 7,209, 78, 1,130, 55, 18, 91, 5, 34, 43, 53, 42, 42,138, 38, 37,
- 37,209,149, 43, 87, 82, 91, 91,219,127,180,216, 10, 0,122, 0,152,185,108,217,178, 66,145,181,110,221,186,208, 7, 15, 30,132,
-250,248,248, 28,127,131,115,173, 94,182,108, 89,161,200, 90,183,110, 29,125,240,224, 1,245,245,245,141, 45,235,216,193,131, 7,
-203,154, 53,107, 22, 58,104,208, 32,213,182,109,219,104, 84, 84, 20,189,127,255, 62, 93,182,108, 25,157, 55,111, 30,253,233,167,
-159,104,175, 94,189,242, 26, 55,110,124,163, 79,159, 62, 18, 43,243,198,167,148,138, 10, 22, 1,165,212, 36, 52,249, 0, 4,166,
-143,127,110,121, 93,104,149,164, 69, 74, 18, 83, 37, 9,172,162,219, 74, 17, 98,165, 10,182,178,206, 87, 84, 84, 21,183,152,155,
- 86,207,119,233,210,229, 79,190, 49,124,138,133,163, 62,255, 74, 18,185,109, 37,146,247,174, 5, 47, 43, 25,130,220,116,104, 46,
- 31,131,254,242, 97, 12,105,218, 84, 42, 37,228,107,107,109,128, 18,137, 4, 82,169, 20, 98,177, 24, 89, 89, 89,120,241,226, 5,
-154, 53,107,198,220,190,125, 91, 50,106,212,168, 73, 82,169, 52,134, 16,210,211, 2,115, 49, 0,224,234,213,171, 24, 57,114,164,
-120,199,142, 29,117, 93, 92, 92,238, 25,141, 70, 17, 0,132,135,135,163, 95,191,126,226,221,187,119,215,242,244,244,188,163,211,
-233,100, 98,177, 24, 60, 30,175, 68, 62,145, 72, 4,189, 94, 47,174, 81,163,198,253,123,247,238, 5,119,237,218, 85, 16, 29, 29,
-141,151, 47, 95, 66,175,215,139,252,253,253, 31,220,185,115,167,110,151, 46, 93, 4,177,177,177,136,142,142,134,165, 62,159,132,
- 16,104,181, 90,136,197, 98, 48, 12,243, 90,186, 70,163,129, 72, 36,178,152, 75, 32, 16,188, 31, 24, 24,248,224,222,189,123,245,
-123,244,232, 33,188,117,235, 22,226,226,226, 96, 52, 26, 69, 53,107,214,124,112,239,222,189,122,221,187,119, 23,222,191,127, 31,
-201,201,201,175,157,175, 12, 63, 26, 0,192,189,123,247, 48,104,208, 32,209,111,191,253, 86,207,195,195,227,190,193, 96, 16, 1,
-192,131, 7, 15,208,175, 95, 63,209,201,147, 39,235, 87,170, 84,233,126, 25, 93,137, 60, 0,208,235,245, 24, 61,122,180,220,214,
-214, 22,177,177,177, 96, 89, 22, 70,163, 17, 0,144,158,153,254,224,222,131,135,225, 67, 6,244,109,165,214,105, 52,215,110,222,
-126, 92,181,178,175, 55, 33,180,114, 25,117,217, 83, 38,147,197,124,251,237,183,147, 35, 35, 35,197, 1, 1, 1,204,253,251,247,
-145,149,149, 5,145, 72, 4,137, 68, 2,177, 88, 12,129, 64,240,238, 25,209,115,130,156,192,162,125,116,170, 86, 44,182,247, 86,
-216,120,248, 3, 49, 23, 81,197, 69, 12, 30,195,147,220,122,169,146, 3,180, 61,124,210,156,172,227,100,219,191, 76,209,138,245,
-142,181,108, 60,189,125,144,158,158,142, 74, 85, 3,145, 47,114, 17, 93,125,158,103, 3, 98, 37,231, 31,215, 42,164, 70,141, 26,
-238,213,171, 87, 71, 90, 90, 26,234,215,175, 15, 7, 7, 7, 7, 66, 72,251,114,215,193,182,202, 98,228,160, 57,192, 44,135,145,
- 44,128,158,191, 24,207, 83,235, 99, 83,131,127,204, 5,111,236, 69,188,108,109, 68,215,119,239,217,235,229,228, 83, 19, 56,246,
- 49,220,236,197,216, 50,182,190,163,139,157,248, 80,121,186, 17, 9, 33,193,110,110,110,103,111,220,184,225, 44,145, 72,112,231,
-206, 29, 4, 5, 5, 97,229,202,149, 46, 14, 14, 14, 23,255, 9,221,136,148, 82, 26, 14, 28,249,246,254,253,173, 59, 34, 34,142,
- 14,174, 86,173,235, 32,127,255, 69, 99,250,247, 31, 49,113,226, 68, 44, 93,186, 20,135, 14, 29, 66,243,230,205, 49,106,212, 40,
-125, 76, 76,204,246,114,118, 23,174, 93,190,124,249,132, 73,147, 38, 21,229,212, 69, 71, 71,127, 91,218,177,193,193,193,222,207,
-158, 61,139,159, 50,101, 74,253, 29, 59,118, 72,101, 50, 25,178,178,178,176,121,243,102,204,156, 57, 19,132, 16, 80, 74,241,211,
- 79, 63,201,134, 15, 31,222, 40, 34, 34, 34,190,114,229,202,150,184,117, 16, 0, 18, 0,178,130, 69, 14, 64,182,123,247,110,187,
- 30, 61,122,216, 22,164, 73, 1, 72, 9, 33, 98,112, 40,138, 98,181,136,217, 53, 63, 90,228, 94,235, 90, 52,173,232, 54, 74,105,
-215,210, 56,172,188,183,139, 59,223,177,162,145,225, 95,123,167,154,253,110,125,236,216,177, 11,127, 34, 5,234,184,251, 5, 32,
-251,244,126, 72,249, 4, 82, 94,193,194, 39, 96, 94, 60, 64, 37,137, 0,122, 74,131,203, 35,180, 76, 98, 75, 42,149, 66, 40, 20,
- 66,169, 84, 66,175,215, 99,214,172, 89,226,211,167, 79, 59, 49, 12,243,191,178,120,204, 5,211,211,167, 79, 81,179,102, 77,114,
-228,200, 17,183,241,227,199, 75, 1, 64, 36, 18, 33, 59, 59, 27,213,171, 87, 39, 39, 78,156,112,157, 61,123,182, 77,105, 98,134,
- 16, 2,161, 80,136, 73,147, 38, 73,111,222,188,233,232,233,233,137, 23, 47, 94, 32, 35, 35, 3, 54, 54, 54,152, 52,105,146,244,
-198,141, 27, 46,158,158,158,136,138,138, 66,118,118, 54,108,108,108,172, 22, 90, 66,161,240,181, 99, 8, 33,208,233,116, 16,137,
- 68, 22, 11, 34, 59, 59,187, 93,161,161,161, 46,118,118,118,184,127,255, 62, 12, 6, 3,236,236,236, 48, 97,194, 4,105,104,104,
-168,139,189,189, 61,194,195,195, 77,150, 63,171,242, 8, 0, 44,203, 34, 60, 60, 28,149, 43, 87,198,197,139, 23, 93,199,140, 25,
- 35, 49,165, 63,127,254, 28,222,222,222,184,120,241,162,171, 92, 46,223, 85, 18, 23,203,178, 72, 76, 76,196,163, 71,143,240,226,
-197, 11,164,166,166, 34, 45, 45, 13,185,185,185, 48, 24, 12,175,252,236,114,115,142,237,222,119,228,158, 84, 42,149, 5,249,215,
-240,121,240, 48, 44, 69, 42,149,202,124,125,124,252, 9, 89,192,148,146,207,255, 69, 68, 68, 56, 13, 31, 62, 92,248,236,217, 51,
- 36, 36, 36, 64, 32, 16, 20,222, 91,166, 69, 44,126,199,218, 50, 66, 8,136,182, 6, 8,169,127,253, 69,158, 99, 72,215, 1, 66,
-188,252, 13, 96,245, 0,195, 71,235, 58,222,252, 67, 15,242,220, 64, 81, 7, 26, 4, 2, 22, 92,120, 66, 8,160,171, 14,144,247,
- 78, 61, 51, 56, 53,255,112,172, 48, 62, 62, 30, 66,161, 16, 98,177, 24,245,223,239,205,223,125, 79,239, 14,130,186,208, 33,192,
- 34, 78, 51, 72,165,210, 47,231,205,155, 39, 55,231, 28, 49, 98,132,220,206,206,110, 94,185, 69, 86,158,172, 41, 12,116,210,163,
-120, 85,229, 69,199,146,106, 70,164,168, 3, 64,233, 20, 64, 95,239, 77,197, 22, 33,164,181, 68, 34,121, 73, 8,105,241, 70, 34,
- 75, 33,186,182,103,207, 94, 47,199, 74,175, 68, 22, 12,249,128, 64, 10,119, 23,123,108,153,220,198,209,197, 94,106,149,216, 42,
- 16, 89,191, 95,191,126,221, 89, 34,145, 32, 52, 52, 20, 66,161, 16, 18,137, 4,181,107,215,198,198,141, 27, 93, 28, 29, 29,255,
- 81, 98,107,201,253,251,219, 22, 63,122,244,116, 70,112,112, 96, 79,185,220,113,220,160, 65,118,179,103,207, 62,122,248,240,225,
-173, 93,186,116, 73,187,121,243,230,119,148,210,253, 86, 94, 31, 66, 8, 89,183, 98,197,138,113, 38,225, 54,123,246,236,159, 14,
- 31, 62,188,184, 75,151, 46,137, 55,111,222,156, 66, 41, 93, 87, 26,135, 82,169, 60, 60,103,206, 28,187, 15, 63,252,208,244, 31,
-151, 47, 95,198,246,237,219, 33,151,203, 95,219,183,123,247,238, 24, 57,114,164,131, 86,171, 45,245,157,228,230,230,214,246,250,
-245,235, 65, 0,132, 0,196, 38,161,245,240,225, 67,251,156,156, 28,123, 27, 27, 27,123, 15, 15, 15,133, 73,108,125,248,225,135,
-246, 2,129,160, 5, 56,160, 44, 45, 98, 46,116, 44, 73, 43,239,254,150,138,173, 34,255, 19, 75,154,231,240, 53,161,213,165, 75,
-151, 11, 0, 90, 22,183,147, 46, 35, 25, 98, 24, 33,229, 17,200,120,102, 98, 11, 44,248,217, 41, 40,207, 0,222,162, 47, 67,169,
- 84, 10,137, 68, 2,129, 64, 0,189, 94,143,236,236,108,171, 68,129,173,173, 45,108,108,108,160, 86,171, 97, 48, 24, 32,145, 72,
- 76, 98, 4,182,182,182, 16, 8, 4,133, 47,225,162,214,164,162,214, 28,161, 80, 8,185, 92,142,196,196, 68, 68, 71, 71,131,101,
- 89,216,216,216, 64, 46,151, 67, 36, 18, 33, 33, 33, 1, 9, 9, 9,160,148, 66, 46,151, 67, 46,151, 91, 44,142, 0,192,104, 52,
- 66, 36,250,179, 31,176, 94,175,183,202,162,101, 48, 24,240,248,241, 99,196,196,196, 64, 34,145, 20,150, 85, 44, 22,227,249,243,
-231, 72, 74, 74,130, 76, 38,131,173,173, 45,236,236,236, 44,230, 53,149, 69,161, 80, 64, 42,149, 34, 51, 51, 19, 42,149,170,176,
- 78,109,109,109, 33,151,203,145,157,157,141,148,148,148, 82,203,110, 52, 26,145,144,144,128,212,212, 84,196,198,198, 34, 45, 45,
-173, 80,108,177,236,155,199,191,188,120,241, 34, 94,188,120, 97,234,154, 42,188,190,230,107, 83,190,223, 25,172, 15,182,131, 94,
-208, 33, 77,169, 23,167,234,132,118,110,193,237,128,151, 39, 0,134, 15, 72, 28,208,164, 86, 21, 68,103, 26,229, 79,146,181, 18,
- 16,116,196, 58,127, 7,139, 56,141,130,246,169,185,122,113,148,206,197,182,102,157, 6, 72, 78, 78,134, 88, 44,134, 88, 44,198,
-123,205,219,225,101,186, 81, 22, 22,175,150,129,162,131, 69,156,127, 60,163, 85,109,108,108,154,182,104,209,130,152,115,118,238,
-220, 25,132,144,218,132,144, 64,171,202,191,166,154, 8, 58, 89, 19,240,233,164,176, 68,149,231,161,135,249,254,221,122,246,118,
-252,254, 76, 74,205,199, 73, 26, 63, 80,253,231,160,186, 6,229, 21, 91,132,144, 86, 10,133,226,232,154, 53,107,252, 36, 18,201,
- 9, 66, 72, 72,121,120,108,164,188, 13, 95,142, 27,224,229, 96, 18, 89,122, 21,192,151, 2, 2, 41,192,151,194,221,213, 25, 95,
-143,108,239, 40,147, 8, 14, 90, 33, 88,119,175, 91,183,206,165,168,200, 50, 45,245,235,215,199,220,185,115, 93, 28, 29, 29,119,
-189,229,111,129, 14,246,246,246, 59,218,181,107,119, 61, 65,161, 24,153,216,160,129,232,119, 59,187,236,182,217,217,118,190, 15,
- 31,234, 2,128, 7, 0,214,199,198,198,118,178, 84,100, 17, 66,250,219,217,217,133,182,107,215, 78,167, 80, 40, 98, 86,174, 92,
-249,233,248,241,227,177,116,233, 82,204,153, 51,103, 51,128, 79, 40,165,179, 98, 99, 99, 61,203, 18, 89, 0,144,148,148, 52,112,
-250,244,233,105,105,105,105, 0,128,218,181,107, 35, 43, 43, 11, 83,167, 78,197,103,159,125, 6, 0,168, 87,175, 30, 40,165, 72,
- 78, 78,198,242,229,203,147,147,146,146,134,149,209,182,199,238,223,191,191,145, 78,167,243, 46,232, 30, 20,103,101,101,217,102,
-100,100, 40,116, 58,157,156,101, 89,185,189,189,189, 13, 0,217,144, 33, 67,248, 97, 97, 97, 53, 13, 6, 67, 60,167,173,254, 64,
-105, 90,164,156, 56,246, 38,150,171,226, 44, 98, 37,220,159,165, 91,180,186,116,233, 66,204,215,175, 89,140, 8,238,199,220,190,
- 8,199,224, 6,175, 89,179,100, 60, 2,169,173, 29, 94,198, 70, 67, 8,242,200,218, 66,152,132, 85, 81,177,149,157,157,141,177,
- 99,199,170, 63,250,232,163,116,150,101,123, 91, 42, 10,236,236,236, 96,103,103,135,176,176, 48,218,171, 87,175,228,149, 43, 87,
-170,205,133,214,211,167, 79,105,135, 14, 29, 82,230,205,155,167, 44, 77,104,153, 44, 90, 75,150, 44, 81,183,110,221, 58,245,209,
-163, 71,212, 36,166,108,108,108,176,124,249,114,117,155, 54,109,146,111,221,186, 69, 77,105,214, 88,180, 24,134, 41, 20, 90,230,
-199, 48, 12, 3,150,101,173, 18, 90,121,121,121, 3,187,116,233,146, 28, 30, 30, 78, 77,229,180,179,179,195,202,149, 43,213,237,
-219,183, 79,126,244,232, 17, 53,165,217,218,218, 90, 44, 6, 77,231, 87, 40, 20,176,181,181, 69, 88, 88, 24,237,208,161, 67,242,
-234,213,171,243,205,211, 31, 63,126, 76,187,119,239,158,156,155,155, 59,176, 52,139,214,139, 23, 47, 10, 45, 88,249,249,249, 72,
- 75, 75, 67,108,108,108, 97,215,161, 90,110,219,105,192, 71,221,234,170,213,106, 85,216,211,103, 49,181,107, 5,185,170,213,106,
- 85,116, 76,204, 83, 74,231,177,165, 60, 8,189, 63,254,248,227,244,153, 51,103,170,115,114,114,138, 21, 89,166,245, 59, 5,134,
-117, 7,161, 45, 46, 61, 83,218,183,239,214, 79, 68,146,110, 2, 58, 37, 32,118, 0,196, 14,224,203,157,240, 65, 72, 61,222,182,
-235, 57,238,160,108, 51, 8,197,222,101,114, 10,168, 27,192,134,156,126,154,239,208,162,207, 4, 81, 70, 70, 6,120, 60, 94,161,
- 40,146,201,229,104,219,115, 8,243,211, 77,141, 59, 64,155,131,240,188, 45,205,174, 72, 36,154,246,229,151, 95, 10, 51, 51, 51,
-193, 48,204, 31,156, 50, 25,198,140, 25, 35,182,181,181,157, 99,113,217, 15, 4, 9, 33, 16, 55, 1,232,103, 79,146,242, 61, 15,
- 63, 80, 7,124,190,100,139, 52,184, 94, 35,140,110,237, 42, 93,114, 44, 37,248, 94,172,186, 10, 96,156, 12,131,246, 61,107,197,
- 22, 33, 36, 68,161, 80, 28,187,125,251,182,172,115,231,206, 88,190,124,185, 92, 42,149,158, 32,132, 88,221,240,231, 41,141,227,
- 23,174,254, 57,249,254,119, 29, 1, 93,222, 43,129,101,182,164, 40, 89,204,221,114, 54, 91,175,167, 3, 44,229, 84,171,213, 67,
- 63,249,228,147,244,131, 7, 15,254, 73,100, 73, 36, 18, 68, 70, 70, 98,209,162, 69, 25, 25, 25, 25,195,222,166,200, 26, 63,126,
-252,162,184,184,184,128,211,167, 79,243, 83, 83, 83, 93, 87,252,248, 99,246,129,236,236,140,197, 15, 31, 62,153, 85,171, 86,141,
- 25,117,234, 12, 43, 41,244, 67, 73, 34,107,220,184,113,187,227,226,226,234,159, 57,115, 70,144,154,154,234, 61,110,220, 56, 44,
- 91,182, 12,115,230,204,217, 8, 96, 52, 45,112,150,177, 20, 90,173,246, 73,102,102,102,215,142, 29, 59,102,101,102,102,162, 78,
-157, 58,232,214,173, 27,220,221,221,225,233,233,137, 30, 61,122,192,223,223, 31,233,233,233, 24, 48, 96, 64, 70,106,106,106, 71,
- 74,233,139,210, 56,211,211,211, 35,118,237,218,245,116,194,132, 9,245,227,226,226,106, 2,112,202,205,205,149,231,230,230,138,
-181, 90,173,212,193,193,193,161, 94,189,122,206,163, 70,141,178,185,123,247,110,205,184,184, 56, 37,128,104, 78, 94, 21,138,172,
- 18,181, 8,128,212, 2,193,163, 45,178, 78, 45, 99,155,165,199, 22,251,219,130,253, 94, 19, 91,230,203,159, 44, 90, 37, 65, 7,
-204,221,190,127, 91,190,200,167, 58,236, 2,234, 66, 38,145, 64, 42, 18, 65,234,224, 4, 13,203,226,199,200, 36, 85, 30,165,115,
-172,173, 80,243,110, 67,137, 68, 2, 30,143,135,245,235,215, 27,154, 54,109,154,127,246,236,217, 53, 42,149,202,135, 82,250,171,
- 53,162, 96,245,234,213,170, 73,147, 38,221, 75, 73, 73,169, 43,145, 72,180,166,244, 53,107,214,168,134, 12, 25,242, 48, 46, 46,
-174,190, 76, 38, 83,149,228,159,101, 46,180,196, 98,177, 38, 37, 37,165,209,136, 17, 35,194,215,175, 95,159, 39,147,201, 32,151,
-203, 33, 22,139,181, 41, 41, 41,117, 63,253,244,211,123,203,150, 45, 83, 73,165, 82,200,229,114,171,186,229, 40,165,127, 18, 84,
-230,233,150, 66,175,215,159, 77, 73, 73,169, 59,105,210,164,187,223,127,255,125,158, 73, 0,153,231,113,197,138, 21, 42, 27, 27,
- 27,171, 44, 90,166,253,228,114, 57, 86,173, 90,165,154, 48, 97,194,189,148,148,148,186, 98,177, 88,107,150,158, 55,126,252,248,
-187, 41, 41, 41,117,245,122,253,217, 82,190,240,140, 57, 57, 57,224,243,249,120,248,240,161, 70, 40, 20,130, 97, 24, 60,127,254,
-188, 80,104, 57, 58, 58, 6,213,173, 93, 43,240,231,221,251, 47, 72,133, 98,113,211, 70,239,213,124, 17, 21, 29, 71, 41,137, 42,
-227,139,227,215,252,252,124,159,203,151, 47,175,233,216,177, 99,254,230,205,155, 13,124, 62,255, 79, 47,159,119, 79,104, 65, 6,
- 2,233,179, 20,141, 66,194, 24, 8,158,254,250, 74,100, 73,236, 1,137, 3, 32,113,128,151,151, 55,110, 70,170, 20, 96, 32,130,
-209,130, 24, 98,148,202, 65, 32,123,152, 12,133, 64, 36, 37, 73, 73, 73,133,130,200,180,248, 85,175,137, 59,209, 74, 27, 16, 42,
- 6, 15,214,132, 32,233,234,228,228,196, 79, 76, 76,252, 19,103, 80, 80, 16, 79,175,215, 91, 30,218, 37,193,232, 1,176,227,158,
- 38,229,123,252,114, 47, 47, 96,242,226,159,164, 82, 99, 22,112,123, 53,130,171,122, 98,114,159,122,162,217,135, 83,131,111, 69,
-169,170,130, 71, 71,131, 85,186, 88, 33, 16, 90, 40, 20,138, 19,183,110,221,146, 41, 20, 10,188,120,241, 2,141, 26, 53,194,166,
- 77,155,100, 50,153,236, 56, 33,164,181, 53,151,233,122, 18,141, 86,230, 26,155, 78,219, 31,147,116, 63,209,240,154,200, 74,205,
-163,248,228,219,195, 89,153, 57,249,189,175,197,148,252,252, 20,115,207,223,205,202,202,234, 48,103,206,156,244,212,212,212,215,
-238,241,232,232,104,147, 32,104, 77, 41,125,244,182,110, 79, 59, 59,187, 65,139, 23, 47,198,173, 91,183,208,185,115,103, 92,188,
-120, 17, 25, 25, 25,216,115,226,196,179, 93,207,158,205, 50,249,108, 21, 23,250,161, 36,216,218,218,126,190,120,241, 98,220,190,
-125,187,144, 51, 61, 61, 29,139, 23, 47,142, 3, 48,214, 90,145,101, 66,114,114,242,205, 39, 79,158,116,172, 83,167,206,227, 53,
-107,214,196,121,120,120,176,163, 70,141,194, 39,159,124, 2, 23, 23, 23,227,170, 85,171, 98, 66, 66, 66, 30, 70, 68, 68,180,203,
-203,203,123, 96,193,245,161,105,105,105, 87, 55,109,218,116,253,253,247,223,151, 13, 29, 58,212,229,208,161, 67, 78, 42,149,202,
- 83, 44, 22,187,106,181, 90,209,227,199,143,121, 7, 14, 28,112, 15, 11, 11,139, 84,171,213, 55,203,155,247,255, 32,110, 21, 88,
-167,206, 20, 89,223, 42, 99,155,165,199,150,244,187,172,253,204,175,255, 38,243,197,124, 67,153,203,160,170,152, 63,166,150, 66,
-117,117,112, 19,154, 52,170, 5, 77,238, 87,147, 94,110,229, 72, 71, 84, 35,121, 67,203, 25,222, 33, 62, 62,158, 38, 39, 39,211,
-244,244,116,186,119,239, 94,234,238,238,158,167, 80, 40,172, 14,239,224,238,238,158,156,147,147, 67, 27, 54,108,152,225,226,226,
- 82, 24,138,192,195,195, 35, 57, 47, 47,143, 54,105,210, 36,195,213,213,117, 21, 10, 70,120,120,123,123,199, 82, 74,169,175,175,
-111, 66, 73,124, 6,131,129,186,187,187,155, 66, 36, 8, 28, 29, 29,127,104,220,184,113, 70,114,114, 50,245,240,240, 40, 12,157,
-224,226,226,178,188, 81,163, 70,175,165, 91,144,223,216,184,184, 56, 26, 23, 23, 71, 43, 85,170,148, 96,158, 30, 29, 29, 77,163,
-163,163,169,183,183,183,213,225, 29, 92, 92, 92,150, 21,205, 75,121,243,232,227,227,147,172, 86,171,105,179,102,205, 94,171, 83,
- 31, 31,159,228,252,252,124, 83,186, 69,225, 29,164, 82,233,104,137, 68,146, 32,145, 72, 18,196, 98,241,162,202,149, 43,167,236,
-219,183,143,174, 90,181,138, 42, 20,138, 87,225, 29,130,186, 55,173,222,108,216, 44,151,160, 30,159,191, 73,120, 7,133, 66,241,
-187,187,187,123,222,129, 3, 7,168, 70,163,161,122,189,158,154,128,119,105,212,225, 38,255,234,244,135,192,195, 17, 11,253,194,
- 38,181,148,229, 63,248,186, 46,165,255,251,144,210,227,159, 80,122,118, 26,189,185,113, 20,109,230, 39, 54, 94,153, 90,233, 41,
-221, 16,240,139, 69, 33, 25, 54,213,174, 78,127, 8, 60,254,108,129, 95,216,208, 16,207,252, 31,215,175,162, 55,110,220,160, 15,
- 31, 62,164, 47, 94,188,160,199,127,221, 71,155, 85,149,189,226,252, 33,240,176, 53, 97, 30, 0, 52, 23,139,197,202,149, 43, 87,
-210,235,215,175, 23,114, 30, 62,124,152,202,100, 50, 21, 96,225,168,101,128,208, 31,130,122, 26,214, 7, 92,154,221,222, 38, 55,
-253,232, 52, 74, 31,108,163,116, 83, 48,165, 91, 27, 83,186,175, 11,165, 71,134,209,235,171,250,208,230,126, 66, 61,221, 16,112,
-145,110, 12,106,111,105, 62, 5, 2, 65,206,193,131, 7,105, 66, 66, 2,189,120,241, 34,189,125,251, 54, 13, 15, 15,167, 49, 49,
- 49,244,216,177, 99, 84, 32, 16,228, 3,176,122, 84, 99, 99, 55,248,182,171, 33, 76,188,183,164, 57,165,135, 6,208,212, 93,131,
-104,215, 90,138,140, 38,149,248,239,191,193, 72,187,122, 78, 78, 78,105,199,142, 29,163,145,145,145,244,194,133, 11,212,213,213,
- 53, 13, 64,240,219,190, 63,219,181,107,119,131, 82, 26,218,185,115,231, 80, 0,191,181,107,215, 46,244,229,203,151,161,141, 26,
- 53,186,142, 82, 66, 63,148,198,217,182,109, 91, 29,165,148,118,238,220,153, 2, 72,104,215,174, 29,125,249,242, 37,109,212,168,
-145,182,130, 70, 73,242, 0, 12, 19, 8, 4, 63, 58, 58, 58,158,115,112,112, 56,203,227,241, 54, 1, 24,108, 73, 59, 87, 10,167,
- 39,128, 32, 0,239, 21, 44, 53, 11,210,184, 17,135,255,165, 9,167, 45,221,177,143, 31,154, 15,175, 74, 46, 12,172,130,220, 1,
- 85,160,252,184, 26,185,220,219, 15,239, 91, 59,187,183, 73,104,101,100,100,208,187,119,239,210, 86,173, 90,229,201,229,242,120,
- 0, 29,203, 51, 99,184,179,179,243,109, 87, 87,215, 88, 62,255,245, 70,203, 44,189,173,121,186,171,171,235, 85, 15, 15,143,100,
- 23, 23,151, 59,197,113, 58, 59, 59,223,246,240,240, 72,118,118,118,190,109,126, 28,143,199,235,236,236,236, 28, 95, 52,157,207,
-231,191,239,234,234, 26, 91, 52, 29, 37,204,108,238,238,238, 30,155,144,144, 64, 83, 83, 83,169,143,143, 79, 66, 81, 1,150,148,
-148,244,154, 0,179,102,182,244,146,242, 82, 82,122, 73,156, 22,212,169,213,215,221,108,155,191,151,151, 87,202,138, 21, 43,168,
-141,141, 77,138,249,182,128,150, 31,127,121,227,153, 50,231,147,233, 63,236,115,169,217,179,118,121,102,138, 7,208, 81, 46,151,
-199,183,105,211, 38,239,249,243,231,165, 10, 45,252, 75,102,180,255, 19,231,254,154, 66,186,177,102,115,186,161,230,177,240,121,
-190,143,135, 53,150,107, 66, 87,116,166,244,236, 52,122,253,135, 79,104, 83, 63,209, 43, 65,180, 49,240, 4,253,201,191, 37, 93,
- 93, 85,100, 17,231,143,213, 66,232,198,192, 19, 97,115,125, 31,127,216,192, 69,187,123,219, 70,250,252,249,115,122,248,192, 46,
-218,164, 74,129,200,218, 80,243, 20,253,161,102, 27,139, 56,139, 17, 91, 91,182,108,161,207,159, 63,167,191,252,242,139, 69, 34,
-235, 53, 78, 51,161, 53,179,157, 77,214, 39,141, 37,154, 1,245, 68,218, 30,193, 66, 93,135,234, 66, 67, 51, 95,190,177,174, 7,
-195,214,116, 1,237, 16, 32,213,208, 13, 1, 23,233,134,154, 29, 45,205,167, 72, 36,138,129, 89, 76,157,162,139, 88, 44, 78, 45,
- 73,104,149,117,221, 27,187,193,183,157,191, 56,241,247,133,239,211,110,117, 20,233,150,136,172,178, 56, 1,212,115,118,118, 78,
-219,186,117, 43,117,115,115, 75,181, 68,100,253, 29,247,167,157,157,221, 14,165, 82, 25,122,242,228,201,208,118,237,218,133,238,
-216,177, 35,244,242,229,203,161, 50,153,108, 71, 73,161, 31,106, 22,105,255,139,114,218,218,218,134,230,230,230,210,147, 39, 79,
-210,118,237,218,209, 29, 59,118,208,203,151, 47, 83,153, 76, 22,250,143,122, 54, 57,206,255,174,152,122, 21, 67,235,181,197,106,
-161, 85, 81, 23, 2, 0,205,202,202,162,147, 39, 79,214, 74, 36, 18,149, 80, 40,156, 9, 64,248, 95,185, 9,157,157,157,175,186,
-185,185, 37,187,185,185,189, 38,246,204,211,157,157,157,239,188,203, 15, 32, 0,127,161, 80, 24, 45, 16, 8,158,154,167,187, 4,
-117,111, 90,173,249,208, 57,110,193,221, 63,120,147,124, 2, 16, 10,133,194,153, 18,137, 68, 53,117,234, 84,173, 82,169,124,183,
-132, 22,165,160,171,171,138, 76, 98,235,193, 28,223,240,110,181,100,186, 77, 83, 58,208,166,149,139,136,172,173,190, 98,171, 56,
- 11,196,214,221,217, 62,225,109,252,109, 12,139,231, 76,166, 77,170, 72, 95, 23, 89,214,112, 22, 17, 91, 50,153, 44,119,222,188,
-121, 22, 91,178,254,196,249, 99,128, 15,221, 24,184,227,149,136, 42, 99,249, 33, 96, 51, 93, 27,224,243, 79,185,238,141,221,224,
-219,214, 95,252,200, 82, 75,150, 37,156, 0,234, 57, 56, 56, 60,182,212,146,245,119,148, 29, 64,135, 49, 99,198,132,190,124,249,
- 50,244,197,139, 23,161,151, 47, 95, 14,237,217,179,103, 40,128, 14,197,197,217,210,245,234,165,169,199, 48,147,203,224,236, 63,
-102,204, 24,250,242,229, 75,250,226,197, 11,122,249,242,101,218,179,103, 79, 10,160, 63, 39, 96, 56,161,245, 79, 95,248,127,119,
- 39,171, 68, 34, 73,177,183,183,119,177,177,177, 57,150,159,159, 63,129, 82,154,248, 95,234,100, 78, 77, 77,109,102, 77,250,187,
- 8, 74,233, 83, 0,190, 69,211, 83, 30, 29,186, 6,224, 90, 5,240,235, 0, 44, 38,132,108,223,184,113,227,154,229,203,151,247,
-148, 72, 36,169,239, 84, 37, 78,136,208, 98, 77,181,219, 16,137,150,212,242,146,205,248,178, 51, 37,139, 79, 94,245, 93,218,203,
- 53,166, 89, 53,121, 36, 4,236,183, 32,154,155, 24, 22,165,177,146,243, 38,164,250, 37,117, 43,201,102,124,211, 3,228,219, 19,
-219,124,151,245,116,138,105, 86,213, 38, 6, 20,223, 66,172,186,102, 21,231,235,215,229, 10, 33,228,131, 21, 43, 86,108, 87,169,
- 84, 35, 41,165,231,172, 38, 81, 48, 73,200,211,207,131,158, 87, 11, 20,162, 82, 78,166, 2,195,123,136, 20,252, 99, 38, 19,191,
-158, 68,163, 1, 4, 87,240,179,116,183,160, 59,234,159,244,124,159, 34,132, 96,215,174, 93,131, 2, 3, 3,171,134,133,133,189,
- 80,169, 84, 59, 41,165,167,204,125,153, 8, 33, 71,190,189,127, 63,111,109, 88,216, 21, 45,203, 94, 41,131,115, 79, 1,231,231,
-129,129,129,193, 97, 97, 97,143, 84, 42,213, 10, 74,233, 30,206,117,137,195, 63, 29,127,187,208, 82,171,213,110, 92,181,115,248,
-155, 26,252, 68, 0,189,222,217, 2,154,137,173, 6, 62,210, 9, 7,199, 72, 85,160, 36, 14, 2,118,149,213, 34,171, 24,177,213,
-200, 87,250,217, 47,163,165, 42, 80, 36,129,226,187, 55, 17, 89,230, 98, 11, 64,149,114, 19,244, 9,211, 1,136, 4, 33, 81,152,
-143,146,157,168,231,163,240,179,155,195,219, 17, 91, 0, 78,149,177, 15, 5,112,182, 96,177,132,115, 15, 0, 78, 88,113,224,132,
- 22, 7, 14, 28,254,102,177,117, 32,232, 22,210,120, 83,193,160, 10, 96,136, 70,158, 33, 9, 19,162,180,111,200,121, 3,105,100,
- 18,120,240,135,200, 16, 1,165, 54, 9, 99,222,128,243, 47,120,147,227,149,239, 84,241,152,199,221, 26, 28, 56,112,248,251, 64,
- 8, 25,101, 62,210,208,252, 63, 39,180, 56,112,248,183,227,149,149, 39,174, 96,249,231,114,114,224,192,129,195,127, 76,112, 1,
-175,230,100,106, 87,194, 7,227, 25, 43,136,219,149,227,131,244, 12,199,201,113,114,156, 28, 39,199,201,113,114,156,255, 45,206,
-178,184,173,209, 31,255, 36,129, 85, 76, 57, 54,153,126,252,173,163, 14, 57, 78,142,147,227,228, 56, 57, 78,142,147,227,228, 56,
-255, 43, 11, 3, 14,255,102, 19,101, 9,203, 43, 83, 37, 33,197,239,195,129, 3, 7, 14, 28, 56,112,168,208,247,113,253,130,181,
- 71,193, 20, 60, 30,166,109,111,213, 71, 75,230,236,239, 1, 62, 83,135,176, 52, 16, 0, 40, 67,194, 97, 96,239,171,210,158,190,
-113,200, 7,133, 87,128, 35,133,104, 63,129,182,111,110,252,147,140, 55,229,171, 29, 96,215,203,205, 89, 49, 40, 41, 61,123,251,
-195,240,220, 67,214, 28,107,111, 95,217, 78,226,232,208, 71,163,211,215, 18, 9,133, 49,186,172,156, 77, 25, 25, 17,185, 21, 91,
-155, 20,243,231,131, 28, 77,188, 67,132,178,235,140,211, 2, 33, 81,206, 87, 82,101, 98, 40,235,151, 21, 73, 15, 28,232, 67, 1,
- 78,100,113,224,192,129, 3, 7, 14,127, 1,234, 3,184, 3,160, 11,165,116, 83, 65, 87, 98,233,206,240,149,131, 67,110, 73, 36,
- 82, 63, 0, 96, 41, 5, 75,129,188,156,172,208,196,136, 91, 29, 1,192,197,175,193, 73,129,196,182, 1, 75, 95,109, 55,178,128,
- 65,151, 31,153, 29,117,189,161, 37, 57,178,113, 13,248,176, 93,135,118,189,186,118,237, 18, 80,187, 86,237,106, 0,240,224,225,
-131,136,163, 71,143, 61,177,113, 13, 56,168, 76,121,242,203,155,201, 14,201, 87,239,189, 87,175,197,237,219,119, 22, 2, 24,247,
-166, 53,232,228,100, 51,225,212,255,166,182,108,219,107,185, 28,128, 85, 66, 75,226,232,208,167, 71,183, 78,245,190,152, 56,134,
-249,100,234, 55,126,183,174,156, 95,170,240,172,149, 69, 89,253,169,188,228,126,151, 74,155, 56,217, 18,204,159, 79,201,206,140,
-223,152, 85, 91,191,114, 80,103, 68,244,163,172,177, 31, 33, 4, 60,145,236,128, 75,213, 22,251,236, 91, 79,201,164, 20,218,210,
- 6,105,113,224,192,129, 3, 7, 14, 28,202,141, 99, 5,226,234, 88,209, 13, 37, 10, 45,137, 68,234,119,253,252, 81,199, 95, 46,
-199, 2, 0,218,213,119,199,172,175,215,116, 32,132, 60, 1,128,238,159,204,247, 95, 56,115, 34,174, 62, 74, 1,165, 20,245,170,
- 59,225,131, 30,125, 45,202,141,212, 61,168, 97,191,143, 62, 26, 56,117,234,231,221,159, 63,127, 30,181,123,247,238, 75, 0, 16,
-210,178,101,245,111,190,249,230,163,229, 14,142, 98,169,123, 80,188, 58, 41,236, 86,121, 74, 43,245,170,230, 21, 84,163,206,160,
-189, 63,173, 97, 90,119,236, 61, 64,234, 85,109,177, 58, 62, 34,222,146, 99, 93, 92, 92, 38, 9, 4, 2, 59, 0, 96,217, 63,244,
- 79,213, 74, 60,119, 0, 48, 24, 89,133,163, 87, 96, 46, 79, 40, 49,138,197,194,176, 92,165,114,123,118, 92,216,143,165,113,106,
-244,250,224,207,198, 14,103,238,190, 72,135, 95,112, 8,111,213,226,217, 96,141,122,135,201, 51,191,238,115,251,198, 94, 0,243,
- 46,148,247,202,122,121, 53,225,125,181,216,166, 61, 33, 24,230,219,244,227,158, 11,183, 29, 16,188, 87,221, 22, 26, 61,139, 19,
-161,233, 77,127,248,238,171,101, 87,126,232,114,132,124,155,188, 17,192,239,148, 82,150,123, 30, 56,112,224,192,129, 3,135,138,
- 67, 65,220,198, 77,102,255, 55,149, 41,180, 0,192, 70,202,199,147,151, 73, 0, 0,123, 41, 48, 97,244, 80,164,167,165,250,107,
- 13, 44, 62, 30, 58, 24,119,194, 19,241, 36, 50, 21,148, 82,248,123,203, 44,206, 16, 15,236,123, 31,143,248,184,213,201, 83,167,
-110,126, 57,231,203,159, 9,121, 21, 13,124,227,166,205, 77,231,206,155, 59,114,240,208,193,237, 15, 28, 56,240, 8, 69,102,198,
-182, 20,124,162, 88,179,108,201, 34, 81, 92, 90,126,254,164,169, 51,216,207,167, 76, 90, 5,160,183, 37,199, 10, 4, 2,187,184,
-184, 56, 27,134,121,221,125,237,219, 69, 51, 46,182,239,181,252, 89, 84, 76,214,221,147,135, 15, 55, 12, 10, 10, 66, 92,124, 82,
-243,165,223,111,168,235, 81,173,225,240,220, 28,117,175,188,212,176, 98,163, 80,139, 5,130, 71, 11,150,254, 80,143,181,175,206,
-204, 26,217, 25,193,213, 60, 17,159,146,133,150, 29,187,243, 67,111,221,234, 0,160,188, 66,171,143,150, 77,169,251,205,246, 27,
-109,123, 54,243,124,143, 97,120, 80,170,245, 72,205,214,192,200, 2, 33, 53,237,208,105,199,247,252,140, 60,253,135, 95,255, 47,
-246,195,107,171,187, 38, 19, 66,198, 83, 74, 15,114,143, 5, 7, 14, 28, 56,112,224, 80, 49, 40,109,212, 33, 3, 0,199,142, 29,
- 43,182, 79,201,104,164,120, 18,153,136, 39,145,137,184, 25,158, 10, 29, 21, 96,213,210, 5, 88,177,120, 30, 50,212, 12,126,185,
- 26,139,167,145, 73,120, 26,153,132,180, 76,101,113, 10,239,181, 33,154, 43,150,200,234,175, 90,101,183,172, 67, 75,121,107, 71,
- 7, 7,135,103,143,126,206,155, 59, 37,185,230,130,207, 98,133, 2,173, 56, 78,110, 35,111,182,127,255,190, 32, 55, 23, 87,185,
-141,141, 98,154,220,187,222, 22,123,251,186,118,165,113, 22,133,204,173,102,247,238, 93, 58,189,239,238,238,198,142, 89, 21, 26,
- 94,171,102,160,190, 70,245, 26,205,101,110,254,221, 75, 81,162,133,156, 44,203,130, 97, 24, 36, 39, 39, 35, 33, 33, 1, 47, 95,
-190,196,211,167, 79, 17, 27, 27,149,204, 82, 42, 48,130,101, 60, 60,188,193,231,139,224, 87,217, 23, 63,172, 90, 44,251,122,254,
-172, 70, 18,185,232, 16, 49,243, 52, 55,231,204,207,200, 60,112,252,183, 83,241, 39,118,255, 96, 4,128,148, 76, 37,206,222,122,
-142, 59, 97,177,214, 42,230,162,101,175, 28, 31,253, 60,199, 16,121,140,183,112,246,231,177,151, 47, 95,137,202,206,213, 34, 87,
-165,131, 42, 95, 15,141,214, 8,189,145,133,175,139, 4,191,206,168,133,195,231,238,187, 17, 66,190,179,166, 62,203,169,236, 57,
- 78,142,147,227,228, 56, 57, 78,142,211, 42,148,164, 69,254, 37, 22,173, 77, 69, 23,211,182, 82, 71, 29, 70,196,102,224,201,203,
- 36, 52, 8,244, 66,181,202, 30,184,249, 52, 19, 59,207,198, 98,203,201,104,156,189,151, 10,150,175, 64, 82, 14,240, 44, 42, 25,
-207,162,211,202,116, 1,226,137, 5,253, 62,251, 44,123,106,237,160,156, 38,231, 79, 76,128,151,203,179,160,233,211,179, 38,240,
-196,130,126, 14,149, 20,187,103, 76,157, 60, 72, 33,147,137,180, 26, 45,170, 86,241,149, 76, 28, 63, 97, 56,113, 16,239,182,180,
-160,182,222, 65, 14, 98,169,244,199,175,231, 79, 19,127,247,203,179,152, 60, 45,242, 14, 94, 75,126,241,249,140,185, 25,124,129,
-228, 7, 91,239, 32, 7, 75,185,244,122, 61, 52, 26, 13,180, 90, 45,116, 58, 29,226, 99, 31,119,255,253,151, 47, 58, 86,169,228,
-216, 81, 44,145,128, 2,200, 81, 27,240, 50, 81,133, 54,109,219,243, 26,212,175, 31,108,227, 81,115, 68,113, 92, 89, 89, 81,217,
- 44,229, 41,142,254,186,139,183,239,244, 93,252,124,244, 22, 14,157,187,139,155, 23, 78, 24, 40,171, 47,156,166, 66,225, 89,195,
- 95,225, 89, 39, 90,225, 85, 55,185,112,241,174,125,187,212, 58,229, 49,180, 77,219,118,103, 70,143,155,120, 94,149,155,158,242,
-227,154, 5,241,169, 9, 81,143,197, 66, 98,144,137,121, 80,230, 27,176,237,247, 4,244, 89,124, 15, 97, 49, 74, 80, 74,133,220,
-183, 7, 7, 14, 28, 56,112,224, 80,177, 22, 45,179,197,195,124, 91,137, 93,135,249,249,234,200,222,253, 6,195,195,213,221,166,
- 71,235, 97,194,208,136, 44,164, 38, 70,227,249,211,135, 80,229,235, 33,116,168, 2, 72,220, 81,217,207, 23,247,159, 28,210,173,
- 94,118, 76,201, 26, 52,145, 37,241,245,232,225,233,237,225, 34,103,150, 45,245,185,254,244, 73,102,131, 93,115,182, 98,224, 64,
- 27,231,101, 75,125,174, 71,189,144, 51, 50, 9,109, 54,124,232, 0,194, 16,138,233,211,167,162, 71,215, 78,248,120,248, 16,178,
-125,251,182, 38,150, 22,148,133, 96,237,204,217, 11, 68,201, 89, 6,237,205,167, 74,141, 76, 46,149, 94,121,166,204, 11,246,243,
-145,118,238, 53, 44,225,216,254, 31,191, 3, 48,212, 18, 46,147,192,210,235,245,208,233,116, 0, 96, 4, 0,134,121,181, 78,207,
-213, 34, 37, 75,131,228, 44, 13, 12, 70, 22,189,250, 13,149,222,186,125,111, 40,128, 18,252,181, 88, 86,111,208,227,224,233, 59,
-136,191,117,128, 37, 12, 47,219,228, 12,111, 18, 89,238,238, 62, 23,187,246, 26,226, 34,146,188,234,134,205,205,211, 96,251,134,
-165,165,230,147, 33,132,178, 70, 67,150, 65,175,207,171, 90,165,106,124, 96, 80, 93,201,229,243, 39,187, 95, 57,115, 80,105,168,
- 58,196, 62, 34, 42, 17, 60,129, 24, 60,161, 4, 26, 29,231, 12,207,129, 3, 7, 14, 28, 56, 84, 52,138, 78,191, 67, 8, 65,153,
- 83,240, 68, 61,186,212, 16, 0, 2, 26,118, 76,183,145,240, 29,249, 12, 65,114, 92, 4,182, 47,159, 4,150,165,232, 60,114, 25,
- 20,126,238,144, 10,121,208, 40,211,149,233,207,207, 59,149,174,246,244,237,215,109,140,247,251,116,108, 85,219, 93,187,148, 2,
- 0,216,181, 75, 41, 24, 59,166,146,237,250,141,145,126,141, 91, 52, 0, 53, 26,209,181, 71,111,244,235,223, 15, 81, 73, 42,252,
-239, 98, 12,242,212, 90,139,230, 87,147,185,212,172,235,234,233,213,233,179, 97,157,228,124, 30, 33, 53,124,237,120,177,169,122,
- 3,143, 39, 48, 30,185,149,157,208,171, 87,127,231,179,199,247,189, 47,115,169, 89, 87,149,250,248, 94, 89,124, 26,141, 6, 70,
-163, 17, 26,141, 6,122,189, 30,142,206, 85,142,183,239,189, 60, 46, 49, 41,247, 88, 82,102,126,227, 60,189, 1,201, 89, 26,164,
-100,105,144,149,167,131,187,194, 1, 6,189,182,118, 41, 23,225,231,158,189, 7, 15, 1,192, 16,198,176, 53, 55,225,241, 83,211,
- 54,147,200,234,212, 99,160,203,197,208, 8, 60,191,125, 34,147,178, 6,253,171,138, 99,139,157, 2, 69,226,221,180,160, 94, 65,
-121, 4,172,144, 79,244, 60,134, 97,117, 58,165,222,213,213,229,236,133,179,191,117,203, 55,188, 0, 79, 40, 46, 60, 70,173, 53,
-114, 79, 3, 7, 14, 28, 56,112,224,240, 23,192,204, 79,235, 88,129,115, 60, 94, 19, 90,166,190,209, 46, 93,186,252, 41,216, 82,
-124,114, 6,156,108,248,112,241,244,195,160, 73, 43,240,243,119, 83, 96, 52,234, 65, 41, 96, 48, 90, 54,136,141, 82,193,233,113,
- 99,253, 2, 43,251,241, 92, 6, 13,148,169,119,238, 82, 73, 7, 13,148,169,107,213,118,202, 30, 55,214, 47, 50, 55,223,167,185,
-193,104,196,149, 71, 41,120, 24,153,141,135, 81, 57,176,145, 90, 30,230,139, 39, 18,142, 93,186,100,177,144,207, 35,228, 81,180,
- 82, 25,151,110, 80,242, 4, 2,157, 76, 42,162, 90,202,215, 68,165,209,244,182, 61,135,171,143,236,248,126, 4,128,241, 37,241,
-152, 70, 26,154, 44, 89,166, 53,165,148, 18,128,101,137,209, 24,151,150, 15,165, 78,143,228,204, 63,132, 22, 49,148,220,115,170,
-240,172,225,111,103,235,248, 27,143,199, 19, 83, 10,232,117,134,143, 20,158, 53, 58,230, 38, 60,123,106, 46,178,174, 63, 74, 64,
-196,221, 51,201, 70,157,106,112, 94,114,248,239,150, 95, 92, 80, 30, 15, 44,143, 33, 44, 33, 96, 5, 12,213,130, 82,182,104,142,
- 84,156,208,226,192,129, 3, 7, 14,255, 96,148,166, 69,254,233, 48, 89,176,138,181,104,149, 86, 32, 74,129,103,209,105,168,236,
-237, 2,239,202,213,240,244,241,253, 63,182, 1, 48, 24, 45,235,142, 58,116, 40, 33,110,229, 74, 59,118,202,148,236,166, 75,151,
-250, 92, 27, 59,166,146, 93,173,218, 78,217,211,166,197, 52, 93,185,210,238,218,233,235, 2, 35, 45,136,215,101,138,205, 85, 16,
-230,223, 66, 48,141,234, 6, 85,225, 45,216,245, 44,230,247, 7,185, 41, 66,161, 80,239,238, 32, 33, 10, 27, 17,143,199, 8, 68,
- 26, 61,163,241, 15,174,207, 59,194,188,138,222, 90,150,208, 42,218,117,152,158, 26,209,253,212,255,166,214,106,221,115,153, 99,
-124,170, 26,217, 90, 94, 97,215, 33,143, 33,120,240, 56, 26,224, 9, 31, 22,199,105,171,112, 60,185,123,231,207, 62, 43,151, 46,
-130,206, 96,196,184, 41, 95, 98,248,208,193, 39, 21,158, 53, 58,250,248, 5,132, 94, 58,178, 85,214,113,204, 15,136,126,114, 59,
-201,160,201,217, 99,141,200, 42, 20, 91, 0, 53, 82,150,201,200,204,177,209, 24, 32, 65, 49,186, 79,163,227, 34, 59,112,224,192,
-129, 3,135,127, 38,254,141,226,234, 15,131,199,107,163, 14,139,183,104,149, 6, 95,111, 55,220,120, 24,137,218,129, 85, 96,103,
-171, 64,120, 68, 28,120,140, 0, 12, 1,244, 6,203,197, 16,213,233,247,174, 92,105,135,232, 72, 57,179,254,135, 72,191,113, 99,
-253, 34, 87,174,180,187, 70,117,250,189, 0, 6, 83,250,106,238, 69, 83,128, 84,163, 21,186,128,178,250, 74,110,142, 50,222,237,
- 23,121,233, 12,195,211, 56,217, 73, 88, 39, 59, 49,227,164, 16, 9,132, 2, 30,107,160,140,206,219,213, 47,159,178,108, 93, 75,
-248,204,187, 14,141, 70, 35, 8, 97,140, 5, 66, 76, 30,155,174, 70,118, 62, 15,201, 89, 26,100,230,234, 80,195, 75,142, 51,103,
- 15,168,140,122,245,174,226,184,120, 2,161, 93, 53, 63,111,204,250,106, 37,212, 26, 35,158,197, 43, 33, 20,139,221,221,220,131,
-239, 13,254,116,134,120,226,166, 8,140,120,223, 9, 83, 46, 69,196,171,146, 37, 51,172,185,184, 70,163, 17,234,124,173, 48, 57,
- 45,211, 33, 39, 55,207, 86, 42, 17,171, 93, 28,237,210,138,219, 55,159,179,104,113,224,192,129, 3, 7, 14, 21, 14,115, 31,173,
-162,176, 72,104,217,200, 36,160, 60, 9, 46,133, 70, 32, 32,168, 14,182, 29,190,137,234,181,155, 32, 49,215, 0, 10,198,226,128,
-227,159,207, 80,221, 1,112,167, 71, 15, 79,239, 15, 63,244,106, 79,169,224,244,250, 13,217,113, 0,240,195,158, 86,160, 0, 88,
-150,130, 82,128,178,175, 4,151,229,114,146, 31, 29,153,152, 83,217,207, 93,142,176, 56,157, 70, 46, 22, 50, 14,114, 17,207,197,
- 78, 36, 20,242,249, 48, 82,162, 73, 76,140,208, 16, 32,202, 18,186,162, 93,135, 50, 27,143,227,109,123, 46, 75,141,138,201,190,
- 93, 35, 67, 85, 55, 91, 39, 2,165, 64, 13, 47, 57, 30, 94, 63,102, 76,142,127,254, 76,157,252,100, 67,113, 92, 44, 11,158,206,
-192,226,222,139,108,100,229,233,145,165,212,161,121,155,110,194,230,237,186,227,210,195, 52,176, 6, 61,150,110, 62,150,107,164,
-250,126,148,134,233,173, 40, 52,115,227,206, 35,239,212,204, 60,177,128,207,207, 10,172,238,251, 82, 36, 20, 24,114,114,114, 68,
-175,239,197,131, 92, 42, 66,134, 82, 15, 0,122,238,145,224,192,129, 3, 7, 14, 28, 42, 14, 5, 35, 13,187,224, 85,100,248, 46,
-230,226,203,162, 73,165,141, 44,133,179,147, 35, 36,114, 91, 68, 38,235,144, 75, 92,145,169,162, 48, 26, 95, 89,180,216,146, 79,
-220,174,184,244, 67,135, 18,226,126,253, 53,117,203,161, 67, 9,102,142,222,127, 88,178, 10,215, 44,181,152,147, 80,227,153,195,
- 39,206,103,119,111,236,226,192,240,120,106,161,128,209,240,133, 60,157,144,207,232,133,124, 70,235,102, 43,224,157, 63,178, 71,
- 68, 9,206,151,197,153,159,159,143,118,237,218,161,115,231,206,232,209,163, 7,250,246,237, 11,127,255,154,174, 12,143,104, 41,
- 97, 89, 23, 81, 46,170,185, 16,240,243, 99,241,251,158,111, 85, 15,175,252,122,207,168,201,239, 70,205,250, 58, 95,227,164,148,
-205,200,214, 32, 95,103, 68,166, 82,135,204, 60, 29, 12, 46, 77,241,235,213, 4,168,181, 70, 68,135, 30, 80,167, 38,197, 77,202,
- 79,126, 22, 89,198,133, 44, 82,118, 26,247,201,199, 67, 83, 21, 18,230,121, 72,179,134,169,206, 78,142, 6,243, 73,163, 9, 33,
-144,216,186,194,193, 94,129,200, 59, 39,112,106,105, 91, 53,128,217,150,212,231, 27,222,112, 28, 39,199,201,113,114,156, 28, 39,
-199,249, 95, 66,151, 2, 97,213,165,104, 28, 45, 11, 44, 90, 20, 85, 61,228,168,238, 37, 71,190,206, 21,249, 90, 35,242,242,141,
-200, 81,233,144,163,210, 35, 50, 73,133,135,135,223, 60,135,175,172, 88,175,166, 61,166, 20, 0,121, 37,240, 44,181,105,137,116,
-218,175, 86, 44,253,230,163, 61,245,235,105, 39,118,241,168,116, 63, 82,155, 64, 8,163,102,120,124,189,163,130, 47, 8, 15,191,
-159,122,237,226,241,150, 18,131,113, 72,105, 60, 6,131, 33,219,203,203,171,192, 18,245,135,132,172, 89, 77,218,227,202,177,233,
- 85, 90,117, 95,234,242,221,162,169, 42,134, 39,100, 9, 95,248,208,168, 87,239, 86, 39, 63,249,129,150,226, 80,198, 8, 37,143,
-111,220, 13,107, 98,239, 88, 9,207,227,243,144,151,111,128,206,192,194,193, 70,136,184, 7, 39,117,145,225,183,247,229,198,223,
-219,102,125,157,209, 93,132, 16,239, 78,157, 58,246,110,210,164, 41,111,238,220, 47, 17, 16, 16, 0,181, 90, 13,134, 97, 80,169,
-114, 53, 68, 62,189,139,235,199,190, 50,170,210,163, 54, 0, 88, 72, 41, 77,229,158, 7, 14, 28, 56,112,224,192,161,194,197,231,
- 40,243,117,153,225, 29,204,172, 59,145, 45,218,117, 3,203, 82, 24, 41,192, 26, 11, 44, 79,236, 31,214, 39,163, 62, 63,242, 77,
- 51,200,178,198,155,107, 55,109,233, 92,191, 81, 43, 94,144,143, 13,114,210,147,112,253,202, 57, 3, 88,122,205,146,227,211,210,
-158, 42,101,238, 53,122,127,212,231,195,253, 67, 63, 30,147,213,178, 77, 27,185,171,171,187, 38, 46, 62, 78,245,211,142,157,250,
-147,199, 15,181,100, 97,232,159,150,246, 76, 89, 26, 79, 86, 86,214,247,197,165,183,109, 81,169, 57,128, 42, 60, 62,209,170, 82,
-158,202,173, 41, 91, 90,124,108,175,111,190,154, 31, 53,112,228,100, 81, 85,175,106, 72,201,230, 33, 50, 46, 9,225, 23, 15,105,
-226,159,222,250, 37, 39,238,206, 8,107,235, 43, 63,238,154, 73,108,197, 1,248,142, 16, 18,220,169, 83,167,142,239,191,255, 62,
- 29, 53,106, 20, 40, 5,126,223, 52,150,102, 68, 94, 63, 0, 96, 54,165,244, 5,247, 24,112,224,192,129, 3, 7, 14, 21,143, 55,
-242,209,138, 9,123, 21, 79,235,175, 70,110, 82,202,224,109,219,126,254,250,231, 29,123,154,231,107,181, 94, 20,194, 88,163, 65,
-123, 65,105,196, 92, 75, 57, 84, 73,207,110, 59, 59,251,215,250,105,243,218,217, 63,109, 89,223, 10,172, 49,144, 0, 81,148,224,
-188, 68,111, 28, 90,150,200, 42, 93,200,229,110,108,223,123,185, 58, 61, 93,249,179,181,199,170,210,194,147,108,220,170, 86,218,
-184,234,171,101, 12,195,235, 96, 52,178, 2,214,168,127,110,212,229,127,171, 78,125,114,152, 90, 55,188,178,164,139,252, 8,192,
- 35, 66, 72,200,217,179,103, 27, 1,248, 30,192, 5, 74,233,109,238, 17,224,192,129, 3, 7, 14, 28,254, 58, 16, 66, 70, 21, 13,
- 90,106,177, 69,235,239, 66, 70, 70, 68, 46,128,137,111,202,147,150,246, 84, 9, 96, 70, 69,231,239,193,211,236,255, 1,248, 95,
-121,143, 87, 38,191, 72,133,133, 81,233,223, 80,112, 93, 2,112,137,187,237, 57,112,224,192,129, 3,135,183, 43,184, 0, 11,157,
-225, 57,112,224,192,129, 3, 7, 14, 28, 56,148, 46,178,204,215,133,233, 0,138, 29, 57, 96,205,204,220,229, 25,125, 80, 22, 63,
-199,201,113,114,156, 28, 39,199,201,113,114,156,239, 30,103, 89,220,214,232,143,127,133, 0,171, 0,247,160, 82, 43,177,162, 43,
-140,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,119,143,243, 95, 45,166,138, 88,177, 10, 4,227, 63,203, 71,139, 3, 7, 14,
- 28, 56,112,248,187,224,236,236,111, 3, 20,250,245,150, 9,185, 75,144, 27, 0,228,165,134, 37,115,181,199,161, 36, 81, 85,156,
-143, 86,185,132, 22, 33, 68,192,240, 69,159, 73,164, 54,195, 8, 3, 91,101, 86,154,215,127, 88,197, 18,255,202,242,241,149, 42,
-185,180,137,139, 79,222, 30,254, 66,117,232,109,112,218,184, 85,117, 33, 34,135, 95, 8,171,249, 38, 39,238,225,137, 10, 46,163,
- 56, 40, 40,168, 30, 0,132,133,133,221,165,148,106,222,148, 83,238, 22, 48,192,193,214,126,180,142,213, 26, 85,121,170, 31,148,
- 73, 79, 15, 84,100,158, 21,158, 53,156,192, 87,108,128,209,208, 6, 20, 60,240,248,247,136, 38,255,147,156,212,176, 82,195, 92,
-248,244, 88, 28, 56,226,163, 46,115,182,236, 59,246,117,204,161,153,225, 69,183, 59,126,176, 70, 49, 97, 72,135,233,235,246, 28,
- 90,146,118,120,154,146,107, 94,172,135, 79,139,129,246, 6,190, 59, 47,225,252,242,116,107,142,243, 14,104,250, 72, 32, 16,184,
-232,116,186,148,248,167,215,107, 89,114, 76,165,192,102,119,120, 60,198,211,104, 96,227, 98,159, 92,125,143,171,253,178, 33,117,
-173,218, 20, 6,195, 44, 10, 16, 16,254,138,252,244, 23,231,222,132,207,211,211, 83,106,103,103,215,210,214,214,182,146, 76, 38,
-147,100,102,102,170, 51, 51, 51, 99,162,163,163,207, 82, 74, 13,111,163,140,114,183,128,153, 68, 64,230, 21,252, 94,144,151,252,
-100,113,233,237,107,224,215,132,161, 51, 11,126, 47, 86, 38,135,207,249, 39, 92, 43,137,123,128, 47,143, 98, 34,143,225, 55, 51,
-176,250, 69,170,228,167, 71,172, 57,222,209,209,177, 3,159,207,151,154,254, 27, 12, 6,117, 70, 70,198, 41,238, 41, 40,215,123,
-114, 84,209,223,229,182,104, 17, 66,120, 2,177,236,242,192,143,199,213, 90, 50,127,134,100,213,150, 95, 33,177,113, 8,203, 87,
-102, 6,253, 19, 11,239, 82,181,241,109, 30,195,243, 54, 79, 51,178,198,184,212, 23, 55, 42,164,209, 13,168, 44, 29, 49,123,218,
-224, 41, 3, 62,106,231,219,174,235, 36, 2,160, 88, 81,164,240,105,120,149, 16,166, 10, 67, 0,134, 33, 96, 8, 0,208,132,180,
- 23, 55,234,151,151,211, 4, 59,215,106, 85, 68, 54, 46, 23, 91,244, 24,231, 30,122,102,231, 54,185, 75, 80,251,188,212,176,251,
- 21,112,227,184, 84,171, 86,173,161,191,191,191,211,132, 9, 19,132, 0,240,221,119,223, 85,175, 94,189,122,122, 68, 68,196,173,
-242, 6, 63,149,187, 6, 14,254,126,249,194,159, 63,248,160, 51, 18,210,242,176,116,229,186,214, 54,238,254,125, 43, 74,108, 57,
- 56, 84,177,229,219, 58, 60,152, 52,109,161,107,167,214, 13,121,202,124, 3,126,187,120, 55,100,231,186,133, 55,109, 93,130, 26,
-149, 38,182, 88, 85,246, 28, 55, 27,218,137, 85,101, 3,192,128,162,219,189,108,244,237, 92,164,198, 78, 30, 98,254, 93, 0, 7,
-203,204,139, 95,139,147, 2,177,216,151, 97, 24,152,174, 61,143,188,186,254,122,157, 58, 58,238,241,197,142,255,132,231,196,214,
-183,113, 18,120,124, 39,134,252,145, 63, 82,112,159, 18, 74,115, 18,159, 94,114,170,128,251,201,174, 86,117,251,224, 46,205, 91,
-252,116,225,101,134,220,167,213,228, 99,132, 50,235,163, 47,174,184,103,209, 75, 69, 34,113, 56,114,228,136, 75,167, 78,157,236,
-220,106,245,188, 96,201, 49, 54, 34, 73,208,209,163,135,133,157, 58,117,180,226,254, 12,104, 15,134,217, 65, 0, 1,203,210,239,
-120, 44,221,167, 76,127, 26, 97,109, 24, 22,153, 91,224, 8, 6,212,226,118,134, 5,185,173, 74, 14,223, 82,222,250, 21, 72,236,
-218, 10,132,194,207,170,248,215,174, 31, 31,245,252,118,158, 50,119,165, 62, 63,235,130,213, 68,122,195, 23,103, 46,133,126,192,
- 23, 8, 72,167,182,141,121, 0,222, 72,104,185,185,185,245, 92,179,102, 77,213,166, 77,155,154, 94,230,182,251,247,239,119,255,
-234,171,175,228,150, 60, 67, 37,220, 75, 94, 46, 46, 46, 62, 34,145,200, 11, 0,180, 90,109,124,106,106,106, 12,165, 52,190,204,
-123,194,189,154, 51, 1,127,225,165,139, 23,249, 0, 16, 18,210,242,107,223,144, 9, 14, 60,161,141,186,216,234,208,230,202, 1,
- 76,190,126,227, 26, 1,128, 38,141,155,206,144,187, 4,173,125,155,150, 45,169, 91, 96, 99, 6,152,210,188,101,251, 94,253,250,
- 15,102,130,107,248,160, 67,251,247,167, 3,176, 74,104,241,249,124,233,205,155, 55,171, 49, 12,195, 51, 24, 12,249, 77,154, 52,
-137,121,147,124,121, 5, 52,187, 74,192, 84,210, 25,180,155, 83, 95,220,254,154, 82,202, 22,213, 15,118,149,234,207, 6,143, 63,
-146,101,217,216,156,232, 91,205,222, 53,139, 86,177,245,108, 45, 25,195, 23,125, 54, 96,248,167,181, 38,127, 62, 75, 50,105,213,
- 89, 28, 91, 55, 35,237,159, 42,178, 0,128,199,240,188, 79,158, 58,233, 42, 19,241, 0, 0,202,124, 3, 62,232,212,169,204,227,
-236,253, 26,159,103, 8, 9, 48, 77,104, 99, 52,232, 36,124,129, 40,159, 0, 0,121, 53,138,192,217,179,242, 89, 15, 15, 71,217,
-128,143,218,249,238,216,115, 58, 46, 38, 46,189,196, 70,141, 97,120,222,135, 14, 31,113,245,114,146,128,207, 35, 80,170, 13,232,
-212,185, 91,177,179, 60,123,120, 56,118, 25,240, 81, 59,223, 93,123,207,196, 36, 38,102, 28, 43,181, 49,247,240,111, 32,183,115,
-251,173,215,232,175,156,242, 25, 71,204, 93,244,189,243,197, 19,187, 46,180,234, 50,152,141,142,142,205,167,132,132,101,102, 36,
-126,166, 76,124,254,196, 82, 33,109, 99, 99, 83,213,198,198,166,238, 7, 31,124, 32,153, 58,117,170,160,117,235,214,133,219, 71,
-141, 26, 37, 60,127,254,188,199,242,229,203, 59,123,122,122,230, 43,149,202,123, 74,165,242, 5,165,212,226, 25,171,221,221, 93,
-198,247,254,176, 27,222,239, 53, 14, 70,150, 96,212,167,147,113,242,196,193, 49, 0, 42, 68,104,233,101,182, 95,141, 28, 61,213,
-165, 73,195,122,188,133,187,158, 64, 42,226,163,227,123, 1,100,248,132, 57,246, 91, 86, 47,252, 17, 64,171,226, 44, 89,172, 42,
-123, 78, 45,103,109,255,238, 77,171,224,240,110,109,127,239,118,211,193,200,236, 10, 45, 91,213, 62,152,168,112,144, 74,215,120,
-218,243, 92,197,198,212, 53,213, 62,152,120, 38,226,196,234,220, 82, 95,126, 98,177,239,238, 93,187,106, 56, 40,132,224, 51, 4,
- 60, 30, 1,159,199, 32, 95,107, 68,223,143,250, 87,212,151, 20, 79,234, 90,163, 51, 3, 12,127,245,194,198, 86,117,202,179,227,
-214, 92, 19,194, 19, 58, 29, 61,252, 11,223,213, 78, 12, 30,143,128,199, 0, 60,134, 32, 42, 89,141, 17, 35,134,219,189,169, 96,
-255,160,185,107,195,243,107, 91,117,108, 82,203,177,206,222,107,196,174,201, 7,253,156,210,242,101,195,246, 28, 58,215,223,167,
-229,148, 27,148,178,203, 98, 47,173, 42,245, 75, 90,163,209, 36,119,236,244,129, 45,225,203,101,103,126,253, 63,123,231, 29, 30,
- 85,209,182,241,123,182,103,179,155,108,122, 37, 9, 16, 8, 9, 37, 64,232,189, 23, 9,189, 55, 81,164,136, 32, 10, 34,210,164,
- 40, 32,130,116, 17, 65,154,244, 42,210,123, 87,106, 2,129, 80, 18, 72,239,125, 91,182,151,249,254, 72,194, 27, 49,101, 3,248,
-189,175, 58,191,235, 58, 87,178,187,103,239,157,115,206,156,115,238,243,204, 51, 51, 59,218,243, 56, 4, 38, 11,133,217, 66, 97,
- 41,158, 27,181,232,124, 37,224,112, 8,168,149, 98,252,248, 15,208,163,231, 59, 26,171,217,154,106,251, 69,142,179,235,204,133,
-223,220,245, 38, 43,190, 91,191,245,171, 66, 69,206, 87,241, 79, 93, 19,237, 61,235, 76,211,100,197,216, 60, 15, 6, 7,180,105,
- 74,220,163,137,123, 78,220, 66,131,122,117, 97,177, 22,149, 51,184,154, 4,123, 78,222, 66, 72,112, 72, 81,185,173, 20,117,252,
-164,104,214,180, 25, 0,188,150,209,226,219, 57,206,239, 16,254,238,162,222, 67,198,194,195,221, 29, 28,106,234,125,225,228,158,
-222,124,177,236,115,147, 86,241, 93,213,238, 24,150,151,247, 5,106,181,190,113,122,137,143,143,143,123,179,102,255, 25,142,209,
-108, 54,163, 70,141, 26, 72, 75, 75, 11,126,141,186,100,239,237,237, 29,190,105,211, 38,143, 94,189,122,241,189,188,188, 0, 0,
-153,153,153,190,103,206,156, 9,243,241,241,201,206,200,200, 56, 73, 41,213,148,167, 97, 49,113, 4, 28, 30,184,118,118,246, 69,
-219, 8,194,153, 49,229,221,134,158,222, 62,101, 70,234,115,114, 50,133, 51, 39, 95, 38, 60,158,160,120,125,112, 40,181,146, 10,
-162, 68, 93,249,124,190,184,172,207,140, 92,199,150,148, 47, 27,199,225,114,138, 42,171,217,148,147,159, 20, 81,183, 10,145,184,
-250,124,161, 96,227,200, 49, 19, 91, 15, 30,216, 15,222,238, 50, 92,184, 17,133, 15,167, 76, 55,153,141,166, 85,175,117,143,228,
-114,121,217,217,217,137,206,206,206, 94,111,126,191, 37, 53,207,159, 61,237,113,225,226,165, 89, 43,215,172,155,228, 83,167,157,
-201, 74,233,203,121,140,253, 27,116,230,119,235, 61,212,209,163, 86, 75,187,117, 11,198,241,255,105, 17,173,242,204, 86,149, 79,
- 34,161,216, 97,232,151, 51, 63,182,251,122,247, 45,156,220,240, 97,110,161, 34,199,253,229,147,130,204, 57, 82,173, 40, 8,123,
-157, 66, 58,120, 4,183, 34, 92,222, 68,194,229, 74, 8,135, 8,173, 22,107,138,217, 96, 88,172,201,141,201,120,211, 29, 96,181,
- 82, 28,254, 61,187,106, 59,141,162,246,174,253,191,120,120, 58,137,160, 51, 90, 48,108,196,104,236,220,185,211,193, 93, 38,132,
-206, 96,198,138,149, 43, 85,234,196,147, 30,137, 41, 5,105, 93,251, 76, 63, 23,151,144,253, 40, 57, 67,119,160,252,131,192,129,
-135, 76,132, 37,251, 98,224, 40,230,195,217, 65, 0, 14,231, 15,243, 18,190,108, 46, 76,207, 40, 80,148,210,220, 93,238, 73,231,
- 29,218, 67,230,236,179,119,192,196, 37, 78,177,217, 60, 80, 24,241,194,209, 14, 67,223,155,234, 24,232, 37,134,196,142,235, 20,
-159,148,230, 61,227,243,207,111,200, 60,106, 53, 87,100,191,136,175,108,187,171, 87,175, 62,176,119,239,222,246,159,125,246, 25,
-223,207,207, 15,219,247, 28, 12,104,215, 99, 72,159,244,140, 44, 63, 74, 41, 60, 61, 60, 82,198,191, 63,228,248,169, 83,167,146,
- 82, 82, 82,248,203,151, 47,111,241,203, 47,191,212,171,202,147,169,133, 82,232,244, 22, 88,138,111,144, 57, 10,125, 85, 43, 52,
-241,245,245, 21,165,165,165,233, 75,162, 12,164,212, 36,143, 82,223,198, 61,186,116,104,193,219,116, 58, 1,106,157, 5, 18, 59,
- 62, 18,178, 52,104,218, 56,148,252,100, 49, 55, 42, 75,243,131,161,225,243, 60,165,180,103,223, 86, 53,225,225,108,143,109,223,
- 47,193,177,155,241, 61,179,212, 4,110,125,151, 79,244, 22,241,186,185,219, 11,214,119,108, 90,203,171,115,147, 0,220,109, 90,
-203,235, 90,196,179,152,208,161,171, 62, 78, 83,243, 47,228,159,254, 88, 85,246,133,135, 3, 23, 7, 1,182,158, 77,130,189, 29,
- 15, 18, 59, 30, 36,162,162,191,165,143,255,107, 61,213,250,212,243,227, 90, 45, 31, 56,250,212,251, 96,248,208, 33, 62, 35,135,
- 15,161,224,114,112,240,240,241,126,187,119,239,202,144,122, 5,111,177,112,184, 91,181,233,143, 83, 42,221,167, 28,192, 67, 38,
-196,231, 91, 30,193, 81,204,135,131, 61, 31,142,246,124,116,110,232, 14, 46,231,181, 47, 60,206, 31,246, 11,236, 21,181,179,107,
-167, 96,127,105,208,131, 23,138,199, 31, 44,190,183,230,138,188,211,167,223,175,174,231,170,150, 27,120,243,103,140,231,165,166,
-167,119, 58,120,252,106,103,159,230, 31, 60, 51, 27, 11,231,100, 63, 56, 80,102, 4, 55,229,233,239, 97,213, 90, 13,177, 51,170,
- 77, 15, 31, 60, 75,173, 85,160, 23, 33, 58, 81, 9,137, 29, 15,210,146,125,107,199,131,196,142, 15,169, 29, 15,233,169, 9,200,
- 47,228,222, 72,115,229,116,162, 87,126,175, 82, 19,149,206,104,193,253,120, 53,170, 7, 55,134,183,183, 15, 12,189, 70, 85,191,
-125,233,240,175, 18,239,186,223, 20,102, 60,153, 99,171,206,158, 19,183, 48,107,218,196, 8, 2, 68, 22,223,164,195,230, 47,219,
-208,228,171, 89,147,255,240,222,140, 69,235,154,188,126, 36,203,113, 94,231, 1, 31, 45,106,215,109, 0, 84,249, 89,248,253,220,
- 1,244,232, 61, 8,163,198,126, 2, 39, 39,183, 21,124, 59,217, 3,147, 78,113,233, 79,215, 92,239,186,109, 67, 27,212,221,237,
-235,227,227,103,181, 22,205,242, 65, 41,208,182, 67,103,204,252,116, 60,172,148,162, 81, 88,243,206,189,134,127, 76,105,241,108,
- 32,185,121,185,133,207,158, 62,238,170,205,122,122,219,230,125,169,211,153,114,114,114,112,255,254,125,196,196,196, 32, 58, 58,
- 26,121,121,121,144,201,100,234, 42,214, 39,199,134, 13, 27,142,188,116,233,146,157,179,179,243,203,247, 13, 6, 3, 28, 28, 28,
- 48,114,228, 72,126,247,238,221,125,195,195,195,199, 16, 66,246, 80, 74,149,101,233,104,243, 98,211, 29,189, 66,126,236,208,177,
-195, 36, 0, 16, 59,122,199,175,223,126, 60,186,194,115, 77,230, 19,208,186,117,155, 90,160, 20, 4,116,109, 97,238,179,204, 10,
-162, 68,146, 91,183,110, 5,114,185, 92,222,127,238, 65, 86,252,176,109,127,200,249,235, 15, 7, 46, 91,241,157,157,163, 68,132,
- 28,133, 1,227, 70, 13,176,249, 30,108,239, 21,210,171, 77,155, 14,191,126,181,232, 75,158, 84, 34,193,185,219,113,248,248,211,
-207,117, 25,137,143,190,163, 86,254,134,194,236,103,217,111,120,171,124, 43, 61,227,130,170, 73,225,208,183,135,221,135,239,246,
-181, 51,152, 44,144, 23,154,160, 55, 90, 96,177, 82, 40, 10, 77,120,156,172,130,155,163,240,117,164,155, 1,112, 7,144, 3,224,
-238, 43,175, 81,252, 63,202,120,157, 91, 20, 30,129, 43, 0, 3,128,210, 63, 94,242,186,188,247, 75,190,255, 24, 64,221, 98, 77,
- 11,128, 59, 0, 10,202, 50, 91,101, 69,185,120, 39, 79,158,164,225,225,225, 47,175,248,175,190,126, 21,145,128,239, 35,145,185,
-131,210, 39, 40, 61,129,177,167,119,181,188,141, 63,254,228, 34,115,118, 77, 82, 20,228, 5, 20,255,200, 5, 91,110, 22, 60,194,
- 93,213,161, 99,251,238,147, 62,250, 8,193,129,213, 4, 22,139,133, 62,138,137, 55,237,216,186,237, 61,153, 95,232, 26,101,234,
-163,121, 37, 33,200,170,246,114,176, 88, 45,169,175, 70,176, 44, 86, 75,234, 43, 59,227,194,159,119, 24,224, 36, 21,226,199,211,
- 9,160, 20, 32,160,144, 73,248,216,119, 37, 21,241, 17, 71,148,189, 27, 41, 11, 71, 46, 91,216,185, 83,175,169,151, 30,191,208,
- 29,200,206,214,157,165,148,102,150,167,201, 33, 0,143, 75,224,104,207,135,204, 94, 0, 39,137, 0,164,212, 13,172,116,115, 97,
-199, 94, 83,207, 95,250, 45,105, 14,128,156,210,249, 80,165, 53,197, 94, 65,205, 28,157,170, 29, 24, 56,105,185,195,195, 84, 51,
-120, 92,160,166,151, 24, 46, 14, 2, 24,204, 4,137, 57,198,226, 51,199, 9, 31,207, 88,228, 50,107,250,164, 83,132,212,107, 64,
-233, 99, 99, 69,219,174,209,104,132,163, 71,143,230,155, 76, 38,227,200,113,159,116,207,204,204,233,247,195,218,111, 69, 30, 30,
-158,208,232,204,136,136,126, 94,247,171,175, 22,213, 60,126,230,202,209,133,159,127,248,107,207,158, 61,101,251,247,239,183, 86,
-182, 63,255,240,132,152,149,251,253,182,221,135,118,174,254,110, 41,158, 37, 21, 96,235,166, 13,160, 22,243,143,149,132,101, 47,
-148,250,159,206,153, 51, 71,124,244,232,209,106, 18,137, 68,169,209,104,114,254, 16,143,224, 16, 94, 86,190, 6,110, 14, 66, 8,
-120, 28,120, 58,219,193, 67, 38, 2,159, 11,112, 8,177,148,165,185,245,192,201,197, 86,141, 2,199,246, 26,134,111,251,126, 9,
-198, 78,153,139, 71,185,194, 51, 28,123,217,226,201,195, 7,206,114, 23, 91,122,250, 56,113, 60, 58, 55,169, 14,137,157, 0,179,
-167,142, 70,243,136, 68,143, 52,185,117,110,142,150,219, 24,197,147,117,255,233,184,115,138, 34, 88, 14,246,124,156,217,189, 34,
-187, 80,145,163, 40,105,146, 51,232,117, 73, 54,134,164, 47,148,241,100, 59,171, 73,227,134, 75, 38, 77,248,128,211,166, 85,115,
-202,225,240,145,171, 50, 16, 74,129, 79, 63,254, 16,147, 63, 28,239,149,146,158, 61,127,195,134, 31,231, 73, 61,234,126,173,206,
-126,178,176, 34, 77, 14, 41,138, 2, 73,237,120,144,138,139,140,139,212,142, 7,157,193, 2, 66,192,117, 14,104,162, 32, 69,145,
-220,244,188,196,178,159,192, 95,213,116,241,175,127,241,124,188, 67, 72,193,129,130,155, 9,233,209,139, 35,162,178,238, 80, 74,
-243,253, 59, 76, 31, 99, 52, 83,168,117,102, 36,100,105, 96, 54, 82, 50,246,157, 0,212, 24, 76,130,151,110,139,220, 73, 8,113,
- 44, 49,208,175,106,166,222, 60,168,115, 11, 29, 56,108,245,186, 77,119,191, 91, 50,151,155,171, 48,192, 74, 41,236,132, 92,136,
-133,188,226,133, 11,109,161, 2, 27, 54,254,148,105, 6, 25, 72,175, 92, 49, 87,165,126,194, 74, 71, 13,232,213,126, 31, 1,132,
-132, 35, 72,245, 9,168, 30,208,165,207,123,118, 93,250,142,134,197,108,152, 37,241, 12,185, 92,152,245,244,162, 45,154, 13,234,
-213, 5, 1, 34,213, 89,207, 62, 4, 0,169,103,240,143, 33,193, 33, 77, 94,125,175,118,237,224, 38,182, 28,247, 18, 4, 98,199,
- 41,206, 46,238,115,131,235, 55,246, 8, 12,237, 64, 28, 92,171, 33, 33,246, 62,246,110,156,191,203,170, 51, 44,186,120,242,192,
-146, 53, 91,127, 25,218,165,231, 0,108,251,225,219,217, 0, 46,253,233, 60,178, 90, 71,237,216,178,217,143, 47, 20,193,100,182,
-194,100,161, 69,127,205, 22,228,231, 23,192,100,182,194,206,222, 1,102, 43,129,201, 98,133,201,108,133,222, 96,150,124, 56, 58,
-252, 35, 0,183,203, 42,103,181,186, 29,207, 10, 68,162, 0,138,162,185,107, 41,165,224,154, 13, 28,111,111,239, 61, 0, 32, 18,
-137, 32, 18,137, 96,181, 90, 17,241, 44,103,138,123, 72,215, 73, 40, 54,120, 22,163, 33,169, 32,225, 70,143,242,182,221,203,203,
-171,207,171, 38, 75,167,211, 65,173, 86,227,250,205,187,178, 45, 59, 15,245, 76, 72, 74, 13,180, 82,153,222,193, 35,176, 7,128,
- 62,229,237, 79,101,230,211,143,252, 90, 77,224,124, 54,121, 76,237,117, 59, 78,220,137, 61,243,245,236,138,170, 68,205,174,179,
- 12,159, 77, 28,212,116,217,218,173,177,249, 55, 54, 78,171,236, 24,241,120, 60,126, 78, 78,206,203,243,123,253, 79,123,155, 70,
- 62, 75,235,191,102,245, 26,187,136, 56, 21, 30, 38,164, 99, 76, 87,127,252,225, 38, 80,129,166,212,171,150, 91,173, 90, 33,123,
- 54,172, 93,198,139, 77,215,225,251, 35,119,112,233,215, 31,175,103,102,223,238, 73, 51,211,181,175,115, 13,121, 83,163, 85,145,
-230,229,168, 92,168,117,102,232, 13,102,152,172, 20, 74,141, 9,217,114, 3,148, 26, 35,212, 90, 51,198,116,243, 47,243,123,149,
-248, 17,119, 66,200, 9, 74,105,111, 20, 13, 75, 37, 44,245, 26,132,144, 19,197,229,250,195,235, 89,179,102,205,249,230,155,111,
-162, 75,214, 45,121,191,100,221,138,222, 47,245,125,215,217,179,103, 55, 88,182,108,217,210, 86,173, 90,237,251,253,247,223,227,
-203, 50, 90, 21, 70,180, 74, 54,230,228,201,147,180,146, 39,138, 64,123, 71, 87,145,163,152,143,154, 53,252,241,254,156,109,110,
-142, 46,158,217,118, 66, 30,247,244,233, 51, 46,121, 6, 41, 56, 28,110,161,237, 81,172, 58,173,197, 98,251,147, 43, 87,174,196,
-240, 62,237,196,201,185, 38,117, 84,178, 54,171,208, 0,179,135,123, 29,225,226,165,203,164,203,150,175,152,124,226,152, 85, 14,
- 96, 69,217, 77,124,205,238,113, 73,169, 28, 44, 66, 64,173,150,212,252,132, 59, 77, 1,224, 77,114,177,212, 58, 19,184,197,185,
- 53,132, 0, 26,157, 25, 92, 46,201,150, 63, 59,240,120,228,215,139, 59,239,218,119, 62,157,114,156, 84,133,133, 9,246,197,115,
- 14, 86, 16, 49, 32, 80,106, 76,144,217,243,225, 36,229, 67, 38, 17,128, 91,234, 36, 43,105, 46,220,181,247, 92, 90, 82, 82,222,
-221, 98,147, 85,174, 38,143,203,137,167, 22,147,142, 82,139, 67,239,102,238,240,112, 18,194,219, 89, 4,145,144, 7,147, 25,208,
- 26,172,208, 25, 44, 72,204,214, 66,165, 21, 35,180,195,144,154,174,222,247,244,174, 1,205,142,230, 37,221, 29, 88,161, 57,181,
- 88,176, 99,207,161,218,233,233, 89,253, 78, 29,221, 45,202, 81,154, 16,149, 88,136,108,185, 30,224,186, 99,193,210,239, 69, 95,
- 76,155,208,127,199,222,195, 73, 93,218,181, 72,170,234,126, 45,204,126,186, 43,180,117,248,143,189,123,247, 23, 71,223, 62,133,
-216,251, 23,151,168,179,108,207,207, 34,132,112, 14, 30, 60,104,158, 48, 97,130,106,233,210,165,126,199,142, 29,171,145,147,147,
-115, 31,128,201,201,201, 41,164, 78,237,128, 7,231,206,156,246, 13,239, 63,132,159,154,171,133,204, 94,128, 0, 15,123,220,188,
-126,214, 36, 20,242,203,204, 55, 41,110, 30, 28, 81,173,235, 23, 56,118, 51,190,103,116,158,221,149,241, 31,140, 73, 58,119,237,
- 89,222,250,157,231,190,245,149,154,238,219, 89,115,214,223,107, 90,203,107,214,199,163,241,205,186, 93,184, 26,241, 44,187,144,
-227,189, 36, 67,111, 62,191,112,216,204,114, 66,233, 69, 6,219, 65,204, 71,161, 50, 71,241, 60,226,116,157,183, 20,169, 30,115,
-238,232, 46, 78,190,202,132,148, 92, 29, 73,207, 87,193, 98,165,112,178, 23,192,108,165,144,231,231,146,221,187,118,226,238,221,
-155, 28,112, 57,227, 0, 44,172,176,153,139, 20, 53, 21, 74,237,248, 69, 17, 33,113,209, 95,147,197,138,224,218,181,176,121,253,
- 42, 71, 55, 15, 79,180,109,223,201,246, 40,181,107, 64,163,125,219,215,227,202,239,145, 29,175,174,249,190,153,212,199,125,157,
- 99,181,122,223,201,106,116,211,233,141, 22, 40,228, 5, 16, 26, 82,208,220, 55, 7, 46,246, 22, 36, 42,189,241, 40, 51, 86, 90,
- 89, 46, 84,238,195, 35,247,221, 27, 12,152,119,232,248,165,111,122,116,235,136, 71,137, 74,136,133, 60,216, 9,185,176, 19,114,
-193, 39, 22,172,218,248,163,169, 64,161,234,157,251,232,104,238,107,212,207, 11,197, 79,191, 69, 55, 57,207, 64,247, 93,235,230,
-253, 60,126,230,242, 30, 61, 7,188, 71, 30,221,189, 60, 7,192, 69,219, 30,244,168, 77,239, 89,173,182,223,227,196,142,238,107,
-167,207, 91, 49,181,123,239, 33,224,114,121, 48,153, 76, 56,188,127, 23,182,127,191,224,169, 65,157,247, 30,165,212, 74,136,203,
-132, 3,187, 54, 14,153, 57,127, 21,105,208,168,121,139, 50,253, 36,151,108,122,247,131,137,195, 60, 61, 61, 29,254, 19,209,162,
-168, 19, 92, 15,189,250, 14,194,217, 95,127,193,227,232, 40, 88,105,145, 97,178, 90, 41,228, 5,121,153,102,147, 97, 71,185, 45,
- 30,118,118, 1,219,182,239, 12,226,112, 8,140, 38, 43, 12,102, 43,166,125,244,190,225,195, 79,231,180,237,213,189, 67,180,144,
- 11,101, 98,114,134,211,205,200, 39,161, 86,190,212,239,131, 25,171, 4, 58,189, 5, 10,141, 9,167,182,150,239,117,196, 46, 1,
-173, 26,181,238,255,193,135, 95,110, 22,137,184, 28, 99,253, 58,126,241, 29, 90,214, 79,241,247,113, 83,125,181,236,251,230, 55,
-110, 71,246, 26, 58,242, 3,187, 49, 33, 77,136,143,171,216,225,253,145, 3, 26, 74, 92,253,223, 45,204, 75, 46,119,202, 52,190,
-189,179,220,191, 70,109,205,127, 34, 70,193, 71, 8, 69,205, 63,220, 56, 9,226, 53,153,207, 6, 2,128,183,143,191,142, 47,114,
- 84, 85,193,136, 80, 0, 88,247,211,222,166, 15, 98,210,199,175, 94,189,198, 62, 34, 78,133,251,113, 10,136, 4, 28, 24, 77, 86,
- 16, 27,131,218, 86,202,157, 56,119,246, 44,199,130, 66, 11,174, 68,229, 32,250,222,101,106, 80,235, 70,218,155, 29, 7, 74, 60,
-131,223, 5, 80, 11,192, 11, 66,232,166,194, 44,175, 95, 41,189, 82,229, 78, 6, 86,107,209,243,178,204,163, 86, 77, 11, 79,212,
-139, 47,148,180, 34,132,214, 39, 20,206, 0, 77,203, 43,190,167,218,234,212, 10,179, 98,176,124,233,124,172,221,242, 11,210,243,
-116,144, 89, 82,240,235,214,197,248,236,155, 61,208,234,203,207,106,168,204,143,148,101,140, 94, 53, 92, 37,255,151,172,247,205,
- 55,223,244,126,229,216,244, 46,231,152,253,105,189,146,239, 47, 91,182,108,105,169,207, 53,182,154,172,151, 70,171,100,163, 42,
-217,184, 58,238,222, 1,191,255,122,244,136,115,129,218, 8, 59, 1, 23,254, 53,106, 99,225,250, 95,221,223,105,234,134, 92,163,
- 12,123, 55,127,151,175,211,168,246,219,116,177,240, 12,105,225,224,224,112,234,200,225, 95, 16,232,239, 33,216,125, 61, 63, 33,
- 50, 94,251, 50,212,171,204, 73, 18,214,112,212,240, 6, 14, 24, 96,127,241,210,229, 79,203, 51, 90, 92,194,173,246,211,206,195,
- 30, 14, 98, 62, 8, 1, 84, 90, 51,198,191, 59,232,205,111, 99,212,202,253,224,189, 49, 32,197, 38, 75,153,151,137, 57, 95,124,
-164,147,152, 98, 31, 39, 39, 38,167,117,237,243,217, 69,165,154,232,134,141,254,232,238,227,152,111, 10, 42,175,197,166,212, 94,
-225,189, 4, 69,145, 3,128, 75, 8,172,212,154, 21, 92, 67,250,241,159,154, 11, 51,245, 63, 85,102,220, 84,105,207,242, 29,188,
- 67, 7,239, 90, 57,229, 39, 31, 79, 15, 87,169, 68, 76,165,246, 34, 82, 63, 36, 72,208,178,101,107, 97,141,224,134,130,235, 79,
-180, 72,206,209, 34, 62, 93, 1,145,103, 99,222,240,206,239, 96,215,154, 25, 29, 9, 33,156, 87,147, 20, 95,229,252,149, 91,125,
-182,108, 92, 45,202,146, 27,241, 52, 89,141,204, 2, 29, 50, 10,244,200,204,215, 65, 42,230,163,125,223, 9,162,147,191,110,234,
-211,165, 93,139,117,175,179,123,227,227, 19, 78, 38,166,101, 12,105, 24,214, 28,187,126,222,222,206,217,185,166, 99, 65, 65,188,
-210,214,163,179,120,241, 98,225,178,101,203,120,235,215,175, 87,182,108,217,210,107,246,236,217, 61,178,179,179,239, 84,175, 94,
- 61,248,236,145, 29,151, 26,183,239,215, 12, 86,163,123,187, 14,157, 4, 34, 43, 15,231, 78,156, 48, 30,216,191, 59, 79,171, 85,
-125, 88,161,225,176,151, 45,206, 82, 19,184,251,250, 70, 75,133,150,110, 60,142, 60, 38,255,244,199, 59, 1, 28,169,245,206,212,
- 11,151,239, 61,139,105, 26,145,232,113, 41,226,121,118,190,198, 88,231,197,233,233, 21, 94,120,185,132,128,207,229,192, 65,204,
- 3,167,248,170,234,224,219,232, 57, 8,113, 47,137,156, 18,144,226,191, 0, 33, 72,207, 79,138,180, 33,103,131, 80, 43, 5,158,
-165, 22, 66,173, 43, 10,205, 87,115,179, 71, 78, 86, 42,126, 88,183, 3,145,247,238,162,251, 59,125,177,225,167,221, 24,255,238,
- 16, 93,101,106, 28, 78,113, 68,171, 84, 52, 75, 42,230, 1, 32,144, 23,154,112,248, 70, 10,106,213,228,216,124, 99, 0, 0, 7,
-169, 61, 20, 42, 45, 56, 2, 7,188,136, 56,101,127,250,242,237,217,243,190, 94,253,121, 65, 70, 84,242,243,135,215, 17,236,166,
- 64, 77, 95, 35,162, 51, 29,113, 47,175, 6,130,107, 7,130, 35,184,107,147,118,110,116,232,242, 95, 57,135,123, 55,109, 92,175,
- 85,128,135, 19,180, 6, 75,113, 84,139,139,237,219,118, 34, 49, 33,245,131,220,232,163,145,111,195,209,170,179,226,114,236, 60,
-131, 38, 63,188,125, 49,126,192,200,201,240,246,245,111, 84,149,180, 5, 91,222,179,216,104,180,132, 18,231,217, 51,230,175,156,
-218, 61,124, 48,110, 93,191,136,251,209, 47,208,162, 69, 51,188,211,127, 56, 84,202,252,144,131, 59,215,116, 3,112,150, 39, 50,
- 79,109,222,186, 51,177, 90, 44,136,125,250,232, 69, 89, 90,154,244,167,247, 1, 56,254,161,121,202,189,110, 35,169,204,229,190,
-222,104, 65, 90, 90, 42,126,251,253, 74, 88,241,122, 54, 35, 18,112,113, 46, 50, 27, 70,147, 21, 70,179, 21,237, 59,116, 51, 8,
- 56,250,118, 75, 86,111,107,153,145,158,193,145, 56,186, 89, 93,124,235, 10,188, 69, 70,253,131, 56,133,192,104,178, 34,208, 71,
- 82,161,166,187, 79,237,165, 51,102, 76,171,203, 21,136,161, 42,212, 27, 50,210,211,188, 54,239,189,172,126,242,244,161,111, 53,
- 15,153,227,183,107, 54, 9,148, 58,130,108,133, 30,249, 42, 37, 25, 57,113,166,207,150,239,191, 25, 5,192,230,185,105, 9, 69,
-205,147,231,174,135, 56, 59, 8,136, 90,103,182,230, 41,141,150,145,253, 59,189, 81,221, 41, 54, 89, 19, 86,175, 90, 99, 31, 25,
-167,194,131, 56, 5,236, 4, 92, 8, 5, 28, 24, 76, 86,216,114, 58, 17, 66, 56, 53, 27,116,248,176,117,211, 80,156,189,159, 11,
- 46,151, 3,173,170, 64,195, 67, 94, 76,211,142,221,237,155, 52,111,137, 78, 29, 59,224,121,204, 51,255, 19,199, 14,119,185,249,
-219,213, 76,169, 71,240, 20,117,246,179, 95,170, 84,207, 53, 26,174, 73,232,245,190,183,111,245, 54, 3,135,191, 47, 11,240,247,
- 37, 30,110,174, 48, 83, 30, 38,188, 59,200,230, 51,191,200,152, 3,203,190,158, 13,189,222, 0,119, 39, 33, 40, 5,182,173, 91,
- 8,131,193, 0, 31, 87, 17, 20,133,166,114,191, 95,153, 31, 41, 47, 10, 85,197,102,232, 19,101,153,173, 87,223, 39,132,156,152,
- 53,107,214, 28, 0,116,214,172, 89,115, 74, 94,127,243,205, 55, 90, 0,233, 21, 53, 29,150, 54, 94,188,210, 27, 87,110,161,132,
-194, 96, 55,239,128,155,231,206,158,145, 29,125, 96,197,173, 95,238, 33,188,133, 55, 4, 60, 14,236,101, 62,120,144,160,192,201,
- 35, 27,229,191,238,219,148,166,215,235, 87, 84,222,214, 28,212,212, 65,226,120,246,231, 93,251,173,110,174,174,156, 31,206,229,
-196,229,169,204, 47,155,180, 98,110, 31,179,222, 59,187,217,155,130,156,177,179,179,171,109, 48, 24,156, 43, 59,176,219,206, 37,
- 21, 39,241,146,183,113,109, 5,225,114, 45,187,118,239,130,155,163, 16,122,147, 21,179, 62,255, 68, 59,166,187, 84, 62,114,232,
-240,206,157,122, 77,189,196,151, 4, 93,108, 29, 22, 68, 27, 55,110, 44,231,114,185,149,234,229,197,223,249, 83,239,138,144, 26,
-246,227,230,206, 28, 51,183,140,230, 66,155, 18,119, 85, 25, 15,111, 0,248, 67,132,132,212,170, 37,220,115,240,215, 79, 6, 15,
- 29, 54,207,183, 81,127,105, 66,134, 2, 2, 98, 68,179,186,222,184,124,230, 23,154,154, 24, 51,173, 50,147, 5, 0,217, 57,249,
-126,238,238,158,136,140, 87, 35, 45, 79,139,204, 98,147,149, 81,160,135, 74,171, 66,195, 0, 31,200, 21, 10,191,215,222,191,192,
- 47,103,207,158, 29,210,171,223, 48, 76,253,124, 81,219,173, 27,191,139,146,122,213, 25,171,206,140,185, 98,203,147, 34, 33, 36,
-255,139, 47,190,168,245,211, 79, 63,113, 70,141, 26,165, 13, 13, 13,181, 27, 61,122,116,219,157, 59,119,218,217,219,219,105, 31,
- 92, 63, 54,111,220,199,179,250,109, 94,187,184, 81, 65, 65, 1, 49,155, 76,167,141, 5, 5,179, 84,149,152,185,228, 95,103, 63,
- 37,245, 22,189,215,173,157,251, 49, 23,123, 78,125, 17, 53, 12, 39,245, 22,237,167,143, 23, 24, 95,156, 94,167, 10, 29,186,234,
-227,116,185,117,174,142,227,177,164, 50,147, 5, 0, 28, 46,129,193,108,129,131,152, 15, 14,135, 83, 98,226,189,183,239, 63,109,
-239, 46, 19,130,207,229,128,199, 45,138,118,230, 42,141,152,252,126, 63,155,159, 4,204, 22, 10,173,193, 12, 77,241,211,161, 74,
-153,139,217,159, 79,199, 59,125, 6, 96,220,135,211, 81,160, 5,238,197,171, 96, 52,153, 42, 61, 41, 56,132, 3,141,222,140,177,
-221, 3,144,175, 54,162, 80,107,134,193,108,133,189,144, 7, 62,143, 3,137, 29, 15,142,246,124,128, 82, 65,201,197,132,207,231,
-235,140, 70,227,174, 10,142, 19,106,248,121, 66,107,226,160,249,176,239,208,181, 85, 29, 68,223, 56,204,187,122,235, 97,205, 79,
- 63,159,139, 79,198,247,193,161,167,181,224,226, 17, 0,169, 68, 12, 19,229, 0,176,109,232, 16, 74, 23, 88,189, 67, 6,142,248,
-241,167,109,207,190,154, 63,203, 78, 94, 72, 32, 18,112,113,233,226, 5,220,188,125,111,109, 78,244,209, 93,120,139,240, 41,199,
-211,209,209, 17,118, 66, 46, 12, 70,189,193,246,212, 5, 10, 10,132, 73, 61,131,127, 44,126,226, 15,179, 88, 81,198,123,149, 27,
- 45,190, 88, 54,107,234, 23,139,151,118, 15, 31,140,115, 39, 14,225,224,161,253,150, 86, 61, 63,224,238,222,190, 17,109,187,246,
- 69,219,238,195,112,250,151,157,211,249, 98, 89,189, 9,159,124,249,117,251,206,189,112,238,228, 33,100,101,166,174,180,181,188,
- 92, 62,153,218,185, 91, 31,232, 12, 22,180,235,210, 27,103,142,255,242, 49,138, 59, 89,216,126, 19,123,229,250, 12,142,121,250,
-180,169,252,108,185,129,159,163, 52, 32, 53, 71,131,132, 44, 13,126,221,183,149,218,126,189, 48, 52,107,223,176, 26,127,194,242,
- 75, 41,126,213,188,245,124,189, 86, 28,243, 34, 46,100,220,251, 99,248, 53,107,135,112,178, 21,122,228, 40,244,200, 85,232,161,
-214,153, 81,187, 90, 16,199,100, 38,173,170,122,156,221,100, 66,254,134,227,241,112,148,240,209, 58,228,245, 59,218, 90,173,214,
-255,152,172,213, 69, 38, 43, 42, 94, 1,145,128, 11,145,128, 3,145,128, 11,179,133,218,244,224, 34,246,168,211,107,242,148,143,
-124, 12,102, 32, 79, 97, 0,143, 75,224,225,230, 44,105,214,104, 4,182,125,247, 49, 0, 96,252, 23, 63, 96,220,216,209,168, 91,
- 63, 20,242,130, 2,175, 17,131,123,173, 6,240,139,173,101, 61,117,238,138,255,185,107,145, 95, 76,158,177, 64, 58,180, 79, 39,
-238,253, 56, 5, 50,242,245,120, 17,163,170, 82,228, 13, 0,204, 22, 43, 40, 40,118,236, 63, 1,177,144,135, 28,133, 17,148, 82,
- 44, 94,127, 0, 14, 98, 62, 50, 10,138,154,251, 43,162, 34, 63, 82, 81, 68,170, 10,209,198,222, 40,202,229,114,183, 53,162,245,
-205, 55,223, 68,127,243,205, 55,101, 70,200, 74, 76,214,107, 79, 42, 45, 20, 74, 67,220, 92,125,110,157, 59,115,202,225,151, 7,
- 22, 92,126,144,135,193,237,170, 65,157,159,140, 21,159, 15,205, 39,160, 6, 14,151, 43,215,107, 53, 71,180,218,194, 37,148, 82,
- 99,133, 38,203, 59, 56, 76, 34,118,188,176, 97,243,207,102, 55, 15, 15,236,186,158,159, 90, 80,104, 54,253,167,217,202, 68,238,
-157,221, 92,211,108, 53,245,212,102,198, 86,250,120,107,165, 16,124,179,241, 87, 0, 20, 86,171, 21,212,106, 5,223, 78, 42,113,
-175,213, 42,171,248, 66,103,199,227, 16, 93,233, 43, 0,181,154, 83,115,226, 42, 14,131, 18, 0, 50,123, 62,246, 95, 77, 3,128,
- 44,174, 42,226,201,200,161, 69,205,133, 58,131,157,178,126,173, 90,180, 89,179,102,114,177, 88,252,218, 7,187,170,205,133, 54,
- 85,160, 23, 47, 12, 0,150,251, 4,183, 27,208, 67,218,176,185,144, 35, 64,147, 96,111, 92, 62,123,148,222, 58,179,109,188, 38,
-235,217,207, 54, 86, 68,168,117, 38,164,231,233,144,150,167, 67,102,129, 14,153,249,122,100, 22,232, 64, 8,129,206,240,102,195,
-223, 20,102, 63, 59,184,235,231, 45,125,245, 70, 12,111,223,125, 0,166, 47,216, 16,176,235,199,101, 23,196,158, 33,109,108, 73,
-180,165,148, 90, 8, 33,137,239,191,255,126,163,189,123,247,114, 27, 52,104,160,125,242,228,137, 61, 0, 43, 0,163, 84,106, 47,
-222,250,253, 55,103,155, 55,111,190, 47, 45,230,233, 37, 0, 5,182,116,207,175,222,241,125, 81,136, 99,254, 4,127, 73,235, 30,
-129, 94,246,240,151,168,122,132, 72, 31,172,240,232,242,233,210,236,139,107,178, 51,244,230,243, 57, 90,110,227, 52, 53,223,166,
- 92, 65,147, 94,151, 52,112,240,112,112, 9, 7, 70,157, 38,169,164,114,121,200,132, 88,184,251, 41,164,118,124, 56,136,121,144,
-138,249,104, 91,207, 5, 85,184,158, 81,147,197, 10,141,222, 2,173,222, 12,157,193, 12, 55, 63,103,252,180,235, 32,146,179,181,
-248,245,110, 46,158, 37,169, 16, 84, 77, 2, 74, 43,191, 76, 90, 45,166,194, 62,131, 70, 57,112, 57, 4, 92, 14,225,212, 11,169,
-131,124,181, 17, 2, 30, 7, 2, 59, 49, 36, 34, 30, 28,197,124, 8, 4,124,100,103,103, 67,175,215,195,223,223,223,174, 98, 43,
- 72,225, 32, 21, 35,168,166, 15,140, 38, 51, 78, 93,123,140, 37,211, 6,162, 91,251,166, 32,124, 41,158,234,195,224,224,226, 0,
- 43,135, 3,163,217, 10,131,209, 2,128, 83,110,244,205,223,223,191,179, 68, 34,145,104, 52, 26, 85, 82, 82,210,149,140,167, 71,
-146, 61,234,247,159,112,230,220,165, 93,189,223,233,134,200,168,104, 28,250,229,216,245, 92, 87,197,140,146,239, 52,104,208,160,
-165,155,155,155, 52, 47, 47, 79,249,240,225,195, 59,175,249,244, 75, 36,158, 33,159,182,106,219, 17,106,121, 54,178, 82, 18,108,
-126,138,174, 27,224,128, 47,191,217,208, 36,184, 78,112, 19, 11, 45, 50, 94,245,252, 29,240,217,130,117, 77,106, 5,213,105, 82,
-210, 33,164,174,191,180, 98,147, 37,113,236,254,238,132,207,190,233, 59,248, 61, 92, 58,119, 12,171,150,124,190, 75, 34,115,175,
-235,226, 44,107,220,160,101,119, 92,191,112, 12,118, 14, 94,112,118,245,106, 59,106,236,148,174,131, 71, 77,196,205,235, 23,176,
-118,217,156,157, 22,189,106,143, 45,101,149,122, 6,186, 55,110,214,126,164,131,139, 39,228, 10, 21, 28,156, 61, 80,183, 97,179,
-145, 82,207,192, 47,212, 89,113, 57,175,123,174, 91, 41,133,222, 72, 81,160, 54, 34, 37, 71,139,196,204, 34,163,101,181, 86, 33,
- 39,200, 98, 37, 82, 59, 30,207,197,244,220,255,225,133, 75, 52,192,207,147, 44,255,250,115,174, 17,118,200,145, 23,153,172, 28,
-165, 1, 57, 10, 3,212, 58, 19, 92, 36, 60, 88, 45,214, 42, 63,117, 23,168,141,112, 40,206,163,181, 88, 95, 63, 55,124,227,246,
-253,193, 15, 98,210,251,175, 90,181,198,254,126,124, 41,147,197, 47,138,102,137, 4, 92, 88,172,214,226, 59, 77, 37, 6,155,199,
-159,218,175, 87, 87,164,228,106,139,122, 45,115, 8,130, 66,155,195, 77,108, 69,151, 97,179, 0, 0,125,122, 21, 13, 95, 18,159,
- 81,136,227,183,114,128, 63, 38,118, 87,124, 45,214,106,185,155,119,159,252,244,224,129,125, 50,157,133,135, 77,167, 19,161,209,
-155, 97, 39,224, 66, 36,224, 66, 44,224,254, 33, 31,187,114,163, 85,148,115,151,156,107,130, 70,167,131, 82,107, 2, 5,112,231,
-185, 26, 90,131, 25,138, 66, 19, 90,134, 56,191,233,179,207, 73, 0,225,175, 26,162, 87,205, 82,169,136, 84, 89,220, 45,173, 81,
-178,126,121, 70,174,116,206, 22,128, 42,245,224,226,189,234, 28, 75,191, 22, 74, 93,234,202, 92,221,111,157, 57,125, 66,250,203,
- 3, 43,174, 68, 21,153, 44,147, 54, 23, 43,191, 24,145,170,148,231,118,162,148,198,217,250, 99, 18,247,122, 13,197,246,246,151,
-190, 93,179,201,232,225,233,107, 61,114, 75,158,173,208, 88,254, 16, 67,180,232,245, 28,106,165, 2, 91, 76, 86,113,147,135,113,
-193,199, 3, 96,165, 20, 11,215, 28,196,210, 25,195, 32, 21,143,178, 39,132,216, 23,234,204,152,182,104, 11, 86,126,249,129,131,
-189,136, 7, 66, 0,157,193,130,119,135, 15,176,173, 2,234,204,120,113,123,175, 90, 21,127,226, 73,233,230,194, 22,109,223,185,
-215,162, 69, 11,185,179,179, 51,196, 98,241,127, 34, 21, 54, 94,180,203,234, 93,152, 45, 71,170,131,131, 67, 7, 71, 71,199,210,
-122,133,114,185,252,232,235,212, 66,149, 60,247, 82,102,226,195,230,109, 58,245,193,149,179, 71,233,173,211, 91,199, 87,101,140,
- 30,103, 23,231,148,136,135, 47,234, 18,226, 82, 20,209, 42, 54, 89, 6,147, 21, 1,158,246, 72, 73,124, 1, 39,153, 44,197, 86,
- 61,123,143,144,126,132, 67, 63, 36,160,219,212,153, 49, 7,139, 77,207, 8,137, 87, 72, 84,244,163,251, 75,122,143,156,202,235,
- 62,248, 35,238,143,223, 76,153,131, 87,146, 88, 43,192,248,236,217,179,199, 31,124,240, 65,235,155, 55,111, 90, 0,104, 8, 33,
- 38, 46,151,107,111, 48, 24, 4,157, 58,117, 82, 60,125,250,244, 42,202, 72, 90,124,149,118, 99, 15,185, 17,145,234,157, 90, 65,
-205, 70, 4, 56,168,186,117,106,215, 10,173,234,251, 33,165, 93, 43, 0,152,154,164,150, 6,183,157,180,117,127, 77,247,106,167,
-126,220,126,124,233,248, 97, 93,167,249,244, 89,180, 42,253,248,130, 10, 19, 81,147, 31, 95,233, 81,150,141,231,113, 57,112, 16,
-243, 33, 21,243,224, 32,230,195,193,142, 15,147,153, 86,229,201,145,154,204,214,162,136,150,193, 12,181,214,140, 75,247,179,144,
-169, 48, 64,174, 50, 66,107,180,128,130, 22, 61,141,218,112, 53,207,142,189,225,244,242,216, 7, 52, 81,108, 94,255,157,227,225,
- 27,169, 47,123,244,201,236,133,112,176, 47,234,141,125,237,218, 53,184,186, 86,254,180,111,181, 90,113,232,204, 29,172,218,113,
- 9,103,182,205,132,157,128,139,134,253, 22,225,189,254, 45, 96,165, 86,188,120, 22,157, 21, 84,175,145, 39,135, 35, 6,135, 16,
-232, 77, 86, 0,180,220,253,105, 48, 24, 92,147,147,147,149,181,107,215,246,242,245,245, 29,204,229,114,169, 8,208, 31,221,151,
-175,185,120, 98,143,125,161, 86,111,177, 55, 43,182,213,206,208,134, 7, 5, 5,129, 16, 66,221,220,220, 4,151, 46, 93, 82,135,
-134,134,186,191,166,201,226,136, 61,234,172, 29, 55,233,211,193,181, 2, 3,113,112,207, 54, 80, 74, 14,219,250,253,221,199,111,
-226,235,217,127,236, 97,248,217,130,117, 77, 86, 46,154,250,135,247, 38,205, 94, 85, 97,175, 67,177, 72, 58, 99,224,136, 9,184,
-119,231,119,172, 88,244,217, 62,189, 58,255, 61,147,217, 52, 36, 63, 35,126, 95,205,122, 45, 64,141, 42,156, 59,240, 29,134,141,
- 30, 47,234,222,123, 48,110, 94,191,128,165,115, 38,237,214,200,179,223,183,117,252, 47, 43,229,127,216,169, 71,127,190, 86,111,
-196,186,229,243, 49,113,198, 18,180,236,220,135,255,232,254,173, 15, 1,124,101,235, 54,235,141, 22,116, 10,117, 43, 50,207, 38,
- 43,142,197,115,121,101,213, 64, 30,151,112, 26, 7, 58, 65,107, 48, 67,169, 49, 85,124,163, 18,240, 51,229, 10,101,245,239,151,
-126,202, 45,212,153,145,163, 48, 32, 91,161, 71,174,252, 63, 6, 43, 87,161, 71,142,194, 0, 62,143, 32, 38, 46, 9, 28, 62,175,
-202,249,121, 5,106, 19,154,215,113, 46, 58, 71, 95,179,117,196,196,115,108,113,230,234,131,129,171, 86,173,182,123,144,160, 66,
- 84,188,178, 56,146,197,133,136,207,129,176,248,127,139, 21,168,236, 39,100, 30,181,106,142,249, 96,124, 23, 71,169, 24,233,177,
-217,224,113,139,134,136,145,121,248, 65, 38,210, 97,202,164, 9,112,115,117, 66,114,174, 30,107,127,137, 65,212,227,231,176,106,
-171,182,217,235, 54,237,235, 57,110,242,103, 78, 28,190, 16, 59,207, 38, 20,149,147,107,193,211, 91,199,117,233, 47, 30, 22,170,
-149,121, 20,212, 98, 99, 0,128, 80,179,165,168,186, 45, 93, 56, 11,251,118,252,128,179, 17,217, 47,147,183,110, 28, 94,137, 79,
-103, 47, 70,174,210, 80, 92,245, 43,142,100,189,242, 58,167, 84, 36,234, 79,175, 75,153,163,178, 94,147,226,215,134,114, 52, 12,
-175,152, 43,195, 43,239, 27, 94,209,123, 80,198,195,255,230, 74,155, 14,255,100,138,156, 61, 26,200, 28,100,191,159, 62,125, 92,
-114, 52,138,190, 52, 89, 70, 77, 46, 93, 50,181, 79,170, 82,158,211,189, 74, 38,203,163, 78, 3,145, 68,114,117,222,226,181,122,
- 79,223,234,230, 83,247,149,121, 42,157,229, 79, 97, 17,129,189,196, 34,145,185,235,156, 2,194, 86,241,181,134,249, 57, 57,143,
- 11, 43,139, 60, 89, 41,197,137,219,153,160,180,232, 17,233,192,181, 52, 20, 63,153,195, 98, 45,106, 86, 57,127, 63, 27,188,226,
- 60, 20, 91,195,223, 27, 55,253,160, 12, 15, 85, 20,142, 92,186,240,101,115, 97,203, 70, 69,145, 44, 71, 71, 71, 56, 57, 57, 65,
- 42,149,194,150,166,195, 18,202,235, 93,232,224,224,208,225,254,253,251,118,142,142,142,224,114,185,208,235,245,168, 95,191,254,
-107,157,232, 82,175,144,201,205, 59, 15,152,211,182,115, 31, 92, 58,115,132,222, 58,179,125, 66, 85, 7, 66, 12,239,218,250,248,
-215, 95, 47,172, 57,111,201,247, 34, 7, 59, 30,158,168, 13,224, 16,130, 0, 79,123,184, 74, 56,184,114,116,167,110, 88,159,214,
- 54, 15,142,231,231,231,187,107,229,250,205,146,149,203, 22,117,114,240, 13,190,164, 74,123,150, 15, 0,133,153, 79,151,219,123,
-133, 60,174,246,251,185, 83,141, 58, 12,128,167, 79, 96,183, 42,132,127, 41, 33, 68, 19, 23, 23, 23, 63,111,222,188,224,101,203,
-150, 81, 46,151,107, 5, 32, 90,179,102,141, 38, 54, 54,246, 62,138,186,230,162,178,155, 77,151,110,245,167, 73,133,150,150, 46,
-246,156,250,129, 94,246,104, 85,191,168, 85,116, 88,120, 91,248,249,251, 35, 46, 83,211, 56, 95, 99,229,171, 13,220,192, 13,155,
-162,238,214,112,227,142, 55,107, 13,143, 81,201, 96,178,229,213,217,146, 4,249,146,104,150,131,152, 15,107,209,141,189, 74, 70,
- 75,111,180, 64,171,183, 64,107, 48,163,208, 96,129,198, 96,129,149, 22,157, 19,132, 16, 24,205, 86,216,244,216,252, 74,221,119,
-116,113, 67, 96,141,162, 94,178, 14,226,162,161, 30, 28,237,249, 69,125,164, 93, 93,225,225,225, 97, 83, 84,212, 96, 44, 58,197,
- 13, 38,235,203,102,125,131,209, 12, 74, 41, 98, 98,158,205, 76,140,143,239, 87, 59,168,118,251,122, 13, 27,185,216,139, 56, 0,
- 80,174,209,210,104, 52, 22, 7, 7, 7, 15, 23, 23, 23, 78, 90, 90,218, 75,243, 92,187,113, 39,243, 47, 71, 14, 99,224,192, 1,
-234, 39,119, 30,188,236,226,174,213,106, 73,155, 54,109, 28,253,252,252, 56,122,189, 94, 89,181,125, 64,136,196,189, 78,127,191,
-144,214, 75,222,125,127, 98,157, 78, 93,123,226,242,197,115,248,245,200,222,159, 11,179,159,217, 60,114,118,112,112,200,159,122,
- 29,214, 10,170,243,167, 94,135,213,107, 6, 85,104,180,234, 53,108,214,130, 18, 30,206,158, 56, 64,117, 28,227,164,162,132,119,
-114, 96,255,198, 47,191, 26,241,225,236, 90,189,250,142,192,187,163,223, 3,143,199,197,149,243,199,177,114,209,244,147,106, 69,
-246, 24, 91,210, 4, 0,128,212,171, 39,168,237, 95,253, 19,255, 90, 13, 16,113,235, 58, 94,196, 60,138,126,112,247,102,253,218,
-161, 45,225,238, 19,240, 9,169, 87,111, 25,125,252,216, 88,153,142, 65,167, 75,122,111,204,104,148,238,117,216, 42, 44,216,149,
-188,122, 2, 0,208,168,178,141, 91,191,155, 22, 91,210,235,208,106, 52, 36,149,167,171, 40,200, 57,116,229,183,219, 51,250,133,
-247,228,228, 42, 13, 69, 17, 44,133,161,120,209, 35,183,228,127,165, 30, 65, 62, 82, 60,139,142,176,234, 20,185,135,171,120, 94,
-234,222, 27,210,227,113, 73,221,181, 90, 41, 8,160,171,234,249, 77,249,142, 19,150,175, 88,101,247, 32, 94,141,168, 4,101, 81,
- 83, 33,159, 91,100,176,248,156,151,166,171,168, 55,123, 37,209, 33,194, 93, 58,118,204,112,228, 42,141,176, 90, 1, 30,151, 83,
-188, 8,144,172, 34, 72, 81,105,144, 91,144,131,248,196, 36,200, 51, 95,128,195,225,192,205,167, 14,108, 13, 63, 90,168,208, 91,
- 99,160,161,131,195,219,243,142,252,158, 1,123, 17, 15,122, 85, 22, 78,239,255, 46, 71,175, 86, 46,209,106,212, 71,180,121,177,
-233,182,110, 59,135,144, 28,165, 90,231, 41,226,115,113,112,199,247, 24,242,222,164,226,157, 82,244,103,230,220,175, 1, 14, 65,
-126,129, 10,132,144,170, 70, 73,239, 86,242,250,117,120, 27, 26, 40,203, 92,253,225, 65,161,252,167, 81,122,250,220,153,227,146,
- 27,137, 34,220,121,150, 81,108,178,114,172,139, 63, 14, 79, 85, 41,242,123, 80, 74, 99,170, 84, 2, 14,167,199,176,177, 51,162,
- 3,235,212,211, 95,126,164, 78,144, 23,154,202,205,115,104, 53,120, 94,244,189,147,235,123, 41, 76,113, 31, 73,125,234, 91,172,
-102,243,114, 77,246,179, 69,229, 52, 29, 10, 23,173, 61,248,178,217,240,139,101, 59,139,254,183, 88, 96,161, 86, 80, 43, 48,229,
-203,141, 48, 91, 45,176, 90, 44,176, 90, 40, 76, 22,106, 95, 89,113, 61,124,170, 31, 41,120,122, 32,100,228, 87,127,110, 46,116,
-114,114,130,171,171, 43, 92, 93, 93, 81, 98,140,222,180,185,208,209,209, 17, 82,169, 20,215,175, 95,135, 88, 44,134, 68, 34,169,
-146,110, 41,147,245, 81,179,142,253,190,239,220,247, 3,156, 63,178,137,222,189,118,124,162, 38,235,217, 22,155, 35,244, 22, 11,
- 49,153, 76, 8,239,222, 49, 41, 50,250,249,153,185, 51, 62,236,217,186,247, 68, 81,171, 96, 95,232, 12, 22,164, 38,190,192,149,
-163,219,117,117,106,122,159,237,210,174, 69,146,201,100,130,197, 98,169,244, 70,174, 51, 24,115,185,124,177,100,248,240,145,252,
-187,119,238, 28,150,122,212, 57,104, 33,156, 7,132, 90, 27, 18, 66, 6, 54,108, 88, 23, 70,147, 21, 26,141,178,160,170,219,172,
- 82,169,226,183,109,219, 86,115,204,152, 49,246,245,234,213,227,191,120,241, 2, 43, 87,174,204, 83,169, 84,241,182,106,156,187,
-246,108, 13,143, 20,196, 10,173,198, 17, 1, 14,170,110,201,109, 91, 97,120,239,182,216,119,242, 6,174, 92,191,137, 36,181,244,
-190,218,204, 59,154,146,148,174,175,239,162, 60,220,183, 85,117,238,193, 29, 5,135, 61, 58,205, 30, 74,169,232, 92,206,149, 5,
-133,182,223,196, 1,149,214, 4, 71,251,162,241,158, 74, 34, 91, 92, 66,108,118, 68, 4,136,191,126, 51,162, 65,211,160,122,136,
-140, 87, 32, 91,174,135, 86,111,134,213, 74, 97, 5,133,171,131, 16,118, 2, 14,146, 19,227, 97,165,198,132, 42, 94, 46,114, 58,
-180,239,192, 3, 8, 8,161, 60, 62,143, 7,138,162,241, 21,197, 98,177,218,195,195,195,166,136,150,209,108,198,192,158, 45,208,
-178, 89, 67,244,155, 88, 52,102,230,197,159,103,193, 89,202,199,190, 93, 91,144,124,117,245,174,192,214,147,206, 61,122, 24, 61,
- 40, 58,242,247,145,239, 52, 17, 55,246,226,165, 11,202,211, 83,171,213,135, 9, 33, 66,129, 64,208,179,125,251,246, 46,135, 15,
- 31,150,187,185,185, 89,133, 2, 65, 78,223, 62,189,173,124,129, 32,191,100,221,223,126,251,141, 63,113,226, 68,135,130,130,130,
-228,172,172,172,155,148, 82, 83,197, 15,130, 33, 93,193,193, 94, 16, 98, 39, 21,219, 39,181,234, 58,220,167, 89,203, 22,178,254,
- 3,135, 64, 36, 20,225,252,185, 51, 88,183,122,217, 1,117,198,147,177, 85,217,147,111,171,215, 97,106,114, 66,188, 70,171, 15,
-109,208,180, 35,185,126,238,232, 84, 66,220, 87,115, 69,142,223,117, 29, 56,169, 86,124,186, 26,235,190,153, 9,103,153, 4, 9,
- 47,158,106, 99,159, 60,220,104,210, 41,103,218,106,178, 0,192, 62,207, 50,168,213,232,158,206,122,163, 5,215, 46,157,212, 89,
-205,214,158, 55,175,158,122, 81,173, 78, 51,187, 6,205,186, 56,231,254,186,101, 32,128,125,149,233,164, 62,249,115, 4,215, 63,
-184,121,194,197, 75, 23,100,158, 1,245,185, 4, 4, 70,189, 14, 57,113,119,205,154,172,167, 74, 69,234, 67,155,122,225,230,165,
-224,203,217, 11,190,253,168, 89,211,166, 18, 10,187, 63, 68,176, 74, 12, 86,174,210, 0, 55, 7, 33,180,202, 28,196,222, 61,163,
-211,228,112, 43, 28,239,204,108, 40,180,207,205,206,122,217,196,166,206,122,214,178,162,245,115,179,179,132,102, 67,161,125,229,
-183, 58, 46, 28, 37, 66, 60, 76, 72,123,153,248, 46,226, 23,229,102, 9,249,220,151,121, 90, 37,215,130, 74,232, 40,176,115, 66,
- 90,158, 14, 4, 20, 86,139, 25,102,147, 1, 42,165, 18,105,233,153,200,202,204,130, 74, 37,135,189,212, 25, 13, 26, 55,135,131,
-196, 14, 15,174, 28, 0,165,212,166,113, 13, 77,132, 31,220,172,101, 59,209,163,196,162, 92, 44, 59, 62,197,241,189,203,242,212,
-202,236,118,170,244,152,216,170, 94,139,205, 22,203,133,168,199,177,245,171,121,215, 32,247, 95, 40,176,235,167,245, 48, 20, 71,
- 54, 77, 38, 11, 30, 37, 23, 34, 35, 95,131,228,184, 39,212,106,177,252,107, 38,164,230,149, 31, 0, 4,175, 97,131,186,232, 62,
-170, 63,126,248, 97, 35,226,226, 19,173, 75,166,246, 74, 86,171,228,239,216,106,178, 74,207,238, 93,152,249,116,249,216, 31, 18,
- 82,143, 69,230,115,180,134,138,231,183,178,115, 15, 64,187,177, 43,207,106, 85,249, 66,139, 94,195, 59,190,107,236,222,178, 52,
-139, 28, 52, 12, 75, 62, 27, 6,169,152, 7, 66, 8, 74,154, 11, 55,124, 61, 1,246,162,162,182,101,173,222,140, 81,211, 86, 97,
-215,170,233,160, 0, 70, 12,185,161, 41,175,156,165,154,246,170, 37, 37,102,167,117,237,243,217, 69,157, 81,164,239, 61, 96,204,
-189,166, 77,155,202,197, 98, 49,196, 98, 49, 28, 29, 29,225,236,236, 12, 39, 39,167, 74,183,189,220,193, 72, 75,245, 46,228,112,
- 56,224,112, 56,144, 72, 36,144, 74,165,144, 72, 36, 21,106,150,107,178, 58,244,221,208,165,223, 56,156, 63,178,153,222,189,118,
-252, 67, 77,214,179,159,108, 61, 70,197,205, 61, 15, 6, 14, 28, 24, 58,113,226, 68,193,130, 25, 19,207,158, 60,119, 37,230,224,
-137,205,125, 10, 10,228,126,148, 82, 56,201,100, 41,195,250,180, 62,222,169, 77,179,164,139, 23, 47, 90,247,238,221,171, 39,132,
- 60,172,172,156,185,217,217, 63, 95,188,112,105, 97,187, 14, 29,177,101,199,222, 14,209,143,159,116,120,241, 34, 22,126, 1,129,
-168, 81, 51, 8, 26,226,140, 75, 87,175, 67, 45,207,254,217,150,114,190, 18,213, 34, 5, 5, 5,191, 15, 27, 54,172,251,141, 27,
- 55, 56,195,134, 13,211,228,230,230,254, 86,242, 28, 85, 94, 52,171,180,230,239, 27,251,231, 0,248,185,122,199,247, 15,164, 25,
-229,159, 0, 88,230, 31,224,143, 43,215,111,226,230,141,219, 27,115,237,253, 23,141, 29,245,254,132,234,125,185,227,250,182,170,
-206,245,112,182,199,158,205, 43,185,199,110, 38,174, 74,204,179,108, 1,240,181, 45,199,232,229,141, 67,101, 68,155,186, 46, 48,
- 89, 40,172,180,232,130,235, 96,199, 47,243,194, 91,150, 38,207, 32, 26,251,225,196,137, 47, 26, 52,108,252,233,168,247, 63, 20,
- 52, 14,244,195,157,231,114,128, 16,184,120, 73,144,145,145,129,107,135, 54,155, 11,210,158,110,228,114,173, 95, 85,165, 46,229,
- 39, 70,214, 46,181,222,132,220,220, 92, 92,185,114, 5, 37, 6,203,221,221,189, 76,163,245,170,102, 94, 86,250,111, 95,175,216,
-212,102,252,187, 3,208,187, 99,125, 92,189,251, 2,134,226,241,154, 74,186,146,199,223,252, 81,248,201,176, 64,195, 71, 3,235,
- 40,181, 38, 97,226,151, 9,138,107,165,123,197,190,170, 73, 41, 53, 16, 66,142, 61,123,246,172,109,163, 70,141,170,159, 58,117,
- 42, 63,250,246,217,169,165,203,241,217,103,159, 73,127,248,225, 7,123, 74,233,111,122,189, 62,206,166,109,231, 96, 79,196,189,
-123,174, 70,147, 21,215,111, 63,168,219,165, 77, 99, 88, 41,112,247,238, 93,108,217,186, 69,247, 48,234,254,119,133, 89, 94, 95,
-149,103, 94,202,219,159,150, 55,232,117, 88, 90, 51, 35, 45,241,187,243, 39, 15,237,106,214,161, 15, 70, 78,249,234,171, 43, 39,
-247, 46,108,210,174, 55,167,110,179,238,136,184,121, 9, 23, 78,157,249,214,168,206, 95, 88,217, 60,164,229,149, 83, 36,182,255,
-184, 94,147, 14, 72, 78, 74, 68, 66,236,163,159,181,121,177,233, 82,175,144,159,211, 83,147, 62,172, 89,191, 13,110,156,221, 55,
-181, 60,163, 85, 89,157,247,115, 23,111, 62,117,226,216,240,212,212, 31,189, 10,181, 58, 17,165, 84, 39, 18,242, 50,165,156,242,
-123,168,255,249,184, 63, 54, 74, 92,106, 12, 28, 50,234,195,147,235,214,173,230,123, 58,217, 35,179, 64, 7,165,214, 8,149,198,
- 8, 14, 33,168,237, 35,129, 70,149,143,171,135, 86,152, 12,234,130, 97,148, 62, 55,150,167, 41,245, 12, 89, 12,208, 41,159, 77,
-186, 12,161,204,207,167,102,151, 57, 21, 70,235, 84,233, 81,125, 62,155,116, 60,152, 82,218, 69,234, 25,162, 42,153,235,176,172,
-109, 39,164,232,252, 30,217,201, 15, 70,115,209,248, 99,102, 43, 96,177, 90,139,163,124, 0,125,217,158, 79, 42,217,118, 98,221,
-127,242, 55,164,103,201,161, 53,152,160, 55,152, 97, 52, 89,192,225,114,225,228,236,132,160, 26, 97,144, 57, 57, 34, 43, 51, 29,
- 55, 47, 30, 67, 76,212,213,223, 8,197, 34, 77,118,204, 69, 91,142,145, 64,236, 20,236,237,227,197,201, 80, 26, 32, 22,114,113,
-255,234, 41,163,201,160,255,206, 22,147, 85,150,166, 60, 47,127,213,167, 51, 62, 31,177,125,219, 14,175,208,154,142, 72,205,213,
- 34, 53, 71, 7,149,206, 84,108,196,172,208,171,115, 17,117,105, 71,166, 69,167, 90,245,175, 55, 90,102,163, 78,117,248,204, 29,
-215, 89, 11, 87,112,159,191,136, 51, 45,254, 36, 60, 85,171, 86,246,170,114, 36,171, 20,219, 62,170,177,175,106,223, 40, 30,210,
-228,171,196,138,159,191, 95,109, 46,164, 86, 88, 41,197,241,219,153, 47,155, 11,173,197,153,151,145, 47,228, 85,106,218,139,122,
-166,218,173,213,102,201,158, 62,255,174, 0, 0,184, 92,238,203,165, 36,151, 74,167,211, 25, 94,167,185,240,213,196,119,171,213,
- 10, 71, 71, 71,136,197,226, 42, 55, 73, 74, 60,131,135, 55,235,216,239,251, 46,253,199,227,194, 47, 63,209,187, 87,143, 77,210,
-100, 63,219, 92,229, 28,133,130,130,104, 66, 72,236,119,223,125,215,120,203,150, 45, 53,103,204,152, 17,183,243,251,133,235, 0,
- 32, 47,175,104, 14,224,200,200, 72, 58,105,210, 36,189, 78,167,139, 47, 40, 40,136,168,172, 3, 4, 0,104,115,236,151,110,217,
-176,172, 65, 74, 90,198,128,192, 6,205,225, 94,179, 57,188,106,183, 64,129,202,136, 59,207,211, 17,247,228, 34,158, 92, 63,116,
- 74, 35, 53, 47,172,106,153, 27, 53,106,228,199,225,112,106,168,213,106,175,122,245,234, 53,146, 72, 36,145,141, 26, 53, 10,227,
-241,120,169,247,238,221, 75,172,138, 86,226,149,237,250,234, 29,223, 95,155,164,114,232, 20,151,169, 9, 75, 82, 57, 68,106, 68,
-178,233,217, 23,215,232, 61,187,127,183,138, 26,115,163, 15,238, 80, 30,222,179,121, 37,119,212,132,207, 44,143, 20,206,159,240,
-196,194,243,223,188, 23, 90,133,102, 41, 78,198, 71, 99,250,253,103,120,135,226, 72, 86,241,255, 54,133,233,229,242, 7, 10, 0,
- 95,136,125,234,127,255,232,147,137, 95, 55,108,214,102,116,251,119,134,113,204, 2, 41,206,254,242, 35,141,143,186,116,144, 71,
- 45,115, 53, 54,204, 6, 80,105,115,144,193, 80,169,201, 42,179,185, 39, 69,210,241,224,222,173,239, 29,254,229,200, 55,253,251,
-246,115,221,240,229, 80,172,216,116, 20, 18,177, 8,212,106,197,176,206,254,131,159,236,237,209,199,207,211,206,247,240,229,212,
-107, 83, 86, 63,250, 66,163, 49,198, 84, 22,137, 41, 54,206,215, 29, 28, 28,114,218,182,109,219, 82, 36, 18,145,220,220, 92,158,
-135,135,135, 89, 38,147, 25, 82, 83, 83, 53,122,189,254, 48,165,180,176, 42,219,105, 52, 89,145,144,165,195,175, 71, 14,227,193,
-237,139,120,242,228,153,234,201,227, 39,235, 9,143,174, 86,103,198,228,191,206,190,179,150,217,235,144, 86,185,215,161, 69,175,
-218,179,115,227,226,206, 26,157,254,189, 70,173,195, 81,189,110, 27,142,209,100,193,195,187,151,113,249,208,234, 21, 6, 85,222,
-172, 55, 57,198, 62,213,106, 6, 81,174, 16,191, 95, 57, 9,106,181,110, 4, 0,106,181,110,140,188,113,234,195, 22,189,198,193,
-197,163,122, 35, 66, 8,169,234,124,143, 0, 32,224,113, 10, 79, 31,222,254, 75, 66, 66, 2,158, 62,125,138,231,207,159, 35, 63,
- 63, 31,123,246, 36, 84,233,248, 20,230, 39,156,151,186, 6,246, 24, 52,116,228,241,193,195,223,181,171, 25, 20,202, 9,174,230,
- 12, 87, 41, 15,207,158, 39, 34,230, 94,148,245,217,157, 83, 58,163, 50,187,191, 38, 63,161, 92,227, 39,113,175,231, 73, 56,116,
- 86,201,220,133,173, 90,181, 9,254,124,201, 55, 45, 93,221, 61,202,188,142,231,229,100, 11,103, 78, 57, 22,124,243,214,239, 54,
-205,117,104,181, 88,242, 38,188, 55,204,202, 45,154, 40, 20, 47,227,212,164,232, 96, 23, 61, 76, 21,189, 79,173,230, 74, 35,248,
-239, 15,104, 7,179,213,138, 66,173, 17,202, 66, 61, 20, 42, 29, 50,178,243,240, 32, 42, 10, 87,143, 31,195,139,103, 15,226, 77,
- 6,195, 57, 14,135, 28,210,100, 62,187, 90,181,150, 38, 94, 77, 87, 23, 23,196,231,171, 97, 39,228, 33, 49,230,158,190, 80,169,
-216,253,186,245, 72,147, 27,147, 33,241, 12,238, 62,108,216,240, 51,157,123,244,149, 53,107,221,213,222,205,209, 9, 2, 30, 69,
-108, 66, 58, 34,126, 59, 83, 24,247,224,154,210,100, 80,247,124, 27,179,190,252, 47, 99, 83,175, 67,163,190,176,207,136,126, 29,
-142,112,185, 60,161,213,106,214, 27, 13,250, 65,111, 98,178,254, 42, 40,181,164,190, 55, 98,192, 31,158, 13,204, 86, 42, 30, 49,
-228,172,182,244,179,130,201, 66,237, 71, 12,249, 77, 83,116, 1, 41, 63,177,239,101,211,222,190,243,169, 73, 73,121,119,243,243,
-245,151,223,180, 39, 96,233,185, 11, 43,232, 93, 88, 24, 18, 18,242,210, 92,113,185, 92, 88, 44, 22,155, 47, 68, 2,145,120,124,
-231,190, 31,144, 11, 71,127,162,119,174, 28,253, 72,147, 29,179,233, 13,218,153,141, 0,110, 19, 66, 30,205,157, 59,183,153,167,
-167,167,231,252,249,243,237,148, 74, 37,127,195,134, 13,186,220,220,220, 76,165, 82,121,147, 82,170,181, 93, 51,194, 4, 96,160,
-212,179, 78, 39,122,248,167,110, 78,110,190,221,101,238,213,106,201,115,210,226, 21, 57,233,231, 0, 92, 40, 30, 40,178, 74,132,
-133,133, 5,114, 56,156, 97, 0, 26, 72, 36,146,218, 82,169, 84, 68, 41, 13, 33,132, 68, 91,173,214,168,122,245,234,157, 0, 80,
-165,227,151,120,101,187,190,253, 71, 91,247,230,107,172, 2, 3, 71,176, 55,241,202,118, 61, 0,100,157,155,161, 1,240,171,103,
-167, 89, 3,143,221, 76, 92, 23, 93, 32,155,154,125,121,233,177,170,150, 89,158,114,191,246,219,170,255,218,244,232, 84, 0,239,
- 73, 60,131, 87, 62,140,188,185,128, 80,240, 45, 48, 47,214,100,197,222,123, 27,250,124, 62, 95,231,235,235, 91,102,239, 66,145,
- 72,164,171,248,152, 95, 49, 3,216, 66, 72,199, 29, 71, 14,236,120,239,232,177, 95,191,105,223,165,191,171, 93,181,106,168,225,
- 65,176, 99, 86,147,169, 23, 35,115,238,244,253,252,218, 15,113,233,186, 40, 74,105,149,242, 97, 84, 42, 85, 12, 33,164, 64,173,
- 86,247,163,148,166, 16, 66,252, 10, 10, 10,238,155, 76,166,135, 85, 54, 4, 86,140,108,213,170,249, 30, 66, 8,143,154,173,203,
-111,242,185,123,117, 25, 79, 82, 95,199, 88,148, 38,180,134, 35,166,205, 95,219,164, 86,237, 58, 77, 74,230, 58,172, 95,221, 1,
- 19,191, 88,217,164,122,205,160, 38,255,153,255, 80, 90,217, 57, 73, 9, 33, 99,143,108, 93,126, 45,242,214,229, 57,110,222,213,
-171,103,166,198, 61, 73,121,126,255,107,179, 86,113,228, 77,143,115,194,243,232,213, 91,190,251, 98, 70, 70, 90,252,150,194,236,
-152, 71, 0, 80,152, 29,243,200,222,179,206,151,185,153,169, 51,242,178,227,190,123,221,125, 81, 88, 88,152,190,123,247,110,167,
- 54,109,218,112, 60, 61, 61,145,147,147,131,203,151, 47, 91,173, 86,107, 90, 85,181,212,121,113,151, 9,169,229,242,243,166,239,
-151, 11, 36, 14,189,204,102,179, 15,165, 0,143,199,203, 48,104,148,103, 84, 28,201,231, 52, 63,161,146,122,105, 37, 0, 56, 37,
-115, 23, 90,173, 86,178,124,221,142, 68,190,157, 67,153,243, 35,154,116, 42,123,171,213,106,243, 92,135, 5, 73,247,106,189,181,
-155, 53,165,139, 26, 53,109, 57,199,100, 50,234, 80,148, 47,166, 3,160,163, 20,121, 28, 14,185,202,181,154,206, 42,222,224, 97,
-138, 16, 56, 82,194,131,131,152, 7, 2, 2,181, 34,159, 86, 37, 39,171,204,227,157,245, 44,154,144,142, 1,167, 13, 7,198, 92,
- 58,127,106,136,197, 98,169, 81, 92,115, 18,244,218,194,131,234, 12,231,159, 41,189,107,198, 63,159,147, 37,102,139, 87,193,137,
- 29,131,162,185,125,254,167,201,139,191,211,244,109,234,101,100,229,239,232,209,127, 6, 77, 72,204,190,147,156,169,255,185,244,
-180, 58,111,170,153,146,146,115,185,184,185, 80,255,231, 8,197,235,245, 46,124,105,140,117,218,111,215,204, 29, 14,157,182,112,
-167, 38, 59,102,199,219, 49,177, 84, 11,224, 42, 33, 68,246,209, 71, 31,133, 73,165, 82,126,110,110,238,109, 74,169,226,117, 53,
-213, 89, 49,151, 1, 92, 6, 48,235,109,148, 49, 50, 50, 50,174,113,227,198,187, 56, 28, 78, 13, 74,169, 39,165, 84, 86,108,100,
-115,121, 60, 94,218,227,199,143,211, 94,107,219,245, 14,167,213, 6,110,144,153, 58,159,249,147,249,112,245, 56,159,148,111,249,
-137, 43,177,251,159,201, 49, 40,204,122, 22, 13, 96,208,219,214,173,104,156, 44,219,235,209,127, 12,215,149,147,219,223,227, 8,
-101,139,187, 4,235, 52,221, 63, 77,251,250,250,195,156,219,148, 82,213, 27,212,209, 28,161, 80,168, 37,132,248, 9, 4, 2,173,
-193, 96,136,122,173,253, 87,100,242,221,223,230,190,179,130,220,107,210,164,105,149,214,183, 33,146,183,163,120,121,171,168, 51,
-159,126,141,226,230,239, 63, 68, 40,178, 98, 22, 3, 88,252, 38,218,119,239,222, 61,254,221,119,223, 41,214,173, 91,231,111,177,
- 88,236, 13, 6,131, 70,171,213, 38,164,166,166,254,254,122,199,252,133, 1,192, 39,197,203,107, 68, 93,158,102, 74, 61,235,172,
-109,221,170,245, 39, 69, 15,232,116,109,194,213,181,211, 42,250,142,212,179,142,182,244,250, 21,205,117,248, 86,143, 75,118,204,
- 70, 0, 27,255,186, 72,133, 53,103,228,224,126, 64,241,192,220, 86,179, 57,231,173,200, 22,157,243, 91,241,154,147,164,255, 19,
-160,148,102, 0,216, 92,108,152,233, 95,246, 67,182,230,171, 48, 77,166,201, 52,255, 93,154,182,204, 78,192,246, 39,211,252, 43,
- 53,197, 62,245,252, 0,192,150, 73,215,203, 91,159,237, 79,250,175, 73,104,183, 97,127, 76, 40,195,108,217, 54, 96, 41,131,193,
- 96,252, 5, 79,123, 86,182, 23, 24,255, 77,108, 53, 88,175,187, 62,227, 95,119, 77, 43, 55, 39,154,160,104, 22,236,178,190,100,
-179, 83, 37,132,116,125,141, 66, 93, 96,154, 76,147,105, 50, 77,166,201, 52,153,230,191, 75,179, 50,237,191, 99,164,172,140,136,
-214,201,226,230,195,162,129,217,254,170, 5, 64, 87,166,201, 52,153, 38,211,100,154, 76,147,105, 50,205,127,211, 2, 96, 66,201,
-255, 28, 48, 24, 12, 6,131,193, 96, 48,254, 18, 88,142, 22,131,193, 96, 48, 24, 12,198, 27, 80, 86,211, 33, 51, 90, 12, 6,131,
-193, 96, 48, 24,111,129,138,146,225, 89,211, 33,131,193, 96, 48, 24, 12,198, 27, 80, 18,209, 34,132,120, 19, 66, 38,148,142,112,
- 49,163,197, 96, 48, 24, 12, 6,131,241, 22,160,148,102,188, 26,221, 34,148, 82,156, 60,121,146,134,135,135, 19, 0,127,248,159,
-193, 96, 48, 24, 12, 6,227,255,131,191,179, 23, 33,132,120, 3, 8, 47,189, 57, 37,195, 59,112, 74,111, 32, 59,204, 12, 6,131,
-193, 96, 48,254,155,102,235,239, 88,238,146, 72, 86,169,229,229,164,217, 47,141, 86,120,120, 56, 97,102,139,193, 96, 48, 24, 12,
-198,127,139,127,162, 23,225,188,186,129,236, 48, 51, 24, 12, 6,131,193,248,111,154,173,127,210,246,176,225, 29, 24, 12, 6,131,
-193, 96, 48,222,128,138,114,180, 72,241, 80,241, 12, 6,131,193, 96, 48, 24,140,215, 51, 90, 19, 74,247, 54, 44,253,154, 69,180,
- 24, 12, 6,131,193, 96, 48,222,130,217, 42,243,125, 22,209, 98, 48, 24, 12, 6,131,193,248,107,248, 75, 7, 44, 37,132,116,101,
-154, 76,147,105, 50, 77,166,201, 52,153, 38,211,252, 39, 83, 50, 34,124,241,255, 19,138,115,182,254,122,163,197, 96, 48, 24, 12,
- 6,131,241, 47, 32,156, 82,186,185, 84,110, 86, 56, 51, 90, 12, 6,131,193, 96, 48, 24,111,145,178, 38,151,102, 70,139,193, 96,
- 48, 24, 12, 6,227, 45, 26,172,210,175,153,209, 98, 48, 24, 12, 6,131,193,248,139, 96, 70,139,193, 96, 48, 24, 12, 6,227, 47,
-130, 0, 40,179,231, 0,165,244,130,205, 34,175,209,251,160, 50,125,166,201, 52,153, 38,211,100,154, 76,147,105,254,243, 52, 43,
-211,174,138,255,248,159, 49, 83,255, 25, 25,254,100,241,223,255, 52, 31, 82, 74,255,178, 5, 64, 87,166,201, 52,153, 38,211,100,
-154, 76,147,105, 50,205,127,242, 2, 96, 66,233,191,165, 23,214,116,200, 96, 48, 24, 12, 6,131,241,230, 81,173,210,227,104,189,
- 28, 37,158, 77,193,195, 96, 48, 24, 12, 6,131,241, 6,148, 53,172, 67, 9, 44,162,197, 96, 48, 24, 12, 6,131,241, 6,188, 58,
-207, 97,233,215,204,104, 49, 24, 12, 6,131,193, 96,252, 5,134,139, 25, 45, 6,131,193, 96, 48, 24,140,183,104,178,254, 20,221,
- 42,206,146,199,201,147, 39,105,120,120, 56, 97,187,138,193, 96, 48, 24, 12,198,127,131,127,162, 23,225,148,222,176,147, 39, 79,
- 82,118,152, 25, 12, 6,131,193, 96,252,183, 76,214,223,209,139, 16, 66,188, 75,122, 27, 22, 47,222, 37,159,177, 94,135, 12, 6,
-131,193, 96, 48, 24,111, 70,120,233,158,135,197,205,135,155,153,209, 98, 48, 24, 12, 6,131,193,120, 11,148,149, 8, 15,176, 28,
- 45, 6,131,193, 96, 48, 24,255, 35,252, 19,189,200, 75,163,197, 96, 48, 24, 12, 6,131,193,120, 13, 51, 85, 70, 52,171,164, 41,
-145, 25, 45, 6,131,193, 96, 48, 24,140,183,100,184, 94, 29, 37,158, 25, 45, 6,131,193, 96, 48, 24,140,191,192,100, 1,127,241,
-128,165,132,144,174, 76,147,105, 50, 77,166,201, 52,153, 38,211,100,154,255,116,147, 85,242,151, 77, 42,205, 96, 48, 24, 12, 6,
-131,241, 22, 97,147, 74, 51, 24, 12, 6,131,193, 96,252, 69,176, 73,165, 25, 12, 6,131,193, 96, 48,254,159, 13, 23, 51, 90, 12,
- 6,131,193, 96, 48, 24,111,209,100,189,106,182, 88,142, 22,131,193, 96, 48, 24, 12,198, 27, 80, 81,142, 22, 1,208,181,156, 47,
- 93,168,130,139,235,250, 26,133,186,192, 52,153, 38,211,100,154, 76,147,105, 50,205,127,151,102,101,218, 85,241, 31,255,171,252,
- 97,168, 7, 74,233, 95,182, 0,232,202, 52,153, 38,211,100,154, 76,147,105, 50, 77,166,249,111, 90, 0, 76, 40,249,159, 53, 29,
- 50, 24, 12, 6,131,193, 96,188, 97, 4,171,188,207,152,209, 98, 48, 24, 12, 6,131,193,120, 3,216, 56, 90, 12, 6,131,193, 96,
- 48, 24,127, 17,132, 16,239,226, 17,225, 75,254,134, 49,163,197, 96, 48, 24, 12, 6,131,241,118, 8, 47,142,106,149,252,101, 70,
-139,193, 96, 48, 24, 12, 6,227,109, 81,222, 56, 90,132, 82,138,147, 39, 79,210,226,215, 29,195,195,195,175,178,221,197, 96, 48,
- 24, 12, 6,227,255,147,127,170, 23,121, 25,209, 10, 15, 15, 39, 0,174,176, 67,205, 96, 48, 24, 12, 6,227,191,193, 63,209,139,
-112, 94,113,146, 29,217, 97,102, 48, 24, 12, 6,131,241,223,224,159,232, 69,120,175,184, 72, 6,131,193, 96, 48, 24,140,255, 10,
-127, 87, 47, 66, 8,241, 6, 16, 14,224,100,241,223,151, 67, 62,176,113,180, 24, 12, 6,131,193, 96, 48,222,208, 35, 82, 74, 55,
-255, 97,234,157, 18, 19, 86, 60, 84, 60,131,193, 96, 48, 24, 12, 6,227, 53, 40,107,100,248, 18,195,197,140, 22,131,193, 96, 48,
- 24, 12,198, 95,101,194,152,209, 98, 48, 24, 12, 6,131,193,120, 67, 67, 85, 42,170, 85,186,249,144,243, 23,255,104, 87,166,201,
- 52,153, 38,211,100,154, 76,147,105, 50,205,127,186,201,162,148,110, 46, 89, 74,155, 46, 54, 50, 60,131,193, 96, 48, 24, 12,198,
- 95, 4,235,117,200, 96, 48, 24, 12, 6,131,241, 6,188, 26,197, 42,221,116,200,140, 22,131,193, 96, 48, 24, 12,198, 91, 48, 91,
-101,189,207,154, 14, 25, 12, 6,131,193, 96, 48,222,128,178,134,119, 96, 70,139,193, 96, 48, 24, 12, 6,227, 47, 54, 92, 4, 64,
-153, 61, 7, 40,165, 23,170, 32, 92,229,222, 7,149,233, 51, 77,166,201, 52,153, 38,211,100,154, 76,243,159,167, 89,153,118, 85,
-252,199,255,178,193,122,217,148, 72, 41,253,203, 22, 0, 93,153, 38,211,100,154, 76,147,105, 50, 77,166,201, 52,255,173, 11,107,
- 58,100, 48, 24, 12, 6,131,193,248,139,176,217,104, 17, 66,220,249,124,254, 28,123,123,251, 31,236,237,237, 55,241,249,252,239,
- 8, 33,206, 85,253, 65,169, 84, 58,213,219,219,251,169,183,183,119,106, 64, 64,192, 41, 71, 71,201,167,181,236, 72,123, 66, 8,
-255, 45,132,238, 56,132,144, 96, 66,200,167,246,246,246, 79,196, 98,113, 34, 33,100, 23, 33,228, 83, 66,136,219,155,104, 47,246,
- 37,131,162, 63,237,127,116,177, 47, 25,244,202,111,134,123,121,121, 93, 39,132,116,127, 91, 7,101,132,132,116, 29, 34, 37,201,
- 67,164, 36,121,132,228,245, 7,133,115,116,116, 28,237,227,227,115,211,205,205, 45,205,199,199,231, 55,177, 88, 60,184,138,251,
-211,195,203,203,107,133,191,191,127,140,175,175,239,154,226,217,201,255,103,105,111, 71,218,181,178, 35, 57,173, 69, 68,213, 86,
- 68,126,104, 45, 34,221,186, 19, 98,255,154,117,169, 45, 33,228,144, 76, 38,187,207,231,243, 79, 16, 66, 6, 22,215,175,129,124,
- 62,255,132, 76, 38,187, 79, 8, 57, 68, 8,105,251,154,245,116, 5, 33, 36,141, 16,178,180,248,245,199,254,254,254,170, 70,141,
- 26, 37, 54,106,212,104,123, 80, 80,208,187,182,234, 73, 36,146,110,254,254,254,135, 3, 2, 2, 18, 91,183,110,157, 95,173, 90,
-181,103,126,126,126, 59,236,236,236, 58,178, 75, 28,131,193, 96,252,151,177, 33, 60,216, 7,192, 55, 0,214, 71, 69, 69, 69, 80,
- 74, 35, 40,165, 17, 81, 81, 81, 17, 0,126, 0,176, 12,229,132, 16, 95,125,223,213,213,117,209,226,197,139,117, 25, 25, 25, 52,
- 39, 39,135,198,196,196,208,213,243,190,176,246,112,225,209, 64,119,103,141,183,183,247,139,128,106,213,246,213,151,114,190, 0,
- 80,171, 42,225, 74, 0,206, 98,177,248,246,188,121,243,212,215,175, 95, 87, 27, 12, 6,181,213,106, 85,167,167,167,171, 47, 92,
-184,160,110,211,166,141, 26,192, 52, 0,220,215, 9,129,126,229,131,171,116,235,151,244, 43, 31, 92, 45,253,126, 72, 72,200, 99,
-171,213, 74, 7, 13, 26,164, 7,224,251, 38, 97, 85, 95,192,174,190, 35,156, 6, 75,145,101,222,241, 53,165, 27,102,208,193, 18,
- 36,191,142,166,135,135,199,175, 83,167, 78, 85,166,165,165, 81,189, 94, 79,147,147,147,233,196,137, 19, 21, 30, 30, 30,187,109,
-220,159,174,161,161,161, 89, 55,111,222,180,202,229,114,122,229,202, 21,107,131, 6, 13,178, 0,120, 87, 53,164,236,225,225,177,
-217,199,199,231, 84, 85, 22, 15, 15,143, 45, 85, 61, 70, 45, 68, 72, 54, 70, 92,166,244,238, 57,122,108, 80, 43,186,186,105, 53,
- 58,208, 69, 40,111, 43,196,199, 29, 0, 94, 21,234,210,144, 14, 29, 58, 20, 62,124,248,208,146,151,151, 71, 31, 63,126,108, 29,
- 63,126,188, 14, 64,244,248,241,227,117,143, 31, 63,182,230,229,229,209,135, 15, 31, 90, 58,116,232, 80, 8, 96,156,173,229, 44,
-126,184,217,182,112,225, 66, 74, 41,165,139, 23, 47,166, 13, 27, 54,164,157, 59,119,166,106,181,154, 82, 74, 19, 41,165,219,205,
-102,243,123,182,104,202,100,178,209, 83,167, 78, 85,107, 52, 26, 90,130,213,106,165,114,185,156,174, 95,191,190,208,203,203,235,
- 20, 0, 55,214, 60,193, 52,153, 38,211,100, 77,135,127,105,170,148, 55,128, 9,165,150,151,247,202,202,190, 56,226,139, 47,190,
- 40, 49, 85,167,219,182,109,123,231,189,247,222,139,120,239,189,247, 34,218,182,109,123, 5,192,217,123,247,238, 69,204,156, 57,
- 51, 2,192,136,138, 14, 4, 0,231,214,173, 91,203, 51, 51, 51,105, 80, 80, 16,173, 94,189, 58,205,204,204,164,148, 82,122,119,
- 72, 19,122,177, 46,104,202,181,211,244,220, 47,135,232,120,111, 30,109,231, 45, 51,121,123,121,229,185,185,185, 45, 65,241,156,
-140,229, 29, 92, 0, 3,234,214,173,171,138,142,142, 86,199,198,198,170, 23, 45, 90,164,238,220,185,179, 58, 52, 52, 84, 61,112,
-224, 64,245,186,117,235,212, 70,163, 81,189,101,203, 22,181,163,163, 99,244,171,102,235, 77,140, 22,143,199, 91, 27, 21, 21, 69,
- 95,188,120, 65, 1,172, 40, 79, 19,128,204,201,201,169,167,179,179,243, 52, 39, 39,167,158, 0,100,148, 82, 4, 1,210, 70, 50,
-248,127,220, 40, 48,228,196,136,174,181,214,119,109,214,100,176, 3, 71,110,250,126, 6,165,131,252, 95,203,104,201,100,178,209,
-159,126,250,169, 74,175,215, 83,141, 70, 67,213,106, 53,213,104, 52, 84,165, 82,209, 17, 35, 70, 40,237,236,236, 6, 84,166,233,
-230,230,246,245,181,107,215,204,153,153,153,244,218,181,107,244,212,169, 83,116,195,134, 13, 86, 15, 15,143, 85, 85, 61, 1,189,
-188,188,206,159, 59,119, 46, 34, 50, 50, 50,226,246,237,219, 17, 38,147, 41,194,104, 52, 70, 24,141,198,136, 19, 39, 78, 68, 28,
- 57,114, 36, 98,255,254,253, 17, 6,131, 33,194, 96, 48, 68,232,245,250,136,154, 53,107,158,169,234, 49,106, 46, 66,138,225,250,
- 49, 74, 87, 77,166,138,111, 39, 81,249,244, 94, 52,123, 98,123,250, 67,179,106,180,189, 24,199, 75,215,163,138, 52,249,124,254,
-213,196,196, 68,235,236,217,179, 13,245,234,213, 83,140, 29, 59, 86,167,215,235, 41,165,148,234,245,122, 58,118,236, 88, 93,189,
-122,245, 20,179,103,207, 54, 36, 36, 36, 88,121, 60,222,133, 42, 24,173,101, 37, 38,235,234,213,171,180, 52,106,181,154,118,238,
-220, 57,177, 97,195,134,219,107,212,168, 49,178, 50, 77,169, 84,218,111,214,172, 89,106, 90, 6, 38,147,137,170, 84, 42,154,144,
-144, 96,173, 94,189,122, 58, 0, 87,118, 49,103,154, 76,147,105, 50,163,245,151, 25,173, 9,229,189,174,112, 39,206,156, 57, 51,
-130, 82, 26, 49,119,238,220,136,226,200,150, 0,128,180,120,225, 1, 24, 62,107,214,172, 8, 74,105,196, 23, 95,124, 17, 1,160,
- 79, 5, 70,171,207,193,131, 7,141,107,214,172,161,158,158,158,212,203,203,139,174, 93,187,150, 90,173, 86,154,121, 98, 55,189,
- 88, 23,244,201,156, 49,148, 82, 74, 99,150, 76,161, 23,235,130,198,109,252,138,142, 26, 53, 74, 99,111,111, 63,162, 2, 3,227,
-210,164, 73, 19,149, 86,171, 85,239,216,177, 67,109,111,111,127, 23, 64, 61, 0,124, 20,245,170,148, 2,120,183, 94,189,122,202,
- 71,143, 30,169,247,238,221,171, 6,176,200,198,200, 70, 45, 0,157, 36, 18,201,192, 89,190,252, 88,186,245, 75, 58,203, 19, 15,
- 1, 52, 0,224, 94,188,142,207, 23, 95,124, 65, 41,165,212,207,207,239, 90, 57,219, 46, 11, 13, 13,253, 34, 54, 54,118,129,201,
-100, 90, 16, 25, 25,185,160, 78,157, 58,179,251,214,244,110,117,116, 68,183, 48,197, 87,147,194,232,202,233,161,223,189,211,188,
-235,190, 97, 29, 71,188, 95,195,237,250, 88, 15, 59,205, 80, 25, 87, 53,220,254, 15, 58, 54, 85,108, 95, 95,223,219,201,201,201,
- 47,205,149, 74,165,162,105,105,105, 52, 62, 62,158, 94,191,126,157,122,123,123, 95,172, 76,211,203,203,235,113,114,114, 50,221,
-184,122, 53, 29,212, 32,132,182,119,114,160, 29,156, 29,104, 83,169, 93, 97, 93,160,105, 85,141,214,253,251,247, 35, 0, 68, 0,
-136,200,203,203,139,200,203,203,139, 40, 40, 40,120,249, 30,128, 8,133, 66, 17,161, 80, 40, 34, 12, 6, 67, 68, 96, 96, 96,149,
-141, 86, 27, 59,180,105, 97,135,252, 86, 34,104,251,248,186,165, 79,170,233,102,185, 53,162, 21, 45,152,220,153,174, 9,243,165,
-109,133,248,216,198,227,222, 71, 40, 20, 94, 1, 48, 3, 0, 23,192,152,158, 61,123,106, 40,165,180,103,207,158, 26, 0, 99,138,
-223,255,148,199,227, 93, 0,208,211,150,114, 2,224,212,174, 93,187,176, 36,146, 5,224,247,218,181,107, 23, 54,108,216,144, 54,
-108,216,144,250,249,249,169, 0,140,177,245,130, 86,171, 86,173, 24,173, 86,251,210, 0,202,229,114,154,158,158, 78,227,226,226,
-104,116,116, 52,189,123,247, 46, 77, 76, 76,164, 7, 14, 28,176, 56, 57, 57,157,100, 23,115,166,201, 52,153, 38, 51, 90,127,157,
-209,122,117,249,147,209, 58,113,226, 4,125,229, 75,223,222,187,119, 47, 98,214,172, 89, 17,175, 58,181, 87,197,231,206,157, 91,
- 18,245,250,166,130,155,255,150,152,152, 24, 58,102,204, 24, 26, 28, 28, 76,131,131,131,233,123,239,189, 71, 21, 10, 5, 85, 63,
-127, 68, 47,214, 5,189, 59,180, 41,165,148, 82,213,147, 72,122,177, 46,104,196,168,214,244,193,131, 7,180, 90,181,106,231, 42,
-248,253,227,191,253,246, 91,206,238,221,187, 51, 1,236, 42, 54, 88, 45, 1,172, 21,139,197,219,138,155, 11,171, 3,112, 14, 10,
- 10,202,215,104, 52,234, 65,131, 6,169, 1,248, 87,160,217, 33, 56, 56,248,197,150, 45, 91,104,118,118, 54,205,207,207,167,203,
-219,212,161,116,235,151,116,113,211,234,214,141, 27, 55,234,103,204,152, 81,232,226,226,114, 2,128,207,160, 65,131,204,148, 82,
-218,190,125,251,172,178,244,156,156,156,122,198,198,198, 46,208,233,116, 11,228,114,249,130,252,252,252, 5,199,142, 30, 93,208,
-163, 65,157, 49,138,175, 38,133, 29, 29,209, 45,236, 29, 95,231,129,171,186, 55,251, 48,109,246,184, 65,115, 91,215,123,162, 91,
-246,201,229, 33, 53, 61, 87,188,206, 1,119,119,119,207,208,235,245, 20,192,159,150, 23, 47, 94, 80, 87, 87,215,228,202, 52, 92,
- 92, 92,230,126, 58,124,152,101, 64,117, 95,250, 98,205, 60,106, 58,191,151,154, 78,237,160,207,191,157, 78,251,122,185, 41, 91,
- 10, 56,179,108, 45,143,151,151,215,249,219,183,111,255,193,104, 21, 20, 20,148,105,180,148, 74,101,132,193, 96,136,168, 93,187,
-246,153, 55,173,248, 45,133, 8,236, 32,230,222,141, 28,211,142,230, 76,234, 76,123,202,248,137,111,112, 18, 13, 7,112, 5,192,
-168, 42,126,143, 3, 96, 89,137,161,250,246,219,111, 41,165,148,214,174, 93,187, 16, 0,231, 13,202, 35, 11, 9, 9,137, 31, 55,
-110,156,185,110,221,186,217,109,218,180,145,223,185,115,135, 94,189,122,149,158, 58,117,138, 30, 58,116,136, 62,122,244,136,166,
-165,165,209,152,152, 24, 26, 30, 30, 46, 7,208,129, 93, 16,217,194, 22,182,252, 47, 47,175,122,145,127, 76,175,195,147, 39, 79,
-210,240,240,112,114,242,228, 73, 90,156,172, 43, 3, 96,215,180,105,211,156,101,203,150,173, 44,158,195,135, 52,228,145, 33, 93,
-236,249, 15,186,216,243, 31, 52,228,145, 33,132, 16, 66, 41,221,188,100,201,146,175, 27, 54,108,152, 1, 64, 76, 8,241, 42, 39,
- 23,172,157,171,171, 43,146,147,147, 33,147,201, 32,147,201,144,156,156, 12, 74, 41,204, 20, 48, 81, 64,111, 52, 66,171,213, 66,
-103,165,208, 90, 1,165, 90, 13, 47, 47, 47, 24,141,198,192,114,146,138, 27, 13, 29, 58, 52, 48, 52, 52, 52,103,230,204,153,233,
- 0,198, 1,216,246,193, 7, 31,156,255,253,247,223, 67,213,106,117,126,116,116,180,174, 65,131, 6, 61, 1,120,197,198,198,142,
- 94,191,126, 61,198,140, 25, 3, 0, 29,202,209,108, 16, 30, 30,126,234,209,163, 71,129,163, 70,141,194,149, 43, 87,176,124,249,
-114,228,230,230, 82, 0,208,235,245,212, 98,177, 24, 91,183,110,109, 92,179,102, 77,243,246,237,219,223,174, 89,179, 38, 23, 0,
-226,227,227,159,151,163, 89, 39, 32, 32, 0,122,189, 30, 57, 57, 57,120,244,232, 17, 28,100, 50, 68,165,231,122,118, 92,181, 49,
-111,206,209,243,252,225,205, 67, 93,166,117,107,163, 95,122,238, 74, 80, 61, 31, 79, 79,131,209,228, 21,147,145,149,254, 58,121,
-119, 2,129, 32, 57, 55, 55, 23, 6,131, 1, 90,173, 22, 74,165, 18,121,121,121,200,205,205, 69,122,122, 58, 4, 2,193,139, 74,
- 19,233,243,243,175,197,255,118,149, 28,248,241, 91, 4,154,243,193, 59,188, 22,188, 95,127, 64, 45, 67, 14, 54,205,155,232, 96,
-112,117, 95, 40,115,116, 44,112,118,118,222, 76, 8,169, 93,153, 94, 88, 88, 24,242,242,242,144,151,151, 7, 87, 87, 87, 56, 59,
- 59,195,217,217, 25,114,185, 28, 10,133, 2, 74,165, 18, 65, 65, 65,104,212,168, 17,118,238,220,249, 86,242, 15,111,234,105,156,
- 25,150, 73,231,159,165, 67, 32,145,160,166,179, 52,160,185, 3,113,169, 32, 73,189,179, 64, 32, 56,232,234,234,122,142, 16, 50,
-153, 16, 34, 33,132, 76,118,117,117, 61,199,231,243,251, 3, 88, 76, 41,221, 93,197, 98, 44, 93,184,112,225, 23,177,177,177,246,
- 15, 30, 60,192,204,153, 51,177,104,209, 34, 60,127,254,252,123, 74,169,181,248,119, 63,114,115,115, 59,193,229,114,127, 34,132,
-244, 34,132,244,244,241,241,233, 82,137,110,255, 25, 51,102,232,154, 52,105, 18,243,228,201,147,254,191,253,246, 91,211,233,211,
-167, 43,146,146,146, 16, 19, 19, 3,111,111,111,248,249,249, 65,173, 86,163,160,160, 0,253,251,247,151, 57, 58, 58,142, 96, 89,
-169, 12, 6,227,127,149, 87,189,200,223,137, 87,199,209, 42,253,186,204, 94,135,246,246,246, 11, 35, 34, 34, 90, 53,108,216,144,
- 7,224, 0, 0,132,114, 49,184,127,235,198,219,142,110,254,182,225,145, 53,243, 26,246,104, 24,180, 45,148,139,146, 94,108, 39,
-154, 54,109,234, 28, 17, 17,209, 90, 36, 18,125, 92, 94,222, 61, 0, 56, 59, 59, 67, 38,147,193,201,201, 9,206,206,206,176, 90,
-173, 80,107,116, 40,180, 0, 42,157, 1, 10,133, 2,170,226,215,106,189, 17,133,133,133, 47,191, 91, 6, 29,199,141, 27,151,179,
-126,253,250,236,140,140,140,111, 1, 52, 24, 51,102, 76,191,117,235,214,225,210,165, 75,186, 94,193,181, 92,151,180,107,252,117,
-189,140,231, 11,130,249, 24, 15,224,218,181,107,215,208,186,117,107, 16, 66,134,149, 37, 40, 22,139,127,216,183,111,159, 56, 58,
- 58, 26,181,106,213,138, 30, 54,108,216,144,111,191,253, 54, 80,162,206,191, 1, 0,230,188,204,232, 41, 83,166,124,185,100,201,
-146,156,156,156, 28,163, 70,163,241,232,219,183, 47,146,147,147,145,150,150,246,123, 57, 38, 51, 38, 50, 50,146, 42, 20, 10,196,
-197,197, 33, 50, 50, 82,252,229,151, 95, 54,183,112, 56,253, 82,225,240,254,152, 54, 77,155,143,106,217, 24,187,111, 62, 16, 92,
-127, 22,239,212,180,186,175,243,253,148,140, 26, 38,130, 23,175,115,192, 85, 42,213,218,175,191,254, 90,173, 86,171,145,154,154,
-138,135, 15, 31,226,201,147, 39, 72, 76, 76,196,242,229,203,213,249,249,249,235, 42,211,240,177,227,125,182, 98,250, 7,132,247,
-248,119,224,193, 85, 64,163, 2,180,106,232,159, 70, 96,251,211, 76,108, 56,252,139, 48, 41, 57,217,105,255,254,253,227,252,253,
-253, 35, 8, 33, 65,149,117,186, 0, 0, 14,135,243,106,229, 4,135,195, 81, 1,200,148, 72, 36, 41, 14, 14, 14, 41, 28, 14, 39,
-147, 82, 90,248, 54, 42, 63,199, 12, 35,184, 92, 64, 40, 6,135,207,171,232, 36, 25, 50,108,216,176,125, 41, 41, 41, 61,226,226,
-226, 90,173, 91,183,238,107, 59, 59,187,168,117,235,214,125, 29, 23, 23,215, 42, 37, 37,165,199,176, 97,195,246, 17, 66,222,173,
-202,239,215,174, 93,123,202,130, 5, 11,176,124,249,114, 52,106,212, 8, 65, 65, 65,154,133, 11, 23,174, 5, 48,143, 16,242,113,
- 80, 80,208,141, 41, 83,166,140,205,206,206,246, 74, 77, 77,109,244,253,247,223, 79, 92,187,118,109,179,244,244,116,187, 74,164,
-219,118,239,222, 29,167, 79,159, 6,128, 12, 74,105, 92, 94, 94,158, 57, 61, 61, 29, 33, 33, 33,104,222,188, 57,212,106, 53,212,
-106, 53,228,114, 57, 2, 2, 2, 96,181, 90, 91,177, 75, 57,131,193, 96,252,255, 25,174,114,141,150,157,157,157,115, 88, 88, 24,
-106,214,172,233, 92,156,139, 5, 87, 33,111,246,180,113,195,237,165, 17,103, 64, 34, 47, 98, 88,187,250,246,174, 66,222,236,226,
-175,240, 2, 2, 2, 68, 97, 97, 97,144, 72, 36,190,229,252,254,149,204,204, 76,132,133,133,193,201,201, 9, 50,153, 12, 97, 97,
- 97, 48, 26,141, 80,168, 84, 40,180, 0, 26,147, 21, 10,133, 2,249, 57, 89,208, 88, 0,179,131, 43, 18, 19, 19,193,229,114,227,
-203,209,244,174, 85,171, 86, 78, 84, 84, 84, 14,128,107, 0, 62, 92,180,104, 17,102,205,154,133,249,243,231,239,179,207, 72,232,
-190,239,244,175,174,123, 22,126,228, 30, 36, 36,195, 1, 24, 83, 82, 82,224,228,228, 4,137, 68, 82,166, 49,104,223,190,125, 19,
-137, 68,130, 29, 59,118,208,212,212,212, 54,148,210, 67,148,210,120, 66,138,204,158,152, 3, 5,165,116,109, 68, 68, 68,139, 47,
-191,252,242, 89,215,174, 93,249, 45, 91,182,196,226,197,139, 1,224, 68, 89,154,114,185,252,214,187,239,190,107,184,124,249, 50,
-158, 62,125, 42, 57,122,244,232,224,197,139, 23,215, 79, 74, 74, 18, 29, 63,117,230,157, 93, 41,202,193,223,158,187,110,183,228,
-236,149, 91,110,142,146,122, 53,220, 92, 16,153,148, 38,176,112,113,167,178,131,218, 82,192, 27,215, 73,204,143,108,111,199,205,
-232, 36,230, 71, 52, 23,240, 62, 80, 42,149,251,143, 29, 59,118,118,250,244,233,234,236,236,108, 56, 56, 56, 32, 47, 47, 15, 75,
-151, 46, 85, 71, 70, 70, 30,214,235,245,199, 43,211,181, 88,105, 19,191,234,254,192,139,168,151,239, 25,173, 20,119, 12, 2,244,
-254,240, 19, 4,135,132,192, 96, 48,160, 65,131, 6,100,209,162, 69, 18,153, 76,246,121,165,166,135,243,167,234,102, 38,132,100,
- 82, 74,211,212,106,117,170, 88, 44, 78, 18, 8, 4, 73,249,249,249,169,148,210,172,183, 80,225, 57,148,131,207, 90, 55,168, 13,
-136,196, 72,202, 83,167,223, 81,209,252,178,214,117,112,112,248, 96,195,134, 13,118, 91,183,110, 53, 77,153, 50, 69, 63,113,226,
- 68,190, 86,171,245,152, 56,113, 34,127,202,148, 41,250,173, 91,183,154, 54,108,216, 96, 39,149, 74, 7,190, 78, 89, 76, 38, 19,
-162,162,162,190,141,141,141,149, 80, 74, 63, 5,240,201,194,133, 11,199,196,198,198,218,173, 95,191, 30,135, 14, 29,194,161, 67,
-135,208,175, 95, 63, 76,157, 58, 21, 11, 22, 44,168,104,187,236, 27, 54,108, 24,230,234,234,138,171, 87,175,166, 83, 74,147, 8,
- 33, 77,164, 82,169, 67,191,126,253,208,163, 71, 15,232,116, 58, 24,141,198,151, 70,139,203,229,194,201,201,201,149, 93, 6, 25,
- 12, 6,227,175, 53, 89,175,154, 45, 30, 0,148,132,234,194,195,195, 73, 69, 55, 70, 75, 65, 54,228,133, 26, 36, 42, 52, 72, 46,
-176,254,225, 51,171,213, 90, 97, 1,210,211,211,143,223,188,121,243,131,176,176, 48, 94,122,122, 81,139, 88, 88, 88, 24, 52, 26,
- 13,210, 31,220, 70,161, 21,144,212, 10, 69, 97, 97, 33, 10,158,220,135,180, 97, 43,184,134,143,194,170,245,235,245,121,121,121,
- 63,150,165, 41, 20, 10,249,213,170, 85,203,137,143,143, 55, 3,200,151,201,100,221,253,253,253,113,229,202, 21, 0,216, 77,129,
- 21,136,188, 12, 92, 61, 2, 90, 20, 82,145, 6, 4, 4, 32, 59, 59, 27,106,181,250, 74, 89,154, 55,111,222,140, 53,153, 76, 13,
-250,246,237, 75,126,254,249,231, 3,132,144,249, 0, 30,206,241, 2,247, 65, 74, 22, 10, 45,176, 35,132,116,115,118,118,254,116,
-193,130, 5, 93,166, 76,153,130, 99,199,142,225,220,185,115, 70, 20,229,130,221, 44, 35,154,163, 32,132,108,154, 49, 99, 70, 75,
- 14,135,243,225,249,243,231,205, 65, 65, 65, 74,163,209,104,169, 19, 28,204,153,191,232, 43,193,228, 15, 39, 56,229,105,240,184,
- 71, 29,239,214,132, 0,143,211,178,147, 98, 85, 52,175,162,125,218, 65,196, 59, 49,172, 93,195,246, 31, 12,235, 35,149,212,170,
-135,194, 71,183,189, 54, 29, 60,181,170,163,152,215, 59, 75,107,238, 39,147,201, 6, 95,185,114,101,178,193, 96,168, 41, 18,137,
- 94,200,229,242, 53, 42,149,170, 82,147,197,227,241,194, 67,253,170, 57,203,243,243, 97, 87, 28,137, 82,154,172,200,213,155,241,
-212, 41, 8, 35,170,249,189,108, 6,205,204,204,132,151,151, 23,177, 88, 44,125, 42,210, 60,119,238, 28,122,247,238, 93, 98, 60,
- 65, 8, 1, 33, 36, 55, 56, 56, 56, 75, 36, 18,229, 9, 4, 2,229,138, 21, 43,116, 58,157, 14, 60, 30,207,206, 98,177,112,223,
-164,194,183,144, 16,143,246, 98,242,195,196,190,157,186, 54,170, 23, 66,175,221,125, 64, 10, 52,186,237, 21, 68, 1,191,175, 93,
-187, 54, 47, 63, 63,255, 56,128,167, 38,147,105,207,129, 3, 7,236, 70,143, 30,173, 59,120,240,224, 72, 0,129, 43, 87,174, 28,
-172, 86,171, 55, 87,165, 28,207,159, 63,255,126,201,146, 37, 95,204,157, 59, 23, 59,119,238,156, 2, 96, 86,113,164,171,223,130,
- 5, 11,176, 98,197, 10,236,220,185,211,250,244,233,211, 83, 86,171,245,249,244,233,211, 27,122,122,122,230,102,100,100, 60, 95,
-180,104, 81,121,178, 77,123,246,236,169,191,113,227,134, 80,165, 82, 93, 39,132,124, 58,105,210,164,113, 45, 90,180, 80, 14, 27,
- 54, 76,154,159,159, 47,183,183,183, 23,110,217,178,197,153,199,227,161,176,176, 16,132, 16,168, 84, 42, 3,187, 20, 50, 24,140,
-255, 85,202,243, 34,127, 7, 94, 78,183, 83,214, 61,181,172, 13,212,104, 52, 89,201,201,201, 33,105,105,105,102, 0,102, 0,200,
- 51,152,191, 89,178,229,200,214,129, 45,107, 75, 50, 76, 38, 28,189, 27,173,201, 51,152,191, 41,137, 76,164,165,165,169,146,146,
-146, 28,180, 90,173,186,156,223,250,253,135, 31,126,208, 94,190,124,217, 33, 46, 46, 14, 22,139, 5, 77,154, 52, 65, 76, 76, 12,
- 10,158, 70, 65, 18,210, 4,146, 14,189, 17, 29,113, 23,145,231, 46, 32, 65,109, 48, 63,155,183, 68,161, 46, 44, 92, 96, 48, 24,
-142,150, 37,200,231,243,243,139,182,143, 90, 0, 64,169, 84, 62, 84,171,213,237, 60, 61, 61,241,248,241, 99, 73,161, 5, 83, 7,
-207, 94,181,142, 82,106, 17, 20,245, 20,155, 54,108,216, 48,220,187,119, 15, 0,238,149,165,169, 84, 42,167,140, 31, 63,254,242,
-142, 29, 59,120,113,113,113, 61,182,110,221,218,227,217,179,103,148,228, 39, 91,110,104,248, 8, 28, 51,181,217,198,128,224,115,
-189,123,247,134,183,183, 55,182,108,217,130, 53,107,214,152, 62,250,232,163,216, 53,107,214, 52, 3,176,167,156,131,160, 0,112,
-198,205,205,109,114,253,250,245, 85,133,133,133,200,203,203, 67,122,122, 58, 92, 92, 93, 57,102,112, 90,187, 59, 57,237, 57,158,
-169,146,240,206,220,194,237,212,140, 10,163, 89,173, 4,188,119,135,119,108,220,254,227,185,179,165,184,113, 20,100,252, 2,208,
-173, 95,227,147,247, 6, 59,232,244,123, 58, 52,229,241, 70, 43,204,230, 93, 0, 14, 85,209,145,247,108,215,174,221,190, 37, 75,
-150,136,231, 44, 95,130,149, 33,190, 48,231,229, 33, 71,111, 65,174,222, 12,101,193, 83, 60,126, 28, 13, 87, 87, 55, 36, 36, 36,
- 64,167,211,225,201,147, 39,148,203,229, 30,175, 44,162, 83,234, 55, 74,154, 11,229, 34,145, 40,143,207,231,103,241,120,188,252,
-184,184,184, 66,157, 78, 7, 14,135, 35,177, 88, 44, 98, 27,202, 90,205,205,205,109, 58,128,129, 0,142,169,114,115,215,134,241,
-225, 4, 30, 58,214,244,112,125,103,222,196,209,110,254, 62, 30,242,184,216, 23,166, 31,207,254,150,171,211,227,155, 10, 78,146,
- 19,165, 35,146,132,144, 79, 14, 30, 60, 56, 14,192,182,226,121,183, 46, 0,216,248, 26,231,223,188,195,135, 15,127, 49,119,238,
- 92,136,197,226,151,131,167,138,197, 98, 59, 0,216,187,119, 47, 30, 63,126,220,162, 36, 95, 11,192, 62, 27, 52, 3, 67, 67, 67,
-227,142, 28, 57, 34, 4,224, 51,105,210,164, 86,235,214,173,195,123,239,189,151, 19, 29, 29,221,178, 40, 2, 75, 2, 63,252,240,
-195, 59, 59,119,238,116,182, 90,173, 40, 40, 40,128,193, 96,136,103,151,114, 6,131,193,204,214, 95, 18,205, 10,163,148, 70, 22,
- 15,236, 29, 14,224, 36,165, 52,227, 15, 70,171,100, 3, 1, 64,167,211,125, 31, 16, 16, 32, 3,224, 7,160, 55,128, 99, 15, 45,
- 56,132,103,137,136, 74, 72,157, 93, 98,188, 30, 90, 94,222,196,135,222,185,115,199, 80,189,122,245, 7, 0,190, 46,231, 70,166,
-116,115,115, 91, 60,125,250,244,165,139, 23, 47,230,241,120, 60, 92,190,124, 25, 55,207,158,180, 62,185,126,155, 36,106, 45, 90,
-229,221, 25,105, 60,106,185,229,169,205,127,116, 95,131,195,148,210,212,138, 54,172,176,176, 48,249,249,243,231,194,250,245,235,
- 91,238,223,191,239, 70, 41,253,229,212,169, 83,237,102,206,156,137, 43, 87,174,236, 57,175,179,140,160,212,122,128, 16,194, 3,
- 48,162, 79,159, 62,159, 14, 30, 60, 24,141, 26, 53, 50, 2,216, 89, 78, 57,111, 16, 66, 70,164,164,164,108,250,252,243,207,157,
- 62,255,252,115,112, 56, 28, 82,122, 95,229,230,230,226,193,131, 7, 24, 54,108,152,226,183,223,126,155,218,165, 75,151,177,109,
-219,182,197,233,211,167,125,108, 56, 24,191, 63,121,242,100,128, 76, 38, 35,207,159, 63,135, 82,169,196,141, 27, 55,248, 1, 1,
- 1,173, 15, 28, 56, 32,170, 89,179, 38,162, 31, 61,194,169, 17, 35,194, 9, 33, 1,148,210,164,178,116,196,124, 50,121,204,144,
- 62, 82,253,141,227, 64,228, 53, 0,128, 90,169,130, 54, 33, 10,131,155,215,118,188,242, 36,113, 18,138,122, 97, 86, 9, 23, 23,
-151, 79, 86,174, 92, 41, 9, 10, 10,194,103, 75,150, 99,250,220,153,248,208, 35, 0,202,180,100,228, 90, 0,161,189, 61, 22,207,
-155,139, 62, 67,134,193,195,195, 3,143, 30, 61,162, 91,182,108, 41, 84, 40, 20, 43,108, 49, 90, 92, 46, 23,132, 16, 0, 40, 84,
- 40, 20,106,161, 80,168,224,241,120,121, 22,139, 37,235,196,250,181, 77, 56,121, 89,239, 19, 66,184, 98, 43,231, 68,113,103,139,
- 50,243,243,156, 8, 9,168, 21, 24,248,232,167, 45, 91, 36, 45, 90,180, 32,119,239,222,157, 60,105,194,248,113, 3, 67,107,156,
-234,223,181, 61,188,188,189,244, 86,163, 65,126,234,216, 9,211,198,131,167,174, 26,136,245,243, 8, 74,181, 85,120, 58,217, 87,
-218,244, 16, 66,134, 3, 24, 2,224, 8,165,116, 55, 33,100, 12,128,254, 0, 14,151,151, 32, 79, 8,225, 0,216, 60,104, 80,209,
-100, 2, 90,173, 86, 83,242,126,195,134, 13, 75,255,150,181, 42,199,200,222,222,222,193,206,206,238,197,233,211,167,197,195,134,
- 13,115, 94,186,116,105,218,123,239,189,231,187,103,207,158,239, 1, 36, 16, 66,130, 1,212, 42, 44, 44,180,112, 56, 28, 4, 7,
- 7, 99,195,134, 13,106,139,197,178,141, 93,198, 25, 12,198,223,193,108,253, 13,139, 29, 6, 32, 18, 64,120,113, 7,194, 9, 0,
- 42,158, 84, 26,192,146,168,168,168,146, 49,180, 38, 85, 52,188,195,172, 89,179, 34,238,221,187, 23, 1, 96, 89,101,221, 28,121,
- 60,222, 47, 31,125,244, 17,245,244,244, 84,123,120,120,252,194,231,114,199,249,137, 17,134,215,232,234, 14,160,221,174, 93,187,
-250,125,255,253,247,225, 0, 90, 0,224,251,250,250,166,103,102,102,170,127,251,237, 55,117,155, 54,109,212,110,110,110,217,161,
-161,161,234,149, 43, 87,170, 77, 38,147,122,250,244,233,106,188, 50,222, 87, 57,218,118, 0, 38, 11,133,194, 95,234,214,173, 27,
- 53,175,111,103,211,242,169,227,232,152,218,238,106, 0,223, 3,248, 8,128, 19, 0,254,224,193,131, 47, 62,121,242,228,108,104,
-104,232, 38, 27,116,125,234,215,175,127,105,223,190,125,247,142, 28, 57, 18,241,249,231,159,223,115,117,117, 77,141,141,141,181,
-234,116, 58, 90, 80, 80, 64,229,114, 57, 61,121,242,164,197,197,197,101,125,121, 58,237, 68,220, 12,122,110,119,153, 67, 56,164,
-204, 29, 69,219, 8, 57,105,175,211, 13, 85, 34,145,228,231,229,229,209,204,204, 76, 26, 23, 23, 71, 15, 31, 62, 76,123,182,110,
- 78,247,127, 56,144,238,254,160, 31, 93,209,179, 57,109,225, 96, 87,232,229, 32,189,231,224,224,144,237,228,228,180, 25, 64,237,
-202,134,119,208,235,245, 47,135,111,168, 86,173, 90, 68,112,112,240,145,208,208,208, 85,199,142, 29,251,100,245,234,213,253, 58,
-213, 8,248, 98,105,143,214, 90,205,133,131, 84,117,224,123, 58,171, 73,144, 46,148,139, 33,229, 14, 23,226,234,178,235,234,149,
- 43,214,146, 1, 58,205,102, 51, 61,250,203, 47,116,232, 59,221,162, 20,103,246,254,116,125,193,148,125,211,155, 4, 29,109, 99,
-135,225,120,101,160,210,178,150, 48, 41, 92,219, 59,114, 54,244,242,119,201,104, 39,227,124,223,210, 1,206,165,142,217,208,160,
-160,160, 56, 74,105, 70, 72, 72, 72, 28,128,221, 33, 33, 33,165, 95,191, 95,217,224,164, 11, 23, 46,164, 40,154, 69,129, 3, 96,
-254,146, 37, 75, 34, 40,165, 17,181,107,215,190, 65, 41, 69, 35, 9,220, 58,200, 56, 63,245, 13,244,204,235, 32,227,252,212, 72,
-242,231,209,220, 41,165, 8, 16,160, 78, 59,119,251,235,253,106,123,171, 58,250,202,174,237,222,190,117,121,175, 94,189,182, 0,
- 88, 15,224,107, 87, 87,215,235,195,135, 15,127,188,115,231,206,199, 43, 87,174, 52,198,198,198,210,177, 99,199, 22,138, 68,162,
-175, 89,215,113,182,176,133, 45,108,249,203, 71,134,247,174,202,128,165,125,190,248,226,139, 8, 74,105,201, 88, 90,163,203, 88,
-167,239,220,185,115, 35, 40,165, 37,163,195,119,173,108, 64, 51, 0, 11, 55,108,216, 64, 69, 34,209, 79,111, 58, 72, 26, 0,175,
-254,253,251,183, 84, 42,149,205, 60, 61, 61,155, 21, 71,157,252,220,220,220,226,246,236,217,163,214,106,181,106, 74,169,218,108,
- 54,171,239,221,187,167,238,216,177,163, 26, 69, 67, 64,216, 52, 66,120,233,101,142, 23,110,220,157,247, 1,157,227,133, 27,175,
-124,119,212,182,109,219, 78,199,199,199, 31,119,116,116,156,105,227,192,149,126,238,238,238,243, 93, 92, 92,206,186,185,185,205,
-113,113,113,201, 48, 26,141,180,160,160,128,198,196,196,208, 43, 87,174,208,155, 55,111, 82, 23, 23,151,212,242,202,217, 69,204,
-187, 85,176,124, 50,181,110, 91, 66, 13,235,102, 83, 0, 84,190,122, 22,205,253, 97, 17,189, 59,190, 7,237,104,199,253,253,117,
- 6,157,115,114,114,218,252,203, 47,191, 88,159, 63,127, 78, 79,156, 56, 65, 79,158, 60, 73,167, 78,157, 74,235,248,120,235, 91,
- 10, 57, 89,237, 68,188,179,175, 51, 96,169, 94,175,143, 80, 42,149, 17,106,181, 58,162,110,221,186, 17,205,155, 55, 63,210,178,
-101,203, 85, 7, 15, 30,252,100,233,210,165,253,186, 56,136, 98, 52, 23, 14, 82,250,249, 59,148, 78,110, 75, 95,140,235, 72, 59,
-139,121, 15,202,213,244,244, 76, 45, 25,173,189,176,176,144, 94,187,118,141, 94,186,116,137,122,185,185, 41,219,139,185, 19,218,
-136,208,161,141, 35,156,108, 45,103, 39, 25,103,251,173, 31,190,177,104, 79,239,164,123,199,188, 99,238,232,196,217, 80,106,189,
-253,148,210,140, 65,131, 6, 37, 80, 74, 51, 14, 31, 62,156, 66, 41,205, 24, 56,112, 96, 66,113,104,120, 95, 89,154,175, 12, 78,
-186,173,216,100, 77, 94,184,112, 97, 4,165, 52, 98,225,194,133, 17, 64,209, 32,170, 29,100,156, 29,183, 55,173,176,234, 79,238,
-160, 7,199,134, 91, 58,200, 56, 59,202, 44,167, 19,239,120,228,182,213,212,112,118, 55,253,101,234, 72, 75, 91, 47,199,171, 65,
- 65, 65, 43, 62,249,228,147, 35, 55,111,222,124,104,177, 88, 30,199,197,197, 61, 94,191,126,253,227, 86,173, 90,221,112,117,117,
-141, 18, 10,133, 31,177, 65, 17,153, 38,211,100,154,108,192,210,255,206,194,171,160,233,228, 56, 33, 68, 66, 41,157, 62,120,240,
- 96, 44, 91,182,108,104,131, 6, 13,134,251,250,250,186, 3, 64,122,122,186, 6,128,114,240,224,193,152, 63,127, 62,150, 47, 95,
-190,170, 56,151,229,255, 51,249, 44,147, 16, 82,109,202,148, 41,217, 75,151, 46,181,142, 29, 59, 54,132, 82,250,136, 16, 82,103,
-228,200,145,147,121, 60,222,224,128,128,128,208,140,140,140, 28,173, 86,187, 27,192,166,146, 54,211,170, 34,226,192,210,180,186,
- 55,206,114, 96, 41,213, 52,244,206,252,249,243,135, 13, 28, 56,208,184,122,245,106,179, 82,169, 60,102, 99,185, 83, 0,124, 85,
-242,218,213,213,213,235,193,131, 7, 31,121,120,120,112,226,226,226,160,215,235,241,252,249,115, 43,128, 95,203,211, 80,155,233,
-218,141,135,207, 7, 79, 31,213,219, 81,243,244, 62, 4, 92, 46, 76,124, 33, 50,111,157,197,182,107, 79,149,133, 70,172,123,157,
-237,148,203,229,223, 77,157, 58,117,228,204,153, 51,237, 2, 2, 2,200,239,191,255,142, 3, 7, 14,232,179,179,179,123, 82, 74,
-175,190,238,177,178, 90,173, 16, 10,133, 0,128, 89,179,102,129,195,225,240,179,179,179,133,132, 16, 17, 33,196,158, 16,194, 53,
-197, 63,134, 85, 89,128,172, 2, 57, 82,178,228, 21,234, 89,172,214, 3,183,111,223,158,214,184,113, 99,206,221,187,119,145,147,
-147,131,231,207,159, 83, 11,165,251,174,106,204,155,171, 90, 62,123, 23,215,254,141,156, 69, 28,225,246,249,104,111,224,112,127,
-180, 98, 16,128,201,197, 31,111, 35,132, 8, 0,228,213,173, 91,183,211,147, 39, 79,196,117,235,214,213, 62,125,250,244, 52, 33,
-196, 23,192,142, 50,155,119,197,226, 92, 0,185,135, 15, 31, 6,128,241,148, 82, 43, 33,164,201,130, 5, 11, 50,174, 93,187,134,
-133, 11, 23,102, 1,216, 0, 0, 82,103,215,190,161, 50, 1, 17,254,188, 16,173,244,224,172,179,210, 50, 59, 23, 72, 61, 60, 59,
-215,151,112,192,223,250, 37,154,121, 5,115,132,102, 99,131, 69,139, 22, 93, 83,171,213,250,253,251,247, 27,222,127,255,125,110,
-108,108,236, 29, 0,215,139,155, 53,205,172, 33,130,193, 96, 48,254,242, 28,173, 87,135,117, 40, 59, 71,171, 12, 67,176,151, 16,
-146,187,124,249,242,206, 0, 28, 15, 30, 60,216,180, 78,157, 58, 0,128,152,152, 24,251,224,224,224,103, 13, 27, 54,124, 2,224,
- 22,165,244,184,141,229, 41,185,240, 91,223,210,246, 69,207,156, 57,147,236,220,185,211, 12, 20,153,160,226,155,203, 90, 0,107,
- 43,202,243,121, 83,130,130,130,186,125,249,229,151,134,173, 91,183, 90,190,254,250,235, 99,148,210,216,215,209,201,207,207, 95,
- 57,122,244,232,145, 11, 22, 44,144, 57, 56, 56,144,168,168, 40,235,182,109,219,148,249,249,249, 43,203,251,206,109,131,121,127,
- 7, 17,111,160,188,240, 96,183,161, 97,213, 29,158, 76, 9, 71,204,237,235,216,125,245,177, 42, 54, 95,123,238,174,217,124,224,
- 53,205,235,115, 66, 72,163,249,243,231,207, 50, 26,141, 3,249,124,254, 29,165, 82,185,136, 82,250,251,235,238, 39,147,201,148,
- 85,179,102,205, 87,127,199,100,181, 90, 41,165,148,111, 54,155, 37, 46, 70,235,201, 5,107,182,126,248,126,176, 76,148,155, 43,
-199,207,177, 74,125,169,206, 22,127, 34, 39, 39,103,213,184,113,227,222, 91,176, 96,129,179,163,163, 35,137,142,142,166,251,247,
-239, 87,231,228,229, 45,123,157, 50,106, 10,242,207,157, 56,116,112,112, 91,131,153,236, 74, 80, 81, 30,151,156, 46, 85,214,243,
- 0,206, 23,159, 76,163, 8, 33,131, 0, 28,165,148,254, 92,161,166, 70,115, 14,128,112,208,160, 65,136,138,138, 26, 10, 96, 47,
-128,125, 95,125,245, 85,203,249,243,231, 99,209,162, 69, 88,176, 96, 65, 55, 0,103, 85, 5,121, 39,143,236,219, 61,162,163,201,
-196,217,149,168,178,114, 57,228, 84,153,154,185, 89,231, 79,159,191,208,183,153,163, 15,217,124,246,186, 85, 99,165,247,199,140,
- 25, 83, 96, 48, 24,206, 2, 88, 7, 32,138, 82,202,122, 23, 50, 24, 12,198,255,111,224,103,115, 25,198,107,115,165, 70,171,248,
-203, 23, 0, 92, 32,132,120,181,105,211,102,137, 76, 38,147, 88, 44, 22,228,231,231,167, 1, 88, 83, 28,157,169, 10,251, 21, 10,
-197,231, 34,145,232,199,183,180,113, 58, 66,136, 71,221,186,117,249, 0,244,101,124,254,118, 76, 22,197,225,231,177,207, 29, 65,
-113,184,228,173,216,216,216,125,161,161,161,253,158, 62,125,250, 27,165,244,212, 27,108, 67, 18, 33,164,241,212,169, 83, 63, 3,
-208, 15,192,175,249,249,249, 43,203, 75,132, 47,225,170,222, 60,184, 25,143, 55,242,126, 98,230, 71, 6, 43,173, 33,228,112,226,
- 11,141,244,135, 59,102,243,222, 55,220,167,207, 1,140, 45, 94,222,152,220,220,220, 74, 7,249, 36,132,144,171, 47,210,111, 61,
- 78,201, 46,171,179, 69, 89,101,204, 32,132, 52,154, 62,125,250,116,171,213, 58,132,195,225,252,146,155,155, 91,233, 62, 43, 55,
-146,103,176, 76,251,241,242, 93,193, 26,139,181,171,136,195, 57,171, 54, 89,102,151,243,187,187, 1,216, 52, 58,252,139, 23, 47,
-126, 90,180,104, 81,253, 5, 11, 22, 96,227,198,141, 37,221, 46, 47, 44, 88,176, 32,219, 98,177,248, 45, 90,180, 8,155, 54,109,
- 50, 3,128,222,100,157,177,245,218,125,206,143, 86,235, 59,124, 14,231,180,222,100,157, 81,166, 41,215,153, 39,175, 59,114,198,
-104,180, 90,187,113, 65, 78,103, 24,172,243,244,122,154,200, 46,115, 12, 6,131,241,191, 9,207,214, 21, 41,165,153,111,227,198,
- 75, 41,141, 3,224, 56,103,206,156,183,233, 36,179,255,234, 29,245,101, 58,253, 30,192,247, 95,126,187,191,244,239,222, 1, 42,
- 31, 84,212, 86,179, 5,224,227,226,197,102,238,154,205,123, 80,206,144, 18,127,179,167, 1, 10,224, 96,241, 98,235,119, 82, 81,
- 52,151,229,180, 55,253,253,251, 26,154,129,162, 94,132,111,115,155, 34, 81,212, 11, 5,105,105,105,165,183,243, 97,241,130,146,
- 49,229,110, 23,210,108, 0, 35,109, 44,231, 80,118,233, 98, 48, 24,140,255, 29,202,106, 58,172,178,209, 98, 48, 24, 12, 6,131,
-193, 96,148,249, 96, 93,110,110, 48, 1,208,181,156, 47,217,156,216, 78, 8,233,250, 26,133,186,192, 52,153, 38,211,100,154, 76,
-147,105, 50,205,127,151,102,101,218,255,223, 29,235,254, 63, 92,216, 95, 57,174, 4,235,250,202, 52,153, 38,211,100,154, 76,147,
-105, 50,205,127,237,194, 97, 1, 63, 6,131,193, 96, 48, 24,140,215,135, 16, 18, 86,252,215,155, 16, 50,161,120, 42, 30, 0,229,
-228,104,241, 91, 44,201, 50,155,205, 30, 0,192,227,241,178, 77,119,230,121, 87,244, 3,124,160,139, 25,248,169, 88,112,188,169,
-168, 59,252,171,154,231,205,102,179,115,177,102,129,233,206,188, 30, 21,106, 54, 95,124,246, 15,235,223,158,219,173,140, 45,227,
-242,155, 47, 78,127,165,172, 62, 54,239,153,226, 57, 18,255,234,114,254, 93, 52,255,205, 8, 90, 46,201, 50,153,138,234, 17,159,
-207,203, 54,222,174,184, 30, 9, 90, 44, 78,255,195,250,183,230,122, 86,164,105, 47, 22,229,213,242,117, 95, 85,145,102, 92,122,
-238,244, 66,141,206,181, 34,205,170,158,155,126,222,222, 93, 44,197,231, 38, 23, 24,159,146,158,126,254,127,169, 46, 17, 66,154,
- 2,152, 7,192,177,212,219, 81,148,210, 79, 89,173,100, 48, 24,127, 35,202,157,130,167, 76,163,101, 54,155, 61, 34,126, 89,128,
- 66, 61,208,229,221,197, 30,129,253, 55,253,169, 87,155, 89, 87, 32,148, 71,239, 15,229,154,148,206,238, 60,163, 99,122,122, 58,
- 41,190,112,254, 4,192,191, 12, 77,231,136, 95, 22, 64, 99, 0,218, 15, 95,228,236, 15, 56,230, 8, 4,159,137, 37,146, 78, 90,
-173,182, 62, 0,136,197,226,104,109, 97,225,101,119,163,113,229,171,235,151,183,101,165,203,218,121,244, 98,143,144,254,155,166,
- 90,172, 86, 97,218,221, 31,219,235,114, 99,121,124,179,126,195, 28,224,244, 2,192, 98,203,158,250,195,239, 14,153,237,202, 7,
- 58, 11,237,236, 26, 57, 57, 59,183,179, 82, 90,215,106,181, 18,139,217,252, 88,169, 80, 92,183,154,205, 15,204,134, 66,215,136,
- 99,223, 88, 43, 42,231,171,219, 50, 4,224,253, 2, 12,150, 72,165,157,184,124,126,107, 0,176,152, 76,191, 23,170,213,151, 7,
- 0,135,108,217,118, 91,247,207,235,174,255,111,195,100, 50,123,196,159, 93, 0,189, 9, 8, 27,244,141, 71,195,145, 63,239, 1,
- 0, 67,246, 3, 79,117,236,177, 22, 0, 32,169,213,251,182,200, 43, 44, 11, 0,120, 73, 25, 30, 49, 39,230, 66,111, 2,234,246,
- 94,228, 81,153,230,251,243, 15,184,206,156, 48, 80, 4, 0,231, 14,127, 95,231,210,145,141,239, 0, 64,231,129,147, 78,119, 31,
- 52, 37, 6, 0,150,111, 62,226,186,239,155,161, 21,106,218,118,110, 42, 4,138,216, 19,181, 13,202, 12, 39, 63, 9,207, 43, 54,
- 54,150, 3, 0, 62, 62, 62, 54,157,155,213, 0, 89, 6, 48,153,195,229,182,171, 85,187,118, 24, 0, 26,247,226, 69,164,197,108,
-190,225, 13,108,120,203,117,105, 42,165,127, 28,156,181,120, 46, 76, 6,131,193,248, 59,113,178,216, 92,157,124,245,131,114,123,
- 29, 22,234,129,171,207,129, 14, 45, 27, 98,194,200, 94,210,210,159, 29,218,180,200, 63,246,238,175, 33, 91,127, 94,201,105,216,
-176, 33,226,227,227,109, 42,133,198, 0, 92,137, 5, 32,127,226, 80, 32,145,188, 88,189, 98,133, 99,183,110,221,120, 62, 62, 62,
- 32,132, 32, 51, 51,179,229,133, 11, 23,154, 78,155, 54,237, 67,200,159, 20,104, 12, 80, 93,177, 97, 8,208,146,178,214,175, 83,
- 29,243,166, 12,149, 1,192,156,119, 55, 52,189,251, 44,203,229,197,139, 23, 93,190,248,226,139, 60,238,229,203, 27,221,128,237,
- 89, 64,138, 45,229,220,121,252,182,157, 44, 99,111,224,168, 41, 83, 14,215,174, 93, 91, 26, 16, 16, 64, 28, 28, 28,192,229,114,
- 81, 80, 80,224,255,232,209,163,119,238,220,185, 83,120,225,234, 79,194,123,119,250,198,101,219,181,208,217,180,237,218,116,187,
-115, 14, 14,209,163, 7, 12,168, 54,116,232, 80,187, 90,181,106, 1, 0, 94,188,120, 17,116,232,208,161,225,135, 15, 31,158, 15,
-109,186, 89, 99,128,174,178,109,127,169, 9,192, 14,104,237,228,225, 49,138,203,231,215, 55,155,205,190,197,209,134, 52,139,201,
- 20, 45,207,206,222,253,234,250,140, 63,163, 55, 1, 79, 50,128,174,237,194, 48,122, 96, 87, 9, 0,124, 49,108, 73,203,164,132,
-231, 2,131,193,128, 58,193,117,219,124,253,205,170,179,224,112,176,235,200,133,151,235,219,162, 25,245, 36, 30, 11,190, 94,141,
-244,135,135, 90, 90, 20,207, 59,169,148, 10, 46, 0, 56,202,100, 3, 15,237,223,123,217, 39,116,240,173,231,185, 70,155, 52, 43,
- 58, 55,207,236, 95,239,157,250,232,114,189, 31,206,109,227,251,251,251,227,225,195,135, 85, 59, 55, 21,207, 28,172,222,222,143,
- 87,126,254,185, 87,251,246,237, 33,149, 74,193,227,241, 96, 54,155,187,222,184,113,163,235,130, 5, 11, 38, 65,241,172,208,214,
-115,211, 6, 86, 18, 66, 58,189, 63, 97,170,119,175,126,131, 49,176,103, 27, 86, 17, 25, 12,198,223, 10, 66,200,132,226, 94,135,
- 47,123, 30,150,238,133, 88,166,209,226,241,120,217,221,198, 44,245,104,215,162, 1,238, 62,136, 81, 36, 38,103,168, 75, 62,203,
-143, 62, 84,167, 95, 27,223,122,215,174, 93,133, 94,175,199,239,191,255,142, 7, 15, 30, 32, 33, 33, 1, 19, 39, 78,212,243,128,
-241,229,104, 22,180, 31,190,200, 25,138, 88,105,144,240, 89,141, 11, 79,159,114,117, 58, 29,174, 93,187,134,130,130, 2, 8,133,
- 66, 84,171, 86, 13,221,187,119,231, 61,125,250,212,165, 75,183,158,178,246, 61, 71,196, 67, 22,164,230,241,120, 5,229,109, 32,
-143,199,203,238,242,238, 98,143,122, 65,213,241, 34, 49, 93, 49,239,155,173,106,171,149,242,226, 18,146,140, 87,175, 94, 69, 88,
- 88, 24,206,159, 63,239,154,159,159,255,229,134, 13, 27,230,241,191,253, 97,173,201,144, 55,163, 2,189,130,246,195, 23, 57,187,
-102, 31, 12,184,116,230,168, 32, 58, 58, 90,240,227,143, 63, 34, 47, 47, 15, 66,161, 16, 78, 78, 78,240,242,242, 66,157, 58,117,
-200,156, 57,115,164,189,123, 71,227,227,241,131, 3,140,129,227,158,149, 87,206,151,219,174, 78,178,119, 83,158,171,117,228,228,
- 73, 78,219,182,109,255,240,216, 94,179,102, 77,244,232,209,195,110,212,168, 81,181,134, 14, 31,105,109, 31,254,254, 11, 72, 3,
- 52,149,106, 22,166,136, 93, 53, 55,125,186, 14, 31,126,108,209,162, 69, 78, 94, 94, 94,144, 72, 36, 0, 0,133, 66, 81, 45, 49,
- 49,177,229,252,249,243, 7,221,142,218,207,107,223, 59, 37, 29, 18, 63,109, 69,251,243,223, 10,159,207,203, 46,137, 34, 57, 72,
-196, 5, 41,169, 89,133, 0, 96, 48, 24, 96, 48, 24,160,215,235,241,209,164,137,220,241,131,154,215, 14,104, 55,245,126, 66, 90,
- 86,126,221, 11,183, 92, 74,190, 91,153, 38, 79,147, 32,151, 39, 95, 28,191,224,243,207,189, 60, 61,255,211, 34,184,107,231, 78,
-110,126,126,126,215, 5, 11, 22,212,163,246, 29,229,117,123, 47,114,170, 72,179,162,115, 83, 30,115,178,198,215, 83,122, 52,218,
-244,205, 9, 88, 44, 22,220,188,121, 19,215,174, 93,195,170, 85,171,232,233,211,167, 21,142, 18, 73, 37,231,230, 51,135,182,222,
-153,129,223,126,123,152,136, 68, 34,252,250,235,175,120,250,244, 41, 56, 28, 14, 26, 54,108,136,209,163, 71,163,107,215,174, 94,
- 19, 38, 76,164,237,123, 14,139,131, 44, 88,245, 38,117,137, 16,194, 1, 48,117,246,130,111,189,223, 29, 55, 25,203,191,158,195,
-140, 22,131,193,248,219, 70,179,202, 29,226,129, 82,138, 19, 39, 78,208,226,165, 3,165, 20, 20,224,212,236,191,105,223,193,123,
-214,147, 53,251,111,218, 71, 1, 14, 5, 56,142, 64,245,198,141, 27,155,228,114, 57,189,115,231, 14,253,232,163,143, 10,215,174,
- 93,123,249,228,201,147,135,204, 70,227, 22, 31,111,239,239, 40,192, 41, 51,243, 30,224, 4, 0, 50,123,123,251,156,228,228,100,
-122,234,212, 41,186,112,225, 66,186,123,247,110,122,250,244,105,122,225,194, 5,122,250,244,105,186,111,223, 62, 26, 21, 21, 69,
- 99, 98, 98,168, 68, 34,201, 9, 0,100, 21,104,114, 41,192,173,211,255,199, 25,135,239,154, 22, 5,247,223, 52,141, 2, 92,103,
- 32,164,113,227,198,150, 67,135, 14,209, 93,187,118,209,159,127,254,153, 70, 69, 69,209,220,220, 92,202, 19, 73,114, 74,190, 87,
- 94, 57, 41,192,241,245,245,205,145,203,229,212,207,207,143, 10,133, 66,234,233,233, 73,235,212,169, 67, 91,182,108, 73,223,121,
-231, 29, 58,114,228, 72,250,229,151, 95, 82,185, 92, 78,237,236,236,178, 74,190, 87,158,102, 24, 32,150, 72, 36,201, 17, 17, 17,
-180, 60,180, 90, 45,205,205,205,165,103,207,158,165, 18,137, 36, 57, 12, 16, 87,164, 41, 6,154,132,134,134,230,228,230,230, 82,
-163,209, 72,147,147,147,233,163, 71,143,232,211,167, 79,105,114,114, 50,213,106,181, 47,181, 99, 98, 98,104, 96, 96, 96,142, 24,
-104, 82,174,230,191,121, 41,169, 19,175, 44,254,158,158,239,120,121,121,105, 15, 31, 62, 76,211,210,210,232,142, 29, 59, 40, 7,
- 88,242,167,117, 43,208, 20, 2,221,219,182,109,107,185,121,243, 38,189,127,255, 62,157, 53,107, 22,237,209,163, 7,237,217,179,
- 39, 93,176, 96, 1, 77, 77, 77,165,169,169,169,244,157,119,222,177, 8,129,238,149,213,207,178,206, 77, 25,224,223,187,119,111,
-173,209,104,164,113,113,113,180,126,253,250,169, 92, 96,148, 4,168,215, 1, 16, 85, 86, 63,125, 1,103,111,111,239,140,155, 55,
-111,210, 35, 71,142,208,128,128,128, 28, 46,240,190, 35, 80,211, 17,168,201, 5,222,175, 89,179,102,206,205,155, 55,105, 94, 94,
- 30,245,247,247,207,240, 5,156, 95,183, 46,161,104,130,237,109,179, 23,124, 75,159,165, 22,210,217, 11,190,165, 0,146,139, 7,
-116, 61,207,234, 36, 91,216,242,239, 91,254,228, 69,254,105,189, 14,195,195,195, 9,128, 43, 21, 89, 54, 45,151,187,116,249,242,
-229, 60,157, 78,135,173, 91,183,170,134, 12, 26,116,176, 67,187,118,113, 53, 2, 2,228,132,195,169,116,238,194, 28,145,232,147,
-229,203,151, 59, 25, 12, 6,220,187,119, 15, 77,155, 54,133,151,151, 23,164, 82, 41,164, 82, 41, 60, 60, 60, 16, 28, 28,140,236,
-236,108, 56, 56, 56, 96,230,204,153,178, 28,145,232,147,202,116,173, 86,202, 3, 0,139,213, 42, 20, 0, 19, 2,155, 53,187, 55,
-127,254,124,142,171,171, 43, 92, 92, 92, 32,149, 74,241,244,233, 83, 24, 12, 6,216,139,237,109, 26,164,149,195,225,112,164, 82,
- 41, 46, 93,186,132,169, 83,167,162,117,235,214,112,114,114,130,131,131, 3,234,215,175,143,238,221,187, 99,252,248,241,136,139,
-139, 3,177, 33,169,228, 49,143, 55,121,252,248,241, 30, 97, 97, 97,101,126,174,211,233, 32,151,203,145,147,147,131,106,213,170,
- 97,240,224,193, 30,143,121,188,201,229,233,185, 2, 94,213,130,130,142,221,185,115,199, 77, 34,145, 96,215,174, 93, 56,122,244,
- 40,206,156, 57,131, 83,167, 78,225,196,137, 19,248,245,215, 95,145,147,147, 3, 0, 8, 10, 10,194,129, 3, 7,220,164, 30, 30,
- 39, 92, 1, 47,246, 0, 98, 27, 73, 89, 89,231,234,103,102,186,141, 26, 57,242,186, 90,173,198,168, 81,163,176,116,217,178, 57,
-124, 27, 71,163, 15, 6,100, 46,222,222,219,191,253,246, 91, 78,102,102, 38, 6, 12, 24,144,187,114,217,178, 15, 34,207,158,173,
- 21,113,230, 76,173,165,139, 22,125,208,161, 67,135,220,212,212, 84,236,220,185,147,227,233,239,191, 61, 24,144, 85,181,156, 42,
- 96,234,154, 53,107,236,116, 58, 29,186,117,235, 22,103,141,142, 14, 54, 3,123,213,192,211, 43,128,177,178,239,103, 0,147,103,
-206,156,233, 37, 18,137,240,217,103,159,229,106,146,146, 26,152,129,159, 21, 64,162, 2, 72, 52, 3, 63,171,226,227, 27,188,251,
-238,187,185, 34,145, 8,171, 87,175,246,202,248,207,164,219,182, 70,176,154, 18, 66,142, 17, 66,174, 2, 72,127,127,194,212,247,
-195,154,183,194,206, 45, 27,240,205,162, 47,182, 3, 24, 66, 8,217, 13, 96, 6,171,121, 12,198,191, 19, 91,188,200,255,106,243,
- 97,185, 45,101, 47,227, 94, 39, 79, 82, 0, 29, 43, 18,114,118,117,109,218,160, 65, 3, 92,187,118, 13,161,161,161,119,156,156,
-156,204, 2,145, 8,124, 62, 31,212, 90,249, 28,209, 98,137,164, 75,215,174, 93,121,183,110,221, 66, 96, 96, 32,196, 98, 49,248,
-124,254, 31, 22,129, 64, 0,111,111,111, 40,149, 74,116,233,210,133,191,110,221,186, 46,208,235,191,174,244,134, 24,251, 72,154,
-115,235,219,145, 63,237,216, 94,179,125,251,246, 80, 40,148,176, 90,173,176,183,183,135,193, 96, 0,143,199, 43,106, 2, 50, 81,
-165, 45, 59,205, 98,177, 88,184, 92, 46, 2, 3, 3,177,116,233, 82,232,116, 58, 8, 4, 2, 0,128, 82,169,132, 92, 46,199,163,
- 71,143,144,152,152,104,211,124,138, 14, 50, 89,175,161, 67,135, 10,203,250, 76,175,215, 67,161, 80, 64,161, 80, 64, 46,151, 67,
-167,211,161, 85,171, 86,194,147, 39, 78,244, 66, 94, 94,153, 19, 75,235,237,236, 6,237,220,185,211, 67, 40, 20, 66,171,213, 66,
-165, 82, 33, 37, 37, 5, 73, 73, 73,186,236,236,108,179,131,131, 3, 39, 32, 32,128, 35, 18,137, 68,253,251,247, 39, 74,165, 18,
-132, 16,244,238,221,219,117,207,174, 93, 67, 1,172, 98,167,180,109,156, 3,244, 77, 12,134, 62, 45,154, 55,191,116,231,238,221,
-176, 79, 62,249, 4, 81, 81, 81,223,218,239,223,127, 85, 3, 60,168,232,187,113,192,228,239, 74, 25, 24,154,148, 20,106, 4,114,
- 74,173,146, 24, 16, 31,127,230,221,119,223,125, 24, 21, 21,229,182,122,245,106,175, 33, 3, 6, 76, 6,176,164, 42,101,116,144,
-201,154,121,123,123,227,244,233,211, 72, 78, 72,248,194, 12,104,171,242,125, 14,151,219,182,125,251,246,248,245,215, 95,145,154,
-148,244,133,249,143,101, 44,122, 80, 2,114,120,113,113, 95,108,223,190,125,219,216,177, 99,193,229,241,218,194,108,174,202,207,
-252, 41,241,125,236,196, 79,176,125,243,186,237, 0,198, 81, 74,173,120, 75, 83, 90, 49, 24,140,191,105, 27,156, 13, 94,228,239,
- 98,182, 74,154, 18,171, 20,209,242,240,240,240,149, 74,165, 72, 79, 79, 71,221,144,144,108,145, 72, 4, 33,159, 15, 59,161,208,
-166, 66,104, 52,154, 80, 31, 31, 31, 40, 20, 10,184,185,185, 65, 32, 16,188, 92,132, 66,225,203,255, 29, 28, 28,192,225,112,224,
-239,239, 15,141, 70, 19, 90,169,110,214, 35,143,253,235, 38,125,116,243,234,233,154, 3, 6, 12,132,179,179, 11,252,252,170,193,
-195,195, 3, 98,177, 24,126,126,126,168, 85,171, 22, 93,185,114, 37,236, 61, 26,218,116, 33, 47,109,158,120, 60, 30, 44, 22, 11,
-178,178,178,240,236,217, 51, 68, 69, 69,225,230,205,155,184,127,255, 62, 84, 42, 21,108,153,183, 90,163,213, 54,226,241,120,101,
-154, 44,185, 92, 14,185, 92,254,210,104,229,228,228, 32, 49, 49, 17,234,194,194,198, 21,152,222,129, 13, 26, 52,224, 2,128, 88,
- 44, 70,227,198,141,177,105,211, 38,243,241,163, 71,135,213,187,121,211,197,239,236, 89,167,159,126,252,113,216,224,193,131, 45,
-183,110,221,130, 82,169,196,147, 39, 79,224,238,238,206, 19,218,217,177,185,242,170, 72, 4, 80,232,166, 82,245,108,221,186,117,
-188, 66,161,192,138, 21, 43, 56,124, 7,135,205,139, 0,110,133, 95,228,114,219,180,111,223, 30,199,142, 29, 67,122, 82,210,172,
-164, 50, 12, 76, 18,144,147, 28, 23, 55,107,251,246,237,232,222,189, 59, 8,143, 87,229, 68,165,150, 45, 91, 54,176, 90,173,120,
-248,240, 33,156,128,219, 85,253,126,173,218,181,195, 74, 34,191, 18,224,122,121,235, 73,128,235,145,145,145, 16,139,197,168, 91,
-175, 94,147, 42,254,204, 74, 66, 72,198,216,137,159,224,200,153,223, 0, 0,219, 55,175,203, 42,101,178, 24, 12, 6,139,104,253,
- 45, 35, 90, 37,198,170,244,242,242, 65,182,138, 34, 0, 0, 62,159, 15,161, 72, 4,161, 80, 88,100,144, 68,162,170, 56, 62,216,
-217,217,189, 52, 86,165, 13, 86,233,255,237,237,237,109, 50, 48, 0, 80,240,252, 76,187,113, 31,140, 21,138, 68, 34, 24, 12,122,
- 80, 74, 33, 18,217,193,201,201, 9,129,129,129, 80, 42,149,104,221,166,131, 62, 69, 46, 56,225, 90,183,127,212,235,236, 64,179,
-217,140,194,194, 66, 20, 20, 20, 32, 63, 63, 31, 74,165, 18, 90,173,214,230,174,232, 86,171,149,155,146,146,130,189,123,247, 34,
- 47, 47, 15, 64, 81,162,117,137,185, 42,249, 27, 31, 31,143, 93,187,118, 33, 33, 33,161, 74,199,167, 93,187,118, 56,113,226, 4,
-183, 99,151, 46, 91,206, 7, 4,164,159, 15, 8, 72,239,216,165,203,150, 99,199,142,113,125,125,125,145,152,152,136,123,247,238,
-161,160,160, 0,148, 82,214,127,254, 53,120, 1, 20,104,242,243,199,206,153, 51,135, 74,165, 82,172,248,238,187, 70, 75,128, 17,
-182, 26, 24, 89, 5, 6, 70,246,102, 6, 6,148, 82, 88,173, 86, 88, 44,150,215,218, 54, 66, 8,225,243,249, 85, 29, 90,129, 84,
- 65,255,101,226,251,204, 47,151,226,212,175,135, 74, 62,138,101, 38,139,193, 96,252,221,169,104,174, 67, 94, 41, 7,249,242,111,
-121,100,101,101,165, 21, 22, 22,214, 12, 8, 8, 64,106,106,170,135,191,191,127,146,144,207,135, 64, 40, 4,225, 84,238, 9,236,
-237,237, 31,166,167,167,183,241,245,245,133,217,108,126,105,170, 94,109, 58, 44,137,210,220,191,127, 31,246,246,246, 15,161,171,
-112,228, 4, 88, 12, 5,213,155, 52,105,242, 50, 50,228,228,228, 4, 39, 39, 25, 68, 34, 59,204,157, 59,215,186,122,229,202, 13,
-254,157, 23, 41,222,155, 54,135,206, 89,178,229,173,238, 92, 91,111, 76,246,246,246, 15,253,252,252, 90,201,100, 50, 28, 57,114,
- 4,137,137,137, 40, 40, 40,128, 70,163,129, 94,175,135, 70,163,129,193, 96,128,157,157, 29,234,213,171, 7, 71, 71, 71, 92,184,
-112,225, 33,244,250,178,205,101, 94,222,145,135, 15, 31,182,106,222,188,249,203,136, 74,167, 78,157, 72,167, 78,157,220, 94, 70,
-209, 52, 26,228,230,230,226,206,157, 59,184,112,225, 2, 8, 33,136,141,141,181,232,181,218,125,236,180,120, 61,116,192,239,220,
-237,219,183,125,248,225,135, 31,180,105,211, 6, 22,224, 29, 0,187,254, 91, 6,166,132,155, 55,111, 62,178, 88, 44,109,234,212,
-169, 3, 57,208, 2,192,175, 85, 50,145,207,159, 71,154,205,230, 46,141, 26, 53,194,145,131, 7,219, 1, 72, 44,107,189, 66,160,
- 93, 88, 88, 24,180, 90, 45,158, 60,126, 28, 81, 5,147,181,101,246,130,111,223,127,119,220,100,236,220,178, 1,219, 55,175, 75,
-217,182,105,173, 31,108,200, 31, 99, 48, 24,255,170,104, 86,165, 94,228,127,145,178,114,180, 74,204, 23,175, 42, 66,138,130,130,
-136,200,200,200,154, 77,154, 52,193,150, 45, 91,154,183,110,213, 42, 77, 32, 20,154,133, 2, 1, 56, 54,220, 72,180,133,133, 23,
- 47, 94,188,216,162,127,255,254,188, 91,183,110,193,203,203,235,165,209, 42,249,203,227,241, 64, 41,133,189,189, 61,126,249,229,
- 23,163,182,176,240, 98,165,209, 34,139,213,194, 41, 54,122,148, 82,200,229,114, 8, 4, 2,172, 90,181, 26,235, 87,174, 28,105,
- 1, 14, 5, 73,220, 63, 7, 96,247, 95,187, 65,107, 52,151, 78,157, 58,213,116,254,252,249,252,106,213,170, 65, 46,151,163,160,
-160, 0,121,121,121, 80, 42,149, 80, 42,149, 40, 40, 40,128, 92, 46,135,157,157, 29,162,162,162, 76, 58,141,230, 82,121,122, 34,
-157,238,240,152, 49, 99,102, 70, 70, 70,122,243,120, 60,152, 76, 38, 88,173, 86, 88,173, 86, 24,141, 70, 60,127,254, 28,209,209,
-209,120,250,244, 41,242,243,243,193,231,243,193,229,114,113,255,254,253, 2,137,201,116,144,157,210,175, 15, 31, 56,114,227,198,
-141, 15, 70,143, 30, 13,159,106,213, 58, 32, 53,213, 38, 3,115,180, 2, 3,163,120, 13, 3,243, 7, 3,164, 82,221,141,143,143,
-111,211,177, 99, 71,120, 87,171,246,109,189,212,212,243,143,171,144,167,101, 49,155,175,223,184,113,163,203,187,239,190,139, 45,
- 91,182,124,235, 30, 31,127, 38,231,149,102, 78,119,192,189, 70,173, 90,223,190,255,254,251, 56,119,238, 28, 44,102,243,245, 10,
- 46, 58,165, 71,124,175,254,254,132,169,126,175, 36,190,111, 34,132, 76, 1,176,130,213, 40, 6,131,241, 79,142,104, 85,169,233,
- 80,108,177,204,158, 49, 99,134,137,195,225, 96,224,192,129, 14,191, 30, 59, 54,248,254,131, 7,129,217,217,217, 78, 22,139,165,
- 82, 45,119,189,126,237,140, 25, 51,228, 6,131, 1,193,193,193,200,207,207,135,197, 98, 1,143,199, 3,143,199, 3, 33, 4, 28,
- 14, 7, 82,169, 20,145,145,145,216,182,109,155,210, 93,175, 95, 91,233, 77,194, 98,121,184,107,215, 46,112,185, 92,106,103,103,
- 7, 66, 8,120, 60, 30, 86,175, 94,157,189, 30, 56, 2, 0, 92, 14,199, 0, 0, 28, 14,177, 53,123,183,210,118, 75,161, 80, 8,
-107, 81, 39,128, 74,215,117,214,235,215, 44, 95,190, 92,245,228,201, 19, 20, 22, 22,190,140,190,169,213,234,151,201,245,114,185,
- 28,132, 16, 20, 22, 22,226,216,177, 99, 42,103,189,126, 77,121,122,121, 64,102,106,108,108,223,230,205,155,231,197,199,199, 67,
-161, 80,224,225,195,135,184,112,225, 2, 14, 28, 56,128,115,231,206,225,249,243,231, 48,155,205,240,245,245, 5,165, 20, 71,143,
- 30, 85,152, 85,170,119,242,128, 76,118, 90,148, 79,117, 47,175, 46,158, 30, 30,201,238,110,110,169,213,189,188,186,188,250,185,
- 12,136,137,137,137,129,217,108, 70, 96, 96,160, 75, 69,121, 90,212,108,190,113,227,198, 13,188,251,238,187,240,171, 89,115, 89,
- 0,224,254,234, 58, 1,128,123, 64,173, 90,203, 74, 12, 12, 53,155,111, 84,181,204, 14,192,186,207, 63,255, 92, 43, 16, 8,176,
-127,255,254, 64, 83,237,218, 79,121,192, 8, 41, 16,210, 17, 16, 84,246,125,111, 96,195,151, 95,126,153, 73, 8,193,238,221,187,
-221,100,181,106, 61,226, 1, 99,100, 64,117, 25, 80,157, 7,140,145,213,170,245,104,255,254,253,110,102,179, 25,211,166, 77,203,
-244, 6, 54, 84, 32, 57,149, 82,218,135, 82,218,158, 82,234,183,109,211, 90,156,250,245, 80,137,201, 26, 71, 41,189, 67, 41, 29,
- 77, 41,125,196,106, 28,131,193,248, 39, 67,202,202,131,226,183, 88,146, 5, 80,143, 14, 45, 27,226,238,131,103, 10, 55,103,199,
-179, 37,159,229, 71, 31,170,211, 57,212,177,225, 15, 63,252, 0, 62,159,143,148,148, 20, 60,126,252, 24,142,142,142, 24, 57,114,
-164, 94,171, 82,245, 45,153,235,144, 16,210,149, 82,122,161, 88,179,104, 62, 53, 69,172,180, 22, 47,170,230,153, 83, 39,184, 50,
-153, 12,106,181, 26, 28, 14, 7,118,118,118,176,183,183,135, 88, 44,198,189,123,247, 16,222,167,159, 37,199,190,253,203, 1, 75,
- 75,230, 83, 43,173, 9, 66,184, 0,208, 2,176,143, 4, 62,243,240,241,153, 49,111,222, 60,113,143, 30, 61, 32, 16, 8, 80,173,
-122, 80,102, 96,207, 21,235, 56, 28, 98, 78,205, 83,206,173, 85,221, 71,246, 56, 54, 17, 0, 41,154, 19,177,120,174,195,178,202,
-233,111,184, 26,248,203,207, 43, 29, 27, 55, 46,202, 71,151,203,229,200,202,202, 66,118,118, 54,228,114, 57, 10, 11, 11, 1, 0,
- 39, 78,156,192,169,107, 79,149,218,106,131,227,202, 43,231,127,182,253,153,131,143,241,118,141, 61,187,126,230,186,187,187, 35,
- 43, 43, 11, 57, 57, 57,144,203,229,208,106,181,176, 88, 44,200,207,207,199,214,237, 63, 91,242,164,237, 19, 74, 6,132,172, 80,
-179, 48, 69,236,162,254,205, 55,172, 94, 0,253,224,131, 15, 28, 28, 29, 29, 97,181, 90, 81, 80, 80,128,228,228,100,196,199,199,
-227,218,181,107,133,217,114, 3, 10,221,186,165,150, 12, 88, 90,230,254,124,123, 33,212,191,159,102,113, 93, 2, 0, 31,111,239,
-244,164,164, 36, 15,139,197, 2, 95, 95, 95,179, 60, 63,127,153, 16, 56,231, 0,100, 0,160,185,192,188, 53,235,214,141,237,215,
-175, 31,154, 53,107,150,146,153,149, 85,163,172,186, 4, 66,184,193,128, 76, 83,173, 90,244,157, 59,119,188,146,147,147,241,238,
-187,239,230, 38,189,120, 49, 75, 86,156,175,165, 0,218, 5,212,170,181,108,255,254,253,110, 53,107,214, 68,104,104,104,166, 93,
-114,114,253,103,128,162,156,250, 89,238,185, 41,143, 57, 89, 99,210,128, 6,205, 62,250,232, 35,152,205,102, 92,187,118, 13,183,
-111,223, 70, 82, 82, 18,126,251,237, 55,185,163, 68, 50,172,100,174,195,242,234,231, 59, 65,133,129,187,119,239, 34, 2,129, 0,
-219,183,111, 71,100,100, 36, 0, 32, 44, 44, 12,239,191,255, 62,204,102, 51, 70,141, 26, 77, 79, 62, 19,199, 85, 84, 63, 9, 33,
- 13, 0,124,135, 34,147,215,140, 82,106, 71, 8, 73, 7,224, 87,149,156, 44, 86, 63,153, 38,211,252,247,104,254, 83,169,116,174,
-195,197, 27, 33,251,227, 52, 31,227,211, 15,109, 90,196,107,219,174,125,200,162,133, 11, 56,205,155, 55,135,159,159, 31,194,194,
-194,144,156,156, 44,114,114,114,170,108, 62, 53,117,251,158, 35,226, 27, 54,108,232, 52,107,214, 44, 89,247,238,221,249,126,126,
-126,160,148, 34, 50, 50, 18, 71,142, 28, 49,110,217,178, 69,169,241,236, 35,143,184,188, 87,109,203,124,106,183, 1, 13,128,175,
-170,165,167,111,158, 60,105,210,130,198, 77,154,124,176,112,225, 66,142,212, 94,204, 95, 58,119,156, 29, 0, 44,254,254,128,172,
-223,224,145, 88, 83, 27,232, 48,162,236,121,228, 74,151, 51, 57,117,124, 82,175, 1, 93,106,127, 54,101,172,101,232,208,161, 18,
- 71, 71, 71,248,249,249,193,217,217, 25,113,113,113, 72, 77, 77,165,199,143, 31, 87,223,188, 31,195, 63,122,238,110,146,157,204,
-219,150,121, 9, 85,237,123, 12, 73,232,213,171,151,243,152, 49, 99, 28,154, 54,109,202, 23,137, 68, 16,137, 68,200,202,202,194,
-243,231,207,141,199,143, 31, 87,107, 60,222, 41,136,184,188, 95,101,227, 92,135,218,246,195, 23, 61,191,126,126,225,180,232,135,
- 15, 71, 91,129, 70, 70,163,209,215, 98,177, 16, 14,135,147, 97,181, 90, 31, 26, 85,170,109,250,176,133,171,217, 92,135,182, 97,
-177, 88, 4, 22,139, 5,114,185, 28,231,207,159,231,189,120,241, 98,222,131, 7, 15,230,165,167,167,195,100, 50, 97,208,160, 65,
- 8, 11, 11,195,229,203,151,145,147,149,117,188, 34,173,103,128, 66,148,154,250,254,248,241,227, 79,239,218,181,139,243,224,193,
- 3,183,237,219,183,111, 45,203,192,140, 30, 61,218,154,149,156,252,190, 30, 80, 84, 80, 63, 43, 58, 55,115,207,236, 95,255,160,
-255,192,193,245, 22,206,159,199,111,221,186, 53,220,220,220,208,174, 93, 59, 24,141, 70,167,186,117,235, 86,118,110,170,218,247,
- 28, 22,215,168, 81, 35,201,234,213,171,189,198,142, 29,139, 41, 83,166, 0, 0,180, 90, 45,206,157, 59,135,105,211,166,101, 38,
-243, 90, 20, 86, 86, 63,139, 35, 85, 37, 6,236, 42,128,246, 0,226, 88,226, 59,131,193,248, 71, 70,173, 8, 9,163,148, 70, 18,
- 66,188, 1,132, 3, 56, 73, 41,205, 40,215,104, 1,255,153, 79,237,250,237, 71, 40, 61,205, 71, 17,222,143,205,254, 99, 94, 76,
-156,177, 44,148,107, 82, 58,243,137,206, 49, 54, 38,134, 84, 54,231,225,203,249,212,100, 65,106,215,248,125,205,151, 46, 94,252,
-201,154, 53,107,186,148, 12,225, 96,111,111,255, 80, 91, 88,120,209, 93,175, 95,171,145, 5, 93,172,234,220,124,169, 64, 22,128,
- 73,206, 17, 17,235,122,247, 27,180,220,206, 37,144, 63,103,201, 22, 29,151,195, 49, 60, 79,207,193,154,218,128,196,134, 14,146,
- 26, 3, 16, 45,247, 54,103,185, 14,126,246,229,231,159,127,182,248,171,175,154, 75,165,210, 14, 70,179, 57,200,106,181, 2, 86,
-107,172,166,176,240, 42, 53, 26,239,232,195,230,175,180,147,121, 83,155,231, 37,116,170,171,114, 73, 56,212,124,199,182,109, 83,
- 15, 30, 60,248,167,109,119,213,235,215,105,156,234, 94,176,101,219, 75,175,163, 3,126, 71,118,246,239,229, 86, 2,176,185, 14,
-109,126,250,176, 90, 39, 56, 59, 59,239,236,210,165,139, 93,215,174, 93, 17, 30, 30,142,214,173, 91,195,106,181,130, 82, 10,149,
- 74,133, 3, 7, 14, 96,249,242,229,177, 53,128,175, 42,211,211, 3, 23, 69,167, 78,189,211,168, 81,163,237, 21, 25,152, 98,147,
- 85,105, 78, 98,197,231,166, 40,214, 44,235,155, 56,124,242,210,218, 6,101,134,147,171,189,217, 43,250,209, 67,142,237,231,102,
-176,202, 18,121,160,197,160, 1, 3, 38,115,121,188,118,197, 61, 32,233,147,199,143, 35, 74, 38,149, 70,216,251,231,171, 88,151,
- 74,198,174, 99,137,239, 12, 6,227,159, 74, 24,128, 72, 0,225,148,210,205,197,201,241,229, 39,195,243,120,188,236,146,168, 15,
-143,199,203,142, 59, 58,113,100, 69,234,124,160, 75,113, 36, 11,149,206,117, 88,252,127, 34,160,130, 94,255,245, 31, 6, 35, 45,
-213,187,144,255,202,250, 85,217,218, 2,224, 25,204,250,222,200,126, 12, 28,155, 84,164,215,124,241, 23,165,183,169,220,155,236,
- 31,126, 87,144,175, 3,174, 67,173,190, 14,181,186,204,164, 93, 62, 79,144, 95, 89, 57, 95,221,246,100, 64,249,166,219,206,171,
-226,254,225,189,193,254,252,183,145,150,155,123, 20,128,180,218,137, 19,158,103, 78,156, 24,250,217,244,233,131,188,125,124,106,
-185,185,185, 57, 59, 56, 56,112,110,221,186, 21,111,214,233,214, 53, 6,118, 20, 71, 83, 43, 69, 15, 92, 12, 78, 78,174, 63,100,
-192,128,201,132,199,107, 91,218,192, 80,179,249,183, 64, 96, 67, 69,145,172,215, 61, 55,253, 68,222, 93,138, 35, 89,224,218,120,
-110,166, 22,149, 99, 9,204,230, 37,136,138, 42,163,206, 87,185, 46, 45, 38,132,168,192, 18,223, 25, 12,198, 63,151,147,197,230,
-234,228,159, 62,249, 43,231,247, 1,208,149,105, 50,205,127,138,102,145, 87,129, 35,219,159, 76,147,105, 50, 77,166,249,246, 53,
-255,169, 11,143,153, 80, 6,195, 54,104, 81,114,186,146,237, 9, 6,131,193, 96,148,166, 84,110, 86,233,123,198,102,160, 40,117,
-167,107, 57, 55,149, 11, 85,248,129,174,175,113,211,186,192, 52,153, 38,211,100,154, 76,147,105, 50,205,127,151,102,101,218,127,
-199,222,140,132,144, 9, 37,185, 89,175,142,169, 69,108,157,230,230, 53,127,152,117,125,101,154, 76,147,105, 50, 77,166,201, 52,
-153,230, 63,154,138, 34, 90, 28,182,123, 24, 12, 6, 3, 88,180,136,112, 0, 66,128, 69, 28,224, 16, 23, 24,194, 45,122,253,250,
- 12, 25, 66,202, 28,204,118,234, 40, 23, 7,182,199, 25,140,127, 14,148,210,140,242, 38,149,102, 57, 90,255, 93, 7,236,239,229,
-229,181, 9, 0,201,204,204,156, 64, 41, 77,102,123,229,127, 15, 87, 87,215, 46,102,179, 25, 10,133,226,226, 63,113,251,234,215,
- 38, 3, 40, 7,117,255,115,197, 64,242,227, 88,186,179,172,117,235, 5,145,119, 65,254, 51, 22, 23,177,226, 73,244,115,250, 75,
- 21,234, 60,231,157,174,126, 27, 0,224,244,133,148,201,127,197,184, 90,132,144, 58,238,238,238,103,121, 60, 30,207, 98,177, 76,
-202,202,202, 58, 81,190, 17, 26,194, 5, 0, 62,189, 60,219,205, 37,100,214,167, 31, 18,190, 70,191, 77,174,215, 22, 42,184,124,
-110,130,136,239,117, 3, 92,223,211, 5,234, 86,143,203,250,254,193,131, 7,203,157,197,187, 65, 16,121, 39,164, 94,189, 62, 77,
- 66,197,113,223,173,109,190,166, 67,160, 27, 63, 62,229,190,244,219, 31, 21,155, 28, 93,170,247, 25, 51,204,245, 4,207,158,140,
-222,186, 53, 87,205,206, 50,219,249,134, 16, 23, 35, 16,202, 23,137,252, 44,102,179, 39, 1, 40,151,199,203, 50,233,245, 41, 2,
- 32,106, 22,165,242,127,186,166, 64, 36,170,102, 49,155, 61, 1,224,127,177,156,140, 63, 82,174,209,114,112,112,184,199,225,112,
-170,149,158, 12,183,100, 62,193,146,247, 74,127, 70, 8,129,197, 98, 73,205,207,207,111, 90,133, 11,162, 35,128,161, 0, 74,186,
-168,239, 1,112,128, 82,170,124,205, 11,172,163, 64, 32,152, 33,145, 72, 58,107,181,218,250, 0, 32, 22,139,163, 11, 11, 11, 47,
- 25,141,198,239, 94, 71,151, 16,194, 3, 48, 68, 42,149,118,226,112, 56,157, 40,165,132, 82,122, 89,173, 86, 95, 2,112,144, 82,
-106,126, 13, 77,177,135,135,199,146,144,144,144, 17,179,103,207,206,115,117,117, 13,158, 54,109,218, 93,119,119,247,189,185,185,
-185,115, 41,165,218,255,133,202, 65, 8,169,229,229,229,181,135,207,231,115, 83, 82, 82, 58, 1,128,159,159,223,101,131,193, 96,
-201,206,206, 30, 73, 41,125, 81, 69, 61, 9,128,150, 82,169,180,169, 84, 42,109,111,177, 88,234, 22,207,207,248, 68,173, 86, 95,
- 51, 26,141,247, 0,220,162,148, 22,254, 15,153, 97, 7, 15, 15,143, 93,132, 16, 16, 66,130, 40,165,170,127,220,147, 24, 7,117,
- 31, 71, 63, 13,126,105,166,234,135, 84,176, 67,224, 95,198,186, 54, 27,173,206, 29,188,251,244,237,219,141, 3, 0, 6,211,233,
- 62,168,226,228,215,182,152,172,129, 3, 7,254,190,107,215, 46,103,189, 94,143, 9, 19, 38,236,145,201,100, 27, 20, 10,197,236,
-138,190,231, 40,117,158,182, 98,245, 57,251,162,249,175,225, 97,181, 90, 60,210,210, 94, 4, 61,126,244,123,207,232,232,155, 75,
-181, 79, 47,221,178, 18,254, 68, 35,218, 61,181,165, 28,245,106,145,222,253,134, 12, 8,255,234,171,133, 24, 49,108, 68,245,232,
-104,157,216,215, 49, 78,152,175,149,212,118,117,247,232,251,213,226, 67,228,198,245,163,125,119,109, 95,116,233,131, 15,220, 58,
- 51,179,101,211,177, 37,139,121,188,150,206, 33, 33,237,135, 29, 61, 10,169,159, 31,143, 39, 18,113, 0,192,172,215,251,169, 83,
- 82,188,247,247,237,219, 98, 17, 33, 87, 22, 80,122,155,105,254,255,107, 50,170,104,180, 56, 28, 78,181,180,180, 52, 15,137, 68,
- 82, 18, 22,131,197, 98,129,197, 98,121, 57,121, 49,165,244,229, 95,179,217,140,144,144, 16,155,158,104, 1,116, 6,240, 94,199,
-142, 29, 7,127,247,221,119,252,208,208,208,146, 41, 67,218,205,153, 51,231,123, 66,200, 97, 0, 59, 0, 92,180,245,137,151, 16,
-210, 67, 34,145,236, 94,177, 98,133, 99,183,110,221,120, 62, 62, 62, 32,132, 32, 51, 51,179,229,133, 11, 23,154, 78,155, 54,109,
- 18, 33,100, 20,165,244,108, 21, 78,236, 6, 14, 14, 14,135, 6, 12, 24, 80,173, 67,135, 14,118,245,234,213,131,197, 98,193,253,
-251,247,199,222,187,119,111,248,225,195,135, 23, 16, 66, 6,219, 58, 95, 27, 33,132, 72,165,210, 49,190,190,190, 75,230,207,159,
-239, 50,106,212, 40,225,163, 71,143, 10, 2, 3, 3,201,141, 27, 55,220, 15, 28, 56, 48,105,217,178,101, 67, 28, 28, 28,230,170,
-213,234,159,169, 13, 9,116,142,142,142,247, 56, 28, 78, 53, 91,140, 48, 0,155,205, 48, 33,164,113,141, 26, 53, 14, 92,191,126,
-189, 70, 98, 98,162,165,127,255,254, 59, 1,224,210,165, 75,161, 38,147,137,116,239,222,253, 52, 33,100, 40,165,244,190,141,219,
-222,208,197,197,229,215, 17, 35, 70,184,212,170, 85,203,190, 70,141, 26, 68, 34,145,128,203,229, 66,161, 80,248, 60,122,244,168,
-235,237,219,183,181, 23, 46, 92,200, 39,132,244,165,148, 70, 85,225, 56,181,246,240,240, 24,205,231,243, 27,152,205,102, 95, 0,
-224,241,120,105, 38,147,233, 81,118,118,246, 46, 74,233,239,175,123,130,120,122,122,174, 95,178,100,137, 91,118,118, 54, 93,182,
-108,217,122, 0, 99,254,169, 23,131, 61,123, 15,226,222,221,219, 0, 32, 32,132,144, 87,235, 31, 33,132,212, 13,130,224,211, 79,
-167,163,105,179, 22, 24, 57, 98, 72,165,154,225, 93,253, 86,240,133, 2, 87,157, 78,247,187, 66,163, 63,232,233,234, 52,116,196,
-240,222,177, 0,112,250,204,149,161, 45, 90,184, 92,150,217,139,134,216,217,217,181, 54, 25,140,121, 39, 47,164,124, 94, 21, 83,
-229,235,235,123,214,217,217,217, 62, 63, 63, 63, 51, 39, 39,103,227,192,129, 3, 23,239,216,177,195, 57, 62, 62, 30, 41, 41, 41,
-248,228,147, 79,164,169,169,169,147, 69, 34,209, 77,189, 94, 95,110,100, 75,165,202, 95, 59,103, 86,191,249, 50,153, 27, 87, 98,
-239, 8, 7,153, 11, 2,107, 53, 66,203,214,125,240, 78,248, 7,120, 30, 27,217,114,199,246,175, 34,211,210, 46,124, 35,117,169,
-185, 88, 46,175, 81,238,117,169,126, 48,233, 80, 98,178,230,207, 95,136,152,167, 79, 85,137, 9,156,143, 79, 30,229,217,191,211,
- 37, 68,100, 54,100, 38,222,184,126,180, 70,219,118,253, 1,160,233,174,237,139, 46, 77, 29,229,210,101,221,238,124, 21,187, 37,
-149,127,237,252,138,207, 31,211, 99,245,106,143,176, 73,147, 4,234,132, 4, 99,220,143, 63,106,178,174, 93,179,240, 68, 34,234,
-215,179, 39,113,239,212,201,110,210,147, 39,130,223,150, 45,107,191, 84, 40, 12,156, 99, 48,236,102,154,255,127,154,172,142,190,
- 76,134,127,153,171, 85,210,124,200,171,224, 75,144, 72, 36,216,191,127, 63,248,124, 62,120, 60, 30,248,124,126,185,255,251,251,
-251,219, 82,144,129, 94, 94, 94,223,111,216,176,193,179, 71,143, 30,176,179,179,123,249, 25,151,203, 69,183,110,221,208,181,107,
- 87,126,122,122,250,240,253,251,247, 15, 95,186,116,105, 22, 33,100, 10,165,244, 72, 37,186,157,130,131,131,143,156, 59,119, 78,
-172,211,233,112,237,218, 53, 20, 20, 20, 64, 40, 20,162, 90,181,106,232,222,189, 59,239,233,211,167, 46,221,186,117, 59, 66, 8,
-233, 77, 41,189,108, 67, 89,155,122,120,120, 92, 61,120,240,160, 93,163, 70,141,200,243,231,207, 17, 22, 22, 6, 0, 80, 40, 20,
-232,223,191,191,221,168, 81,163,106, 13, 31, 62,252, 22, 33,164, 3,165,244, 94, 37,122, 77,188,188,188,126, 30, 48, 96,128,207,
-210,165, 75, 29, 29, 28, 28,144,152,152,152,225,229,229, 21, 84,178,191,135, 15, 31, 46,236,211,167,143,247,242,229,203,215, 30,
- 58,116,232,115, 66,200, 24, 74,105, 68, 69,186, 37,134,216,222,222, 30, 89, 89, 89,216,179,103, 15, 38, 79,158, 12, 46,151,139,
-236,236,108, 28, 56,112, 0, 31,127,252,113,137,161,177,201, 12, 75, 36,146,174,141, 26, 53,218,122,233,210,165,106, 78, 78, 78,
-240,241,241,225,124,249,229,151, 13, 2, 3, 3,197,213,171, 87,231,102,100,100,224,200,145, 35,129,163, 71,143,254,213,206,206,
-110,172, 78,167,171,180, 73,205,211,211,115,219,201,147, 39,253,163,163,163,241,227,143, 63, 34, 63, 63, 31, 66,161, 16, 78, 78,
- 78,240,242,242, 66, 80, 80, 16,153, 53,107,150,125,159, 62,125,236,167, 76,153,178, 13, 64, 99, 27,142, 81, 35, 15, 15,143, 77,
-195,135, 15, 15, 92,180,104,145,147,151,151, 23, 74, 30, 12, 20, 10, 69,181,196,196,196,150,243,231,207, 31,236,233,233, 25,159,
-157,157, 61,145, 82,250,160,138, 39, 78,227, 46, 93,186,244,238,223,191, 63, 55, 35, 35, 3,187,118,237,234, 77, 8,105,108,171,
-185,252,187,113,239,238,109, 76,248,232, 19,181,143,159,159,224,220,217,173, 3,229,242,122,119,157,196, 69, 19, 82,203,181, 48,
-118,238,192,109,214,189,199, 7,130, 94,225,253,213,155,127, 88, 43,181,197,104,241,133, 2,215, 61,187, 87, 37, 95,191,113,175,
-193,249, 11,183,123, 14,236,219,151, 10, 4, 78,129, 0,240,249,180, 79,249, 71,142, 29,219,222,173,107,139,244,118,109,155, 38,
-143, 28, 53,221,191, 10,199,166, 78,157, 58,117,174, 68, 70, 70,122,138, 68, 34,228,231,231,187,110,222,188,121, 85,219,182,109,
- 57,113,113,113,120,250,244, 41, 18, 18, 18,160, 80, 40,208,173, 91, 55,105, 68, 68,196, 70, 0,229, 26, 45, 35,167,243, 18,159,
-234,166,117,174, 98, 73, 13,163, 69,233, 65, 77, 25,245,206,159, 60,223,112,223, 46,109,152,167,119, 72,208,123,239, 47,192, 87,
-139, 15,243,247,238,249,118,254,197, 11,251, 0, 78,141,242,103, 4,160,104, 61,103,238,108, 40, 85,122,140, 26, 49, 30,163, 71,
-140,119,165, 48,120, 83,139, 78, 98,208, 22, 56, 57, 8,158,156,216,176,101,213, 0, 0,213, 74,153,173,139,204,108,149,207, 87,
- 60, 94,139,222,223,127,239,222, 96,220, 56,209,131, 69,139, 10,115,175, 93,211,214,238,213,171, 32,236,195, 15,245, 0,160, 74,
- 72, 16,196, 44, 88, 96,239,222,190,189,184,213,140, 25,206, 22,131,193,235,107, 66,154,127, 73,233,157,170,106,250, 15, 29,106,
-153,191,125,123,179,107,211,167,119, 36, 38, 19,183,103,171, 86,247,151,237,218,149,246, 38,154,111,179,156,233, 87,175,234,243,
- 3, 3, 17,214,191,127,158,191,135,135,254,109,110,251,155,148,147,129,146,160, 84, 6,128,146,145,225,139,174, 87,148, 82,156,
- 60,121,178, 3,128, 43, 0, 22,133,135,135, 47, 4, 0, 39, 39,167, 44,185, 92,238,113,228,200,145, 74, 77, 22,159,207,135,183,
-183, 55,130,130,130,178,179,178,178, 60, 43,184, 56,166, 88,173,214,106,148,210,151,209,151,242,208,235,245,136,141,141, 69,195,
-134, 13, 83, 41,165,126, 21, 53,237,216,219,219,199, 61,125,250,212,237,241,227,199,184,119,239, 30, 2, 3, 3,225,236,236, 12,
- 62,159, 15,147,201, 4,165, 82,137,224,224, 96,136, 68, 34, 52,105,210, 36,183,176,176, 48,176,162, 38, 32, 66,136, 72, 34,145,
-196, 94,189,122,213, 47, 44, 44, 12,119,238,220,129,159,159, 31,188,188,188, 0, 0, 9, 9, 9,184,113,227, 6,122,245,234,133,
-200,200, 72, 12, 26, 52, 40,165,176,176, 48,136, 82,170, 47, 79,211,213,213, 53,227,210,165, 75,169,161,161,161,186,194,194, 66,
- 78, 86, 86, 22,255,218,181,107,102,149, 74, 37, 85, 40, 20,124,185, 92,206, 87, 42,149,188,194,194, 66, 62,135,195, 17,104,181,
- 90,254,197,139, 23,185, 6,131,193,177,162,253, 84,114,156,142, 29, 59,134,208,208, 80, 28, 57,114, 4,159,125,246, 25,126,251,
-237, 55,248,249,249,225,224,193,131,152, 49, 99, 6,158, 61,123, 6, 55, 55, 55,212,171, 87,175,194, 99, 4, 0,181,107,215,126,
-254,240,225,195, 90, 2,129,160,100, 94,199,146,249,242,144,147,147,131, 23, 47, 94, 32, 45, 45, 13,181,107,215,198,136, 17, 35,
- 94,164,166,166,214,174,172,242, 85,171, 86, 45, 39, 58, 58,218,173, 97,195,134,200,202,202,130,147,147, 19,100, 50, 25,156,156,
-156, 94,254, 31, 24, 24,136,233,211,167,195,203,203, 43, 91,171,213,122, 86,102,130, 66, 67, 67,207, 94,188,120,209,205,209,209,
- 17,153,153,153, 80, 42,149,224,241,120,176,183,183,135,155,155,219, 75, 35, 31, 27, 27,139,240,240,240,220,184,184,184, 30, 85,
-136,192,113, 60, 61, 61,159, 70, 69, 69, 5, 81, 74,145,156,156,140,103,207,158,225,163,143, 62,138,213,233,116, 33,255,164, 57,
-251, 74,229, 93, 9,198,188, 63, 65, 48,160, 95,107,195,147,232, 19, 68,100,125,134,198, 13, 28, 21, 0,112,255,145, 82,166,231,
- 4,163,110,253,222,244,151, 95,127, 23,254,188, 99, 51, 31, 86,120,130,224,217,227, 24,250,117,121,218, 61, 58,251,140,251,244,
-211,177, 13, 58,182,237,192, 81, 21, 22,122,108,220,184,186, 73, 92,220, 19, 15, 0, 8, 12,172,155, 61,105,210,180, 8, 7,137,
- 36,251,202,141,171,214, 53,107,182, 61, 58,123, 41,125,139, 13,199, 38, 48, 40, 40,232,230,177, 99,199,220, 60, 60, 60, 32,147,
-201, 80, 88, 88, 8,163,209,136,199,143, 31,235,246,239,223,111,114,116,116,116,200,204,204,132, 92, 46, 7, 33, 4,199,142, 29,
- 75,166,148, 6,188,170, 85,146,163, 5, 0, 31,189, 83,151, 95,175,115,144,179, 64,100, 22,139,249, 49,222, 32, 22, 17,161, 82,
-207,211,103,239, 55, 60,125,254,206,200, 1, 3, 63,115,111,215, 97, 0,230,207, 27,108, 74, 79, 79, 14, 51,162,221,211,178,114,
-180,234, 6,145,206,253, 7, 13, 24,242,213, 87, 11,177,112,254, 34,156, 56,118, 84, 33,149,112,244,142, 78,124, 89,251,150,109,
-116,211, 39,247, 75, 81,171,211,253,190, 90,190,127, 68,120,191,233,213,218,182,235,143, 27,215,143, 98,215,246, 69,247,136,152,
-178,102,196, 87, 88, 68,136,179, 83, 96,224,196,169,177,177,130, 7, 11, 23,170,205,233,233, 5, 77,167, 77,203, 45,107,221,212,
-243,231, 37, 66, 31, 31, 71,231,190,125, 93,214, 6, 4, 80, 83,118,246,166,178,114,140,202,210,188, 32,149, 58,237, 59,125,186,
- 11,229,243, 59,204,252,226, 11,113,239,222,189,161, 84, 42,113,248,240, 97,108,250,241, 71,189,183,183,247, 67,159, 71,143, 34,
- 27, 40,149,243,108,213,108, 58,109, 90,174,197, 98, 33, 67,102,204,232, 22,157,144,208, 57, 51, 59,187, 58, 0,120,187,184,164,
- 52, 13, 12,188,183,237,196,137,103,235,107,212,176,218, 90,206,159,206,156,241, 60,148,152, 56,206,197,197, 69,156,149,157,205,
- 19, 9,133,121, 45,235,213, 59,248,195,220,185, 87,204, 81, 81, 2,187,106,213, 28,101,189,123, 87,121,219,155, 78,155,150,155,
-175, 82,241,166, 46, 94,220, 38, 41, 43,171,186, 90,175,175, 45, 87,169,188, 44, 38, 19,199,209,222, 62,175,102,112,112,182,246,
-218,181,140,154, 26,205, 39, 63, 81,154,253, 87, 29,235,178,188,200,223, 40,162,245,106,175,195, 63,205,117,120, 37, 60, 60,156,
-148,225,204,108,138,102,241,249,252, 63, 52, 83, 85,128,128, 16,130,136,136, 8,184,186,186,194,203,203, 11, 34,209, 31, 39, 31,
-204,201,201,193,111,191,253,134, 39, 79,158,160, 81,163, 70, 0,138,158,168,203, 67, 36, 18,125,186,124,249,114, 39,131,193,128,
-123,247,238,161,105,211,166, 16,137, 68, 16, 8, 4,127, 48,129,217,217,217,168, 95,191, 62,102,206,156, 41, 91,186,116,233,167,
-168, 96,142, 58, 30,143, 55,101,252,248,241, 30, 37, 17,172,148,148, 20, 52,105,210,228,229,231,238,238,238,184,127,255, 62,154,
- 54,109,138,106,213,170, 97,240,224,193, 30,187,118,237,154, 2,224,187,242, 52,133, 66, 33, 39, 52, 52,180, 89,113,196, 8, 28,
- 14, 39,198,209,209,209,221,211,211, 83,226,232,232,248,167,109,220,190,125,187,156,195,225,152, 42,219,161, 28, 14, 7,153,153,
-153,104,208,160, 1, 20, 10, 5, 0,160,176,176, 16,181,107,215,134, 82,169,124,105, 90,125,124,124,160,213, 86,156,250,213,168,
- 81,163,133, 33, 33, 33,221, 59,118,236, 40,226,243,249,120,240,224, 1,194,194,194,176,127,255,126,248,251,251,195,222,222, 30,
-177,177,177, 8, 13, 13,197,213,171, 87,225,238,238,142,250,245,235,139,154, 52,105,114, 61, 63, 63,255,114, 98, 98,226,194, 10,
-202,201,145, 74,165,184,122,245, 42,182,109,219,134,132,132, 4,164,167,167,195,193,193, 1,141, 27, 55, 70,189,122,245,208,186,
-117,107,196,198,198,130, 84, 82,153, 8, 33, 94, 65, 65, 65, 39,238,220,185,227, 70, 41,197,174, 93,187,160, 86,171, 97, 48, 24,
-192,225,112, 96,103,103, 7,103,103,103,116,238,220, 25,238,238,238, 8, 10, 10,194,129, 3, 7,220,222,121,231,157, 83,197, 17,
-169,204,202,246,171,179,179,243, 39, 11, 22, 44,240,243,240,240, 64, 98, 98, 34, 20, 10, 5, 60, 61, 61,209,177, 99, 71,223, 11,
- 23, 46,124, 2, 96,245, 63,229, 70, 86,146,248, 78, 8, 33,231,206,110, 29, 24, 84,179, 32,180, 81,176,189,223,145, 19,158,126,
-251, 79,100,215, 7,128, 6,117, 61,163, 7,246,182, 79,121, 16,125, 34,229,220,217,163,247,158,196,224,136, 45, 77,219, 10,141,
-254,224,249, 11,183,123,134, 53,106, 98, 93,254,237,140,240,201, 31,141, 19,121,120,126,128,172,228,163,184,112, 41,194,127,198,
-103,227,221,191, 91,249,211,233,243, 23,110,115, 20, 26,253, 60, 91,202, 91,167,142,255,250, 29, 63,180,118, 83,229, 30,194,243,
-167, 66,136, 29, 26, 32, 48,176, 14,148, 74, 37,236,236,236,236, 70,140, 24, 97,153, 61,123,182,198,209,209,209,158, 16,130,203,
-151, 47,103, 3,232, 81,153,174,206,195,153, 90,140, 38, 51, 21,114,173,148, 56,104,137, 37, 95,248,232,113, 60,186,119,237,148,
-213,182, 69,131,165,179,191, 90, 57, 39,168, 78,152,251,216,113,139,248,139, 23,142,252, 17, 4,237,202,210,121, 18, 75, 47,213,
-171, 69,196, 0,194,191,250,122, 33,226,226, 98,157, 39,188, 39, 95,196, 19,137,125, 66, 2,218, 56,252,184,237,114,207,218,181,
-107, 84,159, 62,101,240,201, 85,223,175, 10, 47, 29,217,218,177,125,193,175,132,144, 46,244,175, 28,119,231,239, 71,195,209, 39,
- 78, 64,157,156,108,202,191,126, 93,215,229,251,239,115,253,122,244, 88,109, 48, 26,221, 74, 46, 21, 28, 66, 64, 74, 82, 39,172,
- 86,194,155, 57,147, 67,121, 60,152,156,157,223,155, 5,212,169, 76,243,179,140,140,129, 35,199,141, 11,255,245,204, 25,212,168,
- 81,227,229,253,204,201,201, 9, 51,102,204,192,180,105,211, 68,247,239,223,111,126,232,208,161,230,223,173, 88,225, 57, 11, 24,
-104, 75, 57,207,221,186,229,252,225, 87, 95,205,109,212,180,169,255,206, 61,123, 68,181,106,213, 2, 0,188,120,241, 34,232,219,
-101,203, 2, 26,132,134,102, 45,253,244,211, 29,209,179,103,215, 7,112,189, 34,205,204,107,215, 12,135, 18, 19,199, 93,186,124,
-217,169, 65,131, 6, 0,128,103,207,158,121,172, 93,187,118,124,253,193,131, 71,125, 53,105,210,188,222, 58,157,220, 49, 39, 71,
-212,123,253,122,222,190, 33, 67, 42,213, 44, 41, 39, 0,116, 28, 59,246,211,118,157, 58,213, 27, 56,110,156,139,191,191, 63,145,
- 74,165, 48, 26,141, 72, 79, 79,119,142,142,142,174,117, 66,165, 82,254,114,235,214,174,159,138, 39,139,255,139, 40,211,139,252,
-157, 34, 89,101,122,138,226,191, 29, 79,158, 60, 73, 1,116, 12, 15, 15,191, 90,114, 3,183, 88, 44, 54,153, 44, 30,143,135,226,
-100, 97, 91, 11,132,220,220, 92,228,230,230,190,108, 58,202,206,206,198,165, 75,151, 16, 27, 27, 11, 62,159, 15,129, 64, 0,163,
-177,242, 57,104, 37, 18, 73,215,174, 93,187,242,110,221,186,133,192,192, 64,136,197,226,151,229, 42, 89, 4, 2, 1,188,189,189,
-161, 84, 42,209,165, 75, 23,254,186,117,235,186, 86,100,180,100, 50, 89,175,161, 67,135, 10, 75, 94,171,213,106,112,185,220,151,
-166, 69,173, 86, 35, 63, 63, 31,114,185, 28, 58,157, 14,173, 90,181, 18,158, 56,113,162, 87, 69, 70,171, 52, 26,141, 70,157,157,
-157,237,212,174, 93, 59,231, 29, 59,118, 60,107,213,170, 85,240, 31,106,218,149, 43, 58,157, 78,199,231,112, 56, 54,205,163,183,
-123,247,238,151,251, 62, 45, 45, 13, 63,254,248,227,203,207, 98, 99, 99,177,110,221,186,151, 83, 1, 84,116,140, 66, 66, 66,222,
-217,181,107, 87,211,157, 59,119, 22,112,185, 92, 60,123,246, 12,123,246,236, 1,165, 20,238,238,238,208,104, 52,200,202,202,194,
-229,203,151, 97, 54,155, 33,149, 74,225,235,235,107, 55,101,202,148,182,139, 22, 45,226, 3, 40,215,104, 89, 44, 22, 11,151,203,
- 69, 64, 64, 0,230,207,159, 15,157, 78, 7,129,160,200, 95, 42,149, 74,200,229,114, 68, 70, 70, 34, 49, 49, 17,149,221,100,236,
-236,236, 6,239,220,185,211, 67, 40, 20, 66,171,213, 66,165, 82, 33, 37, 37, 5, 73, 73, 73,186,236,236,108,179,131,131, 3, 39,
- 32, 32,128, 35, 18,137, 68,253,251,247, 39, 37,134,179,119,239,222,174,187,118,237, 26, 86,153, 73, 34,132,184,215,173, 91,119,
-206,248,241,227,237, 74,215,217,204,204, 76, 12, 28, 56,208,254,247,223,127,159, 77, 8,217, 67, 41,205,249,135,133,188,169, 92,
- 94,239,238,189, 11,207, 66,143,156,240,244, 75, 74,181,180,153,241,249, 74, 30, 0,108,222,244, 77,155, 35, 39,210,126, 11,169,
-145,149,114,232,151, 58,119,157,156, 30,211,202, 34,130,157, 59,120,247,241,116,117, 26, 58,176,111, 95,186,113,227,234, 38,147,
- 63, 26, 39, 10,168, 51, 3, 0,224,203,247, 64, 23,243,215, 68,163,125, 97,183,113,227,234, 38, 3,251, 14,138, 76, 72, 72,220,
-212,165,163,207,129, 75, 87, 51,142, 87, 20, 49,244,112,181,243,181, 23, 21,194, 55,176, 30,130,235, 74,112,255,193, 51, 28, 62,
-120, 19,117,235,183,132, 94,175,135,217,108,150,244,233,211, 71,179,127,255,126, 93, 76, 76,140, 74,171,213,118,160,148,198, 84,
-182,253,169,169,143,173,193, 94, 45,141, 2,177,200,172, 82, 8, 52,179,230, 29, 26,210,164, 69,247,166,206,222,190,124,119,137,
-245,248, 59,221,154,239,217,182,101,254,180,121, 11,246,160, 89,243,238,173,158, 60,187, 94, 15,192,195, 50,205,235, 11,122,162,
- 65, 16, 49,199, 61,127, 30,158,148,152,152, 90,199,211,203,240, 66, 78, 77,159,204,250,169, 91,187, 14,131, 27,214,170,219, 94,
-248,228,241, 85, 50,127,230,176,189, 95, 45, 95, 53,162,196,108, 93, 60,191,183,195,123,239,221, 20, 2,208, 51,127, 85,252,116,
- 46, 18, 85,147, 6,252, 31,123, 87, 29, 94,197,241,118,207,236, 94,191,113,247,132, 32, 73, 32, 4,183,226, 20, 39, 80,164, 88,
- 11, 5, 74,209,210, 2,133,226,210, 82,193, 74,129, 22,135,182,184, 59,193, 41, 65,138,123, 18, 32, 16, 36, 16,119,189,190,187,
-243,253, 17,249,133, 52,114, 19,168,241,237,121,158,251,220,187,123,119,207,206,236,204,238,156,121,231,157,119,124, 36,207, 54,
-110,212, 86,235,209, 35, 29, 0, 12, 70,163,227,179,231,207,109,212,106, 53, 40,165, 48,153, 76,175,248, 16, 23,248, 13, 7, 5,
- 4,184,152,195,249,108,246,236,186, 83,166, 76, 65, 66, 66, 2, 56,142,131, 84, 42, 45,254,206, 70,110,110, 46,134, 14, 29,138,
-159, 23, 47,110,102, 14, 39,207,243,100,244,188,121, 51,167,206,156, 89,125,212,168, 81, 76,209,119,175,189,189, 61,246,236,221,
- 43, 95,185,114,165,231,140,159,127, 30,250,161, 66,241,164, 60,206,148, 26, 53, 96,159,152,168, 42, 16, 89, 0, 16, 16, 16,128,
- 53,107,214, 40,134, 15, 31, 46,239,209,163,199,146,219,245,234, 45, 95,218,178,229, 99, 7,127,127,107,185, 66,225,105,238,253,
- 4,128,108,157, 46,104,233,242,229,118, 87,175, 94, 69, 98, 98, 34, 18, 18, 18, 10,158,101, 52,110,220,152, 12, 30, 60,216,166,
-170,151, 87,147,191,184,184,255,164, 69,254, 67, 22,173,145, 37,188, 83,255,231,163,149,159, 33,146,159, 65, 82,164,113,124, 69,
-176,148, 39,180, 42,131,140,140, 12,100,100,100, 96,195,134, 13,144,201,100,133,141, 47, 0, 24, 12, 6,115, 68, 75, 29,119,119,
-119,100,102,102,194,223,223,255, 21, 75,150, 76, 38,131, 68, 34,129, 76, 38,131, 66,161,128, 94,175,135,183,183, 55, 52, 26, 77,
-157,178, 56,181, 90,109,125,123,123,251,194, 6, 86,175,215, 23,138,172,130,244, 26, 12, 6,164,167,167, 35, 39, 39, 7,217,217,
-217,200,205,205,109, 96, 78,126, 5, 65, 64, 88, 88, 88, 84, 64, 64, 64,125,150,101, 97,105,105,105,145,155,155, 91,232, 91,148,
-150,150,134, 77,155, 54,229,126,244,209, 71,142,135, 14, 29,210,152, 81,184,248,236,179,207,160, 80, 40,160,209,104,176,122,245,
-106,124,254,249,231,144,201,100,200,206,206,198,154, 53,107,240,197, 23, 95, 64, 34,145,192, 96, 48, 96,249,242,229,165, 91, 54,
- 34, 34,158, 93,185,114,165, 65,195,134, 13,237,246,239,223,159,220,177, 99, 71,167,206,157, 59, 67,165, 82, 65,171,213,194,100,
- 50,161, 89,179,102,168, 89,179, 38,146,146,146,112,236,216,177, 20, 63, 63, 63,199,171, 87,175, 10, 9, 9, 9,209,229, 53,226,
- 69, 44,134,224,121, 30,137,137,137,200,200,200, 64,114,114, 50,226,226,226, 16, 19, 19, 3,137, 68,130,242, 58,243, 14, 14, 14,
-239, 7, 5, 5,177, 0,160, 82,169, 80,191,126,125,204,156, 57,147,211,106,181,253, 1, 28,203, 63,172,235,250,245,235,247, 95,
-188,120, 81,226,238,238,142, 7, 15, 30,192,201,201, 73,162, 84, 42,203, 21, 90,174,174,174,191, 29, 62,124,216,190, 64, 92, 23,
-220,103,141, 38,175, 56,250,244,233, 99,191,121,243,230,223, 0,116,123,219, 26, 53, 91, 21,100,245,131,172, 51,119, 30, 73,170,
- 61,249,203, 37,146,154, 65,121,157,215,145,163, 32,249, 97,241,164,218,131,122, 90,135,216,170,178,100,229,241,116,237,224,181,
-242,189,247, 58, 50, 31, 12,236,254, 72, 38,179,173,182,118,221,215,206,206, 46,195,139,152, 56,173,225,224,104,141,106, 62,114,
-178, 39,228,190,243,180,233,223,232,183,110,254,241,201,246, 29, 71,186,200,165,167, 58, 1, 24, 83, 26,119,100, 84,198, 33,141,
- 94, 89, 43, 43,245, 46,177,119,105,129,250,245, 2,224,236,148,142,245,191,237,132,111,213,198,208,235,245,176,182,182, 86,243,
- 60,111,100, 89,118,171, 57, 34, 11, 0,206,156,201, 16,106,215,206, 48,176,217, 2,247,233,231, 63,244,238,216,245,189,192,119,
-223,237, 32,156, 60,117,210,216,162,129, 49,190,107,231,250,137,199, 79,173,124, 20, 31,247,212,175,118,157,150,136, 8, 63,219,
- 5, 32, 97, 64,201, 21, 54,236, 17, 61, 94,189, 58, 57,187,115,231, 72, 65, 43,220, 82,125,251,221,189,174,193,193, 67,130, 90,
-183,106, 45,156, 58,253,187, 65,142,148,251,214, 45,155,199,126,250, 73,215,253,191,108, 93,222,233,248,177,223,106,100,102, 69,
- 31,249,237, 55, 42,138,172,162,157, 52,142,115,145, 40, 20, 76,242,217,179, 92,157,225,195,245, 5,207,163, 90,173,198,193,131,
- 7, 33,151,203, 11, 63, 50,153,172,240,183,139,139, 75,193,228, 43,179, 56, 1, 32, 62, 62, 30, 9, 9, 9,176,177,177,129,147,
-147, 19, 18, 18, 18,112,233,210, 37, 68, 70, 70, 66, 42,149,162, 75,151, 46, 96, 74,241,109, 46,206,217,111,242,228,142,181,234,
-212,241, 46, 46,178, 0,192,104, 52, 34, 45, 45, 13, 61,123,246,100,142, 29, 59,230,122,252,197,139,247,102, 3, 91,203,226,108,
- 16, 28,156,154,184,103, 79,137,215,110,216,176, 33,249,227,143, 63, 20, 93, 58,119,158, 56,233,187,239, 86,254,188,121,243, 75,
-158,227, 92, 43,146,119,134, 97, 24, 66, 8,188,188,188,144,150,150,134,156,156,188, 17,108, 75, 75, 75,216,217,217,193,100, 50,
- 65,160, 84,250, 87,150,117,105, 90,228, 63,210, 81, 93, 87, 32,184,138, 71,134,151,228,143,139, 22,188, 40,218, 22,109, 88, 4,
- 65, 48, 75,100, 73,165,210,114,125,174,204,177,114, 21,135, 57, 66,171, 32,173, 74,165,178,240, 65, 43, 42,176, 10,210,201, 48,
- 12, 88,150,133, 57, 22,121, 65, 16,216,236,236,108,236,221,187, 23,109,218,180, 41, 28,150,202,204,204, 68, 70, 70, 6, 50, 51,
- 51,161,211,233,240,236,217, 51,156, 57,115, 6, 53,106,212, 0,204, 12,254,250,228,201,147, 27,190,190,190,141, 10, 26,241,118,
-237,218,121,110,220,184, 49,174, 91,183,110,238,148, 82,204,154, 53, 43,165, 89,179,102,142, 69, 27,249,242,192,178, 44, 46, 93,
-186,132, 26, 53,106,128, 82, 10,153, 76,134,135, 15, 31,194,217,217, 25,130, 32, 64, 34,145, 32, 57, 57, 25, 86, 86,101,199, 72,
- 12, 11, 11, 27,246,241,199, 31,199,217,216,216,212, 77, 77, 77,141, 87, 40, 20,173,206,159, 63,239,101, 52, 26, 97,109,109, 13,
-107,107,107, 28, 61,122, 20,182,182,182,152, 48, 97,194, 11,173, 86,123,201,194,194,194, 69,171,213,222, 77, 72, 72,152, 85,145,
-242,230, 56, 14,185,185,185, 72, 79, 79, 71, 90, 90, 26,178,178,178,160,211,233,202, 77, 99, 73,104,213,170, 21,142, 28, 57,194,
-206,159, 63,255,151, 39, 79,242, 58,134,213,170, 85,195,132, 9, 19, 88, 15, 15, 15, 60,123,246, 12, 55,110,220,128,209,104, 4,
-165,180,204,135, 87, 42,149,182,155, 52,105, 82, 75,111,111,111, 98, 52, 26, 33, 8, 2,244,122, 61, 10,126,191,120,241, 2,181,
-106,213, 98,124,124,124,222, 33,132,180, 51,103, 98,133,136, 60, 36,190, 56, 0, 15,169, 51,192, 88,131,106, 15, 32, 53,165,114,
-203, 70, 38, 37, 37,125, 55,101,246, 31,195,127, 94,100,116,137,137, 7, 2,130,122,193, 47,176, 61,134, 13,230, 48,127,241, 94,
-120,251, 4, 32, 58, 58, 26,237,218,181,147,197,197,197,125, 12, 96,178,185,220,167, 78, 93,225, 79, 30, 61,214,183,223,128, 33,
-141, 58,116,232,198,157, 56,113, 20, 97,119, 79,132,127, 60,224,253, 36, 42,228, 16,123, 91,213,173,135, 15,174,251,213,173,223,
- 22, 6,142,111, 5,124,181, 8, 64,169, 47,149,168, 40,106,248,250,235,175,153,144, 3,191, 13,254, 96,208,208,122,237,219,119,
- 50,157, 56,117, 24, 55, 46,159,186,179,100,209,136,115,243,151,239,106,215,177,203,251,181,157, 92, 46, 29, 13,242,215,127,226,
-229, 96, 19, 37,214,148,146, 33, 81, 42, 5,228,191, 23, 25, 66, 64, 41,125, 69,100, 21, 23, 90, 12,195,148,107, 0, 40,202, 89,
-180, 45, 42,232, 80,175, 93,187, 22, 10,133, 2,114,185, 28, 82,169,180, 92,247,139,162,156,225,207,158,189,187,105,235, 86, 69,
- 73, 34, 43, 53, 53, 21,169,169,169,200,201,201,193,192,129, 3,101, 95, 95,191,222,176, 60, 78,111, 55, 55,189,133, 74,149, 24,
- 17, 17,225, 30, 24, 24,248, 74,122,179,178,178,160, 82,169,176,117,219, 54, 89,247,224,224,177,237,143, 30, 93, 2, 32,163,162,
-121, 39,132,192,217,217, 25,118,118,118, 32,132,128,227, 56, 36, 36, 36, 32, 60, 60, 28,215,175, 95, 7, 75, 8,247, 87,150,113,
- 73, 90,228,191,102,213, 42, 46,178,138, 90,180, 72,105,214, 23,115,133, 22,203,178,149,182,106,149, 6,115,134, 14,213,106,245,
-189,184,184,184, 22, 30, 30, 30,224, 56,174, 80,104, 21, 31, 58, 44,176,126,220,190,125, 27,106,181,250, 94,121,156,148,210,119,
-154, 52,105,130,125,251,246,225,236,217,179,120,250,244, 41, 52, 26, 13,244,122, 61,180, 90, 45,194,195,195, 33, 8, 2,130,130,
-130, 96, 97, 97, 81, 46, 39, 0,228,230,230,198, 75,165,210, 0,149, 74, 85,184,207,205,205, 13,169,169,169,130,201,100,194,166,
- 77,155,178, 92, 93, 93, 45, 84, 42,149,217,194,149, 16,130,164,164, 36,120,122,122, 22,250,104,101,103,103,195,217,217,185, 64,
- 88, 64,175,215,195,202,202,170,220,161, 67, 74,169, 14,192,164, 34,220,141,251,245,235,183,125,231,206,157, 85, 79,159, 62,141,
-171, 87,175,194,201,201, 9,223,127,255,253,211,231,207,159,127, 64, 41,189,254, 23, 84,212,114,143, 73, 77, 77,221,123,239,222,
-189,119,154, 52,105, 82,248,150,104,215,174, 29,105,215,174,157, 99, 81, 83,127,114,114, 50,174, 93,187,134,211,167, 79,131, 16,
-130, 71,143, 30,241, 90,173,118,123, 25,215,150,249,248,248,108,156, 57,115,166, 37,199,113,133,117, 91,165, 82, 65,169, 84, 66,
- 38,147,129,101, 89, 60,127,254, 28, 61,123,246,180, 89,177, 98,197,111,132,144,234,148, 82, 35,222, 18,100,104, 97,188, 29,150,
-101, 19, 84,203, 37,124,221,218,249, 45, 70,142, 66,193,208, 33, 23, 84,203, 57,252,118, 88,162, 77, 35,103, 24,109,229,101,243,
- 28, 59,253,242, 83,131,233, 88,143, 99,199, 67,251,127, 57,113,130,180, 90,181, 90, 73,167,127,191,233,221,158,251,134, 56, 56,
- 90, 35, 53, 37, 11,207, 95, 36,226, 73,180,129, 86,171, 86, 43,233,198,181,123,138,197, 75,151,249,229,106,116,187,126, 63, 23,
-127,184,156, 78,153,142, 16,210,107,201, 79,138,115, 67, 62,110, 44, 87,169,220,145,150,114, 15,222,222, 78,232,217,189, 46,126,
-221,124, 9, 54, 54,246,112,113,113, 1,195, 48, 22,230,230, 61, 37, 37,133,236,221,113, 97,248, 71, 67, 71, 52,235,220, 41,152,
- 59,126, 34, 68,114,246,228,161, 75,191,173,155,177,159,178,185,106, 66,179, 85, 85,124, 93,239, 70, 61,190,253,193,187, 29, 6,
- 66, 37,179,170, 1,212, 44,177,194, 22, 78, 48,160,120,193, 48, 80,126, 52,116,100,243,206,157,223,227, 78,156, 56,128, 19, 71,
- 55, 95,153, 59,183,202,209,167,177,219,100,151,175,199, 40,123,245, 29,147,126,228,216,125,195,251, 61,124, 35,221, 45,234,107,
- 33,226,213,142,164, 68,146,200,233,245, 94,158,157, 59,179,154,232,104,169,165,139, 11, 7, 0, 38,147,169, 92,161, 5, 64, 48,
-135,211,220,180,104, 52, 26, 8, 0,103, 14,103, 66, 82, 82,149,252, 78,120, 33, 76, 38, 83,161,200, 74, 77, 77, 69, 70, 70, 6,
- 44, 44, 44,144,172,215,187,152,195,217,169,105,211, 77, 95,127,245,213,228, 61,123,247,202,138,138,172,130,143, 84, 42,197,194,
- 69,139,100,159,127,249,229,152,177, 18,201,248,138,220,207,130, 78, 59,203,178,144, 72, 36,136,142,142,198,139, 23, 47, 16, 29,
- 29,141,232,232,104,168, 84, 42,208, 82,238,231, 27,180,104,145,255,106, 61, 45, 24, 58, 44, 58,132,104, 86,120,135,138, 56,195,
-155, 43, 12,120,158,127,163, 66, 43, 55, 55,247,244,153, 51,103,154,246,234,213, 75,114,229,202, 21,184,186,186, 22, 10,173,130,
-239,130,225, 40,181, 90,141,253,251,247, 27,115,115,115, 79,151,243, 48,157, 57,122,244,104,163, 57,115,230, 72,135, 13, 27,134,
-136,136, 8,140, 26, 53, 10, 25, 25, 25,200,202,202, 66,106,106, 42, 52, 26, 13,154, 54,109, 10,165, 82,137,187,119,239,154, 52,
- 26,205,153,114, 26, 7,154,148,148,148,227,228,228,228, 86,252,191,190,125,251,186,172, 90,181, 74,243,224,193, 3, 83,139, 22,
- 45,172,205, 21, 28, 5,216,177, 99, 71,161,165, 46, 50, 50, 18,171, 86,173, 42,244,201,186,121,243, 38,126,248,225,135,194,216,
-103, 21,180, 50, 94,175, 93,187, 54,103, 50,153, 80,163, 70, 13,120,120,120, 64,167,211, 97,217,178,101,220, 95, 33,178,204,133,
- 78,167,219, 51,100,200,144,169,183,110,221,114,147, 72, 36,121, 38,237,252,252, 25,141, 70, 60,126,252, 24,225,225,225,120,240,
-224, 1,210,210,210, 10, 59, 2,183,111,223, 78, 55,153, 76,187, 74,227,117,114,114,154,245,235,175,191,186,170,213,234, 87,234,
-115,129, 53,180,192, 74,154,156,156, 12, 91, 91, 91,180,111,223,222,249,204,153, 51,179, 0,204,121, 27, 26, 52, 66, 8,121,183,
- 13,219,248,243, 79,123,161, 79,119,245,203,125, 71, 98,255,248, 97,241,164,124,103,120,231,240, 62,221, 61, 94,222,121,104,139,
-190,189, 15, 52,254,253, 28,137, 41,203,151, 46,223,199,234, 96,211,166,246,103,247, 29, 58,244,219,244, 41, 19,111, 78,158, 52,
-194, 73,163,141, 82, 86,243,145, 19, 0,120, 18,109,160,119, 35, 4,221, 15, 75, 38,222,156,191,104, 5,147,152,154, 49,234,234,
-213,210,195, 27, 20, 21, 47,181,253,161,172, 86,179, 77,156,159,127, 75,223, 43,151,182,194, 82,173, 69, 64,205,198,232,220,233,
- 29,156, 13,189,141,132,100, 29,226,227,227,161,215,235,203, 12,151,240,224,238,254,193,148, 80,111, 66,201, 11,194, 80,229,224,
- 33,159,180, 10, 14,126,143, 30, 57,114,136, 59,176,127,235,197, 93, 91,126,218,195,200,164, 18,173,193,198, 64,136, 46, 19, 76,
- 88, 68, 78,110, 94,135, 70,170,144,149,110,126,205, 15,236, 26, 88,187,166,235,224, 33,163,108,186,117,237, 73,143, 30, 61, 32,
-236,218,185,233,236,174, 13,117,182, 10, 76,150, 44,254,165, 70,145,153,101,202,164, 68,110,155,147, 37,104, 18,159, 84,215,185,
- 7,247,125,107, 68,251, 27,235,112,235,245, 49, 57, 47, 95,186,217,183,105,163,120,252,213, 87,106,151,166, 77,117, 36,223,135,
-184, 44,161,197,178, 44,192, 48,130, 57,156,230,166, 69,171,213, 66, 0, 76,149,225,228, 56,238, 21,145, 85, 32,180, 10,236, 26,
-230,112,174,155, 59,247,138,119,231,206,105,161,161,161, 46,109,219,182, 37,217,217,217,200,206,206,126, 69,108,185,187,187,147,
-192,160, 32,245,142,179,103,171,205, 49,243,126,154,147,119,134, 97,254,114,161,245, 95, 70, 73,150,172, 87, 44, 90,165,161,192,
-162,101,142,208, 50,211,162,101, 50,153, 76,112,118,118, 70, 74, 74, 74,169, 13, 63,195, 48, 80,169, 84, 5, 99,196,101,206,188,
-211,235,245,203, 38, 79,158, 60,174,107,215,174,142, 1, 1, 1, 72, 78, 78,134,139,139, 11,148, 74,101,161,239, 88, 1,223,205,
-155, 55,241,235,175,191,102,233,245,250,101,229,112, 46, 93,180,104,209,167,125,250,244,177,119,117,117,133,157,157, 29,238,222,
-189, 11, 59, 59, 59,100,101,101,225,225,195,135,176,178,178, 42,244,219, 57,116,232, 80,182, 94,175, 95, 90,142,120,163,231,207,
-159, 55, 90, 89, 89,221, 77, 78, 78,102,211,210,210, 36,233,233,233,146,172,172, 44,105,102,102,166,244,248,241,227,142, 54, 54,
- 54,154,223,127,255, 61,217,219,219,155,125,250,244, 41,107, 50,153, 24, 51, 26, 71,140, 31, 63, 30, 50,153, 12,122,189, 30,203,
-150, 45,195,228,201,147, 11,125,178, 22, 45, 90,132,153, 51,103, 22, 10,231,245,235,215, 87,180,242,192,104, 52,194,100, 50,193,
-100, 50,153, 37,126, 95, 7,230, 8,118, 74,105, 2, 33,164,123,147, 38, 77, 78,238,222,189,219, 33, 63, 38, 25, 18, 19, 19,145,
-152,152,136,228,228,100,228,228,228,128,227, 56,120,120,120, 32, 49, 49, 17, 7, 14, 28,200,204,206,206,238, 92,214,140, 67,150,
-101,135,180,106,213, 74, 82, 60, 13, 5,189,188, 2,241,174, 80, 40, 16, 23, 23,135,118,237,218,201, 67, 67, 67,135,252,215,133,
- 86,129,128,169,229, 7, 89,167,206,195,101,181,106, 55, 55,220, 9, 63,242,178,166,111,226,203, 65, 61,173, 67, 0,224,118, 88,
-162,205,157,135,182,168, 85,187, 59,237,212,217,174, 81, 98,194,186, 58,129,254,196, 88,214,114, 61, 0, 96,163, 86,244,235,216,
-161,105,156,149,133, 5,243,195,146,245,199, 86,175, 94,218,112, 79,200,255,194, 59,252,176, 36, 47,188, 67,199, 14, 77,133, 7,
-247, 31,244, 3,176,193, 92,241,210,189,123,143, 91,191,110,252, 21, 15,194,127,119,159, 58,190,174, 60, 45,209, 4,149,165, 23,
- 26,213,119,193,186,141,247,112,231,206,157, 4,131,193,208,174,204,186, 68,168,119,120, 68,152,127,157,218,129,174,131,135,140,
-180,238,222,189, 39,142, 28, 57,136, 45,155, 54,156,127,127, 96,159, 95, 98,211,179, 88,103,169, 90,166,166,130,156,149,217, 72,
-100, 10, 85,146,193,144, 55, 7, 66, 42, 85, 90, 3,253,132, 50, 70, 14, 49,122,228, 32,155,119, 59,244, 68,200,209,131,216,178,
-105,221,185,217,181,251,110,240,109, 80,139, 52,109,184,120,140,111, 85, 95,159,220,156,196, 44,134,200,141, 58,157, 96,181,120,
-211,243, 31,159,204, 28,242,228, 86, 88,191, 37,226,172,195, 87,112,119, 75,183,110, 77, 62,143,138,146, 57,181,108,169,138, 59,
-123, 86,157,191, 18, 73,153, 66, 75, 34,145,128,150, 62,212,245, 10, 39,217,188,153, 1, 80,230, 36, 44,153, 76, 6,141, 70, 3,
- 19, 96, 52,135,211,237,196,137,151, 81, 81, 81,126,246,246,246,175,136,172,180,180,180,194,223, 58,157, 14, 26,141, 6, 42,149,
- 42,220, 28,206,196,243,231,117, 11,198,143,159,243,193,192,129, 63,157, 62,115, 70,233,224,224,128,204,204,204, 87,132,150,193,
- 96,192,187,237,219,203, 22,221,186, 53, 24,192, 92,115,238,167, 75,187,118,229,250, 3,179, 44, 11,225, 47, 30, 58,124, 11, 58,
-171, 35, 75, 18, 94, 76,121, 67, 56,230,206, 58, 44,169,129, 36,132,116, 40,182,107,102,163, 70,141,116,145,145,145,240,246,246,
- 46, 20, 43, 69,175,105,109,109, 13, 91, 91, 91,220,188,121, 19,223,125,247,157, 22,192,204,178, 56, 41,165,217, 26,141,102, 64,
-199,142, 29,181, 18,137, 4, 53,107,214, 44,140,159, 37, 8, 2,228,114, 57, 44, 44, 44,112,235,214, 45,244,232,209, 67,163,209,
-104, 6, 20,143,161, 85, 2,103,166, 70,163,249,176, 83,167, 78,154,136,136, 8,180,106,213, 10,119,238,220, 65, 78, 78, 14,114,
-114,114,240,236,217, 51, 4, 6, 6, 66,163,209, 96,213,170, 85, 90,141, 70,243, 33,165, 52,179, 44,206,236,236,236, 30,147, 39,
- 79,102,183,111,223,238,235,225,225, 81,187,113,227,198, 1,237,219,183,175,222,187,119,111,159,110,221,186,185,249,249,249,233,
- 58,119,238,236,212,181,107, 87, 39,141, 70, 35,253,227,143, 63,226, 77, 38, 83,215,114,238,103,161, 56,137,140,140, 44, 28, 42,
-148, 72, 36, 72, 73, 73, 41,140,220, 95,240, 82, 42, 73, 8,151,198, 89, 84,108, 23, 8,172, 2,193, 85, 94, 27, 80, 10,103,185,
- 13,135, 92, 46, 47,176,120,210,242, 56, 41,165,183,239,223,191,223,177, 77,155, 54,183,135, 15, 31,158,157,144,144, 0, 43, 43,
- 43, 84,171, 86, 13,254,254,254,112,116,116,132,209,104,196,254,253,251,115, 15, 28, 56,112, 47, 51, 51,179, 93,241, 24, 90,197,
- 57, 25,134,121, 86,210, 75,182,192,154, 85, 32,180,148, 74, 37, 60, 60, 60, 10,238,237,179,138,220,207, 74, 62,188,127, 45,103,
-190,128,105,255,110,231,170,221,130,123,217,236, 63,120, 73,254,211,202, 3,247, 26,117,192,122,135, 42, 89,135, 28,170,100, 29,
-106,212, 1,235,127, 90,121,224,222,254,131,151,228,221,130,123,217,180,127,183,115,213,136,240, 7, 1,175,172,123, 88, 66, 58,
-149, 74,101,243, 86, 45, 27,165,135, 94, 60, 39,204, 95,180,130,121,183,221,251,183, 54,252,178,127,255,134, 95,246,239,127,183,
-221,251,183,230, 47, 90,193,132, 94, 60, 39,180,106,217, 40, 93,169, 84, 54, 55, 39,239,163, 71, 14,178, 9,238,214, 19, 71,142,
-236,231,246,236, 88,181,104,231,222, 71,109, 62, 25,119, 62, 49, 50,242, 14, 77,138, 57, 1, 41, 19,141,251,247,239,103, 26, 12,
-134,118, 37, 57,194,151,196, 57,106,196,160,162, 34,235,130,131,107,171,245,247,239,131, 63,117,234,176,233,204,153, 91,218, 11,
-183,147, 50,111, 68,164,164,197, 37,167, 61,205,202, 74, 53, 8, 2, 15,158,231,217,175,191,206,115,216, 45,173,140, 90,180,104,
-139,223, 79,111,195,166,141,107, 51, 5, 1,186,190,187,119,243,253,250,125, 69,125,170, 84,241,217,186, 99, 27,233,254, 94, 47,
- 27, 10, 8, 61,250,244,180,221,190,115, 59,169, 90,163,106,149,106,213,242, 66,218,252, 39,235,210, 95,192, 57,151,210,244,172,
-232,232,115, 55, 87,172,208,187, 12, 24, 96, 47,119,113,177, 6,207,147,130,247,123,105, 31,137, 68,242,138, 5,166, 44, 78, 15,
- 71,199,216, 67,135, 14,193,223,223, 31, 30, 30, 30, 40,234, 35, 91, 16,144,219,193,193, 1,123,247,238, 5, 5,110,152,195,217,
-192,215,247,230,194, 5, 11, 12,130, 32, 32, 61, 61,253, 79,214,172,244,244,116, 8,130,128,163, 33, 33,134,172,156,156, 77,230,
-230,189, 29,203,230,124,208,186,245,252,224,224, 96, 99, 84, 84, 20, 4, 65, 64, 81,203, 86, 82, 82, 18, 44, 45, 45,161,211,235,
-189, 8, 33,106,115, 56,147,142, 31,183, 64, 57,239,245,226, 22,173,191,162,220,255,235, 34,171,232,130,210, 69, 69, 87,153, 22,
- 45,142,227,224,229,229,245,202,146, 46, 12,195,188,242,169,200,140, 67, 74,233,102, 66,200,137,206,157, 59,207,105,214,172,217,
-232, 57,115,230,176, 1, 1, 1,200,204,204,132,157,157, 29,156,157,157,241,240,225, 67, 28, 58,116,136, 79, 73, 73, 89, 3, 96,
-158, 57, 83,232, 41,165,103, 9, 33,221,235,214,173,187,115,218,180,105, 54,157, 58,117,146,122,121,121,129, 82,138, 91,183,110,
- 97,223,190,125,198, 13, 27, 54,100,229,139,172,179,102,166,245, 36, 33,228,253,174, 93,187,110, 29, 50,100,136, 21,207,243,210,
-103,207,158, 65,175,215,195,100, 50,225,197,139, 23,198, 35, 71,142,228,104, 52,154, 65,148,210,147,102,240,221, 36,132, 4,158,
- 58,117,106,200, 31,127,252,241,221,240,225,195, 29,218,183,111, 47,227, 56, 14, 23, 47, 94, 76,110,208,160,129,115, 82, 82,146,
-113,239,222,189,169, 58,157,110, 38,207,243,102, 45,193, 67, 8, 65, 86, 86, 22, 28, 29, 29,161,215,235, 33, 8, 2, 12, 6, 3,
- 44, 45, 45, 11,151, 77,162,148,162, 34,206,245,197,234, 0,107, 52, 26, 49,112,224, 64, 8,130,128,101,203,150,129,227,184, 10,
-147,217,216,216,220,184,125,251,118,247,250,245,235, 23,138,151,130, 58,164, 80, 40,224,232,232, 8, 7, 7, 7, 28, 57,114, 4,
- 82,169,244,134,153,101,116, 7, 64, 3, 66, 72,243,123,247,238,125, 4,160,190,209,104,244,224,121,158, 48, 12, 19, 79, 41,189,
-155,149,149,245,139,185, 75,240, 36, 37, 37,125, 55,116,232,208, 6,219,182,109,179,148, 72,254,247,104, 72, 36, 18, 40, 20, 10,
- 20, 4,199,164,148,194, 96, 48, 96,214,172, 89, 89,185,185,185,223,189, 45, 47,138, 70,141,155, 98,221,170,229,150,103,126, 63,
-145,124,255, 17,246, 21, 13,225, 96, 43, 7,126, 63, 71, 98, 18, 19,214,213,137,123,249,210,178, 81,227,166,102,113,154, 12,198,
-212, 15, 7,125,225,157,191, 4,207,172,103,207,158,175,221,186,249,199, 39, 0,176,120,233, 50,191,196,212,140, 81, 15,238, 63,
-232,183,118,237,142,230, 38,131, 49,213, 28,206,255,137,151,173,153,160,208, 81, 74,175, 18, 66,124,123, 12, 56, 62,179, 70, 85,
-235,247,146, 82,181,177, 57, 57,154,207, 40,165, 79,204,205,123,203, 22,109,240,251,201,237,216,178,105,107, 22, 21, 88,157,163,
-163, 35, 5,128,251,247, 29,233,253,251, 25,244,127,126,197,182,185, 82,122,103,222, 23,159,181,255, 34, 51, 43,109,233,210,149,
-101, 7,174,173, 91,175, 25,234,214,107,134,113,159,205,176, 9,172, 93,211, 27, 0,118,239,166,124,144, 31, 57, 60,103,246, 87,
-239,205,155,247, 21,178,178,245,152, 55, 47,111,185,158,135, 97, 17, 33, 81, 81,212, 32, 54, 91,175, 98, 14,199, 93,197, 23, 95,
-248,105,210,210,156, 90, 78,157,234, 40,249,242, 75,166, 44,103,248,162,207,175, 57,156,215,239,222, 13, 25,245,201, 39,177,115,
-231,204,233,188,102,237, 90, 85,157, 58,117,144,144,144,128,154, 53,107,194,195,195, 3,167, 78,157,194,222, 93,187,114, 51,178,
-179,103, 2, 88,109, 14,231,230,163, 71, 31, 6,212,174,157,178,118,237, 90,247,224,224, 96,146,155,155,139,204,204, 76,100,102,
-102, 66,175,215, 35, 63, 32, 52,141,124,244,232,190,201,100, 90, 99,110,222,249,228,100,229,188,166, 77, 99,100,130,176,240,253,
- 62,125, 38,207,251,230, 27, 69,213,170, 85,137, 94,175, 47,180,106, 25,141, 70, 88, 90, 90, 26, 13, 6,131, 3, 0,141, 57,156,
-138, 13, 27,184,228,228,100, 56, 57, 57, 21,134,107, 42, 26,151, 48, 59, 59, 27,148, 82, 49,152,110,101, 68, 88,105,109,185,189,
-189,253, 13,137, 68,226, 89,212,186, 85,210,218,121, 69,247,153, 76,166,152,228,228,228, 70, 69, 21, 47,165,244,116, 41, 2,161,
- 26,128,239,223,125,247,221,247, 39, 77,154, 68, 66, 67, 67,113,224,192, 1,250,228,201,147, 61, 0,102,150,246,146, 44,135,211,
- 74,161, 80, 76,176,176,176,232, 80, 16,194, 65,173, 86,223,203,205,205, 61,173,215,235,151,149, 22, 13,190, 28, 78,107,133, 66,
- 49,222,194,194,162, 99,118,118,118,125, 0,176,178,178,186,157,155,155,123, 74,175,215, 47, 47,109,161,234,114, 56, 85, 54, 54,
- 54,223, 57, 58, 58,126,248,229,151, 95, 58,156, 63,127, 62,254,247,223,127,151,101,100,100,108, 51, 24, 12,165, 46, 42, 93, 18,
-167,131,131,195, 13,150,101, 61,255,138, 50, 2,128,122,245,234, 29,233,209,163, 71,240,160, 65,131, 96, 50,153,176,122,245,106,
-156, 58,117, 42,228,209,163, 71,221,203,234,141, 22,231, 36,132, 56,122,122,122,134,142, 30, 61,218,103,224,192,129,106, 59, 59,
- 59, 72, 36, 18,228,230,230,226,241,227,199,184,117,235, 22, 61,120,240, 96,206,205,155, 55, 99, 52, 26, 77, 91, 74,105,138,185,
-247,243,117,122,205,197, 57,165, 82,105, 27, 47, 47,175, 29,115,231,206,181,234,216,177,163,202,193,193, 1, 44,203,194,100, 50,
- 33, 62, 62, 30, 97, 97, 97, 56,113,226, 68,238,158, 61,123,114, 83, 83, 83, 7, 82, 74,207,253, 19,233,124,147,156,129,254,100,
-118,177,133,162, 75,141,246, 94,214,177,230,164,179,125, 91,247,158,253,222,239,218, 5, 0,118,239, 61,118,252, 76,104,220,193,
-202,166,179,188,180,154,195, 89,203,143,157, 27, 30, 17,246, 74, 64,203,218,129, 65,145,181,234,244,249,214, 28,174,130,200,240,
-197,243, 94, 36,218,126, 81,155,238, 43,195,172, 5, 11, 79,207,152, 57, 29,223,127, 55, 31, 7,119,239, 15,137,136,162, 71,254,
-203,117,233,175,228, 44, 88, 4, 89,237,230,214,122,153, 32, 76,191, 19, 22,102, 89,180,195, 86, 96,121, 46,218,169,116,119,119,
- 79,138,139,139,115, 49,135,179,251,207, 63, 27, 53, 22, 22,138,233, 11, 23,182,201,209,233,218,204,155, 55, 79,114,253,250,117,
-172, 90,177,130,211,197,196,108, 77, 6,198,151, 52, 26, 82, 22,167,207,248,241,202, 41,171, 86, 13,171, 86,163,134,243, 71, 31,
-125, 36,149, 74,165,200,205,205,197,203,151, 47,113,242,196, 9, 67,196,253,251, 17, 89, 89, 89,239, 81, 74,227,204,229,236,254,
-243,207, 70,219,106,213,160,118,114,162,103,206,158,181, 25, 53, 97,194,232, 42,190,190, 54,157,187,116,145, 90, 91, 91, 35, 61,
- 61, 29,207,158, 61,195,254,253,251,147,114,114,114,220, 41,165,188, 57,156, 91,255,248,163,238,209,115,231,250,126,251,237,183,
-242,160,160, 32,216,216,216, 32, 59, 59, 27, 97, 97, 97, 56,119,238,156,126,205,154, 53,153,153,153,153,163, 57,142, 59,244, 87,
-149,251,219, 58,116, 72,254, 74, 87, 0,115, 10,130, 16,210, 8,192,236,252,205,111,204, 88, 51,240,173,121,249, 16, 66,188,237,
-237,237,215,233,116, 58,170,213,106, 71, 81, 74, 95,252,219,210, 73, 8,145, 52,106,212,104, 85, 82, 82, 82,115, 74, 41,108,108,
-108, 46,133,135,135,143,165,148,114, 21,229, 36,132,176, 0,154, 91, 90, 90, 54,181,178,178,106,163,215,235,107,229, 15,191,221,
-207,205,205, 61,103, 52, 26,175, 2,184, 68, 41,229,255,201,188,231,167,179,163,187,187,251, 39,130, 32,212, 32,132,216,242, 60,
- 15,147,201,148, 33, 8,194,227,204,204,204, 13, 0, 78,253,211,233,124, 83,156,181,107,144,222,148, 65,173,210, 4,193, 43,194,
-166,152,128, 32, 2,238,135, 63,166,251, 43, 80,231,153,174, 29,188, 86, 2,121, 51, 19,203, 91,202,232, 21,161,101,134,120,169,
-176,200,172, 33, 25, 74, 9,245,126,181,247, 73, 94,212,172,219,123,203,235, 8, 45,115, 81, 59,128,180, 1, 69,115,129,226,234,
-253, 71,244,247,183,245, 93,247, 38, 57,231, 19, 98,191,194,206,238, 18, 35,145,184, 2, 96,242,173, 47,130, 64, 8, 79, 9,225,
-138, 14,111, 21,237, 88,150,199,105, 4,234, 72, 21, 10, 47,158,227, 92, 18, 0,203,163, 60,223, 80, 71,105,142, 39, 48,251, 22,
-165, 15, 43,147, 78, 35, 80,135, 85, 40,188,143, 82,218, 51,217,194,162,110,146, 86,235, 4,128, 90, 90, 88,220,207,202,205,221,
-164,211,233, 86,150,176,120,123,185,156, 50,133,194,147,231, 56, 23, 0, 96, 36,146,164,157,122,189, 87,140,181,245, 71, 58,189,
-222,199,210,210,210,100, 48, 24,178,116, 58,221, 32,147,201,116,166, 34,121,127,204,113,129,127, 48, 76, 43,163,133,133,131,145,
- 16, 11, 3,199, 25, 13, 70,227, 75,157, 78,119, 15,192,143,148,210,168,191,178,220,223, 90, 20,204, 78,251, 43, 62, 0, 58,136,
-156, 34,167,200, 41,114,138,156, 34,167,200,249,215,115, 2, 80, 3,240, 6,192,254, 23,243,254, 54,125, 0,140, 44,248, 45, 17,
-165,166, 8, 17, 34, 68,136, 16,241, 86, 24, 78, 52, 40,193, 39, 75,196, 63, 11, 2,160, 67, 41, 5,102,182, 73,176, 50,179, 15,
-204, 24, 98, 16, 57, 69, 78,145, 83,228, 20, 57, 69, 78,145,243, 45,227, 44,143,251,191, 56, 36, 89,214, 90,135,226,208,161,200,
- 41,114,138,156, 34,167,200, 41,114,138,156,226,208,225, 95,244, 97, 32,162, 52,117,234, 66, 8,113,121,211,199,138,120,187,235,
- 66, 9,231,122, 16, 66, 60, 42,120,188,155,120,215, 69,136, 16, 33,226,237,192,223, 46,180,204,109,180, 94,179,113,123, 45,225,
- 67, 8,153, 79, 8,226,242, 62,100,254,155, 58,214,140,235,186, 59, 57, 57,125, 94,187,118,237,173,174,174,174,227, 8, 33,206,
- 21, 60,223,207,194,194, 98,185,165,165,101,168,165,165,101,168,133,133,197,114, 66,136,223, 27, 42, 55, 66, 8, 25,165, 84, 42,
-207,186,187,187,199, 42, 20,138,179,132,144,209,164,146, 11, 92, 18, 66, 2, 8, 33,243, 8, 33,223, 16, 66,234, 86,228, 92,151,
-160, 94,187,156,131,122,221,117, 14,234, 21,230, 88,231, 61, 63,231,160, 94, 97,206, 65,189,238,186, 4,245,218,245, 23,212,215,
- 74,151,111,254,185, 47,242, 62,229,159, 75, 8,249,145, 0, 47, 9, 65,204,235,214, 37, 17, 34, 68,136, 16,241,239, 64,133,156,
-225, 61, 60, 60,222,167,148,142, 2, 64, 9, 33,235, 98, 99, 99,247, 86,162,225,153,146,255,123, 17,165,116,250,235, 28,103,198,
-185, 75, 41,165,147, 43, 46,210, 48, 69, 16, 40, 3, 0, 12, 67,166,186,184,184,168, 89,150,253,147,131, 33,207,243,106, 66, 48,
- 78, 16, 40,201, 63,118, 10, 33,100, 57,165, 52,177, 50,226,112,240,224,193, 75,151, 47, 95,174, 84,171,213,136,142,142,238, 52,
-122,244,232, 22,132,144, 47, 40,165,241,229,157,175, 82,169, 62,104,210,180,249, 23, 11, 23, 47,177,116,113,118,182,224,120,193,
-248, 44,250,185,122,214,180,201, 77, 85, 42,213,242,178, 22, 83, 46, 46,168, 0,140,148, 72, 36,253,149, 74,101,117,157, 78, 23,
-197,113,220, 30,150,101, 59,127,247,221,119, 65,221,186,117, 83,102,101,101,201, 57,142,171,177,101,203,150, 47,126,253,245,215,
-174,132,144,158,101, 77,211, 47,176,232, 80, 74, 99,139,236,238, 27, 29, 29,221, 72, 38,147,145,106,213,170, 49, 0,238,150,115,
-124, 33, 40,224, 23,126,113,119, 29, 0,168,221,178, 95,100,248,197,221,200,255,253, 23,116, 10, 94,173, 11, 74,165,114,141, 78,
-167,123, 81,240,127,126, 58, 19,205, 57,151, 16,242, 83,254,242, 65,141, 0,124,148,127,232,102, 74,233, 13, 66,136,171, 82,161,
-152,160,213,233, 8, 0,242, 58,117, 73,132, 8, 17, 34, 68,252,237, 70,164, 6,148,210, 91,249, 35, 18,193, 0, 66, 10,218,238,
-138,206, 58,252,244,209,163, 71,150, 0,224,239,239, 63, 22,192,222, 10, 36,226, 79, 13, 79,251,246,237, 27,168, 84,170, 87,162,
- 32,107,181, 90, 57, 33,104, 95, 25,241, 82,112, 13,131, 65,207, 72,165,114, 48, 12,249,162,110,221,186, 85, 82, 82, 82,206, 51,
- 12,179, 53, 38, 38, 38,189, 18, 55, 15,235,215,175,247,119,115,115,251, 83,180,230,248,248,120,121,207,158,239, 85,136,111, 24,
- 33, 10,189, 66,209, 84, 70,136, 27,207,113,182, 0, 32,145, 72,210, 3,108,108, 26,125,255,237,183,106, 66,136,144,154,154, 10,
-173, 86,139,137, 19, 39,170, 34, 34, 34,122, 1, 88, 89, 78, 26,253,155,189,211, 98,226,137, 19,199,107,101,165,165,235,214, 47,
- 93,123, 83, 43,145,105,124, 3,107,202, 86,173,219,100, 55,114,216,160,207, 8, 33,183, 75, 90,142,164, 24, 15, 3, 96,255,132,
- 9, 19,106,119,239,222, 93,158,157,157,173,212,106,181, 85,182,110,221, 58,171, 81,163, 70,150,245,235,215,151,239,216,177,131,
-100,102,102,130, 82,170,174, 89,179, 38,237,223,191,191,110,231,206,157,227, 0,252, 84,158,240,101, 89,118, 89, 64, 64,192,220,
-252, 60,203,138, 28, 35, 13, 12, 12,180, 0,128,135, 15, 31,126, 77, 8, 38,148, 37,178, 9,240,168,118,203,126, 0, 65,141,240,
-139,187,149,181, 91,245,211,129,226, 49, 1, 30,229,119, 8,230, 1, 69,226, 66,189,138,251,177,177,177,149, 90,155, 48, 56,184,
- 59, 33,132,236,113,119,119,223,155,148,148,228, 75, 8, 70,152,219, 25, 32,132, 16, 7, 7,135,161, 0,230, 3,248,228,254,253,
-251, 13, 0,160, 86,173, 90, 50, 0, 55,172,173,173, 91, 24, 13, 6, 34,190,174, 68,136, 16, 33,226, 63,137, 6, 0,110, 1, 8,
- 46,178, 4,207,186,202, 8, 45, 57, 0,156, 63,127, 30, 0, 20,149, 17,125, 69, 5,204,248,241,227,225,230,230, 86, 92,188, 32,
- 52,244,236,235,100,246,149,107,124,243,205, 55,150, 25, 25, 25, 29,126,249,229,151,214, 30, 30, 30, 63,196,198,198, 94, 41,235,
-100, 74,105, 34, 33,100, 81,190, 5, 2, 10,133, 50,114,244,232,209,183,242,255,174,114,248,240, 97,117,143, 30, 61, 52, 0,158,
- 3,128, 66,161,244, 96, 89,198, 63,207,233, 13,139,202, 18,132,253, 8,169, 38,151,203,223, 29,245,243,207, 92,195, 30, 61, 36,
- 22, 78, 78, 4, 0,158, 63,120,224,176,104,241,226, 22,233, 79,158,200,181, 14, 14,169,169,185,185,218,200,200, 72, 40, 20, 10,
-194,178,108,195,242, 50,108, 97, 97,241,249,183,223, 47,180,200, 74,203,208,234,178,178, 13, 44,103,210, 91,169,212,124, 98, 66,
- 82,170,165,202, 66, 51,117,246, 87,242, 79, 71, 12,249, 28,192,216,114,168,198,125,241,197, 23,181,154, 52,105,226,177,107,215,
- 46,146,153,153, 9,137, 68, 98, 89,191,126,125, 52,106,212,136,255,253,247,223,137,175,175, 47,130,130,130,112,241,226, 69, 92,
-186,116,137, 52,104,208, 64,189,111,223,190,193, 37, 9,173,226,226,154,101,153,137, 53,107,214,172,111, 97, 97, 97,240,247,247,
-199,136, 17, 35, 64, 41, 69,135, 14, 29,130, 44, 45, 45,247,230,230,230,202, 31, 62,124,208,186, 60,145,157, 24,118,160, 63, 0,
- 56, 7,245,186, 11,160, 14, 40, 30, 39,133, 29,168, 91,228,144, 90, 15, 31, 62,108,150,158,158, 94,232,140, 88,176,128,121,235,
-214,173,205,174, 72, 5,117,161, 71,143,238, 83, 1, 66, 58,116,232,144, 49,110,220, 56,230,193,131, 7, 31,246,238,221, 43,232,
-209,163,199, 40, 45,157,197,234, 17, 25, 58,116, 88,162,165,165,101, 31,119,119,247,135, 0, 36, 50, 89,161,206,100, 93, 92, 92,
-156,234,214,173, 59,198,222,222, 62,137,101, 24,103, 10, 74,203,171, 75, 34, 68,136, 16, 33,226, 95,133,144,124,113, 21, 82,252,
- 15, 9, 0,132,132,132,208,255,245,218,131, 73, 89, 13,207,157, 59,119,188, 52, 26, 13,204,105, 4,138, 78,209,164,148, 38,178,
- 44,187,138, 97,200, 88, 66, 8,130,130,234, 60, 93,182,108, 89, 73,107,122, 25,130,130,234, 60,101, 89,166, 42,165, 20,132, 48,
-171, 5,129, 79, 44,137,179,180,134, 81, 46, 87, 76, 1, 0, 87, 87,183, 39,199,142, 29, 51,244,237,219, 23,139, 23, 47,150, 77,
-155, 54,109,178,143,143,207,184,232,232,232,132,210,210,153,191, 61,221,197,197, 69,189,126,253,122,255,209,163, 71,223,138,139,
-139,155, 14, 0,238,238,238,243, 1, 4, 2,120, 94,100, 31,214,172,217, 25, 59, 98,196,136,200,196,196,196,233,165,113,190, 79,
- 72,117,159,154, 53,223,157,119,254, 60,101,244,122,146,114,225, 66, 86,114, 98,162, 41, 42, 57, 89,189,241,198,141,238,179,230,
-207,151,122,121,123, 35,244,208, 33,199, 20,141, 38, 57, 83,175,215, 37, 38, 38, 82,142,227, 46,153,145,247,218,206, 78,206,234,
-181, 63,174,190,110, 37,101, 5,103, 79, 15, 34,181,183,151, 48,106,107, 57, 43, 97,244, 85,171,248,201, 1,212, 46,175,140,100,
- 50,217,224, 78,157, 58,169,119,238,220, 73,130,130,130, 96,107,107,139, 11, 23, 46,224,246,237,219, 72, 79, 79,103, 76, 38, 19,
- 26, 55,110,140,133, 11, 23,194,219,219, 27, 25, 25, 25,120,241,226,133,163, 92, 46,119, 42,227,126,190, 82,159,166, 76,153, 2,
- 55, 55, 55,112, 28,135,180,180, 52,112, 28, 7, 75, 75, 75, 0, 64, 76, 76, 12, 14, 29, 58, 88,110, 93, 50, 83, 36,225,157,119,
-222,201, 38,132,220, 47,110,209,170, 8,167,135,135,199,142,228,228,148,174,239,190,251, 46,210,211,211, 77, 95,125,245, 21,234,
-214,173, 11,127,127,127,115,234,252,116,133, 66,241,139,143,143,207,143,227,199,143,119,179,183,183,135, 94,175,159,149,144,144,
-128, 49, 99,198, 0, 0,186,117,235, 86, 87, 42,149, 30, 27, 62,124, 56,124,125,125, 99,211,210,210, 94,220,188,121,115, 68,110,
-110,110, 88,101,243,110,230,253, 17, 57, 69, 78,145, 83,228,252, 87,113,154,171, 69,254,141,200, 31, 38, 92, 87,100,123,221, 43,
- 66, 43, 56, 56,152,132,132,132, 80, 51, 50,150,234,233,233,233,165, 82,169, 0, 32,181,162, 9,225,121,126,156,163,163, 99,210,
-244,233,211, 91,250,251,251, 27,198,141, 27, 23,246,236,217,179,153, 69,143,241,245,245,253,110,197,138, 21,136,140,140,124, 62,
-127,254,252,139, 41, 41, 41,223, 84, 48,179,211, 8, 33,203,242,173, 99, 41,135, 14, 29,170,123,254,252,249,177, 75,151, 46,117,
-250,244,211, 79,101,159,127,254,249, 32, 0,139,203,227, 97, 89, 86, 83,210,112, 97, 73,112,115,115, 51,148,228,195, 85,128, 30,
-132,168,172,229,242,118,243,206,159,167,134,231,207, 53,191, 46, 89, 98,181,246,218,181,185, 38, 74, 93,156,157,157,209,170, 69,
-139, 28, 37,203,166, 36, 37, 36, 8,206,213,171,179,207,142, 29,115,212,202,229,113, 59,119,238,204, 76, 77, 77, 61, 80,174, 9,
-143,144, 44,129, 82,131,165,167,183,169,111,175,142, 65,215,175,222,126, 96,229,236,200, 52,168, 31, 84,247, 65,228,243,155, 16,
- 4, 35, 33, 36,171, 60, 30, 27, 27, 27,255,212,212, 84,100,101,101,193,201,201, 9,203,150, 45,131,171,171, 43, 52, 26, 13,194,
-195,195,169,167,167, 39, 57,127,254, 60, 60, 61, 61,145,156,156, 12,131,193,128,236,236,236, 36,189, 94,175, 45, 77,248, 74, 36,
-146,223, 24,134, 12, 35,132,160,106,213,106,209, 43, 87,174, 52, 8,130,128, 90,181,106,161,119,239,222,216,183,111, 31,194,195,
-195, 11, 44, 79, 6, 31,159, 42,209, 12, 67,124,242,181, 82,165,173, 58, 5, 75,251,196,198,198,246,169,148, 89,148, 16,198,221,
-221,125,144,159,159,223,216, 15, 62,248,192, 36,151,203,145,155,155, 91,112, 47, 76, 93,187,118,203,232,209,163,187, 77, 72, 72,
- 72,153,233,212,235,245, 79, 92, 92, 92, 62,249,226,139, 47,182,174, 89,179,198,110,230,204,153, 16, 4, 1,148, 82,112, 28, 87,
-184,232,183, 32, 8,216,191,127, 63,162,162,162,190, 43, 42,178, 68,136, 16, 33,226,255, 11, 42,160, 69,254,117, 40,226,155,133,
-226, 98,235,111,143, 12,207,178,236,218,147, 39, 79,214,111,221,186,181,164,125,251,246, 65,158,158,158, 65, 49, 49, 49, 97, 0,
-224,233,233, 25,212,165, 75,151, 32,103,103,103, 44, 95,190, 92,195,178,236,218, 74, 42,203,162,141,222, 45, 55, 55,183, 31,246,
-237,219,183,104,212,168, 81,112,117,117, 13,252,187,243,108,173, 80, 52, 24,190,108, 25, 39, 53,153,152,159,127,248,193,122,201,
-217,179,139,118,237,222, 45,121,231,157,119, 8,165, 20,247,238,222, 85, 45,252,233, 39,245,192, 94,189,158, 63,124,242,132, 59,
-120,226,132, 41, 49, 54, 54, 45, 54, 57,121, 14,165, 52,173, 60,126,147,201,116,249,209,163, 71,238,173,218,188,227,113,238, 90,
-216,237,190,189,186,189, 43,149, 48,228,241,243,152, 27,110,174,142, 54,161,103, 79,107, 77, 38,211,229,242,120,114,115,115,159,
-113, 28,103, 79, 41,117, 10, 13, 13,133,147,147, 19,210,211,211, 97, 50,153, 96, 48, 24, 12, 26,141, 70,153,154,154, 10,157, 78,
- 7,189, 94, 15,107,107,107,220,187,119, 47,145,227,184,223, 75,227,228, 56,110,184, 82,169,252, 70, 42,149,202,101, 50, 89,220,
-141, 27, 55,144,149,149, 85,197,214,214,118, 49,199,113,136,139,139,195,249,243,231,191,180,182,182,126, 14, 0, 74,165, 18,114,
-185,194, 65,175,215,115,165, 57,195,155,107,209,170, 44,220,220,220,188,171, 86,173, 58,111,234,212, 41,181,234,213,171,143,228,
-228,100, 8,130, 0, 11, 11, 11,104, 52, 26, 88, 91, 91,163,121,243,230,207,230,205,155, 23, 79, 41, 70,150, 39, 6, 19, 19, 19,
-147, 61, 60, 60,198,141, 26, 53,234, 27,127,127,255,170,148, 82,248,249,249,161, 83,167, 78, 56,118,236, 24, 34, 35, 35,145,155,
-155,203, 95,185,114,101,123, 92, 92,220, 97,241,117, 43, 66,132, 8, 17,255, 61,157, 88,224,155, 85,212,154,245,143, 8,173,196,
-196,196,100, 79, 79,207,227, 55,111,222,236,222,191,127,127,132,134,134, 14, 5,240, 5, 0, 40, 20,138,161,253,251,247,199,205,
-155, 55,241,224,193,131,227,137,137,137,201,111,226,154,114,185, 92,103, 48,228, 25,167,148, 74,165,178,130,167, 87,201, 31, 50,
- 4,128, 42,101,236, 43, 21,140, 68,226, 86,167, 75, 23, 73,250,237,219, 89,235,175, 94,253,102,235,214,173,146,150, 45, 91, 18,
-147,209, 8, 94, 16, 80,173, 90, 53,210,190, 67, 7,139,223,182,110,181,231,115,115,207,127, 59,117,234,133,117,195,135,231, 68,
- 82,250,220,156, 4,234,245,250,159,198,142,249,164,195,217,208, 11, 30,129, 53,171,219, 31, 63,121,246,150,131,131,141,218,191,
- 70, 13,139,212,244, 52,126,230,180, 47, 37,122,189,254,231,242,120,180, 90,237,254,211,167, 79,247,242,242,242,114, 10, 11, 11,
-131,193, 96, 0,207,243,104,223,190, 61, 40,165, 10, 0,130, 68, 34,193,131, 7, 15, 96, 52, 26,147, 30, 61,122, 20,247,248,241,
- 99, 5,128, 5,101,241,234,116,186,232,162,219, 94, 94, 94, 29,131,131,131,193,113, 28,186,116,233,130,131, 7, 15,118,140,136,
-136, 88, 82, 84,243,189,110,153,231, 91,200,106,121,120,120,236,203,223,101,150, 19,188,167,167,103,144,159,159,223,154, 5, 11,
- 22,200, 60, 61, 61, 65, 41,133,157,157, 45, 52, 26, 13, 82, 82, 82, 17, 24, 24, 8, 47, 47, 47, 44, 88,176, 0, 0,182,155,107,
-113,139,141,141,125, 12,160,127, 96, 96,160, 44, 35, 35,163, 81,199,142, 29,151,119,232,208, 1,183,110,221,194,133, 11, 23, 6,
- 42, 20,138, 36,163,209,200,185,185,185,141, 36,132, 88, 27,141,198,109, 41, 41, 41,241,226,187, 75,132, 8, 17, 34,254, 19, 40,
-240,209, 42,140, 18, 95, 97,139, 86, 96, 96,160, 69,102,102,230, 71, 85,170, 84,145, 3,128, 74,165, 10,172, 94,189,250,228,168,
-168,168,236,138,166, 70,163,209,236,218,186,117,107,167, 31,127,252, 81,214,173, 91,183,234,158,158,158, 77, 0,160, 79,159, 62,
-213,173,172,172,176,117,235, 86,163, 70,163,121, 99, 49,145, 76, 38, 83,235,198,141, 27, 35, 45, 45, 13,207,159, 63,175,208,176,
-204,225,195,135,213,200,243,203, 42,115, 95, 89,224, 12, 6, 59, 91, 15, 15, 38,246,236, 89, 99, 90, 86,150, 91,235, 54,109,136,
-201,104, 4,195, 48, 72, 77, 77,197,139, 23, 47, 96, 99,107, 75, 30, 60,122,100,185, 97,202,148,195, 85,234,213,147,243, 6,131,
- 67, 5, 68, 69, 46, 33,100,216,103,227, 62,221,191,109,219,118,167,140,172,172, 40,149, 74,173, 87, 40,100,174,227, 63,251,140,
- 79, 75, 75, 27, 66, 41,205, 49,131,106,193,182,109,219,186,116,233,210,229,174,183,183,183,115,114,114,178,107, 70, 70, 6,159,
-150,150,198, 34,207,215,138, 0,192,217,179,103,145,149,149,197,241, 60,127, 30,192, 60, 74,169,193,220,180, 86,169, 82,197,166,
-105,211,166,109,157,156,156,144,153,153, 9, 7, 7, 7,212,175, 95,191,109,149, 42, 85,126,121,254,252,121,230,155,172,245,167,
- 78,157,178,162,148, 54,163,148,162, 75,151, 46,102,157,195,243,252,199,193,193,193, 50, 66, 8,180, 90, 13,148, 74, 21, 44, 44,
- 44, 97,101,101, 13,127,255, 0,196,197,197,161,115,231,206,134,168,168,168, 85,241,241,241, 21,174,163,153,153,153, 61,155, 55,
-111, 62,105,204,152, 49,224, 56, 14, 61,123,246,196,203,151, 47,151, 60,123,246,108,167,187,187,251,160,143, 63,254,216,201,193,
-193, 1,147, 38, 77, 82, 1,248, 90,124,119,137, 16, 33, 66,196,191, 31,197,125,180, 74,180,104,149, 53, 38,234,230,230,214,202,
-222,222,126,150, 86,171,149, 23, 12,201, 16, 66,228, 78, 78, 78, 7,221,221,221,231,199,197,197, 85,200, 41, 46, 61, 61, 61,203,
-205,205,237,224,229,203,151,251,245,233,211, 7,167, 78,157, 26,146, 47,180,112,249,242,101, 60,125,250,244, 96,122,122,122,214,
-155,200,188,167,167,103,215,182,109,219,246,105,220,184, 49,142, 28, 57, 2,158,231, 47, 85,228,252,162, 51, 12, 81,194,172,195,
-130,125,102,145,177, 44, 8, 33,224, 56, 14, 0,144,146,156,140,200,135, 15,145,150,158, 14,189, 78,135, 92,141,134,247,247,245,
-213,102, 26, 12, 82, 2,208, 10, 22,114,180,165,165,229, 11, 77,110,174,179,131,157,189, 86,173, 86, 32, 35, 43, 83,118,227,250,
-149, 28, 74,105,148,153, 28, 6, 66, 72,155, 99,199,142,205, 97, 89,182,191,165,165, 37,198,142, 29,203,182,109,219, 22, 50,153,
- 12,122,189, 30, 25, 25, 25,216,186,117,107, 50,199,113, 85,243,235,129,165,133,133,197, 38,150,101, 99,178,178,178,102,149,119,
- 13,131,193,208,173,123,247,238, 18,131,193,128,111,191,253, 22,115,231,206, 69,151, 46, 93, 36,215,175, 95,239, 6, 96,219,155,
-170,244,130, 32,160, 99,199,142, 69,157,225,239,155,115,158, 84, 42, 13,170, 81,163, 6,146,147,147,145,156,156, 12, 39, 39, 39,
-184,187,187,195,213,213, 21, 75,150, 44,161,203,151, 47, 63,110, 52, 26, 87, 37, 39, 39, 39, 86,162, 46,142, 28, 58,116,232,200,
-126,253,250, 33, 39, 39, 7,151, 47, 95, 70,139, 22, 45,176,104,209, 34,183,243,231,207,127,209,184,113, 99, 72,165, 82,132,134,
-134,130,227,184,151,226,171, 75,132, 8, 17,255,223,240, 95,244,207, 42, 15,101, 90,180,188,189,189,109,121,158,255,178, 71,143,
- 30, 29,123,245,234,133,206,157, 59,191,242,255,182,109,219,172,246,238,221, 59,223,203,203,171,139,209,104, 92, 80,145,161, 62,
- 65, 16,246,111,219,182,173,219, 59,239,188,163,110,215,174, 93, 53, 0, 80, 40, 20,134,109,219,182,105, 4, 65,216, 95,209,140,
- 20, 15, 30,233,225,225, 81, 87, 34,145,244,233,222,189,123,221, 97,195,134, 33, 60, 60, 28, 91,183,110,125,236,239,239,127,177,
-130,212,207,203,153,117, 56,191, 60,235, 22, 43,151,167,102, 36, 36,216, 90,122,123, 75,237,172,172,226,143, 28, 57,226,213,161,
- 67, 7,242,242,229, 75,164,167,167, 67,167,211,225,250,245,235,130, 4,136,150,216,217,145,232,203,151, 9, 43,151, 87,120,178,
-129,151,155,157,223,236,105,163,171,232,244,186,218,153,153,153,156, 68, 42,149,122,186,218, 86,168,193,166,148,234, 45, 44, 44,
- 26, 1,144, 8,130,160,177,183,183, 87,159, 60,121, 18,114,185, 28,132, 16,212,169, 83, 7, 74,165, 82,102, 97, 97,241, 2, 0,
- 92, 93, 93,229,107,215,174,181, 25, 52,104,208,133,242,184, 27, 54,108, 40,245,245,245,125,207,223,223, 31,151, 47, 95, 70, 88,
- 88, 88,244,229,203,151,125, 26, 52,104, 0,111,111,239,247, 26, 54,108,184,251,230,205,155,166, 55,212,187,168,148, 51, 60,207,
-243, 2, 33, 4, 12,195, 64, 16, 4, 36, 39, 39,163,106,213,170, 88,185,114, 37,150, 45, 91,246,109, 92, 92,220,161,202,164, 39,
- 48, 48, 80, 86,191,126,253, 33,253,250,245,195,147, 39, 79, 48,127,254,252,148,248,248,248,179, 39, 78,156,120,127,204,152, 49,
-108,139, 22, 45,144,154,154,138,223,126,251,141,187,113,227,198,175, 9, 9, 9,155,197, 87,174, 8, 17, 34, 68,188,197, 66,203,
-219,219,187,159, 76, 38,155, 52, 96,192, 0, 54, 32, 32, 0,137,137,137,176,182,182, 54, 17, 66,164, 0, 96,107,107,107, 82,169,
- 84, 24, 61,122, 52,234,213,171,215,106,202,148, 41, 45, 60, 60, 60, 86,198,198,198,110, 50,231,194,137,137,137, 26, 55, 55,183,
- 61, 99,199,142, 93,112,251,246,173,170, 0,112,237,218,181,167,113,113,113,211, 18, 19, 19, 53, 21, 20, 89, 5, 65, 49,137, 74,
-165,186,234,231,231,247,172,107,215,174,214,189,122,245,130,147,147, 19,110,222,188,137,133, 11, 23, 62, 50, 24, 12,115, 66, 67,
- 67,185,191,251, 38,115,122,125,194,141, 3, 7,172,218,126,248,161,245,248,224,224, 31, 62, 29, 59,246,199,217,179,103, 75, 2,
- 2, 2,136, 70,163,193,213,171, 87,233,222,189,123, 77,191,125,243,205, 50, 88, 88, 72, 47,239,221, 43, 55, 24, 12,209, 21,180,
-150,180,233,214,165, 77,192, 15, 63,254, 4,157, 54, 7, 87, 47,133, 32, 61, 61, 25,107,215,237, 11,240,244,244,108, 19, 19, 19,
-115,174, 2,247,211,255,212,169, 83,206,148, 82,200,229,114,204,155, 55, 15,238,238,238,176,182,182, 70,118,118, 54,190,248,226,
- 11,155, 9, 19, 38,216, 0, 64,120,120,120, 97,120,134,242, 16, 23, 23,215,124,244,232,209, 86, 28,199,225,248,241,227, 6, 66,
-200,172,211,167, 79,255, 82,167, 78, 29,121,171, 86,173,172, 54,111,222,220, 2, 64,232,155, 18, 90,149, 60,239,241,201,147, 39,
- 27,247,239,223,159, 74,165, 82,146,145,145, 1, 91, 91, 91,172, 92,185, 50, 55, 62, 62, 62,164,210,117,128,227,228,106,181, 90,
- 78, 41,197,158, 61,123, 16, 29, 29,253,113, 74, 74, 74,130,139,139,203,190, 47,191,252,114,114, 64, 64,128,239,195,135, 15,163,
-179,179,179, 23, 37, 38, 38, 62, 19, 95, 77, 34, 68,136, 16,241,223, 65,129, 19,124,133, 34,195,243, 60, 63,250,196,137, 19,172,
- 32, 8, 88,183,110, 29,110,220,184, 65,213,106,245, 44,181, 90,189, 66,165, 82,241, 90,173,118,212,136, 17, 35, 6,205,157, 59,
-151,105,213,170, 21, 46, 95,190,204, 84,173, 90,117, 8,128, 77, 69, 46,220,161,172, 88, 27,153,153,153,215, 19, 19, 19,170, 22,
- 9, 80, 89, 85,161, 80, 94, 47, 39, 51,175,112,150, 16, 20,179,233,188,121,243,114,221,220,220, 12, 97, 97, 97, 88,179,102,141,
-112,227,198,141,179,114,185,124,109, 92, 92,156,222, 28,206, 55,116,211, 11, 57,229, 28,119,115,203,228,201,181, 26,246,236, 41,
-124, 50,105, 82,142, 76,165,250,252,135,159,126,154,146,145,157,237, 14, 66,168,131,141, 77,244,186,121,243,230,119,121,239,189,
-156,240,115,231,148,183, 79,157,146, 58,153, 76,119, 42,146,206,152,152,152,115,126,213,189,177,113,253,143, 48, 26,245,136,143,
-205,211,105, 41,169,153, 40, 75,100,149,196,201,113, 92,230,251,239,191, 47, 3,160, 26, 60,120,176, 60, 41, 41, 9,213,171, 87,
- 7, 0,100,101,101, 33, 36, 36, 4, 53,107,214, 4, 0,220,187,119,175,240,119,121,233,180,176,176,120,175, 69,139, 22,136,142,
-142, 70,120,120,248,153,184,184,184, 84,119,119,247, 51, 47, 95,190,236,214,184,113, 99,236,223,191,191, 71,105, 66,171,162,101,
-100,142,208, 42,137, 83,165, 82, 77,219,183,111,223,199,151, 46, 93,234, 63,121,242,100,105,251,246,237, 1, 0,217,217,217, 26,
- 74, 41, 95, 25,206,162,105, 50,153, 76, 16, 4, 1,246,246,246,185,249, 29,142,103, 40, 39,144,236, 95, 93, 63, 69, 78,145, 83,
-228, 20, 57,255, 13,156,111, 9,204,143, 12, 79, 41,229, 4, 65, 64,104,104, 40,246,237,219,199, 27,141,198,145,113,113,113,247,
-138, 28,242,147,187,187,251,169,247,223,127,127,211,195,135, 15,217,136,136, 8,152,211, 16, 21,133, 78,167, 51, 21, 95,146, 88,
-167,211,189,246,208,209,198,141, 27,145,144,144, 96,124,249,242,229,105,142,227,246,191,230,236,197,215,158,117,248, 27,165,250,
- 15, 9, 57, 61,183,101,203,142,115, 78,157, 82,124, 50, 99,134,126,232,176, 97, 95,242, 6,131,137,149,201, 4,185,133, 5,195,
- 43, 20,210,240,115,231,148,203,199,140,177,215,234,245,199,183, 84,192,193,188,136, 69, 11, 67, 63,153, 8,109, 17,139,214,229,
-235,145,168,168, 69, 75,167,211,213,206, 23, 29, 47, 0,184,126,244,209, 71, 16, 4, 1, 90,173, 22,217,217,217,136,139,139,203,
- 28, 54,108, 24,159, 47,158, 36,125,250,244,177, 54,135,183, 90,181,106,238, 82,169, 20,199,143, 31,135, 84, 42, 13, 1, 0,169,
- 84, 26,114,234,212,169,110, 3, 7, 14,132,135,135, 71, 53, 66, 8,161,229,168, 36,151,160, 94,187, 40,224, 7,130, 26,121, 79,
- 60,106, 56, 7,245,186, 75,128, 71,249, 81,227,239, 55,104,208, 0, 48,211, 47,171, 40,242, 39,119, 44,115,116,116,220, 61,101,
-202,148,177, 77,155, 54,237, 52,119,238, 92, 2,128,125, 35,214, 77,142,123,173,208, 19, 34, 68,136, 16, 33,226,223,107,213, 42,
-105,191,164,140, 19,214,181,105,211,102, 36, 0,150, 16,178, 38, 54, 54,246, 94,241, 99,226,226,226, 34, 61, 60, 60, 22,251,250,
-250, 22, 46, 52, 93,145, 68,229, 71,114, 95,200, 48,100, 74,222,118,197, 3, 84, 22, 89,234,100, 10, 0,194, 48,236,166, 91,183,
-110,205,120,241,226, 69,114, 69,133, 95, 73,120, 19,179, 14, 1, 96, 27,165,207, 6, 18,114, 98, 82, 80, 80,135, 46, 99,198,160,
-110,151, 46,214,238, 62, 62,188,214,104, 20,238, 93,188, 72, 46,237,217, 35,187,125,234,148, 84,171,215, 31,223, 71,233,139,138,
-166, 51, 38, 38,230, 92,245,106,158, 39,251,246,233,214,169,154,175, 59, 0,224,201,179, 56,164,164,101,158,172,136,200, 42, 38,
-184,122,174, 92,185,242,144, 76, 38,147, 20, 93,202,198,104, 52,166, 21,136, 49, 66,136,251,186,117,235,118, 48, 12, 19, 93, 30,
- 95, 68, 68,196,193, 57,115,230,244,121,254,252,249,201, 23, 47, 94, 60, 7,128,232,232,232,231,238,238,238,155,226,227,227,251,
- 68, 71, 71,239,165,102,168,144, 98,139, 74, 35,252,226,110, 37,128, 58, 5,139, 74, 87,118, 45,195,162,200, 15,173, 48,203,205,
-205,109, 91,167, 78,157, 70, 0,136,125, 29, 62,131,193, 96,210,106,181, 28,207,243, 18,163,209, 72, 13, 6,131, 73,124, 45,137,
- 16, 33, 66, 68,133,208, 24, 64,193, 74, 36, 5, 6, 20,167, 98,191, 13,200, 95, 46,176,224,245,155,191,157, 12,224,122, 17,142,
-162,251,203, 59, 23, 0, 82, 0,220,205,223, 87,146, 22, 89, 87,218,118,169, 66, 43, 54, 54,118, 47,204, 88, 52,218,220,227,202,
- 16, 74,211, 9, 33,203, 11, 68,211,235,114,112, 28,247, 70,214,135, 99, 24,230, 89,143, 30, 61, 42,116,124,121,199,236,160, 52,
-250,115, 66, 54, 31,249,249,231,250,199,215,172,241,224, 57,206,129, 0,148,149,203, 83, 13, 6,195,115, 39,147,233, 78, 69, 45,
- 89,175, 88, 99,158,196,116, 6, 0, 63, 63, 63,250,248,241, 99, 80, 74, 95,107,246, 6,165,244, 14, 0,175,114,142,137, 3,208,
-202, 76, 49,184, 29,192,246, 18, 4,251, 14, 0, 59,204,238, 53, 20, 44, 42, 13, 48, 2, 17,250,214,110,217,111, 15, 0,161, 96,
- 81,233, 55,137,248,248,248,135,200,143,243,246, 58,120,254,252,185,222,215,215,119,203,194,133, 11, 7,223,190,125,123,103,108,
-108,172, 94,124,103,138, 16, 33, 66, 68,197, 68, 22, 33,228, 72,126,219,211, 61,191,179,127,164,248,239,130, 99, 10,142, 43,122,
- 76, 1, 71,241,253,101,157, 11, 0,211,166, 77,155, 49,127,254,124, 53, 0,179, 22, 99, 46, 26,184, 84,242,111,184,123,111, 98,
-241,220, 55,189, 0,111, 76, 76,204,250,191, 34,175, 63,229, 9,169, 43,127,229,253,124,244,232, 17,121,155,159,182,130, 69,165,
-139, 32,232,191,144,238,103,207,158,173,108,219,182,237,218,216,216, 88, 14, 34, 68,136, 16, 33,162, 34,112, 42, 73, 24,149,162,
- 7,186,151,245,127, 49, 65,244,167,227, 74,218, 38,132, 28,153, 63,127,126,119,115, 19, 91,212,162,197,136,101, 39, 66,196,223,
-135,127, 98,214,171, 8, 17, 34, 68,136, 40, 85, 16,189, 98,197, 42, 16, 95,197,183,167, 77,155, 54, 3,165, 12, 27,230, 31,227,
- 70, 8, 25,153, 63,235,240, 21,127, 45, 2,160, 67, 41, 23, 55,123, 54, 1, 33,164, 67, 37, 50,119, 90,228, 20, 57, 69, 78,145,
- 83,228, 20, 57, 69,206,255, 95,156,229,113,151,114,126,112,105, 67,125,101, 13, 35, 22,255, 93,222,185,102, 28, 27, 82, 74, 94,
- 70, 22, 93,235,240,149, 53, 15, 11,156,156,255,138, 15,128, 14, 34,167,200, 41,114,138,156, 34,167,200, 41,114,138,156,175,249,
-105, 76, 41, 13, 70,222,170, 41,148, 82, 26, 76, 41,237, 50,109,218,180,233, 5,251,166, 77,155, 54,157, 82,218,190,224,184,252,
- 99, 10,207, 41,216, 87,252,187,248,190,114,142, 45,237,126,140, 44,250,187,232,246,191,194, 71, 75,132, 8, 17, 34, 68,136, 16,
- 33,162, 12, 92, 7,208,184,136,181, 41, 25,192,189,249,243,231,167, 23,241,157, 74, 6,112, 7, 64,189,252,227,146,243, 13, 74,
- 69,125,171, 12,249,219,134, 18,142, 49,152,115,108, 41, 86,184,117, 37,253, 6, 32, 10,173,210, 80,223,141,253,198,219,211,185,
- 81,161,213, 79, 16, 0, 0, 66,126,244,129,194, 48, 4,130, 0, 74, 41,226,146, 50,110,222, 77,164,179, 43,123,189, 0, 15, 98,
-239,172, 84, 46, 19, 40,109,153,191,235, 92,102,170,126, 98, 88, 38,205, 48,151,163,150, 43,169,165,100,240,165, 64, 81, 23, 0,
- 24,130,187, 58, 1,139,239, 39,208,251,175,123, 63, 8, 33,164,182, 19, 70,202, 85,234, 1, 54,182,118, 53,210,211, 83, 30, 25,
-117,250,221, 17,201, 88, 75, 43, 17, 24,170,186, 61,105, 38, 80,204, 0,192, 72, 25, 44,137, 76,165,103,197, 90, 39, 66,132,136,
-191, 9,175, 27, 23,175,164,208, 65,175, 59, 9, 73, 12,176,103,158,216, 42,142,107,102, 30,247,143,161, 66, 66,171,182, 51, 25,
- 3,130,175, 0, 80, 80,124, 29,158, 68, 87, 87,232,124,119,210, 65,201,178, 27, 0,176, 58, 35, 63,137, 10, 56, 95, 98,163,206,
-160,181, 82,198, 46, 1, 32,232,120,126,120,120,156,249,254, 98, 65,158,164,139, 68, 96,182, 8,148, 74,121,129,110, 2,197, 17,
- 75, 25,254,184, 28, 67,117, 21, 73,171,183,167,115,163, 3,215,226, 59,157, 93, 61, 30, 77,235, 86, 7,229, 57, 64, 48, 65,221,
-234, 75,156, 89,250, 17,154,214,242, 6, 21, 76,128,192,193,178,235, 15,232, 26,100, 83,233,135, 36,192,131,216,251, 56, 58,135,
-173, 95,191,193,213,189, 90, 32, 17, 56, 35, 30, 94, 59, 57,104,194,148, 57,239, 6,217,144, 32,115,196, 86, 61,119,242, 73,245,
-170, 1, 95, 78,252,234, 71,214,205,221,203, 66, 48,233,185,132,103,247, 27,252,180,104,206,222,122,238,100,201,157, 56,186,193,
- 92, 65, 21,232,132, 81, 18,133,188,159, 74,105, 81, 67,163,201,126,204, 27, 77,187,131,220, 37, 93, 22,255,176,172,126,219,142,
-221, 44,249,236, 4,198, 36, 32,112,215,206, 29, 62, 63,175, 92,213,141, 16,242, 30,165, 84,168, 72,158, 5,138, 41,145,155, 71,
-118,147, 74, 88, 82,235,227,245, 44,204,156, 50, 91, 28,129, 46,228, 3, 66,203, 15, 47, 65, 9, 46, 68, 36,210,237,149,185, 70,
- 45, 23,242, 11,161,240, 7,193, 30, 66,177, 35, 60,137, 38,137,239, 59, 17, 34,222, 46, 48, 12,115, 86, 16,132,118,111,146,147,
- 16,210,140, 82,122, 69,188,187,255,191, 81, 49,139, 22,193,183,225, 81, 47,237,192, 27, 81,219,191,218, 55, 0, 42, 36,180,148,
- 44,187,233,250,163, 68, 87,112, 70,172,255,110,236, 78,131, 9,224, 76, 70,240,156, 9, 60,103, 2,199, 25,193,155, 76,160, 38,
- 61,230,252,122, 22, 48,100,163, 81,144,223, 38, 0,110,230, 94, 67, 74,153, 45, 55, 47,158,180, 39,134, 76,108, 95, 61,255,179,
-151,201, 57,159,157,190, 27,151, 82,219,133, 76,143, 72,194,111, 21, 17, 4,103,215,140,199,214,253, 33, 49,203,127,201,125, 32,
- 80, 10,123,107, 85,192,160,238,225, 94,155, 15,158,125,185,108,147,238, 1, 0,216, 88,200, 3,134,220,125,228,253, 58,133,224,
-172, 84, 46, 91,187,234,103, 87, 55, 7, 21,225, 46, 45, 0,199,243,240,242, 9,102,167,143, 27,228,246,237,210, 13, 75, 1, 12,
- 45,235,252,154, 46, 36,208,191,122,173, 73,155, 66, 46,121,231,102, 37, 25, 78,110,155, 17, 5, 61, 76,174, 30,181,164,223,204,
-255,145,157, 57,117,252, 23, 53, 93,200,213, 7,137, 52,162,156,151, 2, 83,203, 25, 7,231, 47,248,161,238,187, 93,187, 91, 10,
- 57,201,172, 46, 55,199,127,253,175, 27,190,170, 89,183,137,186, 85,144,167, 44,105,247,104,162,205, 78,131,145, 81, 42,222,173,
-221,193, 90, 59,120,160,105,253,198,173,227, 0,252, 84,161,238, 96,145, 97,107, 65,168,124,239,146, 80,180,186,125,229,236, 40,
- 62,238, 58, 40,111, 2,120, 99,225, 55,120, 19,168,144,247,221,116,244,175, 64, 9, 49,188,204,122, 1, 83,116, 58,125,241,186,
- 91, 98, 66,124,227,165, 63,124, 63, 61,208,153, 28, 3,143, 45,247,211,112,174,162, 2, 83,132, 8, 17,255, 94, 16, 66, 56, 74,
-169,228, 13,115,118,163,148, 30,125, 77,142, 47, 1,124,146,191,185,129, 82,186,248, 13,164,203, 19,128,107,254,102, 2,165, 52,
- 70,172, 1,175,117, 63, 71, 22, 29, 50,124,157, 56, 90, 74, 80, 1,216,211, 11, 0, 84, 21, 77, 8, 5,148, 32, 44, 96,202, 69,
-207,174, 29,225,232,236, 10,152, 52,128, 81, 3,152,180,128, 41, 23, 48,105,145, 18, 31, 13, 24,115,129, 39,199,192, 81,170,168,
-112,142,245,153, 64,228,110,180,111,224, 13, 39, 27, 37,198,247, 12,116, 92,119, 60,114,195,134,147, 15, 59, 0, 24, 96, 86, 90,
- 41, 69,211, 58, 53,176,124, 67,238,131, 67, 55,147, 58, 3, 64,112,125,199,227, 77, 3,125,188,150,109,210, 61, 8,185,155,214,
- 5, 0,186, 6,217, 28,107, 18,224,230, 45,188,134,213, 87,160,180,149,123,149, 26,132,191,189, 22, 66, 86, 12,178,178,180,136,
-121,182, 25,118, 30, 13, 25, 94, 64,155,242,206, 87,177,152,246,249,204,133, 82, 77, 86,162, 65, 48, 38,243, 78,108, 58, 43,145,
- 11, 4,177,231,244, 57, 66, 6, 63,113,228, 71,220,164,217,223, 77, 3, 48,168, 76,235,144, 51,198, 45, 89,178,172, 78,139, 70,
- 53,157, 19,246,142, 39, 57,233,137,224, 88,181,162,231, 59, 45, 96,235, 23, 40, 36,134, 46, 33,242,106, 29, 96,235, 80, 13,177,
-151,182,225,249,149,125,164,101,131, 62,138,223,182,203, 6,151, 38,180,252,156, 72,203,206,173,155,236,172,230,237,238, 70,169,
- 0, 65,160,160, 2,143,143,251,118,194,244, 93, 79,192,243, 60,222,239,220,178,253,194, 81,239, 82, 65, 16, 64,169,128,151, 9,
-169,154,223,175, 62,104, 31,149, 70,175,154, 99,169,170,215,172, 93,203,187, 55,175,212, 52, 69, 30, 70,163, 65,243, 31, 16,224,
- 98,145, 58,215,242,214,137,223,106, 2,191, 86,246,225, 33,181,156,193, 63, 63,190, 0,222,173, 71,178,107,183, 31,119,202, 76,
-142, 29,178,119,243,170,190,171,215,174,221, 10, 96,180,248,138, 17, 33,226,237, 0,165,244,141,139,173,232,232,232,184,215, 17,
- 91,158,158,158,173, 1, 44, 42,240,208, 32,132, 44,242,245,245,157,243,191,142,234, 43,125,189, 76,158,231, 7,197,196,196,156,
- 47,139,179,123,247,238,238, 0,124,139,112,250, 18, 66,124, 75, 58,214,214,214,150,111,222,188,249,243, 35, 71,142,196,137, 53,
-164,226,130,171, 50, 66,235,193,139,221,227, 27,232,227,115, 0,224,129, 25,149,246,149, 33, 63,157,137, 95,176,241,171,143, 22,
-212,174, 98,143,236, 92, 3, 78,222,120, 14,158, 55,129,231,184,124,203, 22, 7,158, 51,161,115, 61, 71, 52,215,141,198, 79, 71,
- 30,130,227,133,249,101,113, 22,135,145, 10, 31,212,239,208,127,151, 32, 80,185, 66,202,100,250,123, 57, 56, 79,122,191, 30, 51,
-190,103,109,104,141, 92,255, 64, 23,242,123, 68, 34, 93,111, 22,167,240,231,144, 71,180,164,125, 60, 87,110,222,203,176, 70, 53,
- 29,216,189,163, 53,213,103,194,148,242, 4,217, 26, 19,158,164,154,144,160,203,128,130,196,155,197, 41, 80,212,245,244,112, 83,
-255,177,115,234, 51, 7, 54, 75,226,204,114, 50, 57,195,129, 23, 40, 75, 51, 34,244,246, 53, 59, 74, 11,252,182,202, 74,167, 74,
-109,245, 81,235, 78,193, 54, 47,182,141, 36, 42,255,206,112,110,224,133,103,231, 55, 34,233,198, 17,164,198, 61, 39,214,186, 12,
-184, 56, 84, 71,215, 65, 3,176,120, 64, 99,100,103,101,131,141,143,178,145, 75, 21,182,165,113, 82, 30,131,150, 44,252,206, 77,
-194, 50,121,247,179,224,195,155,160,213,235, 1,158,131, 82, 34,128,208,130,255, 76,224, 77, 70,117,221, 62, 83,199, 2,184, 90,
- 94,222, 35, 18,233,246,218,206,164, 21, 4, 83, 77,106,210,130, 0, 23,195,147,104,161,248, 9,116, 33, 31, 52,236, 60,172, 21,
- 37,184, 80,153, 50, 10,114, 64,247, 70,190,150, 22, 22, 89, 15, 16,179,231, 51, 68, 65, 73, 93, 90,124,130, 15, 62, 30,167, 94,
-183,110, 93, 15, 66,200,152,162, 62,106,127,197, 34,171, 34,167,200,249, 95,229,180,177,177,169, 90,165, 74,149, 57, 38,147,169,
-181, 76, 38,115, 49, 26,141, 16, 4, 33, 65, 46,151, 95,120,254,252,249,188,204,204,204,167,255,182,188,223,189,123,215,108,177,
-101, 14,167, 84, 42,197,195,135, 15, 31,155, 43,182,138,115, 74,165,210, 45, 23, 47, 94,196,174, 93,187, 0, 0,145,145,145,240,
-243,243,179, 40,233,220,103,207,158, 89,180,109,219,118, 11,138,173,232, 81,156,243,222,189,123, 85, 15, 31, 62,140, 61,123,246,
- 0, 0, 30, 62,124, 8,127,127,255, 18,211,115,241,226, 69,246,195, 15, 63,172, 10, 32,238,175, 46,163,183, 65,100, 21,253,126,
- 69,104,133,132,132,208,224,224, 96, 82,252,119, 9,120,226,109, 39,111, 0, 29, 15, 0, 79, 42,154,136,136, 4,186,176,158,155,
-180,203,153, 61, 43, 91, 43,101, 12,230,174,159,244, 50, 57, 45,187,153,132, 64, 0, 0,142,130,177,179,148, 95,158, 63,164,158,
-119,122,142, 14,135,174,197,158, 15, 79,172,152,137, 52, 60,142,158, 2, 96,251,191,134,146,248, 15, 89,124,106,199,142,105, 93,
-234, 78,236, 89, 23, 7, 47, 61,159, 8,160,220,168,239, 84, 16, 64, 5,174,208,249, 61,191,235, 0, 8,175, 46, 10, 44,128,230,
-237, 19, 42,102,209,106, 75,136, 36,221, 25, 93,237,213,242, 21,163, 70,141,176, 54, 37, 63, 66,154, 65,134,151,233, 58, 36,104,
-165,200,145, 56, 35,246,193, 61,158, 33, 56, 85,126,225, 34,139,114, 58, 91, 59,185, 37, 19,212,113,172, 71,214,241, 25,233,114,
-194,177,214,189,191,181, 77, 57,243,227,115, 46, 55, 57,151, 16,148,187,182,158,141,141,173,159, 46,245, 57,155,153,158, 2, 91,
-215,218,232,210,191, 59,190, 14, 14, 68,118, 86, 46,146,211, 46,211, 26,110,214, 36,250,194, 86,204,236, 90, 11,169,137,241,208,
-155, 0,146,171, 79,211, 25,116, 57,165,222, 71, 6,107, 39, 76,158,242,129,143,155,147, 69,193,164, 2, 42,240,168, 87,171, 26,
- 58,182,110,138, 83, 23,255,192,245,123,145, 16,242, 39, 21, 80, 65, 64, 76, 82,122,162,206,200,111,172,208, 13,229, 57, 80,147,
-174, 68, 33,134, 74, 12, 25,214,113, 33,106, 30,152,221,172,134,213,240,105,221,125,172, 44, 20, 4, 58, 19, 15,157,193,132,236,
- 63, 86,192,161, 74, 29,168,149, 74,210, 0, 90, 9, 0,113,221, 66, 17, 34,138,160, 95,191,126,202,196,196,196,208,224,224,224,
-192,142, 29, 59,170, 91,181,106,133,220,220, 92,156, 60,121, 18,185,185,185, 62, 94, 94, 94, 62, 39, 79,158,236,211,172, 89,179,
- 8, 79, 79,207,182,187,119,239,174,136, 15,173, 4,255,115,102, 23, 0,112,132, 16,228,239, 35, 0,132,215, 89,231, 86, 46,151,
- 35, 58, 58,250,141, 91,182, 98, 99, 99, 31, 87,198,178,149,147,147, 35,243,240,240,128,147,147, 19,120,158, 71,110,110, 46, 14,
- 28, 56,128,204,204, 76, 8,130, 0,149, 74,133,111,151,172,199,131, 91,161,184,122,245, 42, 50, 51, 51,101,229,113,198,196,196,
-144,122,245,234, 65,175,215,131,227, 56,232,116, 58,156, 62,125,186,112, 91, 34,145, 96,202, 55, 75, 17,121, 35, 20,183,111,223,
- 70, 76, 76,204,223,178,218, 72, 5,180,200,191,209, 26,186,174,172, 10,251,183,130,231,185,233,235, 54,237,184, 60,125,244, 0,
-140, 27,216,193,107,222,202,125, 29, 34,146,233, 38, 0, 8,116, 34, 67, 6,183,171,225,109,171,150,226,235,109, 55, 0, 74,167,
-191,238,245,194, 82,105,100,109, 87, 50,113,255,213,232,208, 25, 3, 26,160,154,155,181, 95,245,234, 68, 30, 21,101,198,154,130,
- 2, 7, 59, 75, 69, 64,112,125,199,227, 16, 4,216, 90, 41,106,130,231, 96,107,169, 8,232, 26,100,115, 12, 0,108,213,178,154,
- 37, 89,190, 74, 67, 99,111,217, 72,181, 66, 50,210,162,161,155,247,208, 30, 29, 85,221,122,244, 81, 89, 74, 57,164, 94, 61,137,
- 44,169, 39, 76,246, 62,208,155,210, 16,243, 52,138, 63,115,229,126,108, 74,182,126, 82,185,201,164, 56, 31,251,244,161, 83,213,
-186, 29,237, 82,142,204, 76,170, 58,108,155, 47, 3,129,201,222,218, 59,209,194,185,137,234,218,147,167, 57, 2,253,179, 69,167,
- 56,178, 50, 51,159,155,120,184,105,121,137, 85,212,217,223, 48,173,107, 29,164,167, 37, 65,103,228,144,169,229,140,174,182, 74,
-133,254,105, 24,244, 70, 14, 6,147, 0,169,173, 7, 78, 94,190,151, 34,152, 76,199, 74,227,140, 74,161,183, 1, 88, 22,221, 87,
-221,137,212,155,106,173,186, 13,147, 22,209, 49,113,216, 20,114,185, 65,254,113,149,175,228, 2,151, 55,252, 92,196,146, 69, 40,
- 90, 85,198, 9,190,150, 11,105,162, 82,202,126, 94, 52,241,195,192,119,252,237, 21, 66,204,101, 16,193, 8, 11, 94, 2,173,156,
-135,141, 87, 53, 8,134,108,170,209,233, 50,194, 1, 49,210,187, 8, 17, 69, 80,179,102, 77, 87, 27, 27,155,240,201,147, 39,219,
-247,238,221, 27,251,247,239, 71, 86, 86, 22, 54,110,220,136,101,203,150,225,171,175,190,130,201,100,194,186,117,235,212,123,247,
-238,109,178,106,213,170, 24, 31, 31,159,218,209,209,209, 9,229,245, 41, 1, 40, 0, 72,243,219, 46, 2, 64, 56,122,244, 40,186,
-117,235,134,163, 71,143, 10,249,251,120, 66,136,137, 82, 90,169,245, 68,229,114, 57,228,114, 57, 50, 51, 51,223,136,216,146, 74,
-165,176,180,180,132, 92, 46, 71,118,118,118,133,197, 22,199,113,108, 76, 76, 12, 50, 51, 51,209,177, 71, 15, 44,157, 63, 31,237,
-218,181, 67,199,142, 29, 65, 41,197,233,211,167,209,161, 69, 16, 6,188,215, 22,247,239,223, 7,199,113,102,165, 55, 33, 33, 1,
-137,137,137,232,210,163, 7,214,175, 90,133,166, 77,155, 34, 32, 32, 0, 28,199, 33, 52, 52, 20,125, 59,183,128,178, 87, 7, 68,
- 70, 70,138,149,218, 76,107,214,155,242,209,122,109,132, 37,209, 43,129, 78,228,200,192,206, 77,186,247,104, 25,136,245, 59,207,
-124, 23, 24, 72,118, 0,128,131,149,226,219,143,218, 85, 67,196,139,116,156,185, 29,119, 36, 34,249,205,204,214, 16,120, 56, 58,
- 88,171, 1, 86, 14,173, 81,224,172,159,160, 92, 7,102,129, 82,168, 91, 79,197,224, 30, 17, 94, 77, 3,189,188, 10,102, 29, 90,
-118,251, 17, 67,238, 61,246,110, 28,224,234, 13,222, 4,240, 38, 88, 15,216, 6,124, 99, 81,110, 58, 90, 86, 85,156,154, 58,105,
- 98,243,174,189,250,171,228,106, 27,240, 89, 47, 97, 74,184,135,212, 71,231,145,171,246, 67, 66,244, 19,236, 58,113, 53,243, 81,
- 76,106, 22,195,224,100, 98,166,254,203,168, 52,154, 83, 30,175,206,132,249,115,102, 78, 10,222,181, 99,167,149,162, 90, 75, 18,
-181,162, 91,166, 92,194, 41,156,124, 27, 50, 26,165, 35,253,126,227, 78,235, 92, 3, 22,148,199,163,201,205,218,119,250,228,241,
- 1, 53,170,182,180,122,118, 61, 4, 90,157, 30,122, 19, 80,187, 73, 91,240, 60,149, 19,134, 8,214, 44, 75,146, 82,211, 65, 76,
-124,226,133, 59,207,226, 47,222,121,194,234,173,202,231,126, 69,221, 19,246,243, 30,109,235, 3, 38, 45,222,107, 93, 7, 75,183,
-158,249, 12,192,176,215, 43,228, 60,139, 22, 5, 90,214,118, 38,107, 0,180,188,113, 96, 89,205, 70,189, 38,160, 34, 22,173, 32,
- 39,210, 53,168,186,251,111, 75,191,157,106,239,224,233,199, 18,193, 4,234, 90, 23,200,138,161, 36,230, 50,108, 60,154,130,119,
-111,129,117, 63,253,144, 35, 8,116, 71,101, 66, 91,136, 16,241, 54, 67,167,211,237, 91,184,112,161,125,247,238,221, 11, 44, 50,
-184,124,249, 50, 54,108,216, 0, 11,139, 87,223,147,221,186,117, 3,165,212,126,238,220,185,251, 0,188, 83, 26,103,139, 22, 45,
-122,252,244,211, 79,113,245,235,215,127,146, 47,182,100, 0,152,176,176, 48,230,229,203,151,196,206,206,142,186,187,187,155,226,
-226,226, 4, 0,252,199, 31,127,204, 90, 90, 90,214,200,201,201, 57, 87, 89,161, 37,151,203,223,136,207,150, 84, 42, 5, 33, 4,
-114,185, 28, 50,153, 12,148,210, 10,137, 45,158,231, 37, 71,143, 30,197,141, 27, 55,240, 85,253,250,152,232,225, 1,123,123,123,
-132,134,134,130, 82, 10, 11, 11, 11,164,165,165, 97,199,142, 29,120,247,221,119,193,113,156,204, 28,222, 61,123,246,224,230,205,
-155,248,166, 81, 35, 76,180,177,129,165,165, 37, 78,159,206, 27, 13, 84, 40, 20,136,142,142,198,233,211,167,209,182,109, 91,177,
- 82,191, 38,204,174, 60,109, 9,145, 16, 23,184, 26, 13, 90, 80,142, 2, 4,238,129,129, 68, 22, 17, 65,141, 21,189, 40,195, 96,
-230, 79,155,142, 4,255, 56,161, 7, 25,217,179,129,251,188,223,206,142, 1,128,225,239,251,123,168, 21, 18, 44, 63, 24, 65, 25,
- 6, 51,223, 68, 6, 3, 3,137,140, 97, 48,166, 99,211, 0,196,101, 24, 16, 21,151,241,123, 4,165,102, 13,245,156,249,113, 48,
- 54, 31, 10,125,185,108,179,238, 1,165, 20,182,150,138,128, 33,119,163,188,127, 59,122,243,197,146, 93,186, 7, 84,160,176, 85,
- 75,107, 14,187,223,162,220, 89,135,141,189,101, 35,167, 79,253,178, 69,207, 97,147,149,220,131,221, 48, 68,157,128, 96,212, 34,
-203, 40, 67, 6,235,138,152, 23, 47,240,253,186, 35, 47,179,114, 13, 3,194,146, 42, 38, 48, 35, 83,104, 78,160, 19,233,253,253,
-215, 51, 78,205,255,118,174,165,246, 73,104, 14, 75, 56, 45, 91,165,141,228,219,175,126, 36,217,122, 67,255,168, 52,154, 93, 30,
-143,222, 10, 11, 22, 46,249, 41,120,196,160, 62, 15,252,253,218, 56,240,113, 79, 29,116, 89, 89, 73,219,142,223,116,205,239, 41,
- 18, 0,136,138, 73, 69,114,102, 46,199,115,166,115, 86, 82,204, 11, 55,199, 58,152,143,106, 46,196,169,119,171,186, 31, 58, 89,
-201,160,205,201,128,179,149, 20,157,155, 86,255,176,154, 11,153,250, 36,145, 38, 87, 94,104,153, 64, 77, 90, 92, 89,240,110, 77,
-202,155,106,130, 55,193,120,119, 75,197, 45, 99, 4, 19,199,181,182,180,182, 51, 60, 99,144,107, 1,168, 28, 65,172,125, 0, 27,
- 95, 34,173,213, 31,113, 79,194,185,207, 62, 28,148,250,244,121,204, 47,142, 42, 44, 22, 95, 33, 34, 68,188,138,232,232,232,143,
-166, 79,159,126,177,105,211,166, 46,142,142,142,168, 83,167, 14, 14, 29, 58,132,201,147, 39, 23, 30, 83,191,126,125, 80, 74,145,
-150,150,134,133, 11, 23, 38,196,197,197,125, 84, 22,103,120,120,248,131,205,155, 55,183, 14, 12, 12, 52,202,100,178, 12, 0,138,
-140,140, 12,101, 90, 90, 26,209,233,116, 16, 4, 65,176,177,177,225,227,226,226, 76, 3, 6, 12,208, 95,186,116,169,122,110,110,
-110,244,235, 88,180,188,188,188,194, 82, 83, 83, 51, 9, 33,175, 29,250,161, 64,100, 57, 58, 58, 58,229,228,228, 8, 0,210, 43,
- 19,250,129,227, 56, 52,106,212, 8, 39,206,223,194,209, 51,151,144, 21,247, 16, 99, 70,124,132, 58,117,234,224,196,137, 19,149,
- 46,179,122,245,234,225,248,233,139,184,120,227, 14,162, 35,239,226,179, 49, 35, 80,187,118,109, 28, 63,126, 92,172,208,230, 35,
-164,152,111, 86, 72,113,161,213, 54, 36, 36,164,160,103,254, 39,249, 90,203,137,212,115,175, 33,223, 50,183,107,245, 90,210,142,
-115, 65,164, 42,236,246, 59,222, 98,230,247, 43, 30,212,113, 33,131,238, 37,150, 63, 59,236, 21,171, 86, 34, 13,175,237, 76,182,
-223,185, 95,243,195,247,154,122, 97,253, 33,245,108, 0,232,223,170, 42,174, 61, 74,198,213,200,164,237,225, 73, 52,252,117,115,
- 93,199,133,168, 65,177,125,225,231, 61,219,250,120,186, 98,195,254,139, 32, 4,251,204,106,112, 41,165, 77, 3,125,176,108,115,
-241, 25,134,174,222, 75,118,233, 30,156, 8,203,234, 10, 0,157,106, 89, 28,107, 92,221,206,187, 60,203,134, 74, 46, 25,213,181,
-207, 96, 37, 23,121, 8,120,126, 26,132,211, 67,107, 20, 16,159,146, 13,141,141, 23, 66, 47,223,209,102,234, 12, 19,194,147, 42,
-103,197,139, 72,166, 79,234,187,145, 23, 57,185, 90, 55,181, 83,117, 29,203, 8, 66,142,158,226, 90,196,243,172,240,120,250,208,
- 28,142,168, 40,106,120,199,147,180, 90,179,105,215, 28,169, 76,222,159, 37, 32,206,182, 22, 78,107,126,252, 6, 86, 86,150, 16,
- 12, 57, 64,110, 50,122,127,250,125,242,189, 88, 99, 85, 0,240,119, 36,150,173,171,201, 54, 73, 24, 18,243,251, 99,195,172,114,
-205,171, 38,140, 30,212,185,190, 84, 48,228,226,243,133, 59,177,118,106, 79, 12,110, 95, 75, 26,242, 71,228,104, 0,243, 42, 91,
-214,148,231, 64, 77, 90,188, 51,227,252, 3, 2, 92,164, 64,203, 27,187,190,173, 9,220, 50,155,163, 33, 33, 82,137, 27,169, 85,
-215,219, 66, 38,196,252, 1, 33,230, 15,202,122,181, 0,241,110, 77,136,107, 35,250,243,162,175,114,215,175,223,112, 82, 96,240,
-117,121,161, 50, 68,136,248,255, 10, 74,233, 19, 91, 91,219, 46,221,186,117, 59,115,226,196, 9,251,160,160, 32, 0,192,141, 27,
- 55, 0, 0,141, 26, 53,130,191,191, 63, 18, 19, 19, 49,112,224,192,148,248,248,248, 46,148,210, 50,125,126,179,179,179,159,238,
-217,179,199, 37, 55, 55,183,254,172, 89,179,146,124,124,124,178,116, 58, 29,201,200,200, 16, 56,142,131,157,157,157,188,126,253,
-250,104,222,188,121,206,229,203,151,171,188,124,249, 50, 27,192,243,202,164,191,103,207,158, 56,127, 62,111,210,222,155,136,171,
- 37,147,201, 16, 20, 20,228,241,228,201,147,216,252,251,115,165, 18,247,180,240,247,157, 59,119,112,238, 86, 12, 36, 6, 45,228,
-201,113,184,178,127, 15,122,140, 26, 11,142,171,188, 23,195,157, 59,119,112,224,244, 21, 88, 40, 36,120,248, 48, 28,123,246,236,
-193,152, 49, 99, 94,139,179,146, 40, 83,139,252,203,235,125, 60,128,117,165, 90,180,130,131,131,207,161,132,168,182,213,171, 19,
-185, 34, 7,115, 59, 55,242,152,210,191,101,117,214,148, 21, 7,129, 23,192, 74, 1,103, 71,107,108,217,178,189,234,246,157, 59,
- 47,215,243,144,254, 36,112,220,204,123,137, 84, 83,129,116,205,253,113,231,197,254, 91, 38,181,149,140,233, 90,211, 30, 0,100,
- 18, 6,203, 15,133,115, 0,230,190, 78,134,223,241, 36,202, 28, 19, 70,186, 58,216,204,158,254, 73,176,125,219, 70,254, 56,119,
- 53, 12, 63,237,185,124, 94,158,132,205,102,223, 56,193,132,226,250,169,164, 89,135, 16,202,247,187,228,121,234, 42,179,176,131,
-241,249, 89,192,168,131, 78,111,196,203, 84, 30, 47,211,116,144,168,101,184, 17, 25,163,117, 72,192,145,202,230,153, 16, 66, 90,
- 86, 83,186,207,249,110,137,167, 78,155,195,101,165,167,112, 50,249, 21,169, 90,165,136,175, 8,207,229, 24,170,107, 83, 85,214,
- 16, 16, 88,185,146,106,102,124, 49,212, 34, 54,226, 4,106, 48,113, 32,148, 66, 85, 43, 24, 86, 42, 86,214,202, 87,246, 2, 0,
-124, 93,109,228, 11,191,158,108, 51, 97,234,215,229,250,128, 5, 18, 34,171,211,216,117, 66,144,143, 29,206,223,124,128,243,247,
-162,195,207,223,120, 88,187, 93, 29,119,248,123,218,142, 15, 36,100, 65, 4,173,184,133, 52,175, 96, 56,192,164, 43,156,117, 24,
-232, 66, 62,104,220,127, 86,137,179, 13, 75,131, 47, 32, 68,242, 20,132,101, 1,194,228,205,128,124,249, 7, 36,182,213,232,246,
- 93, 7, 52, 27, 54,108,254, 38, 34,153,138, 86, 44, 17, 34,202, 65, 70, 70,198, 93,181, 90,221,185,110,221,186, 27, 63,255,252,
-115,171, 65,131, 6,185,143, 24, 49,130, 1,128,196,196, 68, 97,217,178,101,113, 63,255,252,115,102, 74, 74,202, 48,163,209,120,
-207,156,142, 47, 33,228,210, 47,191,252,146,124,225,194,133,218, 77,154, 52, 81, 52,108,216, 80,176,179,179,147, 40, 20, 10,222,
- 96, 48,232, 34, 35, 35,249, 39, 79,158,184,101,100,100, 60, 6, 16, 85,153, 97,253,124,235,213, 60,150,101,231, 80, 74,131,222,
-132,143,150, 90,173,118, 7,240,152, 16, 82,163,162,195,134,127,106,176, 37, 18,164,167,167, 67,147, 16, 14,101,204, 35,212,181,
- 96, 16,104,103, 9,107,107,235,215, 18, 69,153,153,153, 64,110, 44, 46, 94,188, 3,112, 28,108,108,108, 96, 99, 99,243,183, 11,
-173,210,180,200,127, 1,197,103, 26,230,215,219,178,125,180,106, 59,147, 49,118,114, 44, 27, 21, 92, 93,230,235,237, 9,125,204,
- 13,220,121,153,131,153,205,154, 68,176, 10, 43,221,168,143,122, 54,234,211,183, 10,218, 54,111, 76,124,221,108,198, 47,248,113,
-245,167,181, 93,200,228,240, 68,186,220,156, 68,133, 39,209,167,181,156,201,134,179,119, 99, 70,123,170,181, 16, 4,138,179,247,
-226,113,239,121,250,134,251, 73,244,105, 69, 50, 88,219,157,116,144,128,217, 73, 41, 85,218, 88, 88,100,215,175, 87,211,177,195,
- 59,245,152, 46,109, 26, 65,198, 2, 23,175,221,193,196, 31,247, 93, 17, 4, 26,124,211,204, 97,195,188, 25,134,175, 10,168,188,
- 25,134,166, 87,102, 24, 82, 74,105,222,172,195,178,221,190, 88,150, 36,104,162,175,187, 74, 29,252,160,141, 58,139,231,233, 2,
-162,147,178,145, 37,113,133, 62, 54, 22,160,194,139, 80, 74, 43, 93,171, 29, 29, 29,157,171, 6,250, 87, 95,177,105, 15,140,154,
- 76, 60, 13,221,136,156,244,120,124,187,230, 80,117, 79, 79,207, 54, 49, 49, 49,231, 42, 80, 97,252,207, 28,217,238, 12, 10,176,
- 82, 5, 66, 86,237, 66,138,131, 10,142,106, 25, 4,109, 50, 70, 77, 24,100,211,181,227, 32, 27, 0,136,126,120, 27, 62,106,173,
- 89,188, 70, 7,244,233,223, 46,192, 22, 38, 45, 54, 29,191,173, 99,128, 46,155, 79,134, 71,181,171,105,171,236,223,210,199,110,
- 94, 92,198,251,168,100, 80,209, 2,139, 86,161,133,175, 18,179, 13,119, 83,202,215,114, 34, 81, 59, 47, 37, 89,244,237,216, 80,
- 45,147, 16, 66,115, 98, 65, 85,142, 88,189,105,119,142,220,132,117, 98, 19, 42, 66,132,121,208,104, 52, 55, 9, 33,117,190,252,
-242,203, 15,102,204,152,209,218,194,194,162, 42, 0,228,230,230, 62, 53,153, 76,231, 1,108,175,200,236,192,124,225,244,152, 16,
-242, 52, 42, 42,202,101,235,214,173,182, 0,148,249,127,235, 0,100, 0, 72,124,157, 25,135, 5,162,138, 16, 50,231, 13, 90, 58,
-142,230,115,214,168,204,249, 12,195,240,132, 16, 16, 66,160, 80, 40,112,225,194, 5,244, 11,238,136,251, 33, 25, 8,178,181, 68,
-147, 97,163,176,243,212, 41,176, 44, 11, 66, 8, 88,150,173, 80, 59, 34,145, 72,112,241,226, 69, 12, 30,216, 23, 10, 9, 96, 99,
- 99,131, 47,191,252, 18, 7, 15, 30,132, 68, 34,174,210, 87,129,114, 94, 87, 32,184,204,143,163, 69, 48,239,212,198,239,101,224,
- 77, 56,188,241, 7, 28, 9,203, 49, 60, 76,198,204,128,100, 44,219,131,108, 33,249,199,205,163, 79, 93, 12, 91,252,241,128,238,
-234,119,219,117,196,187,109,219, 73,106, 55,110, 51, 27,192,242, 34, 13,118,135,178, 98,109,240, 2,190, 89,119,252,193,168,157,
-161,145, 4,198,108, 12,232,212,152,242, 2,190, 41, 71, 4,252,137,211, 70,101,185,243,226,229,203,118, 48,230,224,249,237,223,
-149, 85,170, 86, 7,120, 35, 30, 63,126,132,159, 55,237, 23, 66,175, 61,220, 98,224,240,121, 84, 26,205, 53,151, 51, 79, 89,113,
-176,177,144, 7,116, 13,178, 57, 38,128,194, 86, 45,171, 73, 5, 30,182,106,105,205, 78,181, 44,142, 81, 74,169,149, 74, 90,147,
-242,166,114, 57,181, 6,110,237,166, 95, 55, 44, 25, 62,124,184, 69, 74, 76, 2,226,178,194,144, 35,247,128, 73,237,133,168,219,
-231,181, 26, 61, 87,110, 35, 94,214,253, 76, 73, 73, 73,186,121, 53, 13, 59,215,204,135,201,160, 71, 82, 76,158, 86,141, 75,201,
-130,181,163,199,229,138,112, 26, 57, 33,179,207,160,145, 50,149, 21, 84,131,251,116,151, 71,165,234,209,192,221, 42,175, 50,229,
- 36,227,254,233,139,104,155,155,167,219,158,188,100,224, 83,207,221,172,116, 90, 41,101,159,119,109,232,129,167, 47,226,113, 33,
- 60,118,211,147, 84, 26, 87,205,129,108,138,138,203, 24,221,179,153, 55,150, 30,140,248,172, 52,113, 84, 26,103,160, 11,249, 0,
- 64,203, 60,103,120, 45, 40,208, 50,208,133,124, 96,206, 76,195,146, 56, 37, 50,124,184,228, 88,244,172,221,215, 83,122, 78,249,
-176,149,117,243,230,221,228,224, 12,200,214,234, 77, 17,233, 52,235,117,202,232, 53,122, 74, 34,167,200,249,159,228,204, 23, 61,
- 91,242, 63,111,146, 51, 14,197,226, 58,189,110,222,139, 14, 19, 82, 74, 37,249,214,172, 50,157,225,203,227, 44, 58, 76, 72, 41,
- 61,154,111,205, 42,211,170, 85,156, 83, 16,132,184, 70,141, 26,217,247,232,209, 3, 60,207,227,209,163, 71,136,126,249, 18, 29,
- 70,127, 6, 91, 91, 91,156,191,123, 23, 15, 31, 62,196,156, 57,115, 96, 50,153,112,224,192,129,152,242, 56, 37, 18,137,177,122,
-245,234,178, 94,189,122,129,227, 56, 60,121,242, 4,177,177,177,152, 56,113, 34,108,108,108,112,243,230,205, 66,206,148,148, 20,
- 72, 36, 18,227,223, 81,151,254,235, 40, 73,100,149, 45,180, 0, 30,188, 9,153,167,230, 98,249, 5, 24,141, 38,212, 12, 79,162,
-207,138,252,191,186,174, 3, 57,124, 55,236,193,211,155,127,188, 43, 71,210,189,188,115, 42,128,200, 20, 26,223,216, 75,146, 13,
- 99,182, 53,158, 28,195,179,196,236,156,200, 20, 26, 95,209,204, 81,129, 39, 48,106,128,248, 27,184,116,254, 28, 66,175,220,193,
-245,123, 15,248, 75, 55, 35,119, 50, 2,190,137, 72,161,143, 42,161, 78, 97, 25,188, 20, 67,239, 61,246,110,236,239,226, 13,158,
- 3, 21, 76,176, 25,176, 29,195, 34,154,123, 55,174,102,235,157,103,201, 50,193,238,147,223,129, 37,202, 50,249,174,191, 48,174,
-107, 89, 85,241,126,118, 70,106,179,246,109,222,177,176,169,213, 21, 41,143, 35,241,232,206, 69,237,205,176,168, 75,215, 95, 24,
- 95,203, 90,226,225,225,209,186,125,155, 0, 12, 24, 53, 29, 70, 77, 38,158,132,254,138,156,180, 4, 92,184,108,137, 7, 89, 89,
-239, 0, 48,219,162,117, 41,218, 84, 27, 0, 90,250,202, 94, 88, 65,239,250, 81,247, 30, 80, 16, 29, 4,125, 22,136, 38, 5, 81,
-177,134,204,247,215,188,228, 1, 64,173, 32, 18, 11,154,105,109, 14,111,160,143,131,159,154, 53, 97,243,169,112, 8, 66,222,242,
- 77,130,128,213,155,127,143, 26,253,205,224, 6, 8,244,182,171, 71, 8, 33, 21, 49,249, 19,138, 86,215,119,126, 93, 83,119,102,
- 54, 32, 24,113,113,188,125,205, 86,203,211, 90, 85,214, 50,118, 47,150,198, 2, 24, 93,203,157,172, 29,191,252,248,236, 70,167,
- 34, 90, 78,250,164,167, 53,168,184, 0,187, 8, 17, 34,254,126,228,228,228,140, 26, 54,108,216, 90,169, 84,234, 4,128, 8,130,
- 0, 65, 16, 36,139, 23, 47,150,242, 60,207, 48, 12,195,179, 44,203, 29, 61,122,212,196,243,124,178, 78,167, 27, 85, 30, 39,199,
-113, 81, 99,199,142,173, 94,222, 12,197, 29, 59,118, 64, 34,145, 24, 57,142,139, 18, 75,162,124,145, 85,244,187,168,149,171,244,
-198,131,226,235, 22,131,231,206, 5, 64, 64,241, 85, 49,145, 5, 0,184,155, 74,227,106, 59,147,137,181, 27,183,153, 91,112, 78,
- 69, 19,167,227,249,190,141,235,248,239, 0, 0, 61,229, 7, 87, 38,131, 89,122,109,255,250,141,223,217, 41, 80, 42,225, 40,221,
-192, 8,216,171,227,112,223,156,153,118,165, 33, 46, 41,227,102,193, 66,209, 2,232,255,134, 11,243,195, 56, 80, 74,105,225,112,
-225, 15, 74,164,100,234,203,141, 3,117,241,169,190, 99, 99,111,217,200,147,127,220, 30,197,243,212,149,101, 73,130,214,192,173,
-125, 93,145, 5, 0, 49, 49, 49,231, 2,157,201,201,187,245, 92, 58, 57,170,243,173, 92, 26, 32, 69,131,147, 49, 73,217,231, 42,
-195,153,158,107,234, 57, 99,217,193, 67,114, 41, 43, 1,165,121, 1, 69, 41,133,206,200,167, 21,136,177,186, 14,196,253,203, 3,
-220, 14,150, 37,209,229,241, 93,125, 24,191,116,192,130,211,147,195,159,167,111,120,150, 78,195, 0,224, 89, 58, 13,171,225, 64,
-102, 71, 37,100, 79, 14,139, 78,255,161,162,126, 21,148,224, 66,227, 1,115,255,180,239,117,239,231,253, 56,122, 7, 64,239,218,
-206,164,227,128, 73, 63, 79, 34, 4,226,242, 19, 34, 68,252, 63, 66,129, 85,139, 97,152,121,111,144,243, 40, 33,164, 27,128,199,
- 21, 56,231, 42,128, 58,111, 56,111,169, 0, 82,197, 82,126,163,247,180,226, 1, 75,195,147,232,106,152,177,104,180,185,199,149,
-122,126, 28, 61, 13,192,225,117, 50,152,207, 97,255, 38,111,218,221, 68, 58,251,175, 40,140,124, 81,245,151,248,250, 68, 36,209,
-206, 0,224,231,231, 71, 31, 63,126, 12, 74,233,107, 57, 21,222, 79,166,119, 80,108, 41,135,146,196, 54,128, 86,230,240, 69,166,
-208,111,128, 63, 15, 13, 63, 78,165,223, 2,248,182, 82,121,174,100,228,119,179,235, 86, 18, 61, 5,148, 31,157, 95,132, 8, 17,
-111,167,216,250, 11, 56,143,138,119,246,237, 67, 89, 1, 75, 25,241,246,188,125,120,244,232, 17,121, 93,145, 37, 66,132, 8, 17,
-111, 49,248,215,252,148,168,161, 94,243, 35,226, 45, 17, 92,197,247,137, 66, 75,132, 8, 17, 34, 68,136, 16, 33,226, 13,137,172,
-226, 98,139, 0,232, 80,162, 52,175,192,108, 2, 66, 72,135,138, 38,168, 60,126,145, 83,228, 20, 57, 69, 78,145, 83,228, 20, 57,
-223, 62,206,242,184,223,186,217,140,180,136,147,243,155,254, 0,232, 32,114,138,156, 34,167,200, 41,114,138,156, 34,167,200,249,
- 54,127, 0,140, 44,109, 91, 28, 58, 20, 33, 66,132, 8, 17, 34, 68,136,248,139, 32,198, 6, 18, 33, 66,132, 8, 17, 34, 68,136,
-120, 61,148,187,168,180, 8, 17, 34, 68,136, 16, 33, 66,132,136, 74,160,220, 69,165, 69,136, 16, 33, 66,132, 8, 17, 34, 68, 84,
- 14,149, 90, 84, 90,132, 8, 17, 34, 68,136, 16, 33, 66, 68,249, 40, 43, 50, 60,169,224,138, 39, 34, 68,136, 16, 33, 66,132, 8,
- 17, 34,202,192,159, 34,195,135,132,132,208,162,223, 34, 68,136, 16, 33, 66,132, 8, 17,127, 39,222, 86, 45, 34, 14, 29,138, 16,
- 33, 66,132, 8, 17, 34, 68,188, 6, 74,242,209, 18,133,150, 8, 17, 34, 68,136, 16, 33, 66,196, 27, 64, 89, 62, 90, 5, 1, 75,
-219,230,155,234,218,138,183, 75,132, 8, 17, 34, 68,136, 16,241, 15,224,173,212, 34,133,206,240, 33, 33, 33, 52, 56, 56,152,136,
-229, 44, 66,132, 8, 17, 34, 68,136,248, 39,240, 54,106, 17,113,214,161, 8, 17, 34, 68,136, 16, 33, 66,196,235,136,169, 34,179,
- 12,139,111,139,107, 29,138, 16, 33, 66,132, 8, 17, 34, 68,188, 33,193, 85,124, 31,243, 23, 95,176,131,200, 41,114,138,156, 34,
-167,200, 41,114,138,156, 34,231,255, 23,145, 85, 92,108,137,179, 14, 69,136, 16, 33, 66,132, 8, 17, 34, 94, 3,230,204, 58, 20,
- 33, 66,132, 8, 17, 34, 68,136, 16, 81, 9, 16, 66, 70, 18, 66,186,231,255,238, 94,212,170, 37, 90,180, 68,136, 16, 33, 66,132,
- 8, 17, 34, 94, 3,148,210,117,132, 16,183,124,129, 21, 66, 41,141, 23,133,150, 8, 17, 34, 68,136, 16, 33, 66,196, 27, 64, 49,
-191,172, 96, 66, 72,225,112,162, 40,180, 68,136, 16, 33, 66,132, 8, 17, 34, 94, 3,101,249,104, 17, 0, 29, 74, 57,233,116, 5,
-148, 92,135, 74, 36,234,180,200, 41,114,138,156, 34,167,200, 41,114,138,156,255,191, 56,203,227,174,136,254,248,183,160,164,176,
- 14,133,226,139, 82,250,151,125, 0,116, 16, 57, 69, 78,145, 83,228, 20, 57, 69, 78,145, 83,228,252,255,250,121,227,179, 14, 27,
- 18,162, 18,141,136,111, 31, 8, 33, 46,132, 16, 23,241, 78,136, 16, 33, 66,132, 8, 17,230, 91,184,222,168,143, 86, 32, 33,159,
-124, 18,228,180,166, 14, 33,214,247, 40,213,148,117,172,179,179,243, 90,181, 90, 61, 72,163,209,228, 18, 66,132, 34,166, 54, 0,
- 40,186, 46,208,147,164,164,164, 86,229, 93, 91,161, 80, 44,115,113,113,249, 36, 39, 39, 71, 67, 8,161,132, 16, 16, 66, 10, 50,
-252,202, 55,207,243, 49, 41, 41, 41,141,254,211,133, 8,176,142, 46, 46,215,164, 44,235, 81,209,115,121, 65,120,150,152,144,240,
- 78, 5, 42,204,124, 66, 48, 37,255,247, 34, 74,233,244,183,240,169, 96,205, 57, 44, 8,176,138, 4, 6,240, 12,243,153, 20, 88,
-169, 23,132, 53,249, 21,151,175,236,165, 13,215, 72,117, 66, 81,143, 16,216, 80,138, 76, 74,112, 71,222,132, 70,253, 67, 47,135,
- 62, 82,169,180,167,181,181,181,101,106,106,234, 57, 0, 59, 0, 12,116,112,112,104,147,149,149,149, 99, 50,153, 14, 82, 74,247,
- 85,134,187,117,125, 50, 85, 46,147,126,172, 51,154, 22, 94,188, 77,127,109,219,144, 56,112, 2, 22, 40,101,146, 86,122, 3,183,
-232,194, 29,186,161,130,105, 37,121,143, 66,193,171,163,226,235,137,237, 49,179,220, 1,224,128,157,157,191,194,201,250,140, 84,
-206, 62,203, 72,204, 25,212, 55, 41,233,101,223,215, 40,247,127, 35,156,156,156,134, 50, 12,243, 29,165, 20, 60,207,207, 76, 77,
- 77,221,248,134,234,213, 76, 0,182,249,155, 25,148,210,239, 94,147, 47, 26,128,119,254,230, 11, 74,169,143,216,180, 87,250, 94,
-174,222,191,127,255,232,118,237,218, 97,233,210,165, 88,189,122,245,243,228,228,228, 5, 0, 54, 81, 74, 13,127, 55,207,219,136,
- 55, 38,180,106, 19,210,109,104,231,166,107,199,245,239, 70, 38, 12,157,165, 41,231, 97,254,165, 75,151, 46,131, 55,109,218, 36,
-141,140,140, 84,249,250,250,130, 97,152, 66, 33, 84,244,125, 89,165, 74, 21,161,188,107,179, 44,187,188,119,239,222,195,246,236,
-217,163,190,121,243,166,186, 86,173, 90,133,124,130, 32,160,248,251,215,215,215,183, 76, 62, 27, 27,155, 27, 44,203,122,150, 36,
-210, 74,251,205,243,124, 76,106,106,106, 35, 51, 42, 99,103, 0,211,204,184,165, 11, 40,165, 39,202, 58, 64,202,178, 30,113,113,
-113,206, 21, 45, 43, 47, 47, 47, 99, 5, 30, 30, 23, 66, 48, 69, 16, 40, 3, 0, 12, 67,166, 42,149,202, 53, 58,157,238, 69,193,
-255,249,101,150, 88,145, 52,120,120,120,188, 79, 41, 29, 5,128, 18, 66,214,197,198,198,238,173,200,249,214,214,214, 55,228,114,
-185,167, 68, 34, 33, 37,149, 75,241,109,158,231,169,209,104,140, 73, 75, 75,171,176,192, 62, 7,144, 46, 64,107,142,101, 39, 56,
- 56, 58,182,186,121,242,164, 69, 80, 80, 16,195,178,236,116, 0,107, 94,231,185, 49, 92, 35,213,121, 19,250,105, 77,138,238, 10,
-159,175,252,245,209, 95, 69,170,164,250, 35,134,107,100,247,223, 45,182, 8, 33, 67,134, 12, 25, 50, 97,225,194,133,142,114,185,
-156,217,181,107,151,255,196,137, 19,251, 44, 93,186,212,177,127,255,254, 86, 6,131, 65,152, 58,117,106, 32, 33,196,153, 82,186,
-170, 34,220,205,235,147,102, 1,190,110,115,198, 13,122, 23,147,231,239, 24,215,178, 14, 73, 81, 89,200, 86,191,223,170,186,109,
-237,170,118,248,122,237,165,207, 1,108,168, 64, 90,137, 68, 34,121,199,221,221,221, 79,167,211,113,249,157, 55, 90,228,157,144,
-119,127, 13, 6, 67, 90, 90,218,238,215,189, 55,147,149,202,166, 77,109, 45, 79,205,253, 96,136, 42, 43, 61,205,101,121,200,161,
-187,123,224, 92,183, 47,240,252,109,106, 16, 24,134,249, 46, 54, 54,214,141, 82, 10, 55, 55,183,239, 0,108,124, 67,212,182, 5,
-239, 97, 66,136,237, 27,224,243, 46,194,231,253, 6,234,190, 82,194, 48, 99,229, 82,105, 39,158,231,235,228,215,161,123, 6,147,
-233, 20, 39, 8, 43, 41,165,186,183, 88, 7, 76, 25, 61,122,116,199, 25, 51,102,248, 78,153, 50, 5, 83,166, 76,169,178,126,253,
-250,181,223,127,255,253, 84, 66, 72, 93, 74,105,206,223,204,243,159,183, 96,253, 37, 66, 43,144,144, 70,237,235,213,216, 59,126,
-232, 0, 8,123,150, 17, 12,157, 85,166,200,122,167, 81,163,143, 55,109,218, 4, 0, 24,212,179, 39, 58, 53,105, 2, 43, 75, 11,
-200,229,121,201, 33,148, 64, 38,149,161,215,196, 47,204,201,220,162, 62,125,250,124,184,103,207, 30, 75, 0, 88,189,122, 53,250,
-244,233, 3,123,123,123,168,213,106,200,100, 50, 72,165,210, 87,190,205, 16,110,158,177,177,177,206, 74,165,178, 80,248, 9,130,
-240,202,167,200, 56, 53, 56,142,131,159,159,159,185,183,107, 90,102,102,102,235,220,220,220, 50,199,116,171, 86,173, 10, 0, 39,
-204, 33,252,238,219,111, 32,112,185,144, 72, 0,142, 3,244, 70, 6, 66, 9,125,123,119,119,119,140, 29, 59, 22,175,179,144,120,
-112,112,119, 66, 8,217,227,238,238,190, 55, 41, 41,201,151, 16,140,168,164,165,235,211, 71,143, 30, 89, 2,128,191,191,255, 88,
- 0, 21, 18, 90, 18,137,196,243,238,221,187,206, 10,133,162, 84,203,101, 17, 17, 12,163,209,136, 6, 13, 26,112, 21,185,134, 11,
-224,157,198, 48, 35,234, 55,108, 56,114,110,175, 94,202,107,215,174, 41, 25,134, 1,199,113, 88,188,120, 49, 71, 41,181, 13, 4,
-172, 35,128,172, 50,234,231, 12, 0, 67,243,173,180, 27, 40,165,139, 95,249,159,162,158,214,164,232,254, 36,167, 87,147,166, 85,
-166, 34, 34,252, 94,147,106,150, 7, 96, 37,209, 71, 1,248, 91,133,150,181,181,117,207,165, 75,151, 58,109,216,176, 33,235,225,
-195,135,198, 53,107,214, 56,141, 26, 53,202,202,104, 52, 98,244,232,209,201, 1, 1, 1,178,165, 75,151, 58,237,219,183,239, 93,
- 0, 21, 18, 90, 18,130,111, 6,246,236, 4,157,137,129,201,196, 57,185, 57, 89,109, 25, 63,164,173,148, 82, 3, 54, 31,188, 9,
- 19, 39,252, 90, 65, 75,214, 59,125,251,246,173,182,125,251,118,201,131, 7, 15, 36, 53,107,214,132, 32, 8,224,121, 30, 38,147,
- 9, 0, 32, 8, 2,106,212,168,241,218,247,229, 99,192,223,209,197,254,212, 59,221,186,170,220,148, 10,216,167, 39, 99,184, 76,
- 98,181, 81,173,223, 10,160,249,219,212, 88, 80, 74, 33,145, 72,240,242,229, 75, 56, 59, 59,171,236,237,237,227, 1,124,149,150,
-150,182,238, 45,110, 32,155,200, 37,146,189,155,127, 93,238,218,180,121,115,214,197,205, 25,145,143, 94, 64, 66,248, 14,119,175,
-223,108,251,241,152, 73,227, 9, 33,239, 83, 74,175,189,109,121,119,107,241,105,111,183,150,159,173, 38, 84,192,215, 43, 14,101,
-207, 95,180, 76, 61,122,196, 16,118,226,196,137,240,242,242,242,237,221,187,247, 34, 0, 99,202,229,105,246,105,111,215,230,227,
- 86,131, 82,204,253,249, 80,246,247,139,150,169,199, 84,130,231, 63,254,236,172,251,203,132, 86, 32, 33,213,106,123, 57,159,156,
- 63,101,140,148, 30,251,141,209,164, 38,161, 52, 41,227,236,236,188,182,107,215,174,131, 54,110,252, 95, 39,233,157,160, 32,244,
-126,183, 37,156, 29,108,160,182,144,231, 53, 71, 2,193,157,135,207,204, 18, 4, 94, 94, 94,163,247,238,221,107, 89, 84, 76,200,
-100,178,194, 79, 81,145, 85,240, 41,110,249, 40, 9, 74,165, 18,167, 79,159,134, 68, 34, 1,203,178,144, 72, 36,133,159,162,219,
- 44,203,194,197,165, 66,174, 75, 11,108,108,108,234,102,103,103, 91,103,100,100,192,219,219, 59, 11,192,221, 34,255,215, 77, 78,
- 78,182,174, 8,161,192,229, 98,226,240, 90,144, 26,174,192, 32,109, 2,173,164, 5, 46, 93,191,143, 35, 39,206, 33, 54, 46, 1,
- 45,155,213,199, 71, 31,244,197,169, 83,167,192,243,124, 69, 43, 79, 34, 33,100, 81,143, 30,221,167, 2,132,116,232,208, 33, 99,
-220,184,113,204,131, 7, 15, 62,236,221,187, 87,208,163, 71,143,243,123,194,100, 10, 33,100,121, 5, 44, 91,114, 0, 56,127,254,
- 60, 0, 40, 42, 83,247, 20, 10, 5, 46, 95,190,140,130, 97, 98,134, 97,192, 48, 12, 88,150,197,225,199,142,200, 53, 48,208, 36,
-134,225,179,238,222,168, 90,181, 42, 24,166,124,151,196,182,128,242, 18,208,155, 72,165, 19,221,220,221,125,219, 84,171,166, 62,
-125,250, 52, 11, 0, 62, 62, 62, 52, 62, 62, 62,227,224,193,131,217, 18, 96,181, 15,165,155,202, 18, 89,222,222,222, 45, 24,134,
-249,174,224,158, 19, 66, 22,249,250,250,206, 41, 44, 55, 65,192, 7, 29,237,165,227,199, 79,144, 53,109,155,215, 57,105,218, 99,
- 59,178,158,204,175, 69,210,102,216,252,221, 47,138,172,172,172,157, 53,106,212, 96, 83, 83, 83, 47, 1,136, 54,153, 76,211,182,
-108,217,226, 60,124,248,240,164,173, 91,183, 46, 0,224,190,112,225,194,182,185,185,185,187, 42,194,219,170, 30,233,214,168,126,
- 80, 51,111, 47, 47,156,187,116, 13, 50,185,212,118,236,208,238,176,180,148,224,135, 13, 33, 66,116, 76,218,184, 11,119,232,166,
- 10,136,172, 38,125,251,246,245,221,190,125,187, 28, 0,238,222,189,139,132,132, 4, 56, 57, 57, 65,165, 82, 65, 42,149,130,101,
- 89, 72,165,210, 55, 34,178,108,188, 28,174, 30, 56,112, 80,101,111,111,139, 21, 95,140,199, 71, 73,137,176,181,178,132, 41, 39,
-215,247, 45, 19, 28,254,239,191,255,190,146,231,121,228,230,230, 34, 52, 52,212, 70,165, 82,217,120,122,122,206, 5, 96,182,208,
- 82,169, 84,137, 58,157,206, 57,255, 61,154,164,213,106, 93, 0,100, 41, 20,138,130,247,116, 78,254,245,204, 26, 78, 44,101,152,
-240, 69, 17, 75,214,139,215,200,115,227, 38,141,235,158,222,183,103,155,101,102,118, 2,108,237,146,192, 32, 19,235,214,173,132,
- 74,101,141,185,115,103, 72,158,117,120,215,163,115,183,247, 79, 19, 66, 58,188,117, 98,139,146,117, 29,122, 12,178, 87,169,173,
-242,219, 18, 19, 54,174, 31, 15,134, 97, 48,103,206, 28,212,174, 93,123, 36, 33,100, 22,165, 52,173,108, 26,172,171,211,186,191,
-189, 92,153, 87,196, 2,111,194,154, 29,147,243,120,166,143,194,192, 30, 85, 71,222,217, 74,142,215,174,134,236,188,118, 5, 90,
- 41,131, 23,104, 66,147, 10, 56, 66, 66, 66,218, 4, 7, 7,159, 43,109,251, 63,240,252,184, 1, 8, 46, 73,124, 73, 66, 66, 66,
-104,112,112, 48, 41,146,185, 87,182,203, 66,125, 66, 28, 93,108,212,167, 87,127, 53,222, 82,114, 37,132,213,190,120,140, 56, 29,
- 95,248,228, 20,159,162,169, 86,171, 7,109,220,184,241, 21, 29,230,237,226, 12,153, 76, 10,169,140,192,182, 85,247,188, 39,238,
-194, 17, 16, 66, 75,107,248, 95,225,204,205,205,213,221,190,125,219,114,195,134, 13,112,118,118,134,175,175, 47,212,106, 53,148,
- 74,229, 43,226,170,168,224, 42, 46,180,138,115, 22,252, 47,145, 72,192, 48, 12, 78,157, 58, 5,142,227,208,183,111,223, 63,137,
- 44,137, 68, 82,162,112, 43,109,122, 42,165,244, 4, 33,228, 46,165,180,117,126, 3,124,151, 82,218,166,200,181, 59, 59, 57, 57,
- 77, 3,176,192, 92, 78,150,165, 96,117,151, 32,120, 46,131,228,229,120, 24,164,245,112,246,226, 77,108, 92,187, 20, 0,224, 91,
-179, 49,250,245,238, 94,104,141, 51,135,179, 40, 60, 60, 60,118, 36, 39,167,116,125,247,221,119,145,158,158,110,250,234,171,175,
- 80,183,110, 93,248,251,251,155, 85, 70,165, 9,184,187,119,239,122,105,181, 90,179,134, 29, 75,226, 36,132, 96,203,150, 45,208,
-233,254,108,213,183,107,243, 61, 38,247,241,193,176,207, 54, 97,209,195, 93, 88,181,106, 85,153,121, 87, 3,117,117, 54, 53,150,
-203, 89,174,238,130, 25,159, 42, 62,250,232, 35,118,216,176, 97,120,241,226, 5,134, 15, 31,174, 59,117,234,148, 33, 33, 62,254,
-160, 92, 16, 86, 24, 95, 21,198,165,114, 42, 20,138,205, 39, 78,156,192,174, 93,121,186, 36, 50, 50, 18,126,126,126, 22,175,136,
-228,180,221,200,142, 94,129,171,135, 31,160,105,143,237,184,122,248, 3,240, 25, 33,210, 70,126,200,172,200,253,172, 68,239,235,
-116, 9,251,118, 1,216, 85,228,254,170,182,110,221,218, 11,192,161,252,255, 0,224,199,138,112,230, 17, 97, 88,255, 62,189, 32,
-145, 89,225,193,227, 24,180,121,167, 1, 92,156,157,113,247,126, 20,162, 99,211, 18, 9,193,208, 46, 45, 20, 11,180, 90,195,172,
-243,183,233, 47,229,112, 18, 79, 79, 79,255,221,187,119,203,138, 88,160, 11,159,113,150,101, 11,183, 11,132,119,101,234,103,129,
-200,178,242,180,188,250,205,202, 22, 22, 87,239,109,133,159, 79, 55,216,117,235,142, 95, 78,158,196,163,240, 8,157, 65,195,181,
-255,187,203,232,175,226, 36,132,248,247,233,211,231,210,182,109,219,108, 95,190,124,137,243,231,207,195,215,215, 23, 26,141,166,
-220, 14,111,113, 78,157, 78,231, 92,100, 88,175,192,181,225, 59,131,193, 80, 80, 24, 5, 15, 98,169,195,137,197, 56,255, 52, 76,
- 88, 25,159,172, 18,222,243,114,165, 76,182,251,192,190, 29,150, 17, 15,206,163,126,189,102,176,180, 9,132,192, 39, 32, 53, 45,
- 7,233,143,227,240,237,183,139, 48,247,171,153, 56,180,127,143,101, 64,173,122,123, 9, 33, 53,138, 14, 35,254,215,203, 29,132,
-142, 60,125,120,235,106, 66, 5,104, 19, 31, 40,164,185, 79,213,131, 62,120,159, 29, 48, 96, 0, 14, 29, 58,132,240,240,240,213,
-165,137,172,162,156,132, 98,100,216,249, 93,171, 65, 41,180, 73, 15, 20, 50,237, 83,245,144, 15,251,177, 31, 13,236,132, 43,191,
- 47, 71,167,250, 79,195,220,157,209, 59, 61,127,240, 80,194, 34, 85,161,196, 31,170,107,228, 74, 17,177, 21, 10,128, 20, 17, 88,
-161,248,159, 15,230,127, 1,193,249,209,225, 71, 22,183,110, 73, 42, 35,176, 0,192,159, 16, 75,181, 92,118,117,227,220, 79,221,
-213, 47,194, 37,250,176,203,136,211, 11,116,205,115, 78,184, 74,136,234, 38,165,218,226,231,104, 52,154,220,168,168, 40,213,208,
-222,189,209, 60, 40, 8,110, 14, 14,168,225,233, 9,149, 66, 14,185, 76, 90,228,189, 92, 33, 21, 73, 3, 2, 2,208,163, 71, 15,
- 72,165, 82,168,213,106, 88, 90, 90, 66, 46,151,151,104,205, 50,183,151, 75, 41, 5,203,178, 8, 11, 11, 67,116,116, 52,108,109,
-109,241,199, 31,127,160,125,251,246,127,178,106, 21, 21,103, 21, 49,209, 23,111,248, 11,132, 24,204, 28, 50, 44, 0,207, 19,228,
-208,122, 80, 62, 31, 7, 13,105, 0,189,158,131, 94,175,199, 47, 23,141,184, 22,149, 11,163,209, 0,189, 94, 95,234, 53,203,184,
-183,140,187,187,251, 32, 63, 63,191,177, 31,124,240,129, 73, 46,151, 35, 55, 55, 23, 26,141, 6,225,225,225,166,174, 93,187,101,
-244,232,209,221, 38, 36, 36,132, 82,138, 69, 21,244,211, 74,245,240,240,240,202, 31,158, 77,173,100, 15,162, 80,196, 20,199,208,
- 31, 35, 32, 97,243,202,100,245,234,213,224,121, 30,148,210, 82, 11, 73, 71,200,153,175,190, 95, 98,179,112,217,175,176,177,119,
-193,185,115,231,248,227,199,143,103, 19, 32,242, 81,120,248,143,239, 1, 71,119, 3,198,138,164, 47, 61, 61, 93,229,235,235, 11,
- 79, 79, 79, 8,130, 0,147,201, 84,104,125, 73, 77, 77,133, 86,171,133,189, 69, 6,170, 59,120,130,203, 14, 69,124,216,215,112,
-179,124,128, 77, 39, 12,166,134,254,184,243, 47, 48,133,255, 6,224,183,215, 39,130,135,179,171, 23, 24,106, 66, 92, 82, 42,122,
- 5,119, 2, 43,179,196,179,151, 41,168, 23, 88,205,237,195,247, 90,184,177,132,195,148, 5,219,199, 2,248,165, 60,186,156,156,
- 28,254,193,131, 7,184,123, 55, 79,239, 90, 91, 91,195,194,194,226,149,103,156, 97,152,215,178,104, 21,136,172,239, 87,183,183,
- 96,164,185,200,226, 79, 99,195,150,155,168, 23,208, 29,107,174, 94,215,241,137,105, 29,126,208,233, 34,255,211,195, 70,110,110,
-163, 4, 65,152, 75, 41,205,232,211,167,143,203,246,237,219,237, 98, 99, 99,113,243,230, 77,204,153, 51, 39,153,231,121,142, 82,
- 74, 40,165, 95,191,129,186, 36, 20, 17, 88,111,210,138, 32, 85, 43,241,153,163, 53,233, 41, 97,172,125,185,172,156,103, 41, 6,
-122, 80,195, 9, 63, 83, 74, 77,101,157,203, 48,204, 39,123,118,174,118,119,116, 18,208,214,233, 93,196, 39, 26,241,253, 23, 67,
-144,154,154,141, 95,214,207, 7, 32,135,145, 99,209,186,237,251,112,118,246,192,200, 17, 35, 93, 87,175, 93,243, 41,128, 31,222,
- 22,131, 86,252, 31, 43,247, 19, 66, 78, 59, 57, 57,133,127, 58,114,164,147,175,239, 96, 40,149, 74,236,216,177, 3,219, 87,172,
-224,151, 1,253,214, 18,114,118, 20,165,251,203,228,185,242, 63,158,241,163, 71, 59,213,170, 53, 26, 10,133, 2,191, 31,255, 13,
-186,132, 45,217,193,205, 97,212,232, 16, 92,165, 7,181,127,126,152,164, 73,165,120, 12, 0, 82, 37,226,165, 64, 82, 49,186,255,
-154,192, 42,148, 81, 5,126, 90, 5,223,175, 29, 25,158, 74,229,247,214, 79, 24,232,227, 2, 61, 49, 92, 60,140, 88,189,192, 47,
-124,100,100,111,101,210,201, 17, 37,136,172,252,138, 45,120,123,123,227,221, 70,141,208,187, 85, 43, 72, 36, 18, 40,229, 50, 88,
- 41, 85,160,124,158, 37,171, 96,232,176,140, 54, 17, 37, 89,159, 28, 28, 28, 32,147,201, 10, 5,150,185,214,172,210, 56, 5, 65,
-128, 68, 34,193,221,187,119,209,178,101, 75,120,121,121, 97,215,174, 93,232,220,185,243,159,134, 18, 43, 42,178, 10,132, 86,209,
- 97,188, 34, 78,242,229, 58,193,255, 73, 36, 24, 8, 82, 12,245, 64, 72, 16, 56, 14,224, 41,160,215,233, 64, 41, 64, 41, 96, 50,
- 26,160,211,233, 10,175,105,206,144,172,155,155,155,119,213,170, 85,231, 77,157, 58,165, 86,189,122,245,145,156,156, 12, 65, 16,
- 96, 97, 97, 1,141, 70, 3,107,107,107, 52,111,222,252,217,188,121,243,226, 41,197,200,138, 58,195,191,129, 23, 44, 0,224,228,
-201,147,175, 12, 27, 22,124,114,227, 99, 48,236,243,173,144, 75,242,134,150, 10,124,120,202,122,239,182,107,221, 2,151,110, 69,
-114,159, 76, 89,174,151,166,222, 92,224, 42, 8, 27, 99,128,196,215,104, 92,144,146,146,130,196,196, 68,244,236,213, 11,219,183,
-109,195,243,231,207, 17, 24, 24,136,118,237,218,193,217,217, 25,207,159, 63,199,181, 11,122,232,211,211,144,102,184, 9,181, 85,
- 83, 28, 56, 23,165,159,189,202, 16,245, 79,189, 45, 8, 33, 61, 1, 12,177,182,182,174,170,209,104,226, 57,142,219, 13, 96, 55,
-128,126, 18,137,164,159, 90,173,118,203,202,202,122,138,188,217, 68, 7,203, 29, 74, 82, 42, 29, 20, 74,107, 8,156, 30, 18,137,
- 4, 94, 94,190,160,188, 1,233, 89, 90, 12, 29,208, 3,183,238,222,199,241,179, 87, 56,147, 73,248,201,156,219,202,178, 44,245,
-247,247, 71, 82, 82, 18,164, 82, 41, 84, 42, 21, 44, 45, 45, 49,125,250,116,172, 88,177,162, 80,100, 85, 86,104,125, 12,248, 91,
-123, 91, 94,249,110,101,158,200, 74,136,139, 71, 98,140, 20, 78, 14, 46,248,105,197,178,220,244,231, 9, 77,127, 5,254,211, 34,
- 11, 0, 4, 65,248, 58, 54, 54,214, 89, 34,145,184,114, 28,135,151, 47, 95,226,198,141, 27, 24, 55,110, 92, 98,106,106,106, 91,
- 74,105,165,242,168, 84, 42,147, 10, 44, 89, 74,165, 50, 9, 40,117, 56, 49,163,136, 37, 43,163, 12,202, 18,135, 9, 9, 33,213,
-124, 61,173, 78,173, 95, 58,209,187,113,211,230,140, 90, 98,157,158,243, 56,161,229,197,243,231,154,143, 91,250,203,167,132,144,
- 78,148,210, 39,165,145, 42,164,210,174,205, 90,180,144,128, 38, 66, 34,111,137, 69, 11, 7, 32, 57, 37, 11,233,105,217,144,201,
- 44, 96, 48,177,224, 5,130,230, 45, 91,225,183, 77, 59, 81,123,196,112, 86, 46,149,118,124,155,132, 86, 62,230,255,252,243,207,
-222, 1, 1, 1,216,184,113, 35,206,110,222,140,143, 50, 51,113,142, 97, 88,147, 84,234,120,212,100, 90, 7, 96,191,185, 60,181,
-107,215,198,175,191,254,138, 45, 91,182,188, 24,212, 62,105,239,196, 65,112, 54, 26,209,229,230, 67,216, 87,233, 1,220,124, 8,
-251,134, 1,168,193, 73,240,152, 16,188, 18, 14, 42, 36, 36,164, 77,209,239,255, 18,242,215, 54, 44,113,136, 93, 2,160,109, 72,
- 72, 8, 45,250, 93, 30,161,218,217,127,244,150, 1,239,250, 4, 85,247, 38,166, 93,203,241, 50,151, 51,204,122,104,148, 63,202,
-161, 19, 35, 40, 93, 86, 70, 15,130,178, 44, 11, 43,149, 10, 78,182,182,121,102,126,134, 1, 4, 64, 48, 1,132,207, 19, 0, 84,
- 32,168,200,164,105, 65, 16, 32,151,203, 75,116,124,175,168,111, 86, 81,206,236,236,108, 60,123,246, 12, 35, 71,142,132, 90,173,
- 6, 0, 36, 36, 36,192,199,199, 7, 18,137, 4,177,177,177,248,253,247,223, 81,181,106, 85, 40, 20, 10, 82,193, 66, 41,104,248,
-235, 18, 66,206, 1,168, 27, 31, 31,111,237,230,230,134, 10, 91,180, 4, 10,141,158,192, 96,224,241,232,209, 35,196,197,197,225,
-217,211,199,104,156,155, 5, 10, 22,148,210, 10, 89,180, 60, 61, 61,131,252,252,252,214, 44, 88,176, 64,230,233,233, 9, 74, 41,
-236,236,108,161,209,104,144,146,146,138,192,192, 64,120,121,121, 97,209,162, 69, 0,176,253,239, 22, 89,197,234, 84,161,208, 42,
- 42,184, 62,127,207, 27,105,105,150, 96,217,255,205, 62, 45,199, 71, 75, 6, 0,109, 59,245,145,156, 58,126,212,130, 3,230, 37,
-176,236, 60, 73,249,229,104,226, 5, 65, 93,218,255, 47, 95,190,132, 84, 42,197,158,221,187,145,150,152,136,122,245,234,161, 73,
-147, 38,120,252,248, 49,110,221,186, 5, 7, 7, 7, 56,121,190,131,115, 79,141,136,136,211,194,198,198, 6, 81, 49,204, 63, 22,
- 50,128, 16, 50,162, 67,135, 14,115,126,252,241, 71,103, 87, 87, 87,105,114,114,114,192,202,149, 43,235,173, 92,185,114,252,167,
-159,126,234,242,233,167,159,218, 57, 57, 57, 73, 18, 18, 18,252,191,248,226,139,134,132,144,170,148,210, 37,101,113, 90, 88, 88,
-217,179, 50, 11, 16, 34,129,173,141, 29, 36,114, 11, 8,156, 4,188, 0, 88,219, 56,225,210,173, 61,248,227, 94,246,168,164, 84,
-236, 54,227,185,161, 14, 14, 14, 96, 24, 6, 14, 14, 14,127,178, 84,143, 27, 55, 14,235,215,175, 47, 28, 70,172,172,200,250,126,
-101,123, 75,146, 47,178, 18, 94, 74, 64,244, 85,113,120,255,229,140,244,231, 9, 45,223, 6,145, 85,240,142,163,148,226,233,211,
-167,208,104, 52,184,112,225, 2,190,254,250,235,228,226, 34,203,197,197,101,132,181,181,245, 87, 57, 57, 57,139,226,227,227,151,
-151,199,155, 47,162, 94,237, 12,150, 48,156,104,110,136,135,146,134, 9, 9, 33, 82, 47, 55,229,137, 91, 23,182,250,216,208, 59,
- 4,209, 35,129, 71, 89,225, 86, 87,157, 91,119,107, 28,204, 52, 88,245, 77,149, 38,163,166,159, 32,132, 4,148,102,217, 18,120,
-190,129,133,165, 21,128, 36,220,188, 17, 90, 40,178, 82,211, 50,161, 55,178,208, 27, 8,116, 70, 6,239,118,232,130, 21,107,182,
- 32, 54, 41, 13, 5, 51, 18,223, 22, 16, 66,236,131,130,130, 70,247,235,215, 15,243,230,205,195,233, 31,127, 52,140, 33, 36, 75,
- 2,208, 16,158,135, 64, 41, 97,204,112, 98, 47,206,243,195, 15, 63,236, 7, 48,112,193, 56,188,147,158,131,161,238, 61,168,125,
-149, 30,121,199,246,157, 74, 1,192, 62,249,244,171, 77,102,112,112, 48, 41, 24, 89,171,232, 8,219,191, 29,146,224,224,224,115,
- 33, 33, 33, 40,250, 93,214, 9,214,174, 53,187, 77,255,114,220,194,198,157, 91,145,248, 73, 29,145,150,165,227,102, 68, 24,229,
- 49,218,178, 69, 86, 81,124,185,114, 37,110, 69,230, 61,199,158,206,206,152,242,225,135,160, 28,240, 71,120, 4,118,158, 62,141,
- 1, 29, 58,192, 34,127,198,159,185,214,167,146,172, 88, 69,173, 89, 21,181, 58,101,100,100, 96,247,238,221,104,210,164, 9,212,
-106, 53, 36, 18, 9,234,214,173,139,251,247,239,163, 90,181,106, 32,132,224,192,129, 3,232,221,187, 55,158, 60,121,130,119,222,
-121,199,178, 50, 66, 43, 34, 34,194,154, 82,218,186,192,250, 81, 89,232,245,122, 60,120,240, 0, 61,122,244,128,157,157, 29, 60,
- 60,182,227,244,137,173, 80, 7,125, 4, 66, 80, 33,161,197,243,252,199,193,193,193, 50, 66, 8,180, 90, 13,148, 74, 21, 44, 44,
- 44, 97,101,101, 13,127,255, 0,196,197,197,161,115,231,206,134,168,168,168, 85,241,241,241,187, 42,154,214,192,192, 64,139,204,
-204,204,143,170, 84,169, 34,207,239,237, 6, 86,175, 94,125,114, 84, 84, 84,118, 69,173, 90, 5, 2,139, 16, 2,150,101, 11,133,
-150,132, 97,224,230,234, 92,184,157,239,159, 70,202,224,202,138, 77,213, 43, 0,192,219,219, 27, 43,214, 30, 98,130,131,131, 49,
-126,252,120,152, 76, 38,172, 90,149, 55,201,238,131, 15, 62,128,209,104,196,222,189,121,147, 36, 37, 18, 73,153,102,147, 27, 55,
-110,224,230,205,155, 48,153, 76,200,204,204,196,177, 99,199,112,238,252,121,236, 56,112, 6,207,159, 62, 70,221, 0, 31, 12, 31,
-254, 49,164, 82, 41, 54,109,218,132,150, 45, 91,254,163, 47, 4,169, 84, 58,104,253,250,245,110, 27, 55,110,204, 56,112,224, 64,
-110,179,102,205, 20,203,150, 45,115, 94,177, 98,133,147,193, 96,192,132, 9, 19,146,174, 92,185,162,239,213,171,151,197,186,117,
-235,220,170, 87,175,222, 17,192,146, 18,238,167, 5,128, 1, 0, 6,183,109, 98, 35,201,200,214, 66,224, 12,120,250,252, 25, 50,
-115, 12, 16,120, 35, 94,196,196, 33, 71,199, 35, 53, 45, 27,117, 27,116,250, 57, 52, 52,116, 38, 33,100, 6,165,244, 72,121,233,
- 12, 15, 15,199,149, 43, 87,240,252,249,115, 60,125,250,244,149,255, 70,140, 24,129, 45, 91,182, 84,216,162, 85,178,200, 98, 65,
-244,213,112,228,192,213,140,164,199,241,111,141,200,202,127, 7,205,117,115,115,155,235,230,230,166, 60,121,242,164, 77,149, 42,
- 85,192,113,156,161,184, 37,171,109,219,182,179,214,175, 95,239, 86,173, 90,181,113, 0,150,255, 27,210,206, 48, 24,177,104,245,
-104, 71, 43,249,139, 56, 60, 90,146, 31, 75,144, 5, 52, 89, 64,232, 54, 72, 90,204,126, 54,174,215, 84,187,105, 27,231,141, 64,
- 25, 51,100,163,158,188,196,234,213, 43, 48,113,194, 80,252,246,203, 34, 8,130, 4,122, 19, 11,111,223,102,208, 27, 5, 16, 70,
-130,122, 13, 26,225,108,232, 5, 72, 25, 96,247,198,213,111,149, 41,139, 82,154, 70, 8, 89,117,224,192,129,207,198,143, 31, 15,
- 65, 16,228, 95,173, 94,173, 77, 78, 78,158,143, 10,196,191, 42,129,167,247,234,213,171, 35,167,173, 72,222, 63,113, 16,216,231,
-135, 73,218,205,135,176,239, 59,149, 98,207, 66,130,134, 1, 72, 83,151,220,196,159, 47,246,253,118, 8,173, 2, 37, 89,244,187,
- 36, 52,244,175,246,141,141,189,221,199, 77,234,250, 59, 78, 25, 63, 70,242, 36, 65,135,189, 85, 62,204,249,125,243, 79, 22, 9,
-156,226,231,199, 84,187,172, 34, 23,222,249,251,239,133,191, 23,111,223, 94,226,127,241,125,251,154,221, 51, 43,205,138, 85, 81,
- 75, 22, 0,168,213,106,219,142, 29, 59,162,125,251,246,120,255,253,247, 11,125,178,234,215,175,143, 29, 59,118,160, 79,159, 62,
-184,125,251, 54,220,220,220, 80,179,102, 77,212,172, 89, 19, 71,143, 30,173,104, 5, 7,207,243, 8, 10, 10, 42,152,117, 88, 55,
- 38, 38,198,186,178, 5,169,215,235,145,154,154, 10,123,123,123,200,229,114, 52,109,218, 4,159,125,222, 20,142,110,191, 34,168,
- 86, 0,114,115,115, 11,167,191,155,209,216, 6,213,168, 81, 3,201,201,201, 72, 78, 78,134,147,147, 19,220,221,221,225,234,234,
-138, 37, 75,150,208,229,203,151, 31, 55, 26,141,171,146,147,147, 43,108,201,114,115,115,107,101,111,111, 63, 75,171,213,202,139,
-244,112,229, 78, 78, 78, 7,221,221,221,231,199,197,197, 85,100,141, 77, 24,141, 70, 16, 66, 16,242,212, 29,185, 6,130,172,152,
-155, 24,255,158,207, 43,194, 75, 42,149,154,227,208,155, 59,112,224, 64,103, 47, 47, 79,188,140, 10,199,158, 61, 20, 63,254,248,
- 99,193,172, 72, 68,230,119, 12, 10,182,219,181,107, 7, 95, 95, 95, 84, 36, 72,166, 32, 8,184,123,247, 46,182, 31, 60, 7, 55,
-159, 90,120,241,232, 1,110, 29, 61,140, 42, 78,246,168,221,160, 17, 76, 38,211,107,133,222,120, 19, 48,153, 76, 27,252,252,252,
-168,193, 96, 56, 7, 96,197,189,123,247,134,198,199,199, 79, 56,116,232,144,123,191,126,253,226, 14, 31, 62,188, 12,192,198,123,
-247,238,141,254,246,219,111,219,115, 28, 87,226,108, 65,150,101,127,251,226,139, 47,218,246,235,215,143,200, 24,147,225,228,137,
- 77, 18,142, 51,145, 47,103,108,224, 67, 47,158, 99, 56,206, 68,222, 31,248,133,112,244,247,123,204,168,207, 23,243,245,155, 5,
- 35, 44, 44,204,181,123,247,238,223, 2, 40, 83,104, 21, 88,170, 74,179, 80,178, 44,139,161, 67,135, 98,199,142, 29,102,231,123,
- 56, 80,205,218,199,242,202,247, 43, 59, 88, 18, 73, 78, 17,145, 85, 29, 71, 14, 92,205, 72,124, 20,247, 86,137, 44, 0, 72, 73,
- 73, 89, 11, 96,173,189,189,125,162,133,133, 5,178,179,179,255, 84,255, 8, 33,202,128,128, 0,165, 92, 46, 71,167, 78,157,236,
-221,220,220, 34, 25,134, 89, 30, 27, 27, 91,170,226, 40,105,152,176,164,225,196,215,153,117,104,231,132,238, 77, 91, 53,176,122,
-104, 51,207, 74, 41,209,221,174, 18,169,180, 38, 0, 50,245, 46, 79, 47, 69, 15,200, 34, 73,138,250,141,218, 53,132,181,196,162,
-123,105, 66,139, 97,217, 91,153,233, 25, 93,179,178, 13,184,248, 71, 24, 6, 14,168, 1,189,145, 64, 16, 24,228,228,234, 1, 86,
- 10, 6,192, 7, 31, 14, 1, 37, 18,164, 37,198,129,101,217,123,120,251, 48,125,244,232,209, 93,103,204,152, 81, 53, 63,254,149,
- 79,126,252,171, 41,132,144, 58,180,156,224,227,101,240, 84, 57,188, 99,246,164,131, 23,214,100, 6, 55,215, 62,106, 24, 0, 0,
-176,111, 24,128, 52,169, 20,143, 37, 44, 82, 41,133,182,152, 85,171, 77,209,239,255,152,117,240, 21, 39,248,162,219,102,249,104,
-249, 85,243,236,210,166,113,163,207,103,206,152,105,117,255, 82, 40,166,125,179,130,250, 53,234,152,189,246,194, 45, 67,142,133,
-111,215,236,228, 71,127,152,171, 47, 0,160,203,187,125, 80, 55,176,201,159,254,108,217, 46, 47,150,228,197,179, 55,144,152, 28,
-107,118, 99,155, 47, 14, 74,244,201, 50,103, 74,127, 9,166,239,140,176,176, 48,231,152,152,152, 87, 28,223,125,125,125, 65, 8,
-193,213,171, 87,113,229,202, 21, 12, 28, 56, 16, 18,137, 4, 82,169, 20,231,206,157,171,144, 53,166,136,117,233, 46,165,180, 13,
- 33,164,179,167,167,103,137,179, 13,205,225,210,106,181,200,204,204,196,137, 19, 39, 80,163, 70, 13,124,255,253,247,112,119,115,
-193,204,153,147, 32, 8, 2,178,178,178,192,243,188,185, 22, 45,161,192, 90, 36, 8, 2,146,147,147, 81,181,106, 85,172, 92,185,
- 18,203,150, 45,251, 54, 46, 46,238, 80, 69,211,232,237,237,109,203,243,252,151, 61,122,244,232,216,171, 87, 47,116,238,220,249,
-149,255,183,109,219,102,181,119,239,222,249, 94, 94, 94, 93,140, 70,227,130,196,196,196,100,115,120,127,253, 53, 47,252,146,186,
-217, 92, 76,235, 87, 5,131,199,110,194,146, 37,251,160, 80, 40, 94,105,120,231,205,155, 87,166,136, 17, 40,245,147,165, 92,138,
-155, 52,245, 7,231,249,243, 79,227,244,233, 36, 48, 12, 3, 55, 55, 55, 48, 12,131,103,207,158,129, 97, 24,248,248,248,128, 97,
- 24,196,198,198, 22,248, 4,166, 67,103, 94, 44, 67,134, 97,160,211,233,240,242,197,115,196, 68, 69,194, 50, 43, 1, 78,214,106,
-164,135,223, 69,221,225, 35, 10,227, 63,253,195, 61,220, 45, 0,182, 20,217,245, 3, 33,196, 64, 8,121, 31,192,126, 74,105,129,
- 69,227,219,252, 79,137,104,214,172, 89,253, 25, 51,102, 72, 11,194,109,184,123,127,199, 25,141, 70, 1, 0, 2,234,182,126, 69,
-237, 63,126,252, 24, 75,150, 44, 65,110,110, 46,100,230, 4,186,203, 23,173, 5, 51, 12, 75, 18, 97, 21, 17, 89, 0,224,224,227,
-249,243,213,155,231,248, 59, 81,107,180,247, 30, 30, 83,197,191, 96,192, 24,222, 94,145, 85,220,178,229,233,233, 57, 87, 16, 4,
- 74, 41,157, 93,228,221,170,240,246,246,190,112,242,228, 73, 7,142,227,240,211, 79, 63,217, 38, 36, 36,216,182,110,221,122, 26,
-128, 82,133, 86, 73,195,132, 37, 13, 39,162,200,172, 67,133, 66, 97, 95,214,235,163,248,172, 67,158,135,191,181,149, 45,210, 17,
- 3,189,163,169,126,134, 3,151,118, 42,126,196,109,247,232, 6,129, 22,188,169, 42,147,101,128,135,218, 22, 2,165,254,165,118,
- 78, 77,166, 99,183,111,222,234,228,237, 85,131, 61,116,228, 60,122,246,238, 7,189,158,129,206, 68, 64, 88, 41, 8, 43, 67,157,
-186, 13, 80,179,118, 93, 80, 0, 55,174, 93,226, 12, 38,211,169,183,169,236,221, 91,126, 62,208,189,229,103,203, 65, 5, 90, 66,
- 28,173,170,189,123,247,158, 15,224,243,242,120, 92,222,249,124,160,107,243, 60,158,162,113,180,190,248,108, 52,194,175, 73,109,
-206,223, 92, 40,235,220, 12, 33,201,167, 9,212,202,255,205, 58,148, 50,149, 15,205,241, 95, 17, 92,102, 9, 45,111,111,111, 91,
-103, 75,245,175,159, 14,255,216, 42,250,206,101, 36, 68, 92,197, 31,231, 35,211,119,238,221,151,150,155,154, 52,188, 2, 34,171,
-112,152,207,193,181, 10,124,107,253, 89,104, 41, 45,157, 0, 0,190,181,154,128,181,176,169,232,144,199,159,172, 89,149, 17, 89,
- 69, 95,216, 37,197,208, 26, 53,106, 20,214,175, 95,143, 22, 45, 90,192,207,207,175,240,101, 95, 81,171, 89,113,235, 82,101,102,
- 27, 22, 69,118,118, 54,124,124,124,176,110,221, 58,220,187,119, 15, 86, 86, 86, 24, 56,112, 32,178,179,179, 11, 5,150,185,206,
-240,148,210,199, 39, 79,158,108,220,191,127,127, 42,149, 74, 73, 70, 70, 6,108,109,109,177,114,229,202,220,248,248,248,144, 74,
-136,172,126, 50,153,108,210,128, 1, 3,216,128,128, 0, 36, 38, 38,194,218,218,218, 68, 8,145, 2,128,173,173,173, 73,165, 82,
- 97,244,232,209,168, 87,175, 94,171, 41, 83,166,180,240,240,240, 88, 25, 27, 27,187,169,172,186, 68, 8, 41,108, 80,135, 47,127,
- 0,131, 33, 79,168,172, 90,181, 10,249,190,110,255, 27, 34,136,138, 2,204,152,201, 98,105,105, 9, 63, 63,191, 18,203,190, 85,
-171, 86,184,113,227, 70,222,208,164, 68, 2,103,103,103,252,241,199, 31,102,205,164, 42, 8, 4, 25, 22, 22,134, 90,190,142,184,
-119,250, 36, 28,213, 82,212,115,119,133,103,171, 54,136,140,140,252,199,172, 89,249,177,169,198, 0,232,144, 95, 7, 55, 0, 24,
- 85,100,123, 37,165,244,231,138,112,114, 28, 71, 25,134, 33, 47, 95,190, 52,170,213,106, 98,111,111, 47, 81, 40, 20,208,235,245,
-133,130,235,241,227,199, 56,114,228, 8, 98, 98, 98, 96,111,111,207,216,216,216,192,104, 52,166,155,195,239,239,239, 15, 87, 87,
-215, 87, 28,223,135, 15, 31, 94, 41,145, 53, 20, 8, 90,255,221,130, 42, 10,134,181,169,229,216, 5, 79, 31, 60,211, 49, 6, 40,
-255, 63,136, 44, 0, 72, 79, 79, 95, 11, 96,109,193,182,147,147,211, 48,150,101,103,218,216,216,216,156, 59,119,206,214,201,201,
-137,108,218,180,201, 52,123,246,236, 12,150,101,211, 9, 33, 75,255,121,113,136,136,148,204, 40, 31,169,157,187,112, 71, 71, 47,
- 77,120, 57,173,102,186,180,134, 19,169, 29,132,222, 73,247, 47, 14,227,162,154, 39,198, 39, 48, 20, 66, 68, 25,239,224, 13,211,
-102,204,251, 50,242,193, 45,111,165,181, 18,163, 70,207, 64,200,241,179, 32,140, 20, 23, 46, 93,133,193,200, 35, 37, 45, 19, 3,
- 62, 24, 4, 79, 55, 71, 68, 92, 57,145,204, 9,194,202,183, 75,100, 11, 43, 58,245, 28,102,167, 80,169,243,239, 9,143, 45,191,
- 76, 2,195, 44,199,156, 57,115, 16, 20, 20, 52,150, 16,242,117,121,113,180, 8, 17, 86,212,105,243,129,157, 76,145,199, 67, 5,
- 30,235,118, 79,203,143,163, 53, 17, 43,215,238,173, 83,219,247,233, 87,101,197,209,122, 91, 68, 86,209,239,114,133, 86,149, 42,
- 85, 20, 22, 82,140,180, 87,201,166,124,250, 97, 47,167,164,168,112,196,220,191,149, 55,188, 96,212, 26,227, 35, 35,252,204,184,
-104,135, 98,241, 59,104, 89, 67, 87, 58,157, 9, 21,229, 44,104,112,139, 91,179, 42, 34,178, 74,226, 44, 42,182,138,198,205,242,
-242,242,194,252,249,243,203,141,163, 85, 66,222, 11,246,119, 6, 80,183, 64,108, 33,207, 25,190,179, 57, 51, 13, 75,227,116,114,
-114, 66,106,106, 94,132,132,182,109,219,162,109,219,255,205,103, 48, 26,141,133, 86, 44, 43, 43,171, 63, 89,180, 74,226, 84,169,
- 84,211,246,237,219,247,241,165, 75,151,250, 79,158, 60, 89,218,190,125,251, 2, 49,167,161,102,172,237, 86,156,147,231,249,209,
- 39, 78,156, 96, 5, 65,192,186,117,235,112,227,198, 13,170, 86,171,103,169,213,234, 21, 42,149,138,215,106,181,163, 70,140, 24,
- 49,232,171,175,190, 98, 90,181,106,133,203,151, 47, 51, 85,171, 86, 29, 2, 96, 83,121,121,191,122,245, 42, 24,134, 1,151,246,
- 2, 99,167,237,132,133, 74,130, 7, 15, 30, 32, 45, 45,237, 79, 65, 76,205,185,159, 69, 45, 37, 5,159, 86,173, 90, 21, 14, 67,
- 54,109,218, 20, 44,203,226,246,237,219, 37, 14,195, 22,227,164, 14, 14, 14,133,245, 67, 38,147,225,236,217,179,248,230,155,111,
-224,109,111,139,244,251,247,224,218,246, 93,116,252,120, 4, 6, 14, 28, 8,150,101, 97,111,111, 95,104,249, 45, 47,239,175,249,
- 66, 40,202,249,113,173, 90,181,134, 68, 68, 68,120,214,169, 83,199, 45, 44, 44,172, 93, 80, 80,144,207,189,123,247, 10,182, 21,
- 48,195, 55,167, 40,231,245,235,215,247,172, 88,177, 98,244,208,161, 67,101,130, 32,240,209,209,209, 38, 0,196,213,213,149,189,
-126,253,186,112,232,208, 33,104,181, 90,120,122,122, 50, 30, 30, 30,228,212,169, 83,194,253,251,247,175, 82, 74,103,152,147,119,
-158,231, 95, 9,227, 80,240,123,219,182,109, 21,126,222,171,212,244,255,190,125,235, 0,175,148,184,219,136,143,141, 2,159,233,
-100, 60,114,224,176,190, 34, 34,235,111, 40,163,191,147,115,222,163, 71,143, 60,244,122, 61,228,114, 57, 86,173, 90,101,156, 63,
-127,126, 68, 74, 74, 74, 75, 90,194,140,242,226,156,149,156,117,152, 86, 6,231,159,102, 29,102,166, 34,228,192,193,235,141, 45,
-123,111,192,216,184,228, 66,199, 70, 74,136,253, 62,151,192,150,234, 38,117, 98,153,163,115,153,108, 94, 19, 82, 90, 58, 41,165,
- 6, 66, 72,191,222,125, 62, 56,179, 99,199,118,203,217,115,231,226,143,171,247,144,154,145, 3,129,178, 16, 8,193,204,153,179,
-225,234,104,143,172,184, 71, 26,189,209,216,187,248, 82, 60,255,245,114, 39,132, 25,119,234,208,166,229, 12,129,144,155,248, 80,
-193,102, 71,169, 7, 15,236, 45,233,215,175, 31,246,237,219,135,176,176,176, 53,165,137,172,162,156,148, 50,227,238,157,219,185,
-156, 0,130, 54,249,161, 66,146,243, 84, 61,228,195,222,146,129, 3, 7, 98,255,145, 75,216,113,248,233,234,237,135,232,225,183,
-185,195, 82,169,200,240, 86, 18,132,181, 12,172,230,209,170, 65,109,165,132,215, 34,230,126, 20,210,114,117, 56, 21, 30,157,193,
- 80,166,210,177,117,242, 94,144, 50,188,120,241,232, 79,255,101,100, 40,243, 27,244,138, 45, 43,197, 48,204, 43,214,172,215,177,
-100, 21, 77,167,139,139,203, 43,203,185, 20,109,184, 11,124,128, 42, 17,218, 97,218,139, 23, 47,172, 95,188,120, 1, 74, 41,174,
- 94,189,106,221,180,105,211,105,175, 99,205,154, 52,105, 82,161,213,170,248,119, 73,251,202, 67,190, 83,250, 50, 71, 71,199,221,
- 83,166, 76, 25,219,180,105,211, 78,115,231,206, 37, 0,216, 74, 86, 64, 78, 16, 4,132,134,134, 98,223,190,125,188,209,104, 28,
- 25, 23, 23, 87,212,215,225, 39,119,119,247, 83,125,250,244,217,244,240,225, 67, 54, 34, 34, 2,230, 8, 58,173, 86, 11, 63, 63,
- 63,112, 28,135,133, 99,189,144,157, 93, 7, 28,199,129,231,121, 88, 88, 88,188,178,206,165, 57,229,196, 48, 12,120,158,255,147,
-208,186,122,245, 42, 88,150, 69,203,150, 45,113,235,214,173, 66,139, 86,121, 22, 40,163,209,248,194,197,197,197,101,222,188,121,
-133,233, 74, 78, 78,198,201,147, 39,209,236,157,230, 8, 28, 57, 10,113,113,113, 88,186,116, 41,220,221,221,241,253,247,223, 35,
- 45, 45, 13, 28,199,253,221,230,244,174, 17, 17, 17,158, 31,126,248, 97,210,189,123,247, 60,143, 28, 57, 98,219,189,123,119,139,
- 15, 62,248, 32,233,222,189,123,158,132,144,230,168,160, 19, 52,207,243,211, 9, 33,199,191,255,254,251,105,159,127,254,121,211,
-161, 67,135, 74,165, 82,169, 16, 27, 27,203,109,223,190,157,248,249,249, 49, 50,153,140,156, 56,113, 66,184,118,237,218, 21,142,
-227, 22, 82, 74, 47, 84,196,226, 92, 84,100,177, 44,107,150,200, 42,142, 9,206,138, 33, 86, 76,114,203, 21,171,230, 51, 1,190,
-158,198,205,219, 79,190,188,112,249,209, 19, 86,207, 77,248, 21,120,130,255,135, 96, 89,118, 87,173, 90,181,134,141, 27, 55, 78,
-213,185,115,103,197, 87, 95,125,149,153,157,157, 93,162,200, 42,229,185,252,203,103, 29, 2,248,101,250,228, 35, 19,190,168, 51,
-172,218, 39,174, 85,112, 58, 55, 9,233, 18,150,177,182,101,208,192,135, 69,118,202, 99,167,195,103, 54, 62, 67, 57,113,217, 40,
-165,215, 9, 33, 29,106,215,169,191,119,225,247, 11,157,103, 77,157, 34,221,123,228, 24, 40,103,196,213,115,231, 96, 41,227,233,
-253,155,167, 19,245, 70, 67,175,183,113, 9,158,184,139, 63,237, 32,132, 28,180,183,183,191,243,241,208,161,126,181,106,125, 0,
-181, 90,141, 61,123,246, 96,203, 79, 63,241,203,128,254,107, 9,185, 53, 42, 47,166, 94,169, 72,188, 92,200,115,123,196,199, 31,
-251, 55,104,240, 9,212,106, 53,118,239,222,141, 77,203,150,153,205,243, 31,183,102, 21, 68,134, 15,201,255, 54, 35,142, 22, 67,
-178,175, 60,138,206,185,250, 40, 58, 7, 2,165, 2,165,122,134,193,203, 92,163,241,251,200, 39, 49, 39, 42,153, 16, 8,130,128,
-111,191, 27,247, 38, 51, 87, 40,126, 42, 59,165,187,132, 70, 34,166,232, 26,105,229, 45, 40, 13, 0, 38,147, 41,198, 76,250, 5,
-222,222,127, 90, 3,117, 65,101,211, 90, 48, 28,104,174,200, 50, 55,142, 22, 0,164,164,164,196, 3,152,229,230,230,182,173, 83,
-167, 78, 35, 0,196, 86,178,140,214,181,105,211,102, 36, 0,150, 16,178, 38, 54, 54,246, 79, 14,165,113,113,113,145, 30, 30, 30,
-139,125,125,125, 11, 23,154, 46,139, 83, 16,132,167,117,234,212, 49,150, 84, 22,165,109, 11,130, 80,110, 25,101,100,100,160, 73,
-147, 38,127, 90,211,146, 82,138,232,232,232, 2,139, 83,225,189, 47, 75,192,229,228,228,140,250,236,179,207,214, 74,165, 82,111,
- 0,164, 64,228,242, 60,207,254,252,243,207, 74,158,231, 89, 0,132, 97, 24, 78, 42,149,234,246,237,219,199,113, 28,247, 66,175,
-215,143,250,155,223, 17,187, 73,222, 82, 12,185, 17, 17, 17, 1,249,150,172,152,176,176,176,219, 59,118,236,112, 2,176,179,146,
-117,243, 2,128, 11,132,144, 86,171, 86,173,154, 62,106,212,168, 38, 3, 7, 14,148,180,109,219, 22, 33, 33, 33,124,104,104,232,
- 85,173, 86,187,160, 34, 2, 43,191, 44, 51,189,188,188, 10, 5, 87, 57,207,114,153,142,188, 14, 62,138, 21,131,198,184, 43,215,
- 45, 56,153,147, 18,103,184,100,202, 49,204,216, 8,132,225,255, 49, 18, 18, 18, 38, 19, 66,102, 47, 93,186, 52,174, 94,189,122,
- 10,153, 76,102, 48, 87,100,253,141,214, 3,142, 16,210,237,199,142,125, 15,182,153,249,153,111,199,118, 45,213, 94, 85,156, 61,
-238, 71, 37,226,241,229,144,220, 59,135,191,123, 78,245,233, 61, 41,165,156, 25, 92,215, 8, 33, 53, 38, 77,153, 84,176,168,116,
-221,246,167, 14,208,255, 71,139, 74,127,187,120,241, 98,191, 90,181,106, 97,207,158, 61, 56,181,117, 43, 6,164,164,224, 44,203,
-178,140, 76,230,112,216,104,252, 1,230, 5, 46,254,118,201,146, 37,254, 65, 65, 65,216,181,107, 23, 78,108,218,132,254,149,227,
- 41, 13,141, 1, 56, 21, 52, 79, 0, 30, 2,104, 8, 64, 5, 64,143,188,165,157, 28,139, 28,159,154,255, 95,193,255,231, 1,252,
-149,142,176,229, 71,134, 47,142,123,143,158, 53,124,211,169,208,106,181,105,126,126,126, 21,154,115,109, 50,153,202, 28,195,229,
- 56, 46,166, 90,181,106,102, 91, 45,204, 17, 69,169,169,169,141,254,194, 23,196,107,249, 98,189,210,136, 8,194,115, 55, 55, 55,
-161,160,209, 47, 73,132,149,180,143, 2,207, 42,114,157,248,248,248,135, 0,190,168,108, 58, 99, 99, 99,247,194,140, 69,163,205,
- 61, 14, 0,210,210,210,222,248, 98,190,132,210,216,175,190,250,170, 66, 2, 27,148,198,150, 81,214,247, 0, 52,253,183,191,101,
- 11,150,222, 33,132, 48, 97, 97, 97, 35,242,135,183, 79, 3, 88,147, 31,209,251,117,249, 11, 5,215,186,117,235, 38, 80, 74,145,
-149,149,181,172,162, 2,171,176,247,156,152, 24,242,166,242,158,150,104,248,125,251,154,152,119,181, 25,198, 9,235,115, 12,155,
- 32,162,160,204,116,206,206,206,191, 13, 30, 60,184, 25,128,141,175,203, 87,210,112,226, 27, 72,227, 51, 66, 72,189,179,147,190,
-249,248,172,173, 85, 48,120, 73, 0, 12,204, 97, 24, 82, 67, 0,252,106,142, 85,188,104,126,145, 23,166,100,201,255,167,114,206,
-143,127, 53, 97,216,176, 97,152, 61,123, 54, 78,252,240,131,113, 12, 33,153, 82,128, 30,207,235,104, 50, 4,152,106, 46,207,144,
- 33, 67, 48,123,246,108, 28, 93,184,176, 82, 60,229,192,137, 16,114, 4, 0,166, 77,155, 54, 99,254,252,249,118,211,167, 79,175,
-187, 96,193,130,239,243,183,195, 11,254,207, 47,211,238,211,167, 79,175, 93,228,255,108, 0,215,255,226,251, 89, 98,100,248, 87,
-122,236,111,250, 3,160,131,200, 41,114,138,156, 34,167,200, 41,114,138,156, 34,231,107,126,130,243, 36, 75,233,223,165,253, 46,
-178, 15,255,196, 71, 34,246,221, 68,136, 16, 33, 66,132, 8, 17,255, 81,171,220,145,215,249,255, 13,166,163,192, 71,171,168,165,
-116, 29,144, 55,221,189, 67, 41,166,212,138, 4,142,236, 80, 9,179,239,105,145, 83,228, 20, 57, 69, 78,145, 83,228, 20, 57,255,
-127,113,150,199, 93,202,249,193,132,144, 35,148,210,238,165,125, 23, 8,171,226,191,139,236,123, 99,110, 7, 37,228,101,100,105,
- 62, 90,226,208,161,200, 41,114,138,156, 34,167,200, 41,114,138,156,255,137,161, 67, 0,116,218,180,105,211,255,109, 67,135, 0,
-220, 0,140, 44,250, 49, 99,232,112, 15, 27, 27, 11,107,185, 92, 45, 3, 0,131, 65, 99,244,240, 64, 22,208,247, 31, 91,240, 86,
-196,127,214,180,235,146, 47,234, 19,223,228,177, 34, 68,136, 16, 33,226,255, 13,146, 11, 44, 85, 0,146, 1,144,252,109, 67,254,
-119,114,126,219, 81,252,247, 43,255,255, 85,160,148,198, 3, 40,113,182,188,164, 52,145,149,146,162,118,148, 72,210,253,121, 94,
- 87, 19, 0, 36, 18,230, 65, 74,138, 93,164,163,227,158,148,202,136, 45, 39, 23,151,155, 82,150,245, 48,231, 88, 19,207,199,166,
- 36, 38,190, 18, 58,158, 2,255,121,129,103,174,136,120, 29,177,241,119, 8, 21, 39, 39, 39, 23, 23, 23,151,247,172,173,173,223,
-201,200,200,184,150,156,156,188,191,180,117, 15, 9, 33,243, 9,193,148,252,223,139, 40,165,211,203, 72,187,217,199,150,112,174,
-159, 90,173, 30, 75, 8, 9,202,207,127,152, 70,163, 89, 69, 41,125,244,255, 80,216,170, 0,244,146, 72, 36, 67, 28, 29, 29,155,
- 36, 36, 36,124, 69, 41, 93, 90, 73, 46, 9,128, 73,182,182,182, 3,109,109,109,171,166,165,165, 61,201,202,202,218, 5, 96, 9,
-165,180,220,169,210, 95,143,119,127,167,109,231,182,179, 66, 79,132,126, 59,119,121,220,229, 63,253, 63,217,221,161, 83,199, 22,
-179, 67, 15, 95,154, 55,125, 69,108, 90, 5,211,198, 0, 40, 8,154, 39,228,247, 90,233, 27,190,151, 82, 0, 61, 0,180, 5, 16,
- 10,224,176, 57,249, 46,133,171, 25,128, 25,249,105, 94, 66, 41, 61,251, 47,175, 71, 22, 46, 46, 46, 11, 1,244,144, 72, 36, 17,
-177,177,177, 35, 41,165, 49,255,112,154, 36,200,155,230, 31,132,188, 48, 28,215,205, 9,225, 96, 14, 28, 29, 29,187, 75, 36,146,
-177,249,161, 93, 86,165,164,164, 28,249,183,150,141, 66,161, 88,230,234,234,250,137, 86,171,213, 16, 66,104,209,120,143, 28,199,
-197, 36, 39, 39, 55,122, 11, 95,109,215,255,229,207,203,200, 18,196, 87,233,113,180, 98, 99, 97, 45,145,164,251, 39, 37,220, 27,
- 16, 23,127,183, 63, 0,184,187,213,221,229,236, 90,103,103,108,172,220,216,184, 99, 31, 75,169, 90,178,138,101,165,245,117, 6,
-189,163, 84, 34, 77, 49,114,166,219,140,129,142,141,127,176,175,196, 96,139, 82,150,245,120, 30,121,214,153, 51,166, 65,170,116,
-135, 84,229, 93,106,130,221,221,221, 43,149, 81,123,251,234, 86, 70,133,114,130, 84,202,118, 20, 40, 23, 68, 5,128, 33,210, 48,
-142, 55,157,145,233,245, 63,166,165, 69,101, 87,246, 38,214,116, 36,174, 20, 24, 8,130,142,160, 56, 69,128, 29, 15, 82,104, 66,
- 5, 10,193, 44, 17,241,154, 98,163,232,185, 75, 41,165,147,223,116,101,242,244,244,180,123,255,253,247,151,125,243,205, 55, 42,
- 75, 75, 75,242,226,197,139,206, 83,167, 78,109,237,233,233,249, 69, 76, 76, 76, 92,113,209, 71, 8,166, 8, 2,101, 0,128, 97,
-200, 84, 23, 23, 23, 53,203,178,127,138,109,196,243,188,154, 16,140, 19, 4, 74,242,143,157, 66, 8, 89,110,142, 96, 84,169, 84,
- 31, 52,105,218,252,139,133,139,151, 88,186, 56, 59, 91,112,188, 96,124, 22,253, 92, 61,107,218,228,166, 42,149,106,185, 86,171,
-221, 94,137,135,134,176, 44, 59, 64,161, 80,116, 7, 80, 43,127,247,125,189, 94,127,132,231,249,157,230, 54,232,174,174,174,231,
- 89,150,173, 82,145,107,243, 60,255, 34, 33, 33,161,101, 37, 31,246,126,222,222,222,191,182,105,211, 70,221,164, 73, 19,200,229,
-114,204,158, 61,123, 18,128,165,230, 8, 42,181, 90, 61,192,194,194,162, 90, 78, 78, 78,148, 86,171,221, 43,151,203, 59, 44, 95,
-190,220,171, 69,139, 22, 86,137,137,137,132,101, 89,151, 35, 71,142,124,244,211, 79, 63,117, 38,132,180, 47,175,145,203,140,162,
-179, 20, 61,106,181,202,140, 58, 59, 11, 64,215,226,255,115, 58,229, 16,202,122,117,215,210, 91, 47, 81,129,169,245,132, 16, 70,
- 42,149, 46,119,117,117, 29,166,211,233,116,200,139,189, 70, 93, 92, 92, 10, 27, 28, 0, 48, 24, 12,233,233,233,233, 1,149,184,
-143, 1, 0,134,219,218,218, 14,251,242,203, 47,237,186,118,237,138,173, 91,183,126,186,126,253,250,116, 66,200,111, 0,126,161,
-148, 62,172, 32,237,148,132,132,132,110, 82,169,148,120,121,121,177, 0,206, 86, 32, 61,254, 0,102,230, 55, 54,171, 40,165, 60,
- 33,164, 29,144,247,188, 3, 88, 84, 32,220, 88,150, 93, 21, 16, 16,240,222,253,251,247, 87, 83, 74,191,173,236,179,238,234,234,
-186,118,229,202,149,253,123,246,236,201, 38, 39, 39,123,212,171, 87,111, 27,128, 86,111,160, 65,250, 88,161, 80, 76,172, 91,183,
-110,224,195,135, 15, 35,179,178,178,150,228,223, 79, 90,198, 57,158, 0, 58,216,218,218,182,159, 57,115,166,101,247,238,221,177,
-110,221,186,110,235,215,175,207, 33,132,156, 1,112,250,117, 69,160, 68, 34, 25, 27, 19, 19,227, 72, 41,133,155,155,219, 88,148,
-179,184,249, 63, 5,150,101,151, 15, 24, 48, 96,216,182,109,219,212,207,159, 63, 87,123,120,120, 20, 6,207, 38,132, 84,186,253,
- 20,241,218, 22,173,117, 5,130,203,172, 56, 90,114,185, 90,198,243,186,154,113,241,119,251,183,110,243,179, 13, 0,156, 63,247,
- 89,127,103,215,218, 97,114,185, 58, 82, 97,173,220,215,167, 71,135,250,125,187,183, 33,158,110,206,136,137, 79,114,249,101,199,
-137, 46, 71, 78,156,221,135,188, 0, 98, 37,130, 51,166, 65,101, 60,141,135, 23,127,130, 99,219, 56,172, 56, 26,131,203,119,158,
- 65,147,153,130, 42,174, 42, 44,158,208, 9,174,118,234, 74,101,210,210,197,191, 29,163, 84,239,252,240,131,193, 54,239,245,170,
- 37,245,113,117, 5,165, 10, 68, 70,229, 52, 63,118,242,108,227,189,187,183,143,181,116,241, 31,144,147, 24,105,246,203,173,161,
- 59, 81,229, 26,209, 75,194,146,143, 90, 53,173,221,254,131,110,173,152,192, 90, 53, 16, 17,126,191,211,193,223,175, 46, 14,116,
- 97,206,112, 60,221,108, 33,195,129,155,113,165, 7,244, 43, 73,112,116,236,216,177,149, 66,161, 48, 22, 61, 78,175,215,203, 8,
- 65,179,202,136,141,130,107, 24, 12,122, 70, 42,149,131, 97,200, 23,117,235,214,173,149,146,146,114,150, 16,242,107,108,108,197,
-172, 5,159, 19, 34, 79,151, 72, 26, 50, 10,133, 27,111, 48, 56, 0, 0,145,203,211, 61,237,236,234,204,156, 49,195,146,101, 89,
- 33, 53, 53, 21, 26,141,134,140, 24, 49, 66, 25, 21, 21,213, 7,192, 79,229,164, 17,235,215,175,247,119,115,115, 51, 20,255, 47,
- 62, 62, 94,222,179,231,123,149,121,105,251, 55,123,167,197,196, 19, 39,142,215,202, 74, 75,215,173, 95,186,246,166, 73,169,214,
- 87,173, 21, 32, 93,181,110,147,205,200, 97,131, 62, 35,132,220,166,148, 70, 86,128,211, 91,165, 82,237,251,225,135, 31,130,218,
-181,107, 39,117,118,118, 70, 98, 98, 34,238,223,191, 31,244,251,239,191,247,218,180,105,211, 36, 66, 72, 31, 74,169, 57, 17,220,
-253,206,108,254,213,217,194,222, 1,188,201, 4,247,186, 13, 10,227,155, 61,254,253, 36, 56,163, 17,130,201,132, 90,221,123,229,
-153,101, 4, 1,129,129,129,149,138,186, 75, 8,113,175, 93,187,246,150,239,191,255, 94,166,215,235,113,245,234, 85,156, 61,123,
- 86,136,143,143, 95, 80,158,200, 34,132,156,156, 59,119,174,103,203,150, 45,173, 82, 82, 82,192,243,188,227,129, 3, 7,198, 54,
-104,208,192,218,203,203, 75,190,121,243,102,228,228,228,128,227, 56,251,106,213,170,217,127,240,193, 7,134,205,155, 55, 79, 2,
-176,176, 52, 75, 86, 86, 20,157,149, 64,170,117, 9,104, 56, 4, 9,228,120,151, 47,186,186, 29,179,174, 78, 10, 45, 91, 93,171,
- 87,183,170, 86,211, 98,170,165,117, 29,251,172,216,211, 83,187, 86,175,190,254, 88, 84,249,157, 33, 66, 8,195, 48,204,242, 62,
-125,250,124,184, 99,199, 14,245,253,251,247,213,181,106,213,130, 32, 8,133, 17,248, 11, 2,206,250,249,249, 85,230, 62, 46, 24,
- 61,122,244,212,254,253,251,163,110,221,186,133, 65, 81,231,204,153,131,169, 83,167,218,157, 63,127,126,210,246,237,219, 39, 17,
- 66, 22, 82, 74,167, 85,164, 45, 47,218, 94, 86, 48, 89, 95, 63,125,250,180,223,190,125,251, 6, 77,153, 50,197, 15,192, 56, 0,
-179, 83, 83, 83,219, 0,128,131,131,131, 28,192, 89, 66,200,199, 95,126,249,229,152,105,211,166,161, 91,183,110,179, 9, 33,223,
- 85,198,202, 71, 8, 97, 29, 29, 29,187,245,236,217,147, 53,153, 76,176,176,176,128,201,100,170,254,154, 2,139, 0, 88, 57,106,
-212,168, 49,163, 71,143,134,157,157, 29, 76, 38,147,255,142, 29, 59,214,207,158, 61,251, 29, 66,200,240,146,210, 74, 8, 25, 50,
-102,204,152,247, 7, 15, 30,140, 70,141, 26, 65, 34,201,187,141, 63,252,240, 3,230,205,155,103,121,242,228,201, 94,155, 55,111,
-238, 69, 8,217, 75, 41,173,116, 44, 52, 65, 16, 32,145, 72,240,242,229, 75, 56, 59, 59, 43,236,237,237, 79, 16, 66,214,165,166,
-166,238,255, 23, 89, 77, 22, 13, 24, 48,224,195,109,219,182, 89, 2,192,226,197,139, 49,113,226, 68,184,184,184,192,210,210, 82,
- 84, 59,255, 18,139, 86,241, 56, 90,149, 10,239,160,209,104, 26, 76,255,252, 35, 48, 76, 94,175,177, 70, 85,111,204,159, 49,146,
- 28, 60,114,162, 65, 89,231, 73,149,238,120,120,241, 39, 40,188, 38, 64,111,226,112,229,206, 83,156, 90,220, 25, 0,224,223,117,
- 38,244,198,246, 5,202,208, 94,174, 82, 45, 50,240,252, 31,112,117,189,138,232,232,228,242, 68,150,147,171,203,145, 53,107, 22,
-170,130,170, 7,192,200,153, 16,155, 20, 11, 66, 20,240,244,176,194,199, 67,186, 74,219,180,113,119,252,250,235,181, 33, 22, 78,
-254,189,115,147, 35,203, 13, 24, 26,224, 68, 54,182,106,224,215,255,131,224,150,138, 58, 65,181, 33, 83,168,254, 39,192, 26, 53,
- 66,195, 70,141,152,105, 57,217, 29,175, 93,191,217,113,207,201, 43,250, 0, 39,178,235, 97, 50, 29, 90, 86, 57, 20, 21, 28,227,
-199,143, 71, 65,239,187, 0,137,137,137,248,253,247, 51, 37,158, 99,110, 89, 23,189,198,119,223,125,103,149,158,158,222,117,195,
-134, 13,239,186,185,185,125, 23, 31, 31,127,209, 28,146,143, 8,169, 2,133,162,253,176, 37, 75,132,250,239,189,199,218,186,186,
- 50, 2,207,147,184, 39, 79, 28,150,254,244, 83,219,180,199,143, 85,185,246,246,105,233, 90,173, 38, 50, 50, 18, 74,165,146, 72,
- 36,146,198, 37, 40,252, 68, 66,200, 34,134, 33, 83, 9, 33, 80, 40,148,145,163, 71,143,190,149,255,119,149,195,135, 15,171,123,
-244,232,161, 1,240, 60,207, 28,174,244, 96, 89,198, 63,207,129, 16,139,204, 17,152, 22, 22, 22,159,127,251,253, 66,139,172,180,
- 12,173, 49, 55,215,228,100,109, 73,136,165, 21,155,149,153,157, 29, 27,159,172,159,249,213, 60,118,212,199,131, 63, 7, 48,214,
- 92,145, 85,175, 94,189,107,251,246,237,115,118,112,112, 64, 70, 70, 6, 82, 83, 83,113,237,218, 53, 8,130,128, 62,125,250, 40,
-154, 55,109,210, 96,198,204, 89,151, 9, 33,239,152, 35,182, 44,236, 29,177,184,101,253,188,198,250,121,106, 97,249,172,235,215,
-189,240,152,121, 49,153, 0, 0,165, 82,249, 58, 75, 72,189,211,190,125,123, 25, 0, 12, 31, 62, 60, 43, 59, 59,123, 62,128,109,
-180,140,160,170,249,152, 52,107,214, 44,143,170, 85,171,250,108,219,182, 13, 57, 57, 57, 0,224, 92,181,106, 85, 4, 4, 4,240,
-161,161,161,240,247,247,135,149,149, 21,206,159, 63,143, 43, 87,174,160, 97,195,134, 86, 50,153,172,127,105, 66,171,109,231,182,
-179, 20, 61,106,181, 10,104, 56, 4,150,214,110, 88,191,125, 39, 30,222,220,212, 74,111,188, 63,107,254, 56,143,193, 90,170, 24,
-234,233,103, 53,173, 74,163, 54, 14, 53,106,191, 7,159,134,183, 28,117,252,133,167,179, 63,173,182, 64,162,212,109,154,251, 67,
- 92,106,105, 34, 11,192,226, 62,125,250,244,219,177, 99,135, 45, 0,220,187,119, 15,137,137,137,112,114,114,130, 82,169,132, 84,
- 42, 45, 92,159,180,146, 24,186,106,213,170, 66,209,198,113, 92,225, 42, 0,106,181, 26,173, 91,183, 70,253,250,245,177,127,255,
-254,161, 0,166,149,144,198,150, 77,155, 54,221,234,227,227,227, 85,116,127,112,112, 48, 6, 14, 28, 8, 0,104,211,166, 77,251,
-190,125,251,210, 2, 65, 24, 31, 31,159,115,253,250,245,142,148,210,171, 37, 37,136, 97, 24,109,108,108, 44,190,252,242, 75, 60,
-123,246,236, 83, 66, 72, 52, 0,165, 92, 46, 47,236, 31, 19, 66,252,107,215,174,189,124,226,196,137,136,138,138, 66, 68, 68,196,
-181,202, 14,165, 82, 74,121, 95, 95,223,199, 38,147,169, 17,199,113,208,106,181,232,221,187,183,210,222,222, 62,145,101,217, 7,
- 41, 41, 41,131,242,125, 82,204,109,132,148, 0,150,140, 30, 61,122,204,148, 41, 83,112,230,204, 25, 28, 60,120, 16,131, 7, 15,
-198,132, 9, 19, 96,105,105, 57,108,194,132, 9,151,145,183,160,121,113,180, 95,181,106, 21,120,158,255,211,179,161, 84, 42,209,
-178,101, 75, 4, 6, 6,226,224,193,131,237, 81,100,125,212, 10, 54,146, 62,125,250,244,145, 11,130,128,220,220, 92,132,134,134,
- 90,170, 84, 42, 75, 79, 79,207, 17, 0,254, 53, 66,203,199,199,103,244,142, 29, 59, 44,139,142,254, 40, 20, 10, 20,169, 7, 34,
-254, 97,139, 86,121, 61,172, 66, 24, 12, 26,163, 68,194, 60,112,119,171,187,235,252,185,207, 10,135, 14, 1,230,129,193,160, 49,
- 2, 0, 47, 80,100,105, 56,168, 20, 12,158, 39,100, 35,252, 73, 74, 73, 23,126,101,138,166, 84,229, 13, 69,147,231,160,148,194,
- 96,228,161,207, 76,192,252, 16, 13,238,199,232, 96,200, 77,135,193,152,231,134,229,232,232, 40, 57,113,226,216,196,211,167,127,
- 31,243,219,111,191,177, 49, 54, 54, 17,200,204,108, 80, 18,167,189,125,117, 43,137,133,106,215,234, 53,179, 85,148,125,130,200,
- 23,185,168,225,217, 4,142,182, 94, 72, 72,201,197, 31, 17, 71,241,224,209, 17, 84,117,243,193,132,207,187, 40,191,253,126,219,
- 78, 59,187,170,222,233,233, 79,179, 74, 75,103, 62,134,172, 61, 30, 9, 46,237, 9,248,212, 40,240,217,113,127, 22,120, 78,222,
-104,216,206, 3, 78, 94,213, 21, 67, 39,204, 27, 2, 96,104, 73,156,148,210, 68,150,101, 87, 51, 12, 25, 67, 8, 65,221,186,245,
- 98,150, 44, 89, 98, 44,225,154,198,186,117,235,197,176, 44,227,153,247, 98,103, 86, 9, 2,159, 88, 78, 58, 95, 17, 53,114,185,
- 98, 74,158,217,223,237,101, 72, 72,136,177, 95,191,126,248,225,135, 31,228, 83,167, 78,157,233,233,233, 57,188,248,240, 94,113,
-206, 62,132,120,123, 84,175,222,233,187, 63,254,160, 82,147,137,164, 93,187,150,149, 17, 31,207, 37,100,103,203,119, 63,120,208,
-237,147,201,147,229, 94, 94, 94,184,120,228,136, 67,114,110, 46,205,208,235,181, 25, 25, 25,148,227,184,107,165,228,125,186,139,
-139,139,122,253,250,245,254,163, 71,143,190, 21, 23, 23, 55, 61,255, 5, 49, 31, 64, 32,128,231, 69,246, 97,205,154,157,177, 35,
- 70,140,136, 76, 76, 76,156, 94, 86, 58,139,160,182,179,147,179,122,251,218,205,119,237,173, 84,140,147,167, 59, 35,181,181,149,
-112,114,149, 76, 0,180, 85,189,170, 91, 0,168, 93,202, 61, 59, 93,188,199,173, 82,169,246, 29, 58,116,200, 89, 42,149,130,231,
-121, 56, 57, 57,225,217,179,103,200,200,200, 64,118,118, 54,158, 62,184, 15, 95, 47, 47,124, 61,109,170,219,184,169,211,246, 17,
- 66, 26, 21,109,204, 74, 92, 0,217,100,252,147,101,175,148,133,200, 95,249, 54,167,220,139,225,217,139, 23, 47, 96,105,105,137,
-160,160, 32,203, 63,254,248,227, 66,105, 34,171,216, 34,192,253, 91,180,104, 97,181,125,251,118, 52,108,216, 16, 54, 54, 54, 8,
- 13, 13,197,189,123,247, 96, 52, 26,153,156,156, 28, 88, 89, 89, 97,193,130, 5,240,241,241, 65, 86, 86, 22, 94,188,120,225, 32,
-149, 74, 29, 75,227, 12, 61, 17,250,109,102,212,217, 89, 9,228,120,151,245,219,119, 98,196, 7, 3,240,127,236, 93,117,120, 84,
-199,219, 61,179,190,155,221,184, 11, 9, 26, 32,193,221, 67,144, 34, 1,138,123,209, 66,113,135, 96,197, 9, 45, 14,133, 98,197,
-189, 88,113, 39, 72,112,136, 64, 32, 64, 72,136, 18,247,245,123,239,124,127, 68, 26, 66,100, 3,244,251,217,158,231,217,103,247,
-238,189,251,238,220,153,185, 51,103,206,204,188,175, 3, 13,191, 99, 94,149, 44,255,174,123,203,159, 41,191, 66, 55,185,105, 93,
- 75,247,218,221, 33, 18, 43, 48,113,246, 82,132,133,156,181, 84,102, 5, 77, 32,108,116, 5, 0, 83,138,218,204, 83, 68,120, 21,
- 42, 84, 24,125,252,248,113,211, 66, 83, 41, 5, 49, 15, 11, 7,129, 47, 41,224,187, 33,249, 73, 8, 65, 68, 68, 4,236,236,236,
-160, 80, 40, 10, 2,136,135,134,134,226,193,131, 7,200,143, 70, 81,130,205, 33,215,174, 93,171, 32,151,203,139, 94,131,228,228,
-100, 48, 12, 3, 19, 19, 19,176, 44, 11,157, 78, 7,189, 94, 15,181, 90,173,240,244,244, 28, 15,224, 97,113, 54, 57,142,155,222,
-191,127,255,150, 15, 31, 62,172,178,105,211, 38,104,181,218,213, 31, 63,126, 68,159, 62,125,192,113, 28,218,183,111,223,140, 82,
-250,122,254,252,249, 0,128,105,211,166,233,115,114,114,126,250,146,123,207,187,127,207,190,125,251, 86,185,126,253, 58, 90,183,
-110, 13,141, 70,131, 53,107,214,152,109,219,182,205,108,255,254,253,182,179,103,207,222, 13,160, 83,105, 54,243,202,107,181,131,
-131,195,184, 65,131, 6,201,242, 98,152, 98,223,190,125, 88,178,100,201, 17, 0,243, 47, 94,188,184,232,204,153, 51,195, 70,143,
- 30,141, 37, 75,150, 76,205, 39, 90,197,217,124,255,254, 61,108,109,109, 97,102,102,150,219, 88,234,116,120,254,252, 57,174, 94,
-189,138,154, 53,107, 26,210, 17, 94, 43,133,100,237, 62,124,248,176,105,116,116, 52,110,223,190,141, 74,149, 42, 65,169, 84,150,
- 25, 27,246, 91, 7,127, 46,203,166, 74,165, 82, 71, 69, 69, 41,126,249,229, 23, 56, 58, 58,194,205,205, 13, 82,169, 20,132, 16,
-232,245,250, 18,195,171, 25,146,206,182,109,137, 32, 57,214,242,123,115, 11,203, 9,148, 82, 65, 70, 70,218,118, 29,210,255,124,
-247,142,106,255,191,238,253, 63, 92,209,106, 64, 41,125, 86, 56,230, 97,254, 96, 68, 0, 0,231,207,159,167, 62, 62, 62, 36,255,
-221,217, 25,153,201,201,150, 97,118, 14,117,142,218, 57,212,202,139,251,197,123,197,231, 91,134,217,219, 43, 51, 1, 64,199, 80,
- 4,188, 74, 71,208,219,143, 8,126,251, 17,114,137, 97,226,139, 70,199,228,238,207,164, 20,234,236,191, 7,173, 58,101, 26, 52,
-186,220,229, 30, 90,141, 18, 25, 73, 47, 73,191, 94, 29,165,227,198,141,133,163,163,179,109, 73,246,116, 18,233,212,137,211,186,
- 90, 88, 89, 8,113,238,222, 37, 52,171,217, 11, 82,137, 16, 41, 25,106,128, 0,111,194,175, 2,156, 41, 66,194,162,208,180,150,
- 9, 58,125,231,161, 56,245,231,235,153, 0, 22, 26,146, 94, 38,230, 17, 68,238, 93, 32,100,245,208, 39,191, 6,151,254, 1,144,
- 59, 64, 69, 20, 72,137,255,128, 87,119, 78,228,110, 56, 45, 3, 44,203, 78,176,181,181, 77,159, 63,127,126,219,106,213,170,233,
-198,143, 31, 31, 24, 25, 25,249, 73, 88,155,138, 21, 43,174,219,186,117, 43,222,190,125, 27,187, 98,197,138, 91, 73, 73, 73, 11,
-202,249,128,250, 18, 66, 54,228, 77,197, 37,159, 62,125,186,161,191,191,255,212, 13, 27, 54,216, 79,154, 52, 73, 60,105,210,164,
-145, 0,150,149, 54, 93, 40,151, 72, 58,172,184,125,155, 50, 49, 49,154, 3,155, 55,139,183, 4, 4,204,215,113,156,147,141,157,
- 29,105,209,180,105,142, 9,143,151,156,146,144,192,216, 86,169,194,143,184,122,213,154,202,100,113, 23, 47, 94,204,204,206,206,
- 46, 49,116, 14,159,207, 87, 22, 55, 93, 88, 28, 28, 29, 29,181,197,173,225, 42,165,114,103,114,148,234, 44, 42, 87,166,223,181,
-111, 94,237,237,235,240,112,169,133, 5,223,189, 90,165, 26, 47, 94, 69, 60,162, 44,171, 38,132,100, 26, 98,139,207,231, 15,216,
-176, 97, 67, 29, 51, 51, 51,112, 28, 7,115,115,115, 36, 37, 37, 65,171,213, 34, 51, 51, 19,218,172, 12,104, 51, 50, 16,252, 33,
- 2, 45,219,182, 69,191,206,223,121,236, 63,253,215, 0, 0, 71, 74,179,235, 84,183, 65,129,146,181,180,162,245,223,115, 65,209,
-233, 5,164,235,151, 6,238, 16, 41, 20,232, 56,221,247,107, 26,232,103, 98,177,248, 66,239,222,189,187,206,156, 57,147, 23, 31,
- 31,127,137, 16,210,146, 82,250,178, 84, 69, 88,161,168,154,156,156,140,172,172, 44,152,155,155, 99,195,134, 13,176,183,183,135,
- 82,169,196,227,199,143,169,139,139, 11,185,121,243, 38, 92, 92, 92,144,156,156, 12,157, 78,135,156,156,156,143, 90,173,182,196,
-233,242,188,233,193, 46,211,187, 56, 94,124,253,116, 95,107,103,242,254,113,255, 25, 94,111, 95, 7,191,138,186,114,245,222, 50,
- 70, 45,141, 78,143,185, 54,167,114,227,103, 54, 19,102, 45,193,111,171, 23,225,245,195,219,169,246,174,153, 91,100, 68,179,183,
-105,199,146,211,155,147,147,163,126,245,234,149,105, 96, 96, 32, 8, 33, 48, 55, 55,135,137,137, 73,177,100,235, 11, 26, 75, 94,
-161,255, 65, 78, 78, 14, 68, 34, 17,172,173,173,177,107,215,174,130,142,183, 82,165, 74,165,153,217,222,177, 99,199, 1,174,174,
-174,166,133,191,108,220,184, 49,198,142, 29,139,223,127,255, 29, 1, 1, 1,159,196,211,252,248,241, 99,188, 94,175,223, 91, 74,
-217,166, 19, 66, 58,247,234,213,235,233,157, 59,119,204,118,237,218, 5,134, 97,138,125,237,220,185, 19, 15, 30, 60, 88, 72, 41,
-125,245,133, 29, 70,205, 62,125,250,220, 62,120,240,160, 69, 82, 82, 18,146,147,147,145,157,157,141,156,156, 28,176, 44,139, 26,
- 53,106, 16,134, 97,106,148,149,143,124, 62,255,244,230,205,155,187,255,248,227,143, 16, 8, 4,208,106,181,216,188,121, 51,230,
-204,153,147, 0, 96, 56,165, 84, 71, 8,153,191,119,239,222, 97, 61,122,244, 64,189,122,245, 60, 74,179,153,157,157,141,236,236,
-108, 8,133, 66, 56, 56, 56, 96,249,242,229,208,106,115,155,149,234,213,171, 23, 76,121, 2,216, 94,189,122,245,238, 97, 97, 97,
-107, 40,165,191,150,208,206,244,162,148,142, 97, 89, 54,171,119,239,222,214,135, 15, 31, 54,141,141,141,197,211,167, 79,177,112,
-225,194, 52,142,227, 88,142,227,136, 74,165,122,111,111,111,255, 84, 34,145,200,148, 74,101,106, 74, 74,202, 74, 74,233,165,127,
- 97,103, 78,132, 66, 33, 70,141, 26, 5,129, 64, 0,153, 76, 6,181, 90, 13,189, 94, 95, 64,230, 81,206,105,105,119,119, 83,107,
- 1, 68, 63, 86,175,222,102,106,191, 41,221,108, 29,157,156, 97, 97, 38, 65,104,232,203,150, 55,174, 95,221,236, 89,195,118, 27,
-167,213,111,123, 21,145,254,143, 7,187, 47,202, 69,254,195,184, 86, 3, 0,207, 80, 40,230, 33,242,118, 33,150,208, 18,245,101,
-109,108,254, 76,142,141, 21,235,196, 98,147,176,124,149, 43,151,100,245,101,129,195, 96,116,250,188,134,130,230,189, 12, 36, 90,
-122, 22,111, 95,135,224,206,149,191, 96,163,140, 69,242,251,250,128,168, 14,180,170, 12,168,181,186,188,209, 27,139,192,167,215,
-145,153,145,138,218,141,186, 1, 60,222,131,146,236,153, 91,147,110, 45, 26,214,229,191,141, 10, 65,227,234,125, 81,197,165, 53,
- 62,196,103, 34, 61, 91,131,180, 76, 53,234,215,246, 69, 82,154, 10,153, 74, 53, 94,190,221, 15,103,167, 42, 60, 34, 8,111,111,
- 40,209,210,188, 60, 9,205,171, 51, 16,185,181,132,184, 70, 15,240,221, 90, 33, 42,232, 38, 2, 47,174, 71,204,139,187,160, 28,
- 11,199,234, 77, 12,125, 72, 54, 95,186,116,169, 73,203,150, 45, 5, 29, 58,116,168,231,228,228, 84, 47, 46, 46, 46, 48, 79,205,
-169,215,181,107,215,122,182,182,182,216,184,113,163,138, 16,178,249, 11, 59,219,194,211,109,143,236,237,237, 87,156, 60,121,114,
-243,216,177, 99, 97,103,103, 87,167,180,223, 38, 9,133,245,134,175, 92, 73,133,124, 62, 61,242,219,111,162, 37,151, 46,173,221,
-179,119,175,168,157,183, 55,161,148,226,249,243,231, 38,191,252,246,155,201,224,239,191,143,252,144,152,200,248, 7, 4,232,226,
- 99, 98,178, 18,115,114,150,196,197,197,125,252, 87,212,108,189, 94,127,255,125,196,123,231, 70, 77,235,219, 62, 11,125,255,162,
- 83,187, 22, 45,120, 60, 30,239,117,248,135, 0, 91, 91, 51,147,171, 87,174,234,244,122,253,125, 67,108, 73, 36,146,110,237,218,
-181, 19,164,165,165,193,201,201, 9, 73, 73, 73,136,141,141,205, 85, 28, 50,210,160,203,200,128, 62, 51, 29,108, 78, 54,222, 63,
-126,132,250, 85, 42, 75,142,231, 46,150, 63, 82, 70,153, 20,171, 84, 21, 86,182,196,166,166, 16, 43, 20, 32,229,156, 54, 36,132,
-124,111, 97, 97, 49, 39, 61, 61,253, 2,165,116,185, 78,167,155, 56,103,206,156,198,155, 54,109,178, 89,177, 98,133,217,152, 49,
- 99,142, 19, 66,234, 83, 74, 53,165,116, 96,239, 24,134,177, 1, 96,119,253,250,117,216,217,217, 33, 35, 35, 35, 95,105,209, 42,
-149, 74,105, 74, 74, 10, 52, 26, 13,180, 90, 45,204,204,204,240,228,201,147, 52,134, 97,254, 42, 43,125,102, 85,201,114,141, 46,
-116,129,181,135, 60, 78,199, 88,122, 37,166,114,105,139,214,196, 45, 5,176,182, 75,213,170, 59,117,220,237,247,111, 66,206, 90,
- 70, 60,190,149, 26,247, 38,167,202,206,243,225, 89,165,228, 35, 37,132,112,132, 16, 90,189,122,117, 36, 37, 37,129,207,231,195,
-196,196, 4, 10,133, 2,115,231,206,197,230,205,155,203, 77,180, 8, 33, 82,185, 92,190,146,199,227, 13, 48, 55, 55,183,101, 89,
- 22,190,190,190,232,222,189, 59,196, 98, 49,116, 58, 93,129,162,153,175, 82,149,166,116, 80, 74,159, 3, 48, 43,242, 31,222, 54,
- 54, 54, 55, 52, 26, 13,194,195,195,113,250,244,233,182,148, 82,255,114, 62,219,225,132,144,206,173, 90,181,218,215,176, 97,195,
-170,148, 82,212,169, 83, 7, 3, 7, 14,196,254,253,251, 17, 24, 24,136,140,140, 12,238,234,213,171,123, 0,172, 41,111, 7,158,
-151,191, 53,250,244,233,115,247,208,161, 67,150, 41, 41, 41, 80,169, 84,200,201,201,193,241,227,199,209,178,101, 75,216,216,216,
-224,224,193,131, 12,165,244,108,105, 36,139,199,227,237,218,182,109, 91,247,209,163, 71, 99,203,150, 45, 56,114,228, 8,122,244,
-232,129, 1, 3, 6, 32, 41, 41,201,126,245,234,213,195, 8, 33,187, 0, 44, 26, 56,112, 32,178,179,179,241,248,241,227, 80, 3,
-159,121,164,167,167, 35, 61, 61, 29, 50,153,172,240, 51, 70, 0,236, 95,191,126,253,160,169, 83,167,162, 74,149, 42,139,242, 54,
- 5,125,182, 75,148,227,184,159, 98, 99, 99, 45, 5, 2,129, 53,195, 48,136,142,142,198,147, 39, 79, 48, 97,194,132,212,212,212,
-212,177,148,210, 15,132,144,249,163, 70,141, 90, 62,125,250,244,130,186, 52,125,250,244,115,132,144,206,255,223,106, 78,141, 26,
-150,181,196,124,201, 20,145, 72,104,157,150,150, 86,208,118,104,181, 90,104, 52,154, 79,148, 44,145, 72,104,221,164,129,219,121,
-149, 50,107,222,139,176,180, 18, 3,164,123, 86,179,168,107, 34, 55,159,234,211,185,223,144,239, 58,247,228, 51,122, 61, 46, 95,
- 62,139, 63,254,216, 10,239, 86,213, 81,165, 90, 29, 76,154, 60,197, 92,163,101,124,175, 94,189, 52,167, 69,147,202,151,178, 50,
-211,231,150,102,243,127, 28,231,243,200,213,249, 98,167, 14,139,103,144,125, 89,103,103,164,229, 61, 56, 54,150,150,150,191,177,
- 44,235, 13,252, 8,161,194, 1, 47,159, 60, 68,106,154, 16, 26, 21, 11,142,230,146, 45,131,136,139, 70,139,219,151,207, 96,195,
-250,181, 72, 73, 73, 65,171, 54,109,145, 45,168, 0,215, 10,174, 80,171,148,121, 15, 13,160,211,234, 97,107,239,134,103,207, 2,
-245,153, 57, 57, 37, 54, 72, 34,169,206,195,213,190, 58, 52,186,230,144,138,197,200,200,210, 34, 45,143,100, 29,252,179, 63, 52,
- 74, 21, 24,173, 14,140, 86, 15, 91,215, 62,168,105,223, 14, 28,123,182, 86,185,178,143, 99,161,139,184, 13, 93,196,109,200,154,
- 79,198, 95,126,131,138, 52,128,134,197,221, 77, 76, 76, 76,116,114,114, 58,251,252,249,243, 94,253,251,247,199,205,155, 55,199,
- 0, 24,151, 55,125, 51,166,127,255,254,120,254,252, 57, 94,188,120,113, 54, 49, 49,241,155, 4, 94, 21,139,197, 42,141, 38,183,
-143, 53, 49, 49,145,150,113,173,115,227,222,189,121, 25,207,158,101,174,191,119,111,209,206, 93,187, 68, 29,218,183, 39,122,134,
- 1,199,178,168,230,238, 78,190,251,238, 59,249,254, 99,199,172,249,122,253,131, 89, 19, 39, 94,255,125,232,208,172,135,217,217,
-134, 46, 52,175,152, 55,101, 8, 0, 21, 75,249,206, 96,104, 52,154, 77, 63,253, 56,162,131,255,237,187, 21, 92, 43, 56,155, 93,
-190,234, 31, 40,145,137,121, 85, 42, 85,229,167,101,164, 10,150, 46,154, 39,211,104, 52,134,146, 86, 15, 27, 27, 27,124,252,248,
- 17,111,223,190,133, 70,163,129, 94,175, 7,167,204,129, 54, 45, 29,218,140, 84, 16,181, 10, 18,150,133, 58, 57, 1, 21,171, 84,
- 6,254,222,145, 88,230, 84, 84,113, 68, 43,255, 93,106,102, 6,145, 92, 1,158, 80,104,112,112,116, 66, 72,195, 38, 77,154, 28,
- 59,113,226,132,104,228,200,145, 77, 9, 33,191,229,117, 16,237, 23, 46, 92,248,232,183,223,126,147,140, 29, 59,182,198,154, 53,
-107,134, 1,216, 94,146, 29,181, 90,125,236,252,249,243,131,221,220,220,236,130,131,131,161, 86,171,193,113, 28,186,116,233, 2,
- 0, 5,117,230,245,235,215, 42,181, 90,157, 24, 18, 18,146,249,225,195, 7, 45, 12,216, 37,184,104, 99,220,253,233,253, 92,122,
-219, 59, 56, 63,144,202, 42, 86,162,217,207,122, 77,239,231,178,122,221,241, 24,245,197,119,239,178, 22, 78,168,178, 42, 39, 43,
-104,130,133, 75,246,150,139,103,195, 13,217, 21, 76,243,183,179, 91, 91, 91, 67, 32, 16, 64, 40, 20, 66, 36, 18,129, 16,130,201,
-147, 39, 99,199,142, 29,165, 78, 29, 22, 37, 89,166,166,166, 47,150, 44, 89,226, 50,118,236, 88,145, 84, 42, 69, 90, 90, 26, 14,
- 30, 60,136, 81,163, 70,225,143, 63,254, 40,118,253, 75, 89, 83, 74,197,168,165, 83,135, 14, 29, 10,173, 86,139,129, 3, 7, 98,
-231,206,157, 83, 1,248,151,183,190, 83, 74, 31, 16, 66,220, 3, 3, 3,205, 0,244, 24, 48, 96,192,222, 62,125,250,192,223,223,
- 31,103,207,158,109, 11, 32, 12,128, 10,128, 95, 94, 16,103,191,210, 54,130,228,185,112,216,106,107,107,219,163, 86,173, 90,129,
-125,250,244,169,125,232,208, 33,139,196,196,196,252,205, 15,136,136,136,192,238,221,187,227,119,237,218,149,201,178,172, 53,143,
-199, 59,159,158,158, 62,183,148,233,194, 93,235,215,175, 31,145, 55, 29,136, 19, 39, 78,208,181,107,215,146,133, 11, 23, 34, 45,
- 45, 13,222,222,222,216,182,109,219,148,236,236,236,122,107,215,174,253,177, 95,191,126, 88,186,116, 41,114,114,114,214,151, 53,
- 88, 41,133,124, 17, 0, 45,214,175, 95,239, 54,117,234, 84,156, 56,113, 2, 13, 27, 54,148,189,127,255,254,119, 0,163,139, 43,
- 63, 74, 41,222,191,127, 15,165, 82,137,187,119,239, 98,209,162, 69,105,133, 72,214,148,113,227,198, 45,159, 50,101, 10, 86,174,
- 92, 73,131,131,131, 19,251,244,233, 99,191, 99,199, 14,126,181,106,213,166, 32, 55,232,250,255, 11,106,186, 91,175,106,210,216,
-107,142,163,115, 53, 28, 60,116, 24,169,169,169, 5,121,146,159, 47,148, 82,100,101,101,225,227,199,143, 48, 55, 51,197,234, 53,
-203,187,142, 31, 51,162, 2,114,221, 96,124,222,208, 85,181, 90,211,119,224,232, 25, 3, 7,143, 64,112,224, 83,236,223,187, 29,
- 33,193,207, 11,236, 49,122, 29,194, 66,159, 32, 44,244, 9,236, 29,220,240, 93,135,182,100,208,160, 65, 93,134, 14, 30, 96, 11,
-224, 31,115, 29,241, 31,172,102,125,230, 71,171,240,154, 45, 65, 89,114, 93, 30,201,122,113,244,232, 81,235, 86,173, 90,241, 25,
-134,193,165,203,151, 49, 97,220, 15, 24, 54,212, 23, 58, 88,130,209,138,192,137,164, 6, 37, 70,165, 82,130,130, 34, 39, 39, 7,
- 1, 1, 1,160, 28,131,253, 59,214,130, 82,174,128,104, 1, 20, 90,157, 14,206,174, 53,176,117,231, 10, 6, 66,225,163,146,236,
-101,166,240, 89, 61, 67, 17,155, 24,133,168,248, 16,152,155,186, 66, 32,116, 69, 74,186, 18, 2,158, 3,244,234,215, 96,243,100,
- 85,101, 78, 12, 84,186,175, 43, 63, 54,227,115,245,148,150,163,209, 85,169, 84, 7, 14, 28, 56,208,117,221,186,117, 98, 31, 31,
-159,234, 78, 78, 78, 45, 0,160,111,223,190,213,205,204,204,112,224,192, 1,173, 74,165, 58,240, 13, 21,159,118, 77,154, 52, 65,
- 90, 90, 26, 34, 34, 34, 2, 75,189, 55,173,214, 90, 97,103,199, 79,188,121, 83,159,148,150, 86,161, 93,187,118, 68,207, 48,224,
- 17,130,212,140, 12,124,136,140,132,133,133, 5,121,241,250,181, 98,243,164, 73,167,170,215,174, 45,200,223,145,104, 8,206,158,
- 61,107,130,220,117, 89,165,126, 87,206,202,157, 67, 8, 25, 49,113,226,196, 83, 7, 14, 28, 52, 79, 72, 76, 8,147,136,197,140,
- 66, 33,117, 26, 58,100,188, 32, 61, 61,125, 48,165, 52,219, 80,123,105,105,105,120,255,254, 61,100, 50, 25, 68, 66, 33, 56,149,
- 18,108, 78, 54,212,169, 73,224,235,180, 16,179, 44,172, 76, 36,168, 96,111, 15, 87, 91, 27,131,108,190,189,113,165, 96,225,123,
-225,233,194,213, 77, 60, 32,150, 43, 32, 54, 85, 96,252,185, 91,121,163, 81, 17,176,112,153, 33, 36,203,198,217,217,249,175, 67,
-135, 14,137,146,146,146,240,252,249,243, 64, 74,105, 6, 33,196, 20, 0, 23, 26, 26,122, 45, 36, 36,164, 91,222,174,187,178,118,
-139,173, 61,121,242,100,199, 86,173, 90, 49,149, 42, 85,146, 39, 36, 36,184,166,164,164,144,248,248, 79,215, 58, 95,184,112, 65,
-170, 82,169,114, 56,142, 59,133, 92, 63, 80,101,250, 47,154,222,207, 69, 26,240, 12,147,189, 58, 85,172, 99,102, 83, 23,169,204,
-179, 58, 15, 2,227, 39, 79,239,231,178,105,221,241, 24,181,140,104,246, 18, 54,186,130, 64,170,222,103, 96,121, 83, 27, 27, 27,
-132,134,134, 34, 32, 32, 0, 31, 62,124,192,251,247,239, 63, 33, 84, 99,198,140,193,254,253,251, 13, 82,180,228,114,249,202,197,
-139, 23,187, 76,157, 58, 85, 84,136, 20, 97,226,196,137,200,200,200,192,206,157, 59, 49,113,226,196,114,119,252, 69,202,170,114,
-199,142, 29,125, 28, 29, 29,145,146,146, 2, 7, 7, 7,180,106,213,170, 59, 33,164, 18,165, 52,226, 11,171,254,248, 78,157, 58,
- 45, 95,178,100, 9,244,122, 61, 70,141, 26,133, 55,111,222, 28,123,243,230,205, 6, 87, 87,215,201,179,103,207,182,183,183,183,
- 71,255,254,253,229, 0,122,151,100,196,202,202,202,111,251,246,237,131,125,124,124,120, 58,157,174,205,141, 27, 55, 16, 25, 25,
- 9,173, 86, 11,134, 97,240,238,221, 59, 76,156, 56, 49, 62, 37, 37,197,139, 82,250,206,128,116,141,156, 63,127,254,136,201,147,
- 39,227,151, 95,126,193,226,197,139,247,152,155,155,215,174, 95,191,126,131,197,139, 23, 99,214,172, 89,112,115,115,131,181,181,
-117,205,133, 11, 23,122, 76,159, 62, 29,155, 54,109,194,162, 69,139,246, 0,216,253, 37, 25,193,113, 28, 89,181,106, 85,189,245,
-235,215, 59,230,147, 44, 30,143,135,163, 71,143,226,217,179,103,221, 75,248,205, 54, 7, 7,135, 49,142,142,142,226,171, 87,175,
- 42,220,220,220,192, 48,140, 62,143,100,109,118,117,117,157,240,238,221, 59,248,248,248, 32, 60, 60,252, 0,165,116,152,151,151,
- 87,206,244,233,211, 77,100, 50,153,249,255,103, 7,206,231,145,225, 43,151,206,194,227,103,175,113,242,164, 8,143, 31, 63,134,
-189,189, 61, 36, 18, 9, 40,165,208,104, 52, 72, 74, 74,130, 94,167, 65,157, 90,149,177,111,215, 42, 36, 38, 38, 1, 60, 82,226,
-146, 27,194, 35, 67, 70,252,208, 11,119,238, 94,198,239,191,111, 71,118,118, 78, 9,131,111, 41,170, 85,247,128,179,147, 29,162,
- 99,162, 65,120,176,249, 39,239,245, 63,124,234, 48,255,121, 55,204,189, 67, 97, 88, 88, 88,108, 56,114,228,136,181,183,183, 55,
- 63, 39, 39, 7, 28,199,161,117,171, 86,152, 60,117, 42,206, 30, 58, 4,247,166, 3, 65,180, 10, 48, 38,134,237,122, 80,171,148,
-240,108,208, 2,253,250, 15, 64,212,135, 15,232,212,173, 15,212,106,101,193, 8, 35, 95,209,210,106,117,176,177,171,128, 43, 87,
-174,240, 49,106, 84,137,107, 76, 88,157, 56, 40,236,157,186,101,186,234, 25, 2, 30,239,135, 78,163, 67,157, 58, 11,161,227,172,
- 97,231, 50, 6,122,253,105,100, 38,221,200,157,198,176,246, 70, 76, 84, 20,120,124,209,139, 47,205, 68, 46, 39,233,171, 26,221,
-244,244,244, 12, 39, 39,167, 63, 3, 2, 2,134,244,238,221, 27, 87,174, 92,249, 17, 0,122,247,238,141,128,128, 0,188,127,255,
-254,207,244,244,244,140,111, 81,224, 78, 78, 78, 61,188,189,189, 7, 54,110,220, 24,231,206,157, 3,165,244,142, 65, 15,182, 80,
- 72,121, 60, 30, 56,142, 3, 1,144,146,158,142, 55,111,222, 32, 37, 57, 25,122,189, 30, 57,217,217,156, 71,245,234,217,148,227,
- 76,203,147,158,194, 59, 12, 81,204,174,195,252,239,190,128,108,125, 80, 40, 20, 81, 89,217,217,182,150, 22,150, 89, 98,177,152,
- 77, 75, 79,207,120,249, 34, 88,107, 96,231,144,143,208,144,144,144,218,113,113,113,136,138,138, 2,147,147, 5,190, 70, 11,158,
- 70,137,246, 45,154, 67, 6, 10, 41, 56, 8, 57, 61,132,124, 33,178,114,119,231,149, 57,221,145, 79,244, 11, 43, 91,132,144,220,
-233, 66,185, 28, 98,133,233, 39, 10,151, 33,245, 73, 34,145, 28, 58,126,252,184,163,179,179, 51,150, 46, 93, 10, 23, 23,151,154,
-117,234,212, 81,182,110,221, 90,102,111,111, 15, 79, 79, 79,180,104,209, 2, 23, 47, 94, 4,128,119,101,228, 31, 67, 8,249,238,
-206,157, 59, 51,238,221,187,215,143, 16, 66,124,125,125,209,185,115,103, 72,165, 82, 40,149, 74,164,165,165, 97,199,142, 29,132,
- 82,218, 32, 47,173,110, 82,169,244, 48, 33, 36, 70,165, 82,245, 47,106,115,255,250,186, 78,137,169,220, 40,123, 7,231, 94, 94,
-157, 42,214,105,215,169, 3, 42,187,183, 67,187, 78, 81, 0,176,202, 74, 16, 57,112,245,130,218,167,108, 42, 88,237,190,114,233,
-234,162, 86, 94,237,230,251,142,181, 92,190,106,123, 90,166, 1, 13, 25, 56,142,251,196,119, 80,209,243,195,134, 13,195,209,163,
- 71,203,204, 71, 30,143, 55, 96,236,216,177,162,194,223,229, 79, 25,119,235,214, 13,189,123,247,254,132,104,217,216,216,192,193,
-193, 1,145,145,145, 0,144, 98, 96,189,154, 60,114,228, 72,162, 82,169, 48,122,244,104,236,220,185, 19, 3, 7, 14, 36,254,254,
-254,147, 1, 76, 45,111,125,231,241,120,171,103,207,158, 61, 99,226,196,137, 72, 77, 77,197,133, 11, 23,208,165, 75, 23, 28, 61,
-122,212,246,194,133, 11, 43,189,189,189,193,231,243,113,238,220, 57, 48, 12, 83,170,175, 47,145, 72,212,195,199,199,135, 23, 29,
- 29, 13,145, 72,132, 70,141, 26, 33, 38, 38, 6, 74,165, 18,177,177,177,152, 50,101,202,199,148,148,148,182,134, 62, 71, 34,145,
-104,234,228,201,147,113,228,200, 17,248,250,250,238, 5, 48, 58, 35, 35,163,223,189,123,247,142,124,255,253,247,136,141,141,197,
-169, 83,167,176,104,209, 34, 50,108,216, 48,108,217,178, 5, 83,166, 76,217, 3, 96,116, 41, 59, 36,179, 18, 19, 19,205,171, 86,
-173,138,132,132, 4,100,103,103,227,212,169, 83,118, 23, 47, 94,172,228,236,236,108,246,254,253,123,118,217,178,101,226,169, 83,
-167, 98,195,134, 13,120,254,252, 57,246,239,223,143,118,237,218, 49,225,225,225,197,170,100,121, 46, 27, 78, 89, 89, 89, 93,149,
-203,229,200,202,202,202,223, 89, 58,211,215,215,119,162,159, 95,174,200, 30, 23, 23,135,225,195,135, 15, 37,132,112, 75,150, 44,
- 49, 17,137, 68, 80,171,213, 57,255,159, 29, 55,199,114, 0, 56, 84,170,160,192,229,179,187,240, 52, 48, 28, 79, 3, 67, 32,150,
-228, 46,130, 87,169,148,104, 80,167, 26,154, 54,106,130,184,248, 88, 28,216,191, 11, 86, 54,206,165,182, 35,148, 82,136, 4, 44,
- 60,170, 59,224,208,254,237, 56,119,225, 58,246, 31, 56, 92,176,230, 77, 32, 16,162,126,131,166,104,212,168, 21,194,223,191,195,
-174, 93,191,195,214,174,130,113,114,240, 11, 81, 48,117, 88,248,189, 8,243,111,215,170, 85, 43,126,118,118, 54,212,106, 53, 62,
-126,252,136,200,200, 72, 88, 88, 90, 32, 60, 46, 2,109, 77,116,248,200,101, 34, 52,240, 5, 75,248,194,231,101, 74,131, 94,245,
- 1,175,250,152, 48,114, 96,201,149, 0, 20,114, 51,155,220,169, 27,134,121,139, 77,155, 74, 28, 57, 51,172,254,218,229,171, 55,
-154,140, 28,214, 67,120,229,198, 78,232,181, 28, 84,122,115,228,168,181,200,209, 9,193, 51,239, 2, 36,251,131, 47,144,160, 89,
-189,106, 56,117,242,162,142, 50,250,235, 6,103,144,125,109, 48, 9, 33,133,136,214,167, 51,122, 82, 83, 43,131,167, 14, 11, 58,
- 94,150, 61,122,240,224,193,158,205,155, 55, 55,241,246,246,174,154,215,113,234, 14, 30, 60,168,100, 89,246,104,121, 11,177,168,
- 55,120, 71, 71,199, 6, 34,145,104, 96,143, 30, 61, 26,140, 24, 49, 2, 47, 95,190,196,129, 3, 7,194,170, 85,171, 86,170, 15,
- 49,190, 88,156,146,157,152,104,161,168, 84, 73, 96,105,106, 26,119,241,194, 5,183, 14, 29, 59,146,168,168, 40,164,164,164, 64,
-173, 86,227,121, 96, 32, 21,242,249, 49,196,204,140,247,250,217, 51, 30, 95, 44, 78, 41, 71, 82, 35,203,216,117,232,247,165,234,
- 86, 5, 71,203,170,139,124,127,170,172,214,168,107,103,102,102, 50, 2,161, 80,232,226, 96,241,161,156,211,144,231,174, 93,187,
-214,179, 67,135, 14,146,176,160,231, 96, 50, 50,160,205, 72,131,136, 99, 97,213,160, 30,248, 58, 13,160,213,195,217,131, 66,157,
-110, 2,255,135,175,245, 26,141,166, 76,167,134,249, 68,139, 87,132, 24,136, 21, 10, 72, 76,205, 32, 81, 40,138, 18, 6, 82, 70,
-121,155,244,232,209,163,125,179,102,205, 64, 41,197,142, 29, 59,160,211,233,196, 58,157, 14, 90,173, 22, 58,157, 14,153,153,153,
-216,191,127, 63,182,110,221,122, 15,192, 30, 3,200, 42, 35, 20, 10, 39, 50, 12, 99, 39,145, 72,116,182,182,182,162, 99,199,142,
- 21,184,155,168, 95,191, 62,228,114,185,134, 16,162, 3, 0, 7, 7, 7,253,222,189,123, 5,223,127,255,189,168, 56,123, 53,234,
-212,156, 85,153,177,244,146,202, 42, 86, 50,179,169,139,202,238,237, 0, 0, 29,187,141, 68,229,106,174,200, 76, 14,170,164, 86,
- 69,246, 18, 9,210, 44, 95,108,138,125, 41,243,169, 61, 34, 39,241,214, 27, 20,191,189,191,216,142,130,199,227,149, 56, 29,107,
- 8,201, 34,132,240,204,205,205,109,243,215,249,228,117,192,136,143,143, 71,104,104, 40,106,212,168,129,212,212, 84, 56, 59, 59,
- 67,171,213,162,113,227,198, 80,169, 84, 88,191,126, 61,238,222,189,123, 15,121, 59, 35,203,248, 15,153,187,187,251,240, 6, 13,
- 26,224,194,133, 11,120,252,248,113,236,229,203,151,157, 91,181,106,133, 74,149, 42,141, 32,132,204,163,180,100, 31,124,197, 77,
-245,181,105,211,102,210,196,137, 19, 17, 18, 18,130,159,126,250, 41, 37, 58, 58,250,212,177, 99,199, 70, 47, 90,180,136,215,169,
- 83, 39,196,199,199, 99,245,234,213,236,221,187,119,215, 0, 88, 90, 70, 62,190,138,142,142,118, 81,171,213, 72, 77, 77, 5,195,
- 48, 80, 42,149,184,120,241, 34,246,239,223,159,144, 71,178,222, 26,154,190,122,245,234,121,242,120, 60, 28, 57,114, 4, 0, 22,
- 80, 74, 57, 66,200,169, 94,189,122,197, 46, 91,182,204,121,238,220,185,248,241,199, 31,161,211,233,240,203, 47,191, 96,238,220,
-185,231,243, 72, 86,105,141,232, 58, 7, 7,135, 49, 63,253,244, 83,205,233,211,167, 35, 32, 32,192,238,201,147, 39,141,158, 63,
-127,142, 10, 21, 42, 32, 37, 37, 69, 96,109,109,141, 13, 27, 54, 96,218,180,105, 39, 0, 36,223,191,127,127,192,251,247,239,253,
- 40,165,171,203,200,207,109,206,206,206, 99, 40,165, 84,169, 84, 70,250,250,250,174, 94,177, 98, 5,166, 77,155,134, 23, 47, 94,
- 32, 35, 35, 3,166,166,166,100,246,236,217,195, 23, 44, 88,128, 81,163, 70,209,156,156,156,173,255,255,211, 82, 44,148,105, 33,
- 96, 53,150,168, 95,167, 6,234,215,174,136,203, 55,158, 2, 0,218,247,105, 5,101, 78, 22,246,238,221,129,183,111,223, 64, 32,
- 20,194,194,202,193, 16, 37, 16,218,204, 87, 72,215,197,163,131,119, 35,116,233,212, 22,123,246, 29, 5,163,215, 97,244,200,193,
- 72, 75, 79,199,190,125,187, 16,254,254, 29, 4, 66, 33,172,109,254,121, 71,168,165,113,145,255,120,162,101,192,244, 19, 56,142,
- 67,108,108, 44,158, 60,121,130,136,136, 8,152,152,152, 64,197,176,220,239,215,238,114,132,136, 98, 56, 74,239, 81,166,192, 75,
-241,231, 54, 88, 54,182,144,199, 90,115, 75, 75, 75,177, 70,163, 2,195,232, 11,245, 42, 4, 32,128, 72, 0, 56, 58, 85, 70,116,
- 84, 52, 85,171,213,183, 74, 29, 65,105,212, 27,206,156, 58, 62,177, 69,203, 86, 54, 93,218, 47,193,169,211, 11,145,150,153, 9,
-181, 78,136, 28,181, 14, 74, 53, 96, 97, 85, 29,141,235,212, 69, 92, 92, 10,130, 30,251,103, 11, 52, 74, 67, 22,138,190,217, 60,
-127,164,251,200, 9,179, 32,115,107, 9, 77,232, 41,112,217, 9, 5,138,150, 84, 97, 9, 43, 87, 15,164,231,104,112,252,250, 83,
- 0, 48, 56,212, 75, 66, 66,130,210,201,201,233,224,196,137, 19,127,121,250,244,137, 11, 0, 60,125,250, 52, 38, 62, 62,126, 78,
- 66, 66,130,178, 60, 5, 88,200, 27, 60, 49, 49, 49,121, 90,173, 90,181, 56, 31, 31, 31,243, 94,189,122,193,198,198, 6,207,159,
- 63,135,159,159,223, 43,157, 78, 55,235,214,173, 91,165, 78,245,104,181,218,216,167,167, 79,155,181,253,225, 7,139, 89,221,187,
-175,158, 56,113,226,134,165, 75,151, 10,221,221,221,137, 94,167, 67,112,112, 48, 61,116,240,160,126,235,220,185,235,197,114,185,
-224,209,153, 51, 66, 70,163,137,253, 87, 87, 98, 23, 23, 23,175,174,157,189, 60,214,172,219, 4,181, 42, 27, 15, 3,206, 35, 45,
- 45, 9,219,119,156,244,112,113,113,241,138,137,137,241, 55,148, 0,239,222,189,123, 70,211, 6, 13, 26, 84,169, 80, 1,193, 31,
- 34, 32,230, 88,136, 24, 6,124,157, 6, 60, 70,141, 10,181, 41, 8,207, 20,241, 31, 51,177,226,200,159, 33,134, 16,227,154, 93,
-123, 96,105, 76, 6, 8, 33, 88,219,188, 54,196,166, 10,136,228, 10,140,255,235, 70, 1, 49, 56,183,116, 46,196, 10, 5,170, 54,
-109,101, 64,163, 75,149,166,166,166, 79,130,131,131, 27,215,174, 93, 27, 51,102,204, 64,100,100, 36, 56,142, 67, 66, 66,130, 58,
- 62, 62, 62, 54, 41, 41, 41, 18,185,254,127,118, 82, 3, 71, 2, 12,195,216, 61,125,250, 20, 0, 68, 0,112,253,250,117, 56, 57,
- 57,193,220,220, 28,153,153,153,152, 53,107,150,228,231,159,127, 6, 0, 60,121,242, 68, 88,152,160, 20, 69,240,211,208, 53,233,
- 89, 52,141,102, 63,235,149,202, 60,171,211,174, 83, 52, 58,118, 27,129,171,231,246,224,198,229,107,176, 18, 68, 70, 64,158,117,
- 49, 57, 34, 57, 51, 38,199,125,155, 71,195,209,252,248,156,203,219, 38,127,111,201,119,116,228,142,251,110,205, 72, 47, 45,173,
-238,238,238,176,183,183, 47, 88,163, 37, 16, 8, 48,106,212, 40, 80, 74, 13, 34, 89,121,249,200,153,153,153, 37,169,213,106,123,
-169, 84,138,143, 31, 63,226,221,187,119, 8, 15, 15, 47,112, 29,192,113,156,126,230,204,153,194, 73,147, 38,225,247,223,127,199,
-173, 91,183,238, 1, 88, 66, 41, 53,116,176, 54,184,127,255,254,166, 90,173, 22,135, 15, 31,102, 0,116, 59,126,252,248,147,198,
-141, 27, 11, 58,119,238,108,186,101,203,150,193, 0,118,150,163,186,203,205,204,204, 68, 58,157, 14, 91,182,108, 65,116,116,180,
- 23,165, 52,148, 16,178,173,127,255,254, 91,107,215,174, 93, 45, 36, 36,228, 77,118,118,246,120, 74,105,144, 1,109,209,200, 70,
-141, 26, 29,231, 56,206,173, 67,135, 14,242,117,235,214,153,189,126,253, 26, 46, 46, 46,224, 56, 46,184,188, 33,172,222,188,121,
- 19, 26, 31, 31,239,209,182,109, 91, 92,188,120,113, 21, 33,100, 37,128, 95,198,141, 27,231,252,225,195, 7, 52,104,208, 0, 86,
- 86, 86,120,253,250,117, 86,124,124,252, 86, 0,243,202,242,245, 69, 41,125, 15, 96, 14, 33,164,238,182,109,219, 6, 90, 89, 89,
- 53,123,254,252, 57,238,220,185,131, 53,107,214,224,231,159,127, 70,235,214,173, 49, 99,198,140,100, 0, 3,243,166,180, 13,242,
-155,151,175,108, 1, 64,163, 70,141,226,252,252,252, 48,122,244,104,250,199, 31,127,108, 60,120,240,224,212,193,131, 7, 23,244,
-129,195,135, 15,167, 7, 14, 28, 24, 94,218, 70,128,127, 8,122,157, 78, 11, 51,171,202,200, 78,143, 66, 82,116, 0, 76, 76, 29,
-208,169, 93, 61, 40, 85, 90,156, 61,115, 2, 65,193,129,224,241,120,176,119,168, 0, 11, 75, 27,132,133,189, 1,128,151,165,219,
-212,193,212,178, 34,178, 51,162,161, 77,124, 10,153,194, 14, 35,126,232, 5,165, 74,135,147,167, 78, 32, 36, 36, 8,124, 62, 31,
- 14,142, 21, 96,110,145,107,147,208, 82,109, 26,129,226,253,105,149, 73,180,248,124,254,205, 75,151, 46,245,109,218,180,169,224,
-237,219,183,120,251, 54,119,112,147,150,150,198, 16,176,127, 38, 4,157, 30, 84, 10, 9,232,144,191, 59,163,112,236, 66,133,169,
-105,236,235, 87,161,246,105,169, 9, 8,124,118, 23,111,195,130, 17, 17, 30, 10,157, 78, 13, 62,143, 7, 30,159,135,138,149,107,
-225,238,189, 0,173,154, 97, 2, 74,178, 9, 0,169,169,239,178, 20,246,213, 7, 44, 95, 58,239,220,180, 89,139,101,253,250,254,
-142,160,215, 47,145,205, 56,128, 82,192,193, 90,142,250, 85,102, 35, 54, 46, 9, 71,246,108, 81,114, 58,221,144,194, 62,180,138,
-179, 9, 0,246,201,240,220,186, 99,207,168,157,251, 15, 45,158, 53,105,172,253,247,189,135, 64,156,250, 18,250,184,167,168,220,
-184, 11,136,196, 2, 23,174,220,128,255,147,151, 9, 28, 75, 23,219,167,224,143,178,108, 22,153, 66,188,255,241, 99,188, 75, 33,
- 47,240, 46, 18,137,244,126, 25,164,170, 67, 17,191, 66,159,120,156,231,243,121, 13,151, 47, 95,174,183,183,183,215,133,132,132,
-224,247,223,127,231,158, 62,125,122,133,199,227,109,142,139,139, 83,151,101,211, 86,175, 15, 60,228,235,235,217,164,119,111, 58,
-104,210, 36, 37, 36,146,201,171,215,174,245, 77, 74, 75,115,162, 28, 7, 91, 43,171,152,213,115,231,250,245,237,223, 63,237,197,
-221,187,178,128,211,167,101, 98,134,121, 90, 86, 58,191,209,188,119,137, 54, 99, 98, 98,252,221,171,186, 98,239,206,117,208,233,
- 52,136,143,205, 21,178,146, 83, 50, 80, 26,201, 42,106, 51,111,215, 85,239, 5, 63,255,252, 96,193,180,169, 14,109,218,119, 64,
- 84,224,115,232, 82,147, 64,244, 12,132, 68,128,156, 68, 19, 36, 38,100, 99,206,129, 99,137,217, 74,101,239,162,157, 68, 73,233,
-204, 87,172, 36,102,166, 16,201, 21, 16, 43, 76, 63, 81,177,164,102,102, 16,203, 21, 16,136,197,197,169, 52,159,217,204,206,206,
-238,211,183,111,223,160, 71,143, 30, 89,142, 30, 61, 26, 45, 90,180,120,166, 82,169,188, 41,165, 89, 95,154,159, 2,129, 32,177,
- 97,195,134,118, 66,161,144, 25, 53,106,148, 32, 57, 57,185,192,179,122,118,118, 54, 46, 94,188,136, 26, 53,114,119,245,191,120,
-241, 2,181,106,213, 42,209,230,232,217,193,177, 0,150, 78,239,231,178,250, 65, 96,252,100, 0,171, 42, 87,171,128, 27,151,175,
-225,206,141, 0,223,102,181,185, 77, 93,135, 52, 94,102,226,221,127,150, 71,195,209,124,133,153, 35,246,157, 60,193, 15,125,186,
-107,133, 82, 25, 92, 21,192,204,146,210, 73, 8, 1,165,244, 51, 87, 14,124, 62, 31, 7, 15, 30, 44,239,189, 31,219,185,115,231,
-184,159,126,250, 73, 20, 31, 31,143, 87,175, 94, 33, 39, 39, 7, 82,169, 20,151, 47, 95,102, 0,108, 57,120,240,224,229,131, 7,
- 15,118, 70,174, 95,156,235,229,169,159,114,185,124, 98,167, 78,157,240,234,213, 43, 60,126,252,248, 4,165, 52,136, 16,114,226,
-237,219,183, 3, 90,183,110,141, 61,123,246, 76, 44,137,104,149,100,147,227,184,194, 62,147, 82,243,234,110, 32,128,102,229, 45,
-247,188, 5,188, 45, 1,192,218,218, 58,218,222,222,222, 44, 48, 48, 16,174,174,174,208,233,116, 77,203, 91,151, 50, 50, 50,214,
-109,222,188,249,143,145, 35, 71, 98,217,178,101, 67,142, 29, 59, 54,164,107,215,174,240,241,241,193,238,221,187, 17, 20, 20,180,
-202,144,176, 98,197,221,123, 30,113, 12,242,244,244,156, 80,161, 66, 5,172, 89,179, 6,193,193,193,126, 75,151, 46,157, 27, 20,
- 20,132, 26, 53,106, 72, 94,190,124,201,124, 73, 27, 2, 0,102,102,102,102,122,189, 30,167, 79,159,126, 72, 41,157, 70, 8,177,
-219,176, 97,195, 64,133, 66,129,212,212, 84, 85, 72, 72,200, 96, 74,233,153,255,239,182,142, 18, 50,127,244,143,147,183,253, 56,
-122,176,180, 81,195,250, 80,102,198, 64,149,157, 0,101,214, 71,108,222,121, 5,132,240, 96,107,235, 8, 59, 7, 23,124,248, 16,
-133,123,231, 47,104,115,148,170, 13, 98, 61,183,170,116,155,147,114,109, 54,200,181,169,204, 73,132, 42, 59,177,192,166,157,157,
- 83,158,205, 15,184, 27,112, 65,173,202,201, 89,167,165,228,215,127,242,222,255,147, 81,238, 88,135,133,145,150,150, 54,101,236,
-216,177,222,115,230,204,177,102, 24,134,111,101,101,133, 15, 31, 62, 48,127,254,249,103,106,118,118,246,148, 47, 73,144, 64, 40,
- 12,114,175, 94,195,251,251,239,191,103,122,244,232, 46, 26, 58,178,179,192,214,206, 14, 25,233, 41, 8,123,245, 28,175, 95, 62,
-133,123,141,122, 88,180,116, 61, 96, 97, 81,102, 32,201,236,132,176,155, 10,251,234,221,150, 44,152,121,180,165,215,119,102, 53,
-106,213, 19,213,175,106, 14,157,158, 65, 76, 76, 12,206,156, 14,212,133, 60,185,147,201, 49,218, 1, 57, 73,134,133,224,185,149,
- 59, 42,218, 94,199,158, 28, 92,185,122,243,140, 45,219,247,206,154, 51,121,180,188,117,171,142, 8,190,182, 7, 39,206, 29,205,
- 81,107,180,171, 69,124,172, 13, 78,166,202,242,230,129, 90,173,214, 21,221, 16,165, 86,171,117, 95, 91,216,187,119,239, 70, 66,
- 66,130, 54, 50, 50,242, 18,195, 48,199, 74, 10,246, 92, 28, 54, 81,170,237, 77,200,181, 5,173, 90,117, 94,112,249,178,116,248,
-236,217,218, 33, 67,135,206,132, 70,163,131, 88, 76, 5,114, 57, 15, 18,137,240,197,221,187,178,141,227,198, 89, 17,173,246,234,
-158, 82,220, 6, 20,131,111,190,235,176,144,162,133,225,163,167, 65, 85, 72,209,186,255, 56, 12,229, 81,180,242, 30,140, 40, 66,
- 72,179,201,243, 23,156, 28,208,169,189, 71,109,183,138, 18,219, 74, 21,161,112,112, 64, 74, 82, 18,238, 62,126,173, 95,122,244,
-100, 72, 30,201, 50,200,175, 12,199,113,185,139,220, 1,180,159, 50, 7,132,207, 7,242,220, 56,228,239, 28,170,212,184, 5,136,
- 64, 0,150,114,208,104, 52,212,128,116,198, 16, 66,250, 12, 25, 50,228,250,185,115,231,120,157, 58,117,170,127,234,212, 41,238,
-107,234,142, 94,175,119,201, 35, 92,153, 38, 38, 38,130, 17, 35, 70, 64,175,215, 67,169, 84, 34, 35, 35, 3,161,161,161,154,126,
-253,250, 73,242, 8,132,126,192,128, 1,101,182, 31,235,142,199,168,167,247,115,217,100, 37,136, 28,152,153, 28, 84,201, 74, 16,
- 25,209,172, 54,183,105,221,241, 24,245,146,105, 22,203,147, 35,253,195,226,115, 46,111,219,119,242, 4,127, 88,175, 62,172,139,
-226,141,175,212,142,254,217,174,123,153,141,218,103,206, 73, 13, 33, 89, 69,145,149,149, 53,119,225,194,133, 62,105,105,105, 46,
-157, 59,119, 22,121,120,120,224,193,131, 7, 56,119,238, 28,115,255,254,253,232,156,156,156,121,148, 82, 53,128, 43, 95,146,167,
-213,171, 87,175, 36, 16, 8,242,167,210,126,203,251,250,183, 83,167, 78, 13, 24, 61,122, 52, 42, 86,172,232, 73, 8,145,208,114,
- 60, 71,148,210,130, 89,134,111,220, 81,132,111,220,184,209,217,193,193,129, 92,188,120,145,225,243,249,229, 86,110, 40,165,187,
- 9, 33, 77,245,122,253,143, 99,198,140,129,151,151, 23, 24,134,193,129, 3, 7,176,107,215,174, 85,229,137,221, 90, 18,194,194,
-194,158, 70, 71, 71,183,153, 57,115, 38,214,172, 89, 51,119,230,204,153,136,142,142, 70, 88, 88,216,243,175,177,155,153,153,169,
-138,138,138, 50,105,222,188,121, 35, 87, 87,215,144,225,195,135,215, 26, 61,122, 52, 86,173, 90, 69,111,221,186,213,151, 82,122,
-241, 95,209,129,191,122,147,178,191, 78, 21,251,203, 75,151,175,251,185,106,149, 74, 63,141, 26,209,159, 95,221,189, 22,114, 50,
- 98, 96,109, 99, 15,151, 10,149,145,148,152,140, 75,151, 46,178,201,201,233,187, 89, 30, 89,242,230, 77, 74,220,215,216,116,118,
-169,140,196,196, 68, 92,184,112,129, 77, 79,203,220, 1, 61,111,233,203,200,180, 4, 24, 81,166,146, 85,220, 98,120, 98,200,194,
-219,188,157,135, 27,115,221, 59,228,170, 92,105,105,105, 83, 40,165,201,134, 50,115, 82,212,137, 90,191,126, 34,156, 63, 95, 23,
-122,125, 51, 11, 83,211,246,148,227, 26,215,171, 87, 79,209,191,127,127,174, 85,171, 22, 98, 51, 51, 51,226,233, 89, 59, 51, 35,
- 61,221, 10, 0, 40,192,150,197,162,243,131, 74, 11,248,194, 14, 44,171,171,147,155,214,178,131, 74, 27,194,204,171,216, 19, 91,
- 1,135, 69, 60, 66, 70,112,148,238, 97,120, 88, 18,158, 64,147,190,116,244, 84,100,218, 47, 63,228,204,220,242,142,242, 10, 79,
- 29,242,120,252,253,142,142,142,243, 98, 98, 98, 18, 41,165,236,151, 42, 27,249, 33,120,186, 77,157,170,111,248,221,119,140, 85,
-133, 10, 28,165,148,141,120,250,148,220, 63,115, 70,120,255,204, 25,169, 94,163,185,121,156,210,112, 67,108, 58, 57, 57,249,157,
- 61,123,214,224,181, 87,221,187,119,127,153,191,110,203,208,252,172, 90,197,229,114,149, 74,206,223, 85,169,148, 59, 61, 29, 30,
- 17,135,240,136,216, 43,239,194, 99, 58,125, 73, 25, 21, 14, 42, 77,242, 92, 56, 80, 3,130, 74, 23,181,105, 99, 99,243, 68, 32,
- 16,184,148,231,129,101, 89, 54, 46, 41, 41,169,129,129,233, 28, 84,169, 82,165, 85, 31, 62,124, 56,201,178,236,180,111,161, 16,
- 18, 66, 90,240,249,252, 11, 44,203,202,138, 42, 94,249,100,140, 16,226, 38,145, 72, 62, 89, 12, 95,154,205,213, 11,106,255,220,
-188,117,235, 94,247,239,220, 57, 53,107,121,200, 39,235,134, 38,247,178, 26, 57,104,194,148, 95, 15,111,217, 56,123,211,169,212,
-221,101,170,205,246,246,183, 0,184,231, 19, 46, 3,242,178, 81, 25,202,176,212,212,212,212, 15,192, 0,142,227,108, 8, 33,201,
-148,210, 35,133, 72,214, 23,231, 39,159,207, 95, 85,179,102,205, 41,175, 95,191, 62,204, 48,204,168, 66,215,175,169, 90,181,234,
-132,200,200,200,223,244,122,253,172,114, 60,239,102,173, 91,183, 78,219,184,113, 35,111,218,180,105,240,247,247,183,162,148,166,
-125,163,114,119,176,180,180,252,131,101, 89, 15, 74,233,217,172,172,172,185,148,210,156,242,218,204,115,241, 48,192,217,217,121,
-150,187,187,187,251,155, 55,111,130, 98, 99, 99, 87, 23, 85,131,190, 34,157, 62, 61,123,246, 60,187, 97,195, 6, 82,161, 66, 5,
- 68, 71, 71, 99,234,212,169,244,244,233,211,221, 41,165,231,191,180, 77, 38,132,204, 31, 55,110,220,242,161, 67,135, 22, 16, 90,
- 63, 63, 63,122,254,252,249,225,148,210,253, 95,218,206,127, 75,245,222,179,138,109, 21,202,103, 87,212,171,237,209,247,135, 33,
-189,200,253,199,111,240,224,126, 0, 98,226,226, 78,113, 60,222,188,176,176,228, 55, 95,107, 51,224,113, 24, 30, 4, 4,208,248,
-184,248,227,160,252, 5, 47,195,147,194,255,191,238,253,191, 65,213, 42,110,234,144,124, 97, 40,172,114, 87, 24, 98,136,183, 90,
- 39, 39, 39,164,164, 52,149, 10, 4,173, 36, 18,137, 55,143,207,191,153,154,148, 52,213, 80,162,245, 79, 84,236,207, 58,244,170,
- 68, 92, 82, 72,130, 47,177, 89,116, 33,251,151,216, 44,143, 13, 67,109,150, 20, 84,154,211,104,226,172, 25,230,201, 38, 90,114,
- 30, 20,181,233,226,226,242, 35,199,113,149, 12, 77, 19,143,199,139,136,137,137,217,249, 37,249,233,238,238, 78,223,190,125, 11,
- 74, 41,249,150,229,254, 79,212,165,255, 37,155,251,215,215,117,170, 81,167,230,172,224,167,161,107,242,166, 21, 11,176,100,178,
-149,105,171,118,109, 23,222,189,113,107,217,162, 77,169, 89,255,202,116, 18, 66,120,180,188,187, 91,190,208,102,190,147,208,242,
-218, 20,137, 68,219,154, 52,105,242,227,131, 7, 15,254, 96, 24,102,204,255, 98,253, 36,132,248,240,249,252,153,213,171, 87,175,
- 31, 22, 22,246,156,101,217, 53,165,145,172,114, 12,126,231, 85,170, 84,105,188, 72, 36,146,100,103,103,167,197,197,197, 45,164,
-148, 30,251,119,203, 79, 79,119,235, 70,148, 22, 56,221, 94, 17,250, 54,229,209, 55,179, 73, 57,150,163,252,229,175,195,147,159,
-253,127,151,251,127, 58,201, 42, 73,229, 18,252,127, 37, 34,159, 40,149,138,184,184,104, 0,209, 0,142,255,187,102,166, 33, 36,
-171,156,114, 99,194,191,131,141,162,200, 35, 82, 1,223,194, 86, 81,210,244, 79,226,205,155, 55,196,248,200,255,251,225,135,105,
- 65,113, 0,166, 54,242,254,252, 92, 30,185,154,229,221,227, 95,159,206, 47, 33, 89, 95,106,243, 75, 3, 62,235,116,186,159, 8,
- 33,211,203,179, 91,241,191, 13,121,164,234,252, 63, 96,119, 37,128,149,255,238,247,255,242, 77,202, 19, 0,221,255,221,109,254,
-143,213,201,242, 5,149, 54,194, 8, 35,140, 48,226,223,186, 81, 87, 25,115,193, 8, 35,254,189, 80, 88,213, 42, 76,188, 8,128,
- 14, 37, 60,200,215,202, 97,188,195, 23, 52, 20,215,140, 54,141, 54,141, 54,141, 54,141, 54,141, 54,141, 54,255,183,108,254,183,
-146,172, 79,200, 85,225,227,252, 93, 79,255,196, 11, 64, 7,163, 77,163, 77,163, 77,163, 77,163, 77,163, 77,163, 77,163,205,255,
-230, 23,128, 49, 37, 29, 27,167, 14,141,248,199,177,185, 55,113, 6,128, 73, 39,105,236, 63,113,189, 17, 70, 24, 97,132, 17, 70,
-252, 43, 65, 41,221, 81,210,212,225,191,156,104, 17, 66,156,144,235,104,175, 42,128,215, 0,238,148,103,187,114, 49,246,108, 0,
-244, 39,132,244,203,187,217,227, 0,142,149,229,138, 34, 31, 50,153, 44, 65,173, 86,219, 1,128, 84, 42, 77, 84,171,213,133, 99,
- 25, 16,124, 30, 30,133,230,254, 77,201, 11, 91, 43, 87,174,156,160,209,104,236, 12,248,251, 12, 74,105, 16,143,199, 11, 86, 40,
- 20, 55, 94,191,126,125,174, 60,247,222,174, 93,187,225,124, 62,127, 5, 0,176, 44, 59,255,198,141, 27,123,255,193,114,107, 90,
-193,201, 97,143, 78,175, 99, 18,146, 82, 23,150,180,117,123,107,119,226, 39, 32,152,149,247,121,245,248,179,165,187,176, 40,239,
-245,165,164,175,145, 80, 40,156,104,111,111,223, 37, 38, 38,230, 9,128,217,148,210, 50,189, 26,187,186,186,254, 32, 16, 8,134,
-176, 44, 91,133,207,231,135, 51, 12,115, 48, 42, 42,106,191,177, 25, 49,194, 8, 35,140, 48,162, 44,178, 85,220,247,229, 34, 90,
- 53,109,136, 3, 5, 6,130,160, 35, 40,174, 18,224,200,171,100,250,209,208,223,251,212, 36,122, 61,147,251,159, 34, 30,216,139,
-239,120, 59,124,124,124, 92, 38, 77,154,132, 22, 45, 90,224,193,131, 7,205,119,239,222, 61,146,207,231, 7,113, 28,119, 19,192,
- 3, 74, 13,114,165, 32, 7,240, 61,128,193, 93,186,116,233,176, 98,197, 10,126,173, 90,181,160, 82,169,112,235,214,173, 86,171,
- 87,175,222, 64, 8,185, 6,224, 16,128, 51,165,249,134, 81,171,213,118,249,156,137, 16, 98,215,183,111,223, 71,133,201, 85, 94,
-124, 53, 66, 41,189, 79, 8, 9, 96, 89,246,193,241,227,199,163,107, 18,210,116,108, 37,209,159, 83,222,107, 63,243,153,164,209,
-104,236, 78,255,186, 18, 2,137, 4,154,172, 76, 52, 31,241,247, 46,208,171, 63,207, 2,225, 24,240, 65,211,188,151,111, 8, 2,
- 16, 28, 23, 23, 23,228,229,229, 21, 81,222, 66,230,243,249, 43, 46, 93,186,228, 72, 41, 69,167, 78,157, 86, 0,248, 71,136, 22,
- 33, 68,210,172, 81,189,155,103, 79, 28,150,102,167, 38,160,243,247, 3, 14, 18, 66,134, 83, 74, 79,124, 66,154,186, 18,123, 34,
-192,172,113, 43, 15,241, 1, 96,235,188,193,179, 55,116, 34,155,166, 94,166, 31, 9, 33,222, 64, 65,200,166, 95, 41,165, 55,183,
-118, 37,246,224, 99,206,184,149,135, 8, 0,252, 62,111,240,172,173, 93,201,198,241, 23,202,183,171,146, 16, 50,126,248,240,225,
-155, 86,172, 88,193,119,116,116, 68,108,108,108,103, 79, 79,207,234,132, 16,207,210, 22, 17, 87,170, 84,233,104,219,142, 61, 43,
-247,238, 55,208,196,214,198, 18,113,241,201,102, 71, 15,255, 49,182, 82,165, 74, 93, 34, 34, 34, 6, 24,155, 17, 35,140, 48,194,
- 8, 35, 74,232,119,190,220,189, 67, 67, 39, 34,203,209,161,167,128, 79,126,104,221,180, 86,251, 65, 93, 91,243, 60, 61,170,225,
-229,139,208,239,206,220,120,184,218,211,158,119,157, 97,233,126,185, 8,167,159,198,149,190, 19, 70,207, 64,112,229,244, 33, 0,
-192,248,145,131,249,143, 30, 61,170,214,176, 97,195, 2,135,128,237,219,183, 71,251,246,237,201,214,173, 91,235, 93,185,114,165,
-222,174, 93,187,116,132,144, 61,101, 56,161,155, 88,181,106,213,213,155, 54,109,146,120,121,121, 65, 34,145, 20,156, 83, 40, 20,
-232,222,189, 59,186,119,239,206,143,139,139,235,116,246,236,217, 78,191,254,250,171,150, 16, 50,147, 82,250,155, 33,153,183,112,
-225,194, 70,197,124,125,137, 16,242,142, 97,152,231,117,235,214,141,174, 65, 72,181,159,186,182,184, 58,190,165,187,188, 36, 59,
- 2,177, 24,251,134,231,246,213,133,137, 86,196,141,139, 80,152,153,166,152,152,154, 6, 1, 8, 6, 16, 68, 41, 13,126,247,238,
- 93,168, 7, 33,245,154, 89,242,246,236, 74,101,235,150,131,108, 33, 58, 58, 26,230,230,230,178,182,109,219,198, 19, 66, 22,223,
-188,121,115,199, 55,174, 83, 77, 23,207, 26, 47, 74,139, 12,194,199, 87,247, 49,189, 95, 43,147,169,155,255, 90, 6,224, 68,233,
- 21,145,199,251, 53,128,243,157,154, 27,140,119, 97, 74, 74,138, 23, 0, 88, 91, 91,139, 1,220, 92,255, 16, 93,167,181, 36,228,
- 43, 42,186,136,207,231,111,217,183,111,223,232, 31,126,248, 33, 55,116,196,221,187, 80, 40, 20, 88,186,116,105,197, 25, 51,102,
-248,161,132, 64,192,174,174,174, 63,180,237,216,179,242,198, 53,203, 60,179, 82, 51, 52,219,183, 28,123,236, 84,187, 6,111,220,
-196, 25,166, 27,117, 26, 7, 87, 87,215, 31,140,202,150, 17, 70, 24, 97,132, 17,229, 81,179,202, 36, 90, 53,108,201,222,214, 13,
-220,251, 15,242,105, 37,169, 83,187, 22, 68,146,191, 29, 69, 55,108,212, 8, 13, 27, 53,226,249,102,103,117,124,244,248,105,199,
- 63,175, 60,208,212,176, 37,199, 94, 39,209,225,134, 38, 44, 63, 40,237,138,239,237,219,229,164, 39, 74, 1, 64,110, 97,167,158,
-119,250,227,141,150, 45, 91,194,197,197, 69,116,253,250,245, 81, 40,221, 95,202,188,215,175, 95, 75,248,252,210,253,161, 58, 57,
- 57,161,111,223,190,168, 81,163,134,184,109,219,182,243,240,119, 56,140, 79, 32,149, 74, 19, 9, 33,118, 0, 96,101,101,197, 46,
- 94,188,248, 57,165, 5, 51,131,148, 82,122,159,199,227, 61,224, 56,238,225,153, 51,103, 98,106, 17, 98,215,173, 97,141, 59,227,
-135,246, 53,161,127,110, 40,145, 36,168, 51, 51,139,253,222, 68, 33, 79,146,201,229, 65, 18, 19,105, 48,128, 32, 0,193,206,206,
-206,161,181, 8,113,105, 86,163,210,149,173,211, 6,155, 26,146,151, 13, 27, 54,172,238,237,237, 45,101, 89, 22, 57, 57, 57,248,
-253,247,223,205,101, 50,153,121,151, 46, 93, 22, 1, 40,168, 0,158,132,212,233,227,196, 31,179, 56,150,153,240, 5, 68,198,162,
-117,243, 70,145,155, 87, 45, 50,107,212,172, 53,222,220, 60,128,212,212, 44,100,164,103,131,227,184,207, 34, 12,143,191, 64, 19,
-182,118, 39,171,183,206, 29, 60,135,240,120,164, 94,175,217,232,225,144, 49,153, 16,242, 2,128, 80, 44, 22, 23,212, 67, 66,136,
- 83,237,218,181, 87, 87,251,174, 53,126,159, 63, 20,148,227, 40,128,213,134,170, 89,132, 16, 59, 83, 83,211, 51, 87,174, 92,105,
-218,184,113, 99, 60,120,240, 0,239,223,191,199,248,241,227,181, 19, 38, 76, 16, 13, 27, 54,140, 76,159, 62,125, 18, 33,228, 79,
- 74,233,189,207, 30, 4,129, 96,200,247,189, 7,136,179,211, 51,213, 90,141, 78,107,101, 99,193,105,114,212,202,228,180, 76,245,
-128,193, 63,106, 95, 60,123, 56, 4,192,103, 68,235,107,242,211, 8, 35,140, 48,194, 8,131,209, 24,128, 45,128, 36, 0,143,139,
- 28, 35,239, 51,138, 57, 78, 70,238,172,148,117, 33, 91,201,200, 93,246, 99,139, 92, 31,159,143, 0,164,125, 77,226, 74,242, 10,
- 15,228,121,134,207,115, 80,156,239,168,152, 20, 34, 90,244,117, 18, 5,147, 26, 14, 54,229, 29,216,172,207,195, 39, 17,169, 5,
- 50, 84, 44,162,195, 67, 49,124,234, 82,188, 78, 42,217, 35,183, 79, 77,162, 55, 23, 67, 96, 42, 2, 68, 38, 22,154, 65,171, 46,
- 7, 52,106,212, 72, 61,207,139,231,227,183, 53, 87,233,154, 62,102, 48,154, 79,251,243,114,120,120, 56,227,228,228,132, 31,126,
-248, 1,148,210,110,165,220, 92, 66,214,227, 0,187, 87,221, 90,160, 73, 66,241,203,164,194,194,194,112,251,246,109, 68, 69, 69,
-161, 74,149, 42, 24, 53,106, 84, 34,165,212,190, 36,155,157, 59,119,190,245,235,175,191,122,173, 93,187, 54,112,223,190,125, 45,
- 75,154,110,242, 36, 68, 94,175,162,195,227, 93,126,115,170,144,139,123,132,202,168,183,176,240, 87,145, 98, 72, 30,141,139,251,
- 59,239,126,169,238, 8,185,185, 41,228,102,138,132, 97, 87,158, 20, 40, 89,121,239,175, 27, 18, 98,230,226,104,253,228,200,250,
-133,206,188, 27, 71,165,162,237,247, 73, 89, 36,171,109,219,182, 1, 43, 86,172,176,140,139,139,195,181,107,215, 80,177, 98, 69,
- 40,149, 74,172, 91,183, 46,254,206,157, 59, 78,121,233,181,111, 82,195, 45,232,247, 25, 35,204, 69,163,126,150,148,183, 34,137,
- 4,130,223, 2, 46, 29,157, 96, 46,161, 72,143,123,143,119,161, 47,240,232,101,132,126,255,213, 32, 54, 83,165,241,161,148,222,
- 40,238,119, 19, 91,145,106, 55,227,108,207, 94,186,245,216,221,209,209, 17, 99,199,142,197,199,143, 31, 65, 41, 5,199,113, 5,
-187, 52,230,205,155,135,234,213,171, 99,248,192, 30, 74, 73,234,211,182,103, 95,210, 39, 6, 86,240,218,110,110,110, 87,110,222,
-188,105,239,236,236,140, 59,119,238,224,227,199,143,112,112,112,192,245,235,215,177,106,213,170,125,227,198,141,235,183, 98,197,
- 10,233,160, 65,131, 98, 47, 95,190, 92,161,232,154,186,138, 21, 43,134,158,189,124, 71,113,227,212,149,119,150,166, 38,144,219,
- 89,131,175, 48, 83, 83, 16,165,131,157,165,104, 64,207,246,213, 34, 35, 35, 61,138,148,255, 87,229,167, 17, 70, 24, 97,132, 17,
-127,227,252,249,243,212,199,199,135,228,191, 23,165, 16,132,144,115,121,124, 64, 11, 64, 92,232, 24,132,144,115,121,106,200, 39,
-199,190,190,190,243,252,252,252, 94,228, 31,231, 95, 51,119,238,220, 90,171, 86,173, 90,217,188,121,243, 35, 1, 1, 1,139, 1,
-188,253, 90,162, 85,146,202,101,208, 26, 45, 38,230, 17, 68,238, 93, 32,100,245,208, 39,191, 6,151,254, 1,144, 59, 64, 69, 20,
- 72,137,255,128, 87,119, 78,228,114,195,178, 50,241, 21, 21, 18, 66,174,135,134,134,226,213,171, 87,136,142,142,134,137,137,201,
-103,215,221,189,123, 23, 50,153, 12,142,142,142,134, 73,118,218, 79,227,177, 6, 53,116,131,162,185, 23,146, 7,253,132,235,215,
-175, 35, 49, 49, 17, 34,145, 8, 98,177, 24, 12,195,148,105,143,199,203,141,248,155,175, 98, 21,119, 77, 91, 66, 4, 46, 86,138,
-179, 91, 23, 77,169,196,187,127, 78,168,138,122,139, 56, 53, 11, 11, 67,148, 60,133, 28, 38,114,147,120,153,204,164, 40,201,122,
-211,144, 16,161, 92, 33, 61,187,103,249,116, 7,254,179,235, 82,213,219, 32,136,138,177,209,177, 99,199,177, 0, 22, 81, 74,211,
-219,182,109,107,191, 98,197, 10,203,216,216, 88,188,124,249, 18,199,142, 29, 75, 98,114,111,148, 80, 74,151, 0, 64,115, 66,164,
-174,182, 22,151,127,251,121,138, 41,110, 30, 21, 99,212,207,229,174, 72,230, 30,221,207,247, 25, 54,110,194,166, 41,221,145,147,
-165,194,161,171,207,112,233,233,187, 30, 0,238,150,182,238,237,183,187,244, 45, 33,164,125,239,222,189,159,223,190,125,219,102,
-215,174, 93, 96, 24,166,216,215,174, 93,187,112,237,206,211,201,148, 26, 76,178,156, 42, 85,170,116,237,225,195,135,182, 38, 38,
- 38,184,122,245, 42,210,211,211, 11,148,172,225,195,135,147,244,244,244,129,191,255,254,123,159,200,200,200, 53,119,238,220, 73,
- 65,110, 56,168, 79, 42, 2,159,207,127,199, 48,186,154,142, 30,213, 4,253,186,183,110,157,157, 18, 4,133,117, 93,220, 15,124,
-119, 54, 61, 45, 69,197,231,243,223, 21,190,254, 91,228,167, 17, 70, 24, 97,132, 17,229, 38, 52,231, 40,165,221, 10, 19,167,162,
-132, 43,255,115,254,117,126,126,126,221, 10,147, 48, 0, 88,181,106,213,202, 66,199,202,111,145,182,178, 22,195,183, 37,132, 80,
- 0,109,139,187, 72,243,242, 36, 52,175,206, 64,228,214, 18,226, 26, 61,192,119,107,133,168,160,155, 8,188,184, 30, 49, 47,238,
-130,114, 44, 28,171, 55, 49, 52, 45,234,154, 53,107, 66,173,206, 93,154,165,209,104, 32,146, 91,170,167,143, 25, 44, 5, 0, 78,
- 32,213, 20, 74,180, 65, 6, 77, 91,122,163, 73, 2,197, 35,251, 92, 2,156,175,108, 45, 31, 49, 2, 34,145, 8, 34,145,168, 32,
-248,172, 33, 68, 43, 47, 40, 42,184,220,233, 43, 90,220,249, 70, 18,225,161, 35,139, 38, 54,145, 68, 6,139, 53, 33,247, 17,167,
-225,232,217, 4,246,188, 33,145,147, 77,228, 38,177, 50, 19,147, 96,153, 66, 94,152,104,189, 3, 0, 42, 20,238, 63,176,100, 98,
- 93,121, 66,184, 92,253,248, 58,226,213,156,206,172,120, 51, 75, 46, 94,188,104, 39, 16, 8, 28, 88,150, 69, 84, 84, 20, 94,188,
-120,129,141, 27, 55, 38,100,101,101,181,125,250,244,105, 88,161,244,242, 26,203,196,199,246, 47,157, 82, 89, 16,228, 47,213,188,
- 11, 41,150,188,149, 6,219, 58,189, 58,245,104, 91,239,252,216,161,243,209,179,235,119, 24,214,214,147, 70,196,165,170, 1, 92,
- 53, 36,128, 53,165, 52,150, 16,210,177, 77,155, 54, 7,235,215,175,239, 65, 41, 69,157, 58,117, 48,112,224, 64,236,223,191, 31,
-129,129,129,200,204,204,212, 93,185,114,101, 3,165,116,183,129, 15,156,137,165,165,229,165, 27, 55,110,216,154,152,152,224,202,
-149, 43, 80,169, 84,112,116,116,196,132, 9, 19,196,171, 86,173,218,151,153,153,217,207,207,207, 79, 26, 17, 17,241,219,229,203,
-151, 43, 2,224, 81, 74, 63,171, 4, 90,173,118,199,161,253,123, 55, 77,152, 56,201,249,198,131,151,215, 53,217, 89,230,110,110,
-209,153,182,150, 10,211, 13,191, 44,113,213,106,181, 99,139,207,207, 91, 95,148,159, 70, 24, 97,132, 17, 70,124,174, 97,156, 63,
-127,190, 68, 46, 82,152, 60, 21, 37, 91,229, 33,105, 0, 84,190,190,190,243, 8, 33,231,242, 20, 47, 21,128,184,127,130,100, 21,
- 16, 45, 74,169, 63, 33, 4,148, 82,255, 18,173,112, 44,116, 17,183,161,139,184, 13, 89,243,201,248,203,111, 80,145, 63,249,242,
- 16, 97,221,151, 94,189,161,209,104, 4,123,247,238, 45, 88,183, 5, 0, 44,203,126,243, 82, 44, 15,209,202, 35,122,159, 37,162,
-146, 68,225,191, 99, 90,191,102,214,172, 82,168,189,123, 22,177, 26,142, 89,243, 86,167,124,156, 78,127,157, 87,130,205,211, 83,
-199, 34,250,206, 53,152, 40, 20,209,163,111, 7, 23, 86,177,130, 0,188, 7,128, 74, 82,179,235,199,166, 15,106,229, 32,130, 72,
-123,254, 56,226, 52,156,102, 91,164,126,247,198,226, 11, 21,148, 82,188,127,255, 30, 74,165, 18, 1, 1, 1, 56,113,226, 68, 82,
- 81,146,149,151,222, 91,127,204, 30,210,212, 44,235,163, 72,251,248, 26,226, 52,156,166,186, 33,228,170,110,175,150, 34, 30,185,
- 66,120,124, 89,215,214,158,152,250, 99, 47,172,255,227, 47, 70,107,215,186,219,166, 51, 23,250,103,107,116,243, 12, 33, 89,133,
-210, 28, 4,192,147, 16, 34, 1,224, 61,112,224,192, 11,125,250,244,129,191,191, 63,206,158, 61,235, 14, 32, 62, 47,255,151, 2,
-176, 71,238,110,196,146, 34,199,243, 68, 34,209,145,107,215,174,213,114,114,114,194,181,107,215,160, 82,169, 48,110,220, 56,237,
-196,137, 19, 69,195,135, 15, 39, 25, 25, 25, 5, 74, 86, 64, 64, 64, 74, 73, 36, 11, 0, 98, 98, 98, 46,186,185,185,181,104,211,
-166, 77,175,202,238, 53,204,194,179, 50, 19, 77, 76,164,178, 59,254, 55, 69,143, 31,222,251, 45, 38, 38,230, 81,241,249,121,221,
-224,252, 52,194, 8, 35,140, 48,162,100,248,248,248,248,159, 63,127, 30, 62, 62, 62,254,101,244, 37,221,190,144, 12,229,255, 78,
-232,231,231,247,194,207,207,239, 19,197,235, 43,149,182,162, 83,135,231, 41,165,241,133, 21,173,114,129,205,136,250,252, 6, 56,
-174, 60, 55,251,217,119,150,150,150,140, 76, 38,251,132,104,113, 6,218, 76, 61,117, 24,225,227, 7, 23, 40, 89,249,202, 22, 58,
- 15,255, 42,162,197,113, 92, 0,128, 79, 18, 33,183,175, 49,232,200,208,142, 45, 61, 43, 59,243,244,199, 54, 34, 70,201,168, 23,
-189,214,169, 95,101,209, 30, 47,139, 89,100, 93, 96,147,209, 67, 42,151,125,144, 41,228, 69, 73, 86, 36, 0, 40, 28,170,247,217,
- 55,200,187,109,189, 26, 85,121,204,209,117,136, 85,234,179,125, 67,117,186,240, 28,122,178,132, 60, 92,244,221,119,223, 45,178,
-182,182,150,110,218,180,201,220,205,205, 13, 12,195,104,139,146, 44,185,125,141, 65, 71,135,119,110, 89,221,193,146,167,255,115,
- 51,162, 85,172,114, 99,184,126,223, 54, 3, 72,150,141,185,226,242,182,149,227,101, 38, 18, 33,212,106, 53, 86,109,253, 19, 87,
-238,133,116, 75, 10, 62,117, 25,192,229,175,168,147,163,187,117,235,182,126,233,210,165,208,235,245, 24, 53,106, 20,222,189,123,
-119,229,245,235,215, 27, 93, 93, 93,103,206,158, 61,219,201,193,193, 1,253,251,247, 23, 1, 24, 94,130,141, 95, 14, 29, 58,212,
-173, 94,189,122,240,247,247, 71,122,122, 58, 28, 29, 29, 49,113,226, 68,177,159,159,223,190,204,204,204,126, 43, 87,174,148,190,
-127,255,190, 84, 37,235,147,122,205,178,203,183,175, 31, 63,179,113,179, 86,188,183,111,195,152,168, 38, 94,188,155,215,206,222,
-182,182,182,222,247, 73,126,142,232, 82,238,252, 52,194, 8, 35,140, 48,226,155,225, 60, 0,159,162, 42, 87, 81, 18,150,175, 88,
- 21, 62, 46,122,125,222,121,205,215, 38,168,168,162,149, 71,188, 62, 93,163, 85,120, 17,124, 89,224,114,146, 12, 34, 79,159,177,
-213,154, 68, 63,182, 49, 4,243,188,120, 16,201, 45,213,221,151, 94,189, 81,210,181,114,185,220, 96, 69,139,211,168,203, 34, 78,
-229, 34, 90,121,107,180, 46, 81, 74, 63, 33, 90, 22, 14, 53,188, 22,204,153,178,161, 85,159,206,188,132, 31,155, 35, 61, 91,163,
-153,253,146,225, 98,148,165,147,172,220, 94, 92, 31, 97, 34, 87, 4, 75,229,159,172,203,138, 2, 0,153,125,181, 38,190,211, 38,
-109,109, 55,168, 59, 73, 26,215, 10,105,233, 42,205,204, 23, 12,137, 85,209,126, 47, 41,189, 89,156,185,235,215,175,111, 7,176,
-189,109,219,182, 9,114,185, 28,217,217,217,159,149, 65,126,122, 91,246,233,204, 75, 24,221, 20,169, 57, 58,205,236, 23, 12,226,
- 84,220,145,178, 72,150,173,133,233,229,109, 43,198,155,196,197, 68, 66, 36, 18, 65,161, 80,224,234,221, 96, 36,133,156,254, 26,
-130, 5, 62,159,191,120,222,188,121,139, 38, 76,152,128,148,148, 20,156, 61,123, 22, 93,187,118,197,225,195,135,221, 46, 92,184,
-176,222,219,219, 27,124, 62, 31,231,206,157,131, 94,175,127, 83, 66,121,246, 26, 51,102,204,204, 62,125,250,224,209,163, 71,136,
-143,143,255, 68,201, 74, 79, 79, 31,184,117,235,214, 62, 17, 17, 17,101, 42, 89, 69,208,164, 82,213, 6,162,185, 11,215, 66,163,
- 76, 20, 36,197, 62,240,191,126,149,119, 63, 53, 53,213, 4, 64,198,151,230,167, 17, 70, 24, 97,132, 17, 6,171, 90, 37,113,145,
-164, 60, 18,149, 84,220,113, 33,130, 85,220, 49, 41,162,130,105,139,156, 15,252, 39,239,201, 32, 69, 75, 96, 95, 27, 76, 66, 72,
- 33,162,149,248,201,121,169,169,149, 65, 83,135,122, 6,130,109,187, 11,252,104, 73, 83, 82, 82,164, 54, 54, 54,234,194, 4,193,
-196,196, 4, 78, 78, 78, 72, 75, 75,195,142, 29, 59, 0,160,172, 69,209,140, 89,159,161,104, 50,104, 20, 30,187,136, 65,245,186,
- 2,101,107,219,136, 17,159,144, 45,145, 72,148,191, 54,172,172, 78,247, 33, 33, 36, 18,192,125, 74, 41,109, 88,189,202, 50,169,
- 92, 62,162, 81,221,170, 54, 83,199,143, 22, 70, 36,106,112,163,213,220,244, 63,127,153,163,136,166,138, 9, 31,104,250,189, 50,
-236,133,127,255,251,129,162, 74, 86, 76,131,234, 85,230, 75, 77,164, 63, 54,171, 93,221,193,119,250,120, 97, 68,130,134,220,104,
- 50, 59,243,196,175,179, 77,222,195,116,102, 52, 77,187,105, 64,241, 44,234,218,181,235, 34, 74, 41,229, 56,110, 33, 0, 20, 78,
-239,244,137, 63, 10,195, 63,170,113,189,213,252,180, 19,191,204, 49,141, 70,233,233,181,173,219,171,165,189,165,217,229,109, 43,
- 39,152,196,199,126,128, 68, 34,129,169,169, 41,162, 19, 50, 32, 20,240, 85, 95, 83,217, 8, 33, 18, 47, 47,175, 57,227,199,143,
- 71,112,112, 48,198,141, 27, 23, 31, 21, 21,117,242,232,209,163,227,126,254,249,103, 65,167, 78,157, 16, 31, 31,143,213,171, 87,
-235,239,222,189,187, 18,192,234, 98,235,163, 64, 48,122,217,178,101, 52, 46, 46,142,188,127,255, 30,142,142,142,152, 52,105,146,
-120,229,202,149, 5,107,178,202,163,100,229, 35, 38, 38,198,223,189,170, 43,122, 92,220, 0, 70,175,241, 79, 79,137,186,253, 42,
- 60,205,223, 74, 44,158,209,170, 97,221, 47,202, 79, 35,140, 48,194, 8, 35,190, 9, 30,151,113,252, 47, 69,113, 83,135,134, 18,
-173, 55,155,231,143,116, 31, 57, 97, 22,100,110, 45,161, 9, 61, 5, 46, 59,161, 64,209,146, 42, 44, 97,229,234,129,244, 28, 13,
-142, 95,127, 10, 0,111,202,147,176,172,172, 44, 52,108,216, 16, 91,134, 87,111,167,206, 74,145,202, 0,104, 36,102,234,211,226,
-214, 55, 46, 92,184,160,228, 56,238, 8,128, 11,101,152, 89, 92,171, 86,173,223,214,174, 93, 43,246, 24, 52, 18,217, 15,238, 20,
- 85,167, 32,147,201, 32,145, 72, 16, 20, 20,132, 27, 55,110,104, 1, 44, 46, 35,195, 30, 50, 12, 19,120,228,200,145, 24,247, 42,
- 46,157,219, 54,110, 50,121,222, 92, 95,211,151,119,174, 96,225,202,223,184,106,141, 58,101,172, 58,124, 58, 43, 67,225,218, 94,
- 25,247,234,185, 1,183, 26, 88,132,100,197,121, 84,118,109,215,188, 65,253, 89, 11, 23,206, 55,123,113,231, 42,126,254,117, 27,
-117,175,215, 33,227,215, 19,103, 50,147, 77, 42,126,167, 74, 8,125,100, 72, 30,222,186,117,107, 59,128,237,249,199, 69,211,235,
-187,116, 35, 87,189,113,231,180, 85,135, 79,228,100,154,186,118, 40, 45,189,118,158,189, 91, 84,112,180,186,188,121,249, 79, 38,
- 31, 99,163, 32,145, 72,160, 80, 40, 16, 21,159,142, 69, 27,142,229,232, 56,174,243, 87,214, 69,137,169,169,169, 68,167,211, 97,
-203,150, 45,136,138,138,106, 78, 41,141, 34,132,108, 27, 48, 96,192,166, 58,117,234,212,124,241,226,197,155,236,236,236, 9,148,
-210, 87, 37, 25,177,176,176,104,110,107,107, 75,238,223,191,143,159,126,250, 73, 59,105,210, 36,209,176, 97,195, 72, 90, 90,218,
-151, 42, 89, 0, 0, 23, 23, 23,175,239,125, 90,160,101,199,113,254, 90,117,250,237,136, 87,251,252,121,244,158,180, 97,253,186,
- 95,148,159, 70, 24, 97,132, 17, 70,252,111,160,180,197,240,165, 70,163,246, 2, 4,213,173, 49,182,150,179,232,227,254, 95, 38,
-209,172,240, 0,170,122,180,157,102,158,250,145,158, 95, 61,140, 94,216, 60,149,142,243,169, 69,107,218,145,143,213,173, 49,214,
- 11, 16,148, 22,221,187,107, 13,232, 59, 86, 5,237, 88, 21,212,167, 58,244, 0,230, 53,104,208,224,244,196, 38,160,244,229, 33,
- 74, 95, 30,162, 19,155,128, 2,248, 9,128,194,208,136,225, 0, 28, 1,236,104,216,176, 33,115,243,230, 77,250,186, 95, 7,250,
-172,166, 13,157, 48, 97, 2,253,249,231,159,233,224,193,131,169,173,173, 45,131,220,249, 82,199,178,108,246,232,209,195,133, 82,
-138, 10, 21, 42, 88, 52,242,168,246, 49,232,250, 89,122,123,255, 38,250,199,196,222,180,105, 29,143,100,135,154,109, 2,101,142,
- 53,234, 27, 26,217,220,193,193, 97, 46,165,180, 51,165,212,145, 82, 10,119,119,107, 69,131,154,213,226, 2,175,157,165,119, 14,
-252, 70,255,152,216,155, 54,171,235,153,226,226,225,253, 74,106, 87,179,201,151, 70, 75, 47, 54,189,181,107, 38,219, 87,107,241,
-188,164,244, 22,182, 89,185, 73,255, 51, 49,113, 9,244,225,195,135,244,194,133, 11,244,206,157, 59,116,255,209, 51,212,181,113,
-191,108,155, 58, 61, 91,126,109, 84,119, 0,230, 62, 62, 62,244,205,155, 55,180, 75,151, 46, 20,128,249,151,216, 4,112, 58, 34,
- 34,130,134,132,132,208,121,243,230, 81, 0,123,199,143, 31,175,202,200,200,160, 29, 58,116,136, 2,192, 67,145,186,104,104, 58,
-171, 84,114, 94,213,171,123,235,197, 19,127,234,227,245,181,249,249, 13,163,194, 27,109, 26,109, 26,109, 26,109,254,215,219,252,
- 79,126,229,241,144, 49,133,222, 27,228,159, 43, 85,209,186,149,171, 6,108,175, 99, 79, 14,174, 92,189,121,198,150,237,123,103,
-205,153, 60, 90,222,186, 85, 71, 4, 95,219,131, 19,231,142,230,168, 53,218,213, 34, 62,214, 6, 39,211, 50,253, 80,156,127, 69,
-133,197,168, 71, 38, 86, 85, 81,224,131,233,109, 26, 64, 41,221, 86, 78, 38, 25, 15, 96, 12, 33,100,173,183,183,247,138, 31, 91,
- 54,233, 61,177, 69, 59,232,245,122,236,223,191, 31, 31, 62,124, 56, 9, 96, 62,165,212, 32,197, 45, 56, 56, 56,185, 86,181,138,
- 83,172,100,162, 89, 19, 6,247,178, 77,122,247, 18, 49,161,207, 0, 0, 26,141, 74, 31, 31,230, 95,175, 60,233,147,201,100, 15,
-109,109,109, 95,219,218,218,166,177,154,236, 49, 82,129,217,194,113, 3,191,183, 75,137,120,133,232, 23,185, 51,163, 26,181, 82,
- 23, 29,118,163,230,151, 48,233,138, 21, 43, 74,228, 66,140, 45, 54,189, 90,181,254,227,155,208,250,134,216, 81,106,180, 43,151,
-172,223,255,221,242, 89, 35, 36,102,102,102,120, 26,242, 22, 11,215, 29,206, 81,105,245,157,147,130, 78,221,251, 70,172, 31,122,
-189,222,224,141, 14, 37, 96, 78,189,122,245,106,172, 88,177,194,125,248,240,225,248, 90, 37,171, 48,222,189,143,241,109,219,182,
-173,231,219,215, 79,189,173,100,162,131, 95,147,159, 70, 24, 97,132, 17, 70,252,207,192,135, 82,186, 35,223, 67,124,222, 84,226,
- 51, 67,166, 14,115,137, 71, 2, 85, 2, 88, 90,197,158,108,155,187, 98,253, 34, 30,217, 48,130,163,116, 15,195,195,146,240,100,
-154,244,149, 29,175,210,167, 38, 97,190,235, 57, 88, 0, 0, 66, 1,152,175,176,245, 6, 64, 31, 66, 72,227,157,247, 30, 45,200,
-251,122, 57,165,180, 92,115,185,166, 2,132,180,242,172,226,220,186, 65, 45, 41,159, 85, 33, 38,244, 29, 82,115,212,184,250,226,
- 67, 58,143,242,246,148, 55, 93,225,225,225,183, 0,160,118,181,138,161,173, 61,171,186,182,105, 88,203, 68, 72,180,136,121,249,
- 20, 25, 42, 45,174,188,248,144, 1, 66,190,120, 65,245,183, 74,239,199,160,211,143,109,235,246,234, 64, 8,185, 54,111,226, 32,
-201,162,117, 71,190, 41,201, 2,160,140,141,141, 77, 81, 42,149,214,113,113,113, 90,124,161,147, 56, 74,233, 91, 66, 72,157,169,
- 83,167, 46,157, 57,115,230,172, 95,126,249, 69,244, 37,107,178, 74, 66, 90,236,135, 83,109,106,125,187,242, 55,194, 8, 35,140,
- 48,226,191, 31,249,235,180,138,174,215, 42,151,123,135,240, 4,154, 4, 96, 66,213,170,100,250,187,119, 84,251,173, 18, 87,156,
-210,245,149,228,237, 49,128,238, 95,108,128, 71,178, 30,188,249,144,253,240,205,135,108,112,148,114,148,106,120, 60, 68,231,232,
-116, 43,195,194, 99, 46,127, 69, 41,176,143,223, 70,169,158,188,139, 86, 83,142,163, 28,165, 90, 66,240, 81,175,231, 86,134,132,
- 71,158,249,119, 72,111, 82,208,169,123, 14,158,189, 91,223,123, 24, 50, 61, 39, 71,247, 91,210,203, 83, 1,223,176, 92,244,132,
-144, 33,205,155, 55, 31,201,178,236, 54, 74,169,254, 43,108,105, 1,204, 33,132,156, 12, 14, 14, 62, 22, 16, 16, 16,255, 45, 72,
-214, 63, 90,254, 70, 24, 97,132, 17, 70,252, 87,226,139,131, 74,151,132,111, 73,178,254, 29, 17,252, 38,162,225, 63, 97, 55,228,
- 77, 68,237,255,132,244,126,124,121,242, 9,128,129,255, 80,101,188, 2,224,202,183, 36,213,132,144, 74, 0,248,223,132,100,253,
-131,229,111,132, 17, 70, 24, 97,196,127, 39,190, 58,214,161, 17, 70,252,155,143, 36, 40, 0,198,152, 19, 70, 24, 97,132, 17, 70,
-252,139,250,161, 18, 21, 45, 2,160, 67, 9, 63,186, 86, 14, 38,215,225, 11, 18,117,205,104,211,104,211,104,211,104,211,104,211,
-104,211,104,243,127,203,230,127, 35, 8, 33,142,200,245, 86, 95,224,181,190,128,124,253,195,219, 29,141, 91, 95,141, 54,141, 54,
-141, 54,141, 54,141, 54,141, 54,141, 54,255,219,221, 59,140, 41,252, 94,248,197, 51, 10,126, 70, 24, 97,132, 17, 70,252,131, 35,
-125, 73, 94, 32,249, 47, 58,111,132, 17,255, 65,117,189, 96,215, 97,225, 53, 91,130, 47, 48, 84, 45, 79, 9,123,251, 15, 38,118,
-162,163,163,227,152,186,117,235,122,136, 68, 34, 94, 86, 86,214,146, 27, 55,110, 44, 46,122, 93,155, 90,194, 39,124, 30, 92, 10,
-253, 18, 32,124,128,199, 3, 75, 17,115, 59, 80,217,200, 88,244,255,214,149,210, 77,102,102,251, 23,225,241,197, 44,163, 3,171,
-215, 1,248, 59, 28, 19,199, 49, 31, 24,173,186, 83, 73,191,119,172,223,219,149, 97,233, 42,128,219, 74,192, 27, 71,193,253, 78,
- 40,111, 28,229, 97, 43,225,240, 19, 4,250,213, 96,132, 51, 5, 34,193,252,184,167,199,163,255, 27,242,236,207, 63,255,228,127,
-205,239,251,246,237, 91,108, 0, 81,103,103,231,115, 38, 38, 38, 85, 75,250, 93, 78, 78, 78,124, 92, 92,156,247,127,121,125,108,
- 3, 96, 51,128, 90, 69, 78,189, 2, 48,133, 82,122,253,107,255,163, 45, 33, 2,123, 96,172, 8,152, 13, 0, 58,224,215, 4, 96,
-251,173,111,180,145,227, 91,192,206,206,238,182, 64, 32,112,207,201,201,201,201,204,204,172, 98,102,102, 22, 46,151,203,229, 12,
-195,188, 73, 76, 76,108, 83,206, 60, 29,143,188, 80, 90,132,144, 89,148,210,173,229, 57,111,132, 17,255, 41,248,170, 93,135,132,
-144,234, 0,188,242, 94,109, 26, 55,110,108,159,147,147, 3, 66, 72, 2,128,219, 0,252, 1,248, 83, 74,195,190, 69, 98,249,124,
-254,154,141, 27, 55,206,152, 52,105, 82, 65, 48,232,160,160,160,226,175,229,193,229,230,217,107,118,143,131,195,208,184, 67,223,
- 60,162,197, 3,114,226,225,221,177,201,151, 54,182,166,150,150,150, 75, 8, 33,253,120, 60, 94,153,157, 26,199,113, 44,165,244,
-120, 90, 90,218, 34, 74,105, 86,121,254, 75, 33,151,234, 25,150, 45,246, 63, 4,124, 62,155,157,163, 46,209,237,133,181,181,117,
- 0,143,199,171, 92, 56, 96,118, 94,250,139,253, 92,248,152, 97,152,152,164,164,164, 70, 6,228,133,148, 39, 16, 77, 33, 68,212,
- 17, 60,174, 58, 64, 64,192, 11,227, 88,237, 85,142,209,109,164,148,170,191,134,100, 57, 86,168,114,103,218,252, 85, 46, 33,161,
-175, 48,111,226, 96,252,178,121, 47,230, 78, 25,137,141, 59, 14, 99,202,152, 65,240,244,172, 85,170, 13,150,146, 37, 11,167, 12,
-241, 94,177,241, 80,227,249, 83, 6,203, 87,108, 60,212,120,254,212,193,138, 21,155, 14, 53,154, 63,117,136, 98,249,166,131,141,
- 22, 76, 29, 98,182, 98,211, 33, 29,128, 81, 95,146,206,193,213,157,115, 8,195, 20, 59,218,166, 2,129,230, 80, 88,172,252, 95,
-241, 80, 15, 31, 62,188,174, 74,165,122, 58,184, 99,131, 85,245,171, 59,199, 22,119, 77,202,199, 88,231,240,215,207,124,133, 34,
- 89,195,239,125,247, 6,149,102, 79, 34,145, 84,126,245,234,149, 59,199,113, 96, 89, 22, 12,195, 20,188,107,181, 90,180,105,211,
-230,155,108,156, 33,132,116, 7,176, 36,247, 97,133, 31,165,244,216, 87,216, 82, 8, 4,130,105, 98,177,216,139, 97, 24, 15, 0,
- 16, 10,133,161, 26,141,198,159, 97,152,245,148,210,236,114,154,220, 16, 27, 27,235,169, 80, 40,160,211,233, 10, 2,208,243,249,
-252,154,174,174,174, 91, 0,184,127,237,253,219, 3, 99, 91,180,106,181,113,216,140, 25,124,213,237,219,216,184,123,247, 6,100,
-102, 2,192,150,178,126, 43,145, 72, 46,243,120, 60,183,242,252, 31,199,113, 31, 52, 26, 77,167,242,252, 70, 32, 16,184,199,197,
-197,217, 57, 57, 57, 1, 0,228,114,185,188,240,113,121,148, 44, 0,171, 41,165, 50, 0,224,241,120, 27, 91,180,104,209,156, 16,
-194, 0,160, 28,199,241, 8, 33,131, 56,142, 19,228, 93,191,154, 16,178,155, 82,170, 49,118,219, 70,252, 39,170, 89, 37,145, 45,
- 65, 41, 63,186, 0,192,171,113,227,198,178,129, 3, 7,194,203,203, 11,238,238,238,144, 74,165,185,141,120, 74,138,253,243,231,
-207,251,223,190,125,187,255,217,179,103, 65, 8, 81, 1,184, 75, 41, 45,246,161,238,208,189,245, 36,169, 66,178, 9, 0,146, 98,
- 82,226, 99,222, 39,110,138,143,143, 95, 77, 11, 69,163, 38,132, 84, 25, 54,108,216,244,201,147, 39,227,220,185,115, 56,124,248,
- 48, 52, 26, 13,178,178,178,112,227,198,141,226, 19,170, 76, 68,218,141, 85,128, 60, 2,136,242, 7, 76,236, 0,185,253, 23,103,
-150,165,165,229,146, 41, 83,166, 76,245,244,244, 44,240, 98,174,215,235,193, 48, 12,244,122, 61,210,210,210, 48,125,250,244,124,
- 6, 11,142,227,112,241,226,197, 73, 99,198,140, 1,128,105,197,217,108,222,200,245, 9,143,240, 92,242,181, 26,202,178, 49,247,
-159, 69, 55, 98, 88,150,175, 86,235,138,141, 84, 46,149,138, 74, 37,121, 66,161,208,229,229, 95,127,217,241,196, 98, 80,150, 5,
- 56, 14,148,227, 0, 20,122,209,220,239, 40,203,129,234, 89,112, 12, 7, 70,165, 65,147,241,227, 13,169, 52, 45,132, 98,217,225,
- 33, 63,206,112,104,218,172,153,176, 98, 5, 39, 48, 44,135,119, 17, 49, 14, 79,159, 60,104,121,124,223,150,113,132,144, 65,148,
-210, 47,242,179, 37, 54, 49,187,242,219,239, 59, 93, 30, 63, 15,193,245,155,183,113,237,134, 63, 0,224,242,205, 92,115, 60, 30,
-175,172,244, 89, 90,187,123,215,157, 52,178,167,124,249,218, 93,146, 73, 35,123, 10,254,126,223, 41,153, 52,242,123,193,138,245,
- 59, 37,147, 70,126, 47, 92,246,235,111,245, 9, 33,150,148,210,180,146,236,149, 84, 70,132, 97, 36, 7,195, 19,248, 0,144,180,
-109, 27,244,137,137,112, 90,180, 8, 0, 48,164,138,189,193,211, 29,182,182,182, 79,132, 66,161, 75, 89,215,233,245,250, 50, 73,
-240,240,225,195,235,169, 84,170, 39, 12,195, 80,129, 64,224, 59,184,215,119,167, 59,183,174,151, 82,248,154,160,160, 64,235,149,
- 43,255,234,121,236,105, 22,237,223,208,244,233,185, 53,195, 27,117,155,185, 55,176,148, 14,153,167,209,104,240,230,205, 27, 20,
- 14,242, 94,152,215,126, 97,227,195, 3,176,209,218,218,186,105, 74, 74,202, 16, 0,243, 50, 51, 51,235,242,249,124, 88, 89, 89,
-205, 35,132,188, 51, 55, 55,223,149,145,145, 17,144,167, 26,113, 6,218,109, 99,102,102,182,255,212,169, 83,150, 13, 26, 52,224,
- 37, 39, 39,163, 82,165, 74, 72, 77, 77,109,114,251,246,237,134,163, 70,141, 26, 69, 8,249,129, 82,122,187, 28,201,173, 97, 98,
- 98, 66,135, 13, 27, 70, 88,246,239,219,253,227,143, 63,208,169, 54, 83,245,167,206,114,165, 90, 75, 51,174,191, 49,255, 73, 36,
- 18,221,141,140,140,204, 40,111,126,136,128,217,195,102,204,224, 43, 34, 35,161, 8, 12,196,144,204, 76,193, 47,185,234, 86,153,
- 68,139,199,227,185,237, 63,188,199, 93, 44, 22,131, 97,152, 2, 50,152,223, 70,233,245,122,232,116, 58,232,245,122,176, 44, 11,
-189, 78, 15,191,229,191,126,113, 91,104, 98, 98, 98,226,228,228,148, 96, 98, 98, 98,242, 45, 58, 34,137, 68, 34,216,183,111,223,
- 32,177, 88, 12, 0,208,106,181,168, 93,187, 54, 49,118,209, 70,252, 55,145,173,226, 84,174,210, 70,169, 93, 50, 51, 51,193,178,
- 44, 76, 77, 77,193,231,243,139, 42, 42,232,216,177, 35,218,180,105,131,129, 3, 7,226,229,203,151,178,129, 3, 7,118, 44, 81,
- 25,152,209, 13, 21,220,237,243, 58, 19,206,241,222,249,231,171,254, 88,246,167, 45,128, 25,133, 46, 27, 53,118,236, 88,146,146,
-146,130,126,253,250,221,214,104, 52, 61, 40,165,153, 37, 42, 26, 28, 98,188, 7, 14, 1, 71,137,108,253,195,157, 68,171, 86, 81,
- 30,143,167,202,159, 58,252,194,140,234,231,228,228,132, 35, 71,142, 64,171,253,220, 93,152,153,153, 25, 94,188,120, 81, 88,129,
- 67,179,102,205,248,132,144,126, 37, 17, 45, 66,120, 46,247, 30, 71,218,229, 31,119,235, 88, 75,212,188,145, 91,130,173,181, 41,
- 5, 64,230,207,159, 95, 64,220, 0, 96,201,146, 37,134,164, 19, 60,161, 16, 73,254,254,127, 55,196, 2, 30,120, 34, 2, 34, 4,
-120,130,220, 89, 84, 80,128,178, 0,199, 0,156, 30,144, 58, 86, 48,196,118, 19,103, 87,247,115, 43,215,109,181,208,232, 41,142,
-156,185,142,136,136,247,224,243,120,168, 82,213, 29,223,181,109, 45,108,216,184,121,133, 95, 23,207, 56, 75, 8,233, 66, 41,125,
- 84,238,140,230,168,180,170,171, 13,118,253,241, 20,182,150, 10,244,235,217, 21, 50,169, 4,191,108,222,131,229,115, 39,194,189,
-138, 27,182,111, 88, 81,226,207,205,205,205,151, 54,168, 83,179,202,158, 99,151,224,213,166,133, 96,239,177,203,104,219,166,165,
- 96,207,177, 75,104,235,213, 90,176,247,216, 37,180,109,211, 74,184,247,216, 37, 52,107, 84,167,106, 64, 74,208, 82, 0, 19, 75,
-190,231, 34,101,244, 93,110, 25,185, 11, 68, 5, 29, 65,228,184,113, 0, 80, 64,180,202, 3,161, 80,232, 18, 23, 23,103, 87,214,
-117,101,169, 6,121, 74,214, 19,134, 97,144,152,152, 72,210,211,211,169,133,133, 69,207, 75,219,231,157,234,212,170, 94, 42, 0,
- 4, 6, 6, 90,249,249,173,236,121,244, 73, 38, 84, 15,126, 35, 7,255,242,231,134,244,240,122,114,102,213,240,134,125,251,246,
-125, 86,156, 93,141, 70, 19, 81,191,126,125,154,247,217, 89, 34,145,136,138,212, 9, 39,119,119,247,207, 84,107, 3,166, 20, 55,
-222,191,127,127,162,167,167, 39,106,214,172, 25,208,180,105, 83, 51,185, 92,142, 75,151, 46,193,195,195,163,150,153,153,217,195,
-227,199,143, 11,231,204,153, 83,111,247,238,221, 0, 48,201,128,250,217,193,219,219,251,200,185,115,231,164, 34,145, 8, 42,149,
- 10, 47, 94,188,128,185,185, 57,196, 98, 49,190,255,254,123,126,203,150, 45,173,219,182,109,123, 34,111, 48, 96,240, 14, 40,181,
- 90, 77,231,205,155, 7, 19, 19, 19,152,152,152, 64, 46,151, 67, 46,151, 67, 33, 5,217, 54,197, 85, 54,121, 71,186,108,218,162,
-109,171,246,111, 93,124,211,213,213,245,231,168,168,168,244,242,214, 5,213,237,219, 80, 4, 6, 2,133,158, 93, 67, 97, 46,183,
-130,175,175,111, 89,138, 20, 68, 34, 17, 90,180,104, 81,166, 61,107,107,235,147, 2,129,192,190, 72,231, 32,245,245,245,101,195,
-194,194,228, 60, 30, 79,206,113, 28,124,125,125, 89,134, 97,164,246,246,246, 1, 28,199, 37, 36, 37, 37,245, 46,203, 54,165, 84,
- 67, 8,153,197,227,241, 54, 74, 36, 18, 65,197,138, 21, 63, 44, 92,184,240,126,158,154, 9, 74, 41,175, 98,197,138, 77,100, 50,
-153,155, 70,163, 97, 0,204, 50,170, 89, 70,148,130,134,185,162,112, 1,180, 0,196,249, 2,126,110,111, 7,155, 34,223, 3, 64,
-114,222, 64,209,190,132,227, 20, 0, 47, 1,212, 0, 96,151,119,238, 49,128,212,242, 38,176, 84, 69,139, 16, 66, 11, 93, 88,208,
-177,152,154,154,226,241,227,199, 32,132,192,212,212, 20,102,102,102, 48, 55, 55, 71,102,102, 38, 94,190,124,137, 87,175, 94, 33,
- 50, 50, 18,132, 16, 84,169, 82, 5,249, 15, 80, 33, 91, 5, 13,220,161,181,231, 32, 85, 72, 64, 8,208,160, 93, 93,212,109, 83,
- 27,141, 31,133, 79,113,114,114,218, 17, 23, 23,247,134, 16, 34,168, 93,187,246,168,102,205,154, 97,221,186,117,208,104, 52,235,
-138, 35, 89,133,109,222,126,161,111,148,215, 57,205, 60,112,233,157,201,208,206, 85,149,113,113,113,107,190, 32,115, 62,105,136,
-147,147,147, 13,142,197,199,113, 28,210,210,210, 74,181, 89, 84, 33, 88,191,241, 55,139,172,140, 4, 44,251,229, 0,244,122, 61,
-102,204,152, 1,142,227, 10, 94,233,233,233, 6,165,147,178, 69, 68, 6, 94,238,139,240, 0, 34, 0, 92, 7,228,242,138,168, 35,
-191,129, 80,128,176, 0,138,220, 87, 81,155,132, 16, 41, 95, 36, 59,186,248,151, 77, 22,207, 94,197,224,204,245,103,208,101,198,
- 34, 62,240, 20, 0,160, 74,139, 65, 56,166,225,163,105,221,170,152, 58,255, 87,203, 5, 83,127, 56, 74, 8,169, 89,120, 26,209,
-144,142,141, 82, 22,203,150, 46,197,142, 77,235,240,235,186, 77,200,204, 72,135, 80,104, 3, 0, 96, 24, 22,108,145,123,251,236,
-222, 41,237,188, 96,230, 88,178,113,231, 9,212,174,230,128,179, 87, 3,208,168,150, 27, 46,222,120,132,102,117, 42,225,178,255,
- 83, 52,171, 91, 25,254, 15, 94, 96,198,132, 97,228,222,197,189,157,203, 83, 70, 27, 54,252,102,145,149,153,128,115, 43,246, 33,
-113,203, 22,124,152, 56, 17, 77,242,174,121, 68, 8, 68, 46, 46,128,168,236, 50, 42,138,208,208, 80,104, 52,154,226, 70,251,240,
-240,240, 40,179,220, 85, 42,213, 83,134, 97,104, 66, 66, 2, 73, 72, 72,128, 92, 46, 39, 47, 94,132,176,181,106,213,238, 69, 95,
-253,185, 19, 0,252,252, 86,246, 58,246, 52, 19,202,128, 77, 80,221,223, 12, 81,165, 32,222,142, 37, 99,117, 99, 22,109,127, 90,
-168,147,251, 36,157,241,241,241, 93,242, 63, 87,169, 82,229, 85, 88, 88, 88,141,252,169,230,188, 41, 68, 17,195, 48,238,249,211,
-137, 12,195, 64,163,209,160, 67,135, 14,252,210,238,221,210,210,178,153,135,135, 7,158, 61,123,134, 77,155, 54, 89,121,123,123,
-227,237,219,183, 32,132, 96,229,202,149,196,211,211, 83,152,156,156,140, 78,157, 58,225,228,201,147, 45,202,202, 79, 66,136,169,
- 92, 46,223,125,246,236, 89, 41,143,199, 67, 86, 86, 22, 56,142, 67,203,150, 45,193,227,241, 16, 18, 18,130,249,243,231,227,228,
-201,147, 56,125,250,180,172, 97,195,134,187, 9, 33, 30,133,167,245, 75, 41, 35,170, 86,171,169, 68, 34,129, 68, 34,129, 84, 42,
-133, 84, 42,133, 88, 44, 70,182, 26, 24,179,254,131,134, 47,181,225,106,213,111, 85,117,196,228,149,188, 53, 11, 71,222, 0,112,
-198,208, 58, 15,228,174,201,218,184,103,207,166, 33, 25, 25, 60, 0,216, 69, 8,167,163,244, 87, 67,158,119, 0,200, 86,103,192,
-173,138, 11, 78, 28, 61,141, 62, 3,122, 22, 75,178,132, 66, 17, 68, 66, 33,204,172,228,101,218, 20,137, 68,246,175, 94,189,178,
- 22, 10,133,160,148,130,101, 89,232,116,186,132, 5, 11, 22,216,250,248,248,152, 94,188,120,145,231,227,227,195, 89, 90, 90,230,
- 60,122,244, 40,145, 97, 24,235,214,173, 91, 27, 92,231, 41,165, 91,235,215,175,223,224,212,169, 83, 35,125,125,125,159,204,156,
- 57,115, 89,225,243,171, 87,175, 94,122,225,194, 5,183, 94,189,122,237,127,254,252,249,214,242,180, 33, 95,219,206, 27,109,254,
-251,217, 60,127,254,124, 65, 67,236,227,227, 83, 84,237,180, 39,132,156, 43,244,255,221,242,143,125,125,125,231,249,249,249,189,
- 32,132,156, 43,252,125,254,117,121,109,199,185,226,142,243,126,107, 53,119,238,220,218,171, 86,173, 90,217,188,121,243, 35, 1,
- 1, 1,239,203, 75,180,202, 92,163,149, 79,174, 10, 19,174, 34, 6,144,153,153,137,204,204, 76, 68, 71, 71, 99,219,182,109,121,
- 15,180, 16, 2,129, 0, 2,129,160, 96, 61, 67, 73,184,118,246,206,102, 0,155, 27, 54,108, 40, 12,190,127,252,226,236, 29,147,
-219, 55,234,208,128,255,244,122,112, 95, 0,203, 1,116, 25, 54,108,152, 13, 0,236,219,183, 47, 25,192,197,127, 5,101,166,148,
- 30,127,243,230,205, 84, 71, 71,199,130, 53, 42,133,167, 15, 25,134,129, 84, 42, 69,254, 90, 22,181, 90,141,109,219,182, 49,148,
-210,227,165,216, 68,216,139, 27,120,243,226,102,238,239, 56, 14, 28,251,247,239, 23, 47, 94, 92,120,139, 40,198,229, 41, 39,101,
-146,188,226,242,156, 22,121, 47,242,253,103,228,236,179,233, 9,209,228,190, 63, 76,116,228,136, 0,127,221,120, 14,161, 80, 8,
-174,144,154, 41,228,231,142,150, 95,188,141,131,147,125, 45,244, 24, 52,214,225,212,254,223, 38, 3,248,165,188,121, 93,179,110,
-115, 76,153, 58, 21, 59,119,236,192,252, 69, 75, 11, 88, 58,195,178, 96,202, 76, 39,143,215,178,145, 39,178, 83, 98,192,231,243,
-209,162,126, 85,240,249,124,180,110, 84, 29,124, 62, 31,173, 26,215,128, 64, 32, 64,219,102,158,168, 86,173, 26, 4, 2, 1,175,
-140,114, 71,216,139,235,120,243,226, 86, 33,210, 75, 65, 1,232,226,227, 63,187, 94, 31, 31, 15,234,106, 93,222,186,133, 81,163,
- 70,165, 71, 71, 71,235,138,158,171, 80,161,130,232,246,237,219, 22, 37, 76,219, 21, 64, 38,147, 53, 20, 8, 4, 79, 83, 83, 83,
- 57, 19, 19, 19, 30,199,177, 92,173, 90,181,249,151,182,207, 59,149,127,205,220,185,243, 78,245,111,104,214,235,192,241,115, 84,
- 84,177, 21, 33, 66, 9,243,227,162,237, 34,161, 72,102,144,199,251,252,105,196,215,175, 95,163,172,244, 20, 30,152, 21,135,180,
-180,180, 97, 30, 30, 30,183, 55,111,222,108, 69, 8,193,157, 59,119,192,231,243, 11, 94,225,225,225,224,241,120,152, 61,123,182,
- 46, 51, 51,115,116, 89,105, 19, 8, 4, 83, 79,156, 56, 97, 46, 22,139,145,149,149, 85,240,220,240,249,124,188,122,245, 10,107,
-214,172,193,176, 97,195, 16, 21, 21, 5, 39, 39, 39,204,152, 49, 67,177,106,213,170,169, 0,150, 26,112,235, 65, 90,173,182,145,
-137,137, 9,164, 82, 41,242, 9, 23, 0, 92,121, 33, 12, 81, 42,149,117,108,108,108, 28,108,253,207,253,213,194,187, 71, 61,107,
- 91,199,230,249, 68,203, 80,188, 3,118, 68,176,236,130, 46,167, 78,217,221, 59,117,138,123,112,246,108,140, 36, 43,107,187,193,
-117, 72,207,195,135,240, 24, 52,108,216, 16, 79,159, 62, 69,195,134, 13, 11,147, 38,136,197, 98,136, 68, 34,136, 68, 34,216, 88,
- 26,180,132,130,242,120, 60,220,187,119, 15, 44,203, 66,171,213, 66,171,213,194,211,211, 51,245,230,205,155, 10, 0, 8, 15, 15,
-167, 67,135, 14, 77,127,248,240, 33,234,215, 47, 61,158,186,131,131,195,109, 62,159, 95,177,200,179,106,217,187,119,111,164,165,
-165,117,237,221,187,119,171,188,239, 98,255,252,243,207,161, 0, 32, 22,139,193,227,241, 88, 24,241, 63,143,124,114, 85,152,112,
- 21,211,230,116, 43,122, 76, 8, 57,231,231,231,215,173,232,119,133, 73, 85,113,159, 11,255,118,213,170, 85, 43, 11,217, 86,125,
-193,108, 88,217,107,180, 8, 33,180,172, 70,179, 52,148, 69,180,242,241,244,233, 83,189,179,179,243,206, 55,207, 35,219, 87,173,
- 91, 5, 50,185,228, 59, 66,200,102,137, 68, 50,253,135, 31,126,192,131, 7, 15, 16, 18, 18,242,199,215,134, 83,169, 83,167,206,
-101,137, 68,226, 86,194, 52,201,135,224,224,224, 78, 37,116, 12,139,242,214,156,149,184, 24,190,240,122,177,194,139,225, 75,172,
- 24, 28,133, 94,167, 71,142, 82,245,119, 39,158, 71,180,114,114,114, 48, 96,192,128, 79, 20,173,196,196, 68, 67, 10, 21,107,206,
-156,193,213,227,199,209,181, 94, 61,156,124,244, 8,171,126, 24,140,154,110,206,160, 44, 1, 37, 64,212,225,223,144,146,153,141,
- 67,215,239, 33, 53, 75,137, 33,173, 91,195,221,204,166,116,187, 66, 81,199, 38,205,154,139,174, 5,188,132, 80, 40, 0, 15, 28,
-168, 94, 9, 39,143,182,224,243,120, 48,183,175, 4,145, 80, 8,161, 80,128,240,232,100,120,212,110, 44, 62, 39,150,118,252, 18,
-162, 85,193,173, 18, 88,150,197,176, 97,195,112,228,200, 17, 88, 59,184,193,188, 66,109, 44, 95,183, 3, 93, 59,180, 46,243,254,
-243, 71,240, 2,129, 0,124, 62,255,179,247,252,207,134,168,147,148,163,208, 21, 45, 35,142, 2,148,194,101,197, 10,184,172, 88,
-129, 71,121,255,233,153,147, 3,149, 74, 5, 52,173, 85, 46,146,165,213,106, 17, 29, 29,173,139,143,143,183, 47,166,131, 74,208,
-106,181,101, 18,155,189,123,247, 6, 13, 31, 62,188,145,149,149,213,147,160,192, 64,125,221,122,245,132, 23,183,205, 59,157, 63,
-109, 8, 0,245,234,213, 75,157, 55,111,222,233,161,253,186,245,220,234, 59,144, 29,191,116,191, 64, 34,147, 53,234, 54,179,244,
- 5,241,133,158,143,136,186,117,235, 82, 67,174, 85, 42,149, 31, 75, 41,163,238, 0,150, 52,104,208,192,204,219,219, 27,183,111,
-223, 70,159, 62,125, 52, 58,157,238, 77, 94,163, 90,253,208,161, 67,226,151, 47, 95,194,214,214, 86,248,225,195,135,221,132,144,
- 82, 23,200,139,197,226,182,141, 27, 55,230,105, 52,154,207, 72,214,170, 85,171, 48,104,208, 32, 84,175, 94, 29, 28,199, 33, 59,
- 59, 27,222,222,222,194, 77,155, 54,181, 53,144,104, 77,169, 89,179,230, 26,228,238, 58, 44,220, 22,134, 2,152,149,167,118,127,
-236,214,103,216,139,214, 29,122, 55,170, 88,173,182, 99, 89, 6,237,237,237,231,242,120,188,254, 28,199,241, 51, 51, 51,163,181,
-132, 84,243,116,115,179,111,217,179, 39, 50,132, 66,254,198,235,215,121, 9, 89, 89, 10, 0, 6, 77, 65,170,245, 57,112,171,146,
-187,212,175,207,128,158,120,250,244, 41,250, 14,236, 5,145, 72, 4,129, 64,152,251,108,138,114, 21, 45, 11, 27, 51,131,234,166,
- 94,175, 47,104,195,243,215,121,233,116, 58,228, 47,205, 50, 49, 49, 41, 56,167,209,104, 74, 28,144,231,193,253,216,210,133,118,
- 50, 51,115,176,122, 61,106,245,236, 91, 80,167, 31,238,218, 42, 3,199,201,210, 63, 68, 96,210,241,179, 66, 24, 97, 68, 9,170,
- 86, 49,106, 86,225,118,229, 92, 81,178,245,165, 32,132,156,243,245,245,157, 7,128,250,250,250,206,203, 63,246,243,243, 83, 1,
-136,253, 18,178, 85,156,202, 37,248, 22, 36, 43,127,122,161, 52,180,107,215,110,146,169,169,233, 38, 0,104,212,168, 17,162, 31,
-196, 34,250, 65, 44, 60,106,212,106,217,160, 94,163,140, 65,131, 6,193,218,218, 26, 51,103,206,164, 0,254, 40,239,255,135,135,
-189, 80, 0,160, 78, 78, 78, 51, 1,192,201,201,169,222,163, 71,143,108, 31, 63,126,140,198,141, 27,255, 45,221,235,116,104,213,
-170, 85,105, 29, 98, 22,114,215, 90, 77,251,118, 42, 25, 7,157, 78, 7,165, 82, 5,173, 86, 7, 70,207,129, 97, 24, 52,172,101,
-138,253, 59,124,115,191, 99,242,213,179, 92,213,204,197,193, 20, 13,235, 56,232,121, 60,162,122, 28, 24, 95,108,139,169,213,106,
- 17,244,225, 3, 2, 35, 35, 1, 0, 61,252, 74, 95,248,186,255,250,109,120,122,122,150,149,218,170, 46, 78, 14,136,187, 26,148,
-219,120,171,162,241,248,238, 49,152,154, 42, 0, 0,181,188,134, 64, 36,202, 37, 90, 57, 42, 29,108,106, 84, 0,161,180, 68,183,
- 0,114, 43,199,203, 2,145,212,141,178, 28, 40,229, 64, 57, 22,148,114,144,152, 90,155, 76, 26, 55, 18, 28,199,162, 73,147, 38,
- 32,124, 62, 88,189, 6,253,186,119, 68, 90, 70, 22,172, 45, 12,235, 36, 68, 34, 17,188,188,188,100, 37,157,127,251,246,173,170,
- 48, 49, 43,189,140,244,200,201, 81, 65,163,209, 64,167,101,160,211, 51, 96, 43,139,176,108,193, 96, 48, 58, 6,202,129,205,161,
-211, 51,224,166,246,130, 78,171, 71,148, 9,143, 87,207,211, 86,207, 3, 81, 61,123,153,104, 86, 22,209,202, 39, 7, 37,161,184,
- 53,129, 37,144,173,192,225,195,135, 55,172, 91,175,222,211,254, 29,234,173, 13, 14,121, 17, 23, 28,242,226,179,235,220,170,215,
-139, 24,191,234,200, 12,161, 72,214,208, 80,146, 5,124, 58,141,248,149,152,151,149,149, 85, 87,161, 80, 32, 44, 44, 12,124, 62,
- 31,132,144,183,148,210,186, 0, 48,118,236,216,119, 2,129,160, 10,159,207,199,150, 45, 91,136, 64, 32,168,211,188,121,243,121,
- 0,142,149, 50,160,243, 48, 53, 53,253, 68,205, 18,137, 68,240,245,245,197,208,161, 67, 11, 72,150, 72, 36,194,222,189,123,209,
-168, 81, 35,104,181, 90, 15, 3,201,240, 99, 0,173, 13, 80,252, 72, 30, 57, 47,147,140, 50, 12, 51, 60,165,127,255,106,240,247,
- 71,203, 42, 85, 60, 27, 54,108, 8,157,238,111, 65,179, 74,149, 42, 21,178,178,178, 62, 18, 66, 14, 2,216, 74, 41,125, 94, 42,
- 41, 82,115,248, 16, 30,147, 63,104, 69,147, 38, 77, 10, 20,172,194,106,150, 72, 36,130, 76,172, 40, 23,209,226,184,220,118, 41,
- 43, 43,139,231,239,239,111, 83,179,102, 77, 2, 0, 53,107,214, 36,207,159, 63,183, 50, 49, 49, 73,174, 90,181,106,153, 3, 96,
-153,153, 57,246, 14, 31, 0, 0,248,185, 67,231,130,129,209,165, 37,243, 32, 20, 10,209,126,230,188,207,234, 61,199,113,124, 24,
- 97, 36, 89,101,144,172,226, 20,173,175,235,155,255, 86,180,252,252,252, 94,248,249,249,125,166,142,149,211, 94,217,138,150, 33,
- 83, 1,101, 61,172, 37, 97,221,186,117,168, 83,167, 78,169, 29,209,166, 77,155,112,224,192,129,117,148,210,240,242,254,127,183,
-246, 13,106, 97,253,169, 23, 85,170,215, 34, 0,176,116,106,119, 94, 78, 78, 14,238,221,187, 7,115,115,115,188,125,107,152,219,
- 47, 66,136,169,185,185,249, 18, 30,143,215,143, 95,116, 7, 64,241, 4,147,229, 56,238,120, 70, 70, 70,137,238, 29, 40, 5,116,
-122, 6, 57, 74, 53,180, 90, 45,166,206,254,173,204,116,248, 1, 68,167,205, 18,120,181,105, 46, 43, 73,209,105, 82,167, 45, 38,
-252,160,248,172,243,230,243, 0, 30, 15,168,223, 36, 87,113,121,254,232, 5, 56, 14, 96, 57,192,198,206, 18,127, 28, 94, 91,106,
- 22, 48, 44,151, 55, 58,102,145,173, 97,225,209,172, 27, 98, 66,253, 11, 20, 36,177, 40,119,202, 88, 36, 20,130,163, 36,215,235,
- 67, 73, 68, 72, 44,115, 75,139, 15,119,223,113, 46, 24, 99,186,213,193,159,215,130,208,183, 67, 93,220,124,248, 18,222, 77, 61,
-241,226, 77, 36,106,185, 87,196,150,221,199, 65, 41,178,126, 95,191,252,227,223, 29, 26,243,193, 16, 69,235,193,131, 7,170,162,
- 42, 86,225,119, 90,118,127, 8, 74,255, 86,180, 84,106, 13,102,206, 53,200,157, 79,110, 25,181,110, 38, 51,228,226,210, 20, 43,
- 67,136, 88, 81,101, 11,101,184,103,169, 12,160, 17, 48,231, 95,217,112,178, 44,139,243,231,207, 23,148, 71,113,229, 88,184,236,
- 12, 32, 57,248,240,225, 3, 94,188,120,129,102,205,154, 33, 35, 35, 3, 66, 30, 15, 51,130,131,225,249,195, 15,208,138, 68,224,
- 56, 14, 98,177, 24, 99,199,142, 53, 56, 63,203,217,154,230,173,115, 99,105, 25,109,201,218,110,221,186, 85, 11,203,201,193,139,
- 87,175,208, 97,241, 98, 0,192,133, 11, 23, 62,169, 19,211,167, 79, 23,191,124,249,114,212,147, 39, 79, 70, 17, 66,214, 81, 74,
-103,148,216,206, 82, 77,193, 26,173,254,131,251,160, 90,205,202, 56,176,231,112,193,249,233,179,166, 64, 40, 20, 65, 40, 18,194,
-194,220,194,160,187,209,235,245, 5,164, 85,169, 84,242, 46, 92,184,224,210,177, 99, 71,209,148, 41, 83, 8, 0, 28, 56,112,128,
-183,121,243,102,249,213,171, 87, 69,206,206,206,241,101,146, 75,157,238,179, 50, 38,132, 64, 40, 20, 66, 36, 22, 1, 28, 7, 66,
-136,124,245,234,213, 75, 95,188,120,209,184,102,205,154,208,104, 52, 63, 16, 66,158, 25,253,104, 25,145, 63,109, 88, 18,225, 42,
-110,173, 85,158, 42, 85, 18,146, 10,175,219, 42,137,168, 21, 94,179, 5, 64, 83,254,102,193,192, 53, 90,197,129,207,231,151,169,
- 86,241,120,188, 50,167, 14,167, 79,159, 14, 83, 83,211,146, 58, 32, 26, 28, 28,252, 50, 62, 62,126, 7,165,244,183, 47, 41,156,
-115,215,159,189, 88, 50,173, 87, 22,242,230, 86, 45, 44, 44,146,219,181,107,151, 13, 64,119,236,216,167, 3,100,141, 70, 83, 98,
- 7,110,110,110,190,100,215,174, 93,147,123,246,236,201, 43,234, 98,160,240,244, 94,254, 75,175,215,227,216,177, 99,147,231,204,
-153,131,146, 84,176,252, 78, 92,153,163,130, 42,111, 33,244,187,144, 63, 13, 45,189, 18, 79, 41, 44, 28,225, 82,185,110,137,157,
- 9, 79,148,187,134,200,222,245,239, 14,204,212, 84, 10,182, 20,155,132,240,194, 35,163,226,156, 43, 56, 88,225, 93,116, 18,236,
- 43,214, 65, 90,236,223,249, 32, 16,240, 33,204,155, 58,180, 48,147, 35, 41, 49, 17, 60, 30,191, 84, 98,188,252,208, 51, 60, 12,
-137,196,137,107,207,161, 83,231, 96,253,190, 75,208,105,178,161, 83,231, 64,167,206,125, 95, 57,231, 71, 16,130,143, 58,117,118,
-245,242,148,187, 64, 32, 64,211,166, 77, 75, 36, 58,177,177,177, 6, 42, 90,180, 64,209, 82,169,203, 89, 70,134, 61,132,165, 42,
- 86,249,231,191,148, 24,228,187,124,144,201,100,141,246,238, 45,217,141, 67,113,112,116,116,188,168, 80, 40, 42, 25,122,125, 57,
-156,151,174,180,176,176, 88, 82,179,102, 77,143,245,235,215, 11,249,124, 62,218,183,111, 95,253,199, 31,127,252, 0, 0,117,234,
-212,113,202,111, 99,198,143, 31, 79, 31, 60,120, 16,146, 59,198, 40, 25, 98,177,248,149,185,185,121, 35,111,111,111,100,100,100,
- 32, 58, 58, 26,114,185, 28,158,107,215, 34,120,252,120,212,219,182, 13,188,118,237, 64, 8,129, 88, 44, 70,112,112, 48,100, 50,
-217,171, 82,200, 80, 83, 0,191, 2,104,137,191,167, 11, 41,128,123, 0,102, 83, 74, 31, 22,211,222,241, 0,128,229,184,178, 10,
-107,240,204,153, 51,145, 46, 20, 2, 62, 62, 16,133,135, 67,167,211,161, 89,179,102, 5, 42,123,179,102,205, 32, 16, 8, 80,183,
-110, 93, 56, 57, 57, 97,203,150, 45,131,241,233, 78,236, 79,160,206,214,225, 67,120, 12,154, 55,111, 94,160, 92,249,248,248, 20,
- 40, 90, 66,161,176, 64,217, 34,108,217,196,149, 16, 66, 11, 15,146, 89,150, 37, 2,129, 64, 48,109,218, 52,210,167, 79, 31,170,
-213,106, 57,177, 88,204, 59,113,226, 4,185,121,243,166, 32, 39, 39,167,204,129,120,237, 94,253,240,115,199, 92, 81,116,121, 37,
- 91, 8, 69, 66,136, 69, 34,204,124, 21, 83, 80, 46,102,123,143,136, 87,173, 90,213,183,102,205,154,185,211,240,128,192,232, 71,
-203,136, 50,212,172,164, 34, 36, 73, 91,232, 56, 9, 0,201, 59, 78, 42, 68,168,146,144,187,131,176,113,145,107,243,207,107,139,
-188,231,159, 15, 44,111,218, 11,197, 58,252,140,124,149, 54, 34,126,115,255,254,125,247,134, 13, 27, 34, 42, 42,234,179,157,112,
-249, 29,151, 92, 46,135, 76, 38, 67, 64, 64, 0, 0,188, 41,201,216,141, 27, 55, 54, 35,215,235, 50, 0,192,201,201,169,185,119,
-255,182, 1, 77, 58, 55,198, 33,191,195, 25,241,241,241,117,243,125,232, 16, 66,136,147,147,211, 80,161, 88, 48,160, 74,109, 87,
- 47,112,220,175,215,254,186,187,184,180,155,172, 82,189, 86, 54, 0, 85,161, 93,135,107,190,164,160,121, 60, 94,191,158, 61,123,
-242, 94,190,124,137, 1, 3, 6,224,192,129, 3, 37, 94, 59,116,232, 80, 28, 57,114, 4, 61,123,246,228,205,157, 59,183, 95, 89,
- 68, 43, 87, 45,209,126,179, 74, 25,246, 54, 16,251,143,236, 42,113, 13,146,157, 93,238,122,172,196,196,228,130,239, 26, 55, 44,
-125,102,132, 99,180, 87,159, 61,121,212,188, 69,155,246,162,232,132,116,112,140, 6,234,172,191,127,175, 76, 79, 0,101,212, 16,
-153, 88,193,193,198, 28, 79,239, 95,209,234,180,234,171,165,217,156,220,179, 22,198,119,247, 0, 40,135, 94, 51,254,192,185,223,
- 38, 21,140,160, 91,245,153,130,235,199, 54, 26,188,198,175, 40,132, 66, 33,130,131,131, 85, 37,169, 89,124, 62,191, 76,159, 92,
-127,171,142,122, 40,149, 42, 40, 85,234,111, 86, 70,132, 16, 91,123,123,251,223,173,172,172,164,197, 17, 41, 66,136,173,173,173,
-237,239,214,214,214, 82, 67,167, 14, 75, 34, 89,121,126,181,158, 12, 31, 62,188, 92,100, 75, 34,145, 84,122,243,230, 77,129,179,
-210,210,222,181, 90, 45,188,189,189, 13,114, 94, 74, 41, 61, 75, 8,121,239,232,232,120,207,211,211,211,252,221,187,119, 56,124,
-248,176, 72, 40, 20,186,230,183, 31, 89, 89, 89,224,243,249, 72, 76, 76,212, 3, 24, 89,214,212,153, 70,163,241,247,247,247,175,
-223,189,123,119,254,171, 87,175,192,231,243,115,211,213,188, 57,234,109,219,134,144,105,211,224, 21, 25, 9,181, 78, 7,169, 84,
-138,203,151, 47,235,148, 74,165,127, 73,246,100, 50,217,142,136,136,136, 90, 82,169, 20, 58,157, 14, 28,199,129,199,227, 17,129,
- 64,208,202,194,194, 98, 19,128,198,159, 62, 83,118,118, 99,167,255, 82,131,101, 24, 54, 62,234, 93, 82, 89,121,144,146,146,130,
-179,103,207,162, 89,179,102,240,242,242, 66,108,108, 44,194,195,195,209,181,107,215,130,107, 2, 3, 3,241,236,217, 51, 84,173,
- 90,181,108, 69,143,167, 71,213, 26,149, 32, 18,137,114, 21, 34,161, 40,111,224, 35, 44, 80,178, 68, 66, 17,132, 2, 33,164, 50,
-169,193,138, 22, 33, 4, 60, 30, 15,132, 16,200,100,178,252, 65, 54,231,226,226, 18,159,154,154,234, 8,128, 47,147,201,192,178,
-172, 65,131,150,252, 62, 34,159,100,137,196,162, 2,101, 11, 0,210,211,211,213, 61,123,246, 60,168,209,104, 70,224, 11, 34,148,
- 24,241, 63,137,199,255,162,223, 26,204, 19, 41,165, 59,138, 91, 20, 95, 90, 5,239,218,162, 69,139,109,131, 6, 13,106,191, 97,
-195, 6, 40, 20, 10,196,199,199, 23,116,136, 98,177, 24, 21, 42, 84, 64,106,106, 42,182,111,223,142,152,152,152, 27, 0,198, 26,
-154,162,248,248,248, 7,111,159,191, 73,241,238,219,194,186, 86,139, 26, 22,209,111, 98,154, 1, 8,200, 35, 89,127, 12,154,222,
-117,132,119,239, 38, 16,137,133,136,126,251,241,255,173, 36,249,124, 62,159, 16,130, 1, 3, 6, 24,116,253,192,129, 3,225,239,
-239,143,210,166, 25,185,124, 69, 75,169, 70,142,234,219, 13,214, 38, 76, 26,138, 9,147,134, 22,144, 9, 67,166, 94,114, 73,238,
-209, 82,136,150,110,195,185,163,219,199, 52,104,210,220,173, 81,173, 74,120,248,228, 57, 14,109,251, 91,100,216,189,121, 41,126,
-217,125, 3, 21,236, 45,161,211,228,224,226,159, 59, 63,234, 52,202, 13, 95, 40,202,229,146, 91, 66, 96,160,159,202, 79, 84,212,
-124,162, 85,187,118,237, 18, 21,173,212,212, 84, 85, 89, 29, 67, 65, 25,105,245,200,206, 81, 65,165,252, 54, 68,139, 16, 82,175,
- 85,171, 86, 87,143, 31, 63,110,109,103,103,135,184,184,184, 79,136, 22, 33,164, 94,203,150, 45,175, 30, 63,126,220,218,222,222,
- 30,209,209,209, 6,187, 21, 41,134,100, 33, 41, 41,137,164,165,165,113,150,150,150,229, 34, 91, 60, 30, 15, 26,141, 6,161,161,
-161,134,254,173,193, 59,196,204,205,205,247, 30, 57,114,196, 60, 57, 57, 25,124, 62, 31,161,161,161,159,236, 58,204,127,253,241,
-199, 31,162, 94,189,122,237, 2, 80,234,182, 54,134, 97,214, 13, 29, 58,116, 84,108,108,172,165,157,157, 29,226,227,227, 33, 22,
-139, 65, 41, 5,241,246, 70,235,247,239,161, 99, 89,200,100, 50,132,133,133, 97,199,142, 29, 57, 26,141,102, 93, 9,229, 35, 54,
- 49, 49,113, 23,137, 68, 24, 50,100,200, 39,231,246,237,219,135, 30,141,248,141,198,116,148,100, 51,144,106, 18,100, 93, 46,242,
-249,124, 50,118,230,175,213,155,182,241,169,253, 58,228,225,187,164,132,152,123,101,220,190, 94,171,213,162,102,205,154,120,252,
-248, 49,174, 93,187,134,118,237,218,193,203,203, 11, 65, 65, 65,184,114,229, 10,158, 61,123, 6, 66, 8,172,173,173,243,151, 95,
-148,186, 6, 67,171,100,144, 24,151,242,153,122, 85,244, 88, 36, 18, 65,163,210, 25, 84, 70,175, 94,189,194,227,199,143, 11, 92,
-203,240,249,124,230,135, 31,126, 0,165,148, 70, 68, 68,192,212,212,148, 14, 31, 62,156, 21, 8, 4, 76,108,108,172,161,117, 63,
- 87,189,202, 35, 89, 2,145,240, 19,130,198,113, 92, 86, 96, 96,224, 24, 66, 72, 16, 33,100,117,222,215, 70, 63, 90, 70,252, 39,
-227,124,225, 88,135, 6, 41, 90,148,210,247, 0, 58, 16, 66, 6,159, 62,125,122,221,166, 77,155,108,187,117,235,134,180,180, 52,
-184,185,185,193,209,209, 17,231,206,157,195,133, 11, 23,146, 89,150,157, 65, 41, 61, 80,204,195,214,161, 36, 95, 27,148, 82,234,
-228,228,116, 92,147,157, 61,190,161,151, 7,110, 28,187,227,231,232,232, 56,214,217,217,121,234,240,121,223,143,104,219,179, 49,
-194,158, 69,224,193,149, 96, 36, 68, 37, 99,120,235,217,165,218, 44,186, 24,222,194,194, 98,148,137,137,137, 24,128,174,152, 81,
-241, 39,187, 14, 11,219,100, 89,150,213,106,181, 56,122,244,168, 65,100,235,240,225,195, 80,171,213, 96,139,204,175, 22,182, 73,
- 57, 74, 4, 66, 9,156, 42,212,132, 78,151, 3,142,251, 50,245,166,176,205,252, 17,232, 59,177, 24,118,201,201,120,248,240,161,
-161,210,108,169,101, 68, 41, 85, 19, 66,134,108, 92, 49,243,220, 68,223, 95, 45,218,181,168,143,159,215,238,131, 78,183, 27, 60,
- 62, 15, 50,137, 8, 13,155,180, 4, 31, 26,252,190,106, 86,186, 50, 51,109, 72,209, 80, 60,159,217, 44,109,134,133, 2, 44,199,
-225,218,237, 71, 6,223,123, 65,111,207,178, 16, 8, 4,120,251,246,173,170,184,221,134,124,126,238, 52,103,254, 72,189, 52,155,
-148,227,136, 80, 36, 69, 5, 55, 79,104, 53,217,223,164,140,236,236,236,102,157, 58,117,202, 58,223, 85, 66, 80, 80, 16, 8, 33,
-161,133,212,145, 89,167, 78,157,178, 86,169, 84, 8, 9, 9,201, 15, 53, 21, 90,158,231, 40, 95,201, 74, 74, 74, 34,241,241,241,
- 48, 49, 49,225, 5, 5, 5,105,234,214,173,251, 4,165, 71,126, 40,176,169, 86,171, 35, 75, 90, 63,169, 86,171,157,165, 82,169,
-176,200,111,157,220,221,221,195,138, 78, 33, 22,151,206,140,140,140,135,115,230,204,105,216,185,115,103,204,154, 53, 43,213,210,
-210,210,244,247,223,127, 23,240,249,124, 50,113,226, 68, 54, 49, 49, 49,123,231,206,157,230,167, 79,159, 70,122,122,122, 64, 89,
-247, 78, 41,205, 34,132,140,105,209,162,197,190, 75,151, 46,153,184,187,187, 35, 51, 51, 19,148, 82,236,221,187, 23, 19, 39, 78,
-132, 84, 42, 69, 88, 88, 24,122,244,232,161, 84, 42,149, 99,138,174,157, 44,100,147, 16, 66, 40,199,113, 88,184,112, 97,129,115,
-210,124,103,165,166, 50,130, 29,211, 43,203,167,236,204,144, 15,254,121,231, 15, 0,192, 50, 12,251, 58,228,225,187,189,191,253,
-124, 83, 36, 18,221, 46,163,140,230, 79,153, 50,229,119, 31, 31, 31,153, 66,161, 64,106,106, 42,238,221,187,135,251,247,239,227,
-193,131, 7,208,106,181,176,182,182,134,165,165, 37,226,227,227,241,234,213, 43, 21,128,249,165,217, 20,155, 8, 81,165,122,254,
-206,223, 92, 5, 75, 88,104,183, 97, 97,117, 75, 36, 20, 26,244, 28,181,105,211, 6, 77,155, 54,205, 39, 64,236,135, 15, 31,226,
- 53, 26, 13, 41, 68,250, 99,243, 9,185,171,171, 43,115,224,192, 1, 90,154,205, 7, 59,182,224,210,178,249, 16,139, 68,152, 17,
- 26, 93, 64,186,246,181,107, 0,161, 88, 4,143,238,125, 10,247, 3, 91, 9, 33,187,243, 62,107, 12,169,243, 95, 49,240, 49,218,
-252, 55,183,249,159, 12, 74,105, 60,128,242,133,224, 41,244,227, 67,132,144,139, 63,254,248,227,170,122,245,234,253,184,126,253,
-122, 34, 18,137,176,120,241, 98, 26, 23, 23,183, 39,111, 20,146,246,133, 9,219,115,235,100,192,184, 97,190, 61,201,244, 13,195,
- 91, 61,185, 30,242,170, 78, 11,119,212,105,225,142, 39, 55, 94,226,183,121,135, 15,176,122,118, 97,124,124,124, 84, 25,166, 52,
- 29, 90,214, 40,186, 24,222,218,255,230,117,235,242,238, 58,228, 56,238,248,225,195,135, 39,247,238,221,155,247,232,209,163,207,
-214,100,229,135,221,225, 56, 14, 87,175, 94,133, 78,167,195,158, 61,123, 56,142,227, 74,246,163, 5,122,102,227,134, 85,195,246,
-236, 63, 35, 22,139, 8,238,223, 62,129,140,180,210, 85, 58,145, 72,136, 63,246,158,212,137, 68,194,215,197,157,215,233,116,209,
-215,175, 95,183,239,196,178, 66, 30,143,247, 25,129, 42, 9,199,143, 31,215,115, 28,247,161,140,114, 9, 32, 68,216,125,249,172,
-145,135,125,250,255,104,223,162, 69, 43,161,141,157, 61, 8, 33, 72, 76, 72, 68, 88,200, 35,253,197, 19,187, 18,114,148, 89, 6,
-133,224, 25,185,230, 86,193,154, 44, 0,232, 54,113, 83,193,250, 44, 0,232, 62,124, 14,188,155,213, 2, 49, 68,122,250,155,100,
-113, 12,195, 64, 46,151,131, 97,152, 98, 93, 60,152,155,155,203,212,106,181, 42,207, 17, 99,169, 82, 17, 5,190,121, 25,177, 44,
-235,145,150,150,134,156,156, 28,220,191,127,159,174, 88,177, 34, 41, 41, 41,169, 96,209,166, 94,175,247, 72, 77, 77, 69,118,118,
- 54, 2, 2, 2,232,170, 85,171,146, 82, 82, 82,230,149,231, 25,146,201,100,141, 4, 2,193,147,180,180, 52,206,196,196,132,167,
-215,235,245,117,235,214,149,200,100, 50,131, 3,170,199,197,197,117, 46,233, 92,213,170, 85,223,188,121,243,166, 26,203,178,133,
- 99, 32,138,212,106,181,123,139, 22, 45, 12,153,242,153,178,123,247,110,156, 60,121,178, 73,102,102,230,208, 15, 31, 62,236, 3,
-208, 68, 32, 16,224,249,243,231,161,106,181,122, 80,239,222,189,247,166,165,165, 61, 4, 48,197,192,118,227, 18, 33,100,136,135,
-135,199,238, 37, 75,150, 40,188,188,188, 4, 78, 78, 78,104,220,184, 49,194,194,194,112,254,252,121,253,214,173, 91,115,148, 74,
-229, 72, 74,233,213,210,139, 29,132, 97, 24,136,197,226,130,151, 68, 34,129, 72, 36, 66,150,138, 98,244,218,112, 21, 3,153,106,
-221,226, 49,231, 41, 64, 62, 70,135, 39, 39,126,140,126, 72, 8,185, 29, 23, 23,151, 81, 66,158,137,213,106,117,125, 71, 71, 71,
- 62, 33,100,131, 78,167, 27, 62,105,210, 36,199,149, 43, 87,162, 70,141, 26, 72, 78, 78,134, 92, 46,135,187,187, 59,146,146,146,
-240,232,209, 35, 86,169, 84,110, 3,176,148, 82, 90,234,116,100,122,114, 38, 92, 28, 92, 63, 81, 62, 41,165,160, 44,160,215,176,
- 96,117, 20, 90,162,135, 80,168,135, 72, 36, 50,164,179,164, 28,199, 33,205,209, 17, 92, 72, 8, 30, 60,120, 0, 74,105,137,170,
- 90,205,154, 53, 13, 40, 32, 14, 98,137,248,147,233, 66, 66, 8, 68, 98, 49,132, 98,209,103, 59,103,140, 42,150, 17,255,237, 48,
-116,173, 69, 58,128,177,132,144,125,109,219,182, 61, 71, 41, 21, 34,119, 62,242,206,215,252,121,124,124,252, 83, 39, 39,167,185,
-246, 46,150,171,186, 12,109,133, 26,245,221,192, 50, 44,238, 93,120,142, 61, 43, 79, 31,137,141,142, 29,110, 72,236, 51,142,227,
-110,182,108, 84,131,135, 66,190,186,157,156,156,184, 47,217,117,152,145,145,177,104,198,140, 25,152, 53,107, 86,185,119, 29,150,
-116, 77, 80,104,226,216,122, 30,182, 46,221,187,180,238, 4,194,163, 90,173,166,148,134, 15, 5,158, 75, 69, 34,225,235, 71,129,
-113,117,139,187, 46, 41, 41,169,211,136, 17, 35,174, 10, 4,130, 74,229,201,115,142,227, 62, 36, 36, 36,180, 47,187,204,245,247,
- 8, 33,238,103,143,108,159,118,233,228,238, 78, 28,199, 86, 37, 0,248, 2,209, 59,189, 78,119, 89,163,202, 92,111,104, 80,233,
-213, 99,155, 99,202,198, 43,216, 50,171, 59, 38,173, 58,134, 93, 11, 71, 99,238,218,195,248,117,214, 20,172,216,116, 16, 63, 79,
- 25,130,190,131, 71,112,148,240,238, 26,122, 31,124, 62,255,210,246,237,219,135,141, 30, 61,186, 96,211, 2,165,244,147,134, 93,
-175,215,171, 56,142,195,182,109,219, 56, 0,151, 74,179,247,105, 25, 17, 90,218,122, 41, 67,203, 40, 51, 51,115,100,243,230,205,
-247, 2,144, 80, 74,223,166,165,165,253, 68, 41, 45, 8, 13,149,157,157, 61,178, 69,139, 22,123, 41,165, 18, 66,200,103,231, 13,
- 65,158,171,135, 70,150,150,150, 79,242,148, 44,201,151, 44,136, 47, 45,171, 75,153, 86,100, 13,104, 59, 56, 20, 10,171, 67, 8,
- 89,217,164, 73,147,194, 65,165, 67, 1, 52, 42,111,162, 40,165, 87, 9, 33,181, 22, 46, 92, 56, 77, 42,149,122, 43,149,202,234,
- 0, 32,151,203,195, 52, 26,205, 77,149, 74,181, 62,175,221, 42,205,134,214,196,196, 36,140, 97,152,218,182,182,182,185, 59,106,
-243,200, 22, 0,252,245,132,125, 66, 41,211,184,188,105,187,112,225, 66, 69, 75, 75,203,239, 8, 33,125, 41,165, 53,179,178,178,
- 52, 11, 23, 46, 12, 56,126,252,120, 70,165, 74,149,186,248,248,248, 16, 43, 43, 43, 60,126,252,152,166,164,164,156, 0, 48,207,
-144,157,214, 28,199,125, 88,189,122, 53,202,251,188,151,118, 94,167,211,125,188,112,225,130, 77,231,196, 68, 1,199,113,232,222,
-189,251, 39, 4,174, 40, 94,191,126, 13,141, 70, 83,170, 51, 71, 77, 70, 26,218, 77,155, 3,228,237,254,204, 71,174,146, 69, 65,
-181, 70, 94,101,196,255, 22,200, 63,178,253,185,156,210,162,147,147,211, 0,169, 92, 50,193,173,186, 99,221,184,240,196,151, 89,
- 25,202, 3,241,241,241,219, 41,165,236,151,218, 44,143,195, 82,163,252,251,207,217,252,219,143, 22, 11, 74, 89, 80,142,130, 82,
- 14, 28,199,230, 6,188,166, 28, 40,203, 18, 66,112, 87,163,204, 24,109,104, 58, 9, 33,150, 54, 54, 54, 75, 41,165,157,249,124,
- 62,175,176, 24, 86,248,115,158,146,117, 41, 41, 41,233,231,162,202,235,127, 98,126,254,249,231,159,197,146,127, 67,119, 29,246,
-237,219,151, 45,231,179,121, 83, 46,151, 23,235,152, 51, 39, 39, 39, 42, 46, 46,238,187,127,135,252,204, 87, 67,169, 1, 13, 90,
-145, 41,248,114,239, 58, 44,203,102,197,138, 21, 37, 58,157,174, 1, 0,119, 66,136, 5,128, 84,157, 78,119, 57, 41, 41, 41,129,
- 16,210, 8,192,194,188,159, 45,163,148, 62,249, 87, 62,239,132, 16,153,141,141,205,110, 30,143,231, 98,200,239, 25,134,209,166,
-166,166, 14, 43, 60, 32, 40,108,211,198,198,230,137, 64, 32,112, 49,192, 78, 76,114,114,114, 35, 99,251,105,180,249, 95, 67,166,
-138, 44,130, 47,124,252,111,177,219, 35, 46, 46,238, 40,128,163,223,210,102, 73,158,223,141,248,255, 69, 78,106,252, 63, 82, 14,
-121,164,105,226,255, 90,126,230, 19,165, 98,190,127, 10,128,252, 3,207,166,247,127, 66,190,208, 47, 28, 49,230, 17,169,214,223,
- 50, 45,145,145,145, 26, 0, 1,121,175,162,255,247, 4, 64,247,127,163,124, 83, 1, 24,240,173,236,149, 70,158,140, 48,226,127,
- 21,198,109,181, 70, 24, 97,132, 17, 70, 24, 97,132, 17, 95,135,243, 69, 66,240,156,207,255, 64, 0,116, 40, 97,164, 99,176, 36,
- 72, 8,233,240, 5, 35,169,107, 70,155, 70,155, 70,155, 70,155, 70,155, 70,155, 70,155,255, 91, 54,255,231,144,239, 56,242,159,
-120, 1,232, 96,180,105,180,105,180,105,180,105,180,105,180,105,180,105,180,249,223,252, 2, 48,166,164, 99,158,145,106, 26, 97,
-132, 17, 70, 24, 97,132, 17, 70,252, 51, 48,152,104, 41, 28, 60, 60,108, 43,214,219,107, 85,161,110,144, 85,133,186, 65,182, 21,
-235,237, 85, 56,120,120,252, 47,102, 26, 33, 68, 70, 8, 25, 44, 20, 10,175, 58, 58, 58,102, 18, 66,166,253,151,222,167, 25, 33,
-164, 47, 33,100, 41, 33,164, 23, 33,196,228, 91,218,111, 75,136, 96, 32, 33, 19,134, 17, 18, 53,140,144,168,129,132, 76,104, 75,
-200,127,221,186,193, 37, 83,156,154,223,185, 52,228,226,146, 41, 78,205,139, 61, 63,211,201,250,225,213,254, 27,253, 38, 58, 91,
-125,163,114, 51,181,183,183,223,225,224,224, 16,105,111,111,255,193,222,222,126, 55, 33,196,220,216,220, 25, 97,132, 17, 70,252,
- 99, 56, 79, 8, 25,147,255, 66,161, 53, 90, 2, 0, 56,127,254,188, 23,128, 91, 0,218,250,248,248,248, 23,253,181,149, 91,157,
-209, 30, 53,107,204, 90,190,120, 30,113,176,179, 49, 97, 88, 78, 23, 17, 25,237,185,104,249,170, 63,173,220,234,172, 75,253, 16,
-188,235, 11, 58, 3,194,231,243, 7, 72, 36,146,110, 0,242, 9, 91,168, 70,163, 57,199,178,236, 81, 67,119, 17, 57, 56, 56,220,
-230,243,249, 21,203,243,223, 44,203, 70,125,252,248,177,213, 23,118, 98,253, 92, 93, 93,119,123,121,121,153, 52,105,210, 4, 98,
-177, 24, 11, 23, 46,156, 1, 96,189,161, 54,172,172,170,154,234, 36,210,169, 2,177,184, 35,213,107,107, 83, 80,128, 39, 9,225,
- 24,205,117,145, 70,179, 46, 53,245, 93,150,129,105,153, 7, 96, 56,114,183,163,239,162,148,174,254,154, 90, 50,188, 1,209,235,
-217,220, 58, 33, 18,128, 53, 55, 55,191, 53,127,254,124, 65,183,110,221,176,107,215,174, 86, 59,118,236, 24, 67, 8,185, 14,224,
- 47, 74,233,187,175,173,149,246,192,216, 22,173, 90,109, 28, 54, 99, 6, 95,117,251, 54, 54,238,222,189, 1,153,153, 0,176,165,
-188,117, 73, 36, 66, 95, 27, 27, 97, 55, 74,209,128, 0,132, 0,207,147, 82,184, 11, 58, 29,123,148,150, 55,190,207,167,182, 7,
-227,211,237,248,135,202,107, 35,227, 29, 93, 32,233,238,209, 58,227,221,205, 5, 0,186, 20, 61,207,168,165,195, 40,191, 66, 55,
- 21,125, 22, 13, 96,237, 87,146, 44, 19, 91, 91,219,160, 51,103,206,184, 52,105,210, 68, 0, 0, 79,158, 60,249,161, 91,183,110,
-237, 8, 33,181, 41,165,153,255, 34,210, 46, 21,240,120, 19,196, 66, 97, 71,150,101,235, 0, 0,159,207, 15,214,234,245, 87, 25,
-142,219, 98,168, 79, 54, 35,140, 48,226,191,152,169,148,193, 69,254,157, 97,136,103,248, 91, 62, 62, 62,228,252,249,243, 20, 69,
-182,136, 43,236,107,122,214,170,229, 49,227,210,169,125, 21,210, 83,211,213,155,215,236,123,154, 35, 16, 43,221, 61,221, 69,155,
-215,175,182,156, 48,101,250, 84,133,125,205,135,217, 9,175, 94,150,163,209,117,149,201,100, 39,215,172, 89, 83,219,219,219, 91,
-104,103,103,135,132,132, 4,132,134,134,214,190,113,227, 70,207,125,251,246,205, 32,132,244,166,148, 70, 25, 96,206,253,250,254,
-221,118,114, 43,107,176,122, 61,156,234, 54, 40,112,180,247,246,198, 21, 48, 58, 29, 56,189, 30, 30,221,122, 2, 0, 56,142,131,
-167,167, 39,255, 75, 50,146, 16,226, 84,171, 86,173, 3, 43, 87,174, 20,105, 52, 26, 60,124,248, 16, 55,111,222,228,226,227,227,
- 87, 25,106, 67, 97, 95,221,155, 39,147, 31, 29, 48,228, 71,243,239,187, 85, 22,186,218,219, 2, 48,193,235, 8,166,197,197, 43,
- 55, 26,159, 58,186,103,188,194,190,250,128,236,132,176,155,165,147, 53,171,102,132,144, 21,249, 30,162, 9, 33,191, 86,170, 84,
-233,231,194,215, 20,141,155, 71, 41,133, 64, 32, 72,200,202,202, 26,144,156,156,252,172,168, 77, 61, 11,193,161, 67,185, 60, 98,
-193,132,193,252,187,119,239,202, 61, 61, 61, 53, 0,176,122,245,106, 44, 93,186, 84,124,249,242,229,174,251,247,239,239, 74, 8,
-217, 64, 41,253,235,107, 42,166, 8,152, 61,108,198, 12,190, 34, 50, 18,138,192, 64, 12,201,204, 20,252, 2,204, 46, 15,209, 34,
-132, 84,118,112, 16,254, 57, 99,250, 8,143, 42, 85,155,137, 68, 34,155,220, 32,222,218,228,234, 81, 81,207,250,174,250,101,135,
- 47, 33,164, 15,165,244,173,129,246, 4, 0,150, 0,144, 2, 88, 0, 96, 97, 82, 82,146, 59,203,178,112,112,112, 88, 72, 8, 57,
- 13, 96,185,173,173, 45, 77, 74, 74,154, 67, 41,101, 74, 83,178, 50,223,209, 5, 31, 73,149,206, 53, 26, 14,195, 71,114,169,243,
-244, 46,142, 23,205,170,146,229,139, 54,198,221, 7,128, 46, 85,171,154, 86,169, 41,159,163, 48,171, 99,149, 25,123,109, 78,151,
-170, 85,119, 94,124,103, 24,209, 46, 74, 54, 1,192,201,201,105,245,254,253,251, 43, 52,109,218,180,160,142,215,175, 95,159,191,
-122,245,106,231,105,211,166,109, 0, 48,194, 64,123,213,109,109,109, 47,179, 44,171, 73, 73, 73,169,158,255,189, 93,189,222, 45,
-172, 77,229,237,147,210,178,110, 39,191, 56,237,111,160,173, 38, 82,145,232,196, 95, 7, 54, 58,214,111,218,156,167,176,177,131,
- 58, 54, 14,217,122, 93,135,155,247, 30,180, 29, 51, 97,246,148,188, 50,122,100,236,106,140, 48,226,127, 26, 37,114,145,255,100,
- 8, 10, 49,201, 98, 21, 36,137, 68,236,187,104,254, 28,146,158,146,174, 82,103,102,105,245,106,181,154, 39,162,234,224,151,239,
- 19,121, 2,126,250,180, 41,147, 77,125,231,206,247, 5, 48,196, 80,146, 85,175, 94,189, 71, 39, 79,158,180,179,178,178, 66, 70,
- 70, 6, 82, 82, 82,240,232,209, 35, 80, 74,209,187,119,111, 73,211,198,141, 27, 44, 88,184,240, 62, 33,164,185, 33,100, 75,110,
-101,131,213,173,114, 99,209,254, 28,153,146,255, 63,216,209,175, 91,193, 53, 75, 99, 50, 0, 0, 82,169,180, 32, 32,241, 23,160,
-121,251,246,237, 69, 0, 48,106,212,168,204,172,172, 44, 63, 0,135, 40,165, 6, 69, 90, 85,216, 87,247,182,113,116, 58,247,251,
-182,213,178, 58, 85,221,161,211, 51,248,240, 49, 14, 2,161, 5, 92, 92, 68, 24, 49,164,163,176, 77, 11, 43,155, 21,203,118,156,
-151,219, 86,239,149,147, 20,118,185, 36, 91, 22, 22, 22,251,142, 30, 61,138, 99,199,142, 1, 0,194,194,194,224,238,238, 46, 47,
- 43, 13, 33, 33, 33, 85,122,244,232,113, 4, 64,181,178,174, 45,234, 24, 95, 34,145,160, 85,171, 86,240,244,244,196,153, 51,103,
-218, 2,248,235,107, 43,160,234,246,109, 40, 2, 3, 1,255,242, 15, 94, 8, 33,149, 27, 54,116,123,112,225,252, 1,155,243, 23,
- 66,177,118,237,110,188,123,151, 43,180, 85,169, 82, 5,131, 7,245, 19, 6, 7, 7,212,234,219,119,112, 0, 33,164, 21,165, 52,
-204, 0,179, 75,118,238,220, 57,175, 82,165, 74,232,219,183,111,191, 90,181,106, 57,152,153,153, 97,251,246,237,112,116,116,172,
-162,213,106,223,158, 57,115,198,233,227,199,143,152, 60,121, 50, 0,204, 40,201, 80,219, 78,109, 23, 72,186,123,180,174,209,112,
- 24, 20,102,142,216,121,248, 40, 94, 63,221,215, 90,163, 11, 93,224, 55,209,121,168,138, 74,134,187,184,155,250, 86,108,228,101,
- 93,173, 86, 15,184, 53,124,102,163,102,239,188, 95, 56,161,202, 42,129, 84,189,111,209,154,184,148,207,238,185,223,159,252,218,
-153,175,172, 66,174, 34,133,210, 69, 92, 30,193, 42,104,144, 88,138, 30,109,218,180, 41, 40,184,200,200, 72,104, 52, 26,120,120,
-120,240,180, 90,173,183,129,249, 90,253,187,239,190,187,123,225,194, 5,235,234,213,171,127, 18, 18,198,193,218,162,147,255,201,
- 13,147, 87,108, 60, 88,211,206,179, 87,122,226,203, 83,193,101,145,172,150,205, 26, 94,187,120,242,128,130,100, 71, 67,108,145,
- 12,112, 41, 8, 63,242, 7,136,137, 21, 6,140,155, 46,240,110,223,206,185, 99,151, 62,215, 8, 33,237, 41,165,143,141,125,141,
- 17, 70,252, 79,171, 90,244,191,237,158, 10,136, 86, 33, 22,249, 9, 56,202,213,181,183,179,150,109, 88,179,247, 49, 95,167,213,
-202, 45,204,181, 66,115, 51,142,152,154,243,117, 90,125,182, 91, 21, 55, 49, 71,185,186, 37, 72,105,215,138,142,186,101, 50,217,
-201,191,254,250,203, 78, 40, 20,130,227, 56,216,218,218, 34, 34, 34, 2,233,233,233,200,202,202,194,187,208, 80, 84,114,173,128,
-197,190,115, 28, 39,207,241, 61, 73, 8,105, 84,120, 26,177,184,109,163,172, 94, 87,180,113, 47, 41,136,240, 39,239,165,217, 44,
- 1, 17, 81, 81, 81, 80, 40, 20,168, 93,187,182,226,222,189,123,119, 74, 34, 89, 69,109, 90, 89, 85, 53, 21, 40,100,199,182,254,
-190, 80,166,211,135,224,101,120, 42,106, 84,106, 13,123,107, 87,196,165,106,241,224,209, 95, 8, 9, 58,132,170,206,174,152, 56,
-174,157,116,213,234, 63,143, 90, 90, 86,118, 77, 75,123,159, 89,156,205,204,204, 76, 69,229,202,149,225,234,154, 27,247,140,101,
- 89,188,124,249, 18, 44,203, 22, 28, 23,126,223,123,226, 6,152,204, 15, 24,246,195, 15, 72, 73, 73, 81, 20,103, 83,200, 7, 51,
-125,204, 96,129, 76, 8,136,229, 86,218,236,236,236, 2,117, 80,167,211,225,249,243,231,104,222,188,185,215,241,227,199,253,203,
-144, 80, 13,202, 79, 29,240,235,198, 61,123, 54, 13,201,200,224, 1,192, 46, 66, 56, 29,165,191, 26, 90,151,236,236,132, 39, 46,
- 93,220,111,195,231,189,130,149,249, 47,120,244,232, 3,116,186,220,244,166,164, 36, 98,210,132, 76,136,132,166, 56,115,230,160,
-181,135, 71,171, 19,121, 83,103, 92, 25,233,148, 94,188,120, 17,147, 38, 77,194,203,151, 47,157,248,124, 62, 30, 62,124, 8,153,
- 76,134, 53,107,214,240, 61, 60, 60,156,228,114, 57, 46, 93,186,132,132,132, 4, 82, 90, 58,111, 93,190,181, 60,227,221,205, 5,
- 31,201,165,206, 59, 15, 31,197,143,131, 6,192,129,134,223, 49,175, 74,150,127,215,189,229,207,148, 95,161,155,220,180,174,165,
-123,237,238, 16,137, 21,152, 56,123, 41,194, 66,206, 90, 42,179,130, 38, 16, 54,186, 2,242, 98,255,125, 18, 84,249,120, 95,118,
-211,225,128,134, 87, 93, 31,187, 57, 53, 28,251, 16, 64,208,223, 68,171,138,128,240, 88,243,124,245,242,237,219,183,120,247,238,
- 29, 4, 2, 1, 84, 42, 21, 24,134, 41, 54,157,206,206,206, 99, 25,134,249, 57,175,156,247, 58, 58, 58,142, 60,112,224,128,117,
- 97,162,157,175,100,165,166,103,166, 5, 60,126,241,122,250,216,190,109,111, 63, 8,137,182,168,215, 51, 42, 61,240,116, 70, 9,
-101, 36,149,137,197, 39, 46,157, 58,168,208,191,191, 1,185, 71, 91, 8, 21,238, 96,245,177, 80,166,229, 32,235, 93, 60, 52,191,
-255,134,250, 19,166,225,236,233, 63, 21,181,234, 52, 58, 78, 8,113,167,148,106,191,224,217, 44,143,196,111,180,105,180,105,180,
-249,111,104,179, 52, 46, 2,160, 33, 0,251,188,207, 41,200, 93, 50, 99, 3, 32, 25,185,225,192,236, 1,104, 1,136, 11,253,166,
-232,113,225,107,139, 30, 23,254,156,146,247,217, 46,239,253, 49,128,212, 50, 6,149,142, 0,124,144,187, 54,203, 39, 47,143, 12,
-243, 12, 79, 8, 47,147,101, 57,137,200,214, 78, 61,170,127,251, 58, 87,174, 61,121,110, 98, 99, 38,232,212,182,129,215,163,224,
-247,247, 9,143,232, 9,225, 25,180,238,131,207,231, 15,216,176, 97, 67, 29, 51, 51, 51,112, 28, 7,115,115,115, 36, 37, 37, 65,
-171,213, 34, 35, 35, 3,154,172, 76,232,178, 50, 17, 24, 29,137,150, 94,109,209,167,243,119, 30, 7, 79,255, 53, 0,192,145,210,
-236, 58,213,109, 80,160,100, 45,173,104,253,183, 52, 17,157, 94, 64,186,126,105,224, 14,145, 66,129,142,211,125,191,166, 98, 61,
- 19,139,197, 23,123,247,238,221,101,230,204,153,188,248,248,248, 75,132,144,150,148,210, 50,167, 77,117, 18,233,212,241, 83,187,
- 89, 90, 42, 40,142, 95,253, 11,109, 26, 12,130,137,152,143,148, 76, 29, 8, 1, 66, 95,156, 4, 33, 86, 8, 10,139, 71,235,250,
-102,248,174,147,135,226,244,159,161, 51,241,247,250,160,207,138, 38, 45, 45, 13,137,137,137,208,235,245,208,235,245,232,219,175,
- 31,246,239,219,135,156,156, 28,168, 84, 42,104,181, 90,176, 44, 11, 30,143,135,171,231,142, 35,250,125, 40, 90, 52,111,142,146,
- 36,217,189,207,168,144, 16,242,224,245,235,215, 8, 13, 13, 69, 76, 76, 12,164, 82, 41, 28, 28, 28,176,116,233, 82,104, 52,185,
- 49,202,250,245,235,231, 5, 32,248,107, 31,168,119,192,142, 8,150, 93,208,229,212, 41,187,123,167, 78,113, 15,206,158,141,145,
-100,101,109, 55,228,183, 34, 17,250,174,254,117, 92, 13,185, 92,142,152,168, 13,168, 89, 83,132, 25,211,172,225,247, 75, 50, 0,
- 96,242, 36, 23, 52,110,100,131,204,244, 63, 97, 99, 55, 15,155, 54, 77,169, 58,124,248,186, 31, 0,236, 45,195,244,130,191,254,
-250,171,143,187,187,187,243,179,103,207,136, 88, 44,134, 76, 38,131, 76, 38,131, 84, 42, 69, 98, 98, 34, 34, 34, 34,232,234,213,
-171, 99,145, 59,181, 88, 34,242,166, 7,187, 76,239,226,120,241,245,211,125,173,157,249,239, 3,251, 76,108, 21, 25,244,224, 89,
-214,149,171,247,150, 49,106,105,116,122,204,181, 57,149, 27, 63,179,153, 48,107, 9,126, 91,189, 8,175, 31,222, 78,181,119,205,
-220, 34, 35,154,189, 77, 59, 22,163,146,181, 93, 34,152,176,176, 63, 51,118,120, 31,139,179,246, 1, 99, 47, 8, 72,210,199,228,
-167,107, 16,241, 76, 37,169,214, 96,104,245, 42, 60,237,141, 27, 55,100,109,218,180,129, 90,173, 46, 80, 38, 15, 28, 56,192, 49,
- 12, 83,236,116,180, 78,167,251, 57, 54, 54,214, 81,165, 82,161,115,231,206,147,215,172, 89, 35,207,143, 81,199,178,236, 39, 74,
-214,242,245,251, 47, 79,253,121,203,205,203, 71,126,113, 90,238, 59,178,237,144,137, 43,110,162,132, 56,146, 2, 30,111,194,217,
- 83,187, 29,164,150,122,200,172,190,131, 58, 65,133,215, 59,126,132, 50, 83,141,198,203,151, 0, 16, 67,171,231, 97,123,247,190,
- 16, 90, 59, 97,209,232,145, 78,243,183,239, 28, 7, 96,131,113, 92,111,132, 17, 70, 20,129, 61, 33,228, 28, 0,248,250,250,206,
-243,243,243,123, 65, 8, 57, 71, 41,237,150, 71,116,206, 81, 74,187,229, 95,147,215,103,127,118,156,127,109,209,227,162,159,231,
-206,157, 91,107,213,170, 85, 43,155, 55,111,126, 36, 32, 32,224,125, 89, 68, 11,185,241,159,119, 20, 13,197, 3,228,237, 58,244,
-241,241, 33,133,223, 63, 81,180, 56,238,246,219,247,145,202,239, 58, 52,117, 57,231, 31,252,120,196, 8,159,246, 3,186,183,233,
- 20, 17,149, 18, 90,213,205,193,230,197,139, 96, 51,142,227,110, 27,146, 75, 18,137,164, 91,187,118,237, 4,105,105,105, 48, 49,
- 49, 65, 82, 82, 18, 98, 99, 99,161,211,233,160,206, 72,135, 38, 35, 29,234,244, 52,232, 50,210,240,238,201, 35,212,173, 90, 69,
-146,183, 88,190, 44, 2, 84,172, 82, 85, 88,217, 18,155,154, 66, 98,106, 10, 82,206,105, 67, 66,200,247,150,150,150, 15, 8, 33,
- 11,242, 58,165, 9,115,230,204, 73,230, 56, 14, 43, 86,172, 48, 83, 40, 20,199, 9, 33,146,178,236,152,218,242,187, 53,175, 95,
-155,247, 42, 34, 8,173,234, 13, 67,245,202, 93, 17,145,160, 66,114,150, 14,137,233, 58, 52,110,179, 25, 21,235, 45, 65,133,250,
-126, 8,253,144, 10, 39,103,119, 30, 4,146, 82,131, 63, 71, 71, 71,127,114,124,228,240, 97, 40,149, 74, 84,173, 90, 21,131, 6,
- 13,194,156, 57,115, 48,104,208, 32, 56, 57, 57, 97, 72,255, 30, 88,180,104, 17, 62,126,252, 88, 86, 82, 53,213,171, 87,215,184,
-185,185,105,220,220,220, 52, 58,157, 14,217,217,217, 72, 79, 79, 47,154,223, 83,202,253,148,216,219,207,117,116,116, 12,178,183,
-183,127, 33,149, 74, 47, 60, 39,228,149,218,205,205,190,101,207,158,196,179,127,127,254, 7,153,140,248, 3, 10, 67,108,217, 88,
- 9,125,188,219,117, 17,167,167,237, 6,144, 43, 82,141, 28, 97,139,187,254,181,112,239, 78, 35, 76,154, 80, 21,132, 39, 5,225,
-137,161,204,185,129,166, 77,154,139, 44, 44, 72,183, 50,202,122, 48,128,231, 45, 91,182,116,154, 56,113, 34,145, 72, 36,152, 60,
-121,178,110,244,232,209,111, 6, 13, 26,244,230,250,245,235,172,155,155, 27, 42, 84,168, 64, 42, 84,168,224, 8,224,121,222,111,
- 74,133, 89, 85,178, 92,163, 11,189, 99,225, 46,127,207,194,166, 69,182, 94,210,119,209,154,184,148,101, 91,194,215, 70,188, 86,
- 86,121,253,240,118,202,155,144,179, 92,196,227, 91,201,113,111,178,170, 44,219, 18,190,118,238,111,177,197, 62,212,254,254,224,
- 78,158,243,215, 41,115,148,130,158,221,189,149, 99, 71, 13,168,110,165,168,117, 0,206,223,213,171,232,234, 50,100,209,202, 77,
-186,209,227,166,234,118,253,177,155,102,101,101, 33, 51, 51, 19,155, 54,109, 98,206,158, 61, 27,203,178,236,212,146,198, 64, 0,
-160,215,235, 49,118,236, 88,185,153,153, 25,162,163,163, 11, 20, 81, 0,136, 79, 74, 9,190,247, 56,228,213,244,159,250,121,229,
-104, 52,154,203,183,158,132,122,186,187,185, 16, 66, 75,220,136, 34, 22, 10, 59, 54,106,218,148, 79,105, 58,136,192, 21,239,246,
-173, 70,230,199, 84,100, 38,166,130, 47,148,131,129, 4,122, 78, 12,139,186, 77, 16,246,248, 25,156,109,237, 5, 18,161,208, 24,
- 58,203, 8, 35,254, 71, 81, 26, 23, 41, 76,150, 86,173, 90,181,178,180,243,133,222,181, 69,142, 11,136, 84, 81, 18, 86,248, 51,
- 0,172, 90,181,106, 37,165,180, 91, 64, 64,192, 97, 0, 42, 3,249,194,152,252,247,194, 94,226,203,100, 29,124,181,214,111,230,
-156, 5,176, 52,151,153, 55,105,224,238,112,230,146,255,147,219, 1, 79, 66, 43, 86,176,177,165,122,173,229,175,235,126,115, 33,
- 74,149,161,139,193, 61,108,108,108,160,211,233,240,246,237, 91,196,196,196, 64,167,211,129,201,201,129, 38, 61, 29,234,180, 52,
-176, 57, 89, 16,177, 44, 84, 73,137,176, 54,145, 2,127,239, 72, 44,235, 6,139, 37, 90,249,239, 82, 51, 51, 72, 76,205,192, 19,
- 10,139,157, 86, 44,193,102,195, 38, 77,154, 28, 11, 9, 9,105,218,161, 67,135,101,132, 16,115, 74,233,135,216,216,216,246, 11,
- 23, 46,212,216,219,219, 99,236,216,177, 53, 0, 12, 43,147,100,138,181, 30,110, 14, 53, 80,189,202, 48, 84,172,208, 14,233, 57,
-122, 36,101,234,145,152,174,195,246,205,205,113, 98, 87, 19,220, 61,209, 26, 33,151, 59, 34, 93,239, 0,133,211,247,160,172,182,
- 86,105, 54,175, 94,189,138,165, 75,151, 98,217,178,101, 88,177, 98, 5,150, 45, 91,134,216,216, 88,212,174, 93, 27, 81, 81, 81,
-184,120,241, 34,226,227,227, 97, 99, 99,131, 71,143, 30, 97,253,250,245,184,123,247,174, 33,202,157, 65,215, 16, 66,202, 53,151,
-206, 48,204,240,248,158, 61,235, 36, 88, 89,121, 54,104,208,160,203,228,201,147,171,180,108,217,178,224,124,149, 42, 85, 92,101,
- 50,217, 71, 66,200, 46, 66, 72,253,210,108,113, 64, 3, 91,219,218,208,106, 94,229,149,149, 16,132, 72,209,174, 99, 40, 90,182,
-126, 2,157, 94, 4, 30,145,128,199,147,130, 97, 82, 96,105,233, 4, 74, 73,237, 50,146,184, 48, 41, 41,201,253,218,181,107,188,
-136,136, 8, 72,165, 82, 0,136, 92,188,120,241,111,107,215,174,125,105,109,109,205,158, 59,119, 14,167, 79,159, 70,183,110,221,
-248,163, 71,143,118,175, 80,161,194,182,178,238,123,209,198,184,251,135,214, 93, 28, 40,212, 91,214,151,202, 42, 86, 66,142,226,
-251, 9,109,109,229, 0,112,241,221,187, 44, 59,215,204, 85, 57, 89, 65, 81, 22, 46,217,191,148,181, 16,158,210, 69,220,211, 55,
-175, 30, 28, 58,117, 41, 35, 49, 33, 77,216,160, 78, 45,149,223,210, 89,162,138,149,170,253,186,104,206, 79, 14,177,153,210,244,
-142,147, 47,190, 58,121,233, 81,246,208, 17, 63, 50,163,198, 76, 84, 95,188,116,245, 20,199,113,117, 74,218,113,200,113, 28,226,
-227,227,241,226,197, 11,132,135,135, 35, 41, 41, 9,201,201,201,200,202,202, 42,152,110, 52,201,202, 60,255,219,158,179,129,114,
-153,204,164,105, 29,119,215,135,207, 94, 38,202,101, 50, 19,247, 74,174,213, 9, 89, 82,108, 59,194,178,108, 29,169,137, 12, 0,
- 65,122,200,109,100,167,101, 35, 59, 61, 27, 89,169,217,208,232,248, 80,107,120, 80,105,121,112,243,250, 14,217, 57,106,100,167,
-100,128, 99,217,122,198,238,198, 8, 35,140, 40,165, 95, 62,231,235,235, 59,207,192,203, 13,158,222, 44, 74,188,124,125,125,231,
- 17, 66,206,205,157, 59,183, 22, 12, 88,211, 76, 41,221, 81,244,149,127,174, 76,247, 14,201,201, 97,217,102,182,158,189,167,205,
-254,249,226,225, 63, 54,219,105, 52,202, 40,107, 75, 5,171, 48, 17,219,140, 26,187, 2, 89,217,105,189,178, 83, 13,223, 37,149,
-150,150,134,247,239,223, 67, 38,147, 65, 36, 20,130, 85,169,192,170,114,160, 74, 75, 1, 79,167,129,136,101, 97,101, 34,131,155,
-147, 3, 42,218, 59, 24,100,243,237,141, 43, 5, 11,223, 11, 79, 23,174,110,226, 1,177, 92, 1,177,169, 2,227,207,221, 2, 0,
-136, 68, 34, 96,225, 50, 67, 10,211,198,217,217,249,175, 67,135, 14,137,146,146,146,240,252,249,243, 64, 74,105, 6, 33,196, 20,
- 0, 23, 26, 26,122, 45, 36, 36,164,155,187,187, 59, 0, 84, 45,203, 94,102, 50,143,213, 51, 20,209, 31, 35, 17, 17,243, 12, 86,
-230,149, 33, 52,169,142,196,116, 29, 36,178,202,208,107,254,158,125, 84,103,126,128, 74,103,216,198, 72,173, 86, 11,134, 97,192,
- 48, 12,180, 90, 45,198,140, 25,131,123, 1, 1, 56,114,250, 58,222,191, 11, 67,141, 74, 14,248,225,135,161,104,210,164, 9, 2,
- 2, 2, 74,181, 53,188, 1,209,207,111, 3,193,186, 46, 60,136, 21,214,154,102,115, 46, 63, 52,132,108, 81, 74,137, 1,249,185,
-182, 91,183,110,213,194,114,114,240,226,213, 43,116, 88,188, 24, 0,112,225,194,133, 79,238,101,250,244,233,226,151, 47, 95,142,
-122,242,228,201, 40, 66,200, 58, 74,105,241,139,205, 41,112,254,252,125,252,244,211, 75, 36, 37,229,174,215, 62,122,248,111, 94,
- 26,241, 94,135,206, 62,185, 51, 90, 22, 22, 22, 88,183,174,182, 65,249,201,178, 44,118,236,216, 81, 48, 93, 8, 0, 2,129,160,
-229,244,233,211,123, 23,119,125,181,106,213, 68,101,217,156,222,207, 69,250,252,131,108,130,121,181,138,181,204,108,234, 34, 69,
-255,172,246,179,216,248, 73,211,251,185,108, 88,119, 60, 70, 45, 35,154,189,132,141,174, 32,144,170,247, 25,146,198,119, 23, 55,
-105, 45, 42,142,216,247, 49, 41,115,254,196, 31, 7, 91,155, 89,216,229,236,250,205,207,146,199,231,209,191,158,232,210,107, 85,
-177,182,248,190,217,198,236,159,166, 45,124,166,101,162, 39, 34,250,175,176,210, 92, 92,176, 44,139,184,184, 56, 36, 37, 37, 33,
- 42, 42, 10,201,201,201,121,207,126,242,103, 59, 87,203,217, 32, 66, 21, 21,133, 15,167,118,161,226,208,161,104,188,108, 41, 88,
- 78, 0,149,146,197,186, 22,237,145,150,161,130,134, 35,112,106,216, 2, 63, 94,184, 3, 30,101,129,237, 91,140, 61,137, 17, 70,
-252,143,194, 16,247, 14,249,132,200,207,207,175,219,183,254,255,194,100,203,207,207,239,133,159,159,159,193,255, 85,116,202,176,
-240,113,153,238, 29, 0, 32, 51,233,101,184,181, 91,221,184, 28, 85,142,137,189,157,173,198, 68, 42,225, 50, 50,179,248,207,130,
- 3,117,217,241,111, 95,151,227, 62, 66, 67, 66, 66,106,199,197,197, 33,234,195, 7, 48,170, 28,240, 52, 90, 80,181, 18, 29, 90,
-181,128, 20,128,148, 71, 32,226,116, 16,240,197,200,202,206, 4,128,208, 50, 59, 71,189,254, 51,101,139, 16, 2,177,169, 41,196,
-114, 57,196, 10,211, 79, 20, 46, 67, 20, 27,137, 68,114,232,248,241,227,142,206,206,206, 88,186,116, 41, 92, 92, 92,106,214,169,
- 83, 71,217,186,117,107,153,189,189, 61, 60, 61, 61,209,162, 69, 11, 92,188,120, 17, 0,202,244, 41,165,103,164, 65,175, 35,209,
- 50, 57, 53, 0,119,110,253, 14,173, 74,131, 6, 94,191, 67, 39,168, 8,219, 90, 75,192,189, 61, 0,229,199, 51,185,234,129, 67,
-119,196, 68, 69,130,240,197, 47, 12, 85,158,242, 63, 7, 6, 6,226,240, 25,127, 56,186,121, 32,234,205, 43,188,186,121, 13,247,
-108,173,225,230,225, 89, 48, 13, 84, 98, 26, 89, 8,150,111, 41,112,239, 32, 73, 77, 77,149, 88, 89, 89,105,242,243,206,209,209,
-241,107,200,214,224,153, 51,103, 34, 93, 40, 4,124,124, 32, 10, 15,135, 78,167, 67,179,102,205,208,184,113, 99, 0, 64,179,102,
-205, 32, 16, 8, 80,183,110, 93, 56, 57, 57, 97,203,150, 45,131, 81,194,174, 62, 30,193,115,134, 73,169, 89,165, 74,149, 2,162,
-181,111,127, 18,158, 61,233, 8, 2, 49, 54,253,246,183, 55, 7, 87, 87, 87,124,140, 15, 7, 33, 52,164,140, 52, 46,115,112,112,
- 88,232,232,232, 88,101,237,218,181,124,169, 84,138,113,227,198, 85,206,206,206,174,152, 39, 37, 99,238,220,185,185, 42,213,162,
- 69, 88,188,120, 49, 52, 26,141,178, 36, 99,251,215,215,117, 74, 76,229, 70,217, 59, 56,247,242,182,169, 88,167, 93,167, 14,168,
-236,222, 14,237, 58, 69, 1,192, 74, 43, 65,100,255,213, 11,106,159,178,169, 96,181,251,202,165,171,139, 90,121,181,155,239, 59,
-214,114,249,170,237,105,101,174,121,204,248,176, 55,235,181,120,192,250,205,219,246,175,255,121,238, 20,105, 84,146, 54, 45, 54,
-141,102, 43, 36, 2, 69, 85,123,162,152, 52,123,217,251,184,184,240, 25,136,190, 84,230, 78, 75,142,227, 16, 30, 30, 94,176,166,
- 79,173, 86, 35, 39, 39, 7,209,209,209, 5,117, 70, 37, 55,235, 60,113, 68,247,122, 57, 42,149,242, 97,240,155,168, 5,147,135,
- 52,207, 81,169,148,111, 34,162,194, 40,221, 88, 44, 27,227,241,120,193,202, 44,101, 7,101,186, 26, 73,207, 95,195,165,189, 27,
-244, 12,129,150, 97,145,148,146, 5, 13, 3,176, 60, 33,106,245,255, 1, 44, 17, 32, 57, 46, 22, 60, 62, 63,208,216,221, 24, 97,
-196,255, 44,202,116,239, 64, 8, 57,215,188,121,243, 35,133, 85,167,252,207, 0, 52, 0, 74, 91,202,147, 84,152, 76,229, 79, 39,
-150,244, 63, 69,236, 26, 58,192,252,108,141, 86,153,238, 29,242,126, 72,234,213,113,115, 90,189,104,136, 11,199, 48, 53, 18,147,
- 19, 24,129, 64, 34,172, 96,174,138, 47, 79, 14,106, 52,154,115,215,174, 93,235,217,177, 99, 71,201,155,224, 64,104, 51, 50,160,
-205, 72,135,144, 99, 96, 37,107, 4,158, 78, 3,162,213,194,185, 38, 7,117,150, 12,254,247, 66,244, 26,141,230,156,161, 68,139,
-199,231,127,186, 46, 75,161,128,196,212, 12, 18,133,162,232,212, 34, 41, 35,163, 76,122,244,232,209,190, 89,179,102,160,148, 98,
-199,142, 29,208,233,116, 98,157, 78, 7,173, 86, 11,157, 78,135,204,204, 76,236,223,191, 31, 91,183,110,189, 7, 96, 79,153,157,
- 25,163,189,118,249,234,141, 38, 35,135,116, 19, 94, 56,183, 14,140,150,133,138,184, 32, 39, 71,143,108,173, 9, 88,235,161, 64,
-194,121,240, 5, 82, 52,175, 91, 25,103,254, 60,169, 3,163,185,110, 32, 11,255, 68, 21,138,142,138, 68,204,187, 48, 40, 50, 63,
-194,214,204, 4,202,240, 48, 52,248, 97,216, 23,169, 19, 21, 42, 84, 0,199,113,240,246,246, 46, 88, 92,253,165,100, 43, 37, 37,
- 5,103,207,158, 69,179,102,205,224,229,229,133,216,216, 88,132,135,135,163,107,215,174, 5,215, 4, 6, 6,226,217,179,103,168,
- 90,181,116,145, 48, 57, 85,127, 33, 38,250,121,191,239,191,255, 94,244,224,193, 3, 80, 74,225,238,110, 6, 51, 83, 57, 8, 79,
- 2, 15, 15, 59, 0,185, 99,128,182,109,219, 34, 51, 51,156, 73, 75,163, 23,202,200,199, 67,132,144,211, 90,173,246,109,155, 54,
-109,156,222,189,123,135,105,211,166, 9,142, 30, 61,154, 47, 37,195,215,247,211,205, 20, 42, 85,201, 83,247, 53,234,212,156, 85,
-153,177,244,146,202, 42, 86, 50,179,169,139,202,238,237, 0, 0, 29,187,141, 68,229,106,174,200, 76, 14,170,164, 86, 69,246, 18,
- 9,210, 44,131, 54,197,190,148,249,212, 30,161, 78,188,245, 6,128, 33, 14,128,169,234,205,209,132, 40,225,208, 99,167,255,186,
- 56,182,107,183, 30, 66, 61,203, 48,181,221,132, 22,199, 79,157, 79,140,253, 16,181, 17, 81,151, 66,254,214,255, 74, 85,241,216,
-204,204, 76,200,229,114,132,132,132,104,124,124,124, 36, 60, 30, 15,111,223,190, 45, 32, 90,118, 54, 86,158, 45, 27,215,174,185,
-124,253,254,203,114,137, 68,210,169,109, 35,143,151,111, 62,196, 80, 74, 34, 75, 84, 91,245,250,171,193,207, 3,189,109,157,170,
-241,195,111, 61,128,117,235,174,208,104,120, 80,105, 57,104, 24,128,225,139,224, 88,191, 41, 44,170,122,128, 2,120,252,224,158,
- 94,163,215, 95, 54,246, 53, 70, 24,241, 63,173,106,209,210, 72, 82,222,231, 84, 0,145,126,126,126,201,133,212,166, 36, 0,129,
- 0,234,229, 93,151, 84,228,119, 73,200,221, 61,216,184,144,157,164, 66,132,171,240,103,109,145,107, 12, 26, 0, 22, 94,163, 85,
- 44,209, 42,101, 75, 37,108,108,108,236, 26, 52,104, 84,117,231, 31,199, 64, 41,197,235,103,107,144,150,248, 10, 11, 87,222,175,
-234,226,226,226, 21, 19, 19,227,111, 72, 34, 88,150, 61,186,123,247,238, 25, 77, 27, 54,104, 80,201,197, 5,129,145, 17, 16, 81,
- 22, 34,150, 5, 79,167,129,128,213,194,165, 54, 11, 30, 81, 32, 46, 46, 3,171, 14, 29, 11, 97, 89,246,104, 89,118,107,118,237,
-129,165, 49, 25, 32,132, 96,109,243,218, 16,155, 42, 32,146, 43, 48,254,175, 27, 5,228,234,220,210,185, 16, 43, 20,168,218,180,
-108,135,240,148, 82,165,169,169,233,147,224,224,224,198,181,107,215,198,140, 25, 51, 16, 25, 25, 9,142,227,144,144,144,160,142,
-143,143,143, 77, 74, 74,138, 4,112, 10,192, 78, 67, 60,143,139, 52,234, 13,231, 78,236,155,216,188,149,151,205,247,189,182,226,
-244,159,211,145,158,145, 9, 37, 35, 67,142,154, 65,142,134, 15, 43,235, 58,104, 90,183, 46,226, 98, 19,241,226,193,229,108,129,
- 70,185,166, 60, 21,148, 16,130,103,207,158,161,138,147, 41,194,238,248,195,198, 68,136,122, 78, 14,112,106,217,170,192,191, 84,
-105, 16,242,193, 12, 30, 60,184,192, 51,252,119,223,125, 23, 49,116,232, 80,199,233,211,167,227,143, 63,254,192,189,123,247, 62,
- 91,160,237,229,229,133,219,183,111, 47, 1,176,168, 44, 81, 79,171,213,162,102,205,154,120,252,248, 49,174, 93,187,134,118,237,
-218,193,203,203, 11, 65, 65, 65,184,114,229, 10,158, 61,123, 6, 66, 8,172,173,173,161,207, 37,207,250,146,140,233,116, 56,254,
-203,175,187,231,173, 95,191,181,214,144, 33, 67,112,226,196, 17,140, 28, 81, 3,132, 39, 1, 33, 18,244,232, 94, 3, 75,151, 61,
- 70,211,166,109, 97, 99, 35,196,250,117,103,222,171, 84,236,126, 3,178,113,249,149, 43, 87,156,212,106, 53,210,211,211,169, 66,
-161, 32, 41, 41,185, 59, 90,139, 83,180,148, 74,165,180, 36, 67,193, 79, 67,215,164,103,209, 52,154,253,172, 87, 42,243,172, 78,
-187, 78,209,232,216,109, 4,174,158,219,131, 27,151,175,193, 74, 16, 25, 1,121,214,197,228,136,228,204,248, 28,247,109, 30, 13,
- 71,243, 99,114, 46,111,155,252,189, 37,223,209,145, 59,238,187, 53, 35,189,148, 58, 74, 9, 33, 36,245,229,129,191, 78, 81,244,
-104,209,188,105,181,218,174,142,226,180,228, 68,250,231,153,139, 33,186,136, 19,103,243, 9, 86, 89, 81, 22, 40,165, 75,125,125,
-125,127,206,251,188,119,193,130, 5,163, 87,173, 90,101,251,241,227,199,130, 53, 90,137,201,169, 55, 90,248, 76, 98, 83,210, 51,
-180,187,215,207,238, 43,147, 74,196, 11, 86,237,190,165,231,227, 65, 73,118, 25,142,219,210,127,218,194, 41,111, 94, 63,115,174,
- 40, 19,227,204,236, 69, 8,188,114, 19,122,158, 8, 63, 93,123, 8,141,142, 69,122,114, 10,174,143,154, 0,133,189, 37,182,222,
- 58,145,192,113,220,239,198,174,198, 8, 35,254,119, 81, 10, 23, 41,206,199, 94,130, 1,215, 61, 54,192,206, 87,163,168,138, 85,
- 24, 6,109,193, 75, 78, 78, 78,188,125,251, 33,110,157, 91, 14,255,115,203,241,226, 89, 32,226, 98,181,136, 77, 80,195,204,204,
-236,126, 41, 29,127,135,162,157,131, 82,169,236,189, 96,225,207, 31,165, 50, 19,180,105,223, 30, 14,182,118, 48, 17, 9,193,103,
- 56,240,137, 16,217, 73, 22, 8, 11, 82, 98,206,238, 3,137,217, 74,101,239,162,157, 68, 81,155,133, 73, 6, 33, 4, 18, 51, 83,
-136, 21,166,144,152,154,125, 50,141, 40, 53, 51,131,212,212, 12, 2,177,184,184, 69,243,159,217,204,206,206,238,211,183,111,223,
-180,140,140, 12,140, 30, 61, 26,254,254,254,207, 46, 95,190,108, 22, 24, 24, 40, 75, 76, 76,172, 70, 41,253,142, 82,186,189, 36,
-146, 85,212,102,106,234,187, 44,202,104, 6,248,253, 60, 85,165,102,172,209,111,216, 81,200,121,209, 96, 88, 14, 20,128,147,149,
- 24, 45, 59, 44, 67,162,182, 5,142,110, 91,161,228,116,234, 33,133,125,104, 21,181, 73, 41,165,246,246,246,159,229,193,181,107,
-215,208,175,111, 31,116,234,213, 19,182,149,170,192,174, 67, 87,116, 26,253, 19,182,109,219, 6, 30,143, 7, 27, 27,155, 79, 20,
-142,194, 54,247, 62,163,194, 67, 65,148, 28, 10,162,100,207, 83, 42, 0,240,195,129, 3, 7,126,169, 87,175,222,205,123,247,238,
-173, 1, 48,160,240,127, 21, 74,203,226,194,106, 86, 9,101, 52,127,202,148, 41,170, 55,111,222, 64, 46,151,131, 97, 24,220,187,
-119, 15, 91,183,110,197,218,181,107,241,236,217, 51, 88, 91, 91,163,106,213,170,208,104, 52,120,252,248,177, 10,192,252, 82,234,
- 18,151,148,196,244,217,180,105, 85, 74,183,110,173,177,123,247,111,112,112,104, 1,161,192, 1, 2,161, 45,228,138,154,216,181,
-243, 23,116,233,210, 0,127,157, 57,150,154,156,194,244, 41,234,197,189,132,116,170, 31, 62,124,136,109,219,182,161,111,223,190,
-177,253,250,245, 99, 51, 50, 50, 10, 20,173,252,104,236,139,243,214,152,105, 52, 26, 73, 73, 54, 71,207, 14,142,157,181, 60,100,
-105,194,199,216,102,254, 55,239, 15,190,113,249, 26,222,191,185,129, 27,151,175,225,206,141, 0,223,132,143,177,205, 26, 52,169,
- 46,234, 61,122,226,172,125, 39, 79,240, 21,102,142,216,119,242, 4,127,208,164,169, 43, 26,117,106, 55,191,172, 58,159, 87,142,
- 52, 59, 49, 97,238,202, 53,155,179, 25,157,154,183,122,227,150, 56, 85, 82,252,124,228,111,197, 44, 65,205, 42,108, 83,169, 84,
-110, 87,169, 84, 78, 42,149,202, 73,173, 86,207,143,140,140,108, 51, 99,198,140, 36,150,101, 11,212,210,196, 23,103,238,135,222,
-217,179,210,206,198, 82,214,162,113,173, 26,235,182,255,121, 43, 42, 58,225, 96,190, 15,173, 18,202, 72,157,173, 82,247,233,217,
-123,104, 78,122,154, 6,205,167,250,130,147, 42,160, 97, 1, 61,229,131, 33, 2, 4, 47, 95, 7,153,149, 41, 14, 69, 60, 85,102,
-232,117,125, 10,251,208, 42,227,222,191, 24, 70,155, 70,155, 70,155,255,158, 54,255,147, 65, 8,113, 44, 28,235, 48,207,175,214,
-223,138, 86, 89, 91, 42,157,157,157,219,124,223,163, 3,218,118, 91, 0, 74, 41, 94, 61,253, 21,105, 73,175,225,236, 32, 65,120,
- 84,102,115, 0,254,134, 38,134, 82, 26, 69, 8,105, 54,101,254,130,147,253,190,107,239, 81,187, 82, 37, 73,197,138,110,144,219,
-217, 33, 57, 57, 9,119, 31,188,212,175, 56,124, 60, 36,143,100, 25, 18,130, 7, 28,199,229, 46,114, 7,208,126,202, 28, 16, 62,
- 31,200,115,227,144,223, 49, 86,106,220, 2, 68, 32, 0, 75, 57,104, 52, 26,106, 64, 58, 99, 8, 33,125,134,252, 31,123,215, 29,
- 30, 85,241,181,223,185,119,123,205,166,119, 2, 4, 82,232,132, 46,189, 8, 72,232, 82, 68,122, 71, 44,136,130,160,160,116,148,
- 31, 10, 34, 42, 32, 29, 81,169, 42,189, 74,232, 29,169,161, 5, 2,233,109,211,147,173,247,206,247, 7,217,117, 9, 41,187, 33,
- 40,250,237,121,158,155,205,221,187,251,238,244,121,231,204,153,115, 6, 15, 62,178,123,247,110,166, 75,151, 46, 13,119,238,220,
-201, 63, 79, 69,228,165,220,249, 67,233, 29,218,125,254,244,113,191, 52,239,208, 91, 29, 82,167,177,168,113, 85, 22, 70, 19, 65,
- 98,194, 35,236,222,113,222,120,243,220,129, 28,106,214, 13,204, 79, 43, 59, 4,143,209,104,124, 92,179,102, 77,239, 21, 43, 86,
- 88,141,225, 57,142, 67,122,122, 58,206,156, 57,131,122, 77,154,161,214,136, 81, 72, 75, 75,195,178,101,203, 80,165, 74, 21,244,
-232,209, 3, 90,173, 22,102,179,249,177,157,117,197, 1, 56, 80,116, 61, 69,104,139, 20, 42,180,188,109,195, 26, 53,106,136,117,
- 58, 93, 67, 95, 95, 95,150, 16,178,212, 96, 48, 12,159, 62,125,186,239,130, 5, 11, 16, 22, 22,134,244,244,116, 40, 20, 10,132,
-132,132, 32, 45, 45, 13,231,207,159,231, 10, 10, 10, 86, 0,152, 67, 41, 77, 43, 39,125,247, 8, 33,205,223,125,247,173, 29, 95,
-124, 62, 46, 68,167,111, 39,118,115,107, 5, 74,205, 72, 75,139, 69,110,206, 41,227,220, 57,235,238,167,164,154,250, 82, 74,239,
-218, 89, 77,159,189,253,246,219, 64, 81, 8,158,152,152,152, 43,181,106,213, 10, 41, 77,163,101,143,124,181, 53, 94, 7,224,167,
-255,189,255,202,251, 57,233, 87, 67,220, 4,177, 15,155,215,229,151,125,181, 53, 94, 55,251,125,205,188,244,216,168, 59, 73,249,
- 7, 86,108,216,177,157, 29,214,231,117, 46, 64,121,119,154,212,139,110,235,208,163,220,250,161, 13, 27, 54, 12, 36, 68, 91, 61,
- 53,227,246,197,145,163,199, 13,112, 17, 21,238,109, 16,144, 81,131,169, 18, 33,189,124,249,242, 67,123, 99,134, 22,195,189, 67,
- 8,105, 51,125,250,244, 3,148,210,167,108, 19, 82,211,181, 71, 91,116,127,155,102,101,101, 95, 73,189,249,219, 53, 59,176,206,
- 19, 66, 58,214,173, 23,177,253,139, 5,159,123,183,123,239, 3,193,157, 63,142, 1,156, 9,143,162,142,129,147, 24,248,175, 78,
- 31, 74,201, 54, 26,251, 56,189,194, 59,197, 41, 78,109, 86, 89, 92,228,101, 79,126,113, 99,120, 20,197, 62, 20,216,243,237,248,
-248,248,168, 26,193, 1, 7,239,220,105,211,185, 74,128, 39, 0, 32,230, 97, 34, 18, 82,244, 7,237,221, 54, 44,129,108, 53,222,
-180,107,239, 64,137, 68,210,157, 20,185,112,160, 21, 8, 42,109, 54,155,227,171, 85,171, 86,202,211,146, 93, 61,113, 28,151, 98,
-103, 58,143, 17, 66,134,212,168, 81,227,243, 71,143, 30,237,160,148,230, 63,111, 77,228,165,220,249,195,205,173, 70,240,233,195,
-219, 39,157, 61,182,187, 19, 53, 27,234, 1, 0, 17,136, 29, 10, 42,157,151,151, 55,110,194,132, 9, 43,133, 66, 97, 21, 20,217,
-156, 89,108,176, 56,142, 99,141, 70,163,148,227, 56, 22, 0, 97, 24,198, 44, 20, 10,117, 59,118,236, 48,155,205,230,199,122,189,
-126,220,115,168, 71, 29,234, 0,123,247,238,173,234,234,234,218,153, 16,210,143, 82, 26,158,155,155,171,159, 57,115,230,233,173,
- 91,183,230, 84,171, 86,173,107,100,100, 36,113,115,115,195,133, 11, 23,104, 70, 70,198, 54, 0,159, 80, 74, 99, 28, 72, 79, 12,
- 33,164,193,184,241,223,191,225,230,182, 50,146, 82, 52, 0, 5, 33, 12,174,101,103,243,123, 11, 10,184, 31,139, 8,163,189,120,
-230, 98,154,180,185,215,175, 95, 95, 7, 64, 88,146,141,150, 67, 34,207,251, 93, 87, 24,251, 58, 81, 22,236,252,234,235,120, 29,
- 0,124,182, 36, 43, 27,192,234,119,251,184,241,183, 46,173, 94,228,175,190, 59,245,235,157,218,181,246,192, 69, 68, 68, 4, 51,
- 12, 51, 16, 64, 93, 47, 73, 86, 77, 79,113, 54, 71, 8,109, 79, 8,227, 1,224,106,237,218,181,119, 3,136,175, 96, 61,223, 1,
- 16, 84,252,253,212, 27,191,157, 1,112,198, 65,172,243,132,144,154,239,127, 56,121,162, 88, 40,124, 21, 28, 87,127,238,175, 91,
-169, 51,168,180, 83,156,226,148,255,152, 86,107,108, 73,239, 11,236, 5,184, 31, 19,223, 5, 0, 66, 66, 66,232,189,123,247, 28,
-158,112, 75, 90,141,227,137,199,247,159,159, 7, 39, 61, 61,189,241,139, 44, 56, 74,233, 79, 0,126,170, 76,204, 34, 34, 53,167,
-232,170,104,186,174, 1,104,246, 79, 54, 42,139, 86, 11, 79,130, 48,151, 40,157, 59,119,126,100, 52, 26, 15, 3,136, 35,132,104,
- 0,104,141, 70,227, 1,147,201,148, 66, 8,105,252,213, 87, 95, 89, 60,223,207,165,148, 94,172, 96, 58,120, 0,155,139,174,202,
-206,227,102, 63, 63,191,201,238,238,238, 53,116, 58,157, 88,167,211,137,108,215, 0, 50,153, 44,205, 94, 44,141,138,172, 23, 9,
- 50,221, 53, 42,242, 12,145,114,243,199,246,194,252,235, 97,110,254,216,110, 47,222,229,203,151, 99, 26, 54,108,184,137, 97,152,
-106,148, 82,111,128,186, 80,138, 52, 74,105,186, 64, 32, 72,184,121,243,102,194,203, 50, 0, 21, 17,169,197, 69,151, 83,156,226,
- 20,167,252,167,164, 44, 27, 45,129,163, 96,119,239,222, 37,206, 34,117,138, 45,217, 42,235,121,108,108,172, 30,192,233,162,171,
-248,119, 47, 2,232,241,178,231, 49, 49, 49, 49,162, 50,112, 70, 79,189,150, 0, 96, 82,227, 18, 66, 59,127,182, 76,155, 11, 96,
- 74,251,158,142, 97, 94,185,114,229, 49,128,199,206,150,232, 20,167, 56,197, 41,255,156,148,164,205,178, 59,214,161, 83,156,226,
- 20,167, 56,197, 41, 78,113,138, 83, 74, 23, 11,169, 42,201,143, 22, 1,208,169,148, 47,217,237,186,190, 34,167, 15,202,195,119,
- 98, 58, 49,157,152, 78, 76, 39,166, 19,211,137,249,223,195,252,175, 74, 73, 36, 11, 0, 72, 5, 14, 37, 57,242,163,157, 42,187,
-192,157,152, 78, 76, 39,166, 19,211,137,233,196,116, 98,254,247, 48,255,237, 36,171, 4,194,233,220, 58,116,138, 83,156,242,255,
- 91,182,109,219,102, 87, 80,209, 55,166,174,238,174, 84,186,206,204,203,201,254,252,231,197, 35,119, 90,222,239,215,175, 31,231,
- 44, 69,167, 56,197, 41, 21, 50,134, 15, 14, 14,172,205,112,124, 75, 74, 25,150, 50,212, 68,114, 10,127,185,175,213, 62,229,118,
-160, 74,149, 42, 26, 33,131, 30,132, 82, 5, 33, 60,199,179,204,169,152,152,184,155, 14, 48, 64,177,171,171,235,219, 34,145,168,
-147,193, 96, 8, 96, 24, 38, 94,175,215, 31, 46, 40, 40, 88, 94,220,113,225, 63, 41, 97, 97, 97,131,142, 29, 59,166,105,213,170,
-149, 94, 38,147,153, 11, 11, 11, 5,251,247,239,151,188,246,218,107, 89,247,238,221,171,208,137, 68,127,127,255, 14,171, 87,175,
-174,222,165, 75, 23,212,172, 89, 51,127,224,192,129,162, 22, 45, 90,136, 70,143, 30,253, 32, 33, 33,225,168,131, 76,186, 54, 33,
-100, 35, 33,132,229,121,126,104,209,137,196, 23,193,216, 25,134, 97,198, 17, 66,250, 80, 74,131, 9, 33, 49,148,210,157, 60,207,
-175,180,199, 59,126, 9,120,175, 3,232,198, 48, 76, 4, 0,240, 60,127, 25,192, 94, 74,233,246,231, 72,227, 11,195,148,203,229,
- 13, 1,160,160,160,224, 74,101, 97, 18, 66, 26, 22,117,210, 10, 97, 18, 66, 70,200,100,178, 49, 0, 80, 88, 88,248, 3,165,116,
-157,195,137, 89, 89,139, 70,204,142, 6, 0, 92,254, 44, 28, 0,224,208,253,184, 91,196,145,223, 42, 9,207, 33,140,103,203,160,
-219,224,193,131, 23,252,248,227,143,159, 81, 74,127,123, 17,109,223,199, 39,112,249,151, 95,175,242,155,244,246,168,207,241, 36,
- 34, 68,153, 82,135,144, 87,197, 44,219,211,192,113, 39,110, 2, 91, 1, 8,220,220,220, 6,137,197,226, 54, 6,131,193, 87, 32,
- 16, 36, 25, 12,134,227,217,217,217, 63, 81, 74, 77,207,157,192,104,226,106, 44,128, 15,225,255,138,243, 70, 25,232, 69,114, 36,
- 35,156,102,190, 4,171,125, 6, 79,252,237,152, 0,172,169,136, 59, 15,150,101, 39,249,249,249,245,201,201,201, 41, 96, 89,150,
- 62,129, 37, 79,254, 0, 96, 24,134,240, 60,159,154,145,145, 49,244,255,145, 22, 37,168,168, 92,171, 22,189, 37, 4,224, 13,224,
- 42,128, 73,148,210, 60, 39, 5,250,219,234,162,184, 70,107, 15,165, 52,201, 74,180,108,220,221,183,139,140,140,140, 10, 14, 14,
-172,221,175,119,223, 5,227,199, 77, 32, 44,203,224,250,141, 27,130, 55,135,142,232,236,230,230,230,175,212,235,107,129, 16,190,
- 64, 42,189,110, 50, 25, 19,182,254,244,163, 42, 60, 44,140,227, 56, 30, 43, 86,126,255, 90,112,112,224,199,246,144, 45, 66, 72,
-168,143,143,207,198,105,211,166,249,244,236,217,147,245,241,241, 65,108,108,172,230,231,159,127, 14,251,230,155,111, 6, 16, 66,
-134, 22,249,242,113, 52,179,173,125,220,152,206, 42, 25,233,136, 92, 14,185, 38, 28, 73, 46,196, 65, 74,233,137,138, 22, 96, 65,
- 65,193, 59, 5, 5, 5,205,154, 52,105, 66,215,172, 89, 67,134, 15, 31, 78, 9, 33,164,176,176,112, 61, 42,232,250, 65,161, 80,
-124,219,165, 75,151,144,144,144,144,152,251,247,239,119,219,178,101,203,222, 97,195,134, 5, 43, 20,138,187, 0, 66, 29,132, 91,
-151,145,145,209,160,176,176, 16, 1, 1, 1,107, 0, 52,122, 1,141,136,176, 44,187,211,223,223,159, 46, 90,180,232,183, 6, 13,
- 26,120,107,181, 90,243,148, 41, 83, 58,157, 61,123,246, 53, 66, 72, 79,123,201, 22, 33,196,149, 16,178,210,199,199,199,227,243,
-207, 63,191,215,184,113,227,171, 18,137, 68,124,247,238, 93,249,228,201,147,223,103, 24,102, 0,165,116, 28,165,246, 79, 16, 22,
- 76,127,127,127,143, 5, 11, 22,196, 70, 68, 68, 92, 23,137, 68,162,187,119,239, 42, 62,250,232,163, 73, 21,197,100, 24,102, 69,
-139, 22, 45, 92, 63,251,236,179, 91, 97, 97, 97,167, 89,150, 21,199,199,199, 51,179,102,205,122,155,101,217,254, 60,207,143,175,
- 72, 58,189,189,189, 93,103,205,154,117,171, 69,139, 22,103, 69, 34,145,232,246,237,219,204,180,105,211,222,118, 36,157,238,238,
-238,237,221,221,221, 87, 37, 39, 39, 11, 0,192,215,215,183,105,141, 26, 53,190,177,141,105,105, 49, 13, 48,153, 76,185, 58,157,
-110,112, 70, 70, 70,137,142,112,135, 79, 95,214, 3, 0,190, 49, 90,238,159,188,150,119, 15,172,216,101, 79,190, 35,124, 9, 5,
-128, 65, 31, 44,238,253,228,245,201,251, 95,230, 3, 2,129,128,223,232, 75,232,229, 36,251, 93,198, 16, 66,122,117,232,208, 97,
-214,209,163, 71,191,111,215,174,221, 71,155, 54,109,242,138,139,139,251,130, 16, 18,248,198, 27,111, 12, 63,114,228,200,194,180,
-180,180,109,149,213,254,197, 34,137,132, 48, 4, 50,169, 92,109,207,231,133, 12,211,253,116,175, 94, 99,126,184,125, 59,226,155,
-232,232,234,249,190,190,205,222,125,247, 93,239,190,125,251, 50,129,129,129,184,119,239,158,251,166, 77,155,106,253,240,195, 15,
-125, 8, 33,239, 81, 74, 31, 61, 15,201,202,207, 66, 61,189, 1, 17,148, 66,243, 87, 25, 33, 75, 98,196,101, 69, 52,185,246, 18,
-144,173, 79,215,173, 91,247,217,189,123,247,176,112,225, 66, 0, 88,238,224,248, 51,185, 79,159, 62,145, 59,118,236,144,109,221,
-186, 85,214,164, 73, 19,248,248,248,160,104, 49,101,117, 76, 93,189,122,245,255, 87,147,187,187,187,251,154, 7, 15, 30,180, 87,
- 40, 20, 79,189, 31, 19, 19,211, 48, 36, 36, 36, 27,192, 7,142, 18, 55, 79, 79,207,205, 60,207,235, 51, 50, 50, 70, 1,128, 74,
-165,250, 81,161, 80,184, 38, 37, 37,125,252,162, 22, 50, 86,102, 82,140,139,252,155, 53, 90, 37, 58, 44,181,141,152,205,112,124,
-203,241,227, 38,144,129,131,222, 72,190, 23,243,128, 23, 8,197,131,246, 31, 56, 32,175, 93,187, 54,163, 95,190, 28,230,180, 52,
-152,222,127,255,149,195,135, 15,155,250, 15, 26, 82, 40,100,201,186,224,234,213,228,191,252,244,179,207,142,237,219, 90, 2,184,
- 89,158, 38,203,199,199,103,227,177, 99,199,252,171, 87,175,142,172,172, 44,196,198,198, 34, 63, 63, 31, 3, 6, 12, 16,182,108,
-217,210,191, 95,191,126, 27, 9, 33,173,236,213,108, 17, 66,188,107, 6, 8,118,127,249,233,128,208,215, 58,183, 84,248, 7,214,
- 0, 77,214, 33,238,126,116,147,221,199,206,190, 27,162, 97,238,220,203,166,221, 41,165, 41,142, 22, 96,122,122,250,212, 62,125,
-250,108,111,223,190,189,167, 68, 34,129,159,159, 31,233,217,179,103,106, 98, 98,226,236,231, 32, 46, 40, 90,133,113,182,175,197,
-195, 3,217, 41, 1,174,174,174,112,117,117, 5, 0,255,231, 93,121,106, 52,154,229, 42,149,170, 95, 78, 78, 78, 33,195, 48,148,
- 16, 66, 21, 10,133,204,213,213,245,207, 91,209,119,252,244,122,125,205,197, 75,127,248,186, 67,235, 6,234, 67,135, 14,161,111,
-223,190,244,224,193,131,227, 0,124,111,231,111,172,236,211,167, 79,193,204,153, 51,117,247, 98, 98,253,111,221,137, 33, 10,169,
-152,247,240,240, 16,158, 63,127, 94,176,100,201, 18,233,172, 89,179, 86, 2,232,231, 64,186, 87,190,241,198, 27,198, 15, 63,252,
- 48,233,246,189, 7, 94,215,110,221,163, 74,169,208,236,225,225,206,158, 61,123,150,175, 8, 38,195, 48, 43,166, 78,157,154, 51,
-110,220,184,204, 12,109,182, 79,102, 78, 30,149, 8, 89,147,143,143,143,224,183,223,126,211,111,222,188,153, 25, 51,102,204, 10,
- 0,253, 29, 40,226, 21, 61,123,246,204,157, 54,109, 90,214,221,152,135, 62,215,110,222,129, 92, 34, 52,121,123,123,177, 23, 46,
- 92, 48, 46, 94,188,152,153, 55,111,158, 93,233, 84, 40, 20, 27,182,108,217, 34,248,237,183, 39, 99,223,153, 51,103,152,224,224,
- 96,185,237,103, 10,117,122, 48, 4, 72, 79, 79,151,183,104,209, 98, 3,128,128,103, 72,208,236,104, 12,159, 14,188,243,206, 59,
- 73,142,182,151, 8,223,119,113,185, 28,247,183,252,138, 90,116,208, 7,139,123, 11, 4, 2,126,204,152, 49,201,197,159,235,116,
- 58, 2,160,103,132, 3,100,171, 91,183,110,159,236,217,179,167,198,166, 77,155,190,218,188,121,179, 1, 0,164, 82,169,199,207,
- 63,255,188,112,192,128, 1, 24, 48, 96,192, 76, 0,149, 70,180, 56,202, 25, 1, 64, 34,149, 72,162,163,163, 73,120,120,120,153,
-198,173, 70,158,191,248,195,237,219,141,223, 10, 15,111,162,229,249,154,162,215, 94,203,155, 60,121,114,122, 78, 78, 14, 98, 99,
- 99, 97, 52, 26, 49,124,248,112,182, 93,187,118,126, 3, 6, 12, 88, 70, 8,121,157, 82,106,180, 67,171,179,216,223,223,127,108,
-118,118,118,158, 69,171, 83,171,154, 74,208,166,161, 89, 82,191,166, 73, 44, 98,205,162, 30,239,243,228,224,114,146, 31, 94, 29,
- 39, 1, 64, 84,128, 52, 17,240,220, 68,203, 37,144, 84,231,132,152,231, 89, 85,254,106, 90, 76,193,103,121,143,232,242,178, 52,
-182, 10,133,162,119,126,126,254,182,162,201, 57,180,123,247,238, 56,123,246, 44, 0,180, 4,176,156, 16,210,129, 97,152, 55,121,
-158, 95, 77, 41, 45, 43,148,219,187,189,122,245,122,117,199,142, 29, 42, 0,216,182,109, 27, 76, 38, 19,130,131,131, 33, 18,137,
- 32, 22,139, 33, 20, 10,173,209, 65,254, 63, 9,195, 48,146,171, 87,175,194,207,207,175,120, 59, 1,128, 54, 21,128,156, 25, 19,
- 19,211,226,210,165, 75,104,223,190,253,204,122,245,234,117,141,138,138,242,201,200,200, 64,251,246,237,151, 1,248,237, 69,231,
-201,150,139,252,103,234,169, 24,147,108,247,132,153, 49, 44,203, 50,120, 16, 19,107,106,223,190,227,176,199,143, 31, 43,155, 53,
-107,198, 8,133, 66,228, 31, 61, 10,221,133, 11, 80, 42,149,232,211,167,143,240,248,241,227,106,181, 82, 61,250,225,131,135,185,
- 44,203,128, 82,166, 92,155, 7, 87, 87,215,183, 63,254,248, 99,159,144,144, 16,152,205,102,171, 71,115,179,217,140,184,184, 56,
- 40,149, 74, 12, 29, 58,212, 75, 46,151,191,109,231, 36, 91, 53, 52,216,235,242,177,189, 43, 27, 77, 30,223, 77, 17, 42, 63, 4,
- 69,220,123, 80,110,123, 11,181, 18,247, 99, 90,239,102,138,131,223,206,140,168,225,231,118,153, 16, 82,213,209, 66,210,233,116,
- 39,175, 95,191, 62, 58, 42, 42,138, 7,128, 63,254,248,131,222,186,117,107,220,243,172, 66,121,158, 71, 86, 86, 22,120,158,103,
-139,238, 45,175,255,168,122, 95,173, 86,175,232,218,181,235, 27,143, 30, 61,146,237,219,183,207,253,241,227,199, 30, 15, 31, 62,
-244, 12, 13, 13, 21, 44, 92,184,112,143, 78,111,100, 77, 28, 53,152, 57, 83,110,210,141, 27, 49,153, 41, 41,151,215,174, 93, 91,
- 72, 8,233, 99,231,111,188,238,235,235,235, 62,125,250,116, 16,161,188,105, 88,173,122, 33,172, 80,230,194, 8,197, 46,133,133,
- 58,238,193,131, 7,113,211,167, 79,175,214,160, 65, 3,191,162,237, 53,187, 48,253,252,252, 60, 62,252,240, 67, 8, 36,170,134,
-245, 27, 68,212, 16, 75, 20, 42, 86, 40, 83, 53,107,214,172, 93, 76, 76, 76,226,180,105,211,124,155, 52,105,226, 16,102,147, 38,
- 77, 92,199,140, 25, 99,150,202, 84, 45,170, 87, 15,174, 85,191, 78,173,200,208,208,208,222, 2,129,192,156,150,150,246,104,232,
-208,161,190, 61,122,244,240,118, 4,211,203,203,203,117,218,180,105,230,192,160,224, 46, 93, 94,237,220, 92, 36, 83,185, 8,196,
- 10, 77, 65,129,142,187,125,251,246,163, 25, 51,102,248, 54,108,216,208,203, 30,204,130,130, 2,161,135,135, 7,234,214,173,139,
-218,193,193,200,206,206,198,142, 29, 59,176,110,221, 58,172, 94,189, 26, 63,253,244, 19, 26,183,234, 12,149, 74,133,196,196, 68,
-228,228,228, 8,255,238, 54,197,175,168, 69,191, 49,140,237, 57, 97,194,132,196, 49, 99,198, 36,203,100, 50,190,248,229,230,230,
-198, 13, 30, 60, 56,101,232, 71, 75,123, 90,182, 22,203,210,100,117,236,216,241,234,222,189,123,239,111,218,180, 9,181,107,215,
- 70,151, 46, 93,196, 0,240,246,219,111,139, 7, 12, 24,128, 45, 91,182, 96,219,182,109, 55, 67, 67, 67, 79, 17, 66,122,217,147,
-206,161, 67,135,182,234,223,191,255,137,254,253,251, 95, 25, 56,112,224,170,113,227,198, 61, 53,115, 37, 37,198, 95, 52, 24, 12,
-104, 16,209, 68, 62,119,205,185,193,229,225,221, 2, 54,173,138,142, 94,247,249,141, 27,143,102,214,174,173, 9,122,248,208,109,
-253,226,197, 30,150, 32,221, 38,147, 9,113,113,113,112,117,117,197,224,193,131, 61, 36, 18,201, 80, 59,218,207,146, 94,189,122,
-141,120,252,248,177,242,135, 31,126,240,189,114,229,138, 95, 82, 82,146,239,145,195, 7, 60,167,124,240,182,202, 69, 41, 22, 39,
-166, 61, 33,170, 15, 19,161,136,126,128, 86,148, 66, 99,187,157, 88,161,113,193,143,200,228,129,228,155, 26,173, 52,119, 62,220,
-210,112,224,180, 95, 27,186,122, 4, 74, 63, 46, 35,157,245, 23, 45, 90,180,117,215,174, 93,131, 90,181,106,181,157, 16, 34, 43,
-225, 51,210,198,141, 27,239,216,178,101,203,136,214,173, 91,159, 36,132,212, 45,117, 21, 25, 16,208,231,215, 95,127,117,183,220,
-123,120,120, 64, 42,149, 62, 67,178, 68, 34, 17, 24,134,193,255, 39, 73, 75, 75,123,179, 77,155, 54, 91,187,117,235,166,191,116,
-233, 18,210,210,210,224,239,111, 93,107, 39, 87, 0,210, 77, 46,151, 35, 48, 48, 16, 33, 33, 33,131,142, 31, 63,238, 99, 50,153,
-240,240,225, 67,164,166,166, 94,254, 59,242,100,203, 69,254, 77, 82, 44,206,225, 88, 0,123,158, 33, 90, 69,177,133,142, 1, 0,
- 37, 36,255,234,245,235, 66, 86, 44, 30,242,227,230,205, 18,145, 72,132, 71,143, 30,225,230,205,155, 40, 56,114, 4,133,167, 79,
- 35, 37, 37, 5,121,121,121,240,246,246,198,202, 53,107, 20, 6,142,142,188,125,231, 14, 75,153,191,236, 13, 74, 59,145, 32,145,
- 72, 58,245,237,219,183, 84, 66,150,152,152,136,110,221,186, 9, 89,150,237, 84,130,122,238,112,177,204, 17, 63, 79,178,235,200,
-246,185,190,190,226,155,192,189,201, 64,238,101,128,234, 1,179, 1, 72,184, 6,236,153,141,160,188,104,114, 96,238, 48, 31,127,
-185, 96, 23, 41,166, 54,178,227,120,107,112,120,120,248,234, 33, 67,134, 48, 0,208,161, 67, 7, 18, 30, 30,190,138, 16, 18, 92,
-134, 26,241,112, 57,147,228,217,204,204, 76, 12, 24, 48,192,189, 70,141, 26,135, 7, 12, 24,224,110,121,191,162,152, 22,109,114,
-157, 58,117, 50,100, 50,217, 79,132,144,114, 7, 88, 91, 76,141, 70,179,188, 91,183,110,253, 54,111,222, 44, 2,128, 99,199,142,
- 97,215,174, 93,184,113,227, 6,238,222,189,203, 71, 68, 68,120, 46, 93,189,117,197,242,239, 55, 44,233,221,178,129, 95,187,166,
- 17,181,148,121,153,121,222,222,222, 45, 41,165,193,118,166,179,219,236,217,179,111,222,186,255,200,133, 17, 8, 5, 34,161, 64,
-162, 86, 43,188, 93, 85,138, 0, 55,185,212, 95,194, 16,101, 65, 65, 65,242, 79, 63,253,196, 3,232,102, 47,230,220,185,115, 31,
-220,186,247, 72, 67, 24,129, 64, 40, 16,138,148, 74,185,230,181, 46,237,155, 0,128, 8, 84,148,147,147,147,178,110,221, 58,163,
- 35,152,159,125,246,217,117,109, 86,158,171, 64, 40, 20, 10, 4,172,181, 44, 21, 50,153,167, 92, 34, 17,235,245,250,132,175,191,
-254,186,208, 17,204,217,179,103,223,188,125,255,177, 27, 67, 8, 75, 8, 35, 80,171, 20,238,238, 46,114, 79, 79,165,204, 67, 46,
- 96,197, 57, 57, 57, 9, 27, 55,110,180, 11,211,104, 52,138, 82, 82, 82,112,235,214, 45, 4, 54,105,130, 67,135, 14,161, 74,149,
- 42, 24, 48, 96, 0,222,120,227, 13,200,100, 50,116,104, 81, 15,211,167, 79,199,253,251,247, 97, 52, 26, 37, 37, 97, 90,237,164,
-138,137,159,159,223,165,242,218,143,237,119,139,167, 51,194,151,208,111, 12, 99,123,218, 18,172,210,240,221,220,220,184,146,180,
- 93,197, 49,187,117,235,246,201,145, 35, 71,106,108,220,184,177,231,208,161, 67, 79,110,220,184, 17,205,155, 55,199,173, 91,183,
- 80,173, 90, 53,172, 95,191, 30,111,188,241,198,201,101,203,150,245,188,116,233, 82,131,234,213,171,127, 92, 30,230,192,129, 3,
- 39, 54,108,216,240,104,114,114,114, 11,173, 86, 91,119,199,142, 29, 35,251,244,233,243, 96,208,160, 65, 29,173, 26, 45,147,105,
-243,158,223,183, 35,178,103, 95,132,213,169,187, 98,248,199,155,234,149,133, 73, 41,165, 55,128, 85,235,146,146,210, 54,235,116,
- 5, 3,132, 66,185,252,220, 57,183,109,223,127,239, 97,123,210, 59, 33, 33, 1, 61,122,244, 16,138, 68,162,214,101,165,147, 16,
-178,168,119,239,222, 3,118,236,216,225,106,209,234,156, 62,125, 26,215,174, 93, 67,108,108, 44,178,178,178,208,113, 92, 30, 38,
- 44,124,130, 61, 97, 33, 69,231,183,169,162,130, 99,136, 85,228, 65,196,199, 93, 45, 56, 53,242,235,176,183,199,174,168, 45, 80,
-186, 9,241,227, 71,119,145,114, 79,183,173,148,116,146, 22, 45, 90,108,234,223,191, 63, 49, 24, 12, 48, 24, 12, 6, 74,105, 97,
- 73,216,254,254,254,210,250,245,235, 99,220,184,113,140, 90,173, 94, 86, 90, 58,243,243,243,245,123,247,238,197,208,161, 67,241,
-222,123,239,161,102,205,154,112,117,117,133, 80, 40,196,134, 77,191,120,188, 49,114,124,104,163, 86,109, 26,212,110,212,188,126,
-174,158,109, 34,146,187,141, 33, 37,108, 13,188,136, 19,114, 47, 3,102,189,122,245, 90,157, 63,127, 94,210,166, 77, 27, 60,122,
-244, 8, 66,161,117, 61,197, 61, 79, 58,103,207,158, 45,209,233,116,248,243,207, 63, 49,108,216,176, 4,163,209,248,254,139,206,
-123,113, 46,242,111, 18, 74,233,170, 98, 87, 82,105, 26,173,217, 0, 96,226,177,107,200,176,145, 5,187,119,239,150,139,197, 98,
- 60,122,244, 8, 73, 73, 73,216,176,110, 29,215,193,203, 43,183,139,191,127,206,134,117,235,168,193, 96, 0,165, 20,225,225,225,
-232,215,175,159,236,245, 1,131, 82, 73, 78,225, 47,118, 48, 63, 95,203,254,250,200,145, 35,159,121, 62,101,202, 20,168,213,106,
- 16, 66,124,236,200, 95,255,119,103,247, 14,112,173,174, 73,161,201, 27,180, 96,165,128, 64, 5, 8,212,128,212, 5,144,168, 0,
-177, 28,250, 75, 71,181, 12,237, 18,219,183,245, 40,127, 7,183,122,224,231,231, 55,243,232,209,163,158,151, 46, 93,162, 57, 57,
- 57, 72, 74, 74,162, 11, 22, 44,240,244,243,243,155, 89,209, 74, 73, 76, 76,156, 27, 25, 25,153, 50,108,216, 48,151,253,251,247,
- 7, 14, 27, 54,204, 37, 50, 50, 50, 37, 49, 49,113,238,243, 84,182, 72, 36, 98,111,220,184,225, 54,111,222,188, 55, 0, 92,172,
- 91,183,110, 70, 64, 64,192,197, 34,163,201, 50, 69,165, 82, 89, 73,150, 69,187, 38, 16, 8, 32, 20, 10,225,231,231,103,208,106,
-181, 92,235, 70,193,178,112, 23,198,228, 39, 17,201,220,100,210, 0,149,218,165, 89, 70, 70,198, 85, 66,136, 93,241, 9, 9, 33,
- 13,155, 54,109, 42,228,168,144,159, 48,164,131,223,219, 35,218,123,125, 55,111, 76,149,175,231,142,245, 95, 52,107,116,248,220,
-169,131,219, 51, 60,175,171, 86,173,154,143,197,160,221, 14,245,121, 68,227,198,141, 5, 60,132,184,117, 39, 54,229, 81,124, 66,
-238,171,237, 90, 88, 53,151,181, 27, 70,116,241,244,244,108, 19, 30, 30,222,216, 94,159, 48, 50,153,172, 97, 88, 88,152,128, 97,
-133,196,221, 85, 21,168, 82,202,188, 45,207,212, 26,205, 43,110,158,158,253, 25, 74,179,125,125,125,189,100, 50, 89, 67, 7,242,
- 46,224, 33,130,183,151,155,139,167,135, 70,217,165,125,203,154, 45, 94,105, 17, 90,175, 89,243, 22,117, 26, 53,126,157,152,205,
- 57,193,193,193, 94, 22, 35,249,178, 68,175,215, 75, 55,111,222,140,121,243,230,161,126, 80, 16,252,253,253,225,229,229,133,211,
-167, 79,227,252,249,243,112,117,117, 69,106,106, 42, 22, 47, 94,140,157, 59,119,194,104, 52,170, 28,109, 79,246,144,173,178,196,
-108, 54, 51,197, 9, 86,105,248, 50,153,140,183, 24,201,151, 38,123,247,238,221,100,209,100, 77,154, 52,169,213,210,165, 75, 79,
- 70, 71, 71, 67,169, 84,226,252,249,243, 24, 57,114,228,201,101,203,150,181, 26, 63,126, 60,214,173, 91,135, 7, 15, 30,172, 41,
- 11,111,224,192,129,179, 70,143, 30,253,117, 84, 84, 20,227,237,237, 13, 87, 87, 87,244,238,221, 27,107,214,172, 17,152,205,230,
-181,253,251,247,191,210,191,127,255, 43, 92,220,193, 79,182,174, 94,112,250,250,213, 43,152,248,238,135, 98,131,217, 52,205,142,
-129,151, 22, 42,149,185,230, 54,109,180, 91, 76,166,130,129, 34,145,220,229,202, 21,183, 93,107,215, 90,201,214,244,233,211,225,
-226,226, 2, 60, 49, 96, 70, 25, 90,157,177, 59,119,238,180,142,135,238,238,238, 16,139,197, 16,137, 68, 16, 10,133, 96, 89, 22,
-135, 87, 40,240,253,244, 39,252,226,251,233, 4, 7,151,147,231,138,205,170, 8, 32,117, 93,189,197, 87,222, 90, 95,167, 65,221,
-142,238, 56,253,115, 50, 22, 68, 94,138, 63,191, 37,109,178, 46,181,212, 80, 74,141,166, 76,153, 82, 59, 53, 53, 21, 23, 46, 92,
-192,133, 11, 23,230,149, 82, 54,186,223,127,255,253,139,188,188, 60, 84,175, 94, 29,189,122,245,106, 67, 8,105, 82, 74,191, 65,
-227,198,141,209,163, 71, 15,180,111,223, 30,245,235,215,135,193,104, 22,246, 31, 50, 54,236,198,131, 52,255, 5,139, 23,200,143,
-254,177,131, 57,121, 50,138,221,180,253,160, 75,139,246,157,191, 22,169,124,207, 18,185,135,239,127, 93,163, 37,149, 74,151, 70,
- 69, 69,249, 24,141, 70, 92,191,126, 29,239,189,247,222,243,198, 12,181, 42, 64, 2, 3, 3,113,236,216, 49, 12, 30, 60, 88,151,
-146,146,114,230,239,202,147, 45, 23,249,175,136,192,134, 65, 90,229,241,227,199, 89,110,110,110,254, 97, 97, 97,140,193, 96,120,
-178, 37,177,109, 27,183,122,237,218, 61, 58,157,238, 93, 0,162,229,223,125,183,194, 63, 32,160,253,144,161, 67,137,201,100, 66,
-100,100,164,120,247,238,221,238,247, 83, 82,202, 13,136, 92,124,181, 49,124,248,112, 44, 93,186, 20, 0,240,206, 59,239, 88, 85,
-235,196, 14,131, 37,165, 11,186,117,233,222, 88, 29,167,248, 70,109,124,197,148, 87,245,190,234,172, 34, 79,214, 24,140, 88, 0,
- 41, 11,222,104, 50,223, 77,237,115,241,254,221, 90,181,101,218,140,106,157,234,180,197,234, 67, 27,187, 1,216, 98,247,170, 78,
- 46,111,170, 84, 42,113,241,226, 69,109,227,198,141,179, 40,165, 46,115,231,206,245,144,203,229, 77,159,131,253, 62, 36,132,180,
-105,217,178,229,219, 12,195,116,226,121,254,112, 74, 74,202,114, 74,233, 67, 59, 39,237, 9, 0, 62,131,141, 29,138,193, 96, 0,
-195, 48,160,148, 98,224,192,129,152, 62,125,122,237,107,215,174,225,232,209,163,110,157, 58,117, 58, 75, 8,201, 2, 48,138, 82,
- 90,162,214, 44, 39, 39,167,240,252,249,243,178,163, 71,143,130,231,121,184,185,185, 65,173, 86, 67, 34,145,160,119,239,222,202,
-105,211,166,117, 60,112,224, 64,106, 78,213, 42,172, 52, 41, 33, 95,162, 84,170,224,227,223,122,252,160, 55,163, 41,165, 59, 29,
- 24, 28,196, 50,129, 89, 71, 56, 61,179,232,211,101,140, 92, 36, 34, 82,145, 0, 18,190, 0,159,124, 49,159,136, 40, 39,128,131,
-251,243, 34,145, 72,164,146,192,192,138, 89,147,156,160, 82,156,195,177, 44, 43,150,138,160, 47,237,185,144, 97, 24,134, 97, 68,
- 0,204,246, 98, 74, 36, 18,145, 74, 66, 75,197,148,177,132, 37,132,136,241,228,116,214, 51, 18,225, 75,168,141, 22, 73,111, 75,
-138, 91,183,110,141, 61, 71, 47, 98,219,174,195, 72,127,116, 21, 51, 62,154,132, 38, 77,154, 96,247,238,221,101,166,201, 98,163,
- 85,154,118,217,207,207,239, 82, 98, 98, 98,163,210,190, 91,146,141, 22,191,162, 22, 29,250,209,210,158, 37,105,169, 74,196,255,
-212,229, 9, 86, 25, 54, 90,132,144, 94,173, 91,183,158,184,121,243,102, 67,215,174, 93,197, 3, 7, 14, 68,221,186,117, 91,141,
- 24, 49, 2, 0,208,169, 83, 39, 44, 93,186,180,213,136, 17, 35,240,203, 47,191, 96,199,142, 29,250,118,237,218,125, 68, 8, 73,
-160,148,238, 45, 9,147,231,249, 30, 43, 87,174, 44,174, 41,132,217,108,134,201,100,242, 53,155,205,190, 69, 99, 17,190,254,122,
- 89,250,193, 3,187,241,209,199,179,225,229,233,211,208,206, 54, 68,134,127,248, 97,250,250,197,139,177,248,151, 95,240, 97,181,
-106,242,141, 55,111,226,160, 78,135, 45, 71,143,166, 23,253, 78,185,182,153,249,249,249,133,123,247,238, 85,111,217,178, 5, 26,
-141, 6, 53,107,214,132,155,155, 27,132, 66, 33, 24, 86, 6, 86,228,138,176, 58, 77, 1,156, 7, 0, 84,243, 67,126,120,117,156,
- 36, 4, 89,148, 41,189, 13,151,218, 71,131, 72, 85,239, 32,105,212,196,117,117, 53,106, 47, 17,246, 47,127,140, 3,223,196,237,
-212,165,227, 43,152,113,187,140,195, 26,141,171, 87,175,142,212,212, 84,236,221,187, 55, 31,192,151,165,253, 6,207,243, 95,124,
-247,221,119, 83, 62,254,248, 99, 73,120,120, 56, 0, 52, 4,112,161, 68,210,167, 80,192,223,223,223, 74, 44, 7, 14, 27, 31, 60,
-110,242,120, 89,159,206,237, 33, 16,120, 32, 43,223,132,140, 92, 19, 92, 61,148,248,104,114,127,233,225,198,254, 77, 86, 46,251,
-241,119, 66, 72, 19,250, 34,157, 69,254,195,226,238,238,222, 48, 35, 35, 3, 15, 31, 62,196,176, 97,195, 18,210,211,211, 15,229,
-231,231,143, 76, 76, 76, 4, 0,109, 5, 32,173,100,190, 97,195,134,104,218,180, 41, 6, 12, 24, 32, 45, 40, 40,232, 31, 28, 28,
-236, 15,224,149, 23,153,159,226, 92,228, 63, 69,180, 74,156, 16, 76,166, 48,253,138, 21,200, 63,124, 24,226,131, 7,177,197,207,
- 47, 79,167,211,125, 64, 41,141, 43, 26,244, 38,173, 91,191,254, 84,207, 51,103,212,134,232,104, 4, 95,187, 6,161, 70,211,208,
-209, 4,172, 93,187, 22, 57, 57, 57,200,206,206, 6, 0,124,243,205, 55,200,201,201,129,197,150,161,220, 12,136,208,202,199,171,
- 26,146,113, 23,188,128, 81,198,134, 21, 52, 87,234, 84,137,254,143,189,243,179, 25,127, 68, 63,106,166, 40,204, 48, 52, 39,172,
- 1,186,244, 2,248,183,172, 9, 1, 4,173, 28, 73,163,101,223, 95, 32, 16,104,239,220,185,211, 35, 52, 52,116, 23, 0,143,231,
-181, 7,160,148,222, 3,240,110, 5, 73,192,103, 15, 30, 60,240, 90,179,102,205,219,115,231,206,165,182, 68,203,242,191, 64, 32,
- 0,165, 20, 46, 46, 46, 16, 10,133,222,167, 79,159,246,110,214,172,217,183, 69, 3, 90, 73,249,164,117,235,214,197,131, 7, 15,
- 32, 16, 8,224,226,226, 2,222,108,196,236,201,227,193,177, 18,193,212,169, 83, 27,246,237,219,247,250,154, 53,107, 76,234, 22,
- 45, 95,201,200,200,184, 49,113,240,144,235,191,253,246,155,129,231,249,149,118,230,249,202,221,187,119,217, 0, 63,111,150,154,
- 11,120,133, 8,144, 94,253,154,138,149, 62,144, 10, 88, 42, 34, 12, 36, 82,153,203,195,248,248, 12,158,231,111,217,131,201,243,
-252,229, 7, 15, 30,200,188,189,220, 5, 5,133,134, 60,153,144,138, 99, 47, 95,140,169, 26,209, 56, 24, 0,116,151,207, 31,147,
-132,213,146,197,166,164, 41,170, 85,171,102, 23,102, 97, 97,225,149,132,132, 4,214,219,219, 91,240, 40, 46,254,119,141, 82,225,
-169,214,104,154, 3,128, 49, 55,251, 60,163,215,167,177, 66,129,119, 90, 70,134,182,176,176,240,129,189,121,191,127,255,190,192,
-215,215,139,221,127,240,200, 46,111,185,196, 75, 37, 22,168, 37,132, 16, 57, 75,114, 68,102, 62, 93, 42,151,123, 61,140,143,215,
- 82, 74, 75,213, 16,126,158, 53,164,207,147,250,154,253,139, 13, 54,174, 94,189,138,125, 39,111, 65, 65, 13, 32,186,108, 28, 92,
-247, 3, 6, 79,253,248,185,237,254,202, 35, 91, 21,210,102,173,172,117,169, 24, 62, 18,203, 49,132, 31, 60,120,240,236, 77,155,
- 54, 89, 13, 80,110,221,186,133, 14, 29, 58, 88,182, 57,208,165, 75, 23, 52,107,214, 12,183,110,221, 66, 72, 72, 8,142, 30, 61,
- 42, 97, 89, 86, 50,100,200,144, 5, 0,246,150,151,222, 85,171, 86, 97,228,200,145, 37, 25, 86,223, 7,160, 35,174,225,121,211,
- 63,223,224,161,205, 72, 71,106, 90,242, 21,123,203,129, 16,130,225, 31,126,152,190,210, 96,192,230,115,231, 48, 84,161,144,175,
-191,119, 15,145,205,154,161, 94,135, 14,233,246,140,117, 22,173,142, 78,167,131, 80, 40,132, 90,173,134,187,187, 59, 68, 34, 17,
- 88,161, 31, 4,226, 6, 96, 68, 34, 68,180,110,128,197, 31, 40, 10,134,189,134,101,132, 32, 75, 34,198,101,145,188,100, 91, 29,
- 66, 8, 81, 84, 65,111, 74,145, 83, 16,135, 63, 44,132, 68, 83,149,184, 40,213,194,131,163,191, 13,215,168,189, 68,216,183,236,
- 17, 14,126, 27,191, 93,151,140, 25, 0,238,151,117,186, 88, 34,145,212,211,104, 52,136,139,139,195,227,199,143,111,150,101,224,
- 79, 41, 45,104,209,162, 69,140, 68, 34,169,237,233,233, 9, 0,213, 75, 75, 39,207,243, 86, 59,172,141,155,183,122, 52,108, 19,
- 44,125,181, 85,109,108,216, 53, 31,111,245, 95, 6, 33, 75,192,113, 70,124,181,180, 59, 56,125, 30,250,247, 28, 75,218,118, 10,
-105,112,120,151, 97, 52,128, 31,254,171, 68, 43, 62, 62,254,221, 54,109,218, 44,200,205,205,205,204,207,207, 31, 12, 0,213,171,
- 87, 15, 98, 24, 70, 2, 96,110, 25,237, 41, 8, 37,187,133, 16, 93,187,118, 13, 42,149, 10, 9, 9,127,197,164,143,139,139, 3,
-207,243,122, 56,165,172, 62, 26, 65, 41,189, 76, 8,241, 5, 16, 9, 27,247, 14, 76,145,170,174,237,158, 61,123,232,158, 61,123,
-218, 90, 39, 47, 74,121,179, 86, 11,170,127, 82,182, 66,161,144, 2,176, 61,209, 36,215,104, 52, 68, 24, 16, 0, 34,121, 98,250,
- 65,109,246,132,159, 87, 76, 38,251, 92,203,240, 28, 88, 16, 35,168,141, 18, 35, 95, 74, 48,223,163, 35,222, 21,207, 68,178, 88,
- 99,219,179, 1, 51, 5, 7,158,117, 48, 57, 52, 63, 63, 31,102,179,217,181, 70,141, 26,123,204,102,179,171,101,107,224,159,170,
- 84,142,227, 98, 88,150,197,219,111,191, 13,139,246,199, 96, 48, 32, 57, 57, 25,122,189, 30, 6,131, 1, 15, 30, 60, 64,118,118,
- 54, 12, 6, 3,110,220,184,129,234,213,171,131,101, 89,223, 50, 26, 10,165,148, 34, 48, 48, 16, 85,171, 86, 5, 75, 40, 86, 47,
-154,133, 79,222, 27,143, 55,170,243, 88,187,252, 43,180,107,215,174, 86,181,106,213, 90, 8, 4, 2,206,199,199, 71,180, 99,199,
-142,223, 57,142,235,237,128, 31,173,189,211,167, 79,175, 90,167, 78, 29, 47,141, 90,101,146,136, 89,136, 77,249, 84,162,207,160,
-130,130,116, 4, 6, 6,153, 33,147,135, 12, 29, 58,148,179,103,114,180, 96,126,240,193, 7,190,225,225,225, 46,174, 26, 85,190,
- 88,200,166,138, 64,211,179,175, 94, 56, 11, 0, 98, 79, 47, 29,164,242,218,195,134, 13, 51, 59,130, 57,115,230,204,234,158,158,
-158, 26, 6, 52,151, 51, 26,255,218,111,215, 27, 50,136, 80, 88, 8,145,184,241, 59,239,188, 67, 28,193,156, 50,101, 74,181,218,
-181,107,107, 52,106, 69,158, 64,200, 38,137,120, 62, 73, 10, 62, 89,104, 48,102, 74, 61, 61, 10, 32, 87, 70, 12, 29, 58,180, 84,
- 76,139, 54,107,218,180,105,113,197,136, 55,180, 90, 45,116,201,215, 33, 74,136, 70, 3,165, 16, 77, 60, 93, 33,145, 72,172, 71,
-223, 75,107,174,165,217,104,149, 68,182,236,253,110,227, 57,101,108, 1,174,172,117,169,184,223,172, 34,252, 50,251,211,143, 63,
-254,248,113,251,246,237, 83,187,116,233, 98,216,179,103, 15, 8, 33, 56,122,244, 40, 18, 18, 18,208,165, 75, 23, 80, 74, 45,167,
-218,112,229,202, 21,116,234,212,201,208,166, 77,155,132, 31,127,252,241, 51,123, 42,103,228,200,145, 48,153, 76,200,203,203,131,
- 86,171,197,238,221,187,209,160, 65, 3, 42,151,203,251,178,129,157,231,247, 31,253,241, 43,117,235, 55,196,183,203, 22, 27,196,
- 2,225,231, 14, 14,194, 24,246,193, 7,233,217, 17, 17,218,141,249,249, 5,195,213,106,121,141,184, 56,183,139, 7, 14,120, 24,
-141, 70,187, 48, 44, 90,157,128,128, 0, 43,201, 18,137, 68, 16,136, 61,193, 42,234, 65,236,222, 5,114,159,190,248,227,178, 68,
-239,162,192, 78,149, 18,251, 21, 26,148,234,218, 65, 30,136,249,175, 12,244,221,209,242, 13,223, 35,242, 42, 88, 67, 8, 97, 8,
- 33, 12, 21,144, 29, 35,190, 10,173,225, 89, 85,134, 51, 91,147,113,240,219,248, 95,117,201,152, 5,224, 94,121,253,220,104, 52,
-234, 56,142, 3,195, 48, 16, 8, 4,182, 54,162,167,126,253,245, 87, 92,188,120, 17, 0,172,110,123,114,115,115, 57,150,101, 33,
-149, 74, 1, 64, 89,198,120, 7,161, 80, 8,161, 80,136, 99,103,143,187,191,241,122,119,114,250,207, 67,104,217, 96, 16, 50,242,
-140, 72,201, 54, 34,171, 0,168,211,100, 6,234,118,218,137,171, 15,114,209,176,126, 93,150, 21, 43,134,253,203, 39,239, 32, 47,
- 47,175,211, 30, 30, 30, 71, 9, 33, 65,132,144, 32,181, 90,125,202,207,207, 47,154, 16,210,139, 82,250, 91, 98, 98, 98,120, 94,
- 94, 94, 75, 74,233, 35, 74,233,163,244,244,244, 14,169,169,169,175,148,117, 88,203,221,221,125, 77, 78, 78,206, 36,142,227,122,
- 22, 93,175,113, 28,215,240,238,221,187,181, 27, 54,108,120, 51, 56, 56,248, 74,112,112,240,190,224,224,224,223,131,131,131,127,
-111,223,190,253, 82,139,187,135, 23, 41, 37,113,145,127,145, 88, 76, 93, 34,139, 92, 61, 68, 90,231,140,162,215, 99,197, 13,208,
-204, 18,201, 13,243,196,137,208,252,254, 59,132,119,239, 98,196,176, 97,106,185, 92,190,140, 16,210,136, 16,210, 82,169, 84,126,
- 59,107,214, 44,149,199,194,133,240, 59,126, 28,177,187,119,195, 36, 20, 94,168, 72,234, 10, 11, 11, 33, 16, 8,172,154, 24,133,
- 66, 1,142,227,138,184, 91, 57,132,195,140, 51, 9, 41,209, 16,163, 42,120,208,188,253, 57,109,206, 13,138,153,225,181, 59,167,
-122,200,189,124, 81,200, 28,207,230, 94,203,130, 90,157,203, 39,130, 60,177, 70,138,199,143,227,192,129,119,104,191, 89,167,211,
-101,231,231,231,163, 97,195,134,238, 23, 47, 94,172,209,160, 65, 3,183,162,247,207, 63,103, 39,106,225,239,239,191, 53, 32, 32,
-224,161,191,191,255, 86, 66, 72, 11, 7,190,190,230,196,137, 19, 96, 89, 22,179,102,205, 66,110,110, 46,140, 70, 35, 50, 50, 50,
-240,248,241, 99, 24, 12, 6,196,199,199,227,246,237,219, 48, 24, 12,136,141,141,133, 94, 95,254,130,132,231,121,168,213,106,232,
- 10,243,240,253,252, 79, 48,115,218,100,100,223,191,132,248,196, 20,104, 92, 20,120,247,221,119, 89, 87, 87, 87,158,227,184,170,
-102,179,185, 19,199,113, 43,236, 37,156, 69, 78, 11, 79, 6, 6, 6,214, 93,180,104, 81,237, 79,230,175, 16,169, 5,121, 84,162,
-146,242, 98,149,132,138,107, 53,199,200, 25,203, 68, 95, 47,249,242,206,153, 51,103, 18,236,113,222,105,193,140,136,136, 8, 77,
- 72, 72,104, 16, 30, 30, 30,230, 17, 84, 77, 34,241,245,207, 18,249, 86,201,161,122,221, 57,226, 95,165,245,138, 21, 43,174,159,
- 58,117, 42,209, 17, 76,133, 66, 81,107,195,134, 13,117,189,189,189,235, 10,101, 50,105, 65,118,246, 22,115, 65,254, 86, 86,227,
- 42,101,212,154,215,118,238,220,121,105,251,246,237,201,142, 96,134,132,132,132,207,159, 63,191, 78,189,122,245,234,248, 84,175,
- 33,145,249, 7,102, 72, 3,130, 50,100,245, 26, 72, 16, 80,181,235,183,223,126,123,229,204,153, 51,118, 97,178, 44,107,102, 24,
- 6, 66,161, 16,114,185, 28,251,247,239,199,196,209,131, 16,232,239,142,176,240,112,116,124,107, 18,182,111,223,110,181,225, 97,
- 89,182,212, 25,125,253,194,119,119, 69,248,146, 75, 88, 89,235, 18, 86,214,186, 20,225, 75, 46,149, 74,182,138,158,151,244, 25,
-187, 70,163, 82,236,176,202, 35, 91,148,210,189,199,142, 29,251, 98,248,240,225,226,110,221,186,225,220,185,115, 24, 57,114,228,
-201, 29, 59,118, 0, 0,206,157, 59,135,247,223,127,255,228,145, 35, 71, 48,126,252,120,116,232,208, 65,124,226,196,137,111,237,
-241,253, 99, 54,155,177,118,237, 90,152,205,102, 40,149, 74,184,185,185,161,123,247,238,184,126,253,250,248,117,235,214, 69,179,
- 66,225,155,145, 61, 95,199,158,223,119,224,246,141,235,227,215, 47, 24,226,176, 83, 96,134, 97,208,109,216,176,244,244, 58,117,
-180,235,115,114, 10, 70,185,186,202,195,147,147,221,254,216,186,213,195,142,246, 67, 56,142,179,146, 43, 11,233,176, 92, 2,177,
- 39, 4,138,186, 16,168,154,224,234, 61,145, 73,216,148, 94, 22, 53,166,183,202,242,159, 37, 20, 51, 35,251,126, 82, 29,125, 63,
-169,142, 94, 83,171,141,144, 87,193,106, 69, 21, 76,232,246, 94,213,246,193, 77, 92,144,147,106,196,238,175, 98, 31,233, 50,176,
- 16,192,109,123,250, 57,207,243, 55, 19, 18, 18, 32, 22,139, 81,165, 74,149, 80, 66,136,197, 46,112,205,152, 49, 99,222,153, 51,
-103,206,100, 0,115,138,242,164,108,223,190,125,157,188,188, 60,220,189,123, 23, 0, 46,150, 81,247,214, 83,134,218,156, 88, 73,
- 53,191,122,104, 80,107, 28, 92, 93,235, 35, 65,107, 64,162,214,128,213,223,247,198,165, 19,243,112,241,224, 80, 60, 74, 78,134,
-204,167, 15, 56,179,190,238,191, 92, 81, 50, 51, 38, 38,166,197,214,173, 91,219, 3,152, 89,175, 94,189, 51,143, 31, 63,126,229,
-248,241,227, 97, 1, 1, 1,203, 42, 10,106,113, 11, 17, 27, 27,251,212, 85,228, 22,194, 64, 41,141,160,148,118,163,148,246, 42,
-186,222,127, 46, 95,111,246,203,177,127,171, 49, 60,128, 61,197, 79, 27, 22, 39, 90,182,142,194, 80,195,205, 77,101, 50, 25,227,
- 15, 29, 58,100,100, 24, 6,114,185, 28,195, 71,142,100,190,255,238,187,214,131, 90,180, 56, 58,246,213, 87,247, 29, 61,114, 36,
-162, 89,179,102,160,148,130, 97, 24,252,242,203, 47,133, 58, 93, 97, 70,149, 42, 85, 52,246, 12, 26,182, 29, 40, 39, 39,199, 74,
-180,178,179,179,225,237,237,109,247,214, 97,126, 14, 14, 31,217,127, 41,147,114,111, 61,238,118,111,137,241,243,228,222,205,178,
-120, 78,144,205,153,144, 93, 72,145,171,131,224, 28,227,214,108,120, 72, 31,227,131, 78,205,110, 71, 69,159,206,208,113, 58,135,
- 78, 75,164,166,166,126,210,191,127,255, 12, 95, 95, 95,162, 86,171,225,239,239,207,244,234,213, 43, 61, 46, 46,110, 78, 69,107,
-196,195,195,227,141,246,237,219,239, 74, 72, 72,232, 23, 21, 21, 85,245,248,241,227,253,218,183,111,191,203,195,195,227, 13, 59,
- 33,182,124,252,241,199,249, 98,177, 24,205,155, 55, 71,110,110, 46,138, 78,249,148,121,149, 55, 17, 0,128, 72, 36,194,202, 69,
-159, 97,230,180,201,208, 70,159,195,213,147,135,112, 44,153, 96,198,252, 47, 33, 18,137, 42,228,235, 43,196, 75, 81,175,158,159,
-234,214,251, 35, 7, 38, 78,159, 54, 77,117,229,202, 21,225, 59,239,189, 79, 99,147,180, 16,119, 91,204,162,237, 39,204,159,249,
-158,136,124,173, 35,102,205,252,176, 30,165,116, 92,121,152,181,189, 20,245,234,250,169,110,126, 56,118, 80,204,123,239,189, 39,
-251,252,243,207,117, 45, 90,180, 40, 76, 73, 73,145, 41, 92,221,194, 5, 46,154,186,177, 73,201,202, 22, 45, 90, 60,120,235,173,
-183,178, 28,197,156, 49, 99,134,252,192,129, 3,130,254,253,251,155, 51, 51, 51,149, 66,153,172, 33,145, 72,155,166,101,102,186,
-244,235,223,255, 94,191,126,253, 10,120,158, 31,239, 8,230,167,159,126, 42,191,125,251,182,160, 69,139, 22,166,228,228,100,149,
-194,221,163, 1,171,113,107,242, 48, 41, 69,221,180, 89,179,251,239,188,243, 78,126, 89,233,180, 37, 41, 42,149, 42,161,101,203,
-150,248,234,171,175,240,245,215, 95,163,107,215,174,184,126,227, 58, 34,223,153,140,218, 19,222,199,239,167,207, 34, 33, 33, 1,
-115,231,206, 69,131, 6, 13, 32, 18,137,110,151, 8, 58,238, 22,185,156, 68,201,229, 36, 74, 48,238, 22,177,220,151, 74,134,230,
-100,227,169,207,151, 32, 23, 63, 45, 89,211, 21,225, 75, 46,149,101,135, 85, 30,217,234,215,175,223, 68,139, 11,135, 81,163, 70,
-157, 92,182,108, 89,171, 81,163,158, 44,180,155, 55,111,142,121,243,230,181,154, 49, 99,198,201,249,243,231,163, 99,199,142, 8,
- 14, 14, 46,247,224, 11,199,113, 48,155,205, 24, 52,104, 16,204,102, 51,210,210,210,112,231,206, 29,172, 90,181, 10,148, 82, 41,
- 0,248,250, 5, 52, 22,139,197,248,243,242,133,130,153,163,154,253,232,192, 98,138,216, 46, 98,242,242,242,208,111,194,132,244,
-248,154, 53,181, 43,210,211, 11, 70,187,186,202,171, 61,122,228,166, 50, 24,252,203,178, 73, 37,132,128,231,121, 43,177,178, 16,
-174,226, 87,209, 68,105,151, 24, 11,248,189,199, 55, 37, 2, 0,218, 12,241, 67,175,169,213, 70,248,134,200,191,105, 61,248,137,
-210,123,251,188, 24,154,155,200,125, 14, 19,110, 58,160,177, 62,119,238,220, 57,104, 52, 26,244,239,223, 95,194, 48,204,194,162,
-113, 94, 71, 41, 93, 78, 41, 93, 98,193,146, 72, 36,139,135, 14, 29,202,100,101,101,225,234,213,171, 0,112,164,180,113,137, 82,
-106,205,123,158,150,128,227,197, 56,117,121, 63, 14, 30,223,134,135, 9,105,120,148,170, 3, 4, 46,208,229,199,195, 88,152, 0,
- 67,214,101,228,232,229,255,133, 29,169, 23,226,110,225, 5,184,133,168, 76,173,214,191,210,166,142, 82,154,100,123,218,208,214,
-129,105, 73, 14, 75, 65,213,178,129,219,190,253,222,165,255,160, 33,249, 13, 26, 52,112,245,247,247, 7, 33, 4,189,251,244, 33,
-237,163,162, 84, 66, 63, 63,184, 55,106,100,221,142, 56,124,232, 16,246,239,223,159,191,231,215,157,254, 35, 71,143,238, 1, 96,
- 67, 25, 3,134,160, 70,141, 26,214,223, 77, 74, 74,130, 68, 34,177,218, 68,228,228,228,192,211,211, 19, 73, 73, 73,176, 83, 81,
-178,113,250,180,179,211, 82,155,125, 82,189,153, 74, 72,246,229, 39,131,163, 20, 66,194, 1,133, 20, 38, 14,208,155, 40, 26, 87,
- 99,221, 14, 22,154, 93,119,159,219,241, 0,192, 70, 7, 53, 90,127, 16, 66,198,241, 60,191, 13, 0, 19, 21, 21,197,223,188,121,
-115,162,189,134,235, 37,170,237,229,242,169, 71,143, 30,117,155, 58,117,106,230,238,221,187,179,187,119,239,238,178,106,213, 42,
-183, 14, 29, 58, 76, 5,240,179, 29,149, 90, 72, 8,217, 16, 23, 23, 55,177, 73,147, 38,208,106,181, 48, 26,141,184,116,233, 18,
- 66, 66, 66,112,241,226, 69,132,134,134,226,194,133, 11, 8, 11, 11, 3,199,113,208,233,116,224,121,158, 43,111, 48,215,166,167,
- 1, 25,143,145,120,110, 31,238, 92,187,132,163,137, 4,203,127,222,133, 42, 85,171, 87,200, 79, 77,152,183,162,142,191,151,251,
-193,207,103,127,234, 21,251,199, 47,216,177,118, 57,127,108,223,190,218, 98, 21,198,181, 29, 52,233,117,131, 9, 65, 0,196,175,
- 52,107,130,110,174,183, 57,121, 85, 36, 31,185, 81,182, 39,235, 48,111, 69, 29, 63, 79,247, 3,255, 91, 56, 71,117,127,255,122,
-108, 89,249, 21,221,190,233,167, 6, 58,160, 89,157, 58,117,186, 49, 12,163, 1,160, 43,178,243,178, 43,180, 77, 73,152,135,119,
-237,138,208, 1,205,126,251,237,183,110,114,185,220, 7,128,169,160,160, 32,230,121, 48,143,236,222, 29, 97, 73, 39, 33,196, 11,
-128,145, 82,122, 31, 14,134,224, 25, 48, 96,192,188,247,223,127,127, 26,199,113,158,150,247, 76, 38, 19,187,120,241, 98, 1,207,
-243, 44,165,212,200, 48,140,241,192,129, 3,156,217,108, 78,212,233,116, 19,158,103, 32,121,253,245,215,113,246,236,217,217,120,
-114, 8,195, 94,109,245, 83,118, 90,101,109, 83,218,131, 31, 21, 21, 53,247,205, 55,223,156,254,243,207, 63,223, 89,182,108, 89,
-207,241,227,199,227,151, 95,126, 65,205,154, 53,241,231,159,127,226,147, 79, 62, 1,128, 86, 51,102,204,248,125,205,154, 53,193,
-177,177,177,139,203, 75,163,201,100,130,217,108,198, 79, 63,253,132,222,189,123,195,211,211, 19,126,126,126, 32,132,252, 49,122,
-244,232,239, 0,128, 37,172, 8, 0,244, 58,189, 62, 60,188,137,221, 26,220,224,224, 96,235, 88,151,156,156,108, 61, 41,216,249,
-205, 55,211, 87,127,254, 57,126, 44, 44,196,104, 87, 87,121,124, 64,128,239,239,247,239,143, 37,132,172, 42, 77,115,100,209,234,
-148, 71,178,236,213, 48, 23, 38,225,227, 95, 23, 60,244, 1,208,181,205, 16, 63,180, 25,226,135, 38,189,188, 8,195, 18, 92, 59,
-152,129,235,135,181,219, 77, 57,248,195,145,112, 57,148,210,155,238,238,238,191,183,109,219,182,103,173, 90,181, 48,102,204,152,
-183, 68, 34,145,200,100, 50,189,103,113,243, 64, 8,113, 97, 24,102,206,186,117,235,198,186,185,185,225,196,137, 19, 56,126,252,
-248, 31,148,210,199,165,141, 75, 0,172, 62,179,170, 4,134,234,110,199,230,201, 83, 19, 78,225,228,137, 95, 81,179,193, 36,200,
-124,122,192, 45,124, 62,140,209, 95,195,144,113, 16,110,129,221, 17, 31,123, 31,172, 64,114, 29,255, 17,177,184, 91,184,126,253,
-122,137,238, 22, 28,149,122,245,234,181, 58,126,252,184, 68,167,211,225,216,177, 99,104,218,212,122,182,235, 31,141,223,105,203,
- 69,254, 77, 82, 86, 80,233, 18,103, 77,194, 19, 97, 88,104, 40, 39, 98,176,174,119,143, 30, 5, 87,174, 92,177,174,250,116,231,
-207, 35,127,255,126,112, 28, 7, 74, 41,142, 71, 69, 97,232,144, 33,121, 66,150,172,174, 86,173, 42, 37,244, 47,223, 45, 37, 29,
-165, 23,137, 68,253,251,247,239,111, 29,124,226,226,226,160, 80, 40, 32, 22,139,193,243, 60,204,102, 51, 88,150,133,139,139, 11,
-204,102,179,161,132,204,116, 42,150, 17, 19,167,205,239,183, 38,114,112,146, 95,158,145,142,211, 84, 67,144, 72,102,237,156, 62,
-106,130,158, 13,132,240, 16,164,210, 35,139, 95, 77,228,245, 25,253,138,199, 22, 43,239,200, 63, 33, 36,180,126,253,250,223, 13,
- 29, 58,148, 1,128, 78,157, 58, 49,245,235,215,255,134, 16, 18, 90,198,119,202,196,148, 74,165, 18, 0,216,181,107,151,246,206,
-157, 59, 93,119,237,218,165,181,125,223, 78,204, 85,139, 22, 45,130, 92, 46,135,217,108,134,193, 96,176,218,103,217,190, 26,141,
- 70,120,120,120, 96,207,158, 61,224, 56,110, 79,121,233, 12, 12,170, 10,226, 89, 3, 27,118, 29,197,241,116,145,195, 36,203, 22,
-179,166,175, 50,204,199,195,253,208,255, 22,204,245,204,188,119, 9,241,241,241,244,192,254, 61,103, 10, 41, 77,200,202,161, 51,
- 51,243,104, 88,129,158, 74,155, 6,227,241,161,149, 31,209, 25,109, 96, 66, 9,167, 6,109, 49,235,248, 42,195,252, 61,221, 15,
-124,249,191, 5,170,172,123,151,144,148,156,140,189,123,118, 93, 41,164, 52,129, 82,186,157, 82, 58,130,227,184,186, 28,199,213,
-165,148,142, 40,141,188, 56,138,153,159,159, 95, 47, 63, 63,191, 94,101, 98,242, 60, 95,143,231,121,187, 49,109,137,202,146, 37,
- 75,162,147,146,146,134,166,166,166,118,177, 92,153,153,153,157,242,242,242,218, 21, 20, 20,180, 46, 92, 82,213, 37, 63, 63,223,
- 43, 55, 55,215,183,176,176,176, 49,165,244,146,189,237,211, 86,108,189, 78, 39, 38, 38,206, 74, 76, 76, 36,229,165,147, 25,127,
-139,108,254,242,195, 95, 87,174, 92,233,251, 60,248,197,211,153,150,150,182,237,167,159,126,106, 88,189,122,245,224, 17, 35, 70,
- 96,197,138, 21, 88,182,108,153, 30, 0,214,172, 89,163,183,209,100, 5, 62,124,248,176, 73, 73,219,134, 79,165,147, 97, 54,118,
-238,220,153, 30, 63,126, 28,189,123,247,182, 58, 18,253,225,135, 31, 96, 54,155,115, 58,118,236,200, 3, 64,161,174, 32,135,242,
- 20, 6, 99,201,251,239, 37,149,167, 88, 44,126,205,214, 95,160,197, 25,179, 88, 44, 6,165, 20, 97,173, 90,165,103, 53,104,160,
- 93,155,157, 93, 48,171, 94, 61,245,216,240,240, 17,181,128, 33, 37, 97, 18, 66,158,210,234, 20,191,236,213,100,217, 98, 82, 74,
- 83, 11, 19, 49,230,215, 5, 15,247, 91, 52, 91, 82,165, 0,186, 92, 51,118,126,254, 48, 77,151,134, 31, 0, 60,118, 4, 19, 0,
-180, 90,237, 59,159,127,254,185,222,213,213, 21,175,191,254, 58,230,207,159, 63,186, 85,171, 86,217,222,222,222,103, 67, 66, 66,
-174, 13, 28, 56, 48,233,210,165, 75,239,180,111,223, 30,119,239,222,197,151, 95,126,153,149,153,153, 57,184, 44, 76, 66,136, 85,
-147,215, 43,178,147,246,251,111,190,226, 59,182,157, 8,185, 76, 13,147, 48, 16,218, 60, 19, 50,243, 41, 12,146,102, 16,139, 36,
-232,210,162, 14,206, 30, 88, 95,192, 25,242, 55, 84,164,205, 59, 48,185,190,104,204, 74,113,183, 80, 60,157,149,225, 22,226, 69,
-228,253,223, 44, 37,248,209,122, 90,163,101, 57, 82,105,121, 37,132,231, 56,142, 71,181,234,213, 84,177, 15, 31, 47, 31, 48,160,
-255,168,110,221, 34,229,145,145,145,210, 58,209, 79,182, 46,118,237,218,133, 29, 59,118, 20, 28, 60,120, 48, 71, 34,100,215, 4,
- 86, 9,244,230, 56, 30,132,240,101,178, 97,149, 74,245,222,199, 31,127, 44,203,206,206,198,178,101,203,248,134, 13, 27, 50, 10,
-133, 2, 70,163, 17,107,214,172, 49,213,169, 83, 71,200, 48, 12,178,179,179,193, 48,204,109, 59, 51,120,149, 16,210,229,187,246,
-125,119, 52,121,123,164,123,237,246,175,184,182, 11,244,135,169, 17, 69, 98,220, 67,220, 57,114, 48,243,198,129,165, 25,208,165,
-244,165,148,222,116,180, 0,253,252,252, 62, 59,120,240,160,215, 59,239,188, 67,117, 58, 29,121,252,248, 49, 93,176, 96,129,215,
-152, 49, 99, 62, 3,240, 70, 69,251, 83, 86, 86, 22, 8, 33,124, 81,163,181,172,250,137, 3, 21,123,157, 16,242, 91,159, 62,125,
-122,117,236,216, 17,209,209,209,214, 45, 66, 91,162,101, 57,125,184,112,225,194, 44, 0,211,203,195, 21, 10,133, 88,182, 97, 27,
-178, 50,211,225,237,237, 7,169, 76, 86, 97,143,203, 98,134,153,245,197,220, 79,189,210,111,157, 37,215,207, 28,229,183, 94, 77,
- 73, 53,115,180,100,143,255,185,137,180,136,253,151,189,154, 97,216, 89, 95, 44,152,227, 98,217,214,252,249,114, 82, 14,225,232,
- 59,207,213, 75,254, 45,152,127,179,248,249,249, 33, 49, 49,145,248,249,249, 81,203,182, 94,105, 68,235,153, 6,254,100,187,140,
-148,181,109, 88, 81,252, 7, 15, 30, 44,104,212,168,209,135,119,239,222,221, 90,187,118,237,241, 0,170,232,245,250,172, 25, 51,
-102,252,111,205,154, 53,163,236,209,100, 1,192, 47,191,252,178,116,228,200,145,251,123,244,232,241, 17,207,243,245,109, 38,145,
- 7, 94, 94, 94,214, 45,220,180,148,228,105,227, 70, 13,154,150,151,151,105,183,159, 59,165, 82, 57,118,198,140, 25,210,252,252,
-124,124,251,237,183,124,157, 58,117, 24,203,162,104,211,166, 77,230,208,208, 80, 65,255,137, 19,211,151, 36, 39, 99,222,137, 19,
-249,211,234,214,109,184,246,206,157,198, 37,105,220, 45, 11,199,146, 52, 89, 22,179,139, 10, 78, 14,137,132,144, 49,191, 46,120,
-248, 3,128,174,175, 12,240,193,111,139, 30, 34, 51,214,240, 63,152,113,223,158,176, 64, 37, 96,198, 19, 66,186,164,164,164,252,
-246,233,167,159,186, 52,110,220, 24,117,235,214, 21, 42,149,202,102, 22,119, 49,217,217,217, 56,124,248, 48, 86,172, 88, 97,184,
-113,227, 70, 31, 74,105,169,219, 85, 28,199,165,134,134,134, 90,202,129, 18, 66, 50,114,244,196,101, 75,173,102,202, 17,227,182,
-146,147, 23, 78, 35,209,200, 67,111,226, 81,173,122, 4,218,117, 93,130,223,247, 93,227, 18, 99,111,222, 52, 21,102,174,254,151,
-207,223, 47,196,221,194, 11,112, 11, 81,105,218, 44,219,215,255,138,148,216, 67,121,150, 57,181, 98,229,247,175,253,242,211,207,
- 62, 44,203,248,220,143,137,185,208,179,111,191,132, 67,135, 14,185,137, 92, 92,154, 2,224, 13,227,199,159, 49,234, 11,181,187,
-127,251, 45,168, 90,181,170, 13,138,130, 74, 83,158,101, 78,149,245,131,121,121,121,249, 39, 78,156, 40,152, 62,125, 58,137,139,
-139,219,236,237,237, 61,112,223,190,125,202,190,125,251, 22, 70, 71, 71,111,247,241,241,233,213,190,125,123,213,135, 31,126,168,
-207,203,203, 91,238, 64,231,190, 73, 8,169,117,254,211,197,111,158, 95,244,253,171, 16,176, 45,161, 23, 2,188,233, 20,140,185,
-135, 0,108,166,148,154, 43, 82, 72, 10,133,162,129, 92, 46,199,149, 43, 87, 50,155, 53,107,102,208,233,116,162,249,243,231,187,
- 43, 20,138, 6,207, 49,192,209,204,204, 76,240, 60, 47, 0, 64,138, 94,193, 59,126, 22,255,141,158, 61,123,254,182,101,203,150,
-206,145,145,145, 8, 14, 14,134,201,100, 66,104,104, 40, 12, 6, 3, 66, 66, 66,160,215,235, 49,123,246,108,100,103,103, 79, 46,
- 43, 88, 49, 33, 4,102,179,217,106,108,235, 31, 16,244,196, 79,207,115,184,177, 80, 8,153,224,219,187,215, 34, 53, 35,157,223,
-242,103, 74, 74,129,145,235,114, 55, 53,255, 70,241,207, 21,112,200,111, 63,226,221, 4, 0,208,243, 40, 51,226,188, 66,140,224,
- 59,123,126, 64, 74,106, 58,126,185,156,148,149,111,228,187,222, 46, 1,211,161,116,254, 75, 48, 35,102, 71,163,223,187,246,127,
-246,242,184,138,255,150,189,132,170, 52,185,156, 68, 9,191,162, 22,197,202,181, 37,250,200,122, 30,252, 34, 77,213,111, 69,237,
- 54,110,208,160, 65,211, 30, 62,124, 56,183,200, 95,214, 74, 71,176,214,174, 93,123, 23,192,200,178, 62,243,243,226,145, 59, 1,
-236,116, 4, 55, 55, 55, 87,119,233,210, 37,221,135, 31,126, 72,226,226,226,246,249,248,248,116,222,191,127,191,188,111,223,190,
-250,235,215,175, 31,241,243,243,107,211,169, 83, 39,229,222,115,231, 18, 10,238,223,223,189,251,225,195, 0, 19,207,239, 46,171,
-127, 86, 38,201, 42, 78,182,118,206,123,248,197,111, 95, 60,236,196,235,177,221,144,137, 51, 0,226,159, 3,243, 56, 33,164,246,
-144, 33, 67,182,116,239,222,253,149,218,181,107,163, 74,149, 42,184,115,231, 14,210,210,210,112,245,234, 85,236,218,181,107,151,
- 78,167, 43, 55,160,118, 70, 70,198, 51,225,137,136,204,221,111,253,183,179,118, 93, 56,217, 52,180,117,228,112, 89, 93, 63, 30,
- 6, 35, 69,220,163,251,152, 61,115,117, 65,210,163,187, 55,141,102, 99,159,255,128, 15,173,227, 49, 49, 49, 17, 44,203, 86,170,
-187,133,138,186,133,112, 74, 37, 18,173,152,152,184,155,193,193,129, 31,239,216,190,173, 37,165, 12, 75, 9,201,215,104, 92,119,
- 61,126,252, 56,203,246,115, 53,220,220, 84, 35,199,140, 28, 72,120, 34, 36,132,231,120,150, 57, 21, 19, 19, 87,166,198,200, 96,
- 48,140, 27, 56,112,224, 50,185, 92, 62, 67,171,213, 94,209,104, 52,127, 54,104,208, 96, 46,165,116,102, 97, 97,225,111, 42,149,
-234,220, 43,175,188, 50, 63, 40, 40,104, 41,165,244,162,131,157,219,140, 39,246, 97, 27, 42, 89,149, 59,135, 82,234, 34, 16, 8,
-178,175, 93,187,246, 83, 88, 88,216, 32, 74,169, 11, 33, 36,187,162,152, 58,157,238,157,172,172, 44,143,177, 99,199,154, 86,173,
- 90, 21, 54,124,248,240,105, 55,110,220, 16,234,116,186, 24, 7,243,172, 39,132,244, 26, 48, 96,192,106,161, 80,216,145, 97, 24,
-194,243, 60,181,121, 14, 74, 41, 56,142,251,189,188,114,225, 56, 46,161, 86,173, 90, 79,173,160, 75,178,207, 53,153, 76, 9,118,
- 79, 54, 6,110,210,247, 71,111, 44,212,153, 40, 53,243,116,220,237,148,252, 18,143,156,157,191, 77,235,216,141,169,227, 39, 45,
- 59,112,115,161,222,196,243,102,158,142, 47, 13,211,161, 73,241, 95,130, 9, 0,211, 52,155,118, 98,229, 38,171, 97,188,101, 59,
-177,248,125,101,138, 69,235, 4, 7, 61, 54, 51,227,159, 24,203,151, 71,248, 42,138, 95,156,116, 57, 42,253,250,245,123, 97,246,
- 40, 70,163,241,147,158, 61,123,206,213,104, 52,255, 75, 75, 75,187,162,209,104,110,134,135,135, 79,226,121,126,105, 65, 65,193,
- 46,149, 74,213,163, 73,147, 38,147,171, 86,173,186, 62,150,210,245,229,245, 77,139, 86, 7, 0,181,244, 75, 11,145,176, 37, 20,
- 38,147, 41,190, 2,101,152, 72, 8,249, 0, 64, 53, 60,113,192,123,143, 82,250, 92,101, 67, 41, 77, 4,208,146, 16, 82, 29, 64,
- 71, 60,241,223,151, 5,224, 1,128,139,148,210,171, 21,198, 46,204, 72, 36,132, 52,186,117,249,196,248, 59, 55, 47,191,105, 57,
- 93,200,178,226,235,156,177, 96,131,169, 48,115,245,127,196, 81,233,172,144,144, 16, 23, 0,245, 1,164,224, 47, 71,198,177, 0,
-190,174,140,133,138,141,116,112, 82,162,231,226, 9, 99,109,183, 11,159,122,246, 34,219, 34, 33,164, 83,101,199, 67,114, 98, 58,
- 49,157,152, 78, 76, 39,166, 19,211,137,249,223,195,252,183, 19,173, 18, 8,237,170, 82, 53, 90, 78,113,138, 83,156,226, 20,167,
- 56,197, 41, 78,177, 95, 74,213,104, 1,232, 84,202, 23,236,102,170, 21, 57,125, 80, 30,190, 19,211,137,233,196,116, 98, 58, 49,
-157,152, 78,204,255, 30,230,255, 55,113,110, 29, 58, 49,157,152, 78, 76, 39,166, 19,211,137,233,196,252,199, 49,255,213,100,202,
-185,117,232, 20,167, 56,197, 41, 78,113,138, 83,156,242, 98,196, 66,170, 74, 50,138,119, 18, 45,199, 89, 43, 3,224, 45, 0,253,
- 0,212, 0,112, 31,192, 54, 0,223, 57, 16,166,194, 22, 79, 13, 96, 26,128,150,120, 18,189,254, 1,128, 19, 0, 62,167,148,230,
- 57, 75,188,100,241,244,244,252, 88, 40, 20,106,128, 39,161, 77, 44,175,182,255,115, 28,151,149,157,157,189,224, 5,181, 3,214,
-222, 83, 89,150,180,218,166,205,246,213,100, 50,189,176,116, 58,229,165, 29, 71, 66,221,220,220,126,212,106,181,131, 41,165,119,
-156, 37,226,148,255,146,120,121,121,141, 55, 26,141, 51, 68, 34,209,252,212,212,212,239,255, 31,245,235, 18, 79, 30, 90,137,214,
-158, 61,123,162, 0, 32, 50, 50,178, 45, 0,168, 84,170,211, 12,195, 84, 47,250, 50,128,191, 98,225, 21, 63,250,111,121,229,121,
-254, 65, 70, 70, 70,169, 14,212,228,114,249,105,150,101,171, 19, 66,192, 48,140,245, 50,153, 76, 42,150,101,115, 75,193,140,215,
-106,181,141, 95,146, 66, 36, 0,118,187,186,186,234,230,206,157,251, 93,187,118,237, 2, 19, 19, 19,205, 83,167, 78,109,243,231,
-159,127, 70, 18, 66, 94,115,132,108, 17, 66, 90, 16, 66,214, 55,108,216,112,231,176, 97,195,182, 52,107,214, 76,156,145,145,161,
-218,182,109,155,255,134, 13, 27, 46, 17, 66, 6, 59,234,226,226, 95,208, 16, 5,165,249, 51, 43,235, 89,113, 17, 10,133,154,248,
-248,120, 85,209, 74,194, 66,172, 96, 50,153, 96, 50,153,144,159,159,143, 6, 13, 26, 84,122,250,125,125,125, 35, 8, 33,203, 67,
- 66, 66, 26,251,249,249, 93, 0, 48, 49, 49, 49,241, 79, 71,210,106, 54,155, 65, 41,181,166,179,118,237,218,206,145,217,177, 54,
- 52, 90, 44, 22,119, 13, 9, 9,105,170,215,235, 51, 31, 60,120,112,158,227,184, 79,203,114,122,233, 32,190, 11,128, 79, 37, 18,
- 73,179, 26, 53,106, 4,222,189,123, 55,206,104, 52,158, 3, 48,135, 82,154, 93, 25, 36,171,109,219,182, 39,191,253,246, 91,247,
- 9, 19, 38,156, 36,132,180,114,146, 45,167,252, 83, 82,165, 74, 21, 77,126,126,254,106, 0, 17, 66,161,208, 71, 42,149, 66, 38,
-147, 37, 75, 36,146, 43, 50,153,108,212,201,147, 39,179, 28,197,228, 56,238,211,216,216, 88,159,230,205,155, 47,170, 91,183,238,
-236,244,244,116,157,209,104, 60,146,153,153, 57,153, 82,154, 83,214,119,139,115,145,127, 19,201,178,125, 45, 26,239,255,218, 58,
- 44,138, 43,212,238, 41, 6, 38, 16, 4,196,198,198,122,169, 84, 42,112, 28,103,213, 22, 88, 38, 53, 91,219,174, 34, 63, 77, 8,
- 15, 15, 55,150, 51,225, 4,198,199,199,123, 41,149, 74,235,123, 70,163, 17, 62, 62, 62,124, 66, 66,130,151, 84, 42,125,234,243,
- 6,131, 1, 1, 1, 1, 47,147, 47,148,183,220,220,220,178, 31, 63,142,107,160,211, 27,231,140,121,103,250,199,131,251,189,234,
-122,250,244,105,254,181,215, 94,211, 71, 69, 69,189, 5, 96,185,157,149,226, 66, 8,217, 48,117,234,212,217, 82,185,218,253,232,
-233,155,250, 13,219,246, 36, 52, 12,173, 70, 38, 79,158,204,190,251,238,187,199, 35, 34, 34,126, 36,132, 52,114, 68,179,165, 82,
-169,246, 75, 36,146,170, 44,203,194,104, 52, 62,214,106,181,157, 95,162,134,216, 16,192,101, 66, 72, 4,165,244,138,189,207,202,
-146,140,140, 12, 20, 22, 22, 62,115,213,174, 93, 27,149,109,127, 72, 8, 17, 4, 6, 6,254,182,112,225, 66,255,228,164, 36,124,
-181,100, 73,115, 0,223, 1,104,110,207,247, 83, 83, 83,159, 73,103,120,120, 56,156,226, 80, 29, 76,155, 61,123,246,194, 55,223,
-124, 19, 28,199,161,176,176,208,239,222,189,123,117,102,204,152,209,135, 16,210,148, 82, 26,243,156,248,158, 33, 33, 33,209,147,
- 38, 77,114,107,218,180, 41,138,162, 84,248,157, 56,113,162,249,154, 53,107,134, 18, 66,194, 41,165,105,207,243, 27,110,110,110,
- 63,254,240,195, 15,238,114,185, 28,191,255,254,187,123,199,142, 29, 79, 16, 66, 90, 87,148,108, 17, 66, 24,119,119,247,119, 1,
-116,224,121, 94, 12,224, 92,102,102,230, 60, 71,189,186, 19, 66,124,149, 74,229,118,134, 97,170, 21, 91, 96,123, 16, 66,210, 45,
-239, 17, 66,188,120,158, 63, 83,214,162,218, 41,255, 14,241,240,240, 24,157,155,155,251,173, 68, 34, 17,185,186,186, 66, 46,151,
- 67, 32, 16, 64, 32, 16, 84,145, 72, 36, 85, 36, 18, 73,183, 14, 29, 58, 76, 60,122,244,104,153, 30,246, 95,137,240, 25, 1,134,
-204, 97, 9,195, 2, 64,237, 16,119,181,139,139, 11,230,204,153,163,232,213,171,151, 2, 0, 78,158, 60, 57,108,248,240,225, 29,
- 9, 33,117, 75, 35, 91, 37,113,145,127,139,148,118,226,240, 41,141, 86,100,100,100, 84,177, 78, 7,153, 76,134, 45, 91,182,128,
-101,217,167,162,198,151,244,127,149, 42, 85,202, 77,136, 69, 35,182,107,215, 46,168,213,106,184,184,184, 88, 39, 26,137, 68,130,
- 35, 71,142, 64, 40, 20, 66, 32, 16, 64, 40, 20,162,113,227,198, 40, 35,160,253, 11,145,254,117, 8, 5,128,173,111, 63, 73, 87,
-255,229, 79,156, 64,110,125, 59, 28,173,107,200,208,239,221, 89, 3, 11,116,198, 38, 0,242,179, 50, 51, 51, 47,236,216,145,216,
- 48, 52, 84,244,227,143, 63, 54,245,247,247,239,103, 47,209, 2, 48,173, 81,163, 70,219, 89,153,139,199,176,225, 35,134,141, 18,
- 48,198,161,227, 62,156, 31,151,148,158, 63,118,236,216, 29,191,255,254,251,176, 47,190,248,226,214,148, 41, 83,166, 1,248,196,
-222,244,139,197,226,170,247,238,221, 11,225,121, 30,245,234,213,123,105,194, 24, 88,136, 20,165, 20,132,144,167, 8, 85, 89,207,
-202, 19,139, 6,171,164,171,178,197,223,223, 63,124,200,144, 33, 30,218,244,116,124,181,100,137,229,237,198,229,109, 35, 90,182,
- 8, 13, 6, 3, 94,127,253,245, 33, 28,199, 9, 44, 36, 80,175,215, 27,178,179,179,117, 54, 39,123,210, 40,165,175,218, 81,158,
-213, 21, 10,197,255, 0, 68, 20, 22, 22,250, 3,128, 66,161, 72,224,121,126,103,126,126,254, 39,150, 0,190, 21,168,167, 64, 0,
-117, 80,122, 40, 40,186,112,225,194,187,211,166, 77,139,249,187, 49, 9, 33, 85,189,189,189, 23,244,239,223, 31,123,246,236,193,
-222,189,123, 77, 50,153, 76, 48,124,248,112, 50,113,226, 68,215, 73,147, 38,117,195,115, 56,113, 44,146,110,179,103,207,118,171,
- 85,171, 22,182,109,219,134,171, 87,175, 22,134,132,132,200,218,181,107, 7,129, 64,224,246,241,199, 31,191, 6, 96,253,243,252,
-128, 86,171,157,247,225,135, 31,110,248,233,167,159, 84, 15, 30, 60,192,242,229,203, 61, 6, 14, 28, 24, 69, 8,105,107, 47,217,
- 34,132, 72, 0,188, 11,160, 61,203,178,173,135, 15, 31,110,126,231,157,119,132, 12,195,152,150, 44, 89,226,185,102,205,154,129,
- 30, 30, 30, 17,233,233,233,121,118, 96, 49, 0,230,140, 26, 53,106,228, 31,127,252,225,122,254,252,121,177,187,187,187,117,129,
- 93,244,234,101,105,179,102,179, 25,225,225,225, 1,255, 5,162,193,178,172,145,231,121, 33, 0, 41,165, 84, 95,222,253,127,137,
-100,185,187,187, 79,200,204,204,252,206,199,199, 7,222,222,222,207,204,181,122,189, 30, 82,169, 84,228,227,227,243, 67,239,222,
-189,133,191,254,250,107,169, 91,128,132, 37,159,254,254,243, 92,127, 55, 87, 21, 0, 96,233,138, 3, 5, 0,240,235,175,191, 34,
- 49, 49, 17,174,174,174,168, 91,183, 46, 59,119,238, 92,223,201,147, 39,127, 5, 96, 84,105, 88,197,185,200,191, 73,163,101, 75,
-182,108,239,203,180,209,226,121,222, 26,176,212, 66,168, 44, 36,168,248,255,182, 43, 32, 27,134,119,184, 88, 66, 72, 94, 94,158,
-149,100,169,213,106, 20, 77,174, 48,153, 76,207,224,114, 28, 7, 66, 8, 45, 11,179,148, 12, 79, 0,112,132, 82,122,223, 78, 38,
-106,197,220,250,118, 56, 54, 72,166, 14,178,184, 80,239,246,225,147,215, 13, 0, 78, 63, 28,181,252,219,182,109,253,223,157,185,
-108, 86, 97, 70, 98,250,199, 67,122, 84, 13,241,113,151, 41,178, 82,179,221,194,194,186,224,137, 71,101,123,211,217,102,216,176,
- 97, 27, 15,158,141, 37, 82,169, 72, 36, 96, 89, 97,171,122,161,238,129, 46,172,139, 10,112,137,139,185,123,122,196,136, 17,245,
-166, 76,153,210,218,145,188, 51, 12, 3,181, 90,141,141, 27, 55,130,177, 35,118,206,139, 56, 53, 82, 66,189, 11, 44, 68, 74,171,
-213, 98,207,158, 61,136,140,140,188, 76, 8,137, 40,250,200,101, 74, 41,114,114,114,144,148,148, 4, 95, 95,223,203,132, 16,161,
-237, 54, 98,113, 76,139, 86,213, 66,170,134, 15, 31, 62,196,108, 54, 11,108, 6,137,226, 4,230, 25, 18, 99,111,222,253,252,252,
- 14, 2,120,149,101, 89, 24,116, 58,195,255,190,252,210,246,241, 69, 91,146, 85, 26,166, 37,173, 28,199, 9, 46, 95,190, 44,180,
-244, 25, 0, 66, 0, 10, 0, 30,148, 82, 48, 12,115,205,142,242, 12,151,203,229,167,119,237,218,165,110,220,184, 49, 17,139,197,
- 48,155,205,184,126,253,122,224, 23, 95,124, 49,238,240,225,195,175, 17, 66,106, 23, 15,158,110,103,189,215, 57,113,226, 68,126,
-112,112,112,137,196, 49, 39, 39, 71, 16, 26, 26,218, 22, 64,204, 63,128, 25,159,146,146,210,251,213, 87, 95, 29,159,156,156, 28,
-109, 54,155, 63, 2, 80,215,195,195,227,114,223,190,125, 33,147,201,218,219, 67,180,202,170,119, 47, 47,175, 94,175,188,242, 10,
-150, 47, 95,142, 47,190,248,162, 19,165,244, 8, 33,164, 99, 78, 78,206,225,158, 61,123, 66,163,209,244, 46,137,104,217,219,150,
- 8, 33,161,109,218,180,249, 97,206,156, 57,170, 61,123,246, 32, 36, 36, 4,185,185,185,248,224,131, 15,188, 62,251,236,179, 99,
-132,144,118, 22,178, 85, 26, 38, 33,164,182, 68, 34, 89,255,211, 79, 63, 41,131,131,131,131, 69, 34, 17, 19, 28, 28, 12,173, 86,
- 11,157, 78, 39,153, 63,127,126, 61,153, 76,246,231,215, 95,127,189, 30, 64,223,114,218, 18, 3, 96,222,202,149, 43,199,143, 29,
- 59, 86, 51,100,200, 16,206, 96, 48, 60,181,192,150,203,229, 79, 45,174,195,194,194,236,206,123, 81,244, 12, 53, 0,141, 35,219,
-174,101,228, 61, 27,128,196,218,121,132, 66, 72,165, 82, 72,165, 82, 72, 36, 18,220,190,125,123,166, 84, 42, 93, 98, 59, 22,151,
-133, 73,254,154,180, 26, 16, 66,206,179, 44, 91,230,125,113,211,144,191, 99,252, 44, 33,205, 1,132,144,165, 0,218, 63, 25,242,
-153, 40, 15, 15,143,247,146,147,147, 31,217,139,233,231,231,231,158,151,151,247,181,175,175, 47,188,189,189,173,115,135,191,191,
- 63, 76, 38, 19, 82, 82, 82, 64, 41, 69, 86, 86, 22,228,114, 57,252,252,252,190, 30, 55,110,220,182,149, 43, 87,102,148,136,201,
-227,139,158, 3,103,124,202,178, 44, 3, 0,172, 64,169,156, 52, 29,168, 90,181, 42, 90,181,106, 5,157, 78,135,236,236,108,212,
-169, 83, 71, 64, 8, 25,198, 48,140,154, 82,250, 61,165,244,232,127, 80,235, 94,170, 49,252,236,226,251,162,132, 16,240, 60, 15,
-129, 64,240, 20,209, 42,126, 89, 72, 81, 81,123, 37,229,173,156, 12, 6,131,149,100,185,184,184, 88, 73,154,217,108, 46,141,104,
- 85,132,169,215,231,121,190, 58, 33,100,165,189,100,171,184, 12, 27, 54,236, 25,123,143,201,147, 39,199,167,166,166,210,215,187,
- 52, 80, 68,239, 75, 76,170,225,170,148,121,170, 84,213,164,174,110,154,140,140,140, 51, 0, 52, 14,252, 68,205, 70,141, 26,201,
- 54,236, 56, 17, 63,230,253,133,115, 27, 7,187,171,235, 7,120,184,250,184,200,196, 74,134,228, 75,205,166,120, 55, 55,183,144,
- 10,172,208, 0, 0, 26,141, 6, 2,129,224,165,208,104, 81, 74,205,132,144, 8, 66,200,229, 61,123,246,160, 89,179,102, 86,178,
-101, 33, 33,217,217,217,184,126,253, 58,218,180,105, 3, 0, 17,246,216,106,241, 60, 15,163,209, 8,163,209,104, 37, 48, 34,145,
-232, 25, 2, 99,249, 44,203,178,215, 42,152,133,185,174,174,174,109,218,183,111, 47,254,121,203, 22, 49,165, 52, 31, 79, 2, 95,
-231, 81, 90, 74,128,236, 98, 98, 54,155,173, 90, 54,161, 80,136,199,143, 31, 91, 39, 46,139,102,184,248,214,121,105, 34,145, 72,
- 62,252,229,151, 95,212, 77,155, 54, 37, 25, 25, 25,224,121,222, 58, 72,126,247,221,119,210,126,253,250,249, 95,186,116,233, 99,
- 84, 32,156, 13, 0, 82, 26, 33, 2, 0,181, 90,109, 6,192, 84, 6,166,217,108, 38, 45, 91,182,156,146,158,158, 94,175,176,176,
-112,190, 61,237, 8,192,239, 69,151,101, 76,249, 51, 58, 58,186,112,192,128, 1,178,106,213,170, 53,123,222,182, 26, 26, 26,218,
- 66, 40, 20,226,220,185,115,122, 0,150,149,117,212,213,171, 87,245,125,251,246,149, 4, 6, 6,182,112, 96,192, 13, 13, 15, 15,
- 63,228,229,229, 37,179,104,131,250,247,239, 47, 92,181,106,149, 42, 33, 33, 1, 70,163, 17,211,166, 77, 67,247,238,221,225,225,
-225,129,201,147, 39,123, 47, 90,180,232, 71, 0,141,202,192,148,138,197,226,141,247,238,221, 11,241,245,245,149,157, 61,123, 22,
-245,235,215, 71,122,122, 58,146,147,147,145,151,151,135,228,228,100,140, 26, 53,202,235,171,175,190,242,179, 67,147,101, 37, 89,
-171, 86,173,202,218,190,125, 59,187,122,245,106,149,237, 2,187,248,226,186,164, 69,181, 29,146, 37, 18,137, 32,151,203, 53, 89,
- 89, 89,217,207, 81, 69, 18, 0, 98, 91,146, 37,145, 72, 32,145, 72, 32,149, 74,159, 43, 46,235,191,100, 18,247, 39,132,220, 20,
-137, 68, 18,185, 92, 46, 98, 24, 6, 18,137,164,139,155,155,219,141,206,157, 59,215, 61,120,240, 96,172, 61, 56, 58,157,110,163,
- 68, 34, 17,122,121,121, 1, 0, 66, 66, 66, 80,191,126,125,228,231,231,243,217,217,217,208,104, 52,204,163, 71,143, 80, 88, 88,
-136,164,164, 36, 4, 5, 5, 9, 25,134,217, 8,224,181,146,240, 78, 93, 74, 90, 1, 96,133,229,222,211,211, 51, 5,128,204,114,
- 47,149, 74,225,239,239,143,132,132, 4,168, 84, 42,246,179,207, 62,235,187,101,203,150, 62,132,144, 97,148,210, 77, 54, 80,179,
-255,173, 54, 90, 22,146,101,251,250, 20,209,138,140,140,156,181,103,207,158,182, 37, 77,100, 69,251,181,165,106,178, 44,151, 61,
- 29,143, 16, 2,142,227,224,237,237, 13,185, 92, 14,185, 92,110,217,243, 7,199,113,207,224, 23,173,240, 29,206,172, 66,161,192,
-155,111,190, 73,191,255,254,251,241, 69,100,235,158,189,223,237,191, 60,218,170,197, 42, 46,181,107,215, 62,253,241,199, 31,247,
-250,227,143, 63, 18, 26, 7, 87, 19, 40, 18, 31,229, 73,213, 26, 13, 2,170, 68, 14,239,221,247, 42,158,156, 62,180, 87,238,229,
-230,230,202,106, 4,200, 13, 12,163, 35, 85, 36, 2,149,175, 66, 36,241,113,117,245, 23, 25,244,169,106, 87, 87,177, 94,175,207,
- 2,144, 89, 22,136, 90,173, 62, 32,145, 72,130, 88,150, 5,203,178,240,240,240,112,161,148, 66,163,209, 32, 32, 32, 64, 25, 22,
- 22,118, 71, 32, 16,128, 97, 24,228,229,229, 61,122,248,240, 97,151,242, 18,230,234,234,122, 64, 34,145, 4, 49, 12, 3, 66, 8,
- 88,150,181, 30, 92,176,252,207,178, 44, 8, 33, 40, 40, 40,176, 11,147, 82,122,133, 16, 18, 17, 25, 25,105, 37, 91,251,246,237,
- 67,215,174, 93,145,149,149,133, 27, 55,110,216,146, 44,187,182, 13,109,141,223, 41,165, 16,137, 68,184,125,251,246, 83, 91,218,
-150, 75,165, 82, 85,184,243,184,185,185,157,236,223,191, 63,126,248,225, 7, 74, 41, 37, 0, 20,132,144,250, 46, 46, 46,183,111,
-222,188,105,151, 29, 12,165, 20, 70,227, 95, 31,181,180,113,219,254,229, 0,153,238,210,168, 81, 35,146,157,157,109, 33,144,214,
- 5, 17,203,178,248,246,219,111,101, 77,155, 54,157, 33,149, 74,167,136, 68,162, 28,147,201,244,179, 78,167,155, 79, 41,205,122,
-153, 6,165,214,173, 91,191, 31, 23, 23,215, 61, 40, 40,104,215,115,144,120,218,164, 73, 19, 3, 0, 25,203,178,194, 74, 24, 40,
-217,162,182,165,179,144,125, 74,169,185, 81,163, 70,186,162, 73,158,181, 23,203,195,195,227,199,189,123,247, 6, 4, 5, 5,193,
-100, 50,193,108, 54, 35, 47, 47, 15, 81, 81, 81,208,235,245, 48,155,205, 8, 9, 9,193,167,159,126,170,123,239,189,247,164, 43,
- 87,174, 76,205,203,203, 27, 92, 14,236,123,219,182,109, 83,248,250,250,202, 10, 11, 11, 17, 19, 19,131, 70,141, 26, 33, 55, 55,
- 23,249,249,249, 40, 40, 40,128,209,104, 68, 78, 78,142,134,227, 56, 67, 57, 88, 51,109, 73,214,184,113,227,174,137,197,226, 70,
-239,188,243, 14,226,227,227,173,125,126,204,152, 49,240,246,246, 46, 62,214, 59,196,180, 4, 2, 1, 36, 18, 9, 68, 34, 81, 86,
- 80, 80, 16, 8, 33,210,216,216,216,138,108,197,169, 1,228, 8,133, 66,177, 45,193,146, 72, 36, 56,119,238,220,199, 98,177,184,
- 68,109, 86, 89,237,199,145,251,151, 96, 34, 95, 42, 18,137, 36,110,110,110, 34,155,121, 90,164, 84, 42,225,229,229,181, 28, 64,
- 55, 59,243,221,208,205,205,205, 58,190, 55,104,208, 0,113,113,113, 59,179,179,179,135,166,166,166,130, 97,152,141, 12,195,244,
-177,240,128,204,204, 76, 4, 6, 6, 54, 44, 13,175,101, 35,223,241, 32,212,170,209,170, 93,211, 77, 89,108,158,130, 90,173,198,
-195,135, 15,145,159,159, 79,239,222,189, 75, 38, 76,152, 64, 12, 6,195, 58, 66,200, 25, 74,233,131,178,184,200,191, 65, 42,100,
-163,101, 41,224,210,136, 85,113,226,101, 15, 33, 50, 24, 12,202, 70,141, 26,241,150, 9,220,114, 1, 32,165, 17,173, 34,205,129,
-195, 34, 20, 10, 85, 19, 38, 76,200,253,254,251,239,199, 17, 66, 86, 81, 74,239, 86,180, 0,119,109,255,201,251,139, 79,167,125,
-234,230, 87,173,198,148, 41, 51, 5, 61,122,244, 56,187, 97,195, 6,206,173, 86,183,142, 71, 15,108,242,254,250,131,169,251,246,
-238,221, 11, 60, 49,140,182, 87, 78,238,222,189,219,103,242,187, 19,241,233,135,239,237, 87,135,120,136,149,196, 77, 33,213,231,
-167, 41, 65, 11, 37, 53,195,187,239,216,181, 43, 9,192,165,178, 64,100, 50, 89,208,221,187,119, 67,108,137,132,209,104,132, 70,
-163,193,134, 13, 27, 60, 85, 42,149,167, 82,169,132, 64, 32, 64,253,250,245,237,213,152, 4,221,185,115, 39, 68,165, 82,161,160,
-160, 0,122,189, 30, 38,147, 9, 60,207,131, 16, 2,161, 80, 8,177, 88, 12,133, 66,225,208,201, 62, 91,178,181,111,223, 62,212,
-169, 83, 7,153,153,153,136,142,142,118,152,100,217,106,137,108,237,177, 4, 2, 1,126, 12, 14,198,152,196, 68, 43,129, 89,234,
-226,130, 79,121,190, 66,117, 95,175, 94, 61,122,234,212, 41,236,223,191, 31, 61,123,246, 36,191,253,246,155,145,227, 56, 81, 66,
- 66,130,221,218, 49,158,231,173,105,181,140,219,182, 4,203, 81,162,101, 54,155, 85, 98,177, 24, 58,157,206,186,181,111,123, 85,
-175, 94, 29, 90,173, 86,144,147,147, 35, 72, 76, 76,148,207,155, 55,239,157, 99,199,142,249, 2, 24,244, 79, 14, 68,223,127,255,
-125,208,152, 49, 99, 30, 11, 4, 2,218,181,107,215, 33,143, 30, 61,234,237,235,235,123,228,143, 63,254,248, 18, 64,168,163,120,
-158,158,158, 23, 5, 2, 65,128, 82,169, 20,109,221,186,213,148,155,155, 43,242,242,242, 74,177, 16, 91, 75, 89,155, 76,166,248,
-236,236,236,198,246,224,121,122,122,138,190,249,230, 27, 83, 70, 70,134,200,199,199, 39,197,130,163, 80, 40, 68, 91,183,110, 53,
-229,228,228,136, 52, 26,205,197,172,172,172,114,241,210,211,211, 7, 15, 27, 54,236,196,145, 35, 71, 60, 88,150,197,163, 71,143,
-144,145,145, 1,141, 70,131,141, 27, 55, 34, 40, 40, 8,219,182,109,211,106,181,218,209,255,251,223,255,102,228,229,229,217,227,
-234,161, 77,179,102,205,130,178,178,178,160,209,104,144,159,159,143,139, 23, 47,162,118,237,218, 72, 76, 76, 4,195, 48,208,104,
- 52,248,238,187,239, 10, 8, 33,218,114,198,142,222, 99,199,142,213, 0,192,216,177, 99, 53, 99,199,142, 45,113,130,107,209,162,
- 5,150, 47, 95,238,208,162,186,184,150,221, 66,138,108,200,145,174, 69,139, 22, 56,118,236,216, 84, 71,200, 17,165,212, 32, 20,
- 10,159, 34, 88, 54,255,155, 29,109, 67, 28,199,137,138,108, 68,137, 61,247, 47,129,180,149,201,100,162,226,111, 22, 20, 20,136,
-124,125,125, 91, 59, 64,124,221,101,178, 39, 10,167,160,160, 32,100,103,103,115, 6,131, 97,224,198,141, 27, 77, 0,208,168, 81,
-163,129, 28,199,233,204,102, 51, 43, 22,139,145,159,159, 15, 47, 47, 47,247, 82, 1, 25,124,244,251,207,243,124,138,219,104,249,
-250,250, 34, 34, 34, 2,122,189, 30, 73, 73, 73,136,138,138, 50,113, 28,183,249,251,239,191,231, 61, 61, 61, 71,190,254,250,235,
-236,165, 75,151,222, 6,240,126, 89, 92,228,223,162,205, 42,141,108, 89, 78, 29,182, 5,112, 12, 64, 59, 75, 38,109,183, 14,203,
-210,100, 57,178,202, 97, 89, 54, 43, 62, 62, 94,161, 80, 40,172,239,153, 76, 38,248,249,249,241, 60,207,147,226,191, 83, 65, 21,
-245, 83,100,107,250,244,233, 89,223,125,247,221, 80,216,105, 80,190,245,237,112,108, 40, 70,178, 86,124, 49,103,249, 55, 95,204,
-115,187,191,127, 29, 86, 47, 91,204,113, 28, 46,213,171, 87,175,117, 94, 94,158,192, 69, 97, 66,122, 22,246,225,137, 31, 45,106,
-103,133, 48, 0,214,158, 63,127,254, 82,183,110,221, 78,173,253,101,135, 91, 98, 76,204, 25, 73, 78,122,146,186,102,136, 64,228,
- 31,212, 39, 87,167, 19, 13, 28, 56,208, 19,192,235,101, 97, 49, 12,131,152,152, 24,196,198,198, 66,169, 84, 66,165, 82, 65,169,
- 84, 66,173, 86, 67,165, 82, 65,165, 82, 57, 92,134, 12,195,128,227, 56,108,223,190, 29,114,185, 28, 10,133,226,169,203, 66,178,
-158,167,110,186,118,237, 10,173, 86, 11,165, 82,105,221,238,116, 68, 44, 54, 90, 6,131, 1, 6,131, 1, 70,163,145, 3, 32, 20,
- 8, 4, 24, 21, 31,111,213,242, 56, 66, 96,138, 75,253,250,245,233,153, 51,103,112,234,212, 41,228,231,231,227,155,111,190,129,
-175,175,111, 7, 0, 51, 29,197,178, 49,210,231,114,114,114,132, 57, 57, 57, 86,237,160, 80, 40,180,106, 15,236,157, 28, 4, 2,
-129,117, 53,106,185,108,181, 90, 44,203,194,219,219, 27, 62, 62, 62, 88,177, 98,133,168, 90,181,106,221,255,201, 65,104,209,162,
- 69, 53,151, 46, 93,186,102,195,134, 13,251, 6, 15, 30,188,229,250,245,235, 35, 92, 92, 92,174, 29, 61,122,116,158, 68, 34,225,
- 43,216,191, 3, 18, 19, 19,189,108,223,226,121, 94,110, 54,155,173,196,182,160,160, 0,117,235,214,181, 27,239,230,205,155,114,
- 0,152, 55,111,158, 16,128,220, 98, 12,110,193, 44, 40, 40, 16,214,174, 93,219, 46, 67,112, 74,233, 29, 66, 72,235, 78,157, 58,
-157, 62,116,232,144,107, 80, 80, 16, 18, 18, 18,144,144,144,128,154, 53,107, 98,193,130, 5,249, 57, 57, 57, 45,139,200,213,111,
-118,102,219,207,213,213, 85,248,248,241, 99,152,205,102, 52,108,216, 16,223,125,247, 29, 6, 14, 28,136,186,117,235, 34, 39, 39,
- 7, 55,111,222,196,250,245,235, 93, 69, 34, 81,153, 99, 71, 97, 97,225,111,171, 86,173, 10, 44,174,209, 26, 50,100,136, 34, 37,
- 37,197,218, 38,231,204,153,243,212,184,236,200, 46, 67,209,214, 86,169, 87, 69,196,108, 54,171,165, 82,105,142, 68, 34, 17, 91,
-236,179,162,162,162, 28,214,102,217, 46, 0, 29,185,255, 39,197, 66, 90,139,139, 88, 44,134,143,143,143,221, 56, 18,137,132, 88,
-198, 70,179,217,140,236,236,108,206,215,215,215,186,189,127,249,242,101,174,106,213,170, 28,203,178,172, 88, 44, 6, 33, 4,114,
-185,188,212, 1,159,114,116, 78,143,129, 51,173,167, 14, 25,161, 66, 61,105,250,147, 69,255,229,203,151, 97, 52, 26, 17, 21, 21,
-101,250,223,255,254,151,152,149,149, 53, 9,128,224,192,129, 3,195,166, 78,157,202,122,121,121, 89,237,104, 75,226, 34,255, 54,
-178, 85,146,150,203, 50, 11, 29,139,140,140, 36, 69, 71, 43,137,133,224, 80, 74,159, 33, 87,165, 17,175,162,206, 71,202,235,116,
- 44,203, 98,255,254,253, 86, 66, 96, 57,117, 72, 41, 69,101, 19, 45,119,119,247,252,102,205,154,169,227,226,226,126,170,168, 38,
-107,197, 23,115,150, 47,156,251,153,155,246,214, 89,196, 39, 38, 65,155,106,186,116,242,218,195,157, 0,118, 2, 0, 86,214, 58,
-134,113,183,190,181, 23,179,150,167,188, 65, 61, 63,213,206, 87,187,117, 15, 28, 48,246,125,230,173,183,222,106, 53,108,216,176,
-236,193,131, 7,191,171, 84, 42, 67,141, 70, 99,230,142, 61,123, 98, 7, 12, 24, 80,141,227,184, 97,229,249, 28, 49,153, 76,143,
-250,246,237,107, 45, 91, 31, 31, 31,245,207, 63,255,236,173, 82,169, 48,100,200,144,180,216,216, 88,235,118, 81,110,110,238, 35,
-123,210,104, 52, 26, 31, 53,104,208,160,212,237, 66,139, 70,210, 17,204,162,186,180,158, 46,204,200,200,192,237,219,183, 33, 16,
- 8,208,188,121,115,156, 60,121, 18,173, 90,181,114,232,196,161, 78,167, 67, 80, 80, 16,116, 58, 29,242,243,243, 11, 0, 72, 54,
- 86,171, 6, 0,120, 59, 35, 3, 23,255,247, 63,156, 93,184,176, 66,237,168, 65,131, 6,244,220,185,115,184,118,237, 26,244,122,
- 61, 70,143, 30,141,162,109, 67, 0,232,236, 64,158,131,125,124,124,186,118,235,214,205, 15, 0,242,243,243,201,249,243,231, 33,
-149, 74, 65, 8, 65, 82, 82, 18,118,237,218,133,132,132, 4, 16, 66,224,234,234, 26, 64, 8,169, 70, 41,125, 88,198,196, 64, 30,
- 62,124,136,207, 63,255, 28, 60,207, 99,234,212,169, 8, 9, 9,177, 18,172, 71,143, 30, 97,222,188,121,224, 56, 14,159,125,246,
- 25,106,214,172, 9,147,201, 36,117,196, 79, 89,101,203,228,201,147,239,239,220,185,115, 95, 92, 92,220,107, 95,124,241, 69, 91,
- 66, 8, 63,101,202,148,207,213,106, 53,247, 60,184,153,217,185,184,125,239,145,149, 8, 21,191, 60, 61,220, 28,198,187, 27, 19,
-103,253, 62,199,217,226,113,112,119,115,117, 52,137, 5, 38,147, 41,191, 79,159, 62,154,237,219,183,147,154, 53,107,226,193,131,
- 7,150,197,105, 65, 5, 92, 58, 36,104,181,218, 16,150,101, 69,247,238,221, 67,213,170, 85,209,172, 89, 51,204,159, 63, 31,233,
-233,233, 48,155,205,240,242,242,226, 77, 38,211,101,131,193,112,188, 28,172, 57,227,198,141, 19, 1, 24, 95,164,217,170, 55,105,
-210, 36,126,241,226,197,184,124,249,178,117, 60,182, 53,134,119,116,235,208, 86,235,100,123, 69, 69, 69, 77, 21,139,197, 20,192,
- 57, 0, 14, 17,109, 74,169,161, 74,149, 42,197,177,205, 47,203,100,251, 34, 79, 50,250,250,250, 70,169, 84,170,238,153,153,153,
- 79,105,181, 90,182,108,105,244,246,246, 62, 97, 47,142, 82,169,204,100, 89,214, 29, 0, 18, 18, 18,160, 80, 40, 68, 49, 49, 49,
- 11, 9, 33,211, 0,160, 90,181,106, 11,181, 90,173,168, 90,209,120,234,227,227, 3,131,193, 80,170, 25,203,233,203,201,235, 0,
-172,179,153,123,147,178,179,179,101,139, 23, 47,206, 91,184,112, 97, 33,199,113,122, 0, 71,179,178,178,172,126,180,170, 86,173,
-154, 45, 20, 10,221, 52, 26,141,191, 13,212, 51, 92,228,191,176,125,104,235,176,148,150,240,165, 18, 53, 89, 37,145, 45,123,180,
- 18,132, 16, 20, 22, 22, 62,165, 29,177,156, 58, 44,137,104, 21, 77,232, 21,218, 58, 44, 34, 89,178,159,127,254,121,243,178,101,
-203, 78,217,251, 61, 91, 27,173,149, 95,206,253,194, 66,178,174,158, 58,132,223,162,179,211,167, 46, 92,178,180,162,149, 80,219,
- 83, 81,223,199,219,227,216,255, 22,204, 81,223,223,191, 30, 91, 86,126, 69,175, 94,184,208,244,194,133, 11, 67, 39, 78,156, 88,
-165,168, 97,105, 1,252, 9, 96,128, 61,167,116,210,210,210,158,178,143, 10, 9, 9,185,163,209,104,188,165, 82, 41, 98, 98, 98,
-242,110,220,184,225,240,150, 76,113,204, 74, 98,250, 79,145,172, 27, 55,110,160,125,251,246, 0,128,147, 39, 79,162,101,203,150,
- 14,145, 45,147,201,148, 85,171, 86, 45,171,118, 43, 59, 59,155, 7,128,177, 73, 73, 88,229,235, 11,129, 64,128,179, 11, 23,226,
- 19,147, 9,243,133,142,153,238, 52,108,216,144, 94,184,112, 1,177,177,177, 48,155,205,232,213,171,151, 45,201,114, 36,207,117,
-195,195,195, 15, 31, 61,122,212, 83,169, 84, 34, 63, 63, 31,121,121,121, 24, 62,124, 56, 6, 14, 28, 8,189, 94,143,173, 91,183,
-226,247,223,127,135, 74,165, 66,126,126, 62,242,243,243, 93, 35, 35, 35, 79, 19, 66,218,148,102, 91, 72, 41,165, 93,186,116,193,
-137, 19, 39,192,178, 44,154, 54,109,138,140, 12,235, 97, 32,120,123,123,151,244,140, 45,234,239,255,200,132, 36, 16, 8,104, 84,
- 84,212, 23,109,219,182, 69, 92, 92,220,107,141, 26, 53,250,102,196,136, 17, 9,207,139,235,234,162, 66,131,218,193,208,235,245,
-208,235,245,240,243,243, 67,110,110, 46,238,223,191, 15,189, 94, 15,111, 47,141,195,120, 17,117,107, 90,241,188,188,188,144,159,
-159,143,135, 15, 31,194, 96, 48,192,195,195,213,145,250, 15,236,210,165,203, 31,155, 55,111,118, 95,191,126,189,161, 93,187,118,
-226,111,190,249,134,168,213,106,164,166,166, 86, 52,203, 81, 39, 79,158, 12,234,212,169, 83,216,173, 91,183, 16, 21, 21, 5,131,
-193,128,136,136, 8,220,189,123, 23, 45, 90,180, 64, 94, 94,222,185, 11, 23, 46,252,110,199,164,192, 19, 66,102,140, 27, 55, 14,
- 22,178,117,226,196, 9, 36, 37, 37, 65,165, 82, 61, 67,180, 44,182,143, 98,177, 24, 0,252,236,212,156, 88, 79, 5, 22,105,158,
- 62,209,104, 52, 70, 0, 75,159,167, 45, 62,126,252, 88, 82,191,126,125,189, 84, 42, 21, 23,145,182, 37,255, 84,219, 46,161,222,
-159,235, 36, 99, 89,226,227,227, 51,201,195,195,163, 83,245,234,213,145,146,146, 34, 18,139,197,104,217,178,165,177, 73,147, 38,
- 70, 31, 31,159,183,237,197,145, 72, 36,183, 68, 34, 81,155, 39,139, 9, 14,143, 31, 63, 6,165,116,106,221,186,117,223,203,205,
-205, 69, 70, 70,134, 88,173, 86, 91, 23,213, 97, 97, 97,208,235,245,183, 28, 32,155,115,170, 86,173, 58, 67, 36, 18,205, 79, 75,
- 75,251,190,132, 50, 18, 55,104,208, 64, 45, 18,137, 96, 52, 26,159, 34,155, 37,113,145,127, 51,201,122,138,104,217,176,200,226,
-234,244,114,183, 13,237,181,209, 34,132,192, 96, 48, 64,161, 80, 88,183,164,108, 61,193,151, 68,180, 42, 34,129,129,129,104,214,
-172,153,108,203,150, 45, 63, 46, 94,188,248,116, 69, 48,182,109,222,228,235,194, 23, 4, 38,158,219,139, 59,215, 46, 97,231,205,
-172,244,169, 11,151,188,219,227,245, 65, 41,197,137,217,214,113,229,227,133,122, 41,234,250,123,187, 31,251,114,209, 66,181,246,
-214, 89, 36, 37, 39, 99,239,185, 11,151, 12,148,222, 4, 48,181,178, 42,219,246,244, 90, 69, 73,234, 11, 24,120,172,238, 29,210,
-211,211,113,243,230, 77, 11,201,138, 0,128, 86,173, 90, 93,182,144,173, 75,151, 46,161, 81,163, 70,207,184,119,120, 70,243,144,
-153,185,160,216,111,116, 2,224, 97, 33,252, 2,129, 0, 45,103,204,112,152,100, 17, 66, 40,199,113,208,106,181,150,149, 98,133,
- 72, 86,209,160,248,225,209,163, 71, 61,215,174, 93,155,179, 97,195,134, 12,158,231,133, 13, 26, 52, 8,104,220,184, 49,217,184,
-113, 35, 0, 96,192,128, 1,152, 58,117, 42,110,220,184, 1,133, 66,129, 86,173, 90,113,179,102,205,242,154, 52,105,210,219,120,
-226, 39,233, 25,225, 56, 78, 84,173, 90,181, 35, 0, 58,220,186,117, 11, 0, 78, 83, 74, 91, 90,158,151,245,204, 14,225,115,115,
-115,133, 42,149,170, 68,215, 16,162, 39,199, 58, 29,221,234,179, 98,158, 58,117,234,243, 47,191,252,114,231, 7, 31,124,112,239,
- 57, 49, 75,212,104,117,239,222, 29,133,122, 35,226, 83,178,193,113,102, 20, 26, 83, 29,198,179,213,104,117,239,222, 29, 5, 58,
- 3, 30, 39,105, 97, 54,115,200, 45, 52,219,219,142,228,175,190,250,234,129,159,127,254,217,231,204,153, 51,224, 56,142,191,123,
-247,238,195, 62,125,250,168,167, 76,153,226,110, 99,131,234,168, 44, 27, 52,104, 80,191, 83,167, 78,105,195,194,194,220,206,157,
- 59,135,212,212, 84,152,205,102,116,232,208, 1, 98,177,248,241,194,133, 11, 69, 0,150,217, 57, 57, 88,200,150,241,194,133, 11,
- 99,206,158, 61,235,230,230,230, 38,230,195,195,145,116,232, 16,182,111,223,254,204,119, 86,174, 92, 9, 0,118,121,225,183,104,
-156,206,159, 63, 95, 41, 4,171,248,118, 89, 69,183, 31,255,173,114,238,220,185,132,137, 19, 39,214, 86,171,213, 75, 91,183,110,
-221,222,221,221,157,113,117,117,141,242,247,247,127,175,126,253,250,143, 28,152, 39, 70, 40, 20,138,251,102,179,153,205,203,203,
- 67,126,126, 62, 0,192,108, 54,139, 25,134, 65,181,106,213,172,202,147,166, 77,155,194,199,199,135,139,142,142, 30, 97, 47,126,
-106,106,234, 83,167, 16, 75,144,113, 45, 91,182, 20,232,245,122,196,198,198,158,180,125, 80, 26, 23,121,217,165, 66, 65,165, 25,
-134, 1,165, 20,210,198,141, 75,237,112, 37,116, 62, 82,124,242,179,245,181, 97, 57, 93, 56,102,204, 24,235,103, 46, 93,186,100,
- 53,138,239,213,171,215, 83,152,231,207,159,127,134,108,217, 19, 49, 60, 53, 53,245,214,214,173, 91, 47, 44, 90,180,232,156,157,
- 5,100,197,180,216,104,245,123,115, 72,210,242,207, 63,189,190, 97,215,209,186, 73,133, 52,105,234,194, 37, 31, 20, 39, 89,246,
- 98,214,242, 81,214, 10,240,114,143, 90,188,104,161,139, 69, 59,246,243,229,228,108,152,233, 56, 7, 43,178,220,188,219,106, 22,
- 9, 33,124,101, 96, 86,160,193, 61,133,105,235,222, 33, 41, 41,201, 74,178,108, 28,150, 70,180,106,213,234,114, 17,201,178, 60,
- 51, 87, 36,157, 2,129, 0, 31,228,229, 65, 32, 16,160,221,236,217,232, 48,119,174,195,121,231, 56, 14, 2,129, 0, 33, 33, 33,
- 14,147, 44, 91, 76, 66, 72,203,130,130, 2,172, 95,191, 62,247,222,189,123,193,213,171, 87,159,180,110,221,186, 37,114,185,252,
-169,239, 20, 20, 20,160, 71,143, 30,248,254,251,239,209,165, 75, 23,211,136, 17, 35, 36, 12,195,116, 42, 43,157,177,177,177,227,
- 58,118,236,184, 82,167,211, 9, 50, 50, 50,198,217,251,172,188,188,111,221,186,245, 94, 72, 72, 72, 91,148,238,194,129, 7,112,
-230,121, 48,151, 46, 93, 10, 0, 97,207,131, 89,154, 70,235,151, 95,126, 1,207,243, 8,244,209, 64,175,215,163,120, 89,151,135,
- 89, 92,163,181,101,203, 22,240, 60,143, 42,190,110, 48, 24, 12,176, 24, 16,151,135,233,238,238,254,213,134, 13, 27, 2,162,163,
-163, 17, 31, 31,143, 37, 75,150, 60,202,202,202,234,150,149,149, 37,153, 53,107,214,177, 55,223,124,211,155,231,121,189,163,125,
-147, 82,170, 39,132,140,120,229,149, 87, 54,206,155, 55,239, 65,120,120,120,149,150, 45, 91,106, 50, 50, 50,210,174, 92,185,242,
-112,229,202,149, 74,179,217, 60,162,180, 45,169, 82, 48,121, 0,179, 8, 33,223,107, 52,154,157,177,177,177, 77,107,102,102,178,
-126,132,160,105,211,166, 79,153, 14, 48, 12,131, 19, 39, 78,128,231,249,251,246,148,103, 66, 66,194,236, 34,109,170, 67, 4,203,
-158,254,126,254,252,249,233, 69,216, 23,236,193,254, 59,198, 58,139,198,217,145,123, 71,211,249,237,183,223,198,163,152,127, 52,
- 71,211,121,254,252,249,216, 78,157, 58,205,245,246,246,158, 37,149, 74,145,150,246, 36,216,129, 69,243,104,153,175, 27, 55,110,
-140, 46, 93,186,224,206,157, 59,115,103,204,152, 17,251, 60,229, 89,180,224, 14, 6, 48,180, 99,199,142, 83,250,245,235,135,111,
-191,253, 22,148,210, 53,255, 5, 18, 92,110, 80,233,200,200, 72, 98,251, 90,180, 53, 19,119,255,254,125, 95,219, 14,103, 27,163,
-208,210,233, 44, 6,117,199,143, 31, 55,219,118,190, 82, 86,226,113,167, 78,157,242, 62,116,232,144,208, 82,161, 69, 70,157,124,
- 98, 98, 34,115,236,216, 49,171,118, 76, 32, 16, 32, 42, 42,202,108, 52, 26, 31, 59,154,225, 59,119,238, 44,171,140,130, 59,126,
- 35,246,189, 3,123,127,245,104,222,172,117,150,218,205,173,196,142,108,241, 32, 95,102, 3, 19, 48,243,191, 88, 48, 71, 99, 33,
- 89,191, 92, 78,206,210,233,185,246,183,210, 10,174, 86,118,101,231,230,230,198, 90, 78, 23,230,229,229, 61,126,137, 26,225, 21,
- 66, 72,132,175,175,239,101, 20, 59, 93,104,121,214,168, 81,163,103,158, 57,164, 54,225,121,184,184,184, 88, 7, 9, 71,237,178,
- 8, 33,212,178,149, 93,148, 46,242,156,121, 62,117,253,250,245,170,195,135, 15, 87,133,132,132,196, 16, 66,132,163, 70,141, 50,
-250,248,248,136, 78,158, 60,105, 2, 64,218,182,109, 43, 72, 78, 78,166, 9, 9, 9,218,158, 61,123,230,142, 25, 51,198,253,207,
- 63,255, 20,243, 60,127,184, 28,236, 7, 0, 58, 58,250,172, 60,233,215,175, 95, 12, 74,112, 28,250, 60,242, 34, 48, 45,162,205,
-202, 65, 76,108, 66,145, 7,115, 30,220,163, 20,171, 93,149,201,100,134, 54, 39,195, 97,141,214,253,135, 9, 69, 33,199, 56,112,
- 92, 98, 17,222, 19,131,120,154, 89, 96,143,182,160,213,210,165, 75,187, 49, 12,195,156, 61,123, 86,191,104,209,162,184,180,180,
-180, 94,148,210,199, 69,237,172,221,250,245,235,127,180,195,149, 67,105,117,127,147, 16,210,226,163,143, 62,122, 23, 64, 43, 0,
- 85, 0, 60, 6,112, 18,192,178,138,122, 48,167,148,166, 18, 66, 58,119,235,214,237, 16,203,178,213,108,250,145, 7,128,116,155,
-126,225,149,146,146,242,154,157,176, 75, 94,224,176,178, 4, 47,161,252, 91, 78, 50, 30, 62,124,120,118,239,222,189, 5, 65, 65,
- 65, 31, 7, 5, 5, 49,153,153,153,200,203,203, 3,195, 48,240,241,241, 65,157, 58,117,224,227,227,195,223,186,117,107,193, 71,
- 31,125, 84,174, 79,190,218,181,107, 7,155, 76,166, 26, 12,195, 4, 3, 8,166,148, 6, 19, 66,130, 1,184, 21,105,198,212, 85,
-171, 86, 21, 52,111,222, 28,205,154, 53,195,177, 99,199,176,109,219,182,117,148,210, 3,182,218,172,226, 92,228,101,144,155,141,
- 73, 91,194,227, 24,101,208,174,246, 69, 26,117, 43,130,208, 90,151,159,157, 31,202, 13, 42,253,204,128,147,153,217,165,132, 14,
-103, 11,248,212, 43,207,243,177,229,117,190,204,204,204, 46,239,189,247,222, 33,150,101,171, 89, 52, 85,102,179, 89,175,213,106,
-223,106,215,174,221,119, 66,161, 80, 98,139,203,243,252,163,148,148,148,191, 53, 86, 95,113, 63, 90, 93,186,245, 78,127, 94, 76,
-165,136,169,113,103,207, 15, 72, 73, 77,199, 47,151,147, 51,115, 13, 92,187, 59,105,249,215, 95, 68,250, 99, 99, 99,187,190,196,
-140,255, 74,105, 91,130,101, 61,179, 83,210,236,112, 72,154, 86, 78,250, 72, 17,217,170,148, 78,158,156,156,188,120,198,140, 25,
-157, 23, 44, 88,224,185,111,223, 62,117,209,111,160,111,223,190,169,215,175, 95,111, 13, 64,162,211,233, 14, 47, 88,176,192,115,
-206,156, 57,238, 0,220,139, 6,153,148,148,148,148,229,112, 74,153, 98, 50,153,226,235,212, 10,179,212,221, 83, 46, 29,108,255,
- 55,155,205,241,142,224,149,132, 99,123,207,113, 92,124, 57, 90,229, 15,154, 53,107,198,126,240,193, 7, 41,251,246,237,179, 4,
-210, 45,176,105,103,119, 80,134, 83, 82, 59,251,146, 30,192,162,162,171, 50,251,104, 62,128, 22,206,214,245,252, 99,157, 35,247,
-255,148,252,250,235,175, 51, 7, 14, 28,184,222,205,205,109, 83,112,112,112,152,183,183,183, 90, 38,147, 65,175,215,231, 26, 12,
-134,219,119,238,220, 25, 60, 99,198,140, 7,246, 96,173, 95,191,158, 5, 32,226,121, 94,202, 48,140, 2,128,154, 16,226,106, 33,
- 90,132, 16, 24,141, 70,196,198,198,226,147, 79, 62,225,142, 28, 57,242, 63, 0,159, 57,144,220, 38, 0, 60,109,198,113, 79, 0,
- 6, 60,113, 96,155, 86,164,217,124, 33, 66,120, 28,171,117,153,146, 91, 17,164, 84, 35,253,114,131, 74,255, 93, 29,174, 28,204,
-160,151,165,147, 12,211, 47,250, 9, 43, 23, 61, 21,231,208, 66,194, 74,188, 47,103, 3, 48,187,208, 60,113,217,129, 27,139,245,
-102,202, 27,205,252,200, 59,169,249, 55,255, 31, 15, 64,230,138, 60,179, 3,247,213, 74, 74, 31,169,196,188, 94, 39,132,188, 50,
-113,226,196,153,114,185,188, 41, 0, 20, 20, 20,156, 77, 76, 76,156,107, 57, 85, 88,222,115,167,148,193,154,211,210, 26,191,140,
-120, 6,131,225,189, 87, 94,121,229,107,142,227,190, 52,153, 76, 39,157, 53,229,148,151, 89,126,249,229,151, 7,150,121,185,127,
-255,254, 44, 0,108,221,186,213,225,211,192,195,135, 15,231,138, 2,153,235, 0,228, 3,200,193, 19,135,219, 4, 0,242,243,243,
- 51, 19, 19, 19,111,113, 28,119, 11,192,143, 21, 56,113,235, 73, 8,217, 77, 41,237, 94, 52,118,238,166,148,118,183,125,239, 69,
-139, 13,217, 42,105,188, 47,223, 24,222, 41, 79,100,235,141,191, 38,218,226, 4,170,188,251,210,228,118,114, 94,212,243,174, 96,
-157,242,175, 37,150, 49, 0,134, 85,244,185, 83,254,149,117,254, 24, 64, 47,103, 73, 56,229, 95, 55,255, 85,128, 96, 89,228,230,
-205,155, 47,204, 68,224,159, 22,219,109,194,146,182, 12, 45, 82,146, 54,203, 73,180,156,226, 20,167, 56,197, 41, 78,113,138, 83,
-202, 34,145, 69, 54, 90, 86, 18, 85,100,171, 85,156,100,217,146, 43,219,123, 2,160, 83, 41,171, 50, 71, 78, 19,116,170,192,170,
-239,176, 19,211,137,233,196,116, 98, 58, 49,157,152, 78,204,255, 95,152, 21,148,200,114,182, 14,247,188, 40,162,101, 49,126,191,
- 25, 65,102,213,190, 76,103,149,100, 12, 95, 22,209,122,202,216,179,178, 47, 0,157,156,152, 78, 76, 39,166, 19,211,137,233,196,
-116, 98, 58, 49,159,243,106, 63,109,218,180,233,120, 18,255,152, 78,155, 54,109, 58,165, 52,242, 9,141,161,145, 47,242,183,111,
- 52, 66,219,155, 13, 65, 45,215,141, 70,104, 91, 74,153,140,181, 92,182,239, 59,183, 14,157,226, 20,167, 56,197, 41, 78,113,202,
-203, 46,167, 23, 46, 92, 88,176,112,225, 66,139,225,123, 26, 0, 82,164,205, 74,123,145, 63, 92,180, 77, 88,238, 65,169,114, 67,
-240,252,221, 66, 8,241, 99, 4,162, 33, 66,145,164, 61, 40, 95, 7, 0,192,176, 55, 56,131,238, 15,179,217,184,137, 82,154, 88,
- 81,236, 90,132,212,170,169,145,253,174,231, 56, 81, 92,174,161,223, 45, 74,207, 87, 4,167, 63, 33, 45, 37, 98,241, 65,137, 70,
- 83,162,151, 66,125, 86, 86,161,222, 96,232,188,149,210, 83,206, 62,224, 20,167, 56,197, 41, 78,249, 55, 8, 33, 68,225,234,234,
-122,132, 97,152, 32,155,247, 80,210,255, 0,192,113, 92,146, 86,171,237, 76, 41, 77,255, 59, 49,139,137, 1,192,249,151,161,252,
- 28,221, 58, 20, 0, 79,197, 22, 42, 55, 98,118,184,175,178,117, 88,112,208,230,196,228,148,203, 57, 58,195,168,219, 9,185, 90,
- 71, 19, 41, 16, 73,199,104, 60,124,230,191, 49,226, 61,247,144,208, 48, 18, 24,232, 15, 80,224,113, 92,188,247,253,123,119, 59,
-110,217,176,108,178, 72, 42,253,196,168,211,253,224, 48,243, 36, 68, 17,164,148,156,252, 97,218,155, 26, 1,204, 24, 52,111,243,
-254,218,132, 4,222,124,226, 90,194, 33,146,165,113,119, 63,176,240,240, 97,153,107,145, 3, 80, 27,214,250, 36,190,222,213,171,
-178,143, 59,119, 62,208,159,144, 46, 78,178,245,159, 28,140,124,212,106,245, 36,161, 80,216,206,104, 52, 6,137,197,226, 56,142,
-227,162, 50, 51, 51,151, 82, 74, 19,156, 37,228, 20,167,148,219,135, 74, 13,100,254, 79, 6, 57, 7, 0,149, 74,117,145, 97,152,
- 0, 91, 18, 96,241,239, 88,220, 79,164,141,191,200, 7, 25, 25, 25,175,148,145,223, 96, 55, 55,183,239, 0, 52, 41,207, 97,114,
-209, 86,211, 5,173, 86,251, 86,209,233,227,146,240, 84,174,174,174,179, 9, 33,253, 25,134, 41, 55,160, 48,207,243, 28,165,116,
-107,102,102,230,103,148,210,220,210, 62,231,234,234,122, 56, 58, 58,186,137,151,151, 87,185, 90, 26,179,217,140,199,143, 31,123,
- 54,109,218,244, 56,128,240, 23,137,233, 8, 23,249, 39,165,172,147,135, 37,114, 30,203, 63,246, 70,204,230,121, 12, 89, 59,255,
- 45,255,164, 71,247,252,199, 45,248, 41, 52,220, 67,222, 46, 58,189, 32,217,222, 31, 20,203, 84,191,183,234,208,189,253,132,119,
- 63, 80, 92,185,126, 27, 7,143,157, 65, 78,190, 30, 44,195, 64,163,146, 35, 52,180, 6, 89,178,106,187,199,186, 21, 75,190,148,
- 41, 53,145,133,121, 89, 61, 29,201,144, 66, 46,248,100,106,159,166, 10,119, 55, 14,224, 57,124,216,173,129,226,227,221,151, 63,
- 1, 48,221, 97,146,117,228,136, 60, 53, 37, 5,115,252,252, 32, 48,155, 33,101, 24, 72, 9,129,148, 97,160,144, 74,209,117,205,
- 26,204,221,183, 79, 62,243,181,215,156,100,235, 63, 38, 42,149,106, 68,104,104,232,162,213,171, 87,187, 87,175, 94, 29, 10,133,
- 2, 90,173,214,227,206,157, 59, 13,223,127,255,253, 97, 46, 46, 46, 51,178,179,179, 87, 58, 75,202, 41, 78, 41,149,116, 52, 4,
- 80, 98,144,248,178,158,253, 93,194, 48, 76, 64, 66, 66,130,151, 92, 46, 7,199,113, 69,209, 0,120,235, 66,218, 54, 82, 78,145,
-163, 90,132,135,135, 27,203, 25, 55,190, 77, 77, 77,237,100, 27, 10,173,172,136, 59, 9, 9, 9,157,106,215,174,253, 45,128,206,
-165,144,151,217,239,190,251,238,164,186,117,235, 90,180, 64, 69, 81, 16,158,188,166,167,167, 99,226,196,137,214,223,224,121, 30,
-135, 14, 29,122,119,196,136, 17, 0,240,126, 25,121, 15,242,242,242, 34, 69, 1,197, 75,149, 89,179,102, 97,214,172, 89, 88,182,
-108, 25, 17, 10,133,154,114,202,179, 82, 48,237,229, 34,255,132, 6,171,184,135,248, 98, 31,219, 83, 44,222,225,158,103,136,150,
-221,141,147,242,123,231, 45, 93, 61,106,206,240, 86,100,237,251,157, 66,198, 47, 59,124,166,182,159,172,205,205,196,194, 56, 59,
- 52, 89, 35,155,183,121,173,221,196, 73, 83, 21, 63,253,122, 20,119,110, 93, 69,244,201,159,159,250, 76,227,206, 35,144,156,158,
-139, 17, 19, 62, 84, 18, 86,208, 78, 36,149,143, 52,234, 10,214,218,169,205,242,174,237, 38,127,167,121,211, 58,194, 4,217, 29,
-248,184,202,208,170, 81, 77, 97,224,129,107,239,212, 38,228,235,155,148,150, 27,171,176, 56,201, 90,253,230,155,104,109, 50,193,
-139,101,193, 18, 2, 22, 0, 67, 8,116,122, 61, 46, 12, 25,130,166, 27, 55,226,179, 93,187,228,179,123,244,112,152,108,201,229,
-242,117,133,133,133, 95, 84,192,113,219, 63, 57,120,134,170, 84,170, 79,114,114,114,134,188, 68,105,242, 5,144, 86, 66,124, 68,
- 17, 0, 13,165,212,161,200,194, 82,169,116,204,160, 65,131,150, 44, 95,190, 92,158,146,146,130,196,196, 68,112, 28, 7,169, 84,
-138,144,144, 16,114,248,240, 97,247,169, 83,167, 46, 86,171,213,146,156,156,156,175, 29, 72, 39, 35, 20, 10,135,187,185,185,245,
-246,246,246,246, 74, 75, 75, 75,203,204,204,220,165,215,235,215, 86,116,101, 95,132, 57,184,106,213,170,189,253,252,252,188, 19,
- 18, 18,210,227,227,227,127,215,235,245,235,138, 98,216, 61, 79,153,214, 71,145,183,122, 0, 73, 85,171, 86,189,241,240,225,195,
-212, 74,196, 76,172, 90,181,234, 77, 71, 49, 9, 33, 10, 0, 91, 0,248,149,243,209, 68, 0, 3,168,131,218,108,167, 84, 30,201,
- 42, 10,105,245, 20,161, 42,235,217,223, 45, 50,153, 12, 63,255,252, 51,132, 66, 33,132, 66, 33, 50, 51, 51, 17, 16, 16, 96,189,
- 23,137, 68,214,255,171, 84,169, 82, 46, 30,199,113, 77, 89,150, 69, 94, 94, 30, 56,142,179, 94, 89, 89, 89,160,148, 66, 34,145,
-128,227,158,132,115,178,121,222,180,140,114,236,239,231,231,135,159,126,250, 9, 6,131,225,153,231,106,181, 26,215,175,255, 21,
-100,132,101, 89, 52,107,214,140, 33,132,244, 47,139,104, 17,242,196,233,230,216,177, 99,193,178,236, 83,241, 44,109, 47,142,227,
- 48,107,214, 44,216,134, 38,251, 59, 49, 95,186,118, 93,134,135,120, 74,105, 18,128, 18,109,180,152,178, 64,195,125,148,111, 77,
-126,243,213,130, 25,163, 34,233,199,195, 58,211,143,222,108, 71, 95,107, 83,239, 87, 86, 32, 32,231,110, 62, 70,128, 11,176,110,
- 98,147,160, 64, 15,197,245,186,238,170,208, 18, 84,163,182, 1,165,253,228, 10,245,231,111,189,247,161,114,207,241,107,120, 28,
-247,248, 25,146, 5, 0, 23, 15,174, 67, 82, 98, 2, 46, 71,199, 99,240,200,183,149,106,181,230,115, 66,136, 95, 73,152,197,197,
- 69, 37,250,223,180, 1,173,164,121,166, 68,228,186, 2,108,176, 24, 66,121, 62,166,118,175, 47, 81,171, 68,139,202, 80,225, 90,
- 49, 37, 98,241,193,133,135, 15, 91, 73, 86, 75,189, 30, 18,142,131,153,227,172, 36,203, 96, 54,163,208, 96,128,111, 94, 30,238,
-143, 24, 1,106, 50, 97,198,206,157,114,137, 88,124,208,158,116,218,172, 0,186,169,213,234, 99,132,144, 80,123, 42,249, 69, 28,
-153,117,208,141, 71,168, 74,165, 58, 70, 8,121,237,101, 72, 39, 33,132, 33,132,204, 27, 53,106,212,165, 26, 53,106, 28, 45, 34,
- 86,150,103,130, 26, 53,106, 28, 30, 53,106,212, 21, 66,200, 44, 66, 8, 99, 39,166,191,159,159,223,252,229,203,151,203,239,222,
-189,139,132,132, 4,152, 76, 38, 12, 26, 52, 8, 28,199,161,176,176, 16, 6,131, 1, 95,124,241,133,194,221,221,253, 19, 66, 72,
-144, 61,121, 39,132,176, 46, 46, 46,235, 55,108,216, 48,246,225,195,135, 62,127,252,241, 7,115,237,218, 53,239, 47,191,252,114,
-132,187,187,251,198,162,128,171, 14,149, 39, 33,132,241,245,245, 93,251,219,111,191,189,117,253,250,245,128, 29, 59,118, 8,207,
-158, 61,235,187, 98,197,138,209,190,190,190, 27, 9, 33,108, 69,234,136, 16,210, 80, 46,151,119,156, 50,101, 10,127,250,244,233,
-132,211,167, 79, 39, 44, 89,178, 4,173, 91,183,110, 57,119,238,220,136, 10, 98, 54, 82,169, 84, 29,166, 76,153,194,159, 56,113,
- 34,241,220,185,115,241,139, 23, 47,102, 58,116,232,208,106,193,130, 5,245, 29,196,220,114,250,244,233,182,113,113,113,213,227,
-227,227,171,197,199,199, 87,141,143,143,175,154,144,144, 16,148,148,148, 84, 37, 57, 57, 57, 48, 53, 53, 53, 48, 42, 42,170, 21,
-128,205, 47, 91, 63,250,175, 99, 22,181,229,203,148, 82,104,181, 90,236,217,179, 7, 69,218,171,134,182, 36, 43, 39, 39, 7, 73,
- 73, 73,150,103,130,127, 32,157,224, 56,206, 74,164, 14, 29, 58,132, 81,163, 70, 65,171,213, 90,223, 19, 8, 4,214,255, 45,223,
- 41, 15,211,162,121,226, 56, 14,231,206,157,195,184,113,227,176,100,201, 18,108,222,188, 25,187,119,239,134, 86,171,181,146, 45,
-179,217, 92, 46,102,122,122, 58,120,158,183, 55,143,200,206,206,182,187,222,109, 9,144, 64, 32,120,134, 20, 89, 46, 71,218,210,
-243, 96,190,204, 82,154, 71,120,123,196,218,184,139, 84,117,237,108, 31,134, 85,245,249,100,209,164,254, 50,112, 70, 80, 83, 33,
- 96, 44, 0,140,121,224, 13, 5, 32, 34, 25, 96, 42,132,167, 68,139, 45, 19,194,212, 31,253, 20,115,171,150,167, 58,242, 86, 90,
-206,254, 18, 73,133, 64, 52,184,255,240,119,221,227, 83,115,144,144,146, 13,150,249,107,222,139,232, 52, 28, 2,150,193,249, 3,
- 79, 20, 87, 12,203, 34, 59, 95,143,172, 60, 35,250, 13,159,228,246,195,146, 79, 7, 3,248,162,172,140,212, 35, 36,164,133,159,
- 91,159,218,181,171, 48,183, 36,209,136,120,237, 36, 56, 30,160, 39,122,160, 97,166, 23, 27,126, 80,220,167, 30, 33,243,175, 81,
-122,183, 44, 28,137, 70, 35,115,173, 95, 31,115,252,252,208,198,100,130,136, 82,188,154,146,130,171,147, 38, 65,191,125, 59, 24,
- 0,162,215, 95, 71,251,165, 75,113,220,207, 15, 62,133,133,200,154, 60, 25,158,251,247, 67,164, 86,203, 28, 41,124,145, 72,100,
- 92,189,122,181,223,232,209,163,143, 17, 66,218,189,204,154, 45, 66, 72,168,155,155,219,177,207, 63,255,220,123,230,204,153, 73,
-149,132,233,173, 80, 40,182,230,231,231, 79,114,116, 69, 91, 68,156,230,173, 92,185,114,252,216,177, 99, 53,163, 71,143,166,247,
-239,223,215, 0,176,104, 71, 60, 91,183,110, 93, 99,245,234,213, 62, 77,154, 52,121,119,220,184,113, 34, 66,200,140,242,180, 60,
- 74,165,114,194,234,213,171, 61,210,211,211,145,151,151,103, 29,100,227,227,227, 33,147,201,172, 65,213,133, 66, 33, 62,255,252,
-115,247, 9, 19, 38, 76, 2, 48,169,188,244, 74, 36,146,225,223,125,247, 93,205, 46, 93,186, 8, 98, 99, 99,193, 48, 12, 36, 18,
- 9,222,124,243, 77, 97, 65, 65, 65,208,156, 57,115,198, 2,248,206,145, 50, 16, 10,133,131, 87,173, 90, 21,218,178,101, 75, 65,
-116,116, 52, 90,180,104,129,243,231,207,227,245,215, 95, 23,230,230,230, 86,155, 58,117,234,168,210, 86, 88,101,105,157,228,114,
-121,221, 63,254,248, 35, 46, 48, 48,208, 58,176, 84,171, 86,141,139,140,140,212, 70, 71, 71,135,157, 57,115, 38,163, 69,139, 22,
-143, 29,192,244,151,203,229,225,123,247,238, 77,154, 51,103, 78,199,149, 43, 87,246, 2,128,166, 77,155,254, 62,119,238,220,163,
- 90,173,182,206,137, 19, 39,180,173, 91,183,142,183, 19,210,207,215,215,151,155, 56,113,162,178,172, 15,173, 89,179, 38, 11, 64,
- 21, 66, 72,245,162, 64,219, 78,249, 27,132, 82,106, 38,132, 68, 16, 66, 46,239,217,179, 7,205,154, 53,195,158, 61,123, 16, 25,
- 25,121,217,150, 12, 92,191,126, 29,109,218,180, 1,158, 4,146,255, 71,108,181, 56,142,131, 64, 32, 64,124,124, 60,214,172, 89,
-131, 5, 11, 22, 32, 36, 36, 4, 38,147,233, 25,178, 85, 68,136,236, 82,193,152,205,102, 92,184,112, 1,155, 54,110,196,140, 79,
- 62,129, 74,165, 2, 0, 24,141, 70,104, 51, 51, 33,149, 74,173,100,172,156,178,220,122,239,222,189, 73, 1, 1, 1, 79,109, 25,
- 90, 94,139,198, 44,240, 60, 15,179,217, 12,157, 78,135, 37, 75,150,152, 41,165, 91,203,233,147, 86, 82, 52,105,210, 36,232,245,
-127,197, 33,175, 95,100,147, 92,181,106, 85, 52,104,208,192,122,207, 48, 12,181, 23,243,135, 87,234,162,208,230,211, 97,179, 22,
- 3, 0, 2, 2, 2, 16, 22, 22, 6, 95, 95,223, 82, 49, 75,226, 34,255,180, 20,183,201,170,144,141, 86,105,145,178,111, 61, 76,
-254, 98,244,212,197,139, 21, 82, 86,248, 94,239,122,168,162, 17, 1, 50, 55,136,218,124, 4,162,121,178,144,167,218, 7,192,193,
-143,240,101, 31, 45, 51,246, 71,221,175, 53,220,220, 60,239,107,181,207, 24,225, 9, 69,210,246,193, 53, 67,201,227, 36, 45, 4,
- 2, 1, 20, 46, 30,120,165,247,251, 96, 89, 6, 74,141, 7, 8, 87,248, 23, 35,102, 88, 8, 88, 1,180,185,133,168, 90,189, 38,
- 35,145,202,218,151, 71,180,212, 46,194,239,166, 12,124, 69,154, 97,142,135,172,138, 20,156,101, 58,245, 19,131,113,207,197, 7,
- 93, 67,100, 99,127,191,246, 29,128, 14,246, 20, 12,107, 54,195,139,101, 97,164, 20, 87, 39, 77, 66,196,170, 85,184,108, 33,134,
-171, 86,225,242,216,177,112, 19, 10, 33, 97, 24, 80,147,233,153, 61,125, 59, 39, 32,244,238,221, 27,233,233,233,222,159,124,242,
- 73,133,201,150, 76, 38,219, 68, 8,233, 38, 20, 10,141,132, 16, 48, 12, 99, 13, 2,110,249,223,104, 52,138, 88,150,221,155,158,
-158,238,240,150, 31, 33, 36,212,213,213,245,216,233,211,167,189, 21, 10, 5,102,205,154, 85, 41, 36, 75,165, 82,157, 29, 53,106,
- 84,149, 77,155, 54,237, 39,132,116,181,151,108, 21, 39, 89,171, 86,173,202, 90,179,102,205, 15,182, 91,132,148,210, 36, 66,200,
-218, 38, 77,154,188, 53,118,236, 88, 13,128,241,227,198,141, 67,121,100, 75, 34,145,180, 11, 14, 14,126,106, 85, 43,145, 72, 0,
- 0, 10,133, 2, 46, 46, 46, 16,137, 68,208,235,245,136,136,136, 32, 98,177,184,149, 61,105, 86,169, 84,221,250,244,233, 35, 56,
-117,234, 20,146,147,147,225,226,226, 2,133, 66, 1,142,227, 48,102,204, 24,209,210,165, 75, 95,115,148,104, 5, 6, 6,246,234,
-216,177,163,224,198,141, 27,120,248,240, 33,244,122, 61,238,220,185, 3,181, 90,141,161, 67,135,138, 22, 45, 90,212,195, 81,162,
- 5,160,238,216,177, 99, 83,108, 73,150, 69, 20, 10, 5, 9, 13, 13,213,186,187,187, 55, 2,240,216, 17,204,183,223,126, 59,117,
-225,194,133,109, 14, 31, 62,252,145,229,205,195,135, 15, 79, 5,128,175,191,254,250,132,167,167,103, 35, 0,246, 18, 45, 80, 74,
-249, 55,222,120,227,145, 88, 44,134, 80, 40,132, 88, 44,126,234, 18,137, 68, 96, 24, 70,101,233,206,255, 85, 82, 67, 8,105, 2,
-224, 43, 60, 57,145,245, 9,165,244,220, 75, 66,182,174, 16, 66, 34, 34, 35, 35,173,100,107,223,190,125,232,218,181, 43,178,178,
-178,112,227,198, 13, 91,146,245, 79,217,104,129,231,121, 8,133, 66, 44, 94,188, 24, 70,163, 17, 63,254,248, 35,182,109,219,246,
-212, 24,170, 86,171,177,108,217, 50,135,182,185, 56,142,195,250,245,235,241,209,212,169, 86,146, 85,180,184,134,143,183, 55,220,
- 61, 60, 16, 19, 19, 83, 46,209,202,204,204,252,108,215,174, 93, 40,203, 24,126,215,174, 93,214,255,109,141,225,237,154,231, 88,
- 22,122,189, 30,175,190,250, 87,168,216,183,223,126,219,250,191, 86,171, 5,203,178,150,178, 32,246, 98, 22, 82,160,183,244,175,
-247,186,125,240,193, 83, 26,186,210, 48, 75,227, 34, 47,163,118,171,132, 83,135, 17,148,210,203, 69, 38, 18,145, 0,246, 20,109,
- 39,150,109,163,117, 55, 53,127,185,128, 36, 53, 88, 56,177,243,240, 42, 94, 46,160,121, 41, 16,117,248, 12,127,166,201,176,120,
-201, 94, 0,192,135,111, 54, 70,253, 78,243, 96, 88,215, 25,147, 90,176,226, 33,241,250, 41, 0,102, 62,219,241,248,240, 0,127,
- 63,252,121,255, 58, 4, 44, 11,177,139, 7, 92,220,188,193,155, 13,200, 78,125,136, 99, 59,190, 5, 0,172, 92,191, 21, 12,195,
- 64, 32, 96,161, 55,112, 8,169,226, 7,158,231,195,203, 74,103,109, 66, 94,233, 27,234,219, 44, 48, 72, 67,110,184, 62, 68,168,
-151,251,211, 31,104, 40, 65, 72,162,146,180, 80,202,154,214, 38,228,149,155,148,158, 46, 87, 3,193, 48, 96, 8,129, 92, 36,130,
-126,251,118, 92, 46, 34, 88, 0,112,121,236, 88, 48,191,254, 10,149, 68, 2,150, 16, 8,138, 84,208, 21,233,232, 0, 16, 22, 22,
-134,149, 43, 87,122, 79,152, 48,161, 66,100, 75,167,211,205, 87,171,213, 29,215,174, 93,235,221,167, 79,159,103,158,223,191,127,
- 31,109,218,180, 73, 73, 78, 78,158,255, 60, 36, 75,163,209, 32, 46, 46,238,185,247,213, 45, 36,235,208,161, 67, 65, 1, 1, 1,
-136,136,136,240,252,240,195, 15, 29, 33, 91, 51,109, 73,214,184,113,227,174, 1,240, 34,132, 20, 39, 42,164,232, 89, 61, 27,178,
-149, 13, 96, 81, 25, 43,209, 32,133, 66,129,212,212, 84, 12, 31, 62, 28,119,239,254,165, 0,245,243,243,179,174,244, 98, 98, 98,
-224,233,233, 9, 66,136,151, 61,121,246,244,244,244, 54, 24, 12, 24, 57,114, 36,226,226,254, 50,103,244,247,247,183,148,169,135,
-163,229,232,237,237,237, 93, 88, 88,136,214,173, 91, 67,167,211, 1, 0, 6, 12, 24, 0,161, 80,136,212,212, 84, 8,133, 66,143,
- 10, 84,143, 71,100,100,100,169,174, 85,212,106,181,209,213,213,181,150,131,152,238, 61,122,244, 72, 88,181,106,213, 51, 7, 91,
-206,159, 63,223,211,205,205,237,176,155,155, 91,168,131,152,188, 45,169, 18,137, 68, 79, 17, 45,161, 80, 8,134, 97,120,252,247,
-229,127, 0, 44,167,224,190, 7,208,224, 37,210,108, 89,201,214,190,125,251, 80,167, 78, 29,100,102,102, 34, 58, 58,250, 31, 39,
- 89, 54,196, 4, 2,129,192,186, 72,150, 74,165,136,136,136,176,146, 44, 66, 8, 10, 10, 10, 32, 16, 8, 44,227,181, 93,131, 95,
- 86, 86, 22,124,125,124,160, 82,169, 80, 51, 36, 4,247,138,198, 17,203,255, 18,137, 4,132, 16,152,205,230,242,202, 48, 23, 79,
-108,173,222,175,236,234,177,144,162, 50, 85,199,126,126,224,121,222, 50,230,211,202,192,244,240,240, 64, 94, 94,158,189,152, 47,
-165,148,162,209,138, 0,112, 25, 64, 36,165,116, 85,145, 97,252, 83,238, 29,218, 2, 56, 6,155, 35,149,132, 16,166,150,183,114,
-205,194, 9, 29,135,119,174,227,129,194,180,135,144,170, 60, 64, 52, 85,177,120,201, 94,220,120,144, 1, 0, 88,188,249, 34,126,
-154,211, 13,144,185, 33,204, 37, 29, 62, 42, 65,159,146,136, 22, 1, 37, 60,165, 16,176, 76,209,222, 45, 11,150,101,160, 77, 75,
-194,210,207,198, 23,145,172,109,216,115, 34, 26, 1,193,117,254,218,199, 37, 4,160,101, 55,110, 79, 23,209,170, 9,125,155,203,
- 82, 72, 18, 52,126,114, 72,165,197,248,163,171, 8,164, 42,131,137,237, 2,228, 23,118,233, 86, 1, 40,119,162,144, 50,204, 19,
-227,119, 66, 74, 52,100, 99,138,158,177,132, 60,241,254,202, 59, 62,166, 91, 8,139, 82,169,132,183,183, 55, 22, 44, 88,224, 61,
-109,218,180, 31,225, 96, 0,106, 74,233, 29, 66, 72,187, 49, 99,198, 28,203,200,200,240, 14, 11, 11,131, 82,169,132, 82,169, 68,
- 74, 74, 10,250,245,235,151,146,156,156, 92, 81,109,217,198, 81,163, 70,121,139, 68, 34,220,191,127, 31,110,110,110, 86,130, 88,
- 81,146,165, 86,171,207, 30, 62,124, 56,168, 70,141, 26,184,125,251, 54,106,213,170,133, 45, 91,182,120, 14, 26, 52,200, 46,178,
- 37,147,201,122, 23, 17, 39,140, 29, 59, 86, 51,118,236,216,182, 0,218,150,247,219, 99,199,142,213,188,255,254,251, 61,202, 34,
- 90, 66,161, 48, 78,171,213,250,200,100, 50,236,216,177, 3, 74,165, 18,114,185, 28,126,126,126,208,106,181,144,203,229,160,148,
-194,100, 50, 89, 6,139, 12,123,242,157,150,150,150,194,113, 92,224,254,253,251,145,150,246,151,111,189,160,160, 32,100,103,103,
-131,227,184,116, 71,203, 50, 49, 49, 49,133, 16, 18,248,231,159,127, 34, 54, 54, 22, 93,187,118,197,175,191,254,138,198,141, 27,
- 3, 0, 12, 6, 67, 69,156,248,113, 44,203,210, 50,234,143, 0,112,173, 76,204,162,201,203, 33, 76,158,231,121, 11,201,178,125,
-181, 37, 95,229,252,230,127, 69, 92,108,215, 9, 47,107, 34,187,118,237, 10,173, 86, 11,165, 82,249, 82,217,231, 88, 52, 90,179,
-103,207,198,248,241,227,225,237,237,141,143, 62,250, 8, 2,129,192,122,217,238, 12, 56, 34, 94,222,222,101, 62,183, 24,196,151,
- 51, 94,170, 92, 92, 92,102, 51, 12,211,159,181,163,224, 56,142,227,120,158,223,154,157,157, 93,166,123, 7,139,225,186, 61,117,
- 97, 91, 6,229,164,245,185, 49, 75,226, 34, 47,131, 20, 63,109, 88,146, 70, 11,127,157, 58,124, 38, 20,144, 37,151,199,138, 84,
-118,199,108, 73,214,231,227,219, 15,239, 92,199, 21,191, 31, 57, 7,145, 49, 11, 48,228,150, 81,195, 38, 16,145, 2,222, 46,194,
-128, 18, 43,129, 97,111,199, 39, 36,194,221, 85, 89, 68,178,138, 46,134, 65,253, 58, 79, 22,179,123, 78, 68, 35,160,122, 29, 8,
- 88, 22, 2,150,133, 82, 38, 65, 74,114, 18, 4, 2,230,118,105, 63, 91, 79, 64,250,246, 13, 13,172,234,234, 46, 68,186,167, 1,
-190,222,242,146, 63,216, 72,133, 0, 95, 49,186,184, 75,131,234, 9, 72,223,114,136,139,149,104, 25,205,102,136, 94,127,221,186,
- 93,120,121,236, 88, 68,172, 90, 5,174, 87, 47,228, 27,141, 79,169,138, 29, 21, 75,131,180, 16,162,153, 51,103,166,100,100,100,
- 12,174,224,234,241, 78,102,102,102,187, 79, 62,249, 36, 37, 61, 61, 29,114,185, 28, 73, 73, 73,207, 69,178, 0,160,176,176,112,
-232,170, 85,171, 82,142, 29, 59, 6,165, 82, 9,149, 74, 85, 97,162,101,209,100,125,246,217,103, 85, 2, 3, 3, 17, 19, 19, 3,
- 23, 23, 23,184,187,187,163,126,253,250, 56,117,234,148,103, 96, 96,224,254, 34,131,217,178,210,244,219,170, 85,171,178, 0, 96,
-213,170, 85, 89,132,144, 40, 66,200, 10, 66,200,247,197,174, 21,132,144, 40,219,207, 22, 22, 22,238, 44, 11,219, 96, 48, 68, 69,
- 71, 71, 83,185, 92, 14,150,101, 97, 52, 26, 33,149, 74,173,245,149,147,147,131,194,194, 39,219,220,151, 46, 93,130,201,100, 58,
-105, 79,222,115,115,115,247,173, 91,183,206, 20, 24, 24,136,122,245,234,161, 81,163, 70,104,209,162, 5,130,130,130, 48,123,246,
-108, 67,126,126,254,190, 10, 16,173, 61, 91,182,108, 49, 5, 6, 6,162, 81,163, 70,144, 72, 36,168, 95,191, 62,252,252,252,176,
- 96,193, 2, 67,118,118,246,190, 10, 84,211,227,235,215,175,179,101,144, 92, 53,128, 20, 7, 49,227, 46, 92,184,192, 54,111,222,
-252,247,226, 15,154, 54,109,250,187, 82,169,116, 1,224,168,221, 31,181, 37, 87, 18,137,196,122, 89,222, 23, 8, 4,255, 31, 52,
- 90,147, 0, 92, 3, 16, 3,224,163,151, 41, 97,182,134,239, 25, 25, 25,136,142,142,198,165, 75,151,208,188,121,115,156, 60,121,
- 18, 40, 50,144,255, 7,211, 7, 74, 41,132, 66, 33,194,194,194,240,254,251,239, 99,239,222,189,184,115,231, 14, 76, 38,147,149,
- 8, 89,108, 50, 29,209,104,137, 68, 34,120,123,123,195,100, 50, 89,181, 89, 0,112,239,238, 93, 8, 4, 2,240, 60, 15,131,193,
- 80,174, 70,203,197,197,101,246,234,213,171,223, 77, 79, 79,247, 77, 75, 75,243,178,189, 82, 82, 82,188,146,146,146,188, 18, 18,
- 18,188,226,226,226,188, 30, 61,122,228,245,240,225, 67,223, 47,190,248,226, 93, 23, 23,151,217,246,206, 65,245,235,215,199,219,
-111,191,109,189,150, 47, 95,110,189,142, 29, 59,230,176,241, 58,203,178, 8,155,181, 24,221,210,168,245,218,235, 73,172,215,141,
- 15,199,149,133,249, 20, 23,121,105,218,114,209,105, 67,219,192,210, 37,204,193, 73,148,210, 85,150,237, 66, 91,231,165,197,141,
-225, 1, 0,225, 62,242,121,159,143,105, 51,252,213, 90, 46,248,237,200, 69,204,217,249,224,118,200,112,207,176, 26,174,105,224,
-211,162,241,225,155,141,177,120,243, 69, 0, 79,182, 14,249,212, 27,160,153, 49,160,170, 64, 60,212,166,151,184,237, 96, 54,232,
-142, 62,184,127,183,125, 88,221, 38, 76,114,122,222, 83,199, 63, 35,218,245, 3, 33, 4,254,213,235,128, 21, 8,192,178, 12, 4,
- 44, 11,141, 90,138,232, 63,255,228,245,133,133, 71, 75,194,108, 71,136,192, 71, 41, 94,254,102,151,250,210, 68,113, 42, 60,125,
- 21, 16, 9,159,144, 0,250,160, 95,177, 25, 66, 0,212, 85, 97, 68,130,187,236,104,138,110,121, 59, 66,126, 63, 86,138, 1, 38,
-207,243, 80, 74, 36,208,233,245, 40, 52,155,209,110,233, 82,235,118, 33, 67, 8,174, 0,168,183,116, 41, 78,111,223, 14,181, 88,
- 12, 72, 36,118,159, 10, 41, 73,163,149,146,146,130, 1, 3, 6, 60, 23, 33,178,213,108, 77,152, 48,225,216,130, 5, 11,188,103,
-206,156, 89,105,152, 31,125,244,209,177,205,155, 55,123, 87,171, 86,173,194,141, 85,169, 84, 78,229,121, 94,179,104,209,162,228,
- 47,191,252, 18,197,237,201,138,136,142, 68,163,209, 44, 6,208,190, 12,168, 57,227,198,141, 19, 1, 24, 95,164,217,170, 55,110,
-220,184,211,148,210, 25,197,202,119,214,202,149, 43, 7,216,108, 49,174, 0,176,180,172, 52,230,228,228,124,255,254,251,239,143,
- 60,126,252,184,135, 84, 42, 5, 33, 4, 34,145, 8, 53,107,214,180,158,162, 17, 10,133,160,148,226,131, 15, 62, 72, 79, 77, 77,
-181,203,189,131, 94,175, 95, 63,103,206,156,246,133,133,133, 65, 35, 70,140, 16,185,186,186, 34, 37, 37, 5, 95,125,245,149, 97,
-253,250,245,113,249,249,249,142,218, 82,193,100, 50,173,255,244,211, 79,219,229,229,229, 85, 31, 61,122,180, 40, 59, 59, 27,133,
-133,133,152, 50,101,138, 97,237,218,181,241,133,133,133, 14, 59,252,109,209,162,197,253, 71,143, 30,181, 42, 40, 40,200,148,203,
-229,197,181,125, 68,161, 80, 52, 1,176,209, 17,204,136,136,136,152,199,143, 31, 55,159, 55,111, 94,148,201,100, 18,158, 63,127,
-190,151,133,100,125,243,205, 55,199,164, 82,105, 71, 56,110,180,207, 75, 36,146,167, 52, 88,197,255, 23, 8, 4,255,121,141, 22,
-165,244, 24,158,184,204,120,169,164, 56,201,186,113,227, 6,218,183,127,210,165, 79,158, 60,137,150, 45, 91,226,228,201,147,104,
-213,170,213, 63,234,222,193, 66,180, 4, 2, 1, 6, 13, 26,132, 78,157, 58,161, 74,149, 42, 79,157, 54,180,252,239, 8,217, 48,
-155,205,168, 91,183, 46,244, 6, 3, 68, 34,145,117,107, 82, 32, 16,192,211,203, 11,247,239,223,183, 75,163,197, 48, 76,255,222,
-189,123, 51, 55,111,222,196,192,129, 3,177,105,211,166, 82, 63, 59,100,200, 16,252,252,243,207,232,221,187, 55, 51,125,250,244,
- 50,221, 59, 88,140,208,237,201,147,101,158, 46, 79,163, 87, 89,152,182, 92,228,101, 19, 27,215, 14, 37,181,249,177, 37,180,175,
- 85, 79, 17, 45, 27, 39, 97,168,238, 41, 31,209,169,166, 0,191, 29,189,136, 57,191, 61, 94,207, 81,186, 99,199,229,204,221, 31,
-181, 4,140, 91,223, 68,253,126, 27,159,108, 23, 2,224, 83,111,192,184,117, 8,136,220, 3, 39, 18,132,200, 46, 52,238, 41,185,
-225, 25, 55,253,250,227,183,239, 55,255,174,149,167,175,151, 11,180,217,133, 86,178,117,249,216, 54, 0, 64,223,113,243, 33, 96,
-159,108, 41,170,149, 82,200, 68, 44,182,111,248, 58,221,104,212,149,216,186,114,133,204,248,233,175,212,116, 17, 43, 76,200,241,
-161,168,227,249,215,161, 63, 82,125,219,179,132,171,161, 43, 60,110,100,226,205, 26, 74,245,215, 55,179,198, 3, 88,254,204,132,
-152,149, 85,152,245,231,159,178,174,171, 87,227,252,208,161,240,231, 56, 68,249,249,193, 77, 40,132,139, 68, 2,134, 16, 20,238,
-222,141,211, 59,118,192, 91, 34, 1, 84, 42,152,231,206,133, 62, 58, 26,166,220,220, 66, 71,137,214,189,123,247,158, 91,235, 84,
- 18, 49,154, 54,109,218,143, 25, 25, 25,131, 43, 19,115,232,208,161,199,142, 28, 57,226, 93, 81,156,220,220,220,201, 0, 38, 87,
- 66,122,120, 66,200,140, 34,199,120,227,199,142, 29,171,185,112,225,194, 72, 66,200,119,150,213, 4, 33,196,107,212,168, 81, 99,
-138,145,172,114, 79, 29, 82, 74, 31, 43,149,202,185,147, 39, 79,158,255,229,151, 95, 42, 45,134,239, 87,175, 94,133,217,108,134,
- 80, 40, 4,199,113, 24, 53,106, 84, 94, 70, 70,198,226,210, 60, 58,151,128,107, 38,132, 12,153, 63,127,254,168,175,191,254,186,
- 59,203,178,158, 28,199,165, 21, 22, 22,238, 47, 44, 44, 92, 85,145, 83, 87, 69,229, 48,108,230,204,153,195,150, 44, 89,210,155,
- 97, 24, 47,179,217,156,158,155,155,187,171,176,176,176, 66,190,185, 78,159, 62,157,246,221,119,223, 61, 72, 75, 75, 11, 15, 8,
- 8,200, 86, 42,149, 6,131,193,192,202,100, 50,181, 66,161,136, 0,112, 6,192, 45, 71, 48, 47, 93,186,148,188, 98,197,138, 88,
-189, 94, 31,182, 98,197,138, 19,106,181,250, 8, 33,132,136, 68, 34, 87,153, 76,214, 30, 64, 20,128,123,142, 96, 50, 12,195,219,
-106,175,138,219,103,137,197,226,255, 47, 54, 90, 47,157,216,186,119, 72, 79, 79,199,205,155, 55, 45, 36, 43, 2, 0, 90,181,106,
-117,217, 66,182, 46, 93,186,132, 70,141, 26, 93, 38,132, 8,255,238,147,135,182, 26, 45, 11,161,170, 82,165,138,245,222,246,178,
-177,209,178, 75, 56,142,131, 72, 36,130, 64, 32,128,175,159,159,245,183, 40,165,184,127,255, 62,180, 90,173, 93, 68,139,101, 89,
-150, 16,130,129, 3, 7,218,245,187,111,188,241, 6,162,162,162,192,218,201, 10, 89,150, 69,213,170, 85,237,218,121,129,157,246,
- 84, 44,203, 34, 32, 32,160,194,152,182, 92,228,101, 34, 88, 37,253, 95, 18,169, 42, 73, 74, 52,134,143, 73, 45,156, 55,228,171,
- 83,211,111, 37,235,118, 68,167, 20,188, 15,128,110,189, 33, 63, 88,223,147,237,220, 57, 52, 30,250, 85,173, 64,212, 79,156,183,
-209,188, 36, 16,133, 55,226,121,127,204,250,253,118,178, 25,100, 81, 41,137, 72, 20, 73,229, 51, 54,172,254,230,203, 81, 19, 62,
- 80,222,136, 73, 65,118,158, 30, 44,203,216, 14,158, 16, 8, 88,168, 21, 82, 4,250,184, 96,243, 15, 95,229,230,230,100,205, 44,
- 45,238, 97, 21,149,104, 92,199, 38, 53, 36, 34,223,124,132,213, 27, 0, 86,250,151,147, 89,154, 92,202,238, 96,203,131,120,237,
-113,190,244,215,199,249,227, 74, 36, 90, 6, 67,231, 79,186,116, 57, 48,103,239, 94,121,211,245,235, 17, 51,106, 20,252, 10, 11,
- 33, 41,218, 74,100, 8,129, 82, 36,130, 82, 36,122, 66,178,150, 44, 65,161,217,140,165, 67,135, 22,232, 13,134, 46, 14,106, 36,
- 68,109,219,182,173, 52,146,101, 75,140,224,160,157,151,189,100,171, 83,167, 78,199, 40,165,146,151, 96, 37,111, 33, 91,198, 11,
- 23, 46,140, 57,113,226, 68, 12,158, 14, 44,154,117,226,196,137,152,209,163, 71,147, 53,107,214,172, 5,240,169,189, 14, 60,243,
-242,242,190,209,104, 52,104,211,166,205,167, 11, 23, 46,116,111,220,184, 49,188,188,188,144,155,155,139, 75,151, 46, 97,210,164,
- 73,218,156,156,156,133,153,153,153, 95, 58,152,102,174, 72,115,179,170, 50,203, 1,192,186,162,171, 82,228,173,183,222,186, 26,
- 19, 19,147,225,233,233,217, 76, 36, 18,213,195, 19, 59,160,100, 0,107, 29, 37, 68, 22, 25, 63,126,252,159, 49, 49, 49,233,254,
-254,254,205,139, 48, 53, 0, 18, 0,172,174, 0,102,226,197,139, 23, 3,154, 52,105,194, 8,133, 66,202,178, 44,132, 66, 33, 21,
- 8, 4,180,200,174,134, 2,192,174, 93,187, 36, 0,180,112,202,223,221, 55,173,238, 29,146,146,146,172, 36,203,198, 97,105, 68,
-171, 86,173, 46, 23,145, 44,203, 51,243, 63,148, 86,204,153, 51, 7, 43, 87,174, 68,121, 30,205,139, 78,247,145,242,240, 44, 26,
- 45,142,227, 96, 52, 26,113,227,198, 13,171,207, 46,203,118,161,197,181,131,217,108, 46,243,180, 58,199,113,156,193, 96,192, 47,
-191,252, 98, 23,217,250,233,167,159,160,211,233,192,149,195,224,108, 93, 49, 52,104,208, 0, 90,173,214,122,216, 39, 34,226, 47,
- 87,121, 70,163,209, 33,226,106,193, 12, 11, 11, 67,122,122, 58, 60, 60,158,156,199, 9, 28,250,151,178,199,156,255,223,244, 31,
- 92,150, 70,139,216,235,146,160,129, 70,227,162, 23,155,118,246,172, 35,105,215, 63,194, 5,213,125, 84, 16,138,164, 72,204, 49,
-227,240,173, 28,172, 62,150, 28, 87,104,226,186,223, 73,205,191, 94, 22,142, 84,225,178,191,241, 43,157, 90, 14, 29, 51, 73,145,
-167,231, 16, 27,251, 8,105,169, 73, 96, 8, 3, 95,255, 0, 4, 5, 85,133, 76,204, 96,211,170, 47,243, 47,159, 62,114, 42, 55,
- 71,219,181, 52,172,238, 26,241,233, 37,175,183,108, 30, 28,172, 34, 48,155, 0,206, 4,152, 77, 0, 95,244,106,121,143,127,186,
-205,221,188,153, 69,167, 95,209,158,221,157,101, 40, 49,102, 85,127, 66, 90,106,220,220, 14,204,218,181, 75,206, 27,141,200,152,
- 60, 25,114,179, 25,210,162, 85, 9, 0, 64, 34,129,121,238,220, 39, 36,107,200,144,130,236,172, 44,135, 67,240,120,122,122,174,
- 75, 79, 79,255,215,121,134,119,119,119,255,164, 34,110, 34, 94, 96,154,188, 0,100, 81, 74,141, 37,172,172, 61, 45, 90,174, 10,
-224, 86,245,244,244,156,206, 48, 76, 11, 74,169, 59,195, 48,153, 60,207,159, 73, 77, 77,253,130, 82,122,223, 57,165,254, 99,245,
-109,241, 12, 95,222, 62,118, 42,128,247, 0,228, 82, 74, 99,157, 37,247,183,215, 83, 67, 60, 57,133, 85,106, 8, 30,252,131, 39,
- 15,221,221,221,207, 29, 56,112,160,113,245,234,213, 25, 91, 51, 6,139,175, 60,203,246,150, 64,240, 68, 31,113,252,248,113,243,
-192,129, 3,207, 36, 39, 39,183, 41, 13, 83,173, 86, 31,188,118,237,218,171,217,217,217,207, 16, 42, 91, 79,241,150,251,252,252,
-124, 76,152, 48,225, 80, 78, 78, 78,137, 33,120, 52, 26,205,146, 47,191,252,242,221,190,125,251, 50, 22,119, 20,182,151, 37, 92,
-144,229, 50, 26,141,216,184,113, 35,255,245,215, 95, 47,203,202,202, 42,117,235,208,207,207, 47, 46, 49, 49, 49,192,226,106,193,
- 30,167,162, 85,171, 86, 77,138,141,141,245,251, 59, 49,255,173,132,171,184,118,139, 56,226,251,137, 16, 66,194,188, 20, 3, 40,
-208,159, 1, 95,151, 33, 68,108,166,184, 3,138,131,114, 65,193,119,151, 18,169, 93, 91,103, 34,185,124,162, 74,233,250, 89,223,
-193,111,187, 87, 13, 14, 33,222,190,254, 32, 96,144,146,156,128, 71, 15,238,210,157, 63,126,155,145,159,163,157, 93, 80,144,247,
-109, 89, 56,181, 9, 9,174,166, 22,109, 21,115, 8,133, 37, 31,197,226, 83, 61,195, 48, 1, 24,133,204,237,216, 92,211,128,155,
-101,108,251, 88,200,214,140,157, 59,229,226,208,208,103, 28,197,241, 60, 15,125,116, 52,150, 14, 29, 90, 33,146,229, 20,167, 56,
-229,185, 7,180,234, 40,223, 71,150, 9, 64,252, 63, 25,188,248,255,121, 29,189,180, 65,165, 9, 33, 10, 55, 55,183, 35, 44,203,
- 6, 89, 52, 50,182, 54, 67, 37, 4,148,142, 77, 73, 73,233, 72, 41, 45, 40, 3, 51, 88,165, 82,125,203,113, 92, 83,123,130, 74,
-179, 44,123, 62, 55, 55,119, 98, 89, 65,165, 95,196,169, 67, 15, 15,143,251,143, 30, 61, 10,182,156,162,182,157, 43,139,151, 3,
- 0,220,187,119, 15,109,219,182,125,148,148,148, 84,245,239,196,124, 89,165, 20, 63, 90,207,175,209,122, 1,141,220, 79, 36, 81,
- 14, 19,203,164, 29,120,147, 57, 12, 4, 16, 8,133,183, 13,186,194,163,250,194,188, 13,165,109, 23,254,157,210,159,144,150, 18,
-177,248,160, 72,173,150,149, 84, 78,166,220,220, 66,189,193,208,217, 73,178,156,226, 20,167, 56,197, 41,255, 34, 2, 28,234,230,
-230,118, 64, 40, 20, 74,108,201,100,241,255, 45, 98, 54,155,117,105,105,105, 93,203,218,125,121, 17,152,255,153,242,118,148,104,
-237,217,179,135,218,235,189,149, 16,210,201,158,152, 85, 54,134,111,229,250,206,248,167, 49, 95, 96,222,203,245,138,235, 0,102,
- 91, 60, 57, 30, 59, 59, 50, 50,114,214,191, 32,157,149, 89, 71,149,138,105,169,115,123,113, 29,193,180,183, 77, 57,152, 78,187,
-218,253,203,128,105, 79, 95,170, 96, 58,203,108,163, 21,172,247, 50,251,210, 75,148,206,202,172,163, 74,193, 44,222,126,236,193,
-117, 20,211,158,190, 84,129,116,150,219,238, 95, 22,204,231, 29, 67,202, 72,103,169,109,212,222,182, 84, 74,221,151, 59, 55,189,
-172,154, 44, 0,176,248,211, 42,174,209, 42,205, 32, 94,224, 40,201,122, 17,137,183,157,116, 96,167,159,146,127, 2,179, 34,132,
-203,145,180, 86,162, 28,171,108,204, 98,229, 89, 89, 50,171,104, 64,143,130, 29, 14, 71, 29,201,123,101,212,123,177,188, 86, 10,
-174, 45,102,101,149,101, 73,131, 98,101,166,243, 69, 96, 86, 86, 95, 42,142, 89, 25,237,190,164,122,127,129,117, 84, 89,233,172,
-148,190,244, 34,218,124, 9,237,231,185,113,139, 99, 86, 70, 95, 42,142, 89, 25,237,254,239,192,172,140,190, 84, 18,102,101,180,
-251,210,234,254,223,170,153,178,108, 23, 22, 17, 46, 82, 2,249,124,106,251,208, 66,188,152,138, 20,218,139,144, 23, 17, 72,178,
-178, 9,209,139, 34,155,123,246,236,161, 69, 76,255,165,199,172,228, 58,154, 85,132, 89,153, 43,155,118,149, 85, 71, 47,162,189,
-219, 98, 86, 22,126,113,156,202,168,167,146, 48,159, 55,189,165,164,179,210,243,254,188,237,254,239,194,172,228, 58,170,148,190,
- 84, 12,179, 93, 37, 47, 6,218,217,220,207,170, 76,204,202,234, 75, 37,164,243,185,235,169, 36,204,231, 77,111, 41,233,172,244,
-188, 87,198, 28,242,162,112,255, 41,141,214,173, 8, 66, 41, 83,114,155, 40,114, 88,106,189, 42,164,209,122,145, 36,235, 69, 77,
-106,149,137,253, 34,180, 58, 47, 74,243, 86, 89, 90,157, 18,112,163, 42, 17,238, 88,101,167,179, 40,125,228,101,118,122,231,236,
- 75,206,190,244,255,169, 47,149,212,110, 34, 35, 35,103,237,217,179,231,179,151,169,157, 23,199,172, 44, 66, 84, 66,222,159,171,
- 47, 21,255,110,101,244,165,114, 48,201,139,200,127,101,247,167,191, 83,163, 85, 26,201, 42,237,153,224,101,201,128,165,145, 84,
-242,202, 4,149,172,129,121, 97,249,174,228,116,182,123, 17, 26,194, 23, 32,149,158,206,162,149,242,103, 47, 32,239,255,150, 50,
-117,246, 37,103, 95,122,233,250, 82,177, 54,217,174, 18, 53, 69,149,170,121, 46,142, 89, 25,191, 97,139, 81, 89,109,244, 69,231,
-189, 50,251,210,139,168,251,127,155,252,223, 0, 44,215, 33,254,211,200, 76,208, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
+137,
+ 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163,
+ 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 10, 79,105, 67, 67, 80, 80,104,111,
+116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247,222,
+244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, 17,
+ 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225,123,
+163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, 17,
+224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, 7,
+190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8,128,
+ 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39,127,
+230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, 69,
+ 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, 48,
+ 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120,153,
+178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121,153,
+ 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234,191,
+ 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37,238,
+ 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229,228,
+228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93,129,
+ 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, 88,
+ 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, 0,
+176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128,104,
+131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, 68,
+160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100,128,
+ 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, 61,
+112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, 33,
+193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, 70,
+186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100,116,
+ 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196,108,
+ 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, 18,
+129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, 81,
+194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, 55,
+ 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201,218,
+100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83,226,
+ 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161,182,
+ 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17,221,
+149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, 25,
+119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, 10,
+149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83,227,
+169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89,195,
+ 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205,217,
+124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156,116,
+ 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72,171,
+ 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, 83,
+217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, 76,
+111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, 53,
+113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15,140,
+105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, 76,
+199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184,101,
+ 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17,167,
+185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23,103,
+183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58,222,
+154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, 23,
+103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245,157,
+155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229,209,
+ 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97,239,
+ 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67,127,
+ 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101,246,
+178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, 14,
+133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119,209,
+220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63,198,
+ 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, 23,
+152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22,140,
+ 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236,145,
+188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, 49,
+131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7,201,
+107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, 43,
+205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57,178,
+ 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77,107,
+129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, 27,
+ 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,
+210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151,205,
+ 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, 97,
+215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73,251,
+179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29,210,
+ 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233,247,
+ 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, 98,
+ 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103,242,
+207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139,231,
+ 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187,156,
+187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61,221,
+189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65,217,
+ 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, 5,
+143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203,174,
+ 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, 30,
+190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83,208,
+167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 32, 99, 72, 82, 77, 0, 0,122, 37, 0, 0,128,131,
+ 0, 0,249,255, 0, 0,128,233, 0, 0,117, 48, 0, 0,234, 96, 0, 0, 58,152, 0, 0, 23,111,146, 95,197, 70, 0, 3, 40, 76,
+ 73, 68, 65, 84,120,218,236, 93,119,120, 20,197, 3,125,187,183, 87,114,119,201,165, 55, 18, 72,161, 67, 0,105, 10, 72,239, 66,
+ 40, 22, 4, 17, 69,108, 63,105, 22, 4, 65, 17,165,131, 34, 85, 69,196, 6, 40,210, 68, 16, 80,138, 72,239, 69,122,135, 0,233,
+ 61,151,235,109,231,247, 71,110,207,203,113, 45, 16, 80, 96,222,247,237,119,183,237,237,204,206,236,236,219, 55,141, 33,132,128,
+130,130,130,130,130,130,130,130,162,242,193,210, 91, 64, 65, 65, 65, 65, 65, 65, 65,241, 31,193,134, 13, 27, 42, 98,129,117,246,
+151,211,190,180,251,175,115,222,197,184,147, 74,228,108,103,231,252,248, 62, 9,103,187,255, 42,167, 16,223, 10,240,118,174, 72,
+ 62,170,172,251,233, 20, 78, 82,217,225,188, 91,156,149,245, 28,185, 9, 39,185, 11,233,254,241,125, 18,206,118,255, 53, 78,215,
+252,227, 39,111,133, 56,253,204, 83, 21, 13, 39,169,236,112,222, 45,206, 59,125,142,188,132,147,220,105, 94,242,144,246, 31,227,
+ 33, 1, 33, 4,220, 93, 20, 89,126, 35, 53, 53,149,113,226,103,254,171,156,206,247, 65,224,175,204,176, 86, 34,118, 84, 54,167,
+203,253,172, 44,124,156,154,154,202,108,216,176, 97, 39,128,118,149, 25,247,202, 72,119,151,184, 86, 10,239,109,136,172, 10,113,
+ 86, 86,190,191,219,156,149,245, 44,185,114, 86, 70,190,119,151,238,119, 49,141, 42, 43,156,149,242, 44,221,141, 60,239, 38,255,
+220, 49,175, 43,103,101, 60, 75,174,156,149,145,239,239, 5,103,101, 60, 75,238, 56, 43, 35,223,123, 74,251,135,205,160, 98,111,
+231,166,221, 69,167,172,253,127, 89, 16,221, 45,177, 89, 1, 7,230, 95,231,172,228, 52,250,216,206, 89,153, 95, 55,237, 43, 43,
+141,238, 70,126,119,230,172, 44,126, 87,158,202, 72, 39,119,156,119, 26, 94, 15,225,172,244,184,223,105,190,191, 87,156,149,156,
+ 70,149,242, 44,185,112,182,175,228,143,129,246, 78,235, 31, 87, 38,103,101, 61, 75,110,194,121,199,233,228,142,243, 78,195,235,
+ 33,156,149, 30,247,202,120,135,220, 45,222, 7, 26,119,171,250,172,178, 57, 43,200,253, 64,113, 86,176,122,166,243, 93, 72,251,
+127, 53,156,149,201,233, 26,198,202,172,238,185,155,225,172, 76,206, 10,132,245,129,227,188,223,210,253,191,120, 63, 61,241,221,
+ 73,181,148, 39,119,244,110,132,179, 50, 57,253,228,126, 32, 56,239, 32,237, 31, 40, 84,184,234,240, 94, 8,184, 74,254, 50, 65,
+ 37, 59, 48,119, 83,184, 86,102, 56,219,223, 13,135,240, 46,160,210,195,105,255, 82,254,232, 46,196,253,126,185,167,244, 89,162,
+207,210,127,238, 89,114,201,147,237, 43,209, 41,170, 84,231,217,149,179, 50,174,225,204, 81, 89,121,244,110,199,189, 50,159,165,
+187,145,246, 20,119,224, 66, 80, 78,202, 73, 57, 41, 39,229,164,156,148,243,161,229,124,224, 64, 8,161,195, 59, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,220, 71,240,218, 70,171, 74,149, 42, 27, 20, 10, 69, 13, 79,251,181, 90,109,
+ 86, 86, 86, 86, 7,122, 27,255, 61,208, 52,162,184,143,192,226,159, 94,206, 60, 0, 98, 95, 40, 40, 40, 40, 30,104,120, 20, 90,
+ 50,153, 44,249,220,185,115,181,120,158,135,205,102,131,213,106,117,252,154, 76, 38,180,109,219,182,194, 13,233,163,163,163,119,
+137, 68,162,196,138,156, 99,179,217,110,228,228,228,180,246,114,200, 62, 0,201, 12,243, 79,155, 64,225,191,167, 95, 0,153, 22,
+139,165,137, 55, 78,134, 97,146, 93,249, 60,112, 9,255,189,114, 6, 7, 7, 31,225, 56, 46,222, 29,151,167,255, 60,207, 95,205,
+203,203,107,117, 47,211,232, 97, 70,116,116,244, 46,142,227, 42,156, 63,179,179,179, 61,230,207,216,216,216,227, 44,203, 86,169,
+ 0,165,136,231,249, 11, 89, 89, 89,173,189, 8,145,125, 0,146,189,145,184,230, 39,134, 97,210,109, 54, 91, 51, 95,207,145, 55,
+ 46, 55,121,212, 23,167, 67,100,113, 28, 55, 35, 42, 42,234, 13,157, 78,103, 0, 64, 68, 34, 17,113, 10, 27, 0,192,106,181,230,
+ 21, 23, 23, 55,160, 57,145,130,130,226,161, 16, 90, 60,207,179, 70,163, 17, 23, 47, 94,132,135,249, 16,109,183,113,189, 90, 71,
+255,220, 26, 21, 20, 21, 13,171,217, 12,101, 68,164,131, 59,231,236,105, 88, 45,102, 88, 77, 38, 84,107,222, 66, 8, 3,234,213,
+171, 39,242,193, 25, 63,115,230,204,168,160,160, 32, 24, 12, 6, 24, 12, 6, 24,141, 70, 24, 12, 6,152, 76, 38,152, 76, 38,152,
+205,102,152,205,102, 88,173, 86, 24,141, 70,108,219,182,205,102,177, 88,188,114, 78,157, 58, 53, 74,165, 82, 57,248,132, 69,224,
+ 20,120, 45, 22, 11, 12, 6, 3,182,111,223,238,149,147,227,184,248,204,204,204, 40,137, 68, 2, 66, 8,120,158, 7, 33,164,220,
+226,138,234,213,171,155,189, 5,242, 46,165,209,195,140, 90, 83,151,111,140, 10,150,203, 96,229,121,164, 54,170,238,216,113,245,
+155, 85, 32, 86, 27,120,171, 21, 53,135, 15,114,108,175, 91,183,174,215,252, 73, 8, 73,152,186,124, 99,136,191,156, 5, 5, 5,
+250, 58,117,234,100,162,108,112, 63, 79, 66, 43, 94,175,215, 71,217,249,111, 17, 68, 44,203,150, 91, 54,111,222,140,212,212, 84,
+ 95,113,143,127,251,237,183,163, 44, 22, 11, 76, 38, 19,140, 70, 35, 44, 22, 11,172, 86,171, 99,177,217,108,142,197,100, 50,225,
+224,193,131,254, 58, 89, 51,187,116,233, 50,100,227,198,141,202, 95,127,253, 85,153,152,152, 8,137, 68, 2,145, 72, 4,145, 72,
+ 4,150,101,193,113, 28, 30,123,236, 49,134,102, 65, 10, 10,138,135, 70,104, 25,141,198,107,141, 27, 55, 38,246,255,113, 50,153,
+ 76,226,242,149, 91,165,102,205,154, 23, 92,207,243, 85, 93, 21, 20, 21,141,113, 85,195, 0, 0, 19,174, 23, 56, 94, 16,159,180,
+122,196,113,204,164,140, 18, 0,128, 92, 46, 7,227,252, 25,237, 1, 74,165, 18, 93,186,116,129, 84, 42, 69,179,102,205, 32, 22,
+139,221, 46, 18,137, 4, 98,177,216,231, 77, 97, 24, 6,129,129,129,152, 56,113,162, 32,146,160, 12,144, 97, 68,171,102, 8, 0,
+193,215,167, 47,193,196, 19,112, 28,231, 88,252,225,148, 72, 36, 56,117,234, 20, 56,142,131, 72, 36,114,252, 10,255,215,175, 95,
+143,103,158,121, 6, 28,199, 65, 46,151, 3, 62, 70, 14,118, 78, 35,147,201, 20, 43,149, 74,205, 0, 4,113, 38, 97, 24, 38,230,
+118,210,232, 97, 70,176, 92,134, 23, 23,174, 5, 0,220,156, 51,220,145,118, 7,135, 78,112, 28,147,240,218,179, 96, 24, 6, 98,
+177, 24, 44,203, 86, 26,103, 97, 97,161,126,192,128, 1,123,130,130,130, 54,171,213,106,248, 16,112,184,121,243, 38, 56,142,243,
+152,223, 89,150,197,236,217,179,113,249,242,101,191,226,110, 48, 24,176,120,241, 98,216,108,182,114,188,194,127,215,109,126,138,
+172, 41, 93,187,118, 29,180,113,227,198, 80,134, 97,240,249,231,159, 67, 34,145,160, 71,143, 30, 8, 15, 15,199,150, 45, 91, 32,
+145, 72, 48,102,204, 24,154,249, 40, 40, 40,188,149,121, 98, 0,143, 0,136,180,155, 8,165, 0, 66,156, 14,201,179,255, 70, 10,
+235, 12,195, 28,118,195,211,220,126, 76, 30,195, 48,135,157,214, 77, 0,164,110,182, 23, 0,144,219, 23, 35,202,220,255, 20,167,
+235, 8,231,193,211,117, 57,160,108,254, 33, 0, 59, 0,180, 79, 77, 77,221, 9, 0,217,217,217, 79,100,103,103, 3, 0,146,147,
+147,207, 93,184,112,161,142,160,121,236,213, 83, 18,171,213, 90, 75,168,170, 18,220,162,206,157, 59,123,253,194,183,154,205,183,
+ 8, 16,119, 90,202, 93,117,133, 39, 1, 99, 54,155,241,236,179,207, 2,128,199,151,142,243,226,135,118,131,201,100, 2,199,113,
+168, 93, 53, 18, 31,118,107,140, 71,137, 5, 90, 13, 3,107,137, 22,125, 2, 45, 56, 87,175, 9, 22,221,200,195,117,181, 6, 28,
+199,249,197,201,243,188, 71,145, 37, 18,137,176,112,225, 66, 12, 24, 48, 0, 34,145,200, 47, 62,231, 52, 74, 74, 74,218,120,225,
+194,133,112,134, 97,140,246, 52,146, 89,173, 86,149,213,106, 13,183,217,108,225, 21, 73,163,135, 25, 86,158,119,155, 15, 61,229,
+ 89,127,210,201, 31,206,194,194, 66,125,106,106,234, 1,153, 76,182, 36, 58, 58, 58, 51, 61, 61,221,167,208,114, 21, 63,174, 31,
+ 21,159,125,246, 25,230,207,159,143, 14, 29, 58,248, 21, 78,163,209, 8,134, 97,176,104,209,162, 91,246, 77,158, 60,249,150,235,
+249,224,100, 0,176, 85,170, 84, 25,250,199, 31,127,168,132, 99, 35, 34, 34, 32, 22,139,209,160, 65, 3, 4, 5, 5, 97,207,158,
+ 61,176,217,108,126, 63,151, 20, 20, 20, 15, 46,220,105, 17, 39,180, 29, 55,110, 92,179, 25, 51,102, 76,107,217,178,229,207,251,
+246,237, 91,206, 48,204, 6,167, 50, 49,213, 94,190,110, 16,214, 9, 33,205,157, 69,143, 93,172, 69, 50, 12,179, 65, 56,222,121,
+ 93,248, 37,132,116, 6, 32, 21,214,199,141, 27,151, 50, 99,198,140,105, 99,199,142,125,127,250,244,233,146,113,227,198, 53,156,
+ 49, 99,198, 52,225, 58,238,194,225,206,209,242, 58,247,148, 80, 69,117,254,252,121, 79, 85, 84,206, 47, 0,175,165,165, 50, 34,
+210,225,100, 77, 74, 8,119,108,159,152, 94,236,120,129, 45,104, 90, 3, 74,165, 18,221, 38,125,234,151, 83,100, 50,153,144,155,
+155,235,112, 25,124, 45,254,114, 42,228, 1,216,246,118, 3,220, 44,144,226,227,253,133,216,248,247,101,136,197, 98,116,175,215,
+ 0, 79, 72,130, 48, 62, 65,138,183, 47,165,193, 66,252,107,211, 75, 8,113, 43,176,132,255, 66, 21,138,191, 66,203, 37,141,110,
+ 26, 12,134,130,139, 23, 47,234,249,178, 23,187,156, 16, 18,202, 48, 76,169,221,229,138,245, 55,141, 30,102,164, 54,170,238,112,
+157, 14, 6,117,114,108,127, 70,123,202,145, 38,163, 22,126, 2, 0,232,208,228, 49,159,207,131, 63,156, 5, 5, 5,250,214,157,
+218,239,180,233, 77, 63, 12, 26, 52,232,218, 95,127,253, 37,247, 39,172,238,132,150,224,218, 10, 34,139,227, 56,152, 76, 38,191,
+226,110, 50,153, 60, 62, 31, 18,137,228,118, 28, 45,104,181, 90,211,186,117,235,176, 96,193, 2,132,135,135,163,107,215,174,136,
+141,141,197,170, 85,171, 64, 8,193,240,225,195, 33,151,203, 5,247,154,102, 64, 10,138,135, 27,222,180,136,108,198,140, 25,211,
+ 92,133,140,243,186,179,128,114, 17, 83,206, 98, 45,197,199,251,127,131,171,120, 18,174,203, 48,204,134,233,211,167,167,250, 8,
+ 71,158, 39,161,229,117, 72,124,163,209,120,173, 81,163, 70,126,169, 9,157, 78,151,237, 75,108,184,251,170,119,118, 9, 2, 3,
+ 3,161, 84, 5,130,245,179,220,181, 88, 44, 14,161,178,117,235, 86,200,229,114,244,232,209,227,142, 28, 45,179,217, 12,169, 68,
+ 12, 54, 34, 26, 47,206,249, 11, 5,165,122,199, 11,102,199,213,107, 56,150,147,139,183, 91,118,130, 82,158, 11,141,201,228,151,
+243,198,243,252, 45, 34,139,227, 56, 60,251,236,179, 14, 55,193,185,221, 10,188, 84, 29,134,135,135, 31,225, 56, 46,222, 41,141,
+ 2,146,147,147,129,127,218,245, 48, 60,207,107, 66, 66, 66,126, 1, 80,133, 16, 18, 15, 32,200,159, 52,162,112,159, 63, 93,183,
+243, 46, 78,213,237,112, 22, 20, 20,232, 83, 83, 83, 15,216,244,166, 31, 50, 50, 50, 14, 0, 8,120,244,209, 71, 43, 44,180, 4,
+129, 37, 22,139, 49,123,246,108,204,159, 63,223,177,223, 95,161,101,181, 90,203, 9,168, 75,151, 46,149,187,150,171,176,243, 81,
+109, 74, 80,214,187,144, 79, 78, 78,118,156, 19, 19, 19,131,144,144, 16,240, 60, 15,158,231, 17, 16, 16, 0,185, 92, 14,137, 68,
+ 66, 51, 29, 5, 5,133, 55, 45,162, 31, 59,118,236,251, 12,195,108,176, 59, 75,167,189, 8, 42,119,218,163,185,139, 88,203,243,
+112, 92,170, 59,177,229,252, 95,192,184,113,227, 82, 92,195,225,174,186,210, 81,170,186, 12,187, 95, 14,206, 85, 84,149,245, 18,
+243,246, 34, 11, 12, 81, 65,174, 84, 66, 36, 98,193, 48, 12,241,197,101, 54,155, 29, 5,255, 27,111,188,225,181,221,138,191,237,
+169,204,102, 51, 88, 78,132,172,152, 36,216,216,221,142,115,133,133,229,196,184, 30, 83, 7,162,243,199, 33,246,243,133,235,234,
+104, 13, 31, 62, 28,139, 23, 47, 6,203,178,142,123,194,113, 28,106,214,172,137,107,215,174,121,229,226, 56, 46,254,250,245,235,
+ 81,206,247, 81, 16,177,132, 16,216,108, 54, 84,175, 94,221,112,241,226,197, 55,233,163,123,103, 34,203,211,118,155,141,247,219,
+133,113,119, 92, 65, 65,129,190, 95,191,126, 59, 75, 74, 74,126,168, 95,191,254, 37,148, 31, 2,193, 39, 31,199,113,229, 4,150,
+ 32,178,230,205,155, 87, 78, 20, 89, 44, 22,191, 62, 4, 44, 22,203, 45,130,103,214,172, 89,229,126, 1,160, 85,171, 86,126, 57,
+195, 0, 8,203,178, 68, 34,145,160, 75,151, 46,104,216,176, 33,126,253,245, 87,240, 60,143, 97,195,134, 65, 46,151, 99,238,220,
+185,176, 90,173,152, 57,115, 38,117,180, 40, 40, 40,188,105, 17,227,244,233,211, 79, 79,159, 62,221,225, 44,185, 58, 90, 30,222,
+187, 61,237,162, 42, 82, 16,105, 0,140,238, 4,145, 59,151,204, 85,128, 57,111,155, 49, 99,198, 52,215,112,184, 86, 87,150, 19,
+ 90,247, 10,217,103, 78,225,211,199, 27, 3, 40, 95, 93,184,240,177, 58, 80, 6, 42,161, 12, 10, 68,191,245,187, 1,192, 94,232,
+143,245,203,209, 18,132, 86, 65, 65,129, 87,145, 85, 17, 71,139,149,114, 88, 29, 95, 4, 34, 21,131, 51, 89,202, 9, 45, 17, 39,
+198,205,240, 36,176, 98, 9, 56,155,213, 47, 78, 66,200, 45, 85,133,131, 7, 15, 6,195, 48,142, 30, 98,141, 26, 53,114,230, 98,
+124,189, 28, 71,135,149,181,193,115,173,142,157,153,111,160, 79,236,237,228,207, 35,223,224,220,154,161, 0,128,214, 90,173, 35,
+ 45,166, 54,250,167,239,192,156, 83, 59, 29,238,227, 36,188,123, 91,156, 5, 5, 5,250, 71,235,166, 28,144,132, 5,255,112,227,
+198,141, 3, 0,216,254,253,251,135, 52,106,212,200,175,103, 82,232, 92,225, 42,178,156,157, 44,225,215, 71, 15, 91, 39,225,104,
+243, 75, 64, 9,213,136,126,228,121, 34,228,109,149, 74,133,192,192, 64, 71,143,219,128,128, 0, 40, 20, 10, 71,251, 78, 63,133,
+ 27, 5, 5,197,195,139, 80, 65,232,216,197, 82, 57,167,201,222,182, 42,213,121,221,157,227,101,119,160,118,249, 40, 95, 55,218,
+ 5,154, 91, 8,206,154,203, 57, 27, 60,137, 52, 78, 80,144,206,191, 49, 49, 49,191, 7, 6, 6, 38,249, 27,251,138,244, 98,179,
+ 89,204,183, 56, 91, 12,195, 32, 48, 40, 16,242, 64, 37,228, 65,129, 30, 93, 47,111, 66, 75,112,138,132,151,206,146, 37, 75, 16,
+ 24, 24,136,151, 94,122,169,194,109,180, 28, 66, 75,194, 98,139,108, 59, 68, 82,174,156,200,226, 56, 14, 34,177, 24,217,129,177,
+ 96,197, 98,112, 86,255, 92,178,146,146, 18,112, 28,135, 15, 63,252,208,241, 5,239, 44,178, 42, 18,103,111, 96, 25, 70,112,183,
+100, 53,106,212,120,151, 97,152, 4, 0,137, 90,173, 86,150,149,149,213,145, 62,175, 94,148,129,205,114,139, 11,229,201,125,189,
+ 93, 78,193,201,146,132, 5,255, 80,167, 78, 29,135,147,165, 80, 40,132,222,166,190,211,152,101,221,138, 44,215, 30,130, 28,199,
+149,229,101, 31,189, 35,157, 29,173,233,211,167, 59,120,157,157, 44, 1, 21,121,142,132,176,238,220,185, 19,199,142, 29,195, 27,
+111,188, 1,185, 92,142,249,243,231,195,106,181, 98,242,228,201,144,203,229,144, 74,165, 52,243, 81, 80, 80, 55,171,156, 22,113,
+ 65,158, 75, 59, 40,198, 69,212,228,185, 19, 88,206,213,132,194,127,134, 97, 44,110,120, 77, 46, 85,138,174,219,133,223,130,233,
+211,167,255, 37, 56, 89, 78,219,203,133,195,167,163, 37,147,201,146, 46, 94,188,232, 24, 8,211,219,175,201,100, 66,135, 14, 29,
+252,118,198,132, 94,135, 28, 39, 42, 39, 44, 20, 65,129, 80,168,130, 32, 15, 12,116, 21, 28,140,175, 66, 92,248, 34,118, 22, 90,
+ 31,125,244, 17, 56,142,195,226,197,139, 1, 0,239,190,251,174,223,109,180, 4, 78,216, 24,164,147, 43,104, 60,231, 25,152,126,
+180, 32,103,239, 9,112, 28,135,168, 22, 79,128,127,244, 25,232,228,129,224,108, 86,191,123, 29, 22, 22, 22,226,218,181,107, 16,
+137, 68,120,231,157,119,202,141,117,228,218,147,109,235,214,173, 62,227,238,206,201,250,232, 70,161,131, 71, 46,151,179, 39, 78,
+156, 72,226,121, 62, 89,175,215,215,104,213,170, 21, 79, 31,101, 31,162,136,183,250, 37,170,252,205,159,174,156, 66,155,172,146,
+146,146, 31,110,220,184,113, 16, 0, 59,104,208,160, 16,133, 66,129,111,191,253, 86, 7, 64,186,106,213, 42,185, 47, 81, 36,228,
+ 27, 95, 34, 75, 44, 22,151,229,101,127,226, 78,202, 15, 89,226,171, 97,188, 63,121, 94, 8, 43,195, 48,176,217,108,144,203,229,
+229,156,172,128,128, 0,200,100, 50,154,241, 40, 40, 40,124,149, 37,135,253, 46,199, 9,105,238, 36,170, 14,223, 14,111, 69,174,
+231, 11,156, 39,161, 97, 52, 26,113,246,236, 89,127,121,252, 30, 24,179,106,179,199, 48, 41,163, 4, 12,195,224,235, 86,245,161,
+ 84, 5, 66,161, 84,226,233, 95,119, 58, 10,238, 83,211,222,133, 76, 25,136, 42,109,186,250, 85,144, 11, 85,135,206, 66,171,184,
+184, 24, 98,177, 24, 83,166, 76, 1,203,178,152, 57,115, 38,226,226,226,144,149,149,133, 85,171, 86,249,229,104,137,108, 34,196,
+190, 80, 23,138,193,193, 80,189,208, 22,161, 93, 62, 66,134,137,195, 62,131, 2,109, 13,103, 32,221, 50, 15, 38,222,230,119, 15,
+ 44,171,213,138,157, 59,119,186, 54,120,119,180,169,178, 90,173,176, 88, 44, 48,155,205,152, 57,115,166, 63, 61, 60,111, 73, 55,
+225, 30,218, 7, 65, 21, 93,184,112, 33,146, 16, 18, 6, 32, 24, 64, 62,125, 92,189, 35,182,197,112, 68, 54,251, 31, 0, 96,253,
+244,151, 29,219, 63, 60,245, 79,254,156,253, 99,217, 4, 0,117, 18,187, 86,136,179,160,160, 64,223,189, 67,171, 93, 6, 94,252,
+125,131, 6, 13,202, 57, 89, 1, 1, 1,140,125,221, 47,187,140,101, 89,136, 68,162, 91,170, 11, 61,137, 45,127,218,104, 89,173,
+ 86,199, 64,162,222,218, 51,222,142,163,245,242,203, 47, 35, 54, 54,214,225,100, 77,154, 52, 9,114,185, 28,227,198,141,131,197,
+ 98,193,188,121,243,104,230,163,160,160,184,231,162,236, 94,192,109, 73,106, 48, 24,210, 26, 54,108, 8, 15,251,226, 2, 2, 2,
+196, 46,145,170, 82,179,102,205, 11,110,170, 16, 59, 3,216,230,174, 80,103, 24, 6, 65,170, 32, 4, 4, 42,161,112,113,177, 2,
+130, 84,144, 5, 6,130,149,184, 45,204,111,225, 20,218,150, 56, 11, 45, 97, 41, 41, 41,129, 88, 44,198,130, 5, 11,160, 82,169,
+ 96, 52, 26,125,114, 10, 47, 29,145, 72, 4,221,205, 82,156,155,182, 13,210,128,125,168,209,117, 0, 98,197,114, 72,246,252, 2,
+189,205,226,107,192,210, 91, 56,107,213,170,133, 9, 19, 38,220, 50,172,131, 39,196,197,197,249,140,187,171,147, 53,187,126, 53,
+ 72,164, 18,140, 58,115, 19, 70,163,145, 25, 48, 96, 0, 15, 64, 15, 32, 79,175,215,223,240,231,126, 86, 2,238,123, 78,111,189,
+ 98, 5,240,196,230, 78,192,184,229, 20,156, 44, 3, 47,254,254,218,181,107,130,147, 21,172, 80, 40,240,213, 87, 95,233, 0,176,
+147, 39, 79, 86, 36, 36, 36,136,252,201, 75, 34,145, 8,115,230,204,113,219, 38,203,157,232,170,200,115,228,124,110,187,118,237,
+220, 14, 88,234, 65,188,221,194, 41,132, 53, 60, 60,220,225,100,217,108, 54, 71,111, 67, 97,244,121, 47, 31, 21, 52,127, 82, 78,
+202,249,240,112, 62,144,112, 91, 2,103,101,101,117,247,116, 66,245,234,213, 47, 94,188,120,177,166, 48, 21,135,189,224,148, 24,
+ 12,134, 90,173, 90,181,242,105,237,240, 60, 15,153, 76, 6, 66, 8, 58, 78,152, 1,134, 5, 88,148,127,137, 69, 61,222, 9, 34,
+ 17, 7,190,108,170, 15,159,189, 14,245,122,125,185,151,131,187, 69,163,209,192,104, 52,250, 61,154,183,193, 96, 40, 55, 4, 3,
+ 67,120, 92,255,115,229, 45,189, 15,133,197,223,118, 59, 1, 1, 1,229,170,126,124, 56, 86,140, 63,142,150,115,213,163, 68, 42,
+ 1, 39, 17, 11,142, 86,233,165, 75,151,250,209,108,238, 63,132, 14, 11, 0, 80,187, 85, 15,240,188, 13,196,102, 43, 55, 77, 82,
+221,164,238,224,137, 13,102,139, 14, 70,163,209,215,176, 39, 76,126,126,190,190, 95,191,126, 59, 1,124,215,167, 79,159, 11, 40,
+ 27, 93,152, 4, 6, 6,202,196, 98, 49, 15,160, 16, 0, 41, 42, 42, 10,206,200,200,224, 13, 6, 67, 53, 95,225,220,184,113, 35,
+206,158, 61,139, 54,109,218,148,155, 14, 74,112, 69,157, 71,119,247, 39,127, 10,213,229,238, 70,132,247, 36,228,252,133, 72, 36,
+ 66,112,112, 48, 36, 18, 9,166, 76,153, 2,137, 68, 2,133, 66, 1, 0,152, 55,111,158, 99,240, 85, 10, 10, 10,138,135, 70,104,
+249, 42, 55,189, 84, 43,122,173, 66,180, 90,173,233, 9, 9, 9, 21,186,152,205,102,203,241, 33,220,210, 87,173, 90, 37,113,118,
+ 33,124,253, 18, 66,114,124,188,108,211,215,175, 95, 47,113,231,110,120,154, 96,218, 23,167,205,102, 75, 79, 76, 76,244,232,152,
+184,131,197, 98,201,240, 37, 90,103,228,233,203,137,132, 81,103,110,122,156, 59,145,194,103, 94,243,146, 63, 63,184,221,252,121,
+169,118,237,218, 25, 33, 33, 33,155,162,163,163, 11,246,238,221, 27,222,188,121,243,112,231, 99,154, 55,111, 30,235,114,154, 9,
+158,231, 57, 4,195, 48,233,125,250,244,113,155,231, 5,209,228, 38,127,166,251,202,243,135, 14, 29,146, 56,159,239,137,223,233,
+ 57, 74,247, 67,184, 94,111,220,184, 49,235,204,227, 41,239, 91, 44,150, 60,154, 11, 41, 40, 40, 30,122,161,165,215,235,111, 54,
+108,216,208,234, 97,223, 13,111,231, 22, 20, 20, 52,171,236, 8, 88, 44,150, 86,247, 3,103,126,126,126,165,198,221,106,181,166,
+219, 7, 40,245,122, 12,205,226,255, 94, 26, 1, 64,110,110,238,163, 0,160,213,106,225,107, 90,157, 10, 8,194, 74,207,159, 86,
+171,181,213,221,184,167,133,133,133, 45,105,206,162,160,160,160, 66,171, 2,160,147, 17,255, 55,112, 55, 68, 43, 5, 5, 5, 5,
+ 5, 5, 69,229,130,165,183,128,130,130,130,130,130,130,130,226,238,128, 65, 89,207, 1,119,168, 72,111,130,206,183,113,237,109,
+148,147,114, 82, 78,202, 73, 57, 41, 39,229,124,232, 56,125,113, 63, 48,189, 25,239, 69,123,233,206,148,147,114, 82, 78,202, 73,
+ 57, 41, 39,229,164,156, 15, 35, 8, 33,180,234,144,130,130,130,130,130,130,130,226,110,129,163,183,224, 95,131, 8, 21, 24, 81,
+223, 15,213, 28, 10,192,211,132,113, 38,134, 97,138,110,131,147, 1, 32,177, 47,194, 64, 71, 22, 0,102, 0,102,134, 97,136,111,
+142,143,217,204,204,208, 20, 98, 19, 55, 39, 12, 35,230,121,252, 93,173, 90,213,227, 12,243,132, 9, 0,148,209,117,235, 5, 42,
+229,157,141,102, 83,146, 76, 44, 61, 91,172,213,108, 53,230, 94, 76,163,217,131,130,226, 95, 65, 47, 0, 19, 81,214,172,100, 58,
+128,149,244,150, 80, 80,220, 37,161, 21, 24, 24,120,132,101,217,120, 95,227,243, 8,176,207,101,150, 94, 84, 84,212,172, 2,215,
+238, 23, 24, 24,216, 65, 44, 22, 63, 14, 0, 22,139,101,175, 70,163,249, 11,192, 42, 0,214,219,140,147, 10,192,179, 0, 6,218,
+215,127,178, 23, 22,234,219,228,107, 24, 28, 28,188, 70, 44, 22,147,252,252,252, 22, 0, 16, 30, 30,126,192, 98,177, 48,106,181,
+250,105, 0, 39, 43,200,199,138,197,226,217, 45, 90,180,104,187,123,247,238,239, 0, 44,168,164,180,148,177, 44,235, 86,160,240,
+ 60,159,120, 27, 34, 75, 2, 32,120,193,130, 5,225,203,150, 45,107,156,158,158,222, 0, 0,226,227,227, 79, 13, 26, 52,232,248,
+136, 17, 35, 10, 8, 33, 37, 12,195,152,189,241,100,102,134,166,228,102, 95,125, 35, 39,247,236,179, 0, 16, 19,219, 96,165, 72,
+196, 74, 8, 57,186, 95, 17, 49, 48,162,102,141,196,255,253,252,237, 2, 73, 98, 82, 85,108,223,119,236,145, 17,111,190,159,146,
+ 1,124, 70,197,214,189, 67, 80, 80,208, 17,150,101,227,189, 61,227,238,158,121,155,205,150, 94, 88, 88,216,204, 19, 39,199,113,
+241,222,202, 11,119,219,120,158,191,154,159,159,239,118,168, 9,149, 74,181,159,227,184, 36,127,185,132, 95,171,213,154,238,169,
+151,174, 74,165, 58, 34, 18,137,226,189,197,211,221, 62,158,231,175,230,229,229,121, 10,231, 45,113,175,140,112,222, 14,167,183,
+112, 10,229, 17,128,121,225,225,225,143, 21, 20, 20, 60, 15,224,125,181, 90,221, 72, 36, 18, 33, 44, 44,236,125,147,201,116, 57,
+ 56, 56,248,155,146,146,146,125, 0,222, 4, 64,231, 75,165,160,168, 44,168, 84,170, 28,141, 70, 67, 4,240, 60, 79, 44, 22, 11,
+ 49, 26,141, 68,175,215, 19,173, 86, 75, 52, 26, 13, 81,171,213,164,164,164,132, 20, 20, 20,144,200,200, 72,215,193, 27, 61,213,
+225, 54, 80,169, 84, 23,103,204,152, 97,188,118,237, 26, 49,155,205,196,108, 54,147,180,180, 52,242,233,167,159, 26, 85, 42,213,
+ 69, 0, 13, 60,156,219,217, 67, 97,209, 5,192,242,198,141, 27,155, 54,110,220, 72, 12, 6, 3,209,106,181,100,229,202,149,164,
+126,253,250, 38, 0,203,237,199,176,126,114, 2, 64,235,152,152,152,244, 43, 87,174,216,182,110,221,106, 14, 14, 14,222, 22, 28,
+ 28,188, 45, 45, 45,205,118,229,202, 21, 62, 34, 34, 34, 29, 64,235, 10,132, 19, 0,158, 25, 53,106, 84, 78, 90, 90, 26,105,215,
+174,221,223, 78,219, 25,248,158,231,174,179, 59, 39,139, 16, 18, 67, 8,137, 69,217, 32,151,183, 44,132,144, 88,251, 49,161,126,
+114, 42,175, 94,189, 90, 53, 58, 58,122, 6,195, 48, 38, 87, 62,134, 97, 76,209,209,209, 51,174, 94,189, 90,149, 16,162,244,198,
+153,126, 99,225,171,155, 54,118, 42,214, 22,157, 39,218,162,243,228,187,239,219,171, 95, 31,241,252,242,216,234, 77, 22,135,196,
+167, 44, 56,123,254,210, 34, 66,200,162,191, 14, 95, 92,244,209,151,191, 47,122,114,196,220,175,194, 19, 26,191, 94,129,251,121,
+ 39,160,156, 0, 66, 66, 66,178,181, 90, 45, 33,132, 16,155,205, 70,204,102, 51, 49, 26,141, 68,167,211, 17,141, 70, 67, 74, 75,
+ 75, 29,207,121, 73, 73,137,227,127, 84, 84,148,199,231, 61, 52, 52, 52, 71,175,215,151, 43, 59, 76, 38,147,163,252,208,233,116,
+ 68,167,211, 17,173, 86,235, 88, 52, 26, 13,169, 82,165,202, 77, 47,225,204, 18,194,201,243, 60,177, 90,173,196,108, 54, 59,120,
+ 13, 6, 67,185,197,104, 52, 18,163,209, 72, 18, 18, 18,252, 14,167, 63,156, 6,131,129,196,199,199,103,122,226, 12, 11, 11,203,
+ 49, 24, 12,229, 56,157,227,239,202, 43,172,199,196,196,100, 87,132,211,159,112,122,187,159,118, 44,184,112,225, 2,209,235,245,
+ 36, 46, 46,174,224,233,167,159,182,216,108, 54,178,113,227, 70,210,184,113, 99,190,125,251,246,230,252,252,124,242,210, 75, 47,
+ 17, 47, 31,133,244, 57,162,156, 20,158, 77, 11,207,142, 22,195, 48, 80, 42,149, 88,177, 98,133,199,233, 56,156,255, 87,171, 86,
+205,223,235, 54, 75, 74, 74,218,185,103,207, 30,121,108,236, 63, 3, 98,155, 76, 38,132,134,134, 98,216,176, 97,210, 94,189,122,
+213,236,218,181,235,129,235,215,175,183, 3,112,196, 7,223, 83,145,145,145,159,127,248,225,135,209,253,251,247, 71,120,120,185,
+ 65,183,209,175, 95, 63, 60,253,244,211,146, 11, 23, 46, 12, 88,178,100,201,128,133, 11, 23,102,107, 52,154, 17, 0,126,241, 70,
+ 42,151,203,251, 84,169, 82,229,171, 61,123,246, 68, 69, 69, 69, 33, 57, 57,153, 29, 51,102, 76,205, 90,181,106,201,227,227,227,
+217,172,172, 44,252,250,235,175,113,207, 61,247,220,234,156,156,156,255,153,205,230,117,126,196, 93, 26, 30, 30,254,254,255,254,
+247,191, 8,181, 90,109, 61,122,244,232, 69, 97,187, 84, 42,157,220,178,101,203,230, 59,118,236,248, 17,192, 55,183,227,100, 17,
+ 66,212,248,167,138, 79,128, 69,216,239,143,179, 69, 8,145,254,253,247,223, 97, 45, 91,182,252,197,104, 52, 54,121,227,141, 55,
+110, 76,155, 54, 77,174, 82,169, 84, 0, 24,181, 90, 93, 52,113,226, 68,211,220,185,115,223,171, 87,175, 94,167,253,251,247, 63,
+ 69, 8,177,216, 5,217,173,124, 12,227, 8,207,205,140, 60,236,220,199, 75, 39,140,123, 55,254,147,169, 73,215, 15,159,185,201,
+115,114, 21,126,219,117, 26, 57, 5, 26,252,190,255, 12, 98,194,131, 24,137, 76,156, 18, 28, 87,191, 93, 73,198,153, 93,240, 50,
+ 66, 58, 69,229,128, 97, 24, 40, 20, 10,252,246,219,111,183, 76, 93,229,110, 90, 43,142,227, 16, 18, 18,226,115,118,131,128,128,
+ 0,108,221,186,213,237,220,139,238,166,244, 9, 14, 14,134,183,143, 13,134, 97, 16, 16, 16,128,189,123,247,130,101, 89,183, 83,
+ 3,185,110, 83, 42,149, 96,189,204,117, 37,112,238,218,181,203, 39,151,240, 27, 24, 24, 8,148, 85,253,123,126, 40,101, 50,236,
+217,179,199, 99,156, 93,255, 7,218,231,123,245,197,185,119,239,222,114, 83,127,185, 78, 9,230,188,174, 84, 42,193,248, 32, 13,
+ 13, 13,109, 17, 31, 31,143, 67,135, 14, 97,213,170, 85, 97, 41, 41, 41,184,116,233, 18, 24,134,193,180,105,211,152,250,245,235,
+139,179,179,179,209,166, 77, 27,172, 93,187,182,149, 90,173,166, 15, 12,197,191, 37, 88,196, 0, 30, 1, 16,137,178,102, 55,165,
+ 0, 66, 80, 54,147,134, 20, 64, 1, 0,185,125, 49, 2,208, 0,136,176,159,158,111, 47, 91,156, 5, 66,158,243,228,211,132,144,
+230,118,110, 97,134,138, 72,167, 99,133,107,184,174,187,254,186,229,230, 0, 96,195,134, 13,194,203,172,125,106,106,234, 78,231,
+200,249, 35,178,132,121,202,220, 60,211,174, 93, 52,101, 74,165,114,205,129, 3, 7,228,145,145,255,196,193,104, 52,162,180,180,
+ 20, 26,141, 6,165,165,165, 8, 10, 10,194,170, 85,171,228,157, 58,117, 90, 83, 90, 90, 90,203,126,211, 60,113,206,201,202,202,
+138,182, 90,173,144, 74,221, 55, 81, 98, 89, 22,117,235,214,197,251,239,191,143,110,221,186,197,116,232,208, 97,142,139,208,186,
+165, 43,169, 66,161,248,234,232,209,163, 81, 10,133, 2, 23, 47, 94, 68,122,122, 58, 70,141, 26, 85,149,231,121,220,188,121, 19,
+151, 46, 93, 66, 70, 70, 6,150, 44, 89, 18,213,183,111,223,175,220, 8, 45,119,221, 83,223,120,251,237,183,235,132,134,134,178,
+159,126,250,105,177, 86,171,253,194,190,125,194,252,249,243, 95,104,219,182,109,212, 43,175,188, 66,246,238,221,187,204,158,112,
+ 30,239,167,115,155, 44,123, 53, 31,236,153,239,156,203, 57,117,157,246,131, 16, 18, 3,192,200, 48, 76,177, 27, 78, 6, 64,112,
+215,174, 93,223, 49, 26,141, 77,246,236,217,115,249,241,199, 31, 79, 0,144, 37,100,190,224,224, 96,229,156, 57,115,162, 83, 83,
+ 83, 47,116,236,216,177, 73,215,174, 93,223,201,203,203,155, 70, 8,201,115,106,179,229,224,228,121,252, 29, 19,219, 96,229,174,
+253, 35,158,221,177,215, 36,121,247,205,143,110, 84,171,154, 88,242,247,197, 66,219,153,171,121, 40,213, 91,241,100,199,178, 9,
+204, 91, 52,168,134,207, 87,236,193,176,183, 62, 16,255,178,114,233,211,151, 9,148,154,204, 51, 27,189,220,207, 59, 5,229,132,
+163,138, 9, 98,177, 24, 79, 60,241, 4, 24,134,185,101, 46, 79,177, 88,140,253,251,247,163, 99,199,142, 16,139,197,120,249,229,
+151,253,226,228, 56, 14, 93,187,118,117,204,163,232,204,231, 42, 26, 60,104,130,109,183,124, 29,114, 28, 88,150,245, 56,145,182,
+ 43,167,175,114, 73, 8,167, 55, 46,231,125,190,194,105,159,242,200,111,145,229, 47,167, 16, 78,142,227,208,170, 85, 43, 28, 63,
+126,220,171,232,242,160, 47,203,197,189,168,168,232,197, 90,181,106,237, 90,176, 96, 65, 24, 0, 20, 20, 20, 56, 38,188, 23,137,
+ 68, 56,127,254, 60, 76, 38, 19, 62,254,248, 99,179, 90,173,126,133, 62, 71,148,243,110,114,122,211, 34, 0,218,142, 27, 55,174,
+217,140, 25, 51,166,181,108,217,242,231,125,251,246, 45,103, 24,102, 3, 33, 36, 85,248, 29, 55,110, 92,202,140, 25, 51,166,141,
+ 29, 59,246,253,233,211,167,159,102, 24,102, 3, 0,184,174,219,203,146, 84, 23, 17, 23, 41,240,216,159,185,114,199,186, 91,119,
+253,117,199,237, 16, 90, 0,144,154,154,202,216, 35,201, 56, 23,106,254, 10, 45,127,230,238,227, 56,110,248,180,105,211,162,189,
+137, 44,141, 70,131,204,204, 76, 36, 36, 36,224,229,151, 95,142, 94,176, 96,193,112,171,213, 58,203, 11,173, 68, 36, 18,225,208,
+161, 67,200,205,205, 69,195,134, 13,145,148,148, 84,238,128, 43, 87,174, 96,211,166, 77, 40, 46, 46, 70,211,166, 77,129,178,198,
+221,110,209,168, 81,163,143,235,214,173,219,149,101, 89,171, 92, 46,199,223,127,255,141, 38, 77,154, 96,197,138, 21,168, 86,173,
+ 26, 20, 10, 5, 46, 92,184,128,134, 13, 27, 98,231,206,157,136,140,140, 68,227,198,141,173,106,181,122,119, 97, 97,225, 95,215,
+175, 95,255,216, 83, 56,227,226,226, 62,122,253,245,215,165,153,153,153,252, 15, 63,252,176, 7,192, 30, 0,195, 63,248,224,131,
+ 33,221,186,117,139, 58,118,236, 88,201,225,195,135, 15,122, 16, 89,254, 56, 89, 86,215,151,146,205,102, 51,234,245,122,147,209,
+104,180,176, 44,155,198, 48,140,201,102,179,213,242,100, 66, 12, 30, 60,184,122,126,126,254,176,183,222,122,235,154, 93,100,157,
+ 71, 89, 3,120, 0,128,213,106, 53,106, 52, 26,117,203,150, 45, 19,158,123,238,185,203,203,151, 47, 31, 54,120,240,224, 85, 63,
+252,240,131, 6,128,222,149,176, 90,181,170,199, 69, 34, 86,162, 45, 13,187,186,122,213, 55,111,111, 90, 63,188,234,205,155, 25,
+ 53,195, 35, 34,181,146,192,200,204, 85, 63,125,127, 4,128, 41, 51, 79,141,147, 87,178, 33, 22,139,112,246,102, 9,218,118,239,
+ 39,190,124,113,106,107, 0, 27,233,183,220,221,255, 88, 20, 38,161,222,177, 99,135, 87, 71,107,255,254,253, 16,139,197,144,203,
+229,152, 59,119,174, 87, 82, 65, 24, 8,110,145, 47, 49, 35, 76,142,238,205,125,226,121,222, 49,209,187,235,242,197, 23, 95,224,
+173,183,222, 42,119, 13,187,216, 96,124,113,122, 10, 95, 66, 98, 34,114,115,114,202,109,243,103, 82,122,155,205, 6,177, 88,140,
+197,139, 23, 35, 53, 53, 21, 27, 54,108,240,250,251,196, 19, 79,128,101, 89,226,207,253,108,213,170, 21,204,102,179, 35,204,231,
+207,159,119,203,187,112,225, 66, 95,193,236, 5, 96, 98,147, 38, 77, 84, 29, 58,116,192,174, 93,187,240,244,211, 79, 27,205,102,
+243, 69, 0,232,217,179,103,237, 5, 11, 22, 72,143, 30, 61,138,240,240,112,241,141, 27, 55,190, 3,109, 32, 79,113,151,225, 78,
+139, 8,239,188, 25, 51,102, 76,115, 21, 49,206, 16,246, 51, 12,179, 97,250,244,233,169,206,162,200,121, 93,112,157, 92, 68, 92,
+138,179, 35,229, 44,162, 60, 9, 40,151,247,173,243,241,121,110,133,150, 61, 98,237,157, 93, 32,161,240,245, 37,178,188,124, 57,
+150, 67,112,112,112,143, 39,159,124,210, 33,114, 12, 6,131, 67, 96, 9, 34, 75, 88,191,112,225, 2,154, 53,107, 38, 9, 14, 14,
+238, 81, 80, 80, 48,203, 15, 17,135, 42, 85,170, 32, 63, 63, 31,167, 78,157, 66, 66, 66, 2, 44, 22, 11, 54,111,222,140,146,146,
+ 18,136,197, 98, 72, 36, 18,152,205, 94,219,110,163,110,221,186, 79, 44, 91,182,172,217,210,165, 75,139,132, 47,186,159,126,250,
+ 9,132, 16, 68, 70, 70, 66,167,211, 33, 39, 39, 7,127,253,245, 23,172, 86, 43, 2, 3, 3,145,156,156, 44,237,211,167, 79,235,
+137, 19, 39,138,189, 8,173, 86, 79, 63,253,116,176, 74,165,194,155,111,190, 73,204,102,243,116,251,182,143, 70,140, 24, 17,158,
+150,150,102,122,245,213, 87, 15,153,205,230, 79, 5, 51,209, 89,224,120, 72, 88,143, 78,150,197, 98, 17,238,233, 53,141, 70,131,
+136,136,136, 4,103,103,203,147, 24,220,187,119,111, 43, 0,162,201,147, 39, 7, 0,200,113, 14,131,201,100,130, 70,163,129, 86,
+171,181,148,148,148,228,142, 30, 61,218,186,124,249,114,145,253,156,179,238,132, 22,195, 60, 97, 82,169, 20, 82, 66, 68, 31, 44,
+ 90,180, 40,176, 91,183,110,108, 96, 96, 32, 74, 75, 75, 85,191,255,241, 71, 96,167, 14,173,147,167,205,248,100,139, 42,190, 97,
+206,222,191,175, 34, 35,187, 4, 38,139, 5,201,177,193,101,126, 24,197, 93,135,189, 35,139,195,209,114, 22, 21,187,118,237, 66,
+247,238,221, 29,207,186, 68, 34, 41,231,124,249,226,228, 56, 14,221,187,119,191,197,225,217,177, 99,135, 91,247,201, 23,156, 69,
+145,171, 56,114, 39,192, 88,150,245, 57, 96,160,224,230,185, 19, 91,206,174,190,139,120,243, 85,205, 1,142,227, 48, 98,196, 8,
+136,197, 98,140, 25, 51, 6, 28,199,161,113,227,198,224, 56, 14, 45, 91,182,132, 88, 44, 70,199,142, 29, 43, 28,247, 3, 7, 14,
+160, 73,147, 38,142, 48, 53,110,220, 24,205,155, 55, 7,199,113,104,211,166, 13,196, 98, 49,186,118,237,234, 15,231,251,165,165,
+165,141, 2, 3, 3,113,225,194, 5,136, 68, 34, 48, 12,115, 9, 64, 35, 0,136,141,141,189,172,211,233,170, 27, 12, 6,188,254,
+250,235,140,201,100,106, 56,102,204,152, 15, 12, 6, 3, 21, 90, 20,119, 13,174, 90,196, 9,250,177, 99,199,190,207, 48,204, 6,
+193,161,114,117,158,220,173,187, 41,155, 4, 7,234,176,253, 89,109,238, 34,226,242, 24,134, 57, 76, 8,233,233,233, 92, 0, 38,
+ 23, 97, 85,174,234,208,185,218,208,167,163, 37, 20,190,254, 10, 45, 95, 48, 24, 12,143, 68, 69, 69,121, 20, 89,206,191, 38,147,
+ 9, 73, 73, 73, 48, 24, 12,143, 84,244,165, 17, 27, 27, 11,179,217,140,111,190,249, 6, 18,137, 4, 18,201, 63,250,194,100,242,
+110, 22,157, 57,115,230,218,129, 3, 7,154, 52,109,218, 52,116,237,218,181,121,237,218,181,139,236,214,173, 27,228,114, 57,244,
+122, 61, 44, 22, 11, 90,180,104,129,186,117,235, 34, 61, 61, 29,191,255,254,123,126,173, 90,181, 34, 14, 30, 60,200,103,103,103,
+ 95,247, 66,221,165, 83,167, 78, 96, 24, 6,127,252,241, 71, 62,128,195, 50,153,108,211,212,169, 83, 67, 77, 38, 19, 63,104,208,
+160, 27,133,133,133,111, 1, 48, 75,165,210,249,237,218,181,107,185,109,219,182, 31,121,158,159, 91,209,140,234,122,111,181, 90,
+ 45, 2, 2, 2,252, 25, 74, 66, 92, 88, 88,216, 0, 0,148, 74,101, 24,128,203,142, 28,174,215,151, 19,195, 38,147,201, 16, 22,
+ 22,166, 4, 0,251, 57, 98, 15,156,145, 86, 43, 86, 95,191,126, 53,200,185,253, 92, 72, 72, 8, 6, 62,247, 28,251,120,171, 86,
+210, 70,143, 60,210,117,252,103, 75, 87, 84, 9, 87,153,146,171,132,195, 98,179, 96,219,150,205, 60,225, 45, 91,104,177,115,111,
+132,150, 32, 54, 92, 29, 45,177, 88,140,157, 59,119,222,178, 77, 34,145,224,235,175,191,246, 75, 24, 8,162,202, 83,213,153, 75,
+ 85, 23,227, 75,192,136,197, 98,136, 68, 34, 44, 94,188, 24, 60,207,227,237,183,223, 46, 87,157,232,204,239,151,157,231, 36, 2,
+235,126,196, 3, 48, 33,125,182,204,113,190,107,120,237,231,248,229,146, 45, 88,176,192, 47, 71,171,103,207,158, 62,133,171,115,
+ 13,131,115,184,142, 31, 63,238,150,119,209,162, 69, 62,239,167,205,102,195,198,141, 27, 29, 34, 85,192,248,241,227, 95,151, 74,
+165,209,187,119,239, 70,118,118, 54,180, 90, 45, 52, 26, 13, 90,180,104,145,204,178,236,223,217,217,217,105,103,207,158,125,146,
+ 62, 61, 20,247,208,209, 50, 78,159, 62,253,244,244,233,211,221, 58, 86,174,206,146, 55,231, 73, 16, 88,118, 65, 20, 41,136, 55,
+148, 53,171, 57,236,235, 92, 0, 82,215,170, 67,175, 70,144,139,138,156,232,174,240,245,167,250,208, 79, 59,157, 99, 24, 6, 6,
+131,193,173,192,114, 22, 7,102,179, 25,133,133,133,176,217,108,183, 61,214,151,187, 47, 89, 95, 66,235,212,169, 83, 47, 13, 25,
+ 50, 36, 51, 56, 56,184, 81, 94, 94, 94, 46,207,243, 29,247,239,223, 31,201,113, 28, 84, 42, 21, 84, 42, 21, 54,109,218, 4,133,
+ 66,129, 17, 35, 70,228,218,108,182, 93, 65, 65, 65,225,122,189,254, 68,118,118,246,120,143, 10, 70, 44,238,218,166, 77, 27, 28,
+ 61,122, 20, 69, 69, 69, 91, 1, 52,126,254,249,231,187, 87,173, 90,149,153, 58,117,170,225,202,149, 43,115, 1,228, 42,149,202,
+101,203,150, 45,235,208,180,105,211,160, 65,131, 6, 97,231,206,157,139, 0, 24,252,141,179, 86,171, 45, 39,176,212,106, 53, 74,
+ 75, 75,161, 84, 42,173,126,222, 51, 49,254,233, 97, 8, 66,136, 35,109,236,110,150,144, 62,132,227, 56,161, 87,163, 39,145, 5,
+165, 82, 57,121,233,210,165,114,215, 78, 10, 54,155, 13, 57, 57, 57, 80,169, 84,248,112,252,120,201,164, 81,175, 52, 17, 5, 70,
+239,103, 89, 6, 38, 51, 41, 38,188,105,179, 54,167,255,110,224, 99, 90,242,220, 3, 8,194,160,119,239,222,183, 84, 23, 74, 36,
+ 18,108,221,186, 21,125,251,246,117,124,184, 52,109,218,212,231,199,149, 32, 12,122,245,234,229,112,134, 54,111,222,236,182,218,
+ 79,112,164,252, 17,132,194,177, 35, 71,142, 4,199,113,248,252,243,207,241,206, 59,239,128,101, 89,204,158, 61, 27, 44,203, 98,
+194,132, 9,126,139, 76,103, 1,147,246, 73,217,111,252, 59,106, 20, 44,140, 6, 0, 4,169, 84, 66,132, 42, 84,246,112, 28,231,
+112,178, 30,121,228, 17,136,197, 98,180,108,217, 18, 28,199, 57,156,172, 30, 61,122, 56,223, 71,226, 15, 39,199,113,184,120,241,
+162, 35,204, 45, 91,182, 44,231,100,113, 28,135,158, 61,123,250, 19,204,105, 33, 33, 33, 19,235,214,173, 91,111,206,156, 57, 98,
+145, 72,132, 78,157, 58,213,142,137,137,185,110,181, 90,195, 39, 79,158,172,112,115,142, 28, 64,163,122,245,234, 41,233, 83, 67,
+113, 23, 29,173,137,110,118,133, 58,183,185,170,192,135,228, 6,231,227, 5, 14, 87,113,100,119,200,118,249,226,114,119,174, 47,
+112,130,130,244,102,169,251, 35,180,236,182,179,215,139, 41, 20,138,147,185,185,185, 45,229,114,121, 57,145,229, 78,112,137, 68,
+ 34,100,103,103, 67,161, 80,156, 52, 26,141,149,150,136,190,170, 14, 1, 24, 46, 93,186, 52,202,105,189,115,143, 30, 61,126,216,
+186,117,107,236,182,109,219,112,240,224, 65, 68, 70, 70, 98,193,130, 5, 89, 57, 57, 57, 47, 1,216,154,159,159,239,243,186,213,
+171, 87,111, 16, 24, 24,136,189,123,247, 2,192, 78, 0,175, 12, 27, 54,140,177, 88, 44, 88,184,112,161, 22,192, 31, 33, 33, 33,
+ 27, 87,173, 90,213,164, 81,163, 70,210,109,219,182,169, 15, 30, 60,248,167,159, 34,203,198,243,252, 45, 2,203,249,158, 6, 5,
+ 5,249,227,104, 89,130,131,131, 79,169,213,234,126,122,189, 94, 45,147,201,130,212,106,181,209, 89, 96, 9,252, 28,199,137, 47,
+ 94,188,152, 9, 32, 57, 56, 56,248, 20, 60, 84,115,114, 28,215,169, 83,167, 78,156,107, 26,228,228,228, 32, 59, 59, 27,102,179,
+ 25, 77,155, 54,101, 68,140, 69, 84,116,243,164,203,176, 14, 84,100,221, 35, 71,139, 8,207,186,208, 75,208, 93, 79,195,205,155,
+ 55, 59,214, 89,150,197,247,223,127,239,151, 40,218,186,117,171,215, 6,235, 46, 85,135, 62,173,113,225,248, 47,191,252,178,108,
+122, 11,187,147,197,178, 44,198,142, 29, 11,153, 76,134,169, 83,167, 98,236,216,177,224, 56,206,103,213,161,179,128, 73, 28,163,
+115,254, 56, 42,123, 40,236,237,161, 24,134,113, 22, 91,140,191,226,205,155,155,231, 79, 77,128, 51,167,112, 94, 64, 64,128,199,
+134,240, 46,156,222, 46,240, 27,128,171,177,177,177,123, 91,182,108, 25,124,228,200, 17,204,158, 61, 91, 98, 52, 26,171,109,219,
+182,205,113, 93,119,247, 75,171,213,202,233,147, 67,113, 55,220, 44, 47,187,243, 92,218, 87, 49,206,213,120, 94,126, 93,143,135,
+211, 54,103,222, 60,134, 97, 44,110,174,151,231, 70, 92,185, 94,195,249,152, 60,143,142,150,175,194,194,151,224,242,199,209,210,
+233,116,127,254,241,199, 31,205,159,123,238, 57,206, 91,181,161, 86,171, 69,116,116, 52, 78,159, 62,109,213,233,116,127,250,225,
+148, 85,166,208,114,197,182,220,220, 92,145,197, 98, 65,205,154, 53, 17, 23, 23, 7,131,193,128,226,226, 98, 17,128,173,126,114,
+ 72,148, 74,165, 8, 0,138,139,139,129,178,174,166,181,107,213,170,133,163, 71,143,162,176,176,240, 23, 0,221, 38, 78,156,216,
+180, 69,139, 22,146, 21, 43, 86,232,222,120,227,141, 95, 44, 22,139, 95, 74,131,231,121,147,213,106, 77, 98, 89,214, 92, 92, 92,
+156,225,124, 63,163,163,163,195,148, 74, 37,147,147,147, 99,241, 71,104, 53,106,212,232,208,141, 27, 55, 48,121,242,228,188,105,
+211,166,213, 42, 45, 45, 45, 42, 41, 41,177, 58,139, 45,131,193,192, 70, 68, 68,200, 22, 46, 92, 40, 7,128, 70,141, 26, 29,242,
+ 36,180,180, 90,109, 85,133,226,159, 15, 99,163,209,136,236,236,108,100,103,103, 35, 39, 39, 7,165,165,165, 72, 78, 78,134, 78,
+167, 75,160,197,204,191, 38,180,202, 85,159, 57, 63,223,206, 47,242,138, 60,235,206, 2,166,119,239,222,142,182, 93,130, 67, 38,
+ 44,171, 87,175,118,109, 96,238,151,208,250,242,203, 47, 49,114,228, 72, 4, 4, 4, 96,206,156, 57,229,170, 14, 93,197, 1,207,
+243,140, 63,113, 79,122, 79,143,236,249, 97, 16,139,197, 8,127, 35,167, 92, 21,157, 27,193,225, 87, 56,167, 77,155, 86, 41, 85,
+135,206,156, 9, 9,101,143,202,226,197,139,209,175, 95, 63,236,222,189,251,182,171, 14, 83, 82, 82,126,218,176, 97, 67,240,153,
+ 51,103,160, 86,171,145,151,151, 7,163,209,136,244,244,116,143,181, 2,246,178, 60,128, 62, 57, 20,247,184,156, 58,124, 47,121,
+ 43,243,122,156,143, 23,184,223, 66,203, 31, 71,203,104, 52,206,121,243,205, 55,135,117,238,220, 57, 44, 40, 40, 8,153,153,153,
+183,136, 44,141, 70,131,192,192, 64,232,245,122,172, 95,191, 94,109, 52, 26,231,248, 18, 7, 22,139, 5, 81, 81, 81,200,207,207,
+ 7,239,161,253, 52,203,178,144,203,229,208,104, 52,128,143, 70,230,238, 94, 24,102,179, 25, 22,139, 5, 22,139, 5,102,179,185,
+162, 51,114, 43,148, 74,165, 32, 60, 0, 64, 91,165, 74,149,154, 1, 1, 1,184,118,237, 26, 80,214,179,175,115,247,238,221,197,
+ 5, 5, 5,228,213, 87, 95,221, 67, 8,121, 29,222, 71,199, 55,237,218,181, 43, 9, 0,228,114,249, 5, 0, 72, 79, 79,183, 20,
+ 23, 23,151,115, 10, 21, 10, 5,233,219,183,111, 44, 33, 4,187,118,237, 74,146, 72, 36, 4,158,123, 53, 26,214,173, 91,119, 38,
+ 56, 56,120,249,140, 25, 51,158, 75, 77, 77, 61,221,160, 65,131, 36,173, 86,155,171,215,235,245, 6,131,129,136, 68, 34, 73,104,
+104,104,192,150, 45, 91, 46,239,223,191,191,179, 74,165, 90,190,110,221,186, 51,158,156, 55,165, 82,153,174,211,233, 18,133, 52,
+117, 22, 89,217,217,217, 32,132,224,234,213,171, 80, 40, 20, 55,124, 85,235, 82,220, 61, 8, 31, 85,174,206,139,235, 54,127, 69,
+150,179, 48,216,178,101,139,215, 49,180,252,229,116, 22, 69,239,188,243, 14,230,207,159,127,139,163, 53,117,234, 84, 0,192,248,
+241,227,253,110,163, 37,184, 87,217,243,195, 16, 51,178,176, 92,216, 1,128, 17,194, 87,177,103, 30, 28,199, 97,242,228,201,183,
+ 52, 82,119,174,218,243,179,138,175, 92, 56,115,115,115,193,113, 28,194,194,194, 48,112,224, 64,116,237,218,213, 81, 5, 89, 81,
+222,115,231,206,237,125,239,189,247, 26,166,164,164, 96,202,148, 41,133, 33, 33, 33, 65,175,189,246, 26, 87, 92, 92,204,120,115,
+180,168,208,162,160,168, 4,161, 37, 60, 96,254,246, 58,244, 80, 88,118, 70,249,177, 54, 74,116, 58,221,192, 46, 93,186,172, 93,
+185,114,165,188,122,245,234, 56,119,238, 28, 10, 11, 11, 97, 50,153, 32,145, 72, 16, 27, 27,139,226,226, 98,124,255,253,247,122,
+157, 78, 55, 16, 64,137, 15,206, 15,154, 53,107,246,213,172, 89,179, 2, 26, 55,110,140,194,194, 66,104, 52, 26,135, 16, 98, 24,
+ 6, 42,149, 10,114,185, 28,135, 14, 29,194,230,205,155,245, 0, 62,240,193,233, 78,205,193,108, 54, 59, 4,151, 31, 66,203,153,
+ 83, 41,184, 58, 58,157, 14, 0, 44, 85,171, 86,141, 1,128,171, 87,175, 2, 64, 90,114,114,242,196,234,213,171, 51,203,150, 45,
+ 35,132,144,205, 30, 68,150,131,147, 97,152, 66, 66, 72, 17,128, 24,147,201, 36, 1,128,146,146, 18,115, 68, 68, 68,148, 76, 38,
+227,229,114, 57, 31, 16, 16,192,103,102,102, 90,173, 86,171, 4, 0,218,180,105, 99, 2,144,237, 50, 71,161, 51, 39, 79, 8, 81,
+ 47, 90,180,104,226,160, 65,131, 90,182,106,213, 42,101,232,208,161,167, 94,125,245, 85, 54, 46, 46, 46,180,180,180,212,112,233,
+210,165,162,207, 62,251,172,244,192,129, 3,157,197, 98,241,245, 69,139, 22, 77, 4,160,102, 24,134,119,199,105,181, 90,255,220,
+182,109,219, 75,169,169,169, 92, 70, 70, 6,114,114,114, 28, 34, 43, 39, 39, 7,117,235,214,197,254,253,251,109,102,179,121, 91,
+ 5,238,103,101,129,114,150,125,132, 16,225, 89,247, 36,176,132,143, 41,127, 57,157, 69, 81,191,126,253,202,185, 88, 18,137, 4,
+107,214,172,113, 91,110,184,121,174,202,197,221,121,140,175,247,222,123,175,156,104,251,240,195, 15, 61, 22,103,190,238,167,192,
+ 83,178, 56,174,124,175, 67, 15,207,185,183,112, 10,101,167, 88, 44,198,135, 31,126,232,183,163,133, 91,219,104,221,194, 41,196,
+189, 93,187,118,208,233,116, 14, 33,235,201,209,242,117, 63,109, 54,219,200,249,243,231, 19,149, 74,245,152, 90,173,126,254,198,
+141, 27, 75,116, 58,221,163, 37, 37, 37, 94, 29, 45,163,209, 40,163,207, 17,229,196,221, 25,159,235,225, 17, 90,246,151, 36,170,
+ 86,173, 90,110,238, 44,150,101,203, 45, 21,105,103, 96,199,150,139, 23, 47, 62,245,248,227,143,255, 56,114,228,200,160,198,141,
+ 27,139, 19, 19, 19,161,213,106,113,237,218, 53,156, 62,125,218,186,110,221, 58,181, 78,167,123, 30,128, 63,189,206,150,158, 57,
+115,102,115,183,110,221, 38,180,104,209,226,127, 31,125,244,145,168,118,237,218, 40, 41, 41, 65,104,104, 40,162,162,162,112,254,
+252,121,172, 95,191,222,150,159,159,255, 21,128, 73,112, 83,135,234,235,131,223,108, 54, 99,192,128, 1,224,121, 30,115,231,206,
+133, 63, 19, 42, 59,193,108, 54,155, 9, 0,198,222,158, 75,103, 31, 93, 26,151, 46, 93, 2,128,235, 73, 73, 73, 65, 0,176,109,
+219, 54, 6,101,227,107,249,243,133, 79, 8, 33, 14,103,171,110,221,186,215, 92, 11, 71,193,201, 18, 92, 48, 95,225,102, 24,198,
+ 64, 8,201,213,233,116,221,222,121,231,157, 9, 95,126,249,229,115, 95,126,249,229, 45,199,169, 84,170,229,179,103,207,158,244,
+236,179,207,230, 50, 12,227,177, 29,153, 86,171, 29,255,226,139, 47, 62,123,242,228,201,160,128,128, 0,104,181, 90, 20, 20, 20,
+192,108, 54, 35, 57, 57, 25,185,185,185, 88,186,116,105,169, 94,175,255,152, 62,142,255, 14,156,133,129, 39, 87,203, 15,145,229,
+209,213,249,237,183,223,220,142, 81, 85, 81, 78, 87,177,225,239,216, 86,222, 62,138,132, 97,105,220, 13, 25, 81,193,114,237, 22,
+ 94,142,227,240,233,167,159, 58, 6,109,117,231,100, 85,196,209, 18, 56,195,194,194,202,108,114,133, 2, 60,207,163,103,207,158,
+119,194,203, 3, 24,225, 52,226,251,180,209,163, 71, 79,172, 91,183,110,109, 0, 50,231,123, 80, 65, 23,159,130,130,194,151,208,
+178,217,108,233,117,234,212, 41, 87,192,249,154,204,212, 98,177,164,251,121,221,205, 90,173, 54,121,246,236,217,111, 42,149,202,
+206, 58,157,174,161,189,224, 56,169,213,106,183, 25,141,198,121,168,216, 36,208,121, 0,134, 31, 56,112, 96,110,183,110,221,166,
+118,236,216,241,153, 81,163, 70, 49,132, 16, 44, 92,184,144, 92,185,114,101,181,221,197,186,114, 59, 55, 41, 44, 44,236,204,247,
+223,127, 31,189,118,237, 90, 88, 44, 22,204,155, 55, 15, 65, 65, 65,103, 10, 11, 11,253,165,200,221,190,125,251, 15,173, 90,181,
+122, 97,255,254,253, 75, 1,156,216,185,115,231,146,214,173, 91,191,184,127,255,254,159, 0,156,254,235,175,191,150,180,104,209,
+226,197,195,135, 15,175, 2,112,188, 2,133,175,195,217,178, 90,221,215, 52,122,112,178,188,113,170, 9, 33,230, 33, 67,134,140,
+122,246,217,103,191, 57,124,248,240,163,197,197,197, 13, 1, 32, 36, 36,228,100,243,230,205, 15,173, 92,185,242,188,221,201,242,
+213, 88, 63, 79,171,213,246,109,216,176,225, 47, 83,166, 76, 81,166,164,164,112, 53,107,214, 68, 90, 90, 26, 78,157, 58,101,253,
+238,187,239, 52,122,189,190, 55,128, 34,250, 56,254,123, 66,139, 16,130,144,144,144,114, 31, 81, 66,151,255,138, 86, 23, 58,191,
+152,133,169,122, 92,121, 61,113,122, 27, 54, 65, 64, 96, 96,160, 99,112, 83,127,154, 44,240,188,247,241,216, 8, 33, 14, 78, 97,
+241, 67,100,249,236, 33,104,159, 2,199,111, 78,127,134,119, 80, 42,149,176, 88, 44, 14, 94, 63,122,126, 86, 84, 45,254, 6,224,
+ 55,139,197,114, 9, 64, 13, 42,174, 40, 40,238,162,208, 42, 42, 42,106,118,151,175,173, 54, 26,141,147,140, 70,227, 36, 97,131,
+193, 96,184, 83,206, 43, 0,158,221,190,125,251,172,237,219,183, 11,245, 8,147,225,123,190, 68,175, 56,119,238, 92,170, 88, 44,
+254,122,249,242,229, 45, 8, 33, 8, 14, 14, 62,144,150,150,246, 90, 69, 56,108, 54,219,144,253,251,247, 15,131,189, 45,147,217,
+108, 30,178,119,239,222, 55, 81, 54, 31, 19,108, 54,219,144,131, 7, 15, 58,214, 43,248,162, 36,132, 16, 35, 33,164,138,135, 67,
+140, 21,116,224, 4,103,203,180,114,229, 74, 13,128,191,241,207, 56, 89, 22,251, 98,112,169, 46,244,134,191,180, 90,109,205, 15,
+ 63,252,112,154, 72, 36,234,164,213,106,227,148, 74,229, 77,171,213,250,167, 78,167,251, 0,101,115, 84, 81,252, 75, 48,153, 76,
+ 25,117,234,212,225,220,125, 64,121,123,145,123,251,176,178,217,108,233,181,106,213,242,249,113,230,134, 51,195,139,104,184,158,
+156,156,204,250,203, 37,192,108, 54,231,122, 11,103,114,114, 50, 42,202,233, 43,238, 73, 73, 73,110,227,238, 67, 16,122,140,187,
+213,106,189, 45, 78,111,247,211, 27,244,122,125, 81,100,100,164,198, 96, 48,136,141, 70,163,216,106,181,150,179, 31,229,114,121,
+158, 94,175,167, 15, 15, 5,197,157, 8,173,251, 28, 71, 80, 54,189, 68,101,193,120,242,228,201, 23, 28,246, 84,110,238,237,242,
+184, 42, 73,141,143,245,138, 8,163, 74,119,132,236, 66, 74, 87, 73,116,249, 26,141,230, 85, 97, 69,104, 3, 66,241,239,163,160,
+160,224,177,202,230, 44, 44, 44,172,244, 15,181,252,252,252,150,119, 33,238,205, 30, 86, 78,111,200,204,204,124,204,135, 16,163,
+ 15, 14, 5,133,159, 96,233, 45,160,160,160,160,160,160,160,160,184, 59, 96, 80,214,115,192, 29, 42,210,155,160,243,109, 92,123,
+ 27,229,164,156,148,147,114, 82, 78,202, 73, 57, 31, 58, 78, 95,220, 15, 76,111,198,123,209,206,177, 51,229,164,156,148,147,114,
+ 82, 78,202, 73, 57, 41,231,195, 8, 66, 8,173, 58,164,160,160,160,160,160,160,160,184, 91,160, 66,139,130,130,130,130,130,130,
+130,130, 10, 45, 10, 10,138,251, 20,181,171, 86,173,122,182,118,237,218, 25, 0, 6,223,229,107, 13,108,209,162, 69,129, 76, 38,
+219, 2,160, 54,189,245, 20, 20, 20, 84,104, 81, 80, 80, 60,208, 34,171, 97,195,134,123,206,157, 59, 87,119,219,182,109, 85,226,
+226,226, 62,185,155, 23,107,214,172,217,204,221,187,119,135,253,241,199, 31, 93, 98, 98, 98,118,221,166,216,170, 93,173, 90,181,
+179,181,107,215, 78, 7, 48,176,146,131, 56,184,101,203,150,133, 82,169,116, 51, 21,130, 20, 15, 1, 26, 0,104, 72,133, 22, 5,
+ 5, 5,197, 93, 20, 89,251,246,237, 11, 55, 24, 12, 56,119,238, 28,242,242,242,142,223,205, 11, 94,184,112,161,104,223,190,125,
+136,143,143,199, 79, 63,253, 20,153,148,148,180,187,130,130,166,118,195,134, 13,247,156, 61,123,182,238,182,109,219,226,162,162,
+162, 62,171,204,240, 61,250,232,163, 83,119,239,222, 29,186,101,203,150,174,145,145,145,183, 43, 4, 41, 40,254,203,144, 1,120,
+129, 97,152, 67, 13, 26, 52, 56,153,146,146,114,130, 97,152,253, 0,250,225,193, 29,187,211, 63,108,216,176, 97,231,134, 13, 27,
+118,210, 60, 66, 65, 65, 81, 9, 72, 73, 73, 73,209,106,181, 90,146,151,151, 71, 62,255,252,115, 18, 22, 22,102, 6,240, 39,128,
+117,110,150,247, 1,168,252,228, 86,217,143,119,199,243,103, 88, 88,152,249,243,207, 63, 39, 87,175, 94, 37,103,206,156, 33,181,
+107,215,214,251, 41,104,106, 55,108,216, 48, 95, 8,243,166, 77,155, 8,199,113,155, 43,243,166,168, 84,170,211,187,118,237, 34,
+ 87,174, 92, 33, 91,182,108, 33,209,209,209,185, 84,108, 81, 60, 32, 72, 4, 48, 51, 48, 48,176,176, 87,175, 94,228,219,111,191,
+ 37,235,215,175, 39,191,252,242, 11,153, 51,103, 14,233,208,161, 3,145, 74,165, 25, 0,198, 0, 8,121, 88,180, 8, 33,164,108,
+ 86,251, 13, 27, 54, 16, 0,237, 1, 32, 53, 53,149,138, 45, 10, 10,138, 59,197, 62,157, 78,215, 82,167,211,161,180,180, 20, 85,
+171, 86,133, 88, 44,118,123, 96,110,110, 46,246,238,221,139, 17, 35, 70,156,201,206,206,110, 11,239,243, 94,134, 54,105,210,100,
+223, 95,127,253, 85, 59, 40, 40,200,177,145,231,121,152,205,102, 88, 44, 22,152,205,102, 24,141, 70, 24,141, 70, 72,165, 82,200,
+229,114,132,133,133,157,130,247, 42, 12,135,251,166,215,235,113,236,216, 49, 12, 26, 52, 40,175,160,160,160, 45,128, 11,149,120,
+ 95,106, 71, 69, 69,237, 90,186,116,105,100,114,114, 50,110,220,184,129,151, 95,126, 57,255,250,245,235,109, 42,249, 58, 20, 20,
+247, 18, 99,159,122,234,169,169,209,209,209,108,131, 6, 13, 16, 27, 27, 11,163,209, 8,189, 94, 15, 66, 8, 56,142, 3, 33, 4,
+ 37, 37, 37,216,181,107, 23,254,250,235, 47, 99, 81, 81,209,247, 0,230, 1,184,232, 36,178, 30, 56, 45, 82, 78,104,165,166,166,
+ 50, 52,175, 80, 80, 80, 84, 18, 78,150,148,148, 52, 48, 26,141,208,106,181,126,157,112,245,234, 85, 12, 30, 60,248, 76,118,118,
+246,227,112, 63,169,188,170, 73,147, 38, 7,119,237,218, 85,219, 96, 48, 64,173,246, 61,239,188, 84, 42, 69, 64, 64, 0,194,195,
+195,247, 3,104,229,233, 75,188, 65,131, 6, 71,246,239,223, 31,166,215,235,113,252,248,113, 12, 28, 56,208, 92, 88, 88,184, 7,
+128,167,192, 23,162,108, 30,213,235,110,246, 37, 0,120,211,254,133,239, 14,202,200,200,200,214,203,150, 45,147, 84,175, 94, 29,
+ 58,157, 14,253,250,245, 43,188,112,225, 66,115, 0,215,104,214,161,184, 15,113,225,220,185,115,181,108, 54, 27,242,243,243, 97,
+ 52, 26,161,211,233, 28, 66, 75, 36, 18,129, 16, 2,171,213,234,248, 48, 58,122,244, 40,182,109,219, 70,174, 94,189,250,145,253,
+ 89,122, 32,181, 8, 21, 90, 20, 20, 20,119, 11,181,107,213,170,117,252,247,223,127, 15,144, 72, 36, 88,191,126, 61, 62,250,232,
+ 35, 75, 97, 97,225,110, 87,241, 18, 29, 29,157,178,100,201,146,164,228,228,100,156, 56,113, 2, 79, 63,253,244, 7, 0,166,185,
+225,124, 95,173, 86, 79, 53,155,205, 56,126,252, 56, 94,124,241,197,107, 57, 57, 57,167, 93, 69, 76, 82, 82, 82,155,207, 62,251,
+ 76,220,180,105, 83,168,213,106, 60,243,204, 51,186,243,231,207,183, 0,112,218, 67, 88, 63, 43, 44, 44,124,199,102,179,161,180,
+180, 20,241,241,241,144, 72, 36, 94, 35,167,215,235,145,152,152,184, 63, 47, 47,239, 22,241, 22, 30, 30,190,253,198,141, 27, 29,
+228,114,185, 87, 14,179,217,140,244,244,116, 72,165, 82, 24,141, 70,212,168, 81,227,123, 0, 67,104,214,161,184, 31,133,214,223,
+127,255, 93,235,231,159,127, 70,147, 38, 77, 80,175, 94, 61,104, 52, 26,135,232, 50,153, 76,176, 88, 44,183,156,164, 86,171,241,
+246,219,111, 95,132,189,250,252, 65, 21, 90, 66,195,180,137, 66,157,104,106,106,106, 59,154,103, 40, 40, 40,238,180,224,189,120,
+241, 98,227,206,157, 59,239, 94,189,122,117, 68,143, 30, 61, 80,163, 70, 13,241,147, 79, 62, 25,169,211,233, 58, 57, 31,152,147,
+147, 19,250,226,139, 47, 30,185,121,243,102,146,125, 83,115, 15,156,205,131,130,130,112,245,234, 85, 65,100, 53,131, 75, 53,163,
+ 84, 42,221,252,247,223,127,139,165, 82, 41, 14, 31, 62,140,193,131, 7,231, 95,187,118,205, 87,181, 92,136,201,100,130, 72, 36,
+ 2, 0,164,167,167,251,140,220,141, 27, 55,192,243,188,209,221, 62,150,101,101, 71,143, 30, 69,149, 42, 85,188,114,176, 44,235,
+ 42,232,138,105,182,161,184, 79, 97, 49,153, 76,104,214,172, 25,174, 93,187,134,163, 71,143, 58, 4, 87,126,126, 62, 50, 51, 51,
+203, 29,124,232,208, 33, 28, 59,118, 12,109,219,182,117,229,121, 32,181,136, 67, 57,110,216,176,161,157, 61,114, 59,105,158,161,
+160,160,168, 36,212,174, 82,165,202,174,165, 75,151, 70,198,198,198,162, 67,135, 14, 55,179,179,179,171,185, 57,110, 29, 33,164,
+247,213,171, 87, 81,189,122,245,245, 0,250,220,206, 49, 9, 9, 9,121,135, 15, 31,142, 56,115,230, 12, 6, 14, 28,152,103,111,
+243,229,171,237, 83, 82,221,186,117, 15,111,217,178, 37,140,101, 89,156, 62,125,218,159,170,195, 52,148,181, 47,185,238,102, 95,
+ 2,128, 15, 1,132,121, 56, 87, 89,171, 86,173,214, 71,142, 28,145, 48, 12,131,180,180, 52,161,234,176,153,157,151,130,226,126,
+ 67,223, 42, 85,170,124, 55,108,216,176,224, 22, 45, 90, 32, 61, 61, 29, 25, 25, 25, 40, 42, 42, 66,227,198,141,145,146,146,130,
+ 43, 87,174, 96,243,230,205, 56,118,236, 24,100, 50, 25,226,227,227, 17,184,252,103,124,205,224, 12,128,148, 7, 85,139,220,139,
+185, 14, 41, 40, 40, 40,106, 75, 36,146,205,113,113,113,185,112, 63, 46, 85,232, 51,207, 60,147,105,179,217,200,149, 43, 87, 8,
+202,122, 15,194,131,208, 34, 87,174, 92, 33,209,209,209, 87, 1,132,186, 57,102,112, 76, 76,204, 77,133, 66,113, 10, 21, 28,214,
+161,102,205,154,121,231,207,159, 39, 55,111,222, 36,127,252,241, 7, 9, 15, 15,191, 27, 61, 2,107,215,169, 83, 39,191,180,180,
+148, 24, 12, 6,178,107,215, 46,146,144,144,144, 7,218,243,144,226,254, 71, 16,128,201,201,201,201,134, 89,179,102,145,205,155,
+ 55,147,197,139, 23,147,169, 83,167,146, 81,163, 70,145,150, 45, 91,146,150, 45, 91,146,126,253,250,145,119,222,121,135,116,239,
+222,157, 4, 6, 6,150, 0,120,242, 65,190, 41, 84,104, 81, 80, 80,252, 27, 72, 0, 48,199, 46,168,214, 61,243,204, 51,153, 70,
+163,145,100,100,100,144, 53,107,214, 16,148, 13,221,224, 14,239,103,103,103,147,236,236,108, 97,104,132,171,248,103, 88,135,111,
+237,188,119, 36,130, 18, 19, 19,243,142, 28, 57, 66,210,210,210,200,166, 77,155,136, 93,176, 85, 26,228,114,249, 22,181, 90, 77,
+ 12, 6, 3,217,190,125, 59, 29,222,129,226, 65, 68, 20,128, 5,245,235,215,183,204,157, 59,151,172, 91,183,142,124,254,249,231,
+164,111,223,190,100,204,152, 49,164,127,255,254, 36, 50, 50,210, 8, 96, 6,128,224, 7,253,102,220, 11,161, 69,103, 54,167,156,
+148,147,114,186, 98,243,153, 51,103,136, 0,155,205, 70, 50, 50, 50,200,150, 45, 91, 72, 76, 76,204,105,148, 31, 79,203,153, 83,
+ 85,175, 94,189,115,231,207,159, 39, 55,110,220, 32,102,179,217,193,113,238,220, 57, 2, 96,103, 37,132,179,118, 92, 92, 92,238,
+142, 29, 59,200,249,243,231, 73, 76, 76,204,205,202,140,123, 98, 98, 98,110, 94, 94, 30,217,190,125, 59,137,140,140,244, 37,178,
+104, 94,162,156,247, 51,103, 34,128,101, 77,155, 54,181,205,159, 63,159,252,239,127,255, 35, 9, 9, 9, 54,251, 71, 81,220,195,
+162, 58,157, 27,195, 83, 80, 80, 80,220, 43,200, 14, 28, 56, 0,153, 76,230,216,112,226,196, 9,231,113,180, 60,141,219,160, 62,
+123,246,236,227, 61,122,244,216, 61,127,254,252,122,206,189,152,118,236,216, 1, 0,198, 74, 8,219,133,140,140,140,182,221,186,
+117,155, 23, 30, 30,254, 72,118,118,246,132,202,140,120, 90, 90,218, 59, 13, 27, 54,156, 86, 90, 90,170,214,233,116,253, 64,199,
+206,162,120,112,145, 6, 96,208,209,163, 71, 63, 57,122,244,232, 7, 0, 8,128, 41, 0,206, 62,108, 55,130, 10, 45, 10, 10,138,
+123,141,193,175,190,250,170,107, 99,241,195, 0,190,240, 34,178, 4, 20, 93,187,118,173, 85,207,158, 61,135,161,124,239, 68,161,
+113,122,101,224,130,201,100,234,234,218, 83,170,146,240, 83,118,118,246, 79, 52, 11, 80, 60, 68, 56, 13,160,255,195,124, 3,168,
+208,162,160,160,184,215,184, 14,224,229, 59, 56, 95, 13,247,227,108, 81, 80, 80, 80,252,231, 64, 39,149,166,160,160,160,160,160,
+160,160,160, 66,139,130,130,130,130,130,130,130,226,254, 2, 3,207, 61, 7,182, 85,128,231,118,122, 52,108,163,156,148,147,114,
+ 82, 78,202, 73, 57, 41,231, 67,199,233,139,123, 27, 30, 16,208,225, 29, 40, 39,229,164,156,148,147,114,222, 13, 78,198,190,176,
+246, 69, 88,255, 47,199,157,249, 15,199,253, 97,225,124,224,240,111, 14,239, 32, 36, 4,143,178, 46,159, 20,255, 61, 56, 63, 32,
+132,166, 19, 5, 5, 69, 5,203, 14,145,211,203,214,102, 95,240, 31, 44, 75,156, 69, 1,127,135,239,165,187, 17,247,135,153,243,
+129,128, 55,161,245,136, 82,169,252, 72, 42,149, 38, 51, 12, 99,211,106,181, 39,141, 70,227, 34, 0,251,239,240,154,223, 70, 71,
+ 71, 15, 46, 40, 40,224, 89,150, 5,203,178, 96, 24, 6, 44,203, 66, 44, 22,235, 75, 74, 74, 84,183, 67, 26,217,160,239,187, 28,
+195,140,180, 17,219,162,220, 83,235,167,250,218, 78,225,253,129,145, 72, 36, 79,133,133,133,133,228,229,229, 17,150, 45,107,202,
+ 39, 18,137,132,137,112,173, 37, 37, 37, 63,248, 75, 22, 26, 26,122, 40, 44, 44, 44, 68, 56,159, 97, 24, 20, 20, 20, 20,231,230,
+230, 62, 10, 0, 1, 1, 1,123,149, 74,101, 56,199,113, 16,137, 68, 16,137, 68,208,233,116, 5, 5, 5, 5,143,211,164,184, 63,
+177,106,213, 42, 81,183,184,151,107,112, 68,223,136,101, 73, 48,207, 51, 37, 86, 70,126, 98,115,198,183,151,253, 57,191, 95,191,
+126, 54,122, 23,239, 29,164, 82,233,220,232,232,232, 87, 52, 26,141,142, 97, 24,194, 48, 12, 24,166,236, 59,203,245,215,102,179,
+165, 23, 20, 20, 52,243,241,178, 21, 75,165,210,217, 49, 49, 49, 47,234,116, 58,157,157,207, 45, 47, 0, 88, 44,150,244,252,252,
+252,102,126,149,245,145,145,139,228,114,249,243, 58,157, 78,203, 48, 12,239,226, 30, 56,191,204,175,228,231,231,183,241, 37, 12,
+164, 82,233,188,232,232,232,151,236,113,119,132,243, 78,227, 30, 29, 29,253,162, 86,171,245,139,211, 75,220,111,225,188, 27,225,
+252,143,114, 62,248, 66,171,113,227,198, 63, 31, 60,120,176,150, 88, 44, 6, 0, 24, 12,134,134, 11, 22, 44,120,225,189,247,222,
+155, 1, 96,220,109, 94,111, 73,155, 54,109, 6,236,218,181,139, 93,183,110, 29,219,188,121,115, 48, 12, 3,155,205, 6,155,205,
+134, 6, 13, 26,200,111, 55, 34,193, 74,197,216, 99, 91,191, 14,120,164,243,171, 35,115,129,169,190,182,123, 19,152, 0,198, 3,
+ 72,174, 96, 16,242,236,247,229,152, 7,177,177,143,101,217, 10,113,242, 60,127,181,168,168,168,149, 23, 1, 83,233,156,118,145,
+245,116,155, 54,109,130,183,109,219,198,220,188,121,147,145,203,229,224,121, 30, 54,155, 13, 22,139, 5,245,235,215,175,144, 19,
+ 26, 18, 18,162, 26, 59,118,108,141, 39,158,120, 2,107,214,172,193, 11, 47,188,128,214,173, 91, 95,204,205,205, 5, 0, 40,149,
+202,240, 51,103,206,212, 10, 11, 11,131, 78,167, 67, 73, 73, 9,186,116,233,130,130,130,130,251,250,225,122,172,113,252, 20,134,
+101, 28, 99, 69, 17,171,173,240,224,137,204,241,119,202, 27, 22, 22,118, 76, 38,147, 69,251, 84,203, 78, 47, 50,131,193,144, 83,
+ 88, 88,216,196,199, 41,137, 0,122,137, 68,162,154, 28,199,213, 1,144,104,181, 90,163, 1, 64, 34,145,228,136, 68,162, 52,139,
+197,114,222,100, 50, 93, 2,240, 27,188, 76,128,220, 45,238,229, 26,140, 85,247, 76,169,145,239,161,168, 62,163,182,238,202,216,
+ 11, 10,153,110, 83,183,184,151, 87,251, 43,182,254, 69,212, 6,176, 18,101, 19, 74,255, 15,101,227, 0,221, 9,226, 0,244, 70,
+217,156,143, 73,102,179, 57, 31,192, 81,148,181, 67,185, 8, 32, 33, 50, 50,242, 39,158,231,141, 5, 5, 5, 47,195,205, 68,213,
+ 45,154, 86, 61,194,178,108,188,224, 9,240,196,150,126,224,104,122,165,188,160, 88,150,157,151,154,154,250,210,234,213,171, 21,
+ 71,143, 30, 85,212,171, 87,207,241, 65,196,243,252, 45,109, 76,146,146,146,124,185, 26, 28,203,178,115,159,121,230,153,231,150,
+ 45, 91,166,184,126,253,186,162, 74,149, 42, 14, 78,103,177, 37,160, 74,149, 42,254,230,253,111,187,118,237, 58,104,233,210,165,
+226,245,235,215,203, 35, 34, 34, 16, 30, 30, 14,137, 68,114,203,177,143, 63,254, 56,239, 59,234,236,188, 62,125,250, 12, 90,177,
+ 98,133,226,224,193,131,138, 6, 13, 26, 64, 36, 18,221,113,220,251,246,237,251,220,207, 63,255,172, 56,121,242,164,162,102,205,
+154, 16, 76, 5, 87, 62,150,101, 81,181,106, 85,191, 56,123,247,238,253,220,202,149, 43, 21,199,142, 29, 83,212,169, 83,199,113,
+ 63, 9, 33,183, 29,206,255, 56,231, 67,225,104, 73,205,102, 51,118,238,220, 9,150,101, 17, 22, 22,134,193,131, 7, 99,235,214,
+173, 99,183,111,223,190,225, 54,156,173,111,237, 34, 75, 12, 0,191, 60,223, 23, 87,197,192,136, 92, 19, 36, 18, 9,174, 92,185,
+ 2,145, 72, 84, 97,107, 81, 38,147,189, 72, 8,249, 80,151,113, 88,166,215, 91, 96,200, 60,162,144,203,229,142, 23,128, 46,211,
+190, 61,235,136, 66, 46,151, 95, 17,137, 68,147, 53, 26,205, 18, 79,124, 53,107,214,252,241,244,233,211,117,221, 61,184,222,160,
+211,233, 80,173, 90,181,132,194,194,194,154,238,246,139,197,226,248,235,215,175, 71, 73,165, 82, 16, 66, 28, 15,177,235,175,240,
+223,108, 54,163,126,253,250,102,111,215,244,198,105,181, 90, 17, 16, 16, 0,193,141, 50,153, 76,208,104, 52,190, 56, 25,137, 68,
+242,148, 32,178, 0, 96,249,242,229,136,137,137, 65, 84, 84, 20,148, 74, 37,228,114,185,131,211, 95,136, 68, 34,116,235,214, 13,
+ 31,127,252, 49,102,204,152,129,209,163, 71,151, 43,104,197, 98, 49,194,194,194,240,199, 31,127, 64,165, 82, 33, 33, 33, 1,130,
+192,191,175,109, 65,150, 9,219,127,228,134,195,161,237,222,177, 46,247, 88, 19,238, 75,251,171, 18, 44, 11,240,124,217,171,147,
+ 97, 64,172, 22,190,232,200,201,204, 9,126,220,207, 42,105,105,105, 81,254,222, 35,171,213,138, 42, 85,170,136,124, 28,214, 35,
+ 37, 37,229,151,161, 67,135, 74,106,214,172,201, 72, 36, 18,112, 28, 7,142,227, 4,129,158, 64, 8, 73,224,121,190,125, 78, 78,
+ 14, 89,176, 96,193, 39, 59,118,236,120, 18,192, 38,183, 5, 11,209, 55, 42, 53,242, 61,118, 31,199,163,207,116,126, 15,127,172,
+ 26,251,104,155,198, 60,130, 20,250,203, 0,254,203, 66,171,118, 74, 74,202,241,131, 7, 15, 6,152,205,102,180,104,209,226,192,
+133, 11, 23,154,226,246, 70,112, 15, 5,240,217,184,113,227, 6, 13, 29, 58, 84, 20, 18, 18, 2,169, 84,138,210,210, 82, 92,190,
+124,249,197, 31,126,248,129,124,245,213, 87, 95, 0, 8, 74, 75, 75,107,121,232,208, 33,116,232,208,225, 77, 0,111,223,170, 8,
+ 68,241,123, 15, 93,139, 18,214,123,119,107, 40,105,217,140,205, 41,115,113, 92,143, 38,224,109,124,250,161,191, 51,252, 17, 98,
+159,244,237,219,119,224,234,213,171, 3, 1, 96,225,194,133,120,234,169,167, 16, 22, 22, 6,133, 66, 1,137, 68, 2,177, 88, 92,
+238,215,199,203, 86, 4,224,147,254,253,251, 63,179,108,217,178, 32, 0, 88,182,108, 25,250,246,237,139,240,240,112, 4, 5, 5,
+ 65, 42,149, 66, 36, 18, 85,248,102,134,133,133,125,219,250,209, 71,135, 44, 93,186, 20, 0,240,193, 91,111,225,137,199, 30, 67,
+160, 66, 14,133, 92, 10,225, 94, 72, 69, 98,116, 31, 49,210,167,190, 4, 48,235,169,167,158,122,118,197,138, 21, 65, 0,112,244,
+232, 81,228,230,230, 34, 58, 58, 26,114,185, 28, 82,169,212, 17,103,134, 97, 32,151,203,253,138,251, 83, 79, 61,245,204,207, 63,
+255, 28, 4, 0, 75,150, 44, 65,183,110,221, 28,113,151,201,100,144, 72, 36,229, 22, 87,209,233,142,243,201, 39,159,124,102,229,
+202,149, 65, 0,240,195, 15, 63,160,115,231,206, 8, 13, 13,117,220, 79,129,171, 34,105,244, 31,231,124, 56,132,214,241,227,199,
+159, 86, 42,149,211, 1, 68, 74,165,210,144,231,158,123,174,234,144, 33, 67,208,191,127,127,108,223,190,253,245, 10, 10, 45, 38,
+ 58, 58,122,240,174, 93,187, 28,111,104, 19,185, 69, 48, 85,248, 5,110,199,135, 71, 94,127, 61,102,198,101, 13, 14, 28, 58,143,
+ 0,176,204,161, 89,179, 34, 13,151, 46,193,102, 50, 97,210,149,210,178,237, 86,194,236,124,103, 68,204, 35,115,191,248, 16,192,
+ 18, 47, 46,128,204,104, 52,226,226,197,139, 21, 10,196,205,155, 55,193,243,188,209,155,187, 32,145, 72,112,234,212, 41,191,122,
+ 33, 36, 36, 36,120,123, 0,125,114,110,222,188, 25,163, 70,141,194,249,243,231, 33, 76, 85,226, 7, 39, 19, 22, 22, 22, 34,136,
+ 44, 65, 4,201,229,114,136,197, 98,134,227, 56, 70,168,218,179, 63, 92,126, 9, 99,150,101,241,227,143, 63, 98,230,204,153, 24,
+ 51,102, 12, 22, 45, 90,132, 70,141, 26,253,147, 9, 57, 14,106,181, 26,161,161,161, 8, 13, 13, 45, 39, 16,239,103,184, 38,243,
+236, 57,243, 21,224, 73, 89, 35, 16,194, 3, 60, 64, 64,192, 19, 30, 57, 25,151,241,209,199,159,250,253,246, 17,139,197,184,116,
+233,146, 35, 31, 8,206,176, 32,140,156, 93,131,196,196, 68,159,121, 73, 34,145, 76,252,245,215, 95,165, 63,254,248, 35, 86,172,
+ 88, 1,134, 97, 32,147,201,160, 84, 42, 17, 18, 18,130,240,240,112,199, 18, 31, 31,207,124,247,221,119,146, 70,141, 26, 77, 84,
+171,213,155,220,167, 57, 9, 86, 84,159, 81,251,153,206,239, 1, 0,158,121,143,160,232,226,212, 71,216,226, 9,193,255,101,145,
+213,176, 97,195, 61,251,246,237, 11,208,233,116,224,121, 30,155, 54,109, 82,116,238,220,121,247,181,107,215,218, 84, 84,108, 37,
+ 38, 38,174,223,183,111,223,227,145,145,145, 40, 41, 41,129, 90,173,134,197, 98,129, 72, 36, 66, 66, 66, 2, 62,249,228, 19,166,
+ 79,159, 62,195, 95,124,241, 69,131, 92, 46, 23,156,141, 68,247,121,169,124,102, 90,240,249,151, 33,132,148,229, 31,194,147,114,
+191,133,185,105,120,235,157,143,252, 10, 99,213,170, 85,255,183,102,205,154, 64,103,103,201, 89, 4, 56,139, 44, 97,241, 33, 12,
+216,106,213,170, 13,249,233,167,159, 28,156, 17, 17, 17,224, 56, 14, 98,177, 24, 28,199,129,101, 89,236,222,189, 27,211, 39,142,
+ 67,104,100, 21,204,255,124,161,207,112, 70, 70, 70, 46,234,214,173,219,243, 75,150,252, 83,116, 55,172, 94, 29, 61, 31,127, 12,
+ 81, 17, 42, 68,132, 6,149,221, 39,158,193,137,243,215,124,190,143, 0,176, 85,171, 86,125,121,213,170, 85,129,206, 31,132, 66,
+ 92,133,143,103,193,197, 55,153, 76,104,214,172,153, 95,113,119,230, 20,220, 54, 65,180, 9,247, 83,184,142,240,188,250, 8,231,
+ 16, 65, 8,219, 5,103, 57, 14,177, 88,140, 85,127, 44,245,232,102,223, 46,103, 69,211,221,149, 51, 45, 45, 13,211,166, 77,131,
+240,209,230,220, 84, 40, 46, 46, 14,243,231,207,247, 89, 46,185, 60, 3,205, 1, 68, 58,109, 50, 1,144, 58,253,230, 49, 12,115,
+216,205,113,194,118,177,189,198, 42, 18,101,237,198, 74, 1,132,184,225,243,196,147,111,127,231, 69,186, 28, 95,238, 58, 30,133,
+214,134, 13, 27,132,167,184,125,106,106,234, 78,251,255, 98,153, 76,118, 83,161, 80,196, 0, 40,221,180,105, 19, 94,123,237, 53,
+216,173,213,222,193,193,193,167,221,184, 58,199,141, 70,227,123, 0,114,236,155,132, 46,154,108, 97, 97, 33,191,117,235, 86,118,
+217,147, 93, 97, 34, 64,227, 15,167,163, 91,106, 42, 54,199, 73, 33, 2,240,232,185,124, 40, 20, 10, 78,173, 86, 91,156,219,109,
+185,105,187,181,205, 37, 67,137, 2, 56, 14, 45,246,108,196,168, 61, 27,241,168, 82,138,130,213, 43, 81,186,119, 23, 88,150, 65,
+ 91,101, 4, 70, 15,220,138, 86, 42, 25,164, 70, 45, 88,150,117,151,179, 29,156, 23, 47, 94,236,167, 82,169,166,187,220, 96,127,
+112, 21,101,243, 56,193, 67, 56, 65, 8, 65,163, 70,141,192, 48,140,195, 45, 16, 22,225,161, 19,150, 99,199,220,214, 64,122,228,
+180, 87,193, 65,169, 84,226,207, 63,255,116, 28,211,169, 83, 39, 24, 12, 6,132,133,133,249,197,153,151,151, 71, 50, 51, 51,153,
+101,203,150, 65, 44, 22, 35, 60, 60, 28, 10,133,130, 89,186,116,233, 56,137, 68, 18,111, 48, 24,120,147,201, 4,169, 84, 58, 95,
+ 72, 31,142,227,180,106,181, 58,220, 19,167, 72, 36,194,208,161, 67,241,238,187,239, 98,209,162, 69,120,253,245,215,111,113,188,
+ 12, 6, 3, 34, 34, 34, 28, 98,203,205, 3,120, 55,186,251,222, 93, 78,158,224,244,177,205, 56,115,114, 27,120, 27, 15, 27, 79,
+ 64,136, 13,188, 21, 56,186,245, 64,173,172,171,153,113, 4,164,172,233, 45, 0, 89,137,198,218, 46, 92, 90, 7,192,186,157, 5,
+166,185,190,194,201,113, 28, 12, 6, 3,126,253,245, 87,156, 59,119, 14,155, 54,109,130, 94,175, 71, 68, 68, 4, 66, 66, 66,240,
+216, 99,143,225,197, 23, 95, 68, 98, 98,162,207,184, 19, 66,150,220,188,121,179,113,235,214,173,153,226,226, 98, 20, 23, 23, 67,
+175,215,195,102,179,193,106,181,130,227, 56, 4, 4, 4, 64, 46,151, 35, 58, 58, 26, 6,131,129, 24,141,198, 37,158, 56,121,158,
+ 41,209, 93, 25,123,225,143, 85, 99, 31,125,230, 61,130,213, 51, 25,212,168, 38,211,253,121, 36,104,200,186, 61,163,187, 0, 32,
+ 60,113, 88, 11,196, 98,227,243,223, 29,247,217,240,123,158, 70,183,138,172,112,189, 94,143,210,210,210, 50, 91, 95, 42,197,234,
+213,171, 35,122,245,234,181, 43, 51, 51,179,173, 23,177,117, 11,103, 80, 80, 80,130, 72, 36,194,169, 83,167,240,213, 87, 95,225,
+207, 63,255, 68, 78, 78, 78, 81,149, 42, 85,130,219,183,111,207,190,245,214, 91,104,220,184, 49,190,255,254,251, 0, 95,156,132,
+ 16,164, 93,220,141,180, 75,123,192,243,101,174,117,217,226,254, 63,241, 51,238, 90,173,214,112,252,248,241,192,111,190,249, 6,
+ 81, 81, 81, 72, 74, 74,130, 66,161, 64, 64, 64, 64,185,151,172,243,139,215,215,179,169,215,235, 13,105,105,105,129, 63,255,252,
+ 51,194,195,195,145,152,152, 8,133, 66, 1,169, 84, 10,142,227,192, 48, 12,150, 45, 91,134,229, 31, 15, 68,218,249,147,232,219,
+179,139,207,112, 42, 20,138,231,151, 44, 89, 82,206, 2,137, 14, 13, 5, 39,102, 33, 18, 51, 8,237,244, 36, 0,160,104,251, 90,
+111,163, 67, 58,115, 50,165,165,165,134,131, 7, 15, 6, 30, 57,114, 4, 60,207, 35, 49, 49, 17, 58,157, 14, 42,149,202, 17,255,
+173, 91,183,162, 79,159, 62,248,241,199, 31,209,178,101, 75,159,113,215,104, 52,134,147, 39, 79, 6,254,244,211, 79, 8, 11, 11,
+ 67,213,170, 85, 29,113, 23, 22,177, 88, 12,145, 72,132,228,228,100,148,148,148, 32, 48, 48,208,103, 26, 29, 61,122, 52,240,167,
+159,126, 66,104,104, 40,226,227,227, 29,142,155, 32,142,102,126,249,113, 57,130, 0, 38,246,142, 57, 43,154,238,174,156,125,251,
+246, 69,141, 26, 53,160, 82,169,160, 84, 42, 29,220,222, 56, 61,104, 17,135,222,102, 24,102,131,211, 51,145,202, 48,204, 6,231,
+ 95, 79,199,217,255,182, 29, 55,110, 92,179, 25, 51,102, 76,107,217,178,229,207,251,246,237, 91,238,137,207, 19,207,184,113,227,
+ 82,102,204,152, 49,205,249,120, 55,215,241,236,104,165,166,166, 50,246, 72, 50, 0,146,154, 54,109,122,120,251,246,237, 97, 65,
+ 65, 65,142,131,111,220,184,129,226,226, 98, 4, 5, 5,169,102,207,158,173,106,223,190, 61,162,163,163, 29, 95, 0, 23, 47, 94,
+172, 95,187,118,109, 53, 0, 87,223,150,103, 89, 22,173, 90,181,194,105,123,109, 71,183,212, 84,196,199,199, 59, 26,121, 4, 4,
+ 4, 96,248,240,225,204,168, 81,163, 56,193,205, 32,132, 64,175,215, 35, 54, 54, 86,238,205,213, 1,128, 20,125, 62,214,182,111,
+ 11,150, 1,116,199, 14, 65, 34,101,192,138, 24, 52, 33, 5,248,189, 67, 91, 48, 0, 76,127,239,135, 31, 46,204, 49, 0, 93,238,
+142,195, 65,112,249,242,101,191, 28, 45,123,188,152,219,229, 20, 28,141,125,251,246,193,102,179,249,203, 73, 88,150,133, 82,169,
+ 68, 76, 76, 12,228,114, 57, 20, 10, 5,243,243,207, 63,143, 79, 74, 74,138, 29, 53,106, 20,171, 86,171,217, 86,173, 90,225,169,
+167,158,226,132, 42,206,148,148, 20,159,113,217,185,115, 39,190,250,234, 43,188,254,250,235,110, 29, 45,134, 97, 16, 25, 25, 9,
+149, 74,133, 7, 5, 60, 0,179,213, 2,157, 70,239,168,210,181,217,108, 56,185,227,239, 90, 87,255,190,152,178,225,231, 31,197,
+ 0, 96,216,177,214,249,180,216,167,190, 92, 89,187, 93,168,248,224,206, 34,203, 65,111,121,158,227, 56, 12, 30, 60, 24, 51,102,
+204,192,243,207, 63,143, 77,155, 54, 97,194,132, 9,120,229,149, 87,110,113,181,124,125, 57, 90, 44,150,175, 95,120,225,133,215,
+ 87,175, 94, 93,231,189,247,222, 99, 5, 71, 75,161, 80,128, 97, 24, 24, 12, 6, 24,141, 70,232,245,122,156, 63,127,158,127,245,
+213, 87, 47,152, 76,166,175, 61, 86, 87, 50,242, 19, 10,153,110, 83,245,120,182,134,246,218,167, 65,173, 31, 75,212, 51,242,166,
+ 37, 79,214,238, 76,122, 12, 78, 12, 5, 33, 32, 60,192, 19,192,104,212, 98,248,240, 55, 69,255, 98, 82, 57, 68,150,193, 96,192,
+241,227,199,209,161, 67, 7,220,188,121, 19,103,207,158, 69,173, 90,181,176,116,233,210,200,231,158,123,110, 87,110,110,110, 91,
+127,157,173,147, 39, 79,142,123,228,145, 71,230,105, 52,154, 66,141, 70, 51, 15,192,114, 0,197,151, 47, 95,174,119,249,242,229,
+ 5,155, 55,111,110,243,209, 71, 31,137, 92,218,232,136, 60,217,163, 22,139, 21,122,189,209,171,192, 18,214, 9,225,253,138, 56,
+195, 48,164, 78,157, 58,232,213,171, 23,196, 98, 49, 20, 10, 5, 2, 3, 3,203, 85,155,185, 10, 46,111,229, 7, 0,158, 97, 24,
+ 84,169, 82, 5, 61,122,244,128, 68, 34, 41,199, 41,228,195, 30, 61,122, 96,228,164, 15,241,245,200,142,248,234,133, 90,232, 60,
+ 37,199,107, 56,117, 58,157,230,175,191,254,146,191,251,250,235,120,164,102, 77, 68,168, 84,168, 22, 29, 9,185, 76, 10,137,115,
+152, 24,191, 76,118, 2,128, 23,137, 68,104,208,160, 1,114,114,114,112,237,218, 53, 92,187,118, 13, 44,203,162,117,235,214, 14,
+ 23,230,210,165, 75,152, 52,105, 18,140, 70,163,223,113,175, 89,179, 38, 58,118,236, 8,169, 84, 10,133, 66, 81,174,202, 80,184,
+167,165,165,165,168, 81,163, 6,214,173, 91,135,218,181,107,251,228,172, 91,183, 46,218,181,107, 87,238,126,202,229,114,135, 40,
+ 2,128,155, 7, 53,142,107,196,197,197, 85,136,115,203,161, 27,248,102,235, 95, 48,154,120,168,117,150,114, 39,196, 70,168,176,
+231,167,247,252,138,187,192,185,120,241, 98, 20, 23, 23, 59,140, 3,225,163, 92, 48, 81,170, 86,173,138,133, 11,221, 59,153, 46,
+ 90,196,221, 59, 47,213,207,247,173,112,156,144,185,100, 51,102,204,152,230,122,190, 47, 62,231,253, 46,231,155, 92,196, 89, 78,
+133,170, 14,101, 50,217,251,127,253,245, 87, 88, 73, 73, 9, 46, 93,186, 4,150,101, 29,117,234, 28,199,193,108, 54,227,202,149,
+ 43, 8, 11, 11, 67,110,110, 46,100, 50, 25, 68, 34, 17, 76, 38, 19, 0, 52,241,244, 2, 39,132, 96,100, 94, 89, 19,161, 63,170,
+ 72,144, 6,160,103, 94,217,131, 33, 52,136, 95,179,102, 13, 2, 3, 3, 17, 20, 20,228,248,245, 85,141,116,242,218,101,228,136,
+ 25,176,251,119,131, 97, 1,150, 1, 24, 17,192,178, 4, 44,195,128,221,191, 11, 12, 3, 40,195, 67, 43, 90, 0,251,106, 24,239,
+181, 1,188, 39,247,201,157,139,229,250,127,199,142, 29,240,151,179, 70,141, 26, 8, 12, 12,116, 44,155, 55,111, 46,231,104,217,
+108, 54,132,135,135,251,195, 73,202,220, 8, 30, 81, 81, 81, 16,139,197,204,210,165, 75,199, 37, 39, 39,199,190,243,206, 59,172,
+ 72, 36,194,177, 99,199,112,230,204, 25, 36, 38, 38,250,221,102,171,184,184, 56,107,220,184,113,182,113,227,202,250, 80,164,164,
+164,160,184,184, 56, 87,216,175, 86,171, 11,186,118,237, 90,174,221, 70,126,126,254,253,221, 18,222,126, 31,173,102, 43,116, 6,
+ 3, 52,165, 58,135, 59,148,155,153, 19,242,222,168,183,197,179,134,191, 4, 0, 24, 53,247,115,148, 46,250,167, 32, 91, 59,106,
+ 64,212,147,159,173, 24, 11,160,143, 55,126,141, 70, 3,131,193,128,234,213,171, 99,223,190,125, 40, 45, 45, 69,247,238,221,193,
+ 48,140,163,135,104, 5, 96,202,200,200,120, 60, 53, 53,245,240,156, 57,115,170,215,171, 87,143,209,106,181,208,233,116,112,254,
+ 61,121,242, 36, 89,190,124,249, 85,157, 78,215,202,110,157,187,197,230,140,111, 47,119,139,123,121,245,159,199, 68,169, 81, 53,
+ 46,168, 50,138,170, 91, 11, 50,100, 90,181,254,188,193, 70,206,128,216, 0, 27,120, 16, 43, 15,155,189,218,235,223,130, 92, 46,
+ 95,176,103,207,158,112,131,193,128,163, 71,143, 98,208,160, 65,166,252,252,124, 41, 0, 60,255,252,243,166,101,203,150, 73,107,
+212,168,129,165, 75,151, 70, 62,245,212, 83,171,180, 90,109, 3, 63,169,127,204,202,202,250,209,117, 99,120,120,248,252, 27, 55,
+110,180,119,110,243, 99,181, 90, 29,193,113,251, 96,242,128,197, 98,129, 94,111, 68, 73, 73, 41, 76,102,139,189,204,228, 97,179,
+ 89,237,191, 60,172,246,114, 84, 42,225,130,154, 52,136,209, 16, 66,192, 50, 76,241,209, 83,217, 85,189,137,118,119, 85, 92,126,
+186, 89,174,176, 9,189,204,194,195,195, 33, 22,139,241,227,143, 63,226,196,222,205,144,138, 8,108, 86, 11,172, 22, 51,108, 22,
+ 19,196, 34, 17,254, 60,118, 13, 93,234, 6,249, 37, 8, 35, 34, 34,208,179,101, 75,164,182,108, 89,214,189,141,227, 16, 40,147,
+ 65, 33, 9, 40,115,178, 0, 16, 27,235,239, 32, 2,188, 16,206,232,232,104, 28, 57,114, 4, 35, 71,142,196,204,153, 51, 33,151,
+203, 29,189,159,207,157, 59,135,149, 43, 87,162, 75,151, 46, 21,142,187,224,224,141, 29, 59, 22,153,153,153,152, 59,119, 46,154,
+ 54,109, 10,177, 88,140,226,226, 98,180,106,213, 10, 57, 57, 57,126,113, 58, 87,239, 73,165,210,114,238,147, 32, 0, 43,154, 70,
+206,156, 47,245,141,197,250,189,203,193,128,193,129,159,222, 46, 39, 10, 23,174,216, 93, 97,206, 9, 19, 38,148, 11,167, 63,110,
+150,191,112,113,157,124, 30,199, 48,204, 81,193,108, 29, 59,118,236,251, 12,195,108, 24, 59,118,236,251,211,167, 79, 63,237, 15,
+159,187,253, 12,195,108,180,139,176,158, 78,219,142, 86, 72,104, 41, 20,138, 71, 3, 3, 3,113,233,210, 37,116,239,222,221, 84,
+ 80, 80,112, 65, 44, 22,215,202,207,207,151,229,230,230, 66,167,211,105, 38, 79,158,124, 13,128,188, 69,139, 22, 53,254,252,243,
+ 79,220,188,121, 19,203,150, 45, 3,128,181,238,219,108,176,224,121,222,145, 41, 92, 63,219, 68, 34, 17,246,239,223,143,253,251,
+203, 55,253,250,230,155,111,124,190, 48,158,250,245, 55, 28, 59,118, 12,206,195, 3, 8,255,157,183, 5, 4, 4, 0,222,123,120,
+148,131,175,134,241,190, 26,192,187,131,191,109,191,220,245,204,241,132,140,140, 12,143,231,239,223,191,191,156,163,229,139, 83,
+ 36, 18,193,102,179, 65, 46,151, 51, 18,137,132,145, 72, 36,241,130,200, 18,137, 68,142, 7, 70, 38,147, 65, 38,147,149,251, 74,
+245,132,204,204,204, 14,153,153,153, 30,247,231,229,229, 61,158,151,151,135, 7, 17,102,139, 5,122,157, 9,165, 26, 61, 38, 78,
+255,190,108,227, 68, 28, 4,112,240,241,255,141,196,208,110, 93, 58, 86,180,154, 90,184,223, 81, 81, 81,216,185,115, 39, 24,134,
+193,170, 85,171, 16, 28, 28,140,110,221,186, 65,165, 82, 97,236,216,177,232,215,175, 95, 69, 11,179,146,130,130,130,199,223,122,
+235,173,195,159,126,250,105,181,170, 85,171,194,100, 50,193,108, 54,195,100, 50,225,242,229,203, 88,190,124,249, 77,157, 78,247,
+ 56,128, 18, 95,100,155, 51,190,189,252,203,174, 81,153,157,251, 63,165, 63,151,243, 7,178,179, 11, 96,181,102,128,183, 89, 97,
+182,218,202, 28, 62,171, 21, 86,171, 13, 18,137, 72,245,233,212,183,183,242, 32, 96, 89,198, 4,224,137,123,149, 70, 33, 33, 33,
+ 41,121,121,121,184,120,241, 34, 94,124,241,197,236,130,130,130,179, 0, 58, 1, 64, 65, 65,193,158, 65,131, 6,213, 91,178,100,
+ 73, 76, 82, 82, 18, 2, 3, 3, 85, 90,173,214, 23,101, 32,128,161, 0,186,162,172, 29,136,128, 66, 0,147, 89,150,149, 29, 61,
+122,244,150,158,118,187,118,237, 2,128,131,238,191,128,236,142,150,193,128,188,130, 34,188,242,191,241,255,124, 25,129,148, 19,
+ 23, 4, 4,111,140, 64, 0, 0,228,231, 92,198, 75,175,140,148,249,250, 32,112,247, 34,172, 64, 27,157,114, 31,106, 66, 30, 13,
+ 12, 12, 44,171,126, 91,183, 28, 27, 63,251, 31, 96, 51,131, 88,244,128, 89, 7,152, 53,224, 77, 58, 48, 18, 57, 96,209,251, 37,
+180, 2, 3, 3, 17, 40,151, 35, 42, 36,164,108, 16, 72,145, 8, 98, 49, 7,222, 2, 48, 54,198, 33, 72,121,255, 6, 6,113,124,
+ 84,202,229,114,164,165,165, 97,232,208,161, 48,155,205,232,219,183, 47, 76, 38, 19, 12, 6, 3,244,122, 61,146,147,147,161,211,
+233,252,226, 19,122, 43, 6, 6, 6, 66, 34,145,224,237,183,223, 70,179,102,205, 48,105,210, 36,140, 25, 51, 6,201,201,201,120,
+227,141, 55,176,124,249,114,164,164,164,248,226, 37,206,105, 36,220, 79, 65,108, 57, 87,241, 1,168,112, 26,185,114, 50, 12, 91,
+ 78,176, 9,203,155, 47,116,170, 48,231,140, 25, 51,144,151,151,119,139,147, 37,252,143,139,139,195,151, 95,126,121,187, 53, 67,
+130,123, 20,237,102, 95, 79, 87, 39,138, 16,210,220,222,118,202, 56,125,250,244,211,211,167, 79, 79,101, 24,102,195,244,233,211,
+ 83, 61, 57, 90,238,120,220,236,247,251,165,197,185,212,141,182,119,222, 41,220,232,176,176, 48, 81,181,106,213, 88,149, 74,133,
+226,226, 98, 68, 70, 70,146,188,188,188,254, 10,133,226,227,159,127,254,185,134, 70,163,193,185,115,231, 48,127,254,252,131, 0,
+230,121, 19, 90,155, 34,237,214,177,221,201,114, 94,239,213,171, 23,146,146,146,202,185, 89,114,185,220,107,230, 17,246, 9,142,
+144, 72, 36, 66,237,218,181,229, 87,175, 94,213, 75, 36, 18,196,199,199,203,179,179,179,245, 18,137,164,194, 61, 93,124, 53,140,
+247,213, 0,222,157,240,105,222,188,121, 57, 7,203,249,215,249,255,250,245,235,125, 86, 29, 10,156,245,234,213,115,220,175,160,
+160, 32,225, 92, 0, 64,247,238,221,193,243, 60, 34, 34, 34,252,226, 20, 68,173,189, 1, 60, 12, 6, 3, 95, 90, 90,202, 30, 61,
+122, 20, 82,169, 20, 65, 65, 65,142,182, 58, 1, 1, 1, 14, 55,147,194, 93,129,192,195,100,177, 64,175,215, 67,163,209, 0, 0,
+ 46,159, 90, 83, 94,136, 25,213,183,205, 47, 20,176,133,133,133,216,188,121, 51,254,248,227, 15, 52,107,214,204,173,168,174,128,
+224,202, 43, 44, 44,108, 61,122,244,232, 3, 83,166, 76,169, 18, 22, 22, 6,179,217,140, 27, 55,110,224,187,239,190,203,212,233,
+116,173, 43, 82,192,128, 0, 22,139, 21, 6,157, 17, 37,234, 82,124, 60,245, 7,143, 89, 15, 0, 10,115,207,163, 87,239,126,210,
+123,153, 78,153,153,153,239,180,110,221,122,106,105,105,105,177, 78,167,235, 7, 96,150,243,247, 84, 65, 65, 65,155,222,189,123,
+207, 9, 11, 11,107,154,155,155,251,190, 31,148, 99,211,210,210,222, 79, 72, 72, 40,183,209,104, 52, 34, 33, 33,161,118,110,110,
+238,192,182,109,219,126, 8, 32,204,105,119, 16,128, 45, 0,190,244,148,151,132,170, 67,141, 70, 15, 85, 72, 44, 50,174,237,244,
+ 25, 16,137,200, 0,194,243, 94,203, 16,225, 3,216,211,226,163,103,220, 45, 65, 21,142, 21, 94,216, 79, 60,253, 2,158, 24, 58,
+ 3, 10, 49, 48,237,165,199,145, 28, 2, 64, 30, 6, 73,219,247,192,132,216,239,209,208,223,252, 34, 31,243,213, 87, 56,102, 47,
+143,227, 35, 35, 49,186,127,127, 16, 11,176,239,204, 25,172,248,235, 47,244,239,208, 1,138,128, 0,191, 63, 88,120,158,135, 68,
+ 34,193,229,203,151,177,111,223, 62,212,173, 91, 23,151, 46, 93, 42, 55, 12, 5, 33,196,223,248, 59,226, 46,147,201, 32, 22,139,
+145,157,157,141,212,212, 84, 72, 36, 18,252,240,195, 15,216,185,115, 39, 70,143, 30,141, 33, 67,134,160,125,251,246, 56,123,246,
+172, 95,156,132,144, 91,122, 43,186, 86,231, 86, 52,141, 92, 57, 93,223,251,183,147,238, 2,231,148, 41, 83,220,118,168,240,135,
+211,157, 22,113,147,118, 71,157,197,144,224, 60, 57, 11, 35,215,117, 0,161,194,182,177, 99,199,190,239,239,121,206,235,130, 35,
+ 86,145, 42, 76,135,208, 74, 77, 77, 45, 23,243,194,194,194, 3, 7, 14, 28,168,175, 84, 42,113,254,252,121,169, 74,165,170, 47,
+ 20,232, 44,203, 98,213,170, 85, 65, 61,122,244,216, 58,107,214,172,120,158,231,145,147,147,131,119,223,125, 87, 99,181, 90, 7,
+ 0,176,122,122,129,251,114,166,126,251,237,214,135,109,221,186,117,126, 85,129, 8, 66,138,227, 56,132,134,134,234,245,122, 61,
+ 20, 10, 5, 66, 67, 67,245, 58,157, 14, 74,165, 82,168, 43,102,241, 79, 79, 5, 95,238,147,175,134,241,174, 13,224,125,226,204,
+153, 51,126, 29,103,175,106,245, 43,151,167,165,165,121, 44, 72,118,238,220, 9,222, 94,208,250,203,105,255,202, 35,130,240, 83,
+ 40, 20, 8, 11, 11,131, 76, 38,131, 92, 46, 47, 39,178,100, 50,153,207, 7,199,215,128,164, 1, 1, 1,135,148, 74,101,136,176,
+ 95, 44, 22,163,180,180,180,184,176,176,240,209,251,186,234, 16, 4, 86,179, 21,122,189, 1,154, 82,125,165,243,155, 76, 38,200,
+100, 50, 44, 95,190, 28,143, 63,254, 56, 90,180,104,113,139,200,186, 77,123, 62,189,176,176,176,253,188,121,243, 14,206,158, 61,
+ 59, 84,163,209,224,251,239,191, 47,209,104, 52,237, 1,164, 87, 72,108,242, 4, 22,179, 25, 58,131, 17, 90, 77,217, 61,184,114,
+122,205,127, 45,169,150,103,103,103, 47,247,178,255,138,213,106, 77, 21,198,125,243, 3,143, 37, 36, 36, 32, 59, 59,187,220,198,
+235,215,175,195,102,179, 25, 81, 54, 78,214,203,206, 70, 50,254, 25, 61,219,211, 87,124,153, 59,170, 55, 66,163, 41,115, 65, 12,
+218,252,202,201,167,118,177,225,169, 77,214,237,228, 33,134, 97, 28,141,190,135, 15, 31,142,147, 39, 78,160, 83, 21, 53,146, 99,
+130, 64,212, 25,144,116,252, 8,127,231,201, 49,107,206,166, 10,115,175,116,106, 2, 49,107,229, 74,183,251,174,244,233, 83,161,
+184, 95,184,112, 1,114,185, 28, 54,155,237,150,247, 77, 69,227,239, 44, 96,230,204,153,131,209,163, 71,227,135, 31,126,192,201,
+147, 39,241,200, 35,143,160,115,231,206,200,205,205,197,137, 19, 39, 96, 52, 26,253, 14,167,115,187,185, 11, 87,207, 96,219,190,
+223,113, 61,253, 26, 50,179,111,222,118,186, 59,115,186, 10,173, 95,182, 29,199,211, 93,154,220, 22,231,199, 31,127,140,220,220,
+220,114, 78,150,115,185,228,201,209,114,213, 34, 46,200,119,105, 11, 37,172,155, 92, 68,143,235,186,235,241, 0,144, 11, 64,228,
+227, 60,215,245,252,233,211,167,239, 16,156, 48, 59,175,200, 87,251,172,114,142,150, 11,102,244,233,211,167,247,252,249,243, 35,
+ 3, 2, 2, 28, 61,144,198,142, 29,139,209,163, 71,163,122,245,234,136,136,136,136, 11, 9, 9, 65, 65, 65, 1,102,206,156,137,
+180,180,180,215,224,102,160, 61, 87,161,213,230,106, 41,164,210,127, 62, 88, 5,103, 11, 0,134, 12, 25,114,139,163, 37, 36,144,
+ 55, 88, 44, 22,132,135,135, 67,167,211, 65, 36, 18,161,111,223,190,162, 83,167, 78,217,186,117,235,134, 39,159,124, 82,116,226,
+196, 9, 91,207,158, 61, 33, 18,137,208,177, 99, 71,245, 47,191,252, 50, 10,192,103,126,136,173, 74,107, 24, 47,100, 50,127,199,
+ 62,242, 71, 92,122,227,100, 24, 6, 58,157, 14, 28,199, 57, 26,202,251,195, 41, 84, 29, 58, 63,128, 44,203, 34, 36, 36,196, 81,
+120, 8,142,150, 32,180,124,241,250, 26,144, 84,161, 80,168,206,159, 63, 95, 67,232,120,145,159,159,143,142, 29, 59, 94, 44, 44,
+ 44,188,191, 45, 45, 30, 48, 91,109,208,232, 13,208,232,117,149, 70, 43, 60, 15,139, 22, 45,194,217,179,103, 97, 48, 24,176, 96,
+193, 2, 71,167, 2,103,145,117, 7,130,235,178, 92, 46,231,187,119,239,142, 3, 7, 14, 64, 38,147, 89,112, 27,227, 95,241,132,
+135,217,106,133, 65,175,135,198,119,149,219,131, 2,135,170, 62,123,246, 44, 76, 38, 19, 38, 77,154,100, 59,124,248,240, 14,148,
+ 13,128, 42, 56,120, 3,219,181,107, 55, 89,169, 84,134,108,220,184,241, 77, 0, 63,120,123,121, 91,172,118,209, 94,137,247,209,
+185, 70,192, 93,155,172,219, 25,102,197,249,197,202,243, 60, 94,123,245, 85,116,174,162,198,147, 77, 35,161,205,186, 8, 69,112,
+ 36,152,144, 68,204,154,179, 9,167,175,250,221, 20,147, 0, 64,247,118,125,208,168,238,173,195,131,181,238, 84,246, 77,182,231,
+207, 67,200,201,207,172,112,220,181, 90,173, 71,231,170, 2,142,150,227,153, 19,238, 95,227,198,141, 81,171, 86, 45,236,216,177,
+ 3, 77,154, 52,193,165, 75,151,112,233,210, 37,164,165,165,225,228,201,147, 40, 42, 42,170,112, 26,253,186,101, 5,138, 74, 11,
+ 33,149, 72, 81, 88,156,143,235, 25,215, 16, 29, 30,115,199,233, 46,160, 78,207,143, 1, 0, 85, 34,131, 43, 36,180,156, 57, 63,
+249,228,147, 91,196,251,157, 14,217,195, 48,204, 33,111,235, 21, 61,255, 94,194,147,208,186,150,151,151,215,162,127,255,254, 99,
+ 1, 52,183,111, 43, 1,176,114,235,214,173,125,162,162,162, 58,180,108,217,146,147, 74,165,216,183,111, 31,126,249,229,151, 31,
+ 0,172,240,118, 33,169, 84,170, 79, 76, 76,148, 11, 25, 81,120, 16, 85, 42,149,104,230,204,153,204, 55,223,124,227,209,229,242,
+149, 64, 37, 37, 37,208,106,181, 8, 14, 14,134,217,108, 70,247,238,221,109,103,207,158,133, 68, 34, 65,239,222,189,109,103,206,
+156,113, 36,244,226,197,139,227,245,122,125,171, 63,254,248,163, 43,128,182, 21,184, 87, 66,195,248, 64,248,217, 0,222,211, 87,
+158, 63,240,183, 58,206, 19,231,200,145, 35,111,139, 83, 34,145, 88,133,145,223, 89,150,133,217,108, 70,147, 38, 77,144,155,155,
+235,120,104,148, 74,165, 67,100,249, 35,180,124, 13, 72,202,113, 28, 76, 38, 19,218,182,109, 11,134, 97,240,249,231,159, 63, 24,
+213,145, 60,207, 4, 6,134,163, 74,149,218,136,140, 50,128,231, 43,119, 86,153, 49, 99,198,148, 19, 83,238, 70, 94, 22,238,255,
+237, 64,224,186,147,217,231, 9,224,168,242,210,106, 13,247, 93, 18, 70, 69, 69,181,200,205,205, 93,231,178,185, 16,192,100, 47,
+ 31,150,142,132,190,121,243, 38,186,117,235,134,223,127,255, 93,180,118,237,218, 78,235,215,175, 63,115,241,226,197,155, 77,154,
+ 52,169,250,250,235,175,203,218,182,109,139,252,252,124, 52,109,218,116, 98, 70, 70,134, 23,161,101,191,143, 6, 35,180,218,202,
+119, 71,221,185, 89,119,242, 98, 20,242,228,132, 9, 31,162,115,108, 49,250, 62, 18,140, 37, 27,246, 98, 96, 99, 57, 96,146, 85,
+152, 79, 8, 75, 88,149, 36, 36,166,180,184,101,191, 76, 85, 54,150,107, 98, 74, 11,176, 55, 47, 85, 56,238,206, 97,118, 21, 85,
+183,227,232, 57,223,207, 87, 94,121, 5,239,189,247, 30,186,118,237,138, 75,151, 46, 97,215,174, 93,184,116,233, 18, 70,142, 28,
+137,148,148, 20, 60,242,200, 35, 21,226, 92,191,109, 53,212,154, 18,176, 12,139,194,146, 2, 24,140,122,140,121, 99,194, 29,167,
+187,227,229,191,109, 58, 0, 96,205,214, 99,183,205,249,193, 7, 31, 32, 59, 59,187,156,147,117, 39,237,178,238,119,120, 27, 45,
+237, 26,128,215, 92, 55,154, 76,166,160, 73,147, 38,117,137,136,136, 0,195, 48,152, 51,103, 14,194,194,194, 30, 7,112,218,100,
+ 50,229,107,181,218,209, 78, 34,164, 51,236, 99,109,228,228,228,184,237,183,175,213,106,205, 93,186,116, 17,199,198,198,150,235,
+109,168, 84, 42, 61,185, 59, 14, 78, 97,159,213,106,197,152, 49, 99, 48,109,218, 52, 84,171, 86, 13, 61,123,246, 68,106,106, 42,
+ 24,134, 65,247,238,221,209,179,231, 63, 85,185, 33, 33, 33,146,223,127,255,189, 29,203,178,103,156, 94, 32,229, 56,221, 65,104,
+ 24,111,177, 88,252,109, 0, 95,142, 83,200,108, 35, 71,142,196,180,105,211,240,254,251,222,155,122,124,245,213, 87,192,173,237,
+169,238, 58,103, 97, 97, 97,185,194, 94,161, 80,124,254,228,147, 79,114, 55,111,222, 44, 39,174,156, 23, 55, 5, 81, 57, 78, 95,
+ 3,146,138, 68, 34, 68, 71, 71, 99,202,148, 41, 8, 15, 15, 71, 76, 76,140,187,129,252,124,166,209,109,224,174,114,218, 8,127,
+244,211, 25, 31,182,254,126,217,122,177, 76, 10,236,223,181, 6,234,162,242,213, 73, 70,243, 63, 93,169,165, 77, 58,193,116,236,
+ 79,191,242,146, 32,166, 63,254,248, 99,124,252,241,199, 94, 3,180,104,209,162, 59,142,187,159, 98,235, 86, 78,158, 48, 10,101,
+ 40, 2,148, 85, 80, 63, 37, 20, 60,177,254,167,210,200, 3, 14, 31, 58,116,168,119,120,120, 56,210,211,211, 35,197, 98,113,239,
+114,118,149, 94,143,196,196,196,218,121,121,121,173,124,113,142, 28, 57,210, 56,126,252,120,217,128, 1, 3,240,228,147, 79, 98,
+192,128, 1, 50,137, 68, 82,147, 16, 2,179,217,140,244,244,116,252,249,231,159,200,203,203, 59,231, 45,156, 60, 33,140, 92, 17,
+130, 0,101, 44,234, 55, 8, 1,207, 91, 43, 37,238,206,174,184,179,155, 85, 65,145,229, 54,127, 2,192,225, 63,215, 97,194,219,
+ 13,240,195,198,131,152,127, 8,104, 20,146,139,250,145,121,224,243,206,225,221,129,205, 48,235,167, 35, 0,128, 93, 59,125,166,
+ 17,241,150, 7, 13,122,243, 29,197,221,217,185,114,190,142, 31,109,180,110,225, 20, 62, 18, 75, 75, 75, 81, 92, 92,140, 37, 75,
+150,224,165,151, 94, 66,110,110, 46,210,210,210,112,241,226, 69,252,252,243,207, 80, 40, 20,183,149, 70,163, 94,253, 0,227,103,
+189, 3, 2,130, 58, 53,234, 99,236,208,143,209,188, 81,203, 59, 78,119, 87,248,225,102,121,228,156, 59,119,238,237,230,165,135,
+ 78,104,185, 69, 68, 68,196,128,118,237,218,193, 96, 48, 32, 50, 50, 18,105,105,105, 96, 89,182, 58, 80, 86,133, 23, 23, 23,183,
+ 50, 47, 47,175,186,191,124, 34,145, 8, 86,171,213,209,246, 71, 88, 0,160, 87,175, 94,248,237,183,223,124,126, 81,196,196,196,
+160,106,213,170,120,235,173,183,110,233,229,224,220,211, 65, 46,151, 99,227,198,141,217,133,133,133,133,132,144, 10,117,115, 19,
+ 26,198,239,217,179,199,239, 6,240,206, 48,155,205, 55, 47, 94,188, 24,187,104,209, 34,145,151,151,159, 3,187,118,237,178,194,
+ 71, 85,205,221,224,116,247,101, 74, 8,241, 40,178,252, 25, 70,192,215,128,164, 28,199,225,194,133, 11,152, 48, 97, 2, 24,134,
+193,154, 53,107, 30,136,135,235,212,249,130,111, 88,150, 13,237,245, 68,235,134, 96, 24,152, 77,183,214, 84, 7, 22,105, 28, 34,
+235,201,207, 86, 96,237,168,254,254,136,158,203,187,119,239, 14, 91,180,104, 17,231, 79,186,239,222,189,219, 74, 8,169,112,181,
+159,240,194, 49,155,205,208,235,111,207, 69, 33,132,236,155, 62,117,124,151,165, 63,110, 18, 51,140, 9,251,119,174, 65, 73,177,
+251,230, 12, 82, 49,135,111,150,252, 98,149,136, 69, 55,255,229,164,251,162,111,223,190, 3, 22, 44, 88, 80,223,221, 78, 63, 58,
+193,164, 25, 12, 6,100,100,100, 64,167,211,173, 30, 55,110,156,121,211,166, 77, 47, 63,245,212, 83,120,228,145, 71, 16, 27, 27,
+139,172,172, 44, 92,190,124, 25, 75,150, 44, 33,123,247,238, 93, 13, 96,152,143,251,184,110,198,212,241, 47, 46,249,105,147,148,
+101,204,216,191,107, 13, 74, 92, 68,251,173,238,180, 24,223,254,240,139, 89, 34, 17,159,247,229, 22, 57,187, 89,149,249, 98,236,
+ 61,104, 40,158,156, 55, 31,213,155,119,195,140,153,157,241,237,212,126,152,221, 93, 2,243,170,129,104,244,204, 82, 44,159,212,
+ 3, 0, 80,229, 91, 63,221, 18, 78,130, 27,110, 28,171,226,146, 0,187,184,169,152,107, 42,196,221,155,115, 85, 81, 71,139,101,
+ 89, 36, 37, 37,161,122,245,234,120,252,241,199,209,164, 73, 19,116,232,208, 1, 39, 78,156,192,137, 19, 39, 48,114,228, 72,111,
+ 34,203,103, 26,181,111,213, 5, 7,219,156,191,227,180,113, 77,247,202,128, 63,121,105,232,208,161, 0,240, 80,185, 91, 21, 22,
+ 90,106,181,250, 4,207,243, 13,131,131,131, 5, 71,202,177,239,250,245,235,224,121, 94, 87,209,132, 49,153, 76,194,224,152,229,
+198,101, 18, 26,199,123,123,240, 9, 33,182,194,194, 66,180,107,215, 14,109,218,180,113, 84,159, 56, 47, 78,194, 4,107,215,174,
+ 5, 33,164,194,141,172,157, 26,198,107, 80,193, 6,240, 0,144,155,155,219,173,109,219,182, 91, 57,142,243,107, 22, 77,158,231,
+211,114,114,114,158,184,215,156,238,210,135,231,121,143, 34,203,159,130,200,215,128,164, 28,199, 65,169, 84,226,215, 95,127, 69,
+ 68, 68,196, 3,245,128,157, 56,155,247,137,183,253,237,194,165, 59, 1, 68, 62,249,217,138, 27, 59, 11,204, 9, 79,126,182,226,
+250,218, 81,253,171,121, 59, 39, 59, 59,187,107,255,254,253,127,247, 55,221,173, 86,235,181,236,236,236, 10, 15,151, 64, 8,193,
+249,243,231,249, 87, 94,121, 37, 63, 47, 47,175,223,237,196,127,236,132,249,179,167, 77, 28, 30,222,189, 75,139,230, 96, 1,147,
+231,198,191,132, 1, 8, 39, 22,221, 28,253,254,220, 87,251,245,235,247,111, 38,155, 58, 59, 59,251,241,167,159,126,122, 24,254,
+105, 58, 81, 78, 72,193, 67,239,106, 59,230, 85,173, 90,181,129, 72, 36,146, 1,152, 0,224,250,222,189,123,191,216,187,119,111,
+ 87, 0,143,137, 68,162, 88,155,205,150, 97,255,232, 89, 1,224,111,223,249, 40,247,117, 16, 62,190,123,231,199,186,129, 97,136,
+201,100,244,241,129, 4, 2, 66,136, 68, 34, 62,127,248, 68, 86, 35,111, 31, 82, 78, 51,112, 84,122,149,253,176, 97,195, 48,108,
+216, 48, 71,126,250,252,243, 54, 88,125,106, 15,158,105,148, 14,227,215,173,193,168,170,249,253,193, 7, 0, 31,124,248, 74,165,
+133,205, 57,238,206,142,150,187,231,160, 34,109,180, 68, 34, 17,242,243,243,113,225,194, 5,228,228,228, 64,167,211,225,236,217,
+179, 48,155,205, 40, 42, 42, 66,131, 6, 13,110, 59,156,149,149, 70,255, 38,231,195, 88,125, 88, 97,161,101, 54,155, 63, 74, 74,
+ 74, 18, 7, 4, 4,212,183,217,108, 32,132,192,102,179, 17,187,168,169,112, 47, 60,177, 88,108,168, 85,171, 22,227,174,119,130,
+240, 95,169, 84,234,189,184, 37,211, 19, 19, 19,199, 49, 12, 35,242,244, 21, 34,252,231,121,222,198,113,220,244,219,188, 87,119,
+218, 48, 94,155,151,151,215,178,146,211,239,110,112,186,166,143,182,110,221,186,142, 25,237, 93,199, 68,177, 79,182,170,245, 33,
+206,189, 14, 72,170,213,106,179,186,117,235,102,115,222,239, 60,160,233, 3, 13,134, 92,239, 49,224,229,132,157, 5,230, 4, 0,
+ 16,196, 22, 8,185,238,229, 44,125,118,118,118,187,187, 29,180,171, 87,175,154, 30,123,236,177, 31, 75, 75, 75,135, 2,184,237,
+214,252,239,127,244,249,251,247, 97,202,168, 1, 76,187,205,115,175, 23, 20, 20,116,116,217,246,183, 32,168,132,113,237, 42, 44,
+218,207,229, 87,250,216, 98, 86,171, 53,189,122,245,234, 21,114,110, 44, 22, 75,186,175,253,174, 99,132, 57,227, 52,130,241,254,
+ 1,160,172,243,119,129, 95,156, 6,131,161,176,101,203,150,226, 10,198, 45,215,223,184,199,198,198,162, 74,149, 42,142, 95, 1,
+174,219,125,133,211,106,181,166,199,199,199, 35, 34, 34,194,227,136,239,174,109,178,252,225,172,236, 52,242,198, 89,165,202,210,
+ 74,231,188,221,112, 82,248,135,206,148,147,114, 82,206,251,150, 83, 68,239, 39,229,164,156,148,243, 30,114, 62,112, 32,132,128,
+182, 82,163,160,160,240, 4, 27,189, 5, 20, 20, 20, 20,119, 6,198,139, 42,173, 72, 79,159,219, 81,182,219, 40, 39,229,164,156,
+148,147,114, 82, 78,202,249,208,113,250,226,174,236,158,198,255, 26,238,100,120,156,187, 41,192, 40, 39,229,164,156,148,147,114,
+ 82, 78,202,249,240,113, 62,112,160, 85,135, 20, 20, 20, 20, 20, 20, 20, 20,119, 17, 84,104, 81, 80, 80, 80, 80, 80, 80, 80, 80,
+161, 69, 65, 65, 65, 65, 65, 65, 65, 65,133, 22, 5, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20,247, 21, 8, 33,101, 83,240,108,216,176,193, 49,208, 67,106,106, 42, 67,111, 13, 5, 5, 5, 5,
+ 5, 5,197,189,196,131,170, 69, 56, 42,176, 40, 40, 40, 40, 40, 40, 40,254, 11,120, 16,181, 8,235, 78, 73, 82, 80, 80, 80, 80,
+ 80, 80, 80,220,107, 60,136, 90,132,125,144, 85, 36, 5, 5, 5, 5, 5, 5,197,253,131, 7,222,209,162,174, 22, 5, 5, 5, 5,
+ 5, 5,197,191,133,251, 88,139, 16,251,226,188, 78, 65, 65, 65, 65, 65, 65, 65, 65,113,135, 2,203,227, 47,157,235,144,130,130,
+130,130,130,130,130,226,246,193,184, 89,191,167,110, 22,157,217,156,114, 82, 78,202, 73, 57, 41, 39,229,164,156, 15, 37, 28,227,
+104, 81, 80, 80, 80, 80, 80, 80, 80, 80,220,153,174,114,250,239,112,186,168,208,162,160,160,160,160,160,160,160,184,115,145,197,
+184, 91,167,109,180, 40, 40, 40, 40, 40, 40, 40, 40,238, 18,168,163, 69, 65, 65, 65, 65, 65, 65, 65,113,103,112,109, 4, 79,171,
+ 14, 41, 40, 40, 40, 40, 40, 40, 40, 42, 89,108,185,221,232,169,231,192,182, 10,144,223, 78,239,131,109,148,147,114, 82, 78,202,
+ 73, 57, 41, 39,229,124,232, 56,125,113,111,195,253,135,118, 0,118, 0,104,111,255, 5, 0,134,144,187, 63,210, 3,237,250, 74,
+ 57, 41, 39,229,164,156,148,147,114, 82,206, 7, 29,174, 3,150,150,173,208, 1, 75, 41,252, 0, 7,239, 85,204,190,246, 83, 80,
+ 80, 80, 80, 80, 60,108, 98,139, 56,191, 36,221,161, 38,128,247, 1, 4, 59,109, 59, 4, 96,186,203,113, 63, 1, 80, 56,173,107,
+ 1, 76, 2,112,201,103,104, 8,145,216,249,101,246,133, 7, 96, 0, 96, 4, 80,202, 48,140,133,166,217,191,142,150, 0, 82,237,
+255, 55, 0,216, 95,193,253, 15, 20, 98, 99, 99,229,161,161,161, 93,143, 29, 59, 38, 61,123,246, 44,118,239,222, 77,190,249,230,
+ 27,115, 81, 81,209,150,172,172, 44, 61,205, 46, 15, 4,186, 1, 24,107,255, 63, 3,192,230, 59,228, 99, 20, 10,197, 72,165, 82,
+217, 67, 38,147, 85,177, 90,173,140, 78,167,203,212,106,181, 91,173, 86,235,103,246,114,175,162,232, 19, 22, 22,246,114,157, 58,
+117,106,166,165,165,101,100,102,102,254, 4, 96, 21,128,126, 85,170, 84, 25,152,152,152, 24,119,254,252,249, 75,133,133,133,223,
+ 2, 88,247, 47,134,147,130,226, 97, 2,227,205,141,112,135, 9,132,144,129,229, 24,152, 91, 57, 58,118,236,216,123,203,150, 45,
+ 10,158,231, 33, 44,114,185,220, 10, 96,176, 15,145, 21,190,111,223,190,132,161, 67,135, 62,153,153,153,217,172,180,180,244, 81,
+ 0, 80, 40, 20, 7,163,162,162, 14,207,155, 55,239,103, 66, 72, 58,195, 48,165, 21,140, 40, 39, 22,139, 95, 10, 13, 13,237, 97,
+181, 90,155, 16, 66, 32, 22,139,143, 21, 21, 21,109,182, 88, 44,223, 2,184, 29,241, 38,229, 56,110,152, 76, 38,235,102,181, 90,
+ 27, 2, 0,199,113, 39,141, 70,227,102,171,213,250, 5, 0,211,109,112, 6, 72,165,210, 97, 42,149,170,139,201,100,106, 8, 0,
+ 82,169,244,164, 90,173,222,106, 50,153,190,176, 11,206,127, 27, 28,128, 84, 66,136, 24, 0, 68, 34, 81,159, 71, 31,125, 52,129,
+ 97, 24,158, 97, 24, 66, 8, 97, 14, 30, 60,216,216,102,179,177,246,252,145, 10,224, 48, 0,235,253,248,132, 68, 68, 68, 76,227,
+121,190,138,215, 68, 11, 8,104,118,236,216,177, 58, 43, 87,174,180,125,253,245,215,197, 67,134, 12, 9, 28, 58,116, 40,247,249,
+231,159,127,145,149,149,245,166,235,241,225,225,225,179, 89,150,141,240,231,250, 60,207,231, 23, 20, 20,188, 67,203,170,127, 29,
+ 99,191,220, 86,218,150, 16, 96, 88,151, 32,246, 78,133, 86, 92, 92,220,146, 23, 95,124,113, 64,195,134, 13, 57, 66, 8, 44, 22,
+ 11,140, 70, 99,157,253,251,247,183, 95,179,102, 77,179,210,210,210,126, 21,164,124,245,189,247,222,155, 50,121,242,228, 8,177,
+ 88,204, 88, 44,150, 26, 43, 87,174,108,242,250,235,175,191,181,104,209,162,170,207, 62,251,108,144,176,125,194,132, 9,205,103,
+204,152,145, 12,224,179,127, 33,156, 20, 20, 15, 27,218,161,124, 27,173,137, 0, 62,246, 38,180,148,246,151,103, 14,202,156, 44,
+ 56,253, 58,176,125,251,246,245, 28,199, 9,142,214,163, 90,173, 54, 26,229, 93, 48,119, 34, 43,113,208,160, 65, 45, 87,175, 94,
+ 61,237,217,103,159,205, 86, 40, 20,181,158,122,234,169, 82,134, 97, 68, 43, 87,174,108, 92,189,122,117,121,175, 94,189, 6,117,
+236,216,113, 20, 33,100, 55,195, 48,121,126, 70,178,126, 88, 88,216, 47,159,124,242, 73, 66,183,110,221, 36, 17, 17, 17, 32,132,
+ 32, 51, 51, 51,110,227,198,141,221, 39, 78,156, 56,170,176,176,176, 47,128, 51, 21,184,113,205,229,114,249,234,137, 19, 39,198,
+118,239,222,157,139,137,137,129,193, 96,192,217,179,103, 59,111,222,188,185,237,162, 69,139,222,212,235,245,207,216, 5,134,191,
+120, 52, 56, 56,120,205,247,239,189, 23,221,226,165,151,184,176,176, 48, 16, 66,144,151,151,215,121,207,210,165,237,223,248,228,
+147, 55, 75, 74, 74,158,118,119,191,255, 77, 72,165, 82,118,217,178,101,143, 72,165, 82, 0,128,201,100, 66, 74, 74, 10,243,192,
+124,138, 48, 76,124,102,102,102,176, 68, 34,113,187,223,102,179,161,109,219,182, 73, 18,137, 4,159,125,246,153, 37, 63, 63,191,
+241,130, 5, 11,142, 45, 95,190, 60,226,139, 47,190,120, 6,192, 45, 66,139,101,217,136,244,244,116,183,156, 54,155, 13,102,179,
+ 25, 86,171, 21, 38,147, 9,245,234,213,163,197,212,127, 3, 9, 0,176,233,132, 1, 0,194,238,148, 76,169, 84,214,125,238,185,
+231,184,188,188, 60,136,197, 98,152,205,102,100,103,103, 35, 37, 37, 69,244,227,143, 63,214,174, 40, 95,141, 26, 53,134,204,152,
+ 49, 35,114,211,166, 77,230,101,203,150,153,186,116,233, 34, 30, 50,100,136,170,109,219,182,245,226,227,227,217,239,190,251,206,
+184,117,235, 86,203,160, 65,131,164,211,167, 79,143,220,184,113, 99,175, 51,103,206,124,118,175,195, 73, 65,241, 16, 98, 7,254,
+ 25,226, 65,248,245, 42,180,224, 36,174,250, 0,128, 88, 44,110, 28, 29, 29,189,196,106,181,198,216, 93,157,236,156,156,156,207,
+ 44, 22,203,113,251,177,235,120,158,239,237,203,201, 26, 52,104, 80,203,223,127,255,125,214,254,253,251, 75, 10, 10, 10, 98,214,
+175, 95,111, 24, 53,106, 84, 26, 0, 92,189,122, 53,185, 87,175, 94,113,195,135, 15, 79,239,218,181,235,188, 14, 29, 58,140, 32,
+132,108,101, 24, 70,235, 75,100,165,164,164,236,219,181,107, 87, 80, 72, 72, 72,185, 29,137,137,137, 24, 49, 98,132,164,119,239,
+222,213, 59,117,234,180,247,242,229,203,109, 0,156,242, 71, 16,213,172, 89,115,219,246,237,219, 3, 67, 67, 67, 81, 92, 92,140,
+236,236,108,232,116, 58,168, 84, 42, 60,251,236,179,146,118,173, 31,175, 58,124,228,155,219,210, 51, 50, 58,251, 41,182, 30,125,
+188,126,253,109,203,167, 79, 15,180,220,184, 1,185, 92, 14,141, 70, 3, 0, 8, 10, 10, 66,179,164, 36,238,200,210,165,113, 3,
+199,140,217,118,248,194,133,206,255,146,216,146,217,127,141, 0, 54,136, 68,162, 62, 82,169,148,237,211,167, 15,182,109,219,198,
+ 24, 12, 6,206,238,238, 88,251,244,233, 3,185, 92, 14,147,201,196,163,172,234,208,122, 63, 63, 37, 82,169, 20,151, 47, 95, 46,
+183,173,180,180, 20,121,121,121, 40, 40, 40,128,209,104, 68,113,113, 49,120,158,103,228,114,121, 30,207,243, 96,217, 50, 67,207,
+ 19,167, 68, 34,193,133, 11, 23,202,109,179, 90,173,208,106,181, 48, 26,141, 48,155,205, 40, 45, 45,149, 7, 5, 5,213,140,136,
+136, 72, 7,176,174,176,176,240,179,156,156,156,235,180,220,250, 87,112, 99,195,113, 67, 53,148, 57,213,215, 42,129,143, 7,128,
+221,187,119, 35, 39, 39, 7,249,249,249,200,203,203, 67,124,124, 60, 8, 33, 21,174,142,187,124,249,242,151, 13, 26, 52, 96, 78,
+159, 62,189, 25,192,231, 43, 87,174, 28, 92, 88, 88, 56,118,244,232,209, 97,159,126,250,105,225,152, 49, 99,102, 0,248, 97,229,
+202,149,255,171, 91,183,110,143,115,231,206, 45,250, 55,194, 73, 65, 81,217, 32,132, 52, 7, 16,105, 95,205,183,151,187,225, 78,
+235, 39, 24,134, 49, 57, 29,103, 2, 32,117,243, 43, 64, 88,207, 99, 24,230,176,211,121,121, 12,195, 28,190,221, 96,186,252,150,
+125,116, 3,192,134, 13, 27,136,176,184, 59, 51, 42, 42,106,100,199,142, 29,103, 29, 61,122,180, 94, 86, 86, 86,104, 86, 86, 86,
+232,209,163, 71,235,117,236,216,113, 86, 84, 84,212, 72,167, 27,225,122,234, 54,167,125,146,125,251,246, 37,252,242,203, 47, 51,
+182,109,219, 86,210,184,113, 99,211,246,237,219,173, 93,187,118,205,181,191,160,173, 93,187,118,205,253,235,175,191,108, 45, 90,
+180,144,255,254,251,239, 55,247,238,221, 59,123,245,234,213,209,132, 16,145, 59, 78, 59,196, 33, 33, 33,191,238,220,185,243, 22,
+145,229,140,170, 85,171, 98,195,134, 13,170,144,144,144,117, 0, 36,158,194,105, 71, 64, 64, 64,192,154,191,254,250, 43, 48, 40,
+ 40, 8,185,185,185, 16,139,197,136,138,138, 66, 73, 73, 9,178,179,178,112,253,226, 69,176, 38, 19,230, 76,157, 28, 36,151,203,
+ 87,187, 36,160, 91,206,224,224,224, 53,203,167, 77, 11, 44,216,182, 13,127, 79,153, 2,179,217,236,168,114, 53,155,205,216, 59,
+116, 40,242,254,252, 19,223, 77,152, 16, 24, 28, 28,188, 6, 64,128, 15,206,202,128, 51,231, 80, 0,133,246,101, 40,128,253, 41,
+ 41, 41, 71,207,158, 61,139, 54,109,218, 96,213,170, 85,141, 70,143, 30, 61,116,244,232,209, 67, 87,173, 90,213,168, 77,155, 54,
+ 56,123,246, 44, 82, 82, 82,142,162,124,251,172,187, 29,206,187,198,105,179,217,202, 45, 60,255,207, 59,166, 74,149, 42,185,191,
+252,242, 11,158,125,246, 89, 86, 42,149,102,245,239,223, 95,182,103,207, 30, 98, 23,153,126,135,211, 96, 48, 64,175,215, 67,171,
+213,226,234,213,171,242, 79, 62,249,164,245,199, 31,127, 92, 99,219,182,109,113,239,191,255,254, 27,145,145,145,199,162,163,163,
+ 19, 30,132,251,121, 31,114,102, 3, 48,163,172,189,233,245, 59,225,236,216,177, 99,131, 26, 53,106, 68,175, 60, 29,138, 34, 73,
+ 29,240,146, 16,240,146, 16,216,194,155,227,178,244, 9, 84,171, 86, 45, 58, 48, 48,176,101, 5,195,185,236,244,233,211,143,217,
+191,148, 11, 0,204, 26, 51,102,204, 68,134, 97,118,143, 25, 51,102, 50,128, 89,246,237, 83,206,157, 59,215, 2,192,242,127, 41,
+156, 52, 47, 81,206, 10,195,135, 22,137,100, 24,102, 3,195, 48, 27,198,141, 27,215, 1, 64,184,203,122, 43,231,227, 0, 72,221,
+253, 10,139,211,246, 72, 66, 72, 79,167,243, 34,111, 51,248,140,155,229, 31,161, 5, 0,169,169,169, 76,106,106,170,176,227, 16,
+195, 48,235, 1, 28, 18,139,197,141, 31,121,228,145, 62,127,252,241, 71, 80,100,228, 63,215,143,140,140,196,234,213,171,131,234,
+215,175,223, 71, 44, 22, 55, 6,112, 72,165, 82,173,247,226,194,132, 12, 29, 58,244,201, 23, 94,120, 65,221,184,113, 99, 0, 40,
+ 62,115,230,140,162, 69,139, 22, 90,171,213,202, 88,173, 86,166, 69,139, 22,218, 51,103,206, 40, 44, 22, 75,105,243,230,205,149,
+157, 58,117, 74,123,231,157,119, 6,185, 17, 28,206,120,110,230,204,153,241,161,161,161,222,148, 48, 74, 75, 75, 17, 29, 29,141,
+161, 67,135,198,136,197,226,151,189,221, 45,142,227,134,205,156, 57, 51, 42, 36, 36, 4, 69, 69, 69,136,143,143,135,201,100,194,
+133, 11, 23, 96,208,106, 96, 41, 85,195,162, 46, 70,222,149, 75, 8, 17,115, 24,212, 59, 53,154,227,184, 97, 62,220,146, 97,223,
+142, 25, 19,109, 74, 75,195,213, 85,171, 96,179,222,106,254, 88,205,102,156, 92,188, 24,134,244,116,204,120,229,149,104,169, 84,
+ 58,236, 30, 59, 89,159, 18, 66,228,132, 16, 57,195, 48,243, 90,182,108,249,163, 92, 46, 31, 58,125,250,244,110, 91,182,108,233,
+190,107,215,174,246, 86,171, 85,108,181, 90,197,187,119,239,110, 99, 48, 24, 56,153, 76, 6,142,227, 8, 30, 80,136,197, 98, 72,
+ 36, 18,200,229,114,180,110,221,250,202, 55,223,124, 99,137,143,143, 23,175, 89,179, 38,180, 74,149, 42,202,207, 63,255,188,184,
+180,180,116,166,191,124,102,179, 25, 70,163, 17,122,189, 30, 6,131, 1,219,183,111, 79, 26, 62,124, 56,103, 48, 24,108,189,122,
+245, 42,180, 88, 44,198, 49, 99,198,168,194,194,194, 70,209,111,216,127, 5, 86, 0, 26,187,208, 50,186, 60, 31, 13,157, 28, 95,
+159, 40, 46, 46, 94,244,237,183,223,198,179,178, 16,236, 49,245,192,207,252, 68,108, 9,254, 28,185, 9,239, 34, 42,190, 6, 6,
+ 12, 24, 16, 69, 8,249,188, 18,194,188, 0, 64, 91, 0,243,110,231,228,123, 16,206, 4,165, 82,185, 42, 40, 40,104,143, 82,169,
+ 92, 5,123,245,236,157,160, 75, 13,116,238, 93,151, 77,239, 82, 29,164,119, 93, 54,189, 75, 13, 58,212,192,131, 2, 23, 45,226,
+140, 60, 66, 72, 42, 33, 36,117,198,140, 25,211,156,222,239,194,186,220, 79,103, 44,149, 16,146, 90, 78, 33,149, 9,172, 59, 54,
+221,220, 44,101,154,194, 89, 73, 58, 69,206,209,187, 48, 58, 58,122,201,146, 37, 75,130, 92, 25,179,178,178,160, 86,171, 49,126,
+252,248,160, 23, 94,120,225,205,244,244,244, 23,125, 4, 66,154,157,157,221,100,224,192,129, 1,102,179,185,136,231,121, 86,173,
+ 86,115,193,193,193, 54,225,128,224,224, 96, 91, 73, 73,137, 88,171,213,138,108, 54,155,241,133, 23, 94,144,190,242,202, 43,205,
+ 0,136, 60,145, 70, 70, 70,118,233,209,163,135,212,211,126,139,197, 2,173, 86, 11,173, 86, 11,179,217,140,214,173, 91,203,190,
+249,230,155,174,185,185,185, 11, 61, 42, 14,153,172, 75,151, 46, 93,196,133,133,133, 8, 14, 14,198,245,235,215,113,237,218, 53,
+ 24, 53, 26,152, 53,106,152, 53,165,176,150,170, 65,212, 37, 40,184,116, 30, 45,234,214,145,252, 36,147,117,211,106,181,179, 61,
+113,170, 84,170, 46, 45, 6, 15,230,148, 74, 37,218, 15, 44,235,103,240,123,221,186, 32, 54, 27,120,155, 13, 54,171, 21,221, 46,
+ 92,128,197, 98, 1,203,178,104, 94, 88,200,169,150, 46,237,146,151,151, 55,235,223,200,236, 50,153,140, 91,182,108,217,115, 82,
+169, 20,132, 16,198,100, 50, 97,203,150, 45, 15,221, 67, 47,149, 74, 17, 16, 16, 0,179,217,140,196,196, 68,253,192,129, 3,247,
+ 77,157, 58,181, 26,203,178, 74,137, 68,242, 71, 65, 65,193,180,172,172,172,171,254,242, 89, 44, 22,152, 76, 38,152, 76, 38,232,
+245,122, 92,185,114, 37, 38, 41, 41,137, 25, 58,116,168, 77,167,211, 37,207,159, 63,255,242,150, 45, 91, 20, 51,103,206,124, 10,
+192, 8, 90,236,222,219,228, 6, 16, 92, 45,156,211,138, 69,208, 0, 8,178,139,130,167, 24,134,105, 81,175, 94,189,208,179,103,
+207, 22, 17, 66, 14, 0,248, 25, 64,150, 55, 50,158,231, 25,158,231,241,250,163,197, 24,218, 82, 4,139,165, 4, 37, 37, 37,184,
+126,253, 58,206,156, 57,131,131, 7,207,220,238,179,249,114, 96, 96, 96,215,128,128,128, 68,171,213,202,106, 52,154,235, 58,157,
+110, 27,207,243,139,224, 82,101,225, 15,238, 86, 56, 5, 40,149,202, 79,222,127,255,253,199,131,131,131,113,252,248,241,228, 21,
+ 43, 86,124,162,213,106,239,168,113,125,128,152,253,110,246,220,207,227,226,162, 66,112, 98,215,111,113,211,190, 90,249, 29,192,
+199,211, 44,124,255,195, 69,139, 56,139,161,195,132,144,158, 12,195,108,112, 21, 74, 21,178,157,238,240,124, 31,142,150,235,196,
+210,229,133,150, 7, 5, 9,171,213, 26,227,236,100, 17, 66,144,149,149,133,140,140, 12,228,229,229, 33, 52, 52, 20,102,179, 57,
+198,159,242,161,180,180,244,209,240,240,112,157, 88, 44, 54,234,245,122, 40, 20, 10, 94, 44, 22, 19,251,117, 24,123,175, 69,155,
+209,104,100, 56,142,179, 4, 5, 5, 5, 26,141,198, 58,240,210,150,140, 16,242,104,120,120,184,219,125, 70,163, 17, 26,141, 6,
+ 90,173, 22, 26,141, 6, 70,163, 17,209,209,209,176, 90,173, 77,188,126,210, 90,173, 13, 35, 35, 35,145,153,153, 9,185, 92,142,
+244,244,116,152, 52,165, 48,151,150,194,170, 85,195, 86, 82, 2, 94,173, 6,175, 85,195, 98,210, 33,174, 86, 93, 8, 61, 18, 61,
+193,100, 50, 53, 12, 15, 15,135, 86,251, 79,115, 51, 98, 23, 88, 86,171, 21, 86,123,227,104,161, 58, 49, 34, 34, 2, 66,143,196,
+123, 4, 35,128,209, 44,203,206,147,201,100,220, 27,111,188,129,172,172,172,114,121,226,141, 55,222,112,180,201,106,219,182,237,
+238,128,128, 0,107, 94, 94, 30,140, 70,163,248, 65,125,232, 25,134, 1,195, 48,101,105,100,181, 34, 34, 34, 66,155,159,159,127,
+176,184,184,248,185,219,225,179, 88, 44, 66,143, 46,232,245,122, 16, 66,112,252,248,113, 4, 4, 4,136,109, 54,219,105,171,213,
+170, 16,139,197, 96,237,141,191, 40,238, 25,218,215, 9,145,206,158,222, 34, 42,228,145, 94, 74,173, 66, 42,210,242,215, 31, 73,
+252,254,211, 51, 43, 94, 24,244,114,208,164, 73,147, 18, 34, 34, 34, 2, 46, 95,190,108,152, 60,121,114,210,178,101,203, 24,148,
+ 85,211,121,196,141, 27, 55,214,190,255,254,251, 97, 61,122,244, 72,150,201,100, 76, 73, 73, 9,242,242,242,144,147,147,131,107,
+215,174,145, 19, 39, 78, 92, 49, 26,141,171, 42, 18,200,216,216,216,111,158,123,238,185, 23,154, 54,109, 42, 22, 28, 82,173, 86,
+219,120,231,206,157,189,127,255,253,247, 54, 90,173,182,194,249,242,230,205,155,171, 62,248,224, 3,229, 19, 79, 60, 81, 71, 38,
+147,177,149, 17, 78,103,176, 44, 27, 29, 24, 24,136,109,219,182, 33, 36, 36, 4, 44,203, 70,223,105, 98, 25,204,124, 92,149,152,
+112, 24,246,206, 70,157,200, 4, 24,204,124, 28,205,194, 15,142,163,229,225, 93,223, 92,112,164,124,136, 37,253,216,177, 99,223,
+103, 24,102,195,216,177, 99,223,119,231,104,217,255,218,156,143,115, 58,222, 88,217, 98,171, 66, 3, 77,242, 60,143,140,140, 12,
+100,102,102, 34, 35, 35, 3, 5, 5, 5, 96, 89, 22,132, 16,127,122,159, 17,134, 97,248,173, 91,183,134,238,219,183, 79,219,188,
+121,243, 98,161,253,139,213,106,101, 44, 22, 11, 99,111, 23,195, 92,191,126, 93,178,103,207,158,144,115,231,206, 69,163,172,193,
+ 26,239,195, 10,188,101,155, 32,176,156, 23,131,193,128,128,128, 0,255, 84,135,253, 69,120,252,232,209, 50,145,165, 41,181, 87,
+ 25,150,192,166, 46, 1,209,150, 66,106,179, 64, 10, 2,198,160,243,251,254, 57, 67, 16, 89,102,187,208, 50,153, 76,176, 88, 44,
+224,121, 30, 86,235,191,210,174,252,203, 70,141, 26, 53, 89,187,118,237,144,140,140,140, 91,118,246,237,219, 23, 35, 70,140,192,
+240,225,195,207,245,236,217,243,196,111,191,253,134, 97,195,134,129,231,249, 71, 0,148, 0,248,253, 65,123,232,141, 70,163,195,
+129, 50, 24, 12, 48,155,205,128,151,198,239,190,242,166,144,182, 86,171, 85,224,102,214,174,253, 5,187,119,239,102,207,156, 57,
+ 29,255,198, 27, 67,133, 6,247,180,196,189, 55,120, 66,202, 50, 95,143,108, 24, 22, 48,170, 81,184, 86,202, 49,154, 11, 95,191,
+175,185, 86, 77,165,141,174,170, 48,197, 39,133, 84,153, 54,109,106,236,185,115,231,141,227,199,143, 63,219,191,127,255,168, 81,
+163, 70,213, 91,179,102, 77, 27,131,193,240, 45,128, 98, 79,166, 75,239,222,189, 15, 68, 69, 69, 37,125,245,213, 87,185, 55,111,
+222, 12,181, 88, 44, 74,179,217,204,107,181,218,107,122,189,126,155,217,108,222, 6,224,104, 69, 2, 27, 20, 20,212,104,240,224,
+193,226,226,226, 98,112, 28, 7,179,217,140,220,220, 92, 60,254,248,227,162,245,235,215,215,191,157, 27, 80, 84, 84, 52,251,219,
+111,191,221,177,124,249,242,174, 42,149,170,169, 76, 38,139, 1, 96, 43, 45, 45,205,209,106,181,127,223, 78, 56,203,149,115, 54,
+ 91,206,209,163, 71,171,171, 84, 42,220,184,113, 3, 54,155, 45,231, 78, 19, 45, 64,194,222, 60,185,107,125,213,186, 17, 73,216,
+179,239, 0, 2, 36,236, 77, 58,212,215, 3, 15,161, 13, 21,156, 5,148, 27,129,180,111,250,244,233,242, 25, 51,102, 96,250,244,
+233,167,221, 57, 90,130,224,154, 62,125,250,105,225, 56,167,227,119,221, 65, 24, 61, 59, 90,158, 20, 36, 80,214,187, 48, 47, 47,
+ 47, 52, 36, 36,196, 33,176, 50, 51, 51,145,153,153, 9,169, 84,138,235,215,175, 67, 42,149,102,249,243, 17, 34,151,203,143, 52,
+110,220,184,246,213,171, 87, 37,147, 39, 79,174,122,244,232, 81,213,227,143, 63,222, 64, 46,151,219, 8, 33, 48, 24, 12,236,217,
+179,103, 3,103,205,154, 21,247,232,163,143,154, 30,125,244,209, 99, 43, 87,174,212,195,203,248, 87, 12,195, 28,202,202,202, 74,
+ 78, 76, 76, 20, 68, 91, 57,113,229, 44,184,128,178, 42, 79,142,227,142,121, 11, 40,199,113, 39, 47, 92,184,208, 89, 17, 32,131,
+169, 84, 13,179, 70, 13,107,105, 41,108,165, 37,176,149,148, 0, 90, 53,164, 86, 43,196, 54, 11,228, 1, 1,200, 72, 79, 7,199,
+113, 39,189,113, 74,165,210,147, 57, 57, 57,157, 67, 66, 66, 28, 47, 81,139,213, 90,182,216,108, 48, 89,173, 14, 71, 75, 44, 22,
+227,230,205,155,144, 74,165, 39,239,117, 78,102, 89,214, 38, 12,225,224, 33, 30,136,142,142,230, 91,180,104,129, 97,195,134,193,
+102,179,217,147,129,105, 15, 96, 15,202,218,183,220,151,112, 39,110,133, 70,235,122,189, 30, 26,141, 6, 69, 69, 69,156, 92, 46,
+175, 29, 23, 23,119,192,100, 50,173,178, 90,173,223, 93,187,118, 77,237,137,211, 46,204, 28,162,139,231,121, 16, 66, 96,179,217,
+ 96,177, 88, 32,145, 72,248,157, 59,119, 97,214,156, 79,176,228,187,101,164,119,239,222,204,250,245,235,193,243,124, 58, 45, 87,
+239, 9, 62, 43,254,121,106, 0,172, 54,173,113,231,114,205,143, 23,213,218, 73, 63,206, 61, 98,146,138,212,205,218, 69, 55, 76,
+ 78,170, 45, 10, 9, 9,101, 23, 46,154, 87,240,211,178,213,151,111,220,184,161,254,226,139, 47, 90,214,174, 93, 59,248,239,191,
+255,142,243, 36,180, 20, 10, 69,205,151, 95,126,121,112, 81, 81,145,100,201,146, 37, 43,179,178,178,142,160,108,104, 25,231, 30,
+212, 61, 1,252,128,178, 42,203,104,123, 57,183, 7,192,100,111,223,107, 12,195,224,175,191,254,186,165,119, 32,127,103,234, 60,
+164, 70,141, 26,207, 94,189,122,117,119, 78, 78,206,211,174, 59, 37, 18,201,164, 90,181,106,117, 59,125,250,244, 68, 0,155, 42,
+ 66,172,211,233,198,172, 94,189,250, 83,145, 72, 84,197,102,179,101,234,245,250, 49,119,236,104, 89,248, 87,166, 47, 92,177, 88,
+111,178, 85,147, 75, 69, 55, 12, 22,254, 85,154,149, 31, 92, 55,203,142, 60, 39, 55, 42, 15,101,243, 8, 58,175,255,109,127, 25,
+153, 8, 33,194,177,121, 78, 46,150,201,197, 5,115,183, 47,239, 14, 6, 75,119,215,227,144,241,230,104,141, 3,240, 40,128, 67,
+ 57, 57, 57,243, 94,120,225,133, 89, 63,253,244, 83,144, 90,173, 70, 78, 78, 14,114,115,115,193,113, 28, 84, 42, 21,190,252,242,
+ 75,125, 78, 78,206, 60,231,115,112,235, 8,242, 0, 96,136,136,136, 56,178,108,217,178,152,175,191,254,154,123,241,197, 23,175,
+247,236,217,179,206,151, 95,126,121, 85, 34,145, 16,155,205,198, 24,141, 70,230,245,215, 95,175, 62,103,206,156, 52,145, 72,164,
+120,246,217,103, 25,165, 82,121, 8, 94,134, 13,200,203,203,219,250,235,175,191, 62,249,206, 59,239,200, 76, 38,147, 91, 39, 75,
+216, 22, 18, 18,130,189,123,247,154,138,138,138,182,248,112, 49,182,254,177,105, 99,219,231,251,247,151, 88, 74,213,176,148,170,
+ 97, 85,171, 97, 43, 45, 6,163, 81, 67,108,179, 66, 46,225, 17, 19, 31, 0,171, 62, 16, 27, 15,255,109, 49, 26,141, 94, 7, 54,
+ 84,171,213, 91,247, 44, 89,210,254,209,132, 4,110,239,200,145, 48, 91, 44,120,226,194, 5,135,184, 50,155,205, 88,215,176, 33,
+108, 12,131, 71, 94,123, 13,151,172, 86,171, 90,173,222,250, 95,124, 24, 78,156, 56,145, 59,112,224,192,163, 60,207, 55,169,136,
+187,243, 95,135,197, 98,185,197,141,178,217,108,101,174, 99,153,115, 32,221,184,113, 99,219,179,103,207, 74, 78,157, 58,133,221,
+187,119, 63,242,211, 79, 63,141,171, 86,173, 90,195, 27, 55,110,100,251, 18,111,238, 6,253,133,189,253,225,202,229,171,240,191,
+255,253,143,201,206,206,198,207, 63,255, 12, 95,131,167, 82, 84, 26,180,176,218,228,166,157,203, 53, 61, 55,221, 40,221,159,165,
+159, 12, 96, 51, 12, 54,114,233, 24, 57,209,180,105,104, 4, 0, 24, 13,182,152,154, 53,107,182,227, 56, 78, 10, 0,129,129,129,
+ 77,195,195,195,191, 44, 40, 40,104,237, 46, 77, 83, 83, 83, 91, 68, 69, 69, 53,254,253,247,223,255,206,202,202, 58, 13,224,160,
+235, 65,213,171, 87, 31,127,238,220,185,230, 98,177,152,241,145, 71, 0, 0,237,218,181,171, 45,147,201,194, 55, 93, 12,134, 90,
+ 82, 3, 68, 84, 2,112, 1,176,133, 52,194,117, 73, 61,196,199, 31, 8, 47, 42, 42,122,164,164,164,228,239, 10,222,131, 14, 79,
+ 62,249,228,119, 75,150, 44,137,111,215,174, 29, 57,118,236, 24, 11, 23,123,168,122,245,234, 93,247,239,223,223,228,213, 87, 95,
+253,106,197,138, 21, 67, 81,190,167,173, 47, 92,183,143, 55, 88,105,216,122, 25,219, 0, 91,130,221, 51,163,185,248, 33, 64, 69,
+134, 92,184,131,225, 25,238, 40,136, 30, 13, 12, 15,219, 31,181,143,137,245,168,197, 98, 57,126,226,196,137,117,207, 62,251,172,
+166,160,160, 0,225,225,225, 72, 76, 76, 4,195, 48,248,242,203, 47,245,215,174, 93, 91, 99, 31, 75,235,209,204,204,204,222,118,
+177,229, 14,165,243,231,207, 95,177,116,233,210,144,163, 71,143,138,172, 86,171,170, 78,157, 58,186,125,251,246, 5,138,197, 98,
+ 34,145, 72,248,163, 71,143, 42,170, 87,175,110, 96, 24, 70,246,231,159,127, 22, 28, 56,112,160,218,232,209,163,191, 69, 89,119,
+107, 79, 88, 62,101,202,148,140,171, 87,175,194,104, 52, 66,173, 86,163,164,164,196,177, 20, 23, 23,163,164,164, 4, 98,177, 24,
+217,217,217,248,229,151, 95,178,236,163,196,123,115, 54,190,248,252,203,133,121, 89, 55,174, 67,165,144,195,170, 46,134,173,164,
+ 0, 40, 45,129,212, 98,134, 82,108, 67,213, 26,114, 4, 40, 84,200, 81,107,176,100,223,225,108,251, 40,241, 30, 97, 50,153,190,
+ 24, 49,103, 78,142, 85, 34, 65, 66,191,126, 48,219,171, 10,157,133,150,141, 97, 80,173, 83, 39,176,193,193,152,182,102, 77,142,
+125,148,248,123, 10,158,231, 69, 38,147,201, 91, 60,192,243,124,250,217,179,103, 87, 0,216,193, 48, 12, 97, 24,134,160,108,176,
+ 54,205,253,252, 32, 91, 44, 22, 76,152, 48, 1, 18,137, 4, 19, 38, 76,192, 71, 31,125,132, 89,179,102, 97,225,194,133,248,241,
+199, 31,177,113,227,198,164, 61,123,246, 72,118,237,218, 69,166, 79,159,158, 95,189,122,117,209,107,175,189, 22, 34,151,203,223,
+246,198, 57,102,204, 24, 4, 5, 5, 97,204,152, 49,248,228,147, 79,240,205, 55,223, 96,221,186,117,216,187,119, 47, 68, 34, 17,
+159,158,126, 19, 6,131,129,204,159, 63, 63, 99,221,186,117,250,121,243,230,129,227, 56,134, 22,173,247, 4, 31,200, 7,126,120,
+ 54,100,241,249, 43,251,179,244, 31, 0,248, 67,248, 34, 85,169, 84,242,181,107,127,229, 0, 96,205,234, 95,196, 23, 46, 92, 8,
+254,245,215, 95, 3,162,162,162,240,227,143, 63, 6,200,229,242, 40, 15,156,182,117,235,214, 25,165, 82,105,248, 43,175,188,210,
+189,121,243,230,111,217, 63, 68, 59, 1,168,143,178,222,139, 93,174, 92,185,114, 38, 34, 34,226,226,150, 45, 91,180,254, 4,180,
+180,180,244,219, 31,126,248, 33,177,208, 22,134, 77,218, 39,177,132,255, 20, 27, 67,190,195,245,132,143,160,168,210, 12,207, 61,
+247, 92, 21,155,205,182,184,130,241,127,174,111,223,190, 63, 44, 89,178, 36,254,149, 87, 94,201, 62,118,236, 88, 14,128, 37, 0,
+150, 57, 47,231,206,157,203,127,225,133, 23,178, 22, 47, 94, 28,251,236,179,207, 46, 4,240, 52,205, 58, 20, 20,229,191,133,224,
+161,215,161,167,194,124,157,213,106,237,205,113,220,122,148, 31,176,244, 77,147,201, 20,203, 48, 12,145, 72, 36,217, 57, 57, 57,
+243,156, 7, 44, 77, 79, 79,239, 29, 31, 31,239, 56, 7,101,179,123, 59,143,165,165,122,226,137, 39, 58,239,223,191,127,193,134,
+ 13, 27,114, 75, 75, 75, 3, 87,175, 94, 45,159, 49, 99,198,117,158,231,201,123,239,189,151,208,173, 91, 55,157,205,102,203,122,
+237,181,215,170, 39, 37, 37,189,118,238,220,185,109, 12,195, 56, 11,173,114,156,118,212,175, 81,163,198,222, 53,107,214,168, 66,
+ 66, 66,144,155,155,139,194,194, 66,104,181, 90,216,108, 54,136,197, 98,228,229,229, 97,242,228,201,234,204,204, 76,119, 3,150,
+186,227,124, 52, 49, 46,110,235,188,137, 19,130, 66, 56, 22, 5,231,207,194, 90, 84, 0,177,213,130,170,245,131, 33,145,202,113,
+233, 66, 41,222, 94,254, 75,233,141,194, 98,119, 3,150,186,229,108, 86,179,230,182,175, 70,143, 14, 52,220,188,137,216,151, 94,
+130, 78,167,131,217,108, 6,203,178,184, 50,111, 30, 36,145,145, 24,191,114,165,246,244,141, 27,157,112,235, 80, 25,238, 56,239,
+ 20,206,156, 67, 25,134,113, 52,134,239,219,183,111,185, 3,127,253,245, 87, 44, 92,184, 16, 70,163,209, 74, 8,121, 19,192,151,
+ 0, 2,237,187, 53,247, 48,156,149,206, 25, 22, 22, 54,239,247,223,127, 79,140,138,138, 98,156, 71,108,183,139, 79, 0,192,176,
+ 97,195, 58, 29, 56,112, 64,214,184,113, 99, 99,126,126,126,243,200,200,200,237,203,150, 45,139,120,246,217,103, 51,207,156, 57,
+ 19,231,202, 25, 30, 30, 62,107,205,154, 53, 53,106,212,168,193, 10,174,152,107,245,228,144, 33, 67, 58, 47, 91,182, 76,250,228,
+147, 79, 26,181, 90,109,116, 80, 80,208,229, 53,107,214, 68,244,233,211, 39,251,204,153, 51,177,247,235,253,124, 16, 56,235,215,
+175,127,233,244,233,211, 53,132,117,189, 94,143,188,188, 60,228,231,231, 35, 36, 36, 4, 93,186,116,185,146,150,150, 86,195, 3,
+103,227,103,158,121,102,226,226,197,139, 59, 43,149, 74,201,174, 93,187,180,219,182,109, 51, 92,191,126,221,106,177, 88, 72,108,
+108, 44,215,186,117,235,128, 30, 61,122, 40,101, 50, 25,251,225,135, 31,230, 79,157, 58, 53,130, 97,152,229, 0, 6,186,227,108,
+220,184,241,193, 63,254,248,227, 81,134, 97, 32, 18,137, 96, 50,153, 81, 92, 92,140,140,140,116,156, 57,115, 6,251,247,239,199,
+150, 45, 91,254,214,106,181,141,253,140,123, 56,128, 93, 70,163,177,142, 84, 42,245, 91,216,219,108, 54,112, 28,119, 30, 64, 87,
+ 0,233, 52, 47, 81, 78,138, 50,137, 3, 55,141,225, 9, 33, 94,123,243,193,238, 78,173,179,127,153, 31,114, 51,132,195, 56, 0,
+ 19,156, 92, 48, 95,118,158,154, 16,178,187,115,231,206,195, 58,117,234, 52,167,107,215,174, 89, 89, 89, 89,201,179,103,207,142,
+183, 90,173,230, 51,103,206,176,151, 47, 95,190,126,228,200,145, 26,181,106,213,122,237,220,185,115, 59, 93, 68,150, 39,156,185,
+124,249,242,227, 29, 58,116,248,229,181,215, 94,171,214,162, 69, 11,105, 72, 72, 8, 56,142,195,213,171, 87,241,247,223,127,155,
+ 86,174, 92,153, 94, 92, 92, 92,145, 41,120, 14,165,101,100,116,121,118,248,155,107, 94,235,219, 43,226,177, 58,181,165,177,177,
+177,128, 94,143,243, 55,178,113,224,252,223,230,111,118, 31,200, 51, 26,141, 79,195,255, 41,120, 14, 29,185,116,169,115,199,209,
+163,215, 76,122,254,249,104,100,101,113,177,177,177,144, 74,165,184,118,237, 26, 46,243,188,117,230,162, 69, 57,106,181,250,223,
+152,130, 71, 6,224, 83,158,231, 57, 0,144,203,229, 24, 49, 98, 4,156,167,220, 89,184,112, 33,244,122, 61, 0,112, 12,195,124,
+ 10,224,187,251,221,197, 18, 80, 88, 88, 56,254,137, 39,158,152,206,113,156,199, 81,111, 67, 67, 67, 81, 90, 90, 10,171,213,106,
+203,200,200, 56, 31, 26, 26, 10,177, 88, 12, 66,136,219,231,168,160,160, 96,252,211, 79, 63, 61,133,101, 89, 79,206, 7, 84, 42,
+213,245,237,219,183,215,124,245,213, 87,217,239,191,255,254,234, 43,175,188, 34,219,190,125,187,141, 16,242, 11, 45,183,254, 99,
+165,168, 83,199, 6,251, 71,156,183,161, 20,142,175, 94,189,122,206,145, 35, 71, 34,135, 13, 27,150,252,252,243,207,171, 58,116,
+232, 16,232,124,128, 94,175,231,127,251,237, 55,237,194,133, 11, 75,118,239,222,157, 54,100,200,144, 22,240, 50,119,234,141, 27,
+ 55, 54, 78,155, 54, 45,184, 71,143, 30,181, 0, 56,218,103,229,229,229,225,250,245,235, 56,117,234,212,117,179,217,188,190, 2,
+ 81, 42, 0, 48,105,192,128, 1,159, 46, 93,186,180,202, 43,175,188,146,189,114,229,202, 83, 40, 27,176,216, 21, 33,125,251,246,
+109,184,116,233,210,216, 87, 94,121, 37, 27,101,237,200,104, 59, 66, 10,138,127,208, 30,183,182,211,242,250, 1,243,131,201,100,
+ 34, 6,131,129,232,116, 58,162,209,104, 8,220,207, 2,191, 46, 51, 51,147,164,167,167,147, 27, 55,110,144,180,180, 52, 2,224,
+ 71, 23,197,235,174,192, 82,254,244,211, 79, 53,226,226,226, 38, 42, 20,138,205, 34,145, 72, 45, 18,137,212, 50,153,236,143,240,
+240,240,143,102,206,156, 25, 71, 8,145,120, 81,209,158,192,137,197,226, 87,163,162,162,214,133,133,133,165,135,134,134,166, 71,
+ 69, 69,173, 19,139,197,255, 3, 32,246,161,204, 61, 33,128,227,184,119,149, 74,229, 86,153, 76,150, 43,147,201,114,149, 74,229,
+ 86,142,227,222,133,247,129, 84,189,114, 74,165,210,119, 35, 35, 35,183,170, 84,170, 92,149, 74,149, 27, 25, 25,185, 85, 42,149,
+222, 9,231,157,124,149, 8, 66, 75, 71,236, 96, 24,198,242,200, 35,143,124,213,164, 73,147, 47,155, 52,105,242,101,163, 70,141,
+190,102, 24,198, 34,236, 7,160,131,231,193, 27,239,102, 56,255, 53,206,148,148,148,101, 75,151, 46,229,199,143, 31,175,174, 85,
+171, 86,225,248,241,227,213, 75,151, 46,229, 83, 82, 82,150,221, 46,103,116,116,116, 66, 74, 74, 74,225,226,197,139,173, 23, 46,
+ 92, 32,139, 23, 47,182,166,164,164, 20,186,140, 12,255, 64,222,207,255, 58,103,253,250,245, 47, 17, 39,152, 76, 38,146,151,151,
+ 71, 46, 92,184, 64,118,239,222, 77,226,227,227, 47,249,193, 25, 14,224,117, 0,191,197,196,196,156,107,217,178,229,141,199, 31,
+127,252, 70, 66, 66,194, 85,177, 88,188, 31,101, 35,188,167,216,151, 79, 1,212,242,193,217, 50, 36, 36,100, 90,124,124,252,250,
+154, 53,107,238, 77, 76, 76,220, 31, 22, 22,182, 33, 32, 32, 96, 6,254, 25, 25,187,162,113,239,240,228,147, 79, 94,215,104, 52,
+182,166, 77,155,158,115,119, 82,221,186,117,247,104, 52, 26, 91,255,254,253,211, 1,164,210,188, 68, 57,239, 18,231, 3,253,129,
+230,138,154,118,193,180,206,105, 25,231,230,184,113, 46,199,252, 96, 63,215,103, 66, 16, 66, 68,132, 16, 37, 33, 36,152, 16, 18,
+ 70, 8, 9, 33,132, 4, 18, 66,100,132, 16,150,102,194,127,133,115,168, 93, 64,233,236,255, 93,225,107,255, 3,125, 63,227,226,
+226, 66,155, 55,111, 62,124,237,218,181,239, 94,185,114,229,221,181,107,215,190,219,188,121,243,225,113,113,113,161,119, 18,206,
+232,232,232,132,122,245,234, 45,168, 91,183,110,122,189,122,245, 22,184,136, 44,154, 63,255, 37,206,164,164,164,223, 27, 54,108,
+120,169, 81,163, 70,151, 27, 53,106,116,169,126,253,250,151,234,212,169,115,169,122,245,234,151,170, 86,173,122, 41, 34, 34,226,
+247,219, 8,103, 24,128, 88,220, 58, 13,216,191, 29,247,246, 41, 41, 41, 7, 2, 2, 2,220,142, 13,198,113,220,164, 70,141, 26,
+157, 68, 89, 79, 73,154,151, 40, 39, 21, 90,149, 32,180,104,134,121,120, 57,101,240, 62,205,136,175,253,244,126, 82, 78,202, 73,
+ 57, 41, 39,229,164,176, 11, 45, 58,250, 52,133, 43,140,240, 62, 50,174,175,253, 20, 20, 20, 20, 20, 20, 15,157,166,114, 89,218,
+ 9, 59, 24, 47,170,180, 34,189, 9,110, 71,217,110,163,156,148,147,114, 82, 78,202, 73, 57, 41,231, 67,199, 41, 96,142,135,237,
+231, 93,214,191,190, 79,133, 23, 67,171, 14, 41, 39,229,164,156,148,147,114, 82, 78,202,249, 95,225,116,135,215,238, 83,145,213,
+ 14,240, 49,188, 3, 5, 5, 5, 5, 5, 5, 5, 5, 69,133,225,123, 82,233, 85,171, 86,137,132,255, 3, 6, 12, 24, 98,179,217,
+134, 11,235, 34,145,232,243,159,127,254,249, 59,111, 87,232,215,175,159,205, 27,167, 59,248,186,142, 59,206,250,181, 84,111,132,
+ 7, 43,222, 44, 46,209,205,189,154,105,219,109, 48, 24,234, 9,251, 2, 2, 2,206,126,247,221,119, 23, 43, 59,156, 67,134, 12,
+169,229,122,157,196,120,113,251,176,160,128, 17,133,197,154,217,167, 47,105,190,166,121,236, 95, 65, 4,128,212,160, 0, 73,239,
+250, 33,146,150,167, 10, 12,251,180,102,219,111, 40,235, 13, 91,244, 32, 70, 56, 38, 38,166,142, 74,165, 26, 4,160,190, 78,167,
+139, 82, 40, 20,185, 0,206,168,213,234,101,217,217,217,231,253,229,105,151,136,235, 0,170,217, 87,111,236, 76, 67,130, 63,251,
+124,161,107,117, 24, 8, 32, 99, 24,152,183, 92,134, 99, 2,205,110, 53, 96,224,201,173,219,187,214,128,137, 16, 72, 24,192,184,
+229, 10, 2, 30,160,164, 82, 1,232,130,178, 33, 28, 78, 0,216,130,178,158,187, 20, 20, 20, 15, 14, 92, 39,148,118,172,115, 30,
+196, 68, 91, 9,199, 44, 32, 32, 33, 0, 9, 55, 26,141, 98,169, 84, 10,147,201, 4,133, 66,254,197,235,175, 12,153, 8, 22,197,
+ 22, 43, 70,124,247,221,119,183, 61,211,117, 69,174, 3,224, 47,215,243, 67, 85,242, 41, 59,126,123, 47,180,109,207,153, 51, 76,
+215,242,199,148,150,150,178, 50,153, 12, 70,163, 17,193,193,193,143,191,241,218,107, 77, 89, 49, 49, 73, 36,202,125,115,230,204,
+201,190,221,112,190,253,246,219, 49,102,179,161, 21,207,243, 82,147,201, 36,115,189, 78,176, 66, 57,115,199,111,239, 41,218,165,
+206,152, 8, 80,161,245, 47, 64,154, 16,170,220, 57,119, 64,251,186, 45,235,215, 4,127,102, 23, 12, 38,115,239, 29,233,154,222,
+ 31,237,207,124, 39, 93, 99,110, 2, 47, 3, 65,222,135, 16, 37, 39, 39, 15,139,140,140,236,191,104,209, 34, 73,114,114, 50, 2,
+ 2, 2,160,215,235, 99,175, 92,185, 18,251,198, 27,111,180,147,203,229, 43,174, 94,189,250, 5,252,155, 8,174,218,142, 31, 62,
+ 4, 0, 60, 62,104,114, 53, 0,239, 58, 9, 1,199,190,246,131, 39, 87, 3, 48, 26,229, 39, 70,206, 2,176,222, 67,169, 35,221,
+176,116, 22,122,191,240, 46, 7,224, 13, 71,224, 89,224,143, 31,231,161,251,128, 55,203,109,103, 8,184,223,150,206, 66,234, 11,
+239,122,156,213,188, 91, 77,198,194,243,196,163, 19,207,178,140,117,243, 37,226,110,130,225, 28, 0,238,230, 35,237,134,178, 9,
+157,221, 30,223,179,142, 40,199,108,177,185, 29,112, 86, 34, 22,229,110, 60,111,187,229,220, 23, 27,195, 98,177,149,149,173, 18,
+ 14,182,117, 87,131,119,124,240,193, 7, 92,106,106, 42,190,249,230,155,214, 95,127,253,245,107,165,165,165,127,218,239,219,101,
+250,248, 82, 80, 60,208,130,203,189,208,226, 68,248,106,253,154,239,106,228,228,230,227,197, 87, 71, 97,249,242,229, 40, 42, 42,
+ 66,104,104, 40,164, 18,137,120,238,167, 31,198,168, 84,202,152, 23, 95, 27,243, 21,128, 58,183, 27,154, 10, 94,167,166,235,249,
+140,125, 14, 68, 78,196,138,165, 82, 41,187, 98,197, 10, 20, 23, 23, 35, 36, 36, 4, 82,169,152,157, 51, 99,156, 92,165, 10,148,
+191, 60,116,108,107, 0,171,110, 55,156, 38,147,166,245,218,229,223,169,242,242,242, 48,248,127, 99,224,122, 29,137, 68, 98, 19,
+ 94, 44, 52,143,253, 43,248, 96,209,136, 23,234, 54, 8, 2,204,167,247, 66, 44, 18, 65, 17, 28,138, 46,156, 8, 34, 6,245, 94,
+220,156,246, 62,128,143, 30,148,200, 38, 39, 39, 15,235,215,175, 95,255, 41, 83,166, 72, 88,182,172,227,176, 86,171,133, 94,175,
+ 71, 92, 92, 28,118,236,216, 33, 25, 63,126,124,255, 95,127,253, 21, 87,175, 94,157, 95, 81,254,211,167, 79, 39, 86,171, 86,205,
+ 0, 0,189, 26, 6,185,238, 75, 16,246, 1, 64, 80, 80,144, 79,190,240, 16,165,241,244,233, 3,245,133,243,134,117,138,179,121,
+216,110, 0,160,240,198,197,243,132,219,178,224, 13,143,251, 95,157,242,147,245,196,170,221,117,146,147,147,245,206,219, 3, 3,
+ 3, 61,157, 18,173,209,104,170,185,110, 20,142, 55, 91,108, 81,158,174,215,117,196, 66,183, 2,204, 98, 3,247,211, 79, 63, 1,
+ 0, 62,123,119,160,104,241,193,124,142,227,202,138,218, 79, 63,253, 20,147, 38, 77,146,110,222,188,185,199,210,165, 75,123,172,
+ 91,183,110,174, 39,161, 74, 65, 65,113, 95,138, 44,231, 95,207, 66,139,101,152, 32, 85, 80, 32,158,121,238,117,252,254,251, 31,
+104,219,182,173, 99, 95, 82, 82, 18,250, 61,221, 7, 63,255, 48, 7, 0,130,238, 36, 68,119,122,157,162, 18,237, 71,221,251, 47,
+152,124, 35, 91,179,127,195,134, 13,104,211,166, 77,185,243,159,123,246, 25,252,248,237,167,240, 50,202,188, 95, 96, 8, 43, 9,
+ 82, 41, 49,224,197,255,193,221,117, 94, 27,220,119, 67,183,126,243, 58,231, 20,104,231,208,124,118,239, 81, 35, 38,188,107,195,
+186,117, 80,244,203, 23,248,187,216,128,223, 51, 13,120,185,203, 99, 72, 9,147,163,141,213,134, 24,165,184, 99,182,214,242, 64,
+ 8,173,152,152,152, 58,145,145,145,229, 68, 86,105,105, 41, 52, 26, 13,212,106, 53, 74, 75, 75,193,178, 44,198,140, 25, 35,217,
+185,115,103,255,152,152,152,109,126, 84, 35,222,176, 59, 89,128, 72,172,153, 48, 97,130, 49, 42, 42,202,168, 80, 40, 8, 39,145,
+149,182, 31, 60, 57, 8, 0, 88, 78, 82, 58,119,238, 92, 83, 92, 92,156,129,227, 56,233,155,111,190,233,215,240, 48, 70,163,145,
+ 56,115,154, 76, 70,199,246,153, 51,103,154,162,163,163,141, 10,133,130,152,205,254,155,142, 39,175, 21, 66, 38, 17, 65, 38, 17,
+ 33, 64, 42, 70, 80, 98,115,200,138, 78,193,106,181,226,147, 79, 62, 49,199,196,196,152, 20, 10, 5,145, 74,165,146,145, 35, 71,
+250, 12,231,144, 33, 67, 72, 72, 72,136, 89,161, 80, 72, 38, 77,154,116,203,180, 25,219, 79,100, 64, 46, 21, 67, 33,227, 80, 51,
+ 41, 30, 50,162,247, 59,172, 34, 81,249,214, 8, 50,153, 12,173, 91,183, 70,253,250,245,177,110,221,186,246, 84,104, 81, 80, 60,
+ 16,240, 56,221, 14, 7, 0, 27, 54,108,104, 7, 96, 7, 0,164,166,166, 50,101,103, 16,140, 30,246, 52, 94, 30, 60, 0, 54, 27,
+239, 24,221,148, 97, 25, 12,125,169, 7,120,222,159, 26, 9,223, 93, 60,111,227, 58,255, 76, 82,205,176, 34, 0,168,145, 16, 75,
+ 94,123,249,121,216,120,254,159,138, 18, 17,240,250,224,238,101,219, 42, 33,156, 34,216, 48,234,141,167,224,238, 58,117,106, 84,
+ 97,173,102, 3,152,242,147, 61,222,141,201, 54, 41,167, 27,212,175, 26, 91,221,162,215,195, 96,176, 96,201,249, 66,253,214, 12,
+109, 20, 27,146,150, 55,239,153, 22, 1,162,188, 76, 36, 4, 73,107,102,107, 45, 15, 68,220, 85, 42,213,160, 69,139, 22,221, 34,
+178,114,114,114, 88,141, 70, 3,179,217,204,151,150,150,194,102,179, 97,236,216,177,226,241,227,199, 15,202,206,206,158, 36,104,
+ 30,119,156,246,118, 87,163, 79,159, 62,157,240,193, 7, 31,152, 59,118,236,120, 35, 41, 41, 73, 43, 18,137, 16, 27, 27, 59,175,
+ 75,151, 46, 97, 83,166, 76, 49,247,232,209, 35, 77, 36, 18,161,102,205,154,218, 83,167, 78, 37, 0,144,251, 27,119,103,206,239,
+182,127, 78, 0,128, 97, 24,116,233,210,229,122,205,154, 53,181, 34,145, 8, 23,127,155, 73,252,189,159, 98,142, 69,173,184, 96,
+123, 33,194, 0,242, 64, 71, 75,188, 46, 93,186,164,215,169, 83, 71,195,178, 44, 78,158, 60, 25,143, 91,167,181,186,133, 83, 46,
+151, 91,158,123,238,185, 27,231,207,159,119,119, 60, 56, 17,139, 22,117,236, 6, 86, 92, 19, 32,125,143,199,112,138, 69,176,142,
+ 31, 54,144, 11, 9, 0,100, 65, 17, 70,181, 90, 13,149, 74, 85,230,144,153,205, 56,126,252, 56, 90,182,108,217,110,213,170, 85,
+ 59,233,243, 78, 57, 41,231, 63,112,167, 69,238, 67, 55,139,113, 90, 47,215, 70,107,135,107,164,108, 54, 43,146,170, 69, 99,230,
+135, 67, 96,179,241,176,217,108,176,218,127,109, 54, 27, 44,102,115,165,132,236, 78,174, 19,170,146, 79,249, 99,197,136,208,142,
+125, 63,237, 52,253,131,193, 91,109, 54,128,231, 45,176, 88, 0, 27,111, 1,111,179,193, 98,169,156,166, 57, 22,158, 71, 66,124,
+ 12,166,127, 48, 24,174,215, 89,246,243,170, 94,219,215,143, 81,180, 77,157, 49,234,226,117,221, 39, 84,216,223, 91, 4, 72,100,
+ 28,225, 2, 96, 50, 89, 81,106,226, 77, 0,180, 6, 11,111, 38,202,136, 0, 0,224, 88,230, 65,234, 93, 91, 63, 57, 57,185,156,
+200,154, 53,107, 86,196,151, 95,126, 25, 7, 0, 79, 63,253,116, 70,167, 78,157,242, 47, 92,184,128,216,216, 88, 38, 63, 63,191,
+ 39,128, 55,237,231,142, 6,240,165, 7, 94,109,181,106,213, 12,145,145,145, 70, 65, 16,177, 44, 11,142,227, 80,173, 90, 53, 67,
+ 84, 84,148,177,102,205,154, 90,137, 68, 2,150,101, 33, 8, 61,191, 62,243, 24, 6, 34,145, 8, 2,167,171,219, 35,112, 86, 4,
+ 98,142,189,181,120,115,226,100, 89,214,237,245, 60,230,161,128, 0, 2,192,227,241, 34,214,169,120,228,188,183, 16, 88,114, 28,
+ 98, 0, 59, 8, 33, 56,118,236, 24,174, 94,189, 10,137, 68,130,152,152, 24, 76,154, 52, 9, 70, 99,153,222,237,215,175, 95, 59,
+ 0, 39,233, 19, 76, 65,225,192,142,251, 80, 96,185,186, 90,222,219,104,109,216,176,161, 93,106,106,234, 78, 65, 0,149,137, 29,
+ 55,226,199, 98,133,197, 98, 6, 42, 97, 32, 46,111,215,177,217,120,175,215, 17,218,104,241, 60,225,220,138, 44,158,135,213, 98,
+169,148,187,199,219, 44,224,121, 11,220, 93,135, 97, 88,155,189,192,151,208,231,228,222, 35,166, 90, 2,107,169,150,132,221, 86,
+ 3,226,194,101, 82,228,235,145, 92,187,174,232,184,206,130,189, 39,206, 34, 34, 80,245,192,164,139, 78,167,139, 10, 8, 8,128,
+ 86,171,117, 56, 89, 95,126,249,101,156,201,100, 98, 1,128,227,196,241,121,124, 92,128,141, 7,130, 85, 89, 40, 42, 42, 9, 39,
+132, 48,118,193,243, 41,128,239,224,101,100,127,137, 68,226, 16, 40,206, 2, 72, 38,147,221,150,128, 17, 32,136, 51,137, 68,226,
+118,187,107,245,154, 47, 72,156,133, 22, 72,153,171,229, 34,182, 68, 34, 17,132,182, 81,190, 32,149, 74, 29,113,119, 7, 78,228,
+116, 61, 81,197,155, 98,154,205,102,104, 52, 26, 20, 23, 23, 35, 32,160,204, 48, 35,132,128, 97,152, 55, 1,188, 69,159, 98, 10,
+ 10,247, 90,228, 62, 22, 91,238,133, 22,202, 44, 59, 6, 0,172, 22,179, 91,241,179,234,183,189,184,145,173, 69, 76,196, 33, 16,
+ 47,117,146,238,208,191,127,255, 31, 98, 99, 99, 91, 8,235, 50,121, 96,248,107, 35, 62,134,213,106, 70,144,156,197,171,131,186,
+151, 19, 89,101,142,150, 9,158,228, 92, 81,137,246,163,238,253,230, 79, 14, 86,133,239,119, 21, 63,211,151, 28,125,166, 72,109,
+140,103,217,195, 40, 98, 98,109,253, 94,255,120,136, 83,225,126, 98,197,194, 9,239,248,237, 7, 50,172,248,153, 55,230,189, 70,
+184,192,122, 10,182,116,215,123,131, 31, 91,235, 44,230,194,194,194, 54,116,125,102,110,231,156, 66,218, 70,235,223, 64, 80,112,
+ 8, 27,223,172, 61,154,189,185, 0,219,199,189, 71,128, 34,132,199,198,177, 29,134, 77, 69, 96,179, 94, 56,240,234, 32, 30, 40,
+124, 32,226,170, 80, 40,114,117, 58, 93,172, 94,175,135, 90,173,134, 90,173, 46, 47, 8,196, 98,230,181,255, 13,143, 16, 75,164,
+176,152, 77,248,125,217, 84,159,156,194, 16, 14,189, 26, 6, 65, 36,150,150,158, 73, 78,158,199,113, 28, 88,150,197,111, 95,188,
+247,230, 47,179, 71, 4, 1,192,137, 13, 95,168, 7,140,249,124, 62,203,178, 48, 26,141,178,138,132,251,230,205,155,241, 70,163,
+209, 96, 23,104,130,240,195,181,107,215,170, 26,141, 70,189,243,118,127, 32, 87, 4, 1, 33, 73,128, 34,234, 22,247, 44, 45, 45,
+173,138,197, 98,209,113, 28, 7,147,201,228,151, 42, 98, 89, 86,114,242,228,201,120,158,231,221, 30, 95,191,122, 21, 32,166, 33,
+ 32, 13,246, 59,206,254,140, 8,109, 23, 91, 4, 21, 44, 75, 41, 40, 30,116,103,235, 62,124, 38, 24, 15,255, 29, 66,171,253,134,
+ 13, 27,136,243, 23,162,213, 98,177,139,172,127, 68,143,205,198, 35, 51,207,128, 11, 23, 46, 98,238,220,185,216,123,224,221,224,
+ 41, 83,166,200,198,143, 31,111,236,223,191,255,108,158,231, 27,177, 44,123, 2,255, 84, 85,148,119,133,120,190,234,209,163, 71,
+147,133,117,139,197,130,160,160, 32, 4, 5, 5,161, 78,205,248, 91, 68,150,205,102,131,217, 75,213,161,208, 70,139, 33, 60,177,
+ 88,108,176,241,188, 67,252, 20,169,141,241,235,183, 29,171,225,116,120,109,225, 79,235,230,245, 60,139,193, 55, 38, 57,226,177,
+ 98,225,132,119,166,124,243,141,172,200, 22, 57,114,192, 51, 47,167,244, 27, 48, 8,207, 61,245, 68, 59,163,201,180, 78,196, 18,
+222,226,184, 30, 88, 16,184,182,209,162,184, 71,184, 92,172,181,136,101,114, 4,198, 36,226,162,198, 38, 17,137, 68,135,174, 20,
+235, 36,172,136, 3,203, 73,112,166,200, 96,121,128,162,123,230,242,229,203,177, 85,171, 86,133, 90,173,134,213,106,229,159,126,
+250,233, 12,142, 19,199,115, 98, 49,147, 58, 96, 56,159,157,157,105, 97, 89, 17, 8,177,225,137,126,111, 48,178, 0,185,196,108,
+ 50, 89, 81, 86,117,232,206,205,114, 30,194, 33,168, 75,151, 46, 97, 66, 79,192, 95,102,143, 8,114,218,167,106,218,180,105,152,
+115,175, 67, 63,221, 34,166,127,255,254,242,106,213,170, 49, 0,112,120,217, 7,130,123,198,244,234,213, 43,160, 90,181,178,118,
+248,127,126, 49,194,111,206, 8, 5, 1, 74,174, 1, 37,105,183, 56, 89,189,122,245,146, 37, 39, 39, 87,232, 89,180, 55,128,247,
+ 56,118,151,146,179, 2,217,199,252,226,122,177, 49, 44,113,129,224,102, 63,193, 66, 26, 24,110,108,241,222,230,131, 84,108, 81,
+ 80,248, 5, 23, 45,114, 95,161,157, 93, 32,182,183,255, 58, 4, 23, 7, 0,118,139,142,113,210, 89,176, 88,205,183,136, 44,155,
+205, 6, 49, 99,196,220,185,115,241,214, 91,111, 1,128,228,157,119,222, 89, 59,101,202,148, 39,121,158,111, 68, 8,105,195, 48,
+140,183,175,198, 29,177,177,177, 57,132, 16, 49,203,178,109,190,248,226,139,176, 30, 61,122, 32, 40, 40, 8,132, 39,183,136, 44,
+155,141,135,217,108,130, 39, 75, 43, 84, 37,159,242,199,170,145,161, 29,251,124,218,201,198,243, 91, 5,145,197,219,108, 0, 95,
+118, 82, 65,110, 6,182,252,190, 14, 95, 45,252,170, 8, 12, 57, 7, 2,222, 46, 6,225, 65, 12, 54,218,115,248,108,155,214,205,
+235, 97,202, 55,223,200, 78, 31,205, 90, 59,252,237,247, 83,250, 13, 24,132, 85, 63, 47, 3,107, 45, 62,230, 44,178,108, 22, 30,
+ 37, 69,249,189,254,162,109,180,254, 45,132,109,217,186,149, 25, 52,104, 16, 95, 90, 90, 10,137, 84,202, 91, 44, 22, 81,171, 86,
+173,108,111,189,245, 22,155,157,157, 13,117,169,134, 3, 16,134, 7,192,214, 82,171,213,203,222,120,227,141,118,187,118,237,146,
+176, 44, 11,181, 90,141, 14, 29, 58,228,231,241,113, 1,175,253,111,120, 68,102,102,134, 85, 37,231,140, 18,137, 24,185,185,185,
+124,187, 30, 3,245, 3,134,188, 85,229,173, 15,166, 47,202,218,183,240, 75,127,174,225,220, 19,208,117,223,226,197,139, 77,113,
+113,113, 6,153, 76, 38, 29, 60,120,176, 95,245,135, 38,147,137,204,156, 57,211,232,218,187,208,100, 50,145,185,115,231,154,226,
+227,227,141,114,185,156, 88, 44,190,219,125,178, 44, 99,125,117,202, 79, 86,171,213, 90,206,197, 18, 68,150,133,103, 52, 11, 22,
+ 44, 48,199,199,199,155, 20, 10, 5,145,201,100, 18,127,194, 57,124,248,112, 18, 26, 26,106, 86, 42,149,146, 49, 99,198,220, 81,
+175, 67,139, 13,220,148, 47, 28,195, 59,200,130,130,130, 80, 90, 90,234, 8,107,108,108, 44, 21, 91, 20, 20,110,112,139, 22,185,
+ 63, 93, 56,255,198,209,226, 1, 77, 78,110,126, 84, 68,116, 34,172, 86,171,125,177,192,106,177, 96,228,235, 3, 48,123,225, 2,
+ 0, 16,196, 86,151,119,222,121,103, 45, 0,159,133,217,138, 21, 43, 38,191,243,206, 59,170,156,156,156,205, 63,252,240, 67,216,
+192,129, 3, 49,122,244,104,124,250,233,167, 16, 75, 3, 16, 22, 89,213,113, 29,225,186,249,121,133, 32, 32, 26, 15, 62,157,185,
+172,144, 2, 23, 30,153, 0,139,205, 2,222, 98,129,197, 98, 1, 35, 42,139,218,150,223,215, 97,224, 75,195, 33,150,169, 66, 63,
+159,251,137, 62,165, 89,236,147,227, 95,121,197,232,135, 9,200,158, 62,154,181,118,248, 91, 99,186, 8, 34,107,205,178,133,231,
+ 62, 27,219,103,185, 76,202, 57,174, 99,225,121,176,172,136,182,209,250,151, 68,150, 76, 38, 91,189,105,211,166, 75, 77,154, 52,
+ 97,180, 90, 45, 44, 22, 11,242,243,243,177,118,237,218, 51,132, 16,132,134,134, 98,211,166, 77,252,192,129, 3, 87, 27,141,198,
+103,238,119,177,149,157,157,125, 94, 46,151,175,120,255,253,247, 7,140, 29, 59, 86,204,243, 60, 46, 92,184, 0, 48, 12, 17, 75,
+164, 96, 89, 22, 98, 49,135,146, 18, 53,175, 8, 12,201, 50, 19,145, 66, 44,145,130, 21, 73,188,117, 19,190, 97, 31,140, 20, 44,
+ 39, 41, 21,122, 2, 74, 36, 18, 28, 88, 53, 75,221,126,240,100, 21, 0, 72,100,242,162,174, 93,187, 94,175, 87,175,158,246,200,
+145, 35, 9,184,181,215,161,235,243,105,237, 59,120,140, 72, 33, 15,208,118,233,210,229,134,192,153,182,245,115,245,160,161, 31,
+ 48,140, 72,170, 77, 77, 77,189,158,146,146,162, 21,137, 68, 56,187,238, 19,117,223,193, 99, 2, 24, 47,131,172,110,190, 68, 94,
+ 61,177,106,119,157,169, 83,167, 90,122,244,232,113, 83,104, 47,150,150,150, 86,165,103,207,158,178, 57,115,230, 88,122,246,236,
+153,222,160, 65, 3, 13,203,178, 56,122,244,104,188, 55,167, 74,128, 92, 46,183,188,252,242,203, 55, 78,157, 58,117,187,189, 14,
+189,162,106,213,170,224,121, 30, 29, 58,116,128,193, 96,160,206, 22, 5,197,131, 9,215,113,180, 60,143, 12,111,177, 90,134,191,
+254,230,196,207, 1, 38,208,169, 20,248,199, 88, 34, 96,222,125,119,148, 18,128, 92, 16, 91,111,191,253,182,207,105, 78,156, 68,
+ 86,179,129, 3, 7, 98,220,184,113,248,236,179,207,108,159,126,250,169,232,252,197,107,230,193, 67, 63, 42,118,185, 14, 8,136,
+134,183,240,195,221,241, 21,149,104, 63,106,211,115,198,196,140, 28,221,158,193,111,140,119,148, 94, 54, 0,106, 38,214, 6, 0,
+ 95, 45, 92,168, 21,203, 84,202,126, 3, 6, 1, 64,151,207,231,126,178,118, 10,190,241, 45,182, 8, 83,119,248,219, 99, 66, 5,
+145,245,197,156,169,167,130,153,156, 5, 35, 70,157,177, 56, 95, 7, 0,194,130,176,182, 77,207, 25,221,114, 11,181,243,104, 62,
+187,119,144, 74,165,147,183,111,223,174,108,216,176, 33, 83, 80, 80, 0,155,173, 44, 69,204,102, 51, 74, 74, 74, 80, 90, 90, 10,
+163,209,136,166, 77,155,178,243,231,207, 87,142, 24, 49, 98,178,201,100, 26,122,191,199,251,234,213,171, 95,172, 95,191, 30, 59,
+119,238,236, 63,118,236, 88,113, 76, 76, 12, 19, 28,156,195, 88,204, 38, 0,132,228,229,229,241,138,192,144,172,136,232,248, 27,
+153,217,185,117, 45,102, 19,120,155,217, 99,107,115,251,240, 14,239,158, 62,125, 58,113,214,172, 89, 38,231,158,128, 3,198,124,
+ 62,191,105,211,166, 97, 11, 22, 44, 48,165,166,166, 94, 23, 26,175,251,211, 24,126,203, 21,188,121,250,244,201,250,174,156,237,
+ 95,155,245,173,192,233,220, 27,177,215,168, 69,223,214,172, 89, 51, 44, 37, 37,229,186, 55,222,228,228,100,125,108,108,172,169,
+ 78,157, 58, 26,177, 88,252,127,246,206, 58, 60,138,171,141,226,103,102, 93,227, 78, 72, 8, 22,197, 37,184, 91,209, 22, 45, 78,
+ 41, 86,172, 80,138,180,120,161, 80,188, 88,129,150, 2,165,248, 71,139,107,113, 39, 9,193, 18, 36, 16,119,151,117,153,251,253,
+145,108,154,132,200,110, 66, 75,105,231,247, 60,243,108, 50,114,246,142,238,153,247,222,251,222,252, 72,150, 94,175,172, 89,179,
+ 38,227,236,236,172,245,243,243,203,179,180,209,190, 88, 44, 38,166,168, 88,105, 88,210,235,144,199,129, 97,216,176, 97,133,153,
+225,103,213,169,147, 56, 98,196, 8,215,153, 51,103, 98,231,206,157,184,121,243,230, 27,102,191,125,251,246,184,118,237,218, 18,
+252,139, 18,235,178,176,252,199, 40, 63,143, 86, 73,118,237,218,251, 7,138,180,105, 42,141,101,203,150, 9, 11, 34, 89, 93, 63,
+255,252,115,168, 84, 42,219, 82, 86,235,130,130, 92, 27,165,153,172, 85,171, 86,237, 39,132,184, 3,104, 99, 52, 50,119,127,252,
+105, 87,199,178,190,111,208,160, 65,111,104, 18,138,230,208, 52,149, 39,224,145, 7, 63,236,216,249,107,177,245,243, 27,191,123,
+131,194,195,205, 27, 86,169, 0,116, 45,105,182,240,231, 48, 35,133,154, 38, 38, 78,154, 88,104,178, 54,111, 88,117, 33,160,169,
+199, 71,243, 63,253,166, 84,115,246,205,162, 9, 82,154,166, 90,149,104,163,245,134,230, 91,128,213,252,147,142,195,134, 13,107,
+ 16, 24, 24, 72, 23, 53, 89, 90,173,182, 48,113,167,169,177,120,124,124, 60,218,183,111, 79, 55,104,208,160,222,189,123,247, 58,
+226,207,225,156,222,215,125, 55,190,126,253,122,163,139,139,203,197,133, 11, 23,142, 72, 75, 75,235,149,153,153,101,127,114,215,
+ 55,232, 49,104, 18,213,190,231, 80,133,150,112, 69,113,137,201, 62, 87, 78,239,179, 59,115,112, 11,116, 90,237, 4, 0,225,248,
+ 51,189, 67, 73, 77,165, 41,141,131,143,143,143,162,168, 81,241,240,240, 80,187,185,185,105, 2, 2, 2, 10,231,151,209,155,239,
+141,125,183, 84,179,160,253,151,162,162,227,105, 50,109, 37,211, 70, 72, 36, 18,152,204,151, 37,229, 44,218,219,178,212, 7,101,
+197,189, 14, 11, 53, 11,210, 59, 20,243,105,123,247,238,237,178,119,239,222,166, 0, 30, 32,127,172, 67, 61,144, 95,149, 88,164,
+209,252,226,130,137,189,223, 89,205,255,170,230,251, 76,123,252,217, 54, 11,200,111,171,117,181, 76,163, 85, 17,166,134,239, 0,
+232, 25, 51,102,100,170, 84, 42,219, 17, 35, 70,148,187, 77, 82, 82,210,206, 61,123,246, 20, 51, 89,253,251,247, 31,115,228,200,
+145,139, 41, 41, 41,149,218, 43, 91, 43,241,178,171, 39,230,216,182,239,189,242,115, 0,171,203, 8,228, 49, 1, 77, 93, 63,218,
+188, 97,213,111, 37,204,214, 47, 0,250,151,229, 74,187,125,208, 15,251,118,109, 54,181,237, 18, 63, 14,138, 63, 51, 36,100,105,
+169,189, 21,109,100,194,165, 5,229,152,201,182,209,250,123,224,243,249, 29,230,206,157,203, 87, 40, 20,111,152,172,146, 70, 43,
+ 39, 39, 7, 15, 31, 62,196,232,209,163,133,161,161,161, 29,116, 58,221,229,127,195, 49, 72, 74, 74,122, 86,144,140,116,186, 41,
+133,131, 80, 36,230, 15,253,228,115,247,194, 94,135, 7,183, 64,163, 86, 1, 0,215,156,244, 14, 92, 46,151, 31, 26, 26,234,105,
+138, 90,233,116, 58,161,105,126, 80, 80,144,167, 41,183,150, 90,173, 54,187,215,225, 95,165,249,232,209, 35,119, 83,239, 72, 83,
+239, 66, 46,151,203, 15, 14, 14,118, 55,105,106, 52, 26,179,122, 29, 10, 4, 2,126,104,104,168,187,209,104,124,107,189, 14,139,
+ 26, 99,228,143,179, 88,108,172,197,130,182,101, 20, 69, 81,132,173, 54,100, 97,121,239, 41,217, 83,178,252, 65,165, 43,194,212,
+240,221,130, 77,184,213,171, 87,239,246,241,199, 31, 23, 51, 89, 3, 7, 14, 52, 30, 61,122,244,138,171,171,107, 50, 77,211,207,
+ 44, 45, 71, 97, 27, 45,188,241, 6, 9,154,166, 31,182,105,230, 7,154,166, 31,206,255,244, 83,205, 50,252, 84,204,108, 29,251,
+237, 80,247,184,204,167,165, 91, 51, 0,246, 78,213, 48,108,204, 20, 12, 27, 51,197, 22, 64,107,160,236,222,138,229,149,131,229,
+175,129,162, 40,129,155,155,219, 99,181, 90, 13,138,162,160,209,104, 10, 13, 86,110,110, 46,178,179,179, 11,255,215,233,116, 72,
+ 77, 77,133,135,135, 7, 40,138,250, 87,183,163,211,233,116,134,185, 75,214,236,225,112,249, 6,134,209, 81, 58,157,238, 19, 75,
+238,243,185,115,231,210, 40,165,237,213,212,169, 83, 75,157,255,174, 52,191,250,234,171, 82,123, 9, 78,157, 58,181,220,222,131,
+101,241,197, 23, 95,188,181, 94,135,230, 63,190, 88, 88, 88,254,101,148,218,117,175, 82, 70,139,166,233,135,165,244, 46,164, 0,
+ 16,154,166, 31,150,146,229,192, 16, 19, 19,179,196,198,198,102,130, 66,161, 56,219,191,127,255, 25, 3, 7, 14, 52, 2,249, 13,
+228, 43,187, 71,153,217,138, 69, 29,250,124, 55, 51, 43, 79,179,169,228,178,146,145, 39,147,217,218,242,253,170,173,191, 29, 57,
+ 48, 48, 41, 33,110,107, 89,251, 86,150,161, 42,171,183, 98,118,142,106, 73,135, 62,223,125,158,153,163, 98,219,104,253, 77, 24,
+141,198,243, 98,177,152, 50, 13,166, 92, 52,122,149,147,147, 3,165, 82,137,130, 33,105, 0, 0,121,121,121,176,182,182,134,209,
+104, 36,255,178, 67,161, 1,240,101, 65,180, 10, 0,190,140,188,178,177,232,181,253,168,232,178,114,162, 89,137,230, 12, 16, 93,
+218,118,229, 45,251, 11, 52,147,203, 25, 32,186, 60,146, 45,212, 75, 6, 0, 62,143,147, 82,214,224,209,124, 30, 39,165,156,118,
+251, 22,190, 55, 80, 4,192, 18,246,206,102, 97,121,127,223,255,223,213, 23,119, 97, 53, 89, 77, 86,243,111,209, 20, 22, 76,230,
+ 46, 99,143, 39,171,201,106,178,154,255, 52,205,210, 24,255,158, 24, 45, 82,202, 4, 66, 8,254, 77, 99,192,177,176,252,151,209,
+ 84,114, 25, 11, 11, 11, 11, 75,213,121, 99, 48,233,162, 11,202,114,165,150,244, 38,168,140,179,189,200,106,178,154,172, 38,171,
+201,106,178,154,172,230,127, 78,179, 34,237,162,219,143, 7,176,227, 61, 49, 91,111,152, 44, 66,254,250,214, 42,108, 88,149,213,
+100, 53, 89, 77, 86,147,213,100, 53, 89,205,202,194, 86, 29,178,176,176,176,176,176,176,176,252,199,177, 44, 97, 41, 75, 41,120,
+244,155, 15, 6, 95, 21, 28,206, 85,136, 61,182,248,223,182,139, 3, 7, 14,228, 88,178,126,100,164, 13, 29, 2,215,181, 86, 82,
+126,159, 60,133,126, 45, 19,178,104, 83, 69, 23,162, 67,205,198, 35, 37, 34,201,103, 90,173,214, 75, 38,151,167,100,164,167,110,
+203,136,121,180,165,200, 58, 86,119,239,222,117, 13, 12, 12, 76, 0,144, 91,228, 77,129,133,133,229,109, 98,227, 87, 29, 20,245,
+ 9, 64,254,236,118,201,144,167,200, 14,223, 85,108, 61,107,223, 49,160, 41,255, 34,115, 84, 32,248, 17, 89, 97,177, 21,252,224,
+216, 68, 68, 68,120,214,174, 93, 59, 26, 64, 86,201,111, 47,101, 25,123,159,179,188,207,180, 71,241,132,165,133,247, 66,213,141,
+ 86,157,254, 94, 48,208,163, 64, 48, 28, 20, 66, 17,121,100, 64,165,116,106,125, 84, 13, 12,183, 57,128,198, 0,105, 44, 21,139,
+ 26,169,180,186, 20,134,144,145,120,117,232,129,197,122, 94, 3, 39,161,236,225, 44,150, 32,242,200, 15, 22,233, 49,228,235,251,
+215,142, 10,109, 36, 20,106, 55,233, 63, 27,197, 51, 56, 87, 22, 1,128,182, 52, 77,251, 75, 36, 18, 87,165, 82,153,202, 48, 76,
+ 44,242,235,167, 51, 43,169, 73, 3, 24, 43,147, 74,123,120,202, 5,141, 99,210,178,227,115,245,198,235,200, 79,232,154,249,182,
+174,168,124,147,229,178,227,243,161,129,163, 87, 77,235, 2,155, 14,223,205, 86, 2,229, 25, 45,202,221,187,213,177, 33, 31, 15,
+234, 48,121,252,104, 89, 53, 71, 25, 18,211, 20,246, 63,236,220,187,102,239,222,125,189, 63, 29,210,181, 7, 0,124,243,205, 55,
+ 31, 86,175, 94,189, 6,135,195,137, 92,176, 96,193, 47,139, 22, 45, 34, 84,217, 35,149,187, 22, 92,195,166, 7,190, 20, 64, 0,
+128,154, 0, 94, 3,120,130,226, 89,198, 43,195,123,161, 89,173, 90, 53, 55,134, 97, 62,117,118,118,238,149,156,156,124,138,166,
+233,159,226,227,227, 19,222,229, 83,135, 16,178,157,162,168,241,132,144, 29, 22,124, 78,176,228, 59, 68, 34, 81,178, 90,173,118,
+ 42,248, 59, 69,173, 86, 59,255, 85,251,243,119,126,215,223,244,254, 61,238,252,141, 39, 61,138,206,234,214,198,191,148, 39, 10,
+229,127,254,198,211,118,197,215, 11, 48,150,241, 12,164, 8, 33, 88,178,100, 9,181,116,233,210, 49,181,106,213,170, 67,211,244,
+243,133, 11, 23, 22, 75,125, 83,114, 89,145,251,156, 53, 91, 44,239, 43,150, 13, 42, 93, 33,126, 3,165, 80,147,129, 0, 53,186,
+125,179, 70,109, 38,140,236, 67, 17,142, 8, 67,199,205, 49, 88,172,229, 57, 90, 8,142,106, 89,125,127,239, 25,131,250,116,161,
+155, 6,212,128,171,163, 53, 64,243,176,253,116,148,253,166, 85, 11,182, 2, 8,172, 68, 41, 23,189,186,189,223, 41, 49,203, 8,
+138, 2, 40, 10,160, 41, 32, 79,205,160,219,135,163, 22, 1,248,193,194,167, 18,109, 35,161, 48, 99,191, 26, 0, 56,111,225,164,
+212,112,116,116, 28, 51,125,250,116,105, 64, 64,128,141, 72, 36, 18,168,213,106,231,136,136, 8,199, 5, 11, 22, 4,168, 84,170,
+ 19, 0,238, 91,168,233, 81,219,221,237,208,166, 25, 99,155, 55,168,233, 9,158, 54, 15,140, 70, 81,253, 69,196,203,150, 19,183,
+ 30, 30,247, 52, 67,253, 49, 42, 49,100, 66, 90, 90, 26, 5, 0, 14, 14, 14,164,184,201,106, 49,122,253,204,110,152,177,238, 60,
+148,106,237,175,229,105,216,213,104, 56,226,163,143,250,117, 88,254,245, 84, 89,124,186, 14,161,145, 42,216,201,248, 88,244,229,
+ 36,129, 70,163,111,185,245,151,189,227, 55,175,156,243,163,209,104,236, 4,160,169,209,104, 12, 2,240,203,146, 37, 75,202,122,
+248, 46, 5,240, 85,193, 5,189,143,195,225, 92,232,216,177,163,215,167,159,126, 74, 53,105,210, 4,193,193,193, 53,247,239,223,
+223,229,212,169, 83,145, 70,163,241, 17,128,231, 40, 24,246,196, 12,120, 0,188, 57, 28, 78,253,127,178,166,171,171,171, 88,171,
+213,142,114,119,119, 31,223,170, 85,171,250,125,250,244,161,188,189,189,241,236,217,179, 38,103,206,156, 89,116,253,250,245, 71,
+113,113,113, 59, 4, 2,193,158,196,196, 68,213,223,254, 59, 78, 81,227, 1,184, 21,248,228, 37,102,124, 38, 32, 63,151, 84,162,
+185,223,161, 86,171,157, 76,141, 77, 41,138,114,250, 43,247,199,194,239, 10,163, 40,202,174, 96, 93,148,247, 73,211, 52, 12, 6,
+131,194,104, 52,214,170, 64,211,187,224, 69,202,108,175, 11,160,188, 68,208, 98, 0,232,214,218, 63, 3, 20,158, 22, 70,180,222,
+124,201,124, 90,104,192, 8,252,207,223,124,106, 87, 44, 10, 86,242, 45,118,201, 18,106,209,162, 69, 88,188,120,113, 31, 0,109,
+ 25,134,185,238,235,235,187,177,152, 36,195, 20, 46, 91,180,104,209,247,229,220,231, 44, 44,239, 11, 29, 96,201,160,210,101,190,
+255,212, 26,208, 14, 70,140,246,180,119, 26, 56,237,211,193,226, 0,223,218, 80, 67,134,168, 52, 35, 78,159, 60, 3, 0, 7, 45,
+139, 58, 13,110,202,229,170,247,172, 90,252,165, 79,219,230, 1,120, 28,175, 71, 80,188, 17,202, 72, 61, 56,180, 30, 70,134, 0,
+ 4,234,202,238,117, 92,166, 1, 55,158,107, 65, 83, 0,135, 6,104,154, 2,135,174,164, 24,163,125,241,205,174,144,128,180,100,
+ 6, 96,180, 47,170,120, 66,252,235,214,173, 59, 98,233,210,165, 54, 73, 73, 73,210,224,224, 96, 8,133, 66,216,218,218,114, 92,
+ 93, 93,221,214,173, 91,167,154, 54,109, 90, 47,157, 78, 23, 5, 32,205, 76, 77,223,158, 77,235,223,218,177,234, 27,107,253,221,
+ 51,200, 58,240, 63,112,104, 2,190, 84, 6, 47,177, 24,103, 62,170,109, 55,240,100,228,209,123,201, 10, 95, 0,241, 21,137,133,
+135,135,115, 52, 26,205,199, 86, 86, 86, 45,120, 60,158,179,200,182, 6,147,192,109,154,158, 74,213,124,157,226,164,108, 55,179,
+139,115,143,181,159,119,196,140,117,231,177, 97,255,157,221,141,145,180,176,188,188,217, 18,137,108,194,180,207, 62,149,197,165,
+233,176,236,104, 26,118, 93,203,193,168,182,114,204,248,192, 26,195,134, 14,145, 30,254,223,145, 9, 0,126, 44,178,201, 51, 95,
+ 95, 95, 42, 60, 60,188,180,135,175, 45,128, 57, 90,173,150,230,243,249,148, 72, 36, 26,177,124,249,114,221,208,161, 67,227, 76,
+ 43,180,109,219, 22,109,219,182,165,114,115,115,107, 94,190,124,185,230,222,189,123, 13,183,111,223, 14, 3,112,172,236,136,133,
+ 56, 70,173, 86, 85, 23,137,197,202, 31,182,110, 93,219,174, 93, 59, 70, 40,252, 51,253, 84,101, 52, 1,192,218,218,250, 71, 39,
+ 39, 39,106,222,188,121, 9,111, 75,179, 70,141, 26,231,155, 55,111,222,177, 91,183,110,220,214,173, 91,195,205,205,173,112,153,
+131,131, 3,218,182,109, 75,197,198,198, 54,184,126,253,250,214,243,231,207,111,124,240,224,193,229,168,168,168,110,127,115, 68,
+107, 71,129,153, 72,180,112,253,247, 30,138,162,100,219,183,111,119, 50,141,201,168,215,235, 97, 52, 26, 11, 63, 77, 19,195, 48,
+ 48, 26,141, 88,190,124,185, 81,161, 80,152,115,140, 20, 69,222,154, 77, 19, 83,218,167, 64, 32,112, 48, 37,236,173,224,201,254,
+212, 85,152,229, 39,149, 74, 61, 1,244,132, 99,157, 57,197, 87,200,127,127, 86, 40, 20,209,137, 26,155,167, 0,218,149,163,102,
+179,116,233,210, 81,139, 23, 47,238, 87, 36, 74, 91,127,208,160, 65, 37,135,189,170, 95,240,169,160, 40,234, 10, 77,211, 39, 0,
+236,194, 91,140,186,179,252,187, 32,132, 52, 3,224, 88,100,150, 22,249,181, 66, 40,248,157,164, 0,216,151,152, 95,116, 61,211,
+103,106,193,124,199,130,237, 72, 17,221, 84,138,162,238, 87,178,136, 87, 81, 70, 59, 45, 46, 0,156, 60,121,146,244,238,221,155,
+ 50,125,150,110,138, 6,158, 30, 59,180,111,143, 94,157, 91,129, 22,217,226, 69, 10,112, 59,134,128, 75,235, 65,131,224,238,205,
+203, 4, 92,102, 79,137,173,202,142,158,212, 24,240, 69,253, 0,223,239,126, 90, 53,157, 19,150,194,197,174,235, 74,232,212,121,
+ 72, 77,138, 65, 74, 66, 52, 18,227, 94, 35, 62,230,245, 35,128, 90,100,182,230, 27, 39, 6, 48, 50, 5,239,128, 12, 74,139,232,
+153,175,169, 83,132,215,244, 14, 8,200, 20, 24, 1,157, 34,220,140,175, 47, 75,179, 94,157, 58,117,134,126,253,245,215,118, 79,
+158, 60, 17, 43,149, 74,205,153, 51,103,158, 69, 69, 69, 89,185,186,186,102, 76,154, 52,169,142,155,155,155, 85,255,254,253, 5,
+ 7, 14, 28,248, 16,197,187,181,150,165, 25,208,183, 69,163,219, 59, 55,174,151,166, 31,222, 4,109,196, 67,156, 78, 84,224,102,
+178,146,212,180, 22, 82, 83, 26, 56, 66, 38,228,226,155,214,110,178,158,191, 69,124,167,103,152, 97,229,105,222,186,117,203, 85,
+ 34,145,172, 27, 62,124,184,235,212,169, 83,133, 70,174, 13,247,200,237,116,235, 57, 91,111,187, 41, 53, 58,206,208,142, 53, 48,
+115,120,125,204,220,112,201,100,178,198,123,121,101, 49, 33, 33,101,107,234,117, 58, 47,119, 39, 43,132, 70,169,176,235, 90, 14,
+254,248,218, 13,157,151, 39,160,127, 99, 46,124, 61,100, 48,232,244,222,131, 6, 13,218, 83,240,214,126, 31,192,135,131, 6, 13,
+242,225,112, 56,151, 0,252, 94,209, 57, 18,137, 74, 31, 61,197,214,214, 22,237,219,183,135,175,175, 47,183, 93,187,118,245, 75,
+ 24,152, 98,154, 58,157,214,149, 97, 8,228,114,185,216,222,222,222, 86, 46,151,167,151,246, 67,101,137, 38, 0,216,217,217, 13,
+104,223,190, 61,119,255,254,253,105,145,145,145,119,135, 14, 29,250,218,202,202,170, 88,244, 87, 42,149,162, 78,157, 58, 88,176,
+ 96, 1,183, 71,143, 30, 21,106, 58, 59, 59,119,221,187,119, 47, 40,138, 42,252,209,126, 35, 88,236,233, 9, 23, 23, 23,244,236,
+217,147, 59, 96,192,128,174, 81, 81, 81,149,186,143, 44,224, 98, 41, 17,173, 37, 37,206, 83,153,213,111,165,173,111,198,121, 79,
+ 49, 69,151, 10,244, 80,133,123,179,220,234, 78,145, 72, 84, 24,133, 42,229,187,222,208,164,105, 26,243,231,207, 7, 69, 81,224,
+241,120,224,243,249,165,126,118,232,208,193,210,114,198, 82, 20, 69,243,249,252, 57, 92, 46,247, 83,141, 70,227, 46, 18,137, 18,
+140, 70,227,110,141, 70,179, 28,128,158, 16, 98, 83,134,201, 42, 85, 83, 42,149,122,190,120,241,162,110, 89, 5,209,104, 52,168,
+ 95,191, 62,160, 65, 88,121,154, 17, 17, 17,158,181,106,213,242, 6, 96, 26,162,237, 26, 33,164, 93,145,255,139,114,141, 16,242,
+ 65,193,223,207, 95,189,122,229, 89,187,118,237,204,191,235,250,100, 53,255,121,154, 21,120, 17, 71,138,162, 78, 22,185, 87,123,
+155,254,159, 59,119,238, 87, 43, 86,172,120, 66, 81,212,201,162,243,139,174, 87,244,179,224,121,115,146, 16,210,123,222,188,121,
+ 1, 43, 87,174,252,214,180,238, 95, 97, 18, 45,137,104, 89,165,170,165,184, 30, 99, 5, 46,199, 8, 46, 77,129,203, 1, 64, 40,
+ 68, 71, 69, 32, 55, 39,235, 6, 34,143, 70,154, 23,201, 26,216,186, 97,195,122,171,246,109,152, 77,255,124, 93,137, 44,133, 26,
+225, 15,174,224,254,149,223,147,140, 6,227,239,160, 72, 16, 64, 7,227, 53,243, 12, 56, 82,185, 49, 46, 40,194,205, 55, 90, 5,
+230,170,152,217,122,103, 52,240,241,241, 25,178, 96,193, 2,135,144,144, 16, 81,118,118,118,238,190,125,251, 18, 52, 26, 77, 20,
+128,115,209,209,209, 62,223,127,255,189, 96,213,170, 85,245,234,213,171,231,122,232,208, 33,109, 41,195, 25,189,161,249,229,232,
+ 97,183, 63,157,246,185, 40,236,208, 22, 8,194,130, 49,255, 97,154,241,143, 68,229,215, 0, 54, 32, 54,175,117,170,218,112, 97,
+125,251,234,116, 13, 57, 31,181,109, 4, 29,194, 51,212,229, 70,178, 36, 18,201,186,189,123,247,122, 54,107,214,140, 6,128,235,
+207, 13,194, 57, 91,111,187,157, 91,209,154,106,237,111,143,148, 44, 13,166,111, 9,197,153,219, 41,103, 77, 38,171,162, 66,202,
+229,242,212,184,148, 28,103,123,153, 8, 35,219,200,208,121,121, 2, 6, 54, 21, 66,200,167,240, 44, 50, 9,181,107,213,160, 66,
+111, 28,107, 90, 96,178,154, 37, 38, 38, 2, 64, 83, 0,145,177,177,177,174,129,129,129,217, 69,228, 50, 1,124, 39, 16, 8,230,
+ 83, 20, 69,154, 53,107, 22, 90,175, 94,189, 60, 91, 91, 91,168, 84, 42,104, 52, 26,240,249,124,168, 84, 42, 68, 71, 71,227,238,
+221,187,176,181,181,181,232, 68,229,229,229, 65, 46,151,131, 97,152, 42,107, 26,141, 70,106,219,182,109,210, 39, 79,158, 72,143,
+ 28, 57,226, 60, 99,198,140,116, 63, 63,191,160, 33, 67,134,188,116,114,114,210, 60,124,248, 16,183,110,221, 66,102,102, 38, 90,
+180,104, 97,150,166, 86,171, 5,151,203,133, 74,165,130, 80, 40, 4,151,203,133,193, 96, 0,195, 48,133,230, 43, 47, 47, 15, 25,
+ 25, 25,224,243,249,208,106,181,239,226, 13,244,141, 8, 85,121,213,111,149,137,104, 21, 53,106,102,154,172,138, 34, 81,101, 86,
+119,102,101,101,137,109,108,108,230, 0, 72,172,232,187, 40,138, 2,135,195, 1,159,207, 7, 69, 81,104,215,174, 29,198,142, 29,
+139,198,141, 27, 35, 34, 34, 2, 7, 14, 28,192,253,251,247,193,227,241, 10,215, 55,187,126,162, 67, 7,142, 72, 36,186,213,183,
+111,223,128,175,191,254, 90, 84,163, 70, 13,132,133,133,121,172, 92,185,114,206,197,139, 23,251, 41, 20,138,166,166,167, 93,249,
+ 81,250,130, 42,193,252,234,194,158, 26,141, 6, 97, 97, 97,150,108,243, 6,181,107,215,142,166,105,250, 37,195, 48,215, 1,212,
+ 39,132,180,163, 40,234, 12,242,219, 37, 22, 69, 65, 8,249,128,162,168, 28, 0,143,104,154,126,206, 48, 76, 52, 27,183, 97, 49,
+227,185,210,187,228,255, 20, 69,157, 92,177, 98, 69,239,210,204, 85, 41,247,102,177,249, 43, 87,174,252,182,200,255, 85,137,168,
+182, 71,241,198,240, 29, 10,162, 92,127, 26,173,147, 39, 79,150,239, 64, 24,244, 63,121,116,255,157,206, 58,120, 6, 52,105, 91,
+ 36, 58, 68, 16,124,247, 22, 0,178,219,172,162,184,246, 22,211, 28,238,238,109,223, 78,165,183, 95, 81, 34, 54, 33, 5,183, 78,
+239, 70,106, 98,212, 46,128,204, 64,228,145,156, 42,159,137, 26,253,235, 57,217, 59,216,168,117, 4, 12, 1,240,134,217,122, 39,
+ 52,246,246,246, 30,112,251,246,109, 7,181, 90, 45,186,113,227,134,114,239,222,189, 73, 58,157,238, 10,128,155, 5,235,132,164,
+166,166, 14, 42, 48, 38, 28, 46,151, 43,208,233,116,229,181, 93,104,252,229,167,163,110,124,183,109,167,232,229,227, 80,124,127,
+228, 52,178,148, 74,227,149, 20,213,135, 0, 76,142,254, 82, 72,154, 42,158,128, 84,231,209, 20, 92,165, 60,151,240, 12,181, 8,
+ 40,189, 74, 86,163,209, 12, 29, 62,124,184,171,201,100, 1, 64, 90,174,158,171,212,232, 57,173,253,237,209,164,227, 32, 4, 95,
+ 62,140, 67,215,226, 81,203, 81,114,205, 75,154,101,214, 17, 77, 77, 73,220,182,126,211,246,245,223, 45,249, 82, 48,179,167, 53,
+ 6, 54,229, 65,196,167, 96, 37,225, 97,249,198, 31,245, 33,119,175, 61,116,117,117, 61, 9,224,195,196,196, 68,184,186,186,230,
+ 1,120,206,225,112, 34,141, 70, 99,105,141,186, 23, 2,112,222,179,103, 15,173,215,235,243, 34, 34, 34,224,226,226, 2,103,103,
+103, 88, 91, 91, 35, 60, 60, 28,127,252,241, 7,158, 61,123, 6,134, 97,208,176, 97, 67,139, 78, 86,122,122, 58, 30, 62,124,136,
+158, 61,123,205, 72, 77, 77,177,178,181,179, 87,220,184,126,109, 77,101, 52, 25,134,161, 0, 32, 32, 32, 0, 1, 1, 1,162,248,
+248,120,247,147, 39, 79, 58, 45, 91,182, 44,198,211,211,115,159, 74,165, 42, 22, 57, 48,215,104,153,204,133,201, 4,138, 68, 34,
+240,249,124,228,228,228, 32, 57, 57, 25,185,185,249,157, 54,109,108,108,222,137,209, 42, 35, 66,245,214,214,255,139,205,225, 27,
+213,157, 54, 54, 54,195, 1,204, 49,115, 95, 96, 48, 24,192,231,243, 17, 24, 24,136, 77,155, 54,225,254,253,251,248,253,247,223,
+225,225,225,129,209,163, 71,131,166,105, 60,121,242,196,210, 34, 50,183,111,223,158,243,225,135, 31, 6,236,217,179, 71, 20, 29,
+ 29,141,103,207,158,193,198,198, 6,155, 54,109, 18,142, 31, 63,190,246,229,203,151, 23, 34,191,243, 75,249, 20,233, 93,168, 16,
+187, 14,174, 95,191,254, 27,171,184,184,184, 88,159, 59,119,206,169,208,128,149,236,145,248, 38, 89, 11, 23, 46, 92,239,235,235,
+187,161,160,186,176, 45, 0, 41, 33,164,195,145, 35, 71, 40, 0, 24, 56,112, 32,161, 40,202,244,131,244,232,240,225,195, 29,195,
+195,195,201,226,197,139,217, 54, 90, 44,101,121,145,241,166,123,178, 44, 3,101,137, 81, 43, 26,241, 50, 49,111,222,188,128, 21,
+ 43, 86,220,171,162,201, 42,250,198, 68, 76,102,171,240,199,180,204, 42,195,194,216, 23,237,234,226,100,111, 55,119,116,107, 48,
+ 12, 96, 48, 2, 6, 35,129, 66,169, 66,216,227,251, 74,136,168, 35,102, 21, 71, 40, 88,181,236,235,207,107,134,198,209, 72,200,
+212,225,234,177,237, 36, 53, 49,106, 0, 34, 15,127,242,118, 76,214,224,250, 46,206, 78, 87,247,111,255,134,190,255, 90, 11, 35,
+147,239,179, 24,134, 20,254,253, 14,112,113,116,116, 28,118,231,206, 29, 71,161, 80, 40,122,241,226, 5,115,248,240,225, 76,157,
+ 78,119,177,136,201, 2,128,214, 77,155, 54, 53,200,100, 50, 40, 20, 10,157, 78,167, 83,151, 99,178,220, 59, 52,110,112,237,187,
+109, 59, 69,106,173, 22,217, 42, 13, 56,246, 78, 37, 77, 22, 0,180,234, 88,183, 90, 53, 74, 36, 7, 1, 16,149,163, 75, 40,203,
+100, 1,128, 80, 40,236, 50,117,234,212, 98,227,226, 57,200,121, 6,137,144,103,188,249, 52,141, 9,190,124, 24,215,159,164, 49,
+ 34, 62,199,232, 72, 94,215, 52,247, 0,100,197, 61,221,246,251,241,147, 23,190, 88,176, 42, 79,169,200, 69, 45, 55, 49,242,114,
+179,177,124,197,119,250,219,183,175, 95,153, 51, 99, 98,203,195,135, 15,175, 68,126, 99,112, 0,120,126,248,240,225, 81, 11, 22,
+ 44,248, 5,127,166,121, 40, 73,194,176, 97,195,226,252,253,253,179,125,125,125,179,211,211,211,241,244,233, 83,100,102,102,226,
+251,239,191, 71, 88, 88, 24, 76, 17, 65,179,218,170,188,105,144,144,153,153, 33, 35,132, 32, 51, 35, 93,250,245,215, 95, 91, 87,
+ 70,211,104, 52, 22,187,183,170, 85,171,134, 73,147, 38,241,149, 74,165, 77, 76, 76,140, 85,209,101,230,106,106,181,218,194,140,
+195,132, 16,104,181, 90,100,103,103, 67,171,213,226,229,203,151,133, 38,171,224,251,223, 89, 68,203,244,183, 72, 36, 74, 54, 93,
+203,166, 42, 56,145, 72,148, 82,214,250, 85,161,200,119,145,130,191, 45, 53,135, 21,238,143,153,231, 29,124, 62, 31, 99,199,142,
+197,189,123,247, 16, 17, 17, 1, 14,135, 3,133, 66, 1,165, 82,137,174, 93,187, 66, 32, 16, 88, 26,209, 34,124, 62,127,248, 87,
+ 95,125, 37,138,140,140, 68, 90, 90,154,169, 49, 61,140, 70, 35,102,204,152, 33, 22, 10,133,195, 45, 13,221, 39, 38, 38,118,127,
+249,242,165,119,201, 41, 41, 41, 41,187,104,155,194,202,114,228,200, 17,106,224,192,129,100,224,192,129,196,100,184, 88, 88, 74,
+163, 12, 47,178,163,172,136,214,219,136,138,153, 34, 91, 40,232, 32, 82, 9, 76, 38,171,125, 17,227, 69,153, 34, 92,230, 85, 29,
+214, 26,220,200,217,222,238,242,158, 45, 75,101, 39, 31, 83,136,139,141, 66,106, 98, 52,154,182,236,128,176,199,161, 96,244,198,
+163,120,121,164,226,150,156, 53, 6,214,245,245,245,251,172,125,203,122, 88,117, 50, 15, 47,130,207, 33, 43, 53,113, 51,162, 14,
+ 31,125, 43,103,200,115, 96, 3,103, 39,187,203,191,108, 89,106,115,230, 41,141,216,216, 40, 28,251,101, 61,209,235, 52, 89, 40,
+222,147,203,226,183,102, 49,163, 21,228,101, 37, 67,155,107,132,136, 86,138, 44,172,164, 72, 2,112,125,253,250,245,157, 91,180,
+104, 33, 24, 54,108, 88, 82,102,102,230, 49, 0,119,138,172,227, 95,183,110,221,158,155, 54,109,114,142,141,141,197,197,139, 23,
+147,144,223,245,191, 44,226,174,133, 62,222,250,199, 47, 63,126, 41,174,233,131,239,191,250,194,112,228,254,211,190, 0,206, 20,
+ 89,199,183, 75,253,186, 39,151,205,154, 76, 51, 33,103,241, 48, 58, 25,175,179, 53,127,148, 37,152,150,150, 70, 41,149, 74, 79,
+ 27, 27,155,162, 23, 36, 92,165, 10,205,236,193,117, 19,186,206,185,225,166,214, 25, 33,228,209,100,122, 63,207,132,123,199,142,
+216,167,169,211, 40, 83,111,196,138, 24, 55,164, 75,191, 45,123,127, 27,121,242,228,169,207,116, 26,117, 61, 31, 31,111, 18,116,
+251,242,195, 57, 51, 38,246,168,228, 25,151,221,187,119,143,230,112, 56,197, 12,122,209, 8,145,165,145, 34, 75, 48, 87,179,164,
+209, 50, 97, 48, 24,168,202,106,106, 52,154, 82,135,118, 40,173,173, 22,195, 48,127,201,254, 91, 18,161, 42, 90,101,104,106, 79,
+167, 86,171,157, 10,218,108, 57,191,205,136, 86, 85,122, 34,150, 87,125,105, 73,249,104,154, 6,195, 48,224,243,249,104,216,176,
+ 33, 78,158, 60, 9, 59, 59, 59, 88, 89, 89,193,202,202, 10, 98,177, 24,246,246,246,133, 70,139,166,205,238,165, 67, 52, 26,141,
+135,135,135, 7, 94,190,124, 9,145, 72, 84, 56, 9,133, 66, 4, 4, 4, 64,161, 80, 84,195,187,140,221,179,176,252,181,207,149,
+147, 69,205, 18, 69, 81, 39,231,206,157,251, 85,101,245,230,206,157,251, 85,105, 17,174, 42, 26,174, 98,209, 45,110, 81, 7, 89,
+170,147, 44, 48, 89,187, 54, 47,177,250,237, 1, 16, 23, 23,137, 11,135, 54,230,234,117,218, 76,134,209,123,190,126, 22, 10,208,
+216,109, 86, 17,104,210,188, 95,207,142,212,133, 39, 90,228,100,165,226,121,208,185, 40,168, 4,243,222,154,201,114,118,184,188,
+103,203, 18,155, 19,143, 41,196,198, 70,225,204,254,239,115,244, 58, 93, 23, 68, 30, 9,170,138,244,112, 62,191, 31,191,122, 76,
+239, 79,219, 38,192, 72, 25, 49, 60, 44,252,131,148, 36,244, 75,188, 81,126,207,176,162,164,166,166, 30, 91,191,126, 61,181,122,
+245,234,246,106,181,250,127, 0,138,134, 40,235,213,170, 85,235,227, 29, 59,118,216,197,198,198,242,110,220,184,161,184,124,249,
+ 50, 1,112,162,130,136,203,236,174,159, 76,226, 52,174, 81,109,106, 72, 84,124, 95, 0,103,139, 44, 14,232,221,196,255,230,206,
+ 21, 11,229,250,155, 71,144,151, 24,139,121, 55,227,114, 0,152,125,188,245,122, 61,178,179,179,161,207, 75, 55, 52,117, 85,100,
+ 47, 30,228,164, 73,206, 84,115,121,140,210,224,107,149,162,185,156,254,154, 35,145, 72, 44, 58,150, 91, 86,124,185, 23,192,222,
+ 65,131, 6,237,121,116,251, 84, 83, 87, 87,215, 83,190,190,190, 20, 0,148,209,195,176, 44,150, 2,152,209,170, 85, 43, 42, 48,
+ 48,240,238,134, 13, 27,206,151,103, 86, 42, 19,209,170, 8,115, 53, 25,134,161,203, 56,190, 84,101, 53,139, 70,180, 42, 50, 90,
+239, 50,162, 85,154,105, 41,106, 18,139, 26,161,127, 66,175,195,242,204,148, 37,229, 51,181,147,227,243,249, 8, 13, 13, 69,245,
+234,213,161,211,233, 32,151,203, 33,151,203, 33,147,201,144,155,155, 11, 30,143, 7, 11,247,153, 17,137, 68, 49, 79,159, 62,245,
+118,116,116,132,209,104, 44,102,182, 94,188,120, 1,169, 84, 26,111,105, 68,203,213,213,245, 92, 65,175,195, 98,184,184,184, 88,
+191,141,227, 90, 52,146, 53,112,224, 64,182,138,144,165,220,104, 86, 25, 81,173,212, 18,145, 40,109,145,255, 83,145,159,195,173,
+119,193,223, 40,229,111,109, 41,243,210, 87,172, 88,113,185, 72,251,174,212, 42,238,130, 41,197, 67,177, 30, 46,220,138, 34, 89,
+ 78,118,182,151,127,250,126,177,213,161, 96, 32, 62, 54, 18, 87,143,110,202, 54, 24,117,157,192,144,196,219, 23,143, 30, 1, 5,
+ 37, 94, 31,185,106,222, 35, 2,141, 27,251,121,226,247, 39,122,164,198,189, 0, 33,204, 46,164,236, 85, 86,249,236,212,234,223,
+208,201,206,225,242,174, 77,139,173,127, 11,165, 16, 23, 27,137, 11,135, 54,229, 24,244,202,206,136, 60, 26, 92, 89,217,177,128,
+ 45, 71, 42,218, 58,160, 67,227,193,158,181,220,193, 16, 61, 24, 62, 65,255,217, 14,220,231, 33,202,223,175,139,178, 15, 49,121,
+204,103,241,119,204,107, 64,151,151,151,247, 59,128, 32, 20, 79,175,208,160, 78,157, 58,131,183,110,221,234, 24, 23, 23, 39, 10,
+ 9, 9, 81,109,223,190, 61,133, 97,152,223, 0,152, 83,149,250, 69, 72, 84,252, 79, 40,158, 47,167,193,151,159, 12,187, 61,108,
+204,167,162,200,139,123, 97, 27, 25,134, 89, 55, 19,140,207, 51,181, 67, 11,162,107,165,226,224,224, 64,210,210,210,162,179,178,
+178,188,165, 82, 41,210,211,211,145,145,145,129,236,236,108,104,114, 50, 12,246,198, 44, 5,101,200, 0,143,199, 67, 74,172, 30,
+ 70,163, 49,201,220,104, 22, 0,219,165, 75,151,142, 99, 24,198,148, 17,177, 88,239,194, 34,235,153,174, 7,239, 65,131, 6,237,
+ 41,210,235, 48,187,168, 22,242,211, 59, 80, 5,233, 29, 90,156, 61,123, 54,188, 71,143, 30,113,165,153, 21,161, 80,104,113, 67,
+233,178,122, 49, 86, 70,179,172,136, 86,201,249,150,104,154,170, 47, 77,141,224, 75,206, 55,193,225,112,192, 48, 12,204,232, 84,
+241,151,154,150,162,189, 3, 43, 99,114, 74,156,155,114, 19,135, 86,178, 39,226, 91,141,104,153,206, 5,159,207,199,241,227,199,
+ 49,102,204, 24, 24,141, 70, 72, 36, 18,200,100, 50, 72,165, 82, 28, 61,122, 20,166,244, 15,150,248, 87,189, 94,255,235,138, 21,
+ 43,190,218,182,109,155,152, 16, 2,129, 64, 80,104,180, 22, 47, 94,172,210,233,116,191,154,101,180, 76, 25,223, 25,242, 84, 42,
+ 53,148,219,235,176,180,109,202,104,175,101,179,116,233,210, 81, 12,195,244, 67,137, 20, 14, 37,214, 43,150,250,129, 77,239,192,
+ 98,198,243,228,254, 63,184,120, 38,131, 69, 21,137,100, 21, 26, 46,186, 60,243,226,104,107,115,249,199,239, 23, 91,237,187, 79,
+ 33,242,245,107, 92,249,223,198,124,147,245,234,208, 3, 68, 31, 73, 70,228,145, 54,120,125,164,187,217,111, 79, 20,213,216,205,
+201, 6, 25, 10, 6, 57,105, 49, 0, 65,200,219, 48, 89,142,182,142,151,127,222,180,216,250,240, 3, 26,145,145,145,184,112,104,
+ 99,182,193,160,238, 84, 21,147, 53,156,207,239, 87,167,174,123,196,252,113,253, 6, 7,214,118,129,125, 76, 56, 78,140, 30,140,
+111, 14,124, 4,185, 35, 7,205,123,202, 49,118,185,203, 96,215, 0,225, 75,215, 54,232,103,129,116, 81,147,213,216,203,203,107,
+240,157, 59,119, 28,234,215,175, 47,122,246,236,153,122,251,246,237, 41, 42,149,234, 60,128, 80, 11, 52,139,154,172,198,115,199,
+143,190,253,221,143,123, 68, 52, 95,128, 85,191,158,192,180,107,113,198, 83,209, 57,131, 80,188, 90,177, 84, 52, 26,205,197, 77,
+155, 54,105,104,154, 70, 70, 70, 6,210,210,210,144,146,146, 82,248,153,149,149, 5, 14,135,131, 75,151, 46,105,115,114,114,238,
+152, 91,192, 91,183,110,121,197,199,199,251, 38, 38, 38, 54, 45,152,158, 33,191,119,161,172,200,188,166,137,137,137,237, 1,220,
+ 55,205,143,139,139,171,113,247,238, 93,215,138,244,229,114, 57,248,124,126,177,136,150, 80, 40,132,179,179, 51, 12, 6, 3, 14,
+ 30, 60, 8, 0, 25,229,105,240,249,130, 68,154,166,192, 16, 70, 35, 18,137, 24, 87, 87,215, 82, 13,150, 37,154, 5,196,125,240,
+193, 7,234,224,224,224, 82, 35, 90,149,209, 36,132, 40,187,117,235,134,132,132, 4,136, 68,162,194, 31,107,147,161,162,105, 26,
+ 66,161, 16, 73, 73, 73,152, 48, 97, 2, 8, 33,202,191,251,201, 83,180, 77, 83,129, 25,162, 0, 80, 5, 70,232,141,118, 90,230,
+182,129, 50, 85, 13, 18, 66, 96, 50, 92, 37,150, 23,126,151, 57,217,219, 75,180,233, 26,159,149,149,245, 93,126,113,200,246, 18,
+159, 59, 44,248, 81, 40, 52, 90, 97, 97, 97,216,179,103, 15,178,178,178, 32, 16, 8,144,153,153,137,157, 59,119,226,233,211,167,
+ 16, 8, 4, 48, 29, 11,115,253, 91, 96, 96,224,119,215,175, 95,127, 58,116,232, 80, 85,104,104, 40, 84, 42, 21, 66, 67, 67,209,
+189,123,119,245,205,155, 55, 35, 84, 42,213, 82,152, 83,117,104,202,248, 94, 48,188,142, 70,163, 65, 72, 72, 72,169, 83, 89,219,
+148, 36, 34, 34,194,211,104, 52,122, 19, 66,218, 18, 66,172, 80,144,194,161,224,255,162,211, 7, 5,203,172, 8, 33,109,141, 70,
+ 99,157,136,136, 8, 79,214, 78,176,188,167, 92, 45, 98,182, 72, 17,147,117,181,252,136, 22, 67,111,250,105,227, 18,171, 95,239,
+209,136,141,142, 64,208,233,173,217, 70, 70,223,201,194,225,112,186,160, 72,174, 13,145, 88, 90,143,161,242,187, 51,231,164,197,
+ 2,132, 83, 25,163, 85, 76, 19, 12,189,105,231,198,197,214,251,131, 40, 36,196,190,194,205, 99, 91,178, 13, 6, 77,103,188, 62,
+ 18, 82, 25,205,225,124,254, 2, 30,135,154,223,173,117, 35,126,155, 70,117, 33, 77,137, 66, 82, 92, 2, 14,134,165,102, 68,100,
+106, 62,189, 73,233, 16,253, 74,243, 83,207,113,118,118,182, 46, 60,244,158,104,111,119,231, 68,206,239, 20, 79,161, 35, 58,178,
+ 34,241,102,225,176, 20,197,203,249, 38, 46,114,185,124,104, 80, 80,144,149, 72, 36, 18, 7, 5, 5, 49,219,183,111, 79, 87,169,
+ 84,167, 1,220, 54,107,223,223,196,189, 89,221, 90, 87,191,221,242,163, 40, 79,161,132, 66,171,131,208,217,213,248,219,237,199,
+ 3, 80,118, 2,204, 98,154, 66,161,112,255,254,253,251,123,182,107,215,206,179, 94,189,122,116, 70, 70, 6,242,242,242, 10, 27,
+ 87, 59, 58, 58, 34, 44, 44,140,137,140,140, 76, 16, 10,133, 7,204, 45,103,171, 86,173, 34,105,154,126, 86, 80,141,246, 12, 37,
+122, 23, 22, 89,213, 59, 49, 49,177,153,171,171,235, 85, 0,146, 34,189, 14,139,106,154,210, 59,124, 5,128,166, 40,234,126,104,
+104,104, 94,143, 30, 61, 32, 22,139,161, 80, 40,224,225,225, 1,131,193,128,211,167, 79, 35, 56, 56, 88,193, 48,204,213, 82,204,
+107,177,114,170,213, 42, 15, 0,180, 74,169,108, 56,106,212,168,246, 51,103,206, 44,214, 37,221,201,201, 9,118,118,118, 22,105,
+ 2, 64, 70, 70,134,223,217,179,103, 63, 15, 13, 13,253,162,103,207,158,214, 95,125,245,149,208,203,203, 11, 70,163,145,174,172,
+102,102,102,166,117, 72, 72,200,154, 54,109,218, 76,238,209,163, 7,247,219,111,191,133,181,181, 53,140, 70, 35,196, 98, 49,114,
+114,114,176,116,233, 82,220,184,113,195, 64, 8,217,146,157,157, 61,203,194,107, 9, 85,189, 55,203,138, 0,149,149,146,161,140,
+245,255,242,114,150,104,211,133,130, 20, 14,115,202,200, 96, 15,115,175,121,147,209,226,112, 56,136,138,138,194,246,237,219,223,
+200,163,101, 74,255, 80,134,118,105,251, 78,174, 92,185, 98,164, 40,170,101, 80, 80,208,156,145, 35, 71,126,170, 80, 40,220,165,
+ 82,105,130, 94,175,223,173, 82,169,150, 35,191, 61, 42,223,146,103,136, 66,161,136, 46,173,215, 97,201,117, 0,155,114, 53, 75,
+164,119, 40,150,194,161,196, 54,197, 82, 63,148,146,222,225, 47, 63,239,172,230, 63, 82,243,125, 55, 91,101, 39, 44,125,131,198,
+227,121, 60,149,190,254,245, 8,170, 42, 38,235,205,104,137, 90, 25,177,112,127, 76, 35,173, 70, 13, 69,118,242,115, 68, 29, 76,
+169,210,110, 21,148,243, 90, 4,133,168,200, 87,184,119,114, 75,126, 57, 95, 31,169,116, 57, 41, 96,222, 15,103,142,240, 41,107,
+ 59, 60,252,124, 12, 18,178, 20, 56,243, 58,243, 16, 81,106, 62,251, 21,200,196, 13,128, 54,104,174,239,252, 58,105,107,219,254,
+214,131, 29,170,241,176,238,203,221, 16,205,181,231, 55,239,220,206,146, 49, 16,147, 68, 34,209,245,239,191,255,190, 75,219,182,
+109,133,131, 6, 13, 42,173,129,188,165,196,221,127,241,234,135, 83,219,214,126,105, 95,191, 5, 54, 47,152,109,220,127,251,113,
+201, 94,136,229,226,235,235,107,188,117,235,214,204, 9, 19, 38,172,235,210,165,139, 91,223,190,125, 5, 30, 30, 30, 16, 10,133,
+120,245,234, 21,174, 95,191,174,125,253,250,117,130, 82,169,156,217,160, 65, 3, 75,114,156,101, 46, 92,184,240,187,130,239,160,
+ 10,170, 11,155,162,160,119,161,105,165,130,164,165, 77, 1, 72, 22, 47, 94, 60, 18, 0,202,232,246,189, 16,192, 54, 0, 92, 66,
+ 72,210,222,189,123, 91, 30, 59,118,172,229,140, 25, 51,248, 61,123,246,196,157, 59,119,112,225,194, 5,157, 78,167,187, 93, 96,
+ 92,205, 29, 42,135, 1, 16, 98, 48, 24, 30,175, 90,181,170, 37,135,195, 89,104, 90,240,244,233, 83,236,218,181,171, 50,154, 6,
+ 0,107,146,147,147,127,216,187,119,239,194,139, 23, 47,126, 50,106,212, 40, 43,189, 94,143,176,176, 48,252,252,243,207,149,210,
+204,206,206,254,220,193,193, 97,254,233,211,167,119,159, 63,127,254,195, 17, 35, 70,208,211,166, 77,195,166, 77,155,240,191,255,
+253,143, 49, 26,141,199,120, 60,222,168,180,180, 52,197,187,120,234, 20, 84,195, 37, 88, 56,214, 97,133,186, 85,169, 26, 52,147,
+196,170, 10,152,246,163, 67,135, 14,133, 81, 70, 83, 20,174,232, 58, 20, 69, 89, 92,117, 8,192,134, 16,194, 0,216,130,252,241,
+ 69,139,102,133,231,224,207,204,241,230, 42,250, 39,106,108,158, 66,131,176,242, 7,149,182, 1, 8,252, 43, 80,203, 90,184,112,
+225,250, 69,139, 22,173, 47,153,194,161,232, 74, 37, 83, 63, 44, 89,178, 4,108,122, 7,150,127, 43,165, 27,173,144, 29,122,125,
+205, 1, 95,125,255,237,236, 69, 6,189, 54,155, 64, 55, 16,175,142,134, 86,245,203, 8, 67,230, 94,218,183,120, 19, 8, 50,137,
+209, 48,167,202,165,255,139,202, 73, 89,219, 33,119,233, 36,252,239, 73, 2, 73, 82,232, 63,250, 85,167, 43, 22, 13,202,111,147,
+197, 12,185,172,206, 60,104,235,198,251,237,243, 78,246,212,169,140,145, 22,127, 79, 74, 74,202,241,245,235,215,211,107,215,174,
+109,175, 84, 42, 75, 54,144,175, 44,179,251, 76,157,203,105, 94,199,115,234,189,151,209,253, 96, 70,117, 97, 73, 90,181,106,149,
+ 24, 30, 30, 62,236,252,249,243, 67,175, 93,187,214, 69,161, 80,120, 82, 20, 5,137, 68, 18,173,209,104, 46, 10,133,194,253, 22,
+154, 44, 0,192,162, 69,139,200,146, 37, 75,168,240,240,112,194,225,112,254, 0, 16,201,225,112,162,138, 54,130, 47, 58,223,180,
+205,226,197,139,205,249, 65,188,150,151,151, 23,188,116,233,210,118, 75,151, 46,109, 88, 16, 21,186,134, 63,219,124, 89,138, 30,
+192, 53, 62, 95,144, 64, 81,148, 59, 95, 32, 84,220,186,117,235, 98, 21, 53,149, 58,157,110, 78,108,108,236,186,117,235,214, 45,
+151, 74,165,205,158, 62,125,250, 71, 85, 52, 11, 76,212, 0, 59, 59, 59,183, 61,123,246, 28,222,185,115,103, 11, 46,151,123,135,
+162,168, 65,217,217,217,239,116, 80,233,130, 1,162,151, 88, 48,214,161, 89,186,111, 59, 73,233, 95, 97,220,140, 70, 99,222,252,
+249,243, 83, 74, 26,175,146,209, 43,211,255, 5,169, 92,204, 57,166,150,244,162,172,192,184, 80,121, 0,144, 63,118, 97,254,176,
+ 58,230, 14, 42, 13, 64, 85,209,125, 78,211,244, 49, 0,207,105,154,126, 89,178,163, 75,209,101, 75,150, 44,169,232, 62,103, 97,
+121,175, 49,227,201,182,152, 6, 22, 87,182, 37,237,223, 24,174,124, 59,229, 28,198,231, 47,161,129, 47, 1, 80, 4, 88,247,171,
+ 78,247,117,121, 27,186,180,194,114, 66, 97, 70,193,193,252, 54,233, 38,150, 85, 98,223,171,193,140,241, 7, 45,212,244, 65,249,
+ 3,202,190,161, 57,112,224, 64, 78, 25, 63,230,197, 6,149, 46,139, 35, 71, 10,179,248,151, 85,206,162,215,155,252,238,221,187,
+110,129,129,129,137, 40,222,232,191,180,249,196,194,125,231, 0, 48,190,229,227,249, 94,104,214,170, 85, 75,240,234,213, 43,237,
+ 63,235,222,100, 53,255,145,154, 54,126,213, 65, 97, 28,138,230, 14, 42, 55,162, 85,196,160, 17,242, 51,178,194, 98,203, 40,167,
+233, 62,183,137,136,136,240,172, 93,187,118, 52,128,172, 18,229, 40,109, 25, 97,207,209,127, 94,179, 52,198,163,248, 80,116,239,
+ 21,165,245, 14,199, 95,112, 34, 88, 77, 86,147,213,100, 53, 89, 77, 86,147,213,100, 53, 43,107,180,222, 91, 8, 33,160,193,194,
+194,194,194,194,194,194,194,242,151, 64,149,227, 74, 45, 9, 9, 86,198,217, 94,100, 53, 89, 77, 86,147,213,100, 53, 89, 77, 86,
+243, 63,167, 89,145,118,209,237,223,215,170,195,241, 0,118,176, 85,135,172, 38,171,201,106,178,154,172, 38,171,201,106,254, 83,
+ 52,203, 50, 44,239, 45,132, 16, 51,199, 58,100, 97, 97, 97, 97, 97, 97,249, 71,208,165, 46, 92,185, 70,208,103, 95,153,213,137,
+170, 66,122,212, 66, 53, 0,120, 91,122,255, 81, 92, 1,244, 42,242,255, 41, 20,244,140,103,141,214,251, 75, 29, 0, 95, 1,176,
+ 46, 50,239, 30,128, 21, 37,214,219, 7,160,232,128,132, 10,228,143, 19,248,210,146, 47,163,105,122, 69,187,118,237, 62,187,113,
+227,198, 90,131,193,176,180, 18,229,245,116,117,117,253,142,162,168, 38, 0,120, 20, 69,189, 74, 78, 78, 94, 97, 48, 24,170,210,
+107,165,166,139,139,203, 74, 0,141,104,154,230, 81, 20, 21,145,156,156,188,204, 96, 48, 92,169,130,166,220,217,217,185, 53, 33,
+196, 5, 0,135,199,227,165,199,199,199,223, 69, 37,115, 43, 13, 92, 28,198,207, 81, 24,120, 0, 96, 37,229,234,143, 44,246,211,
+153, 59,143,189,196, 89, 88,254,219,144,252,158,201,197,232, 94, 11,203,137, 1,179,140, 0,213,205, 11, 27,207, 69, 98, 86, 89,
+219, 83,165,244,106, 46,169,217,189, 22,150, 27, 73,190, 70,183, 90, 88,115,238, 21,202,237,105,111,142,166,137, 29, 0, 61,222,
+140, 81, 10, 40,243,122, 95,255,211,233,133,226, 85,156,133, 85,158,229, 26,173, 33,117,225,106,228,130,123, 36, 12,166,110,188,
+114, 0, 13, 11,126,228, 95, 34, 63, 87, 81,110, 21, 11,247,190,104,254,211, 88, 72, 8, 25, 86,236, 98, 45, 37, 15, 81,167, 78,
+157,250,158, 63,127, 94, 98, 26,239,142, 97, 24,136,197, 98, 3,128,209, 22,124,151,211,144, 33, 67,230,254,244,211, 79, 24, 60,
+120,240,252,147, 39, 79,174, 7,144,103,238,198,182,182,182, 3,109,108,108, 54,253,248,227,143,142, 45, 90,180,164, 4, 2, 1,
+ 94,189,138,112,159, 48, 97, 66,189,240,240,240, 99, 41, 41, 41,159, 90,186,243,118,118,118,195,109,108,108,214,109,223,190,221,
+161, 77,155, 54,160, 40, 10,193,193,193,238,159,127,254,121,195,152,152,152, 3,201,201,201,147, 45,213,180,183,183,175,107,109,
+109,221,113,243,230,205,226,214,173, 91, 67, 36, 18, 33, 52, 52, 84, 54,113,226, 68,151,248,248,248,176,228,228,228,171,150,154,
+172, 71,193, 39, 62, 52,232, 52,171, 0,128,203, 23,206,110,177,238,246,137, 71,151, 79,244,169,104,222,192,197, 97,191,179,102,
+139,133,133,165, 40,195,221,224, 66, 8,190, 60,255,243, 2, 26, 0,186,125,242,205,180,225,110, 88,251,107, 66,217, 99,216, 90,
+168, 55,107, 84, 53,108,218, 19,143,228,170,148,115, 7, 64,127,206,229, 78,107, 30, 24,232, 48,229,230,205, 8, 29,176,251, 63,
+114,138, 74,173,230, 44,211,104, 13,240,195, 82, 67,126,196,132,234, 81, 27, 7, 46, 68,114,174,119,234,212,169,246,216,177, 99,
+169,198,141, 27, 35, 56, 56,184,238,129, 3, 7,122,157, 58,117, 42,194,104, 52, 6, 3,120, 2,243,179, 90,243, 0, 4,112, 56,
+156, 38,255,112,205,127, 50,210, 2,115,149,140, 63, 19,157,190,145,240,244,210,165, 75,199,185, 92,174, 41,162,213, 92,161, 80,
+ 56,151,136,130,153, 67, 13,189, 94,143,103,207,158,129,166,105, 30, 0, 47,188, 57,164, 70, 89,184, 75, 36,146,173,183,239, 5,
+219, 83, 92, 49, 50,213, 0,212, 58, 8,100,206,248,105,215, 94,187,153,211, 39, 15,184,114,229,202,245,220,220,220, 95, 44, 40,
+143,151, 84, 42, 93,255,240,225, 67,123,137, 68, 2,134, 97,144,155,155, 11, 23, 23, 23,252,248,227,143, 54, 51,103,206, 28,150,
+147,147,115, 69,173, 86,255,207, 18,115,110,109,109,221,241,241,227,199, 98,211,128,210, 90,173, 22,238,238,238,216,183,111,159,
+112,218,180,105,126, 89, 89, 89,113, 90,173,246,181,185,130, 57, 10, 3,207,160,211,172,218,179,101,113,117, 0, 24, 53,121,241,
+ 42, 65,174,213,105,115,230,229, 40, 12,167, 0,176, 70,139,229,239,166,137,131,131,195,145,180,180,180,171, 0, 62,197,219,137,
+ 52,212, 21,137, 68, 13, 24,134,113,161,105, 26, 28, 14, 39, 73,161, 80, 60, 4,240,162,178,130,246,181, 58,244,129, 80, 50, 6,
+132,105, 72, 3,160,104, 58,212,168, 83,238, 74,127,113,229, 68,149, 52, 5,226, 79, 0,210,144, 6, 24,138,166, 31, 50, 6,229,
+143,105,207,174,156,249,167,156,156, 59,217,240,174,229, 98,254,192,152,111, 67,239,227,154,112,165, 25,208,251,162,204,175, 86,
+156, 10,244,156, 62,125,186,203,228,207, 62,163,198,140, 30, 93,231,234,141, 27, 84,123, 75, 70, 43,120, 63, 41,179,193,126,169,
+ 70,107,160, 31,108, 9, 48,231,192,166,175,104, 46,135, 67, 13,157,190, 98,216,206, 45,107,232,174,125, 6, 21, 86,159,180,109,
+219, 22,109,219,182,165, 86,173, 90, 85,231,143, 63,254,168,179,111,223, 62,195,237,219,183, 31, 2, 56, 88,214,151,117,175, 5,
+ 21, 3,136,248, 60,174, 98,232,130, 95,182, 7, 6, 6, 66, 40, 20,162, 42,154, 0,208,181, 54,253,154,103, 87,243,225,208,169,
+ 11,163, 91,180,104, 69,222,134,230,123,196, 61,160,112, 80,107,219,234,213,171,183, 54, 24, 12, 34, 0,224,114,185,234,216,216,
+216,169,200, 31, 27, 16, 0,142, 49, 12,211,215, 2,109, 26,192,162,190,125,251,206,159, 50,101, 10, 60, 60, 60, 48,109,218, 52,
+232,245,250,224, 51,103,206, 44, 4,176, 18, 21,220, 60, 78, 78, 78, 11,183,110,221,106,199, 21, 72,209,120, 78, 36, 18,179, 12,
+ 0, 0,153, 16, 56, 62,137, 96,218,180,105, 86, 65, 65, 65,203, 44, 49, 90, 78, 78, 78, 75,127,252,241, 71, 59,137, 68, 2, 66,
+ 72,225, 88,140,121,121,121,200,203,203,195,228,201,147,173,194,194,194,190,179,196,104, 57, 59, 59,183,222,188,121,179, 88, 36,
+ 18, 33, 47, 47,143,175,211,233,168,220,220, 92, 40,149, 74,162,213,106,117, 83,167, 78, 21, 62,121,242,164, 67, 98, 98,226,107,
+176,252, 83,224, 0,248,136,199,227,245,175, 93,187,118,211,151, 47, 95, 62, 48, 24, 12, 71, 1, 28,125, 11, 47, 83,157,221,220,
+220,150, 39, 36, 36,108, 6,176,247,191,114, 64,157,157,157,143,222,186,117,171,250,214,173, 91, 71,175, 93,187,246, 52,128,255,
+ 85, 65,142,207,231,243, 7,180,111,223,190,250,168, 81,163, 4,206,206,206,208,104, 52,136,140,140,180, 58,116,232,144,103,104,
+104,104, 92,193,136, 24,102,191, 80,216,215,109, 37, 3,215,234, 64,203, 86,173,219, 12, 30,240,145,220,217,222, 26, 42,173, 17,
+ 47,163, 19, 61,206,158, 62,222, 62,156, 47,190,165,211,101,127,156,254,226, 86,158,165,154, 29, 59,118,110,211,165,115,103,185,
+181,141, 53,178, 21, 58,188,138,138,247,188,124,225, 68, 91, 46, 87,124,141,161,244, 35, 82, 30, 95, 80,190,203,115, 51, 13,224,
+ 42, 68,246, 13, 26,182,106, 28,212,109,236,178,166,132, 16,208, 4, 27, 75, 70,179,166, 1,220,141,249,195,126, 89,164, 7, 66,
+ 8, 69, 97, 77,209,104, 86,247, 90, 88, 78, 8,102,129, 6,213,189,130,106, 74, 19,221, 0,161,141,157, 93,224,196,241,227,169,
+220,156, 28,132,134,134, 42, 75,154,172,245,213,192,191, 70,163,198,177,216,202,155,237,127,104, 52,171,212,170, 67,179,243,104,
+ 73, 36,146, 82,231, 91, 91, 91,163, 99,199,142, 88,177, 98, 5, 23, 64,147, 18,139,139, 15,178, 10, 8, 79,110,155, 7,107,169,
+144,246,240,240,144, 91, 89, 89, 85, 89, 19, 0, 64, 24,175, 86, 30,228,131,251,191,124, 53,250,226,190,117, 1,138,220, 44, 94,
+201, 85,100, 50, 25,188,189,189, 49,127,254,124,243, 52,171,206,223,170,233,226,226,226,211,182,109,219, 38,151,174, 94,181, 73,
+ 72, 72, 16, 38, 36, 36, 8,207, 95,186,100,211,178,101,203, 38, 46, 46, 46, 62,133,135,234,205,174,166,229,149,243,155, 45, 91,
+182, 44, 60,118,236, 24,221,182,109, 91,216,218,218,162, 99,199,142, 56,125,250, 52,119,237,218,181,223, 2,152, 95, 81, 57,105,
+154,110,211,182,109, 91, 10,132, 32, 41,219,128,187, 43,124, 16,186,198, 23,185,106,130,140,236, 28,168, 84,106, 72, 36, 18, 17,
+242,171,123,205,221,247, 86, 45, 91,182,164, 0, 20,154,171,220,220,252, 41, 47, 79, 1,173, 86, 7,161, 80, 40, 7, 32, 50, 87,
+147, 16,226,210,186,117,107, 0,128, 78,167, 43,124,195,203,202,202,162,178,179,179,161,213,106,193,227,241,248,168,184, 93, 99,
+161,166,149,148,171,231,242,133,179, 71, 77, 94, 28, 59,106,242,226, 88, 46, 95, 56, 91, 43,207, 49,154, 51,207, 74,202,213,191,
+227,235,211,145,166,233,159,107,213,170, 21, 70,211,244, 30, 0, 46, 85,212,108, 6,224, 91,177, 88,124,209,215,215, 55, 86, 34,
+145, 92, 42, 48,234, 45, 43,169, 41,144, 72, 36,151,190,253,246,219,195, 15, 30, 60, 24,252,199, 31,127,120, 61,122,244,104,192,
+170, 85,171, 14,200,100,178,235, 40,222, 46,209,226,123,211,203,203,107,231,221,187,119,155,181,106,213,234, 39, 0,194,183,116,
+191,115, 0, 52,130, 89, 35,114,188,147,243,238,214,184,113,227,234, 34,145, 8, 93,186,116, 1,128, 14, 85,209,228,243,249, 3,
+230,207,159, 95,107,193,130, 5,130,196,196, 68, 92,186,116, 9,247,238,221,131,193, 96,192,164, 73,147,132,163, 70,141,170, 41,
+151,203, 7, 88, 84, 78,174,213,129,233,159,207,232,241,229,180,113,242,135, 49, 58,236,186, 24,131,223,111, 39, 34, 69, 41, 64,
+159, 1,163,172,187,247, 27,210, 93, 32,180, 62, 96,169,230,220, 57,115,122,140,255,100,152,252,105, 34,131,227,119,146,112,231,
+ 89, 54, 12, 60, 27,244, 28,240,169,109,195,214, 61,122,113,193,219,253,174,207,209,143, 64,139,233,211,167, 59,206, 94,243,235,
+ 77,183,102, 31,109, 76,205, 68,219,162,198,167, 46, 96, 99, 39,149,126,244,172,125,251,113,226,252,241, 98,203,213, 44,166,215,
+164,223,166,148, 76,180, 43,218, 62,171,157, 29,234, 20, 84, 43,114,206,255,188,128, 38, 20,166, 13,119, 43,246, 28, 40,181,156,
+ 87,128,193,211,103,204,224, 89,219,218, 98,203,150, 45,208, 40, 20,197,218,204,118,174,142, 30, 23, 37,220,184,154,190,238, 97,
+ 29, 61,169,235,255,194,247,149,241,101, 70,180, 78,158, 60, 73,122,247,238, 77, 1,192,145, 48,100, 14,240,195,119, 67,166,124,
+ 59,159,162, 41, 82, 35,160,213,211,106,181,252, 21,246,246,246, 80, 42,149,208,104, 52,224,243,249, 80,171,213,136,137,137,193,
+157, 59,119, 96,107,107,107, 81, 73,114,114,114, 32,147,201, 32,147,201,222,138,230,188,209, 93,132,175, 98, 83,133,231,238, 92,
+105,255,253,103,255,107, 81,171, 81,135, 71,157,135, 76,123,108,229,232,166,126,244,232, 17,110,221,186,133,204,204, 76, 4, 6,
+ 6,254, 91, 78,230,189,130, 54, 89,247, 0,216,214,174, 93,219,253,220,197,107,182,121,106,198, 42, 42, 89,207, 99, 24, 6, 18,
+137,171,225,224,145,227,217,131, 7,244,161,146,146,146, 82, 0,220, 43, 48,183, 21,141,169, 40, 2,224, 51,112,224,192,185,159,
+125,246, 25, 34, 34, 34, 48,110,220, 56,213,189,123,247,210, 91,181,106,101,255,227,143, 63,138,103,206,156,137,171, 87,175, 46,
+ 58,121,242,228,111, 0, 34, 1,148, 58, 86, 27, 33,132,207,231,243, 97, 40,176, 13, 58, 35, 83,232,239,115,114,114, 64, 84,153,
+224,243,249, 28, 0,142, 48,179, 29, 29,195, 48,124, 30,143, 87,104,178, 98,146,115, 16,147,162, 68, 78,158, 22, 42,149, 1, 90,
+ 21, 1, 71, 98,207, 5,162,156, 1, 68,153, 27, 29, 17,137, 68, 48, 24, 12,200,205,205, 47,134, 41, 82,166,213,106,145,157,157,
+ 13, 14,135, 35, 3, 96, 5, 32,195, 28,193,130, 70,238,191, 23, 84, 3,226,254,175,125, 29, 94,158,154, 87,108,158,149,148,171,
+ 63, 50,211,143, 99,239,222,240, 70,163,193,187,125, 11,231,189,219,246, 89, 66, 71, 71,199,203,135, 15, 31,246,171, 83,167, 14,
+ 34, 35, 35,125, 7, 13, 26, 20,152,152,152,216, 8,150,143,201, 40,161,105,250,187, 81,163, 70,125, 54,116,232, 80,170,110,221,
+186,224,114,185, 48, 24, 12,238, 17, 17, 17, 29, 15, 29, 58, 52,103,231,206,157, 63, 26,141,198, 47, 96,126,187, 63, 90, 32, 16,
+ 28,220,190,125,123,187,192,192, 64,236,217,179, 7,247,238,221, 99,154, 53,107, 70,143, 28, 57, 18,158,158,158,129, 35, 71,142,
+252, 93,163,209,244,172,100,100,203,179,101,203,150,213, 57, 28, 14, 90,181,106,197,191,117,235, 86, 99, 0,183,170,120, 76,101,
+238,238,238, 87, 59,116,232,208,232,226,197,139, 33, 73, 73, 73, 29, 44,216, 95, 0,232,231,230,230,182,202,218,218,218,214,130,
+103,172, 50, 62, 62,126, 22,128, 35,102,110,210,162, 73,147, 38,136,142,142,134,143,143, 15,248,124,126, 75,157, 78, 55, 1, 64,
+ 15, 0, 95, 3, 8,179,160,188,117, 59,119,238, 92,189, 67,135, 14,212,145, 35, 71, 10,219,135,210, 52, 13,131,193, 0, 62,159,
+143, 22, 45, 90,208,193,193,193,213,238,223,191, 95, 23,102, 84, 35,218,215,234,208,167, 85,155,246,109,218, 5, 54,160,215, 30,
+121, 9, 35, 99, 4,135, 50,128, 75, 49, 96,244, 66, 8,249, 28,212, 13,104,202,121,246,228, 97,160, 86,163,235,147,254,226,226,
+ 9,115, 52,123,116,235,218,214,207,167, 46,253,253,239,175,144, 21, 31,102,140, 15,191,150, 70,115,104,248, 53,233,228, 80,215,
+191, 17,167, 81, 96, 7, 94, 66,228,147,142,106,117,187, 46,153, 17,215, 46,190,139, 27,114, 9,192,113,175,230,240, 81,239,174,
+ 29,248,137, 9, 9,138, 67, 71, 78, 60, 86,234,113, 7, 0,174, 2, 84, 79,160, 65,253,230,205,219,255,184,114,165,189,171,171,
+ 43,111,196,208,161,134, 29, 33, 33, 33, 40,163,234,119, 9,192,113,112,113,233, 50,113,226, 68, 78, 98, 66, 2, 57,116,244,212,
+ 35,147, 30,242,223, 82,234, 55,112,247,237, 13,197, 51,139,170, 41,251, 0, 2,103, 23, 23,191, 9, 19, 38, 32, 41, 33, 1,123,
+246,238,205, 83, 3,183, 77, 81,172,227, 28,108,246,175,229, 50,102,246,167,125,169,234,174, 14,152,184,104, 71,203,142,186,148,
+ 90, 72,252,243,252, 23,245, 34,239,177,201, 26, 95,170,209, 42,201,255,194,176, 80,206,135,215,161, 67,251,233,212, 92,157, 34,
+ 34, 34, 2, 14, 14, 14,112,117,117,133,181,181, 53,158, 62,125,138, 75,151, 46,225,249,243,231, 96, 24, 6, 13, 27, 54,180,168,
+ 52,105,105,105,120,248,240, 33,108,109,109,223,154,102,173,234,142,152, 82,221,145,159,156,158,195,191,120,239,121,224,142,121,
+ 3,252,105,223, 1, 59,139, 14, 18,171,213,106,241, 47,161,176,119, 97,245,234,213, 91,239,218,181,139,175, 49, 64, 94,119,194,
+237,213, 10,181, 81, 10, 0, 82, 17, 71, 17,188,202,251,139,111,190,249, 70,241,201, 39,159,248,198,198,198,174, 48, 35,214,191,
+188,115,231,206, 95, 18, 66,120,211,167, 79, 7, 0,140, 26, 53, 42,231,206,157, 59,117, 1,164, 92,186,116,201,109,236,216,177,
+ 47, 46, 95,190, 44,153, 49, 99, 6,199, 96, 48, 60,229,114,185,228,228,201,147, 75, 1, 44,126,227, 23,145,166,131, 66, 66, 66,
+106,184,121,122,195,211,158, 70,219,249,207,243, 31,112, 18, 6,113, 81,175, 16,254,232, 30, 92, 92, 92,172, 93, 93, 93,195,226,
+226,226,116,241,241,241,115, 20, 10,197,214, 10,202, 24, 26, 28, 28,236,234,233,233,137,188,188, 60,196,165, 42, 49,237,168, 4,
+ 57,170,252, 32, 6, 15, 42, 52,170,238, 45, 23,211,218,123, 41, 41, 41, 58,173, 86,187, 32, 59, 59,123, 87,121,154, 60, 30, 47,
+253,209,163, 71, 50, 15, 15, 15,168,213,106,146,145,145, 65, 41, 20, 10,228,230,230, 82,167, 78,157,250, 48, 49, 49,177,153,151,
+151, 23,229,238,238,190, 52, 49, 49, 81, 21, 31, 31, 63,206,156,170,201, 2,195,100,228,114,185,107,199,143, 31, 63,248,183,223,
+126, 11, 58,178,216,175, 95,145,234, 18,235,128,128,128,115, 13, 26,248,187,237, 93, 83,127, 35,128,213,255,128,107,107,204, 87,
+ 95,125,229,103,103,103,135,137, 19, 39, 98,201,146, 37, 88,184,112, 97,157,137, 19, 39,142, 7,176,222, 2, 29,177,139,139,203,
+253,239,191,255,222,183,117,235,214, 56,125,250, 52,246,239,223,143,215,175, 95, 27,188,188,188,184,129,129,129, 88,180,104, 17,
+186,119,239, 62,110,234,212,169,237, 19, 18, 18, 26,155,105, 62, 62, 89,180,104, 81,191, 54,109,218, 96,244,232,209,154, 43, 87,
+174, 12, 6,112,254,194,133, 11,157,174, 94,189,122,228,215, 95,127, 21,127,251,237,183, 93,102,206,156, 57, 17,192,166, 74,236,
+255,135,237,218,229,143,161,220,166, 77, 27,172, 90,181,170,123, 21,141,150,192,222,222,254,212,158, 61,123, 26,121,123,123, 99,
+196,136, 17,141, 7, 15, 30,124, 42, 51, 51,179, 43, 0,179, 30, 72,213,170, 85,251,238,216,177, 99,181,203,170, 89, 40, 13,141,
+ 70, 99,247,209, 71, 31,173,140,138,138,178,200,104,237,219,183, 15,179,102,205, 66,195,134, 13, 27,180,104,209, 98,219,132, 9,
+ 19, 48,112,224,192,206, 79,159, 62,117, 70,126,175,229, 10, 17,137, 68, 13, 62,254,248, 99,193,221,187,119, 1, 0, 1, 1, 1,
+104,212,168, 17,162,163,163, 17, 20, 20, 4,141, 70, 3,103,103,103,244,239,223, 95, 20, 21, 21,213, 32, 45, 45,173, 66,163, 69,
+ 11, 37, 99,250,245,238, 41, 63,126, 39, 17, 70,198,128,166,181,173, 16,232,235,132,103,113, 57, 8, 14,139,131, 81,203,135,149,
+157, 61, 90,182,239,102,151, 20,255,122, 76, 58, 80,113,123, 45,161,100, 76,255,126,189,100,199,111, 39, 32, 43, 33,156,188,188,
+247,219, 37,189, 90, 49, 14, 0,130,254, 56,176,205,197, 94,220,181,110,147,166,156, 14, 93,251,218, 30,221,159, 52, 38,243,239,
+ 25,219,239, 13,174, 86,199,118, 79, 94,218,168,217,195,218, 18,158,173,251, 61,185, 94,191,217,180,172, 59,208,109,206, 87, 95,
+181,248,116,252,120, 17,195, 48,248,245,151, 95,114, 30,134,132, 60, 27, 15, 48, 19,202,208,219, 12,120, 14,238,215, 79, 40,183,
+178,194,231,211,166, 65,174,215, 95, 46, 60, 36, 64,231,207,191,252,178,245,228,201,147,197,219,150,126, 22,212,125,236,178, 38,
+ 12, 33,148,169,154,114, 95,249,161,184,102, 99,251,245,131,220,202, 10,211,167, 79, 7,165,211,157, 43, 52, 80, 92, 92,254,228,
+195,182,129,195,250,180, 1, 5, 10,251, 79,222,192,203,232,212, 71,151, 19,241,234,125,117, 85, 37, 40,179,141, 86,185, 85,135,
+185, 58, 36,119,238, 53, 32,177,110,221,186,185,117,234,212,201, 77, 79, 79,199,227,199,143,145,153,153,137, 77,155, 54, 33, 60,
+ 60, 28, 12,195, 84,218,192, 48, 12,131,183,173, 9, 0,206,246, 86, 24,209,179, 57, 87,163, 86,136, 82, 83, 83,139, 85, 31,253,
+139,140, 86, 33, 6,131, 65,228,229,229, 5, 26,160,178,149,122, 89,210,190,118, 84,210,190,118, 84,182, 82, 47,211,106,181,180,
+ 76, 38,131, 70,163, 17,153, 33,197,251,224,131, 15,190,252,237,183,223,120,203,151, 47, 71,189,122,245,160,211,233,112,231,206,
+157, 56, 0, 41, 5,235, 36, 92,187,118, 45,193,100,132, 87,172, 88,129,163, 71,143, 82, 93,186,116,153, 83,218,245,148,152,152,
+248,221,132, 9, 19, 50,148,185, 25,216, 62, 68,133, 35, 35, 82,241,115,191,215, 24,106,127, 24, 25,201, 49,216,177, 99, 7, 46,
+ 92,184, 72,157, 63,127,129,127,229,202, 21,105,175, 94,189, 54, 86,171, 86,237,100,121,133, 76, 72, 72, 88, 62,121,242,228,172,
+220,220, 92,228,230,230, 66,165, 82, 35, 67, 1, 60, 90,231,135, 71,235,252,160,102,196,216,178,121, 43,253,232,209, 35,135,215,
+175, 95,187,245,233,211,103,157,171,171,235,206,242, 52,227,227,227,239, 78,153, 50, 69,157,147,147, 3,173, 86,171, 51, 26,141,
+ 90,149, 74,165, 63,112,224,192, 12,123,123,251,150,167, 79,159,230, 93,184,112,145,123,229,202, 85,254,165, 75,151,172, 59,118,
+236,120,208,217,217,121,183, 57,145, 50, 14,135,179, 97,239,222,189, 99,182,108,217,226, 28, 24, 24,232, 95,162, 42,202,181,107,
+215,174, 53,126,249,229,151,106,171, 86,173,154,131,252, 14, 40,239, 20, 7, 7,135,169,253,250,245,195,150, 45, 91,112,226,196,
+137,153, 27, 55,110,196, 7, 31,124, 0, 55, 55,183, 41, 48,191,218, 11, 0, 86,175, 95,191,222,215,215,215, 23,163, 70,141,210,
+142, 27, 55,238,139, 93,187,118,121, 93,191,126,157,191,123,247,238, 26, 19, 39, 78,156, 62,108,216, 48,117,205,154, 53,177,105,
+211,166,218, 52, 77,111, 48,235,254,118,118,158, 49,116,232, 80,172, 89,179, 6, 87,174, 92, 25,128,252, 31, 84, 45,128, 51, 55,
+111,222,236,243,237,183,223, 98,192,128, 1,112,119,119,159, 94,153,200,147,159,159,223,130, 30, 61,122,224,250,245,235,104,220,
+184, 49, 90,182,108, 57, 19,128, 67, 37, 15, 39, 45,147,201, 14,238,218,181,171,109,141, 26, 53,176,108,217, 50,212,170, 85, 11,
+ 59,119,238,108, 43,149, 74, 15,194,204,230, 27,214,214,214, 50,137, 68,130, 57,115,230,144, 1, 3, 6,100, 84, 52,205,156, 57,
+147, 8,133, 66,216,218,218, 90,155,107,138, 69, 34, 81,171,122,245,234,225,206,157, 59,184,112,225, 2,230,207,159,143, 25, 51,
+102, 32, 53, 53, 21, 31,127,252,177, 4,192, 64, 11,246,219,201,209,209, 17, 57, 57,249,227,194,215,171, 87, 15, 15, 30, 60, 64,
+106,106, 42,220,221,221,145,148,148, 4,123,123,123,120,123,123,131, 97, 24, 39,243, 36, 73, 61, 7, 59,107,164,100,106,192,133,
+ 1, 77,234, 58,224,242,227,116,196,164,106,225,100,111,131,164,148, 84, 84,179, 23,161,122,117, 15, 16,194,212, 51,203, 1,115,
+232, 38, 66,145, 24, 25,185, 58,196,135, 93, 73,215, 25, 53, 19,178, 34,111,198,102, 69,222,140,213,105,212, 19,130,110, 92, 72,
+175,225, 44, 70,245,234,213, 65, 17,166,249,187,184, 31, 7,121,160,186, 84,204, 29,117,225,231, 5,212,201, 31,231, 81,154,244,
+152,102, 61,156,243, 35,203,142,128,215,160,143, 63,110,245,197, 23, 95,136,146,147,147,153, 97, 67,134,100, 44, 95,188,248,226,
+217, 10, 94, 12,242,128, 58, 93,187,118, 5, 13,224,236,249,243,138, 36, 32, 14, 0,156,129,234,125, 63,250,168,221, 87,115,231,
+138,211,210,211,153, 59, 17,121,199,195, 83, 72,127, 59, 35,188,204,105,159,101, 4,234,155,116,207,157, 59, 71, 84, 64, 16, 0,
+116,168,142, 41,221, 90, 7, 4,142,236,215, 14,137, 41,153,152,190,252,103,108, 59,116,245,156,181,158,116,250, 23,253, 20,143,
+175,148,209, 42,168,250,121, 99,158, 82,249,102,237, 65, 85, 13,204, 95,161, 89, 26,255, 70,163,101, 66,175,207,175, 37,209,234,
+ 25,104,245,140,233,173, 22, 42,149,202,108,137,115,231,206,237,153, 54,109, 26,214,173, 91,135, 23, 47, 94,128,207,231,163, 94,
+189,122,174, 0,100,166,103,126,147, 38, 77,156,104,154,198,179,103,207,176,118,237, 90,124,242,201, 39,228,214,173, 91, 59, 81,
+122,190,148, 7, 25, 25, 25,155, 39,140,251, 36, 43, 51, 57, 6,122, 85, 38, 82,226, 95, 65,163,200,194,178, 21,223, 65,169,231,
+ 34, 41, 91,135,164,108, 29,104,161, 29,182,253,184,139,227,231,231,215,131,195,225,244, 46,167,156,119,146,147,147,127,156, 52,
+105, 82, 86, 82, 82, 82,225,254,105,245, 4, 90,125,241,235, 85, 34,145, 96,195,134, 13,214,117,235,214,237,199,229,114, 59,150,
+163,153, 24, 27, 27, 27, 62,105,210, 36,109,114,114, 50,178,179,179,113,252,248,241, 62, 53,106,212,176, 93,185,122, 29,165,208,
+113,145,148,165, 67, 82,150, 14, 2,153, 19, 14, 30,249,141,227,237,237, 61,140,203,229,182,172,200,100,253,250,235,175, 35,135,
+ 12, 25, 34, 95,189,122,117,198,177, 99,199,182, 0, 40,122, 66,158,109,216,176,225,208,193,131, 7,115,191,252,242, 75,187, 85,
+171, 86,205,124,199,102,171,227,144, 33, 67,124, 24,134,193,225,195,135, 31, 1, 88,255,219,111,191,221,215,104, 52,248,248,227,
+143,189, 10,170,145,204,161,217,176, 97,195, 62,107,219,182, 45, 62,255,252,115,221,197,139, 23,155, 0, 88,135,252,170, 92, 2,
+ 32, 26,192,198,171, 87,175, 54,156, 58,117,170,166,121,243,230, 24, 61,122,244, 39, 0,218, 86,160,219,106,232,208,161,190, 12,
+195,224,192,129, 3, 15, 1,156, 46,177,252,210,145, 35, 71,238,104,181, 90, 12, 31, 62,188, 38, 0, 75, 30,228,124,161, 80,120,
+248,155,111,190,177,137,143,143,199,200,145, 35, 53,207,158, 61,195,226,197,139,197,214,214,214,167,139,220, 3,102, 35, 20, 10,
+119,252,240,195, 15,253,234,215,175,143, 73,147, 38,105,183,110,221, 58,237,179,207, 62,211, 54,105,210, 4, 91,182,108,233, 39,
+ 16, 8, 44, 26, 90, 36, 33, 33, 33, 43, 44, 44,204,190,162, 41, 46, 46,206,220,238,249, 18,153, 76,118, 59, 32, 32, 32,167, 94,
+189,122, 77, 13, 6, 3,158, 62,125,250,106,207,158, 61, 76,189,122,245,176,121,243,102,172, 90,181, 10,189,123,247, 6,135,195,
+ 49,219,104,113, 56, 28,232,116, 58, 72, 36, 18,112,185, 92,188,122,245,202,148, 90, 6,124, 62, 31, 0, 32,149, 74, 33, 22,139,
+ 65,211,180, 89,189,209, 40, 10, 36, 71,169, 7,143, 71,131, 75, 51, 8,143,206,134, 78,207, 64,196,231,128,199,165, 0,194,192,
+ 70,202,131, 72,192, 1, 77, 81,140,153,154,200, 86,232, 32,224,211,224,241, 5, 20,109, 48,138, 11,127, 28,185, 70,177, 88, 44,
+160, 28,172,132, 16,241,255, 65,195, 2, 83,249, 13,203,199, 0, 60,169,135,199,224, 53,107,215, 10,114,242,242, 48, 96,192,128,
+140,168,251,247,247,170,128,251,237, 43,232,164, 68,115,185,117, 59,180,111,143,224,144, 16,228,102,102,190, 4,242, 27,199, 11,
+220,220,134,108,216,176, 65,160, 82,171, 49,160,127,255,172, 23, 55,110,252, 26,155,135,147, 7,162,243,141, 88,133,231,157,207,
+119, 49,233,102,103,102,102, 2,249, 41, 36,156, 29,101, 43, 39, 15,235,142, 92,165, 26,179,191,219,203,132,132, 39, 78,185, 30,
+135, 94,191, 37, 32,251, 95,246, 51, 60,190,196, 4,192,140,132,165,166,232, 82, 69,102, 69,163,209,188,117, 3, 84, 85,205,210,
+ 76, 98, 85, 53,255,137,112,185, 92,245,243,231,207, 5, 86,246,110,140,189,156,151, 89,227,147, 27,214, 0, 96, 39,227,102,235,
+140,122, 38, 33, 33, 1, 66,161, 80,109,102,117,195,184, 29, 59,118, 44, 3,224,207,229,114, 79,238,218,181,139,218,187,119,175,
+237,208,161, 67, 35,194,194,194,226, 3, 2, 2, 60,119,237,218,101, 5, 0, 27, 55,110, 36, 7, 15, 30,236,142,252,148, 25,101,
+230,113, 73, 78, 78, 94,156,158,158,126,107,242,228,201,155, 4, 2,129,173, 84, 42,181,191,126,253, 58,165,214, 17, 52,251, 42,
+186,176, 39,162,149,152,198,181,121, 86, 24, 63,126, 60, 39, 44, 44,108, 69,124,124,252,201,114, 52,231,100,101,101, 93,127,241,
+226,197, 58,107,247, 70,142, 82,207,175,172, 3,231, 61, 3, 0,120, 58,240, 64, 23, 60, 23,179,178,178,144,154,154,138,207, 62,
+251,204, 54, 34, 34, 98, 78,124,124,252,229,114,162, 90, 87,211,210,210,226,158, 60,121,210,129,199,227, 9,164, 82,105,179,219,
+183,111, 83,106, 45,131, 6,115,162,145,145,151, 95, 78, 59, 25, 23, 65,223, 56, 99,202,148, 41,220,151, 47, 95,126,151,152,152,
+216,166,212,135, 25, 77,175, 42,106,178,102,207,158, 29, 10,160, 38,128, 98, 85,163, 70,163,145, 26, 62,124,248, 99, 0,245,190,
+252,242, 75, 59, 66,200,204, 57,115,230,100, 0,216,254,119, 95, 75, 86, 86, 86, 43, 39, 76,152,128,131, 7, 15, 34, 51, 51,115,
+ 3, 0,228,228,228,172,223,183,111,223,129,113,227,198,225,151, 95,126, 89,153,154,154,122, 22, 21,119,213,254,224,227,143, 63,
+198,153, 51,103,240,199, 31,127, 44, 0,240,180,140,245, 94, 92,191,126,125,206,177, 99,199,190, 31, 58,116, 40,126,254,249,231,
+ 30, 0,202,107, 32,219,181,123,247,238, 56,125,250, 52,210,211,211,183,148,182, 66, 86, 86,214,214,227,199,143,183,232,222,189,
+ 59, 86,172, 88,209, 21,192, 37, 51,118,221,215,218,218,122,215,247,223,127,223,172,126,253,250, 24, 54,108,152, 90,167,211,245,
+248,242,203, 47, 79,236,223,191, 95,190,103,207,158,166,227,199,143,191, 91,144,243,237,142, 89,161, 44,154,254,118,237,218,181,
+ 99, 59,116,232,128,153, 51,103, 26,206,157, 59,215, 23,192,249,179,103,207, 70,204,158, 61,251,212,218,181,107, 57,107,214,172,
+ 25, 59,125,250,244, 84,134, 97,222,149,185,254,102,227,198,141, 45,186,117,235,134, 87,175, 94,225,206,157, 59,208,233,116,191,
+220,190,125,251, 90,157, 58,117,190,209,106,181, 39,164, 82,233, 40,185, 92, 30,208,168, 81,163, 78, 65, 65, 65, 18,152,215, 78,
+ 47, 57, 50, 50,210,198,218,218, 26, 6,131, 1,143, 30, 61,130,135,135, 7,116, 58, 29, 94,191,126,141,250,245,235,131,207,231,
+ 35, 57, 57, 25, 69,162,229, 21,152, 34,250, 81, 68, 84, 66, 77, 59,185, 20, 48,138,240,224, 89, 28, 28, 29,108, 97,164,104, 36,
+ 37, 37,162,145,143, 59, 40,138, 66, 86,122, 18, 40,138,122,108,142,166,145, 48,193, 49, 9, 41,213,236,229, 66,212,111,209,205,
+254,246,217,212,189, 86, 53, 91,143,231,114, 40,142, 64, 40,219, 62,118,244,104, 7,134, 33,200, 74, 79, 6,151,166,239,189,139,
+ 19,116, 56, 6,177,237,107,137, 30,116, 27,187,172, 17, 69, 64, 84, 58,236,249, 57, 25,153, 18,160,209,198,175,191,182,177,119,
+112,192,176, 97,195,152,244,248,248,139, 74, 51, 19, 43,215,172, 83,199, 89, 38,151,227,230,205,155,224,228,183,177,197, 78,192,
+119,213,236,217,246, 78, 46, 46,248,100,236, 88, 38, 57, 38,230,146, 10, 72,176,164,172, 53,107,213,226,153,116,233, 2,221, 68,
+ 14,166,125,217,183,173, 80, 42, 22,226,219,109,191, 33, 54, 77,113,224,118, 34,182,253, 75,227, 29, 59,202,141,104,149,213,248,
+ 44,191, 81,181,164, 92,179, 34, 18,137, 10,163, 41, 22,188,233,189,117,205,138,248, 43, 52,223, 33,243, 0, 28, 3, 48, 47, 54,
+ 54, 54,124,236,216,177, 58,131, 78,147,123,107, 89,205,185, 33, 43,106, 76,186,189,216,117,210,239,211,172,231, 42,179, 51,114,
+ 55,110,220,168,143,141,141, 13, 47,186, 77, 5,218, 49, 0, 78,239,222,189,123,235,225,195,135, 81,175, 94, 61, 60,125,250,212,
+ 73,161, 80, 52,126,252,248,177,157,175,175, 47,246,238,221,139,131, 7, 15,174, 3,112,161, 60,147,101,194, 96, 48, 92, 76, 74,
+ 74,242,142,142,142,174,109, 99, 99,163,183,177,177, 65,201,158,136, 57, 42, 6,233, 89,217,176,179,179,135,149,149,149,151, 25,
+230,252,116, 82, 82, 82, 93,198,214,167, 93,221,180, 13,217,193,223, 86, 71,240,183,213,113,122,142, 27, 92,109, 4,200,204,204,
+ 68,106,106, 42, 82, 83, 83, 65, 81, 20,244,122,189,159, 25,154,175, 19, 19, 19,127,138,137,137, 57,230,236,236, 12,185, 92, 14,
+ 2, 32, 41, 75,143,208, 53,190, 8, 93,227,139,164, 44, 61,114,114,115, 81,163, 70, 13,200,229,242,178,170, 40,232,106,213,170,
+245, 28, 50,100,136, 28, 0, 10, 12, 84,103, 66,200,164, 82,166,137, 6,131,161,181,105,221, 89,179,102,217, 1,232,254, 55, 95,
+ 79, 28, 0,147,199,141, 27,215, 84, 36, 18, 97,243,230,205,175, 1,252,106,122,214,111,221,186,245, 25, 0, 76,155, 54, 45, 0,
+192, 76,148,145, 9,186, 48, 52,196,231, 55,241,243,243,195,237,219,183, 1,224,183, 10,190,251,200,173, 91,183, 80,167, 78, 29,
+136, 68,162,102, 21,172,235, 85,189,122,117, 60,123,246, 12, 0, 30,148,177,206,131,103,207,158,229, 87,247, 80,148,151, 25,251,
+222,175, 91,183,110,143, 46, 95,190,220,172, 85,171, 86, 24, 59,118,172,246,238,221,187, 61, 1, 92,123,240,224, 65,199,225,195,
+135, 43,234,214,173,139,171, 87,175,250, 14, 31, 62,252, 22, 77,211,203,204,208,252,100,233,210,165,243, 62,252,240, 67, 44, 93,
+186,148, 28, 58,116,104, 24,128,243, 5,203,206, 29, 56,112, 96,228,242,229,203, 73,255,254,253,177,100,201,146,121, 0, 38,149,
+ 39,166, 80, 40,178,141, 70, 35, 20, 10,133, 89, 33,121,115,215,119,112,112,248,160, 91,183,110,152, 63,127, 62,170, 85,171,134,
+ 19, 39, 78, 16, 0, 39, 1, 92,215,106,181,237, 0,172, 85, 40, 20,191,223,190,125, 27, 93,187,118,229,163,248, 16, 35,229,125,
+255,163,125,251,246,105,172,173,173,225,233,233,137,154, 53,107, 34, 41, 41, 9, 81, 81, 81,168, 95,191, 62,154, 52,105, 2,131,
+193,128,159,126,250, 73,157,155,155,107, 86, 78, 62,131, 86,177,231,194,169,163,217,246,114, 33,220,157,172, 81,163,154, 29,242,
+178,210,144,154,148,128, 38,126, 30,104,223,164, 6,210,178,181, 56,119,242,104,102,110,174,114,143, 89, 33,124,141,114,215,197,
+179, 39,178,109,229,124,120,251, 4, 96,248,216,105,141, 26, 53, 14,188,208,188,121,235,115,171, 87,126,219,160,115, 75, 63, 42,
+ 46, 77,141, 51, 39,127,203,204,206,201,217,245, 46, 30,244, 75, 0,142,218,186,238,181, 45,199,130,127,242,239, 49,238,167,240,
+ 56,108, 0, 0, 61,135,227,219,243,131, 15, 16, 23, 23,135,163,135, 15, 39, 42,129,135,230,234,137,197, 98, 26, 0,178,179,179,
+ 33, 44,104,119,103, 0,124,122,245,234,133,212,180, 52,236,251,245,215,212, 51, 64,136, 37,229,236, 3, 8, 36,226,252,128, 96,
+118,118, 54, 40, 32, 7, 0, 40, 46,122, 54,175, 87, 7,169, 25, 57,184,124, 47, 60,175,134, 10,159,149,167,243, 30, 55,132,175,
+ 92, 27, 45, 0,105, 51,103,206,132, 80, 40,132,171,171,107,161, 57, 50,153, 21,129, 64, 0, 87, 87, 87, 24, 12, 6, 28, 56,112,
+ 0, 0,210,202,125,195, 3, 52,125, 39,173, 96, 52,122,162,228,241,120,111, 69,179,224,205, 81, 51, 96,246,207,204,217, 91,165,
+119,138,169,140,230,123, 64,243,130,156, 88,205, 1,100, 70, 69, 69,197, 13, 30,208, 55, 59, 58,226, 73,146, 34, 43, 33, 49, 39,
+ 61, 54, 49,246,245,227,164,175,230,204,204,142,139,139,139, 69,126, 46,173,230, 9, 9, 9,166,109,204, 97,230,224,193,131,127,
+ 24, 55,110, 28, 9, 13, 13, 5, 0, 4, 7, 7, 99,244,232,209,100,228,200,145, 27, 0,204,173, 68,185, 21, 42,149,170, 88, 52,
+ 68,103,100, 10,171,252,114,114,114,144,144,144, 0,173, 86,107,182, 35,126,113,110,205,243,140,168, 32,125,128,167, 20, 1,158,
+ 82,248, 86,151,128, 50,228, 21,154,172,212,212, 84,211,155,179,218,130,114,230,104, 52,154, 98,229, 44, 90, 53,153,147,147,131,
+164,164, 36, 24,141,198,178,126,200,152,248,248,248,115, 7, 15, 30,204, 5,128,213,171, 87,103, 80, 20,245, 7, 69, 81, 63,148,
+ 50,109,227,114,185, 55, 77,235,174, 89,179, 38, 3,111, 86,137,253,149,124, 88,191,126,253,204,121,243,230,109,158, 62,125, 58,
+182,109,219,134,196,196,196,185,248, 51, 23, 15,147,150,150, 54,123,203,150, 45, 24, 51,102, 12, 22, 46, 92,184,166,113,227,198,
+ 57, 0,134,151, 37,232,232,232,232,206,229,114, 17, 18, 18,146, 3,224, 85, 5,223,159, 20, 18, 18,146, 76, 81, 20, 92, 93, 93,
+107,149,183,162,157,157, 93,109,185, 92,142,248,248,120,160,224,141,185, 20,162, 18, 18, 18,136, 64, 32,128,155,155, 91,157,138,
+118,222,214,214,118,246, 79, 63,253,196,125,242,228, 9, 58,119,238, 28,119,245,234,213,174, 0, 76, 93,210, 67,130,131,131,219,
+118,236,216,241,249,133, 11, 23,240,221,119,223, 81, 13, 27, 54,156, 84,145,166,167,167,231,196, 79, 62,249, 4,155, 54,109,194,
+246,237,219, 39, 1, 56, 92, 98,149,253, 91,182,108,153,182,125,251,118,140, 29, 59, 22, 94, 94, 94,195,203,211,139,142,142,158,
+211,161, 67,135,224, 23, 47, 94,152, 53,226,129,153,235,119, 12, 12, 12,172,173, 82,169,176,107,215,174, 87,181,107,215,190,127,
+248,240,225,153,120,243, 7,251,247,163, 71,143, 98,196,136, 17,104,216,176,225, 46, 0, 67,205,185, 45,195,194,194, 98, 47, 93,
+186,196,240,249,124,120,122,122,162,119,239,222, 24, 54,108, 24, 26, 52,104, 0,157, 78,135,163, 71,143, 50,143, 31, 63,142,211,
+106,181,102,229, 82, 74,127,113,229, 68,100,228,243,155, 33,119,175,233,185, 28, 26, 30,174,118,248,168, 75, 35,124, 58,176, 53,
+154,248, 86, 67,116,138, 10,151, 46, 93,208, 71, 70,190,186,109, 78,143, 67,147,102,248,211,135,183,158,132,220, 48,240,184, 20,
+124,125,234, 98,254, 87,179,109,151, 47,154, 99, 83,183,150, 7, 30,190,206,198,133,243,103,244, 9,113,177,151,223, 85,143,195,
+171, 0, 95, 38,164,164, 28,154,134,145, 22, 42, 56, 5, 29,105,234,249,251,123, 59,187,184,224,212,169, 83,160, 45,232, 17,122,
+ 21,224,203,100,249,181,224,121,121,121, 48,233,213,246,241,241,241,240,244,196,233, 83,167,192, 97,152,176,246, 22, 38, 24,125,
+150, 95, 13, 93,168, 75, 1,234,207,170, 67, 94,187,186,147,143,173,181, 20,119, 31,190,132, 70, 79,238,253,154,137,119,154,143,
+236, 47,100, 60, 42, 89,117,184,122,219,182,109,205,127,250,233,167,174, 51,103,206,148,141, 26, 53, 10, 34,145, 8, 74,165, 18,
+238,238,238, 48, 26,141, 56,123,246, 44,130,130,130,242, 24,134,185,128, 55,211, 6,116, 65,145, 94, 26,231, 94, 65,156,239,183,
+148,205,143, 13, 26,244, 86, 52, 1, 64,246,146,177, 74,175,161,221,187,241,240,141,254,251,206,133, 80,159, 15,109, 79, 55,241,
+169, 14, 0,112,118,118,134,149,149,149,197,154,111,129,191, 92,179,104,181,110, 82, 82,210,179,164,164,164,148,113,227,198,249,
+154, 26,190, 11,133, 66,117, 65, 36, 43,179,180,109,204, 40,167, 14,192,103, 63,253,244,211,241,236,236,236,115, 95,126,249, 37,
+150, 47, 95,142, 19, 39, 78,180, 5,112,179,146,251,110,204,204,204,204,186,119,239,158,115, 29,191,198,168,233,196, 67,187, 5,
+ 47, 64, 8,129,189,132, 32, 55, 43, 3, 15, 30,132, 32, 55, 55,247,174, 37,229,212,233,116, 89, 41, 41, 41, 14, 78, 78, 78,200,
+200,200, 64, 90, 90, 90,161,201,202,204,204, 68, 70, 70, 6,161,168, 55,114,182,148,167,169, 72, 73, 73, 81,134,135,135, 11,156,
+171,215, 65, 45, 39, 62, 2,191,122, 6, 16, 2, 15, 59, 26,185, 57, 89,184,125,251, 54,178,179,179,175,148,165,201, 48,204, 23,
+195,135, 15,231, 0, 24,249,229,151, 95,218, 1,104, 56,123,246,236, 11, 40,209,179,144,203,229,174,223,187,119,111, 61, 83, 21,
+227,156, 57,115,214, 1,248,233,239,186,150,236,237,237,191, 56,117,234,148, 92,167,211, 97,227,198,141, 88,183,110,221, 78,188,
+153,168,242,212,230,205,155,183,208, 52, 61,121,202,148, 41,152, 48, 97,130,164,105,211,166, 51, 19, 19, 19,127, 45, 77, 51, 62,
+ 62,126,126,147, 38, 77, 22,166,164,164,124,107,150, 89,126,241, 98,124,147, 38, 77,230,167,164,164,172, 42,239, 28, 73,165, 82,
+169,209,104, 68,100,100,100, 38, 80,102,251, 14,117,100,100,100,188,209,104,116,151, 72, 36,118, 21, 93,159,153,153,153,223, 54,
+109,218,116,113,114,114,242,121, 0,203, 74, 49,228,161,137,137,137, 1,211,167, 79,159,186,114,229,202,254, 73, 73, 73, 7, 42,
+210,140,142,142,254,182, 99,199,142, 11,158, 63,127,190, 27,101, 87, 1,111, 94,178,100,137,110,239,222,189,147, 34, 35, 35, 87,
+ 84,160,121, 50, 45, 45,237,164, 5,231,183,172,245, 11, 53, 57, 28,206,236,149, 43, 87,210,219,182,109, 3, 33,100,141,209,104,
+ 44,171,156, 15,127,255,253,247, 61,173, 91,183, 30,117,248,240, 97, 81, 64, 64,192, 4,141, 70,179,191,162,235, 83,169, 84, 30,
+ 61,124,248,112,255,135, 15, 31,186,143, 26, 53, 74,228,237,237, 13,157, 78,135,196,196, 68,108,219,182, 77,253,248,241,227,184,
+172,172,172,163,150, 60, 67, 12,218,156,161,183, 46, 29,219, 31,245,226,113,203, 14, 61,250,217,106,117,238, 16,166,115,144,149,
+158,132,179, 39,143,102, 70, 70,190,186,173, 84,102, 13,181, 68, 83,167,201,254,248,246,229,227, 7,226, 34,195, 91,180,235,216,
+211, 86,173,245,132,144, 79, 35, 61, 57, 30,103, 79, 29,203,136,140,124,125, 93,173,215,140,126, 87,207,121,142, 23,150,113,146,
+130,198, 77,236,211, 8, 98, 91,247, 7, 60, 96, 99,107, 64,236,224,236,204, 47,184,119, 32,203,111,243,104,150,102, 50, 32,168,
+ 83, 80, 75,165, 84, 42,193, 3,180, 99, 0,158,163,163,163, 24, 0,158, 63,127, 14, 73,126,173,134, 69,229,204, 3,164,146, 34,
+186, 52,160, 76,231,162, 90,109, 43, 41, 5, 0,113, 73,233,208,234,203,253,221,120,223,217, 81,196,112,237,168,140, 0, 31, 64,
+ 23,153, 76,182,124,225,194,133,107,238,222,189,187,166,119,239,222,107,132, 66,225,242,130,131,205, 47,231, 68,252,109,154,205,
+220, 96,215,177, 22,117,173, 91,109,138,153,216,214,214, 56, 58, 80,170,237,212,169,211,150, 42,150,179, 42, 55,203, 95,169,121,
+ 76,175,215, 19,228, 87,219, 29, 67,217, 85,130,243,138, 44, 79,138,137,137, 33, 5,127, 91, 82, 78,135, 33, 67,134, 48,185,185,
+185,100,240,224,193, 4, 21, 15,225, 83,174,166, 80, 40,236,216,174, 93, 59,125,114,106, 6,121,246, 58,158,220, 9,126, 74,206,
+ 93,186, 69, 14, 28, 61, 69, 54,109,217, 78, 26, 52,104,160, 5,224,105,137, 38,151,203,237,212,177, 99,199,244,228,228,100, 18,
+ 30, 30, 78,174, 93,187, 70,142, 28, 57, 66,182,111,223, 78,126,248,225, 7, 82,189,122,245,100, 0,206,150,104,138,197,226,126,
+ 31,124,240,129, 62, 43, 71, 73, 34,227,211,201,163,240, 72,114,243,222, 35,114,246,210, 77,242,235,254,195,196,223,223, 95,109,
+134, 38,135,195,225,108, 58,112,224, 64, 14, 33,132,244,235,215, 47, 14,197, 19,169,214,252,226,139, 47, 82, 8, 33,100,213,170,
+ 85,233, 40,189, 33,252, 95,125, 45,245,168, 86,173,218, 51, 62,159,127, 10,192,200, 10,182,251,152,203,229,158,112,113,113,185,
+ 15,224,163,119,112, 31,245,118,114,114,186, 3,160,162, 17, 14, 76,235,125,248, 47,185,223,255, 10,205, 78, 92, 46,247, 26, 80,
+254, 32,194, 69,158,215,223,112, 56,156,211, 0, 58, 91, 88,206,186, 14, 14, 14,131,109,109,109, 63,183,181,181,253,220,201,201,
+105,176, 64, 32,168, 91,149,125,183,175,219,165,143, 71,227,190,191, 87,111,216, 43,218,163, 81,239,104,175, 38,253,126,183,175,
+219,165, 79, 85, 53, 61,155,244, 59,230,209,168,119,140, 71,163, 62, 81, 53,155,245,251,221,193,167,203, 7,239,242, 28,141,172,
+ 6,183,174, 53, 97, 32,215, 22, 16,114,109, 1,233, 82, 19, 76, 75, 27,248, 55, 7,228,221,187,116, 89, 75,140,198,181,253, 63,
+252,112,109, 29,192,158, 0,156,146, 83,105,154,141, 1,171,194,109,251,245, 91, 91, 11,112,232, 10, 72,218,183,109,187,134, 24,
+141,107,135,127,252,241, 90, 15,192,165, 52,189,178, 52, 9,192,169, 6,184, 21,213,117, 0,106, 15,244, 66,192,188, 62, 94,132,
+ 92, 91, 64,150, 12,242, 38, 77,156, 49,178, 2,205,178, 34, 69,239,109, 68,171,180,182,226, 21, 33, 45,120,184,174, 40,248,148,
+190,133,139,240,173,107,182,112,133,119,151,218, 84,120, 79, 31,110, 6,242,187, 36, 75,255,133, 15,201,221, 90,173,150,168,213,
+106,162, 84, 42, 73, 94, 94, 94, 73, 3, 85,104,200, 18, 18, 18, 72, 92, 92, 28,137,137,137, 33, 81, 81, 81, 4,127,182,189, 49,
+187,156, 86, 86, 86, 63, 13, 26, 52,200,200,227,241, 54,189,141,125,183,179,179, 91, 17, 24, 24,168,251,254,251,239,201,239,191,
+255, 78,126,252,241, 71, 50,101,202, 20, 82,175, 94, 61,141,141,141,205,208,202,104,186,184,184,204,247,241,241, 73,223,185,115,
+ 39,249,245,215, 95,201,134, 13, 27,200,215, 95,127,109,116,119,119, 79,146,203,229,221, 43,163,233,228,228,180,163, 77,155, 54,
+186, 29, 59,118,144, 11, 23, 46,144,125,251,246,145, 47,190,248,130,248,250,250,106,164, 82,233, 0, 51, 53, 57, 92, 46,119,237,
+196,137, 19,147,220,220,220, 78,149, 88, 38,241,247,247,191, 63,124,248,240, 4, 0,115,254, 69,215, 39,171,201,106,178,154,127,
+129,209, 26,230,134,106, 4,224, 72,248,252,143,219,183,109,187,134, 15,124,108,169, 41, 18,113, 56, 3, 91, 7, 6,174,225, 3,
+ 67, 77,235,138, 56,156,129,237,219,182, 93,195,227,112, 70,148,165, 87,158, 38, 1, 56,124, 46,119, 78,235,150, 45,215,114,129,
+175, 76,243, 58,213,164,194,190,232, 81,157,180,245,164, 94,142,112,130,228, 95,108,180, 74,165, 50, 70,171, 48,128,240, 23, 92,
+132,239,139,230, 63,229,166,174, 83, 96,152,142, 89, 16,209, 58,134,252, 81,212,235, 84,178,156,226,183,188,239,245, 29, 28, 28,
+206,212,169, 83, 39,181, 70,141, 26, 9,182,182,182,251, 1,184, 87, 81, 51,192,197,197,229, 23,103,103,231, 23,174,174,174, 15,
+ 29, 28, 28,214, 35, 63,235,124,165, 53,121, 60, 94,160,179,179,243, 21, 47, 47,175, 44, 79, 79,207,100, 7, 7,135, 3,165, 68,
+178,204,209,116, 69,233, 15, 21,126,193, 50,246, 71,135,213,100, 53, 89,205, 98, 6,166, 91, 45,172,236, 90, 19,134,174, 53, 97,
+236,230,133,245, 69, 13, 74,111, 64, 92, 89, 83, 52, 26, 16,150, 92,191, 34,189,138, 52, 9,192,105, 5,200, 74,110,211,211, 29,
+254,102,106,190,239, 17, 45,211,115,190, 88, 68,139, 91, 73, 65,195, 95, 80,200,247, 69,243,159,194, 75,148,211, 24,185, 8, 43,
+222,226,119,170,222,242, 62, 60, 74, 75, 75,251, 32, 45,237,173,246, 77,120,146,148,148, 52,242,109, 10,234,245,250,187,201,201,
+201, 29,222,130, 84, 89, 93,175,117, 48,179, 91, 54, 11, 11,203,127, 7, 10, 48,226, 21,230,118,169,139,141, 92, 35,232,179,175,
+ 17, 95,162, 75,158,138,170,140,102, 62,198,221,165, 60,227,169,202,150,243, 79,242,222,208,136,195, 83,234,191,115,218, 18,145,
+223, 70,203,252, 60, 90, 44, 44, 44, 44, 44, 44, 44,239,142,139, 47,216, 23,177,247,128, 83, 40, 30,125, 59, 85,196,136,150, 25,
+250,180,164, 39, 69,101,194,167, 23, 89, 77, 86,147,213,100, 53, 89, 77, 86,147,213,252,207,105,154, 40,107,236,212,103, 37,254,
+175, 84, 47,190,127, 2, 85,105,163,245, 87, 26, 48, 86,147,213,100, 53, 89, 77, 86,147,213,100, 53,255,123,154,239, 51,101,246,
+ 58,100,171, 14, 89, 88, 88, 88, 88, 88, 88, 88,170, 70,153, 81, 55,214,104,177,176,176,176,176,176,176,176, 84, 13, 87,228, 15,
+ 81,117, 10,127, 14, 85,181,131, 53, 90, 44, 44, 44, 44, 44, 44, 44, 44, 85,167, 23,254,236,109, 88, 44,186, 69,179,199,134,133,
+133,133,133,133,133,133,165,202,140, 47,242,201,166,119, 96, 97, 97, 97, 97, 97, 97, 97,121, 75,152,215, 51,242,228,201,147,132,
+ 61, 86, 44, 44, 44, 44, 44, 44, 44,239,138,247,212,139,152,162, 88,197, 70,249, 96,123, 29,178,176,176,176,176,176,176,176, 84,
+157, 29, 69, 12, 87,177,121,172,209, 98, 97, 97, 97, 97, 97, 97, 97,169, 26, 38,131,117, 10, 37,134, 84,163, 1,182,202,144,133,
+133,133,133,133,133,229,221,242,158,123,145, 29, 5,211, 27,195, 37,153,122, 29,118, 40,216,193, 14,236,169,102, 97, 97, 97, 97,
+ 97, 97,121, 7,188,207, 94,196, 21,165,180,209, 98, 97, 97, 97, 97, 97, 97, 97, 97,169, 58,227, 75,124, 2,200,111, 12, 79,177,
+199,134,133,133,133,133,133,133,133,229,173, 24,173,162,236,248, 59, 6,149,102, 97, 97, 97, 97, 97, 97, 97,249, 79, 66, 8,249,
+203, 51,195,179, 35,155,179,154,172, 38,171,201,106,178,154,172, 38,171,249, 95, 96, 60, 74,100,133, 7,216,244, 14, 44, 44, 44,
+ 44, 44, 44, 44, 44,111,195,100,237, 40,237,127,118,172, 67, 22, 22, 22, 22, 22, 22, 22,150,191, 8, 54,162,197,194,194,194,194,
+194,194,194, 82, 53,118,160,148,172,240,172,209, 98, 97, 97, 97, 97, 97, 97, 97,121,123,102,235, 13,216,170, 67, 22, 22, 22, 22,
+ 22, 22, 22,150,170, 49,190,172,255, 41,148,221,115,224,162, 5, 95, 80,153,222, 7, 23, 89, 77, 86,147,213,100, 53, 89, 77, 86,
+147,213,252,207,105, 86,164,125, 17,239, 31,165, 54,134,255, 59,242,104,177, 93, 95, 89, 77, 86,147,213,100, 53, 89, 77, 86,147,
+213,252,183, 99, 26,130,199, 52,185, 2,249,121,180,216, 54, 90, 44, 44,239, 57,228, 48, 56,200,244,241, 2, 33,110,224, 8, 18,
+145,248,232, 21,181, 24, 76,149, 53,147,253, 61, 33,214, 59,195, 32, 74, 69,242,195,215, 85,213,100, 97, 97, 97,249, 23,147,136,
+ 50,218,104,177, 70,139,133,229,125, 39,213,215, 27, 92,172, 0, 13, 87, 16, 93, 4, 28,253, 87, 0, 79, 31, 87, 89,147,207, 44,
+131,145,118, 7,209, 61,135,147,207, 74,224,217, 83,246, 96,179,176,176,176, 88,198,223,222, 24,158,199,227, 37, 3, 96, 68, 34,
+209, 81,176,163, 92,179,252,181,184, 22, 92,103, 76,193,117,103, 9, 50, 46,151,187, 80, 34,145, 92, 22, 10,133, 41, 66,161, 48,
+ 69, 42,149, 94,230,114,185, 11, 1,200,254, 41, 59, 72,126,169, 39, 1,109,252, 64,171,103,170,157,125,148,229,164,212, 24,189,
+ 65, 27,122,146,157,117,101, 85,210,228, 82,221,212, 58,198,227,215,123, 74,103,133,214,224, 7,130, 42,105, 22,193,134,207,231,
+159, 5,224,192, 94,158,255, 78,252,128,166, 77,185,220, 89,190, 64, 39,128, 29, 79,151,133,229,111, 55, 90,122,189,222, 41, 45,
+ 45,141,218,179,103, 79, 95,107,107,235, 8, 46,151, 59, 15, 0,255,191,114,192,101, 50,217, 45, 43, 43,171,100,107,107,235,100,
+ 43, 43,171,144,138,230,255, 75,241,118,116,116,140,182,179,179,123, 94,116,166, 99,131,143, 90,213,105, 61,114,145,189,127,191,
+246, 85,212,231,115,185,220,121,214,214,214, 17,123,246,236,233, 27, 31, 31, 79,233,245,122, 39, 11,182,111,103,107,107, 27,118,
+247,238,221, 5,105,105,105,237, 99,239,236,116, 76,186,187,221, 49,250,202,218, 14, 65,167, 55, 45,176,177,177,126, 10,160,221,
+ 63,226, 72,170, 25,103,208,156,142, 79, 18,149,146,196, 28,189,115,112,148, 82, 14,112, 58, 64, 91,133,151,152,108,198, 25, 32,
+157, 66,227, 84,210, 91, 25,142,206,215, 95,105,172, 64,211, 29,161,166, 92,170,252,192,161,233, 73, 12,195,116,229,243,249,159,
+179,143,223,127, 39, 2,154,110,125,171,111,223,101,115, 26, 52,152,234, 11,244, 41,195,108, 81, 0,166,249,250,250,158, 1,240,
+241, 91,252,250,239,124,124,124,226, 1, 76,103,207, 4,203,223, 76, 99,211, 11, 62,138,180,209,178,200,104, 13,244, 66,235,161,
+ 53,113,117,176, 23,114,135,212, 68,222,136,154,184, 49,192, 11,157, 42, 83, 26,123,123,123,180,107,215,142, 19, 31, 31, 47,254,
+226,139, 47, 22,137, 68,162, 72, 0,221, 43,163, 37, 22,139,131, 36, 18, 73, 44,151,203, 45, 86, 22,137, 68, 18, 36,149, 74, 99,
+185, 92,110,231,162,243,229,114,249, 45, 43, 43,171,100,185, 92, 30, 82,134, 17, 10,178,178,178, 74,150,201,100, 65, 69,231,115,
+185,220,206, 50,153, 44, 78, 46,151,151,156,223, 73, 46,151,199,150,156, 95, 22, 60, 30,207, 61, 54, 54,214, 41, 46, 46,206, 73,
+ 32, 16, 56, 23,157, 31, 19, 19,227, 20, 27, 27, 91,108,190, 37,112,185,220, 78, 82,169, 52, 86, 34,145, 4,149, 54,191,228, 62,
+149, 69,145, 99,215,201,156,249,150,154,172,110,221,186,221, 72, 76, 76,244,176,177,177,177, 41,186,192,206,218,166,251, 47, 59,
+183,204,236,215,179,219, 36, 71,191, 15,235, 87, 82,191,187, 72, 36,138,252,226,139, 47, 22,197,199,199,139, 91,182,108,201,161,
+105,139,222, 39,186,244,235,215,239, 88,114,114,114,181,134, 13, 27,114, 12, 6, 3,158, 28, 95, 8,201,195,207, 33,138,220,134,
+234,226, 84,110,196,133,149,238,221, 58, 52, 61,134,119,220, 24,148, 28,246,227,131, 98,218, 49,132, 56,134,197,171, 29,123,245,
+ 29,196,125, 16,171,114,212, 27,141,118, 0,167, 3,217,229, 41,172,148, 38, 87,223,150, 33,196,249,143, 40,158, 99,199,193, 83,
+ 57,151,162,184,142,122,163,209, 30, 52,218, 87, 70,179,232,229,207,225,112,102,174, 93,187,150, 6, 48, 5,128,224,191,244, 20,
+110,238,134,106,157,106,115,238, 53,118, 69,235,183, 40, 27, 80,112,191,123,255, 83,246, 83,203, 48,207, 14,188,126,125,110, 68,
+237,218,189,231, 52,104, 48,166, 20,179, 69, 1,152,179,114,229,202,145, 79,158, 60,113,172, 89,179,230,132,183,244,210,191, 97,
+229,202,149,179,159, 60,121,226,230,229,229,181, 4,108,250,162,127, 21,132, 16, 1, 33,164, 35, 33,164, 23, 33,164, 51, 33,164,
+121,193,223,205, 10,166, 94,132,144, 46, 37, 62,155, 21,108,107, 90, 30, 88,134, 70,175,146,219, 21,217,166,228,255,197,254, 46,
+197,104,245, 66,126, 91,173, 94,197,118,224,228,201,147,164,232,103, 73,134,120, 97,241,212, 86,213,148, 97, 39,246,145,188,216,
+215, 36, 51,252, 1,121,176,227, 91, 50,181,153,163,114, 88, 77,124,103,249,241, 34,228,230,205,155,228,201,147, 39, 36, 47, 47,
+143,188,120,241,130, 4, 6, 6,170, 36, 18,201, 31, 0,188, 44, 17,147,203,229,201,127,252,241, 7,233,214,173, 91,182, 76, 38,
+ 91, 99,186,185,172,172,172,146,111,222,188, 73,186,117,235,150, 45,151,203, 55, 0,224, 0,192,128, 1, 3, 82, 8, 33,196,209,
+209, 49,161, 52,189,126,253,250,101, 18, 66,136,181,181,181,169,170,137, 35,151,203, 55, 76,158, 60, 57,239,254,253,251,196,214,
+214,214, 52,159,182,178,178, 90, 51,101,202,148,188,224,224,224,162,243,203,197,206,206, 46,214,104, 52,146, 19, 39, 78, 16, 39,
+ 39,167,194, 50,216,218,218,198, 26,141, 70,114,236,216,177, 50,203, 86, 94,160, 64, 38,147,173, 30, 49, 98, 68,110, 84, 84, 20,
+177,183,183, 79, 46, 50,127,205,168, 81,163,114, 99, 98, 98,136,131,131,131, 89,101,180,183,183, 79,190,117,235, 22,233,223,191,
+127, 78,209, 99,106,111,111,159,124,251,246,109,211,252,213,230, 60,200,220,220,220, 38, 56, 57, 57, 37, 56, 57, 57, 37,216,216,
+216, 44,119,117,117, 77, 74, 77, 77, 37,132, 16, 82,171, 86,173,148,162,145, 44,167,128,190, 51,182, 29,190,125,247,218,227,244,
+212, 6, 93, 39,173,182,110,208,207,218,130, 99,224, 37,145, 72,254,104,223,190,189, 42, 54, 54,150, 40, 20, 10,242,240,225, 67,
+114,243,230, 77,242,242,229, 75, 2,192,156, 62,182,114,153, 76, 22,175,209,104, 24,141, 70,195,164,166,166, 26, 83, 82, 82,140,
+225,107, 92, 9,249,153, 87, 56,101, 29,235, 67,146,174,173, 96,172,100,146, 56, 0,242,119,246,224,217,226,239, 78,182,251, 28,
+120,186,208, 35,252,218,202, 30,122, 18,117,137,236, 27,227,168,191, 58,163, 90, 4,249,193,247,127,100,187, 95,245, 74,105,254,
+224,183,239,225,215, 30,207, 54, 45,153,166,143,142,142, 38,179, 70,245, 48,156,159, 90,237, 21,217,230,123,184, 50,154, 69, 24,
+250,209, 71, 31,229,197,196,196, 16,127,127,127, 5,135,195, 25,251, 95, 50, 89, 93,188, 5,241, 15,127,157,197,244, 9,144,164,
+191, 37,179, 21,224,228,228,148,182,123,247,110, 34,151,203, 83,254, 65,102,139,242, 5,250,238,105,208,224, 24, 51,112,160,113,
+ 79,131, 6,199,124,129,190, 5, 6,139, 2, 48,119,213,170, 85,193,122,189, 62,120,215,174, 93,193,125,251,246, 13, 6, 48,171,
+138,223,249,253,119,223,125, 71,244,122, 61,217,181,107, 23,233,219,183, 47, 1,176,209,220,141,101, 50, 89,157,250,245,235,239,
+245,247,247,143,105,216,176,161,214,207,207, 79,237,237,237, 29, 21, 16, 16,176, 91, 40, 20,122,129,229,111,161, 60, 47, 66, 8,
+105, 62,119,238,220,121, 0,200,220,185,115,231, 17, 66,122, 21,248,137, 94, 69,255, 46,249,105, 50, 79,166,255, 75,211, 48, 77,
+165,105,150,246, 29, 37,190, 7,101, 68,178,198, 23,148,251,207,157, 59,121,242,100,251,147, 39, 79, 94, 45,185,115,131,106,162,
+213,212, 86,213, 84,170,212, 68,242,248,219,207,201,229,142,238,228,102, 7, 23,242,124,230, 71, 36,241,215, 13,228,179, 70,182,
+202,129, 53,209,209, 82,163, 21, 28, 28, 76,130,131,131, 73, 72, 72, 8,137,140,140, 36,217,217,217,228,224,193,131, 70,123,123,
+123,149, 80, 40, 92, 9, 64,108,142,152,149,149, 85, 50, 33,132,104, 52, 26,178,124,249,114,117, 65,164,202,217,218,218, 58,153,
+ 16, 66,178,178,178,200,202,149, 43,213,214,214,214, 15, 1,184, 57, 56, 56,196,190,126,253,154, 56, 59, 59,151,106,102,108,109,
+109,147,159, 61,123,102, 50, 78,213,108,109,109, 31, 31, 63,126, 92, 71, 8, 33,113,113,113,196,206,206, 46, 25,128,179,189,189,
+253,131,147, 39, 79,234, 8, 33, 36, 33, 33,193, 52,223, 44,163,165, 82,169,200,249,243,231,139,149,193, 52,255,204,153, 51,197,
+ 12,152, 25, 56, 91, 91, 91, 7, 31, 60,120, 80,107, 52, 26,201,227,199,143, 77, 38,209,217,198,198, 38,228,240,225,195, 90,163,
+209, 72,194,195,195,205, 54,131, 53,106,212, 72, 33,132, 16,131,193, 64,182,109,219,166, 49, 29, 83,211,124,173, 86, 75,182,110,
+221,170,177,178,178, 10, 6, 80,110,244,205,193,193, 33, 65,171,213,146,172,172, 44, 18, 24, 24,152,119,243,230, 77,146,147,147,
+ 67, 8, 33,164, 70,141, 26, 41, 0,224,211,126,236, 55,119, 95,228,229,124, 50,123,203, 33,175,230,195,190, 61,119, 47, 62,238,
+167,223,131,130, 29, 2,250,245, 48, 39,168, 41, 20, 10, 87,186,186,186,170,175, 95,191,110,212,233,116, 36, 38, 38,134,132,132,
+132, 20, 94, 99,143, 30, 61, 50,203,104,113,185,220,133,119,239,222,213, 25,141, 70, 38, 45, 45,205,152,146,146, 98, 76, 73, 73,
+ 49,148, 52, 90,228,103, 30, 73, 59, 51,142,156,218, 49, 93,203,231,243, 23,190,155,104, 22, 56,100,187, 79, 63,178,221, 39,120,
+247, 8,135,180,220,144,253,132, 92,152, 78, 94,125, 83,147, 44,236, 33,207,101,182,251, 4,147,237,190, 3,201,226,246, 92,139,
+ 52,119,248,245, 33,219,125,130,191, 27,228,153,254, 32,248, 62,185,122,245, 42,217,186, 97, 21,153,218,165,154,130,217,238, 19,
+ 76,126,240,235,111,137,102, 81,132, 66,225,139, 27, 55,110,144,107,215,174,145, 37, 75,150, 16,137, 68, 18,243, 54,162,122,228,
+ 7,111, 79,242,163,119,123,178,179,174, 43,185,210,254, 31,215,193,167,185, 27,170,117,245, 22,196,165, 61,248,157,144,140,151,
+ 36,105,141, 63,233,225,195,171,170,217, 10,112,114,114, 74,141,138,138, 34, 73, 73, 73,100,221,186,117,196,202,202,234, 31,109,
+182,124,128,126, 0,230,173, 94,189,186,208,100,109,217,178, 37,248,209,163, 71,193, 30, 30, 30,167,171,240, 93, 27, 87,175, 94,
+ 93,104,178,182,108,217, 66, 30, 61,122, 68, 60, 61, 61, 99, 43,218,112,196,136, 17,146, 86,173, 90, 5, 15, 31, 62, 92,185,123,
+247,110, 18, 21, 21, 69, 30, 62,124, 72, 86,175, 94, 77, 22, 45, 90, 68,126,254,249,103,210,191,127,127, 69, 96, 96,224,221,129,
+ 3, 7,138, 44,140, 40,112, 11,162, 48, 2, 66, 8,143, 16, 98, 50,154, 92, 0, 60,211,203, 63, 75,113,163, 85,150, 23, 41,203,
+ 76,149,101,176, 74, 46, 43,199,136,149,107,216,204,248,190, 66, 83, 85,198,117, 80, 44, 34,113,165,119,239,222,237,223,248,241,
+ 33, 88, 58,254,139,111, 68,145,187,215, 33,249,224,102,112,178,146,193,203, 77,135,230,198, 41,232,111, 28,199,200,150, 45,197,
+ 98,138, 90,102,233, 1, 21, 8, 4, 16, 8, 4,224,243,249, 80, 42,149, 72, 72, 72, 64,155, 54,109,232,144,144, 16,209,132, 9,
+ 19,166,139,197,226, 24, 0, 31, 86,120, 55, 83,249, 17,233, 91,183,110, 97,220,184,113,194,189,123,247, 54,116,116,116, 12, 53,
+ 26,141, 2, 0, 8, 15, 15,199,144, 33, 67,132,251,247,239,175,231,230,230, 22,162,211,233, 36, 66,161, 16, 28, 14,167, 76, 61,
+129, 64, 0,189, 94, 47,172, 91,183,238,195,208,208,208,128,222,189,123,243,162,163,163,241,250,245,107,232,245,122,129,183,183,
+247,163,144,144,144,134,189,122,245,226,197,198,198, 34, 58, 58,186,176, 28,230,148, 87,171,213, 66, 40, 20,162,104,149, 22, 69,
+ 81,208,104, 52, 16, 8, 4,102,107,113,185,220, 78,190,190,190,143, 66, 67, 67, 27,247,235,215,143,127,255,254,125,196,197,197,
+193,104, 52, 10,252,252,252, 30,133,134,134, 54,234,219,183, 47,255,225,195,135, 72, 78, 78,134,185, 85,104,166,245, 66, 67, 67,
+ 49,124,248,112,193,217,179,103, 27,185,186,186, 62, 52, 24, 12, 2, 0,120,244,232, 17,134, 12, 25, 34, 56,119,238, 92,227,234,
+213,171, 63,172,160, 42,145, 3, 0,122,189, 30, 19, 38, 76,144, 90, 89, 89, 33, 54, 54, 22, 12,195,192,104, 52, 2, 0,210, 51,
+211, 31,133, 62,122, 28, 62,114,232,160,246, 42,157, 70,115,251, 94, 80, 88,173, 26,158,238, 20, 69,106, 84, 80,212, 15,165, 82,
+105,204,154, 53,107,102, 68, 69, 69, 9,125,125,125,233, 87,175, 94, 33, 55, 55, 23,124, 62,191,240, 26, 51,119,191, 5, 2, 65,
+ 7,127,127,127,174, 90,173, 6,195, 48, 0, 64,104,154, 46,245,100,136,178,110,192,207,217,192, 19,139,197, 29,222,201, 19, 41,
+199,223, 30, 12,186, 70,167,106,133, 66, 27,119,185,204,213, 27,136,185,134,154,142, 66,112,104,142,232,254,107,165, 20, 32, 93,
+225,145,102,111,153, 38,211,245,117,138, 86,168,183,171, 39,115,115,247, 64,122,122, 58,170,215,242,133, 90,224, 40,184,245, 82,
+ 33, 3,101,161,230,159,180,173, 91,183,174, 75,157, 58,117,144,150,150,134,198,141, 27,195,214,214,214, 22, 64,215, 74,155,172,
+ 93,158, 66,228,160, 53, 64,175,129,145, 90, 2, 61,119, 5, 94,166, 54, 38,219, 27,243,254, 73, 38,203, 74, 38,184,179,255,192,
+193,106,246, 30,126,192,169, 79,224,108, 35,196,206, 73,141,237, 28,173,133,199, 42,105,182, 2,156,157,157, 47,221,189,123,215,
+ 65, 36, 18, 33, 36, 36, 4,254,254,254, 88,183,110,157,163,173,173,237,181,127,136,217, 34,225,192,137,239, 30, 62,220,181, 55,
+ 34,226,228,136,218,181,123, 15,247,246, 94, 62,241,227,143,199, 78,155, 54, 13,171, 86,173,194,177, 99,199,208,186,117,107,140,
+ 31, 63, 94, 31, 19, 19,179,167,146,223,179,121,205,154, 53, 83,167, 79,159, 94, 82, 83, 23, 29, 29, 93,110,109,139,191,191,191,
+251,139, 23, 47,226,103,206,156,217,120,239,222,189, 98,137, 68,130,172,172, 44,252,248,227,143,152, 55,111, 30, 40,138, 2, 33,
+ 4, 63,255,252,179,100,204,152, 49,205, 35, 34, 34,226, 61, 61, 61, 43,108,214, 65, 8,161, 8, 33, 34, 0,146,130, 73, 10, 64,
+178,127,255,126,235,126,253,250, 89, 21,204, 19, 23, 76, 66,176,148,164, 84, 47, 82,228,183,242,100,137,227,221,187,228,188,146,
+203, 8, 33,189,203,211,176,208, 64,151,246,125,167,202, 51, 91, 69,127,129, 58,148,234, 34,129, 6, 46, 94, 62,200,190,112, 24,
+ 98, 46, 5, 49,167, 96,226, 82,160, 95, 61, 66,117, 17, 15,122, 66, 2, 42,107,180, 76, 19,143,199,131, 82,169,132,209,104,196,
+188,121,243,132,231,207,159,183,167,105,250,127, 21,233, 20, 53, 76,207,159, 63,135,159,159, 31,117,226,196, 9,231, 41, 83,166,
+136, 77,223,147,157,157,141, 58,117,234, 80,103,206,156,113,250,250,235,175,101,229,153, 25,138,162,192,231,243, 49,125,250,116,
+241,189,123,247,236,220,220,220,240,234,213, 43,100,100,100, 64, 38,147, 97,250,244,233,226,187,119,239, 58,186,185,185, 33, 42,
+ 42, 10,217,217,217,144,201,100, 22, 27, 45, 62,159, 95,108, 27,138,162,160,211,233, 44, 50, 6,214,214,214,251,130,131,131, 29,
+173,173,173,241,240,225, 67, 24, 12, 6, 88, 91, 91, 99,234,212,169,226,224,224, 96, 71, 27, 27, 27,132,135,135,131, 16, 2, 43,
+ 43, 43,139,202, 8, 0, 12,195, 32, 60, 60, 28, 53,106,212,192,181,107,215,156, 38, 78,156, 40, 50,205,127,249,242, 37,220,221,
+221,113,237,218, 53, 39,169, 84,186,175, 44, 45,134, 97,144,152,152,136, 39, 79,158,224,213,171, 87, 72, 77, 77, 69, 90, 90, 26,
+114,115,115, 97, 48, 24, 0, 0,146,220,156, 83,251, 15,157, 8, 21,139,197, 18,127,239,186, 30,143, 30, 63, 77, 17,139,197, 18,
+ 79, 15, 15,111, 96, 49, 93,142, 33,252, 95,116,116,180,253,152, 49, 99,248, 73, 73, 73,200,204,204, 4,151,203,125,227,218, 18,
+ 8,204,107, 10,100, 48, 24,252, 68, 34, 17,165,211,233, 10, 35, 96, 2,129, 0, 51,246, 41,225,191, 16,197,166,143, 55,164,128,
+ 24,245,208,106,181,126,127,251, 47, 24, 64,129,210,214, 5, 69, 53,190,243, 74, 97,215,182,247, 80, 62, 94,159, 5, 24, 61, 64,
+115,209,161,129, 59,247,216, 35,133, 51, 8, 26, 64, 3, 95, 66, 42,238,249, 69, 0, 10,208,213, 1,168,166,231, 95, 24,236, 91,
+127, 52,137, 31, 31, 31, 15, 62,159, 15,161, 80,136,198,157, 6,112,247,135,234, 93, 64,161, 33,116,240, 49, 71,179, 88,216, 81,
+ 44, 94,176,104,209, 34,105, 81,205,177, 99,199, 74,173,173,173, 23, 85,218,100, 41, 36, 45, 97, 32,211,159,196, 43,107, 44, 63,
+149,228, 23,145,162,242, 1, 33, 51, 1,125,163,183, 96,182, 58, 8,133,194,215, 0,218, 84,201,100,201, 5,183, 15, 28, 56, 88,
+205,174,122,190,201,130, 65, 13,240,196,112,113,180,193,206, 25, 29,237, 28,109,196,150,154,173, 0,103,103,231, 63,238,220,185,
+227, 32, 18,137, 16, 28, 28, 12, 62,159, 15,145, 72,132,250,245,235, 99,251,246,237,142,118,118,118,255, 40,179,181,242,225,195,
+221, 43,158, 60,121, 62, 55, 32,192,247, 67,169,212,110,242,240,225,214, 95,127,253,245,201,227,199,143,239,234,213,171, 87,218,
+189,123,247,214, 3, 56,108,105,196, 12,192,150,181,107,215, 78, 54, 25,183,175,191,254,250,231,227,199,143,175,232,213,171, 87,
+226,189,123,247,102, 2,216, 82,158, 64, 94, 94,222,241,249,243,231, 91,127,244,209, 71,166,255,113,227,198, 13,236,217,179, 7,
+ 82,169,180,216,186,125,251,246,197,184,113,227,108,181, 90,109,185,191, 73, 78, 78, 78,157,239,220,185,227,143,252, 14, 94, 66,
+147,209,122,252,248,177, 77, 78, 78,142,141, 76, 38,179,113,117,117,149,155,204,214, 71, 31,125,100,195,229,114,219,128, 5, 21,
+121,145,162, 70,199,156,121,149, 93,223, 92,179, 85, 98, 86,153, 57,180,138, 25,173,222,189,123, 95, 69, 25, 61,169,116, 25,201,
+ 16,194, 8, 49,135,130,132, 83,196,108,129, 1, 55, 59, 5, 84, 37, 58,240,150,246, 99, 40, 16, 8,192,225,112,160,213,106,145,
+158,158,110,145, 41,176,178,178,130, 76, 38,131, 74,165,130,193, 96,128, 72, 36, 50,153, 17, 88, 89, 89,129,199,227,129,199,227,
+ 65, 36, 18,189, 17, 77, 42, 25,205,225,243,249,144, 74,165, 72, 76, 76, 68,116,116, 52, 24,134,129, 76, 38,131, 84, 42,133, 64,
+ 32, 64, 66, 66, 2, 18, 18, 18, 64, 8,129, 84, 42,133, 84, 42,133, 37, 13,174,141, 70, 99,169, 63,254,122,189,222,162,136,150,
+193, 96, 64, 88, 88, 24, 98, 98, 98, 32, 18,137, 10,247, 85, 40, 20,226,229,203,151, 72, 74, 74,130, 68, 34,129,149,149, 21,172,
+173,173,205,214, 53,237,139, 92, 46,135, 88, 44, 70,102,102, 38,148, 74,101,225, 49,181,178,178,130, 84, 42, 69,118,118, 54, 82,
+ 82, 82,202,221,119,163,209,136,132,132, 4,164,166,166, 34, 54, 54, 22,105,105,105,133,102,171, 32,106, 84,181,192, 78, 78, 14,
+210,211,211, 11, 35,145,101, 77,230,192, 48, 12,114,115,115,113,231,206, 29,138, 97, 24,100,101,101, 49,169, 73, 73,198,207, 18,
+ 4, 56,182,248, 7,114,240,236, 3,245,254,211,193,170,163,127, 60, 81,109, 57,250, 72, 37, 10, 92, 98,120, 39,143,161,173, 1,
+214,208,243,186,165,229,233,133,169, 58,190,181,115, 64, 23,224,245, 25,128,230, 2, 34, 91,180,168, 87, 19,209,153, 70,233,179,
+100,173, 8, 20,186, 99,139,183,173, 89,154, 70, 94,215,212, 92,189, 48, 74,231,104,229,215,160, 9,146,147,147, 33, 20, 10, 33,
+ 20, 10,209,180,117, 23,188, 78, 55, 74,158,198,171, 36, 32,232,102,150,230,159,212,146,201,100, 45,219,180,105, 67, 21,213,236,
+217,179, 39, 40,138,170, 15,192,215,162,135,220,198, 90, 2,232, 36, 45,192, 37,211,159, 38, 42,221,142, 61, 86,123,247,249,112,
+128,221,247, 23, 83,252,194,146, 52, 94, 32,250, 47, 64,116, 77,170, 96,182,218,203,229,242,147,155, 54,109,242, 18,137, 68,103,
+ 0,180,173,140,136, 76,204,217,182, 96,242,208,106,182, 38,147,165, 87, 2, 92, 49,192, 19, 3, 92, 49, 92,156, 28,176,108, 92,
+ 87, 59,137,136,119,212, 2,195,186,127,203,150, 45,142, 37, 77,150,105,106,220,184, 49, 22, 46, 92,232,104,103,103,183,239, 29,
+255, 88,118,179,182,182,222,219,165, 75,151, 59, 9,114,249,184,196, 38, 77, 4,127, 88, 91,103,119,206,206,182,246,124,252, 88,
+231, 3, 60, 2,176, 53, 46, 46,174,135, 5, 38,235, 99, 43, 43,171,224,206,157, 59,235,228,114,121,204,186,117,235, 62,155, 50,
+101, 10, 86,173, 90,133,249,243,231,255, 8,224, 83, 0, 95,197,197,197,185, 85,100,178, 0, 32, 41, 41,105,216,156, 57,115,210,
+210,210,210, 0, 0,245,235,215, 71, 86, 86, 22,102,205,154,133,207, 63,255, 28, 0,208,168, 81, 35, 16, 66,144,156,156,140, 53,
+107,214, 36, 39, 37, 37,141,174,224,217, 30,123,248,240,225,230, 58,157,206, 29,249,213,131,194,172,172, 44,171,140,140, 12,185,
+ 78,167,147, 50, 12, 35,181,177,177,145, 1,144,140, 28, 57,146,251,244,233, 83, 63,131,193, 16,207,122,171, 63, 41,207,139, 84,
+ 6,138,162, 78, 85, 37,114, 85, 90, 68,172, 12,202,143,104,245,238,221,155, 42,250, 89, 44, 98, 68,225, 97, 76,208, 53,216, 5,
+ 52, 41, 22,205,146,112, 40,136,173,172,241, 58, 54, 26,124, 80, 79,222,150,209,202,204,204,196,103,159,125,166, 26, 54,108, 88,
+ 58,195, 48, 3,204, 53, 5,214,214,214,176,182,182,198,211,167, 79, 73,255,254,253,147,215,173, 91,167, 42,106,180,158, 63,127,
+ 78,186,117,235,150,178,104,209,162,188,242,140,150, 41,162,181,114,229, 74, 85,135, 14, 29, 82,159, 60,121, 66, 76,102, 74, 38,
+147, 97,205,154, 53,170,142, 29, 59, 38,223,191,127,159,152,230, 89, 18,209,162,105,186,208,104, 21,221,134,166,105, 48, 12, 99,
+145,209, 82, 40, 20,195,122,245,234,149, 28, 30, 30, 78, 76,251,105,109,109,141,117,235,214,169,186,118,237,154,252,228,201, 19,
+ 98,154,103,101,101,101,182, 25, 52,125,191, 92, 46,135,149,149, 21,158, 62,125, 74,186,117,235,150,188,113,227, 70,117,209,249,
+ 97, 97, 97,164,111,223,190,201,185,185,185,195,202, 51, 47,166,234, 60,131,193, 0,181, 90,141,180,180, 52,196,198,198, 22, 86,
+ 29,170,164, 86, 61,134, 14,238,211, 80,165, 82, 41,159, 62,127, 17, 83,191,158,191,147, 74,165, 82, 70,199,196, 60, 7, 22, 51,
+229,104, 15, 8, 8, 8, 72,255,236,179,207, 84,153,153,153, 85, 54, 90, 2,129, 32,156,203,229,146,182,109,219, 18,173, 86, 75,
+ 98, 99, 99,245,105,153,153, 6,223,111,191, 37, 79,102,204,160,196, 65, 65, 66,153, 76, 70, 21,104,210,175, 94,189, 98,196, 98,
+113,248,223,254, 36,162, 25, 23, 80,164,205,245, 23,121, 54, 93,251, 12, 17, 80, 73,247, 0, 93, 30, 32,180, 5,132,182,224, 74,
+237,241, 65,219, 70,156,221,119,114, 92, 64,152, 86,224, 11,221, 43,212,228, 17,103,128,105,123,225,185,218,182,205,192,169,130,
+140,140, 12,112, 56,156, 66, 83, 36,145, 74,209,249,195,145,244,207,247, 52, 46, 0,105, 13,138,227,110,193,189, 62,123,193,130,
+ 5,252,204,204, 76,208, 52,253,167,166, 68,130,137, 19, 39, 10,173,172,172,230,155,253,240, 59,236,199, 7, 79,216, 2, 32,159,
+ 63, 75, 82,187, 29,127,164,242,249, 98,229, 78,113, 64,163,230,152,208,193, 73,188,242, 84, 74, 64,104,172,170, 38, 96,156, 1,
+131,182,105, 37,204, 86, 91,185, 92,126, 42, 40, 40, 72,210,179,103, 79,172, 89,179, 70, 42, 22,139,207, 84,230,193,175,200, 51,
+ 78, 89,186,241,151,228,135,235,187, 3, 58, 69,190,193, 42, 50,165,228, 49, 88,184,243, 82,182, 94, 79,134,154,171,169, 82,169,
+ 70,125,250,233,167,233, 71,143, 30,125,195,100,137, 68, 34, 68, 70, 70, 98,249,242,229, 25, 25, 25, 25,163,223,165,201,154, 50,
+101,202,242,184,184, 56,159, 11, 23, 46,112, 83, 83, 83,157,214,254,244, 83,246,145,236,236,140, 21,143, 31, 63,251,170, 94,189,
+186,115, 27, 52, 24, 93, 78,234,135, 82, 77,214,228,201,147,247,199,197,197, 53,190,120,241, 34, 47, 53, 53,213,125,242,228,201,
+ 88,189,122, 53,230,207,159,191, 29,192, 4,152,215,225,229,207, 0,130, 78,247, 44, 51, 51,179,119,247,238,221,179, 50, 51, 51,
+209,160, 65, 3,244,233,211, 7, 46, 46, 46,112,115,115, 67,191,126,253,224,237,237,141,244,244,116, 12, 29, 58, 52, 35, 53, 53,
+181, 59,128, 87,229,105,166,167,167, 71,236,219,183,239,249,212,169, 83, 27,199,197,197,249, 1,176,207,205,205,149,230,230,230,
+ 10,181, 90,173,216,214,214,214,182, 81,163, 70, 14,227,199,143,151, 61,120,240,192, 47, 46, 46, 46, 15, 64, 52,107,175, 10, 77,
+ 86,153, 94, 4, 64,106,129,225,209,150,248, 76,173, 96,153,185,219,150,250,183, 25,235,149, 52, 91, 69,167, 55,170, 14, 75,191,
+ 24,129,133,123, 14,239, 86, 11, 60,234,192,218,167, 33, 36, 34, 17,196, 2, 1,196,182,246,208, 48, 12,126,138, 76, 82, 42, 8,
+153,111,233, 1, 45,249, 67, 72, 81, 20, 54,111,222,108,104,217,178,165,250,210,165, 75,155, 84, 42,149, 7,128,223, 45, 49, 5,
+ 27, 55,110, 84, 78,159, 62, 61, 52, 37, 37,165,161, 72, 36,210,154,230,111,218,180, 73, 57,114,228,200,199,113,113,113,141, 37,
+ 18,137,178,172,246, 89, 69,141,150, 80, 40,212,164,164,164, 52, 31, 59,118,108,248,214,173, 91, 21, 18,137, 4, 82,169, 20, 66,
+161, 80,155,146,146,210,240,179,207, 62, 11, 93,189,122,181, 82, 44, 22, 67, 42,149, 90, 84, 45, 71, 8,121,195, 80, 21,157,111,
+ 46, 6,131,225, 82, 74, 74, 74,195,233,211,167, 63,248,254,251,239, 21, 38, 3, 84,180,140,107,215,174, 85,202,100, 50,139, 34,
+ 90,166,245,164, 82, 41, 54,108,216,160,156, 58,117,106,104, 74, 74, 74, 67,161, 80,168, 45, 50, 95, 49,101,202,148, 7, 41, 41,
+ 41, 13, 13, 6,195,165,114,222,240,140, 57, 57, 57,224,114,185,120,252,248,177,134,207,231,131,166,105,188,124,249,178,208,104,
+217,217,217,249, 55,172, 95,207,247,151,253,135,175,138,249, 66, 97,203,230, 77,253, 94, 69, 69,199, 17, 66, 69, 85, 80,212,223,
+ 85, 42,149,199,165, 75,151, 54,181,108,217, 82,189,121,243,102, 67, 89,145, 45,115,208,104, 52, 87, 67, 66, 66,244, 34,145,136,
+ 74, 76, 76, 52,112, 56, 28, 24,141, 70,162,105,222, 92, 83,255,251,239,201,211,185,115, 41, 43,169,148,203,231,243, 33,145, 72,
+168,179,103,207,106,149, 74,229,213,191,223,104, 65, 2, 10,226, 23, 41, 26,185,136, 54, 80,120,254,123,190,201, 18,217, 0, 34,
+ 91, 64,100,139,106,213,220,113, 47, 82, 41, 7, 13, 1,140,102,228, 16, 35, 68, 10, 10,146,199,201,144,243, 4, 98, 42, 41, 41,
+169,208, 16,153, 38,175, 58,126, 8,137,206,147,129, 34, 66,112, 96, 73, 10,146,222,246,246,246,220,196,196,196, 55, 52,253,253,
+253, 57,122,189,222,252,212, 46, 9, 70, 87,128,153,252, 60, 73,237,250, 91,168,194,103,198,138,159,197, 98, 99, 22, 16,180, 17,
+ 1,181,220, 48, 99, 96, 35,193,215,199, 83, 3,238, 71, 41,107,129, 67, 38,128,201,115,180,160,156,109,228,114,249,153,251,247,
+239, 75,228,114, 57, 94,189,122,133,230,205,155, 99,199,142, 29, 18,137, 68,114, 26,128, 69,237,241,238, 38, 35, 58, 47,215,216,
+114,246,225,152,164,135,137,134, 98, 38, 43, 85, 65,240,233,119,199,179, 50,115,212, 3,238,196,150,125,255,148,194,131,172,172,
+172,110,243,231,207, 79, 79, 77, 77, 45,102,178,162,163,163, 77,134,160, 3,128, 39,239,234,199,210,218,218,122,248,138, 21, 43,
+112,255,254,125,244,236,217, 19,215,174, 93, 67, 70, 70, 6, 14,156, 57,243, 98,223,139, 23, 95,153,218,108,149,145,250,161, 84,
+172,172,172,190, 88,177, 98, 5,130,130,130, 10, 53,211,211,211,177, 98,197,138, 56, 0,147, 44, 53, 89, 38, 82, 82, 82,238, 61,
+123,246,172,123,131, 6, 13,194, 54,109,218, 20,231,234,234,202,140, 31, 63, 30,159,126,250, 41, 28, 29, 29,141, 27, 54,108,136,
+105,219,182,237,227,136,136,136, 46, 74,165,242,145, 57,239, 2,105,105,105,183,118,236,216,113,167, 83,167, 78,146, 81,163, 70,
+ 57, 30, 59,118,204, 94,169, 84,186, 9,133, 66, 39,173, 86, 43, 8, 11, 11,227, 28, 57,114,196,229,233,211,167,145,106,181,250,
+ 94,101,203,254, 95,131,162,168,251, 20, 69,157,162, 40,234, 98,137,207,251,229, 45,179, 96,219,178,254, 46,119,189, 18,197,220,
+ 81, 98, 50,159,225,181,176,120, 98, 61,185,242,214,136, 22, 36,105,124, 27,146, 60,196,143,220,104,111, 71,198,214,166, 20,163,
+ 42,153,222, 65,165, 82, 21, 78, 71,143, 30, 37, 46, 46, 46, 10,185, 92,110,113,122, 7, 23, 23,151,228,156,156, 28,210,172, 89,
+179, 12, 71, 71,199,194, 84, 4,174,174,174,201, 10,133,130,180,104,209, 34,195,201,201,105, 3, 10, 26,101,187,187,187,199, 18,
+ 66,136,167,167,103, 66, 89,122, 6,131,129,184,184,184,152,122,232,241,236,236,236,126, 8, 12, 12,204, 72, 78, 78, 38,174,174,
+174,133,169, 19, 28, 29, 29,215, 52,111,222,188,228,252,138,202, 27, 27, 23, 23, 71,226,226,226, 72,245,234,213, 19,138,206,143,
+142,142, 38,209,209,209,196,221,221,221,226,244, 14,142,142,142,171, 75, 41, 75,165,202,232,225,225,145,172, 82,169, 72,171, 86,
+173,138, 29, 83, 15, 15,143,100,181, 90,109,154,111, 86,122, 7,177, 88, 60, 65, 36, 18, 37,136, 68,162, 4,161, 80,184,188, 70,
+141, 26, 41,135, 14, 29, 34, 27, 54,108, 48,117, 73,135,163,127,223,150,117, 90,141,254,202,209,191,223, 23, 85, 73,239, 32,151,
+203,255,112,113,113, 81, 28, 61,122,180,216,245,165, 82,169,204, 78,239, 32, 22,139,227,242,242,242,152,228,228,100,253,205,155,
+ 55,149, 65, 65, 65,202,199,143, 31, 43, 35, 35, 35, 85,233, 41, 41,186,228,228,100, 85,118,118,182, 38, 52, 52, 84, 35,145,188,
+155,244, 14,100,135,119, 29,242,131,239,241,136,165, 94, 79,167,183,147,168, 31, 45,107, 72,200,255, 62, 34,228,244,167,132, 92,
+154, 77,238,109, 31, 79, 90,121, 9,141, 55,103, 85,127, 78,182,249,252,102, 78, 74, 6,178,163,126, 29,242,131,239,233, 23, 75,
+188,158,142,106,235,166,254,105,235, 6,114,247,238, 93,242,248,241, 99,242,234,213, 43,114,250,247, 67,164, 85, 45, 73,190,230,
+ 15,190,199, 45, 76,243,208, 90, 40, 20,230,173, 91,183,142,220,185,115,167, 80,243,248,241,227, 68, 34,145, 40, 1,243,122, 45,
+ 19,128, 34, 63,248,127,104,216,234,115,253,235,174,178,220,244,147,179, 9,121,180,155,144, 29, 1,132,236, 10, 36,228, 80, 47,
+ 66, 78,140, 38,119, 54, 12, 36,173,189,248,122,178,205,231, 26,217,238,111,118, 99,123, 30,143,151,115,244,232, 81,146,144,144,
+ 64,174, 93,187, 70,130,130,130, 72,120,120, 56,137,137,137, 33,167, 78,157, 34, 60, 30, 79,141, 74, 12, 91, 22,232, 12,207, 46,
+117,249,137,161, 43, 91, 19,114,108, 40, 73,221, 55,156,244,174, 39,207,104, 81,189, 74,249,232, 26,217,219,219,167,157, 58,117,
+138, 68, 70, 70,146,171, 87,175, 18, 39, 39,167, 52, 0, 1,239,250, 7,177, 75,151, 46,119, 9, 33,193, 61,123,246, 12, 6,112,
+182, 75,151, 46,193,175, 95,191, 14,110,222,188,249, 29,148,159,250,161, 76, 58,119,238,172, 35,132,144,158, 61,123, 18, 0, 9,
+ 93,186,116, 33,175, 95,191, 38,205,155, 55,215,190,165, 98,115, 0,140,230,241,120, 63,217,217,217, 93,182,181,181,189,196,225,
+112,118, 0, 24,129,202,231,227,226, 0,112, 3,224, 15,160,105,193,228, 87, 48,143,237,113,248, 31,161, 48,189,131, 57, 12,244,
+ 66,235, 49,181,168,171,195,106, 34,119,104, 77,228,125, 82,155, 50, 39, 97,105,151,178,140, 22,195, 48,228,249,243,231,164, 99,
+199,142, 10,169, 84, 26, 15,243, 19,150, 22,211,116,112,112, 8,114,114,114,122, 35,137,102,145,249,197, 18,150, 58, 57, 57,221,
+114,117,117, 77,118,116,116, 12, 41, 77,211,193,193, 33,200,213,213, 53,217,193,193,161, 88,114, 79, 14,135,211,211,193,193, 33,
+190,228,124, 46,151,219,201,201,201, 41,182,228,252, 50,246, 29, 46, 46, 46,177, 9, 9, 9, 36, 53, 53,149,120,120,120, 36,148,
+ 52, 96, 73, 73, 73,197, 12,152, 57,154, 21,149,165,156, 50,150,170,105,198, 49,173,204,121, 55,225, 93,173, 90,181,148,181,107,
+215, 18,153, 76,150, 82,116,129, 79,187, 79, 22,220,125,145,151,243,233,156, 31, 14,149,146,176,212,220,228,160,221,165, 82,105,
+124,199,142, 29, 21,207,159, 63, 39, 12,195, 16,134, 97,202, 50, 90,165,105,246,104,218,180,105,122, 90, 90,154, 49, 55, 55,215,
+ 16, 27, 27,171,121,253,250,181,106,217,178,101,186,212,212, 84,117, 94, 94,158,246,225,195,135, 26, 87, 87,215, 84, 0, 61, 44,
+ 61, 71,149,253,237, 42, 89,125, 70,182,251,181, 38,219,252, 78,133, 47,242, 12, 27, 29, 40,213, 4,175,237, 73,200,165,217,228,
+206, 15,159,146,150, 94,130,124, 67,180,221,247, 12,249,217,187, 29,217, 88, 75, 96,150,230, 79,181,219,146,237,190,103,158, 46,
+244, 12,251,168,137,163,118,255,238,237,228,229,203,151,228,248,145,125,164, 69,205, 2,147,181,205,239, 60,249,193,175,163, 57,
+154,165,153,173,157, 59,119,146,151, 47, 95,146,223,126,251,205, 92,147,213,165, 52,163, 53,175,139, 44,235,211, 64,145,102,104,
+ 35,129,182, 95, 0, 95,215,173, 14,223,208,202,147,107,108,232, 74, 51,126,142, 32,221,124,196, 26,178,205,231, 26,217,230,215,
+221,220,114, 10, 4,130, 24, 20,201,169, 83,114, 18, 10,133,169,229, 24,173, 46, 21,154, 45,111, 97,226, 31, 75, 59,145, 62, 13,
+228,233,102,154,172,138,174,165, 70, 14, 14, 14,105,187,118,237, 34,206,206,206,169,102,154,172,191,252,250,180,182,182,222,155,
+151,151, 23,124,238,220,185,224, 46, 93,186, 4,239,221,187, 55,248,198,141, 27,193, 18,137,100,175, 41, 56, 81,210,108,249,189,
+249,252,239, 82, 34,162, 21,156,155,155, 75,206,157, 59, 71,186,116,233, 66,246,238,221, 75,110,220,184, 65, 36, 18, 73,112,101,
+203,249, 87,236, 59,171,249,159,102,124, 41,147,101, 70,235, 45,158, 8,162, 86,171,201,172, 89,179,180, 34,145, 72,201,231,243,
+ 45, 29,130,231,189,190, 8, 29, 28, 28,110, 57, 59, 59, 39, 59, 59, 59, 23, 51,123, 69,231, 59, 56, 56,132,252,203,111, 64,111,
+ 62,159, 31,205,227,241,138, 15,193,227,223,183,101,237,214,163,230, 59, 7,244,253,160,138,229,228,243,249,252,121, 34,145, 72,
+ 57,107,214, 44,109, 94, 94,158, 37, 70, 11, 0,186, 74, 36,146,248, 61,123,246,168, 94,188,120,161,207,200,200, 48,220,189,123,
+ 87, 31, 20, 20,164, 93,188,120,113,174, 68, 34,137, 71,217,105, 9,254,150,227, 73, 54,214, 18,152,204,214,163,249,158,225,125,
+234, 73,116, 59,102,118, 35, 45,107,148, 48, 89,101,103,114, 47, 93,179,192,108, 61,248,218, 35,188,163,183,204,176, 98,254, 12,
+210,162,166,184,184,201,178, 64,179,164,217,146, 72, 36,185,139, 22, 45,178, 36,146, 85,220, 16,254,228,227, 65,182,251,238,205,
+ 55, 81, 21, 76, 63,248,252, 72, 54,251,120,252, 83,238,163, 64,103,120,118,246, 22, 62,177, 32,146,101, 78, 57, 27,217,218,218,
+134, 89, 16,201,250, 59,246,189,219,196,137, 19,131, 95,191,126, 29,252,234,213,171,224, 27, 55,110, 4,127,248,225,135,193, 0,
+186, 21, 89,167,208,108,233,250,247,215, 52,162,233, 25, 21,104,126, 60,113,226, 68,242,250,245,107,242,234,213, 43,114,227,198,
+ 13,242,225,135, 31, 18, 88, 54,124, 15,107,138, 88,163,245, 78, 34, 90,127,245,128,159, 93, 0, 92, 44, 58, 67, 36, 18, 37,171,
+213,106, 71,153, 76,246,123, 94, 94,222, 84,228,119,139,172,146,230, 95, 81, 78, 86,243, 95,161,233, 42,147,201, 54,229,229,229,
+125, 40, 18,137, 82,213,106,181,179, 5,154, 54, 66,161,112,134, 72, 36,234,168, 84, 42,189, 1, 64, 42,149, 62,215,104, 52,151,
+ 85, 42,213,122, 0, 89,239,122,223,201,198, 90, 2, 8, 4, 77, 65, 48, 55, 56, 70, 81,115,197,185, 12,207,153,157,108, 99, 90,
+213,150, 70,130,199,124, 7, 74,115,143, 26, 19,173,177, 88, 83, 76, 53,135,145, 55,247, 94,148,178,198,119, 23,114, 61,191,232,
+ 40,139,105, 85, 75, 22, 3,130,239, 32, 84,222,182, 84,179,164,217,146, 74,165,123, 20, 10,197, 56, 0,151, 45,221,119,114,216,
+143, 15,133,190, 26,244,156,122, 32,229, 12,225, 67,136, 18, 52,231, 49,146,144, 76, 45, 14,211,177,247,209,223,174,217, 77, 38,
+147, 13,247,245,245,173,245,244,233,211, 87, 74,165,242, 87, 0,231, 75,172, 67,249, 2, 29, 37, 92,110, 67,149,193,112, 45, 12,
+ 8,170, 64,243, 99,153, 76,246,133,175,175,111,192,211,167, 79,159, 40,149,202,181, 0, 14,176,231,232, 95,165,249,175, 52, 90,
+127,123, 22,101,211,143, 93, 94, 94, 30,123, 6, 88,254,106, 18,243,242,242,250, 23, 92,119,150,110,155,165,209,104, 22,106, 52,
+154,133, 40,104, 63,146,153,153,249,143,106,180, 74, 77,123,165, 37, 27,107, 5, 65, 32, 88,217,196, 67, 60,245,232, 68,177, 18,
+132,138, 3,143,217, 80,129,201,170, 72,243, 30,196,250,149,205, 61,197,159,255, 54, 65,172, 4, 65, 18, 8,214, 87, 96,178,204,
+229,166, 66,161,168, 89,233,125, 30, 20,166, 3, 16, 73,128, 40, 44, 46,231, 69,113, 49, 8,197, 54, 50,126,151,156,207,203,203,
+ 59,127,239,222,189,114,127,131,194,129, 75, 48,152,221, 25,224, 64, 94, 94,222,129, 10, 52, 89, 88,254,113,112,217, 67,192,194,
+ 82,241, 75,201, 63,181, 96,212,180, 87, 90,114,216,239, 62,210, 56,179, 64,163, 38, 96,136,134,194,144, 68, 77,139,214, 86, 81,
+243, 46,210,168,233,224,192, 27, 2, 67, 4,242,180, 73,212,164,104,237, 63,102,191, 1,130,197,172,145, 98, 97, 97,249,199, 48,
+ 30,197,123, 26, 22,254,207, 26, 45, 22,150,247,156,130, 40, 79, 92,193,244,143,213,100, 97, 97, 97,249, 15, 26, 46, 80, 40,187,
+ 65,155, 37,117,175,149,105, 20,119,145,213,172,148, 38, 7,128, 53, 0, 27,228, 15,227, 96,234, 38, 92, 81,154,141, 15, 0,232,
+217,227,201,106,178,154,172, 38,171,201,106,190, 99,205,138,180,223,199,182, 95,165,101,134,223,241,174,122, 29,178,154,149,167,
+ 59,123, 60, 89, 77, 86,147,213,100, 53, 89,205,127,169,230,191, 14, 66, 72,165, 19,177,177,188, 27, 68,236, 33, 96, 97, 97, 97,
+ 97, 97,249,199,209,184,224,211, 21,249,209, 45, 87,211,130,119,218, 70, 75,108, 95,215, 21, 92,186, 1,197, 16, 95, 0, 32, 52,
+ 21, 14, 3,243, 80,149,254, 34,177,170,218, 50, 55,111, 59, 2,193, 97, 10,218, 65,121, 9,207, 51,170,170, 87,207,219,170,191,
+179,131,124,120, 82,122,246,158, 39,207,242,142, 89,178,173,181,181,167,181,200,206,118,160, 70,167,175, 39,224,243, 99,116, 89,
+ 57, 59, 50, 51, 95,229, 86,162, 24,118,229, 45, 92,188,152, 80, 39, 19, 67, 40,190, 68, 71,219, 91,241,169, 60,228,145,188, 68,
+ 25,227,149, 21, 73,142, 28, 25, 68, 44, 61, 55, 20,141, 14, 82,185,188,137, 80, 36,105, 46,145,219,214,101, 8,144,145, 28, 31,
+165,213, 27,110, 24,181,202, 96,194,224,202,219, 56, 87, 44, 44, 44, 44, 44, 44,255, 2,163, 21, 2,160, 23,242,219,104, 85,220,
+ 24,222,211,191,205,125,145, 72,236, 5, 0, 12, 33, 96, 8,160,200,201, 10, 78,122, 21,212, 29, 0, 28,106, 52, 62,199, 19, 89,
+ 53, 97, 72,254,114, 35, 3, 24,116,234,200,156,232,187,205,204, 41,145,212,209,251,163, 78, 93, 58,247,239,221,187,151, 79,253,
+122,245,107, 3,192,163,199,143, 34, 78,158, 60,245,236,210, 69,234,168, 34,245,249,111, 85,217, 99, 2,209, 55, 77,155, 54,106,
+ 19, 20, 20,178, 20,192,228,170, 30, 65,123,123,217,212,243,255,155,213,174,115,255, 53, 82,192, 50,163, 37,178,179, 29,216,175,
+ 79,143, 70, 95, 78,155, 72,127, 58,235, 91,175,251, 55,175,172,146,185, 6,100, 17, 70,127, 94,145, 60,228,122,121, 3, 39,151,
+244,143,101, 25,172, 95, 51,206,210, 27,118,181,180, 85,101, 68, 12, 33,140,113, 8, 69, 81,224, 8, 36, 71, 28,107,181, 57,100,
+211, 97,102, 38, 0,179,123,140, 89,185,250,119,113,114,117, 63, 58,228,147, 25, 34,137,181, 51, 23, 28, 62, 0, 10, 9, 81, 97,
+184,116, 96,133,237,231, 75,118, 54,190,249, 48,218,240,199,255,182,168, 41, 62,175,191, 50,241, 41,155, 75,133,133,133,133,133,
+229,191,204,169, 2,115,117,170,228,130, 50,141,150, 72, 36,246,186,115,229,164,221,111, 55, 98, 1, 0, 93, 26,187,224,171,101,
+155,186,237,221, 24,244, 12, 0, 90,118,234,237,189,116,222, 52,220,122,146, 2, 66, 8, 26,213,177,199, 7,253, 6,153,103, 60,
+156,253,154, 13, 28, 56, 96,216,172, 89, 95,244,125,249,242,101,212,254,253,251,175, 3, 64,219,118,237,234,124,251,237,183,131,
+215,216,218, 9, 15, 30,249, 95,188, 58, 57,236,126,101,246, 86,228, 86,171,154, 79,221,154,195, 15,254,188,137,238,208,125,192,
+208, 40, 40, 86,168, 19, 94,197,155,179,173,131,131,195,116, 30,143,103, 13, 0, 12,243,167,255,209,233,136, 11, 0, 24,140,140,
+220,214,205, 39,151,195, 23, 25,133, 66,254,211,220,188,188, 61, 57,241, 97, 63,149,167,169,209,235, 3, 62,159, 52,134,126,240,
+ 42, 29, 94, 1,109, 57, 27, 86,124, 13,198,168,183,157, 49,111,217,192,160,187, 7,161, 72,198, 85, 51,119,141, 87,114, 70,181,
+106, 45, 56,223,172,144,117,165, 40,140,246,108,249,201,135, 75,119, 31,225, 53,173, 99, 5,141,158,193,153,224,244,150, 63,172,
+255,102,245,205, 31,122,157, 0,176, 29,192, 31, 0, 42, 52,117,118,246,118,191, 78,159,191, 94,166,208,254,153,166,168,192,100,
+225,199, 61,135, 17, 26,203,192,215,199,151,235, 50,125,149,108,251,178,241,187,149,249, 99,119,177,176,176,176,176,176,252, 87,
+ 73, 68,241,222,134, 59, 42, 52, 90, 0, 32, 19,115,241,236,117, 18, 0,192, 70, 12, 76,157, 48, 10,233,105,169,222, 90, 3,131,
+ 79, 70,141, 64, 72,120, 34,158, 69,166,130, 16, 2,111,119,137,217,165,225,128,105,250,201,216, 79,218,159, 59,127,254,222,130,
+249, 11,126,161, 40,220, 6,128,237, 59,126,108,185,112,209,194,113, 35, 70,141,232,122,228,200,145, 39, 0, 42,101,180,184,148,
+124,211,234,149,203, 5,113,105,106,245,244, 89,115,153, 47,102, 78,223, 0, 96,128, 89, 78,134,199,179,142,139,139,147,209,116,
+241,230,107,223, 45,159,123,173,107,255, 53, 47,162, 98,178, 30,156, 59,126,188,153,191,191, 63,226,226,147, 90,175,250,126, 91,
+195, 51,231,196, 99,114,115, 84,253,149,105, 97,165, 14,218, 44,228,241,158, 44, 89,245, 67, 35,198,166, 14,253,213,184,158, 8,
+168,237,134,248,148, 44,180,235,222,151, 27,124,255,126, 55,192,108,163, 85, 50, 65,227, 64, 45,147,210,240,219, 61,119, 59,127,
+216,202,173, 41, 77,115,144,167,210, 35, 53, 91, 3, 35, 3,180,245,179, 70,143,189,223,115, 51, 20,250,143,150,253, 47,246,163,
+219, 27,123, 39,171,179, 19,166, 0, 56, 90,254,215, 16, 59,119, 39, 43, 60,139,205, 45,213,100, 41,212, 6, 0, 0,159, 99, 4,
+ 5, 98,207,222, 95, 44, 44, 44, 44, 44,255,113, 74,237,117, 8, 20,140, 74,126,242,228,201, 82,219,239, 24,141, 4,207, 34, 19,
+241, 44, 50, 17,247,194, 83,161, 35, 60,108, 88,181, 4,107, 87, 44, 66,134,138,198,111,183, 98,241, 60, 50, 9,207, 35,147,144,
+150, 89,106,166,247, 98, 85, 74,107, 86,136, 27,175, 95,111,181,186, 91, 59,105, 7, 59, 91, 91,219, 23, 79,126, 81, 44,156,153,
+236,183,228,243, 88, 62, 79, 43,140,147,202,164,173, 14, 31, 62,228,239,236,232, 36,149,201,228,179, 37,213, 26,238,180,182,110,
+ 96, 93,158,102, 73,196, 78,190,125,251,246,234,209,201,197,197,153,153,184, 33, 56,188,158,159,175,190,110,157,186,173,197, 78,
+117,251,150,179, 89,161, 38,195, 48,160,105, 26,201,201,201, 72, 72, 72,192,235,215,175,241,252,249,115,196,198, 70, 37, 51,132,
+240,140, 96,104, 87, 87,119,112,185, 2,120,213,240,196, 15, 27, 86, 72,150, 45,254,170,185, 72, 42, 56, 86,194, 8, 21,106,170,
+ 51, 50,143,156, 62,123, 62,254,204,254, 31,140, 0,144,146,153,135, 75,247, 95, 34,228,105,172,165, 39,178,100, 10,135, 26,241,
+209, 47,115, 12,145,167, 56, 75,191,254, 34,246,198,141,155, 81,217,185, 90,228, 42,117, 80,170,245,208,104,141,208, 27, 25,120,
+ 58,138,240,251,220,122, 56,126,249,161, 51, 69, 81,235, 43, 58,158, 26,141,222,216,198, 87,138,161, 29,171,195,215, 93,138,248,
+103,183, 49,125,254,122, 4,189,214, 32, 51, 51, 11,122, 69, 26,152,188, 56,164, 69,134,192, 96, 52,146,138,206,251, 91,130,213,
+100, 53, 89, 77, 86,147,213,252, 23,107,150,229, 69,222, 19,118,148, 50,161,208,104,149, 69, 68,108, 6,158,189, 78, 66, 19,223,
+106,168, 93,195, 21,247,158,103,226,215, 75,177,216,121, 46, 26,151, 66, 83,193,112,229, 72,202, 1, 94, 68, 37,227, 69,116, 90,
+133,249,179, 57, 66,222,144,207, 63,207,158, 85,223, 63,167,197,149, 51, 83, 81,205,241,133,255,156, 57, 89, 83, 57, 66,222, 16,
+219,234,242,253,115,103,205, 24, 46,151, 72, 4, 90,141, 22,181,106,122,138,166, 77,153, 58,134,178, 21,238, 55,119, 47,229,213,
+252,108,133, 98,241, 79,203, 22,207, 22,174,255,237, 69,140, 66, 11,197,209,219,201,175,190,152,187, 48,131,203, 19,253, 32,175,
+230,103,107,174,150, 94,175,135, 70,163,129, 86,171,133, 78,167, 67,124,108, 88,223, 63,126,251,178,123,205,234,118,221,133, 34,
+ 17, 8,128, 28,149, 1,175, 19,149,232,216,185, 43,167, 73,227,198, 1, 50, 87,191,177,165,105,101,103, 71,103, 51,132, 35, 63,
+249,251, 62,206,161, 11, 15,240,203,201,251, 56,118,249, 1,238, 93, 61, 99, 32,140,190,112,252, 47,153,107, 29,111,153,107,253,
+104,153, 91,131,228,194,169, 90,189,160,114,143, 41,135, 38, 29, 59,119,185, 56, 97,242,180, 43,202,220,244,148,159, 54, 45,137,
+ 79, 77,136, 10, 19,242, 41,131, 68,200, 65,158,218,128,221,127, 36, 96,224,138, 80, 60,141,201, 3, 33,164,194, 1,188, 25, 96,
+230,144,177, 95, 26,245, 58, 29,124, 60,100,216,183, 99, 37,250,118,108,136, 78,245,109,209,172,182, 20, 18,174, 6, 79,194,159,
+225,192,190,221, 6,134,161,191, 96, 95,100, 88, 88, 88, 88, 88,216,136, 86,225,228, 90,116, 65,153, 85,135,106,181, 42,114,192,
+144, 17,112,117,114,145,245,235, 48,154, 31, 28,145,133,212,196,104,188,124,254, 24, 74,181, 30,124,219,154,128,200, 5, 53,188,
+ 60,241,240,217, 49,221,198,213,167,242, 24,131, 38,178, 44,189,190,125, 93,221, 95,134, 83,244,234, 85, 30,119,158, 63,203,108,
+178,111,254, 46, 12, 27, 38,115, 88,189,202,227, 78,212, 43, 41, 45, 17,145, 86, 99, 70, 13,165,104,138, 96,206,156, 89,232,215,
+187, 7, 62, 25, 51,146,218,179,103,119,139, 44, 51,247,146, 1,111,243,188,175,151, 8,146,179, 12,218,123,207,243, 52, 18,169,
+ 88,124,243, 69,158, 34,192,203, 67,220,179,255,232,132, 83,135,127, 90, 15, 96,148, 57, 90, 38,131,165,215,235,161,211,233, 0,
+192, 8, 0, 52,157,255,153,158,171, 69, 74,150, 6,201, 89, 26, 24,140, 12,250, 15, 25, 37,190, 31, 20, 58, 10, 64, 25,237,181,
+ 24, 70,111,208,227,232,133, 16,196,223, 63,194, 80, 52, 39,187, 72, 99,120,200, 92,235,120,187,184,120, 92,235,221,127,164,163,
+ 64,148, 95, 13,155,171,208, 96,207,182, 85,229,150,147,166, 40,194, 24, 13, 89, 6,189, 94, 81,171,102,173,120, 95,255,134,162,
+ 27, 87,206,245,189,121,241,104,158,161,214, 72,155,136,168, 68,112,120, 66,112,248, 34,104,116,230,189, 44, 36,191,188,179, 5,
+ 0, 53,246,179, 89, 27,102,124,249, 21,103,230,198,235,208,170,149,208,168, 20,200,201,206,132,152,171,199,147, 91,199, 13,196,
+168,159,161, 72,124,176,133,189,191, 88, 88, 88, 88, 88,254,227,148, 28,126,167,112, 94,153, 70, 43,250,233,141,102, 0,224,221,
+180, 91,186, 76,196,181,227,210, 20,146,227, 34,176,103,205,116, 48, 12, 65,207,113,171, 33,247,114,129,152,207,129, 38, 47, 61,
+ 47, 35,226,106,185,109,117, 40, 74,223,117,203,246,120,175,207, 38,213,178,218,183, 47,143, 7, 0,251,246,229,241, 38, 77,172,
+110,181,117,123,164, 87, 96,155, 38, 32, 70, 35,122,247, 27,128, 33, 31, 15, 65, 84,146, 18,255,187, 22, 3,133, 74,107, 86,111,
+ 57,177,131,111, 67, 7,123,199, 30,159,143,238, 33,229,114, 40,170,174,167, 53, 39, 54, 85,111,224,112,120,198, 19,247,179, 19,
+250,247,255,216,225,210,233, 67,157,140, 14,190, 13, 85,105,225,161, 21,233,105, 52, 26, 24,141, 70,104, 52, 26,232,245,122,216,
+ 57,212, 60,221,117,192,154,184,196,164,220, 83, 73,153,234, 64,133,222,128,228, 44, 13, 82,178, 52,200, 82,232,224, 34,183,133,
+ 65,175,173, 95,150, 30, 33,228,151, 15, 7,140, 24, 9,128,166,104,195,174,188,196,240,231,249, 75,254, 52, 89, 61,250, 13,115,
+188, 22, 28,129,151, 65,103, 50, 9, 99,200,207,226, 78, 49,113,229, 31, 87, 16, 14, 5,134,207,165,244, 28,154,102,116,186, 60,
+189,147,147,227,165,171,151,206,246, 81, 27, 94,129,195, 23, 22,174,171,210, 26,205,190, 98,146, 95,222,217, 12, 0,223,111,220,
+176,182, 85,215, 97,252,171, 33,145, 80,233,129,150,141,189,241,251,193, 31, 53,132,232,191, 84, 36, 62,216,204,222, 91, 44, 44,
+ 44, 44, 44, 44,197, 12,214, 41,228, 55,142, 47, 30,209, 50,213,141,246,238,221,187,100,131,107,196, 39,103,192, 94,198,133,163,
+155, 23,134, 79, 95,139, 95,214,207,132,209,168, 7, 33,128,193,104, 94,102, 2, 66,120, 23, 38, 79,242,242,173,225,197,113, 28,
+ 62, 76,162,250,117,159, 82, 60,124,152, 68, 85,175,190,125,246,228, 73, 94,145,185,106,143,214, 6,163, 17, 55,159,164,224,113,
+100, 54, 30, 71,229, 64, 38, 54, 63,205, 23, 71,192,159,180,106,229, 10, 62,151, 67, 81, 79,162,243,242,226,210, 13,121, 28, 30,
+ 79, 39, 17, 11,136,150,112, 53, 81,105, 36,189,243,135, 99, 84, 39,246,126, 63, 22,192,148,178,116, 76, 61, 13, 77,145, 44,211,
+ 39, 33,132, 80, 0,195, 80, 70, 99, 92,154, 26,121, 58, 61,146, 51,255, 52, 90,148,161,236,154, 83,153,107, 29,111, 43,185,236,
+ 44,135,195, 17, 18, 2,232,117,134,193,112,173,211, 61, 47,241,229,243,162, 38,235,206,147, 4, 68, 60,184,152,108,212, 41, 71,
+ 40, 83,158,253, 97,238,190, 83, 20, 8,135, 3,134, 67, 83, 12, 69,129,225,209, 68, 11, 66,152,146, 37, 82, 90, 96,180, 76,102,
+ 75,192,227,204, 63,127, 96,189,211, 39,189,252,112,240, 90,190,231, 83,231,166,230, 40,226, 89,147,197,194,194,194,194,242,118,
+ 41,207,139,188, 71, 81,173, 55, 35, 90,229,237, 16, 33,192,139,232, 52,212,112,119,132,123,141,218,120, 30,246,240,207,101, 0,
+ 12, 70,243,170,163,142, 31, 79,140, 91,187,214,138,153, 57, 51,187,229,170, 85, 30,183, 39, 77,172,110, 93,175,190,125,246,236,
+217, 49, 45,215,173,179,190,125,225, 14,207, 72, 10,242,117,153,114,115, 89, 54, 70, 16,221,188,161,127, 77,206,146,125, 47, 98,
+254,120,148,155,194,231,243,245, 46,182, 34, 74, 46, 19,112, 56, 52, 79,160,209,211, 26,239,128,198,156, 19, 52,213,184, 60, 21,
+147,209, 42, 89,117,152,158, 26,209,247,252,255,102,213,235,240,225,106,187,248, 84, 21,178,181,156,194,170, 67, 14, 77,225, 81,
+ 88, 52,192,225, 63, 46, 77,211, 74,110,119,110,255,175,191,120,172, 91,181, 28, 58,131, 17,147,103, 46,192,152, 81, 35,206,193,
+181, 78,119, 15, 47,159,224,235, 39,118, 73,186, 79,252, 1,209,207,130,146, 12,154,156, 3,150,152,172, 66,179, 5, 16, 35, 97,
+232,140,204, 28,153,198, 0, 17, 74,241,125, 26, 29, 83,169, 43, 39, 79,101,192,137,187, 73, 56,249,219, 1, 88,203,165,236,147,
+128,133,133,133,133,229,173,243,158,154, 43,148, 48, 87, 64, 89, 17,173,242,240,116,119,198,221,199,145,168,239, 91, 19,214, 86,
+114,132, 71,196,129, 67,243, 64, 83,128,222, 96,190, 25, 34, 58,253,193,117,235,172, 17, 29, 41,165,183,254, 16,233, 53,121,146,
+ 87,228,186,117,214,183,137, 78,127, 16,192, 8, 66,242,199, 5, 50, 37, 72, 53, 90,224, 11, 8,163,175,238,108, 39,225, 4,189,
+ 82,164,211, 52, 71, 99,111, 45, 98,236,173,133,180,189, 92,192,227,243, 56,140,129,208, 58,119, 39, 47, 53, 97,152,134,230,232,
+ 21,173, 58, 52, 26,141,160, 40,218, 88, 96,196,164,177,233, 42,100,171, 57, 72,206,210, 32, 51, 87,135,186,213,164,184,120,233,
+136,210,168, 87,237, 43, 77,139,195,227, 91,215,246,114,199, 87,223,172,131, 74, 99,196,139,248, 60,240,133, 66, 23,103,151,128,
+208, 17,159,205, 21, 78,219, 17,129,177,157,236, 49,243,122, 68,188, 50, 89, 52,215,146, 51,107, 52, 26,161, 82,107,249,201,105,
+153,182, 57,185, 10, 43,177, 72,168,114,180,179, 78, 43,109, 93,181,133, 17, 45, 19, 18, 17, 23,125, 90,184, 64,173, 27, 10,149,
+198,128, 91,127, 28,101,159, 8, 44, 44, 44, 44, 44, 44,127,178,163,172, 5,102, 25, 45,153, 68, 4,194, 17,225,122,112, 4,124,
+252, 27, 96,247,241,123,168, 83,191, 5, 18,115, 13, 32,160, 43,236,109,104, 98,214, 60, 85, 8,128,144,190,125, 37,238, 31,125,
+ 84,173, 43, 33,188, 11, 63,108,207,137, 3,128,154,245,242,101, 24,134,128, 16,128, 48,249,134,203,108, 40,110,116,100, 98, 78,
+ 13, 47, 23, 41,158,198,233, 52, 82, 33,159,182,149, 10, 56,142,214, 2, 62,159,203,133,145, 80,154,196,196, 8, 13, 5, 68,153,
+ 35, 87,178,234, 80, 34,115, 61,221,249,195,213,169, 81, 49,217, 65,117, 51,148, 13,179,117, 2, 16, 2,212,173, 38,197,227, 59,
+167,140,201,241, 47, 95,168,146,159,109, 43, 77,139, 97,192,209, 25, 24,132,190,202, 70,150, 66,143,172, 60, 29, 90,119,236,195,
+111,221,165, 47,174, 63, 78, 3, 99,208, 99,213,143,167,114,141, 68, 63, 4, 8,211, 91,176,211,244,221,144, 39,238,169,153, 10,
+ 33,143,203,205,242,173,227,249, 90,192,231, 25,114,114,114, 4,197,215,226, 64, 42, 22, 32, 35, 79, 15, 0,122, 75,175,158,108,
+133, 30,199,239, 36,225,196,209,253, 16,139,197, 32,236, 13,197,194,194,194,194,194, 82, 20, 87,228, 15,191,115,170,224,179,208,
+124,153, 53,168,180,145, 33,112,176,183,131, 72,106,133,200,100, 29,114, 41, 39,100, 42, 9,140,198,252,136, 86, 57,129,167, 82,
+ 71,247, 62,126, 60, 49,238,216,177,180,157,199,143, 39, 22,105,232,253,103, 36,171,240,147, 33,102,107, 82,196,120,241,248,153,
+ 43,217,125, 3, 29,109,105, 14, 71,197,231,209, 26, 46,159,163,227,115,105, 61,159, 75,107,157,173,120,156, 43, 39, 14, 8, 8,
+133, 43, 21,105,170,213,106,116,233,210, 5, 61,123,246, 68,191,126,253, 48,104,208, 32,120,123,251, 57,209, 28, 74, 75, 40,134,
+113, 20,228,162,182, 35, 5,174, 58, 22,127, 28,248, 78,249,248,230,239,161, 70,141,186, 15,138, 91,206, 63, 53, 9, 97, 50,178,
+ 53, 80,235,140,200,204,211, 33, 83,161,131,193,177, 37,126,191,149, 0,149,214,136,232,224, 35,170,212,164,184,233,154,148,151,
+145, 21,156,138, 57,197,255, 37,113,159,126, 50, 42, 85, 46,162, 95,182,109,213, 44,213,193,222,206, 64, 81,127, 70, 94, 41,138,
+130,200,202, 9,182, 54,114, 68,134,156,193,249, 85,157, 85, 0,190, 54,231,120, 22,197, 74,194, 69,223, 64, 23,244,233, 63, 20,
+245, 91,116, 55,199, 88,179, 35,218,179,154,172, 38,171,201,106,178,154,255, 37, 76, 99, 28,154, 62,205,203, 12,111, 50, 64,181,
+ 92,165,168, 83, 77, 10,181,206, 9,106,173, 17, 10,181, 17, 57, 74, 29,114,148,122, 68, 38, 41,241,248,120,213, 75,152, 31,197,
+202,207,248, 73, 8, 0, 42,223,224,153, 27, 61, 17,232,180,223,172, 93,245,237,224, 3,141, 27,105,167,245,114,173,254, 48, 82,
+155, 64, 81,180,138,230,112,245,118,114, 46, 47, 60,252, 97,234,237,107,167,219,137, 12,198,145,202,114,116, 12, 6, 67,118,181,
+106,213, 0, 20, 31,130,199,175,182,184,223,205, 83,115,106,182,239,187,202,113,253,242, 89, 74,154,195,103, 40, 46,255,177, 81,
+175,218,175, 74,126,246, 3,202,177, 31, 52, 95, 20,118,247,193,211, 22, 54,118,213,241, 50, 94, 1,133,218, 0,157,129,129,173,
+140,143,184, 71,231,116,145,225, 65,135,242, 18, 30,238,174,196, 97,219,247, 60,236,177,123,143, 30,221, 7,180,104,209,146,179,
+112,225, 2,248,248,248, 64,165, 82,129,166,105, 84,175, 81, 27,145,207, 31,224,206,169,111,140,202,244,168,109, 0,150, 2, 72,
+181,244, 75,210,114,180, 56, 19,148,130, 83,191, 29, 4,135, 39, 96,111, 39, 22, 22, 22, 22, 22,150, 55, 25, 95,226,115,135, 89,
+ 70, 75,173, 86, 71,182,233,210, 7, 12, 67, 96, 36, 0, 99, 44,136, 60, 49,127, 70,159,140,122,117,100, 85, 75,199, 48,198,123,
+155,119,236,236,217,184,121,123,142,191,135, 12, 57,233, 73,184,115,243,178, 1, 12,185,109,206,246,233,233, 47,242,196,206,117,
+ 6, 12, 30,248,209,225, 81,159, 76,204,106,215,177,163,212,201,201, 69, 19, 23, 31,167,252,121,239,175,250,115,167,143,181, 99,
+ 96,248, 56, 61,253,101, 94,121, 58,217,217,217,223,151, 54, 95, 40,144,181, 6, 80,147,195,165,180,170,212, 23, 22,181, 8, 79,
+139,143,237,255,237, 55,139,163,134,141,155, 33,168, 85,173, 54, 82,178, 57,136,140, 75, 66,248,181, 99,154,248,231,247,127,203,
+137, 11, 25,107,166, 84, 98, 41,243,226, 0,172,191,115,231,118, 64,143, 30, 61,186,119,234,212,137,140, 31, 63, 30,132, 0,127,
+236,152, 68, 50, 34,239, 28, 65,126, 20,235, 85, 37,207, 75,244,181,219, 15,236, 6,181,107,202,181,151,143,197,206,131,167,245,
+ 32, 76, 52,123, 63,177,176,176,176,176,176, 20, 82,249, 54, 90,177, 97,249,249,180,254,106,114,147, 82, 70,236,222,253,203,178,
+ 95,246, 30,104,173,214,106,171, 17,240, 99,141, 6,237,213, 60, 35, 22,154,171,161, 74,126, 25,100,111, 95,183,222,207, 63,110,
+254,250,231,157, 91,219,131, 49,250, 82, 64, 20,161,112, 69,164, 55,142,170,200,100,149,107,150,210,114,183,119, 29,176, 70,149,
+158,158,247,139,165,219,170,210,159, 37,209, 28, 93,245,237, 27,190, 89, 77,211,156,110, 70, 35,195, 99,140,250,151, 70,157,250,
+ 59, 85,234,179,227, 48,187,149, 27, 50,202, 89,246, 4,192,147, 75,151, 46,181,189,116,233, 82,115, 0,223, 35,127, 12,197,160,
+170,156, 23, 77,122,110,231, 47,103,125,249,199, 23,160, 60, 25,134,192, 96,100,162,249, 42,101,103,246,158, 98, 97, 97, 97, 97,
+ 97, 41,100, 60,222, 76, 90,106, 94, 68,235,239, 34, 51,243, 85, 46, 50, 49,173,170, 58,233,233, 47,242, 0,188,209,115, 79, 89,
+ 69,221,199, 47,114,254,135, 23, 57,255,171,236,246,138,148,215,169,192,235, 81, 85, 44,134, 57, 13,217,175, 23, 76,111,133,180,
+180, 48, 5,210, 16,200,222, 67, 44, 44, 44, 44, 44, 44, 22, 27, 46,243, 26,195,179,176,176,176,176,176,176,176,176, 84,104,178,
+138,126, 2,200,111,123, 94, 86,207, 1, 75, 70,230,174, 76,239,131,139,172,102,149, 53,121, 0, 4, 0,100, 0, 42,170,210,236,
+142,130,241, 26,217,227,201,106,178,154,172, 38,171,201,106,190, 67,205,138,180, 47,226, 95,130,101,137,215, 43, 7,219,245,149,
+213,100, 53, 89, 77, 86,147,213,100, 53, 89,205,127, 59,227, 75,153, 64, 8,249,231,180,209, 98, 97, 97, 97, 97, 97,249,187,176,
+183,175, 43, 3, 10,219,245, 86,136,196,193,207, 25, 0,148,105, 97,201,236,209, 99, 41,133,162,227, 28,190,149, 54, 90, 60,154,
+ 43,248, 82, 34,183, 15,147, 90,219,199,255,199, 15, 46,229, 93, 67, 58,181,107, 59,175,223,125,106,138,251, 89,178,161,196,209,
+123,151, 75,237,192, 24,169,147,247, 84,184, 54, 22, 87,165, 16, 82,167,154,142,178,234, 77,111,202,171, 5,124,240, 23,236,163,
+208,223,223,191,165,191,191,127, 75, 0,194,183, 33, 40,113,242, 30,234, 94,167,197, 53,167, 90,141, 46, 75,157,235, 14,124,219,
+ 5,150,185,214,177,151, 85,111,242, 63,153, 91,131, 76,153,107,131, 28,153,123,147,171,114, 7,191, 90, 21,109, 87,189,239,183,
+190, 75,246, 63,222, 95,189,239,183,190,165, 45,183,237,177, 81,190,232,192,139,229,246,125,190,147,177,207,149,202, 81,189,245,
+ 80, 27,215,246, 95,216, 91,186, 93, 53,239, 22, 79,106, 4,180, 77,113,171, 27,248,216,220,109,220,125, 90,134,120,250,183, 78,
+118,247,110, 25,196, 30,121,243, 16, 57,214,108, 41,178,245, 56, 37,180,245, 56, 45,180,171,217,177,170,122,174,174,174, 98, 95,
+ 95,223, 30, 45, 90,180,152,208,185,115,231,207, 27, 53,106, 52,222,211,211,179, 27,222, 97,103, 44,137,147,247, 60, 13,143, 74,
+211,240,168, 52,137,147,247,188,138,159,175, 62,203, 40,218,152, 64,209,198, 4,169,147,207,178,127,202,185, 18, 58,123,123, 74,
+156,188,215,201, 93,252,239,137,157,234,246,177,116,123, 91, 91,219,110,142,142,142, 31,154, 38, 91, 91,219,110,236, 29, 80,105,
+ 10,163, 88, 37,254,174,212,133,206,225, 9, 37, 55,134,125, 50,185,222,202,197,115, 69, 27,118,254,142, 13,203,103, 61,213, 40,
+178,252,255,137,123,238, 80,179,121, 16,135,230,184, 23,157,103,100,140,113,105,175,239, 53,125, 27,250, 62, 53,196, 99,191,158,
+ 61, 98,230,208,193, 93, 60,187,244,158, 78, 61,123,173, 58,102,190, 69, 67,195, 67,255,251,173,250,181, 43,151, 55,238,220,185,
+ 99,105,170,193,103, 29, 79,200,221,156, 19,251, 36,203,146, 50, 88, 57,214,170,201,149, 58, 92,107,211,111,178, 75,240,197, 95,
+119, 27,181, 76, 87,101, 90,145,209,191, 43,143, 99,237,218,181,155,113, 56, 28,251,169, 83,167,242, 1, 96,253,250,245,117,140,
+ 70, 99,122, 68, 68,196,125, 84, 34,249,105,190,193,244, 25,241,253,234, 37,191,124,240, 65, 79, 36,164, 41,176,106,221,150, 14,
+103, 79, 30, 26,164, 72,126,113,228,109,156, 19, 27, 27, 47, 43,240,229,143,166,207, 94,234,212,163, 67, 51, 78,158,218,128,179,
+215, 30,180,253,117,203,210,123,128, 95,243,220,180,176, 50,115,138, 49,202,236,249,206, 50,210,131, 81,102, 3,192,208, 55,126,
+236,101,250, 46,142, 98, 99, 15, 87, 33,247, 65, 58, 80,225,160,143, 54, 53, 90,159,227, 9,133,158, 52, 77,131,166, 0,154,166,
+192,161,168,252,113, 66,117,170,232,248,240,235,221,255, 9,247,137,220,163,121, 18, 56, 92,123,154,250,179,124, 20, 93,240, 73,
+ 72, 78,210,139, 27,246,111,225,107,172,235,213,177, 9,104, 93, 71,241,243,213,215, 25, 82,110,187,207, 79, 81,132,222, 26,115,
+125, 93,168, 89, 6, 64, 36,178, 61,113,226,132, 99,143, 30, 61,172,157, 2,250, 93, 53,103, 27, 1, 39,207,255,228,201,227,252,
+ 30, 61,186, 91,112,125,122,119, 5, 77,239,165, 0, 30,195,144,245, 28,134, 28,202, 75,127, 30, 1, 88, 54,250,148,216,201,103,
+ 44, 13, 98,246,115,134, 1, 21,164, 74,121,182,179,178, 7,151, 43,180,234,204,227,243, 63,175,233, 93,191,113,124,212,203, 32,
+ 69, 94,238, 58,131, 38,251,170,197, 66,122,195,151, 23,175, 7,127,192,229,241,168, 30,157, 3, 57, 26,224,114, 85, 78,186,179,
+179,243,135,155, 54,109,170,213,178,101, 75, 0,128,193, 96,176, 58,124,248,176,203, 55,223,124, 35,125,254,252,121,101, 7, 78,
+173,230,232,232,232, 33, 16, 8,170, 1,128, 86,171,141, 79, 77, 77,141, 1, 80,225,139,191,212,185,150, 3, 8,150, 94,191,118,
+141, 11, 0,109,219,182, 91,230,209,102,138, 45,135, 47, 83,149,122, 56,180,185,210,172,136,203, 51,238,220,189, 77, 1, 64,139,
+192,150,115, 37, 14,126,155,223,101,100, 75,228,228, 19, 72, 3, 51, 91,180,237,210,127,200,199, 35,232,128,186, 30,232,214,181,
+211, 28, 21,112,194,162,107,134,203, 21,223,187,119,175, 54, 77,211, 28,131,193,160,110,209,162, 69, 76, 85,202,229,230,221,242,
+ 22, 5,186,186,206,160,253, 49,245, 85,208, 50,224,141,129, 99, 56,214,213, 27,127, 13, 14,119, 28,195, 48,177,185, 49, 65,173,
+254,133, 17,173, 55,143,179,165, 74, 52, 87,240,249,208, 49,159,213,155,241,197, 87,162,233, 27, 46,225,212,150,185,105,255, 84,
+147, 5, 0, 28,154,227,126,238,252, 57, 39,137,128, 3, 0,200, 83, 27,240, 65,143, 30, 21,255, 34,212,104,126,133,166, 40, 31,
+211,128, 54, 70,131, 78,196,229, 9,212, 84,190, 65, 2, 5,192,193,173,198, 37,103,195, 13,201,208,193, 93, 60,247, 30,184, 16,
+ 23, 19,151,110,241, 67,141,226,240,209,162, 93, 55,116,233,218,221,250,222,221, 91, 75,119,108,251, 97,158, 65,167,255,129,209,
+ 51,235,212, 25, 47, 19, 42,124,152,187,212,109, 34,144, 57,156,237, 63,225, 27,123, 53,109,135,133,203,191,119,184,118,102,223,
+213,248,216,134, 76,116,116,172,154, 80,212,211,204,140,196,207, 21, 73, 17,207,204, 61,100, 50,153,172,150, 76, 38,107,216,160,
+ 65, 3,209,172, 89,179,120, 29, 58,116,248,211,178,143, 31,207,191,114,229,138,235,154, 53,107,122, 62,124,248, 80,157,151,151,
+ 23,154,151,151,247, 10, 22, 52,180,119,113,113,156, 50,224,163, 62,232,212,127, 50,140, 12,133,241,159,205,192,185, 51, 71, 39,
+ 2,120, 43, 70, 75, 47,177,250,102,220,132, 89,142, 45,154, 53,226, 44,221,247, 12, 98, 1, 23,221,155,250, 80, 99,166,206,183,
+217,185,113,233, 79, 72, 67,251,210, 34, 89,140, 50,123,126, 61, 7,237,199,125, 91,214,196,241,253,218,143,209,121, 54,104,137,
+245,178,216,227, 95,133, 3, 64,173, 30, 83,229, 66, 99,234, 38, 55, 27,142,147,208,152,186,169, 86,143,169, 23, 95,157,221,148,
+ 91, 94, 89,120, 66,161,231,254,125,251,234,218,202,249,224,210, 20, 56, 28, 10, 92, 14, 13,181,214,136, 65,131, 63,126,107,151,
+185,216,169,110, 79, 26, 24,147,255,131,141, 93,170,148, 23,167, 45, 57, 39, 20,135,111,127,242,248,111, 92, 39,107, 33, 56, 28,
+ 10, 28, 26,224,208, 20,162,146, 85, 24, 59,118,140,117, 85, 13,251, 7,173,157,154,125, 57,196,167,123,139,122,118, 13, 14,222,
+166,172, 91,124, 48,196, 62, 77, 45, 25,125,224,216,229,143, 73,219, 25,119, 9, 97, 86,199,221,248,254,124,121, 34, 26,141, 38,
+185,123,143, 15,172, 40,174, 84,114,241,247,221,237,184, 52, 5,189,145,192, 96, 36, 48, 22,140,141, 74, 21,188,193,208, 52, 5,
+194, 16,140, 27, 55, 22,221,123,124,160,100, 12, 76,156,249, 15, 57,122,239,217,139, 55, 29, 53,122, 6,107, 54,237, 92,170,200,
+ 78, 93,250, 58,220, 62, 42, 47, 59,109,134, 42,229,133,217,227, 96,208, 32, 77, 99, 95, 61,158,176,239,228, 29,212,243,247,131,
+145,201, 47,167,143,187, 20,251, 78,221,129,175,143,111,126,185, 25, 2,239,234, 50, 52,107,218, 12, 0, 42,101,180,184, 66,249,
+194,246,189, 70, 44,233, 61,232, 19, 56, 57, 58,130, 38,250,222, 23, 79,237,235,189,107,235,234, 47, 13,234,156, 53, 22,137, 17,
+ 99,225,239, 2, 97,152, 42, 71,157,220,220,220, 28,155, 53,251, 51, 29,163,193, 96,128,151,151, 23,226,227,227,125, 42,243,158,
+230,234,234,218,107,209,162, 69, 78, 61,123,246,228,185,184,184, 0, 0,146,146,146,170,157, 61,123,182,241,162, 69,139, 82, 18,
+ 19, 19, 79,161,156,140, 62, 70, 61,205,167,185,224,136, 68,146,252,125, 4, 69,207,154, 50,178,129,179,171,155,166,180,245, 83,
+ 83,147, 4,179, 39, 95,166,184, 92,126,193,250,160, 9, 97,168,114,162, 68, 93,120, 60, 94,169, 53, 20, 58,142, 85, 11,194,179,
+254,148,230,208,249, 23,171, 65,159,154, 25, 19,226,103, 65, 36, 46,128, 39,224,255, 48, 96,200, 39,173, 6,246,239, 7, 87, 71,
+107, 92,188,241, 16, 19,167,204,212, 27,116,250,117,149,122,120,112, 56,220,148,148,148, 40, 91, 91, 91,151,170,255,222, 82, 53,
+ 47,156, 59,227,116,241,143, 75,115,215,110,216, 56, 73,167, 53,232, 25, 66, 10,199, 49, 22,139,133,188,174,189, 7, 91, 57,213,
+110, 33,218,184,232, 83,222,191, 48,162,181,227,173, 24, 45,129, 88, 62,120,193,236,169,162,111,126,189,131, 83, 91, 38,166, 41,
+115,210, 28, 11,223, 20,172,108, 66, 20, 57, 89,141, 43, 83, 66,153,163,119, 75,138,195,157, 64,113, 56, 82,138,166, 4,140,145,
+137, 53,104,181,203, 84,233, 47, 18,171,186,247, 12, 67,240,191, 91, 41,150, 25, 32,130, 58,123, 15,254,230,244,127,246,206, 58,
+ 60,138,227,255,227,239, 61,215,184, 39, 36, 1, 66, 66,176, 0,193,221, 61, 56,197,165, 56,133,210, 66,105,129, 66,177, 2,165,
+ 80,188,180, 64, 41, 80,164,184, 6,119, 43,154, 64, 32, 64, 18,136,251,197, 46,231,126,243,251, 35,210, 64,163,208,254,190,149,
+121, 61,207, 61,201,222,237,189,111,118,119,118,247,189,159,249,204,140,155,189, 0, 58,163, 5,195, 70,140,198,158, 61,123,108,
+ 92,236,248,208, 25,204, 88,179,118,173, 82,149,112,198, 53, 33, 57, 47,181,107,223,217, 23, 99,227,101,207,146,210,117,135,170,
+ 90, 54,189,209, 2,133,198, 12,141,158,133,128,250,205,176,102, 93, 29, 97, 82, 98,220,236,221,187,118,204,124,254,156,189,199,
+202,102, 45,213,165,191, 72, 46,245,164,115,111,208,195,214,193,233,215,129, 83, 86,216,199,200, 56, 32, 48,226,181,173, 16, 67,
+199,205,180,245,115, 23, 65, 34,100,219,199, 37,166,122,204,249,252,243,219,177, 22,210, 92,145, 21, 27, 87, 81,121,170, 87,175,
+ 62, 40, 36, 36, 68,252,217,103,159,113,189,189,189,177,107,255, 97,223,118, 61, 62,232,155,150,158,233, 77, 8,129,155,171,107,
+242,164, 15, 63, 56,125,246,236,217,196,228,228,100,238,234,213,171, 91, 28, 63,126,188, 94, 70, 70, 70,165,159, 76, 45,132, 64,
+167,183,192, 82,120,131,204,202,215, 87,217,159,122,121,121, 9, 82, 83, 83,245, 37,162, 12,204,239,129, 66,166, 71,151, 14, 45,
+ 56,219,206,197, 67,165,179, 64, 34,228, 34, 62, 83,131,166,141,131,152,159, 44,230, 70,165, 9, 78, 24,218,103,161,155,148,244,
+236,215,170, 38, 92, 29,196,216,249,253, 10,156,186, 27,215, 51, 83,197, 96, 51, 97, 79,241, 16,112,186, 73,172,233,155, 59, 54,
+173,229,222,185,137, 47, 30, 54,173,229,126, 51, 44, 42, 90,244,193,218,143, 83, 85,220,203,121,231,103, 42, 75,191,240,176,224,
+104,195,195,207, 23, 18, 33, 22,114, 32, 17,114, 32, 17, 20,252,101,177,152,247,123,170,245,168,235,205,182, 90, 38,176,217,156,
+ 9,195,135,126,224, 57,114,248, 7, 4,108, 22, 14, 31, 61,221,127,223,190,189,233, 38,163, 97,135,133,197,254,185,172,250,243,
+198, 14,101, 1,174,118,124,124,190,227, 25,108, 69, 92,216,136,185,176, 21,115,209,185,161, 11,216,239, 62, 8,140,195,212,254,
+126,189,167, 14,172,222, 41,208, 71, 26,240,228,117,254,243, 9,203, 31,109,184, 46,239,244,233,247,235,235, 57,169,228, 6,206,
+162, 57,147, 56, 41,105,105,157, 14,159,190,209,217, 98, 24, 31,101, 54,170,191,204,138, 56, 92,106, 84, 56, 37,234,110,176, 87,
+203, 33, 66,163,202,244,244, 73, 84, 74,173, 60,189, 0,145, 9, 10, 72,132, 28, 72,139,246,173,144, 3,137,144, 11,169,144,131,
+180,148,120,228,170,217,183, 83,157, 88,157,112,227,174,185, 42, 5,215, 25, 45,120, 28,167, 66,245,192,198,240,240,240,132,161,
+247,168,234,247,175, 30, 61,249,224,198,137,111, 52, 25, 47,191,172,172,206,254,208,123,152, 55,107, 74, 24, 3,132, 23,222,164,
+131, 23,173,218,210,100,217,188,233,111,188, 55,103,233,166, 38,239, 30,201,178, 89,216,121,224, 71, 75,219,117, 27, 8,101,110,
+ 38,126,187,120, 8, 61, 66, 6, 99,212,248, 79, 96,111,239,188,102,221,242, 47,158,152,245,138,171,127,184,230,186,215,105, 27,
+212,160,238, 62, 47, 79, 79,111,171,181, 96,150, 15, 66, 0,149, 50, 31, 95,124, 58, 9, 86, 66,208, 40,184,121,103, 97,187,110,
+132, 20,206, 6,146,157,147,173,142,122,249,188,171, 78, 22,117,191,210,251, 82,167, 51,101,101,101,225,241,227,199,136,142,142,
+ 70,100,100, 36,114,114,114, 96,103,103,167, 82,171,213, 85, 10,222, 55,108,216,112,228,213,171, 87,133, 14, 14, 14,197,111, 26,
+ 12, 6,216,216,216, 96,228,200,145,220,238,221,187,123,245,233,211,103,236,179,103,207,246, 3, 80,148, 90,158,220, 87,105, 54,
+110,129, 91, 59,116,236, 48, 13, 0, 68,182, 30,113,155,119,157,142, 44,247,129,214,206,211,183,117,235, 54,181, 64, 8, 24,144,
+141,154,156,232,140,114,162, 68,146,123,247,238,249,177,217,108,206,239,247, 32, 43,126,216,121,176,206,165, 91, 79, 7,173, 90,
+243,157,208, 86, 34, 64, 86,190, 1, 19, 71, 13,172,244, 61, 88,228, 22,216,187,117,235,246, 39,151, 45,253,138, 35,149, 72,112,
+241,126, 44, 62,254,244,115, 93,122,194,179,239,136,149,187, 69,147, 21, 45,123,207, 91,229,159,210, 61, 46,160,154, 20, 54,253,
+122, 8,167,142,233, 39, 52,152, 44,144,171, 77,208, 27, 45,176, 88, 9,242,213, 38, 60, 79, 82,194,217,182,234, 83,185, 17, 66,
+154, 1,112, 1,144,197, 48,204,195,146,203, 69, 15,116, 69,222,248,173,229,236,194,251,131, 19, 0, 3, 10,122,234, 23, 87,159,
+194,229,178,222, 47,250,254,115, 0,117, 11, 53, 45, 0, 30, 48, 12,147, 87,134,217,250, 67,148,139, 19, 26, 26, 74, 66, 66, 66,
+138,175,248,111, 47,191,141,128,199,245,148,216,185,128,144, 23, 40, 57,129,177,171,187, 87,206,119,235, 54, 56,206,248,104, 74,
+162, 66,158,235, 91,248,246,229,202,220, 44, 56, 12,123, 93,135, 54, 45,187, 79,251,232, 35, 4,250, 85,227, 89, 44, 22,242, 44,
+ 58,206,180,251,231,157,227,110,222,229,111, 80,164, 60, 91, 88, 34, 4, 89,165,110,159, 22,171, 37,229,237, 8,150,197,106,121,
+251,233,246, 15,154, 12, 3,216, 75,249,216,122, 46, 30,132, 0, 12, 8,236, 36, 92, 28,184,158,130,184,176, 99,138,144, 70, 10,
+245,200, 85, 75, 58,119,234, 61,243,234,243,215,186, 67, 50,153,238, 2,128,140,242, 52, 75,191,160, 91,161, 55, 90, 96, 50,155,
+113,228,244,105,244,236,220, 2,173, 91,183, 64,251,118,173, 57,143,194, 34,198,127, 52,109,146, 55,126,239,221, 81,172, 41,116,
+243,111, 38,181,115, 62, 52,104,218,106,155,167, 41,102,112,216, 64, 77,119, 17, 28,109,120, 48,152, 25, 36,100, 25, 11,207, 28,
+123,124, 60,103,169,227,188,217,211,206, 42,178,248, 13,128, 23,198,242,182, 93,163,209,240, 71,143, 30,205, 53,153, 76,198,145,
+ 19, 63,233,158,145,145,213,255,135,141,223, 10, 92, 93,221,160,209,153, 17, 22,249,170,238,178,101, 75,107,158, 62,127,253,196,
+146,207,167,158,236,217,179,167,221,193,131, 7,173, 21,237,207, 55,158, 16, 51,179,191,223,185,239,200,158,245,223,173, 68, 84,
+ 98, 30,126,222,182, 5,196, 98,222, 90,193,174, 42,169, 73, 70,143, 30, 45, 58,113,226, 68,181,148,148, 20,133, 70,163,201,122,
+ 35, 30,193, 98, 56,153,185, 26, 56,219,240,193,227,176,224,230, 32,132,171,157, 0, 92, 54,192, 98, 24, 75,105,154, 63, 31, 58,
+179,220,170,201,199,169, 95, 13,195,119,126,191, 2,227,103, 44,192,179,108,254,121,150,216,110,249,244,225,131,230,185,136, 44,
+ 61, 61,237, 89,174,157,155, 84,135, 68,200,195,252,153,163,209, 60, 44,193, 53, 85,110, 93,144,165,101, 55, 94,122,190,120,178,
+238,203,111, 6, 71, 10, 34, 88, 54, 98, 46,206,239, 91, 35, 83,231,103,229, 23, 53,201, 25,244,186,196, 74, 86,227,203,165, 60,
+217,206,107, 28, 84,127,197,180,201, 19, 88,109, 90, 53, 39, 44, 22, 23,217, 74, 3, 67, 8,240,233,199, 83, 49,125,234, 36,247,
+228, 52,217,162, 45, 91,182, 46,188,122,137,124,173,206,122,185,164, 60, 77, 22, 83, 16, 5,146, 10, 57,144,138, 10,140,139, 84,
+200,129,206, 96, 1,195,128,109,239, 19,156,207, 20, 68,114,211,114, 19,203,124, 2,127, 67,211,209,167,254,149, 75,113, 54,117,
+242, 14,229,221,141, 79,139, 92, 30, 22,145,249, 0, 64,174,119,123,251,177, 70, 51,129, 74,103, 70,124,166, 6,102, 35, 97,198,
+247,242, 69,141, 33, 76,224,202,157,225,123,206, 69,192,182,196, 69,255, 13,205,212,123, 71,116, 78, 13, 6, 14, 91,191,105,219,
+195,239, 86, 44, 96,103,231, 27, 96, 37, 4, 66, 62, 27, 34, 62,167,240,197,134, 86,157,143, 45, 63,254,148, 97, 6, 51, 8, 55,
+110,152,171, 82, 63, 97, 37,163, 6,246,110,127,128, 1,248, 12,139,151,226,233, 91,221,183, 75,223,113,194, 46,253, 70,195, 98,
+ 54,204, 11,187, 69,174,105,100, 81, 87, 42,163,217,160, 94, 93, 48, 64,184, 90, 22, 61, 21, 0, 36,174,181,183,214, 9,172,211,
+228,237,247,252,253, 3,155, 84,230,184, 23, 71, 74,133, 54, 51, 28, 28, 93, 22, 4,214,111,236,154,153,167,103,108,156,170, 33,
+ 62,230, 49,126,253,113,209, 94,171,206,176,244,202,153, 67, 43, 54,252,124,124,104,151,158, 3,177,243,135,111,231,231,164, 23,
+ 27,173,203, 37,162, 85,163,118,239,216,238,205,229, 11, 96, 50, 91, 97,178,144,130,191,102, 11,114,115,243, 96, 50, 91, 33, 20,
+219,192,108,101, 96,178, 88, 97, 50, 91,161, 55,152, 37, 83, 71,247,249, 72, 7,220, 47,173,156, 94,117, 58, 92,224, 9, 4,190,
+ 4, 5,115,215, 18, 66, 16,159,161,101,121,120,120,236, 7, 0,129, 64, 0,129, 64, 0,171,213,138,176,168,172, 25,206,129,181,
+167,161,208,224, 89,140,134, 68,121,194,157, 30,101,109,187,187,187,123,223,183, 77,150, 78,167,131, 74,165,194,173,187, 15,237,
+118,236, 57,210, 51, 62, 49,197,207, 74,236,244, 54,174,126, 61,148,178,216,190,101,237, 79,101,102,212, 71,182, 45, 39,177, 62,
+155, 62,214,127,211,238,208, 7,175, 46, 44, 47, 55, 79,171, 70,151,185,134,207,166, 12,110,186,106,227,207, 49,121,119,182,206,
+170,232, 24,113, 56, 28,110, 86, 86, 86,241,249,189,249,167, 95,155,134, 71,165, 14,216,176,126,131, 48, 44, 86,137,167,241,105,
+ 24,219,213,167,224, 9,167, 18,199, 93,226,230,231, 92,179, 86,173,253, 91, 54,174,226,196,164,233,240,253,177, 7,184,122,114,
+235,173, 12,217,253,158,200, 76,215,190,203, 53,228, 79, 48, 90,101,106, 94,139,200,134, 74,103,134,222, 96,134,201, 74,160,208,
+152, 32,147, 27,160,208, 24,161,210,154, 49,182,155, 79,169,223,171,192,143,184, 48, 12, 19, 74, 8, 9, 33,132,116, 5,192, 47,
+ 90, 46,184,103, 51,161,133,134,236,141,229,121,243,230,125,249,205, 55,223, 68, 22,173, 91,244,126,209,186,229,189, 95,226,251,
+ 78,243,231,207,111,176,106,213,170,149,173, 90,181, 58,240,219,111,191,197, 1,200,171,108,243, 33,167,228,198,132,134,134, 86,
+180,163,253,140, 38,163,192, 86,196, 69,205, 26, 62,248,240,203,157,206,191,172,154, 32, 19,242, 57,236,115,231,206, 57,230, 24,
+164, 96,177,216,149,126, 68,145,186, 4,180,230,241,248,103,214,174, 93,139,225,125,219,137,146,178, 77,170,136, 36,109,166,218,
+ 0,179,171, 75,109,254,242,149,171,164,171, 86,175,153, 30,122,202, 42, 87,101, 62, 95, 83,122, 19, 95,211, 71,108,166, 68, 14,
+ 22,195,128, 88, 45, 41,121, 9, 15,155, 2,192,251,228, 98,169,116, 38,176, 11,115,107, 24, 6,208,232,204, 96,179, 25,153, 60,
+234,208,243,145, 95, 47,239,188,247,192,165, 52,194,178, 87,170,213,241, 98, 20,204, 57, 88,101,116, 6, 11,244, 38, 11, 34,159,
+132,161,125,203,122,104,221,180, 14, 52, 58, 11, 52,122, 51,106,212, 10, 4, 0,231, 82, 15, 28,155, 21, 71, 44, 38, 29, 33, 22,
+155,144,102, 46,112,181,231,195,195, 65, 0, 1,159, 3,147, 25,208, 26,172,208, 25, 44, 72,144,105,161,212,138, 16,212,225,131,
+154, 78, 30,143,244, 25, 9,162, 19,185, 73,143, 6,149,107, 78, 45, 22,236,222,127,196, 63, 45, 45,179,255,217, 19,251, 4, 89,
+ 10, 19, 34, 18,212,144,201,245, 0,219, 5,139, 87,126, 47,152, 59,107,242,128,221,191, 30, 77,236,210,174, 69, 98, 85,183, 89,
+147, 21,181,247,208,225, 35, 91, 67, 66, 6,136, 34,239,159, 69,204,227, 43, 43,212,178, 42,229,103,177, 26, 53,106,100,158, 60,
+121,178,114,229,202,149,222,167, 78,157,170,145,149,149,245, 24,128,201,222,222,190, 78,109,127,223, 39, 23,207,159,243,234, 51,
+224, 3,110, 74,182, 22,118, 98, 30,124, 93,197,184,123,235,130,137,207,231,150,154,111, 82,216, 60, 56, 2, 93,190,192,169,187,
+113, 61, 35,115,132,215, 39, 77, 24,155,120,241,102, 84,206,230, 61, 23,191,245,146,154, 30, 11,173, 89,155, 31, 53,173,229, 62,
+239,227,209,248,102,211, 94,220, 8,139,146,169, 89, 30, 43,210,245,230, 75,101,135,210, 1, 14,155,129,141,136, 11,181, 34, 43,
+255,117,248,249,218,127, 82,152,122,236,197, 19,123, 89,185, 74, 19,146,179,117, 76, 90,174, 18, 22, 43,129,189,152, 7,179,149,
+ 64,158,155,205,236,219,187, 7, 15, 31,222,101,129,205,154, 8, 96, 73,185, 59,148, 41,104, 42,148, 10,185, 5, 17, 33, 81,193,
+ 95,147,197,138, 64,255, 90,216,190,121,157,173,179,171, 27,218,182,175,124,110,180,141,147,111,163, 3,187, 54,227,250,111,225,
+ 29,111,108,248,190,153,212,211,101, 19,195, 88,190, 3,129, 78,111,180, 32, 95,158, 7,190, 33, 25,205,189,178,224, 40,182, 32,
+ 65,225,129,103, 25, 49,210,138, 46,248, 57,207,142, 63,102,200,128,133, 71, 78, 95,253,166, 71,183,142,120,150,160,128,136,207,
+129,144,207,134,144,207, 6,151,177, 96,221,143, 91, 77,121,249,202,144,156,200,147,217,239, 80, 63, 47, 23, 62,253, 22,152, 59,
+139,202,101,239,166,133,191, 76,250, 98,117,143,158, 3,199, 49,207, 30, 94,251, 82, 3, 92,169,220,131, 30,169,212,123, 86,107,
+229,239,113, 66, 27,231,141, 51,231, 46,159,217, 61,228, 3,176,217, 28,152, 76, 38, 28, 61,184, 23,187,190, 95,252,210,160,202,
+ 25, 7,192,106,144,177, 39, 31,218,251,227, 7, 95, 44, 90,199, 52,104,212,188,197,181,244, 63, 78, 71,107,101, 51,219,198, 76,
+152, 50,204,205,205,205,230,247,136, 22, 65,237,192,122,232,221,111, 48, 46,156, 60,142,231,145, 17,176,146, 2,195,100,181, 18,
+200,243,114, 50,204, 38,195,238, 50, 91, 60,132, 66,223,157,187,246, 4,176, 88, 12,140, 38, 43, 12,102, 43,102,125,244,161, 97,
+234,167, 95,182,237,221,189, 67, 36,159, 13, 69, 66, 82,186,253,221,240, 23, 65, 86,174,212,123,194,156,117, 60,157,222,130,124,
+141, 9,103,127, 46,219,235, 8, 29,124, 90, 85,111,210,123,194,212,175,182, 11, 4,108,150,177,126,109,239,184, 14, 45,235, 39,
+251,120, 58, 43,151,173,250,190,249,237,251,225,189,135,142,156, 32, 28, 91,167, 9,227,233, 36,178,249,112,228,192,134, 22,179,
+113,140, 38, 55,185,204,241, 5,185, 98, 7,185, 79, 13,127,205,239, 17,163,218,199, 24,130,154,111, 56, 15, 6,113,218,204,232,
+ 65, 0,224,225,233,163,227, 10,108,149, 85,136,192, 16, 0,216,244,211,175, 77,159, 68,167, 77, 90,191,126,131, 56, 44, 86,137,
+199,177,249, 16,240, 88, 48,154,172, 96, 42, 25,212,182, 18,246,148, 5,243,231,217,230,169, 45,184, 30,145,133,200, 71,215,136,
+ 65,165, 27, 41, 54,219, 14,130,171,205, 24, 0,181, 0,188,102, 24,178, 77,157,233,126, 18,184, 97,174,106,189,183, 90, 11,158,
+151,109, 93,252,106, 90, 56,130,222, 92,190,164, 21,195,144,250, 12,129, 3, 64, 82,115, 11,239,169,149,117,106,234,204,104,172,
+ 94,185, 8, 27,119, 28, 71, 90,142, 14,118,150,100,156,252,121, 57, 62,251,102, 63,180,250,178,179, 26, 42,242, 35,165, 25,163,
+183, 13, 87,209,255, 69,235,125,243,205, 55, 33,111, 29,155,144, 50,142,217, 31,214, 43,250,254,170, 85,171, 86,150,248, 92, 83,
+ 89,147, 85,108,180,138, 54,170, 2,179, 85,219,197,195,247,183,147, 39,142, 57,228,169,140, 16,242,216,240,169,225,143, 37,155,
+ 79,186,244,106,234,140,108,163, 29,126,221,254, 93,174, 78,163, 60, 88,169,139,133,107, 96, 11,145, 84,114,246,216,209,227,240,
+243,113,229,237,187,149, 27, 31, 30,167, 45, 14,245, 42,178, 18,249, 53,108, 53,156, 65, 3, 7,138,175, 92,189,246,169, 10, 40,
+213,104,177, 25,118,181,159,246, 28,117,181, 17,113,193, 48,128, 82,107,198,164, 49,131,223,255, 54, 70,172,236, 9,227,198,130,
+ 41, 52, 89,138,156, 12,124, 57,247, 35,157,196, 20,243, 60, 41, 33, 41,181,107,223,207,174, 40, 84,140,110,216,232,143, 30, 62,
+143,254, 38, 79,163,121,183, 73,126,244, 6, 11,244, 70, 43, 98, 99, 95, 99,214,216,110,224,178, 89, 96,179,173, 5,201,210,230,
+178, 43,163, 42, 45, 58, 23,238,188, 33,123,215,206,248,201,211,205,213, 73, 42, 17, 17,169, 88,192,212,175, 19,192,107,217,178,
+ 53,191, 70, 96, 67,222,173, 23, 90, 36,101,105, 17,151,150, 15,129, 91, 99,206,240,206,189,176,119,195,156,142,185, 73,143, 88,
+248, 99,146,226, 27, 92,186,126,175,239,142, 31,215, 11, 50,229, 70,188, 76, 82, 33, 35, 79,135,244, 60, 61, 50,114,117,144,138,
+184,104,223,111,178,224,204,201,109,125,187,180,107,177,233, 93,182, 59, 46, 46,254, 76, 66,106,250, 7, 13,131,155, 99,239, 47,
+187,218,217,219,215,176,149,203,227, 21,149, 61, 58,203,151, 47,231,175, 90,181,138,179,121,243,102, 69,203,150, 45,221,231,207,
+159,223, 67, 38,147, 61,168, 94,189,122,224,133, 99,187,175, 54,110,223,191, 25,172, 70,151,118, 29, 58,241, 4, 86, 14, 46,134,
+134, 26, 15, 29,220,151,163,213, 42,167,150,107, 56,196,118,203, 51, 85, 12, 92,188,188, 34,165,124, 75, 55, 14, 75, 30,157,119,
+126,230,158, 60,224,152, 95,207,143, 47, 95,123, 20, 21,221, 52, 44,193,245,106,216, 43, 89,174,198, 88, 59,246,252,103,229, 94,
+120,217, 12, 3, 46,155, 5, 27, 17, 7,172,194,171,170,212,179,225, 43, 48,140, 75, 81,228,148, 1, 83,248, 23, 96, 24,164,229,
+ 37, 61,174, 68,206, 6, 67,172, 4,136, 74, 81, 67,165, 43, 8,205, 87,115, 22, 35, 43, 51, 5, 63,108,218,141,240, 71, 15,209,
+189, 87, 63,108,249,105, 31, 38,141,249, 64, 87,209,211, 15,139, 85, 24,209, 42, 17,205,146,138, 56, 0, 24,200,213, 38, 28,189,
+157,140, 90, 53, 89,149,190, 49, 0,128,141, 84,140,124,165, 22, 44,158, 13, 94,135,157, 21,159,187,118,127,254,194,175,215,127,
+158,151, 30,145,244,234,233, 45, 4, 58,231,163,166,151, 17,145, 25,182,120,148, 83, 3,129,254,126, 96,241, 30, 86, 74, 59, 59,
+ 50,104,245, 73,214,209,144,166,141,235,181,242,117,181,135,214, 96, 41,140,106,177,177,107,231, 30, 36,196,167, 76,200,121,126,
+ 50,252,207,112,180,106, 89, 92,150,192,213,127,250,211,251, 87,226, 6,142,156, 14, 15, 47,159, 70,242,164,199,149, 78, 91,168,
+204,123,150, 74, 26, 45,158,216,126,254,172, 5,223,206,236,222,103, 8,238,221,186,130,199,145,175,209,162, 69, 51,244, 26, 48,
+ 28, 74, 69,110,157,195,123, 54,116, 51,107,148, 23, 56, 2,243,204,230,173, 59, 51, 86,139, 5, 49, 47,159,189, 46, 77, 75,155,
+ 30,245,248,110,122,148,237, 27,205, 83,206,117, 26, 73,237, 28, 31,235,141, 22,164,166,166,224,206,111,215,131,181,233, 81,143,
+171,178,191, 4, 60, 54, 46,134,203, 96, 52, 89, 97, 52, 91,209,190, 67, 55, 3,143,165,111,183, 98,253,206,150,233,105,233, 44,
+137,173,179,213,209,171, 46,207, 67, 96,212, 63,137,205,231, 25, 77, 86,248,121, 74,202,213,116,241,244, 95, 57,103,206,172,186,
+108,158, 8, 74,181,222,144,158,150,234,190,253,215,107,170, 23, 47,159,122, 85,115,181,179,253,118,195, 54,158, 66,199, 64,150,
+175, 71,174, 82,193,140,156,242,133,231,142,239,191, 25, 85,158,209, 42, 37, 93,164,230,153,139,183,234, 56,216,240, 24,149,206,
+108,205, 81, 24, 45, 35, 7,188, 95,167,203, 66,147, 53,121,253,186, 13,226,240, 88, 37,158,196,230, 67,200, 99,131,207, 99,193,
+ 96,178,162,146,167, 19,203,221,213,125,106,235,166, 65,184,240, 56, 27,108, 54, 11, 90,101,158,134,131,156,232,166, 29,187,139,
+155, 52,111,137, 78, 29, 59,224, 85,116,148, 79,232,169,163, 93,238,222,185,145, 97, 54,214,158,161,206,138, 62, 94,165,192,130,
+ 70,195, 54,241,221, 63,244,240,170,222,102,208,240, 15,237,124,125,188, 24, 87,103, 39,152, 9, 7,147,199, 12,174,244,153, 95,
+ 96,204,129, 85, 95,207,135, 94,111,128,139, 61, 31,132, 0, 59, 55, 45,129,193, 96,128,167,147, 0,249,234,178,103,147,171,200,
+143,148, 21,133,170, 82,238, 73, 9, 51, 86,222,251, 12,195,132,206,155, 55,239, 75, 0,100,222,188,121, 95, 22, 45,127,243,205,
+ 55, 90, 0,105, 21, 52, 29,110,127,195,104, 21,109, 92,217,103, 55, 47,208,217,201,227,238,197, 11,231,237, 78, 60,177,226,222,
+241, 71,232,211,194, 3, 60, 14, 11, 98, 59, 79, 60,137,207,199,153, 99, 63,202, 79, 30,216,150,170,215,235,215, 84,220,214,236,
+223, 84, 42,150, 92,248,101,239, 65,171,179,147, 19,235,135,139, 89,177, 57, 74,115,113,147, 86,244,253, 83,214, 71, 23,182,123,
+ 16, 48,231,133, 66,161,191,193, 96,112,168,232,192,238,188,152, 88,152,196,203,252, 25,215, 86, 48,108,182,101,239,190,189,112,
+182,229, 67,111,178, 98,222,231,159,104,199,118,151,202, 71, 14, 29,222,185, 83,239,153, 87,185,146,128, 43,173,131, 3, 72,227,
+198,141,229,108, 54,187, 82,169, 20,174,174,174, 75, 88, 44,214, 8, 62,159,111, 99, 48, 24,148, 6,171, 78,172,214, 25,160, 51,
+ 2, 26,141, 14, 92, 94,129, 89,228,178, 25,104,117, 6,104,180,134,242, 79,140,140,103,183, 1,212, 86,148,136, 41, 93,121,225,
+199,223,127,248,228, 39, 67,134, 14, 91,232,213,104,128, 52, 62, 61, 31, 60,198,136,102,117, 61,112,237,252,113,146,146, 16, 61,
+171, 34,147, 5, 0,178,172, 92,111, 23, 23, 55,132,199,169,144,154,163, 69, 70,161,201, 74,207,211, 67,169, 85,162,161,175, 39,
+228,249,249,222,239,188,127,129,227, 23, 46, 92,248,160,119,255, 97,152,249,249,210,182, 63,255,248, 93,132,132,207, 29,175,206,
+140,185, 94, 25,163,245,236,217,179,220,185,115,231,214,250,233,167,159, 88,163, 70,141,210, 6, 5, 5, 9, 71,143, 30,221,118,
+207,158, 61, 66,177, 88,168,125,114,235,212,194,137, 31,207,235,191,125,227,242, 70,121,121,121,140,217,100, 58,103,204,203,155,
+167,170,192,204, 37,159,250,242,229,226, 88,227,184,110,237, 92, 78, 57,138, 89,245, 5,196, 48, 28,117,151, 28,196,139, 37,198,
+216,243,155,149,162, 15,214,126,156, 38,183, 46,208,177, 92, 87, 84,100,178, 0,128,197,102, 96, 48, 91, 96, 35,226,130,197, 98,
+ 21,153,120,143, 93, 7,207,137, 93,236,248,224,178, 89,224,176, 25, 40, 52, 38,100, 43,140,152,254, 97,255, 74, 63, 9,152, 45,
+ 4, 90,131, 25,154,194,167, 67,165, 34, 27,243, 63,159,141, 94,125, 7, 98,226,212,217,200,211, 2,143,226,148, 48,154, 76, 21,
+158, 20, 44,134, 5,141,222,140,241,221,125,145,171, 50, 66,173, 53,195, 96,182, 66,204,231,128,203, 97, 65, 34,228,192, 86,204,
+ 5, 8,225, 21, 93, 76,184, 92,174,206,100, 50,237, 45,231,137, 30, 53,188,221,160, 53,177,208,124,216,119,232,218,170, 54, 34,
+111, 31,229,220,184,247,180,230,167,159, 47,192, 39,147,250,226,200,203, 90,112,116,245,133, 84, 34,130,137,176, 0,144, 74, 38,
+236, 45,177,178,140, 3, 71,108,253,105,103,212,178, 69,243,132,114, 53, 3, 1,143,141,171, 87, 46,227,238,253, 71, 27,179,159,
+159,220,139, 63, 17, 46, 97,185,217,218,218, 66,200,103,195, 96,212, 27, 42,159,186, 64, 64,128, 96,137,107,237,173,133, 79,252,
+193, 22, 43, 74,121,175, 98,163,197, 17,218,206,155,241,249,178,149,221,251, 12,193,197,208, 35, 56,124,228,160,165, 85,207, 9,
+236,125,187,126, 68,219,174,253,208,182,251, 48,156, 59,190,103,182,218,202,212,155, 60,115,225,215,237, 59,247,198,197, 51, 71,
+144,153,145,178,182,178,229,101,115,153,153,157,187,245,133,206, 96, 65,187, 46, 33, 56,127,250,248,199, 40,236,100, 81,249,155,
+216, 91,215,103,176,204,179,103,205,228,202,228, 6,110,150,194,128,148, 44, 13,226, 51, 53, 56,121,224,103, 82,249,235,133,161,
+ 89,251,134,213,184,147, 87, 95, 77,246,174,230,161,231,234,181,162,232,215,177,117, 38,126, 56,150, 91,211,191, 14, 75,150,175,
+ 71, 86,190, 30,217,249,122,168,116,102,248, 87, 11, 96,153,204, 76,171,170, 30,103,103, 59, 62,119,203,233, 56,216, 74,184,104,
+ 93,231,221, 59,218, 90,173,214,223, 77,214,250, 2,147, 21, 17,151, 15, 1,143, 13, 1,143, 5, 1,143, 13,179,133, 84,234,193,
+ 69,228, 90,187,247,244, 25, 31,121, 26,204, 64, 78,190, 1, 28, 54, 3, 87,103, 7, 73,179, 70, 35,176,243,187,143, 1, 0,147,
+230,254,128,137,227, 71,163,110,253, 32,200,243,242,220, 71, 12,233,189, 30,192,241,202,150,245,236,197,235, 62, 23,111,134,207,
+157, 62,103,177,116,104,223, 78,236,199,177,249, 72,207,213,227,117,180,178, 74,145, 55, 0, 48, 91,172, 32, 32,216,125, 48, 20,
+ 34, 62, 7, 89,249, 70, 16, 66,176,124,243, 33,216,136,184, 72,207, 43,104,238, 47,143,114,253, 72, 57, 17,169, 42, 68, 27, 67,
+ 80,144,203,229, 82,217,136,214, 55,223,124, 19,249,205, 55,223,148, 26, 33, 43, 97,178,222,109, 82,105, 30, 79, 82,199,214,201,
+249,222,197,243,103,109,142, 63,177,224,218,147, 28, 12,105, 87, 13,170,220, 36,172,249,124,104, 46, 3, 98, 96,177,217,114,189,
+ 86,115, 76,171, 85,175, 0, 96, 44,183,210,184,215, 14,150, 8,165,151,183,108,255,197,236,236,234,138,189,183,114, 83,242,212,
+102,211,239,205, 86, 38,230,209,133,237, 53,205, 86, 83, 79, 93,230,171,135, 21, 61,137, 91, 9,120,223,252,120, 18, 0,129,213,
+106, 5,177, 90,193, 21, 74, 37,206,126, 45, 51, 11, 47,116, 66, 14,139,209,149,188, 2, 16,171, 57, 37, 59,174,252, 48, 40, 3,
+192, 78,204,197,193, 27,169, 0,144,201, 86,134,189, 24, 57,180,160,185, 80,103, 16, 42,234,215,170, 69,154, 53,107, 38, 23,137,
+ 42, 53,252, 21,219,205,205,237,193,194,133, 11,235, 76,156, 56, 81,192,231,243, 97, 54,155, 29,183,109,223,110,221,190, 98, 18,
+ 6,125,188, 5, 60,190, 0, 90,157, 17, 92, 46, 7,121,249, 42,200, 21, 26, 40, 53,166,170,215,160,216, 88, 67, 22,176,250,196,
+113,254,192, 30,210,134,205,249, 44, 30,154, 4,122,224,218,133, 19,228,222,249,157,147,180,178,232, 95, 42, 89, 17,161,210,153,
+144,150,163, 67,106,142, 14, 25,121, 58,100,228,234,145,145,167, 3,195, 48,208, 25,204,239,117,227, 82,203,162, 14,239,253,101,
+ 71, 63,189, 17,195,219,119, 31,136,217,139,183,248,238,221,186,234,114, 28, 97,181,169,100,162,173, 37, 50, 50, 50,225,195, 15,
+ 63,108,244,235,175,191,178, 27, 52,104,160,125,241,226,133,184,208, 68, 26,165, 82,177,232,231,239,191,185,208,188,121,243, 3,
+169,209, 47,175, 22,182,167, 87,120, 97,247,237, 48, 78, 32, 50,134, 79,246,145,180,238,225,231, 46,134,143, 68,217,163,142,244,
+201,154,156,206,159,172,204,186,186, 81,150,174, 55, 95,202,210,178, 27,167,170,184,149,202,193, 51,233,117,137,131,134, 12, 7,
+155, 97,193,168,211, 36, 22, 85, 46, 87, 59, 62,150,236,123, 9,169,144, 11, 27, 17, 7, 82, 17, 23,109,235, 57,162, 10,215, 51,
+ 98,178, 88,161,209, 91,160,213,155,161, 51,152,225,236,237,128,159,246, 30, 70,146, 76,139,147, 15,179, 17,149,168, 68, 64, 53,
+ 9, 8,169,248, 50,105,181,152,212,125, 7,143,178, 97,179, 24,176, 89, 12,171, 94,157,218,200, 85, 25,193,227,176,192, 19,138,
+ 32, 17,112, 96, 43,226,130,199,227, 66, 38,147, 65,175,215,195,199,199, 71, 88,190, 21, 36,176,145,138, 16, 80,211, 19, 70,147,
+ 25,103,111, 62,199,138, 89,131,208,173,125, 83, 48, 92, 41, 94,234,131, 97,227,104, 3, 43,139, 5,163,217, 10,131,209, 2,128,
+165, 43, 75,207,219,219,187,179, 68, 34,145,104, 52, 26,101, 82, 82,210,245,140,168,227, 73, 22,118,255,201,231, 47, 94,221, 27,
+210,171, 27,194, 35, 34,113,228,248,169, 91,217, 78,249,115,138,190, 83,191,126,253,150,206,206,206,210,156,156, 28,197,179,103,
+207, 30,188,235,115, 1, 97,177, 62,109,213,182, 35, 84,114, 25, 50,147,227, 43,253, 20, 93,215,215, 6, 95,125,179,165, 73, 96,
+237,192, 38, 22, 82, 96,188,234,249,216,224,179,197,155,154,212, 10,168,221,164,168, 67, 72, 93,159,242,135,101,227,136,109,186,
+143,153, 56,251,155,126, 67,198,225,234,197, 83, 88,183,226,243,189, 18, 59,151,186,142, 14,118,141, 27,180,236,142, 91,151, 79,
+ 65,104,227, 14, 7, 39,247,182,163,198,207,232, 58,100,212, 20,220,189,117, 25, 27, 87,125,185,199,162, 87,238,175, 76, 89, 37,
+174, 53, 93, 26, 5, 55, 31,105,227,232, 6,121,190, 18, 54, 14,174,168,219,176,217,200,231, 79,244,115,213,178,184,172,119, 54,
+ 29,132, 64,111, 36,200, 83, 25,145,156,165, 69, 66, 70,129,209,178, 90,171,144, 19,100,177, 50, 82, 33,135,227,104,122,229,243,
+244,242, 85,226,235,237,198,172,254,250,115,182, 17, 66,100,201, 11, 76, 86,150,194,128,172,124, 3, 84, 58, 19, 28, 37, 28, 88,
+ 45,214, 42, 63,117,231,169,140,176, 17,115, 97, 39,230, 85, 58,202, 88, 26, 63,238, 58, 24,248, 36, 58,109,192,186,117, 27,196,
+143,227, 74,152, 44,110, 65, 52, 75,192, 99,195, 98,181, 2,149, 56,227,185, 28,238,204,254,189,187, 34, 57, 91, 91,208,107,153,
+197, 32, 32,168, 57,156, 69, 86,116, 25, 54, 15, 0,208,183,119, 65,106, 91, 92,186, 26,167,239,101, 1,111, 38,118,151,127, 45,
+214,106,217,219,247,157,249,244,240,161, 3,118, 58, 11, 7,219,206, 37, 64,163, 55, 67,200, 99, 67,192, 99, 67,196, 99,191,145,
+143, 93,177,209, 42,200,185, 75,202, 54, 65,163,211, 65,161, 53,129, 0,120,240, 74, 5,173,193,140,124,181, 9, 45,235, 56,188,
+ 95, 32,132, 97,206, 16, 66,250,188,109,136,222, 54, 75, 37, 34, 82,165,105, 60, 44,169, 81,180,126, 89, 70,174,100,206, 22,128,
+ 42,245,224,226,188,237, 28, 75, 46,243, 36, 14,117,237,108,236,238,157, 63, 23, 42, 61,254,196,138,235, 17, 5, 38,203,164,205,
+198,218,185, 35, 82, 20,242,236, 78, 0, 98, 43,251, 99, 98,231,186, 13,133,124,193,213,111, 55,108, 51,186,186,121, 89,143,221,
+147,203,242, 53,150, 55,220,132, 69,175,103, 17, 43,225,233, 50, 95, 85,170, 13,129,197, 98,140,139, 63, 30, 8, 43, 33, 88,178,
+225, 48, 86,206, 25, 6,169,104,148,152, 97, 24,177, 90,103,198,172,165, 59,176,246,171, 9, 54, 98, 1, 7, 12, 83,144, 19, 53,
+102,248,192,202, 85, 64,157, 25,175,239,255,170, 82,198,133,190, 40,217, 92,216,162,109,175, 71, 45, 90,180,144, 59, 56, 56, 64,
+ 36, 18,253, 30,169, 40, 3, 55, 55,183,175, 22, 47, 94, 28, 56,117,234,212,226,193, 62, 57, 28, 14,166,127,244, 17,203, 98, 33,
+ 56,119,110, 39, 92,170, 7,227,212,165,123,232,217,185, 25, 84, 26, 29,114,229, 74, 88,193,126,231,138,168,148,103, 95,205, 72,
+120,218,188, 77,167,190,184,126,225, 4,185,119,238,231, 73, 85, 25,163,199,193,209, 33, 57,236,233,235,186, 12,227, 88, 16,209,
+ 42, 52, 89, 6,147, 21,190,110, 98, 36, 39,188,134,189,157, 93,114,101,245, 68, 46,129,253, 25, 22,153,202,128,236, 84,103,198,
+ 28, 6, 64,212,233, 47, 70, 28,222,191, 61, 34,242,217,227, 21, 33, 35,103,114,186, 15,249,136,189,245,155, 25, 95, 2,168,236,
+192,123,198,168,168,168,231, 19, 38, 76,104,125,247,238, 93, 11, 0, 13,195, 48, 38, 54,155, 45, 54, 24, 12,188, 78,157, 58,229,
+191,124,249,242, 6, 74, 79, 90,124,131,182, 31, 30,118,102, 4,202, 94,124,171,113,132,175,141,178, 91,167,118,173,208,170,190,
+ 55,146,219,181, 2,128,153,137, 42,105,160,174,214,142,131, 38,179,232,236,214, 93,167, 87, 78, 26,214,117,214, 94,206,146,117,
+233,161, 75,202, 77, 68, 77,126,113,163, 71,105, 54,158,195,102,193, 70,196,133, 84,196,129,141,136, 11, 27, 33, 23, 38, 51,169,
+202,147, 35, 49,153,173, 5, 17, 45,131, 25, 42,173, 25, 87, 31,103, 34, 35,223, 0,185,210, 8,173,209, 2, 2, 82,240, 52, 90,
+137,171,121,214,171, 59,246, 69,119, 82,123,159,224,252,237,155,191,179, 61,122, 59,165,184, 71,159,157,152, 15, 27,113, 65,111,
+236,155, 55,111,194,201,169,226,167,125,171,213,138, 35,231, 31, 96,221,238,171, 56,191,243, 11, 8,121,108, 52,236,191, 20,227,
+ 6,180,128,149, 88,241, 58, 42, 50, 51,160, 94, 35, 55, 22, 75, 4, 22,195, 64,111,178, 2, 32,101,238, 79,131,193,224,148,148,
+148,164,240,247,247,119,247,244,244, 28,194,102,179, 9,148,143,245, 39, 14,228,106,174,132,238, 23,171,181,122,139,216,156,191,
+211, 63, 93,219, 7,254,254, 96, 24,134,216,218,218,242,174, 94,189,170, 10, 10, 10,114,121,199, 83,137, 37,114,173,189,113,226,
+180, 79,135,212,242,243,195,225,253, 59, 65, 8,115,180,178, 95,222,119,250, 46,190,158,255,102, 15,195,207, 22,111,106,178,118,
+233,204, 55,222,155, 54,127, 93,185,189, 14, 69, 2,233,156, 65, 35, 38,227,209,131,223,176,102,233,103, 7,244,170,220,113, 38,
+179,233,131,220,244,184, 3, 53,235,181, 0, 49, 42,113,241,208,119, 24, 54,122,146,160,123,200, 16,220,189,117, 25, 43,191,156,
+182, 79, 35,151,125,136, 74, 38, 57, 91, 9,119,106,167, 30, 3,184, 90,189, 17,155, 86, 47,194,148, 57, 43,208,178,115, 95,238,
+179,199,247,166, 2, 88, 86,233,116, 8,163, 5,157,130,156, 11,204,179,201,138, 83,113,108, 78,105, 53,144,195,102, 88,141,253,
+236,161, 53,152,161,168,224,161,146,195,227,102,200,243, 21,213,191, 95,249, 41, 91,173, 51, 35, 43,223, 0, 89,190, 30,217,242,
+223, 13, 86,118,190, 30, 89,249, 6,112, 57, 12,162, 99, 19,193,226,114,170,156,159,151,167, 50,161,121,109,135,130,115,244, 29,
+ 91, 71, 76, 28,219, 22,231,111, 60, 25,180,110,221,122,225,147,120, 37, 34,226, 20,133,145, 44, 54, 4, 92, 22,248,133,255, 91,
+172, 5,185,145,229, 97,235,226, 87,115,236,152, 81, 93,108,165, 34,164,197,200,192, 97, 23, 12, 17, 99,231,234, 13, 59,129, 14,
+ 51,166, 77,134,179,147, 61,146,178,245,216,120, 60, 26, 17,207, 95,193,170,173,218,102,111,218,118,160,231,196,233,159,217,179,
+184,124,236,185, 16, 95, 80, 78,182, 5, 47,239,157,214,165,189,126,170, 86, 41,114, 8,136,165,146, 57,200, 12, 49, 91, 10,170,
+219,202, 37,243,112, 96,247, 15,184, 16, 38, 43,174,129,183,143,174,197,167,243,151, 35, 91, 97, 64,105,245,178, 60, 63, 2, 32,
+171, 68, 36,234, 15,203, 37,204, 81,105,203, 76,225,178,161, 12, 13,195, 91,230,202,240,214,251,134,183,244, 74, 27,251,111,123,
+133, 77,135,127, 48, 69,246, 46, 13,196, 66,201,111,231,206,157,150,156,136, 32,197, 38,203,168,201, 38, 43,102,246, 77, 81,200,
+179,186, 87,201,100,185, 4, 52, 16,136, 5, 55, 22, 46,223,168,119,243,170,110, 62,251, 88,145,163,212, 89,204,127,204, 65,144,
+ 88, 36,118, 46, 58, 14, 95,176,142,171, 53, 44,202,206,126,161,174, 40,242,100, 37, 4,161,247, 51, 64, 72,193, 35,210,161,155,
+169, 40,124, 50,135,197, 90,208,172,114,233,177, 12,156,194, 60,148,202,134,191,127,220,246,131,162, 79, 80,190,122,228,202, 37,
+197,205,133, 45, 27, 21, 68,178,108,109,109, 97,111,111, 15,169, 84,138,138,154, 14, 25,134, 25, 51,113,226,196, 63, 60,253,203,
+100, 50,116,237,210, 9,155,127,248, 9,141,186,140,197,165, 59, 23, 96, 52, 89,209,176,158, 31,170,123, 58, 32, 57, 83,249, 78,
+ 39,186,196, 45,112,122,243, 78, 3,190,108,219,185, 47,174,158, 63, 70,238,157,223, 53,185,170, 3, 33,246,233,218,250,244,215,
+ 95, 47,169,185,112,197,247, 2, 27, 33, 7, 47, 84, 6,176, 24, 6,190,110, 98, 56, 73, 88,184,126, 98,143,110, 88,223,214,149,
+ 30, 28,207,219,219,107,239,218,205,219, 37,107, 87, 45,237,244, 40,140,185,170, 74,139,206, 5, 0, 77,102,212,234,151,192,243,
+106,191, 93, 60,219,168,195, 64,184,121,250,117,139,203,124, 89,105,179, 1, 64, 19, 27, 27, 27,183,112,225,194,192, 85,171, 86,
+ 17, 54,155,109, 5, 32,216,176, 97,131, 38, 38, 38,230, 49, 10,186,230,162,162,155, 77,151,110,245,103, 73,249,150,150,142, 98,
+ 86,125, 63,119, 49, 90,213, 47,104, 21, 29,214,167, 45,188,125,124, 16,155,161,105,156,171,177,114, 85, 6,182,223,150,109, 17,
+ 15,107, 56,179, 39,153,181,134,231, 0, 78,190, 67,179,105,113,130,124, 81, 52,203, 70,196,133,181,160,174, 84,201,104,233,141,
+ 22,104,245, 22,104, 13,102,168, 13, 22,104, 12, 22, 88, 73,193, 57,193, 48, 12,140,102, 43, 42,245,216,252, 86,221,183,117,116,
+134, 95, 13, 6,182,226,130,178,217, 22, 14,247,192, 0,112,114,114,130,171,171,107,165,162,162, 6, 99,193, 41,110, 48, 89,139,
+155,245, 13, 70, 51, 8, 33,136,142,142,250, 34, 33, 46,174,191,127,128,127,251,122, 13, 27, 57,138, 5, 44, 0, 40,211,104,105,
+ 52, 26,139,141,141,141,171,163,163, 35, 43, 53, 53,181,216, 60,251, 55,238,100, 62,126,236, 40, 6, 13, 26,168,122,241,224, 73,
+113, 23,119,173, 86,203,180,105,211,198,214,219,219,155,165,215,235, 21, 85, 61, 76, 18,151,218, 3, 28,156, 28, 87,140,249,112,
+ 74,237, 78, 93,123,226,218,149,139, 56,121,236,215, 95, 52, 89,209, 23, 43, 43, 18, 24, 88,231, 15,189, 14,107, 5,212,254, 67,
+175,195,234, 53, 3,202, 53, 90,245, 26, 54,107, 65, 24, 14, 46,132, 30, 34, 58,150,113, 26, 0,171, 69,167, 60,116,240,199,175,
+150,141,152, 58,191, 86,239,126, 35, 48,102,244, 56,112, 56,108, 92,191,116, 26,107,151,206, 62,163,202,151,141,173, 76,154, 64,
+ 65,232,173, 46,207, 75,228,253,137, 79,173, 6, 8,187,119, 11,175,163,159, 69, 62,121,120,183,190,127, 80, 75,184,120,250,126,
+146,232,204, 94,133, 23, 47,140, 21,201, 24,116,186,196,113, 99, 71,163,100,175,195, 86,193,129, 78,204,219, 39, 0, 0,141, 82,
+102,252,249,187, 89, 49, 69,189, 14,173, 70, 67, 98, 89,186,249,121, 89, 71,174,223,185, 63,167,127,159,158,172,108,133,161, 32,
+130,149,111, 40,124,233,145, 93,244,191, 66,143, 0, 79, 41,162, 34,195,172,186,252,236,163, 85, 60, 47,117,227, 62,232,241,188,
+168,238, 90,173, 4, 12,160,171,114,179, 20,215,118,242,234, 53,235,132, 79,226, 84,136,136, 87, 20, 52, 21,114,217, 5, 6,139,
+203, 42, 54, 93, 5,189,217, 43,136, 14, 49,236,149,227,199, 14, 71,182,194, 8,171, 21,224,176, 89,133, 47, 30,146,148, 12,146,
+149, 26,100,231,101, 33, 46, 33, 17,242,140,215, 96,177, 88,112,246,172, 93,233,145,164, 45,132,239,161, 49,144,160, 33,125,218,
+115,142,253,150, 14,177,128, 3,189, 50, 19,231, 14,126,151,165, 87, 41, 86,104, 53,170, 99,149, 25,207,241,247, 20, 4, 38, 75,
+161,210,185, 9,184,108, 28,222,253, 61, 62, 24, 55,237,141,171,239, 23, 11,190, 6, 88, 12,114,243,148, 96, 24, 38,171,106,215,
+ 37,230, 97,121,203,239, 24, 25,123,111,141, 82,204,214, 31, 31, 20,202,126, 26, 37,231, 46,158, 63, 45,185,157, 32,192,131,168,
+244, 66,147,149,101, 93,254,113,159, 20,101,126,110, 15, 0,209, 85,123, 46,100,245, 24, 54,126, 78,164, 95,237,122,250,107,207,
+ 84,241,114,181,169,204, 60,135, 86, 67, 22, 70, 62, 58,179,185,119,190, 41,246, 35,137, 71, 61,139,213,108, 94,173,205,138, 94,
+ 90, 70,211, 33,127,233,198,195,197,205,134,115, 87,237, 41,248,223, 98,129,133, 88, 65,172,192,140,175,126,132,217,106,129,213,
+ 98,129,213, 66, 96,178, 16,113, 69,197,117,245,172,126, 44,239,229,161, 58, 35,151,253,177,185,208,222,222, 30, 78, 78, 78,112,
+114,114,130,173,173,109,133, 70,139,203,229, 74, 57,156, 55,119,117, 98, 98, 34, 18, 18, 18, 96,107,107, 11, 98, 53,193, 96, 2,
+ 26,180,236,142,167,175,159,225,242,237,199, 32, 86, 11, 36,210,170,207,242, 34,113, 11,252,168, 89,199,254,223,119,238, 55, 1,
+151,142,109, 35, 15,111,158,158,162,149, 69,239,168,116,132,222, 98, 97, 76, 38, 19,250,116,239,152, 24, 30,249,234,252,130, 57,
+ 83,123,182, 14,153, 34,104, 21,232, 5,157,193,130,148,132,215,184,126, 98,151,174,118, 77,143, 11, 93,218,181, 72, 52,153, 76,
+176, 88, 44, 21,222,200,117, 6, 99, 54,155, 43,146, 12, 31, 62,146,251,240,193,131,163, 18,151,128,195, 22,134,245,132, 33,214,
+134, 12, 33,131, 26, 54,172, 11,163,201, 10,141, 70,145, 87,213,109, 86, 42,149,113, 59,119,238,172, 57,118,236, 88,113,189,122,
+245,184,175, 95,191,198,218,181,107,115,148, 74,101, 92,101, 53, 46,222,140,218,192, 97,242, 98,138, 34, 90, 73,109, 91, 97,120,
+ 72, 91, 28, 56,115, 27,215,111,221, 69,162, 74,250, 88,101,230,156, 72, 78, 76,211,215,119, 84, 28,237,215,170, 58,251,240,238,
+188,163,145, 29,231, 13, 37, 68,112, 49,251,198, 18,117,229, 79,110, 64,169, 53,193, 86, 92, 48,222, 83, 81,100,139,205, 48,149,
+118, 68, 12, 16,119,235,110, 88,131,166, 1,245, 16, 30,151, 15,153, 92, 15,173,222, 12,171,149,192, 10, 2, 39, 27, 62,132, 60,
+ 22,146, 18,226, 96, 37,198,248, 42,222, 42,178, 58,180,239,192, 1, 24, 48, 12,225,112, 57, 28, 16, 20,140,175, 40, 18,137, 84,
+174,174,174,149,138,104, 25,205,102, 12,234,217, 2, 45,155, 53, 68,255, 41, 5, 99,102, 94,249,101, 30, 28,164, 92, 28,216,187,
+ 3,201, 55, 55,236,173,217,106,234,197,103, 79, 35, 7, 71,134,255, 54,178, 87, 19, 81, 99,119, 78, 26,175,172, 48,169, 90,173,
+ 62, 10,128,207,227,241,122,182,111,223,222,241,232,209,163,114,103,103,103, 43,159,199,203,234,215, 55,196,202,229,241,114,139,
+214,189,115,231, 14,119,202,148, 41, 54,121,121,121, 73,153,153,153,119, 1,152,202,127, 16, 12,236, 10, 22,126, 5,195, 8,165,
+ 34,113, 98,141, 26,126,158,205, 90,182,176, 27, 48,232, 3, 8,248, 2, 92,186,120, 30,155,214,175, 58,164, 74,127, 49,190, 42,
+123,242,207,234,117,152,146, 20, 31,167,209,234,131, 26, 52,237,200,220,186,120, 98,166, 17,206,235,217, 2,227,119, 93, 7, 77,
+171, 21,151,166,194,166,111,190,128,131,157, 4,241,175, 95,106, 99, 94, 60,253,209,164, 83,124, 81,105,147, 5, 64,156, 99, 25,
+220,106,116, 79, 7,189,209,130,155, 87,207,232,172,102,107,207,187, 55,206,190,174, 86,187,153,176, 65,179, 46, 14,217, 39,119,
+ 12,210, 0, 7, 42,210, 73,125,249,199, 8, 46, 49,200,227,175, 92,189,108,231,230, 91,159,205,128,129, 81,175, 67, 86,236, 67,
+179, 38,243,165, 66,145,250,172, 82,189,112,115,146,241,213,252,197,223,126,212,172,105, 83, 9,129,240,141, 8, 86,145,193,202,
+ 86, 24,224,108,195,135, 86,145,133,152,135,231,117,154, 44,118,185,227,157,153, 13,106,113,182, 44,147,255,123, 58, 67,116,203,
+242,214,207,150,101,242,205, 6,181,184,226, 91, 29, 27,182, 18, 62,158,198,167, 22, 39,190, 11,184, 5,185, 89,124, 46,187, 56,
+ 79,171,232, 90, 80, 1, 29,121, 66,123,164,230,232,192,128,192,106, 49,195,108, 50, 64,169, 80, 32, 53, 45, 3,153, 25,153, 80,
+ 42,229, 16, 75, 29,208,160,113,115,216, 72,132,120,114,253, 16, 8, 33,149, 26,215,208,196,112, 3,155,181,108, 39,120,150, 80,
+144,139, 37,228, 18,156,254,117, 85,142, 74, 33,107,167, 74,143,137,169,234,181,216,108,177, 92,142,120, 30, 83,191,154, 71, 13,
+230,241,235,124,236,253,105, 51, 12,133,145, 77,147,201,130,103, 73,106,164,231,106,144, 20,251,130, 88, 45,150,203,248,143,192,
+ 41, 59, 0, 8, 78,195, 6,117,209,125,212, 0,252,240,195,143,136,141, 75,176,174,152,217, 59, 73,165,148,247,170,130,201,234,
+138,194,177, 54, 52,153, 81,171,181, 14,205, 82, 78,133,231,178,180, 6, 82,110,130,143,208,197, 23,237,198,175,189,160, 85,230,
+242, 45,122, 13,231,244,222,241,191,150,166, 89,224,160, 97, 88,241,217, 48, 72, 69, 28, 48, 12,131,162,230,194, 45, 95, 79,134,
+ 88, 80,208,182,172,213,155, 49,106,214, 58,236, 93, 55, 27, 4,192,136, 15,110,107,202, 42, 39, 10,230, 46,156,225,129, 7,213,
+ 18, 19,100,169, 93,251,126,118, 69,103, 20,232, 67, 6,142,125,212,180,105, 83,185, 72, 36,130, 72, 36,130,173,173, 45, 28, 28,
+ 28, 96,111,111, 95,225,182,155, 76, 38,149,193, 96,112,226,243,249,176, 90,173,136,143,143, 71,124,124, 60,242,243,243,145,149,
+149, 5,181, 74, 97,126,112,229, 48,167, 65,171,222,240,244, 11,130,111, 64, 35,112,217, 12, 56, 28, 22,174,159,250,169,172,114,
+150,110,178, 58,244,219,210,165,255, 68, 92, 58,182,157, 60,188,121,122,170, 86, 22,253, 83,101,143, 81, 97,115,207,147, 65,131,
+ 6, 5, 77,153, 50,133,183,120,206,148, 11,103, 46, 94,143, 62, 28,186,189,111, 94,158,220,155, 16, 2,123, 59,187,228, 97,125,
+ 91,159,238,212,166, 89,226,149, 43, 87,172,191,254,250,171,158, 97,152,167,229,105, 22, 92,164,100,191, 92,185,124,117, 73,187,
+ 14, 29,177, 99,247,175, 29, 34,159,191,232,240,250,117, 12,188,125,253, 80,163,102, 0, 52,140, 3,174,222,184, 5,149, 92,246,
+ 75,101,202,249, 86, 84,139,201,203,203,251,109,216,176, 97,221,111,223,190,205, 26, 54,108,152, 38, 59, 59,251, 78,137, 40, 22,
+169, 72,243,238,214,129, 89, 0,126,241,237, 48,238, 80,170, 81,254, 9,128, 85, 62,190, 62,184,126,235, 46,238,222,190,255, 99,
+182,216,103,233,248, 81, 31, 78,174,222,143, 61,177, 95,171,234,108, 87, 7, 49,246,111, 95,203, 62,117, 55, 97, 93, 66,142,101,
+199,170, 27, 75,190,174,204, 49, 42,190,113, 40,141,104, 83,215, 17, 38, 11,129,149, 20, 92,112,109,132,220,178, 46,188,127,208,
+228, 24, 4,227,167, 78,153,242,186, 65,195,198,159,142,250,112, 42,175,177,159, 55, 30,188,146, 3, 12, 3, 71,119, 9,210,211,
+211,113,243,200,118,115, 94,234,203, 31,217,108,235,178, 42,236, 79,228, 37, 62,246, 47,177, 56, 57, 59, 59, 27,215,175, 95, 71,
+145,193,114,113,113, 41,203,104,189,161,153,147,153,118,231,235, 53,219,218, 76, 26, 51, 16, 33, 29,235,227,198,195,215, 48, 20,
+142,215, 84,212,149, 60,238,238, 86,254, 39,195,252, 12, 31, 13,170,173,208,154,248, 9, 95,197,231,223, 68,193, 28,172,214, 50,
+202,105,200,205,205, 61, 21, 21, 21,213,182, 81,163, 70,213,207,158, 61,155, 27,121,255,194,204,146,133,248,236,179,207,164, 63,
+252,240,131,152, 16,114,199, 96, 48,196, 86,106,219, 89,216, 31,246,232,145,147,209,100,197,173,251, 79,234,118,105,211, 24, 86,
+ 2, 60,124,248, 16, 59,126,222,161,123, 26,241,248, 59,117,166,251,178,114,204, 75,169,251,211,242,126,189, 14,139, 53,211, 83,
+ 19,190,187,116,230,200,222,102, 29,250, 98,228,140,101,203,174,159,249,117, 73,147,118, 33,172,186,205,186, 35,236,238, 85, 92,
+ 62,123,254, 91,163, 42,119, 9, 42,206, 29, 41,181,156, 2,145,248,227,122, 77, 58, 32, 41, 49, 1,241, 49,207,126,209,229,190,
+ 74, 75,124,205,254, 37, 45, 37,113,106,205,250,109,112,251,194,129,153,229, 24,173,114,235,188,183,139,104,251,217,208, 83,195,
+ 83, 82,182,186,171,181, 58, 1, 33, 68, 39,224,115, 50,164, 44,229, 65, 69,165,203,249,194,152,149, 86,125,208, 7,163,166,158,
+217,180,105, 61,215,205, 94,140,140, 60, 29, 20, 90, 35,148, 26, 35, 88, 12, 3,127, 79, 9, 52,202, 92,220, 56,178,198,100, 80,
+229, 13, 3, 94, 27,203,210,148,184, 6, 46,207,123,117,117,198,103,211,174,129,111,231,237, 89,163,243,252,114,163,117,202,212,
+199,125, 63,155,118, 58,144, 16,210, 69,226, 26,168, 84,203,162, 22,150,181,237, 12, 83,112,126,143,236,228, 13,163,185, 96,252,
+ 49,179, 21,176, 88,173,133, 81, 62,128, 20,183,231, 51, 21,108, 59, 99, 61,120,230, 14,210, 50,229,208, 26, 76,208, 27,204, 48,
+154, 44, 96,177,217,176,119,176, 71, 64,141, 96,216,217,219, 34, 51, 35, 13,119,175,156, 66,116,196,141, 59, 12,193, 82,109, 86,
+204,149,202, 28, 35,158,200, 62,208,195,211,157,149,174, 48, 64,196,103,227,241,141,179, 70,147, 65,255, 93, 37, 77,214, 31, 52,
+229, 57,185,235, 62,157,243,249,136, 93, 59,119,187, 7,213,180, 69, 74,182, 22, 41, 89, 58, 40,117,166, 66, 35,102,133, 94,149,
+141,136,171,187, 51, 44, 58,229, 58,252, 71, 40,211,104,153,141, 58,229,209,243, 15,156,230, 45, 89,195,126,245, 58,214,180,252,
+147, 62, 41, 90,149,162,119,149, 35, 89, 37,216, 53,189,230,129,191, 98, 35,254,208, 92, 72,172,176, 18,130,211,247, 51,138,155,
+ 11,173,133,153,151,225,175,203,159, 70,176,228,220,133, 29,123,207,188, 20, 17,165,220,167,213,102,218,189,124,245, 93, 30, 0,
+176,217,236,226, 87, 81,110,150, 78,167, 51, 84,208,132,178,231,167,159,126,154, 59,117,234, 84, 65,114,114, 50, 94,191,126, 13,
+185, 92, 14,161, 80,136,243,231,207,155, 96, 53,127, 23,113,251,120,124, 84,216,197, 69,129, 77,187, 87, 11,106,213, 27, 98,177,
+ 4, 28, 82,249,100, 76,177,107,237,225, 77, 59,244,251,190,203,128, 73,184,124,252, 39,242,240,198,169,105,218,172,232,237, 85,
+221,151,114,185, 60, 18, 64,204,119,223,125,215,120,199,142, 29, 53,231,204,153, 19,187,231,251, 37,155, 0, 32, 39, 39, 7, 0,
+ 16, 30, 30, 78,166, 77,155,166,215,233,116,113,121,121,121, 97,168,160, 3, 4, 0,104,179,196, 43,119,108, 89,213, 32, 57, 53,
+125,160, 95,131,230,112,169,217, 28,238,254, 45,144,167, 52,226,193,171, 52,196,190,184,130, 23,183,142,156,213, 72,205, 75, 80,
+197,241,141, 27, 53,106,228,205, 98,177,106,168, 84, 42,247,122,245,234, 53,146, 72, 36,225,141, 26, 53, 10,230,112, 56, 41,143,
+ 30, 61, 74,168,138, 86,226,141,221,122,223, 14,227, 54, 38, 42,109, 58,197,102,104,130, 19,149, 54,225, 26,129,221,236,172,171,
+ 27,245,187,216, 94,235,136, 49, 59,242,240,110,197,209,253,219,215,178, 71, 77,254,204,242, 44,223,225, 19,142,136,127,169,106,
+225,106, 86,250, 71, 99,251,255, 62,188, 67, 97, 36,171,240,255, 74,133,233,243,243, 35,242, 1,204,141,120,206,253,254,217, 39,
+ 83,190,110,216,172,205,232,246,189,134,177,204, 60, 41, 46, 28,223, 74,226, 34,174, 30,230, 16,203, 2,109, 37,102, 3,168,176,
+ 57,200, 96,168,140,201,250, 99, 25,147, 37, 29, 15,255,250,243,184,163,199,143,125, 51,160, 95,127,167, 45, 95, 13,197,154,109,
+ 39, 32, 17, 9, 64,172, 86, 12,237,228, 61,100,209,196, 58,125,189,221,132, 94, 71,175,165,220,156,177,254,217, 92,141,198, 24,
+ 93,137, 72, 12,201,206,206,190, 37,149, 74,179,218,182,109,219, 82, 32, 16, 48,217,217,217, 28, 87, 87, 87,179,157,157,157, 33,
+ 37, 37, 69,163,215,235,143, 2,168,210,176,227, 70,147, 21,241,153, 58,156, 60,118, 20, 79,238, 95,193,139, 23, 81,202, 23,207,
+ 95,108,102, 56,100,189, 58, 51, 38, 23,168,242, 3, 62,172,165,246, 58, 36, 85,238,117,104,209, 43,247,239,249,113,121,103,141,
+ 78, 63,174, 81,235, 62,168, 94,183, 13,203,104,178,224,233,195,107,184,118,100,253, 26,163, 42,119,222,251, 28, 99,207,106, 53,
+ 3, 8,155,143,223,174,159, 1,177, 90,127, 4, 0, 98,181,254, 24,126,251,236,212, 22,189, 39,194,209,181,122, 35,121, 82, 56,
+131,119, 24, 61,156,199, 97,169,207, 29,221,117, 60, 62, 62, 30, 47, 95,190,196,171, 87,175,144,155,155,139,253,251,227,171,116,
+124, 52,121, 9,151,162,159,179,122, 12, 30, 58,242,244,144,225, 99,132, 53, 3,130, 88,129,213, 28,224, 36,229, 32,234, 85, 2,
+162, 31, 69, 88,163, 30,156,213, 25, 21,178, 1,218,188,132, 50,141,159,216,185,174, 27, 96,153, 87, 52,119, 97,171, 86,109, 2,
+ 63, 95,241, 77, 75, 39, 23,215, 82,175,227, 57, 89, 50,254, 23, 51, 78, 5,222,189,247, 91,165,230, 58,180, 90, 44, 57,147,199,
+ 13,179,178, 11, 38, 10, 69,113,156,186,112,239, 21, 60, 76, 21,188, 79,172,230, 10, 35,248, 31, 14,108, 7,179,213, 10,181,214,
+ 8,133, 90,143,124,165, 14,233,178, 28, 60,137,136,192,141,211,167,240, 58,234, 73,156,201, 96,184,200, 98, 49, 71,180,153,209,
+ 55,170,214,210,196,169,233,228,232,136,184, 92, 21,132,124, 14, 18,162, 31,233,213,138,252,125,239, 90,143,180, 57, 49,233, 50,
+ 54,211,125,216,176,225,231, 59,247,232,103,215,172,117, 87,177,179,173, 61,120, 28,130,152,248, 52,132,221, 57,175,142,125,114,
+ 83, 97, 50,168,122,254, 25,179,190,252,205,169,184,215,161, 81,175,238, 59,162,127,135, 99,108, 54,135,111,181,154,245, 70,131,
+126,240,251,152,172,191, 10, 66, 44, 41,227, 70, 12,124,227,217,192,108, 37,162, 17, 31, 92,208,150,124, 86, 48, 89,136,120,196,
+ 7,119, 52, 5, 23,144,178, 19,251, 60, 60, 28,251, 20,205, 93,152,152,152,243, 48, 55, 87,127, 13, 64,138, 78,167,123,231, 50,
+102,102,102,126,189, 98,197,138, 16,141, 70, 83,167, 99,199,142, 2, 91, 91, 91,228,228,228,224,226,197,139,166,208,208,208,231,
+ 50,153,108, 17, 32, 51,107, 17,252, 75,132,238,248,216,168, 71, 23, 23,213,105,218,163, 90, 80,235,222,149,191,152, 9, 68,147,
+ 58,247,155,192, 92, 62,241, 19,121,112,253,196, 71,218,172,152,109,239,177, 91,141, 58,157,238,190, 78,167,123,182, 96,193,130,
+102,110,110,110,110,139, 22, 45, 18, 42, 20, 10,238,150, 45, 91,116,217,217,217, 25, 10,133,226, 46,202,201,167,249, 35,225,166,
+252, 84, 12, 58,119,244,167, 78,228,232, 79,221,236,157,189,186,219,185, 84,171, 37,207, 74,141,203,207, 74,187, 8,224,114,225,
+ 64,145, 85,162,113,227,198,126, 12,195, 12, 3,208, 64, 34,145,248, 75,165, 82, 1, 33,164, 14,195, 48,145, 86,171, 53,162, 94,
+189,122,161,207,159, 63,175,210, 96,178,137, 55,118,235,189, 3,219,252,154,171,177,242, 12, 44,222,175,137, 55,118,235, 1, 64,
+118,233,115, 13,128,147,207, 59,206, 29,116,234,110,194,166,200, 60,187,153, 89,215,191, 57, 85,213, 50,231,167, 60,241,255,179,
+234,191, 46,253,121, 10,128,113, 17,143,176,246,105,248,221,197, 12, 1,215, 2,243,114,173,236,213,163, 63, 67,159,203,229,234,
+188,188,188, 74,237, 93, 40, 16, 8,116,122,125,121, 1,148, 27,102, 85, 58,118, 0, 29,118, 31, 59,180,123,220,137, 83, 39,191,
+105,223,101,128,147,176, 90, 53,212,112,101,176,123, 94,147,153, 87,194,179, 30,244,251,252,230, 15,177,105,186, 8, 84, 49, 31,
+ 70,165, 82, 69, 3,200, 83,169, 84,253, 9, 33,201, 12,195,120,231,229,229, 61, 54,153, 76, 79,171,108, 8,172, 24,217,170, 85,
+243,253, 12,195,112,136,217,186,250, 46,151,253,171, 46,253, 69, 10,222,115, 90,146,160, 26,182,152,181,104, 99,147, 90,254,181,
+155, 20,205,117, 88,191,186, 13,166,204, 93,219,164,122,205,128, 38,191,207,127, 88, 97,154, 0, 49,105,242,198, 31,251,121,245,
+205,240,123,215,190,116,246,168, 94, 61, 35, 37,246, 69,242,171,199, 95, 91,116,138, 99,239,123,156,227, 95, 69,174,223,241,221,
+220, 57,233,169,113, 59, 52, 89, 49,207, 0, 64,147, 21,243,236, 69, 24,190,202,206, 72,153,147, 35,139,253,238, 93,247,133, 90,
+173, 78,219,183,111,159,125,155, 54,109, 88,110,110,110,200,202,202,194,181,107,215,172, 86,171, 53,181,202, 90,185,113,215,212,
+185,140,227, 47,219,190, 95,205,147,216,244, 54,155,205,158,132, 0, 28, 14, 39,221,160, 81,156, 87,178, 36,159, 35, 47, 65, 87,
+254, 61,195,202, 0, 96, 21,205, 93,104,181, 90,153,213,155,118, 39,112,133, 54,165, 14,134,104,210, 41,197, 86,171,181,210,115,
+ 29,202,147,194,106,253, 89,231, 55, 67,200,210, 70, 77, 91,126,105, 50, 25,117,133,231,135, 14,128,142, 16,228,176, 88,204, 13,
+182,213,116, 65,241, 30, 15, 83, 12, 3, 91,194,112, 96, 35,226,128, 1, 3, 85,126, 46,169, 74, 78, 86,169,134, 88, 22, 29,169,
+145,117,240, 61,103, 56, 52,246,234,165,179, 31, 88, 44,150, 26,133, 49,131,120,189, 86,125, 88,149,238,240, 11,240,200,140,127,
+ 63,103,138,204, 22,243, 23,255, 80,165,154, 81,254, 78,154,129, 53, 69,253,171,121,185,141,141, 79,144, 61,136, 77,214,252,130,
+ 55,167,213,121,159,114,178,221,220,220,190, 98, 24,102, 52,159,207,151, 26, 12, 6, 53, 33,100, 79,102,102,230,215,248,195,228,
+191,193, 92,145,171,118, 44, 95, 40, 94,104,212,169,127,211,200,162, 71, 86,180,237, 98,151,218,221,133, 18,201, 92,157, 86,189,
+ 71,147, 25,189,251, 79,222,159,118, 2,129, 32, 88, 42,149,114,179,179,179,239, 3,200,255, 59, 29,247, 70,141, 26,249,176, 88,
+172, 26, 86,171,213, 13,128, 29, 10,122,133,100,115, 56,156,212,194,136, 22,169,170,102,219, 15, 15, 59,119,233, 86,127,214,197,
+155, 81, 27, 10,155, 21,139,241, 26,178, 78, 56,186,119,167,207,126, 57,118,178,180, 94,135,255,184, 58,255,255,167,217,129, 35,
+245,200, 30,199,226,219, 45,239, 18,168,211,100,167,165, 78,187,245, 52,235, 62, 0,229,251,148,147,199,227,141, 50, 26,141, 34,
+ 30,143,167, 53, 26,141,251,254, 46,219, 46,114, 13,156,192, 2,169,244,204, 20, 86, 48,143,222,234,180,242,111,169, 75,236,160,
+160,160,118, 60, 30,207,199, 98,177,136, 13, 6,131, 70,171,213,198, 39, 36, 36,252,134,178, 39, 62,255, 75,203, 41,113, 13, 88,
+207,227, 9, 62, 1, 0,163, 81,191, 81, 45,139,153, 85,222, 23,203, 89,255, 31,125,140,156,107, 52,141,225,176,185, 46, 40, 28,
+152,219,106, 54,103,101,198, 61, 12,248, 31,150,243, 95, 7, 33,228, 47,255,141,174, 84,147,106, 82, 77,170, 89, 10, 44,186, 63,
+169,230,255, 82, 83,232, 81,215, 91,232, 81,183,210,131, 46,151,177, 62,221,159,148, 34, 38,151,242, 2, 33, 4, 28,186,111, 40,
+ 20,202,255, 0, 43,221, 5,148,255, 37,186,244, 23,201,127,229,250,148,255, 28,101,230, 68, 51,229,184,210,170,132, 4,223,197,
+217, 94,166,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179, 34,237,127, 98,147,228,228,183,150,207, 0, 72,167, 77,135,
+ 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,187,104,254,155, 40,110, 58,100,209,125, 65,161, 80, 40, 20, 10,133,242,215, 64,
+115,180, 40, 20, 10,133, 66,161, 80,222,143,210,154, 14,169,209,162, 80, 40, 20, 10,133, 66,249, 19, 40, 51, 25,158, 54, 29, 82,
+ 40, 20, 10,133, 66,161,188, 31, 69, 17, 45, 15,148, 24,222,129, 26, 45, 10,133, 66,161, 80, 40,148, 63,143,116,148, 22,221, 10,
+ 13, 13, 37,165,253, 79,161, 80, 40, 20, 10,133,242,255,193, 63,220,139,148,140,100, 77, 46, 92,126,179,215, 33, 53, 88, 20, 10,
+133, 66,161, 80,254, 46,102,235, 31, 70, 81, 36,171,232, 85, 60,105,118,177,209, 10, 9, 9, 97,168,217,162, 80, 40, 20, 10,133,
+242,191,226,223,232, 69, 88,111,111, 32, 61,204, 20, 10,133, 66,161, 80,254,151,102,235,223,180, 61,116,120, 7, 10,133, 66,161,
+ 80, 40,148,247,195, 3, 64,159, 18,203,103, 80,162,249,144, 66,161, 80, 40, 20, 10,133,242,238, 76, 46,109,153, 16, 66, 35, 90,
+ 20, 10,133, 66,161, 80, 40,127,129,217,162, 80, 40, 20, 10,133, 66,161,252, 85,252,127, 76, 42, 77,103, 54,167,154, 84,147,106,
+ 82, 77,170, 73, 53,169,230,191,157,162,113,180,128, 18,227,104, 1,116,100,120, 10,133, 66,161, 80, 40,148,247,165, 15, 10,198,
+207,154, 92,248,183, 15, 53, 90, 20, 10,133, 66,161, 80, 40,127, 46,127,152,126,135, 26, 45, 10,133, 66,161, 80, 40,148, 63,215,
+ 96,109,167, 70,139, 66,161, 80, 40, 20, 10,229, 47,134, 26, 45, 10,133, 66,161, 80, 40,148,191, 8, 6,101,247, 28,184, 92, 5,
+157,119,233,125,112,153,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 57,205,138,180, 47,227,159, 71,209,200,240,103,240,123,
+ 34,252,118, 66,254,250,105, 27,105,215, 87,170, 73, 53,169, 38,213,164,154, 84,147,106,254,219,153,252,214, 95, 0,255, 63,227,
+104, 81, 40, 20, 10,133, 66,161,252,215,204, 86,177,225,162, 83,240, 80, 40, 20, 10,133, 66,161,188, 31,219,203,250,128, 70,180,
+ 40, 20, 10,133, 66,161, 80,222,143,201,101, 45, 83,163, 69,161, 80, 40, 20, 10,133,242,215, 24, 46,106,180, 40, 20, 10,133, 66,
+161, 80,254, 68,147, 53,185,212, 79, 67, 67, 67, 9,221, 71, 20, 10,133, 66,161, 80,254, 87,252,219,188, 72,241,240, 14, 69, 27,
+ 70,205, 22,133, 66,161, 80, 40,148,255,165,201,250,135,122, 17, 15,252,222,219,112,114,225, 50, 8, 33,180,215, 33,133, 66,161,
+ 80, 40, 20,202,123,210, 7,111,246, 60,156, 92,180, 76,141, 22,133, 66,161, 80, 40, 20,202,251, 51,185,220, 79,105,179, 33,133,
+ 66,161, 80, 40,148,255, 37,255,198, 28, 45,134, 30, 86, 10,133, 66,161, 80, 40,148,247,162,180,104,214,255,203, 92,135, 20, 10,
+133, 66,161, 80, 40,255, 73,195, 69,141, 22,133, 66,161, 80, 40, 20,202, 95, 96,178,138,140,214, 95, 61, 96, 41,157,217,156,106,
+ 82, 77,170, 73, 53,169, 38,213,164,154,255, 21,147, 85,114,136, 7, 0,180,215, 33,133, 66,161, 80, 40, 20,202,251, 66, 39,149,
+166, 80, 40, 20, 10,133, 66,249,139,160,147, 74, 83, 40, 20, 10,133, 66,161,252, 63, 27, 46,106,180, 40, 20, 10,133, 66,161, 80,
+254, 68,147,245,134,217,162, 57, 90, 20, 10,133, 66,161, 80, 40,239, 71,153, 57, 90, 12,202,238, 57,112,185, 10, 63,240, 46,189,
+ 15, 46, 83, 77,170, 73, 53,169, 38,213,164,154, 84,243, 63,167, 89,145,246,101,252,243,153,140,255,167, 1, 75,105,215, 87,170,
+ 73, 53,169, 38,213,164,154, 84,147,106,254,215,152, 12, 20,140,163, 69,155, 14, 41, 20, 10,133, 66,161, 80,254, 4, 99, 85, 26,
+212,104, 81, 40, 20, 10,133, 66,161,188, 31,116, 28, 45, 10,133, 66,161, 80, 40,148,191, 8, 15, 20, 68,181,138,254, 6, 83,163,
+ 69,161, 80, 40, 20, 10,133,242,231,208, 7, 5, 81,173,162,191,212,104, 81, 40, 20, 10,133, 66,161,252,137,148, 58,142, 22, 3,
+ 0,161,161,161, 69,253, 15, 59,134,132,132,220,160,251,138, 66,161, 80, 40, 20,202,255, 39,255, 70, 47, 66, 8,249, 61,162, 21,
+ 18, 18,194, 0,184, 78, 15, 53,133, 66,161, 80, 40,148,255, 5,255, 70, 47,194,122,203, 73,118,164,135,153, 66,161, 80, 40, 20,
+202,255,130,127,163, 23,225,188,229, 34, 41, 20, 10,133, 66,161, 80,254, 39,252,131,189,136, 7, 10, 18,225,207, 20,254, 5, 10,
+135,124,160,227,104, 81, 40, 20, 10,133, 66,161,188, 31, 69,189, 13, 39,227,173, 49,181,104, 20,139, 66,161, 80, 40, 20, 10,229,
+253, 40,109,100,248,255,151,185, 14, 41, 20, 10,133, 66,161, 80,254,147,208,185, 14, 41, 20, 10,133, 66,161, 80,254, 28, 74, 70,
+181,182,255,127,253, 40,157,217,156,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 37,147, 85,188,252,198, 56, 90, 20, 10,133,
+ 66,161, 80, 40,148, 63, 23,218,116, 72,161, 80, 40, 20, 10,133,242,126, 20,245, 56, 44,185, 76,141, 22,133, 66,161, 80, 40, 20,
+202,159,104,182,254, 0,109, 58,164, 80, 40, 20, 10,133, 66,121, 63, 38,151,245, 1, 53, 90, 20, 10,133, 66,161, 80, 40,127,145,
+225, 98, 80,118,207,129,203, 85, 16,126,151,222, 7,151,169, 38,213,164,154, 84,147,106, 82, 77,170,249,159,211,172, 72,251, 50,
+254,121,252,207, 6, 44,165, 93, 95,169, 38,213,164,154, 84,147,106, 82, 77,170,249,159,132, 14,239, 64,161, 80, 40, 20, 10,133,
+242, 23, 82, 21,163,229,194,225,112,190, 20,137, 68, 63,136, 68,162,109, 28, 14,231, 59, 0, 14, 85,253, 65,137, 68, 50,211,221,
+221,253,165,187,187,123,138,143,143,207, 89, 27, 27,241,167,126, 2,180, 7,192,253,147,182, 39, 16,192,167, 34,145,232,133, 80,
+ 40, 76, 0,176, 23,192,167, 0,156,223, 71,248,107, 79, 12,126,246, 73,255, 19, 95,123, 98,240, 91, 31,245,113,115,115,187, 5,
+160,251,159,117, 80,134,139,209,117,136, 4, 73, 67, 36, 72, 26, 46,126,247,167, 6, 27, 27,155,209, 30, 30, 30,119,157,156,156,
+ 82, 61, 60, 60,238, 8,133,194, 33, 85,148,112,117,115,115, 91,227,237,237, 29,237,233,233,185, 1, 5,179,147,255,109,105, 39,
+ 64,187,150, 2,100,181,226, 67,217,134,143, 31, 90,241,209,173, 27, 32,126, 71,185,182, 0,142,216,218,218, 62,230,112, 56,161,
+ 0, 6, 21,214,175, 65, 28, 14, 39,212,214,214,246, 49,128, 35,133,235,189, 75, 61, 93, 3, 32, 21,192,202,194,229,143,189,189,
+189,149, 13, 27, 54, 76,104,216,176,225, 46,127,127,255, 49,149, 21, 19,139,197,221,188,189,189,143,250,248,248, 36,180,106,213,
+ 42,215,203,203, 43,170, 90,181,106,187, 5, 2, 65, 71,122,137,163, 80, 40,148,191, 63,125, 1,124, 3, 96,115, 68, 68, 68, 24,
+ 33, 36,140, 16, 18, 22, 17, 17, 17, 6,224, 7, 0,171, 80,118, 8,241,141,247,157,156,156,150, 46, 95,190, 92,151,158,158, 78,
+178,178,178, 72,116,116, 52, 89,191,112,174,181,135, 35,135,248,185, 56,104, 60, 60, 60, 94,251, 86,171,118,160,190,148, 53, 23,
+ 64,173,202,104,150,192, 65, 36, 18,221, 95,184,112,161,234,214,173, 91, 42,131,193,160,178, 90,173,170,180,180, 52,213,229,203,
+151, 85,109,218,180, 81, 1,152, 5,128, 93, 5,205, 98,150,121,226, 6,249,249, 43,178,204, 19, 55, 74,190, 95,167, 78,157,231,
+ 86,171,149, 12, 30, 60, 88, 15,192,171, 42,154,111,227, 5, 8,235,219,194,126,136, 20,153,230,221, 95, 19,178,101, 14, 25, 34,
+ 65,210,187,104,186,186,186,158,156, 57,115,166, 34, 53, 53,149,232,245,122,146,148,148, 68,166, 76,153,146,239,234,234,186,175,
+146,219,238, 20, 20, 20,148,121,247,238, 93,171, 92, 46, 39,215,175, 95,183, 54,104,208, 32,179,146,102,171,235, 91,101,217,238,
+233,233,121,182, 42, 47, 87, 87,215, 29, 85, 61, 70, 45, 4, 72, 50,134, 93, 35,228,225, 69,114,106,112, 43,178,190,105, 53, 50,
+200,145, 47,111,203,199,199, 29, 74, 31,202,164, 44,205, 15, 58,116,232,160,126,250,244,169, 37, 39, 39,135, 60,127,254,220, 58,
+105,210, 36, 29,128,200, 73,147, 38,233,158, 63,127,110,205,201,201, 33, 79,159, 62,181,116,232,208, 65, 13, 96, 98, 21,202,201,
+ 2,176,115,201,146, 37,132, 16, 66,150, 47, 95, 78, 26, 54,108, 72, 58,119,238, 76, 84, 42, 21, 33,132, 36, 16, 66,118,153,205,
+230,113,149,209,180,179,179, 27, 61,115,230, 76,149, 70,163, 33, 69, 88,173, 86, 34,151,203,201,230,205,155,213,238,238,238,103,
+203,120,200,160, 77, 30, 84,147,106, 82,205,191,155,230, 63, 25, 15, 20,228,105, 21,189, 60,128,130,166,195,138, 24, 49,119,238,
+220, 34, 83,117,174,109,219,182, 15,198,141, 27, 23, 54,110,220,184,176,182,109,219, 94, 7,112,225,209,163, 71, 97, 95,124,241,
+ 69, 24,128, 17, 21, 28, 8,135,214,173, 91,203, 51, 50, 50, 72, 64, 64, 0,169, 94,189, 58,201,200,200, 32,132, 16,242,240,131,
+ 38,228, 74, 93,144,228,155,231,200,197,227, 71,200, 36, 15, 14,105,231, 97,103,242,112,119,207,113,118,118, 94,129,130,164,253,
+242, 14,238,192,186,117,235, 42, 35, 35, 35, 85, 49, 49, 49,170,165, 75,151,170, 58,119,238,172, 10, 10, 10, 82, 13, 26, 52, 72,
+181,105,211, 38,149,209,104, 84,237,216,177, 67,101,107,107, 27, 89,138,217,122,103,163,197,225,112, 54, 70, 68, 68,144,215,175,
+ 95,147,194, 40, 69, 89,154,118,246,246,246, 61, 29, 28, 28,102,217,219,219,247, 4, 96, 7, 0, 1,128,180,145, 29,124, 62,110,
+228, 87, 39,116, 68,215, 90,155,187, 54,107, 50,196,134, 37, 55,125, 63,135,144,193, 62,239,100,180,236,236,236, 70,127,250,233,
+167, 74,189, 94, 79, 52, 26, 13, 81,169, 84, 68,163,209, 16,165, 82, 73, 70,140, 24,161, 16, 10,133, 3, 43,210,116,118,118,254,
+250,230,205,155,230,140,140, 12,114,243,230, 77,114,246,236, 89,178,101,203, 22,171,171,171,235,186,170,158,128,238,238,238,151,
+ 46, 94,188, 24, 22, 30, 30, 30,118,255,254,253, 48,147,201, 20,102, 52, 26,195,140, 70, 99, 88,104,104,104,216,177, 99,199,194,
+ 14, 30, 60, 24,102, 48, 24,194, 12, 6, 67,152, 94,175, 15,171, 89,179,230,249,170, 30,163,230, 2, 36, 27,110,157, 34,100,221,
+116,146,255,237, 52, 34,159,221,155,200,166,180, 39, 63, 52,171, 70,218,139,112,250,173,122, 84,166, 38,151,203,189,145,144,144,
+ 96,157, 63,127,190,161, 94,189,122,249,227,199,143,215,233,245,122, 66, 8, 33,122,189,158,140, 31, 63, 94, 87,175, 94,189,252,
+249,243,231, 27,226,227,227,173, 28, 14,231,114, 21,202,185,170,200,100,221,184,113,131,148, 68,165, 82,145,206,157, 59, 39, 52,
+108,216,112, 87,141, 26, 53, 70, 86,164, 41,149, 74,251,207,155, 55, 79, 69, 74,193,100, 50, 17,165, 82, 73,226,227,227,173,213,
+171, 87, 79, 3,224, 68, 47,230, 84,147,106, 82, 77,106,180,254, 50,202,156,130,167,220,157,248,197, 23, 95,132, 17, 66,194, 22,
+ 44, 88, 16, 86, 24,217,226, 1,144, 22,190, 56, 0,134,207,155, 55, 47,140, 16, 18, 54,119,238,220,162,117,202, 58, 16,125, 15,
+ 31, 62,108,220,176, 97, 3,113,115,115, 35,238,238,238,100,227,198,141,196,106,181,146,140,208,125,228, 74, 93,144, 23, 95,142,
+ 37,132, 16, 18,189, 98, 6,185, 82, 23, 36,246,199,101,100,212,168, 81, 26,177, 88, 60,162,156,131,235,216,164, 73, 19,165, 86,
+171, 85,237,222,189, 91, 37, 22,139, 31, 2,168,135,130,166, 72,166,176,172, 99,234,213,171,167,120,246,236,153,234,215, 95,127,
+ 85, 1, 88, 90,201, 10, 83, 11, 64, 39,137, 68, 50,104,158, 23, 55,134,252,252, 21,153,231,134,167, 0, 26, 0,112, 41, 92,199,
+115,238,220,185,132, 16, 66,188,189,189,111,150,161,105, 23, 20, 20, 52, 55, 38, 38,102,177,201,100, 90, 28, 30, 30,190,184,118,
+237,218,243,251,213,244,104,117, 98, 68,183,224,252,101,211,130,201,218,217, 65,223,245,106,222,245,192,176,142, 35, 62,172,225,
+124,107,188,171, 80, 51,212,142,173,124,171,233,176, 82, 21,219,203,203,235,126, 82, 82, 82,177,185, 82, 42,149, 36, 53, 53,149,
+196,197,197,145, 91,183,110, 17, 15, 15,143, 43, 21,105,186,187,187, 63, 79, 74, 74, 34, 63,174, 95, 79, 6, 55,168, 67,218,219,
+219,144, 14, 14, 54,164,169, 84,168,174, 11, 52,173,170,209,122,252,248,113, 24,128, 48, 0, 97, 57, 57, 57, 97, 57, 57, 57, 97,
+121,121,121,197,239, 1, 8,203,207,207, 15,203,207,207, 15, 51, 24, 12, 97,126,126,126, 85, 54, 90,109,132,104,211, 66,136,220,
+ 86, 2,104,251,122, 57,167, 77,171,233,108,185, 55,162, 21,201,155,222,153,108, 8,246, 34,109,249,248,184,146,154,125,249,124,
+254,117, 0,115, 10, 77,249,216,158, 61,123,106, 8, 33,164,103,207,158, 26, 0, 99, 11,223,255,180,208,100,245,172,100, 57, 89,
+254,254,254,234,162, 72, 22,128,223,252,253,253,213, 13, 27, 54, 36, 13, 27, 54, 36,222,222,222,202, 66,237, 74, 93,208,106,213,
+170, 21,173,213,106,139, 13,160, 92, 46, 39,105,105,105, 36, 54, 54,150, 68, 70, 70,146,135, 15, 31,146,132,132, 4,114,232,208,
+ 33,139,189,189,253, 25,122, 49,167,154, 84,147,106, 82,163,245,151, 26,173,183, 95,111, 26,173,208,208,208,183,109,215,183,143,
+ 30, 61, 10,155, 55,111, 94, 24,202, 25,136, 11,192,228, 5, 11, 22, 20, 69,189,190, 41,231,230,191, 35, 58, 58,154,140, 29, 59,
+150, 4, 6, 6,146,192,192, 64, 50,110,220, 56,146,159,159, 79, 84,175,158,145, 43,117, 65, 30, 14,109, 74, 8, 33, 68,249, 34,
+156, 92,169, 11, 18, 54,170, 53,121,242,228, 9,169, 86,173,218,197,114,126,255,244,157, 59,119,178,246,237,219,151,129,130,124,
+ 44, 46,128,150, 0, 54,138, 68,162,157, 40,104, 46,172, 14,192, 33, 32, 32, 32, 87,163,209,168, 6, 15, 30,172, 2,224, 83,142,
+102,135,192,192,192,215, 59,118,236, 32, 50,153,140,228,230,230,146,213,109,106, 19,242,243, 87,100,121,211,234,214, 31,127,252,
+ 81, 63,103,206, 28,181,163,163, 99, 40, 0,207,193,131, 7,155, 9, 33,164,125,251,246,153,165,137,217,219,219,247,140,137,137,
+ 89,172,211,233, 22,203,229,242,197,185,185,185,139, 79,157, 56,177,184, 71,131,218, 99,243,151, 77, 11, 62, 49,162, 91,112, 47,
+ 47,135, 65,235,186, 55,155,154, 58,127,226,224, 5,173,235,189,208,173,250,228,218, 7, 53,221,214,188,203,209,118,113,113, 73,
+215,235,245, 4,192, 31, 94,175, 95,191, 38, 78, 78, 78, 73, 21,105, 56, 58, 58, 46,248,116,248, 48,203,192,234, 94,228,245,134,
+133,196,116,233, 87, 98, 58,187,155,188,250,118, 54,233,231,238,172,104,201, 99,205,171,108,121,220,221,221, 47,221,191,127,255,
+ 13,163,149,151,151, 87,170,209, 82, 40, 20, 97, 6,131, 33,204,223,223,255,252,251,214,250,150,124,248,117, 16,177, 31,134,143,
+109, 71,178,166,117, 38, 61,237,184, 9,239, 33, 55, 28,192,117, 0,163,170,248, 61, 22,128, 85, 69,134,234,219,111,191, 37,132,
+ 16,226,239,239,175,198,251,141, 99,103, 87,167, 78,157,184,137, 19, 39,154,235,214,173, 43,107,211,166,141,252,193,131, 7,228,
+198,141, 27,228,236,217,179,228,200,145, 35,228,217,179,103, 36, 53, 53,149, 68, 71, 71,147, 62,125,250,200, 1,116,160,215, 66,
+ 10,133,242,119,166, 20, 47,242,143,166,184,215, 97,104,104, 40, 9, 9, 9, 97, 74,108,160, 29, 0, 97,211,166, 77,179, 86,173,
+ 90,181, 22, 5,195,202, 51, 65,108,124,208, 89,196,121,210, 89,196,121, 18,196,198, 7,133, 17,163,237, 43, 86,172,248,186, 97,
+195,134,233, 0, 68, 0,220,203,248,177,118, 78, 78, 78, 72, 74, 74,130,157,157, 29,236,236,236,144,148,148, 4, 66, 8,204, 4,
+ 48, 17, 64,111, 52, 66,171,213, 66,103, 37,208, 90, 1,133, 74, 5,119,119,119, 24,141, 70,191, 50,182,161,209,208,161, 67,253,
+130,130,130,178,190,248,226,139, 52, 20,228,202,236,156, 48, 97,194,165,223,126,251, 45, 72,165, 82,229, 70, 70, 70,234, 26, 52,
+104,208, 19,128,123, 76, 76,204,232,205,155, 55, 99,236,216,177, 40,231,166,211,160, 79,159, 62,103,159, 61,123,230, 55,106,212,
+ 40, 92,191,126, 29,171, 87,175, 70,118,118, 54, 1, 0,189, 94, 79, 44, 22,139,177,117,235,214,198, 13, 27, 54, 52,111,223,190,
+253,253,154, 53,107,178, 1, 32, 46, 46,238, 85,105,130, 12,195,212,246,245,245,133, 94,175, 71, 86, 86, 22,158, 61,123, 6, 27,
+ 59, 59, 68,164,101,187,117, 92,247, 99,206,151, 39, 46,113,135, 55, 15,114,156,213,173,141,126,229,197,235, 1,245, 60,221,220,
+ 12, 70,147,123,116,122,102,218,187, 28, 88, 30,143,151,148,157,157, 13,131,193, 0,173, 86, 11,133, 66,129,156,156, 28,100,103,
+103, 35, 45, 45, 13, 60, 30,239,117, 69, 26,182,185,185, 55,227,238,220, 96, 14,109,253, 22,126,230, 92,112,142,110, 4,231,228,
+ 15,168,101,200,194,182,133, 83,108, 12, 78, 46, 75,108,109,108,242,236,237,237,183, 3,240,175, 72, 47, 56, 56, 24, 57, 57, 57,
+200,201,201,129,147,147, 19, 28, 28, 28,224,224,224, 0,185, 92,142,252,252,124, 40, 20, 10, 4, 4, 4,160, 81,163, 70,216,179,
+103,207,159, 82,193,239, 25, 16,107,134,101,218,165,168, 52,240, 36, 18,212,116,144,250, 54,147,194,177,156,175,116,230,114,185,
+135, 29, 29, 29, 47, 2,152, 14, 64, 2, 96,186,163,163,227, 69, 46,151, 59, 0,192,114, 0,251,170, 88,140,149, 75,150, 44,153,
+ 27, 19, 19, 35,126,242,228, 9,190,248,226, 11, 44, 93,186, 20,175, 94,189,250, 30,128,181,112,157,143,156,156,156, 66, 89, 44,
+214, 79, 0,122, 3,232,233,225,225,209,165, 2,221, 1,115,230,204,209, 53,105,210, 36,250,197,139, 23, 3,238,220,185,211,116,
+246,236,217,249,137,137,137,136,142,142,134,135,135, 7,188,189,189,161, 82,169,144,151,151,135, 1, 3, 6,216,217,218,218,142,
+160,151,113, 10,133,242,119, 54, 89,111,121,145,127, 90, 68,171,212,229, 82,159,168,197, 98,241,146,176,176,176, 86, 13, 27, 54,
+228, 0, 56, 4, 0, 65,108, 12, 25,208,186,241,206, 19,219,191,109,120,108,195,194,134, 61, 26, 6,236, 12, 98,163,168, 23, 91,
+104,211,166, 77, 29,194,194,194, 90, 11, 4,130,143,203, 50,118, 0,224,224,224, 0, 59, 59, 59,216,219,219,195,193,193, 1, 86,
+171, 21, 42,141, 14,106, 11,160,212, 25,144,159,159, 15,101,225,178, 74,111,132, 90,173, 46,254,110, 41,116,156, 56,113, 98,214,
+230,205,155,101,233,233,233,223, 2,104, 48,118,236,216,254,155, 54,109,194,213,171, 87,117,189, 3,107, 57,173,104,215,248,235,
+122,233,175, 22, 7,114, 49, 9,192,205,155, 55,111,162,117,235,214, 96, 24,102, 88,105,130, 34,145,232,135, 3, 7, 14,136, 34,
+ 35, 35, 81,171, 86,173,200, 97,195,134,125,240,237,183,223,250, 73, 84,185,183, 1,192,156,147, 17, 57, 99,198,140,175, 86,172,
+ 88,145,149,149,149,101,212,104, 52,174,253,250,245, 67, 82, 82, 18, 82, 83, 83,127, 43,195,100, 70,135,135,135,147,252,252,124,
+196,198,198, 34, 60, 60, 92,244,213, 87, 95, 53,183,176, 88,253, 83, 96,243,225,216, 54, 77,155,143,106,217, 24,251,238, 62,225,
+221,138,138,179,111, 90,221,203,225,113,114,122, 13, 19,131,215,239,114,180,149, 74,229,198,175,191,254, 90,165, 82,169,144,146,
+146,130,167, 79,159,226,197,139, 23, 72, 72, 72,192,234,213,171, 85,185,185,185,155, 42,210,240, 20,114, 62, 91, 51,123, 2,195,
+121,254, 27,240,228, 6,160, 81, 2, 90, 21,244, 47,195,176,235,101, 6,182, 28, 61,206, 79, 76, 74,178, 63,120,240,224, 68, 31,
+ 31,159, 48, 0, 1, 21,185,122, 0, 96,177, 88,111,155, 80,176, 88, 44, 37,128, 12,137, 68,146,108, 99, 99,147,204, 98,177, 50,
+ 8, 33,234, 63,163,230,179,204, 48,130,205, 6,248, 34,176,184,229, 78,237,249,193,176, 97,195, 14, 36, 39, 39,247,136,141,141,
+109,181,105,211,166,175,133, 66, 97,196,166, 77,155,190,142,141,141,109,149,156,156,220, 99,216,176, 97, 7, 0,140,169,202,239,
+251,251,251,207, 88,188,120, 49, 86,175, 94,141, 70,141, 26, 33, 32, 32, 64,179,100,201,146,141, 0, 22, 2,248,216,223,223,255,
+246,140, 25, 51,198,203,100, 50,247,148,148,148, 70,223,127,255,253,148,141, 27, 55, 54, 75, 75, 75, 19, 86, 32,221,182,123,247,
+238, 56,119,238, 28, 0,164, 3,136,205,201,201, 49,167,165,165,161, 78,157, 58,104,222,188, 57, 84, 42, 21, 84, 42, 21,228,114,
+ 57,124,125,125, 97,181, 90, 91,209, 75, 57,133, 66,161,252,191, 26,174,210,141,150, 80, 40,116, 8, 14, 14, 70,205,154, 53, 29,
+ 80,216, 91,203,137,207,153, 63,107,226,112,177, 52,236, 60,152,240, 43, 24,214,174,190,216,137,207,153, 95,248, 21,142,175,175,
+175, 32, 56, 56, 24, 18,137,196,171,140, 31,191,158,145,145,129,224,224, 96,216,219,219,195,206,206, 14,193,193,193, 48, 26,141,
+200, 87, 42,161,182, 0, 26,147, 21,249,249,249,200,205,202,132,198, 2,152,109,156,144,144,144, 0, 54,155, 29, 87,134,166, 71,
+173, 90,181,178, 34, 34, 34,178, 0,220, 4, 48,117,233,210,165,152, 55,111, 30, 22, 45, 90,116, 64,156, 30,223,253,192,185,147,
+ 78,251,151,124,228, 18,192,103,134, 3, 48, 38, 39, 39,195,222,222, 30, 18,137,164, 84, 99,208,190,125,251, 38, 18,137, 4,187,
+119,239, 38, 41, 41, 41,109, 80,208,133, 63,142, 97, 10,204,158,136,133,124, 0, 27,195,194,194, 90,124,245,213, 87, 81, 93,187,
+118,229,182,108,217, 18,203,151, 47, 7,128,208,210, 52,229,114,249,189, 49, 99,198, 24,174, 93,187,134,151, 47, 95, 74, 78,156,
+ 56, 49,100,249,242,229,245, 19, 19, 19, 5,167,207,158,239,181, 55, 89, 49,228,219,139,183,132, 43, 46, 92,191,231,108, 43,169,
+ 87,195,217, 17,225,137,169, 60, 11, 27, 15, 42, 58,162, 45,184,236,137, 29,133,156,240,118, 2, 86,122, 71, 33, 39,172, 25,151,
+ 61, 65,169, 84, 30, 60,117,234,212,133,217,179,103,171,100, 50, 25,108,108,108,144,147,147,131,149, 43, 87,170,194,195,195,143,
+ 26, 12,134,211, 21,233, 90,172,164,137,119,117, 31,224,117, 68,241,123, 70, 43,193, 3, 3, 15, 33, 83, 63, 65, 96,157, 58, 48,
+ 24, 12,104,208,160, 1,179,116,233, 82,137,157,157,221,231, 21,154, 30,214, 31,170,155,153, 97,152, 12, 66, 72,170, 74,165, 74,
+ 17,137, 68,137, 60, 30, 47, 49, 55, 55, 55,133, 16,146,249,103,248, 44,194,194,103,173, 27,248, 3, 2, 17, 18,115, 84,105, 15,
+ 85,200, 45,109, 69, 27, 27,155, 9, 91,182,108, 17,254,252,243,207,166, 25, 51,102,232,167, 76,153,194,213,106,181,174, 83,166,
+ 76,225,206,152, 49, 67,255,243,207, 63,155,182,108,217, 34,148, 74,165,131,222,165, 32, 38,147, 9, 17, 17, 17,223,190,122,245,
+ 74,130,130,225, 70, 62, 89,178,100,201,216,152,152, 24,225,230,205,155,113,228,200, 17, 28, 57,114, 4,253,251,247,199,204,153,
+ 51,177,120,241,226,242,228,196, 13, 27, 54, 12,118,114,114,194,141, 27, 55,210, 0, 36, 2,104, 34,149, 74,109,250,247,239,143,
+ 30, 61,122, 64,167,211,193,104, 52, 22, 27, 45, 54,155, 13,123,123,123, 39,122, 13,164, 80, 40,148,191,220,100,189, 97,182, 56,
+ 0, 80, 20,170, 11, 9, 9, 97,202,187, 49, 90,242,100,144,171, 53, 72,200,215, 32, 41,207,250,198,103, 86,171,181,220, 95, 79,
+ 75, 75, 59,125,247,238,221, 9,193,193,193,156,180,180,130, 22,177,224,224, 96,104, 52, 26,164, 61,185, 15,181, 21,144,212, 10,
+130, 90,173, 70,222,139,199,144, 54,108, 5,167, 62,163,176,110,243,102,125, 78, 78,206,214,210, 52,249,124, 62,183, 90,181,106,
+ 89,113,113,113,102, 0,185,118,118,118,221,125,124,124,112,253,250,117, 0,216, 71,128, 53, 8,191, 6,220, 56, 6, 82, 16, 82,
+145,250,250,250, 66, 38,147, 65,165, 82, 93, 47, 77,243,238,221,187, 49, 38,147,169, 65,191,126,253,152, 95,126,249,229,144, 66,
+161, 88, 4,224,169,222, 10,246,147,228, 76,168, 45, 16, 2,232,230,224,224,240,233,226,197,139,187,204,152, 49, 3,167, 78,157,
+194,197,139, 23,141, 40,200, 5,187, 91,138,108,126,108,108,236,182, 57,115,230,180,100,177, 88, 83, 47, 93,186,100, 14, 8, 8,
+ 80, 24,141, 70, 75,237,192, 64,214,162,165,203,120,211,167, 78,182,207,209,224,121,143,218, 30,173, 25, 6,120,158, 42, 75,124,
+165, 66, 78,121,251,180, 61,159, 29, 58,160, 77,195,246, 19,134,245,149, 74,106,213,131,250,217,125,247,109,135,207,174, 19,133,
+199,132,220,144,201,250,159, 58,117,106,200,245,235,215,167, 27, 12,134,154, 2,129,224,181, 92, 46,223,160, 82,169, 42, 52, 89,
+108, 54,187,143,222,163,154,131, 60, 55, 23,194,194, 72,148,194,100, 69,182,222,140,151,246, 1, 24, 81,205,187,184, 25, 52, 35,
+ 35, 3,238,238,238,140,197, 98,233, 91,158,230,197,139, 23, 17, 18, 18, 82,100, 60,193, 48, 12, 24,134,201, 14, 12, 12,204, 20,
+ 8, 4, 57, 60, 30, 79,177,102,205, 26,157, 78,167, 3,135,195, 17, 90, 44, 22,246,251,212,246,230, 98,184, 10, 8,243,195,148,
+126,157,186, 54,170, 87,135,220,124,248,132,201,211,232,118,149, 19, 5,252,222,223,223,159,147,155,155,123, 26,192, 75,147,201,
+180,255,208,161, 67,194,209,163, 71,235, 14, 31, 62, 60, 18,128,223,218,181,107,135,168, 84,170,237, 85, 41,199,171, 87,175,190,
+ 95,177, 98,197,220, 5, 11, 22, 96,207,158, 61, 51, 94,189,122, 53,175, 48,210,213,127,241,226,197, 88,179,102, 13,246,236,217,
+ 99,125,249,242,229, 89,171,213,250,106,246,236,217, 13,221,220,220,178,211,211,211, 95,149, 35,219,180,103,207,158,250,219,183,
+111,243,149, 74,229, 45, 0,159, 78,155, 54,109, 98,139, 22, 45, 20,195,134, 13,147,230,230,230,202,197, 98, 49,127,199,142, 29,
+ 14, 28, 14, 7,106,181, 26, 12,195, 64,169, 84, 26,232,117,144, 66,161,252, 93, 41,203,139,252, 67, 40,243,222,192, 41,109, 3,
+ 53, 26, 77,102, 82, 82, 82,157,212,212, 84, 51, 0, 51, 0,228, 24,204,223,172,216,113,236,231, 65, 45,253, 37,233, 38, 19, 78,
+ 60,140,212,228, 24,204, 69,201,239,230,212,212, 84,101, 98, 98,162,141, 86,171, 85,149,241, 91,191,253,240,195, 15,218,107,215,
+174,217,196,198,198,194, 98,177,160, 73,147, 38,136,142,142, 70,222,203, 8, 72,234, 52,129,164, 67, 8, 34,195, 30, 34,252,226,
+101,196,171, 12,230,168,133, 43,242, 85,106,245, 98,163,209,120,162, 52, 65, 46,151,155, 11,128, 16, 66, 44, 0,160, 80, 40,158,
+170, 84,170,118,110,110,110,120,254,252,185, 68,109,193,204, 33,243,215,109, 34,132, 88,120, 5,189,185,102, 13, 27, 54, 12,143,
+ 30, 61, 2,128, 71,165,105, 42, 20,138, 25,147, 38, 77,186,182,123,247,110, 78,108,108,108,143,159,127,254,185, 71, 84, 84, 20,
+ 97,114,147, 44,183, 53, 92,248,141,157,217,236, 71,223,192,139, 33, 33, 33,240,240,240,192,142, 29, 59,176, 97,195, 6,211, 71,
+ 31,125, 20,179, 97,195,134,102, 50,153,108,127, 25,219,159, 47,151,203,207, 59, 57, 57, 77,175, 95,191,190, 82,173, 86, 35, 39,
+ 39, 7,105,105,105,112,116,114, 98,153,193,106,237, 98,111,191,255,116,134, 82,194, 57,127, 15,247, 83,210,203,141,102,181,228,
+178,199, 12,106,223,184,253,199, 11,230, 75,113,251, 4,152, 73,139, 65,126,254, 26,159,140, 27, 98,163,211,239,239,160,126,146,
+ 48, 58, 76,161,216,171, 80, 40,142, 84,177,178,244,108,221,186,245,129, 21, 43, 86,136,190, 92,189, 2,107,235,120,193,156,147,
+131, 44,189, 5,217,122, 51, 20,121, 47,241,252,121, 36,156,156,156, 17, 31, 31, 15,157, 78,135, 23, 47, 94, 16, 54,155,125,186,
+162,136, 78, 17, 37,154, 11,229, 2,129, 32,135,203,229,102,114, 56,156,220,216,216, 88,181, 78,167, 3,139,197,146, 88, 44, 22,
+ 81, 37,202, 90,205,217,217,121, 54, 10, 6, 19, 61,165,204,206,222, 24,204,133, 61, 56,232,232,235,236,212,107,225,148,209,206,
+ 62,158,174,242,216,152,215,166,173, 23,238,100,235,244,101,119,214, 0, 16,154,155,155, 91, 28,145, 60,124,248,240, 39,135, 15,
+ 31,158, 8, 96, 39, 10,230,221,186, 44,151,203,127,124,135,147,111,225,209,163, 71,231, 46, 88,176, 0, 34,145,168,120,240, 84,
+145, 72, 36, 4,128, 95,127,253, 21,207,159, 63,111,129,194,124, 45,171,213,122, 32, 61, 61,189, 34, 77,191,160,160,160,216, 99,
+199,142,241, 1,120, 78,155, 54,173,213,166, 77,155, 48,110,220,184,172,200,200,200,150, 0,226, 0,248, 77,157, 58,245,193,158,
+ 61,123, 28,172, 86, 43,242,242,242, 96, 48, 24,226,232,165,156, 66,161, 80,179,245,151, 16, 12, 32, 28, 5,227,103,245, 1,112,
+ 6, 5,105, 29,101,226, 93,232,206, 46, 0,232, 87,116,127, 44, 35, 25, 30, 40,232,145,117, 30,192, 79, 0,220,202, 18,117,114,
+114,250,124,236,216,177,166,148,148, 20,146,145,145, 65,142, 28, 57, 66,102, 77, 24,107,233, 86,203,211, 90,203,211, 77,237,226,
+226, 18,237,225,236,184,171,177, 24,179, 0, 84,171,196,134,141,141,138,138,154, 60,118,236,216, 9,133,191, 59,225,192,129, 3,
+170, 75,151, 46,169,216,108,118, 40, 10,134,118, 40, 50,148, 99,250,246,237,171,210,235,245,170,192,192,192, 92, 20, 36,238,151,
+197,144,142, 29, 59,230,157, 59,119,142, 88, 44,150, 63,140, 81,148,149,149, 69, 46, 94,188, 72,218,180,105, 35, 7, 48,186, 75,
+151, 46,215,239,220,185,115,189,109,219,182, 71, 43, 42,176,179,179,243,252, 39, 79,158, 60, 74, 72, 72, 8, 59,115,230, 76,216,
+254,253,251,195,166, 78,157,250,180, 97,195,134,218,152,152, 24,171,217,108, 38, 79, 30, 63, 38,129,181,107,171, 1,248,150,165,
+211, 89,196,121,160,216,241, 53,209, 45, 31, 71,116, 3,188, 9, 0,162, 92,247, 57,201,156,209,149, 68, 79,239, 69, 58, 9,217,
+119,223,165,166, 56, 58, 58, 94,120,244,232, 17, 81, 42,149,228,217,179,103,100, 76, 72, 15,114,119, 98, 87,114,190,135, 63,217,
+211,161, 6, 89,215,189, 33,233,209,161, 29,249,225,135, 31,200,177, 99,199,200,252,249,243,173,206,206,206, 74,148,147,163,229,
+238,238,126,233,208,161, 67, 97, 0,194,216,108,118,152, 66,161, 8, 83, 42,149,167,147,147,147,183, 4, 6, 6,206,173, 95,191,
+254,200, 58,117,234,116,238, 84,195,119,110, 23, 27, 65,116, 87, 91,225,235,218, 82,241, 58,252,113,220,171, 98,236, 0,223, 90,
+126,126,202, 27, 55,110, 88,245,122, 61,185,117,235,150,181,110,237, 0,221,218,161, 61,143,198,239, 88,117, 84,119,238,151, 11,
+154,147,219,239, 28,254, 48, 36,162,163,152,245, 75, 43, 73,241,112, 28,239,202,112, 0, 39,240,123,175,195,177, 0, 78,162,252,
+ 94,136, 44, 0, 59,151, 47, 95, 94,178,167, 33, 0,176, 26, 54,108, 24, 70, 8, 9,107,216,176, 97, 88, 85, 11, 34, 22,139,103,
+159, 58,117,106,137,143,143,207,234, 97,195,134,237,144,203,229,103, 70,142, 28, 25,129,130,206, 32, 12, 10,102, 71,232, 91,173,
+ 90,181,172,240,240,112,114,253,250,117, 50,120,240, 96, 37,143,199, 27, 69, 47,227, 20, 10,133,242,151, 48,185,180,191, 21,141,
+163,181, 34, 34, 34,162,104, 12,173,105,229,137,207,155, 55, 47,236,209,163, 71, 97, 40, 24, 37,190, 92, 56, 28,206,241,143, 62,
+250,136,184,185,185,169, 92, 93, 93,143,115,217,236,137,222, 34, 4,227,221,186,186,183,219,187,119,111,255,239,191,255,190, 15,
+128, 22, 0,184, 94, 94, 94,105, 25, 25, 25,170, 59,119,238,168,218,180,105,163,114,118,118,150, 5, 5, 5,169,214,174, 93,171,
+ 50,153, 76,170,217,179,103,171,240,199,241,190, 74, 67, 8, 96, 58,159,207, 63, 94,183,110,221,136,133,253, 58,155, 86,207,156,
+ 72,198,250,187,168, 0,124, 15,224, 35, 0,246, 0,184, 67,134, 12,185,242,226,197,139, 11, 65, 65, 65,219, 42,161,235, 89,191,
+126,253,171, 7, 14, 28,120,116,236,216,177,176,207, 63,255,252,145,147,147, 83, 74, 76, 76,140, 85,167,211,145,188,188, 60, 34,
+151,203,201,153, 51,103, 44,142,142,142,155,203,220,112, 1, 59,157, 92,220, 87,234, 16, 14,201, 11, 70,145, 54,124, 86,234,187,
+212, 20,137, 68,146,155,147,147, 67, 50, 50, 50, 72,108,108, 44, 57,122,244, 40,233,217,186, 57, 57, 56,117, 16,217, 55,161, 63,
+ 89,211,179, 57,105, 97, 35, 84,187,219, 72, 31,217,216,216,200, 42,211,235,208,221,221,253,146, 94,175, 47, 30,190,161, 90,181,
+106, 97,129,129,129,199,130,130,130,214,157, 58,117,234,147,245,235,215,247,239, 84,195,119,238,202, 30,173,181,154,203,135,137,
+242,208,247,100, 94,147, 0, 93,161,153, 47, 21, 47, 39,199,189, 55,174, 95,183, 22,153, 95,179,217, 76, 78, 28, 63, 78,134,246,
+234, 22,145,127,254,215,159,110, 45,158,113, 96,118,147,128, 19,109,132, 24, 94,158, 97, 43,126, 20,145,194,169,189, 45,107, 75,
+111, 31,199,244,118,118,172,239, 91,218,188, 49,189,212,208,128,128,128, 88, 66, 72,122,157, 58,117, 98, 1,236,171, 83,167, 78,
+201,229, 15,203,144, 45, 30,156,116,201,146, 37,164,240,252, 96, 1, 88,180, 98,197,138, 48, 66, 72,152,191,191,255,109, 0,104,
+ 36,129,115, 7, 59,214, 79,253,252,220,114, 58,216,177,126,106, 36, 41,125,202, 40, 95, 30,106,183,115, 17,223,234,239,239,161,
+236,232,101,119,115,223,174,159, 87,247,238,221,123, 7,128,205, 0,190,118,114,114,186, 53,124,248,240,231,123,246,236,121,190,
+118,237, 90, 99, 76, 76, 12, 25, 63,126,188, 90, 32, 16,124, 77,175,131, 20, 10,133,242,151, 81, 52, 50,188, 71, 85,140, 86,223,
+185,115,231,134, 17, 66,138,198,210, 26, 93,202, 58,253, 22, 44, 88, 16, 70, 8, 41, 26, 29,254,237, 1,204, 74, 27,208,108,201,
+150, 45, 91,136, 64, 32,248,233, 29, 55,166,164,166,251,128, 1, 3, 90, 42, 20,138,102,110,110,110,205, 10, 35, 87,222,206,206,
+206,177,251,247,239, 87,105,181, 90, 21, 33, 68,101, 54,155, 85,143, 30, 61, 82,117,236,216, 81, 85,226,169,191,162,114,190,193,
+151,238,184,253,112,225, 4,242,165, 59,110,191,245,209,168,157, 59,119,158,139,139,139, 59,109,107,107,251, 69, 37, 53,189, 93,
+ 92, 92, 22, 57, 58, 58, 94,112,118,118,254,210,209,209, 49,221,104, 52,146,188,188, 60, 18, 29, 29, 77,174, 95,191, 78,238,222,
+189, 75, 28, 29, 29, 83,202, 42,103, 23, 17,231, 94,222,234,233,196,186,115, 5, 49,108,154, 79, 0, 16,249,250,121, 36,251,135,
+165,228,225,164, 30,164,163,144,253,219, 59,236, 79,216,219,219,111, 63,126,252,184,245,213,171, 87, 36, 52, 52,148,156, 57,115,
+134,204,156, 57,147,212,246,244,208,183,228,179, 50,219, 9, 56, 23,222,101,192, 82,189, 94, 31,166, 80, 40,194, 84, 42, 85, 88,
+221,186,117,195,154, 55,111,126,172,101,203,150,235, 14, 31, 62,252,201,202,149, 43,251,119,177, 17, 68,107, 46, 31, 38,228,243,
+ 94,132, 76,111, 75, 94, 79,236, 72, 58,139, 56, 79,202,212,116,115, 75, 41, 26,173, 93,173, 86,147,155, 55,111,146,171, 87,175,
+ 18,119,103,103, 69,123, 17,123,114, 27, 1, 58,180,177,133,125,101,203,217,201,142,181,235,222, 15,223, 88,180,231,246,144, 95,
+199,246, 50,119,180,103,109, 41,177,222, 65, 66, 72,250,224,193,131,227, 9, 33,233, 71,143, 30, 77, 38,132,164, 15, 26, 52, 40,
+158, 16,146, 14,224, 64,105,154,111, 13, 78,186,179,208,100, 77, 95,178,100, 73, 24, 33, 36,108,201,146, 37, 97, 64,193, 32,170,
+ 29,236, 88,187,239,111, 91, 99,213,159,217, 77, 14,143,239, 99,233, 96,199,218, 93,106, 57,237, 57,167,195,119,174, 39,134, 11,
+251,200,241,153, 35, 45,109,221,109,111, 4, 4, 4,172,249,228,147, 79,142,221,189,123,247,169,197, 98,121, 30, 27, 27,251,124,
+243,230,205,207, 91,181,106,117,219,201,201, 41,130,207,231,127, 84,209, 49,250,147,160,154, 84,147,106, 82, 77, 74, 9, 8, 33,
+ 40,175,191,251,233,111,191,253, 86, 66, 8,153, 61,100,200, 16,172, 90,181,106,104,253,250,245,135,123,121,121,185, 0, 64, 90,
+ 90,154,230,217,179,103,138, 33, 67,134, 96,209,162, 69, 88,189,122,245, 58, 20,228,178,252,127,146,113,226,196,137,106, 51,102,
+204,144,173, 92,185,210, 58,126,252,248, 58, 0,158,101,103,103,215, 30, 57,114,228,116, 14,135, 51,196,215,215, 55, 40, 61, 61,
+ 61, 75,171,213,238, 3,176, 13, 21,180,153,150,133,128, 5, 75,211,234, 30,184,192,130,165,196,219,189, 22, 45, 90, 52,108,208,
+160, 65,198,245,235,215,155, 21, 10,197,169, 74,202, 37,103,101,101, 45, 43, 90,112,116,116,116,127,242,228,201, 71,174,174,174,
+172,216,216, 88,232,245,122,188,122,245,202,138,130,166,169, 82, 81,153,201,198, 31,143, 94, 10,156, 61, 42,196, 86,243,242, 49,
+120,108, 54, 76, 92, 62, 50,238, 93,192,206,155, 47, 21,106, 35, 54,189,203,118,202,229,242,239,102,206,156, 57,242,139, 47,190,
+ 16,250,250,250, 50,191,253,246, 27, 14, 29, 58,164,151,201,100, 61, 1,220,248,125,232,167,170, 97,181, 90,193,231,243, 1, 0,
+243,230,205, 3,139,197,226,202,100, 50, 62,195, 48, 2,134, 97,196, 12,195,176, 77,113,207, 97, 85,228, 33, 51, 79,142,228, 76,
+121,185,122, 22,171,245,208,253,251,247,103, 53,110,220,152,245,240,225, 67,100,101,101,225,213,171, 87,196, 66,200,129,155, 90,
+ 75, 65, 82,162,190,242,229, 19, 59, 58, 13,104,228, 32, 96,241,119, 45, 66,123, 3,139,189,213,138,193, 40, 24, 75, 11, 0,118,
+ 50, 12,195, 3,144, 83,183,110,221, 78, 47, 94,188, 16,213,173, 91, 87,251,242,229,203,115, 12,195,120, 1,216, 93,154,166, 72,
+ 36,202, 6,144,125,244,232, 81, 0,152,132,130,157,215,100,241,226,197,233, 55,111,222,196,146, 37, 75, 50, 1,108, 1, 0,169,
+131, 83,191, 32, 59, 30,195,255,101, 9, 90,233,193,218,100, 37,165, 70, 93,165,174,110,157,235, 75, 88,224,254,252, 21,154,185,
+ 7,178,248,102, 99,131,165, 75,151,222, 84,169, 84,250,131, 7, 15, 26, 62,252,240, 67,118, 76, 76,204, 3, 0,183, 0, 28, 69,
+ 97,142, 37,133, 66,161, 80,254, 82,222, 30,214,161,194, 28,173,183, 93,235, 42, 0, 63, 70, 69, 69, 21, 79, 42, 29, 21, 21, 21,
+ 6, 96, 43, 10, 70,131,239, 91, 5,199,187,176, 48,162,181,237, 29, 55,230,109, 77, 97,112,112,176,232,197,139, 23, 60,148, 62,
+225, 49,243, 14,154,127,160,180,185, 14, 3, 2, 2, 54,152, 76,166, 99, 91,183,110, 61,204,102,179, 71,190,135,219,247,245,247,
+247,207,219,191,127,191, 53, 52, 52,148, 44, 92,184,208,226,225,225,145,135, 63,230,104,189,161,217,158,207, 62, 50,167,142,151,
+226,209,232,182,228,245, 39,253,200,173, 81, 29,201,100, 47,169,162,189,144,125,232, 61,159, 74,252,237,236,236,118,138, 68, 34,
+133,173,173,237, 37, 0,173,223,231, 24, 57, 57, 57,237,113,119,119,191, 84,242,229,230,230,118,204,197,197,229,123,103,103,231,
+133,246,246,246, 83,252,132,252,245,159,212,246,212, 69, 12,168, 75, 46,183,113, 33,163,156,249,111, 55, 29,190, 93, 78, 15, 63,
+ 63,191,156,189,123,247, 90, 79,159, 62, 77,230,207,159,111,173, 94,189,186, 2,229,228,181,149, 27,209,178,103, 31, 58, 50,168,
+165, 53,179,143, 23, 89, 85,199,198,218,201,129, 93, 86, 15,197, 81,133, 6,120,108, 69,154,181,106,213,218, 74, 8,217,181,124,
+249,242, 93,248,125, 46,208,110, 75,151, 46, 93, 76, 8, 89,188,116,233,210,197, 0,122, 0, 64,123, 59,214,222,125,253,155, 90,
+210,122,123,146,111,234, 72, 45,237,237, 88,123, 75,141,100, 58,114, 78,156,156,216,199,154, 62,177, 13, 89,228, 47,177,180,116,
+ 20, 92,225,243,249,159,160, 32,226,220, 28, 0,159, 62, 53, 83, 77,170, 73, 53,105, 68,235,239, 97,188, 42, 51,169,116, 73,220,
+ 29, 29, 29,119,214,172, 89,243,176,175,175,239, 97,169, 84,186, 14, 5, 73,243, 85, 61, 16,126, 43, 86,172, 80,216,217,217, 53,
+250, 19, 15,174, 43, 0, 47,252,113,226,220, 63,173,194, 44,243,192,140,152, 47,134, 62, 89,230,129, 25, 37,222,110, 94,167, 78,
+157,111, 80, 48,154,247,251, 86, 66, 95, 71, 71,199,205,142,142,142, 41,133,185, 89,190,149,209,108,202,102,143,236, 36,100,255,
+214,154,207,202,232, 36,228,220,105,198,102,143,248,135,158,128,229,117,182, 40, 75,179,154,179,179,243,122, 71, 71,199, 52,103,
+103,231,205, 85, 52, 89,111,104, 54, 18,193,163,179, 61,251, 68,107, 27, 70,221,217,142,125,180,169,184,236, 78, 29, 85,216,246,
+224, 37, 75,150,140, 35,132,140,243,244,244, 28, 82,194,248, 7, 45, 90,180, 40,132, 16, 18, 82, 52, 2,124,115, 49, 92, 59,218,
+179,247,183,177,101,228, 29,237,217,251,155,139,225, 90, 86, 57, 59,217,179, 15,181,177,101,228,237,109, 89,251,125, 4,168, 78,
+ 47,230, 84,147,106, 82, 77,106,180,254, 29, 70,139, 86, 24,170, 73, 53,169, 38,213,164,154, 84,147,106, 82,163, 85,186,177, 42,
+249,242, 40, 50, 90, 28,186,111, 40, 20, 10,133, 66,161, 80,222,139, 50, 7, 44,101,202,113,165, 85, 73,108,127, 23,103,123,153,
+106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 57,205,138,180,255,191, 59,214,253,101,208,166, 67,170, 73, 53,169, 38,213,164,
+154, 84,147,106,254, 93, 52,255,117, 16, 66,222,105,144, 80, 10,133, 66,161, 80, 40, 20,202,239, 4, 23,254, 45, 30,184,180, 40,
+154, 85,106,142, 22,167,249,242, 76,179,217,236, 10, 0, 28, 14, 71,102,122,176,208,163, 60,117, 46,208,197, 92, 48,253, 14, 56,
+192, 36, 51,112,169, 20,205, 75,102,179,217,161, 80, 51,207,244, 96, 97,143,114, 53,155, 47,191, 80,114,125,243,131,133,221,254,
+224, 20, 1, 54,183,249,242,180,183,202,234, 89,217,189,194,224,141, 49,177,254,178,114,254, 83, 52,255,203,112, 91, 44,207, 52,
+153, 10,234, 17,151,203,145, 25,239,151, 95,143,120, 45,150,167,149, 92,223,116,127,161, 91,121,154, 98,145, 32,167,150,151,203,
+186,242, 52, 99,211,178,103,171, 53, 58,167,242, 52,171,122,110,122,123,120,116,177, 20,158,155,108, 96, 82, 74,122,250,165,191,
+ 89, 93,106, 10, 96, 33, 0,219, 18,239, 69, 0,248,148,214, 74, 10,133,242, 15, 51, 90,225, 40,152,231,112,123,161,217,218, 94,
+166,209, 50,155,205,174, 97,199, 23, 67,173, 7,186,140, 89,238,234, 55, 96,219, 31, 38, 74, 54,235,242,248,242,200,131, 65,108,
+147,194,193,133, 99,180, 77, 75, 75, 99, 0,128, 97,152,159, 0,248,148,162,233, 16,118,124, 49, 52, 6,160,253,240,165, 14, 62,
+128,109, 22,143,247,153, 72, 34,233,164,213,106,235, 3,128, 72, 36,138,212,170,213,215, 92,140,198,181,111,175, 95,214,150,149,
+ 44,107,231,209,203, 93,235, 12,216, 54,211, 98,181,242, 83, 31,110,109,175,203,142,225,112,205,250, 45, 95, 2,231, 22,151, 98,
+170,202,208,251,253,119, 63,152,239,196, 5, 58,243,133,194, 70,246, 14, 14,237,172,132,212,181, 90,173,140,197,108,126,174,200,
+207,191,101, 53,155,159,152, 13,106,167,176, 83,223, 88,203, 43,231,219,219,242, 1,192, 57, 14, 12,145, 72,165,157,216, 92,110,
+107, 0,176,152, 76,191,169, 85,170,107, 3,129, 35,149,217,246,202,238,159,119, 93,255,191,134,201,100,118,141,187,176, 24,122,
+ 19, 16, 60,248, 27,215,134, 35,127,217, 15, 0, 6,217, 19, 55, 85,204,169, 22, 0, 32,169, 21,114, 95,224, 30,156, 9, 0,156,
+196,116,215,232,208, 5,208,155,128,186, 33, 75, 93, 43,210,252,112,209, 33,167, 47, 38, 15, 18, 0,192,197,163,223,215,190,122,
+236,199, 94, 0,208,121,208,180,115,221, 7,207,136, 6,128,213,219,143, 57, 29,248,102,104,185,154,149, 59, 55,243,121,249, 49,
+161,254, 6, 69,186,189,183,132,227, 30, 19, 19,195, 2, 0, 79, 79,207, 74,157,155,213, 0,187,116, 96, 58,139,205,110, 87,203,
+223, 63, 24, 0,137,125,253, 58,220, 98, 54,223,246, 0,182,252,201,117,105, 38, 33,111, 14,206,202, 48, 12,173,144, 20, 10,229,
+159,198,153, 66,115,117,230, 15, 15,179,101,125, 67,173, 7,110,188, 2, 58,180,108,136,201, 35,123, 75, 75,126,118,100,219, 82,
+159,152,135, 39,235,252,252,203, 90, 86,195,134, 13, 17, 23, 23, 87,169, 82,104, 12,192,245, 24, 0,242, 23, 54,121, 18,201,235,
+245,107,214,216,118,235,214,141,227,233,233, 9,134, 97,144,145,145,209,242,242,229,203, 77,103,205,154, 53, 21,242, 23,121, 26,
+ 3,148,215, 99, 42,214, 45, 42,107,253,218,213,177,112,198, 80, 59, 0,248,114,204,150,166, 15,163, 50, 29, 95,191,126,221,101,
+238,220,185, 57,236,107,215,126,116, 6,118,101, 2,201,149, 41,231,158,211,247,133,118,233,191,250,141,154, 49,227,168,191,191,
+191,212,215,215,151,177,177,177, 1,155,205, 70, 94, 94,158,207,179,103,207,122, 61,120,240, 64,125,249,198, 79,252, 71, 15,250,
+197,202,132, 45,116,149,218,118,109,154,240,162,141, 77,228,232,129, 3,171, 13, 29, 58, 84, 88,171, 86, 45, 0,192,235,215,175,
+ 3,142, 28, 57, 50,252,232,209,163,139,160, 77, 51,107, 12,208, 85,180,237,197,154, 0,132, 64,107,123, 87,215, 81,108, 46,183,
+190,217,108,246, 42,140, 54,164, 90, 76,166, 72,185, 76,182,239,237,245, 41,127, 68,111, 2, 94,164, 3, 93,219, 5, 99,244,160,
+174, 18, 0,152, 59,108, 69,203,196,248, 87, 60,131,193,128,218,129,117,219,124,253,205,186, 11, 96,177,176,247,216,229,226,245,
+ 43,163, 25,241, 34, 14,139,191, 94,143,180,167, 71, 90, 90,242, 95,117, 82, 42,242,217, 0, 96,107,103, 55,232,200,193, 95,175,
+121, 6, 13,185,247, 42,219, 88, 41,205,242,206,205,243, 7, 55,123,164, 60,187, 86,239,135,139, 59,185, 62, 62, 62,120,250,244,
+105,213,206,205,252, 40, 27,171,135,199,243,181,159,127,238,222,190,125,123, 72,165, 82,112, 56, 28,152,205,230,174,183,111,223,
+238,186,120,241,226,105,200,143, 82, 87,246,220,172, 4,107, 25,134,233,244,225,228,153, 30,189,251, 15,193,160,158,109,104, 69,
+164, 80, 40,255, 52,138,162, 87, 37,123, 30,110, 47,215,104,113, 56, 28, 89,183,177, 43, 93,219,181,104,128,135, 79,162,243, 19,
+146,210, 85, 69,159,229, 70, 30,169,221,191,141, 87,189,155, 55,111, 64,175,215,227,183,223,126,195,147, 39, 79, 16, 31, 31,143,
+ 41, 83,166,232, 11,155, 14, 75,211,204,107, 63,124,169, 3,242, 99,164, 1,252,168, 26,151, 95,190,100,235,116, 58,220,188,121,
+ 19,121,121,121,224,243,249,168, 86,173, 26,186,119,239,206,121,249,242,165, 99,151,110, 61,237,218,247, 28, 17, 7,187, 0, 21,
+135,195,201, 43,107, 30, 17, 14,135, 35,235, 50,102,185,107,189,128,234,120,157,144,150,191,240,155,159, 85, 86, 43,225,196,198,
+ 39, 26,111,220,184,129,224,224, 96, 92,186,116,201, 41, 55, 55,247,171, 45, 91,182, 44,228,126,251,195, 70,147, 33,103, 14,202,
+214,203,107, 63,124,169,131,147,236,176,239,213,243, 39,120,145,145,145,188,173, 91,183, 34, 39, 39, 7,124, 62, 31,246,246,246,
+112,119,119, 71,237,218,181,153, 47,191,252, 82, 26, 18, 18,137,143, 39, 13,241, 53,250, 77,140, 42,171,156,197,219,174, 74, 20,
+ 59, 43, 46,214, 58,118,230, 12,171,109,219,182,111, 60,182,215,172, 89, 19, 61,122,244, 16,142, 26, 53,170,214,208,225, 35,173,
+237,251,124,248, 26, 82, 95, 77,133,154,234,100,145,147,230,174,103,215,225,195, 79, 45, 93,186,212,222,221,221, 29, 18,137, 4,
+ 0,144,159,159, 95, 45, 33, 33,161,229,162, 69,139, 6,223,143, 56,200,105, 31,146,156, 6,137,183,182,188,253,249, 95,133,203,
+229,200,138,162, 72, 54, 18, 81, 94,114, 74,166, 26, 0, 12, 6, 3, 12, 6, 3,244,122, 61, 62,154, 54,133, 61,105,112,115,127,
+223,118, 51, 31,199,167,102,230,214,189,124,207,177,232,187,166, 10, 52, 57,154,120,185, 60,233,202,164,197,159,127,238,238,230,
+246,123,139,224,222, 61,123,216,185,185,185, 93, 23, 47, 94, 92,143,136, 59,202,235,134, 44,181, 47, 79,179,188,115, 83, 30,125,
+166,198,215, 51,122, 52,218,246, 77, 40, 44, 22, 11,238,222,189,139,155, 55,111, 98,221,186,117,228,220,185,115,249,182, 18,201,
+ 36,148,123,110, 70,217,180,245,200,240,251,246,219,163,140, 64, 32,192,201,147, 39,241,242,229, 75,176, 88, 44, 52,108,216, 16,
+163, 71,143, 70,215,174, 93,221, 39, 79,158, 66,218,247, 28, 22, 11,187, 64,229,123,214, 37, 22,128,153,243, 23,127,235, 49,102,
+226,116,172,254,250, 75,106,180, 40, 20,202, 63, 57,154, 85,230, 16, 15, 8, 13, 13, 37,133,175, 14, 0, 64, 0, 86,205, 1,219,
+ 14, 28,126,100, 61, 83,115,192,182, 3, 4, 96, 17,128,101, 11, 84,111,220,184,177, 73, 46,151,147, 7, 15, 30,144,143, 62,250,
+ 72,189,113,227,198,107,103,206,156, 57, 98, 54, 26,119,120,122,120,124, 71, 80,122,130, 61, 1, 88,190,128,157, 88, 44,206, 74,
+ 74, 74, 34,103,207,158, 37, 75,150, 44, 33,251,246,237, 35,231,206,157, 35,151, 47, 95, 38,231,206,157, 35, 7, 14, 28, 32, 17,
+ 17, 17, 36, 58, 58,154, 72, 36,146, 44, 95,192,174, 28, 77, 54, 1,216,181, 7,108,157,115,244,161,105,105,224,128,109,179, 8,
+192,118, 0,234, 52,110,220,216,114,228,200, 17,178,119,239, 94,242,203, 47,191,144,136,136, 8,146,157,157, 77, 56, 2, 73, 86,
+209,247,202, 42, 39, 1, 88, 94, 94, 94, 89,114,185,156,120,123,123, 19, 62,159, 79,220,220,220, 72,237,218,181, 73,203,150, 45,
+ 73,175, 94,189,200,200,145, 35,201, 87, 95,125, 69,228,114, 57, 17, 10,133,153, 69,223, 43, 75, 51, 24, 16, 73, 36,146,164,176,
+176, 48, 82, 22, 90,173,150,100,103,103,147, 11, 23, 46, 16,137, 68,146, 20, 12,136,202,211, 20, 1, 77,130,130,130,178,178,179,
+179,137,209,104, 36, 73, 73, 73,228,217,179,103,228,229,203,151, 36, 41, 41,137,104,181,218, 98,237,232,232,104,226,231,231,151,
+ 37, 2,154,148,165,249, 95,166,168, 78,188,253,242,113,115,235,229,238,238,174, 61,122,244, 40, 73, 77, 77, 37,187,119,239, 38,
+ 44, 96,197,219,235,149,167,201, 7,186,183,109,219,214,114,247,238, 93,242,248,241, 99, 50,111,222, 60,210,163, 71, 15,210,179,
+103, 79,178,120,241, 98,146,146,146, 66, 82, 82, 82, 72,175, 94,189, 44,124,160,123, 69,245,179,180,115,211, 14,240, 9, 9, 9,
+209, 26,141, 70, 18, 27, 27, 75,234,215,175,159,194, 6, 70, 73,128,122, 29, 0, 65, 69,245,211, 11,112,240,240,240, 72,191,123,
+247, 46, 57,118,236, 24,241,245,245,205, 98, 3, 31,218, 2, 53,109,129,154,108,224,195,154, 53,107,102,221,189,123,151,228,228,
+228, 16, 31, 31,159,116, 47,192,225, 61,234, 18, 11,192,206,249,139,191, 37, 81, 41,106, 50,127,241,183, 4, 64, 18, 41,200, 30,
+189, 68,107, 36,133,242,223,227,109, 47,242,143,191,175, 16,242,102,175,195,144,144, 16, 6,192,245,242,190,164,101,179, 87,174,
+ 94,189,154,163,211,233,240,243,207, 63, 43, 63, 24, 60,248,112,135,118,237, 98,107,248,250,202, 25, 22,171,194,217,134,179, 4,
+130, 79, 86,175, 94,109,111, 48, 24,240,232,209, 35, 52,109,218, 20,238,238,238,144, 74,165,144, 74,165,112,117,117, 69, 96, 96,
+ 32,100, 50, 25,108,108,108,240,197, 23, 95,216,101, 9, 4,159, 84,164,107,181, 18, 14, 0, 88,172, 86, 62, 15,152,236,215,172,
+217,163, 69,139, 22,177,156,156,156,224,232,232, 8,169, 84,138,151, 47, 95,194, 96, 48, 64, 44, 18, 87,106,144, 86, 22,139,197,
+146, 74,165,184,122,245, 42,102,206,156,137,214,173, 91,195,222,222, 30, 54, 54, 54,168, 95,191, 62,186,119,239,142, 73,147, 38,
+ 33, 54, 54, 22, 76, 37,146, 74,158,115, 56,211, 39, 77,154,228, 26, 28, 28, 92,234,231, 58,157, 14,114,185, 28, 89, 89, 89,168,
+ 86,173, 26,134, 12, 25,226,250,156,195,153, 94,150,158, 19,224, 94, 45, 32,224,212,131, 7, 15,156, 37, 18, 9,246,238,221,139,
+ 19, 39, 78,224,252,249,243, 56,123,246, 44, 66, 67, 67,113,242,228, 73,100,101,101, 1, 0, 2, 2, 2,112,232,208, 33,103,169,
+171,107,168, 19,224, 78, 79,233,202,145,152,153,121,177,126, 70,134,243,168,145, 35,111,169, 84, 42,140, 26, 53, 10, 43, 87,173,
+250,146, 11,204,170,204,247, 3, 1, 59, 71, 15,143, 93,223,126,251, 45, 43, 35, 35, 3, 3, 7, 14,204, 94,187,106,213,132,240,
+ 11, 23,106,133,157, 63, 95,107,229,210,165, 19, 58,116,232,144,157,146,146,130, 61,123,246,176,220,124,124,118, 5, 2,118, 85,
+ 45,167, 18,152,185, 97,195, 6,161, 78,167, 67,183,110,221, 98,173,145,145,129,102,224, 87, 21,240,242, 58, 96,172,232,251,233,
+192,244, 47,190,248,194, 93, 32, 16,224,179,207, 62,203,214, 36, 38, 54, 48, 3,191,228, 3, 9,249, 64,130, 25,248, 69, 25, 23,
+215, 96,204,152, 49,217, 2,129, 0,235,215,175,119, 79,255,125,210,237,202,210, 20,192, 41, 0, 55, 0,164,125, 56,121,230,135,
+193,205, 91, 97,207,142, 45,248,102,233,220, 93, 0, 62, 96, 24,102, 31,128, 57,180,230, 81, 40,255, 77, 42,227, 69,254,166, 76,
+ 46,235, 3, 78, 73, 39, 9,160, 99,121, 42, 14, 78, 78, 77, 27, 52,104,128,155, 55,111, 34, 40, 40,232,129,189,189,189,153, 39,
+ 16,128,203,229,130, 88, 43,244, 89, 16, 73, 36, 93,186,118,237,202,185,119,239, 30,252,252,252, 32, 18,137,192,229,114,223,120,
+241,120, 60,120,120,120, 64,161, 80,160, 75,151, 46,220, 77,155, 54,117,129, 94,255,117,133, 55,196,152,103,210,172,123,223,142,
+252,105,247,174,154,237,219,183, 71,126,190, 2, 86,171, 21, 98,177, 24, 6,131, 1, 28, 14,167,160, 9,200, 68, 20,149,217, 99,
+ 22,139,197,194,102,179,225,231,231,135,149, 43, 87, 66,167,211,129,199,227, 1, 0, 20, 10, 5,228,114, 57,158, 61,123,134,132,
+132, 4,144, 74,140, 72,102, 99,103,215,123,232,208,161,165, 78,248,171,215,235,145,159,159,143,252,252,124,200,229,114,232,116,
+ 58,180,106,213,138,127, 38, 52,180, 55,114,114,214,150,250, 29,161,112,240,158, 61,123, 92,249,124, 62,180, 90, 45,148, 74, 37,
+146,147,147,145,152,152,168,147,201,100,102, 27, 27, 27,150,175,175, 47, 75, 32, 16, 8, 6, 12, 24,192, 40, 20, 10, 48, 12,131,
+144,144, 16,167,253,123,247, 14,133,193,176,142,158,210,149,227, 34,160,111, 98, 48,244,109,209,188,249,213, 7, 15, 31, 6,127,
+242,201, 39,136,136,136,248, 86,124,240,224, 13, 13,240,164,188,239,198, 2,211,191, 43, 97, 96, 72, 98, 98,144, 17,200, 42,177,
+ 74,130,111, 92,220,249, 49, 99,198, 60,141,136,136,112, 94,191,126,189,251, 7, 3, 7, 78, 7,176,162, 42,101,180,177,179,107,
+230,225,225,129,115,231,206, 33, 41, 62,126,174, 25,208, 86, 41,188,196,102,183,109,223,190, 61, 78,158, 60,137,148,196,196,185,
+230, 55,203, 88,240,160, 4,100,113, 98, 99,231,238,218,181,107,231,248,241,227,193,230,112,218,194, 92,165,134,195, 63, 36,190,
+143,159,242, 9,118,109,223,180, 11,192, 68, 0, 86, 0, 15,104,141,163, 80,254,219, 81,173,138,188,200, 63,200,108,109, 7, 80,
+181,136,150,171,171,171,151, 84, 42, 69, 90, 90, 26,234,214,169, 35, 19, 8, 4,224,115,185, 16,242,249,149, 42,129, 70,163, 9,
+242,244,244, 68,126,126, 62,156,157,157,193,227,241,138, 95,124, 62,191,248,127, 27, 27, 27,176, 88, 44,248,248,248, 64,163,209,
+ 4, 85,168,155,249,204,245,224,166,105, 31,221,189,113,174,230,192,129,131,224,224,224, 8,111,239,106,112,117,117,133, 72, 36,
+130,183,183, 55,106,213,170, 69,214,174, 93, 11,177,107,195, 74, 93,200, 75,154, 39, 14,135, 3,139,197,130,204,204, 76, 68, 69,
+ 69, 33, 34, 34, 2,119,239,222,197,227,199,143,161, 84, 42, 43, 53,242,171, 70,171,109,196,225,112, 74, 53, 89,114,185, 28,114,
+185,188,216,104,101,101,101, 33, 33, 33, 1, 42,181,186,113, 57,166,119, 80,131, 6, 13,216, 0, 32, 18,137,208,184,113, 99,108,
+219,182,205,124,250,196,137, 97,245,238,222,117,244,190,112,193,254,167,173, 91,135, 13, 25, 50,196,114,239,222, 61, 40, 20, 10,
+188,120,241, 2, 46, 46, 46, 28,190, 80, 56,148,158,206, 85, 35, 12, 80, 59, 43,149, 61, 91,183,110, 29,151,159,159,143, 53,107,
+214,176,184, 54, 54,219,151,150,209,196, 87, 12,155,221,166,125,251,246, 56,117,234, 20,210, 18, 19,231, 37,150, 98, 96, 18,129,
+172,164,216,216,121,187,118,237, 66,247,238,221,193,112, 56, 85, 78, 84,106,217,178,101, 3,171,213,138,167, 79,159,194, 30,184,
+ 95,213,239,215,242,247, 15, 46,138,252, 74,128, 91,101,173, 39, 1,110,133,135,135, 67, 36, 18,161,110,189,122, 77,170,248, 51,
+107, 25,134, 73, 31, 63,229, 19, 28, 59,127, 7, 0,176,107,251,166,204, 18, 38,139, 66,161,208,136,214, 63, 53,162, 85,100,172,
+ 74,190,240,134,209,170,164,249, 0, 0,112,185, 92,240, 5, 2,240,249,252, 2,131, 36, 16, 84, 90,131, 97, 24, 8,133,194, 98,
+ 99, 85,210, 96,149,252, 95, 44, 22, 87,122,232,250,188, 87,231,219, 77,156, 48,158, 47, 16, 8, 96, 48,232, 65, 8,129, 64, 32,
+132,189,189, 61,252,252,252,160, 80, 40,208,186, 77, 7,125,178,156, 23,234, 84,119, 64,196,187,236, 61,179,217, 12,181, 90,141,
+188,188, 60,228,230,230, 66,161, 80, 64,171,213, 86,186, 43,186,213,106,101, 39, 39, 39,227,215, 95,127, 69, 78, 78, 14,128,130,
+ 68,235, 34,115, 85,244, 55, 46, 46, 14,123,247,238, 69,124,124,124,149,142, 79,187,118,237, 16, 26, 26,202,238,216,165,203,142,
+ 75,190,190,105,151,124,125,211, 58,118,233,178,227,212,169, 83,108, 47, 47, 47, 36, 36, 36,224,209,163, 71,200,203,203, 3, 33,
+132,246,159,127, 7, 94, 3,121,154,220,220,241, 95,126,249, 37,145, 74,165, 88,243,221,119,141, 86, 0, 35, 42,107, 96,236,202,
+ 49, 48,118,239,103, 96, 64, 8,129,213,106,133,197, 98,121,167,109, 99, 24,134,225,114,185, 85, 29, 90,161, 42, 43, 23, 39,190,
+127,241,213, 74,156, 61,121,164,232,253, 24,106,178, 40, 20,202,191,128, 50, 19,225, 57, 37, 28,100,241,223,178,200,204,204, 76,
+ 85,171,213, 53,125,125,125,145,146,146,226,234,227,227,147,200,231,114,193,227,243,193,176, 42,246, 4, 98,177,248,105, 90, 90,
+ 90, 27, 47, 47, 47,152,205,230, 98, 83,245,118,211, 97, 81,148,230,241,227,199, 16,139,197, 79,161, 43,119,228, 4, 88, 12,121,
+213,155, 52,105, 82, 28, 25,178,183,183,135,189,189, 29, 4, 2, 33, 22, 44, 88, 96, 93,191,118,237, 22,159,206, 75,243,199,205,
+250,146,124,185, 98,199,159,186,103, 43,123, 99, 18,139,197, 79,189,189,189, 91,217,217,217,225,216,177, 99, 72, 72, 72, 64, 94,
+ 94, 30, 52, 26, 13,244,122, 61, 52, 26, 13, 12, 6, 3,132, 66, 33,234,213,171, 7, 91, 91, 91, 92,190,124,249, 41,244,250,210,
+205,101, 78,206,177,167, 79,159,182,106,222,188,121,113, 68,165, 83,167, 78, 76,167, 78,157,156,139,163,104, 26, 13,178,179,179,
+241,224,193, 3, 92,190,124, 25, 12,195, 32, 38, 38,198,162,215,106, 15,208,115,226,221,208, 1,191,177,119,237,218, 57,117,234,
+212, 9,109,218,180,129, 5,232, 5, 96,239,255,208,192, 0, 0,238,222,189,251,204, 98,177,180,169, 93,187, 54,228, 64, 11, 0,
+ 39,171,100, 34, 95,189, 10, 55,155,205, 93, 26, 53,106,132, 99,135, 15,183, 3,144, 80,218,122,106,160, 93,112,112, 48,180, 90,
+ 45, 94, 60,127, 30, 86, 5,147,181, 99,254,226,111, 63, 28, 51,113, 58,246,236,216,130, 93,219, 55, 37,239,220,182,209, 27,149,
+200, 31,163, 80, 40,255,169,104, 86,133, 94,228,111,202,228,178,204, 23,167, 42, 42,249,121,121, 97,225,225,225, 53,155, 52,105,
+130, 29, 59,118, 52,111,221,170, 85, 42,143,207, 55,243,121, 60,176, 42,113, 35,209,170,213, 87,174, 92,185,210, 98,192,128, 1,
+156,123,247,238,193,221,221,189,216,104, 21,253,229,112, 56, 32,132, 64, 44, 22,227,248,241,227, 70,173, 90,125,165,194,104,145,
+197,106, 97, 21, 26, 61, 66, 8,228,114, 57,120, 60, 30,214,173, 91,143,205,107,215,142,180, 0, 71, 2, 36, 46,159, 3, 16,254,
+207,110,208, 26,205,213,179,103,207, 54, 93,180,104, 17,183, 90,181,106,144,203,229,200,203,203, 67, 78, 78, 14, 20, 10, 5, 20,
+ 10, 5,242,242,242, 32,151,203, 33, 20, 10, 17, 17, 17, 97,210,105, 52, 87,203,210, 19,232,116, 71,199,142, 29,251, 69,120,120,
+184, 7,135,195,129,201,100,130,213,106,133,213,106,133,209,104,196,171, 87,175, 16, 25, 25,137,151, 47, 95, 34, 55, 55, 23, 92,
+ 46, 23,108, 54, 27,143, 31, 63,206,147,152, 76,135, 13,244,156,126,103,184,192,177,219,183,111, 79, 24, 61,122, 52, 60,171, 85,
+235,128,148,148, 74, 25,152, 19,229, 24,152,252,119, 51, 48,191, 27, 32,165,242, 97, 92, 92, 92,155,142, 29, 59,194,163, 90,181,
+111,235,165,164, 92,122, 94,133, 60, 45,139,217,124,235,246,237,219, 93,198,140, 25,131, 29, 59,118,124,235, 18, 23,119, 62,235,
+173,102, 78, 23,192,165, 70,173, 90,223,126,248,225,135,184,120,241, 34, 44,102,243,173,114, 36, 75,142,248, 94,253,195,201, 51,
+189,223, 74,124,223,198, 48,204, 12, 0,107,104,141,162, 80, 40,255,230,136, 86,149,154, 14, 69, 22,203,252, 57,115,230,152, 88,
+ 44, 22, 6, 13, 26,100,115,242,212,169, 33,143,159, 60,241,147,201,100,246, 22,139,165, 66, 45, 23,189,126,227,156, 57,115,228,
+ 6,131, 1,129,129,129,200,205,205,133,197, 98, 1,135,195, 1,135,195, 1,195, 48, 96,177, 88,144, 74,165, 8, 15, 15,199,206,
+157, 59, 21, 46,122,253,198, 10,111, 18, 22,203,211,189,123,247,130,205,102, 19,161, 80, 8,134, 97,192,225,112,176,126,253,122,
+217,102,224, 24, 0,176, 89, 44, 3, 0,176, 88, 76,101,179,119, 43,108,183,228,243,249,176, 22,116, 2,168,112, 93, 7,189,126,
+195,234,213,171,149, 47, 94,188,128, 90,173, 46,142,190,169, 84,170,226,228,122,185, 92, 14,134, 97,160, 86,171,113,234,212, 41,
+165,131, 94,191,161, 44,189, 28, 32, 35, 37, 38,166, 95,243,230,205,115,226,226,226,144,159,159,143,167, 79,159,226,242,229,203,
+ 56,116,232, 16, 46, 94,188,136, 87,175, 94,193,108, 54,195,203,203, 11,132, 16,156, 56,113, 34,223,172, 84,246,202, 1, 50,232,
+ 57, 81, 54,213,221,221,187,184,185,186, 38,185, 56, 59,167, 84,119,119,239,242,246,231,118, 64,116,116,116, 52,204,102, 51,252,
+252,252, 28,203,203,211, 34,102,243,237,219,183,111, 99,204,152, 49,240,174, 89,115,149, 47,224,242,246, 58,190,128,139,111,173,
+ 90,171,138, 12, 12, 49,155,111, 87,181,204, 54,192,166,207, 63,255, 92,203,227,241,112,240,224, 65, 63,147,191,255, 75, 14, 48,
+ 66, 10,212,233, 8,240, 42,250,190, 7,176,229,171,175,190,202, 96, 24, 6,251,246,237,115,182,171, 85,235, 25, 7, 24,107, 7,
+ 84,183, 3,170,115,128,177,118,181,106, 61, 59,120,240,160,179,217,108,198,172, 89,179, 50, 60,128, 45,229, 72,206, 36,132,244,
+ 37,132,180, 39,132,120,239,220,182, 17,103, 79, 30, 41, 50, 89, 19, 81,144,244, 62, 26,192, 51, 90,227, 40, 20,202,191,153, 82,
+195, 80,156,230,203, 51, 1,226,218,161,101, 67, 60,124, 18,149,239,236, 96,123,161,232,179,220,200, 35,181, 59, 7,217, 54,252,
+225,135, 31,192,229,114,145,156,156,140,231,207,159,195,214,214, 22, 35, 71,142,212,107,149,202,126, 37,230, 58,236, 10,224,114,
+161,102,193,124,106,249, 49,210, 90,156,136,154,231,207,134,178,237,236,236,160, 82,169,192, 98,177, 32, 20, 10, 33, 22,139, 33,
+ 18,137,240,232,209, 35,244,233,219,223,146, 37,110,255,251,128,165,191,207,167, 86,172, 89, 52,214, 80, 11, 64, 28, 14,124,230,
+234,233, 57,103,225,194,133,162, 30, 61,122,128,199,227,161, 90,245,128, 12,191,158,107, 54,177, 88,140, 57, 37, 71,177,160, 86,
+117, 79,187,231, 49, 9, 0, 24,153,233,193, 66,207, 18,115, 29,254,161,156, 62,134, 27,126,199,127, 89,107,219,184,113, 65, 62,
+186, 92, 46, 71,102,102, 38,100, 50, 25,228,114, 57,212,106, 53, 0, 32, 52, 52, 20,103,111,190, 84,104,171, 13,137, 45,171,156,
+191,111,123,148,141,167,241,126,141,253,123,127, 97,187,184,184, 32, 51, 51, 19, 89, 89, 89,144,203,229,208,106,181,176, 88, 44,
+200,205,205,197,207,187,126,177,228, 72,219,199, 23, 15, 8, 89,158,166, 58, 89,228,168,186,227, 21, 92,207,151, 76,152, 48,193,
+198,214,214, 22, 86,171, 21,121,121,121, 72, 74, 74, 66, 92, 92, 28,110,222,188,169,150,201, 13, 80, 59,119, 75, 41, 30,176,180,
+ 20,205, 63,145,127,156,102,201,113,171, 60, 61, 60,210, 18, 19, 19, 93, 45, 22, 11,188,188,188,204,242,220,220, 85,124,224,162,
+ 13,144, 14,128,100, 3, 11, 55,108,218, 52,190,127,255,254,104,214,172, 89,114, 70,102,102,141,210,234, 18, 1,216,129,128,157,
+166, 90,181,200, 7, 15, 30,184, 39, 37, 37, 97,204,152, 49,217,137,175, 95,207,179, 43,204,215,202, 7,218,249,214,170,181,234,
+224,193,131,206, 53,107,214, 68, 80, 80, 80,134, 48, 41,169,126, 20,144, 95, 70,253, 44,243,220,148, 71,159,169, 49,109, 96,131,
+102, 31,125,244, 17,204,102, 51,110,222,188,137,251,247,239, 35, 49, 49, 17,119,238,220,145,219, 74, 36,195, 74,204,117, 88,106,
+253,236, 21,160,246,219,183,111, 47,195,227,241,176,107,215, 46,132,135,135, 3, 0,130,131,131,241,225,135, 31,194,108, 54, 99,
+212,168,209,228, 76,148, 40,182,188,250, 9,160, 1,128,239, 80, 96,242,154, 17, 66,132, 12,195,164, 1,240, 70,213,114,178,104,
+253,164,154, 84,243,191,163,249,175,162,220, 73,165, 75,206,167,182,252, 71,216,189, 57,205,199,164,180, 35,219,150,114,218,182,
+107, 95,103,233,146,197,172,230,205,155,195,219,219, 27,193,193,193, 72, 74, 74, 18,216,219,219, 87, 52,159,154,170,125,207, 17,
+113, 13, 27, 54,180,159, 55,111,158, 93,247,238,221,185,222,222,222, 32,132, 32, 60, 60, 28,199,142, 29, 51,238,216,177, 67,161,
+113,235, 43, 15,187,246,171,170, 50,243,169,221, 7, 52, 0,150, 85, 75, 75,219, 62,125,218,180,197,141,155, 52,153,176,100,201,
+ 18,150, 84, 44,226,174, 92, 48, 81, 8, 0,203,191, 63,100,215,127,200, 72,108,240, 7, 58,140, 40,125, 30,185,146,229, 76, 74,
+153,148,216,123, 96, 23,255,207,102,140,183, 12, 29, 58, 84, 98,107,107, 11,111,111,111, 56, 56, 56, 32, 54, 54, 22, 41, 41, 41,
+228,244,233,211,170,187,143,163,185, 39, 46, 62, 76, 20,218,121, 84,102, 94, 66,101,251, 30, 31,196,247,238,221,219, 97,236,216,
+177, 54, 77,155, 54,229, 10, 4, 2, 8, 4, 2,100,102,102,226,213,171, 87,198,211,167, 79,171, 52,174,189,242,194,174, 29, 84,
+ 86,114,174, 67,109,251,225, 75, 95,221,186,180,100, 86,228,211,167,163,173, 64, 35,163,209,232,101,177, 88, 24, 22,139,149,110,
+181, 90,159, 26,149,202,157,250,224, 37,235,233, 92,135,149,195, 98,177,240, 44, 22, 11,228,114, 57, 46, 93,186,196,121,253,250,
+245,194, 39, 79,158, 44, 76, 75, 75,131,201,100,194,224,193,131, 17, 28, 28,140,107,215,174, 33, 43, 51,243,116,121, 90, 81, 64,
+190, 32, 37,229,195, 73,147, 38,157,219,187,119, 47,235,201,147, 39,206,187,118,237,250,185, 52, 3, 51,122,244,104,107,102, 82,
+210,135,122, 32,191,156,250, 89,222,185,153,125,254,224,230, 39, 3, 6, 13,169,183,100,209, 66,110,235,214,173,225,236,236,140,
+118,237,218,193,104, 52,218,215,173, 91,183,162,115, 83,217,190,231,176,216, 70,141, 26, 73,214,175, 95,239, 62,126,252,120,204,
+152, 49, 3, 0,160,213,106,113,241,226, 69,204,154, 53, 43, 35,137,211, 66, 93, 81,253, 44,140, 84, 21, 25,176, 27, 0,218, 3,
+136, 5, 77,124,167, 80, 40,255, 78,138, 38,149,246, 64,193,196,210,103, 80,240,112, 94,241, 92,135,183,238, 63, 67,201,105, 62,
+ 10,240,120,110,246, 25,251,122,202,156, 85, 65,108,147,194,129,203,232,108, 99,162,163,153,138,230, 60, 44,158, 79,205, 46, 64,
+229, 20,119,160,249,202,229,203, 63,217,176, 97, 67,151,162, 33, 28,196, 98,241, 83,173, 90,125,197, 69,175,223,168,177, 11,184,
+ 82,213,185,249, 82,128, 76, 0,211, 28,194,194, 54,133,244, 31,188, 90,232,232,199,253,114,197, 14, 29,155,197, 50,188, 74,203,
+194, 6,127, 64, 82,137, 14,146, 26, 3, 16, 41,247, 48,103, 58, 13,137,250,234,243,207, 63, 91,190,108, 89,115,169, 84,218,193,
+104, 54, 7, 88,173, 86,192,106,141,209,168,213, 55,136,209,248, 64, 31,188,104,173,208,206,131, 84,122, 94, 66,251,186, 74,199,
+248, 35,205,119,239,220, 57,243,240,225,195,127,216,118, 39,189,126,147,198,190,238,229,202,108,123,201,117,116,192,111,144,201,
+126, 43, 47,116, 73,231, 58,172, 28, 28,171,117,178,131,131,195,158, 46, 93,186, 8,187,118,237,138, 62,125,250,160,117,235,214,
+176, 90,173, 32,132, 64,169, 84,226,208,161, 67, 88,189,122,117, 76, 13, 96, 89, 69,122,122,224,138,224,236,217, 94,141, 26, 53,
+218, 85,158,129, 41, 52, 89, 21,230, 36,150,127,110, 10, 98,204,118,253, 18,134, 79, 95,233,111, 80,164,219, 59,137,205,238,145,
+207,158,178, 42,127,110, 6, 42, 45,225,135, 90, 12, 30, 56,112, 58,155,195,105, 87,216, 3,146,188,120,254, 60,172,104, 82,105,
+ 4,127,120,169,138,117,169,104,236, 58,154,248, 78,161, 80,254,237, 70,171, 15, 10,242,181,138,167,228, 41,115,174,195,162,168,
+ 15,135,195,145,197,158,152, 50,178, 60,117, 46,208,165, 48,146,133, 10,231, 58, 44,252, 63, 1, 80, 66,175,255,250,141,193, 72,
+ 75,244, 46,228,190,181,126, 85,134, 69,204, 3,162, 96,214,135, 64,246, 28, 56, 53,173, 64,175,249,242,185, 37,183,169,204,155,
+236, 27,191,203,203,213, 1,183,160, 82,221,130, 74, 85,106,210, 46,151,195,203,173,168,156,111,111,123, 18,160,120,223,109,127,
+ 91,179, 66,243,240, 30,251,243,191, 70,106,118,246, 9, 0,210,106,161,161,110,231, 67, 67,135,126, 54,123,246, 96, 15, 79,207,
+ 90,206,206,206, 14, 54, 54, 54,172,123,247,238,197,153,117,186, 77,141,129,221,133,209,212, 10,209, 3, 87, 2,147,146,234,127,
+ 48,112,224,116,134,195,105, 91,210,192, 16,179,249,142, 31,176,165,188, 72,214,187,158,155,222, 2,143, 46,133,145, 44,176,129,
+ 73,149,169, 27, 41, 5,229, 88, 1,179,121, 5, 34, 34, 74,169,243, 85,174, 75,203, 25,134, 81,130, 38,190, 83, 40,148,127, 47,
+ 69,243, 29,158,249,255,254,225,174, 84,147,106,254,139, 52,217, 40,232, 69, 71,247, 39,213,164,154, 84,147,106, 82,202,165,104,
+174, 67, 14,221, 21, 20, 74,165,177,224,247,102, 48, 10,133, 66,161, 80,138, 40,202,205, 42,201,118,160, 32,117,167, 44, 87, 90,
+149,222, 4,239,226,108, 47, 83, 77,170, 73, 53,169, 38,213,164,154, 84,243, 63,167, 89,145,246, 63,177, 55, 99, 81, 78, 86,113,
+110, 86,101,103,183,121, 95,104, 88,149,106, 82, 77,170, 73, 53,169, 38,213,164,154,255,118, 60, 10, 77, 86,241,171,168,233,144,
+ 69,247, 13,133, 66,161, 0, 75,150,128, 69, 8, 24, 66,150,176, 8, 57,204, 38,100, 8,155, 16,188,215, 84, 32, 67,134,148, 62,
+152,237,199, 35, 29,108,232, 30,167, 80,254, 85,164,163,140, 73,165,105,142,214,255, 22, 31,119,119,247,109, 0,152,140,140,140,
+201, 0,146,232, 46,249,251,225,232,232,216,197,108, 54, 67,161, 80, 92,249, 55,110, 95,189, 90, 24, 72, 88,168, 91,252, 6, 65,
+210,139, 87,216, 83,218,186,117,253, 49, 6,204,239, 99,113, 49, 86,188,120,254, 26,199,171,240,115,172, 94, 93,189,183, 0,192,
+185,203,201,211,241,215,140,171, 85,219,197,197,229, 2,135,195,225, 88, 44,150,105, 50,153, 44,180,108, 35, 52,132, 13, 0, 92,
+114,109,190, 60,195,117,222,167, 83, 25,174, 70,191, 83,174,215,170,243,217, 92,118,188,128,235,126,123,202,120,214,185, 60, 85,
+171,231,165,125,255,200,145, 35,101,206,226, 93,223, 31,189, 88,150,122,125,131, 27,196,197,126,183,177,249,134, 14,126,206,220,
+184,228,199,210,111,183,230,111,227,219,251,246, 29, 51,148, 9,229,136,153,209, 59,119,230,168,232, 89, 86,121, 86, 2,142, 70,
+ 32,136, 43, 16,120, 91,204,102, 55, 6, 32,108, 14, 39,211,164,215, 39,243,128,136,249,128,252,223,174,201, 19, 8,170, 89,204,
+102, 55, 0,248, 59,150,147,242, 38,101, 26, 45,169, 84,250,136,197, 98, 85, 43, 57, 25,110,209,124,130, 69,239,149,252,140, 97,
+ 24, 88, 44,150,148,188,188,188,166, 85,248,125, 91, 0, 67, 1, 20,117, 81,223, 15,224, 16,222, 61,225,216,150,199,227,205,145,
+ 72, 36,157,181, 90,109,125, 0, 16,137, 68,145,106,181,250,170,209,104,252,238, 29,117, 57, 0, 62,144, 74,165,157, 88, 44, 86,
+ 39, 66, 8, 67, 8,185,166, 82,169,174, 2, 56, 12,224, 93, 70, 74, 16,185,186,186,174,112,116,116, 28, 49,127,254,252, 28, 39,
+ 39,167,192, 89,179,102, 61,204,205,205,253, 53, 59, 59,123, 1,170, 48, 71,221, 95, 76, 45,119,119,247,253, 92, 46,151,157,156,
+156,220, 9, 0,188,189,189,175, 25, 12, 6,139, 76, 38, 27, 9,224,117, 21,245, 36, 0, 90, 74,165,210,166, 82,169,180,189,197,
+ 98,169, 91, 56, 63,227, 11,149, 74,117,211,104, 52, 62, 2,112, 15,128,250,111,116,142,216,112, 56,156,189,133,117, 61, 0,128,
+242,223,118, 17, 32, 44,212,125, 30,249, 50,176,216,120,213,175, 83,246,202, 12,124, 74, 89,183,210, 70,171,115, 7,143,190,253,
+250,117, 99, 1,128,193,116,174,239,213, 27,233, 39,255,108,147, 53,104,208,160,223,246,238,221,235,160,215,235, 49,121,242,228,
+253,151, 47, 95,222,162, 80, 40,230,151,123,225,144, 58,204, 90,179,254,162,152, 97, 88, 0,224,106,181, 90, 92, 83, 83, 95, 7,
+ 60,127,246, 91,207,200,200,187, 43,181, 47,175,222,179, 50,220, 41, 70,180,123, 89,153, 66,212,245, 67, 72,223,193, 3,251, 44,
+ 91,182, 4, 35,134,141,168, 30, 25,169, 19,121,217,198,242,115,181, 18,127, 39, 23,215,126,203,150, 31, 97,110,223, 58,209,111,
+239,174,165, 87,199,143,119,234, 76,205, 86,165, 96,150,115, 56, 45,237,252,253,219, 15, 59,113, 2, 82,111,111, 14, 71, 32, 96,
+ 1,128, 89,175,247, 86, 37, 39,123, 28,236,215,175,197,146,232,232,235, 75,128,251, 84,243,127,162, 73,169,138,209, 98,177, 88,
+213, 82, 83, 83, 93, 37, 18, 73,193,197,152, 16, 88, 44, 22, 88, 44,150,226,201,139, 9, 33,197,127,205,102, 51,234,212,169, 83,
+169, 39, 90, 0,157, 1,140,235,216,177,227,144,239,190,251,142, 27, 20, 20, 84, 52,101, 72,187, 47,191,252,242,251,240,240,240,
+163, 0,118,163, 96,240,198,202, 62,241,246,144, 72, 36,251,214,172, 89, 99,219,173, 91, 55,142,167,167, 39, 24,134, 65, 70, 70,
+ 70,203,203,151, 47, 55,157, 53,107,214, 52,181, 90, 61, 10,192,133, 42,236,159, 6, 54, 54, 54, 71, 6, 14, 28, 88,173, 67,135,
+ 14,194,122,245,234,193, 98,177,224,241,227,199,227, 31, 61,122, 52,252,232,209,163,139,149, 74,229, 16, 84,126,190, 54, 70, 42,
+149,142,181,181,181, 93,177,104,209, 34,199, 81,163, 70,241,159, 61,123,150,231,231,231,199,220,190,125,219,229,208,161, 67,211,
+ 86,173, 90,245,129, 66,161, 88,160, 82,169,126, 65, 37,230, 80,180,177,177,121,196, 98,177,170, 85,198, 8, 3,168,138, 25,110,
+ 92,163, 70,141, 67,183,110,221,170,145,144,144, 96, 25, 48, 96,192, 30, 0,184,122,245,106,144,201,100, 98,186,119,239,126, 46,
+ 37, 37,101, 40,128,199,149,220,246,134,142,142,142, 39, 71,140, 24,225, 88,171, 86, 45,113,141, 26, 53, 24,137, 68, 2, 54,155,
+141,252,252,124,207,103,207,158,117,189,127,255,190,246,242,229,203,185,122,189,190, 31,128,136, 42, 28,167,214,174,174,174,163,
+185, 92,110, 3,179,217,236, 5, 0, 28, 14, 39,213,100, 50, 61,147,201,100,123, 1,252,246,174, 39,136,155,155,219,230, 21, 43,
+ 86, 56,203,100, 50,178,106,213,170,205, 74,165,114,236,191,245, 98,176,255,215,195,120,244,240, 62, 80, 48,109, 14, 83, 74,253,
+ 99, 0,240, 62,253,116, 54,154, 54,107,129,145, 35, 62,168, 80,179,119,151,106,107,184,124,158,147, 78,167,251, 45, 95,163, 63,
+ 44, 17, 11,135,142, 24, 30, 18, 3, 0,231,206, 95, 31,218,188,185,195, 53, 59,177,224, 3,161, 80,216,218,100, 48,230,156,189,
+146,242,121, 85, 76,149,151,151,215, 5, 7, 7, 7,113,110,110,110, 70, 86, 86,214,143,125,251,246, 93,190,123,247,110,135,184,
+184, 56, 36, 39, 39,227,147, 79, 62,145,166,164,164, 76,143,136,136,184,107, 48, 24,202,140,108, 41,149,185, 27,191,156,215,127,
+145,157,157, 51, 91, 34,182,133,141,157, 35,252,106, 53, 66,203,214,125,209,171,207, 4,188,138, 9,111,185,123,215,178,240,212,
+212,203,223, 72, 29,107, 46,151,203,107,148,121, 93,170, 87, 27, 29,250, 13, 44, 48, 89,139, 22, 45, 65,244,203,151,202,132,120,
+214,199,103, 78,112,196,189,186,212, 17,152, 13, 25, 9,183,111,157,168,209,182,221, 0, 0,104,186,119,215,210,171, 31,143,116,
+232,178,121,127,158,146,222,146,202,190,118, 46,227,114,199,246, 88,191,222, 53,120,218, 52,158, 42, 62,222, 24,187,117,171, 38,
+243,230, 77, 11, 71, 32, 32,222, 61,123, 50, 46,157, 58, 9,167,189,120,193,187,179,106, 85,123,238,210,165,126, 11,140,198,125,
+ 84,243,255, 85,243,191, 78, 81, 18,124,201,222,135,219,203, 53, 90, 12,195, 64, 34,145,224,224,193,131,224,114,185,224,112, 56,
+224,114,185,101,254,239,227,227, 83,153,130, 12,114,119,119,255,126,203,150, 45,110, 61,122,244,128, 80, 40, 44,254,128,205,102,
+163, 91,183,110,232,218,181, 43, 55, 45, 45,109,248,193,131, 7,135,175, 92,185, 50, 83, 46,151,207, 64,225,196,208,229,208, 41,
+ 48, 48,240,216,197,139, 23, 69, 58,157, 14, 55,111,222, 68, 94, 94, 30,248,124, 62,170, 85,171,134,238,221,187,115, 94,190,124,
+233,216,173, 91,183, 99,209,209,209, 33, 0,174, 85,162,172, 77, 93, 93, 93,111, 28, 62,124, 88,216,168, 81, 35,230,213,171, 87,
+ 8, 14, 14, 6, 0,228,231,231, 99,192,128, 1,194, 81,163, 70,213, 26, 62,124,248, 61,153, 76,214, 1,192,163, 10,244,154,184,
+187,187,255, 50,112,224, 64,207,149, 43, 87,218,218,216,216, 32, 33, 33, 33,221,221,221, 61,160,104,127, 15, 31, 62,156,223,183,
+111, 95,143,213,171, 87,111, 60,114,228,200,231, 50,153,108, 44,128,176,114, 93,107,161, 33, 22,139,197,200,204,204,196,254,253,
+251, 49,125,250,116,176,217,108,200,100, 50, 28, 58,116, 8, 31,127,252,113,145,161,169,148, 25, 22,139,197, 93,253,253,253,127,
+190,122,245,106, 53,123,123,123,120,122,122,178,190,250,234,171, 6,126,126,126,162,234,213,171,179,211,211,211,113,236,216, 49,
+191,209,163, 71,159, 76, 74, 74, 26,175,215,235, 43,108, 82,115,115,115,219,121,230,204, 25,159,200,200, 72,108,221,186, 21,185,
+185,185,224,243,249,176,183,183,135,187,187, 59, 2, 2, 2,152,121,243,230,137,251,246,237, 43,158, 49, 99,198, 78,131,193,208,
+184, 18,199,168,145,171,171,235,182, 78,157, 58,249, 45, 93,186,212,222,221,221, 29, 69, 15, 6,249,249,249,213, 18, 18, 18, 90,
+ 46, 90,180,104,200,163, 71,143,226,100, 50,217, 20, 0, 79,170,120,226, 52,174, 87,175, 94,200,128, 1, 3,216,233,233,233,216,
+187,119,111,136, 82,169,108, 92, 5,115,249,143,226,209,195,251,152,252,209, 39, 42, 79,111,111,222,197, 11, 63, 15, 58,114,188,
+246, 67,123, 81,193,132,212,114, 45,140, 67, 6, 70, 55,235,222, 99, 2,175,119,159, 1,170,237, 63,108,148, 86,198,104,113,249,
+ 60,167,253,251,214, 37,221,186,253,168,193,165,203,247,123, 14,234,215,143,240,120,246,126, 0,240,249,172, 79,185,199, 78,157,
+218,213,173,107,139,180,118,109,155, 38,141, 28, 53,219,167, 10,197,173, 93,187,118,237,235,225,225,225,110, 2,129, 0,185,185,
+185, 78,219,183,111, 95,215,182,109, 91, 86,108,108, 44, 94,190,124,137,248,248,120,228,231,231,163, 91,183,110,210,176,176,176,
+ 31, 1,148,105,180,140,172,206, 43, 60,171,155, 54, 57,137, 36, 53,140, 22,133, 43, 49,165,215,187,116,230, 82,195, 3,123,181,
+193,110, 30,117, 2,198,125,184, 24,203,150, 31,229,254,186,255,219, 69, 87, 46, 31, 0, 88, 53,202,158, 17,128,160,245,151, 11,
+230, 67,161,212, 99,212,136, 73, 24, 61, 98,146, 19,129,193,131, 88,116, 18,131, 54,207,222,134,247, 34,116,203,142,117, 3, 1,
+ 84, 43, 97,182,174, 80,179, 85, 54,203, 56,156, 22, 33,223,127,239,210, 96,226, 68,193,147,165, 75,213,217, 55,111,106,253,123,
+247,206, 11,158, 58, 85, 15, 0,202,248,120, 94,244,226,197, 98,151,246,237, 69,173,230,204,113,176, 24, 12,238,203,150, 45,107,
+190,168, 96,242,242, 42,105,250, 12, 29,106, 89,180,107, 87,179,155,179,103,119,100, 76, 38,118,207, 86,173, 30,175,218,187, 55,
+245,125, 52,255,204,114,166,221,184,161,207,245,243, 67,240,128, 1, 57, 62,174,174,250, 63,115,219,223,167,156,148, 98,138,114,
+181, 38,151,124, 66, 69,104,104,104, 7, 0,215, 1, 44, 13, 9, 9, 89, 2, 0,118,118,118,153,114,185,220,245,216,177, 99, 21,
+154, 44, 46,151, 11, 15, 15, 15, 4, 4, 4,200,100, 50,153, 91, 57, 5, 72,182, 90,173,213, 8, 33,197,209,151,178,208,235,245,
+136,137,137, 65,195,134, 13, 83, 80, 48, 17,109,153, 65, 29,177, 88, 28,251,242,229, 75,231,231,207,159,227,209,163, 71,240,243,
+243,131,131,131, 3,184, 92, 46, 76, 38, 19, 20, 10, 5, 2, 3, 3, 33, 16, 8,208,164, 73,147,108,181, 90,237, 87, 65, 19,144,
+ 64, 34,145,196,220,184,113,195, 59, 56, 56, 24, 15, 30, 60,128,183,183, 55,220,221,221, 1, 0,241,241,241,184,125,251, 54,122,
+247,238,141,240,240,112, 12, 30, 60, 56, 89,173, 86, 7, 0,208,151, 37,232,232,232,152,126,245,234,213,148,160,160, 32,157, 90,
+173,102,101,102,102,114,111,222,188,105, 86, 42,149,210,252,252,124,174, 92, 46,231, 42, 20, 10,142, 90,173,230,178, 88, 44,158,
+ 86,171,229, 94,185,114,133,109, 52, 26,203, 29, 32,179,232, 56,157, 58,117, 10, 65, 65, 65, 56,118,236, 24, 62,251,236, 51,220,
+185,115, 7,222,222,222, 56,124,248, 48,230,204,153,131,168,168, 40, 56, 59, 59,163, 94,189,122, 21, 29, 35,212,170, 85,235,213,
+211,167, 79,107,241,120,188,162,121, 29,139,230,203, 67, 86, 86, 22, 94,191,126,141,212,212, 84,248,251,251, 99,196,136, 17,175,
+ 83, 83, 83,253, 43,170,121, 94, 94, 94, 89,145,145,145,206, 13, 27, 54, 68,102,102, 38,236,237,237, 97,103,103, 7,123,123,251,
+226,255,253,252,252, 48,123,246,108,184,187,187,203,116, 58,157, 91, 69, 38, 40, 40, 40,232,194,149, 43, 87,156,109,109,109,145,
+145,145, 1,133, 66, 1, 14,135, 3,177, 88, 12,103,103,231, 98, 35, 31, 19, 19,131, 62,125,250,100,199,198,198,246,168,130, 73,
+ 98,185,185,185,189,140,136,136, 8, 32,132, 32, 41, 41, 9, 81, 81, 81,248,232,163,143, 98,116, 58, 93, 29,252,139,230,236, 43,
+145,119,197, 27,251,225,100,222,192,254,173, 13, 47, 34, 67, 25,129, 53, 10,141, 27,216,230, 3,192,227,103, 10, 59, 61, 43, 16,
+117,235,135,144,227, 39,127,227,255,178,123, 59, 23, 86,184,129, 65,212,139, 24,124, 93,150,118,247, 78, 30, 19, 63,253,116,124,
+131,142,109, 59,176,148,106,181,235,143, 63,174,111, 18, 27,251,194, 21, 0,252,252,234,202,166, 77,155, 21,102, 35,145,200,174,
+223,190, 97,221,176, 97,231,179,139,215,210,119, 84,162,200,126, 1, 1, 1,119, 79,157, 58,229,236,234,234, 10, 59, 59, 59,168,
+213,106, 24,141, 70, 60,127,254, 92,119,240,224, 65,147,173,173,173, 77, 70, 70, 6,228,114, 57, 24,134,193,169, 83,167,146, 0,
+248,190, 45, 84,148,163, 5, 0, 31,245,170,203,173,215, 57,192,129, 39, 48,139, 68,220,104, 15, 48, 22, 1, 67,164,110,231, 46,
+ 60,110,120,238,210,131,145, 3, 7,125,230,210,174,195, 64, 44, 90, 56,196,148,150,150, 20,108, 68,187,151,165,229,104,213,241,
+ 71,231, 1,131, 7,126,176,108,217, 18, 44, 89,180, 20,161,167, 78,228, 75, 37, 44,189,173, 61,215,174,125,203, 54,186,217,211,
+251, 39,171, 84,105,222,203, 86, 31, 28,209,167,255,236,106,109,219, 13,192,237, 91, 39,176,119,215,210, 71,140,136,208,102,196,
+183, 88, 2, 56,216,251,249, 77,153, 25, 19,195,123,178,100,137,202,156,150,150,215,116,214,172,236,210,214, 77,185,116, 73,194,
+247,244,180,117,232,215,207,113,163,175, 47, 49,201,100,219, 74,203, 49, 42, 77,243,178, 84,106,127,224,220,185, 46,132,203,237,
+240,197,220,185,162,144,144, 16, 40, 20, 10, 28, 61,122, 20,219,182,110,213,123,120,120, 60,245,124,246, 44,188,129, 66,177,176,
+178,154, 77,103,205,202,182, 88, 44,204, 7,115,230,116,139,140,143,239,156, 33,147, 85, 7, 0, 15, 71,199,228,166,126,126,143,
+118,134,134, 70,109,174, 81,195, 90,217,114,254,116,254,188,219,145,132,132,137,142,142,142,162, 76,153,140, 35,224,243,115, 90,
+214,171,119,248,135, 5, 11,174,155, 35, 34,120,194,106,213,108,237, 66, 66,170,188,237, 77,103,205,202,206, 85, 42, 57, 51,151,
+ 47,111,147,152,153, 89, 93,165,215,251,203,149, 74,119,139,201,196,178, 21,139,115,106, 6, 6,202,180, 55,111,166,215,212,104,
+ 62,217, 1,200,254,170, 99, 93,154, 23,249, 7,241,246, 56, 90,103, 8, 33,111,204,117,120, 61, 36, 36,228, 15,189,107, 8, 33,
+149,138,102,113,185,220, 55,154,169,202,129,199, 48, 12,194,194,194,224,228,228, 4,119,119,119, 8, 4,111, 78, 62,152,149,149,
+133, 59,119,238,224,197,139, 23,104,212,168, 81, 81, 51, 70,217,142, 72, 32,248,116,245,234,213,246, 6,131, 1,143, 30, 61, 66,
+211,166, 77, 33, 16, 8,192,227,241,222, 48,129, 50,153, 12,245,235,215,199, 23, 95,124, 97,183,114,229,202, 79,245,122,125,153,
+ 79,164, 28, 14,103,198,164, 73,147, 92,139, 34, 88,201,201,201,104,210,164, 73,241,231, 46, 46, 46,120,252,248, 49,154, 54,109,
+138,106,213,170, 97,200,144, 33,174,123,247,238,157, 97, 54,155,191, 43, 75,147,207,231,179,130,130,130,154, 1,128, 68, 34, 1,
+139,197,138,182,181,181,117,113,115,115,147,216,218,218,254, 97, 27,119,237,218, 37,103,177, 88,166, 10,221, 0,139,133,140,140,
+ 12, 52,104,208, 0,249,249,249, 0, 0,181, 90, 13,127,127,127, 40, 20,138, 98,211,234,233,233, 9,173,182,252,212,175,134, 13,
+ 27, 46,169, 83,167, 78,119,137, 68, 34,224,114,185,120,242,228, 9,130,131,131,113,240,224, 65,248,248,248, 64, 44, 22, 35, 38,
+ 38, 6, 65, 65, 65,184,113,227, 6, 92, 92, 92, 80,191,126,125,129,171,171,235,173,220,220,220,107,137,137,137, 75,202, 41, 39,
+ 75, 42,149,226,198,141, 27,216,185,115, 39,226,227,227,145,150,150, 6, 27, 27, 27, 52,110,220, 24,245,234,213, 67,235,214,173,
+ 17, 19, 19, 3,166,226,202,228, 30, 16, 16, 16,250,224,193, 3,103, 66, 8,246,238,221, 11,149, 74, 5,131,193, 0, 22,139, 5,
+161, 80, 8, 7, 7, 7,116,238,220, 25, 46, 46, 46, 8, 8, 8,192,161, 67,135,156,123,245,234,117, 86, 38,147, 53, 6,144, 81,
+209,126,117,112,112,248,100,241,226,197,222,174,174,174, 72, 72, 72, 64,126,126, 62,220,220,220,208,177, 99, 71,175,203,151, 47,
+127, 98, 50,153,214,255, 91,110,100, 37, 18,223,153,139, 23,126, 30, 20, 80, 51, 47,168, 81,160,216,251, 88,168,155,247,193, 80,
+ 89,125, 0,104, 80,215, 45,114, 80,136, 56,249, 73,100,104,242,197, 11, 39, 30,189,136,198, 49, 84,162,105, 59, 95,163, 63,124,
+233,242,253,158,193,141,154, 88, 87,127, 59,167,207,244,143, 38, 10, 92,221, 38, 32, 51,233, 4, 46, 95, 13,243,153,243,217, 36,
+151,239,214,254,116,238,210,229,251,172,124,141,126, 97,229, 66, 89, 62,155,119,255,208,218, 89,153,125, 4,175, 94,242, 33,178,
+105, 0, 63,191,218, 80, 40, 20, 16, 10,133,194, 17, 35, 70, 88,230,207,159,175,177,181,181, 21, 51, 12,131,107,215,174,201, 0,
+244,168, 72, 87,231,234, 64, 44, 70,147,153,240,217, 86,194,216,104, 25, 75, 46,255,217,243, 56,116,239,218, 41,179,109,139, 6,
+ 43,231, 47, 91,251,101, 64,237, 96,151,241, 19,151,114,151, 47, 25,185, 21, 12,218,149,166,243,242, 21,174, 50,135,143,139, 0,
+244, 89,246,245, 18,196,198,198, 56, 76, 30, 39, 95,202, 17,136, 60,235,248,182,177,217,186,243, 90, 79,127,255, 26,213,103,207,
+ 24,114,102,221,247,235,250,148,140,108,237,222,181,248, 36,128, 46,149,217,183,255, 33, 26,142, 14, 13,133, 42, 41,201,148,123,
+235,150,174,203,247,223,103,123,247,232,177,222, 96, 52, 58, 23, 93, 42, 88, 12, 3,166, 40,117,194,106,101, 56, 95,124,193, 34,
+ 28, 14, 76, 14, 14,227,144,151, 87,187, 34,205,207,210,211, 7,141,156, 56,177,207,201,243,231, 81,163, 70,141,226,251,153,189,
+189, 61,230,204,153,131, 89,179,102, 9, 30, 63,126,220,252,200,145, 35,205,191, 91,179,198, 13,192,160,202,148,243,226,189,123,
+ 14, 83,151, 45, 91,208,168,105, 83,159, 61,251,247, 11,106,213,170, 5, 0,120,253,250,117,192,183,171, 86,249, 54, 8, 10,202,
+ 92,249,233,167,187, 35,231,207,175, 15,224, 86,121,154, 25, 55,111, 26,142, 36, 36, 76,188,122,237,154,125,131, 6, 13, 0, 0,
+ 81, 81, 81,174, 27, 55,110,156, 84,127,200,144, 81,203,166, 77, 91, 24,162,211,201,109,179,178, 4, 33,155, 55,115, 14,124,240,
+ 65,133,154, 69,229, 4,128,142,227,199,127,218,174, 83,167,122,131, 38, 78,116,244,241,241, 97,164, 82, 41,140, 70, 35,210,210,
+210, 28, 34, 35, 35,107,133, 42,149,138,227,247,238,237,133,197,210,237, 47, 60,214,165,122,145,127, 88, 36,235,143,158,162,240,
+111,199,208,208, 80, 2,160, 99, 72, 72,200,141,162, 27,184,197, 98,169,148,201,226,112, 56, 96, 24,166,178,102, 11,132, 16,100,
+103,103, 35, 59, 59,187,184,233, 72, 38,147,225,234,213,171,136,137,137, 1,151,203, 5,143,199,131,209, 88,241, 28,180, 18,137,
+164,107,215,174, 93, 57,247,238,221,131,159,159, 31, 68, 34, 81,113,185,138, 94, 60, 30, 15, 30, 30, 30, 80, 40, 20,232,210,165,
+ 11,119,211,166, 77, 93,203, 51, 90,118,118,118,189,135, 14, 29,202, 47, 90, 86,169, 84, 96,179,217,197,166, 69,165, 82, 33, 55,
+ 55, 23,114,185, 28, 58,157, 14,173, 90,181,226,135,134,134,246,206,201,201,249,174, 50,219,175,209,104, 84, 50,153,204,190, 93,
+187,118, 14,187,119,239,142,106,213,170, 85,224, 27, 53,237,250,117,157, 78,167,227,178, 88,172, 74,205,163,183,111,223,190,226,
+125,159,154,154,138,173, 91,183, 22,127, 22, 19, 19,131, 77,155, 54, 21, 79, 5, 80,222, 49,170, 83,167, 78,175,189,123,247, 54,
+221,179,103, 79, 30,155,205, 70, 84, 84, 20,246,239,223, 15, 66, 8, 92, 92, 92,160,209,104,144,153,153,137,107,215,174,193,108,
+ 54, 67, 42,149,194,203,203, 75, 56, 99,198,140,182, 75,151, 46,229,150,103,180, 44, 22,139,133,205,102,195,215,215, 23,139, 22,
+ 45,130, 78,167, 3,143, 87,224, 47, 21, 10, 5,228,114, 57,194,195,195,145,144,144, 0, 82,193, 40,111, 66,161,112,200,158, 61,
+123, 92,249,124, 62,180, 90, 45,148, 74, 37,146,147,147,145,152,152,168,147,201,100,102, 27, 27, 27,150,175,175, 47, 75, 32, 16,
+ 8, 6, 12, 24,192, 20, 25,206,144,144, 16,167,189,123,247, 14, 51, 24, 12, 21,153, 36, 23,119,119,247, 47, 39, 77,154, 36, 44,
+ 89,103, 51, 50, 50, 48,104,208, 32,241,111,191,253, 54, 95,161, 80,236, 7,144,245, 47,187,161,145, 35,199,107, 63,124,116, 57,
+ 42,232, 88,168,155,119, 98,138,165,205,156,207,215,114, 0, 96,251,182,111,218, 28, 11, 77,189, 83,167, 70,102,242,145,227,181,
+ 31, 58, 56,188,168,200, 8,176, 58,119,240,232, 43, 17, 11,135, 14,234,215,143,252,248,227,250, 38,211, 63,154, 40,240,173, 61,
+167, 32,194,201,117, 69, 23,243,215,140, 70,251, 90,248,227,143,235,155, 12,234, 55, 56, 60, 62, 62, 97, 91,231, 14,130, 67, 87,
+111,164,159, 46, 47, 98,232,234, 36,244, 18, 11,212,240,242,171,135,192,186, 18, 60,126, 18,133,163,135,239,162,110,253,150,208,
+235,245, 48,155,205,146,190,125,251,106, 14, 30, 60,168,139,142,142, 86,106,181,218, 14, 0,162, 43,218,248,148,148,231,214, 64,
+247,150, 70,158, 72, 96, 86,230,243, 52,243, 22, 30,249,160, 73,139,238, 77, 29, 60,188,184, 46, 18,235,233, 94,221,154,239,223,
+185, 99,209,172,133,139,247,163, 89,243,238,173, 94, 68,221,170, 7,224,105,169,230, 53, 22,161,172,163,199,205,177,175, 94,245,
+ 73, 76, 72, 72,169,237,230,110,120, 45, 39,166, 79,230,253,212,173, 93,135, 33, 13,107,213,109,207,127,241,252, 6,179,232,139,
+ 97,191, 46, 91,189,110, 68,145,217,186,114,233,215, 14,227,198,221,229,239,222, 93,118,116,252,191, 6, 79, 32,168, 38,245,245,
+229,196,239,222,173,245,235,219, 55, 15, 0, 12, 70,163,115,124, 66,130,157, 88, 44, 6, 33, 4, 38,147,233,141, 28,226,162,188,
+225, 6,129,129,110,149,209,140,255,234,171,134, 95,124,241, 5, 50, 50, 50, 96, 54,155,193,229,114,223,190,102, 67,173, 86, 99,
+220,184,113,216,188,102, 77,203,202,104, 90, 44, 22,102,234,178,101, 11,230, 46, 88, 80,107,202,148, 41,172,146,215, 94, 71, 71,
+ 71, 28, 57,122,148,191,101,203,150,106, 95,110,222, 60,110,164, 64, 16, 11,189,190, 92,205,108,127,127, 56,102,102,138,138, 76,
+ 22, 0, 4, 6, 6, 98,235,214,173,130, 9, 19, 38,240,251,246,237,187,246,113,163, 70, 27,215,183,109,251,202,169,118,109, 91,
+190, 64, 80,173, 34,205,162,253, 9, 0, 74,157,174,193,250,141, 27, 29,238,223,191,143,204,204, 76,100,100, 20, 60,143, 50, 12,
+131,102,205,154, 49,163, 71,143,182,171,233,237,221, 28, 22,203, 95,121,184,255,224, 69,254, 65, 76, 46,229,189,223,115,180, 10,
+ 55,136, 41,220, 64,166,196,205,241, 13,195, 82,145,209,122, 23,228,114, 57,228,114, 57,118,236,216, 1, 30,143, 87,124,243, 5,
+ 0,131,193, 80, 25,211, 18,228,233,233,137,252,252,124,212,174, 93,251,141, 72, 22,143,199, 3,135,195, 1,143,199,131, 64, 32,
+128, 94,175,135,143,143, 15, 52, 26, 77, 80,121,154, 90,173,182,177,163,163, 99,241, 13, 86, 95, 88, 89,245,122,125,113,121, 13,
+ 6, 3,242,242,242,160, 82,169,160, 84, 42,161, 86,171,131, 43,179,189, 86,171, 21,207,158, 61,123, 29, 24, 24,216,152,205,102,
+ 67, 42,149, 74,212,106,117,113,110, 81,110,110, 46,126,249,229, 23,245,152, 49, 99,156, 79,157, 58, 85,161,209, 98, 24, 6, 31,
+127,252, 49, 4, 2, 1, 52, 26, 13,126,252,241, 71,204,156, 57, 19, 60, 30, 15, 74,165, 18, 91,183,110,197,236,217,179,193,225,
+112, 96, 48, 24,176,113,227,198, 50,181,158, 63,127, 30,127,239,222,189,224, 38, 77,154, 56, 28, 63,126, 60,171, 91,183,110, 46,
+ 61,122,244,128, 72, 36,130, 86,171,133,201,100, 66,203,150, 45, 81,167, 78, 29,200,100, 50,156, 59,119, 46, 59, 32, 32,192,249,
+254,253,251,214,140,140,140,196, 10,204, 53, 41, 17, 49,132,197, 98, 65,102,102, 38,228,114, 57,178,178,178,144,150,150,134,148,
+148, 20,112, 56,156, 10, 71,211,117,114,114, 26,220,160, 65, 3, 54, 0,136, 68, 34, 52,110,220, 24, 11, 22, 44, 48,107,181,218,
+161, 0,206, 21,174,214,235,167,159,126, 58,126,251,246,109,142,167,167, 39, 94,190,124, 9, 23, 23, 23,142, 80, 40,172,208,104,
+185,187,187,239, 58,125,250,180, 99,145,185, 46,218,207, 26, 77,193,225, 24, 52,104,144,227,158, 61,123,118,153,205,230,222,255,
+182,155,154,189, 8,188,198, 13,108,243, 15,134,202,234,207,249,124, 45,167, 78,131,130,135,215,201, 83,192,249,110,205,103,245,
+ 71,245,183, 61, 99, 47, 82,240, 42,210,233,213,213,123, 75,191,126,221, 88, 35,134,135,196,240,120,246,126,219,182, 47,117,117,
+117,155, 80,194,134,217,194,201,217, 22,126,190,124,230,200,153, 23,174,243,230,127,173,223,183,103, 93,236,175, 7, 66,123,242,
+185,151,186,159,187,156, 60,173, 44,237,232,215,242, 83, 26,189,176,174, 34, 39,130,113,116,107,131,198,141, 2,225,234,146,135,
+159,118, 29, 68,141,154,205,160,215,235, 97,107,107, 43,182, 88, 44, 70, 54,155,189,175, 50, 38, 11, 0,174, 92,145, 91,235,215,
+151, 27,216, 74,171,121,250,204,239, 6,118,235,213,175, 94,231,206, 93,173, 23, 47,253, 31,123, 87, 29, 31,197,241,190,159,221,
+ 61,205,197,229,226, 2, 4, 8, 4,130, 21,105,113,215, 80,164, 88, 11, 5, 74,209,210, 2,133, 34, 69, 75, 5, 41,180, 64,113,
+104, 11, 20,119, 8, 30, 74,112, 13, 18, 15, 36, 16,191,184, 92,114,126, 43,191, 63, 34,223, 4, 34,119,129, 26,191,125, 62,159,
+253,236,221,222,238,115, 51, 59,179, 59,207,188,243,206, 59, 23, 13, 29, 90, 25, 20,253,250,180,204, 56,127,105,211, 83, 69,218,
+243,134, 77,155,117, 68,100,196,149,190, 28,135,112,130,168,220,250, 20,241, 12,231,181,108,228,149,131, 7, 39,177, 26,246,161,
+197,119,223,135,245, 27, 48, 96,108, 64,231, 78,157,217, 75,193,127,234,197,200,142,178,233,216, 62,245,179, 79,251, 29,255,117,
+239,250,222,231,207,253,222,160, 64,153, 24,196,139,172,151, 58,105, 52,237, 34,144, 72,200,172, 43, 87,232,102, 19, 38,232, 74,
+159, 71,153, 76,134,147, 39, 79, 66, 44, 22,151,109, 34,145,168,236,179,139,139, 11,136,146,105,164,166,112, 2,128, 66,161, 64,
+122,122, 58,108,109,109, 33,151,203,145,158,158,142, 91,183,110, 33, 54, 54, 22, 66,161, 16,125,251,246, 5, 89,133,111,243,203,
+156,195,231,204,233,229,223,172,153,247,203, 34, 11, 0, 12, 6, 3,114,115,115, 49,104,208, 32,242,220,185,115,174,231,147,146,
+222, 7,176,183, 58,206, 86, 3, 6,228,100, 28, 57, 82,233,127,191,243,206, 59,196,205,155, 55, 37,125,251,244,153, 53,251,251,
+239, 55,253,178,103, 79, 50, 67,211,174,230,228,157, 36, 73,146, 32, 8,120,121,121, 33, 55, 55, 23, 69, 69,197, 35,216, 86, 86,
+ 86,176,183,183,135,209,104, 4,203,113,194,191,178,172,171,210, 34,255, 17,108, 47, 39,184,182,191, 98,209, 42,201, 20, 0,116,
+ 45,223,176,176, 44,107,146,200, 18, 10,133, 53,250, 92,153, 98,229,122, 25,166, 8,173,210,180, 74,165,210,178, 7,173,188,192,
+ 42, 77, 39, 73,146,160, 40,202,164,144,248, 44,203, 82,133,133,133, 56,122,244, 40,186,116,233, 82, 54, 44, 85, 80, 80,128,252,
+252,124, 20, 20, 20, 64,171,213,226,197,139, 23,184,124,249, 50, 26, 52,104, 0,192,180,224,175,241,241,241, 15,234,214,173,219,
+186,180, 17,239,214,173,155,231,174, 93,187,210,250,247,239,239,206,113, 28, 22, 45, 90,148,253,238,187,239, 58,149,111,228,107,
+ 2, 69, 81,184,117,235, 22, 26, 52,104, 0,142,227, 32, 18,137, 16, 19, 19, 3,103,103,103,176, 44, 11,129, 64,128,172,172, 44,
+ 88, 91, 87, 31, 35, 49, 60, 60,124,252, 39,159,124,146,102,107,107,219, 60, 39, 39, 71, 33,145, 72, 58, 93,187,118,205,203, 96,
+ 48,192,198,198, 6, 54, 54, 54, 56,123,246, 44,236,236,236, 48,115,230,204, 36,141, 70,115,203,210,210,210, 69,163,209, 60, 73,
+ 79, 79, 95,100, 78,121,211, 52, 13,149, 74,133,188,188, 60,228,230,230, 66,169, 84, 66,171,213,214,152,198,202,208,169, 83, 39,
+ 4, 5, 5, 81, 43, 86,172,248, 53, 62, 62, 30, 0,224,235,235,139,153, 51,103, 82, 30, 30, 30,120,241,226, 5, 30, 60,120, 0,
+131,193, 0,142,227,170,125,120, 5, 2, 65,183,143, 63,254,184,163,183,183, 55, 97, 48, 24,192,178, 44,116, 58, 29, 74, 63, 39,
+ 37, 37,193,223,223,159,244,241,241,121, 47, 62, 62,190, 27, 76,155, 88,193, 3, 64, 70,210, 9,120, 8,157, 1,210, 6,156,230,
+ 4,114,178,107, 23,197, 37, 51, 51,243,251,185,139,111, 78,248,101,181,193, 37, 69, 1, 52, 10, 24,140,134, 77,122, 96,252, 24,
+ 26, 43,126, 60, 10,111,159, 70, 72, 76, 76, 68,183,110,221, 68,105,105,105,159, 20, 21, 21,205, 49,149,251,210,165, 59,204,197,
+179,231,134, 13, 31, 57,182,117,207,158,253,233, 11, 23,206, 34,252,201,133,136, 79, 70,126,144,201,177, 69,132,131,157,197,195,
+152,232,251, 13,155,183,236, 10, 61,205,116, 2,150,173, 6,150,113, 85, 63,239,208,159, 57,227, 70,158, 57,241,251,152, 15, 71,
+143,107,209,163, 71,111,227,133, 75,167,241,224,246,165,199,107, 87, 79,188,186, 98,253,161,110,189,250,126,208, 84,238,114,235,
+108,128,159,238, 83, 47, 71,219,184, 29,187,114,249,202, 82,217,179, 41,149,178, 40,121, 47,146, 4, 1,142,227, 42,136,172,151,
+133, 22, 73,146, 53, 26, 0,202,115,150,111,139, 74, 59,212,219,182,109,131, 68, 34,129, 88, 44,134, 80, 40,172,209,253,162, 60,
+103,196,139, 23,221,119,239,221, 43,169, 76,100,229,228,228, 32, 39, 39, 7, 69, 69, 69, 24, 53,106,148,232,155,251,247,223, 65,
+137,235, 71, 85,156,222,110,110, 58, 75, 11,139,140,200,200, 72,247, 38, 77,154, 84, 72,175, 82,169,132,133,133, 5,246,238,219,
+ 39, 10, 28, 48, 96, 90,143,179,103,215,162,134,248, 87,149,229,157, 32, 8, 56, 59, 59,195,222,222, 30, 4, 65,128,166,105,164,
+167,167, 35, 34, 34, 2,247,239,223, 7, 69, 16,244, 95, 89,198,149,105,145,255,160, 85,107,123,165, 67,135, 85,141,137,154, 35,
+180, 40,138,170,181, 85,171, 42,152, 50,116, 40,147,201,194,210,210,210, 58,120,120,120,128,166,233, 50,161,245,242,208, 97,169,
+245,227,209,163, 71,144,201,100, 97, 90,173,182, 90, 78,142,227,222,107,219,182, 45,142, 29, 59,134, 43, 87,174,224,249,243,231,
+ 80,171,213,208,233,116,208,104, 52,136,136,136, 0,203,178, 8, 8, 8,128,165,165, 37,100, 50, 89,152, 78, 87,125, 71, 84,165,
+ 82, 41,132, 66, 97, 35, 11, 11,139,178, 99,110,110,110,200,201,201, 97,141, 70, 35,118,239,222,173,116,117,117,181,180,176,176,
+ 48, 89,184, 18, 4,129,204,204, 76,120,122,122,150,249,104, 21, 22, 22,194,217,217,185, 84, 88, 64,167,211,193,218,218,186,198,
+161, 67, 0,218,103,207,158,205, 46,247,189,205,240,225,195,247, 31, 60,120,176, 94,112,112, 48,238,222,189, 11,185, 92,142, 31,
+126,248,225,121, 66, 66,194,135, 0,238,103,102,190, 89,191, 72, 83,234, 80, 78, 78,206,209,176,176,176,247,218,182,109, 91,246,
+150,232,214,173, 27,209,173, 91, 55,167,242,166,254,172,172, 44,220,187,119, 15,193,193,193, 32, 8, 2, 79,159, 62,101, 52, 26,
+205,254,234, 70, 41, 60, 60, 60,118, 45, 92,184,208,138,166,233,178,186,109, 97, 97, 1,169, 84, 10,145, 72, 4,138,162,144,144,
+144,128, 65,131, 6,217,110,220,184,241,119,157, 78, 87, 31,128, 1,111, 9,242, 53, 48, 60, 10, 87,218, 6,248,187, 68,108,223,
+182,162,195,164,201, 40, 29, 58,164, 3,252,157, 35, 30,133,103,216,182,118,174, 57,191,231,130,147, 63,211, 27,207, 13, 60,119,
+ 62,100,196, 87,179,102, 10,125,125,253, 51,131,255, 12,245,238, 65,127, 75, 56, 58,217, 32, 39, 91,137,132,164, 12,196, 39,234,
+ 57, 95, 95,255,204, 7,247,194, 36, 63,254,188,174,161, 74,173, 45, 29, 58,172,182,158, 94,191,245,124,240,218, 13,146,171, 99,
+ 63,105, 35,182,176,112, 71,110,118, 24,188,189,229, 24, 20,216, 28,191,237,185, 5, 91, 91, 7,184,184,184,128, 36, 73, 75, 83,
+243,158,157,157, 77, 28, 61,112,125,194,199,227, 38,190,219,167,247, 0,250,252,133, 51,130, 43, 23, 79,221,250,125,251,215,199,
+ 57, 74, 37, 35,184, 66,139, 58,117, 93,159,196, 61,123,244, 97,247,158,163, 96, 33,178,110, 0, 52,174,180,194,150, 77, 48,224,
+144,116,236,224, 50,233,199,227, 38,181,239,211,231,125,250,194,133, 19,184,112,118,207,157,165, 75,235,156,125,158,186, 79,116,
+251,126,138,116,240,176,169,121, 65,231,162,244, 31, 12,172, 27,235,110,217, 82, 3, 60,231, 85, 85,249,142,164, 64,144, 65,235,
+116, 94,158,125,250, 80,234,196, 68,161,149,139, 11, 13, 0, 70,163,177, 70,161,133, 42,134,160, 95,230, 52, 53, 45,106,181, 26,
+108, 21,177, 19, 95,230, 76,207,204,172, 83,210, 9, 47,131,209,104, 44, 19, 89, 57, 57, 57,200,207,207,135,165,165, 37,178,116,
+ 58, 23, 83, 56,123,183,107,183,251,155,101,203,230, 28, 57,122, 84, 84, 94,100,149,110, 66,161, 16,171, 86,175, 22,125,241,213,
+ 87, 83,167, 9, 4, 51, 64,211, 38,223,207,210, 78, 59, 69, 81, 16, 8, 4, 72, 76, 76, 68, 82, 82, 18, 18, 19, 19,145,152,152,
+ 8, 11, 11, 11,112,127,241, 36,160,255,176,127, 86,169,200, 42,191, 47,179,114, 85, 27,222,193, 28,103,120, 83,133, 1, 99,198,
+248,174, 41, 66, 75,165, 82, 5, 95,190,124,185,221,224,193,131, 5,119,238,220,129,171,171,107,153,208, 42,221,151, 14, 71,201,
+100, 50, 28, 63,126,220,160, 82,169,130,107,120,152, 46,159, 61,123,182,245,146, 37, 75,132,227,199,143, 71,100,100, 36, 38, 79,
+158,140,252,252,124, 40,149, 74,228,228,228, 64,173, 86,163, 93,187,118,144, 74,165,120,242,228,137, 81,173, 86, 95,174,193, 98,
+199,101,102,102, 22,201,229,114,183,151,127, 27, 54,108,152,203,230,205,155,213,209,209,209,198, 14, 29, 58,216,152, 42, 56, 74,
+113,224,192,129, 50, 75, 93,108,108, 44, 54,111,222, 92,230,147, 21, 26, 26,138, 53,107,214,148,197, 62, 51, 19,247,179,179,179,
+105,163,209,136, 6, 13, 26,192,195,195, 3, 90,173, 22,235,214,173,163, 1,220,255,167,106,179, 86,171, 61, 50,118,236,216,121,
+ 15, 31, 62,116, 19, 8, 4,197, 38,237,146,252, 25, 12, 6, 60,123,246, 12, 17, 17, 17,136,142,142, 70,110,110,110, 89, 71,224,
+209,163, 71,121, 70,163,241, 80, 85,188,114,185,124,209,111,191,253,230, 42,147,201, 42,212,231, 82,107,104,169,149, 52, 43, 43,
+ 11,118,118,118,232,209,163,135,243,229,203,151, 23,233,116,186, 37,111, 73,155, 70, 12, 27, 18,219,230,139,207, 6, 99,104,160,
+ 44,249, 88, 80,234,205, 53, 63,206, 46,113,134,119,142, 24, 26,232,145,252, 56,198, 14,195,134,156,104, 3, 32, 5,213, 59,108,
+179,127, 94, 85,156,108,219,214,254,202,177, 83,167,126, 95, 48,119, 86,232,156,217, 19,229,106, 77,156,212,215, 71, 76, 0, 64,
+124,162,158,123, 18,201,106,215,172,157, 21,186, 98,245, 70, 50, 35, 39,127,242,189,123, 85,135, 55, 40, 47, 94, 72, 18, 82,223,
+198, 93,210, 26,250,117,172,123,231,214, 94, 88,201, 52,104,212,184, 13,250,244,126, 15, 87, 66, 30, 33, 61, 75, 11,133, 66, 1,
+157, 78, 87,109,184,132,232, 39,199,199,112, 4,231, 77,112, 68, 18, 65,114,210, 49, 99, 63,237, 52, 96,192,251, 92, 80,208, 41,
+250,196,241,189, 55, 14,253,177,225, 8, 41, 18, 10, 52,122, 91, 61, 65,104, 11, 64,134, 71, 22,169,138, 59, 52, 66,137,168,106,
+243,107, 73, 96,215, 38, 77, 27,187,142, 25, 59,217,182,127,191, 65,220,217,179, 39,216, 67, 7,119, 95, 57,180,179,217, 94,150,
+ 84,138, 20,201,106, 73,129,210, 88,192, 17, 98,187, 34, 37,171,206,136,175,175,117, 31, 48,204, 0, 28,225,213, 85,249,118, 64,
+167, 75, 41, 74, 78,118,115,232,210, 69,242,108,217, 50,153, 75,187,118, 90,162,196,135,184, 58,161, 69, 81, 20, 64,146,172, 41,
+156,166,166, 69,163,209,128, 5,140,181,225,164,105,186,130,200, 42, 21, 90,165,207,139, 41,156,219,151, 46,189,227,221,167, 79,
+110, 72, 72,136, 75,215,174, 93,137,194,194, 66, 20, 22, 22, 86, 16, 91,238,238,238, 68,147,128, 0,217,129, 43, 87,124, 77,189,
+159,166,228,157, 36,201,191, 92,104,253,199,177,189, 74,235, 97,117, 87,149, 90,180, 76, 17, 90, 38, 90,180,140, 70,163, 17,206,
+206,206,200,206,206,174,178,225, 39, 73, 18, 22, 22, 22,165, 99,196,213,206,188,211,233,116,235,230,204,153, 51,189, 95,191,126,
+ 78,141, 26, 53, 66, 86, 86, 22, 92, 92, 92, 32,149, 74,203,124,199, 74,249, 66, 67, 67,241,219,111,191, 41,117, 58,221,186, 26,
+ 56,127, 94,189,122,245,103, 67,135, 14,117,112,117,117,133,189,189, 61,158, 60,121, 2,123,123,123, 40,149, 74,196,196,196,192,
+218,218,186,204,111,231,212,169, 83,133, 58,157,238,231, 26,196, 27,119,237,218, 53,131,181,181,245,147,172,172, 44, 42, 55, 55,
+ 87,144,151,151, 39, 80, 42,149,194,130,130, 2,225,249,243,231,157,108,109,109,213,127,254,249,103,150,183,183, 55,245,252,249,
+115,202,104, 52,214,168, 94, 9,130,192,140, 25, 51, 32, 18,137,160,211,233,176,110,221, 58,204,153, 51,167,204, 39,107,245,234,
+213, 88,184,112, 97,153,112,222,177, 99,135, 89, 53,135,227, 56, 24, 12, 6, 24,141, 70, 24,141, 70,147,196,239,235,192, 68,193,
+158,254,244,233,211,192,182,109,219, 94, 60,124,248,176, 99, 73, 76, 50,100,100,100, 32, 35, 35, 3, 89, 89, 89, 40, 42, 42, 2,
+ 77,211,240,240,240, 64, 70, 70, 6, 78,156, 56, 81, 80, 88, 88,216, 7,213,204, 56,164, 40,106,108,167, 78,157, 4, 47,167,161,
+180,151, 87, 42,222, 37, 18, 9,210,210,210,208,173, 91, 55,113, 72, 72,200, 88, 0,255,105,161, 85, 62,188, 67,239, 62, 19, 68,
+254, 77,219,235, 31, 71, 4, 37, 55,174,155,145, 60,122,144,205, 25, 0,120, 20,158, 97,251, 56,198, 14,254, 77, 3,185,222,125,
+236, 91,103,164,111,111, 6,192, 80,221,114, 61, 0, 96, 43,147, 12,239,213,179, 93,154,181,165, 37,185,102,237,142,115, 91,182,
+252,252,206,145, 51,255, 11,239,176,102,109,113,120,135, 94, 61,219,177,209, 81,209,195, 1,236, 52, 85,188, 4, 6, 14,124,248,
+219,174,223, 16, 29,241,167,251,188, 25,205,197,185, 25, 70, 88, 88,121,161,117, 75, 23,108,223, 21,134,199,143, 31,167,235,245,
+250,110,213,214,111,130,243,142,136, 12,247,107,214,180,137,235,152,177,147,108, 2, 3, 7, 33, 40,232, 36,254,216,189,243,218,
+ 7,163,134,254,154,154,167,164,156,133, 50,145,140, 99,197,148,200, 86, 32,146, 88,100,234,245,197,115, 32,132, 66,169, 13, 48,
+188,218,134,103,202,164,209,182,221,123, 14,194,153,179, 39,241,199,238,237, 87, 23, 55, 29,182,179,110, 43,127,162,221, 59, 63,
+ 78,173, 91,175,174,143,170, 40, 67, 73, 18, 98,131, 86,203, 90,255,184, 59,225,167,248,133, 99,227, 1,172, 5, 63,235,176, 60,
+158,252,209,191,127,219, 47,226,226, 68,242,142, 29, 45,210,174, 92,145,149,172, 68, 82,173,208, 18, 8, 4,224,170, 30,234,170,
+192, 73,236,217, 67, 2,168,118, 18,150, 72, 36,130, 90,173,134,177,106, 11,118, 5, 78,183, 11, 23,146,227,226,226, 26, 58, 56,
+ 56, 84, 16, 89,185,185,185,101,159,181, 90, 45,212,106, 53, 44, 44, 44, 34, 52,149,143,136, 84,224,204,184,118, 77,187,114,198,
+140, 37, 31,142, 26,181, 33,248,242,101,169,163,163, 35, 10, 10, 10, 42, 8, 45,189, 94,143,238, 61,122,136, 86, 63,124, 56, 6,
+ 74,229, 82, 83,238,167, 75,183,110, 53,250, 3, 83, 20, 5,246, 47, 30, 58,124, 11, 48,169, 50,225, 69,214, 52,132, 99,234,172,
+195, 42, 26,200,151, 87,247, 94,216,186,117,107,109,108,108, 44,188,189,189,203,196, 74,249,255,180,177,177,129,157,157, 29, 66,
+ 67, 67,241,253,247,223,107, 0, 44,172,129,179, 80,173, 86,143,236,213,171,151, 70, 32, 16,160,113,227,198,101,241,179, 88,150,
+133, 88, 44,134,165,165, 37, 30, 62,124,136,129, 3, 7,170,213,106,245, 72,188, 26, 67,235,101,206, 2,181, 90,253, 81,239,222,
+189,213,145,145,145,232,212,169, 19, 30, 63,126,140,162,162, 34, 20, 21, 21,225,197,139, 23,104,210,164, 9,212,106, 53, 54,111,
+222,172, 81,171,213, 31, 1, 40,168,142,179,176,176,112,224,156, 57,115,168,253,251,247,215,245,240,240,104,218,166, 77,155, 70,
+ 61,122,244,168, 63,100,200, 16,159,254,253,251,187, 53,108,216, 80,219,167, 79, 31,121,191,126,253,228,106,181, 90,120,243,230,
+ 77,133,209,104,236, 87, 67, 58,203,196, 73,108,108,108,217, 80,161, 64, 32, 64,118,118,118, 89,228,254,210,151, 82, 21, 66,184,
+103, 77, 98,187, 84, 96,149, 10, 46, 19,252,220, 42,227,172,241, 34,177, 88, 92,106,241,228, 76,224,124, 20, 21, 21,213,171, 75,
+151, 46,143, 38, 76,152, 80,152,158,158, 14,107,107,107,248,250,250,194,207,207, 15, 78, 78, 78, 48, 24, 12, 56,126,252,184,234,
+196,137, 19, 97, 5, 5, 5,221,240,106, 12,173,158, 47,221,199, 23,149,189,100, 75,173, 89,165, 66, 75, 42,149,194,195,195,163,
+244,222,190, 48,231,126,214, 18,127, 45,103,137,128,233,209,189, 79,189,254, 3, 6,219, 30, 63,121, 75,188, 97,211,137,176,214,
+ 61,177,195,177,142,242,148, 99, 29,229,169,214, 61,177, 99,195,166, 19, 97,199, 79,222, 18,247, 31, 48,216,182, 71,247, 62,245,
+ 34, 35,162, 27,149, 95,247,176,178,116, 74,165,210,246,157, 58,182,206, 11,185,113,149, 93,177,122, 35,217,189,219, 7, 15,119,
+254,122,252,248,206, 95,143, 31,239,222,237,131,135, 43, 86,111, 36, 67,110, 92,101, 59,117,108,157, 39,149, 74,219,155,146,247,
+ 41,147, 70,219, 14,232, 63, 8, 65, 65,199,233, 35, 7, 54,175, 62,120,244,105,151, 79,167, 95,203,136,141,125,204,101,166, 92,
+128,144, 76, 68, 84, 84, 84, 65,137,200,138, 53,133,115,242,196,209,229, 69,214,117, 71,215, 78, 59,162,162,192, 92,186,116,218,
+120,249,242, 67,205,245, 71,153, 5, 15, 34,179,115,211,178,114,159, 43,149, 57,122,150,101,192, 48, 12,245,205, 55,101, 14,187,
+149,150, 81,135, 14, 93,241,103,240, 62,236,222,181,173,128,101,161, 29,126,228, 8, 51,124,248, 50,206,167, 78, 29,159,189, 7,
+246, 17,129,239, 15,182,229, 0,118,224,208, 65,118,251, 15,238, 39,234, 53,168, 87,199,215,183, 44,164,205,127,175, 46,253, 5,
+156,203,128, 60,101, 98,226,213,208,141, 27,117, 46, 35, 71, 58,136, 93, 92,108,192, 48, 68,233,251,189,170, 77, 32, 16,188,108,
+129,169,146,211,195,201, 41,245,212,169, 83,240,243,243,131,135,135, 7,202,251,200,150, 6,228,118,116,116,196,209,163, 71,193,
+ 85, 12, 78, 93, 37,103,171,186,117, 67, 87,173, 92,169,103, 89, 22,121,121,121,175, 88,179,242,242,242,192,178, 44,206,158, 57,
+163, 87, 22,175, 4, 98, 82,222,187, 81, 84,209,135,157, 59,175, 24, 48, 96,128, 33, 46, 46, 14, 44,203,162,188,101, 43, 51, 51,
+ 19, 86, 86, 86,208,234,116, 94, 0,100,166,112,102,158, 63,111,137, 26,222,235,149, 88,180,254,138,114,255,175,139,172,242, 11,
+ 74, 79, 50,201,162, 69,211, 52,188,188,188, 42, 44,233, 66,146,100,133,205,204, 25,135,123, 34, 35, 35, 47,244,233,211,103,201,
+187,239,190, 59,101,201,146, 37, 84,163, 70,141, 80, 80, 80, 0,123,123,123, 56, 59, 59, 35, 38, 38, 6,167, 78,157, 98,178,179,
+179,183, 2, 88, 14,211,166,208, 95,121,250,244,105, 96,243,230,205, 15,206,159, 63,223,182,119,239,222, 66, 47, 47, 47,112, 28,
+135,135, 15, 31,226,216,177, 99,134,157, 59,119, 42, 75, 68,150,169,206,203, 23,211,210,210, 62,232,215,175,223,222,177, 99,199,
+ 90, 51, 12, 35,124,241,226, 5,116, 58, 29,140, 70, 35,146,146,146, 12, 65, 65, 65, 69,106,181,122, 52,128,139, 38,240,133,230,
+231,231, 55,185,116,233,210,216,155, 55,111,126, 63, 97,194, 4,199, 30, 61,122,136,104,154,198,141, 27, 55,178, 90,181,106,229,
+156,153,153,105, 56,122,244,104,142, 86,171, 93,200, 48,140, 73, 75,240, 16, 4, 1,165, 82, 9, 39, 39, 39,232,116, 58,176, 44,
+ 11,189, 94, 15, 43, 43,171,178,101,147, 56,142,131, 57,206,245, 47,213, 1,202, 96, 48, 96,212,168, 81, 96, 89, 22,235,214,173,
+ 3, 77,211,102,147,217,218,218, 62,120,244,232, 81, 96,203,150, 45,203,196, 75,105, 29,146, 72, 36,112,114,114,130,163,163, 35,
+130,130,130, 32, 20, 10, 31,212,228,239, 86,130,199,217,217,217,173, 46, 93,186,212, 62, 44, 44,236, 99, 0, 45, 13, 6,131, 7,
+195, 48, 4, 73,146, 10,142,227,158, 40,149,202, 95, 97,226, 18, 60,153,153,153,223,143, 27, 55,174,213,190,125,251,172, 4,130,
+255, 61, 26, 2,129, 0, 18,137, 4,165,193, 49, 57,142,131, 94,175,199,162, 69,139,148, 42,149,234,251,183,229, 45,209,186, 77,
+ 59,108,223,188,222,234,242,159, 23,178,162,158,226, 88, 37, 33, 28, 82, 50,210,183, 55, 75, 75, 78,182,106,221,166,157, 73,156,
+ 70,189, 33,231,163,209, 95,122,151, 44,193,179,232,197,139,132,109,123,247,252, 20, 15, 0, 63,254,188,174, 97, 70, 78,254,228,
+232,168,232,225,219,182, 29,104,111,212, 27,114, 76,225,252,159,120,217, 91, 0, 14, 90, 0,119, 31,134,101,212, 29, 56,242,252,
+194, 6,245,108,222,207,204,209,164, 22, 21,169, 63, 7, 16,111,106,222, 59,118,232,130, 63, 47,238,199, 31,187,247, 42, 57,150,
+210, 58, 57, 57,113, 0, 16, 21,229,196, 69, 69,229,115,255,243, 43,182, 83, 9,185,199,203,191,252,188,199,151, 5,202,220,159,
+215,109,174,126, 40,165,121,139,119,209,188,197,187,152,254,249,215,182, 77,154, 54,246, 6,128, 35, 71,192, 52,109, 16,121,122,
+201,226,101,239, 47, 95,190, 12,202, 66, 29,150, 47, 47, 94,174, 39, 38, 60,242, 76,124, 60,244,124,155, 85, 17, 75,104,250, 46,
+190,252,178,161, 58, 55, 87,222,113,222, 60, 39,193, 87, 95,145,213, 57,195,151,127,126, 77,225,188,255,228,201,153,201,159,126,
+154,186,116,201,146, 62, 91,183,109,179,104,214,172, 25,210,211,211,209,184,113, 99,120,120,120,224,210,165, 75, 56,122,232,144,
+ 42,191,176,112, 33,128, 45,166,112,238, 57,123, 54,166, 81,211,166,217,219,182,109,115, 31, 48, 96, 0,161, 82,169, 80, 80, 80,
+128,130,130, 2,232,116, 58,148, 4,132,230, 98,159, 62,141, 50, 26,141, 91, 77,205, 59,147,149, 37, 93,222,174, 93,138,136,101,
+ 87,125, 48,116,232,156,229,223,126, 43,169, 87,175, 30,161,211,233,202,172, 90, 6,131, 1, 86, 86, 86, 6,189, 94,239, 8, 64,
+109, 10,167,100,231, 78, 58, 43, 43, 11,114,185,188, 44, 92, 83,249,184,132,133,133,133,224, 56,142, 15,166, 91, 11, 84,169,144,
+236,237,237, 31, 8, 4, 2,207,242,214,173,202,214,206, 43,127,204,104, 52,166,100,103,103,183,126, 73,241, 86,229, 15,229, 11,
+224,135,238,221,187,127, 48,123,246,108, 34, 36, 36, 4, 39, 78,156,224,226,227,227,143,148, 88,177,226,171,233,233, 84,197,105,
+ 45,145, 72,102, 90, 90, 90,246, 44, 13,225, 32,147,201,194, 84, 42, 85,112,201,112, 97, 97, 45, 56,109, 36, 18,201, 12, 75, 75,
+203, 94, 37,203,175,192,218,218,250,145, 74,165,186,164,211,233,214,163,234,133,170,171,227,180,176,181,181,253,222,201,201,233,
+163,175,190,250,202,241,218,181,107,138, 63,255,252, 83,148,159,159,191, 79,175,215, 87,183,168,244, 43,156, 14, 14, 14, 15, 40,
+138,242,252,139,202, 8,205,155, 55, 15, 26, 56,112,224,128,209,163, 71,195,104, 52, 98,203,150, 45,184,116,233,210,153,103,207,
+158, 5,214,208, 27,125,153,211,201,211,211, 51,100,202,148, 41, 62,163, 70,141,146,217,219,219, 67, 32, 16, 64,165, 82,225,217,
+179,103,120,248,240, 33,119,242,228,201,162,208,208,208, 20,181, 90,221, 21, 64,182, 25,247,243,117,122,205, 21, 56, 5, 2, 65,
+ 23, 47, 47,175, 3, 75,151, 46,181,238,213,171,151,133,163,163, 35, 40,138,130,209,104,132, 66,161, 64,120,120, 56, 46, 92,184,
+160, 58,114,228,136, 42, 39, 39,103, 20,128,171,255, 68, 58,223, 36,167,127, 67, 44,126,105,161,232, 42,163,189,215,112,110,141,
+233,236,222,197,109,208,240, 15,250,245, 5,128,195, 71,207,157, 55, 97, 81,233, 42,211, 89, 83, 90, 77,225,108,220,128, 92, 26,
+ 17, 25, 94, 33,160,101,211, 38, 1,177,254,205,134,126,103, 10, 81,185,200,240, 21,242, 94,110, 56,182,188, 77,183,194, 48,171,
+191, 47, 2, 7, 13, 31, 50,224,235,133, 11,240,195,247, 43,112,242,240,241, 51, 81,241, 21,150, 9,250,207,213,165,191,152,147,
+248, 78, 32,120, 87,230,230,214,121, 29,203, 46,120, 28, 30,110, 85,190,195, 86,106,121, 46,223,169,116,119,119,207, 84, 40, 20,
+ 46,166,112, 6,254,242,139, 65,109,105, 41, 89,176,106, 85,151, 34,173,182,203,242,229,203, 5,247,239,223,199,230,141, 27,105,
+109, 74,202,222, 44, 96, 70, 21,163, 33, 85,114,250,204,152, 33,157,187,121,243,120,223, 6, 13,156, 63,254,248, 99,161, 80, 40,
+132, 74,165, 66,114,114, 50, 46, 94,184,160,143,140,138,138, 84, 42,149,239, 3, 72, 51,149, 51,240,151, 95, 12,118,190,190,144,
+201,229,220,229, 43, 87,108, 39,207,156, 57,165, 78,221,186,182,125,250,246, 21,218,216,216, 32, 47, 47, 15, 47, 94,188,192,241,
+227,199, 51,139,138,138,220, 1, 48,166,112,238,189,121,179,249,217,171, 87,135,125,247,221,119,226,128,128, 0,216,218,218,162,
+176,176, 16,225,225,225,184,122,245,170,110,235,214,173, 5, 5, 5, 5, 83, 24,134, 57,245, 23,150,251,219, 96,213, 42,197,246,
+210,209,159,191,218,195,223,148,130,104, 13, 96,113,201,231,111, 81,243,154,129,111,211,203,199,219,193,193, 97,187, 86,171,229,
+ 52, 26,205,100, 0, 73,255,194,116, 10, 90,183,110,189, 57, 51, 51,179, 61,199,113,176,181,181,189, 21, 17, 17, 49, 13, 85,204,
+188,169,129,147, 2,208,222,202,202,170,157,181,181,117, 23,157, 78,231, 95, 50,252, 22,165, 82,169,174, 26, 12,134,187, 37,214,
+ 39,230, 31,206, 59, 5,160,151,187,187,251,167, 44,203, 54, 32, 8,194,142, 97, 24, 24,141,198,124,150,101,159, 21, 20, 20,236,
+ 4,112,233, 95,144,206, 55,194,217,164, 62,134,112, 36,252,171, 18, 4, 21,132,214, 75, 2,130, 96, 17, 21, 25,135,227,102,164,
+147,236,215,211,107, 19, 80, 60, 51, 17, 53, 59,215,254, 79,104,153, 32, 94,204, 22,153,245,169,113, 28,193, 85,224, 36, 56, 34,
+169,113,243, 33,127,188,142,208, 50, 21, 77,252,208, 5, 28,218,179, 28,238, 70, 63,195,159,111,241,187,238,141,113,254, 0, 56,
+108,180,183,191, 69, 10, 4,174, 0,200, 18,235, 11,203, 18, 4,195, 17, 4, 93,126,120,235,165,142,101,181,156, 6,160,153, 80,
+ 34,241, 98,104,218, 37, 29,176, 58,203, 48,239,104, 57,174,200, 19, 88,252, 8,136,169, 77, 58, 13, 64, 51, 74, 34,241, 62,203,
+113,131,178, 44, 45,155,103,106, 52,114, 0,156,149,165,101,148, 82,165,218,173,213,106, 55,225,213,145,139, 26, 57, 69, 18,137,
+ 39, 67,211, 46, 0, 64, 10, 4,153, 7,117, 58,175, 20, 27,155,143,181, 58,157,143,149,149,149, 81,175,215, 43,181, 90,237,104,
+154,166, 47,155,147,247,103, 52,221,228, 38, 73,118, 50, 88, 90, 58, 26, 8,194, 82, 79,211, 6,189,193,144,172,213,106,195, 0,
+252, 4, 32,238, 47, 46,247,183, 10,166,132,147,122, 83, 15, 11,207,201,115,242,156, 60, 39,207,201,115,242,156,127, 61,167, 12,
+128,119, 73,103,241,191,152,247,183,202,186, 85, 58,251, 95,192,223, 11, 30, 60,120,240,224,193,227,173,128, 26,149,248,100,241,
+248,103, 65, 84,163, 74,205, 49, 9,214, 70,217, 6,243,156, 60, 39,207,201,115,242,156, 60, 39,207,249,255,142,179, 38,238,255,
+226,144,228, 43,107, 29,114, 28,183,253,239,248, 99,222,252,203,115,242,156, 60, 39,207,201,115,242,156, 60,231,255, 59,148, 14,
+ 29,146,252,173,168, 18, 46, 37,219,155, 62,151,199,219, 93, 23, 94,134, 71,201,102,206,249,110,252, 45,231,193,131, 7,143,183,
+ 3,255,132,208, 50,181,209,122,157,198,237,117,133,207, 10,130, 64, 26, 65, 32, 13,192,138, 55,120,110, 77,112,119,114,114,250,
+162, 73,147, 38,123, 93, 92, 92,166, 3,112, 54,243,250,134, 50,153,108,189,165,165,101,136,165,165,101,136, 76, 38, 91, 15,160,
+225, 27, 42, 55, 2,192,100,137, 68,114,197,205,205, 45, 85, 44, 22, 95, 1, 48, 5,181,159,185,218, 8,197,113,210,190, 5,208,
+220,156, 11,157,155, 14, 58, 36,111, 58,232,137,188,233,160,112,199,128,129, 13,229, 77, 7,133,203,155, 14,122,226,220,116,208,
+161,191,160,190,190, 78,249,174, 32, 8, 36, 17, 4,146, 76,188,246, 39, 2, 72, 38, 8,164,188,129,186,196,131, 7, 15, 30, 60,
+254,107,112,119,119,255,192,205,205, 45,216,205,205,237,146,187,187,251, 7, 38, 92,210,179,146,134,135, 33, 8, 48, 53, 52, 36,
+213,157, 87,147,185,178,252,181,107, 76,204, 90,121, 78, 23,130, 0,195,149,128, 32,192, 58, 59, 59,111,112,115,115, 91,241,242,
+230,236,236,188,129, 32,192,150, 59,151, 41, 39,240,204, 53,171,186,140, 25, 51,230,112, 94, 94, 94,144, 94,175, 15,122,250,244,
+105, 80,215,174, 93, 15,190,100,221,168,146, 83, 42,149,126,216,182, 93,251,208,171, 55,238, 62,141,125,150,144, 22, 25,243, 60,
+225,244,249,203,247, 3,154, 53,191, 39,149, 74, 63, 52,163,140, 8, 0,147, 5, 2,193, 21, 43, 43,171, 20,129, 64,112, 5,192,
+ 84,138,162, 78,173, 92,185, 50, 33, 34, 34, 34,227,230,205,155,249, 87,175, 94, 77,157, 48, 97,194, 51,130, 32, 78, 87, 34,216,
+123, 86, 98,165,121,217,170,179, 36, 49, 49,241,188, 66,161,184, 96, 97, 97,241,189, 9,231,151,113,202,155, 14,122,146, 89, 96,
+224, 50, 11, 12,156,188,233, 32,174,220,231, 39,102,222,243,154,202,232,149,186, 32,145, 72,188,107, 16,244, 61,171,186, 22,128,
+107,201,111,173, 1,252, 82,178,149, 78, 61,119,149, 74, 36,111,170, 46,189,137,188,243,156, 60, 39,207,201,115,254,221,156,255,
+101,180, 42,217,187,161,216, 95,203,173,182,179, 14, 63,123,250,244,169, 21, 0,248,249,249, 77, 3,112,212, 28, 33, 65, 16,152,
+203,178, 28, 9, 0, 36, 73,204,235,214,173,123, 43, 11, 11,139, 10, 81,144, 53, 26,141,248,202,149, 63,123,176, 44, 71,148,156,
+ 55,151,227,176, 30, 64,134,169,255,161,215,235, 72,161, 80, 12,146, 36,190, 12, 8,104, 86, 39, 59, 59,251, 26, 73,146,123, 83,
+ 83, 83,243,204, 54,227, 16, 4,118,236,216,225,231,230,230,246, 74,180,102,133, 66, 33, 30, 52,232,125,179,248,198, 1, 18,157,
+ 68,210, 78, 68, 16,110, 12, 77,219, 1,128, 64, 32,200,187, 47, 22,183,254,225,187,239,100, 4, 65,176, 57, 57, 57,208,104, 52,
+152, 53,107,150, 69,100,100,228,224,236,236,236, 77, 53,208,250, 53,111,209,106,214,133, 11,231,253,149,185,121,218, 29, 63,111,
+ 11,213, 8, 68,234,186, 77, 26,139, 54,111,223,109, 63,105,252,232,207,163,163, 35, 30,161,242,229, 72,202,131, 4,112,124,230,
+204,153, 77, 3, 3, 3,197,133,133,133, 82,141, 70, 83,103,239,222,189,139, 90,183,110,109,213,178,101, 75,241,129, 3, 7,136,
+130,130, 2,112, 28, 39,107,220,184, 49, 55, 98,196, 8,237,193,131, 7,167, 3,216, 80,141,240,157, 91,124, 47,201,117,141, 26,
+ 53, 90, 10, 0, 79,159, 62, 21,149,187,199, 66,127,127,127, 75, 0,136,137,137,249,134,227,216,153, 0,192,113, 88, 13, 96, 65,
+ 37,166,181,167, 77, 59, 14, 7, 8, 52,136,184,113, 88,218,180,211,112, 45, 56, 60, 35,128,167, 37, 29,130,229, 64,185,184, 80,
+ 21, 17,149,150,150, 86,171,181, 9, 7, 12, 8, 36, 8,130, 56, 18, 26, 26,122, 52, 51, 51,179, 46,203, 50, 19,171, 75,231, 75,
+245,136,112,116,116, 28,151,157,157,189, 2,192,167, 81, 81, 81,173, 0,192,223,223, 95, 4,224,129,141,141, 77, 7,131, 94, 79,
+240,239, 42, 30, 60,120,240,248,207, 10,173,135, 0, 6,224,127, 75,240,108, 7, 96,182,208, 18, 3,192,181,107,215, 0, 64, 82,
+139,132, 16,229, 5,204,140, 25, 51,224,230,230,246,178,120, 65, 72,200,149,215,201,108,133,255,248,246,219,111,173,242,243,243,
+123,254,250,235,175,157, 57,142, 91,147,150,150,118,167,134,235, 51, 56, 14,171, 73,146,152, 71, 16, 4, 36, 18,105,236,148, 41,
+ 83, 30,150,252, 86,231,244,233,211,178,129, 3, 7,170, 1, 36, 0,128, 68, 34,245,160, 40,210,175, 88,185, 98,117,117,130,112,
+ 24,224, 75,139,197,221, 39,255,242, 11,253,206,192,129, 2, 75,185,156, 0,128,132,232,104,199,213, 63,254,216, 33, 47, 62, 94,
+172,113,116,204,201, 81,169, 52,177,177,177,144, 72, 36, 4, 69, 81,239,212,148, 97, 75, 75,203, 47,190,251, 97,149,165, 50, 55,
+ 95,163, 85, 22,234, 41,218,168,179,182,144, 49, 25,233,153, 57, 86, 22,150,234,121,139,151,137, 63,155, 56,246, 11,149, 74, 53,
+173, 6,170,233, 95,126,249,165,127,219,182,109, 61, 14, 29, 58, 68, 20, 20, 20, 64, 32, 16, 88,181,108,217, 18,173, 91,183,102,
+254,252,243, 79,162,110,221,186, 8, 8, 8,192,141, 27, 55,112,235,214, 45,162, 85,171, 86,178, 99,199,142,141, 49, 26,141, 27,
+106, 18,215, 20, 69,206,106,220,184,113, 75, 75, 75, 75,189,159,159, 31, 38, 78,156, 8,142,227,208,179,103,207, 0, 43, 43,171,
+163, 42,149, 74, 28, 19, 19,221,185, 38,145,157, 25,113,114, 68,169,101, 11, 64, 51,112,120,150, 21,113,178,121,185, 83,252, 99,
+ 98, 98,222,205,203,203, 43,115, 70, 44, 93,192,188,115,231,206,230,212,165, 12,142,195,234,129, 3, 3,231, 1, 4,209,179,103,
+207,252,233,211,167,147,209,209,209, 31, 13, 25, 50, 56,224,233,211,103,168, 38,157,229,235, 17, 49,110,220,248, 12, 43, 43,171,
+161, 71,142, 28,137, 81, 40, 20, 2,145,168, 76,103, 82,206,206,206,114, 63, 63,191,169, 14, 14, 14,153, 20, 73, 58,115,224,184,
+154,234, 18, 15, 30, 60,120,240,248, 87,225, 76,137,184, 58,243,242, 15, 2, 0, 8, 10, 10, 42, 11, 95, 26, 24, 24, 88,101,175,
+154,227,184,140,199,143, 31,123,169,213,106,112, 28,103, 74, 35, 80,126,138,102, 6, 65,144,155, 73,146,152, 70, 16, 4, 2, 2,
+154, 61, 95,183,110, 93,101,107,122,233, 3, 2,154, 61,167, 40,178, 30,199,113, 32, 8,114, 11,199,177, 25, 85,112, 86,218, 48,
+138,197,146,185, 0,224,234,234, 22,127,238,220, 57,253,176, 97,195,240,227,143, 63,138,230,207,159, 63, 71, 32, 16, 76, 79, 74,
+ 74, 74,175, 38,157, 0,176, 64, 46,119,150,237,216,177,195,111,202,148, 41, 15, 21, 10,197, 2, 0,112,115,115, 91, 1,160, 9,
+128,132,114,199,176,117,235,193,212,137, 19, 39,198,102,102,102, 46,168,138,115, 40, 80,223,171,113,227,238,203,175, 93,227, 72,
+157,142,200,190,126, 93,153,149,145, 97,140,203,202,146,237,122,240, 32,112,209,138, 21, 66, 47,111,111,132,156, 58,229,148,173,
+ 86,103, 21,232,116,218,140,140, 12,142,166,233, 91, 38,228,189,169,179,220, 89,182,237,167, 45,247,173,133, 20,235,236,233, 65,
+ 8, 29, 28, 4,164,204, 70, 76, 9, 72, 93,189, 58, 13,197, 0,154,214, 84, 70, 34,145,104, 76,239,222,189,101, 7, 15, 30, 36,
+ 2, 2, 2, 96,103,103,135,235,215,175,227,209,163, 71,200,203,203, 35,141, 70, 35,218,180,105,131, 85,171, 86,193,219,219, 27,
+249,249,249, 72, 74, 74,114, 18,139,197,114,163,209, 88,213,253,172, 80,159,230,206,157, 11, 55, 55, 55,208, 52,141,220,220, 92,
+208, 52, 13, 43, 43, 43, 0, 64, 74, 74, 10, 78,157, 58,105, 74, 93,170, 17, 28,199,225,189,247,222, 43, 36, 8, 34,234,101,139,
+150, 57,156, 30, 30, 30, 7,178,178,178,251,117,239,222, 29,121,121,121,198,101,203,150,161,121,243,230,240,243,243, 51, 37,157,
+ 11, 68, 34,241,175, 62, 62, 62, 63,205,152, 49,195,205,193,193, 1, 58,157,110, 81,122,122, 58,166, 78,157, 10, 0,232,223,191,
+127,115,161, 80,120,110,194,132, 9,168, 91,183,110,106,110,110,110, 82,104,104,232, 68,181, 90, 29, 94,219,188,155, 8,158,147,
+231,228, 57,121,206,127, 21,167,169, 90,228, 95, 10, 69,169, 5,171, 4,219, 43, 8,173,192,192, 64, 34, 40, 40,136, 51, 33, 99,
+ 57,158,158,158, 94, 22, 22, 22, 0,144, 99,110, 42, 88,150,157,238,232,232,152,185, 96,193,130,142,126,126,126,250,233,211,167,
+135, 39, 36, 36, 44, 44,127, 78,157, 58,117,190,223,184,113, 35, 98, 99, 99, 19, 86,172, 88,113, 35, 39, 39,199,220,117,204,230,
+115, 28,214,149, 88,199,178, 79,157, 58,213,252,218,181,107,211,126,254,249,103,249,103,159,125, 38,250,226,139, 47, 70, 3,248,
+177, 38, 18,138,162,212,149, 13, 23, 86, 6, 55, 55, 55, 61, 69, 81, 85, 6,137, 11, 4, 44,164, 98,113,183,229,215,174,113,250,
+132, 4,245,111,107,215, 90,111,187,119,111,169,145,227, 92,156,157,157,209,169, 67,135, 34, 41, 69,101,103,166,167,179,206,245,
+235, 83, 47,206,157,115,210,136,197,105, 7, 15, 30, 44,200,201,201, 57, 81,163, 9,143, 32,148, 44,199,233,173, 60,189,141,195,
+ 6,247, 10,184,127,247, 81,180,181,179, 19,217,170,101, 64,243,232,216,132, 80,176,172,129, 32, 8,101, 77, 60,182,182,182,126,
+ 57, 57, 57, 80, 42,149,144,203,229, 88,183,110, 29, 92, 93, 93,161, 86,171, 17, 17, 17,193,121,122,122, 18,215,174, 93,131,167,
+167, 39,178,178,178,160,215,235, 81, 88, 88,152,169,211,233,170, 90,155, 49,131, 36,169,223, 73,146, 24, 79, 16, 4,234,213,243,
+ 77,220,180,105,147,158,101, 89,248,251,251, 99,200,144, 33, 56,118,236, 24, 34, 34, 34, 74, 45, 79,122, 31,159, 58,137, 36, 73,
+248,148,104,165, 90, 91,117, 74,151,246, 73, 75, 75, 27, 90,203,135,134,116,119,119, 31,221,160, 65,131,105, 31,126,248,161, 81,
+ 44, 22, 67,165, 82,149,222, 11, 99,191,126,253,243, 7, 14, 12,180, 61,115,230, 76,181,233,212,235,245,241, 5, 5, 5,159,126,
+249,229,151,123,183,110,221,106,191,112,225, 66,176, 44, 11,142,227, 64,211,116,217,162,223, 44,203,226,248,241,227,136,139,139,
+251,254, 37,145,197,131, 7, 15, 30,255, 47, 96,134, 22,249, 55,194, 13,197,195,134,120, 89,108,253,237,145,225, 41,138,218,118,
+241,226,197,150,157, 59,119, 22,244,232,209, 35,224,252,249,243, 1,169,169,169,225, 37,214,131,128, 30, 61,122, 4, 56, 59, 59,
+ 99,253,250,245,106,138,162,182,213,242,111,202, 26,189,244,244,244,135, 0,214, 28, 59,118,108,245,228,201,147,225,234,234,218,
+ 68,161, 80,252,173,121,182,145, 72, 90, 77, 88,183,142, 22, 26,141,228, 47,107,214,216,172,189,114,101,245,161,195,135, 5,239,
+189,247, 30,193,113, 28,194,158, 60,177, 88,181, 97,131,108,212,224,193, 9, 49,241,241,244,201, 11, 23,140, 25,169,169,185,169,
+ 89, 89, 75, 0,228,214,196,111, 52, 26,111, 63,125,250,212,189, 83,151,247, 60,174,222, 11,127, 52,108,112,255,238, 66, 1, 73,
+ 60, 75, 72,121,224,230,234,100, 27,114, 37, 88, 99, 52, 26,111,215,196,163, 82,169, 94,208, 52,237,192,113,156, 60, 36, 36, 4,
+114,185, 28,121,121,121, 48, 26,141,208,235,245,122,181, 90, 45,205,201,201,129, 86,171,133, 78,167,131,141,141, 13,194,194,194,
+ 50,104,154,254,179, 42, 78,134, 97, 38, 72, 36,146,111,133, 66,161, 88, 36, 18,165, 61,120,240, 0, 74,165,178,142,157,157,221,
+143, 52, 77, 35, 45, 45, 13,215,174, 93,251,202,198,198, 38, 1, 0,164, 82, 41,196, 98,137,163, 78,167,163, 1,164,214,246,158,
+191,206, 26, 83,174,174,174,222, 22, 22, 22,203,231,205,155,235,223,162, 69, 75,100,101,101,129,101, 89, 88, 90, 90, 66,173, 86,
+195,198,198, 6,237,219,183,127,177,124,249,114, 5,199, 97, 82, 77, 98, 48, 51, 51, 51, 75, 32, 16, 76,159, 60,121,242,183,126,
+126,126,245, 56,142, 67,195,134, 13,209,187,119,111,156, 59,119, 14,177,177,177, 80,169, 84,204,157, 59,119,246, 43, 20,138,211,
+252,235,150, 7, 15, 30, 60,254,115,120,197, 55,171,130, 69,235,239, 68,102,102,102, 86,116,116,244,249,208,208,208,192, 17, 35,
+ 70, 32, 36, 36,100, 28,128, 47, 1, 64, 34,145,140, 27, 49, 98, 4, 66, 67, 67, 17, 29, 29,125, 62, 51, 51, 51,235, 77,252,167,
+ 88, 44,214,234,245,197,198, 41,169, 84, 42, 53,243,242, 58, 37, 67,134, 0, 80,167,154, 99, 85,155, 70, 4, 2,183,102,125,251,
+ 10,242, 30, 61, 82,238,184,123,247,219,189,123,247, 10, 58,118,236, 72, 24, 13, 6, 48, 44, 11, 95, 95, 95,162, 71,207,158,150,
+191,239,221,235,192,168, 84,215,190,155, 55,239,250,246, 9, 19,138,158,150,248,129,213, 4,157, 78,183, 97,218,212, 79,123, 94,
+ 9,185,238,209,164,113,125,135,243, 23,175, 60,116,116,180,149,249, 53,104, 96,153,147,151,203, 44,156,255,149, 64,167,211,253,
+ 82, 19,143, 70,163, 57, 30, 28, 28, 60,216,203,203, 75, 30, 30, 30, 14,189, 94, 15,134, 97,208,163, 71, 15,112, 28, 39, 1,192,
+ 10, 4, 2, 68, 71, 71,195, 96, 48,100, 62,125,250, 52,237,217,179,103, 18, 0, 43,107, 72, 95,162, 78,167, 67, 84, 84,241,168,
+157,167,167,103,175, 1, 3, 6,128,166,105,244,237,219, 23, 39, 79,158,236, 21, 21, 21,181,182,188,230,123,221, 50, 47,177,144,
+249,187,187,187, 31, 43, 57,100,146, 19,188,135,135, 71,128,175,175,239,214,149, 43, 87,138, 60, 61, 61,193,113, 28,236,237,237,
+160, 86,171,145,157,157,131, 38, 77,154,192,203,203, 11, 43, 87,174, 4,128,253,166, 90,220,210,210,210,158,165,165,165,141,200,
+204,204, 20,229,231,231,183,238,213,171,215,250,158, 61,123,226,225,195,135,184,126,253,250, 40,137, 68,146,105, 48, 24,104, 87,
+ 87,215, 73, 4, 65,216, 24, 12,134,125, 57, 57, 57, 10,254,221,197,131, 7, 15, 30,255, 9,148,250,104,161,220,222, 60,139,150,
+191,191,191,101, 66, 66,194,199,117,234,212, 17, 3,128,133,133, 69, 19, 95, 95,223, 57,241,241,241,133,230,166, 70,173, 86, 31,
+218,187,119,111,239,159,126,250, 73,212,191,127,255,250,199,142, 29,107, 11, 0,253,251,247,175,111,109,109,141,189,123,247, 26,
+212,106,245, 27,139,137,100, 52, 26, 59,183,105,211, 6,185,185,185, 72, 72, 72, 48,107, 88,230,244,233,211, 50, 20,251,101, 85,
+123,172, 58,208,122,189,189,157,135, 7,153,122,229,138, 33, 87,169,116,235,220,165, 11, 97, 52, 24, 64,146, 36,114,114,114,144,
+148,148, 4, 91, 59, 59, 34,250,233, 83,171,157,115,231,158,174,211,162,133,152,209,235, 29,205, 72,166, 42, 59, 51, 99,252,231,
+211, 63, 59,190,111,223,126,121,190, 82, 25,103, 97, 33,211, 73, 36, 34,215, 25,159,127,206,228,230,230,142, 5, 80,100, 2,207,
+202,125,251,246,245,237,219,183,239, 19,111,111,111,231,172,172, 44,215,252,252,124, 38, 55, 55,151, 66,177,175, 21, 1, 0, 87,
+174, 92,129, 82,169,164, 25,134,185,134,226, 88, 88,122, 83, 19,234,227,227, 99,219,186,117,235,174,114,185, 28, 5, 5, 5,112,
+116,116, 68,203,150, 45,187, 82, 20,245,107, 98, 98, 98,193,155,172,245,151, 46, 93,178,230, 56,238, 93,142,227,208,183,111, 95,
+147,174, 97, 24,230,147, 1, 3, 6,136, 8,130,128, 70,163,134, 84,106, 1, 75, 75, 43, 88, 91,219,192,207,175, 17,210,210,210,
+208,167, 79, 31,125, 92, 92,220,102,133, 66, 97,118, 29, 45, 40, 40, 24,212,190,125,251,217, 83,167, 78, 5, 77,211, 24, 52,104,
+ 16,146,147,147,215,190,120,241,226,160,187,187,251,232, 79, 62,249, 68,238,232,232,136,217,179,103, 91, 0,248,134,127,119,241,
+224,193,131,199,127, 2, 47,251,104,189,106,209,170,110, 76,212,213,213,181, 19, 65, 16,139, 52, 26,141,184,116, 72,134, 32, 8,
+177, 92, 46, 63,169,209,104, 86, 40, 20, 10,179,156,226,242,243,243,149,207,159, 63, 63,121,251,246,237,225, 67,135, 14,197,165,
+ 75,151,198, 2,192,208,161, 67,113,251,246,109, 60,127,254,252,100,126,126,190,242, 77,228,220,195,195,163, 95,151, 46, 93,134,
+182,105,211, 6, 65, 65, 65, 96, 24,230,150, 57,215,151,159, 97,136, 74,102, 29,150, 30, 51,137,140,162, 64, 16, 4,104,154, 6,
+ 0,100,103,101, 33, 54, 38, 6,185,121,121,208,105,181, 80,169,213,140, 95,221,186,154, 2,189, 94, 72, 0,230,142,125, 37,134,
+222,191,147,164, 86,169,156, 29,237, 29, 52, 50,153, 4,249,202, 2,209,131,251,119,138, 0,196,153,200,161,231, 56,174,203,185,
+115,231,150, 80, 20, 53,194,202,202, 10,211,166, 77,163,186,118,237, 10,145, 72, 4,157, 78,135,252,252,124,236,221,187, 55,139,
+ 97,152,122, 37,215, 88,201,100,178,221, 20, 69,165, 20, 22, 22, 46,170,241, 15,244,250,254,129,129,129, 2,189, 94,143,239,190,
+251, 14, 75,151, 46, 69,223,190,125, 5,247,239,223,239, 15, 96,223,155,170,241, 44,203,162, 87,175, 94,229,157,225,163, 76,185,
+ 78, 40, 20, 6, 52,104,208, 0, 89, 89, 89,200,202,202,130, 92, 46,135,187,187, 59, 92, 93, 93,177,118,237, 90,110,253,250,245,
+231, 13, 6,195,230,236,236,236,140, 90,212,197, 73, 99,199,142,157, 52,124,248,112, 20, 21, 21,225,246,237,219,232,208,161, 3,
+ 86,175, 94,237,118,237,218,181, 47,219,180,105, 3,161, 80,136,144,144, 16,208, 52,157,204,191,183,120,240,224,241,255, 13,255,
+ 81,255,172,106, 81,173, 69,203,203,203,203,142, 97,152,175, 6, 12, 24,208,107,240,224,193,232,211,167, 79,133,223,247,237,219,
+103,125,244,232,209, 21, 27, 54,108,232,107, 48, 24, 86,154, 51,212,199,178,236,241,125,251,246,245,127,239,189,247,100,221,186,
+117,243, 5, 0,137, 68,162,223,183,111,159,154,101,217,227,181,200, 75,105,112,199, 12, 0,112,119,119,111, 46, 16, 8,134,246,
+235,215,175,249,248,241,227, 17, 17, 17,129,189,123,247, 62,243,243,243,187,145,145, 97, 86, 27,153, 80,195,172,195, 21, 53, 89,
+183, 40,177, 56, 39, 63, 61,221,206,202,219, 91,104,111,109,173, 8, 10, 10,242,234,217,179, 39,145,156,156,140,188,188, 60,104,
+181, 90,220,191,127,159, 21, 0,137, 2,123,123, 34,241,246,109,130, 18,139,115, 80,113, 38, 95,141,240,114,179,111,184,120,254,
+148, 58, 90,157,182,105, 65, 65, 1, 45, 16, 10,133,158,174,118,201, 49,113,102,141,196,233,100, 50, 89,107, 0, 2,150,101,213,
+ 14, 14, 14,178,139, 23, 47, 66, 44, 22,131, 32, 8, 52,107,214, 12, 82,169, 84,196,113, 92, 18, 0, 88, 91, 91,139,183,109,219,
+102, 59,122,244,232,235, 53, 17,183,106,213, 74, 40,145, 72,222,247,243,243,195,237,219,183, 17, 30, 30,158,120,251,246,109,159,
+ 86,173, 90,193,219,219,251,125, 55, 55,183,195, 15, 31, 62, 52,190,137,138, 93, 60, 99,213,124,103,120,134, 97, 88,130, 32, 64,
+146, 36, 88,150, 69, 86, 86, 22,234,213,171,135, 77,155, 54, 97,221,186,117,223, 41, 20,138, 83,181, 73,143,191,191,191,168, 94,
+189,122, 99,135, 15, 31,142,248,248,120,172, 88,177, 34, 91,161, 80, 92,185,112,225,194, 7, 83,167, 78,165, 58,116,232,128,156,
+156, 28,252,254,251,239,244,131, 7, 15,126, 75, 79, 79,223,195,191,114,121,240,224,193,227, 45, 22, 90, 94, 94, 94,195, 69, 34,
+209,236,145, 35, 71, 82,141, 26, 53, 66, 70, 70, 6,108,108,108,140, 4, 65, 8, 1,192,206,206,206,104, 97, 97,129, 41, 83,166,
+160, 69,139, 22,157,230,206,157,219, 65, 32, 16,108, 74, 75, 75,219,109,202, 31,103,102,102,170, 73,146, 60, 50,109,218,180,149,
+143, 30, 61,172, 7, 0,247,238,221,123,158,150,150, 54, 63, 51, 51, 83,109,102, 62, 74,131, 98, 18, 18,137,244,110,195,134, 13,
+ 95,180,110,221,218,102,240,224,193,144,203,229, 8, 13, 13,197,170, 85,171,158,234,245,250, 37, 87,175, 94,165,255,238,155, 76,
+235,116,233, 15, 78,156,176,238,250,209, 71, 54, 51, 6, 12, 88,243,217,180,105, 63, 45, 94,188, 88,208,168, 81, 35, 66,173, 86,
+227,238,221,187,220,209,163, 71,141,191,127,251,237, 58, 88, 90, 10,111, 31, 61, 42,214,235,245,137,102, 90, 75,186,116,236,220,
+169,209,154,159, 54, 64,171, 41,194,221, 91,103,144,151,151,133,109,219,143, 53,242,240,224,186,164,166,166, 94, 53,149,139, 32,
+ 8,191, 75,151, 46, 57,115, 28, 7,177, 88,140,229,203,151,195,221,221, 29, 54, 54, 54, 40, 44, 44,196,151, 95,126,105, 59,115,
+230, 76, 91, 0,136,136,136, 40, 11,207, 80, 19,210,210,210,218, 79,153, 50,197,154,166,105,156, 63,127, 94, 79, 16,196,162,224,
+224,224, 95,155, 53,107, 38,238,212,169,147,245,158, 61,123, 58, 0, 8,121, 83, 66,171,150,215, 61,187,120,241, 98,155, 17, 35,
+ 70,112, 66,161,144,200,207,207,135,157,157, 29, 54,109,218,164, 82, 40, 20,103,106, 93, 7,104, 90, 44,147,201,196, 28,199,225,
+200,145, 35, 72, 76, 76,252, 36, 39, 39, 39,157, 97,152, 99, 95,125,245,213,156, 70,141, 26,213,141,137,137, 73, 44, 44, 44, 92,
+157,153,153,249,130,127, 53,241,224,193,131,199,127, 10,165, 78,240,165,179, 15,207,160,120, 56,177,106,161,197, 48,204,148, 11,
+ 23, 46, 80, 44,203, 98,251,246,237,120,240,224, 1, 39,147,201, 22,201,100,178,141, 22, 22, 22,140, 70,163,153, 60,113,226,196,
+209, 75,151, 46, 37, 59,117,234,132,219,183,111,147,245,234,213, 27, 11,160,188,208,234,137,106, 98,109, 20, 20, 20,220,207,200,
+ 72,175, 87, 46, 64,101, 61,137, 68,122,191,134,204,188,204,249,114, 80,204,118,203,151, 47, 87,185,185,185,233,195,195,195,177,
+117,235, 86,246,193,131, 7, 87,196, 98,241, 54,133, 66,161, 51,145,243, 77,160,140, 83, 76,211,161,127,204,153,227,255,206,160,
+ 65,236,167,179,103, 23,137, 44, 44,190, 88,179, 97,195,220,252,194, 66,119, 16, 4,231,104,107,155,184,125,249,242, 21,125,223,
+127,191, 40,226,234, 85,233,163, 75,151,132,114,163,241,177, 57,233, 76, 77, 77,189, 26, 18,114, 29,187,118,252, 4,131, 65, 7,
+ 69,106,177, 78,203,206, 41, 64, 13, 34,235, 21, 78,154,166, 11, 62,248,224, 3, 17, 0,139, 49, 99,198,136, 51, 51, 51, 81,191,
+126,125, 0,128, 82,169,196,153, 51,103,208,184,113, 99, 0, 64, 88, 88, 88,217,231,154,210,105,105,105,249,126,135, 14, 29,144,
+152,152,136,136,136,136,203, 10,133, 34, 7,192,229,228,228,228,254,109,218,180,193,241,227,199, 7, 86, 35,180,204, 42, 35, 19,
+133,214, 43,156, 22, 22, 22,243,143, 29, 59,246,201,173, 91,183, 70,204,153, 51, 71,216,163, 71, 15, 0, 64, 97, 97,161, 26, 0,
+ 83, 27,206,242,105, 50, 26,141, 96, 89, 22, 14, 14, 14,170,156,156, 28,100,102,102,190,200,204,204,156, 22, 23, 23, 87, 43,206,
+ 55, 81, 63,121, 78,158,147,231,228, 57,255, 37,156,111, 3, 76,143, 12,207,113, 28,205,178, 44, 66, 66, 66,112,236,216, 49,198,
+ 96, 48, 76, 82, 40, 20, 97,229, 78,217, 16, 26, 26,122,233,131, 15, 62,216, 29, 19, 19, 67, 69, 70, 70,130,227, 56,198,156,212,
+104,181, 90, 35, 65,188,122,236,117,115,185,107,215, 46,164,167,167, 27,146,147,147,131,105,154, 62,254,154,179, 23, 95,123,214,
+225, 46, 64,247,161, 94, 31,188,180, 99,199, 94, 75, 46, 93,146,124,250,245,215,186,113,227,199,127,197,232,245, 70, 74, 36, 98,
+197,150,150, 36, 35,145, 8, 35,174, 94,149,174,159, 58,213, 65,163,211,157,223,107,134,131,121,169, 69,171,107,215, 78, 24,247,
+233, 44,104,202, 89,180,110,223,143,133,206, 0,179, 44, 90, 58,157,174,169, 66,161,128, 84, 42, 77, 2,224,250,241,199, 31,131,
+101, 89,104, 52, 26, 20, 22, 22, 34, 45, 45,173, 96,252,248,241, 76,137,120, 18, 12, 29, 58,212,198, 20, 94, 95, 95, 95,119,161,
+ 80,136,243,231,207, 67, 40, 20,158, 1, 0,161, 80,120,230,210,165, 75,253, 71,141, 26, 5, 15, 15, 15,223,248,248,120, 2, 53,
+248,167, 57, 55, 29,116,136, 3, 26,130, 64,131, 98, 19, 28, 26,200,155, 14,122, 66, 0, 79, 75,162,198, 71,181,106,213, 10, 48,
+209, 47,171, 60, 74, 38,119,172, 51, 26,141,135,231,206,157, 59,173, 93,187,118,189,151, 46, 93, 74, 0,160,222,196, 19, 72,211,
+244,107,133,158,224,193,131, 7, 15, 30,255,106,171,214, 43,168, 82,104, 17, 4,177,189, 75,151, 46,147, 0, 80, 4, 65,108, 77,
+ 75, 75, 11,123,249, 28,133, 66, 17,235,238,238,254, 99,221,186,117, 39, 3,224, 8,130,216,110,102,162, 50, 56, 14,171, 72,146,
+152, 91, 44,238,106, 21,160,178,116,169,147,185, 0, 8,146,164,118, 63,124,248,240,235,164,164,164, 44, 19, 45, 16,213,226, 77,
+204, 58, 4,128,253,192,139,145,137,137, 23,102, 7, 4,244,236, 59,117, 42,154,247,237,107,227,238,227,195,104, 12, 6, 54,236,
+198, 13,226,214,145, 35,162, 71,151, 46, 9, 53, 58,221,249,227, 64,146,185,233, 76, 77, 77,189,250,231,149,171, 23,135, 13,237,
+223,219,183,174,123,177,104,120,145,134,236,220,130,139,230,136,172,151, 68,239,160, 77,155, 54,157, 18,137, 68,130,242, 75,217,
+ 24, 12,134, 92,157, 78,215, 20, 0,242,242,242,220,183,111,223,126,128, 36,201,196,154,248, 34, 35, 35, 79, 46, 89,178,100,104,
+ 66, 66,194,197,228,228,228, 4, 0, 72, 74, 74, 74, 48, 26,141,187, 21, 10,197,208,196,196,196,163, 48, 97, 18, 0, 7, 52,140,
+184,113,184, 25, 0, 52,237, 56, 28, 17, 55, 14, 75, 1, 52,107,218,113, 56, 0,160,182,107, 25,150, 71, 73,104,133, 69,183,111,
+223,222,215,187,119,239,137,120,141,152, 94, 0,160,215,235,141, 26,141,134,102, 24, 70, 96, 48, 24, 56,189, 94,111,228,223, 73,
+ 60,120,240,224, 97, 58, 56,142,107, 3, 64, 94,242,181,212,128, 34,127,233,179, 30, 37,203, 5,150,190,126, 75,190,103, 17, 4,
+113,191, 28, 71,217,113, 19,174, 5,128,108, 0, 79, 8,130,168,202, 8,178,189,170,239, 85, 10,173,180,180,180,163, 48, 97,209,
+104, 83,207,171, 6, 11, 74,214,137, 3,106,191,182, 91, 25, 7,195, 48, 25, 73, 73, 73,175, 93,160, 36, 73,190, 24, 56,112,160,
+ 89,231,215,116,206, 65, 32,241,115,157,110, 79,208, 47,191,180, 60,191,117,171, 7, 67,211,142, 4,192, 81, 98,113,142, 94,175,
+ 79,144, 27,141,143,205,181,100, 85,176,198, 60, 79,237, 19,255, 60, 21, 13, 26, 52,224,158, 61,123, 86,108,235,121, 61, 60, 86,
+169, 84, 94, 53, 85, 1,181, 90,221,201, 68, 49,184, 63, 53, 53,117,127, 37,130,253,128, 66,161, 56, 96,106,162,202, 22,149, 6,
+ 72,150, 96,135, 53,237, 56,252, 8, 0,182,116, 81,233, 55,137,244,244,244, 24,148,196,121,123, 29, 36, 38, 38,234, 8,130,248,
+ 99,213,170, 85, 99, 30, 61,122,116, 48, 45, 45, 77,199,191, 54,121,240,224,193,195, 60,145, 69, 16, 68, 80,201,247,192, 18,163,
+ 80,208,203,159, 75,207, 41, 61,175,252, 57,165, 28, 47, 31,175,238, 90, 0,152, 63,127,254,215, 43, 86,172,144, 1, 48,117, 49,
+230, 90, 47, 42,253, 87, 33,227, 95,194, 81, 94, 20,236,248, 43, 50,250, 11,160, 7, 77,223, 1, 93,206, 39,223,248,102,141, 27,
+207,158, 61, 35,222,230, 7,174,116, 81,233,114, 8,248, 47,164, 59, 33, 33, 97,147,183,183,247,182,180,180, 52, 26, 60,120,240,
+224,193,195, 28,200, 43, 19, 70, 85,136,178,192,234,126,175,208,113,175,228,188,202,190, 19, 4, 17,180, 98,197,138, 64, 51,210,
+ 91,102,209, 34,249,178,227,193,227,239,195, 63, 49,235,149, 7, 15, 30, 60,120, 84,142,151,173, 88,165,226,235,229,239,243,231,
+207,255, 26,213,143, 56,185,161,216,138,229, 86,242,189,204, 95,139, 64,241,204,129,202, 96,206,108,130,158,181,200, 95, 48,207,
+201,115,242,156, 60, 39,207,201,115,242,156,255,239, 56,107,226, 14,174, 68, 16, 13,168,106,168,175,186, 97,196,151, 63,215,116,
+109, 77,231, 18, 4, 81, 85,152,159,210,161,194,178, 61,199,113,219,241, 55,160, 39,207,201,115,242,156, 60, 39,207,201,115,242,
+156, 60,231,235,128,227,184, 54, 28,199, 13, 64,241,132, 41,142,227,184, 1, 28,199,245,157, 63,127,254,130,210, 99,243,231,207,
+ 95,192,113, 92,143,210,243, 74,206, 41,187,166,244,216,203,251,151,143, 85,119,110, 53, 73,156,244,210,231, 73,165,147,200,254,
+ 45, 62, 90, 60,120,240,224,193,131, 7, 15, 30,149,162,116,198, 96, 57,107, 83, 22,128,176, 21, 43, 86,228,149,243,157,202, 2,
+240, 24, 64,139,146,243,178, 74, 68, 90,121,223, 42,125,201,119,125, 37,231,232, 77, 57,183, 10,108,175,226, 51, 47,180,170, 66,
+ 11, 87,242, 91,111, 79,231,214, 37, 5, 0,142,101, 1, 0,108, 73, 12, 36,174, 52, 24, 18,203,130,227, 56,164,101,230,135,134,
+101, 98,113,109,255,207,207, 29, 14,206, 82,233, 58,150,227, 58,150, 28,186, 90,144,163,155, 21,161, 68,190,169, 28,141, 93,224,
+ 47, 37,241, 21,203,161, 57, 0,144, 4,158,104, 89,252, 24,157, 97,126, 60,169,202,234,121, 83, 57, 38,137, 45,100, 35,109,237,
+236, 27,228,229,101, 63, 53,104,117,135, 35,179,176, 13,230,175,203, 8, 95,123,188,203,114,248, 26, 0, 41, 36,177,246,105,174,
+201, 51, 57,120,240,224,193,227,117,173, 35,175, 21, 23,143, 32, 8,166, 18, 78,226, 53, 57,249, 0,123, 38,136,173, 74, 14,223,
+171,228,216,253,127, 83,186,205, 18, 90, 77,228,152, 10, 2,203, 0,112,224,240, 77,100, 22,182,152,117,189, 27,122, 74, 41,106,
+ 39, 0, 74,107, 96,102,115, 44,174, 85,122, 51, 73,116,150,138,168,181, 0, 88, 45,195, 76,136, 84,152,238, 47,214,212, 3,125,
+ 5, 44,249, 7,203,113, 66,134,229,118,131, 67,144,149, 8, 55,239,164, 66,107, 78, 90,189, 61,157, 91,159,184,167,232,125,101,
+203, 12,180,107, 94, 31, 28, 67, 3,172, 17,178, 78, 95,225,242,207, 31,163,157,191, 55, 56,214, 8,176, 52,172,250,173, 65,191,
+ 0, 91, 46, 44,179,118,235, 96,251,185,195,193,199,201, 57,124,199,142,157,174,238,190, 77, 8,150, 54, 32,230,222,197,209, 51,
+231, 46,233,222, 20, 5, 1,166,136,173,230,110,248,212,187, 78,163,175,102, 45,251,137,114,115,247,178,100,141, 58, 58,253, 69,
+ 84,171, 13,171,151, 28, 21,145,137,107,159, 40,176,211,212,186,220, 68,142,201, 2,137,120,184,133,212,178,129, 90, 93,248,140,
+ 49, 24, 15,147, 66, 65,223, 31,215,172,107,217,181, 87,127, 43,166, 48,157, 52,178,104,114,232,224, 1,159, 95, 54,109,238, 31,
+174, 96,222, 7,192,154,147,103,150,195,220,216, 61,147,250, 11, 5, 20,225,255,201, 14, 10,160,107, 37,180,252,157,241, 33,193,
+161,198,240, 18, 28,129,235, 81,153,216, 95,155,255,104,236,140, 95, 9, 14,126, 32,112,132,224,112, 32, 50, 11,153,252, 43,143,
+ 7,143,183, 11, 36, 73, 94, 97, 89,182,219, 27, 22, 6,239,114, 28,119,135,191,187,255,191, 97,158, 69,139,192,119, 17,113,201,
+246, 96, 12,104,234,231,251, 45, 96,158,208,146, 82,212,238,251, 79, 51, 92, 65, 27,176,227,251,105, 7,245, 70,128, 54, 26,192,
+208, 70, 48,180, 17, 52,109, 0, 99, 52,130, 51,234,176,228,183, 43,128,190, 16,173, 3, 26,238, 6, 24, 55, 83,255, 67,200,145,
+127,132,222,184,232, 64,232, 11,176,127,203,138,207,147,179,138, 62, 15,126,146,150,221,196, 89,179, 32, 50, 19,191,155, 35, 8,
+174,108,157,129,189,199,207,164,172,255, 85, 21,205,114, 28, 28,108, 44, 26,141, 14,140,240,218,115,242, 74,242,186,221,218,104,
+ 0,176,181, 20, 55, 26,251,228,169,247,235, 20,130,179, 84,186,110,219,230, 95, 92,221, 28, 45, 8,250,214, 74,208, 12, 3, 47,
+159, 1,212,130,233,163,221,190,251,121,231,207, 80,234,198, 85,119,125, 35,103, 52,169, 83,215,127,246,238, 51,183,188, 85,202,
+ 76,253,197,125, 95,199, 65, 7,163,171,135,191,240,219, 21, 63, 81, 11,231,205,248, 82,207,164,220,141,201, 68,100, 77,239, 26,
+127,103,156, 92,177,114, 77,243,238,253, 2,173,216,162, 44, 74,171, 42,242,219,241,219,206,101,141,155,183,149,117, 10,240, 20,
+101, 30,158, 66,104, 10,115, 97, 32,165,146,238, 77,123,218,104,198,140, 50,238,216,181,119,122,100, 38, 54,152,147,103,166,220,
+176, 53,203,214, 62,234, 58,193,161,211,163, 59, 87, 38, 51,105,247,193, 49, 70,128, 49,148,237,193, 24,193,177,197,251,118, 83,
+126, 3, 80, 59,161, 69,114,232, 29,124,227,190, 91, 70,186,162,205,207,107,126, 88,192,221,191,127, 14, 12,254,136,202,197, 85,
+115, 5, 38, 15, 30, 60,254,213, 22, 19,154,227, 56,193, 27,230,236,207,113,220,217,215,164,249, 10,192,167, 37,159,119, 2,248,
+241, 13, 36,205, 19,128,107,201,231,116, 0, 41,124, 13,120, 45,148,197,205,122,249,187,185, 21, 74, 10,142, 5,142, 12, 6, 0,
+ 11,115, 83,193, 1, 82, 16, 20, 96, 84, 97, 80,191, 94,112,114,118, 5,140,106,192,160, 6,140, 26,192,168, 2,140, 26,100, 43,
+ 18, 1,131, 10,136, 63, 7,154,227, 36,102,103, 87, 87, 0,196, 30, 70,143, 86,222,144,219, 74, 49, 99, 80, 19,167,237,231, 99,
+119,238,188, 24,211, 51, 50, 19, 35, 77, 74, 43,199,161, 93,179, 6, 88,191, 83, 21,125,250, 97, 86, 31, 0,232,223,194,241,124,
+187, 38, 62, 94,235,118,107,163,207,134,229,245, 5,128,190, 77,109,206,181,109,228,230,205,162,246, 86, 95,150,227, 58,185,215,
+105, 64, 48,143,182,129, 85,166, 64,169,212, 32,229,197, 30,216,123,188, 67, 50, 44,186,212,116,189, 5,133,249, 95, 44, 92, 37,
+ 84, 43, 51,244,172, 33,139,145, 83,121,148, 64,204, 18, 72,189,170, 43, 98,243,153, 89,147, 62,166,103, 47,254,126, 62,128,209,
+213,241, 52,113,198,244,181,107,215, 53,235,208,186,177,115,250,209, 25, 68, 81, 94, 6,104, 74, 38, 25,244, 94, 7,216, 53,108,
+194,102,132,172, 37,196,190, 61, 97,231,232,139,212, 91,251,144,112,231, 24,209,177,213, 80,201,239,251, 69, 99, 0, 67,165, 66,
+171,129, 19, 58,246,233,220,246,160,175,183,187, 27,199,177, 96, 89, 14, 28,203,160, 72,107,196,130, 67,241, 96, 24, 6, 31,244,
+233,216,195, 82, 76,112, 44,203,130,227, 88, 36,167,231,168,255,188, 27,221, 35, 62, 15,119, 77,177, 84,181,120,183, 91,199, 39,
+161,119, 26, 27, 99, 79,163,245,232, 21,209, 4,112,163, 92,157,235,248,240,194,239,141,129,223,106,175,229, 8, 48, 9,231, 87,
+194,187,243, 36,106,219,254,243,242,130,172,212,177, 71,247,108, 30,182,101,219,182,189,209,153,152,194,191, 95,120,240,120, 59,
+192,113,220, 27, 23, 91,137,137,137,105,175, 35,182, 60, 60, 60, 58,167,166,166,174, 46,245, 86, 33, 8, 98,117,157, 58,117,150,
+252,175,163, 90,161,175, 87,192, 48,204,232,212,212,212,107,213,113, 14, 24, 48,192,253,204,153, 51,117,203,113,214, 5, 80,183,
+178,115,237,236,236,152,246,237,219, 39,156, 57,115, 38,141,175, 33,181, 18, 92,102, 11,173,232,164,195, 51, 90,233, 20, 69, 0,
+ 16,109,194,249, 21,134,252,180, 70,102,229,174,101, 31,175,108, 90,199, 1,133, 42, 61, 46, 62, 72, 0,195, 24,193,208,116,137,
+101,139, 6, 67, 27,209,167,133, 19,218,107,167, 96, 67, 80, 12,104,134, 93, 81, 29,231,203, 48,112,236,135, 45,123,142, 56,196,
+178,156, 88, 34, 36, 11,252,188, 28,157,103,127,208,130,156, 49,168, 41, 52, 6,122,196,190,144,184, 63,163, 50,177,195, 36, 78,
+246,213,144, 71, 92,101,199, 24,186,198,188, 87, 99,141,106,215,179,107, 39, 27, 78, 87, 0, 99,118, 60, 10,213, 70,196,231, 24,
+145,174,205,135,132, 80,152,196,201,114,104,238,233,225, 38,187,121,112,222, 11, 71, 74, 41,112,166,104,145,152,164,193,176, 28,
+197,229, 71,234, 28, 26,247, 18,150,250,109, 85,151, 78, 11,153,245,199,157,123, 15,176, 77,218, 55,137,176,240,235, 3,231, 86,
+ 94,120,113,109, 23, 50, 31, 4, 33, 39, 45,129,176,209,230,195,197,177, 62,250,141, 30,137, 31, 71,182, 65,161,178, 16,148, 34,
+206, 86, 44,148,216, 1,134, 74, 57, 57, 6,163,215,174,250,222, 77, 64,145,197,247,179,116, 99,140,208,232,116, 0, 67, 67, 42,
+ 96, 65,112,165,191, 25,193, 24, 13,178,230, 67,231, 77, 3,152,187, 53,229, 61, 42, 19,251,155,200,209, 9,172,177, 49,103,212,
+128, 0,110, 68,102,253, 79,252,248, 59,227,195,119,250,140,239,196, 17,184, 94,155, 50, 10,112, 68, 96,235,186, 86,150,150,202,
+104,164, 28,249, 28,113,144,114, 46, 29, 62,197,135,159, 76,151,109,223,190,125, 32,192, 77, 69, 69, 31,181,191, 98,145, 85,158,
+147,231,252, 79,114,218,216,216,212,171, 83,167,206, 18,163,209,216, 89, 36, 18,185, 24, 12, 6,176, 44,155, 46, 22,139,175, 39,
+ 36, 36, 44, 87, 42,149,207,255,109,121,127,242,228,137, 57, 98,171, 70, 78,161, 80,136,152,152,152,103,102,136,173,224,151,174,
+255,227,198,141, 27, 56,116,232, 16, 0, 32, 54, 54, 22, 13, 27, 54,180,172,236,194, 23, 47, 94, 88,118,237,218,245, 15, 0, 94,
+213,113,134,133,133,213, 59,125,250, 52,142, 28, 57, 2, 0,136,137,137,129,159,159, 95,165,137,185,113,227, 6,245,209, 71, 31,
+213, 3,144,246, 55,148,209,219, 32,178,202,239,255, 39,180,130,130,130,184,192,192, 64,226,229,207,149, 32,222,219, 94,220, 10,
+ 90, 6, 0,226,205, 77, 65, 84, 6, 86,173,223,115,161,239,229, 35,155, 58, 75, 69, 36,150,238,152,157,156,149, 91,248,174,128,
+ 40, 30,126,161, 57,144,246, 86,226,219, 43,198,182,240,206, 43,210,226,212,189,212,107,145,153,230,153, 72, 35, 21,184, 4,176,
+118,197,223, 24,104, 53,153,126, 99,127,188,116,224,192,252,190,205,103, 13,106,142,147,183, 18,102, 1,116,141, 81,223, 57,150,
+ 5,199,210,101,206,239, 37, 93, 7,128,173,184, 40, 48, 11,174,248, 24,107,158, 69,171, 11, 32,200,115, 70, 63,107,153,120,227,
+228,201, 19,109,140, 89, 79,145,171, 23, 33, 57, 79,139,116,141, 16, 69, 2,103,164, 70,135, 49, 36,129, 75, 53,154, 92, 8, 40,
+ 57, 90,107,103, 47,182, 34, 3,122, 77,243, 80,158,255, 58, 79, 76,208,148,205,144,239,236,178, 47,255,148, 64,171,178, 84, 4,
+129, 26,195,207,219,218,218, 53,212,230, 36, 80, 5,121,217,176,115,109,138,190, 35, 2,241,205,128, 38, 40, 84,170,144,149,123,
+155,107,224,102, 67, 36, 94,223,139,133,253,252,145,147,161,128,206, 8, 16, 42, 93,174, 86,175, 45,170,242, 62,146,216, 54,115,
+206,220, 15,125,220,228,150,165,147, 10, 56,150, 65, 11,127, 95,244,234,220, 14,151,110,220,196,253,176, 88,176, 37,147, 10, 56,
+150, 69, 74,102, 94,134,214,192,236, 50,235,134, 50, 52, 56,163,182, 82, 33,134, 90, 12, 25, 6, 56, 67,198, 0,139,219,212,179,
+158, 48, 63,208,199,218, 82, 66, 64,107,100,160,213, 27, 81,120,115, 35, 28,235, 52,131, 76, 42, 37, 90, 65, 35,120, 8,240,235,
+ 22,242,224, 81, 14,195,134, 13,147,102,100,100,132,120,121,121, 53,233,213,171,151,172, 83,167, 78, 80,169, 84,184,120,241, 34,
+ 84, 42,149,143,151,151,151,207,197,139, 23,135, 38, 37, 37, 69,122,122,122,118, 61,114,228,136,201, 62,180, 37, 2,136, 42,123,
+ 5, 3, 52, 65, 16, 40, 57, 70,148, 28,171,245, 58,183, 98,177, 24,137,137,137,111,220,178,149,154,154,250,172, 54,150,173,162,
+162, 34,145,135,135, 7,228,114, 57, 24,134,129, 74,165,194,137, 19, 39, 80, 80, 80, 0,150,101, 97, 97, 97,129,239,214,238, 64,
+244,195, 16,220,189,123, 23, 5, 5, 5,162,154, 56, 83, 82, 82,136, 22, 45, 90, 64,167,211,129,166,105,104,181, 90, 4, 7, 7,
+151,125, 23, 8, 4,152,251,237,207,136,125, 16,130, 71,143, 30, 33, 37, 37,229,111, 89,109,196, 12, 45,242,111, 68,149, 49,179,
+254,246, 89,135, 12, 67, 47,216,190,251,192,237, 5, 83, 70, 98,250,168,158, 94,203, 55, 29,235, 25,149,141,221, 0,224,239,132,
+177, 99,186, 53,240,182,147, 9,241,205,190, 7, 0,199, 45,120,221,255,139,200, 69,108, 19, 23,118,214,241,187,137, 33, 95,143,
+108, 5, 95, 55,155,134,121,226, 92,113,124,188, 9,107, 10,178, 52,236,173, 36,141,250,183,112, 60, 15,150,133,157,181,164, 49,
+ 24, 26,118, 86,146, 70,125,155,218,156, 3, 0, 27,153,176,113,101,150,175,170,208,218, 75, 56, 73, 38, 17, 76,178,180,182,243,
+ 30, 55,176,151, 69,255,129, 67, 45,172,132, 52,114,238, 94,132, 82,232, 9,163,131, 15,116,198, 92,164, 60,143, 99, 46,223,137,
+ 74,205, 46,212,205,174, 49,153, 28,174,165, 62,143,145,215,107,222,203, 62, 59,104, 97,102,189,241,251,234,146, 96,201,194,189,
+ 67, 50, 44,157,219, 90,220,139,127, 94,196,114,149, 90,116, 42, 64, 89, 80,144, 96,100,224,166, 97, 4,214,113, 87,126,199,252,
+126,205,144,151,155, 9,173,129, 70,129,134, 54,184,218, 73, 37,186,231,225,208, 25,104,232,141, 44,132,118, 30,184,120, 59, 44,
+155, 53, 26,207, 85,197, 25,159,131, 71,241, 39, 30, 89,149, 63,230,235,132, 22,243,108, 44, 30,193,168, 65, 98, 74, 26,118,159,
+185,221, 42, 62, 7,143, 94,167,156, 57,150, 46, 30,126, 46,103,201, 34, 56,116,170,141, 19,124, 99,103,180, 21, 73, 69,191,172,
+158,245, 81,147,247,252, 28, 36,108,202,109, 16,172, 1,150,140, 0, 26, 49, 3, 91, 47, 95,176,250, 66, 78,173,213,230, 71, 0,
+124,164,119, 30, 60,202,161, 81,163, 70,174,169,169,169, 17,115,230,204,113, 24, 50,100, 8,142, 31, 63, 14,165, 82,137, 93,187,
+118, 97,221,186,117, 88,182,108, 25,140, 70, 35,182,111,223, 46, 59,122,244,104,219,205,155, 55,167,120,123,123, 55, 77, 74, 74,
+ 74,175, 65, 96, 17, 0, 36, 0,132, 37,109, 23, 1,128, 61,123,246, 44,250,247,239,143,179,103,207,178, 37,199, 24, 20,119,126,
+106,181,158,168, 88, 44,134, 88, 44, 70, 65, 65,193, 27, 17, 91, 66,161, 16, 86, 86, 86, 16,139,197, 40, 44, 44, 52, 91,108,209,
+ 52, 77,165,164,164,160,160,160, 0,189, 6, 14,196,207, 43, 86,160, 91,183,110,232,213,171, 23, 56,142, 67,112,112, 48,122,118,
+ 8,192,200,247,187, 34, 42, 42, 10, 52, 77,155,148,222,244,244,116,100,100,100,160,239,192,129,216,177,121, 51,218,181,107,135,
+ 70,141, 26,129,166,105,132,132,132, 96, 88,159, 14,144, 14,238,137,216,216, 88,190, 82,155,110,205,122, 35, 62, 90,175,141,136,
+ 44,220, 97, 79, 94, 13, 26,213,167,109,224,192,142, 77,176,227,224,229,239, 33, 87, 30, 0, 0, 71,157,228,187,143,187,249, 34,
+ 50, 41, 15,151, 31,165, 5, 69,101,227,141,204,214, 96, 25, 56, 57,218,200, 0, 74, 12,141,129,165,109,226,107,118, 96,102, 57,
+ 14,178,206,243, 48,102, 96,164, 87,187, 38, 94, 94,165,179, 14,173,250,255,132,177, 97,207,188,219, 52,114,245, 6, 99, 4, 24,
+ 35,108, 70,238, 3,190,181,172, 49, 29, 29,234,138, 47,205,156, 49,163,125,191,193, 35, 44,196, 50, 91, 48,202,100, 24,211,195,
+144,243,244, 26, 84,178,134, 72, 79,140,199,161, 11,119, 11,158,166,228, 40, 73, 18, 23, 51, 10,116, 95,197,231,161,168, 38, 94,
+173, 17, 43,150, 44,156, 61,224,208,129,131,214, 18,223,142, 68,220,198,254, 5, 98, 1, 45,145,215,125,135, 84, 75,157,184, 31,
+118, 29,180, 81,233,177,178, 38, 30,181, 74,121, 44,248,226,249,145, 13,234,117,180,126,113,255, 12, 52, 90, 29,116, 70,160,105,
+219,174, 96, 24, 78, 76,144, 4,107, 67, 81, 68,102, 78, 30, 8, 35,147,113,253,241, 11,197,141,199,241,148,206, 26, 43,171,141,
+ 46,242,178,186, 39,168, 47, 6,118,109, 9, 24, 53,120,191,115, 51,252,188,247,242,231, 0, 51,254,245, 10,185,216,162,197, 1,
+ 29,155,200,177,149,227,208,241,193,137,117,141, 91, 15,158, 9,115, 44, 90, 77,157,208,207,191,158,251,239, 63,127, 55,207,193,
+209,179, 33, 69,176, 70,112,174,205, 1,101, 10, 71,164,220,134,173, 71, 59, 48,238, 29,176,125,195,154, 34,150,229, 14, 0,224,
+167,100,243,224, 81,254,125,164,213, 30, 91,181,106,149, 67, 96, 96, 96,169, 69, 6,183,111,223,198,206,157, 59, 97,105, 89,241,
+ 61,217,191,127,127,112, 28,231,176,116,233,210, 99, 0,222,171,138,179,125,251,246, 3, 31, 61,122,148,214,178,101,203,248, 18,
+177, 37, 2, 64,134,135,135,147,201,201,201,132,189,189, 61,231,238,238,110, 76, 75, 75, 99, 1, 48,159,124,242, 9,117,248,240,
+225, 6, 42,149,234,106,109,133,150, 88, 44,126, 35, 62, 91, 66,161, 16, 4, 65, 64, 44, 22, 67, 36, 18,129,227, 56,179,196, 22,
+195, 48,130,179,103,207,226,193,131, 7, 88,214,178, 37,102,121,120,192,193,193, 1, 33, 33, 33,224, 56, 14,150,150,150,200,205,
+205,197,129, 3, 7,208,189,123,119,208, 52, 45, 50,133,247,200,145, 35, 8, 13, 13,197,183,173, 91, 99,150,173, 45,172,172,172,
+ 16, 28, 92, 60, 26, 40,145, 72,144,152,152,136,224,224, 96,116,237,218,149,175,212,175, 9,147, 43, 79, 23, 64,144, 75,192,213,
+160,215,128,163, 57,128,128,187,191, 63, 68, 81, 81, 21,157,115, 76, 1, 73, 98,225,134,221, 65, 3,126,154, 57,144,152, 52,168,
+149,251,242,223,175, 76, 5,128, 9, 31,248,121,200, 36, 2,172, 63, 25,201,145, 36, 22,190,137, 12,250,251, 67, 68,228, 96,106,
+175,118,141,144,150,175, 71, 92, 90,254,159, 81, 38, 14,245, 92,254,105, 12,246,156, 10, 73, 94,183, 71, 27,205,113, 28,236,172,
+ 36,141,198, 62,137,243,254,253,108,104,210,218, 67,218,104,142,229, 96, 39, 19, 54, 30, 31,213,161,198, 89,135,173,189,132,147,
+190,156, 61,187,195,160,241,115,164,116,244, 97,232,227, 46,128, 53,104,160, 52,136,144, 79,185, 34, 37, 41, 9, 63,108, 15, 74,
+ 86,170,244, 35, 35,178,204, 19,152, 79,115, 80, 36, 32,148, 67,126,248,230,235, 75, 43,190, 91,106,165,137, 15, 41,162, 8, 90,
+ 67,213,233, 34,248,110,217, 79, 68,161, 78, 63, 34, 62, 15,133, 53,241,232,172,177,114,213,218, 13, 3, 38,142, 30, 26,237,215,
+176,139, 35,147,246,220, 81,171, 84,102,238, 59, 31,234, 90,210, 83, 36, 0, 32, 46, 37, 7, 89, 5, 42,154,161,141, 87,173,133,
+ 88, 30,105,138,117,176, 4,245,156, 33, 15,236,216,244, 35,185,181, 8,154,162,124, 56, 91, 11,209,167, 93,253,143,140,247, 98,
+231, 61,207, 52, 71,174,189, 44,180,140,224,140, 26,220, 89,217,189, 49,199, 24, 27,131, 49,194,240,228, 15,243, 45, 99, 4,102,
+ 77,239,108,101, 99,175,127, 65, 66,101, 9, 88, 56,129,176,241, 1,108,235, 18, 66,255, 17, 72,139,143,160, 63,255,104,116,206,
+243,132,148, 95,157, 44,222,200,204, 31, 30, 60,222, 42, 36, 38, 38,126,188, 96,193,130, 27,237,218,181,115,113,114,114, 66,179,
+102,205,112,234,212, 41,204,153, 51,167,236,156,150, 45, 91,130,227, 56,228,230,230, 98,213,170, 85,233,105,105,105, 31, 87,219,
+ 65,143,136,136,222,179,103, 79,231, 38, 77,154, 24, 68, 34, 81, 62, 0, 73,126,126,190, 52, 55, 55,151,208,106,181, 96, 89,150,
+181,181,181,101,210,210,210,140, 35, 71,142,212,221,186,117,171,190, 74,165, 74,124, 29,139,150,151,151, 87,120, 78, 78, 78, 1,
+ 65, 16,175, 29,250,161, 84,100, 57, 57, 57,201,139,138,138, 88, 0,121,181, 9,253, 64,211, 52, 90,183,110,141, 11,215, 30,226,
+236,229, 91, 80,166,197, 96,234,196,143,209,172, 89, 51, 92,184,112,161,214,101,214,162, 69, 11,156, 15,190,129, 27, 15, 30, 35,
+ 49,246, 9, 62,159, 58, 17, 77,155, 54,197,249,243,231,249, 10,109, 58,206,160,162,111,214,153,151,133, 86,215,160,160,160,210,
+158,249, 43,242,181,177, 19, 90, 8,237,196,127, 44,237, 87,223, 95,216,107, 41, 8,161, 5, 14, 55, 60,223, 97,225, 15, 27,163,
+ 41,231,196,209,225,153, 53,207, 14,171,240,208,100, 34,130,187, 27,189,255,113, 84,227,143,222,111,231,133, 29,167,100,139, 1,
+ 96, 68,167,122,184,247, 52, 11,119, 99, 51,247, 71,102, 33,226,117,115, 29,224, 12, 25,147,141,253,171,190, 24,212,213,199,211,
+ 21, 59,143,223, 0, 65,224,152, 73, 13, 46,199,113,237,154,248, 96,221,158,151,103, 24,186,122,175, 61,164,141,190, 24, 81,216,
+ 15, 0,122, 53,150,157,107, 83,223,222,155, 43,239,184, 85, 9, 44,196,130,201,253,134,142,145,210,177,167,128,132, 96, 16,180,
+ 14, 26, 3, 11, 69,118, 33,212,182, 94, 8,185,253, 88, 83,160,213,207,140,204,170,157, 21, 47, 42, 27,241,162,251,143,147,138,
+ 84, 26, 55,153,188,190,150, 34, 89,182, 72,199,225, 94,100,130, 50, 50, 29, 49,166,112,196,199, 67,255,174, 7,221,105,235,238,
+ 67, 75,132, 34,241, 8,138, 0,225,108,103, 41,223,250,211,183,176,182,182, 2,171, 47, 2, 84, 89, 24,242,217, 15, 89,225,105,
+198,122, 0,208,208, 17, 86,157,234, 9,119, 11, 72, 34,229, 74,156, 97, 81, 77,255, 65, 24, 49,101,116,159,150, 66, 86,175,194,
+ 23,171, 14, 98,219,188, 65, 24,211,195, 95,120,230,102,236, 20, 0,203,107, 91,214, 28, 67,131, 51,106,240,222,215,215,162, 9,
+224, 6, 7,116,124,112,232,187,198,192, 67,147, 57, 90, 1, 66, 70, 64,248, 55,247,182, 20,177, 41, 55,193,166,220,228, 40,175,
+ 14, 32,188, 59, 19,132,107,107,238,151,213,203, 84, 59,118,236,188,200,146,248,198,132, 80, 25, 60,120,252,127, 69,124, 90, 90,
+ 90,223,254,253,251, 95,190,112,225,130, 67, 64, 64, 0, 0,224,193,131, 7,197,157,206,214,173,225,231,231,135,140,140, 12,140,
+ 26, 53, 42, 91,161, 80,244, 69, 13, 62,191,133,133,133,207,143, 28, 57,226,162, 82,169, 90, 46, 90,180, 40,211,199,199, 71,169,
+213,106,137,252,252,124,150,166,105,216,219,219,139, 91,182,108,137,246,237,219, 23,221,190,125,187, 78,114,114,114, 33,128,132,
+218, 36,126,208,160, 65,184,118,173,120,210,222,155,136,171, 37, 18,137, 16, 16, 16,224, 17, 31, 31,159, 90,210,182,152,253,142,
+ 47,223,188, 60,126,252, 24, 87, 31,166, 64,160,215, 64,156,149,134, 59,199,143, 96,224,228,105,160,233,218,123, 49, 60,126,252,
+ 24, 39,130,239,192, 82, 34, 64, 76, 76, 4,142, 28, 57,130,169, 83,167,190, 22,103, 45, 81,173, 22,249,151, 67,129, 42,252,180,
+ 4, 0, 16, 24, 24,120,181,212, 90, 81, 30,190,190, 16, 75,138,176,180, 87, 43,143,185, 35, 58,214,167,140,202, 52,176, 12, 11,
+ 74, 8, 56, 59,217,224,143, 63,246,215,219,127,240,224,237,205,155, 54,111, 96,105,122, 97,120, 38,212,102, 36,106,233, 79, 7,
+111,140,248, 99,118, 87,193,212,126,141, 29, 0, 64, 36, 32,177,254, 84, 4, 13, 96,233,235,228,246, 93, 15, 72,139,140,152,228,
+236,104,187,120,193,167, 3, 28,186,182,246,195,213,187,225,216,112,228,246, 53,113, 38,246,152, 92,185, 89, 35, 94,214, 79,149,
+205, 58, 4, 91,179,223, 37,195,112,174, 34, 75,123, 24, 18,174, 0, 6, 45,180, 58, 3,146,115, 24, 36,231,106, 33,144,137,240,
+ 32, 54, 69,227,152,142,160,215,200, 54, 97, 41,147,186, 47,249,126,173,167, 86, 83, 68, 43,243,178,105,145,248,142, 80,102, 33,
+ 81,152,227,170,112, 39, 21,218,206,117,133,239, 0, 44, 37,150,114,234,175,191, 28,103,153, 26,121, 1, 13,200, 52, 16, 28, 7,
+ 11,255, 1,176,182,160, 68, 29,235, 8,147, 0,192,210, 82, 38, 94,245,205, 28,219,153,243,190,169,209, 7,204, 31, 16,249,249,
+186,206, 12,240,177,199,181,208,104, 92, 11, 75,140,184,246, 32,166,105,183,102,238,240,243,180,155, 33,206,203, 95, 25, 5,243,
+ 45,164,197, 5, 67, 3, 70,109,217,172, 67,127,103,124,216,102,196,162,170,102, 27, 86,138,186, 0, 27,203,112, 32, 40, 10, 32,
+200,226, 25,144,201, 55, 33,176,243,229,246, 31, 58,161,222,185,115,207,183, 81,217,188, 21,139, 7,143,154, 80, 80, 80,240, 36,
+ 42, 42,170, 79,243,230,205,119,125,241,197, 23,214,163, 71,143,118,159, 56,113, 34, 9, 0, 25, 25, 25,236,186,117,235,210,126,
+249,229,151,130,236,236,236,241, 70,163, 49,204,148, 39, 92,161, 80,220,250,245,215, 95,179,174, 95,191,222,180,109,219,182,146,
+119,222,121,135,181,183,183, 23, 72, 36, 18, 70,175,215,107, 99, 99, 99,153,248,248,120,183,252,252,252,103, 0,226, 80,139, 97,
+253, 18,235,213,114,138,162,150,112, 28, 23,240, 38,124,180,100, 50,153, 59,128,103, 4, 65, 52, 48,119,216,240,149, 6, 91, 32,
+ 64, 94, 94, 30,212,233, 17,144,166, 60, 69,115, 75, 18, 77,236,173, 96, 99, 99,243, 90,162,168,160,160, 0, 80,165,226,198,141,
+199, 0, 77,195,214,214, 22,182,182,182,127,187,208,170, 74,139,252, 71, 48,169,146, 99,213,251,104, 53,145, 99,170,133, 30,235,
+ 38, 15,168, 47,170,235,237, 9, 93,202, 3, 60, 78, 46,194,194,119,219, 70, 82, 18,107,237,228,143, 7,181, 30, 58,172, 14,186,
+182,111, 67,212,117,179,157,177,242,167, 45,159, 53, 65,246,156,200, 76,172, 55, 37, 69,145, 89,120,206, 34,115,231,149, 39, 41,
+ 83, 60,101, 26,176, 44,135, 43, 97, 10,132, 37,228,237,140,206,194,115,115,114,215,196, 13, 61, 5, 32, 15,114, 28, 39,181,181,
+180, 44,108,226,231,233,212,243,189, 22,100,223, 46,173, 33,162,128, 27,247, 30, 99,214, 79,199,238,176, 44, 55,192,228, 25, 98,
+ 44,251,138,128, 42,158, 97,104,172, 48,195,144,227, 56,174,120,214, 97,245,110, 95, 20, 69,164,171, 19,239,187, 10, 29, 27, 66,
+ 19,119, 5, 9,121, 44, 18, 51, 11,161, 20,184, 66,151,154, 10,112,108,210,213,215,112,172,118,114,114,114,174,215,196,175,254,
+198,221, 71, 96, 80, 23,224,121,200, 46, 20,229, 41,240,221,214, 83,245, 61, 60, 28,187,164,166,166, 94, 53,227,101,227,119, 57,
+104,191, 51, 56,128, 18, 74,112,102,243, 33,100, 59, 90,192, 73, 38, 2,171,201,194,228,153,163,109,251,245, 26,109, 11, 0,137,
+ 49,143,224, 35,211,152,196,107,112,196,208, 17,221, 26,217,193,168,193,238,243,143,180, 36,208,119,207,197,136,184,110,141,237,
+164, 35, 58,250,216, 47, 79,203,255, 0, 57,181, 11, 42, 90,106,209, 42,179,240,213, 98,182,225, 17,128,105,204, 34,238,224,173,
+ 76,203, 97,189,222,145,137, 4, 4,193, 21,165,130,179,112,194,150,221,135,139,196, 70,108, 7, 15, 30, 60, 76,130, 70,163, 9,
+213,104, 52,205,190,250,234,171, 15,191,254,250,235,206,150,150,150,245, 0, 64,165, 82, 61, 55, 26,141,215, 74,158, 79,115,102,
+ 7,114, 0,158,197,197,197, 61,143,139,139,115,217,187,119,175, 29, 0,105,201,111, 90, 0,249, 0, 50,240, 26, 51, 14, 75, 69,
+ 21, 65, 16, 75,222,212,125, 40, 21, 85, 4, 65, 52,168,205,245, 36, 73, 50, 4, 65,128, 32, 8, 72, 36, 18, 92,191,126, 29,195,
+ 7,244, 66,212,153,124, 4,216, 89,161,237,248,201, 56,120,233, 18, 40,138, 2, 65, 16,160, 40,202,172,118, 68, 32, 16,224,198,
+141, 27, 24, 51,106, 24, 36, 2,192,214,214, 22, 95,125,245, 21, 78,158, 60, 9,129,128, 95,165,207, 12,108, 47, 39,184, 76,140,
+163, 69, 96,249,165, 93, 63,136,192, 24,113,122,215, 26, 4,133, 23,233, 99,178,176,176, 81, 22,214, 29, 65, 33,155,245,211,158,
+ 41,151,110,132,255,248,201,200, 64, 89,247,110,189,208,189,107, 55, 65,211, 54, 93, 22, 3, 21,132, 86, 79, 84, 19,107,131, 97,
+241,237,246,243,209,147, 15,134,196, 18, 48, 20, 98,100,239, 54, 28,195,226,219, 26, 50,243, 10,167,173,133,213,193, 27,183,111,
+219,195, 80,132,132, 71,127, 74,235,212,171, 15, 48, 6, 60,123,246, 20,191,236, 62,206,134,220,139,249, 67, 79,227,139,248, 60,
+168, 76,229, 44, 86, 86, 52,108, 45,197,141,250, 54,181, 57,199,130,131,157, 76,212,152, 99, 25,216,201,132,141,123, 53,150,157,
+227, 56,142,179,182, 16, 54,230, 24, 99,141,156, 26, 61,189,109,247,111, 59,215, 78,152, 48,193, 50, 59, 37, 29,105,202,112, 20,
+137, 61, 96,148,121, 33,238,209, 53,141, 90, 71,155,210,136, 87,121, 63,179,179,179, 51, 67,239,230,226,224,214, 21, 48,234,117,
+200, 76, 41,214,170,105,217, 74,216, 56,121,220, 78, 77, 77, 53,153,211, 64,179, 5, 67, 71, 79, 18, 89, 88,195, 98,204,208, 64,
+113, 92,142, 14,173,220,173,139, 95, 26, 69, 89,136, 10,190,129,174, 37, 62,166,241,201, 36,124, 90,184,155,148, 78,107,169,232,
+139,126,239,120,224,121,146, 2,215, 35, 82,119, 63,207, 69, 26, 19,173,216, 29,151,150, 63,101,208,187,222,248,249,100,228,231,
+128,113,191, 57,121,247,119,198,135, 28,135,142,197,206,240, 26,112, 64, 71,127,103,124,104,226, 76,195, 87, 56, 5, 34,124,180,
+246, 92,226,162,195,247,179, 7,205,253,168,147, 77,251,246,253,197,160,245, 40,212,232,140, 81,249, 80,190, 78, 25,189, 6,120,
+ 78,158,243,191,202,201, 0,248,195,104, 52,254,145,159,159,255, 38, 57,211,240,106, 92,167,215,202,123,249, 97, 66,142,227, 4,
+ 37,214,172,154,156,225,171,229, 44, 63, 76,200,113,220,217, 18,107, 86, 77, 86,173, 10,156, 44,203,166,181,110,221,218, 97,224,
+192,129, 96, 24, 6, 79,159, 62, 69, 98,114, 50,122, 78,249, 28,118,118,118,184,246,228, 9, 98, 98, 98,176,100,201, 18, 24,141,
+ 70,156, 56,113, 34,165, 38, 78,129, 64, 96,168, 95,191,190,104,240,224,193,160,105, 26,241,241,241, 72, 77, 77,197,172, 89,179,
+ 96,107,107,139,208,208,208, 50,206,236,236,108, 8, 4, 2, 67, 37,214,173,191,162, 46,253,215,241,138,200,170, 94,104, 1, 12,
+ 24, 35, 10, 46, 45,197,250,235, 48, 24,140,104, 28,153,133, 23,145,255,179, 72,109,161,238, 62, 57,253, 36, 60,250,121,232,205,
+238, 98,100,134,193,220,158,196,211, 28, 40,172,165,133,133, 48, 20,218, 32,254, 28, 94,100, 20, 22, 61,205,129,194,236, 30, 3,
+203, 16, 48,168, 1,197, 3,220,186,118, 21, 33,119, 30,227,126, 88, 52,115, 43, 52,246, 32,201,226,219,168, 28, 60,173, 69, 47,
+ 4, 86, 3,126,198,184,176,103,222,109,252, 92,188,193,208,224, 88, 35,108, 71,238,199,248,200,246,222,109,124,237,188,139, 45,
+ 89, 70,216,127,250, 39,176, 86, 90, 45,223,131,100,227,118,241,201, 11, 31, 20,230,231,188,219,163,203,123,150,182,254,253,144,
+253, 44, 22, 79, 31,223,208,132,134,199,221,122,144,108,124, 45,107,137,135,135, 71,231, 30, 93, 26, 97,228,228, 5, 48,168, 11,
+ 16, 31,242, 27,138,114,211,113,253,182, 21,162,149,202,247, 0,152,108,209,186,157, 68, 55, 69, 82, 30, 58,212, 17, 38, 89, 67,
+231,250,113,224, 64, 72, 8, 45, 88,157, 18,132, 58, 27,113,169,250,130, 15,182, 38, 51, 0, 32,147, 16, 2, 75,174,192,198, 36,
+203,163,143, 99, 67, 25,101,196,158, 75, 17, 96,217,226,229,155, 88, 22, 91,246,252, 25, 55,229,219, 49,173,208,196,219,190,197,
+163,212, 76, 2,102,152,252, 9, 14,157,238, 31,252,166,177,246,242, 98,128, 53,224,198, 12,135,198,157,214,231,118, 66, 45,151,
+219, 9, 79, 67, 42,128, 41, 16,168,183,205, 88,127,126,113,235, 75,145, 29,103,127, 58,200, 6, 28,191, 0, 59, 15, 30, 60,254,
+126, 20, 21, 21, 77, 30, 63,126,252, 54,161, 80, 40, 7, 64,176, 44, 11,150,101, 5, 63,254,248,163,144, 97, 24,146, 36, 73,134,
+162, 40,250,236,217,179, 70,134, 97,178,180, 90,237,228,154, 56,105,154,142,155, 54,109, 90,253,154,102, 40, 30, 56,112,160, 84,
+100,197,241, 37, 97,146,200, 42,191, 47,179,114, 85,221,120,112,248,166,195,152,165, 75, 1, 16,224,176, 44, 50, 11, 47, 94, 62,
+ 37, 44, 23,105, 77, 40,195,172,166,109,186, 44, 45,189,198,220,148,105, 25,102, 88,155,102,126, 7, 0, 64,199, 49, 99,106,147,
+ 59,165, 78, 51,162,101,155,247, 14,178, 28, 39,160, 57,110, 39,201,226,168,150, 70,148, 41, 51,237,170, 66, 90,102,126,104,191,
+ 0, 91, 14, 40, 30, 50, 44, 27, 46, 44, 9,227,192,113, 28, 87, 54, 92,184, 70,138,236, 2, 93,141,113,160,110,190,208,247,210,
+211,247, 39, 93,188,249,104, 50,195,112,174, 20, 69,164,107,244,244,182,215, 21, 89, 0,144,154,154,122, 53,248, 82,234,197, 39,
+ 45, 92,122, 59,201, 74,172, 92,106, 32, 91,141,139,169, 89, 69, 87,107,195,153,167, 50, 14,250,122,221,201, 83, 98, 33, 37, 0,
+199, 21, 7, 20,229, 56,104, 13, 76,238,237, 36,186, 41, 0, 52,115,128,251, 87, 39,232, 3, 20, 69, 36,214,196,119, 55, 70,241,
+243,200,149,193,115, 34, 18,242,118, 38,228, 35, 28, 0, 18,242, 17,126,232,198,139,197,113,233,133,115,194, 19,243,214,192, 76,
+191, 10,142,192,245, 54, 35,151,190,114,236,117,239,103,180, 2,143, 1, 12, 1, 82,122,141,156,253,203,108,130, 0,191,252, 4,
+ 15, 30,255,143, 80,106,213, 34, 73,114,249, 27,228, 60, 75, 16, 68,127, 0,207,204,184,236,110, 81, 81, 81,179, 55,156,189, 28,
+154,166,115, 76, 57,241, 31,112,136,255,175,226, 31,115, 45,233,201,115,254,253,156, 13, 26, 52,224,204, 16, 44,252,253,228, 57,
+121, 78,158,243,255, 21, 39,199,113,212,235,108, 85,112, 18,175,179,241,101,244,159,199,203,206,240,147, 74,141, 19,252,112,200,
+ 91,136,103,207,158, 17,252, 93,224,193,131, 7,143,202, 65, 16, 4,243, 23,112,242,193,139,121,148, 10,174, 10,214, 45,146,191,
+ 39, 60,120,240,224,193,131, 7, 15, 30,111, 68,100,149,223, 23,139,112, 84,109,254, 51,103, 54, 65,109, 76,136,193, 60, 39,207,
+201,115,242,156, 60, 39,207,201,115,254,191,227,172,137,251,173,152,205, 88, 67, 28,243, 55, 6,222, 31,128,231,228, 57,121, 78,
+158,147,231,228, 57,121,206,183, 29, 85,250,104,241, 67,135, 60,120,240,224,193,131, 7, 15, 30,127, 17,120,103,120, 30, 60,120,
+240,224,193,131, 7,143,215, 67,141,139, 74,243,224,193,131, 7, 15, 30, 60,120,240,168, 29,170, 95, 84,154, 7, 15, 30, 60,120,
+240,224,193,131, 71,173, 97,254,162,210, 60,120,240,224,193,131, 7, 15, 30, 60, 76,194,118,254, 22,240,224,193,131, 7, 15, 30,
+ 60,120,252, 61,168, 56,235, 48, 40, 40,136, 43,191,231,193,131, 7, 15, 30, 60,120,240,248, 59,241,182,106, 17,126,232,144, 7,
+ 15, 30, 60,120,240,224,193,227,245, 48,137, 23, 90, 60,120,240,224,193,131, 7, 15, 30,127, 13,170,244,209, 42, 13, 88,218,181,
+196, 84,215,149,191, 87, 60,120,240,224,193,131, 7,143,127, 0,111,183, 22,225,253,179,120,240,224,193,131, 7, 15, 30,188, 22,
+121, 51, 40,117,134,231,193,131, 7, 15, 30, 60,120,240,224,241,122,224,215, 58,228,193,131, 7, 15, 30, 60,120,240,248,155, 5,
+215, 95, 46,180,248,149,205,121, 78,158,147,231,228, 57,121, 78,158,147,231,252,255, 36,178, 42,136, 45,126,214, 33, 15, 30, 60,
+120,240,224,193,131,199,235,161,198, 89,135, 60,120,240,224,193,131, 7, 15, 30, 60,106,135, 73, 0, 2, 75, 62, 7,162,156, 85,
+139,183,104,241,224,193,131, 7, 15, 30, 60,120,188, 30,182, 3,112, 43, 17, 88,103, 0, 40,120,161,197,131, 7, 15, 30, 60,120,
+240,224,241,102, 80,222, 47,107, 64, 57,241,197, 11, 45, 30, 60,120,240,224,193,131, 7,143,215, 68,149, 62, 90, 4,170,158, 57,
+ 16,108,198, 31,212,102,246, 65, 48,207,201,115,242,156, 60, 39,207,201,115,242,156,255,239, 56,107,226, 14,198,127, 15,175,132,
+117,224, 56,110,251,223,241,199,252,212, 87,158,147,231,228, 57,121, 78,158,147,231,228, 57,255,223,225, 47, 11, 88,218, 10,176,
+224,111,239, 91, 9,151,146,141, 7, 15, 30, 60,120,240,224, 81, 61,254,154, 89,135,254,192,167,163, 3,228, 91,141,225, 89, 54,
+225,128,186,186,115,229,114,249, 54,153, 76, 54, 90,173, 86,171, 8,130, 96,203, 43, 64, 0,229, 23, 7,138,207,202,202,234, 84,
+211,127,139,197,226,117, 46, 46, 46,159, 22, 21, 21,169, 9,130,224, 8,130, 0, 65, 16, 0,240,202,158, 97,152,148,156,156,156,
+214,255,113,169, 76, 57,185,184,220, 19, 82,148,135,185,151, 50, 44,251, 34, 51, 35,227, 61, 51, 46, 89, 65, 16,152, 91,252,183,
+ 88, 13, 96,193, 91,215,243, 0, 40, 83,206, 11, 0,172, 99,129,145, 12, 73,126, 46, 4, 54,233, 88,118, 43, 0, 16, 0, 83,219,
+255,214,221, 69,125,130, 67, 11,130,128, 45,199,161,128, 35,240, 88,210, 14,113,255,208,173, 24, 42, 20, 10, 7,217,216,216, 88,
+229,228,228, 92, 5,112, 0,192, 40, 71, 71,199, 46, 74,165,178,200,104, 52,158, 4,112,172, 54,196,157, 90, 96,158, 88, 36,252,
+ 68,107, 48,174,186,249, 24,191,117,105, 5, 71,154,197, 74,169, 72,208, 73,167,167, 87,223,120,130,157,102, 82, 18, 37, 91,233,
+ 59,195,236, 69,197, 14,155, 88,238, 0,112,194,222,222, 79, 34,183,185, 44, 20, 83, 47,242, 51,138, 70, 15,203,204, 76, 30,254,
+ 26,229,254,111,132,147,147,211, 56,146, 36,191,231, 56, 14, 12,195, 44,204,205,205,221,245,134,168, 23, 2,176, 43,249,156, 15,
+224,251,215,228, 75, 4,224, 93,242, 57, 9,128, 15,223,174,215, 26, 91,142, 31, 63, 62,165, 91,183,110,248,249,231,159,177,101,
+203,150,132,172,172,172,149, 0,118, 3,208,255, 3, 60, 60,170, 66, 19,160,255,143,125,218, 49,198,223,191,101,203, 29,238, 89,
+197,195,252,235,199, 31,127,108,224, 56,142,139,137,137,225,244,122, 61,103, 52, 26, 57,154,166, 57,154,166, 57,163,209, 88,182,
+121,120,120,164,190,116,249, 43,156, 36, 73,174,255,224,131, 15, 10, 57,142,227, 30, 60,120,192,105, 52, 26, 78,167,211,113,122,
+189,158,211,106,181,156, 70,163,169,176,185,184,184,100, 84,199,105, 99, 99,243,192,222,222, 62,195,222,222, 62,195,193,193, 33,
+195,193,193, 33,195,209,209,177,108,115,114,114, 42,219,228,114,121,134, 92, 46,207,112,112,112,120, 80, 83, 58, 75,208, 7,192,
+ 85, 19,182, 62,149, 92,219,179,188,208,114,115,115,203,224,106, 1, 79, 79,207,100, 19,210, 89, 10, 23,130, 0, 83,122, 45, 65,
+128,149, 72, 36,222,229,127,199,171,150,174, 26, 77,202,238,238,238, 31,184,185,185, 5,187,185,185, 93,114,119,119,255,192,132,
+ 42, 86,129,211,218,218,250,129,147,147, 83,134,171,171,107,102,233,230,230,230, 86, 97,115,119,119, 47,219, 92, 92, 92, 50,236,
+237,237,171, 44, 35, 14,160,170,218, 66, 0,129, 4,232, 46,160,168, 32, 23, 23, 23,101, 88, 88, 24,195,113, 28, 71,146,100,106,
+233, 57,230,228,253,101,145,165,190,129,133,217, 87, 36,119,139, 94,172, 44,200,190, 34,185,171,190,129,133,186,187,168, 95, 91,
+ 78, 19, 81, 25,231,216,177, 99,199, 62,206,200,200, 72,205,207,207, 87,108,221,186, 53, 86, 42,149,222,216,186,117,107,108,126,
+126,190, 34, 35, 35, 35,117,236,216,177,143, 1, 76, 51,131, 19, 0,240, 94, 11,188, 59, 97,168,155,250,241,137, 49,234,238,109,
+ 4,143, 58, 4, 32,176,215,123,162,212,141,243,253,213,215,118,116, 84,119,123,135, 12, 55,147,147, 16, 8, 4,237,189,189,189,
+ 63,145,203,229, 31,151,108, 99, 74, 55, 87, 87,215, 49,174,174,174, 99,236,237,237,135, 87,199,121, 24,160, 76,217,188,164,210,
+246,195,235,121,171, 19,151, 47,227,194,102,126,206,125,226,235,165, 28,230,236, 92,231, 31, 40,163,191,148,211,217,217, 57,205,
+104, 52,114, 6,131,129,115,116,116, 76,123,131,233, 92,195,113,220, 26,142,227,214, 0, 88,243, 6, 56,203,222,103,102, 8,236,
+234, 56,165, 2,146,156, 45, 19,139, 47, 73, 4,130, 76,137, 64,144, 41, 19,139, 47, 9, 72,114, 14, 0,233,191,169,140,254, 2,
+ 78, 43,185, 92,254,124,221,186,117,156, 90,173,230,212,106, 53,183,110,221, 58, 78, 46,151, 63, 7, 96,101, 6,103,109,121,222,
+ 38, 11, 86,133,173,116,232,240,141, 88,180,252,129,214,221, 91, 52, 56, 58, 99,220, 72,176, 71,214, 17, 53,244,152,126,125,175,
+117,235, 79,118,239,222, 13, 0, 24, 61,104, 16,122,183,109, 11,107, 43, 75,136,197,197,201, 33, 56, 2, 34,161, 8,131,103,125,
+105,202,223,175, 30, 60,120,240, 71, 71,142, 28,177, 2,128, 45, 91,182, 96,232,208,161,112,112,112,128, 76, 38,131, 72, 36,130,
+ 80, 40,172,176,175, 9, 20, 69,121,166,166,166, 58, 75,165,210, 50, 43, 27,203,178, 21,182,242,171,114,211, 52,141,134, 13, 27,
+154,122,187,230, 23, 20, 20,116, 86,169, 84,101, 28,149,109,245,234,213, 3,128, 11,166, 16,126,255,221,183, 96,105, 21, 4, 2,
+128,166, 1,157,129, 4,203, 85, 42,110, 48,109,218,180,215, 90, 77,124,192,128, 64,130, 32,136, 35,161,161,161, 71, 51, 51, 51,
+235,178, 44, 51,177,150,150,174,207,158, 62,125,106, 5, 0,126,126,126,211, 0, 28, 53, 39, 29, 2,129,192,243,201,147, 39,206,
+ 18,137,164, 74,203,101, 57, 11, 38, 12, 6, 3, 90,181,106, 69,155,243, 31, 46,128,119, 46, 73, 78,108,249,206, 59,147,150, 14,
+ 30, 44,189,119,239,158,148, 36, 73,208, 52,141, 31,127,252,145,230, 56,206,174, 9, 96, 19, 9, 40,171,161,249, 26,192,184,146,
+198, 96, 39,128, 31, 43,168, 5, 14, 45, 52, 70, 73, 96,124,209,224,182,237,234,204, 67,100, 68, 88, 91, 95,171, 19,176, 22,232,
+226,128,191,215,170,101, 99, 99, 51,232,231,159,127,150,239,220,185, 83, 25, 19, 19, 99,216,186,117,171,124,242,228,201,214, 6,
+131, 1, 83,166, 76,201,106,212,168,145,232,231,159,127,150, 31, 59,118,172,187, 74,165,218,108, 86,121, 17,248,118,212,160,222,
+208, 26, 73, 24,141,180,220, 77,110,253,199,140,177, 93,133, 28,167,199,158,147,161, 48,210,236,111,102, 90,178,222, 27, 54,108,
+152,239,254,253,251, 5,209,209,209,130,198,141, 27,131,101, 89, 48, 12, 3,163,209, 8, 0, 96, 89, 22, 13, 26, 52,120,237,251,
+242, 9,224,231,228,226,112,233,189,254,253, 44,220,164, 18, 56,228,101, 97,130, 72, 96,189, 75,166,219, 11,160,253, 91,101,217,
+229, 56, 8, 4, 2, 36, 39, 39,195,217,217,217,130,101, 89, 5,128,101,121,121,121,219,241,246,162,173, 88, 32, 56,186,231,183,
+245,174,237,218,183,167, 92,220,156, 17,251, 52, 9, 2,130,233,249,228,126,104,215, 79,166,206,158,161,167,233, 15, 0,220,123,
+219, 50,238,218,126,218, 16,130,164,182, 16, 28,139,111, 54,158, 42, 92,177,122,157,108,202,196,177,212,172, 89,179,224,229,229,
+ 85,119,200,144, 33,171, 1, 76,173,145,167,221,180, 33,160,200, 45,224, 56, 44,253,229, 84,225, 15,171,215,201,166,214,130,231,
+ 63,142, 42,159,145,215, 22, 90,254,128,111, 83, 47,231,139, 43,230, 78, 21,114,231,126, 39,213, 57,153, 85,158, 43,151,203,183,
+245,237,219,119,244,174, 93,255,179, 70,191, 23, 16,128, 33,221, 59,194,217,209, 22, 50, 75,113,113,115,196, 18,120, 28,243,194,
+ 36, 65,224,229,229, 53,229,232,209,163, 86,229,197,132, 72, 36, 42,219,202,139,172,210,173,180, 1,174, 14, 82,169, 20,193,193,
+193, 16, 8, 4,160, 40, 10, 2,129,160,108, 43,255,157,162, 40,184,184,152,229,186,180,210,214,214,182,121, 97, 97,161, 77,126,
+126, 62,188,189,189,149, 0,158,148,251,189,121, 86, 86,150,141, 57,132, 44,173,194,172, 9,254, 16,234,239, 64, 47,108, 11,141,
+160, 3,110,221,143, 66,208,133,171, 72, 77, 75, 71,199,119, 91,226,227, 15,135,225,210,165, 75, 96, 24,179, 71, 58, 50, 56, 14,
+171, 7, 14, 12,156, 7, 16, 68,207,158, 61,243,167, 79,159, 78, 70, 71, 71,127, 52,100,200,224,128,167, 79,159,149, 88, 21,137,
+185, 28,135,245, 0, 50, 76,228, 21, 3,192,181,107,215, 0, 64, 82,155,186, 39,145, 72,112,251,246,109,148, 14, 19,147, 36, 9,
+146, 36, 65, 81, 20, 78, 63,115,130, 74, 79, 66,157, 17,142,207, 3,189, 81,175, 94, 61,144,100,205, 46,137, 93, 1,233, 45, 96,
+ 8, 33, 20,206,114,115,119,175,219,197,215, 87, 22, 28, 28, 76, 1,128,143,143, 15,167, 80, 40,242, 79,158, 60, 89, 40, 0,182,
+248,112,220,238,234, 68,150,151,151, 87,135,212,212,212,239, 75,239, 57, 65, 16,171,235,212,169,179,164,172,220, 88, 22,203,126,
+ 83, 9,103,204,152, 41,106,215,117, 17, 0,160,221,192,253, 80,198,175,240, 39,114,191,182,253,187,223, 18, 74,165,242, 96,131,
+ 6, 13,168,156,156,156, 91, 0, 18,141, 70,227,252, 63,254,248,195,121,194,132, 9,153,123,247,238, 93, 9,192,125,213,170, 85,
+ 93, 85, 42,213, 33,115,120, 59, 54, 71,255,119,154, 7,188,235,237,229,133,171,183,238, 65, 36, 22,218, 77, 27, 23, 8, 43, 43,
+ 1,214,236, 60,195, 38,166,228, 78,191,241, 4,187,205, 16, 89,109,135, 13, 27, 86,119,255,254,253, 98, 0,120,242,228, 9,210,
+211,211, 33,151,203, 97, 97, 97, 1,161, 80, 8,138,162, 32, 20, 10,223,136,200,178,245,114,188,123,226,196, 73, 11, 7, 7, 59,
+108,252,114, 6, 62,206,204,128,157,181, 21,140, 69,170,186,111, 89, 67,225,215,169, 83, 39, 41,195, 48, 80,169, 84, 8, 9, 9,
+177,181,176,176,176,245,244,244, 92, 90, 93, 35, 82,201,187, 51, 67,171,213, 58,151,124,206,212,106,181, 46, 0,148, 18,137,164,
+244, 61, 93, 84,178, 55,117, 56, 49, 17,175, 14, 19, 38, 17, 4, 81,254, 88,109,209,166,109,155,230,193,199,142,236,179, 42, 40,
+ 76,135,157,125, 38, 72, 20, 96,251,246, 77,176,176,176,193,210,165, 95, 11, 94,244,236,238,209,167,255, 7,193, 17, 81,177, 61,
+223, 58,177,197, 17,219,123, 14, 28,237, 96, 33,179, 46,105, 75,140,216,181, 99, 6, 72,146,196,146, 37, 75,208,180,105,211, 73,
+ 17, 17, 17,139, 0,228, 86, 79,131,237,205, 58,143,112, 16, 75,139,139,152,101,140,216,122, 96, 78, 49,207,130,201, 24, 53,176,
+222,164,175,134, 61, 63,223,212, 23,133, 37, 29,115,141,144, 68, 18,209, 14,101,130, 33, 40, 40,168, 75, 96, 96,224,213,170,190,
+255, 7,224,134,255,197,207,170, 32,190, 4, 65, 65, 65, 92, 96, 96, 32, 81, 46,115, 21,190, 87,135, 22,128,147,189,173, 44,120,
+203,178, 25, 86,130, 59,103, 40, 77,210, 51,164,105, 43, 52,228, 21,166,104,202,100,178,209,187,118,237,170, 96, 82,242,118,113,
+134, 72, 36,132, 80, 68,192,174, 83,113,244,250,252,235, 65, 32,136, 42, 69, 86, 5, 78,149, 74,165,125,244,232,145,213,206,157,
+ 59,225,236,236,140,186,117,235, 66, 38,147, 65, 42,149, 86, 16, 87,229, 5, 87, 37, 66,171, 2,103,233,239, 2,129, 0, 36, 73,
+226,210,165, 75,160,105, 26,195,134, 13,123, 69,100, 9, 4,130,170,132, 91, 85,211, 83, 47, 0,120,194,113, 92,231,146, 6,248,
+ 9,128, 46,229,126,239, 35,151,203,231, 3, 88,105, 42, 39, 69,113,160,180,183,192,122,174,131, 32,121, 6,244,194, 22,184,114,
+ 35, 20,187,182,253, 12, 0,168,219,184, 13,134, 15, 9, 44,179,198,153,152,206, 50,120,120,120, 28,200,202,202,238,215,189,123,
+119,228,229,229, 25,151, 45, 91,134,230,205,155,195,207,207,207,164, 50,170,162,231,156,241,228,201, 19, 47,141, 70, 3,142,227,
+ 76, 17,103,175,112, 18, 4,129, 63,254,248, 3, 90,173,246,149,147,237,187,252,128, 57, 67,125, 48,254,243,221, 88, 29,115, 8,
+155, 55,111,174, 54,239, 50,160,185,214,182,193,122, 49, 69, 55, 95,249,245,103,146,143, 63,254,152, 26, 63,126, 60,146,146,146,
+ 48, 97,194, 4,237,165, 75,151,244,233, 10,197, 73, 49,203,110, 52, 84, 20,198, 85,114, 74, 36,146, 61, 23, 46, 92,192,161, 67,
+197,186, 36, 54, 54, 22, 13, 27, 54,180,172, 32,146,115, 15,163, 48,113, 35,238,158,142, 70,187,129,251,113,247,244,135, 96,242,
+207, 8, 91, 55, 68,129, 57,247,179, 22,168,140,243, 80, 78, 78, 78,153,136,218,187,119,175,197,222,189,123, 7, 3, 56, 5,224,
+ 16, 0,228,230,230,254,100, 38, 39, 64, 96,252,136,161,131, 33, 16, 89, 35,250, 89, 10,186,188,215, 10, 46,206,206,120, 18, 21,
+135,196,212,220, 12,130,192,184, 62,237,197, 43, 53, 26,253,162,235,143,241,107, 13,156,132,167,167,167,223,225,195,135, 69,229,
+ 44,208,101,207, 56, 69, 81,101,223, 75,133,119,109,234,103,169,200,178,246,180,186,251,237,166, 14,150,119,195,246,162,161, 79,
+127,216,247, 15,196,175, 23, 47,226,105, 68,164, 86,175,166,123,252, 3,101,244, 87,113,250, 13, 29, 58,244,214,190,125,251,236,
+146,147,147,113,237,218, 53,212,173, 91, 23,106,181,218,148, 14,111, 5, 78,173, 86,235, 92,122, 13, 65, 16,206,165,134,119,189,
+ 94, 95, 90, 24,165, 15,162, 93,185,243,236,170,225,244, 46,119, 94,169,184,242,121, 3,121, 23, 75, 69,162,195, 39,142, 29,176,
+138,140,190,134,150, 45,222,133,149,109, 19,176, 76, 58,114,114,139,144,247, 44, 13,223,125,183, 26, 75,151, 45,196,169,227, 71,
+172, 26,249,183, 56,170,167,233, 6, 0,180,111, 77,185, 19,220,164,224,211,123,183, 16, 28, 11, 77, 70,180, 68,168,122, 46, 27,
+253,225, 7,212,200,145, 35,113,234,212, 41, 68, 68, 68,108,169, 70,100, 5,151,179,204, 79, 10,191,118,104, 11, 56, 14,154,204,
+104,137, 72,243, 92, 54,246,163,225,212,199,163,122,227,206,159,235,209,187,229,243,112,119,103, 12,201, 43,145,216, 2, 10, 57,
+ 18, 41,110,114,119,113,167,156,216, 10, 1, 64,148, 19, 88, 33,248,159, 15,230,127, 1, 3, 74,132,213,164,151, 59, 38,130,218,
+ 8, 44, 0,104, 8, 88, 17, 98,209,221, 93, 75, 63,115,151, 37, 69, 8,116,225,183,145,166, 99,185,173, 9, 52,219, 10,176,120,
+ 8,104, 94,190, 70,173, 86,171,226,226,226, 44,198, 13, 25,130,246, 1, 1,112,115,116, 68, 3, 79, 79, 88, 72,196, 16,139,132,
+ 21,186,172, 38,143, 33, 16, 4,215,168, 81, 35, 12, 28, 56, 16, 66,161, 16, 50,153, 12, 86, 86, 86, 16,139,197,149, 90,179, 76,
+237,229,114, 28, 7,138,162, 16, 30, 30,142,196,196, 68,216,217,217,225,230,205,155,232,209,163,199, 43, 86,173,242,226,204, 28,
+ 19,125, 37, 13,127,169, 16,187, 96, 14, 23,195, 16, 40,226, 90, 64,154, 48, 29,106,162, 21,116, 58, 26, 58,157, 14,191,222, 48,
+224, 94,156, 10, 6,131, 30, 58,157,174,186,255,172, 10,164,187,187,251,232, 6, 13, 26, 76,251,240,195, 15,141, 98,177, 24, 42,
+149, 10,106,181, 26, 17, 17, 17,198,126,253,250,231, 15, 28, 24,104,123,230,204, 25,174,100,232, 48,195, 12,238, 28, 15, 15, 15,
+175,146,225,217,156,218,212,106,130, 32,202, 68,204,203, 24,247, 83, 36, 4, 84,113,153,108,217,178, 5, 12,195,128,227,184, 42,
+ 11, 73, 75, 16,151,151,253,176,214,118,213,186,223, 96,235,224,130,171, 87,175, 50,231,207,159, 47, 36,128,216,167, 17, 17, 63,
+189, 15,156, 61, 12, 24,204, 73, 95, 94, 94,158, 69,221,186,117,225,233,233, 9,150,101, 97, 52, 26,203,172, 47, 57, 57, 57,208,
+104, 52,112,176,204, 71,125, 71, 79,208,133, 33, 80,132,127, 3, 55,171,104,236,190,160, 55,190,227,135,199,255,130, 23,199,239,
+ 37,219,107,246,154,225,225,236,234, 5,146, 51, 34, 45, 51, 7,131, 7,244, 6, 37,178,194,139,228,108,180,104,226,235,246,209,
+251, 29,220, 40,130,198,220,149,251,167, 1,236,175, 53,209, 21, 21, 21, 49,209,209,209,120,242,164, 88,239,218,216,216,192,210,
+210,178,194, 51, 78,146,228,107, 89,180, 74, 69,214, 15, 91,122, 88,146, 66, 21,148, 76, 48,118,254, 17,138, 22,141, 2,177,245,
+238,125, 45,147,145,219,115,141, 86, 27,123,224, 63,108,204,112,117,117,157,204,178,236, 82,142,227,242, 59,118,236,232,178,127,
+255,126,251,212,212, 84,132,134,134, 98,201,146, 37, 89, 12,195,208, 28,199, 17, 28,199,125,243, 6,254,142, 45, 39,176,222, 36,
+132, 50, 41, 62,119,178, 33, 6, 9, 72,155,186,180,178,232, 69,182,158, 59,169,166,217, 95, 0, 24,171,125,185,145,228,167, 71,
+ 14,110,113,119,146,179,232, 42,239, 14, 69,134, 1, 63,124, 57, 22, 57, 57,133,248,117,199, 10, 0, 98, 24,104, 10,157,187,126,
+ 0,103,103, 15, 76,154, 56,201,117,203,182,173,159,209, 44,187, 6,111, 9,210,111,109, 62, 14, 32, 88, 46,151, 71,124, 54,105,
+146,188,110,221, 49,144, 74,165, 56,112,224, 0,246,111,220,200,172, 3,134, 75,128, 43, 83,128,227,213,242,220,253, 31,207,140,
+ 41, 83,228,254,254, 83, 32,145, 72,240,231,249,223,161, 77,255,163,112, 64,123, 24,212, 90, 12,168, 51,144,115, 72, 56, 77,228,
+ 10,133,120, 6, 0, 66, 41, 20, 0, 94, 30, 6,251,175, 9,172, 82,156,193,255,102, 26, 78,170, 96,209,170,245,187, 83, 40, 14,
+219, 49,115,148,143, 11,116,132,254,198,105,164,234, 88,102,213, 83, 3,245,176,128,155, 19, 85,137,200, 42,169,216,172,183,183,
+ 55,186,183,110,141, 33,157, 58, 65, 32, 16, 64, 42, 22,193, 90,106, 1,142, 41,182,100,149, 14, 29, 86,211, 38,162, 50,235,147,
+163,163, 35, 68, 34, 81,153,192, 50,195,154, 85, 41, 39,203,178, 16, 8, 4,120,242,228, 9, 58,118,236, 8, 47, 47, 47, 28, 58,
+116, 8,125,250,244,121,101, 40,209, 92,145, 85, 42,180, 94, 26,198,235, 3,160,212,146,101,150,208,210,234, 9,100,235, 91,128,
+ 32, 2, 64,211, 0,195, 1, 58,173, 22, 28, 7,112, 28, 96, 52,232,161,213,106,203,254,211,148, 33, 89, 87, 87, 87,111, 11, 11,
+139,229,243,230,205,245,111,209,162, 37,178,178,178,192,178, 44, 44, 45, 45,161, 86,171, 97, 99, 99,131,246,237,219,191, 88,190,
+124,185,130,227, 48,201, 76,145,245,218, 40,189,231, 23, 47, 94,172, 48,108, 88,186,169, 20, 41, 24,255,197, 94,136, 5,197, 67,
+ 75,165, 62, 60,213,189,119,187,117,238,128, 91, 15, 99,233, 79,231,174,215, 9,115, 66, 87,186,178,236,174,148,215,200, 23,199,
+113,200,206,206, 70, 70, 70, 6, 6, 13, 30,140,253,251,246, 33, 33, 33, 1, 77,154, 52, 65,183,110,221,224,236,236,140,132,132,
+ 4,220,187,174,131, 46, 47, 23,185,250, 80,200,172,219,225,196,213, 56,221,146, 45,134,184,127,240,133, 49, 8,192, 88, 27, 27,
+155,122,106,181, 90, 65,211,244, 97, 0,135, 1, 12, 23, 8, 4,195,101, 50,153,155, 82,169,124,142,226,217, 68, 39,107, 34,179,
+144, 74, 29, 37, 82, 27,176,180, 14, 2,129, 0, 94, 94,117,193, 49,122,228, 41, 53, 24, 55,114, 32, 30, 62,137,194,249, 43,119,
+104,163,145,221, 96,202,109,165, 40,138,243,243,243, 67,102,102, 38,132, 66, 33, 44, 44, 44, 96,101,101,133, 5, 11, 22, 96,227,
+198,141,101, 34,171,182, 66,235, 19,192,207,198,219,234,206,247,155,138, 69, 86,122,154, 2, 25, 41, 66,200, 29, 93,176, 97,227,
+ 58, 85, 94, 66,122,187,223,128,216,255,122, 35,203,178,236, 55,169,169,169,206, 2,129,192,149,166,105, 36, 39, 39,227,193,131,
+ 7,152, 62,125,122, 70, 78, 78, 78, 87,212, 50,143, 82,169, 52,179,212,146, 85, 50,116, 88,213,112, 98,126, 57, 75, 86,126, 53,
+148, 85, 13, 19,250,214,245,180,190,180,227,231, 89,222,109,218,181, 39,101, 2,155,188,162,103,233, 29,111, 92,187,218,126,250,
+207,191,126,150,152, 87,212, 27, 64,124, 85,164, 18,161,176,223,187, 29, 58, 8,192,101, 64, 32,238,136,213,171, 70, 34, 43, 91,
+137,188,220, 66,136, 68,150,208, 27, 41, 48, 44,129,246, 29, 59,225,247,221, 7,209,116,226, 4, 74, 44, 20,246,162,245,250,183,
+ 70,104,149, 96,197, 47,191,252,226,221,168, 81, 35,236,218,181, 11, 87,246,236,193,199, 5, 5,184, 74,146,148, 81, 40,116, 58,
+107, 52,110, 71, 13, 66,171, 60, 79,211,166, 77,241,219,111,191,225,143, 63,254, 72, 26,221, 35,243,232,172,209,112, 54, 24,208,
+ 55, 52, 6, 14,117, 6, 2,161, 49,112,120,167, 17, 26,208, 2, 60, 35,136,138,225,160,130,130,130,186,148,223,255,199,160, 64,
+ 21, 67,236, 2, 0, 93,131,130,130,184,242,251, 26, 95,156,242,134, 83, 86,244,174,231, 19, 80,223,155, 48, 30, 90,143,100, 21,
+173, 95, 20, 99, 16, 63, 45,226,102, 69, 1,235,170,233, 65,112, 20, 69,193,218,194, 2,114, 59,187, 98, 51, 63, 73, 2, 44,192,
+ 26, 1,130, 41, 22, 0, 28, 75,128, 99,204,122, 97, 64, 44, 22, 87,234,248,110,174,111, 86,121,206,194,194, 66,188,120,241, 2,
+147, 38, 77,130, 76, 38, 43, 86,238,233,233,240,241,241,129, 64, 32, 64,106,106, 42,254,252,243, 79,212,171, 87, 15, 18,137,196,
+ 44,181, 85,206,186,212, 28,197,179, 12,155, 43, 20, 10, 27, 55, 55, 55,152,109,209, 98, 57,168,117, 4,244,122, 6, 79,159, 62,
+ 69, 90, 90, 26, 94, 60,127,134, 54, 42, 37, 56, 80,224, 56,206, 44,139,150,135,135, 71,128,175,175,239,214,149, 43, 87,138, 60,
+ 61, 61,193,113, 28,236,237,237,160, 86,171,145,157,157,131, 38, 77,154,192,203,203, 11, 43, 87,174, 4,128,253,127,183,200,122,
+169, 78,149, 9,173,242,130,235,139,247,189,145,155,107, 5,138, 34,203,132,115, 13, 62, 90, 34, 0,232,218,123,168,224,210,249,
+179,150, 52,176, 60,157,162,150, 11,106, 46, 71, 35,195,178,178,170,126, 79, 78, 78,134, 80, 40,196,145,195,135,145,155,145,129,
+ 22, 45, 90,160,109,219,182,120,246,236, 25, 30, 62,124, 8, 71, 71, 71,200, 61,223,195,213,231, 6, 68,166,105, 96,107,107,139,
+184, 20,242,159, 12, 25, 48,177,103,207,158, 75,126,250,233, 39,103, 87, 87, 87, 97, 86, 86, 86,163, 77,155, 54,181,216,180,105,
+211,140,207, 62,251,204,229,179,207, 62,179,151,203,229,130,244,244,116,191, 47,191,252,242,157,224,224,224,122, 0,214, 86, 71,
+104,105,105,237, 64,137, 44, 65, 16, 2,216,217,218, 67, 32,182, 4, 75, 11,192,176,128,141,173, 28,183, 30, 30,193,205,176,194,
+201,153, 57, 56,108,146,125,172,164,220, 29, 29, 29, 95,177, 84, 79,159, 62, 29, 59,118,236, 40, 27, 70,172,173,200,250, 97, 83,
+ 15, 43,162, 68,100,165, 39, 11, 64,232,234,225,244,241,219,249,121, 9,233, 29,223, 6,145, 85,250,142,227, 56, 14,207,159, 63,
+135, 90,173,198,245,235,215,241,205, 55,223,100,189, 44,178,156,157,157, 39,218,216,216, 44, 43, 42, 42, 90,157,158,158,190,190,
+198,142, 95,177,136, 42,253, 92,186,175,116, 56,209,196,164,250, 84,102,201,242,114,147, 94,120,120,125,175,143, 45,247,152, 64,
+226, 36,224,169, 50,194,250,174,115,231,254,109, 6,144,173, 54,127, 91,167,237,228, 5, 23,146,149,218, 70, 85, 89,182, 88,134,
+105,101,105,101, 13, 32, 19,161, 15, 66,202, 68, 86, 78,110, 1,116, 6, 10, 58, 61, 1,173,129, 68,247,158,125,177,113,235, 31,
+ 72,205,204, 5,195, 48,205,222, 50,145,229, 16, 16, 16, 48,101,248,240,225, 88,190,124, 57,130,127,250, 73, 63,149, 32,148, 2,
+128, 59,195, 48, 96, 57,142, 32, 77,115, 98,175,192,179,102,205,154,227, 0, 70,173,156,142,247,242,138, 48,206,125, 32,231, 80,
+103, 96,241,137,195,230,113, 0,224,144, 21, 92,177,201, 12, 12, 12, 36, 74, 71,214,204, 29, 97,251,183, 67, 16, 24, 24,120, 53,
+ 40, 40, 8,229,247,213, 93, 96,237,210,168,255, 87,179,167,173,106,211,167, 19,161,152,221, 11,185, 74, 45,253,117,164, 65,156,
+162,169, 94,100,149,199, 87,155, 54,225, 97,108,241,115,236,233,236,140,185, 31,125, 4,142, 6,110, 70, 68,226, 96,112, 48, 70,
+246,236, 9, 75,169,212,100,203, 6,203,178,149, 90,177,202, 91,179,204,181, 58,229,231,231,227,240,225,195,104,219,182, 45,100,
+ 50, 25, 4, 2, 1,154, 55,111,142,168,168, 40,248,250,250,130, 32, 8,156, 56,113, 2, 67,134, 12, 65,124,124, 60,222,123,239,
+ 61,171,196,196, 68,179,133, 86,100,100,164, 13,199,113,157, 75,173, 31,181,133, 78,167, 67,116,116, 52, 6, 14, 28, 8,123,123,
+123,120,120,236, 71,240,133,189,144, 5,124, 12,130,128, 89, 66,139, 97,152, 79, 6, 12, 24, 32, 34, 8, 2, 26,141, 26, 82,169,
+ 5, 44, 45,173, 96,109,109, 3, 63,191, 70, 72, 75, 75, 67,159, 62,125,244,113,113,113,155, 21, 10,197, 33,115,211,234,239,239,
+111,153,144,144,240,113,157, 58,117,196, 0, 96, 97, 97,209,196,215,215,119, 78,124,124,124,161,185, 86,173, 82,129, 69, 16, 4,
+ 40,138, 42, 19, 90, 2,146,132,155,171,115,217,247, 18,255, 52,162, 26, 46,101,106,142, 78, 2, 0,222,222,222,216,184,237, 20,
+ 57, 96,192, 0,204,152, 49, 3, 70,163, 17,155, 55, 23, 79,178,251,240,195, 15, 97, 48, 24,112,244,104,241, 36, 73,129, 64, 80,
+173,217,228,193,131, 7, 8, 13, 13,133,209,104, 68, 65, 65, 1,206,157, 59,135,171,215,174,225,192,137,203, 72,120,254, 12,205,
+ 27,249, 96,194,132, 79, 32, 20, 10,177,123,247,110,116,236,216,241, 31,125, 33, 8,133,194,209, 59,118,236,112,219,181,107, 87,
+254,137, 19, 39, 84,239,190,251,174,100,221,186,117,206, 27, 55,110,148,235,245,122,204,156, 57, 51,243,206,157, 59,186,193,131,
+ 7, 91,110,223,190,221,173,126,253,250,189,104,154,174, 76,104, 89, 2, 24, 9, 96, 76, 94,161, 94,144, 95,168, 1, 75,235,241,
+ 60,225, 5, 10,138,244, 96, 25, 3,146, 82,210, 80,164,101,144,147, 91,136,230,173,122,255, 18, 18, 18,178,208, 96, 48,124, 13,
+ 32,168,166,116, 70, 68, 68,224,206,157, 59, 72, 72, 72,192,243,231,207, 43, 42,197,137, 19,241,199, 31,127,152,109,209,170, 92,
+100, 81, 32,116,190, 8, 58,113, 55, 63,243,153,226,173, 17, 89, 37,239,160,165,110,110,110, 75,221,220,220,164, 23, 47, 94,180,
+173, 83,167, 14,104,154,214,191,108,201,234,218,181,235,162, 29, 59,118,184,249,250,250, 78, 7,176,254,223,144,118,146,196,196,
+213, 91,166, 56, 89,139,147,210,240,116,109, 73, 44, 65, 10, 80, 43,129,144,125, 16,116, 88,252, 98,250,224,121,246,243,119, 45,
+159,200,130,173,114,134,108, 92,124, 50,182,108,217,136, 89, 51,199,225,247, 95, 87,131,101, 5,208, 25, 41,120,215,125, 23, 58,
+ 3, 11,130, 20,160, 69,171,214,184, 18,114, 29, 66, 18, 56,188,107,203, 91,166,179,144, 27, 30, 30,190,249,196,137, 19,159,207,
+152, 49, 3, 44,203,138,151,109,217,162,201,202,202, 90, 1,243,226, 95,189,204, 51,100,203,150, 45,177,243, 55,102, 29,159, 53,
+ 26, 84,194,105, 34, 55, 52, 6, 14,195,230,113, 56,178,138,192, 59,141,144, 43,171,188,137,191,246,210,254,237, 16, 90,165, 74,
+178,252,190, 50,180,106, 88,239, 91, 91, 7,251, 79, 72,107, 15,167,185, 51,166, 10,226,211,181, 56, 90,231,163,162, 63,247,108,
+176, 76,167, 37,191,196, 65,187,206,156, 63, 62,248,231,159,101,159,127,220,191,191,210,223, 20,195,134,153,220, 51,171,202,138,
+101,174, 37, 11, 0,100, 50,153, 93,175, 94,189,208,163, 71, 15,124,240,193, 7,101, 62, 89, 45, 91,182,196,129, 3, 7, 48,116,
+232, 80, 60,122,244, 8,110,110,110,104,220,184, 49, 26, 55,110,140,179,103,207,154,251,146, 3,195, 48, 8, 8, 8, 40,157,117,
+216, 60, 37, 37,197,166,182, 5,169,211,233,144,147,147, 3, 7, 7, 7,136,197, 98,180,107,215, 22,159,127,209, 14, 78,110,191,
+ 33,192,191, 17, 84, 42, 85,217,244,119, 19, 26,219,128, 6, 13, 26, 32, 43, 43, 11, 89, 89, 89,144,203,229,112,119,119,135,171,
+171, 43,214,174, 93,203,173, 95,191,254,188,193, 96,216,156,157,157,109,182, 37,203,213,213,181, 19, 65, 16,139, 52, 26,141,184,
+ 92, 15, 87, 44,151,203, 79,106, 52,154, 21, 10,133,194,100, 71, 80,130, 32, 96, 48, 24, 64, 16, 4,206, 60,119,135, 74, 79, 64,
+153, 18,138, 25,239,251, 84, 16, 94, 66,161,176,198,225, 82,142,227, 84,163, 70,141,114,246,242,242, 68,114, 92, 4,142, 28,225,
+240,211, 79, 63,149,206,138, 68,108, 73,199,160,244,123,183,110,221, 80,183,110, 93,112,102,196,202, 96, 89, 22, 79,158, 60,193,
+254,147, 87,225,230,227,143,164,167,209,120,120,246, 52,234,200, 29,208,180, 85,107, 24,141,198,215, 10,189,241, 38, 96, 52, 26,
+119, 54,108,216,144,211,235,245, 87, 1,108, 12, 11, 11, 27,167, 80, 40,102,158, 58,117,202,125,248,240,225,105,167, 79,159, 94,
+ 7, 96, 87, 88, 88,216,148,239,190,251,174, 7, 77,211,149,206, 22,164, 40,234,247, 47,191,252,178,235,240,225,195, 9, 17,105,
+212, 95,188,176, 91, 64,211, 70,226,171,175,119, 50, 33, 55,174,146, 52,109, 36, 62, 24,245, 37,123,246,207, 48,114,242, 23, 63,
+ 50, 45,223, 29,128,240,240,112,215,192,192,192,239,140, 70, 99,181, 66,171,212, 82, 85,149,133,146,162, 40,140, 27, 55, 14, 7,
+ 14,152,238, 65, 53, 1,240,181,241,177,186,243,195,166,158, 86,132,160,168,156,200,170,143,160, 19,119,243, 51,158,166,189, 85,
+ 34, 11, 0,114,114,114,182, 1,216,198,178,108,134,165,165, 37, 10, 11, 11, 43,171,127,210,176,176, 48,169, 88, 44, 70,239,222,
+189, 29,130,131,131, 99, 73,146, 92,159,150,150, 86,165,226,168,108,152,176,178,225, 68,188,198,172, 67,123, 57, 2,219,117,106,
+101, 29, 99,187,220, 90, 42,208, 62,170, 19, 43,181, 33, 0, 20,232, 92,158,223, 74, 28,169, 36, 50, 37, 45, 91,119,123, 7, 54,
+ 2,203,192,124,186,176, 82,161, 69, 82,212,195,130,188,252,126,202, 66, 61,110,220, 12,199,168,145, 13,160, 51, 16, 96, 89, 18,
+ 69, 42, 29, 64, 9, 65, 2,248,240,163,177,224, 8, 1,114, 51,210, 64, 81, 84, 24,104, 26,111, 25, 22, 76,153, 50,165,223,215,
+ 95,127, 93,111,238,220,185,152, 59,119,174,207,142, 29, 59,182,253,240,195, 15,115,179,178,178,154,161,134,224,227,213,240,212,
+ 57,125, 96,241,236,147,215,183, 22, 12,104,175,121,250, 78,163, 98,203,215, 59,141,144, 43, 20,226,153,128, 66, 14,199, 85,116,
+ 51, 10, 12, 12,236, 82,126,255, 31,195,203, 78,240,101,223, 77,242,209,106, 80,207,163,111,171,150, 1, 95, 44,252,122,161,117,
+212,173, 16,204,255,118, 35,215,176,117,175,194,109,215, 31,234,139, 44,235,246, 43,202,126,118,211, 84,125, 1, 0,125,187, 15,
+ 69,243, 38,109, 95,249,177, 99,183,226, 96,237, 55,174, 60, 64, 70, 86,170,201,141,109,137, 56,168,212, 39,203,148, 41,253, 47,
+ 67,163,209,228,135,135,135, 59,167,164,164, 84,112,124,175, 91,183, 46, 8,130,192,221,187,119,113,231,206, 29,140, 26, 53, 10,
+ 2,129, 0, 66,161, 16, 87,175, 94, 53,203, 26, 83,206,186,244, 4,197,179, 14,251,120,122,122, 86, 53,219,176, 70, 46,141, 70,
+131,130,130, 2, 92,184,112, 1, 13, 26, 52,192, 15, 63,252, 0,119, 55, 23, 44, 92, 56, 27, 44,203, 66,169, 84,130, 97, 24, 83,
+ 45, 90,108,169,181,136,101, 89,100,101,101,161, 94,189,122,216,180,105, 19,214,173, 91,247,157, 66,161, 56,101,110, 26,189,188,
+188,236, 24,134,249,106,192,128, 1,189, 6, 15, 30,140, 62,125, 42,198, 99,221,183,111,159,245,209,163, 71, 87,108,216,176,161,
+175,193, 96, 88,153,153,153,153,101, 10,239,111,191, 21,135, 95,146,189,187, 20,243,135,215,193,152,105,187,177,118,237, 49, 72,
+ 36,146, 10, 13,239,242,229,203,171, 21, 49, 44,199, 53, 20,101,223, 74,155, 61,111,141,243,138, 21,193, 8, 14,206, 4, 73,146,
+112,115,115, 3, 73,146,120,241,226, 5, 72,146,132,143,143, 15, 72,146, 68,106,106,106,169, 79, 96, 30, 42,153,245, 88,121, 47,
+156,132, 86,171, 69,114, 82, 2, 82,226, 98, 97,165, 76,135,220, 70,134,188,136, 39,104, 62, 97, 98, 89,252,167,127, 24,127,232,
+245,250, 63,202,125, 95,115,250,244,105, 61, 65, 16, 31,160,216, 79,163,212,162,241, 29, 77,211,223, 85, 69,242,238,187,239,182,
+252,250,235,175,133,165,225, 54,220,189,191,167, 13, 6, 3, 11, 0,141,154,119,174,160,246,159, 61,123,134,181,107,215, 66,165,
+ 82, 65, 36, 18,137, 76,185, 15, 44,203,150,205, 48,172, 76,132,153, 35,178, 0,192,209,199,243,151,187,161, 87,153,199,113, 91,
+ 53, 97, 49,231, 44, 20, 73, 36, 72,253,219, 43,178, 94,182,108,121,122,122, 46,101, 89,150,227, 56,110,113,185,159, 36,222,222,
+222,215, 47, 94,188,232, 72,211, 52, 54,108,216, 96,151,158,158,110,215,185,115,231,249, 0,170, 20, 90,149, 13, 19, 86, 54,156,
+136,114,179, 14, 37, 18,137,131, 94, 95,165,241,228,149, 89,135, 12, 3, 63, 27,107, 59,228, 33, 5, 58, 39, 99,203,124, 71, 58,
+247,146, 98,226, 35,247,196, 86, 77, 44, 25, 99, 61, 82,169,135,135,204, 14, 44,199, 85, 57, 53, 90,103, 52,158,123, 20,250,176,
+183,183, 87, 3,234, 84,208, 53, 12, 26, 50, 28, 58, 29, 9,173,145, 0, 65, 9, 65, 80, 34, 52,107,222, 10,141,155, 54, 7, 7,
+224,193,189, 91,180,222,104,188,244, 54,149,189, 91,135,207, 71, 17, 4,214,131, 99,185, 74,226,104,213, 27, 50,100,200, 10, 0,
+ 95,212,196,227,252,238,231,163, 72,178,152,167,124, 28,173, 47, 63,159,130,136,123, 66,219,107,161,171, 68,125,222,197,153,172,
+ 96, 2, 50,233,255,102, 29, 10,201,215, 10,205,241, 95, 17, 92, 53, 11, 45, 47, 47, 47, 59, 27,137,244,183,207, 38,124, 98,157,
+248,248, 54,210, 35,239,226,230,181,216,188,131, 71,143,229,170,114, 50, 39,152, 33,178,202,134,249, 28, 93,235,160,174,255,171,
+ 66, 75,106, 37, 7, 0,212,245,111, 11,202,210,214,220, 33,143, 87,172, 89,181, 17, 89,229, 95,216,149,197,208,154, 60,121, 50,
+118,236,216,129, 14, 29, 58,160, 97,195,134,101, 47,123,115,173,102,149, 88,151,204,158,109, 88, 30,133,133,133,240,241,241,193,
+246,237,219, 17, 22, 22, 6,107,107,107,140, 26, 53, 10,133,133,133,101, 2,203, 84,103,120,142,227,158, 93,188,120,177,205,136,
+ 17, 35, 56,161, 80, 72,228,231,231,195,206,206, 14,155, 54,109, 82, 41, 20,138, 51,181, 16, 89,195, 69, 34,209,236,145, 35, 71,
+ 82,141, 26, 53, 66, 70, 70, 6,108,108,108,140, 4, 65, 8, 1,192,206,206,206,104, 97, 97,129, 41, 83,166,160, 69,139, 22,157,
+230,206,157,219, 65, 32, 16,108, 74, 75, 75,219, 93, 93, 93, 34, 8,162,172, 65,157,176, 62, 26,122,125,113, 3,189,121,243,102,
+148,248,186,253,111,136, 32, 46, 14, 48, 97, 38,139,149,149, 21, 26, 54,108, 88,105,217,119,234,212, 9, 15, 30, 60, 40, 30,154,
+ 20, 8,224,236,236,140,155, 55,111,154, 52,147,170, 52, 16,100,120,120, 56,252,235, 58, 33, 44,248, 34,156,100, 66,180,112,119,
+133,103,167, 46,136,141,141,253, 39,173, 89, 4,138,253, 48,122,150,212,193,157, 0, 38,151,251,190, 9,192, 47,230, 16,210, 52,
+205,145, 36, 73, 36, 39, 39, 27,100, 50, 25,225,224,224, 32,144, 72, 36,208,233,116,101,130,235,217,179,103, 8, 10, 10, 66, 74,
+ 74, 10, 28, 28, 28, 72, 91, 91, 91, 24, 12,134, 60, 83,248,253,252,252,224,234,234, 90,193,241,125,194,132, 9,181, 18, 89,227,
+128,128, 29,223,175,172, 35, 33, 41, 91,127,167,190,120, 30,253, 66, 75,234, 33,253,255, 32,178, 0, 32, 63, 63,127, 27,128,109,
+165,223,157,156,156,198, 83, 20,181, 80,167,211,217, 94,189,122,213, 78, 46,151, 19,187,119,239, 54, 46, 94,188, 56,159,162,168,
+ 60,130, 32,126,254,231,197, 33, 34,179, 11,226,124,132,246,238,236, 99, 45,119,107,102,242,252,198,121,194, 6,114,162,105, 0,
+134,100, 70,221, 24, 79,199,181,207, 80,164,147, 28,216,200,106,222,193, 59,231,127,189,252,171,216,232,135,222, 82, 27, 41, 38,
+ 79,249, 26,103,206, 95, 1, 65, 10,113,253,214, 93,232, 13, 12,178,115, 11, 48,242,195,209,240,116,115, 66,228,157, 11, 89, 52,
+203,110,122,187, 68, 54,187,177,247,160,241,246, 18, 11, 89,201, 61, 97,240,199,175,179, 65,146,235,177,100,201, 18, 4, 4, 4,
+ 76, 11, 15, 15,255, 6, 53,196,209, 34, 8,118, 99,179, 46, 31,218,139, 36,197, 60, 28,203, 96,251,225,249, 37,113,180,102, 97,
+211,182,163,205,154,214,125,190,172,186, 56, 90,111,145,200, 42,191,175, 94,104,249,248,248, 72, 44,133,152, 36,164, 4,115, 63,
+251,104,176, 60, 51, 46, 2, 41, 81, 15,139,135, 23, 12, 26, 67,250,211, 40, 83, 66,161,247, 68,197,248, 29, 92,117, 67, 87, 90,
+173, 73, 61,250, 10,156,165, 13,238,203,214, 44, 51, 69,214, 43,156,229,197, 86,249,184, 89, 94, 94, 94, 88,177, 98,133, 41,113,
+180, 94,206,123, 41,250,160,216, 1,190,188, 51,124, 31, 19, 69, 86,165,156,114,185, 28, 57, 57,197, 17, 18,186,118,237,138,174,
+ 93,255, 55,159,193, 96, 48,148, 89,177,172,173,173, 43,179,104,189,194,105, 97, 97, 49,255,216,177, 99,159,220,186,117,107,196,
+156, 57,115,132, 61,122,244, 40, 21,115,106,152,182,182, 91, 5, 78,134, 97,166, 92,184,112,129, 98, 89, 22,219,183,111,199,131,
+ 7, 15, 56,153, 76,182, 72, 38,147,109,180,176,176, 96, 52, 26,205,228,137, 19, 39,142, 94,182,108, 25,217,169, 83, 39,220,190,
+125,155,172, 87,175,222, 88,160, 66, 16,203, 74,243,126,247,238, 93,144, 36, 9, 58, 55, 9,211,230, 31,132,165,133, 0,209,209,
+209,200,205,205,125, 37,136,169, 41,247,179,188,165,164,116,235,212,169, 83,217, 48,100,187,118,237, 64, 81, 20, 30, 61,122, 84,
+213, 48,108,121, 78,206,209,209,177,172,126,136, 68, 34, 92,185,114, 5,223,126,251, 45,188, 29,236,144, 23, 21, 6,215,174,221,
+209,235,147,137, 24, 53,106, 20, 40,138,130,131,131, 67,153,229,215,132,186,244, 58, 40,207,249,137,191,191,255,216,200,200, 72,
+207,102,205,154,185,133,135,135,119, 11, 8, 8,240, 9, 11, 11, 43,253, 46,129,105,190, 57,101,156,247,239,223, 63,178,113,227,
+198, 41,227,198,141, 19,177, 44,203, 36, 38, 38, 26, 1, 16,174,174,174,212,253,251,247,217, 83,167, 78, 65,163,209,192,211,211,
+147,244,240,240, 32, 46, 93,186,196, 70, 69, 69,221,229, 56,238,107, 83,242,206, 48, 76,133, 48, 14,165,159,247,237,219,103,246,
+243, 94,167,177,223, 15, 61, 58, 55,242,202, 78,123, 4, 69,106, 28,152, 2,185, 33,232,196,105,157,153, 34,235,175, 46,163,191,
+147,115,249,211,167, 79, 61,116, 58, 29,196, 98, 49, 54,111,222,108, 88,177, 98, 69,100,118,118,118, 71, 84, 62,163,188, 2,103,
+ 45,103, 29,230, 86,195,249,202,172,195,130, 28,156, 57,113,242,126, 27,171, 33, 59, 49, 45, 45,171,204,177,145, 35, 8,135, 99,
+ 46, 77, 58,202,218, 54, 75, 37,207, 46, 37, 11, 25,245,153,106,242,174,215,232,245,195,135, 12,253,240,242,129, 3,251,173, 22,
+ 47, 93,138,155,119,195,144,147, 95, 4,150,163,192, 18, 4, 22, 46, 92, 12, 87, 39, 7, 40,211,158,170,117, 6,195, 16, 84,140,
+161,245,159, 47,119,130, 32,167, 95, 58,181,123, 61, 73,128, 85,101,196, 72,168,194, 56,217,152, 81, 67, 4,195,135, 15,199,177,
+ 99,199, 16, 30, 30,190,181, 26,145, 85,198,201,113,228,244,176,171, 7,215, 19, 0,171,201,138,145, 8,138,158,203,198,126, 52,
+ 68, 48,106,212, 40, 28, 15,186,133, 3,167,159,111, 57,112, 26,167,241,118,195,252,200,240,214, 2,132,119,108,226,235,209,169,
+ 85, 83,169,128,209, 32, 37, 42, 14,185, 42, 45, 46, 69, 36,230,147, 28, 89,235,216, 58,197, 47, 72, 17,146,146,158, 86,210,179,
+146,150, 52,232, 90,179, 56, 73,146,172, 96,205,122, 29, 75, 86,249,116,186,184,184, 84, 88,206,165,124,195, 93,234, 3, 84,139,
+208, 14,243,147,146,146,108,146,146,146,192,113, 28,238,222,189,107,211,174, 93,187,249,175, 99,205,154, 61,123,118,153,213,234,
+229,125,101,199,106, 66,137, 83,250, 58,163,209,120,120,238,220,185,211,218,181,107,215,123,233,210,165, 4,204, 88,128,247, 37,
+107, 14,205,178, 44, 66, 66, 66,112,236,216, 49,198, 96, 48, 76, 82, 40, 20, 97,229, 78,217, 16, 26, 26,122,105,232,208,161,187,
+ 99, 98, 98,168,200,200, 72,112, 92,205,243, 78, 53, 26, 13, 26, 54,108, 8,154,166,177,106,154, 23, 10, 11,155,129,166,105, 48,
+ 12, 3, 75, 75,203, 50, 43, 94,121,241, 92, 83, 61, 98, 24,230, 21,161,117,247,238, 93, 80, 20,133,142, 29, 59,226,225,195,135,
+101, 22,173,154, 44, 80, 6,131, 33,201,197,197,197,101,249,242,229,101,233,202,202,202,194,197,139, 23,241,238,123,237,209,100,
+210,100,164,165,165,225,231,159,127,134,187,187, 59,126,248,225, 7,228,230,230,130,166,233,191,219,156,222, 47, 50, 50,210,243,
+163,143, 62,202, 12, 11, 11,243, 12, 10, 10,178, 11, 12, 12,180,252,240,195, 15, 51,195,194,194, 60, 9,130,104, 15, 51,157,160,
+ 89,150, 93,176,112,225,194,243, 63,252,240,195,252, 47,190,248,162,221,184,113,227,132, 66,161,144, 77, 77, 77,165,247,239,223,
+ 79, 52,108,216,144, 20,137, 68,196,133, 11, 23,216,123,247,238,221,161,105,122, 21,128,235,230, 88,156,203,139, 44,138,162, 76,
+ 21, 89, 21, 48,211, 89, 50,214,154,204,234,184,113,243, 10,178, 81, 93, 79,195,158,253, 23,147,175,223,126, 26, 79,233,232,153,
+191, 85, 19, 26,224,109, 6, 69, 81,135,252,253,253,199, 79,159, 62,221,162, 79,159, 62,146,101,203,150, 21, 20, 22, 22, 86, 37,
+178, 42,233, 48,255, 45,179, 14,127, 93, 48, 39,104,230,151,205,198,251,126,234, 90, 7,193,170, 76,228, 9, 40,210,198,142, 68,
+ 43, 31, 10,133,217,207,228,167, 47,239,122, 1,160,166,184,108,247, 67,159,132,247,108,218,172,229,209, 85, 63,172,114, 94, 52,
+111,174,240,104,208, 57,112,180, 1,119,175, 94,133,149,136,225,162, 66,131, 51,116, 6,253, 96,188,133, 75,240, 40,110,254,114,
+ 0,192, 73, 7, 7,135,199,159,140, 27,215,208,223,255, 67,200,100, 50, 28, 57,114, 4,127,108,216,192,172, 3, 70, 72,128,135,
+ 83,106,136,167,151,121,167,140,231,209,196, 79, 62,241,107,213,234, 83,200,100, 50, 28, 62,124, 24,187,215,173, 51,153,231, 63,
+142,210,200,240,103,240,191, 8,241, 53,248,104,145, 68,225,157,167,137, 69,119,159, 38, 22,129,229, 56,150,227,116, 36,137,100,
+149,193,240,195,211,231,169,181, 18, 5,165, 67,135,223,125, 63,253,205,141,121,148, 19, 63,181,157,210, 93,137,200, 74, 41,191,
+ 70, 90,249, 70,186,170,207, 70,163, 49,197, 68,250,149,222,222,222,175, 28,171,189,233,151, 51, 75,100,153, 26, 71, 11, 0,114,
+114,114, 20, 0, 22,221,190,125,123, 95,239,222,189, 39, 2, 72,173,101, 25,109,239,210,165,203, 36, 0, 20, 65, 16, 91,211,210,
+210,194, 94,121,224, 21,138, 88,119,119,247, 31,235,214,173, 59,185,184, 99, 74,108,175,161, 33,127,222,172, 89, 51, 67,101,101,
+ 81,213,119,150,101,107, 44,163,252,252,124,180,109,219,246,149, 53, 45, 57,142, 67, 98, 98, 98,169,197,169,236,222, 87, 39,224,
+138,138,138, 38,127,254,249,231,219,132, 66,161, 55, 0,162, 84,228, 50, 12, 67,253,242,203, 47, 82,134, 97, 40, 0, 4, 73,146,
+180, 80, 40,212, 30, 59,118,140,166,105, 58, 73,167,211, 77,254,155, 95, 16,135,137,226,165, 24, 84,145,145,145,141, 74, 44, 89,
+ 41,225,225,225,143, 14, 28, 56, 32, 7,112,176,150,188,215,213,106,245,245, 21, 43, 86,116,218,188,121,243,130,201,147, 39,183,
+ 29, 53,106,148,160,107,215,174, 56,115,230, 12, 19, 18, 18,114, 87,163,209,172, 52, 71, 96,149,148,101,129,151,151, 87,153,224,
+170,225, 89,174,214,145,215,209, 71,178,113,244, 84,119,233,246,149, 23,139,178,211,244,183,140, 69,250,175,119, 1,225,248,127,
+140,140,140,140, 57, 0, 22,255,252,243,207,105, 45, 90,180,144,136, 68, 34,189,169, 34,235,111, 4,205,230, 23,245,255,169,215,
+176,147, 93, 22,126, 94,183, 87,183,142, 50,175, 58,206, 30, 81,113, 25,120,118,251,140,234,241,233,239, 19, 56, 93,222, 32, 0,
+166,120,174,223,211, 25, 12, 13,102,207,157, 61, 77, 44, 20,246,102, 24,166,121,143, 75, 39, 56,138,162,194,244, 70,227,165,146,
+225, 66,237, 91, 92,228,223,253,248,227,143, 13,253,253,253,113,228,200, 17, 92,218,187, 23, 35,179,179,113,133,162, 40, 82, 36,
+114, 60,109, 48,172,129,105, 2,233,187,181,107,215,250, 5, 4, 4,224,208,161, 67,184,176,123, 55, 70,212,142,167,170,182,174,
+ 13, 0,121,201,215,108, 0, 49, 0,222, 1, 96, 1, 64,135,226,165,157,156,202, 55, 97, 37,191,149,254,126,141, 32,136,191,210,
+ 17,182,230,200,240, 47, 35,252, 89,194, 59,111, 58, 21, 26,141, 38,183, 97,195,134,102,205,185, 54, 26,141,213,142,225,210, 52,
+157,226,235,235,107,178,213,194, 20, 81,148,155,155,219,250, 47, 44,140,215,242,197,170,208,136,176,108,130,155,155, 27, 91,218,
+232, 87, 38,194, 42, 59,198, 1, 47,204,249,159,244,244,244, 24, 0, 95,214, 54,157,105,105,105, 71, 97,194,162,209,166,158, 7,
+ 0,121,121,121,111,124, 49, 95,130,227, 82,151, 45, 91,102,150,192, 6,199, 85, 39, 62,195,138,138,138,218,153,242,223, 6,131,
+ 1,255, 32, 14,149,108,100,120,120,248, 68,130, 32,250,160,120, 72, 96, 43,222, 76, 52,239,235, 74,165,242,250,234,213,171, 59,
+109,223,190,125, 38,199,113, 80, 42,149,235,204, 21, 88,101,189,231,204,204, 51,111, 42,227,185, 25,250, 63,247,111, 77,233,174,
+201, 55,204,220, 81,164,223, 13, 30,101,198, 40,142,227,126, 31, 51,102,204,187, 0,118,189, 46, 89, 21,179, 14, 95, 23, 47,216,
+188,130, 22, 87,102,127,251,201, 21, 59,235, 1, 96, 4,141,160, 39, 79, 67,159,115, 6,192,111, 48,205,205,161, 44,191, 52,203,
+174,165,245,250,181,229, 26,151,255, 15,229,236, 16, 16, 16, 48,115,252,248,241, 88,188,120, 49, 46,172, 89, 99,152, 74, 16, 5,
+ 66,128, 59, 95,220,209, 36, 9, 96,158,169, 60, 99,199,142,197,226,197,139,113,118,213,170,218,242, 84, 7, 57, 65, 16, 65, 0,
+ 48,127,254,252,175, 87,172, 88, 97,191, 96,193,130,230, 43, 87,174,252,161,228,123, 68,233,239, 37,109, 93,224,130, 5, 11,154,
+150,251,189, 16,192,253,191,248,126, 86, 26, 25,254,175, 70, 79,158,147,231,228, 57,121, 78,158,147,231,228, 57,121,206,215, 1,
+199,113, 3,138,119, 85,239,171,250, 92,110,143,191, 57,205,197, 19,161,248,142, 27, 15, 30, 60,120,240,224,193,227,191,136,242,
+ 86,172,218,252,254, 6, 81,234,163, 85, 30,219,129,226,105,221, 85,169, 82,115,102, 61,212, 70,217, 6,243,156, 60, 39,207,201,
+115,242,156, 60, 39,207,249,255,142,179, 38,238, 87,174,231, 56,110, 0, 65, 16, 65, 28,199, 5, 86,181, 47, 21, 86, 47,127, 46,
+183,127, 99,110, 7,149,160,212, 55,171,204, 71,235,239, 10,217,195,155, 85,121, 78,158,147,231,228, 57,121, 78,158,147,231,124,
+ 45,148, 14, 1, 2,224,230,207,159,191,224, 95, 56,116,232, 86, 34,178,202,182, 26,135, 14, 57,238, 48,149,154, 10, 27,177, 88,
+ 38, 2, 0,189, 94,109,240,240,128,146, 32,134,255,147, 11,222,242,248,111,162,116,186,119,198, 27, 62,151, 7, 15, 30, 60,120,
+252,255, 64, 86,169,165, 10, 64, 22, 0,162,228,187,190,100,159, 85, 34,200, 94,254, 92,225,247,191, 16, 10, 84,225,252, 46,168,
+ 74,100,101,103,203,156, 4,130, 60, 63,134,209, 54, 6, 0,129,128,140,206,206,182,143,229,184,195,217,181, 17, 91, 78,206,206,
+161, 66,138,242, 48,229, 92, 35,195,164,102,103,100, 84, 12, 29, 79, 16,111,131,192, 51, 85, 68,188,142,216,248,203,133,138,147,
+147,147,139,139,139,203,251, 54, 54, 54,239,229,231,231,223,203,202,202, 58, 94,205,186,135, 43, 8, 2,115,139,235, 21, 86, 3,
+ 88, 80, 13,181, 57,231,190,140,134, 50,153,108, 26, 65, 16, 1, 37, 15, 88,184, 90,173,222, 12,224,233,255,195, 23,146, 5,128,
+193, 2,129, 96,172,147,147, 83,219,244,244,244,101, 0,106, 27,205, 91, 0, 96,182,157,157,221, 72, 59, 59, 59,223,220,220,220,
+120,165, 82,121, 8,192, 90, 0, 53, 78,149, 94,246,133,219,123, 93,251,116, 93, 20,114, 33,228,187,101, 27, 20,183, 95,249,125,
+182,155, 99,239, 94, 29, 22,135,156,190,181,252,235, 77,105,185,102,166,141, 44,217,128,226,217,145, 28, 94, 13,246,250,186, 16,
+ 2, 24, 8,160, 43,128, 16, 0,167, 77,201,119, 21,120, 23,192,215, 37,105, 94, 11,224,202,191,188, 30, 89,186,184,184,172, 2,
+ 48, 80, 32, 16, 68,166,166,166, 78, 2,144,242, 15,167, 73, 0,160, 13,128, 0, 20,135,225,184, 15,211, 66, 56,212, 8, 71, 71,
+199, 64,129, 64, 48,173, 36,180,203,230,156,156,156,160,127,107,193,136,197,226,117,174,174,174,159,106, 52, 26, 53, 65, 16, 92,
+249,120,143, 52, 77,167,100,103,103,183,126,219, 94,106, 4, 65,220,255,151, 39,113, 82, 37,199,170,142,163,149,154, 10, 27,129,
+ 32,207, 47, 51, 61,108,100,154,226,201, 8, 0,112,119,107,126,200,217,181,217,193,212, 84,177,193,181,209, 16, 43,161, 76,176,
+153,162,132, 45,181,122,157,147, 80, 32,204, 54,208,198, 71,164,158,155,150, 30,115,188,210, 96,139, 66,138,242, 72,136,189,226,
+ 76, 27,114, 33,148,186, 67,104,225, 93,101,106,221,221,221,107,149, 75,123,123, 95,107,131, 68, 58, 83, 40,164,122,177, 28, 29,
+192,177, 0, 73, 8,195,105,198,120, 89,164,211,253,148,151, 23, 95, 88,219, 59,216,200, 17,174, 28, 48, 10, 4,122,129,195, 37,
+ 2, 56, 16,147,131,116, 51, 40, 76, 21, 17,175, 35, 54,202, 95,251, 51,128, 57,111,186, 38,121,120,120,216, 7, 6, 6,174,251,
+246,219,111, 45,172,172,172,136,164,164,164, 62,243,230,205,235,252,224,193,131, 47, 83, 83, 83,211, 94, 22,125, 4,129,185, 44,
+203,145, 0, 64,146,196, 60,185,220, 89, 70, 81,212, 43,177,141, 24,134,145,101,101,101, 78,103, 89,142, 40, 57,119, 46,199, 97,
+189, 41,130, 81, 42,149,126, 24,208,172,229,151,171,126, 92,107,229,226,236,108, 73, 51,172,225, 69, 98,130,108,209,252, 57,237,
+226,158, 61, 93,175,213,106,247,215,230,185,166, 40,106,164, 68, 34, 9, 4,224, 95,114, 44, 74,167,211, 5, 49, 12,115,208,212,
+ 6,221,197,197,229, 26, 69, 81,117,204,249, 99,134, 97,146, 50, 50, 50, 58,214,178,136,134,123,123,123,255,214,165, 75, 23, 89,
+219,182,109, 33, 22,139,177,120,241,226,217, 10,133,162, 38,161, 37, 0, 48, 91, 38,147,141,180,180,180,244, 45, 42, 42,138,211,
+104, 52, 71,197, 98,113,207,245,235,215,123,117,232,208,193, 58, 35, 35,131,160, 40,202,229,236,217,179, 31,175, 91,183,174, 15,
+ 77,211, 61,106,106,228, 10,226,184, 69,146,129,254,157, 10,226,174, 44, 2,208,239,229,223,105,173,116, 44, 71,121, 5,106,184,
+135,201, 37,226,195,100,145, 37, 20, 10,215,187,186,186,142,215, 22,199, 10,224, 94,110,112, 0, 64,175,215,231,229,231,231, 55,
+170,205, 35, 15, 96,130,157,157,221,248,175,190,250,202,190, 95,191,126,216,187,119,239,103, 59,118,236,200, 83, 42,149,191,163,
+ 56, 16,102,140,153,156,115,211,211,211,251, 11,133, 66,194,203,203,139,210,104, 52,230, 8, 45, 63, 20, 47,194,124, 31,192,102,
+ 20,135, 46,232, 6, 20, 63,239, 0, 86,151, 10, 55,146, 36, 55, 55,106,212,232,253,168,168,168, 45, 0,190,171,237,179,238,234,
+234,186,109,211,166, 77, 35, 6, 13, 26, 68,101,101,101,121,180,104,209, 98, 95,122,122,122,167, 55,240, 26,249, 68, 34,145,204,
+106,222,188,121,147,152,152,152, 88,165, 82,185,182,228,126, 86,247, 76,121, 2,232,105,103,103,215, 99,225,194,133, 86,129,129,
+129,216,190,125,123,255, 29, 59,118, 20, 21, 22, 22, 94, 70,177, 79,207,107,137, 64,129, 64, 48, 45, 37, 37,197,137,227, 56,184,
+185,185, 77, 3,240,175, 20, 90, 36, 73,174, 31, 58,116,232,248,125,251,246,201, 18, 18, 18,100, 30, 30, 30,101,193,179, 9,130,
+168,117,251,201,227,181,177,189,156,224,170, 57,142,150, 88, 44, 19, 49,140,182,113,154,226,201,136,206, 93,126,177, 5,128,107,
+ 87, 63, 31,225,236,218, 52, 92, 44,150,197, 74,108,164,199,134, 14,236,217,114, 88, 96, 23,194,211,205, 25, 41,138, 76,151, 95,
+ 15, 92,232, 27,116,225,202, 49, 20, 7, 16,171, 20,180, 33, 23, 22,134, 96,196,220,216, 0,167,174,105,216,120, 54, 5,183, 31,
+191,128,186, 32, 27,117, 92, 45,240,227,204,222,112,181,151,213,174,235,229,220,176, 27, 45,144, 28,252,232,195, 49,182,239, 15,
+246, 23,250,184,186,130,227, 36,136,141, 43,106,127,238,226,149, 54, 71, 15,239,159,102, 41,108, 56, 82,149,249,212,228,151, 91,
+ 43, 55, 88,168, 12, 24, 44,160,136,143, 59,180,110,210,227,195,254,157,200, 38,254, 13, 16, 25, 17,213,251,228,159,119,127, 36,
+111, 69, 92,166, 25,110,143,165, 8, 39, 30, 42,170, 13,232,247,138,224,232,209,163,103, 39,137, 68, 82, 33,120,146, 78,167, 19,
+ 93,190, 28,252,110,109,196, 70,233,127,232,245, 58, 82, 40, 20,131, 36,137, 47, 3, 2,154,249,103,103,103, 95, 33, 8,226,183,
+180, 52,243,172, 5,159, 3,226, 60,129,224, 29, 82, 34,113, 99,244,122, 71, 0, 32,196,226,188, 23, 36,217,108,225,215, 95, 91,
+ 81, 20,197,230,228,228, 64,173, 86, 19, 19, 39, 78,148,198,197,197, 13, 77, 77, 77,221, 80, 67,143, 4, 59,118,236,240,115,115,
+115,123,101,245, 88,133, 66, 33, 30, 52,232,253,218, 20,189, 95,243, 22,173,102, 93,184,112,222, 95,153,155,167,221,241,243,182,
+ 80,163, 84,166,171,231,223, 72,184,121,251,110,219, 73,227, 71,127, 30, 29, 29,241, 8,230,173, 87,231,109, 97, 97,113,108,205,
+154, 53, 1,221,186,117, 19, 58, 59, 59, 35, 35, 35, 3, 81, 81, 81, 1,127,254,249,231,224,221,187,119,207,214,104, 52, 67, 1,
+147, 22, 68,109,120,121,207,111,206,150, 14,142, 96,140, 70,184, 55,111, 85,230, 32,249,236,207,139,160, 13, 6,176, 70, 35,252,
+ 3, 7,151, 88,147, 57,248,251,251,215, 54,234,174,123,211,166, 77,255,248,225,135, 31, 68, 58,157, 14,119,239,222,197,149, 43,
+ 87, 88,133, 66, 81, 83, 64, 92, 1, 65, 16, 23,151, 46, 93,234,217,177, 99, 71,235,236,236,108, 48, 12,227,116,226,196,137,105,
+ 45, 91,182,180,241,242,242, 18,239,217,179, 7, 69, 69, 69,160,105,218,193,215,215,215,225,195, 15, 63,212,239,217,179,103, 54,
+128, 85, 85, 89,178,148,113,220, 34, 5,225,219,183,209, 59, 99,145, 78,156,239, 59,171, 47,206,217,212, 39,202, 44, 91,125,125,
+125,173,149,169,178,121, 86, 54,205, 28,148,169,193,243,250,250,250,238, 56, 31,111, 82,103,136, 44,105,108, 62, 58,112,224,128,
+ 44, 42, 42, 74,230,239,239, 15,150,101,203, 34,240,151, 6,156,109,216,176, 97,109,238,227,202, 41, 83,166,204, 27, 49, 98, 4,
+154, 55,111, 94, 22, 20,117,201,146, 37,152, 55,111,158,253,181,107,215,102,239,223,191,127,246,241,227,199, 87, 1,152,111,166,
+ 53,166, 20,230,150,241, 55,207,159, 63, 31,126,236,216,177,209,115,231,206,109, 8, 96, 58,128,197, 57, 57, 57, 93, 74,172, 49,
+226, 18,161,245,201,236,217,179,167,206,159, 63, 31,253,251,247, 95,124,247,238,221,239,107,105,229,163,104,154,238, 63,104,208,
+ 32,202,104, 52,194,210,210, 18, 70,163,177,254,235, 26, 37, 0,108,154, 60,121,242,212, 41, 83,166,192,222,222, 30, 70,163,209,
+239,192,129, 3, 59, 22, 47, 94,252, 30,128, 9, 85,164,117,236,212,169, 83, 63, 24, 51,102, 12, 90,183,110, 13,129,160,248, 54,
+174, 89,179, 6,203,151, 47,183,186,120,241,226,224, 61,123,246, 12, 62,121,242,228, 81, 84, 92,182,203, 44,176, 44, 11,129, 64,
+128,228,228,100, 56, 59, 59, 75, 88,150,189, 64, 16,196,246,220,220,220,227,255,162,198,124,245,240,225,195, 63,218,183,111,159,
+ 21, 0,252,248,227,143,152, 53,107, 22, 92, 92, 92, 96,101,101,197, 75,157,127,143, 69,107, 82,141, 22,173,154,160, 86,171, 91,
+ 45,248,226, 99,144,100,113,175,177, 65, 61,111,172,248,122, 18,113, 50,232, 66,171,106,109,240, 82,119,196,220,216, 0,137,215,
+ 76,232,140, 52,238, 60,126,142, 75, 63,246, 41,110, 45,251, 45,132,206,208,163,180,177,113, 16, 91, 88,172,214, 51,204, 77,184,
+186,222, 69, 98, 98, 86, 77, 34, 75,238,234, 18,180,117,235, 42,139,128,250,141, 96,160,141, 72,205, 76, 5, 65, 72,224,233, 97,
+141, 79,198,246, 19,118,233,226,238,244,205, 55,219,206,164,179, 24,162,206,126, 90, 99,192, 80, 63, 39,236,106, 21,208,112,196,
+135, 3, 58, 74,154, 5, 52,133, 72, 98, 81,246,219, 59,173, 91,227,157,214,173,201,249, 69,133,189,238,221, 15,237,117,228,226,
+ 29,157,218,152,120, 40, 54, 27,227,106,120,201,148, 9,142, 25, 51,102,192,197,197,165,194, 9, 25, 25, 25,248,243,207,203,149,
+ 94, 99,198,139,172,236, 63,190,255,254,123,235,188,188,188,126, 59,119,238,236,206,178,236,247,233,233,233, 55, 76, 33, 25, 3,
+212, 41,144, 72,122,140, 95,187,150,109,249,254,251,148,157,171, 43,201, 50, 12,145, 22, 31,239,248,243,134, 13, 93,115,159, 61,
+179, 80, 57, 56,228,230,105, 52,234,216,216, 88, 72,165, 82, 66, 32, 16,180,169,132, 42,131,227,176,154, 36,137,121, 4, 65, 64,
+ 34,145,198, 78,153, 50,229, 97,201,111,117, 78,159, 62, 45, 27, 56,112,160, 26, 64, 2, 0, 72, 36, 82, 15,138, 34,253,138, 29,
+ 8,177,218, 20,129,105,105,105,249,197,119, 63,172,178, 84,230,230,107, 12, 42,149, 81,110, 99, 69, 16, 86,214,148,178,160,176,
+ 48, 85,145,165, 91,184,108, 57, 53,249,147, 49, 95,168, 84,170,105,166,138,172, 22, 45, 90,220, 59,118,236,152,179,163,163, 35,
+242,243,243,145,147,147,131,123,247,238,129,101, 89, 12, 29, 58, 84,210,190, 93,219, 86, 95, 47, 92,116, 59, 57, 53,245, 61, 83,
+196,150,165,131, 19,126,236,216,178,184,177, 78,200, 41, 43,159,237,195, 3,203,206, 89,158, 82, 80,106,157,123,157, 37,164,222,
+235,209,163,135, 8, 0, 38, 76,152,160, 44, 44, 44, 92, 1, 96, 31,106,142,232, 63,123,209,162, 69, 30,245,234,213,243,217,183,
+111, 31,138,138,138, 0,192,185, 94,189,122,240,243,243, 99, 66, 66, 66,224,231,231, 7,107,107,107, 92,187,118, 13,183,111,223,
+ 70,235,214,173,173, 69, 34,209, 8,131,193, 80,169,208,234,218,167,235, 34,201, 64,255, 78,141,222, 25, 11, 43, 27, 55,236,216,
+127, 16, 49,161,187, 59,233, 12, 81,139, 68,204,213, 49, 26, 78, 50, 46, 43,201,106,126,157,214, 93, 28, 27, 52,125, 31, 62,239,
+ 60,116,210, 50,215,159, 47,234, 85,111,165, 64,170,221,189,108,173, 34,167, 42,145, 5,224,199,161, 67,135, 14, 63,112,224,128,
+ 29, 0,132,133,133, 33, 35, 35, 3,114,185, 28, 82,169, 20, 66,161,176,108,125,210, 90, 98,220,230,205,155,203, 68, 27, 77,211,
+101,171, 0,200,100, 50,116,238,220, 25, 45, 91,182,196,241,227,199,199, 85, 33,180, 58,182,107,215,110,175,143,143,143, 87,249,
+131, 42,149, 10,163, 70,141, 2, 0,116,233,210,165,135,133,133, 5, 87, 42, 8, 21, 10, 69,209,253,251,247,123, 1,184, 91,133,
+178,212,164,166,166,226,171,175,190,194,139, 23, 47, 62,219,186,117,107, 34, 0,169, 88, 44, 46,235, 31, 3,240,107,218,180,233,
+250, 89,179,102, 33, 46, 46, 14,145,145,145,247, 80,251,161, 84,198,210,210,242,153,209,104,108, 77,211, 52, 52, 26, 13,134, 12,
+ 25, 34, 61,122,244,104, 6, 69, 81,209,217,217,217,163, 81,236,147, 98, 42,164, 0,214, 78,153, 50,101,234,220,185,115,113,249,
+242,101,156, 60,121, 18, 99,198,140,193,204,153, 51, 97,101,101, 53,126,230,204,153,183, 81,188,160,249,203,232,177,121,243,102,
+ 48, 12,243,202,179, 33,149, 74,209,177, 99, 71, 52,105,210, 4, 39, 79,158,236,241, 26, 66,203,167, 99,199,142, 98,150,101,161,
+ 82,169, 16, 18, 18, 98,101, 97, 97, 97,229,233,233, 57, 17,192,191, 70,104,249,248,248, 76, 57,112,224,128, 85,249,209, 31,137,
+ 68,130,114,245,128,199, 63,111,209,170,182,135, 85, 6,189, 94,109, 16, 8,200,104,119,183,230,135,174, 93,253,188,108,232, 16,
+ 32,163,245,122,181, 1, 0, 24,150,131, 82, 77,195, 66, 66, 34, 33,189, 16, 17,241,217,149, 81, 85,152,162, 41,180,240,134,164,
+109, 2, 56,142,131,222,192, 64, 87,144,142, 21,103,212,136, 74,209, 66,175,202,131,222, 80,236,134,229,228,228, 36,184,112,225,
+220,172,224,224, 63,167,254,254,251,239, 84,138,173,109,100, 33,208,170, 50, 78,123,123, 95,107, 86, 44, 62,180,101,235, 98, 11,
+142,138, 71,108,146, 10, 13, 60,219,194,201,206, 11,233,217, 42,220,140, 60,139,232,167, 65,168,231,230,131,153, 95,244,149,126,
+247,195,190,131, 34,186,174,119,126,254, 11,101, 85,233, 44,237, 69,109, 59, 31, 11, 58, 55, 30, 76, 78, 28,152,194,180, 87, 78,
+176,146,123,227,157,110, 30,144,123,213,151,140,155,185,124, 44, 80, 65,104,149,231,204, 32, 8,114, 11, 73, 18, 83, 9,130, 64,
+243,230, 45, 82,214,174, 93, 91, 89, 40,112, 67,243,230, 45, 82, 40,138,244, 44,126,177,147,155, 57,142,205,168, 33,157, 21, 68,
+141, 88, 44,153, 91,108,246,119, 75, 62,115,230,140, 97,248,240,225, 88,179,102,141,120,222,188,121, 11, 41,138,154, 80,201,240,
+ 94, 5,206, 33,128,183, 93,253,250,189,191,191,121,147, 19, 26,141, 68,238,189,123,202,124,133,130, 78, 47, 44, 20, 31,142,142,
+238,255,233,156, 57, 98, 47, 47, 47,220, 8, 10,114,204, 82,169,184,124,157, 78,147,159,159,207,209, 52,125,175, 10,206, 5,114,
+185,179,108,199,142, 29,126, 83,166, 76,121,168, 80, 40, 22, 0,128,155,155,219, 10, 0, 77, 0, 36,148, 59,134,173, 91, 15,166,
+ 78,156, 56, 49, 54, 51, 51,115, 65,117,233, 44,135,166,206,114,103,217,254,109,123,158, 56, 88, 91,144,114, 79,119, 82,104,103,
+ 39,160,197, 22, 34, 22,208,212,243,170,111, 9,160,105, 21,215,190,204, 73, 88, 88, 88, 28, 59,117,234,148,179, 80, 40, 4,195,
+ 48,144,203,229,120,241,226, 5,242,243,243, 81, 88, 88,136,231,209, 81,168,235,229,133,111,230,207,115,155, 62,111,254, 49,181,
+ 90,221,250,165,198,236,213, 5,144,141,134, 87, 44,123,149,173, 98,240,242,176,151,137,229, 94, 30, 47,146,146,146, 96,101,101,
+133,128,128, 0,171,155, 55,111, 94,175, 70,100,149, 95, 4,120, 68,135, 14, 29,172,247,237,219,135,214,173, 91,195,214,214, 22,
+ 33, 33, 33, 8, 11, 11,131,193, 96, 32,139,138,138, 96,101,101,133,149, 43, 87,194,219,219, 27,133,133,133, 72, 72, 72,112, 20,
+ 10,133, 78, 47, 69,180, 47,227, 12,185, 16,242, 93, 65,220,149, 69,233,196,249,190, 59,246, 31,196,196, 15, 71,194,149,139,191,
+110, 91,159,248,174,247,192, 14, 75, 56,202, 43,208,210,186,185,125,195,128,129, 16,137,173, 48,125,238,114,196,134,159,182, 87,
+ 23, 62,249,140, 96,146,189,150,173, 61, 60,163,146,188, 19, 0, 72, 47, 47,175, 79, 15, 31, 62,108, 93,102,122,161,168,178, 53,
+ 15,203, 47, 2, 95,205,130,239, 53,222, 79,130, 32,240,226,197, 11, 56, 59, 59,195,202,202,170,108, 1,241,168,168, 40,220,185,
+115, 7,165,171, 81, 84,193, 57, 58, 56, 56,216,203,210,210,178,194, 9, 28,199, 33, 59, 59, 27, 52, 77, 67, 38,147,129, 97, 24,
+ 24, 12, 6, 24,141, 70,104,181, 90,171, 38, 77,154, 76, 51, 26,141,119, 43,227,100, 89,246,203, 17, 35, 70,116,184,123,247,174,
+239,134, 13, 27,160,215,235,127, 76, 79, 79,199, 7, 31,124, 0,150,101,209,163, 71,143,119, 57,142,139, 89,184,112, 33, 0, 96,
+214,172, 89, 70,149, 74, 53,165, 54,121, 47, 65,147,119,222,121,199,247,242,229,203,232,212,169, 19,116, 58, 29,214,172, 89, 99,
+179,117,235, 86,155, 61,123,246,200,231,206,157,251, 91, 86, 86, 86,159, 26, 56, 9, 0, 63,186,186,186, 78,237,218,181,171, 69,
+201, 26,166,216,189,123, 55,190,249,230,155, 3, 0, 22,158, 59,119,110,233,201,147, 39,199,126,250,233,167,248,230,155,111,102,
+230,231,231,239,172,138,243,249,243,231,144,203,229,176,177,177, 41,126, 89, 26, 12,120,244,232, 17, 46, 93,186,132,198,141, 27,
+155,146,167,170,210,233, 51,116,232,208,223,246,239,223,111,157,156,156,140,107,215,174,161,110,221,186, 80,171,213,166,172, 13,
+ 27,252, 23, 52,216, 85,114,106, 52, 26,109, 82, 82,146,213,170, 85,171,224,230,230, 6, 31, 31, 31, 72,165, 82, 16, 4, 1,163,
+209, 88, 93, 56,129, 26,211,217,165, 11, 4,217,169,246,131,108,237,236, 63,227, 56, 78, 80, 80,144,183,205,128,252, 35,241,241,
+208,255,141,121,255, 47,163, 21,128,135,168,184,230,161,162, 76,104, 5, 5, 5,113,129,129,129, 68,233,222,195, 3,202,236,108,
+251, 88,103,215,102, 7,157, 93,155,150,172,251, 69, 70, 83,148,125,172,139,139, 90, 9, 0, 6,154,195,173,232,124, 60,121,150,
+142,176,103,233,176,148,152,102,124,209, 25,232, 98,143, 85,142,131,182,232,127,157, 86,131, 58, 15, 58, 67,177,187,135, 94,167,
+ 70, 65, 86, 36, 49,124, 72, 47,233,212,169,147,225,230,230, 33,175,138,207, 32,145,206,156, 62,171,191,157,131,157, 16, 65, 55,
+207,227,221,198, 67, 32,149, 8,145, 83,160, 5, 8,224,105,252, 37,128,181, 70,120,108, 18,218, 53,149,161, 79,111,127,171,227,
+ 71, 98,230, 0, 88,108, 74,122,233,148,123, 16, 53,236, 7, 33, 99,132, 49, 59, 6,108,126, 34, 96,233, 10, 13, 97,133, 28, 69,
+ 34,162,175, 31, 53,169,207,200,178,236,103, 78, 78, 78,249, 11, 23, 46,236,218,160, 65, 3,195,180,105,211, 30, 39, 38, 38,126,
+249, 82,111,229,167,205,155, 55,227,217,179,103,169,223,127,255,125, 72,118,118,246, 34, 51, 11,122, 62,199, 97, 93,201, 80, 92,
+246,137, 19, 39,222,185,122,245,234,204,117,235,214,185,124,254,249,231,226,207, 63,255,252, 19, 0,223, 86, 55, 92,168,148, 72,
+122,126,127,237, 26, 71,167,164,232,254,248,229, 23,241,166, 91,183, 22, 26, 88,214,221,201,217,153,104,223,174,157, 74, 70,146,
+217, 57, 25, 25,180,220,215,151,122,113,233,146, 35,103, 97,145,118,238,220, 57,101, 81, 81, 81,149, 75,231, 80, 20,165,174,108,
+184,176, 50,184,185,185,233, 43,243,225,170,166, 65, 84,178, 28,103,176,171, 87,143,235,221,227,189, 6,207, 98,226,227,165,118,
+118, 84,195, 6,117, 27, 69, 68,191,184,199, 49,140,150, 32, 8,165, 73, 99, 37, 20, 53,114,221,186,117,205,108,108,108,192,178,
+ 44,108,109,109,145,149,149, 5,189, 94, 15,165, 82, 9,125, 97, 1,244, 5, 5, 8, 75,124,129, 14, 93,187,226,255,216,187,234,
+240, 40,174,246,123,102,125, 55,187,113, 23, 8, 16, 8, 16, 8, 4,183, 64, 8, 78, 9, 20,247,162,133, 82,130, 67, 9, 80,138,
+ 20, 8, 45,238, 78,113,183, 18, 92,131, 4,143, 19, 72, 32, 46, 27,247,245, 29,249,253, 17,105, 8,145, 77,160,223,239,251,218,
+ 61,207,179,207,202,204,156,189,115,239,157,185,103,222,247,189,239, 29,209,175,143,203,177,203,127,142,162, 40,234,116,149,254,
+188,150,173, 75, 45, 89,171,235,153,255,229, 11, 74,204, 45, 21, 93,191,181,118, 6, 79, 34, 65,239,249, 62, 95,114,161, 7, 94,
+187,118,237,250,208,161, 67,191, 89,184,112, 33, 75, 42,149,222,140,141,141,237, 2,224,109, 85, 7, 73, 36,146,134,153,153,153,
+ 40, 44, 44,132,177,177, 49,182,110,221, 10,107,107,107,200,229,114,188,122,245,138,113,112,112, 32, 30, 62,124, 8, 7, 7, 7,
+100,101,101, 65,163,209, 64,161, 80,164,170,213,234, 74,221,229,197,238,193,254,243,250,225,198,251, 55, 71,187,218, 19, 49,175,
+ 70, 46,240,248,240, 62,244, 93,194,237, 59, 79,127, 37,149,194,196,220,164,187,139, 27,180, 11,180,152,185,104, 21,118,110, 88,
+129,247, 47, 30,101, 91,215,205,223, 37, 34, 84, 71,170, 42,175, 76, 38, 83,190,123,247,206, 48, 56, 56, 24, 4, 65,192,216,216,
+ 24, 6, 6, 6, 21,138,173, 90,128, 85,214, 2, 37,147,201,192,227,241, 96,110,110,142,131, 7, 15,150, 14,188,245,235,215,175,
+138, 99, 95,239,222,189, 71,213,173, 91,215,176,236,143,237,218,181,195,244,233,211,177,103,207, 30, 4, 4, 4,124,178,158,102,
+106,106,170, 84,171,213, 86,117,222,185,105,105,105,253,134, 12, 25,242,230,241,227,199, 70, 7, 15, 30, 4, 73,146, 21,190, 14,
+ 28, 56,128,231,207,159, 47, 7,240,174,150,253,168,233,176, 97,195, 30,157, 56,113,194, 36, 35, 35, 3, 37,125, 67, 38,147,129,
+162, 40, 52,105,210,132, 32, 73,178,186,184, 55, 22,155,205,190,188, 99,199,142,129,223,127,255, 61, 56, 28, 14,212,106, 53,118,
+236,216,129,197,139, 23,167, 21, 63,148,106, 0, 44, 59,114,228,200,132, 65,131, 6,193,205,205,205,229,193,131,202, 35, 59, 10,
+ 11, 11, 81, 88, 88, 8, 46,151, 11, 27, 27, 27,172, 89,179, 6,106,117,209,109,165,113,227,198,165,151, 49,128,125,141, 27, 55,
+ 30, 24, 25, 25,185, 17, 69,177,107,159,193,198,198,102, 8,195, 48,211, 40,138, 42,232,218,181,171,249,169, 83,167, 12,147,147,
+147,241,230,205, 27, 44, 95,190, 60,135,166,105,138,166,105, 66,161, 80,196, 88, 89, 89,189, 17, 8, 4, 34,185, 92,158,157,149,
+149,181, 14,192,205,255,175,145,156, 32, 8,130,203,229, 98,202,148, 41,224,112, 56, 16,137, 68, 80, 42,149,208,106,181,165, 98,
+ 30, 53,116, 75, 55,106, 36, 49,231,128,247,189,169, 97,179,185, 35,230,120, 89,218,218,217,195,196, 72,128,136,136,183, 93,238,
+223,187,179,131,207,121,191,151, 86,107,247,190,143,203,251,219, 23,187, 47,175, 69,254, 71,133,214,103,107, 30,114, 42,110,204,
+ 17, 20,195,156,203, 76, 78,230,107,248,124,131,200, 18, 43,151,181,181, 60,159, 32, 70, 80,150,205,191, 5,169,209, 22,223, 40,
+152,226,151,142, 66, 75, 75,225,195,251, 48, 60,190,253, 39, 44,228,201,200,140,105, 5,240, 90, 64,173,200,131, 82,173, 41, 22,
+ 37, 20,130,223,220, 67,126, 94, 54, 92,219,122, 1, 44,214,243,202,248,140,205, 9,175,206,109, 90,178, 63, 36,132,161, 93,227,
+225,112,114,232,138,120,105, 62,114, 11, 85,200,201, 87,162,149,171, 15, 50,114, 20,200,151, 43,241,246,195, 49,216,219, 57,177,
+ 8, 78,116, 79, 93,133,150,234,237, 69,168,222, 93, 1,207,177, 11,248, 77, 6,129,237,232,142,132,144, 7, 8,190,177, 5, 73,
+225, 79,192,208, 20,108, 27,183,215,245, 34,217,113,243,230,205,246, 93,186,116,225,244,234,213,203,237,250,245,235,110, 82,169,
+ 52,184, 88, 96,184,245,234,213,203,205,210,210, 18,219,182,109, 83, 16, 4,177,163,150,141, 93,106, 1, 75, 79, 79,127, 9, 96,
+237,197,139, 23,119, 76,159, 62, 29, 86, 86, 86, 45, 82, 82, 82, 42, 61, 48,131,203,117,155,184,110, 29,195,101,179,153,211, 59,
+119,242, 86,221,188,185,233,143, 35, 71,120, 61, 60, 61, 9,134, 97, 16, 20, 20,100,240,219,206,157, 6, 99,191,253, 54, 46, 62,
+ 61,157,244, 15, 8,208, 72,147,146, 10,210,101,178, 85, 82,169, 52,245,255,163,103,107,181,218,103, 49,177, 49,246,109, 59,180,
+178, 12,140,136, 9,239,219,163,115,103, 22,139,197,122, 31, 29, 31, 96,105,105,100,112,231,246, 29,141, 86,171,125,166, 11,151,
+ 64, 32,240,234,209,163, 7, 39, 39, 39, 7,118,118,118,200,200,200, 64,114,114,114,145,197, 33, 47, 7,154,188, 60,104,243,115,
+ 65,201, 10, 17,243,234, 37, 90, 57, 53, 16,156, 19, 8,188,228,114,121,149, 66,171,228, 41,179,162,133,174, 75,126,227, 27, 26,
+130, 47,145,128,168,185,219,240, 91, 19, 19,147,197,185,185,185,215, 1,172,209,104, 52,222,139, 23, 47,110,183,125,251,118,139,
+181,107,215, 26, 77,155, 54,237, 92, 97, 97, 97, 43, 20, 45,170, 90,217, 0,246,145, 36, 73,115, 0,214,247,238,221,131,149,149,
+ 21,242,242,242, 74, 44, 45,106,185, 92, 46,204,202,202,130, 74,165,130, 90,173,134,145,145, 17, 94,191,126,157, 77,146,228,213,
+234, 10,103,212,144, 88,163,210, 68,252,108,238, 34, 78,209,144,166, 30,233,217,116,206,202, 77,210,213, 0, 54,245,115,114, 58,
+160,161, 31,197, 68,133, 93, 53,141,125,245, 48, 59, 37, 74,230,116,240,122, 76, 85, 49, 90, 12, 0,154, 32, 8,166,113,227,198,
+200,200,200, 0,155,205,134,129,129, 1, 36, 18, 9,150, 44, 89,130, 29, 59,118,212, 70,104, 9,197, 98,241, 58, 22,139, 53,138,
+197, 98, 89, 82, 20, 5, 31, 31, 31, 12, 28, 56, 16,124, 62, 31, 26,141,166,212,162, 89, 98,165,170,198,210, 17,244,252,249,115,
+163,231,207, 63,185,109,121, 90, 88, 88,220, 87,169, 84,136,142,142,198,229,203,151,187, 3,240,175, 97, 91, 71, 7, 5, 5,245,
+115,119,119, 63,218,166, 77,155,134, 12,195,160, 69,139, 22, 24, 61,122, 52,142, 29, 59,134,224,224, 96,228,229,229,209,119,238,
+220,249, 3,192,198,154,142,225,197,245,219,100,216,176, 97, 79, 78,158, 60,105,154,149,149, 5,133, 66, 1,153, 76,134,115,231,
+206,161, 75,151, 46,176,176,176,192,137, 19, 39, 72,134, 97,170,106,123, 22,139,197, 58,184,119,239,222,129, 83,167, 78,197,174,
+ 93,187,112,250,244,105, 12, 26, 52, 8,163, 70,141, 66, 70, 70,134,245,134, 13, 27, 38, 20,187, 9, 87,140, 30, 61, 26,133,133,
+133,120,245,234, 85,132,142,215, 60,114,115,115,145,155,155, 11,145, 72, 84,246, 26, 35, 0, 28,219,178,101,203,152,185,115,231,
+194,201,201,105, 69, 76, 76,204, 22, 84, 48, 75,148,166,233, 31,146,147,147, 77, 57, 28,142, 57, 73,146, 72, 76, 76,196,235,215,
+175, 49,115,230,204,236,236,236,236,233, 0,226, 1, 44,155, 50,101,202,154,249,243,231,151,246,165,249,243,231,251, 93,191,126,
+189,223,127,218,154,211,184,177, 73,115, 62, 91, 48, 39,167,128,109,158,147,147, 83,122,239, 80,171,213, 80,169, 84,159, 88,178,
+120, 60,174,121,187, 86,117,175, 41,228, 5, 75,223, 70,229, 86,186, 64,186, 75, 67,227,150, 6, 98,227,185, 93,186,246, 24,215,
+167,223, 96, 54,169,213,226,214,173,171, 56,116,104, 55, 60,221, 27,195,169, 81, 11,204,154, 61,199, 88,165, 38,125,238,220,185,
+185,216,228,249,227,155, 5,249,185, 75,170,226,252,151,227, 90,177,184,186, 86,161,235,176, 34, 5, 89,156,194, 33,167,248,171,
+133,169,169,233, 78,138,162, 60,141,140,140, 64,231, 70,226,237,235, 23,200,206,225, 66,165,160, 64, 51, 69, 98, 75, 39,225,162,
+ 82,227,209,173, 43,216,186,101, 19,178,178,178,224,222,173, 59, 10, 57,117, 80,183, 78, 93, 40, 21,242,226,139, 6,208,168,181,
+176,180,118, 68, 96, 96,176, 54, 95, 38,171,244,134,196, 19,106, 92,234, 90, 55,134, 74,211, 9, 66, 62, 31,121, 5,106,228, 20,
+139,172, 19,231, 71, 66, 37, 87,128, 84,107, 64,170,181,176,172, 59, 12, 77,173,123,128,166,174, 54,175, 81,245,209, 20, 52,177,
+143,160,137,125, 4, 81,167,217,248,211,119, 76,185,129, 84,183,117,119, 51, 50, 50,210,195,195,195,175, 6, 5, 5, 13, 25, 57,
+114, 36, 30, 60,120, 48, 13,192,140, 98,247,205,180,145, 35, 71, 34, 40, 40, 8,225,225,225, 87, 51, 50, 50,210,191, 70,203,243,
+249,124,133, 74, 85, 52,198, 26, 24, 24, 8,171,217,215,190,221,208,161,172,188,192,192,252, 45, 79,159,174, 56,112,240, 32,175,
+ 87,207,158,132,150, 36, 65, 83, 20, 26, 57, 59, 19,125,250,244, 17, 31, 59,123,214,156,173,213, 62, 95,228,237,125,111,207,248,
+241, 5, 47,101, 50, 93, 3,205,235, 21,187, 12, 1,160, 94, 21,191,233, 12,149, 74,181,253,135,239, 39,245,242,127,244,164, 78,
+221, 58,246, 70,183,238,248, 7, 11, 68,124,150, 83,253,134,236,156,188,108,206,234, 21, 75, 69, 42,149, 74, 87,209,234, 98, 97,
+ 97,129,212,212, 84,124,248,240, 1, 42,149, 10, 90,173, 22,180, 92, 6,117, 78, 46,212,121,217, 32,148, 10, 8, 40, 10,202,204,
+ 52,212,115,106, 0,252, 53, 35,177, 90, 87, 84, 69, 66,171,228, 93,104,100, 4,158, 88, 2, 22,151,171,243,226,232, 0,218,180,
+111,223,254,236,133, 11, 23,120,147, 39, 79,238,112,247,238,221,157, 0,226,147,147,147,123, 46, 95,190,252,229,206,157, 59, 5,
+211,167, 79,111,178,113,227,198, 9, 0,246, 85, 70,162, 84, 42,207, 94,187,118,109,172,163,163,163,117,104,104, 40,148, 74, 37,
+104,154, 70,255,254,253,129,162,216, 26, 0,192,251,247,239, 21, 74,165, 50, 61, 44, 44, 44, 63, 62, 62, 94, 3, 29,102, 9,174,
+220, 46,125,150,159,250,104,168,181,141,253,115,161,168, 94,125,166, 48,112,200,188,225,246, 27,182,156, 79, 86,222,140,142, 46,
+248,185,119,131,245,178,130,144,153, 38, 14,133,187,110,250,197,232, 18, 8, 95, 58,187,208,220,220, 28, 28, 14, 7, 92, 46, 23,
+ 60, 30, 15, 4, 65, 96,246,236,217,216,191,127,127,117,174,195, 79, 68,150,161,161, 97,248,170, 85,171, 28,166, 79,159,206, 19,
+ 10,133,200,201,201,193,137, 19, 39, 48,101,202, 20, 28, 58,116,168,194,248, 23, 29, 92, 74,229,173,165,115,199,143, 31, 15,181,
+ 90,141,209,163, 71,227,192,129, 3,115, 41,138,242,175,197, 37,253, 60, 56, 56,216, 57, 56, 56,216, 8,192,160, 81,163, 70, 29,
+ 25, 54,108, 24,252,253,253,113,245,234,213,238, 40,154,244,161, 0,224, 11,192,170,248,189,170,235, 83,108,109,109,189,155,166,
+233, 65,150,150,150,193,141, 27, 55,118, 61,121,242,164, 73,122,122,122,201,228, 7,196,198,198,226,240,225,195,210,131, 7, 15,
+230, 83, 20,101,206, 98,177,174,229,230,230, 46,169, 66,176, 29,220,178,101,203,164, 98,119, 32, 46, 92,184,192,108,218,180,137,
+ 88,190,124, 57,114,114,114,224,233,233,137,189,123,247,206, 41, 44, 44,116,219,180,105,211,247, 35, 70,140,192,234,213,171, 33,
+147,201,182, 84,247,176, 82,133,248, 34, 0,116,222,178,101,139,227,220,185,115,113,225,194, 5,180,105,211, 70, 20, 19, 19,179,
+ 7,192,212,138,218,143, 97, 24,196,196,196, 64, 46,151,227,201,147, 39, 88,177, 98, 69, 78, 25,145, 53,103,198,140, 25,107,230,
+204,153,131,117,235,214, 49,161,161,161,233,195,134, 13,179,222,191,127, 63,187, 81,163, 70,115,228,114,249,127, 76,104, 53,105,
+100,182,190, 93,155,174,139,109,237, 27,225,196,201, 83,200,206,206, 46,173,147,146,122, 97, 24, 6, 5, 5, 5, 72, 77, 77,133,
+177,145, 33, 54,108, 92,243,205,143,211, 38,213, 65, 81, 26,140,207, 77,150, 78,166, 27,135,141,154,188, 96,244,216, 73, 8, 13,
+126,131, 99, 71,246, 33, 44, 52,168,148,143,212,106, 16, 25,241, 26,145, 17,175, 97,109,227,136, 62,189,186, 19, 99,198,140,233,
+ 63,126,236, 40, 75, 0,127, 91,234,136,255, 97,107, 22,240,121, 30,173,253,159, 8,173,106,204,117, 22,166,166,166,225,103,206,
+156, 49,119,119,119,103,147, 36,137,155,183,110, 97,230,140,239, 48, 97,188, 15, 52, 48, 5,169,230,129,230, 9,117, 42,137, 66,
+ 33, 7, 3, 6, 50,153, 12, 1, 1, 1, 96,104, 18,199,246,111, 2,195,208,165, 66, 11, 96,160,214,104, 96, 95,183, 9,118, 31,
+ 88, 75,130,203,125, 9,109,197,169,107,242,179,216,148,150,100,144,156,158,128, 4,105, 24,140, 13,235,130,195,173,139,172, 92,
+ 57, 56, 44, 27,104,149,239, 65, 21, 31, 43,151, 37, 65,161,249,178,246,163, 42,176,158, 50, 53,184,233, 42, 20,138,227,199,143,
+ 31,255,102,243,230,205,252, 1, 3, 6, 52, 62,127,254,124,103, 0, 24, 48, 96, 64, 99, 35, 35, 35, 28, 63,126, 92,173, 80, 40,
+142,127, 69,139, 79,143,246,237,219, 35, 39, 39, 7,177,177,177,193, 85,158,155, 90,109, 46,177,178, 98,167, 63,120,160,205,200,
+201,169,211,163, 71, 15, 66, 75,146, 96, 17, 4,178,243,242, 16, 31, 23, 7, 19, 19, 19, 34,252,253,123,201,142, 89,179, 46, 53,
+118,117,229,148,204, 72,212, 5, 87,175, 94, 53, 64, 81, 92, 86,149,191,213, 16,178,244,180,212, 73,222,222,222,151,142, 31, 63,
+ 97,156,150,158, 22, 41,224,243, 73,137, 68,104, 55,126,220,143,156,220,220,220,177, 0, 10,117, 37,203,201,201, 65, 76, 76, 12,
+ 68, 34, 17,120, 92, 46,104,133, 28,148,172, 16,202,236, 12,176, 53,106,240, 41, 10,102, 6, 2,212,177,182, 70, 93, 75, 11,157,
+ 56, 63,220,191, 93, 26,248, 94,214, 93,184,161,189, 11,248, 98, 9,248,134, 18,252,232,247,176,248,105,148, 7, 44,255, 85, 23,
+ 90, 11,123,123,251, 63, 79,158, 60,201,203,200,200, 64, 80, 80, 80, 48,128, 60, 0,134, 0,232,136,136,136,187, 97, 97, 97, 94,
+197,179,238,170,155, 45,182,233,226,197,139,189,221,221,221,201,250,245,235,139,211,211,211,235,228,228,228,208, 82,169,244, 19,
+147,208,237,219,183, 5, 5, 5, 5, 50,154,166, 47, 21,139,172,106,243, 23,205, 27,110, 47, 12, 8,196,108,143,190,245, 90, 24,
+ 89,180, 68, 54, 25,216,226,121,176,116,246,188,225,246,219,183,156, 79, 86,138, 8,213, 17,130, 74,172,195, 17, 42,117, 13, 98,
+102,128,162, 88,169,128,128, 0,196,199,199, 35, 38, 38,230, 19, 65, 53,109,218, 52, 28, 59,118, 76, 39,139,150, 88, 44, 94,183,
+114,229, 74,135,185,115,231,242,202,136, 34,120,123,123, 35, 47, 47, 15, 7, 14, 28,128,183,183,119,141, 7,254,114,104,208,163,
+ 71,143, 1,182,182,182,200,202,202,130,141,141, 13,220,221,221, 7,250,251,251,215, 7, 16, 91,203,126,255, 99,223,190,125,215,
+172, 90,181, 10, 90,173, 22, 83,166, 76, 65, 84, 84,212,217,168,168,168,173,117,235,214,157,253,211, 79, 63, 89, 91, 91, 91, 99,
+228,200,145, 98,146, 36,135, 86, 70, 98,102,102,230,187,111,223,190,177, 3, 6, 12, 96,105, 52,154,110,247,239,223, 71, 92, 92,
+ 28,212,106, 53, 72,146,196,199,143, 31,225,237,237, 45, 45,158,221,248, 81,135,114, 77, 94,182,108,217,164,217,179,103,227,183,
+223,126,195,202,149, 43,255, 48, 54, 54,118,109,213,170, 85,235,149, 43, 87, 98,209,162, 69,112,116,116,132,185,185,121,211,229,
+203,151,187,204,159, 63, 31,219,183,111,199,138, 21, 43,254, 0,112,184, 54, 21, 65,211, 52,177,126,253,122,183, 45, 91,182,216,
+150,136, 44, 22,139,133, 51,103,206, 32, 48, 48,112, 96,116,116,116, 69,199,236,181,177,177,153,102,107,107,203,191,115,231,142,
+196,209,209, 17, 36, 73,106,139, 69,214,142,186,117,235,206,252,248,241, 35, 6, 12, 24,128,232,232,232,227, 0, 38, 24, 27, 27,
+203,230,207,159,111, 32, 18,137,140,229,114, 57,254, 83, 96,179,136,137,235, 86, 47,194,171,192,247,184,120,145,135, 87,175, 94,
+193,218,218, 26, 2,129, 0, 12,195, 64,165, 82, 33, 35, 35, 3, 90,141, 10, 45,154, 55,192,209,131,235,145,158,158, 1,176,136,
+ 74, 67,110, 8, 22, 49,110,210,119, 67,240,248,201, 45,236,217,179, 15,133,133,178, 74, 30,190,133,104,212,216, 5,246,118, 86,
+ 72, 76, 74, 4,193,130,197,223,121,174,255,227,174,195,210, 91, 16,116, 73,239, 80, 22, 38, 38, 38, 91, 79,159, 62,109,238,233,
+233,201,150,201,100,160,105, 26, 93,221,221, 49,123,238, 92, 92, 61,121, 18,206, 29, 70,131, 80, 75, 64, 26,232, 54,235, 65,169,
+144,163, 89,235,206, 24, 49,114, 20, 18,226,227,209,215,107, 24,148, 74,121,233, 19, 70,137, 69, 75,173,214,192,194,170, 14,110,
+223,190,205,198,148, 41,111,177,163, 98,163, 4,165,225,135, 68,126, 84,118,201, 85, 4, 34,224,213, 49,104, 84, 26,180,104,177,
+ 28, 26,218, 28, 86, 14,211,160,213, 94, 70,126,198,253, 34, 55,134,185, 39,146, 18, 18,192, 98,243,194,107, 91,131,180, 44,227,
+139,110,186,121,121,121,121, 49, 49, 49,231, 3, 2, 2,198, 13, 29, 58, 20,183,111,223,254, 30, 0,134, 14, 29,138,128,128, 0,
+196,196,196,156,207,203,203,203,251, 26,173,109,107,107, 59,168,123,247,238,163,219,181,107, 7, 63, 63, 63, 48, 12,243, 88,167,
+ 11,155,203,101, 88, 44, 22,104,154, 6, 1, 32, 43, 55, 23, 81, 81, 81,200,202,204,132, 86,171,133,172,176,144,118,105,220,184,
+144,161,105,195,154,148,167,236, 12, 67, 84, 48,235,176,228,183, 90,156,106,252,203,231, 79, 19, 10, 10, 11, 45, 77, 77, 76, 11,
+248,124, 62,149,147,155,155,247, 54, 60, 84,173,227,224, 80,130,136,176,176, 48,215,148,148, 20, 36, 36, 36,128,148, 21,128,173,
+ 82,131,165,146,163,103,231, 78, 16,129,129, 16, 52,184,180, 22, 92, 54, 23, 5, 69,179,243,170,117,119, 80,101, 30, 18, 74, 68,
+ 22, 65, 16, 69,238, 66,177, 24,124,137,225, 39, 22, 46, 93,250,147, 64, 32, 56,121,238,220, 57, 91,123,123,123,172, 94,189, 26,
+ 14, 14, 14, 77,237,236,236,228,198,198,198, 34,107,107,107, 52,107,214, 12,157, 59,119,198,141, 27, 55,160, 67, 29,144, 12,195,
+244,121,252,248,241,130,167, 79,159,142, 16,139,197,196,172, 89,179, 56,253,251,247,135, 64, 32,128, 92, 46, 71, 78, 78, 14, 78,
+157, 58,149, 73,211,116,201,164, 20,115, 3, 3,131,195, 4, 65,196,202,100,178,185,229, 9,143,110,110, 97,151,158, 77, 79, 97,
+ 10, 13,134,120,244,173,215,162, 71,223, 94,104,224,220, 3, 61,250, 38, 0,192,122, 51, 78,220,232,223,151,153, 92, 50, 49, 36,
+ 14,223,190,121,103,133,187, 71,143,101,139, 11, 31,172,249,109,127,110,181,241,116, 4, 65,128,166,233, 79,114, 7,149,223, 62,
+ 97,194, 4,156, 57,115,166,218,122,100,177, 88,163,166, 79,159,206, 43,103,121, 70,114,114, 50,188,188,188, 48,116,232,208, 79,
+132,150,133,133, 5,108,108,108, 16, 23, 23, 7, 0, 89, 58,246,171,217,147, 39, 79, 38, 20, 10, 5,166, 78,157,138, 3, 7, 14,
+ 96,244,232,209,132,191,191,255,108, 0,115,107,218,217, 89, 44,214,134,159,126,250,105,129,183,183, 55,178,179,179,113,253,250,
+117,244,239,223, 31,103,206,156,177,188,126,253,250, 58, 79, 79, 79,176,217,108,248,249,249,129, 36,201, 42,115,125,241,120,188,
+ 65, 3, 6, 12, 96, 37, 38, 38,130,199,227,161,109,219,182, 72, 74, 74,130, 92, 46, 71,114,114, 50,230,204,153,147,154,149,149,
+213, 93,215,235,136,199,227,205,157, 61,123, 54, 78,159, 62, 13, 31, 31,159, 35, 0,166,230,229,229,141,120,250,244,233,233,111,
+191,253, 22,201,201,201,184,116,233, 18, 86,172, 88, 65, 76,152, 48, 1,187,118,237,194,156, 57,115,254, 40,182, 58, 85,214,241,
+ 11,210,211,211,141, 27, 54,108,136,180,180, 52, 20, 22, 22,226,210,165, 75, 86, 55,110,220,168,111,111,111,111, 20, 19, 19, 67,
+253,250,235,175,252,185,115,231, 98,235,214,173, 8, 10, 10,194,177, 99,199,208,163, 71, 15, 50, 58, 58,186, 66, 43, 89,113,202,
+134, 75, 12,195,220, 17,139,197, 40, 40, 40, 40,185,238, 22,250,248,248,120,251,250, 22, 25,217, 83, 82, 82, 48,113,226,196,241,
+247,238,221,163, 61, 61, 61, 13,120, 60, 30,148, 74,165,236, 63, 57,106,211, 20, 13,128, 70,253, 58, 18,220,186,122, 16,111,130,
+163,241, 38, 56, 12,124, 65, 81, 16,188, 66, 33, 71,235, 22,141,208,161,109,123,164, 72,147,113,252,216, 65,152, 89,216, 87,121,
+ 31, 97, 24, 6, 60, 14, 5,151,198, 54, 56,121,108, 31,252,174,223,195,177,227,167, 74, 99,222, 56, 28, 46, 90,181,238,128,182,
+109,221, 17, 29,243, 17, 7, 15,238,129,165, 85, 29,189,115,176,150, 40,117, 29,150,125, 47,167,252,123,184,187,187,179, 11, 11,
+ 11,161, 84, 42,145,154,154,138,184,184, 56,152,152,154, 32, 58, 37, 22,221, 13, 52, 72,165,243, 17, 17, 28, 78, 17,108,110, 80,
+117,127, 56,192,163, 21,224,209, 10, 51, 39,143,174,226,145,149,129,216,200,162,200,117, 67,146, 31,176,125, 59, 89,153,208, 34,
+ 41,237,221, 91,119,238,183,159, 60, 97, 16,247,246,253, 3,208,170,105, 40,180,198,144, 41,213,144,105,184, 96, 25,247, 7, 50,
+253,193,230, 8,208,209,173, 17, 46, 93,188,161, 97, 72,237, 61,157, 43,200,218, 21,100, 90, 88, 25,161,149, 94,206,239, 96,166,
+179,235,176,116,224,165,168, 51, 39, 78,156, 24,220,169, 83, 39, 3, 79, 79,207,134,197, 3,167,230,196,137, 19,242,226,100,152,
+ 53,197, 39,217,224,109,108,108, 90,243,120,188,209,253,251,247,111, 61,105,210, 36,188,125,251, 22,199,143, 31,143,108,212,168,
+209, 3,169,180,242, 25,217,108, 62, 63,171, 48, 61,221, 68, 82,191, 62,199,212,208, 48,229,198,245,235,142,189,122,247, 38, 18,
+ 18, 18,144,149,149, 5,165, 82,137,160,224, 96,134,203,102, 39, 17, 70, 70,172,247,129,129, 44, 54,159,159, 85,153,181,177, 2,
+196, 85, 51,235,208,183,182,214,173, 58,182,166, 13, 87,248,252,208, 64,169, 82,186,230,231,231,147, 28, 46,151,235, 96, 99, 18,
+255,254,163,238,247, 68,149, 74,229,119,247,238,221,193,189,122,245, 18, 68,134, 4,129,204,203,131, 58, 47, 7, 60,154,130, 89,
+107, 55,176, 53, 42, 64,173,133,189, 11, 3,101,174, 1,252, 95,188,215,170, 84,170,106,147, 26,150, 8, 45, 86, 57, 97,192,151,
+ 72, 32, 48, 52,130, 64, 34, 41, 47, 24,170,123,146, 51,232,211,167, 79,207,142, 29, 59,130, 97, 24,236,223,191, 31, 26,141,134,
+175,209,104,160, 86,171,161,209,104,144,159,159,143, 99,199,142, 97,247,238,221, 79, 1,252,161,195,233,147, 34,145,232, 91,130,
+ 32,172, 56, 28,142,220,210,210, 82,124,230,204,153,210,116, 19,173, 90,181,130,161,161, 33, 15,197, 73, 33,173,172,172,184,135,
+ 14, 29, 50, 25, 56,112,224,163, 10,221, 29, 45,154, 46,106, 64,154,122, 8, 69,245,234, 27, 89,180, 68, 3,231, 30, 0,128,222,
+ 94,147,209,160, 81, 93,228,103,134,212, 87, 42,226,134,240, 56, 57,166,225,219,147,223,138, 6,184, 78,146,165, 63,140, 66,197,
+211,251, 43, 28, 40, 88, 44, 86,165,238, 88, 93, 68, 86,145,102, 97, 89,150,196,249, 0, 64, 86, 86, 22,164, 82, 41, 34, 34, 34,
+208,164, 73, 19,100,103,103,195,222,222, 30,106,181, 26,237,218,181,131, 66,161,192,150, 45, 91,240,228,201,147,167, 0,230,232,
+240, 31, 34,103,103,231,137,173, 91,183,198,245,235,215,241,234,213,171,228, 91,183,110,217,187,187,187,163,126,253,250,147, 98,
+ 99, 99,151, 22,187,250,116,133,216,221,221,125,150,183,183, 55,194,194,194,240,195, 15, 63,100, 37, 38, 38, 94, 58,123,246,236,
+212, 21, 43, 86,176,250,246,237, 11,169, 84,138, 13, 27, 54, 80, 79,158, 60,217, 8, 96,117, 53,245,248, 46, 49, 49,209, 65,169,
+ 84, 34, 59, 59, 27, 36, 73, 66, 46,151,227,198,141, 27, 56,118,236, 88, 90,177,200,250,160,107,225,220,220,220,154,177, 88, 44,
+156, 62,125, 26, 0,126, 70, 81,198,254, 75, 67,134, 12, 73,254,245,215, 95,237,151, 44, 89,130,239,191,255, 30, 26,141, 6,191,
+253,246, 27,150, 44, 89,114,173, 88,100, 85,117, 19,221,108, 99, 99, 51,237,135, 31,126,104, 58,127,254,124, 4, 4, 4, 88,189,
+126,253,186,109, 80, 80, 16,234,212,169,131,172,172, 44,142,185,185, 57,182,110,221,138,121,243,230, 93, 0,144,249,236,217,179,
+ 81, 49, 49, 49,190, 0, 54, 84, 35,218,247,218,219,219, 79, 99, 24,134,145,203,229,113, 62, 62, 62, 27,214,174, 93,139,121,243,
+230, 33, 60, 60, 28,121,121,121, 48, 52, 52, 36,126,250,233,167,137, 63,255,252, 51,166, 76,153,194,200,100,178,221,255,233,129,
+154, 97, 40,200,115,194, 64,169, 76,209,170, 69, 19,180,114,173,135, 91,247,223, 0, 0,122, 14,115,135, 92, 86,128, 35, 71,246,
+227,195,135, 40,112,184, 92,152,152,217,232, 98, 9,132, 58,255, 29,114, 53, 82,244,242,108,139,254,125,187,227,143,163,103, 64,
+106, 53,152, 58,121, 44,114,114,115,113,244,232, 65, 68,199,124, 4,135,203,133,185,197,223,159, 8,181, 42, 45,242, 63, 47,180,
+116,112, 63,129,166,105, 36, 39, 39,227,245,235,215,136,141,141,133,129,129, 1, 20, 36, 69,239,185,251,132, 38, 8, 94, 18,205,
+ 48, 79, 25,178, 52, 75,241,231, 28, 20,149, 92, 38, 99,173,177,169,169, 41, 95,165, 82,128, 36,181,101, 70, 21, 2, 32, 0, 30,
+ 7,176,181,107,128,196,132, 68, 70,169, 84, 62,172,242, 9, 74,165,220,122,229,210, 57,239,206, 93,220, 45,250,247, 92,133, 75,
+151,151, 35, 39, 63, 31, 74, 13, 23, 50,165, 6,114, 37, 96, 98,214, 24,237, 90,180, 68, 74, 74, 22, 66, 94,249, 23,114, 84,114,
+ 93, 2, 69,163,118, 44,155,236, 60,121,230, 34,136, 28,187, 64, 21,113, 9,116, 97, 90,169, 69, 75, 40, 49,133, 89, 93, 23,228,
+202, 84, 56,119,239, 13, 80,131,165, 94,210,211,211,229,108, 54,251,132,183,183,247,111,111,222,188,118, 0,128, 55,111,222, 36,
+ 73,165,210,197,233,233,233, 53,181, 73,151,100,131, 39,132, 66,209,155, 70,141, 26,165,180,109,219,214,120,200,144, 33,176,176,
+176, 64, 80, 80, 16,124,125,125,223,105, 52,154, 69,254,254,254, 85,186,122,212,106,117,242,155,203,151,141,186,127,247,157,201,
+162,129, 3, 55,120,123,123,111, 93,189,122, 53,215,217,217,153,208,106, 52, 8, 13, 13,101, 78,158, 56,161,221,189,100,201, 22,
+190, 88,204,121,121,229, 10,151, 84,169,146,255,191, 59,177,189,189,189,135,123,183,174, 46, 27, 55,111,135, 82, 81,136, 23, 1,
+215,144,147,147,129,125,251, 47,186,216,219, 51, 30,201,201,201,254,186, 10,224,195,135, 15, 47,232,208,186,117,107,167, 58,117,
+ 16, 26, 31, 11, 62, 77,129, 71,146, 96,107, 84, 96,145, 74,212,113,101, 64,176, 12, 33, 77,205,199,218,211,231,195,116, 17,198,
+ 77,191, 25,132,213, 73,121, 32, 8, 2,155, 58,185,130,111, 40, 1, 79, 44,193,143,127,222, 47, 21, 6,126,171,151,128, 47,145,
+160, 97, 7,157, 18,194,203, 31, 60,120,240, 58, 52, 52,180,157,171,171, 43, 22, 44, 88,128,184,184, 56,208, 52,141,180,180, 52,
+165, 84, 42, 77,206,200,200,136, 67, 81,254,159, 3,213, 12, 98,101, 85,135,189,191,191,127,169,187,225,222,189,123,176,179,179,
+131,177,177, 49,242,243,243, 49,125,250,116,147, 95,126,249, 5, 0,240,250,245,107,148, 21, 40,229, 17,250, 38, 98, 99,110, 1,
+147,195, 20, 6, 14,201, 38, 3, 91,244,232,155,136,222, 94,147,112,199,239, 15,220,191,117, 23,102,156,184, 88,136, 11,110,100,
+198,102,230, 39,201,156,247,186,180,153,202,150,202,110,237,157, 53, 40,146,109,107, 75,159, 91,178, 39, 63,183,170,178, 58, 59,
+ 59,195,218,218,186, 52, 70,139,195,225, 96,202,148, 41, 96, 24, 70, 87,145, 85, 60,214,208, 25, 74,165,210, 90, 40, 20, 34, 53,
+ 53, 21, 31, 63,126, 68,116,116,116,105,234, 0,154,166,181, 11, 23, 46,228,206,154, 53, 11,123,246,236,193,195,135, 15,159, 2,
+ 88, 5, 64,215,135,181,177, 35, 71,142, 52, 84,171,213, 56,117,234, 20, 9,192,235,220,185,115,175,219,181,107,199,233,215,175,
+159,225,174, 93,187,198, 22,183,145,206, 66,203,200,200,136,167,209,104,176,107,215, 46, 36, 38, 38,122, 0,136,120,249,242,229,
+222,145, 35, 71,238,118,117,117,109, 20, 22, 22, 22, 85, 88, 88,248, 35,128,144,234,200,210,210,210, 38,183,109,219,246, 28, 77,
+211,142,189,122,245, 18,111,222,188,217,232,253,251,247,112,112,112, 0, 77,211,161,168,225, 18, 86, 81, 81, 81, 17, 82,169,212,
+165,123,247,238,184,113,227,198,122,138,162,214, 1,248,109,198,140, 25,246,241,241,241,104,221,186, 53,204,204,204,240,254,253,
+251, 2,169, 84,186, 27, 69, 75, 18, 85,103,194,141, 1,176,120,239,222,189, 45,247,238,221, 59,218,204,204,172, 99, 80, 80, 16,
+ 30, 63,126,140,141, 27, 55,226,151, 95,126, 65,215,174, 93,177, 96,193,130, 76, 0,163, 1,144, 49, 49, 49, 58,229,205, 43,177,
+108, 1, 64,155, 54,109, 82,124,125,125, 49,117,234, 84,230,208,161, 67,219, 78,156, 56, 49,119,236,216,177,165, 99,224,196,137,
+ 19,153,227,199,143, 79, 68,209, 50, 76,255, 73,104, 53, 26, 53,140,204, 26,160, 48, 55, 1, 25,137, 1, 48, 48,180, 65,223, 30,
+110,144, 43,212,184,122,229, 2, 66, 66,131,193, 98,177, 96,109, 83, 7, 38,166, 22,136,140,140, 2,170,158,109,172,213,104, 52,
+ 48, 52,173,135,194,188, 68,168,211,223, 64, 36,177,194,164,239,134, 64,174,208,224,226,165, 11, 8, 11, 11, 1,155,205,134,141,
+109, 29, 24,155, 20,113, 18, 76,213, 51,152,245, 0, 80, 65, 62,173,106,133, 22,155,205,126,112,243,230,205,225, 29, 58,116,224,
+124,248,240, 1, 31, 62, 20, 61,220,228,228,228,144, 4,168,243,233,161, 87,198, 84,113,120, 47, 20,207,206, 40,187,118,161,196,
+208, 48,249,253,187, 8,235,156,236, 52, 4, 7, 62,193,135,200, 80,196, 70, 71, 64,163, 81,130,205, 98,129,197,102,161, 94,131,
+230,120,242, 52, 64,173, 36,201,128,202, 56,139,202, 17, 93, 32,182,114, 30,181,102,245, 82,191,121,139, 86,138, 70, 12,223,131,
+144,247,111, 81, 72,218,128, 97, 0, 27,115, 49, 90, 57,253,132,228,148, 12,156,254, 99,151,156,214,104,198,149,203,161,245, 25,
+ 39, 0, 88,103,162,217,238,253,127, 76, 57,112,236,228,202, 69,179,166, 91,127, 59,116, 28,248,217,111,161, 77,121,131, 6,237,
+250,131, 16,152,224,250,237,251,240,127,253, 54,141,166,152,149,214, 89, 56, 20, 89, 13,103, 89,228,230,230, 62, 75, 77,149, 58,
+148,201, 2,239, 32, 16, 8,171,155, 29, 87,158,243,147,140,243,108, 54,171,205,154, 53,107,180,214,214,214,154,176,176, 48,236,
+217,179,135,126,243,230,205,109, 22,139,181, 67, 42,149, 42,171,227,180,212,106,131, 79,250,248, 52,107, 63,116, 40, 51,102,214,
+ 44, 57, 4,130,217, 27, 54,109,242,201,200,201,177, 99,104, 26,150,102,102, 73, 27,150, 44,241, 29, 62,114,100, 78,248,147, 39,
+162,128,203,151, 69,124,146,124,163, 67, 57,191, 6, 42,229, 76, 78, 78,246,127,248,240, 49,142, 28,216, 12,141, 70, 5,105,114,
+ 60, 0, 32, 51, 43, 15,213,136,172,242,156,140, 92, 46, 31,250,243, 47,191, 60,255,121,222, 92,155,110, 61,123, 33, 33, 56, 8,
+154,236, 12, 16, 90, 18, 92,130, 3, 89,186, 1,210,211, 10,177,248,248,217,244, 66,185,124,104, 5,131, 68,133,229, 44,177, 88,
+ 9,140, 12,193, 19, 75,192,151, 24,126, 98,197, 18, 26, 25,129, 47,150,128,195,231, 87, 20,192,253, 25,103, 97, 97,225,176,225,
+195,135,135,188,124,249,210,116,234,212,169,232,220,185,115,160, 66,161,240, 4, 80, 80,219,250,164,105, 58,185, 91,183,110, 44,
+130, 32, 36,227,198,141, 19,100,100,100,148,102, 86, 47, 44, 44,196,141, 27, 55,208,164, 73,209,172,254,240,240,112, 52,111,222,
+188, 82,206,239, 23,135, 37, 3, 88, 61,111,184,253,134,231,193,210,217, 0,214, 55,104, 84, 7,247,111,221,197,227,251, 1, 62,
+ 29, 93,233,237,223,140,107,247,171,129,231,200, 69, 46,109,166,178, 37, 70,182, 56,122,241, 2, 59,226,205,193,181,114,121,104,
+ 67,236,185,180,176,178,114, 18, 4, 1,134, 97, 62, 75,229,192,102,179,113,226,196,137,154,158,251,217, 3, 7, 14,204,248,225,
+135, 31,120, 82,169, 20,239,222,189,131, 76, 38,131, 80, 40,196,173, 91,183, 72, 0,187, 78,156, 56,113,235,196,137, 19,253, 80,
+ 52,155,232, 94, 77,250,167, 88, 44,246,238,219,183, 47,222,189,123,135, 87,175, 94, 93, 0, 16, 18, 24, 24,120,225,195,135, 15,
+163,186,118,237,138, 63,254,248,195, 91,161, 80, 28,168, 9, 39, 77,211,101,115, 38,149,172,248, 16, 92, 88, 88,216, 49, 32, 32,
+160,166,237, 46,205,202,202,234, 82, 44,172, 19,173,173,173,141,130,131,131, 81,183,110, 93,104, 52,154, 14, 53,237, 75,121,121,
+121,155,119,236,216,113,104,242,228,201,248,245,215, 95,199,157, 61,123,118,220, 55,223,124,131, 1, 3, 6,224,240,225,195, 8,
+ 9, 9, 89, 15,221,150, 21,171,232,220, 67, 0,132, 88, 91, 91,207,172, 83,167, 14, 54,110,220,136,208,208, 80,223,213,171, 87,
+ 47, 9, 9, 9, 65,147, 38, 77, 4, 17, 17, 17,100,109,238, 33, 0, 96,100,100,100,164,213,106,113,249,242,229, 23, 0,230,141,
+ 27, 55,206,106,235,214,173,163, 37, 18, 9,178,179,179, 21, 97, 97, 97, 99, 1, 92,249, 79,223,235, 24,130, 88, 54,245,251,217,
+123,191,159, 58, 86,216,182, 77, 43,200,243,147,160, 40, 76,131,188, 32, 21, 59, 14,220, 6, 65,176, 96,105,105, 11, 43, 27, 7,
+196,199, 39,224,233,181,235,106,153, 92,177,149,175,165,215, 87,205, 57,171,136,179,117, 17,167, 92,150, 14, 69, 97,122, 41,167,
+149,149, 93, 49,103, 60,158, 4, 92, 87, 42,100,178,205,106,134,248,253,111, 62,247,255,101,212,108,173,195,178,200,201,201,153,
+ 51,125,250,116,207,197,139, 23,155,147, 36,201, 54, 51, 51, 67,124,124, 60,121,254,252,249,236,194,194,194, 57,181, 41, 13,135,
+203, 13,113,110,220,196,243,219,111,191, 37, 7, 13, 26,200, 27, 63,185, 31,199,210,202, 10,121,185, 89,136,124, 23,132,247,111,
+223,192,185,137, 27, 86,172,222, 2,152,152, 84,187,144,100,241,178, 58, 94,171,126, 94,120,166,139, 71, 31,163, 38,205,221,120,
+173, 26, 26, 67,163, 37,145,148,148,132, 43,151,131, 53, 97,175, 31,231,211,164,122,148, 60, 83,183, 37,120,252, 1, 18, 89,216,
+231,106,165, 57,177,110,195,142, 5,187,246, 29, 89,180,120,246, 84,113, 87,247,222, 8,189,251, 7, 46,248,157,145, 41, 85,234,
+ 13, 60, 54, 54,133,101, 65, 30, 89,195, 58, 80, 42,149,154,242,227,169, 82,169,212,124,105, 75, 31, 62,124, 24,105,105,105,234,
+184,184,184,155, 36, 73,158,173, 98,177,231,207,176, 3, 80, 15, 81,169,238,254,236,238,222,239,231, 91,183,132, 19,127,250, 73,
+ 61,110,252,248,133, 80,169, 52,224,243, 25,142, 88,204,130, 64,192, 13,127,242, 68,180,109,198, 12, 51, 66,173,190,115,164,138,
+180, 1, 21,224,171,207, 58, 44,177,104,117,239,222, 21, 19,167,206,131,162,140, 69,235,217,171, 72,168, 52,208,217,162, 85,140,
+132,184,196,196,142,179,151,253,124,113, 84,223,158, 46,174,142,245, 4,150,245,235, 65, 98, 99,131,172,140, 12, 60,121,245, 94,
+187,250,204,197,176, 98,145,165, 83, 94, 25,154,166,139,130,220, 1,244,156,179, 24, 4,155, 13, 20,167,113, 40,153, 57, 84,191,
+ 93,103, 16, 28, 14, 40,134,134, 74,165,210, 37,232, 47,233,227,199,143,195,198,141, 27,119,207,207,207,143,213,183,111,223, 86,
+151, 46, 93,162,191,164,239, 40, 20,138,142, 0, 32, 20, 10, 99, 77, 76, 76,236, 39, 79,158, 12,173, 86, 11,185, 92,142,188,188,
+ 60, 36, 37, 37,229, 78,158, 60, 89, 3, 0, 34,145,136, 63,124,248,112,163,234, 56,183,156, 79, 86,206, 27,110,191,221,140, 19,
+ 55, 58, 63, 51,164,190, 25, 39, 46,182,163, 43,189,125,203,249,100,165,145,157,108, 77,102,156,127,164, 84,118,107,239,209,139,
+ 23,216, 19,134, 12,163, 28, 36, 81, 62, 66, 43,230,124,117,188, 4, 65,124,150,156, 84, 71,145,245, 9, 10, 10, 10,150, 44, 95,
+190,124, 64, 78, 78,142, 67,191,126,253,120, 46, 46, 46,120,254,252, 57,252,252,252,200,103,207,158, 37,202,100,178,165, 0,148,
+ 0,110,215,166, 78, 27, 55,110, 92,159,195,225,148,184,210,118, 22,255,188,243,210,165, 75,163,166, 78,157,138,122,245,234, 53,
+139,136,136, 16,160, 6,215, 17,195, 48,165, 94,134,175, 9,130, 32,162,183,109,219,102,111, 99, 99, 67,220,184,113,131,100,179,
+217,181,177,220, 28, 62,120,240, 96, 7,173, 86,251,253,180,105,211,224,225,225, 1,146, 36,113,252,248,113, 28, 60,120, 80, 87,
+145, 85, 37, 34, 35, 35,223, 36, 38, 38,118, 91,184,112, 33, 54,110,220,184,100,225,194,133, 72, 76, 76, 68,100,100,100,208,151,
+240,230,231,231, 43, 18, 18, 18, 12, 58,117,234,212, 54, 44, 44, 44,204,211,211,179,249,212,169, 83,177,126,253,122,230,225,195,
+135,195, 1,220,248,255, 24,189,223,127,200, 62,198,165, 56,183, 86,175,217,252, 75, 67,167,250, 63, 76,153, 52,146,221,216,185,
+ 57,100,121, 73, 48,183,176,134, 67,157, 6,200, 72,207,196,205,155, 55,168,204,204,220,195, 20,139, 88,245,225, 67,118,202,151,
+112,218, 59, 52, 64,122,122, 58,174, 95,191, 78,229,230,228,239,135,150,181, 58, 34, 62, 55, 13,122,232, 98,201,154,134, 42,178,
+196, 87, 5, 11, 83, 83,211, 83, 70, 70, 70,105, 70, 70, 70,105,166,166,166,167, 0,157,102, 31,244, 42,115,119, 96,127,242, 26,
+ 62, 92, 8,161,176, 35, 56,156,249, 38,166,166, 55,140,141,141,179,186,119,239,174,222,187,119,175, 50, 34, 34,156, 78, 78, 78,
+100,140,141,141,243, 74,247,175,136,179, 28, 76, 77,157, 12,197,182,205,127, 49,118,104,245, 68, 98,219,172, 64, 98,219,172,192,
+216,193,237,169,216,182,217, 74, 83, 83, 39, 67,157,202, 89, 9, 26, 88,193,210,217, 2,187,154, 88, 18, 10,103, 11,236,106, 96,
+ 5, 75,157,207,189,106,183, 31, 69, 16,160, 80, 52, 13, 27,181,224, 44,225,160,217,108,246, 17, 7, 7, 7, 91,212, 44, 97,221,
+103,156,227,129,122,227, 5,130,239,207,249,248, 76,140,125,248,112, 92,126, 76,204,152,188,232,232,145, 65,103,206,140,218, 57,
+106,212,248, 49, 2,193,180,225,128,147,174,156,182,182,182,190,111,222,188,241,211,245, 85, 70,120,233, 92,159, 78, 13,236,111,
+245,237,213,129,241,158, 62,148,241,158, 62,148,233,219,171, 3,227,212,192,254,214, 23,180, 17,193,102,179, 71, 27, 24, 24,156,
+ 18, 27, 24,132,138, 13, 12, 66, 13, 12, 12, 78,177,217,236,209,168, 58,134,234, 19, 78,115,115,243,215,214,214,214,105, 53,121,
+ 89, 88, 88, 4,214,160,156, 99,234,215,175,159,200, 98,177,182,212,240,154,174,138,211, 89, 36, 18, 69,139,197,226,164,178, 47,
+145, 72, 84, 54, 49,148,185,129,129,193, 85,177, 88,188, 85, 23,206,223,151, 53,255,229,233,237,153, 33,191, 47,107,254, 75,249,
+109,179, 6,155, 78,126,126,111, 85,214,172,193,166,147,117, 41,167,149,149,213, 67, 43, 43, 43,169,149,149,149,212,218,218,186,
+202,151,133,133,197,107, 29, 56,133,134,134,134, 91, 13, 13, 13,211,196, 98, 49, 37,145, 72,210,196, 98,241, 22,148, 73,109, 81,
+219,250,100,177, 88,235,155, 53,107,166,100,179,217,135,202,109,218,216,176, 97, 67, 37,135,195,217, 80, 67, 78,163,174, 93,187,
+ 82,193,193,193,140,135,135, 7, 3,192,244, 43,182,187,141,169,169,233, 13, 35, 35,163, 4, 67, 67,195, 29, 0,196,181,228, 36,
+ 0,140,182,183,183, 15,234,209,163,135,220,222,222, 62, 0,192,183, 95,177,156, 3, 6, 15, 30, 76, 39, 36, 36, 48, 12,195, 48,
+ 9, 9, 9,204,224,193,131,105, 20, 37,138,252,146,123,242,178, 25, 51,102, 48,207,158, 61, 99,158, 61,123,198, 4, 4, 4, 48,
+ 3, 6, 12,160, 1,124,247,133,247,121,124,173,115,119,105, 96,225,212,180,145,233,217,177,195,220,233,219, 87,182, 48, 43,150,
+254,192,244,246,104,206, 52,105,104,122,209,217,217,220,249,107,112,254,178,116, 58,211,171, 91, 51,218,197,201,244,140, 75, 3,
+ 11,167,255,240,185,255,163,172, 90, 37, 15,210,127,119,192,217, 95,166,197, 79,197, 82,197,176,179,179, 67, 86, 86, 7, 33,135,
+227, 46, 16, 8, 60, 89,108,246,131,236,140,140,185,197,143, 91,212,127,202, 84, 91,229,128,238, 4,126, 21, 75, 18,212,134,243,
+147, 64,246, 90,114,214,132, 67, 39,206,202, 22,149,166, 85,170, 20,115,146,124,189, 3, 85,214,193, 39,156,246,246,246,223,211,
+ 52, 93, 95,215, 2,177, 88,172,216,228,228,228, 3,181,169,207, 70,141, 26, 49,197,238,109,226,107,182,251,223,209,151,254, 77,
+156, 71, 55,183,176,107,210,162,233,162,208, 55, 17, 27,139,221,138,165, 88, 57,203,212,208,189, 71,247,229, 79,238, 63,252,117,
+229,142,156,130,255,231,115,103, 65,199,152,182,175,192, 89,146, 36,180, 70,156, 92, 46,119,111,251,246,237,191,127,254,252,249,
+ 33,138,162,166,253, 75,251,231, 0, 54,155,189,176,113,227,198,173, 34, 35, 35,131, 40,138,218,136, 10, 18, 69,214,162,156, 75,
+235,215,175,255, 35,143,199, 19, 20, 22, 22,230,164,164,164, 44, 7,112,246,191,173, 62, 93, 26,153,181,101,152,210,164,219,107,
+223,125,204,126,249,213, 56, 25,154,162, 25,246,154,200,152,172,192,255,135,118,255,199,136,172, 98,161,181,255, 63,241,199,189,
+244,156,122, 78, 61,167,158, 83,207,249,213, 57, 69,250,250,212,115,254, 3, 57,255, 81, 40,177,104,113,244, 85,161,135, 30,122,
+232,241, 63, 7,133,190, 10,244,208,227,191, 14,101,173, 90,165,214, 44,162, 10, 85, 90, 19,147, 96,109,148,237, 93, 61,167,158,
+ 83,207,169,231,212,115,234, 57,245,156,255, 58,206,127,170,200, 42,235, 42,156,166,119, 29,234, 57,245,156,122, 78, 61,167,158,
+ 83,207,169,231,252,111,226,252, 95, 23, 90, 40, 39,180,244,174, 67, 61,254, 51,216, 62, 4,246, 0, 48,251, 18,146,255,142,253,
+245,208, 67, 15, 61,244,208,227,255, 25,251, 81,137,235,240,191, 65,104,217, 1,232,136,162,133,111,223, 3,120, 12, 32,231, 11,
+248, 44, 0,140, 36, 8, 98, 4, 0, 48, 12,115, 14, 69,179, 70, 50,117, 57, 88, 40, 20,166, 41,149, 74,171,226,207,233, 74,165,
+178,236, 90, 6, 4, 62,159,205,198,148,121, 85,136,250,245,235,167,169, 84, 42, 43, 29,254, 62,143, 97,152, 16, 22,139, 21, 42,
+145, 72,238, 71, 70, 70,250,213,228,196, 61, 61, 61, 39,178,217,236,181, 0, 64, 81,212,178, 7, 15, 30, 28,249, 27,219,173, 67,
+ 29, 59,155, 63, 52, 90, 13,153,150,145,189, 28,159, 39,242, 3, 0,236,242,130, 47, 65, 98, 81,241,231, 13, 51,253,170,206,163,
+ 83,211,253,171, 64, 91, 46,151,235,109,109,109,221, 63, 41, 41,233, 53,128,159,128,234,179, 26,215,169, 83,231, 59, 14,135, 51,
+142,162, 40, 39, 54,155, 29, 77,146,228,137,196,196,196, 99,250,123,136, 30,122,232,161,135, 30, 58,136,173,207, 80, 35,161,213,
+196, 28, 54, 12, 48, 26, 4,122,131,193, 29, 2, 56,253, 62, 11,169,186, 30,255, 77, 19,104,181,100,209,127,242, 88,160,110,124,
+100,237,239,223,191,191,195,172, 89,179,208,185,115,103, 60,127,254,188,211,225,195,135, 39,159, 61,123, 54,132,166,233, 7, 0,
+158, 3, 58,165, 82, 16,163, 40, 79,203,216,254,253,251,247, 90,187,118, 45,187,121,243,230, 80, 40, 20,120,248,240,161,251,134,
+ 13, 27,182, 62,125,250,244, 46,128,147,197,130,160,210, 5,240,148, 74,165, 85,201, 98,156, 4, 65, 88, 13, 31, 62,252,101, 89,
+113, 85,188,190, 26,193, 48,204, 51,130, 32, 2, 40,138,122,126,254,252,249,196, 38, 64,135,233,245,121,231,231,198,106, 28,202,
+115,170, 84, 42,171,203,191,175, 3, 71, 32,128,170, 32, 31,157, 38,253, 37,122,239,252,178, 8, 4, 77,130, 13, 38,199,115,205,
+214, 16, 0,161, 41, 41, 41, 33, 30, 30, 30,177, 53,109, 97, 54,155,189,246,230,205,155,182, 12,195,160,111,223,190,107, 1,252,
+ 93, 66, 75,208,177,173,219,131,171, 23, 78, 9, 11,179,211,208,239,219, 81, 39,162, 18,211, 39, 2,184,240,137,104,234, 15,107,
+130,192,162, 25,235, 78,178, 1, 96,247,210,177, 63,109,233,131,237,243,110, 35, 21,128,103,177,248, 1,128,223, 1, 60,216,213,
+ 31,214, 0, 22,207, 88,119,146, 0,128, 61, 75,199, 46,218,213, 31,219,102,222,168,113,218,138, 31, 39, 78,156,184,125,237,218,
+181,108, 91, 91, 91, 36, 39, 39,247,107,214,172, 89,227,252,252,252,102,168, 34,136,184, 94,189,122,103,186,246, 24,216, 96,232,
+136,209, 6,150, 22,166, 72,145,102, 26,157, 57,117,104, 58,251,217,195,254,113,113,113,163,244,247, 16, 61,244,208, 67, 15, 61,
+ 42, 65,237, 51,195,183,182,133, 72,166,193, 96, 14,155,248,174, 75,219,102, 61,199,124,211,149,213,204,165, 17,222,134, 71,244,
+185,114,255,197, 6, 86, 64,248, 61,146, 98,142,137,121,184, 28, 40,173,122, 38,140,150, 4,231,246,229,147, 69, 35,225,228,177,
+236,151, 47, 95, 54,106,211,166, 77,233,210, 48, 61,123,246, 68,207,158, 61,137,221,187,119,187,221,190,125,219,237,224,193,131,
+154,123,247,238,253,129,170,243,163,120, 55,108,216,112,195,246,237,219, 5, 30, 30, 30, 16, 8, 4,165, 27, 36, 18, 9, 6, 14,
+ 28,136,129, 3, 7,178, 83, 82, 82,250, 94,189,122,181,239,239,191,255,174,142,143,143, 95,136,191,178, 52, 87,137,229,203,151,
+183,173,224,231,155, 4, 65,124, 36, 73, 50,200,205,205, 45,177, 49,208,104,250, 55,157,239,252,216,197, 89, 60,119,201,225, 10,
+121, 56,124, 62,142, 78, 44, 26,171,203, 10,173,216,251, 55, 32, 49, 50,204, 50, 48, 52, 12, 1, 16, 10, 32,132, 97,152,208,232,
+232,232,136,166,128, 91, 71, 83,214, 31,135,114,232,150, 53, 16, 91, 72, 76, 76,132,177,177,177,200,195,195, 67, 74, 16,196,202,
+135, 15, 31,126,237,128,188, 14, 43, 23,253,200,203,137, 11, 65,234,187,103,152, 63,194,221, 96,238,142, 63,127, 85,170,181, 23,
+170, 58,136, 32, 88,172,223, 3,104, 31, 20, 45,198,187, 60, 43, 43,203, 3, 0,204,205,205,249, 0, 30,108,121,129,111,230,117,
+ 33,190, 36,183, 27,143,205,102,239, 58,124,248,240,212,239,190,251,174,104,233,136, 39, 79, 32,145, 72,176,122,245,234,122, 11,
+ 22, 44,240, 37, 73,114, 78,101,150,172,174, 61, 6, 54,216,182,241,215,102, 5,217,121,170,125,187,206,190,178,115,109,194,154,
+225,189,192,112,155, 70,101, 67, 81,212,119,122,203,150, 30,122,232,161,135, 30, 53,177,102, 85, 43,180, 26, 91,224, 72,107, 87,
+231,145, 99, 6,184, 11, 90,184, 54, 7, 79,240, 87,234,150, 54,109,219,162, 77,219,182, 44,159,194,130,222, 47, 95,189,233,125,
+254,246,115,149, 92, 27,127, 54, 50, 19, 19,117, 45, 85,201,162,180,107,191,181,238, 33,203, 77, 23, 2,128,216,196, 74,185,244,
+114,234,253, 46, 93,186,192,193,193,129,119,239,222,189, 41,213, 8,173,165,239,223,191, 23,176,217, 85,231, 67,181,179,179,195,
+240,225,195,209,164, 73, 19,126,247,238,221,151, 86, 38,180,132, 66, 97, 58, 65, 16, 86, 0, 96,102,102, 70,173, 92,185, 50,136,
+ 41, 2, 0, 48, 12,195, 60, 99,177, 88,207,105,154,126,241,231,159,127, 38, 53, 3,172,250,181,105,242,248,199,241,195, 13,152,
+243, 91, 43, 21, 9,202,252,252, 10,127, 55,144,136, 51, 68, 98,113,136,192, 64, 24,138,162,181,188, 66, 29, 28, 28, 34,154, 1,
+ 14,237,155,212,191,189,123,222, 88,195, 67,211,126,173,182, 46, 91,183,110,221,184,101,203,150, 66,138,162, 32,147,201,176,103,
+207, 30, 99,145, 72,100,220,191,127,255, 21,101, 59,128, 11,208, 98,152, 29,123,218,170, 20,106,102, 45, 58,146, 73,215, 78,109,
+227,134, 15,236,111,212,182, 99, 87, 68, 61, 56,142,236,236, 2,228,229, 22,130,166,233,207,242,250,204,188,129,180, 93, 94,216,
+176,123,201,216,197, 4,139, 69,184, 13,249, 9,131,108,242,102,239,221,187, 55, 28, 0,151,207,231,151,237,135,118, 34,123,215,
+ 13,141,250,116,197,158,101,227,193,208, 52, 3, 96, 67, 13,172, 89, 86,134,134,134, 87,110,223,190,221,161, 93,187,118,120,254,
+252, 57, 98, 98, 98,240,227,143, 63,170,103,206,156,201,155, 48, 97, 2, 49,127,254,252, 89,191,255,254,251,121, 0, 79, 63,187,
+ 16, 56,156,113,223, 14, 29,197, 47,204,205, 87,170, 85, 26,181,153,133, 9,173,146, 41,229,153, 57,249,202, 81, 99,191, 87,135,
+ 7,190, 24, 7,224, 51,161,245,133,245,169,135, 30,122,232,161,135, 14, 96, 24,166, 29, 0, 75, 0, 25, 4, 65,188, 42,251,189,
+120,151,146,213, 90,202,127,207, 68,145, 87,202,188, 12, 93, 38,138,194,125, 44, 1, 80, 0, 94, 18, 4,145,243,133, 69,172,122,
+233, 29, 63, 63, 63,166,236,123, 25,161,197, 48, 12,195,104,179, 62, 50,170,200, 27,140,252,213,129,207, 94,138,240, 11,140,244,
+229, 89,230,197,201, 95,152,198, 22, 85,175,194,254, 77, 19,104,199,182, 4, 51,163, 29,152, 57,221, 77,148, 47, 95,190,188, 71,
+211,180,159, 79, 87, 48,204,219,147, 12,243,246, 36, 51,175, 19,152,243,231,207,223,244,245,245,245, 59,118,236,152, 31,128,234,
+226,148,210, 10, 94, 5, 48, 47,172,192, 84,134,247,239,223, 51,123,247,238,101,150, 44, 89,194, 28, 58,116,136, 65, 53, 25,212,
+251,246,237,251, 48, 44, 44,140,153, 48, 97, 66, 16,170, 72, 12,232, 2,136,199,213,179,121,167, 58,179, 85,163,254,174, 5,147,
+211, 77, 88,225,249,219,218,218,126, 82,158,245,206, 54,204,206,246,206,204,145,222,109, 82, 25,134,185,201, 48,204,122,134, 97,
+ 70, 49, 12,211, 4, 0, 90, 3, 70,223,218,154,127, 80,158,221,166, 80, 79,235, 88,237,186,119,173, 91,183,110,188,112,225,194,
+108,181, 90,205,196,198,198, 50,251,246,237, 99,238,220,185,195, 92,190,124,153,113,119,119, 79, 41, 83, 94,235,201, 77, 28,211,
+212, 7, 87,169,106,211,139,184,108,246,206, 87,119,206, 51, 31, 30,159, 99, 94,158,246,101, 78,252, 60,134,153,245,109, 7,141,
+145, 72,160, 4,208,163,178,227,102,118, 65,163, 38,245, 44, 35,227,227,227, 25,141, 70,195, 76,154, 52,137,233,219,183, 47,211,
+167, 79, 31,166, 87,175, 94, 76,207,158, 61,153, 30, 61,122, 48,247,239,223,103, 82, 82, 82,152, 94, 93,219,200,188, 92,208,182,
+ 6, 69,115,117,116,116, 76,141,141,141,101, 52, 26, 13,115,239,222, 61,230,248,241,227,204,189,123,247, 24, 31, 31, 31, 6,192,
+145, 25, 51,102, 40,114,114,114,152,190,125,251, 38,161,130,172,241,142,142,142, 17, 97,145,137,137, 91,214, 29,184,127,116,231,
+169,251, 23,207,223,185,127,229,214,203,107,151,111,189, 58,251, 34, 56,250,178,163,163, 99, 68, 5,237,255, 69,245,169,135, 30,
+122,232,161, 71,245, 90,164, 88,104, 13, 40, 54,118, 12, 96, 24,166, 87,185,239, 3,138,133,211,103,223,125,124,124,150,148,253,
+ 94,178,143,143,143,207, 18, 0, 76,167, 78,157, 78, 49, 12,211,232, 43, 20,127, 90,249, 87,141,102, 29,146, 73, 47,193,115,238,
+ 15, 46,165,133, 54,243, 61,232,220,120, 64,108, 3, 5, 33, 65,150, 52, 30,239, 30, 95,168,122, 33,137, 98, 92,127, 15, 46,128,
+123, 17, 17, 17,120,247,238, 29, 18, 19, 19, 97, 96, 96,240,217,126, 79,158, 60,129, 72, 36,130,173,173,173,110, 74, 87,253,233,
+ 56, 23,210,198, 17,146, 78, 30,200, 28,243, 3,238,221,187,135,244,244,116,240,120, 60,240,249,124,144, 36, 89, 45, 31,139, 85,
+180,226,111,137, 21,171,162,125, 60, 0,142,192, 76,114,117,247,138, 57,245, 89,207,252,184,138,132, 15, 72, 81, 82,186, 89,242,
+ 36, 98, 24,136, 13,164, 34,145, 65, 8,138,221,133, 0, 66, 9,130,136,106, 13,112,197, 18,225,213, 63,214,204,183, 97, 7,222,
+ 19, 42, 62,132, 84,200,209,171, 87,175,233, 0, 86, 48, 12,147,219,178,101, 75,235,181,107,215,154, 38, 39, 39,227,237,219,183,
+ 56,123,246,108, 6, 89,116,162, 4,195, 48,171, 0,160, 35, 32, 52,177, 52,185,181,243,151, 57,134,120,112,134, 95,155, 94,100,
+236, 50,240,218,176, 9, 51,102,110,159, 51, 16,178, 2, 5, 78,222, 9,196,205, 55, 31, 7, 1,120,130, 42,226,222,118, 61,197,
+ 7, 32,163,231,208,161, 67,131, 30, 61,122,100,113,240,224, 65,144, 36, 89,225,235,224,193,131,184,251,248,205,108, 0,175,117,
+ 44,150, 93,253,250,245,239,190,120,241,194,210,192,192, 0,119,238,220, 65,110,110,110,169, 37,107,226,196,137, 68,110,110,238,
+232, 61,123,246, 12,139,139,139,219,248,248,241,227, 44, 20,173, 5,249, 73, 71, 96,179,217, 31, 73, 82,211,212,214,165, 17,103,
+196,192,174, 93, 11,179, 66, 32, 49,111,137,103,193, 31,175,230,230,100, 41,216,108,246,199,178,251,127,141,250,212, 67, 15, 61,
+244,208,163,102, 32, 8,194,143, 97, 24, 47,130, 32,252,202,255, 86,254,115,201,126,190,190,190,165,223, 75,142, 89,191,126,253,
+186, 50,223,229, 95,169,120, 85, 6,195,119, 47, 86,144,221, 43,218, 73,245,246, 34, 84,239,174,128,231,216, 5,252, 38,131,192,
+118,116, 71, 66,200, 3, 4,223,216,130,164,240, 39, 96,104, 10,182,141,219,235, 90, 16,101,211,166, 77,161, 84, 22,133,102,169,
+ 84, 42,240,196,166,202,249,211,198, 10, 1,128,230, 8, 85,101, 20,172, 78,132,134, 93, 60,209, 62,141,193, 75,235, 34, 67, 69,
+251,180,162,227,214, 76,154, 4, 30,143, 7, 30,143, 7,162, 56,244, 71, 23,161, 69, 20,239, 76, 23,185,175, 42, 42, 4, 33, 23,
+112, 79,158, 94,225,221, 94, 16, 23,202, 87,133, 61, 67,138,138,102,174,166, 81,215,116, 41,175,129,216, 32, 89,100, 96, 16, 42,
+146,136, 75,133, 22, 65, 16, 31, 1,128,225,114,143, 29, 95,229,221, 82,156, 22, 45, 86,190,186, 7,169,146,214, 84, 66,179,234,
+198,141, 27, 86, 28, 14,199,134,162, 40, 36, 36, 36, 32, 60, 60, 28,219,182,109, 75, 43, 40, 40,232, 30, 24, 24, 24, 89, 86, 59,
+ 82, 34,254,217, 99,171,231, 52,224,132,248, 11, 85, 31,195,106,220,123, 44, 92, 7,247, 29,212,221,237,218,244,241,203, 48,248,
+155, 62,152,208,189, 25, 19,155,146,173, 4,112,167,216,244, 90, 29,146, 3, 3, 3,123,119,235,214,237, 68,171, 86,173, 92, 24,
+134, 65,139, 22, 45, 48,122,244,104, 28, 59,118, 12,193,193,193,200,207,207,215,220,190,125,123, 43,128,195, 58, 22,203,192,212,
+212,244,230,253,251,247, 45, 13, 12, 12,112,251,246,109, 40, 20, 10,216,218,218, 98,230,204,153,252,245,235,215, 31,205,207,207,
+ 31,225,235,235, 43,140,141,141,221,121,235,214,173,122, 40, 90,119,238,179, 78,160, 86,171,247,159, 60,118,100,251, 76,239, 89,
+246,247,159,191,189,167, 42, 44, 48,118,116, 76,204,183, 52,149, 24,110,253,109, 85, 93,181, 90, 61,189,226,250,124, 88,171,250,
+212, 67, 15, 61,244,208,227, 51, 84,169, 69,202,138,167,242, 98,171, 38, 34, 13,128,194,199,199,103, 41, 65, 16,126, 62, 62, 62,
+ 75,125,125,125, 21, 0, 82,254, 14,145, 85, 42,180,188,188,188,252,253,252,252,224,229,229,229, 95, 41, 5, 77, 65, 19,251, 8,
+154,216, 71, 16,117,154,141, 63,125,199,148, 59,121,186,214,165, 27,184,250,206,125,149, 74,197, 57,114,228, 72,105,220, 22, 0,
+ 80, 20,245,213, 91,177, 38, 66,171, 88,232,125, 86,136,250, 2,137,255,254,121, 35, 58,154, 83,114,174,250,201, 85, 36,171,104,
+114,227, 7,141,252, 85, 46,243,123,101,156,151,231, 78, 71,226,227,187, 48,144, 72, 18,167, 62, 10, 45,181, 98, 21,139,172, 24,
+ 0,168, 39, 48,188,183,119,206, 96,119, 27, 30,120,234,107,231,144,162,162, 85,123,227,180,135, 43,233,108, 96, 24, 6, 49, 49,
+ 49,144,203,229, 8, 8, 8,192,133, 11, 23, 50, 42, 16, 89,168, 47,144, 60, 60,244,211,184, 14, 70, 5,169, 60,245,171,187, 72,
+ 81,209, 58,185,186, 44, 90, 12,238,194, 99, 17,183, 9, 22, 91,212,179, 99, 99,204,253,126, 8,182, 28,250,147, 84, 91,117,245,
+218,126,229,250,200, 66,149,102,169,142, 34,171,212,216, 24, 24, 24,216, 44, 48, 48, 80, 0,192,115,244,232,209,215,135, 13, 27,
+ 6,127,127,127, 92,189,122,213, 25,128,180,120,191,213, 40, 90, 40,251,119, 0,209,149, 25, 30,121, 60,222,233,187,119,239, 54,
+183,179,179,195,221,187,119,161, 80, 40, 48, 99,198, 12,181,183,183, 55,111,226,196,137, 68, 94, 94, 94,169, 37, 43, 32, 32, 32,
+171, 50,145, 5, 0,201,201,201, 55, 46,156, 61,222,185, 91,183,110, 67, 26, 56, 55, 49,138, 46,200, 79, 55, 48, 16,138, 30,251,
+ 63,224,189,122,241,116,103,114,114,242,203,138,235,243,158,206,245,169,135, 30,122,232,161, 71,229,208, 73,139,148,179, 76,213,
+ 4,101,142,227,250,250,250,134,251,250,250,126, 98,241,250, 66,148,159,117,120,173,100, 76,171, 85, 30, 45, 42, 47,225,243, 19,
+160,233,154,156,236,103,191,153,154,154,146, 34,145,232, 19,161, 69,235,200,153,125,233, 20,162,127, 28, 91,106,201, 42,177,108,
+161,223,196, 47, 18, 90, 52, 77, 7, 0,248,164, 16, 6, 86,141,199,108, 29,232,210,165, 89, 3,123,150,246,236, 54, 36,201, 73,
+229,138,247, 26,229,187, 2,102, 80, 68, 5, 65,214,165,156,164, 22, 66,177, 40, 94, 36, 17,151, 23, 89,113, 0, 32,182,118, 30,
+182,177,127,147,238,110, 77, 26,178,200, 51,155,145, 44,215, 22,250, 68,104, 52,209, 50,230, 98, 37,117,184,162, 79,159, 62, 43,
+204,205,205,133,219,183,111, 55,118,116,116, 4, 73,146,234,242, 34,203,192,170,241,152,109,131, 93,187, 52,182, 49,101,105,207,
+239, 64,162,130,146,111,139,214, 30,213, 69,100, 89, 24, 75,110,237, 93,247,163,200, 64,192,133, 82,169,196,250,221,231,113,251,
+105,152, 87,102,216,229, 91, 0,110,125, 65,135,156,234,229,229,181,101,245,234,213,208,106,181,152, 50,101, 10, 62,126,252,120,
+251,253,251,247,219,234,214,173,187,240,167,159,126,178,179,177,177,193,200,145, 35,121, 90,173,118, 98, 37, 28,191,157, 60,121,
+210,203,205,205, 13,254,254,254,200,205,205,133,173,173, 45,188,189,189,249,190,190,190, 71,243,243,243, 71,172, 91,183, 78, 24,
+ 19, 19, 83,165, 37,235,147,126, 77, 81,107,246,109,249,113, 97,187,142,238,172, 15, 31, 34,201,132,246, 30,172, 7,119,175, 62,
+ 50, 55, 55, 63,154,144,144,240, 87,125, 14,105, 81,227,250,212, 67, 15, 61,244,208,227,235,128, 32,136,107,197,113, 87,159, 88,
+185,202,139,176, 18,139, 85,217,239,229,247, 47,222,254, 53, 30,150,247, 87, 32,188, 62, 77,239,224,229,229,165,243,180,122, 90,
+150,161,147,120, 42,143,111,154, 64,107, 47, 1,103,169, 7, 11, 60,177,169,114,224,234, 59,247, 43,219, 87, 44, 22,235,108,209,
+162, 85,202,234, 26,165, 70, 66,171, 56, 70,235, 38,195, 48,159, 8, 45, 99,235,198, 30,139,127,154,179,213,125, 88, 63, 86,218,
+247,157,144, 91,168, 82,253,244,150,164,147,228, 85,139,172,162, 81, 92, 27,107, 32,150,132, 10,197, 6,101, 69, 86, 2, 0, 8,
+173, 26,182, 95, 52,119,230,238, 30, 99, 6, 18, 25, 51,220,145,147,171, 80, 45, 12, 39,137,100, 5, 51, 34, 2,120, 80, 17,221,
+253,251,247,247, 1,216,231,225,225,145, 38, 22,139, 81, 88, 88,248, 89, 27,148,148,183,203,176,126,172,180,169, 29,144, 45,211,
+168,126, 10, 39,145,162,160, 79, 87, 39,178, 44, 77, 12,111,237, 93,251,163, 65, 74, 82, 28,120, 60, 30, 36, 18, 9,238, 60, 9,
+ 69,102,248,149, 47, 17, 88, 96,177, 88, 43,125,124,124, 86,204,156, 57, 19, 89, 89, 89,184,122,245, 42,190,249,230, 27,156, 58,
+117,202,241,250,245,235, 91, 60, 61, 61,193,102,179,225,231,231, 7,173, 86, 27, 85, 9,205,144,105,211,166, 45, 28, 54,108, 24,
+ 94,190,124, 9,169, 84,250,137, 37, 43, 55, 55,119,244,238,221,187,135,197,198,198, 86,107,201, 42,135,246,245, 27,182,230, 45,
+ 89,190, 9, 42,121, 58, 39, 35,249,185,255,189, 59,172,103,217,217,217, 6, 0,242,106, 91,159,122,232,161,135, 30,122,232,108,
+213,170, 76,139,100, 20,139,168,140,138,190,151, 17, 88, 21,125, 39,202, 89,193,212,229,182, 7,255,157,231,164,147, 69,139, 99,
+237, 10, 50, 45,172,140,208, 74,255,100,187,208,208, 76, 39,215,161,150, 4,103,239,225,210, 60, 90,194,172,172, 44,161,133,133,
+133,178,172, 64, 48, 48, 48,128,157,157, 29,114,114,114,176,127,255,126,160,250,160,104,210,104,216,120,180, 31, 51, 5,175, 28,
+248, 96,180,154, 82,203,214,222, 73,147, 62, 17, 91, 60, 30,175, 36, 54,172,186, 65,247, 69,177,165,233, 25, 0,166,181,115,131,
+ 95,133, 98,241, 36,161, 69, 29,139,185, 63, 78,229,198,166,171,112,223,125, 73,238,249,223, 22, 75, 18, 25,201,204, 4,228, 61,
+173,134, 47,250,219, 61,199,203, 91,178,146, 90, 57, 55, 88, 38, 52, 16,126,207, 55,171,103,227, 51,255, 71,110,108,154,138,184,
+223,254,167,252, 11,191,255,100, 16, 3,195,133, 73,200,125,160, 67,243,172,248,230,155,111, 86, 48, 12,195,208, 52,189, 28, 0,
+202,150,119,190,247,247,220,232, 84, 37,238,185, 47,203,185,240,219, 98,195, 68, 84, 93, 94,139, 22,131,187, 88,155, 26,221,218,
+187,110,166,129, 52, 57, 30, 2,129, 0,134,134,134, 72, 76,203, 3,151,195, 86,124, 97,127, 19,116,237,218,117,241,143, 63,254,
+136,208,208, 80,204,152, 49, 67,154,144,144,112,241,204,153, 51, 51,126,249,229, 23, 78,223,190,125, 33,149, 74,177, 97,195, 6,
+237,147, 39, 79,214, 1,216, 80, 97,127,228,112,166,254,250,235,175, 76, 74, 74, 10, 17, 19, 19, 3, 91, 91, 91,204,154, 53,139,
+191,110,221,186,210,152,172,154, 88,178, 74,144,156,156,236,127,251,238, 51, 12,186,177, 21,164, 86,229,159,155,149,240,232, 93,
+116,142,191, 25,159,191,192,190,117,139, 90,213,167, 30,122,232,161,135, 30, 95,197,138,245,170,170,239,255, 5,168,200,117,168,
+147,208,138,218,177,108,178,243,228,153,139, 32,114,236, 2, 85,196, 37,208,133,105,165, 22, 45,161,196, 20,102,117, 93,144, 43,
+ 83,225,220,189, 55, 0, 16, 85,147, 82, 21, 20, 20,160, 77,155, 54,216, 53,177,113, 15,101, 65,150, 80, 4, 64, 37, 48, 82, 94,
+230,119,189,127,253,250,117, 57, 77,211,167, 1, 92,175,134,102,101,243,230,205,119,110,218,180,137,239, 50,102, 50, 10,159, 63,
+ 46,111, 65,129, 72, 36,130, 64, 32, 64, 72, 72, 8,238,223,191,175, 6,176,178,154, 6,125, 65,146,100,240,153, 51,103,146, 26,
+ 53,176,239,215,166, 85,203,217, 75,151,248, 24,190,125,124, 27,203,215,237,164, 27,181,237,155,183,254,212,229,130, 60, 73,221,
+158, 10,233,251, 32, 29, 78, 53,184,156,200, 74,105, 90,191, 78,143, 86,174,205, 23, 45, 95,190,204, 40,252,241, 29,252,242,251,
+ 94,198,217,173, 87,222,239, 23,174,228,103, 26,212,235,163, 76,127,247, 82,151, 58,244,247,247,223, 7, 96, 95,201,247,242,229,
+245, 89,189,141,110,220,174, 95,206,250, 83, 23,100,249,134,117,123, 85, 85, 94, 75,151, 33,157, 29, 44, 77,111,237, 88,243,131,
+ 65,106,114, 2, 4, 2, 1, 36, 18, 9, 18,164,185, 88,177,245,172, 76, 67,211,253,190, 84,104, 25, 26, 26, 10, 52, 26, 13,118,
+237,218,133,132,132,132, 78, 0, 18, 94,191,126,189,119,212,168, 81,219, 91,180,104,209, 52, 60, 60, 60,170,176,176,112, 38,128,
+119,149,145,152,152,152,116,178,180,180, 36,158, 61,123,134, 31,126,248, 65, 61,107,214, 44,222,132, 9, 19,136,156,156,156,218,
+ 90,178, 0, 0,246,246,246, 30,189,123,118, 68,151,222, 51,252,213,202,220, 71,177,239,142,250,179,152,167,194,218,214,167, 30,
+122,232,161,135, 30,255, 26,212, 46, 49,184, 7,192,105,108,142,233,205,237,121,169,199,126,155,197, 20, 68, 7, 48,138,151,251,
+152,252, 75,223, 51,215, 54, 76, 96,174,239,152,203,204, 24,208,156,105,106, 69,164, 54, 54,199,116,143,207,133,219, 39,171,123,
+127,211, 4,218,222, 13,193,244,110, 8,102, 64, 99,104, 1, 44,109,221,186,245,101,239,246,127,229,209,242,110, 15, 6,192, 15,
+ 0, 36,149, 20,171,162, 21,195,109, 1,236,111,211,166, 13,249,224,193, 3,230,253,136, 94, 76, 96, 83, 11,102,230,204,153,204,
+ 47,191,252,194,140, 29, 59,150,177,180,180, 36,139, 43,194,182, 58,206, 65,131, 6, 57, 0, 64,157, 58,117, 76,218,186, 52, 74,
+ 13,185,119,149,121,116,108, 59,115,200,123, 40,211,161,133, 75,166, 77,211,110,193, 34,219, 38,173,170,169,190, 82, 78, 27, 27,
+155, 37, 12,195,244, 99, 24,198, 22, 0,156,157,205, 37,173,155, 54, 74, 9,190,123,149,121,124,124, 39,115,200,123, 40,211,177,
+101,179, 44, 7, 23,207,119, 66,171,166,237,117,225,172, 8, 21,150,215,181,105,166,117,163,206, 65, 85,148,183,148,179, 65,251,
+145, 87,146, 82,210,152, 23, 47, 94, 48,215,175, 95,103, 30, 63,126,204, 28, 59,115,133,169,219,110, 68,161, 69,139,193, 93,106,
+208,117, 42, 43,167,241,128, 1, 3,152,168,168, 40,166,127,255,254, 12, 0,227, 90,114, 94,142,141,141,101,194,194,194,152,165,
+ 75,151, 50, 0,142,252,248,227,143,138,188,188, 60,166, 87,175, 94, 9,197, 2,139, 83,155,114, 58,213,183, 95, 63,100, 96,215,
+149,222, 63, 12,243,248,210,250,252,138,208,115,234, 57,245,156,122,206,127, 3,231,255, 50,108,139,173, 90, 37,239,173,117,202,
+163,229, 15,144,200,194, 62, 87, 43,205,137,117, 27,118, 44,216,181,239,200,162,197,179,167,138,187,186,247, 70,232,221, 63,112,
+193,239,140, 76,169, 82,111,224,177,177, 41, 44, 11,242,200,106, 74, 81,156, 71,235, 19, 4, 6, 6, 26,152, 53,252, 43, 7,211,
+135,162,220,172,123,107,120,130, 82, 0,211,222,188,121,179,201,211,211,115,237,247, 93,218, 15,245,238,220, 3, 90,173, 22,199,
+142, 29, 67,124,124,252, 69, 0,203,116,181,184,133,134,134,102, 54,107,232, 56,135,203,230, 44,154, 57,118,136,101,198,199,183,
+ 72,138, 8, 4, 0,168, 84, 10,109,106,212, 35,183,154, 20, 78, 36, 18,189,176,180,180,124,111,105,105,153,211,184, 65,157,105,
+ 2,112,151,207, 24,253,173, 85, 86,236, 59, 36,134, 23,121, 70, 85, 74,185, 38, 41,234, 65,211,218,180,174,163,163,163, 64,204,
+197,244, 10,203,171, 86,106,211, 62,188,107,165, 11,143, 92,165, 94,183,106,203,177, 62,107, 22, 77, 18, 24, 25, 25,225, 77,216,
+ 7, 44,223,124, 74,166, 80,107,251,101,134, 94,254, 42,238, 49,134, 97,160,213,106,117,158,232, 80, 9, 22,187,185,185, 53, 89,
+187,118,173,243,196,137, 19,241,165,150,172,178,136,142, 77,246,177,175,227,212,236,195,251, 55,158,102, 34,222,137, 47,169, 79,
+ 61,244,208, 67, 15, 61,254, 53, 24, 80,108,204,153, 86,230, 61, 16, 58, 62,245, 35, 44, 29,114, 0,171, 27,176, 11,247, 46, 89,
+187,101, 5,139,216, 58,137,102,152, 63, 72, 22, 86,197,100, 33,227, 11, 11, 39,231,114, 64,246, 25, 60,150, 3, 0, 92, 78,237,
+ 6,200, 98, 68, 1, 24,118,224,233,203,118, 7,158,190,252,185,248,183, 53, 0,106,228,203, 53,228, 32,204,189,153,147,125,215,
+214,205,133,108, 74,129,164,136,143,200,150, 41,113, 39, 60, 62,151,197,176,254,168,105,161, 98, 98, 98, 30, 2,128,181,177, 65,
+ 68,215,102, 13,235,118,107,211,220,128, 75,168,145,244,246, 13,242, 20,106,220, 14,143,207, 3, 65,212, 58,160,250,107,149, 55,
+ 45,244,202,171, 63, 65,244, 34, 8,226,238, 82,239, 49,130, 21,155, 79,127, 85,145, 5, 64,158,156,156,156, 37,151,203,205, 83,
+ 82, 82,212,168,125,146,184, 15,249,249,249, 45,230,206,157,187,122,225,194,133,139,126,251,237, 55, 94,109, 98,178, 42, 67, 78,
+114,252,165,110,205,191, 94,251,235,161,135, 30,122,232,241,175,192,180,114,239,208, 89,104,149, 10,134,116,100, 0,152,233,228,
+196,204,143,142,134,250,107,149,172, 34, 75,215, 23,226, 21,128,129,181, 62,154, 69, 20, 60,143,138, 47,124, 17, 21, 95, 8,154,
+ 97,104,134, 81,177, 88, 72,148,105, 52,235,162, 98,146,107, 63,235,142, 32,168, 87, 31, 18, 20,175, 63, 38, 42, 25,154,102,104,
+134, 81, 19, 4, 82,181, 90,122, 93,120, 76,252,149,255,134,242,102,134, 94,126,234, 71, 18, 93,159,190, 8,155, 47,147,105,118,
+102, 70, 92, 14,248,138,237,162, 13, 13, 13, 29,215,169, 83,167,201, 20, 69,237, 5,160,253, 2, 46, 53, 73,146,139,215,175, 95,
+127, 49, 52, 52,244,108, 64, 64,128,244,107,136,172,191,181,253,245,208, 67, 15, 61,244,248,167,162,118,139, 74, 87,134,175, 41,
+178,254, 27, 17,246, 33,174,205,223,193, 27,254, 33,206,245,127,161,188,105, 17,151, 94,167, 1,163,255,166,234,189, 77, 81,212,
+237,175, 41,170,111,222,188, 89, 31, 21, 44,171,243,223,214,254,122,232,161,135, 30,122,252, 99, 49,173, 50,241,197,209,215,141,
+ 30,255, 0, 48, 95, 75,100,233,161,135, 30,122,232,161, 71, 45, 80,169, 69,139, 64,229, 51, 7,238,214,224, 15,106, 51,251,224,
+174,158, 83,207,169,231,212,115,234, 57,245,156,122,206,127, 29,231, 63, 17,182, 40, 10,136,191, 86,252, 14,134, 97,246,255, 39,
+254, 88, 63,245, 85,207,169,231,212,115,234, 57,245,156,122, 78, 61,231, 63, 29,159, 5,194,151,164,119, 96,233,235, 70, 15, 61,
+244,208, 67,143,191, 17,130,226, 87,109,183,235,161,199,255,162,216, 42, 21, 92,181,137,209,106, 84,252,254,225,111, 44,172,183,
+173,173,237,180,150, 45, 91,186,240,120, 60, 86, 65, 65,193,170, 7, 15, 30,172, 44,191, 83,215,102,156,215,108, 22, 28,254,250,
+133, 0, 8, 54,192, 98,129, 98,144,244, 56, 68,209, 86,223,238,255,213,112, 20, 25, 89,254, 73,176,216,124,138,212,128,210,106,
+ 80, 20,110, 85, 4,154, 38,227, 41,141,170,111,101, 7,219,184, 13,169, 75, 82,244,111, 0,179, 11, 96,253, 8,208,187, 9,112,
+102, 48, 32,247, 16, 96,255, 0, 54,243, 59, 40,226, 39, 14,151,189, 68, 26,120, 62,241,159, 80, 97,231,206,157, 99,127,201,241,
+ 35, 70,140,168,112, 1, 81, 59, 59, 59, 63, 3, 3,131,134,149, 29, 39,147,201,164, 82,169,212,243, 31,222, 31,187, 1,216, 1,
+160,121,185,223,223, 1,152, 3,224,222,151,254,129, 7,192,177, 6,166,243,128,159, 0, 64, 3,252,158, 6,236,243,255, 47,138,
+ 49,180,180,180,124,196,225,112,156,101, 50,153,172,160,160,192,201,208,208, 48, 90, 44, 22,139, 73,146,140,202,200,200,232, 86,
+ 67,186, 31,241,215, 82, 90,139, 0,236,174,225,118, 61,244,248, 95,193, 23,205, 58,108, 92,116,127,128, 7,128,110,237,218,181,
+179,150,201,100,120,247,238, 93, 26,128, 71, 0,252,139, 95,145, 95,163,164, 44, 22,107,227,150, 45, 91, 22,204,154, 53,171,116,
+ 49,232,144,144, 16,184,185,125,158, 35,148,205,130,195,131,171,119,173, 94,133, 70,162, 93,175,225,197, 66,139, 5,200,164,240,
+236,221,190,182, 69, 48, 52, 53, 53, 93, 69, 16,196, 8, 22,139, 85,237,160, 70,211, 52,197, 48,204,185,156,156,156, 21, 0, 10,
+106,242, 71, 98, 3,129,150,164,168, 10,255,131,195,102, 83, 50,185,170,210,180, 23,102,102,102, 1, 44, 22,171, 65,217, 5,179,
+129, 79, 23,208,174,108, 27, 73,146, 73,153,153,153,186,136, 80, 33,139,195,155, 67, 16,188,222, 96,209,141, 1, 2, 4, 88,145,
+ 52,165,190, 67,147,154,109, 0,148, 95, 34,178,108,235, 56, 61,158,183,108,189, 67, 88,196, 59, 44,245, 30,139,223,118, 28,193,
+146, 57,147,177,109,255, 41,204,153, 54, 6,205,154, 53, 71, 85,203,138,211,224,173, 91, 54,123, 68, 47,223, 93,103,221,151,204,
+ 28, 33,240,221,117,174,235, 82,239, 81,252,117, 59,207,118, 93,234, 61, 82,224,187,243,172,251,146,217, 35, 68,235,118,159,167,
+ 1,140,175, 77, 33,199, 56,219,201, 8,146,172,240,105,155,225,112, 84,167,162, 82,196,255, 31, 87,244,196,137, 19, 91, 42, 20,
+138, 55, 99,123,183, 94,223,170,177,125,114, 69,251,100,165, 38,219, 71,191, 15,244,225,242, 68,109,190,245, 57, 18, 82,165,201,
+ 65, 32,104,240,238,221, 59,103,154,166, 65, 81, 20, 72,146, 44,125, 87,171,213,232,214,173,219,215,154, 56, 51, 16,192,170,162,
+139, 21,190, 0,206,126, 1,151,132,195,225,204,227,243,249, 30, 36, 73,186, 0, 0,151,203,141, 80,169, 84,254, 36, 73,110, 1,
+ 80, 88, 67,190,173,201,201,201,205, 36, 18, 9, 52, 26, 77,233, 2,244,108, 54,187,105,221,186,117,119, 41,149, 74,231, 47, 61,
+121,107, 96,122,103,119,247,109, 19, 22, 44, 96, 43, 30, 61,194,182,195,135,183, 34, 63, 31, 0,118, 85,119, 44,159,207,191,197,
+ 98,177, 28,107,242,127, 52, 77,199,171,213,234,190, 53, 57,134,195,225, 56,167,164,164, 88,217,217,217,161,160,160, 0, 98,177,
+ 88, 92,242,189, 22,150,172, 13, 12,195,136,138,239,237,219, 58,118,236,216,137, 32, 8, 18, 0, 67,211, 52,235,197,139, 23, 99,
+104,154,230, 20,223,159, 54, 0, 56, 12, 64,165, 31,179,245,248, 31,181,102,237,175,169,208,186, 14,192,163, 93,187,118,162,209,
+163, 71,195,195,195, 3,206,206,206, 16, 10,133, 69, 55,241,172, 44,235,160,160,160,145,143, 30, 61, 26,121,245,234, 85,188,125,
+251, 86, 1,224, 9,128, 10, 47,234,158, 94,238,179,132, 18,193,118, 0,200, 72,202,146, 38,197,164,111,151, 74,165, 27, 0,148,
+ 77, 17,238, 52,126,252,248,249,179,103,207,134,159,159, 31, 78,157, 58, 5,149, 74,133,130,130, 42,244,139, 60, 29, 57,247,215,
+ 3,226, 88, 32,193, 31, 48,176, 2,196,214,181,174, 41, 83, 83,211, 85,115,230,204,153,219,172, 89,179,210, 44,230, 90,173, 22,
+ 36, 73, 66,171,213, 34, 39, 39, 7,243,231,207, 47, 26,104, 25, 6, 52, 77,227,198,141, 27,179,166, 77,155,134,156,156,156,121,
+ 21,113,118,108, 83,231, 53,139, 96, 57,148,216,106, 24,138, 74,122, 30,148,212,150,164, 40,182, 82,169,169,112,165,114,161,144,
+ 87,165,200,227,114,185, 14,111,255,252,211,138,197,231,131,161, 40,128,166,193,208,116,113,117, 22,191,152,162,223, 24,138, 6,
+163,165, 64,147, 52, 72,133, 10,237,127,252, 81,151,170,232,204,229,139, 78,141,251,126,129, 77,135,142, 29,185,245,234,216,129,
+164,104,124,140, 77,178,121,243,250,121,151,115, 71,119,205, 80, 43, 10,198, 0,168, 85,158, 45,190,129,209,237,157,123, 14, 56,
+188, 10, 10,195,189, 7,143,112,247,190, 63, 0,224,214,131,128, 18,193, 93,109, 83,129, 44,108, 49,103,202, 96,193,250,157,167,
+185,115,166, 12, 97,255,182,243, 12,119,246,228,111,217,235,183,159,226,205,158,252, 45,123,253,142, 83,188,217, 83, 6,179,125,
+183, 29,106, 9,192, 20, 64, 78,101,100,149,181, 17, 65,146,130, 19,209,105,108, 0,200,216,187, 23,218,244,116,216,173, 88, 1,
+ 0, 24,231,100,173,179,187,195,194,194,226, 53,151,203,117,168,110, 63,173, 86, 91,173, 8,158, 56,113,162,155, 66,161,120, 77,
+146, 36,195,225,112,124,198, 14,233,115,185, 95, 87,183,172,178,251,132,132, 4,155,175, 91,247,231,224,179,111, 10,152,145,109,
+ 12,223,248,109,156,216,214,107,225,145,224, 42, 6,100,150, 74,165, 66, 84, 84, 20,202, 46,242, 94, 6, 84,109,159,157, 0,108,
+ 51, 55, 55,239,144,149,149, 53, 14,192,210,252,252,252,150,108, 54, 27,102,102,102, 75,213,106,245, 71, 99, 99,227,131,121,121,
+121, 1,197, 86, 35, 93,151, 12,232,102,100,100,116,236,210,165, 75,166,173, 91,183,102,101,102,102,162,126,253,250,200,206,206,
+110,255,232,209,163, 54, 83,166, 76,153, 82, 80, 80,240, 93,241,195,160,174,104, 98, 96, 96,192, 76,152, 48,129,160,168,191, 78,
+247,208,161, 67,232,235, 74, 54,180, 52, 49,144, 43,213, 76,222,189, 40,227, 31,120, 60,222,147,248,248,248,188,154, 86, 6, 15,
+248,105,194,130, 5,108, 73, 92, 28, 36,193,193, 24,151,159,207,249,173,200,186, 85,173,208, 98,177, 88,142,199, 78,253,225,204,
+231,243, 65,146,100,169, 24, 44,185, 71,105,181, 90,104, 52, 26,104,181, 90, 80, 20, 5,173, 70, 11,223, 53,191,215,250, 94,104,
+ 96, 96, 96, 96,107,107,155,102, 96, 96, 96,240, 53, 70, 33,129, 64,192, 57,122,244,232, 24, 62,159, 15, 0, 80,171,213,112,117,
+117, 37,244,227,179, 30,255, 48,177,245,153,149,171, 42,161,213, 63, 63, 63, 31, 20, 69,193,208,208, 16,108,246,167,227,190,185,
+185, 57,122,247,238,141,110,221,186, 97,244,232,209,120,251,246,173,104,244,232,209,189, 43, 35, 27,187,192, 11,117,156,173,139,
+ 7, 19,218,246,233,181,160,245,135,126, 61,111,153,154,154,186,160,204,110, 83,166, 79,159, 78,100,101,101, 97,196,136, 17,143,
+ 84, 42,213, 32, 0,249,149,113, 82, 52,146, 60, 71,143, 3,205, 16,162, 45, 47, 14, 16,106,165,130, 97,177, 88,138, 18,215, 97,
+109,106,137, 32,136, 17,118,118,118, 56,125,250, 52,212,234,207,211,133, 25, 25, 25, 33, 60, 60,252, 47,171, 26,155,141,142, 29,
+ 59,178, 9,130, 24, 1, 96, 94,197,156, 44,135,167,175,226,172, 74,190,123,245,110,206,235,216,134,149,150,146, 38, 99, 0, 16,
+203,150, 45, 43, 21,110, 0,176,106,213, 42, 93,202, 9, 22,151,139, 12,127,255,191,110,196, 28, 22, 88, 60, 2, 4, 23, 96,113,
+138,188,168, 96, 0,134, 2,104, 18,160,181,128,208,182,142, 46,213,208,222,190,174,179,223,186,205,187, 77, 84, 90, 6,167,175,
+220, 67,108,108, 12,216, 44, 22,156, 26, 58,163, 79,247,174,220, 54,237, 58,213,249,125,229,130,171, 41, 9, 31,250, 3,120, 89,
+227,138,166, 25, 97,195,186, 22, 56,120,232, 13, 44, 77, 37, 24, 49,248, 27,136,132, 2,252,182,227, 15,172, 89,226, 13,103, 39,
+ 71,236,219,186,182,210,195,141,141,141, 87,187, 56, 55,116,220,125,244, 26, 92,154, 54,101,239, 62,118, 13, 46,205,138,223,155,
+187,176,119, 31,187,134,102,205,155,177,119, 31,187,134,150,205,155,212,123, 45,125,177, 58, 59, 59,219,187,242,250, 44,215, 70,
+125,138,218,136, 91, 72,151, 14, 4,113, 51,102, 0, 64,169,208,170, 9,184, 92,174, 67, 74, 74,138, 85,117,251, 85,103, 53, 40,
+182,100,189, 38, 73, 18,233,233,233, 68,110,110, 46, 99, 98, 98, 50,248,230,190,165,151,250,186,187,101, 3, 64,112,112,176,153,
+175,239,186,193,103, 94,231, 67,241,124, 39,113,226, 79,127,122,220, 32,143,215, 87,214, 79,108,131,226, 37, 33,202, 67,165, 82,
+197,182,106,213,138, 41,254,108, 47, 16, 8,120,229,250,155, 93,163, 70,141, 62,179, 90,235,224, 82,220,246,236,217, 51,239,102,
+205,154,161,105,211,166, 1, 29, 58,116, 48, 18,139,197,184,121,243, 38, 92, 92, 92,154, 27, 25, 25,189, 56,119,238, 28,119,241,
+226,197,110,135, 15, 31, 6,128, 89, 58, 84,103, 47, 79, 79,207,211,126,126,126, 66, 30,143, 7,133, 66,129,240,240,112, 24, 27,
+ 27,131,207,231,227,219,111,191,101,119,233,210,197,188,123,247,238, 23, 34, 35, 35,199,160, 6, 51,160,148, 74, 37,179,116,233,
+ 82, 24, 24, 24,192,192,192, 0, 98,177, 24, 98,177, 24, 18, 33,136,189,115,234,138,102,239,207, 21,205, 91,177,119,253,177,221,
+ 43, 31,212,169, 67,255,146,152,152,152, 91,211,190,160,120,244, 8,146,224, 96,160,204,181,171, 43,140,197,102,240,241,241,169,
+206, 34, 5, 30,143,135,206,157, 59, 87,203,103,102,102,118,145,195,225,124,242,100, 74,146,164,208,199,199,135,138,140,140, 20,
+179, 88, 44, 49, 77,211,240,241,241,161, 72,146, 20, 90, 89, 89, 5,208, 52,157,150,153,153, 57, 84,135,226,170, 0, 44, 98,177,
+ 88,219, 4, 2, 1,167, 94,189,122,241,203,151, 47,127, 86,108,205, 4,195, 48,172,122,245,234,181, 23,137, 68,142, 42,149,138,
+ 68,145,235, 80,111,205,210,163, 66, 48, 12,211,166,200, 40, 92, 10, 53, 0,126,241,231,172,162,209, 14, 22,229,126, 7,128,204,
+226, 7, 69,235, 74,190,103, 1,120, 11,160, 9, 0,171,226,109,175, 8,130,200,174, 69, 49, 43,183,104,249,249,249,149, 62,194,
+122,121,121,149, 14, 44,134,134,134,120,245,234, 21, 8,130,128,161,161, 33,140,140,140, 96,108,108,140,252,252,124,188,125,251,
+ 22,239,222,189, 67, 92, 92, 28, 8,130,128,147,147, 19, 74, 46,160, 50, 40,189,193,157,220,228, 7,161, 68, 0,130, 0, 90,247,
+104,137,150,221, 92,209,238,101,244,156,215,119,137,253, 82,169, 52, 10, 0,199,213,213,117, 74,199,142, 29,177,121,243,102,168,
+ 84,170,205,149,136,172, 82,206,199,111,201,182, 0, 96,107,107,187,240,248,205,143, 6,227,251, 53,148, 75,165,210,141,181,168,
+156, 79,110,196,153,153,153, 58,175,197, 71,211, 52,114,114,114,170,228, 44,111, 33,216,178,109,167, 73, 65, 94, 26,126,253,237,
+ 56,180, 90, 45, 22, 44, 88, 0,154,166, 75, 95,185,185,185, 58,149,147,161,168,207,109, 7,172, 34,239, 41,193, 1,234,142, 42,
+210, 21, 9,167,119,130, 96, 0,130, 2,240,249,121,149, 31,132,132,108,158,232,204,202,223,182,155, 4,190, 75,194,149,123,129,
+208,228, 39, 67, 26,124,169,200,228,216,121, 12,206,170,216,232,208,178, 33,230, 46,251,221,244,231,185,223,157, 81, 43, 10,154,
+226, 83, 55,226,221,234, 47, 26, 10,191,174, 94,141,253,219, 55,227,247,205,219,145,159,151, 11, 46,215,162,248, 70, 79,129,162,
+168,170,207,157, 97,250,249,204,153, 68,252,182,231, 34,218, 55,179,197,133,155, 47,225,222,202, 17,151,110,191, 70,183, 54,245,
+113,229,110, 32,122,116,104,136,235,254, 97,152, 59,125, 12, 49,230,214,225,126, 53,105,163,173, 91,119,154, 20,228,167,193,111,
+237, 81,164,239,218,133,120,111,111,180, 47,222,231, 37, 65,128,231,224, 0,240,170,111,163,242,136,136,136,128, 74,165,170,232,
+105, 31, 46, 46, 46,213,182,187, 66,161,120, 67,146, 36,147,150,150, 70,164,165,165, 65, 44, 22, 19,225,225, 97, 84,243,230,174,
+ 67,152,119,231, 15, 0,128,175,239,186, 33,103,223,228, 67, 30,176, 29,138,103, 59,192,171, 31,194,218,191,106,186,102,218,138,
+125,111,202, 92,163,159,148, 51, 53, 53,181,127,106,106, 42, 0,160, 65,131, 6,239, 34, 35, 35,155,148,184,154,139, 93,136, 60,
+146, 36,157, 75,220,137, 36, 73, 66,165, 82,161, 87,175, 94,236,170,206,221,212,212,180,163,139,139, 11, 2, 3, 3,177,125,251,
+118, 51, 79, 79, 79,124,248,240, 1, 4, 65, 96,221,186,117, 68,179,102,205,184,153,153,153,232,219,183, 47, 46, 94,188,216, 57,
+ 63, 63,191,186,250, 52, 20,139,197,135,175, 94,189, 42,100,177, 88, 40, 40, 40, 0, 77,211,232,210,165, 11, 88, 44, 22,194,194,
+194,176,108,217, 50, 92,188,120, 17,151, 47, 95, 22,181,105,211,230,176, 92, 46,119,193,167,110,253,202,218,136, 81, 42,149,140,
+ 64, 32,128, 64, 32,128, 80, 40,132, 80, 40, 4,159,207, 71,161, 18,152,182, 37, 94,197, 22, 90,208,205, 91,185, 55,156, 52,123,
+ 29,107,227,242,201,247, 1, 92,209,181,207, 3, 69, 49, 89,219,254,248, 99,251,184,188, 60, 22, 0, 28, 36, 8, 90,195, 48,191,
+235,114,189, 3, 64,161, 50, 15,142, 78, 14,184,112,230, 50,134,141, 26, 92,161,200,226,114,121,224,113,185, 48, 50, 19, 87,203,
+201,227,241,172,223,189,123,103,206,229,114,193, 48, 12, 40,138,130, 70,163, 73,251,249,231,159, 45, 7, 12, 24, 96,120,227,198,
+ 13,214,128, 1, 3,104, 83, 83, 83,217,203,151, 47,211, 73,146, 52,239,218,181,107, 77,250,252,238,150, 45, 91,182,190,116,233,
+210,100, 31, 31,159,215, 11, 23, 46,252,181,236,198, 13, 27, 54,172,190,126,253,186,227,144, 33, 67,142, 5, 7, 7,239,174,201,
+ 61,228, 75,239,243,122,206,255, 62,206,202,180, 72, 49,172, 9,130,240, 43,115,207,246, 42,249,238,227,227,179,212,215,215, 55,
+156, 32, 8,191,178,191,151,236, 87,252,176,232, 87,209,247,226, 99,205,150, 44, 89,226,186,126,253,250,117,157, 58,117, 58, 29,
+ 16, 16, 16, 3,160,166, 66,171,234, 24,173,146, 19, 42,123,146,229, 6, 53,228,231,231, 35, 63, 63, 31,137,137,137,216,187,119,
+111,241, 5,205, 5,135,195, 1,135,195, 41,141,103,168, 12,247,252,158,236, 0,176,163,117,235,214,220,208,103,231,110,252,180,
+127,118,207,182,189, 90,179,223,220, 11, 29,142,162,245, 8,251, 79,152, 48,193, 2, 0,142, 30, 61,154, 9,224,198,255,147,106,
+ 62, 23, 21, 21, 53,215,214,214,182, 52, 70,165,172,251,144, 36, 73, 8,133, 66,148,196,178, 40,149, 74,236,221,187,151,100, 24,
+230, 92, 21,156,136, 12,191,143,168,240, 7, 69,199,209, 52,104,234,175,227, 87,174, 92, 89, 58, 13, 20, 0,102, 20, 91, 78,170,
+ 21,121, 21,213, 57, 83,238,189,220,239, 12, 69, 85,227,158,224,205, 30,254,157,183, 45, 77,112,240,231,253, 32,112,185, 92,208,
+101,172,153, 92,118,209,211,114,248,135, 20,216, 89, 55,199,160, 49,211,109, 46, 29,219, 57,155,212, 40,127,171,105, 93, 55,109,
+217, 9,115,230,206,197,129,253,251,177,108,197,234, 82, 5, 64, 82, 20,200,106,203,201, 98,245,234,226, 10,178, 48, 5,108, 54,
+ 27, 61,218, 55, 4,155,205, 70,239, 78,141,193,102,179,209,183, 75, 83,112, 56, 28,244,115,111,134, 70,141, 26,129,195,225,176,
+170,105,119, 68,134,223, 67, 84,248,195, 50,162,151, 1, 3, 64, 35,149,126,182,191, 86, 42, 5, 83,215,188,166,125, 11, 83,166,
+ 76,201, 77, 76, 76,212,148,223, 86,167, 78, 29,222,163, 71,143, 76, 42,113,219,149, 66, 36, 18,181,225,112, 56,111,178,179,179,
+105, 3, 3, 3, 22, 77, 83,116,243,230,174,236,155,251,150, 94, 42,217,103,201,146,165,151, 70,182, 49, 26,114,252,156, 31,195,
+171,231, 78, 16, 92, 1,249,253,138,125, 60, 46, 79,212, 6, 80,232,242,240,192, 82,169, 84,120,255,254, 61,170, 43, 15,195, 48,
+ 85,186,126,114,114,114, 38,184,184,184, 60,218,177, 99,135, 25, 65, 16,120,252,248, 49,216,108,118,233, 43, 58, 58, 26, 44, 22,
+ 11, 63,253,244,147, 38, 63, 63,127,106,117,101,227,112, 56,115, 47, 92,184, 96,204,231,243, 81, 80, 80, 80,122,221,176,217,108,
+188,123,247, 14, 27, 55,110,196,132, 9, 19,144,144,144, 0, 59, 59, 59, 44, 88,176, 64,178,126,253,250,185, 26,141,102,181, 14,
+ 77, 20,162, 86,171,219, 26, 24, 24, 64, 40, 20,162, 68,112, 1,192,237,112,110,152, 66,161,104, 97,110, 46,183,177,244,247,251,
+179,179,231, 32, 55,115, 75,219, 78, 82,169,244, 74, 77,250,192, 71, 96,127, 44, 69,253,220,255,210, 37,171,167,151, 46,209,207,
+175, 94, 77, 18, 20, 20,236,211,185, 15,105, 89,136,143, 78, 66,155, 54,109,240,230,205, 27,180,105,211,166,172,104, 2,159,207,
+ 7,143,199, 3,143,199,131,133,169, 78, 33, 20, 12,139,197,194,211,167, 79, 65, 81, 20,212,106, 53,212,106, 53,154, 53,107,150,
+253,224,193, 3, 9, 0, 68, 71, 71, 51,227,199,143,207,125,241,226, 5, 90,181,170,122, 61,117,107,107,235, 71,108, 54,187, 94,
+217,223,178,178,178, 76,135, 14, 29,138,156,156,156,111,134, 14, 29,234, 94,124,253, 38,159, 63,127,126, 60, 0,240,249,124,176,
+ 88, 44, 10,122,252,235, 81,157, 22, 41, 43,148,202, 11, 46, 95, 95, 95,175,242,191,149, 21, 85, 21,125, 46,123,236,250,245,235,
+215,149,225, 86,212,162,248,213,199,104,249,249,249, 49, 21, 40, 72,157, 81,157,208, 42, 65, 96, 96,160,214,206,206,238, 64, 84,
+ 80, 92,207,134, 45,157, 32, 18, 11,250, 0,216, 33, 16, 8,230,127,247,221,119,120,254,252, 57,194,194,194, 14,225, 11,103,225,
+184,186,186,222, 18, 8, 4,142,149,184, 73,226,195,194,194,250, 86, 50, 48,172,184,122,245, 42,170, 10,134,191,127,255,126,217,
+ 65,169,108, 48,124,197, 29,131,102,160,213,104, 33,147, 43,254, 26,196,139,133,150, 76, 38,195,168, 81,163, 62,177,104,165,167,
+167, 87,123,126, 4, 65, 96,227,149, 43,184,115,238, 28,190,113,115,195,197,151, 47,177,254,187,177,104,234,104, 15,134, 34,192,
+ 16, 64,194,169,157,200,202, 47,196,201,123, 79,145, 93, 32,199,184,174, 93,225,108,100, 81, 53, 47,151,215,187,125,199, 78,188,
+187, 1,111,193,229,114,192, 2, 13, 70, 43,135,157, 75,119,176, 89, 44, 24, 91,215, 7,143,203, 5,151,203, 65,116, 98, 38, 92,
+ 92,219,241,253,248,194,222,181, 17, 90,117, 28,235,131,162, 40, 76,152, 48, 1,167, 79,159,134,185,141, 35,140,235,184, 98,205,
+230,253,248,166, 87,215,106,207,191,228, 9,158,195,225,128,205,102,127,246, 94,242, 89, 23,235, 36, 67, 51,208,148,111, 35,154,
+ 1, 24, 6, 14,107,215,194, 97,237, 90,188, 44,254,207,102, 50, 25, 20, 10, 5,208,161,121,141, 68,150, 90,173, 70, 98, 98,162,
+ 38, 53, 53,213,186,130,237,105,106,181,186, 90, 97,115,228,200,145,144,137, 19, 39,182, 53, 51, 51,123, 29, 18, 28,172,109,233,
+230,198,189,177,119,233,229, 18,183, 33, 0,184,185,185,101, 47, 93,186,244,242,248, 17, 94,131,119,251,140,166,126, 92,125,140,
+ 35, 16,137,218,122, 45, 60, 18,114,106,196,136,234,253, 61, 42, 85,108,203,150, 45, 25, 93,206, 75, 46,151,167, 86,177,121, 32,
+128, 85,173, 91,183, 54,242,244,244,196,163, 71,143, 48,108,216, 48,149, 70,163,137, 2,128, 1, 3, 6, 52, 62,121,242, 36,255,
+237,219,183,176,180,180,228,198,199,199, 31, 70, 53, 1,242,124, 62,191,123,187,118,237, 88, 42,149,234, 51,145,181,126,253,122,
+140, 25, 51, 6,141, 27, 55, 6, 77,211, 40, 44, 44,132,167,167, 39,119,251,246,237,221,117, 20, 90,115,154, 54,109,186, 17, 69,
+179, 14,203,222, 11, 35, 80,228,214, 66, 86, 86, 86,106,208,139,123,225, 93,123, 13,109, 91,175,145,171,109, 88,200,155, 42, 9,
+173,172,172,150,176, 88,172,145, 52, 77,179,243,243,243, 19,131,212,234, 70,205, 28, 29,173,187, 12, 30,140, 60, 46,151,189,237,
+222, 61, 86, 90, 65,129, 4,128, 78, 46, 72,165, 86, 6, 71,167,162, 80,191, 97,163, 6,227,205,155, 55, 24, 62,122, 8,120, 60,
+ 30, 56, 28,110,209,181,201, 43,178,104,153, 88, 24,233,212, 55,181, 90,109,233, 61,188, 36,206, 75,163,209,160, 36, 52,203,192,
+192,160,116,155, 74,165, 2, 65, 16, 85,245, 13,231,179,171,151, 91,137,140,140, 65,105,181,104, 62,120,120,105,159,126,113,112,
+183, 8, 52, 45,202,141,143,197,172,115, 87,185,208, 67,143, 74,172, 90, 85,105,145,178, 66,233, 75, 65, 16,132,159,143,143,207,
+ 82, 0,140,143,143,207,210,146,239,190,190,190, 10, 0,201,181, 20, 91,159, 89,185, 56, 95, 67,100,149,184, 23,170,130,167,167,
+231, 44, 67, 67,195,237, 37,223, 19,159, 39, 35,241,121, 50, 92,154, 52,239,210,218,173,109,222,152, 49, 99, 96,110,110,142,133,
+ 11, 23, 50, 0, 14,213,244,255,163, 35,195, 37, 0, 24, 91, 91,219,133,197, 55,100,183,151, 47, 95, 90,190,122,245, 10,237,218,
+181,251,203,116,175,209,192,221,221,189, 42,170,130,226,160,246,121, 95,207, 74, 70, 67,163,209, 64, 46, 87, 64,173,214,128,212,
+210, 32, 73, 18,109,154, 27,226,216,126,159,162,223,200, 18,235, 89,145,213,204,193,198, 16,134, 18,174,150,197, 34, 20,175, 67,
+ 82, 43,188, 99,170,213,106,132,196,199, 35, 56, 46, 14, 0, 48,200,183,234,192,215, 99,247, 30,161, 89,179,102,213,149,182,161,
+131,157, 13, 82,238,132, 20,221,188, 21,137,120,245,228, 44, 12, 13, 37, 0,128,230, 30,227,192,227, 21, 9, 45,153, 66, 3,139,
+ 38,117, 64, 48, 76,165,105, 1, 12, 76,109,110,113,120, 66, 71,134,162,193, 48, 52, 24,154, 2,195,208, 96,115,121, 6,179,102,
+ 76, 6, 77, 83,104,223,190, 61, 8, 54, 27,148, 86,133, 17, 3,123, 35, 39,175, 0,230, 38,186, 13, 18, 60, 30, 15, 30, 30, 30,
+162,202,182,127,248,240, 65, 81, 86,152, 85,221, 70, 90,200,100, 10,168, 84, 42,104,212, 36, 52, 90, 18, 84, 3, 30,126,253,121,
+ 44, 72, 13, 9,249,232, 78,208,104, 73,208,115,135, 64,163,214, 34,193,128,197,106,233, 98,161,101,129, 80, 4, 69,100, 24, 85,
+ 39,180, 74,196, 65,101,168, 40, 38,176, 18,177, 21, 60,113,226,196, 54, 45,221,220,222,140,236,229,182, 41, 52, 44, 60, 37, 52,
+ 44,252,179,253, 28, 27,187,197,254,184,254,244, 2, 46, 79,212,198,107, 97,213,179, 14,203,162,172, 27,241, 11,177,180,160,160,
+160,165, 68, 34, 65,100,100, 36,216,108, 54, 8,130,248, 0,160, 37, 0,216,218,218,126,228,112, 56, 78,108, 54, 27,187,118,237,
+ 34, 56, 28, 78,139, 78,157, 58, 45, 85, 42,149,103,171,120,160,115, 49, 52, 52,252,196,154,197,227,241,224,227,227,131,241,227,
+199,151,138, 44, 30,143,135, 35, 71,142,160,109,219,182, 80,171,213, 46, 58,150,247, 21,128,174, 58, 88,252,136, 98,113, 94,173,
+ 24, 37, 73,114, 98,214,200,145,141,224,239,143, 46, 78, 78,205,218,180,105, 3,141,230, 47,131,166,147,147, 83,157,130,130,130,
+ 84,133, 66,113, 2, 69,169, 13,130,170, 20, 69, 74, 26,241,209, 69,225,167,111,222,188, 65,251,246,237, 75, 45, 88,101,173, 89,
+ 60, 30, 15, 34,190,164, 70, 66,139,166,139,238, 75, 5, 5, 5, 44,127,127,127,139,166, 77,155, 18, 0,208,180,105, 83, 34, 40,
+ 40,200,204,192,192, 32,179, 97,195,134,213, 62, 0,139,140,140,113,100,226, 40, 0,192, 47,189,250,149, 62, 24,221, 92,181, 20,
+ 92, 46, 23, 61, 23, 46,253,172,223,211, 52,205,134, 30,122,145,165,131, 22,249, 90, 34,171,188, 69,203,215,215, 55,220,215,215,
+247, 51,235, 88, 13, 81,189, 69,171,172,233,174,166, 40,185, 88, 43,195,230,205,155,209,162, 69,139, 42, 7,162,237,219,183,227,
+248,241,227,155, 1, 68,215,216,228,216,179,117,115,108,185, 20,238,212,184, 57, 1, 0,171,231, 14,100,201,100, 50, 60,125,250,
+ 20,198,198,198,248,240, 65,231,180, 95,134,198,198,198,171, 88, 44,214, 8,118,249, 25, 0, 21, 11, 76,138,166,233,115,121,121,
+121,149,166,119, 96, 24, 64,163, 37, 33,147, 43,161, 86,171, 49,247,167,157,213, 22,194, 23, 32, 52,234, 2,142, 71,183, 78,162,
+202, 44, 58,237, 91,116,199,204,239, 36,159, 13,222,108, 22,192, 98, 1,173,218, 23, 89, 92,130, 94,134,131,166, 1,138, 6, 44,
+172, 76,113,232,212,166, 42, 69, 62, 73,209,197, 79,199, 20, 10, 85, 20, 92, 58,122, 33, 41,194,191,212,130,196,231, 21,185,140,
+121, 92, 46,104,134, 40,202,250, 80,153, 16,226,139, 28,115,164,209,206,251,253, 66, 49,205,171, 5,206,223, 13,193,240, 94, 45,
+241,224,197, 91,120,118,104,134,240,168, 56, 52,119,174,135, 93,135,207,129, 97, 80,176,103,203,154,212,191, 6, 52, 50, 94, 23,
+139,214,243,231,207, 21,229,173, 88,101,223,153,234,199, 67, 48,204, 95, 22, 45,133, 82,133,133, 75,116, 74,231, 83,212, 70, 93,
+ 59,138,116,217,185, 42,139,149, 46, 66,172,188,101, 11,213,164,103,105, 0,160, 45,176,248,255,243,198, 73, 81, 20,174, 93,187,
+ 86,218, 30, 21,181, 99,217,182,211, 65,228, 32, 62, 62, 30,225,225,225,232,216,177, 35,242,242,242,192,101,177,176, 32, 52, 20,
+205,190,251, 14,106, 30, 15, 52, 77,131,207,231, 99,250,244,233, 58,215,103, 13,239,206,197,193,220, 84,117,228,155, 58,117,234,
+212, 40, 82, 38, 67,248,187,119,232,181,114, 37, 0,224,250,245,235,159,244,137,249,243,231,243,223,190,125, 59,229,245,235,215,
+ 83, 82, 82, 82, 54, 3, 88, 80,233,125,150, 81,149,198,104,141, 28, 59, 12,141,154, 54,192,241, 63, 78,149,110,159,191,104, 14,
+184, 92, 30,184, 60, 46, 76,140, 77,116, 58, 27,173, 86, 91, 42, 90,229,114, 57,235,250,245,235, 14,189,123,247,230,205,153, 51,
+135, 0,128,227,199,143,179,118,236,216, 33,190,115,231, 14,207,222,222, 94, 90,173,184,212,104, 62,107, 99,130, 32,192,229,114,
+193,227,243, 0,154, 6, 65, 16,226, 13, 27, 54,172, 14, 15, 15,111,215,180,105, 83,168, 84,170,239, 80, 52, 81, 67,159, 71, 75,
+ 47,182,170,212, 34, 21,197, 90, 21, 91,165, 42, 67, 70,217,184,173,202,132, 90,217,152, 45,212,110, 82,134,110, 49, 90, 21,129,
+205,102, 87,107,173, 98,177, 88,213,186, 14,231,207,159, 15, 67, 67,195,202, 6, 32, 38, 52, 52,244,173, 84, 42,221, 15, 96,103,
+173, 26,231, 94, 96,248,170,121, 67, 10, 80,236, 91, 53, 49, 49,201,236,209,163, 71, 33, 0,205,217,179,159, 62, 32,171, 84,170,
+ 74, 7,112, 99, 99,227, 85, 7, 15, 30,156, 61,120,240, 96, 86,249, 20, 3,101,221,123, 37, 47,173, 86,139,179,103,207,206, 94,
+188,120, 49,242,242,242,230, 85, 53,136,203,101, 10, 40,138, 3,161, 63,134,157,215,245,166, 94,233, 38,137,137, 45, 28, 26,180,
+172,116, 48, 97,241,138, 98,136,172,235,254, 53,128, 25, 26, 10, 65, 85,193, 73, 16,172,232,184,132, 20,251, 58, 54,102,248,152,
+152, 1,235,122, 45,144,147,252, 87, 61,112, 56,108,112,139, 93,135, 38, 70, 98,100,164,167,131,197, 98, 87, 41,140,215,156, 12,
+196,139,176, 56, 92,184, 27, 4,141, 82,134, 45, 71,111, 66,163, 42,132, 70, 41,131, 70, 89,244,190,110,241,247, 32, 8,164,106,
+ 85,178,198, 53,105,119, 14,135,131, 14, 29, 58, 84, 42,116,146,147,147,117,180,104, 49,165, 22, 45,133,178,134,109,164,219,147,
+ 83,149, 22,171,146,237,181, 21, 6, 37, 41, 31, 68, 34, 81,219, 35, 71, 42, 79,227, 80, 17,108,108,108,110, 72, 36,146,250,186,
+238, 95,131,228,165,235, 76, 76, 76, 86, 53,109,218,212,101,203,150, 45, 92, 54,155,141,158, 61,123, 54,182,177,177,137, 7,128,
+230,205,155,219,149,220, 99,126,252,241, 71,230,249,243,231, 97, 69,207, 24,149,131,207,231,191, 51, 54, 54,110,235,233,233,137,
+188,188, 60, 36, 38, 38, 66, 44, 22,163,217,166, 77, 8,253,241, 71,184,237,221, 11, 86,143, 30, 32, 8, 2,124, 62, 31,161,161,
+161, 16,137, 68,239,148,202, 74, 83,190,117, 0,240, 59,128, 46,248,203, 93,200, 0,120,138,162,180, 11, 47, 42,184,223,177, 0,
+128,162,233,234, 26,107,236,194,133, 11,145,203,229, 2, 3, 6,128, 23, 29, 13,141, 70,131,142, 29, 59,150, 90,217, 59,118,236,
+ 8, 14,135,131,150, 45, 91,194,206,206, 14,187,118,237, 26, 91,149,208, 82, 22,106, 16, 31,157,132, 78,157, 58,149, 90,174, 6,
+ 12, 24, 80,106,209,226,114,185,165,150, 45,130,170, 94,184, 18, 4,193,148,125, 72,166, 40,138,224,112, 56,156,121,243,230, 17,
+195,134, 13, 99,212,106, 53,205,231,243, 89, 23, 46, 92, 32, 30, 60,120,192,145,201,100,213, 62,136,187, 14, 25,129, 95,122,247,
+ 47,186,246,235, 91,130,203,227,130,207,227, 97,225,187,164,210,118, 49, 58,114,154,191,126,253,250,225, 77,155, 54, 45,114,195,
+ 3, 28,125, 30, 45, 61,170, 49,244,100,148, 19, 73,234, 50,223, 51, 0, 16,197,223, 51,202, 8,170, 12,130, 32, 94, 49, 12,211,
+174,220,190, 37,219,213,229,222, 75,182, 7,215,162,248, 37,107, 29,126, 38,190,170,122, 34,142,122,246,236,153,115,155, 54,109,
+144,144,144,240,217, 76,184,146,129, 75, 44, 22, 67, 36, 18, 33, 32, 32, 0, 0,162, 42, 35,123,240,224,193, 14, 20,101, 93, 46,
+ 42,145,173,109, 39,207,145,221, 3,218,247,107,135,147,190,167,242,164, 82,105, 75,252,149, 67,135,176,179,179, 27,207,229,115,
+ 70, 57,185,214,245, 0, 77,255,126,239,234,211,149, 85,157,161, 83,227,230,133, 0, 20, 37,179, 14,107, 57,251, 16, 44, 22,107,
+196,224,193,131, 89,111,223,190,197,168, 81,163,112,252,248,241, 74,247, 29, 63,126, 60, 78,159, 62,141,193,131, 7,179,150, 44,
+ 89, 82,105,122,135, 79,173, 37,234,175,214, 41, 35, 63, 4,227,216,233,131,149,198, 32, 89, 89, 21,197, 99,165,167,103,150,254,
+214,174, 77,213,158, 17,154, 84,223, 9,124,253,178, 83,231,110, 61,121,137,105,185,160, 73, 21,148, 5,127, 29, 47,207, 77, 3,
+ 67, 42,193, 51, 48,131,141,133, 49,222, 60,187,173,214,168,149,119,170,226,156, 61,184, 57,126, 28,232, 2, 48, 52,134, 44, 56,
+ 4,191,157,179, 74,159,160,221,135,205,193,189,179,219,116,142,241, 43, 15, 46,151,139,208,208, 80, 69,101,214, 44, 54,155,173,
+ 75, 78,174, 98,171,163, 22,114,185, 2,114,133,242,107,222, 59, 44,173,173,173,247,152,154,154, 10, 43, 17, 82,150,150,150,150,
+123,204,205,205,133,186,186, 14, 43, 19, 89,197,121,181, 94, 79,156, 56,177, 70, 98, 75, 32, 16,212,143,138,138, 42, 77, 86, 90,
+213,187, 90,173,134,167,167,167,174,201, 75,175, 2,136,177,181,181,125,218,172, 89, 51,227,143, 31, 63,226,212,169, 83, 60, 46,
+151, 91,183,228,254, 81, 80, 80, 0, 54,155,141,244,244,116, 45,128,201,168,198,117,166, 82,169,252,253,253,253, 91, 13, 28, 56,
+144,253,238,221, 59,176,217,236,162,114,117,234, 4,183,189,123, 17, 54,111, 30, 60,226,226,160,212,104, 32, 20, 10,113,235,214,
+ 45,141, 92, 46,247,175,140, 79, 36, 18,237,143,141,141,109, 46, 20, 10,161,209,104, 64,211, 52, 88, 44, 22,193,225,112,220, 77,
+ 76, 76,182, 3,104, 87,174,177,172,220,218,121, 54,161, 72,146,146, 38,124,204,168,174, 2,178,178,178,112,245,234, 85,116,236,
+216, 17, 30, 30, 30, 72, 78, 78, 70,116,116, 52,190,249,230,155,210,125,130,131,131, 17, 24, 24,136,134, 13, 27, 86,111,209, 99,
+105,209,176, 73,125,240,120,188, 34, 11, 17,151, 87,252,224,195, 45,181,100,241,184, 60,112, 57, 92, 8, 69, 66,157, 45, 90, 4,
+ 65,128,197, 98,129, 32, 8,136, 68,162,146,135,108,218,193,193, 65,154,157,157,109, 11,128, 45, 18,137, 64, 81,148, 78, 15, 45,
+ 37, 99, 68,137,200,226,241,121,165,150, 45, 0,200,205,205, 85, 14, 30, 60,248,132, 74,165,154,132,218,173, 80,162,199,191, 12,
+ 4, 65,188,250,255, 56,182, 6, 24, 80, 44,172, 62, 11,138,175,170,131,127,211,185,115,231,189, 99,198,140,233,185,117,235, 86,
+ 72, 36, 18, 72,165,210,210, 1,145,207,231,163, 78,157, 58,200,206,206,198,190,125,251,144,148,148,116, 31,192,116, 93, 75, 36,
+149, 74,159,127, 8,138,202,242, 28,222,217,188,121,231, 38, 38,137, 81, 73, 29,165, 82,105, 64,177,200, 58, 52,102,254, 55,147,
+ 60,135,182, 7,143,207, 69,226,135, 84,220,187,250,244, 63,210,152,108, 54,155, 77, 16, 4, 70,141, 26,165,211,254,163, 71,143,
+134,191,191, 63,170,114, 51,210, 37, 22, 45,185, 18, 50,197,215,123, 88,155, 57,107, 60,102,206, 26, 95, 42, 38,116,113,189, 0,
+128,157,221,153, 42,132,150,102,171,223,153,125,211, 90,183,239,228,216,182,121,125,188,120, 29,132,147,123,255, 50, 50, 28,222,
+177, 26,191, 29,190,143, 58,214,166,208,168,100,184,113,254, 64,170, 70, 37,223, 90, 75,163, 92,145,184, 37, 8, 48, 12, 93,163,
+115, 47, 17, 79, 92, 46, 23,174,174,174,149, 90,180,178,179,179, 21,213, 13, 12,165,109,164,214,162, 80,166,128, 66,254,213,132,
+150,155,187,187,251,157,115,231,206,153, 91, 89, 89, 33, 37, 37,165,188,208,114,235,210,165,203,157,115,231,206,153, 91, 91, 91,
+ 35, 49, 49, 81,231,180, 34, 21,136, 44,100,100,100, 16, 57, 57, 57,180,169,169,105,141,196, 22,139,197,130, 74,165, 66, 68, 68,
+132,174,127,171,243, 12, 49, 99, 99,227, 35,167, 79,159, 54,206,204,204, 4,155,205, 70, 68, 68,196, 39,179, 14, 75, 94,135, 14,
+ 29,226, 13, 25, 50,228, 96,110,110,110,149,211,218, 72,146,220, 60,126,252,248, 41,201,201,201,166, 86, 86, 86,144, 74,165,224,
+243,249, 96, 24, 6,132,167, 39,186,198,196, 64, 67, 81, 16,137, 68,136,140,140,196,254,253,251,101,197,169, 98, 42, 52,144, 17,
+ 4,225,204,227,241, 48,110,220,184, 79, 54, 28, 61,122, 20,131,218,178,219, 90, 26,115, 10, 73, 8, 85,105,162,254, 55,216,108,
+ 54,225,214,161, 71,227, 14,221, 6,184,190, 15,123,241, 49, 35, 45,169,186,155,146, 86,173, 86,163,105,211,166,120,245,234, 21,
+238,222,189,139, 30, 61,122,192,195,195, 3, 33, 33, 33,184,125,251, 54, 2, 3, 3, 65, 16, 4,204,205,205, 75,194, 47,170,140,
+193, 80,203, 73,164,167,100,125,102,189, 42,255,157,199,227, 65,165,208,232,212, 70,239,222,189,195,171, 87,175, 74, 83,203,176,
+217,108,242,187,239,190, 3,195, 48, 76,108,108, 44, 12, 13, 13,153,137, 19, 39, 82, 28, 14,135, 76, 78,214, 45, 62,184, 68, 84,
+149,136, 44, 14,143,251,137, 64,163,105,186, 32, 36, 36,100, 26,128,144, 98, 75, 22,160,207,163,165,199,255, 54,174,225,243,133,
+165,171,181,104,197, 0,232,117,234,212,169,177,151, 47, 95,222,188,125,251,118, 75, 47, 47, 47,228,228,228,192,209,209, 17,182,
+182,182,240,243,243,195,245,235,215, 51, 41,138, 90, 0,160, 34,211, 79, 47, 84,145,179, 38,249,163,244,156,170,176,240,199, 54,
+ 30, 46,184,127,246,177,175,141,141,205,116, 54,155, 61,119,226,210,111, 39,117, 31,220, 14,145,129,177,120,126, 59, 20,105, 9,
+153,213,114,150, 15,134, 55, 49, 49,153, 98, 96, 96,192, 7,160,169,224,169,184,252,172,195, 82, 78,138,162, 40,181, 90,141, 51,
+103,206,232, 36,182, 78,157, 58, 5,165, 82, 9,234,115,255,106, 41, 39, 67, 51, 4,135, 43,128, 93,157,166,208,104,100,160,233,
+ 90, 79,168, 44,229, 44,121, 2,253,200,231,195, 42, 51, 19, 47, 94,188,208, 77,114, 15, 24, 80, 93, 27, 41,213,202,130,113,219,
+214, 46,244,243,246,249,221,164, 71,231, 86,248,101,211, 81,104, 52,135,193, 98,179, 32, 18,240,208,166,125, 23,176,161,194,158,
+245,139,114,229,249, 57,227,240,249, 82, 60,159,112, 50, 85,121, 88, 24,128,162,105,220,125,244, 82,231,115, 47, 29,237, 41, 10,
+ 28, 14, 7, 31, 62,124, 80, 84, 52,219,144,205, 46,114,115,150, 60,169, 87,197,201,208, 52,193,229, 9, 81,199,177, 25,212,170,
+194,175,210, 70, 86, 86, 86,139, 46, 93,186,100, 94,146, 42, 33, 36, 36, 4, 4, 65, 68,252,101,113, 44,218,174, 80, 40, 16, 22,
+ 22,134,144,144, 16,160,104,134,155,206,215, 81,137, 37, 43, 35, 35,131,144, 74,165, 48, 48, 48, 96,133,132,132,168, 90,182,108,
+249,186,154,235,187,148, 83,169, 84,198, 85, 22, 63,169, 84, 42,237,133, 66, 33,183,220, 32,106,215,168, 81,163,200, 10, 92,136,
+159,149, 51, 47, 47,239,197,226,197,139,219,244,235,215, 15,139, 22, 45,202, 54, 53, 53, 53,220,179,103, 15,135,205,102, 19,222,
+222,222, 84,122,122,122,225,129, 3, 7,140, 47, 95,190,140,220,220,220, 0, 29,206,189, 64,169, 84, 78,235,220,185,243,209,155,
+ 55,111, 26, 56, 59, 59, 35, 63, 63, 31, 12,195,224,200,145, 35,240,246,246,134, 80, 40, 68,100,100, 36, 6, 13, 26, 36,151,203,
+229,211,240,121,236,100, 9, 39, 65, 16, 4, 67,211, 52,150, 47, 95, 94,154,156,180, 36, 89,169,161,136,192,254,249, 13,196,115,
+ 14,228,137,199,254,114,224, 59, 0,160, 72,146,122, 31,246,226,227,145,157,191, 60,224,241,120,143,170,105,163,101,115,230,204,
+217, 51, 96,192, 0,145, 68, 34, 65,118,118, 54,158, 62,125,138,103,207,158,225,249,243,231, 80,171,213, 48, 55, 55,135,169,169,
+ 41,164, 82, 41,222,189,123,167, 0,176,172, 42, 78,190, 1, 23, 78,141, 75,102,254, 22, 89,176,184,101,102, 27,150,181,110,241,
+184, 92,157,174,163,110,221,186,161, 67,135, 14, 37, 2,136,138,143,143,151,170, 84, 42,162,140,232, 79, 46, 17,228,117,235,214,
+ 37,143, 31, 63,206, 84,197,249,124,255, 46,220,252,117, 25,248, 60, 30, 22, 68, 36,150,138,174,163, 61, 90,131,203,231,193,101,
+224,176,178,199,238, 70,145,187, 16,229, 68, 86, 85, 99,199, 23, 95,155,122,206,255, 90,206,255,101, 72, 81,139, 37,120, 74,112,
+ 82,169, 84,222,248,254,251,239,215,187,185,185,125,191,101,203, 22,130,199,227, 97,229,202,149, 76, 74, 74,202, 31,197, 79, 33,
+ 57,181, 41, 21,195, 48,127, 60,188, 24, 48, 99,130,207, 96, 98,254,214,137,238,175,239,133,189,107,209,217, 25, 45, 58, 59,227,
+245,253,183,216,185,244,212,113, 74, 75, 45, 79, 77, 77, 77,168,134, 74,213,171, 75,147,242,193,240,230,254, 15,238,153,215,116,
+214, 33, 77,211,231, 78,157, 58, 53,123,232,208,161,172,151, 47, 95,126, 22,147, 85,178,236, 14, 77,211,184,115,231, 14, 52, 26,
+ 13,254,248,227, 15,154,166,233,202,243,104,129,185,178,109,235,250, 9,127, 28,187,194,231,243, 8, 60,123,116, 1,121, 57, 85,
+207,234,226,241,184, 56,116,228,162,134,199,227,190,175,104,187, 70,163, 73,188,119,239,158,117, 95,138,226,178, 88,172,138, 4,
+ 84,133, 56,119,238,156,150,166,233,248,106,118, 11, 72, 75, 74, 24,184,102,209,228, 83, 3, 70,126,111,221,185,179, 59,215,194,
+202, 26, 4, 65, 32, 61, 45, 29,145, 97, 47,181, 55, 46, 28, 76,147,201,117, 91,130,103,242,198,135,165, 49, 89, 0,224,229,189,
+189, 52, 62, 11, 0, 6, 78, 92, 12,207,142,205, 65,232, 98,122,250, 75,100,209, 36, 73, 66, 44, 22,131, 36,201, 10, 83, 60, 24,
+ 27, 27,139,148, 74,165,162, 56, 17, 99,149,166, 34, 6,248,234,109, 68, 81,148, 75, 78, 78, 14,100, 50, 25,158, 61,123,198,172,
+ 93,187, 54, 35, 35, 35,163, 52,104, 83,171,213,186,100,103,103,163,176,176, 16, 1, 1, 1,204,250,245,235, 51,178,178,178,150,
+214,228, 26, 18,137, 68,109, 57, 28,206,235,156,156, 28,218,192,192,128,165,213,106,181, 45, 91,182, 20,136, 68, 34,157, 23, 84,
+151, 74,165,253, 42,219,230,228,228, 20, 21, 21, 21,213,136,162,168,178,107, 32,242,148, 74,165,115,231,206,157,117,185,127,204,
+ 57,124,248, 48, 46, 94,188,216, 62, 63, 63,127,124,124,124,252, 81, 0,237, 57, 28, 14,130,130,130, 34,148, 74,229,152,161, 67,
+135, 30,201,201,201,121,129,162, 37,120,116,193,205,200,200,200,113, 46, 46, 46,135, 87,173, 90, 37,241,240,240,224,216,217,217,
+161, 93,187,118,136,140,140,196,181,107,215,180,187,119,239,150,201,229,242,201, 0,238, 84,221,236, 32, 72,146, 4,159,207, 47,
+125, 9, 4, 2,240,120, 60, 20, 40, 24, 76,221, 20,173, 32, 33, 82,108, 94, 57,237, 26, 3, 16,169,137,209,153,233,169,137, 47,
+ 8,130,120, 36,149, 74,243, 42,169, 51,190, 82,169,108,197, 48, 12,155, 32,136,173, 26,141,102,226,172, 89,179,108,215,173, 91,
+135, 38, 77,154, 32, 51, 51, 19, 98,177, 24,206,206,206,200,200,200,192,203,151, 47, 41,185, 92,190, 23,192,106, 20,199,143, 84,
+134,220,204,124, 56,216,212,253,196,242,201, 48, 12, 24, 10,208,170, 40, 80, 26, 6,106, 66, 11, 46, 87, 11, 30,143,167,139,229,
+137,161,105, 26, 57,182,182,160,195,194,240,252,249,115, 48, 12, 83,169, 85,173,105,211,166, 58,220,216,105,240, 5,252, 79,220,
+133, 4, 65,128,199,231,131,203,231, 85, 52,115, 70,111,197,210,227, 31, 13, 93,125,227,185, 0,166, 7, 7, 7, 31,237,222,189,
+187, 31,195, 48, 92, 20,249, 35, 31,127,201,159,167,166,166,190, 9,184,246,102,137,181,131,233,250,254,227,221,209,164,149, 35,
+ 40,146,194,211,235, 65,248, 99,221,229,211,201,137,201, 19,161,195,218,103, 52, 77, 63,232,210,182, 9, 11,101,114,117,219,217,
+217,209,181,153,117,152,151,151,183, 98,193,130, 5, 88,180,104, 81,109,102, 29, 86,136,208,119, 25,211, 9, 48, 14, 3,251,119,
+237, 11,130,197,168,213,170, 42,110,124, 40,205, 92,202,227,113,223,191, 10,145,182,172,104,191,140,140,140,190,147, 38, 77,186,
+195,225,112,234,215,164,206,105,154,142, 79, 75, 75,235, 89,253,158,228, 83,149, 34,223,249,234,233,125,243,110, 94, 60,220,151,
+166,169,134, 4, 0, 54,135,247, 81,171,209,220, 82, 41,242,183, 64,199, 69,165, 55, 76,239,132, 57,219,110, 99,215,162,129,152,
+181,254, 44, 14, 46,159,138, 37,155, 78,225,247, 69,115,176,118,251, 9,252, 50,103, 28,134,143,157, 68, 51, 4,235,137,174,231,
+193,102,179,111,238,219,183,111,194,212,169, 83, 75, 39, 45, 48, 12,243,201,141, 93,171,213, 42,104,154,198,222,189,123,105, 0,
+ 55,171,226,251,180,141, 8,166,170,120, 41, 93,219, 40, 63, 63,127,114,167, 78,157,142, 0, 16, 48, 12,243, 33, 39, 39,231, 7,
+224,175,165,161, 10, 11, 11, 39,119,238,220,249, 8,195, 48, 2,130, 32, 62,219,174, 11,138, 83, 61,180, 53, 53, 53,125, 93,108,
+201, 18,212, 38, 32,190,170,170,174,194,173,168,139, 11,145, 6, 48,171, 76,198,247,117,237,219,183, 47,187,168,116, 68, 78, 78,
+ 78,219, 90,148,235,142, 66,161,104,190,124,249,242,121, 66,161,208, 83, 46,151, 55, 6, 0,177, 88, 28,169, 82,169, 30, 40, 20,
+138, 45,168, 62, 55,149,154,166,233, 72,146, 36, 93, 45, 45, 45,139,102,212, 22,139, 45, 0,248,243, 53,245, 26,160,218, 21, 25,
+197, 79,234, 92,176,235,215,175,215, 51, 53, 53,237, 67, 16,196,112,134, 97,154, 22, 20, 20,168,150, 47, 95, 30,112,238,220,185,
+188,250,245,235,247, 31, 48, 96, 0, 97,102,102,134, 87,175, 94, 49, 89, 89, 89, 23, 0, 44,133, 14, 51,173,105,154,142,223,176,
+ 97, 3,106,122,189, 87,181, 93,163,209,164, 94,191,126,221,162, 95,122, 58,135,166,105, 12, 28, 56,240, 19, 1, 87, 30,239,223,
+191,135, 74,165,170, 50,153,163, 42, 47, 7, 61,230, 45, 6,138,103,127,150,160,200,146,197,128, 81,235,117,149, 30,255, 46,252,
+221, 11,122,234,100, 90,180,181,181, 29, 37, 20, 11,102, 58, 54,182,109,153, 18,157,254,182, 32, 79,126, 92, 42,149,238,171,228,
+ 70,174, 19,103, 13, 19,150,234,205,191,127, 19,231, 95,121,180, 40, 48, 12, 5,134,102,192, 48, 52,104,154, 42, 90,240,154,161,
+193, 80, 20, 65, 16,120,162, 86, 84,153, 25,188,124, 57, 77, 45, 44, 44, 86, 51, 12,211,143,205,102,179,202, 26,195,202,126, 46,
+182,100,221,204,200,200,248,165, 2,203,235,255, 92,125,158, 59,119,174, 66,241,175,235,172,195, 17, 35, 70, 80, 53,188, 54, 31,
+136,197, 98,219,138,182,201,100,178, 4,169, 84,218,231,191,164, 62,203,206, 24,172, 9,103,141,103, 29, 86,199,233,232,232, 40,
+208,104, 52,173, 1, 56, 19, 4, 97, 2, 32, 91,163,209,220,202,204,204, 76, 3,208, 22,192,242,226, 99,126, 5,240,250,255,249,
+122, 23, 89, 88, 88, 28,102,177, 88, 14,186, 28, 76,146,164, 58, 59, 59,123, 66,185, 7,130, 82, 78,115,115,243,215, 28, 14,199,
+ 65, 7,158,164,172,172,172,182,250,251,167,158,243, 31,132,242, 65,240,211, 24,134,217,255,159,248,227, 94,122, 78, 61,167,158,
+ 83,207,169,231,212,115,234, 57,245,156,255, 2,161,133,114, 66, 11, 12,195,232,167,213,234,161,135, 30,122,232,161,135, 30,122,
+124, 33,174,149, 19, 91,215, 74, 62, 16, 85,168,210,154,152, 4,107,163,108,239,234, 57,245,156,122, 78, 61,167,158, 83,207,169,
+231,252,215,113,254, 43,240,183,172, 76,241,149, 26, 72,207,169,231,212,115,234, 57,245,156,122, 78, 61,231,191,143,243,127, 25,
+149,186, 14, 89,250,186,209, 67, 15, 61,244,208, 67, 15, 61,244,248,123,160,179,208, 18, 91, 55,117,177,112,108,121,196,212,161,
+ 69,136,169, 67,139, 16, 11,199,150, 71,196,214, 77, 93,254,165,245, 38, 2, 48,150,195,225,220,177,177,177,201, 71, 37, 75,239,
+252, 3, 96, 4, 96, 56,138,242,251, 12, 1, 96,240, 53,201, 61, 0,206, 40, 96,230,119, 64,194,119, 64,194, 40, 96,166,199, 63,
+112, 57,142,149,179,109, 59, 61,186, 49,246,198,202,217,182,157, 42,220,190,192,214,252,249,237, 17,219,214,205,180, 51,251, 74,
+127,105,104,101,101,181,223,218,218, 58,206,202,202, 42,222,202,202,234, 48, 0, 99,253,237, 78, 15, 61,244,208,227,111, 67, 73,
+140, 86,201,171, 52, 70,139, 3, 0,126,126,126, 30, 0, 30, 2,232,238,229,229,229, 95,254,104,211,186,174, 83, 27, 54,104,184,
+104,205,202,165,132,141,149,133, 1, 73,209,154,216,184,196,102, 43,214,172, 63,159,194,231,108,206, 73, 8, 59, 88,139, 66, 17,
+108, 54,123,148, 64, 32,240, 2, 80, 34,216, 34, 84, 42,149, 31, 69, 81,103,160,219, 52,109, 88, 91, 91, 63, 98,179,217,245,106,
+242,199, 20, 69, 37,164,165,165,185,215,178, 50, 71,212,173, 91,247,176,135,135,135, 65,251,246,237,193,231,243,177,124,249,242,
+ 5, 82,169,116,139,174, 4,166,166, 78,134, 26,129,112, 46,135,207,239,205,104,213,174, 12, 24,128, 37, 8,163, 73,213, 61,158,
+ 74,181, 57, 39, 39,186, 64, 71,170,165, 0, 38, 22,215,213, 65, 0, 27,190,164,151, 76,104, 5,173,150, 42,234, 19, 60, 14,168,
+ 43, 49,198, 15,151, 45, 91,198,241,242,242,194,193,131, 7,221,247,239,223, 63,173,160,160,224, 30,128, 63, 1,124,252,210, 94,
+105, 13, 76,239,236,238,190,109,194,130, 5,108,197,163, 71,216,118,248,240, 86, 20,229, 91,218, 85,211,190,196,227, 97,184,133,
+ 5,215,139, 97,208,154, 0, 8, 2, 8,202,200,162,175,107, 52,212, 25,232,144,139,173, 10,140,197,167,211,241, 79,214,148, 32,
+239, 35,243,179, 96,160, 75,215,188,143, 15,126, 6,208,191,252,118, 82, 41,156,192,176,235,120, 41,152,192, 68, 0,155,190,176,
+ 90, 13, 44, 45, 45, 67,174, 92,185,226,208,190,125,123, 14, 0,188,126,253,250, 59, 47, 47,175, 30, 25, 25, 25,174, 0,242,255,
+159,110, 66, 66, 14,139, 53,147,207,229,246,166, 40,170, 5, 0,176,217,236, 80,181, 86,123,135,164,233, 93,208, 49, 39,155, 30,
+122,232,241,207, 69,117, 90,228,191, 28,149,102,134, 47, 57, 57,166,236,123, 89,136,173,154, 52,235,216,115,216,251,188, 2,185,
+ 50, 46, 46, 57,103,254,204,181,119,166,205,217,120,121,211, 1,191,235,254, 47, 34,158,187,180,239,243, 86,108,213,164, 89, 37,
+212,149,249,112,235,138, 68,162, 55,187,119,239,214, 68, 70, 70, 50,185,185,185,204,251,247,239,153, 11, 23, 46, 48, 51,102,204,
+ 80,138, 68,162, 55, 0,234,234,194,105,109,109,157,246,254,254,109, 38, 41, 36,144,137,127,253,130,209,106,181,140, 70,163, 97,
+ 52, 26, 13,243,246,166, 31, 19,242,231, 69, 38,232,194, 25, 70,173, 86, 51,106,181,154, 81,169, 84, 76,131, 6, 13, 82,116, 44,
+103,121,216, 53,111,222, 92,237,231,231,199,156, 63,127,158, 89,176, 96, 1,227,230,230, 70, 1,240,214,245,220,197, 86,206,158,
+134,246, 45, 51,166,250,236,210, 92, 11,184,197,132,199, 4, 49,225, 49, 81,204,185,187, 17,204,196,133,219, 53,134,246,110, 25,
+ 98, 43,103,207,234,206,221,212,212,180, 35, 65, 16, 76, 9, 0, 48,245,234,213, 43, 44,251,170, 91,183,238, 39,175, 58,117,234,
+ 20,214,175, 95,255,163,185,185,121,235,138, 56,199,180, 0,195,188, 61,201, 48,111, 79, 50,203,186,129, 9, 15, 15,127,206, 48,
+204,195,146,151, 66,161,120,120,233,210,165,135,223,126,251,237, 67, 0,131,170,168, 39,157,234,243, 59, 32,161,224,202, 21,134,
+217,178,133, 97, 60, 60,152, 8,128,249, 14, 72,168, 33,103, 3, 27, 27,110,208,198, 13,211,212, 87,174,252,193,220,184,113,141,
+185,126,221,143,185,124,233, 48,179,117,203, 76,141,181, 53, 55, 12, 64,163, 26,112,114, 0,172, 5,176, 25, 69,150,203,200,140,
+140, 12, 38, 53, 53,149, 1, 16, 89,252,219,102, 75, 75,203, 77,168,216,250,214,171,172, 37,107, 94, 63,155, 27, 35,251,187, 51,
+ 5,121, 41,204,200,254,238,204,188,126, 54,159, 88,182,250, 57, 57, 25,206, 26,216, 34, 35,252,245,113,106,214,192, 22, 25,253,
+156,156, 12,107, 89,159, 4,138,214, 9,221,125,255,254,125,146, 41, 3,173, 86,203, 28, 61,122,148, 50, 53, 53,253,163, 6,156,
+141, 45, 45, 45,227,205,204,204, 34,203,254,104,217,114, 72,231,166, 93,191, 91, 97,222,236, 91,143, 26,148,179,189,144,199, 75,
+186,115,118, 15,149,149, 16,202,168, 21,105, 76,222,135, 64, 38, 41,226, 57,115,116,223,102, 45,159,195, 73, 2,208,254, 75,250,
+ 82, 13,161,231,212,115,234, 57,255, 11, 57,171,210, 34,255,139,248, 44,189, 67,101, 39, 38, 16,240,125, 86, 44, 91, 76,228,102,
+229, 42,148,249, 5,106,173, 82,169,100,241, 24,101,232,219,152,116, 22,135,157, 59,111,206,108, 67,159, 37,203,124,100,192, 56,
+ 29,255,187,174,155,155,219,203,139, 23, 47, 90,153,153,153, 33, 47, 47, 15, 89, 89, 89,120,249,242, 37, 24,134,193,208,161, 67,
+ 5, 29,218,181,107,253,243,242,229,207,146,146,147, 59,161,242,129,247, 47,241, 98,102,129, 13,238, 69,107,209,254, 18,151, 85,
+ 52,234, 16, 4,246,143,240, 42,221,103,117, 82, 94,209, 99,181, 80, 88,186, 32,113, 45,208,169,103,207,158, 60, 0,152, 50,101,
+ 74,126, 65, 65,129,111,177,133, 67,167,149, 86,197, 86,206,158, 22,182,118,126,123,246,110, 16,181,104,232, 12,141,150, 68,124,
+106, 10, 56, 92, 19, 56, 56,240, 48,105, 92,111,110,183,206,102, 22,107,127,221,127, 45,149,198, 16,121,102,212,173,202,184, 76,
+ 76, 76,142,158, 57,115, 6,103,207,158, 5, 0, 68, 70, 70,194,217,217, 89, 92, 93, 25,194,194,194,156, 6, 13, 26,116, 58, 43,
+ 43,171, 81,117,251,150, 79,140, 47, 16, 8,224,238,238,142,102,205,154,225,202,149, 43,221,139, 45, 91, 95, 4,197,163, 71,144,
+ 4, 7, 3,254,181,122,120,105,208,166,141,227,243,235,215,142, 91, 92,187, 30,129, 77,155, 14,227,227,199, 34, 67,155,147,147,
+ 19,198,142, 25,193, 13, 13, 13,104, 62,124,248,216,128,199,143, 63,186, 23, 11,165,234,176,234,192,129, 3, 75,235,215,175,143,
+225,195,135,143,104,222,188,185,141,145,145, 17,246,237,219, 7, 91, 91, 91, 39,181, 90,253,225,202,149, 43,118,169,169,169,152,
+ 61,123, 54,210,210,210, 22, 84, 70,212,189,111,247,159, 5, 3, 93,186, 54,105, 51, 1, 18, 35, 91, 28, 56,117, 6,239,223, 28,
+237,170,210, 68,252,204,163,252,199, 43, 24,193,196,140, 4,137, 79,189,182, 30,230,141,154, 15,130, 99,155, 64, 11, 37,245, 56,
+230,231,222, 13,214,115,132,202,163, 43, 55, 73,179, 62, 35, 29,126,142,237,154,255,206, 44,236, 14,178,128,149,116,137,192, 42,
+181,214, 50, 24,212,173, 91,183,210,134,139,139,139,131, 74,165,130,139,139, 11, 75,173, 86,123,234, 88,175,141,251,244,233,243,
+228,250,245,235,230,141, 27, 55,206,200,206,206, 46,221, 96, 99,110,210,215,255,226,214,217,107,183,157,104,122,140, 33,114, 51,
+ 34, 46,135, 86,195,213,190, 75,199, 54,119,111, 92, 60, 46, 33, 10, 19,193, 55,201, 4,232, 44, 68,159, 62, 4,194,192, 12,163,
+102,204,231,120,246,236, 97,223,187,255,176,187,239,163, 62,246, 4,240, 74,255, 92,175,135, 30,255,106,171, 22,243, 79, 59,167,
+ 82,161,229,229,229, 69, 84,116,130, 52, 67,183,180,182, 50, 23,109,221,120,228, 21, 91,163, 86,139, 77,140,213, 92, 99, 35,154,
+ 48, 52,102,107,212,218, 66, 71, 39, 71, 62,205,208, 45, 43,225, 47, 63,197,147, 16,137, 68, 23,255,252,243, 79, 43, 46,151, 11,
+154,166, 97,105,105,137,216,216, 88,228,230,230,162,160,160, 0, 31, 35, 34, 80,191,110, 29,172,244, 89,108, 59,123,177,207, 69,
+185, 92,222, 22,159,186, 17, 63,155, 54, 74,105, 63, 93, 55,186,100, 9,150,207, 30,249,139,127,171, 96,155,174, 83, 81, 99, 19,
+ 18, 18, 32,145, 72,224,234,234, 42,121,250,244,233,227, 42, 68,214, 39,156,166,166, 78,134,180,128,127,118,247,158,229, 34,141,
+ 54, 12,111,163,179,209,164,126, 87, 88,155,215, 69, 74,182, 26,207, 95,254,137,176,144,147,104,104, 95, 23,222, 51,122, 8,215,
+111, 56,127,134, 71,214,175,155,155, 27,155, 95, 17,103,126,126,190,164, 65,131, 6,168, 91,183,104,221, 51,138,162,240,246,237,
+ 91, 80, 20, 85,250,189,236,251,145, 11,247, 65,230,199, 99,194,119,223, 33, 43, 43, 75, 82, 17, 39,151, 13,114,254,180,177, 28,
+ 17, 23,224,139,205,212,133,133,133,165,211, 83, 53, 26, 13,130,130,130,208,169, 83, 39,143,115,231,206, 85,167,138,116,170, 79,
+ 13,240,251,182, 63,254,216, 62, 46, 47,143, 5, 0, 7, 9,130,214, 48,204,239,186,246, 37, 43, 43,238,133,155, 55,142, 89,176,
+ 89,239, 96,102,252, 27, 94,190,140,135, 70, 83, 84,222,172,172,116,204,154,153, 15, 30,215, 16, 87,174,156, 48,119,113,113,191,
+144,154,170,113,197,167,110,196,138,202, 41,188,113,227, 6,102,205,154,133,183,111,223,218,177,217,108,188,120,241, 2, 34,145,
+ 8, 27, 55,110,100,187,184,184,216,137,197, 98,220,188,121, 19,105,105,105, 68, 85,229,124,120,235,225,154,188,143, 15,126, 78,
+ 37,110,246, 59,112,234, 12,190, 31, 51, 10, 54, 76,244, 99,227,134,196,154, 62, 3,187,252,194,176,235,120,137, 13, 91,154, 58,
+187, 14, 4,143, 47,129,247, 79,171, 17, 25,118,213, 84, 94, 16, 50,147,160, 18,235,172,220,116,110,206,103,229, 60, 63,130,154,
+114,242,105,155, 59,117, 95, 57, 6, 7, 77,123, 33, 13,220, 31,242,151,208,114,226, 16, 44,202,184,228, 73,234,195,135, 15,248,
+248,241, 35, 56, 28, 14, 20, 10, 5, 72,146,172,176,156,118,118,118,211, 73,146,252,165,184,157,143, 8,133,194,201,199,143, 31,
+ 55, 47, 43,180, 45, 91, 14,233,108,110, 40,238,153,150,158,149, 19,240, 42,252,253,252,233,195,187, 63,122, 30,150,168,225,126,
+155,144, 23,114, 37,175,146,250, 20,138,248,252, 11, 55, 47,157,144,104, 99,238, 67,236,210, 29, 92,137, 51, 40,109, 50,228, 57,
+ 50, 20,124,148, 66,181,103, 39, 90,205,156,135,171,151,207, 75,154,183,104,123, 78,165,213, 58, 3, 80,215,226,218,172, 9,244,
+156,122, 78, 61,231,127, 39,103,165, 90,132, 97,152, 54, 0,172,139,191,102, 21,235, 2, 11, 0,153, 40, 90, 69,198,186,248,222,
+193, 47,115, 88,249,239,101,247, 45,255,189,236,231,172,226,207, 86,197,239,175, 8,130,200,174,166,232,182, 40, 90,154,240, 90,
+241, 59, 80,236, 74,172, 54,240,152, 32, 88,249, 20, 69, 11,120,150, 86,202, 41, 35,123,182,184,125,247,117,144,129,133, 17,167,
+111,247,214, 30, 47, 67, 99,158, 17, 44, 66, 75, 16, 44,157,226, 62,216,108,246,168,173, 91,183,182, 48, 50, 50, 2, 77,211, 48,
+ 54, 54, 70, 70, 70, 6,212,106, 53,242,242,242,160, 42,200,135,166, 32, 31,193,137,113,232,226,209, 29,195,250,245,113, 57,113,
+249,207, 81, 20, 69,157,174,138,215,174,101,235, 82, 75,214,234,122,230,127,153, 38, 18,115, 75, 69,215,111,173,157,193,147, 72,
+208,123,190,207,151,244,129,192,107,215,174,221, 24, 58,116,104,255,133, 11, 23,178,164, 82,233,205,216,216,216, 46, 0,222, 86,
+ 43, 42, 4,194,185, 63,206,245, 50, 53,149, 48, 56,119,231, 79,116,107, 61, 6, 6,124, 54,178,242, 53, 32, 8, 32, 34,252, 34,
+ 8,194, 12, 33,145, 82,116,109,101,132, 62,125, 93, 36,151,207, 71, 44,196, 95,241, 65,159, 53, 77, 78, 78, 14,210,211,211,161,
+213,106,161,213,106, 49,124,196, 8, 28, 59,122, 20, 50,153, 12, 10,133, 2,106,181, 26, 20, 69,129,197, 98,225,142,223, 57, 36,
+198, 68,160,115,167, 78, 64, 37, 75, 47, 29, 13, 2, 23,192,243,247,239,223, 35, 34, 34, 2, 73, 73, 73, 16, 10,133,176,177,177,
+193,234,213,171,161, 82, 21,173, 81, 54, 98,196, 8, 15, 0,161, 95,122, 65,125, 4,246,199, 82,212,207,253, 47, 93,178,122,122,
+233, 18,253,252,234,213, 36, 65, 65,193, 62, 93,142,229,241, 48,124,195,239, 51,154,136,197, 98, 36, 37,108, 69,211,166, 60, 44,
+152,103, 14,223,223, 50, 1, 0,179,103, 57,160, 93, 91, 11,228,231,158,135,133,213, 82,108,223, 62,167,225,196,137,155,191,147,
+203,169, 35,213, 80,255,252,231,159,127, 14,115,118,118,182, 15, 12, 12, 36,248,124, 62, 68, 34, 17, 68, 34, 17,132, 66, 33,210,
+211,211, 17, 27, 27,203,108,216,176, 33, 25,192,207, 85, 17,173,220, 46,125, 6,160,255,188,126,184,241,254,205,209,174,246,236,
+152,224, 97,222,238,113, 33,207, 3, 11,110,223,121,250, 43,169, 20, 38,230, 38,221, 93,220,160, 93,160,197,204, 69,171,176,115,
+195, 10,188,127,241, 40,219,186,110,254, 46, 17,161,170,176,156, 30, 30, 43, 57,182,214,102,228,244,137,195, 76,174, 90, 7, 76,
+191,206, 33, 50, 82, 51,223,108, 68,108,160, 66,208,168,245,248,198, 78, 44,245,253,251,247, 69,221,186,117,131, 82,169, 44,181,
+ 76, 30, 63,126,156, 38, 73,242, 65,133,125, 83,163,249, 37, 57, 57,217, 86,161, 80,160, 95,191,126,179, 55,110,220, 40, 46, 89,
+163,142,162,168, 79, 44, 89,107,182, 28,187, 53,247,151, 93, 15,110,157,254,205,110,141,207,228,238,227,188,215, 62, 64, 37,235,
+ 72,114, 88,172,153, 87, 47, 29,182, 17,154,106, 33, 50,235, 3,101,154, 2,239,247,127, 15,121,190, 18,237,214,172, 2,192,135,
+ 90,203,194,190,129,195,193, 53,183,195,138,169,147,237,150,237, 59, 48,131,166,233,173,250,231,122, 61,244,208,163, 28,172, 9,
+130,240, 3, 0, 31, 31,159,165,190,190,190,225, 4, 65,248, 49, 12,227, 85,108, 64,241, 99, 24,198,171,100,159, 98,113,246,217,
+247,146,125,203,127, 47,255,121,201,146, 37,205,215,175, 95,191,174, 83,167, 78,167, 3, 2, 2, 98, 0, 84, 39,180, 6, 20, 11,
+171,242, 75,241, 20,205, 58,244,242,242, 34,202,190,127, 98,209,162,233, 71, 31, 98,226,228,125,122,117,112,240,243, 15,125, 53,
+105,210,128,158,163, 6,118,235, 27,155,144, 21,209,208,209,198, 34, 60, 60,212,136,166,233, 71,186,212,146, 64, 32,240,234,209,
+163, 7, 39, 39, 39, 7, 6, 6, 6,200,200,200, 64,114,114, 50, 52, 26, 13,148,121,185, 80,229,229, 66,153,155, 3, 77, 94, 14,
+ 62,190,126,137,150, 13,157, 4,197,193,242, 85,162,196,234, 82,222, 82, 85,214,178,197, 55, 52,132,192,208, 16, 68,205,221,134,
+223,154,152,152, 60, 47, 25, 84, 53, 26,205,204,197,139, 23,103,210, 52,141,181,107,215, 26, 73, 36,146,115, 0, 4,213,145, 24,
+ 90,178,189, 58,181,114,101,189,139, 13,129,187,219, 4, 52,110,240, 13, 98,211, 20,200, 44,208, 32, 61, 87,131,118,221,118,160,
+158,219, 42,212,105,229,139,136,248,108,216,217, 59,179,192, 17, 84,185,248,115, 98, 98,226, 39,223, 79,159, 58, 5,185, 92,142,
+134, 13, 27, 98,204,152, 49, 88,188,120, 49,198,140, 25, 3, 59, 59, 59,140, 27, 57, 8, 43, 86,172, 64,106,106,106,117, 69, 85,
+ 53,110,220, 88,229,232,232,168,114,116,116, 84,105, 52, 26, 20, 22, 22, 34, 55, 55,183,124,125,207,169,105, 69, 90, 89, 89, 45,
+177,177,177, 9,177,178,178, 10, 23, 8, 4,215,131, 8,226,157,210,209,209,186,203,224,193, 68,179,145, 35,217,241, 34, 17,225,
+ 15, 72,116,225,178, 48,227, 14,240,236,209,159,159,155,115,184,212, 72, 53,121,146, 37,158,248, 55,199,211,199,109, 49,107,102,
+ 67, 16, 44, 33, 8, 22, 31,114,217,125,116,104,223,137,103, 98, 66, 84,215,151,198, 2, 8,234,210,165,139,157,183,183, 55, 33,
+ 16, 8, 48,123,246,108,205,212,169, 83,163,198,140, 25, 19,117,239,222, 61,202,209,209, 17,117,234,212, 33,234,212,169, 99, 11,
+ 32,168,248,152, 42, 97,212,144, 88,163,210, 68, 60, 54,113, 22,199, 80,176,232, 92,168, 21, 12, 95,185, 73,154,181,102,119,204,
+166,216,247,114,167,247, 47, 30,101, 69,133, 93,165, 99, 95, 61,204, 76,137, 42,112, 90,179, 59,102,211,210, 93, 41, 21, 94,212,
+254,254,160, 47,250,249,107,228, 50, 57,103,240, 64, 79,249,244, 41,163, 26,155, 73,154, 31,135,125, 31,183,122,117, 29,198,173,
+ 88,183, 93, 51,117,198, 92,205,193, 67,135,153,130,130, 2,228,231,231, 99,251,246,237,228,213,171, 87,147, 41,138,154, 91,217,
+ 51, 16, 0,104,181, 90, 76,159, 62, 93,108,100,100,132,196,196,196, 82,139, 40, 0, 72, 51,178, 66,159,190, 10,123, 55,255,135,
+ 17, 30, 50,149, 74,117,235,225,235,136,102,206,142, 14, 4,193, 84, 58, 17,133,207,229,246,110,219,161, 3,155, 97,114, 65,112,
+234,226,227,209, 13,200, 79,205, 70,126,122, 54,216, 92, 49, 72, 8,160,165,249, 48,105,217, 30,145,175, 2, 97,111,105,205, 17,
+112,185,125,245,227,137, 30,122,252, 59, 81,149, 22, 41, 43,150,214,175, 95,191,174,170,237,101,222,213,229,190,151, 10,169,242,
+ 34,172,236,103, 0, 88,191,126,253, 58,134, 97,188, 2, 2, 2, 78, 1, 80,232,120, 10,211,202,188, 79,251, 68,104, 85,105,133,
+ 82,170,125, 23, 46,254, 25,166,198, 34,227,246,173,157,109,174,220,244,127,253, 40,224,117, 68,189, 58, 22,150,140, 86,109,250,
+251,230,157, 14,132, 92,177, 94,199, 66,184, 88, 88, 88, 64,163,209,224,195,135, 15, 72, 74, 74,130, 70,163, 1, 41,147, 65,149,
+155, 11,101, 78, 14, 40, 89, 1,120, 20, 5, 69, 70, 58,204, 13,132,192, 95, 51, 18,171,177,188, 17, 21, 10,173,146,119,161,145,
+ 17, 4,134, 70, 96,113,185, 21,186, 21, 43, 65,155,246,237,219,159, 13, 11, 11,235,208,171, 87,175, 95, 81, 52, 69, 62, 62, 57,
+ 57,185,231,242,229,203, 85,214,214,214,152, 62,125,122, 19, 0, 19,170, 21,153,124,181,139,163, 77, 19, 52,118,154,128,122,117,
+122, 32, 87,166, 69, 70,190, 22,233,185, 26,236,219,209, 9, 23, 14,182,199,147, 11, 93, 17,118,171, 55,114,181, 54,144,216,125,
+ 11,134, 82, 55,175,138,243,206,157, 59, 88,189,122, 53,126,253,245, 87,172, 93,187, 22,191,254,250, 43,146,147,147,225,234,234,
+138,132,132, 4,220,184,113, 3, 82,169, 20, 22, 22, 22,120,249,242, 37,182,108,217,130, 39, 79,158, 84,123,210,186,100,179, 45,
+222,167, 70,190,116,146, 36, 39, 74, 7, 15,110,145,102,102,214,172,117,235,214,253,103,207,158,237,212,165, 75,151,210,237, 78,
+ 78, 78,117, 69, 34, 81, 42,138,102, 80,182,170,138,139, 6, 90, 91, 90,186, 66,173,122, 87,220,198, 92, 16,132, 16, 61,122, 71,
+160, 75,215,215,208,104,121, 96, 17, 2,176, 88, 66,144,100, 22, 76, 77,237,192, 48,132,107, 53, 69, 92,158,145,145,225,124,247,
+238, 93, 86,108,108, 44,132, 66, 33, 0,196,173, 92,185,114,231,166, 77,155,222,154,155,155, 83,126,126,126,184,124,249, 50,188,
+188,188,216, 83,167, 78,117,174, 83,167,206,222,234,206,123,229,118,233,179,147,155,111,140,230,106, 77, 91, 9, 69,245,234, 67,
+ 38,249,246, 71, 15, 11, 49, 0,220,140,142, 46,176,170,155,191, 94, 86, 16,146, 96,226, 80,248,219,205,232,234,102,156,174,164,
+223, 68,189,123,126,242,210,205,188,244,180, 28,110,235, 22,205, 21,190,171, 23,241,234,213,111,244,251,138,197, 63,216, 36,231,
+ 11,115,123,207,190,241,238,226,205,151,133,227, 39,125, 79, 78,153,230,173,188,113,243,206, 37,154,166, 91,160,146, 25,135, 52,
+ 77, 67, 42,149, 34, 60, 60, 28,209,209,209,200,200,200, 64,102,102, 38, 10, 10, 10, 74,221,141, 6, 5,249,215,118,254,113, 53,
+ 88, 44, 18, 25,116,104,225, 92,247, 69,224,219,116,177, 72,100,224, 92,191,110, 99, 96,101,133,247, 17,138,162, 90, 8, 13, 68,
+ 0, 8,228,134, 61, 66, 97, 78, 33, 10,115, 11, 81,144, 93, 8,149,134, 13,165,138, 5,133,154, 5, 71,143, 62, 40,148, 41, 81,
+152,149, 7,154,162,220,244,195,141, 30,122,232, 81,197, 88,239,231,227,227,179, 84,199,125,117,118,111,150, 23, 94, 62, 62, 62,
+ 75, 9,130,240, 91,178,100, 73,115, 84, 62,161,170, 44,246, 87,240, 2,160, 67,122,135,172,172,168, 66, 67,194,101,232,188,159,
+126,185,113,234,208, 14, 43,149, 74,158, 96,110, 42,161, 36, 6,124,139, 41,211,215,162,160, 48,103,136, 76,247,116, 4,200,201,
+201, 65, 76, 76, 12, 68, 34, 17,120, 92, 46, 40,133, 2,148, 66, 6, 69, 78, 22, 88, 26, 21,120, 20, 5, 51, 3, 17, 28,237,108,
+ 80,207,218, 70, 39,206, 15,247,111,151, 6,190,151,117, 23,110,104,239, 2,190, 88, 2,190,161, 4, 63,250, 61, 4, 0,240,120,
+ 60, 96,249,175, 58, 25, 77,236,237,237,255, 60,121,242, 36, 47, 35, 35, 3, 65, 65, 65,193, 0,242, 0, 24, 2,160, 35, 34, 34,
+238,134,133,133,121, 57, 59, 59, 3, 64,195,234,200,242, 51, 89,148,150,100,144,152, 26,135,216,164, 64,152, 25, 55, 0,215,160,
+ 49,210,115, 53, 16,136, 26, 64,171,250,203,251,168,204,143,135, 66,195,214,233,220,213,106, 53, 72,146, 4, 73,146, 80,171,213,
+152, 54,109, 26,158, 6, 4,224,244,229,123,136,249, 24,137, 38,245,109,240,221,119,227,209,190,125,123, 4, 4, 4, 84,201, 53,
+161, 21,180,246, 18,112, 54,247,103,129, 47, 49, 87,117, 92,124,235, 69,117, 98,139, 32, 8, 6,149,184, 34,203, 97, 83,167, 78,
+157, 26, 69,202,100, 8,127,247, 14,189, 86,174, 4, 0, 92,191,126,253,147,115,153, 63,127, 62,255,237,219,183, 83, 94,191,126,
+ 61, 37, 37, 37,101, 51,128,138,131,205, 25,224,218,181,103,248,225,135,183,200,200,200, 0, 0,156, 57,245,151, 46,141,141,209,
+160,223,128, 34,143,150,137,137, 9, 54,111,118,213,169, 62, 41,138,194,254,253,251, 75,221,133, 0,192,225,112,186,204,159, 63,
+127,104, 69,251, 55,106,212,136, 87, 29,231,188,225,246,194, 39,193,204, 76,227, 70,245,154, 27, 89,180, 68,150, 54,208, 53, 48,
+ 89, 58,107,222,112,251,173, 91,206, 39, 43, 69,132,234, 8, 65, 37,214,225, 8,149, 71,117, 41, 99,244,205, 29,234, 44,199,137,
+ 71, 83, 51,242,151,121,127, 63,214,220,200,196, 74,118,112,167,175, 41,139,205, 98,254,124,173,201,109,238,100,110,242,109,199,
+109,133, 63,204, 91, 30,168, 38, 19,189,145,248,103, 36,170, 72,113, 65, 81, 20, 82, 82, 82,144,145,145,129,132,132, 4,100,102,
+ 22,185, 95, 51, 51, 51, 65,211,244,151,220, 16,161, 72, 72, 64,252,165,131,168, 55,126, 60,218,253,186, 26, 20,205,129, 66, 78,
+ 97,115,231,158,200,201, 83, 64, 69, 19,176,107,211, 25,223, 95,127, 12, 22, 67, 1,251,118,233, 71, 18, 61,244,248,151, 66,151,
+244, 14, 37,130,200,215,215,215,235,107,255,127, 89,177,229,235,235, 27,238,235,235, 91,147,255, 42,239, 50, 44,253, 94, 18,163,
+245,176, 76, 0,218,103,131,102, 65,102, 68,244,219,183,156, 20,153, 66,102, 96,109,101,169, 50, 16, 10,232,188,252, 2,118, 96,
+104,176, 70,150,250,241,125, 13,206, 35, 34, 44, 44,204, 53, 37, 37, 5, 9,241,241, 32, 21, 50,176, 84,106, 48, 74, 57,122,185,
+119,134, 16,128,144, 69,128, 71,107,192, 97,243, 81, 80,152, 15, 0, 17,213, 14,142, 90,237,103,150, 45,130, 32,192, 55, 52, 4,
+ 95, 44, 6, 95, 98,248,137,133, 75, 23,139,141, 64, 32, 56,121,238,220, 57, 91,123,123,123,172, 94,189, 26, 14, 14, 14, 77,237,
+236,236,228,198,198,198, 34,107,107,107, 52,107,214, 12,157, 59,119,198,141, 27, 55, 0, 29,114, 74,105, 73, 97,200,251, 56,116,
+201,204, 14,192,227,135,123,160, 86,168,208,218, 99, 15, 52,156,122,176,108,190, 10,244,135,227,144,167, 94, 41,178, 30,216, 12,
+ 68, 82, 66, 28, 8, 54, 63, 92, 87,203, 83,201,231,224,224, 96,156,186,226, 15, 91, 71, 23, 36, 68,189,195,187, 7,119,241,212,
+210, 28,142, 46,205, 74,221, 64,149,150,145, 2,103,205,174,162, 52, 81, 63,207, 28, 43,200,206,206, 22,152,153,153,169, 74,234,
+206,214,214,246, 75,196,214,216,133, 11, 23, 34,151,203, 5, 6, 12, 0, 47, 58, 26, 26,141, 6, 29, 59,118, 68,187,118,237, 0,
+ 0, 29, 59,118, 4,135,195, 65,203,150, 45, 97,103,103,135, 93,187,118,141,173, 76,104,177, 8, 4,145,100, 86, 83, 39, 39,167,
+ 82,161,117,244, 88, 6, 2, 95,247, 6, 1, 62,182,239,252, 80,186,111,221,186,117,145, 42,141, 6, 65, 48, 97,213,148,241, 87,
+ 27, 27,155,229,182,182,182, 78,155, 54,109, 98, 11,133, 66,204,152, 49,163, 65, 97, 97, 97,189, 98, 83, 50,150, 44, 89, 2, 0,
+ 88,177, 98, 5, 86,174, 92, 9,149, 74, 37,175,140,236,232,230, 22,118,233,217,244, 20,166,208, 96,136,167, 69,189, 22, 61,250,
+246, 66, 3,231, 30,232,209, 55, 1, 0,214,153,113,226, 70,254,190,204,228,146,137, 33,113,248,246,205, 59, 43,220, 61,122, 44,
+ 91, 92,248, 96,205,111,251,115,171,141,121,204,139, 63, 82,240,158, 63,106,203,142,189,199,182,252,178,100,142, 48, 33, 67,157,
+147,156,195, 20, 74, 4, 28, 73, 67,107, 66, 50,235,167, 95, 99, 82, 82,162, 23, 32,241,102,181, 51, 45,105,154, 70,116,116,116,
+105, 76,159, 82,169,132, 76, 38, 67, 98, 98, 98,105,159, 81,136,141,250,121, 79, 26,232, 38, 83, 40,228, 47, 66,163, 18,126,158,
+ 61,174,147, 76,161,144, 71,197, 38, 68, 2,219, 43, 84, 99, 44, 22, 43, 84, 94, 32,239, 37,207, 85, 34, 35,232, 61, 28,122, 58,
+ 66, 75, 18, 80,147, 20, 50,178, 10,160, 34, 1,138,197, 69,243,145,223,129, 34, 56,200, 76, 73, 6,139,205, 14,198,167, 65,251,
+122,232,161,199,191, 7, 85,106,145, 18,139, 86,167, 78,157, 78,151,181, 58,149,124, 6,160, 66,213,161, 60, 25,101,197, 84,137,
+ 59,177,178,255, 41,199,171, 43, 62,139,209,170, 54,189, 67,201,127,214, 49,206,183,219,176, 98,156, 3, 77,146, 77,210, 51,211,
+ 72, 14, 71,192,173, 99,172,144,102, 39,232,254,239, 42,149,202,239,238,221,187,131,123,247,238, 45,136, 10, 13,134, 58, 47, 15,
+234,188, 92,112,105, 18,102,162,182, 96,105, 84, 32,212,106,216, 55,165,161, 44, 16,193,255,105,152, 86,165, 82,249,233, 42,180,
+ 88,108,246,167,113, 89, 18, 9, 4,134, 70, 16, 72, 36,229, 93,139,213,137, 2,131, 62,125,250,244,236,216,177, 35, 24,134,193,
+254,253,251,161,209,104,248, 26,141, 6,106,181, 26, 26,141, 6,249,249,249, 56,118,236, 24,118,239,222,253, 20,192, 31,213, 14,
+102,164,250,238,173, 59,247,219, 79, 30,231,197,189,238,183, 25,164,154,130,130,112,128, 76,166, 69,161,218, 0,148,249,120, 32,
+237, 26,216, 28, 33, 58,181,108,128, 43,231, 47,106, 64,170,238,233,168,194, 63,177, 10, 37, 38,196, 33,233, 99, 36, 36,249,169,
+176, 52, 50,128, 60, 58, 18,173,191,155, 80, 43,235, 68,157, 58,117, 64,211, 52, 60, 61, 61, 75,131,171,107, 43,182,178,178,178,
+112,245,234, 85,116,236,216, 17, 30, 30, 30, 72, 78, 78, 70,116,116, 52,190,249,230,155,210,125,130,131,131, 17, 24, 24,136,134,
+ 13,171, 54, 18,102,102,107,175, 39, 37, 6,141,248,246,219,111,121,207,159, 63, 7,195, 48,112,118, 54,130,145,161, 24, 4, 75,
+ 0, 23, 23, 43, 0, 69,207, 0,221,187,119, 71,126,126, 52,153,147,195, 92,175,230,116, 79, 2,184,172, 86,171, 63,116,235,214,
+205,238,227,199,143,152, 55,111, 30,231,204,153, 51, 37,166,100,248,248,124, 58,153, 66,161,168,220,117,223,164, 69,211, 69, 13,
+ 72, 83, 15,161,168, 94,125, 35,139,150,104,224,220, 3, 0,208,219,107, 50, 26, 52,170,139,252,204,144,250, 74, 69,220, 16, 30,
+ 39,199, 52,100,123,242, 91,209, 0,215, 73,202,244,135, 81, 40,114,157, 86,219,236,138,168, 51,105, 9,220,241,103, 47,255,121,
+ 99,250, 55, 94,131,184, 90,138, 36, 93, 29,185, 38,231, 46, 93, 75, 79,142, 79,216,134,132,155, 97,127,217,255,170,180,226, 81,
+249,249,249, 16,139,197, 8, 11, 11, 83, 13, 24, 48, 64,192, 98,177,240,225,195,135, 82,161,101,101, 97,214,172, 75, 59,215,166,
+107,182, 28,187, 37, 22, 8, 4,125,187,183,117,121, 27, 21,159,196, 48, 68, 92,165,214, 86,173,246, 78,104, 80,176,167,165, 93,
+ 35,118,244,195,231, 48,239,250, 13, 84, 42, 22, 20,106, 26, 42, 18, 32,217, 60,216,182,234, 0,147,134, 46, 96, 0,188,122,254,
+ 84,171,210,106,111,233,199, 26, 61,244,248, 87, 91,181,152,170, 68, 82,241,231,108, 0,113,190,190,190,153,101,172, 77, 25, 0,
+130, 1,184, 21,239,151, 81,238,184, 12,130, 32, 94, 49, 12,211,174, 12, 79, 70, 25,193, 85,246,179,186,220, 62,193, 53, 16, 89,
+101,223, 63, 21, 90,149, 77,169, 4, 0, 11, 11, 11,171,214,173,219, 54, 60,112,232, 44, 24,134,193,251,192,141,200, 73,127,135,
+229,235,158, 53,180,183,183,247, 72, 78, 78,246,215,165, 4, 20, 69,157, 57,124,248,240,130, 14,109, 90,183,174,239,224,128,224,
+184, 88,240, 24, 10, 60,138, 2, 75,163, 2,135, 82,195,193,149, 2,139,144, 32, 37, 37, 15,235, 79,158, 13, 43,206, 18, 95, 37,
+154,126, 51, 8,171,147,242, 64, 16, 4, 54,117,114, 5,223, 80, 2,158, 88,130, 31,255,188, 95, 42,174,252, 86, 47, 1, 95, 34,
+ 65,195, 14, 58, 37,132,151, 63,120,240,224,117,104,104,104, 59, 87, 87, 87, 44, 88,176, 0,113,113,113,160,105, 26,105,105,105,
+ 74,169, 84,154,156,145,145, 17, 7,224, 18,128, 3,208, 33,243, 56, 79,165,220,234,119,225,168,119, 39,119, 15,139,111,135,236,
+198,229,243,243,145,155,151, 15, 57, 41,130, 76, 73, 66,166, 98,195,204,188, 5, 58,180,108,137,148,228,116,132, 63,191, 85,200,
+ 81,201, 55,214,164,131, 18, 4,129,192,192, 64, 56,217, 25, 34,242,177, 63, 44, 12,184,112,179,179,129, 93, 23,247,210,252, 82,
+ 85,129,203, 6, 57,118,236,216,210,204,240,125,250,244,137, 29, 63,126,188,237,252,249,243,113,232,208, 33, 60,125,250,244,179,
+ 0,109, 15, 15, 15, 60,122,244,104, 21,128, 21,213, 25,245,212,106, 53,154, 54,109,138, 87,175, 94,225,238,221,187,232,209,163,
+ 7, 60, 60, 60, 16, 18, 18,130,219,183,111, 35, 48, 48, 16, 4, 65,192,220,220, 28,218, 34,241,172,173,140, 76,163,193,185,223,
+126, 63,188,116,203,150,221,205,199,141, 27,135, 11, 23, 78, 99,242,164, 38, 32, 88, 2, 16,132, 0,131, 6, 54,193,234, 95, 95,
+161, 67,135,238,176,176,224, 98,203,230, 43, 49, 10, 5,117, 76,135,106, 92,115,251,246,109, 59,165, 82,137,220,220, 92, 70, 34,
+145, 16, 89, 89, 69, 51, 90, 43,178,104,201,229,114, 97,101, 68,161,111, 34, 54,230, 22, 48, 57, 76, 97,224,144,108, 50,176, 69,
+143,190,137,232,237, 53, 9,119,252,254,192,253, 91,119, 97,198,137,139,133,184,224, 70,102,108,102,190, 84,230,188,215,165,205,
+ 84,118,146,236,214,222, 89,131, 34,217,182,182,244,185, 37,123,242,115,171, 18, 90, 0,136,236,183,199,255,188,196, 96, 80,231,
+ 78, 29, 26,185,214,181,229,231,100,166, 51,231,175,220, 8,211,196, 94,184, 90, 70, 96, 49,213, 8,245,213, 62, 62, 62,191, 20,
+127, 62,242,243,207, 63, 79, 93,191,126,189,101,106,106,106,105,140, 86,122,102,246,253,206, 3,102, 81, 89,185,121,234,195, 91,
+126, 26, 46, 18, 10,248, 63,175, 63,252, 80,203,198,243,202,120, 73,154,222, 53,114,222,242, 57, 81,239, 3,237,235,137,248,184,
+242,211, 10, 4,223,126, 0, 45,139,135, 31,238,190,128, 74, 67, 33, 55, 51, 11,247,166,204,132,196,218, 20,187, 31, 94, 72,163,
+105,122,143,126,168,209, 67,143,127, 47, 42,211, 34, 4, 65, 84,148, 99, 47,173,130,223, 94, 85,117, 92, 37, 60, 95, 3,149,102,
+133,215,105, 10, 94,102,102,102,250,163, 71, 47,240,208,111, 13,252,253,214, 32, 60, 48, 24, 41,201,106, 36,167, 41, 97,100,100,
+244,172,138, 67,203,103,142,101,228,114,249,208,159,151,255,146, 42, 20, 25,160, 91,207,158,176,177,180,130, 1,143, 11, 54, 73,
+131, 77,112, 81,152, 97,130,200, 16, 57, 22, 31, 62,158, 94, 40,151, 15,173, 96,144,232, 85,153,200, 32, 8, 2, 2, 35, 67,240,
+ 37,134, 16, 24, 26,125,226, 70, 20, 26, 25, 65,104,104, 4, 14,159, 95, 81, 48,252,103,156,133,133,133,195,134, 15, 31,158,147,
+151,151,135,169, 83,167,194,223,223, 63,240,214,173, 91, 70, 33, 33, 33,162,140,140,140, 70, 0,250, 0,216, 87,133,200,250,132,
+ 51, 39, 39,186,128, 33, 85,163,124,127,153,171, 80,146,230, 24, 49,225, 12,196,172, 68,144, 20, 13, 6,128,157, 25, 31, 93,122,
+253,138,116,117,103,156,217,187, 86, 78,107,148,227,202,229,208,250,132,147, 97, 24,198,218,218,250,179, 58,184,123,247, 46, 70,
+ 12, 31,134,190, 67, 6,195,178,190, 19,172,122,125,131,190, 83,127,192,222,189,123,193, 98,177, 96, 97, 97, 81,126,224, 45,229,
+ 60, 26, 4,238,169, 80, 16,167, 66, 65, 28, 9, 4, 7,192,119,199,143, 31,255,205,205,205,237,193,211,167, 79, 55, 2, 24, 85,
+246,191,202, 96,101, 57,107, 86, 69,109,180,108,206,156, 57,138,168,168, 40,136,197, 98,144, 36,137,167, 79,159, 98,247,238,221,
+216,180,105, 19, 2, 3, 3, 97,110,110,142,134, 13, 27, 66,165, 82,225,213,171, 87, 10, 0,203,170,224,164, 51, 50,200, 97,219,
+183,175,207,242,242,234,138,195,135,119,194,198,166, 51,184, 28, 27,112,184,150, 16, 75,154,226,224,129,223,208,191,127,107,252,
+121,229,108,118,102, 22, 57, 12, 0,169, 67, 95, 82,190,120,241, 2,123,247,238,197,240,225,195,147, 71,140, 24, 65,229,229,229,
+149, 90,180, 74, 50,253,174, 44,142, 49, 83,169, 84,130,202, 56,191, 95, 28,150,252,211,218,240,213,105,169,201, 29,253, 31, 60,
+ 27,123,255,214, 93,196, 68,221,199,253, 91,119,241,248,126,128, 79, 90,106,114,199,214,237, 27,243,134, 78,245, 94,116,244,226,
+ 5,182,196,200, 22, 71, 47, 94, 96,143,153, 53,119,109,219,190, 61,150, 85,215,231,139,219,145, 41, 76, 79, 91,178,110,227,142,
+ 66, 82,163,100,109,216,182, 43, 69,145, 33, 93, 86,166, 95, 50,213,245, 79,133, 66,177, 79,169, 84,218, 41,149, 74, 59,149, 74,
+181, 44, 46, 46,174,219,130, 5, 11, 50, 40,138, 42,181,150,102,188,253,243,217,187, 39, 71,214, 89, 89,152,138, 58,183,107,222,
+100,243,190,243, 15, 19, 18,211, 78,148,201,161, 85, 81, 57,149,133, 10,229,176,193, 67,199,203,114,115, 84,232, 52,215, 7,180,
+ 80, 2, 21, 5,104, 25, 54, 72,130,131,208, 53,155, 33, 50, 51,196,201,216, 55,242, 60,173,102, 24, 62,205,161, 85,213,185,127,
+ 9,244,156,122, 78, 61,231,127, 39,231,255, 50,108,241,233, 90,135,182,159, 88,180,170,155, 82,105,111,111,223,237,219, 65,189,
+208,221,235,103, 48, 12,131,119,111,126, 71, 78,198,123,216,219, 8, 16,157,144,223, 9,128,127, 13, 10,147, 16,151,152,216,113,
+206,178,159, 47,142,232,211,211,197,181,126,125, 65,189,122,142, 16, 91, 89, 33, 51, 51, 3, 79,158,191,213,174, 61,117, 46,172,
+ 88,100,233,228,152,164,105,186, 40,200, 29, 64,207, 57,139, 65,176,217, 64,113, 26,135,146,129,177,126,187,206, 32, 56, 28, 80,
+ 12, 13,149, 74,165,203,108,185,164,143, 31, 63, 14, 27, 55,110,220, 61, 63, 63, 63, 86,223,190,125, 91, 93,186,116,233, 75,214,
+204,131, 44, 61,234, 1, 0,175,181, 75,166,159,233,216, 99,176,145,115,243,182,188,182,245,216,208,104, 9,164, 36,199,195,239,
+226, 75,205,219, 23,183,242, 25, 82, 57, 74,158, 25,245,160, 42, 46,141, 70,147,208,168, 81, 35,235,189,123,247,150, 6,195, 83,
+ 20,133,204,204, 76, 60,123,246, 12, 45,218,117,128,203,164, 41,200,200,200,192,246,237,219, 81,183,110, 93, 12, 28, 56, 16,217,
+217,217, 32, 73, 82, 87,135, 47, 5,224, 86,241, 11,229, 68, 22, 81,188, 4, 80,149,110, 67, 39, 39, 39,190, 82,169,108,197, 48,
+ 12,155, 32,136,173,106,181,122,226,146, 37, 75,108,215,173, 91,135, 38, 77,154, 32, 51, 51, 19, 98,177, 24,206,206,206,200,200,
+200,192,203,151, 47, 41,185, 92,190, 23, 69, 11, 89,103, 84, 83,190, 15, 47, 95,198,118,156, 61,251,199,139,191,173,159,238,172,
+ 84,117,231,155,153,185,131, 97, 72,100,100,196,161, 32,255,169,230,215,213,127,124, 76, 75,215, 14, 5, 16,165,227, 57,175,240,
+246,246, 6, 0, 33,128,159,163,163,163,131, 92, 92, 92,156, 43,179,104,233,130, 45,231,147,149, 0, 78, 13,235,107, 55, 47, 63,
+ 51,196,217,140, 19, 23,219,209,149,222,190,229,124,178,210,200, 78,182, 38, 51,206, 63, 82, 42,187,181,247,232,197, 11,236, 9,
+ 67,134, 81, 14,146, 40, 31,161, 21,115, 94, 7,106,198,205,205,173, 14, 65,100, 55, 72,207,122,255,122,242,212,233, 35,141,121,
+138,235,110, 14, 89, 13, 89,117, 91, 11, 3, 3, 3, 99, 81,195,153,161,197,136, 76, 78, 78,238,182,100,201,146, 91, 12,195,124,
+ 18,155,144,158,153,125,191,147,151, 55,147,155,155, 23,148, 17,241,167, 46,185,212, 94,190,124, 19,216,211,181, 69,235, 11,191,
+173, 91,111,221,125,206, 2, 78,228,131,135, 0,165, 69,188,255, 67, 80, 2, 53,189, 57,224, 78, 90,158, 70, 51, 4,250,172,240,
+122,232,241,175,183,102, 85,165, 69,254,203, 49, 0,149, 4,195,235,124, 50, 78, 13,236,111, 53,113,174,215,167,174,131, 37, 0,
+ 32, 58, 54, 5,209,177,201,183,163, 99,146,251, 86,163,120, 43,155, 94, 89,186,168, 52, 81,156,194,129,209,109, 81,233, 79, 56,
+205,205,205, 95,115, 56, 28,135,154,212, 6, 69, 81, 41,153,153,153,173,117, 44,231,152,250,245,235,175,143,143,143,191, 72,211,
+244,188, 26,170,253, 10, 57, 75, 22,149,102,113,248,189, 24, 82,221, 2, 0, 8, 14, 95,151, 69,165,203,114,182,144, 72, 36,251,
+184, 92,110,221,146,118, 44,137,193,162, 40,138,173,209,104,132, 20, 69,177, 1, 16, 44, 22,139,228,114,185, 74,130, 32, 72,146,
+ 36, 19, 84, 42,213,116,252,149,112,180,170,115,175,118,160, 47, 22, 90,168,192,162,117, 23, 0,162,162,162, 26,155,154,154,142,
+ 34, 8, 98, 56,195, 48, 77, 11, 10, 10, 84,203,151, 47, 15, 60,119,238, 92,126,253,250,245,251, 13, 24, 48,128, 8, 9, 9, 65,
+ 88, 88, 24,147,149,149,117,190,216,138, 21, 93,195,190,196, 18, 8,216,163,205,204, 88, 3, 24, 6,110, 96, 64, 16, 44,132,230,
+229,209,215,229,114,234, 68,177, 96,172,105,255, 44,193,216,122,245,234,253, 17, 27, 27,203,173,204,146, 90,217,185,151,199,239,
+203,154,255,220,169,107,215, 97,207, 30, 63,190,244,211,218,240,213,101,183,205, 26,108, 58,121,204,204, 57,191,159,218,181,237,
+167, 29,151,115, 14,235, 82,206, 86,173, 90, 57, 17, 4, 49, 10,128, 43,195, 48,141, 24,134, 16, 18, 4,147, 67, 16, 68, 56,128,
+ 16,181, 90,237,247,246,237,219,164, 47, 56,247,218, 60,225, 86,198, 89,186,168, 52, 40,170, 37, 5, 48, 58, 46, 42,253,159, 46,
+167,158, 83,207,169,231,252,255,227,252, 95,198,180, 10, 6, 72,221, 50,195,151, 32, 58, 38,185,111,116, 76, 50, 26, 53,106,196,
+124,248,240,161, 70, 34,173,178, 65,154,162,168,211,114,185,252,244,151,144,100,101,101,181,253,155, 43,239, 84,108,108,236,169,
+175, 73, 88, 44,164, 86, 23,191,106,139,208,194,194,194, 14,186,238,172,209,104,254,142,186, 33,138,173, 89,171, 42,219,161, 79,
+159, 62,241, 26,141,230, 46,128, 68,130, 32, 76, 0,100,107, 52,154, 91, 36, 73,166,125,248,240,161,237,230,205,155, 75, 50,223,
+255, 10,224,117, 45,203, 65,171, 84,212,201,148, 20,234,228,223,112,142, 39,213,106,245,124,115,115,243,134, 74,165,146,175, 84,
+ 42,121,101, 39, 31,136, 68,162,140,170, 2,226,203,194,196,144, 56,194,227,228,152,155, 24, 18,229,133, 20,204,236,113, 65, 33,
+ 11,107, 98,102,143, 11,186, 22, 44, 40, 40, 40,218,205,205,237, 56,139,197,170,207, 48,140, 53,192, 24, 51, 12, 50, 24,134,201,
+228,112, 56,201,111,223,190, 77,254, 47,186, 9, 41, 73,154,222, 72,170,213,127,197, 29,234,103, 23,234,161,135, 30,255, 28, 84,
+ 26,163,197,169, 41,211,135, 15, 31, 8,125,125,234, 81, 86,108, 85,181, 49, 62, 62, 94, 5, 32,160,248, 85, 30,175, 1, 12,252,
+111, 63, 65,169, 84,218,186,178,109,186,138, 44,160, 40,102, 11, 8,155, 91,209,182,149, 59,114, 10,176,227,226,162,154,150, 45,
+ 56, 56, 56, 1, 58,186,216,245,208, 67, 15, 61,244,248,219, 48,173, 50,241,197,209,215,141, 30,122,232,161,135, 30,122,232,161,
+199, 23, 97,127, 25,193,245,137,117,139, 64,229, 51, 7,106,226,123,173,205,236,131,187,122, 78, 61,167,158, 83,207,169,231,212,
+115,234, 57,255,117,156,255, 84,124, 34,178,116, 73,142,254, 53,160,159,250,170,231,212,115,234, 57,245,156,122, 78, 61,167,158,
+243,223, 32,178, 62,121,149,100, 61,208,187, 14,245,208, 67,143,127, 45,206,157, 59,167,211,162,162,163,127, 58,232, 37,145,152,
+ 46, 47,204,207, 91,127,122,227,228, 75, 37,191,143, 24, 49,130,210,215,162, 30,122,232,129,218, 4,195, 55,104,224,208,140, 69,
+209, 93, 24,134,197,102, 88,140,150,200, 87,156,137,206,201,249, 36,237, 64,157, 58,117, 76,184, 44, 12, 36, 24, 70, 76, 16, 52,
+ 69,179, 89, 79, 99, 98,146,222,214,160, 96,124, 83, 83, 83,111, 30,143,215, 75,173, 86, 59,176, 88,172, 36,149, 74,117, 87, 46,
+151,239,196,231,137, 11,255,223,208,184,113,227, 49, 15, 31, 62, 52,113,119,119, 87,137, 68, 34, 82,161, 80,112,110,222,188,249,
+127,236, 93,119, 88, 20,215,219, 61, 51,179,189,194,210,171, 40, 40,138,162, 2,246, 94, 19,141, 93, 99,137,177, 23,212,152, 24,
+ 53,209,104,162,137,221,104, 76,172,137, 37,118,163,198, 26,123, 55, 98,111,216, 80,177, 75,239, 44,176,176,108,159,153,239, 15,
+216,205,138,148, 93,196, 68,127, 31,231,121,134,101,118,103,207,222,153,185,115,239,185,239,125,239,251, 10, 62,250,232,163,236,
+103,207,158,149,107, 69,162,151,151, 87,251,245,235,215,251,119,234,212, 9, 53,106,212, 80, 15, 24, 48,128,215,172, 89, 51,222,
+168, 81,163, 94, 36, 37, 37,157,181,147,174, 14, 65, 16, 91, 9,130,160, 24,134, 25,130,127, 66, 55, 84, 52, 72,146, 36,199, 16,
+ 4,209,155,101,217, 0,130, 32,158,179, 44,187,159, 97,152,210, 2,183,150,134,143, 1,116, 33, 73, 50, 12, 0, 24,134,185, 5,
+224, 40, 96,251,202,187,127,147, 83, 44, 22,135, 2, 64,126,126,254,237,138,226, 36, 8, 34, 20, 0, 88,150, 45, 47,231,112,145,
+ 72, 52, 26, 0, 52, 26,205,239,176, 33, 29, 84, 81,176,107,130,216,176,217,209, 0,128, 91, 63, 4, 1, 0,236,217, 39,198, 70,
+ 19,246,252, 86,113,124,246,112, 20,131, 46,131, 6, 13, 90,240,199, 31,127,252, 0,224,192,219,168,248, 30, 30,190,171,126, 94,
+190,206,107,226,231, 35,127, 68, 65, 70,136,210, 31, 72,224, 3, 62, 69,245,208,211,244,133, 7,192,110, 0, 28, 39, 39,167,129,
+124, 62,191,181, 94,175,247,228,112, 56,201,122,189,254,124, 78, 78,206, 14,148,146, 1,193,230,235,250, 16, 10, 67, 62, 60, 8,
+230,159, 60,111, 44, 9, 29, 79,140, 20,162, 54,178,222,129,102,148, 4,240,101,225,185,110, 64,201,225, 60, 74,107,124, 38,122,
+121,121,245, 86,169, 84,249, 20, 69,177, 40, 88,245, 92,240,167,224,115,130, 97,152, 52,165, 82, 57,164, 44, 46, 73, 21,212,226,
+ 75,136,173,180, 17, 26,147,142, 29,167,142, 71,180,212, 23,205, 89, 96, 8, 11, 84, 35, 41,210,149, 97,152,100, 0,103, 73, 19,
+ 14,229, 37,225,233, 59,218,185,251, 21, 94,215,170,133,251, 92, 0,238, 0,238, 2,152, 8, 32,175, 82,255,252,107, 40,234, 12,
+127, 4, 64,178, 69,104, 89,133,187,111,219,173, 91,183, 8,127,127,159, 58,125,123,245, 89, 48,118,204, 56,130,162, 72, 68,221,
+191,207,249,116,200,240, 15, 21, 10,133,183, 84,167,171, 13,130, 96,242,133,194, 40,149, 42, 39,113,247,142, 63,100, 65,181,106,
+209, 52,205, 96,205,218,213, 31,237,249,107,223,183, 54,138,173,154, 30, 30, 30, 91,167, 77,155,230,209,163, 71, 15,202,195,195,
+ 3, 49, 49, 49,142, 59,119,238,172,181,114,229,202,254, 89, 89, 89, 67, 0, 60, 46,199,201,182,242,112, 34, 63,148,137,136, 14,
+200,165,145,107,196,153, 20, 13, 78, 2,184, 80,222,171,151,159,159,255, 69,126,126,126,147, 70,141, 26,177, 27, 54,108, 32,134,
+ 13, 27,198, 18, 4, 65,104, 52,154,205, 0,202, 37,180, 36, 18,201,175,157, 58,117, 10, 12, 12, 12,124,254,236,217,179, 46,187,
+118,237, 58, 58,116,232,208, 0,137, 68,242, 4, 64, 77, 59,233, 54,101,102,102,134,104, 52, 26,248,248,248,108, 0,208,224, 45,
+ 84, 34,130,162,168,253,222,222,222,236,226,197,139, 15,132,132,132,184, 43,149, 74,211,148, 41, 83, 58, 94,189,122,245, 35,154,
+166,123,216, 33,182, 20, 4, 65,172,117,119,119,119,249,241,199, 31,159, 54,108,216,240,174, 64, 32,224, 63,121,242, 68, 60,121,
+242,228, 73,143, 31, 63,238,207,178,236, 24,192,174, 14, 66, 65, 16,196, 90, 47, 47, 47,151, 5, 11, 22,196,132,133,133, 69,241,
+120, 60,222,147, 39, 79, 36,223,124,243,205,196,232,232,232,114,113,146, 36,185,166, 73,147, 38,138, 31,126,248,225, 97,173, 90,
+181, 46, 83, 20,197, 79, 72, 72, 32,103,205,154,245,249,169, 83,167,250, 49, 12, 51,182, 60,229,116,115,115, 83,204,154, 53,235,
+ 97,179,102,205,174,242,120, 60,222,163, 71,143,200,105,211,166,125,254,244,233, 83,155,203,233,228,228,212,142, 32,136,117, 41,
+ 41, 41, 28, 0,240,244,244,108, 44,151,203, 87, 90,231,180, 52,251, 8, 24,141,198, 92,173, 86, 59, 72,169, 84, 22, 27, 8,119,
+216,244, 21,221, 1, 96,165,193,188, 95,240, 90,214, 62,176,230,144, 45, 39, 29,234, 81, 16, 23,239,103,245,136, 94, 0, 48,176,
+ 48, 85,248,207,106,128,195,225, 48,161, 30, 19,217,219, 41,118,133,140,233,217,190,125,251, 89,103,207,158, 93,221,182,109,219,
+111,182,109,219,230, 22, 31, 31,191,232,194,133, 11,190,159,124,242,201,176, 51,103,206, 44,204,200,200,216, 83, 81,149,159,207,
+ 19, 8, 8,146,128, 72, 40,150,219,114, 60,151, 36,187, 93,238,217,115,244,239,143, 30,133,173,140,142,246, 87,123,122, 54,153,
+ 48, 97,130,123,159, 62,125, 72, 95, 95, 95, 60,125,250,212,121,219,182,109,181,127,255,253,247,222,217,217,217, 95, 2,136,125,
+ 19,145,165,206, 70, 61,157, 30, 97, 44, 11, 71,203, 3, 75, 32, 91, 96,192, 45,246, 33,238,189, 3, 98,235,251, 77,155, 54,253,
+240,244,233, 83, 44, 92,184, 16, 0, 86,217,249,253,201, 61,123,246,236,186,111,223, 62,209,238,221,187, 69,141, 26, 53,130,135,
+135, 7, 10, 7, 83,150,192,212,254,254,254,182, 93, 51, 6, 63, 47, 59, 58,162, 65,148,242, 24,126,237,147,178, 80,228, 3, 83,
+243,158,129,189,187, 13, 11,131,131,171, 24, 66, 41, 7,217,153,170,186,143,110,197,119,250,123,215,211, 69, 79, 35,211,127, 84,
+199,225,123,148, 28,147,239, 63,129,179,179,243,134, 23, 47, 94,180,147, 72, 36,175,188,255,252,249,243,208,192,192,192, 28, 0,
+ 95,217, 43,220, 92, 93, 93,183, 51, 12,163,203,204,204, 28, 9, 0, 50,153,236, 15,137, 68,162, 72, 78, 78,254,246,109, 13,100,
+204, 40,170, 69,222,115,139,150,197, 95,171,184, 92,135, 4, 73, 51, 45,198,142, 25, 71, 12, 24,248, 73,202,211,231, 47, 24, 14,
+151, 63,240,248,137, 19,226, 58,117,234,144,186, 85,171, 96, 74, 79,135,113,210,164,230,167, 79,159, 54,246, 27, 56, 88,195,165,
+136, 77, 1,254,213,196,127,238,216,233,177,111,239,158, 22, 0,202, 18, 90,124, 15, 15,143,173,231,206,157,243,246,247,247, 71,
+118,118, 54, 98, 98, 98,160, 86,171,209,191,127,127,110,139, 22, 45,188,251,246,237,187, 53, 39, 39,167,165, 29,150, 45,247, 26,
+ 62,156,195, 99,134,247,169,249,209,135, 45, 36,222,190,213,193,166,104, 17,255, 44,186,209,225,115, 87, 39,108,218,123,244,241,
+211, 28,182, 27,138,207,141, 84, 42, 50, 50, 50,166,246,238,221,123,111,187,118,237, 92, 5, 2, 1,188,188,188,136, 30, 61,122,
+164, 37, 37, 37,205, 46,183,106, 41, 76, 97, 67,146, 36,109,253, 90, 76,122, 32, 91,224,163, 80, 40,160, 80, 40, 0,192,251, 77,
+ 71,158,142,142,142,171,100, 50, 89, 95,149, 74,165, 33, 73,146, 37, 8,130,213,235,245, 34,133, 66,113,231, 97,244, 99, 47,157,
+ 78, 87, 99,201,178,223,151,183,111, 21, 34, 63,117,234, 20,250,244,233,195,158, 60,121,114,140,173,121,234, 8,130, 88,219,187,
+119,239,252,153, 51,103,106,159, 62,143,241,126,248,248, 57, 33, 17,242, 25, 23, 23, 23,238,245,235,215, 57, 75,151, 46, 21,206,
+154, 53,107, 45,203,178,125,237,184,158,107, 63,249,228, 19,195,215, 95,127,157,252,232,233, 11,183,123, 15,159,178, 82, 33,215,
+228,226,226, 76, 93,189,122,149, 41, 15, 39, 73,146,107,166, 78,157,170, 26, 51,102, 76, 86,166, 50,199, 35, 75,149,199, 10,184,
+148,209,195,195,131,115,224,192, 1,221,246,237,219,201,209,163, 71,175, 97, 24,166,159, 29,215,119, 77,143, 30, 61,114,167, 77,
+155,150,253,228,249, 75,143,123, 15, 30, 67, 44,224, 26,221,221,221,168, 27, 55,110, 24,150, 44, 89, 66,206,155, 55,207,166,114,
+ 74, 36,146, 45,187,118,237,226, 28, 56, 80,208,246, 93,185,114,133, 12, 8, 8, 16, 91, 31,163,209,234, 64, 18, 64, 70, 70,134,
+184, 89,179,102, 91, 0,188, 22,220, 55,108,118, 52,134, 77, 7,190,248,226,139,100,123, 43, 75,152,231,132, 50,143,161, 87, 7,
+177, 75,243, 71,244,226,112, 56,204,232,209,163, 83,138,126,174,213,106, 9, 0, 61,176,200,118,177,213,165, 75,151,239,142, 28,
+ 57, 82,125,219,182,109,191,108,223,190, 93, 15, 0, 66,161,208,101,231,206,157, 11,251,247,239,143,254,253,251,207,220,179,103,
+ 79,133, 9, 45,154,165, 13, 0, 32, 16, 10, 4,209,209,209, 68, 80, 80, 80,169, 94,174, 6,134,185,249,251,163, 71, 13, 63, 11,
+ 10,106,164,100,152, 26,188,143, 62,202,155, 60,121,114,134, 74,165, 66, 76, 76, 12, 12, 6, 3,134, 13, 27, 70,181,109,219,214,
+171,127,255,254, 43,114,115,115, 63, 6, 96,176,161, 78, 46,241,246,246, 14,207,201,201,201, 51, 91,117, 90, 14,161, 57,173, 67,
+ 77,130,250, 53,140,124, 30,101,226,117,159,196, 16, 39, 87, 17,234, 32,127, 92, 4, 0, 94, 62,210,237, 28, 12, 20, 11,185, 15,
+252,105, 46,230,185,250,136,218,167,199,106,230,168,227, 74, 21, 75, 31, 75, 36,146, 94,106,181,122, 79, 97,231, 92,179, 91,183,
+110,184,122,245, 42, 0,180, 40, 20, 90,237, 73,146,252,148, 97,152,245, 0, 74, 75,229, 54,161,103,207,158, 31,236,219,183, 79,
+ 6, 0,123,246,236,129,209,104, 68, 64, 64, 0,120, 60, 30,248,124, 62,184, 92,174, 37, 59,136,141,240,116,117,117,129,139, 3,
+ 23, 10, 39,201, 71,223,252,214,147, 83,165,142, 28,105,244,125, 40,217,108,152, 88, 29,120,206, 18,212,234,228,136,176, 15,219,
+147,135,214, 68,125,123,232,215,135, 13,243, 73,116, 71, 44,116,239, 74,207, 78,146,164,224,238,221,187,240,242,242,122,229,125,
+138,162, 0,160,117, 57, 40,103, 62,127,254,188, 89,100,100, 36,218,181,107, 55,179, 94,189,122,157, 35, 34, 34, 60, 50, 51, 51,
+209,174, 93,187, 21, 9, 9, 9, 7,222,246, 57, 89,107,145,255, 21, 83, 23, 89, 68, 73,182, 45, 24, 5,147, 20, 69,145,120,241,
+ 60,198,216,174, 93,135,161,113,113,113,210, 38, 77,154,144, 92, 46, 23,234,179,103,161,189,113, 3, 82,169, 20,189,123,247,230,
+158, 63,127, 94, 46,151,202, 71,189,124,241, 50,151,162, 72,176, 44, 89,166,207,131, 66,161,248,252,219,111,191,245, 8, 12, 12,
+132,201,100,178, 68, 52, 55,153, 76,136,143,143,135, 84, 42,197,144, 33, 67,220,196, 98,241,231, 54,158, 71,213,154, 1,110,183,
+206, 29, 93,219, 96,242,216, 46,146,154,226, 83,144,196,127, 9,233,158,207, 80, 59,233, 56,166,245,106, 34, 57,249,235,204,176,
+234, 94, 78,183,172, 76,172, 54, 67,167,211, 93,140,138,138, 26, 21, 17, 17,193, 0,192,223,127,255,205, 62,124,248,112,204,155,
+140, 66, 25,134, 65,118,118, 54, 24,134,161, 10,247,205,175,255,105,125,144,203,229,107, 58,119,238,252, 73,108,108,172,232,216,
+177, 99,206,113,113,113, 46, 47, 95,190,116,173, 89,179, 38,103,225,194,133, 71,180, 58, 3,101,164, 89,189,137, 54,230, 38,223,
+191,255, 60, 43, 53,245,214,198,141, 27, 53, 4, 65,244,182,241, 55, 62,246,244,244,116,158, 62,125, 58, 8,174,184,113,173,218,
+245, 2, 41,174,200,129,228,242, 29, 52, 26, 45,253,226,197,139,248,233,211,167, 87, 11, 9, 9,241, 66,193,244,154, 77,156, 94,
+ 94, 94, 46, 95,127,253, 53, 56, 2, 89,104,253,144,176,234,124,129, 68, 70,113, 69,178, 38, 77,154,180,125,254,252,121,210,180,
+105,211, 60, 27, 53,106,100, 23,103,163, 70,141, 20,163, 71,143, 54, 9, 69,178,102,254,254, 1,181,235, 7,215,238, 90,179,102,
+205, 94, 28, 14,199,148,158,158, 30, 59,100,200, 16,207,238,221,187,187,219,195,233,230,230,166,152, 54,109,154,201,215, 47,160,
+ 83,167, 15, 62,108,202, 19,201, 28, 56,124,137, 99,126,190,150,126,244,232, 81,236,140, 25, 51, 60, 67, 67, 67,221,108,225,204,
+207,207,231,186,184,184,160,110,221,186,168, 19, 16,128,156,156, 28,236,219,183, 15,155, 54,109,194,250,245,235,177, 99,199, 14,
+ 52,108,249, 33,100, 50, 25,146,146,146,160, 82,169,184,255,118,133,162, 87, 7,177, 43,245,225, 61,198,141, 27,151, 52,122,244,
+232, 20,145, 72,196, 20,221,156,156,156,232, 65,131, 6,165, 14,249,102, 89, 15,243,212, 98, 25,150,172,187, 71,143, 30,125,182,
+109,219, 54,212,169, 83, 7,157, 58,117,226, 3,192,231,159,127,206,239,223,191, 63,118,237,218,133, 61,123,246, 60, 8, 12, 12,
+188, 4,160,167, 45,229, 28, 50,100, 72,203,126,253,250, 93,232,215,175,223,237, 1, 3, 6,172, 27, 51,102,204, 43, 61, 87,114,
+ 82,194, 77,189, 94,143,144,176, 70,226,185, 27,174, 13, 42,139,239, 33,176,109, 93,116,244,166, 31,239,223,143,157, 89,167,142,
+163,223,203,151, 78,155,151, 44,113, 49, 39,233, 54, 26,141,136,143,143,135, 66,161,192,160, 65,131, 92, 4, 2,193, 16, 27,138,
+185,180,103,207,158,195,227,226,226,164,191,255,254,187,231,237,219,183,189,146,147,147, 61,207,156, 62,225, 58,229,171,207,101,
+ 14, 82, 62, 63, 41,157, 37, 0,224,101, 18, 36,209, 47,208,146,101,225,104, 61,157, 88, 46,120, 66, 36,242,193,202,234, 45, 29,
+ 31,127,189, 43,116,192,180,195, 97, 46, 10, 79,193,244, 82,190, 81,127,241,226,197,187, 15, 29, 58, 52,176,101,203,150,123, 1,
+136,138, 57, 70,216,176, 97,195,125,187,118,237, 26,222,170, 85,171,139, 0,234,150, 56,138,244,241,233,253,215, 95,127, 57,155,
+247, 93, 92, 92, 32, 20, 10, 95, 19, 89, 60, 30, 15, 36, 73,218,125,122,243,119, 14,228, 56,213,214, 33, 42,235, 40,118, 45,190,
+139,197, 31, 61, 98, 22, 52,127,169, 91, 53, 36, 26, 39,119,221, 69, 26,238,162,203,103,213, 49,112, 70, 72, 71, 49,141,121,239,
+ 82, 7,158,158,158,254,105,235,214,173,119,119,233,210, 69, 23, 25, 25,137,244,244,116,120,123, 91,198,218, 41,229,160,116, 18,
+139,197,240,245,245, 69, 96, 96,224,192,243,231,207,123, 24,141, 70,188,124,249, 18,105,105,105,183,254,141,115,178,214, 34,239,
+ 25,138, 58,195, 31,121, 77,104, 21,230, 22, 58, 7, 0, 44, 65,168,239, 70, 69,113, 41, 62,127,240, 31,219,183, 11,120, 60, 30,
+ 98, 99, 99,241,224,193, 3,228,159, 57, 3,205,229,203, 72, 77, 77, 69, 94, 94, 30,220,221,221,177,118,195, 6,137,158,102, 71,
+ 60,122,252,152, 98, 73,214,218,223,160,216, 37,158, 2,129,160, 99,159, 62,125, 74, 20,100, 73, 73, 73,232,210,165, 11,151,162,
+168,226, 86, 53, 20,229, 36,188, 92,137, 67,103,246,206,245,244,228, 63, 0,158, 78, 6,114,111, 1,172, 14, 48,233,129,196,123,
+192,145,217,240,203,139, 38, 78,204, 29,234,225, 45,230, 28, 42, 70, 41,151,181, 20, 53, 32, 40, 40,104,253,224,193,131, 73, 0,
+104,223,190, 61, 17, 20, 20,180, 14, 64, 64, 41,223, 57, 93, 70, 39,121, 53, 43, 43, 11,253,251,247,119,174, 94,189,250,233,254,
+253,251, 59,155,223, 47, 47,167,217,154, 92,167, 78,157, 76,161, 80,184, 3,176,169,129,181,112, 58, 58, 58,174,234,210,165, 75,
+223,237,219,183,243, 0,224,220,185,115, 56,116,232, 16,238,223,191,143, 39, 79,158, 48, 97, 97, 97,174,203,214,239, 94,179,106,
+245,150,165,189, 90,132,120,181,109, 28, 86, 91,154,151,149,231,238,238,222,130,101,217, 0, 27,203,217,101,246,236,217, 15, 30,
+ 62,139,117, 32, 57, 92, 14,143,203, 17,200,229, 18,119,133, 76,226,227, 36, 22,122, 11, 72, 66,154,159,159,159,178, 99,199, 14,
+ 6, 64, 23, 91, 57,231,206,157,251,226,225,211, 88, 71,130,228,112,184, 28, 46, 79, 42, 21, 59,126,212,169, 93, 35, 0,224,129,
+229,169, 84,170,212, 77,155, 54, 25,236,225,252,225,135, 31,162,148,217,121, 10, 14,151,203,229,112, 40,203,181,148,136, 68,174,
+ 98,129,128,175,211,233, 18,151, 47, 95,174,177,135,115,246,236,217, 15, 30, 61,139,115, 34, 9,130, 34, 8,146, 35,151, 73,156,
+157, 29,196,174,174, 82,145,139,152, 67,241, 85, 42, 85,226,214,173, 91,109,226, 52, 24, 12,188,212,212, 84, 60,124,248, 16,190,
+141, 26,225,212,169, 83,168, 82,165, 10,250,247,239,143, 79, 62,249, 4, 34,145, 8,237,155,213,195,244,233,211,241,236,217, 51,
+ 24, 12, 6, 65,113,156,102, 63,169,162,240,242,242,138, 44,171,242, 20,249,238, 43,229, 12,245, 0,187, 82, 31,222,195, 90, 96,
+149,196,239,228,228, 68, 23,103,237, 42,202,217,165, 75,151,239,206,156, 57, 83,125,235,214,173, 61,134, 12, 25,114,113,235,214,
+173,104,218,180, 41, 30, 62,124,136,106,213,170, 97,243,230,205,248,228,147, 79, 46,174, 88,177,162, 71,100,100,100,136,191,191,
+255,183,101,113, 14, 24, 48, 96,124,104,104,232,217,148,148,148,102, 74,165,178,238,190,125,251, 70,244,238,221,251,197,192,129,
+ 3, 59, 88, 4,163,209,184,253,200,193,189,232,218,163, 15,106, 5,215, 93, 51,236,219,109,245,202,120, 54,217,251,192,186, 77,
+201,201,233,219,181,218,252,254, 92,174, 88,124,237,154,211,158,213,171, 93,172,151,124, 39, 38, 38,162,123,247,238, 92, 30,143,
+215,170,140,114, 46,238,213,171, 87,255,125,251,246, 41,204, 86,157,203,151, 47,227,222,189,123,136,137,137, 65,118,118, 54, 58,
+140,201,195,184,133, 5,220,227, 22,178,248,240,115, 86, 82,206, 54,196, 2, 81, 21,120, 56,203, 57,151, 70, 44,175,245,121,248,
+154, 58, 28,169, 19, 23,127,124,243, 4, 25, 47,117,123, 74,224, 36,154, 53,107,182,173, 95,191,126,132, 94,175,135, 94,175,215,
+ 3, 40, 54,170,175,183,183,183,176,126,253,250, 24, 51,102, 12, 41,151,203, 87,148, 84, 78,181, 90,173, 59,122,244, 40,134, 12,
+ 25,130, 47,191,252, 18, 53,106,212,128, 66,161, 0,151,203,197,150,109,127,186,124, 50, 98,108,205, 6, 45, 91,135,212,105,208,
+180,126,174,142,106,196, 21, 41, 70,151, 96, 13, 41,246,220,243,220, 34, 17,245,242, 10, 86,246, 72, 96,174,111,206,207,155,242,
+233, 79,209,143, 34, 82,239,127,219,111, 93, 20,123,165,121,198,182,137,113, 72, 53, 62, 68,171,254,126,240, 15, 85, 76,146,248,
+ 34,168,188,215,211, 70,216,197, 89,175, 94,189,150,215,175, 95, 23,180,110,221, 26,177,177,177,224,114, 45,227, 41,250, 77,202,
+ 57,123,246,108,129, 86,171,197,157, 59,119, 48,116,232,208, 68,131,193, 48,233, 77,202,105,143, 69,203,172, 69,222, 51,172, 43,
+178, 37,151,100,209,154, 13, 0, 70, 6,135, 6, 15, 29,145,127,248,240, 97, 49,159,207, 71,108,108, 44,146,147,147,177,101,211,
+ 38,186,189,155, 91,110, 39,111,111,213,150, 77,155, 88,189, 94, 15,150,101, 17, 20, 20,132,190,125,251,138, 62,238, 63, 48,141,
+ 80,105,254,180, 97,154,199,211, 60,191, 62, 98,196,136,215, 62,159, 50,101, 10,228,114, 57, 8,130,240,176,225,228,250, 77,152,
+221,203, 71,225,239,152,202,166,108, 81,130, 18, 2, 28, 25,192,145, 3, 66, 7, 64, 32, 3,248, 98,232, 34,207, 42, 73,182, 83,
+ 76,159, 86, 35,189, 1,216, 51,213, 3, 47, 47,175,153,103,207,158,117,141,140,140,100, 85, 42, 21,146,147,147,217, 5, 11, 22,
+184,122,121,121,205, 44,239, 29, 73, 74, 74,154,219,181,107,215,212,161, 67,135, 58, 28, 63,126,220,119,232,208,161, 14, 93,187,
+118, 77, 77, 74, 74,154,251, 38,119,154,199,227, 81,247,239,223,119,154, 55,111,222, 39, 0,110, 6, 7, 7,103,122,123,123,223,
+ 68,129,211,100,169,144,201,100, 22,145,101,182,174,113, 56, 28,112,185, 92,120,121,121,233,149, 74, 37,221,170, 65,128, 40,200,
+129, 52,122, 9,120, 34, 39,145,208, 71, 38,119,104,146,153,153,121,151, 32,136,231, 54, 78,241,133, 54,110,220,152, 75,179, 92,
+102,220,224,246, 94,159, 15,111,231,246,219,188,209, 85,150,207, 13,247, 94, 60,107, 84,208,220,169,131,218,145, 12,163,173, 86,
+173,154,135,217,161,221, 6,243,121, 88,195,134, 13, 57, 12,184,120,248, 56, 38, 53, 54, 33, 49,247,131,182,205, 44,150,203, 58,
+161, 97,157, 92, 93, 93, 91, 7, 5, 5, 53, 36, 8,194,166, 37,201, 34,145, 40,180, 86,173, 90, 28,146,226, 18,206, 10,153,175,
+ 76, 42,114,183, 76,161, 56, 58, 54,119,114,117,237, 71,178,108,142,167,167,167,155, 72, 36, 10,181,227,220, 57, 12,120,112,119,
+115,114,112,117,113,148,118,106,215,162, 70,179,230,205,106,214,107,210,180, 89,112,131,134, 31, 19, 38,147, 42, 32, 32,192,205,
+236, 36, 95,134,165, 85,184,125,251,118,204,155, 55, 15,245,253,252,224,237,237, 13, 55, 55, 55, 92,190,124, 25,215,175, 95,135,
+ 66,161, 64, 90, 90, 26,150, 44, 89,130,253,251,247,195, 96, 48,200,236,173, 79,182,136,173,210, 96, 50,153,200,162, 2,171, 36,
+126,145, 72,196,152,157,228, 75,194,209,163, 71,183,153, 45, 89, 19, 39, 78,108,185,108,217,178,139,209,209,209,144, 74,165,184,
+126,253, 58, 70,140, 24,113,113,197,138, 21, 45,199,142, 29,139, 77,155, 54,225,197,139, 23, 27, 74,227, 27, 48, 96,192,172, 81,
+163, 70, 45,143,136,136, 32,221,221,221,161, 80, 40,208,171, 87, 47,108,216,176,129, 99, 50,153, 54,246,235,215,239,118,191,126,
+253,110,211,241, 39,191,219,189,126,193,229,168,187,183, 49,126,194,215,124,189,201, 56,205,134,211,103, 53, 82,105,174,169,117,
+107,229, 46,163, 49,127, 0,143, 39,118,184,125,219,233,208,198,141, 22,177, 53,125,250,116, 56, 56, 56, 0, 5, 14,204, 40,197,
+170, 19,190,127,255,126, 75,123,232,236,236, 12, 62,159, 15, 30,143, 7, 46,151, 11,138,162,112,122,141, 4,171,167, 23,232,139,
+213,211, 9,156, 92, 69,168,223,228,222,137,189, 81, 87,225,206,191,253,217,230,224,144,186, 29,156,113,121,103, 10, 22,116,141,
+ 76,184,190, 43,125,178, 54, 13, 63,151,240,181, 6, 83,166, 76,169,147,150,150,134, 27, 55,110,224,198,141, 27, 37, 89,128,180,
+ 7, 15, 30, 92,148,151,151, 7,127,127,127,244,236,217,179, 53,128, 70, 37, 60, 55,104,216,176, 33,186,119,239,142,118,237,218,
+161,126,253,250,208, 27, 76,220,126,131,195,107,221,127,145,238,189, 96,201, 2,241,217,191,247,145, 23, 47, 70, 80,219,246,158,
+116,104,214,238,195,229, 60,153,231, 85,136,156, 61,109, 57,207,124, 58, 19,161,158, 31, 97,221,153, 9,228,202,115, 67,165, 91,
+ 14,173, 12,144,201,100,196,173, 27,183,141, 91,126,221, 21, 87, 87,210, 51,237,234,206, 76,228, 19, 41,232, 48,220,159,100,128,
+190,239, 74,207, 46, 20, 10,151, 69, 68, 68,120, 24, 12, 6, 68, 69, 69,225,203, 47,191,212,190, 33,165,197, 0,226,235,235,139,
+115,231,206, 97,208,160, 65,218,212,212,212, 43,255,214, 57, 89,107,145,255, 21,112,172, 20,164, 5,241,241,241,217, 10,133,194,
+187, 86,173, 90,164, 94,175, 47,152,146,216,179,135, 94,191,113,227, 17,173, 86, 59, 1, 0,111,213,111,191,173,241,246,241,105,
+ 55,120,200, 16,194,104, 52,162,107,215,174,252,195,135, 15, 59, 63, 79, 75,203,181,161,195,121,229,247,134, 13, 27,134,101,203,
+150, 1, 0,190,248,226, 11,139,105,157,176,193, 97, 73,234,128, 46,157,186, 53,148,199, 75, 86,202, 13,205,141,121, 85,159,201,
+174, 74,242, 68, 13, 65,242, 57, 16, 82, 96, 12, 70,211,147,180,222, 55,159, 61,169, 93, 71,164,204,172,214, 49,184, 13,214,159,
+218,218, 37,159,214,238,178,185,193, 17,139, 27, 75,165, 82,220,188,121, 83,217,176, 97,195,108,150,101, 29,230,206,157,235, 34,
+ 22,139, 27,191,193,181,127,249,248,241,227,214, 45, 90,180,248,156, 36,201,142, 12,195,156, 78, 77, 77, 93, 5,224,165,141,223,
+ 31, 7,224, 7, 0,150,145,165, 94,175, 7, 73,146, 96, 89, 22, 3, 6, 12,192,244,233,211,235,220,187,119, 15,103,207,158,117,
+234,216,177,227, 85, 0,217, 0, 70, 2, 40,214,106,166, 82,169, 52,215,175, 95, 23,157, 61,123, 22, 12,195,192,201,201, 9,114,
+185, 28, 2,129, 0,189,122,245,146, 78,155, 54,173,195,137, 19, 39,210, 84, 85,171, 80,194,228, 68,181, 64, 42,149,193,195,187,
+213,216,129,159, 70,179, 44,187,223,142,198,129, 47,226,152,180, 4,173, 35, 23,127,191,130, 20,243,120,132,144,199,129,128,201,
+199,119,139,230, 19, 60,150,230,192,206,249,121, 30,143,199,147, 9,160,167,248,148, 81, 76,160, 66,162,196, 81, 20,197, 23,242,
+ 74,246,199,224,146, 36, 73,146, 36, 15,128,205, 73,251, 4, 2, 1, 79, 38, 96, 75,228, 20, 81, 4, 69, 16, 4, 31, 37,172, 68,
+ 11,245, 0,107,182, 34,241, 39, 60,215, 89,139,226, 86,173, 90,225,200,217,155,216,115,232, 52, 50, 98,239, 98,198, 55, 19,209,
+168, 81, 35, 28, 62,124,184,212, 50,153,125,180, 74,178, 46,123,121,121, 69, 38, 37, 37, 53, 40,233,187,165, 77, 25,150, 96,165,
+122,157,255,123, 7,132,205,142, 70, 25, 62, 90, 61, 91,181,106, 53,126,251,246,237,250,206,157, 59,243, 7, 12, 24,128,186,117,
+235,182, 28, 62,124, 56, 0,160, 99,199,142, 88,182,108, 89,203,225,195,135,227,207, 63,255,196,190,125,251,116,109,219,182,253,
+230,220,185,115,137, 40, 88,209,249, 26, 24,134,233,190,118,237,218,162,150, 66,152, 76, 38, 24,141, 70, 79,147,201,228, 89,216,
+ 22, 97,249,242, 21, 25, 39, 79, 28,198, 55,223,206,134,155,171, 71,168,141,117,136, 24,246,245,215, 25,155,151, 44,193,146, 63,
+255,196,215,213,170,137,183, 62,120,128,147, 90, 45,118,157, 61,155, 81,248, 59,101,250,102,170,213,106,205,209,163, 71,229,187,
+118,237,130,163,163, 35,106,212,168, 1, 39, 39, 39,112,185, 92,144,148, 8, 20, 79,129, 90,193,141, 1, 92, 7, 0, 84,243,130,
+ 58,200, 31, 23, 9, 2,217, 44,105,191, 79,145,160, 10,170,186,248, 8, 35,198,111,170,235, 40,119,227,225,248,170, 56,156, 88,
+ 25,191, 95,155,129, 95, 96,194, 35,148,236,243,213,208,223,223, 31,105,105,105, 56,122,244,168, 26, 40, 81,144,129, 97,152, 69,
+191,253,246,219,148,111,191,253, 86, 16, 20, 20, 4, 0,161, 0,110, 20,119,172, 68, 34,129,183,183,183, 69, 88, 14, 24, 58, 54,
+ 96,204,228,177,162,222, 31,182, 3,135,227,130,108,181, 17,153,185, 70, 40, 92,164,248,102,114, 63,225,233,134,222,141,214,174,
+248,227,160, 70,131, 70,192,235,237, 1, 65,224,198,181,187, 23,235, 9,131, 0,130, 4,226,201,191, 65,128, 64, 30, 97, 4, 65,
+ 81, 44, 77,211,136,139,139, 3,203,178, 24,212,123, 68,124,248,130,125,110, 45, 7,169,224, 91,203, 11, 4,139, 54,239,138, 16,
+112,118,118, 14,205,204,204,196,203,151, 47, 49,116,232,208,196,140,140,140, 83,106,181,122, 68, 82, 82, 18, 0, 40,203, 65,105,
+ 17,243,161,161,161,104,220,184, 49,250,247,239, 47,204,207,207,239, 23, 16, 16,224,157,158,158,222,252,109,158, 79, 81, 45,242,
+ 63, 37,180,138,125,208,140,198, 90,186, 53,107,160, 62,125, 26,252,147, 39,177,203,203, 43, 79,171,213,126, 5, 32,190,240,193,
+159,184,105,243,230, 75, 61,174, 92,145,235,163,163, 17,112,239, 30,184,142,142,161,246, 22, 96,227,198,141, 80,169, 84,200,201,
+201, 1, 0,172, 92,185, 18, 42,149, 10, 38, 27, 19,206,114,120,104,233,225, 86, 13, 41,120, 2,134, 67, 74, 99,106,229, 55,149,
+106,101, 73,222,113,238,234, 28,210, 27,209,177, 77, 36,154, 76,125, 83,130,210, 67,155,145, 15,239, 22, 53,192, 1,167,165, 61,
+101, 52,207,251,115, 56, 28,229,227,199,143,187,215,172, 89,243, 16, 0,151,242,248, 3, 20,193,211,212,212,212, 9,229,249, 34,
+ 69, 81, 63,188,120,241,194,109,195,134, 13,159,207,157, 59,151,181, 22, 90,230,255, 57, 28, 14, 88,150,133,131,131, 3,184, 92,
+174,251,229,203,151,221,155, 52,105,242, 43,195, 48,161, 37,156, 39, 91,183,110, 93,188,120,241, 2, 28, 14, 7, 14, 14, 14, 96,
+ 76, 6,204,158, 60, 22, 52, 37,224, 76,157, 58, 53,180, 79,159, 62, 81, 27, 54,108, 48,202,155,181,104,158,153,153,121,127,252,
+160,193, 81, 7, 14, 28,208, 23,134,120, 40,123,136,207,178,183,159, 60,121, 66,249,120,185, 83,172, 41,159,145,240, 0,225,221,
+229, 44, 95,234, 1, 33,135, 98,121, 4, 9,129, 80,228,240, 50, 33, 33,147, 97,152,135,182,112, 50, 12,115,235,197,139, 23, 34,
+119, 55,103, 78,190, 70,159, 39,226,178,252,152, 91, 55,159, 87, 13,107, 24, 0, 0,218, 91,215,207, 9,106,213, 22,197,164,166,
+ 75,170, 85,171,102, 19,167, 70,163,185,157,152,152, 72,185,187,187,115, 98,227, 19, 14, 58, 74, 37,174,114, 71,199,166, 0, 96,
+200,205,185, 78,234,116,233, 20,151,227,158,158,153,169,212,104, 52, 47,108, 61,247,103,207,158,113, 60, 61,221,168,227, 39,207,
+ 28,114, 23, 11,220,100,124,142, 92, 64, 16,132,152, 34, 84, 60, 19,147, 33, 20,139,221, 94, 38, 36, 40, 89,150, 45,209, 66,248,
+ 99,246,224,222, 5,247,107,246,159, 86,220,184,123,247, 46,142, 93,124, 8, 9,171, 7,161,205,193,201, 77,191, 99,208,212,111,
+223,216,239,175, 44,177, 85, 46,107,214,218,218,145, 69,248,145, 92,134, 35,252,160, 65,131,102,111,219,182,205,226,128,242,240,
+225, 67,180,111,223,222, 60,205,129, 78,157, 58,161, 73,147, 38,120,248,240, 33, 2, 3, 3,113,246,236, 89, 1, 69, 81,130,193,
+131, 7, 47,248,227,143, 63,142,150,105,247, 95,183, 14, 35, 70,140, 40,206,177,250, 25, 0, 45,161, 8,202,155,254,227, 22, 23,
+101,102, 6,210,210, 83,110,219,122, 29, 8,130,192,176,175,191,206, 88,171,215, 99,251,181,107, 24, 34,145,136, 55, 63,125,138,
+174, 77,154,160, 94,251,246, 25,182,180,117,102,171,142, 86,171, 5,151,203,133, 92, 46,135,179,179, 51,120, 60, 30, 40,174, 23,
+ 56,252, 16,144, 60, 30,194, 90,133, 96,201, 87,146,252,161, 31, 97, 5, 65, 32, 91,192,199, 45,158,184, 68, 95, 29, 66, 82, 5,
+189, 88, 22,170,252,120,252,109, 22, 36, 14,126,112,224,202,184, 39, 71,253, 26,228, 40,119,227,225,216,138, 88,156,252, 53, 97,
+175, 54, 5, 51, 10,175, 5, 83,202, 64,162,158,163,163, 35,226,227,227, 17, 23, 23,247, 0,165, 59,248,231, 63,124,248,240,185,
+ 64, 32,168,227,234,234, 10, 0,254, 37, 13,204, 25,134,177,248, 97,109,221,190,219, 37,180,117,128,240,131,150,117,176,229,208,
+124,124,214,111, 5,184, 20, 1,154, 54,224,151,101,221, 64,235,242,208,175, 71, 56,209,166, 99, 96,200,233, 67,250, 81, 70, 77,
+214,239,175, 13, 4, 56,152,247,211, 39,151, 29, 5, 82,178, 30, 24,194,209,197,197, 77,194,227,241,224, 44,247,212,127, 59,102,
+ 82, 50,203,178,150,231,134, 75,241,140,100,174,147, 38, 51, 37, 79,228,200,213, 0, 44, 89,181,124,209,108, 42, 30, 9, 9, 9,
+ 19, 90,183,110,189, 32, 55, 55, 55, 75,173, 86, 15, 2, 0,127,127,127, 63,146, 36, 5, 0, 74,155, 29,241, 67,241, 97, 33,120,
+247,238,221,131, 76, 38, 67, 98, 98,162,181,241, 5, 12,195,188, 51,139, 0,222, 81,132, 1,184, 5,192, 19, 64, 87, 88,133,119,
+ 32, 11, 77,117,109, 14, 31, 62,204, 30, 62,124,184,141,165,243, 98, 89,198,164, 84,130,213, 21, 92, 91, 46,151,203, 2,176, 94,
+209, 36,118,116,116, 36,184, 62, 62, 32, 4, 5,174, 31,108, 5, 46,125, 53, 26,109, 11, 45,195,208,160, 64, 24,192, 90, 13, 90,
+212, 66, 2,243, 93, 58, 96, 2,127, 38, 82,248,142,214, 61, 29, 96, 98, 65,131,161,236, 44, 14,171, 86,171, 97, 50,153, 20,213,
+171, 87, 63, 98, 50,153, 20,133,157, 27,251, 95,221, 81,154,166,159, 83, 20,133,207, 63,255, 28,102,235,143, 94,175, 71, 74, 74,
+ 10,116, 58, 29,244,122, 61, 94,188,120,129,156,156, 28,232,245,122,220,191,127, 31,254,254,254,160, 40,202,179,148,198,156,101,
+ 89, 22,190,190,190,168, 90,181, 42, 40,130,197,250,197,179,240,221,151, 99,241,137, 63,131,141,171,126, 65,219,182,109,107, 87,
+171, 86,173, 25,135,195,161, 61, 60, 60,120,251,246,237, 59, 72,211,116, 47,216,222,242, 28,157, 62,125,122,213,224,224, 96, 55,
+ 71,185,204, 40,224, 83,224, 27,213,172, 64,151,201,114,242, 51,224,235,235,103,130, 72, 28, 56,100,200, 16,186, 36, 43, 68,113,
+156, 95,125,245,149,103, 80, 80,144,131,194, 81,166,230,115,169, 52, 30,216,140,156,187, 55,174, 2, 0,223,213, 77, 11,161,184,
+206,208,161, 67, 77,246,112,206,156, 57,211,223,213,213,213,145, 4,155, 75, 27, 12,255,204,183,235,244,153, 4,151,171, 1,143,
+223,240,139, 47,190, 32,236,225,156, 50,101, 74,181, 58,117,234, 56, 58,202, 37,121, 28, 46,149,204, 99,152,100, 33,152, 20,174,
+222,144, 37,116,117,201,135, 88, 26, 54,100,200,144, 18, 57,205,214,172,105,211,166,197, 23, 17,222, 80, 42,149,208,166, 68,129,
+151, 24,141, 16, 41, 23,141, 92, 21, 16, 8, 4,150,165,239, 37, 85,215,146,124,180,138, 19, 91,182,126,183,225,156, 82,166, 0,
+215,214,142, 44, 26, 55, 43, 41, 41, 9,158,158,158,165, 62, 79,127,252,241,199,183,237,218,181, 75,235,212,169,147,254,200,145,
+ 35, 32, 8, 2,103,207,158, 69, 98, 98, 34, 58,117,234, 4,150,101,205,171,218,112,251,246,109,116,236,216, 81,223,186,117,235,
+196,194,248, 90,101, 98,196,136, 17, 48, 26,141,200,203,203,131, 82,169,196,225,195,135, 17, 18, 18,194,138,197,226, 62,148,239,
+135,243,251,141,250,182,121,221,250,161,248,117,197, 18, 61,159,195,253,209,158,231,149, 32, 8, 12,253,234,171,140,156,176, 48,
+229, 86,181, 58,127,152, 92, 46,174, 30, 31,239,116,243,196, 9, 23,131,193, 96, 19,135,217,170,227,227,227, 99, 17, 89, 60, 30,
+ 15, 28,190, 43, 40, 73, 61,240,157, 59, 65,236,209, 7,127,223, 18,232, 28, 36,216, 47,147,226,184,196,177,228,208, 14, 98, 95,
+204,111, 62,192,115, 95,139, 79, 60,207,136,171, 96, 67, 97,127, 64,178, 28, 98,223,240, 95,106, 86,119,173, 42,194,149,221, 41,
+ 56,249,107,194, 95,218, 20,204, 2,240,180,172,231,220, 96, 48,104,105,154, 6, 73,146,224,112, 56,214, 62,129,151,254,250,235,
+ 47,220,188,121, 19,176, 10,219,147,155,155, 75, 83, 20, 5,161, 80, 8, 0,210, 82,218, 59,112,185, 92,112,185, 92,156,187,122,
+222,249,147,143,187, 17,151,239,156, 66,139,144,129,200,204, 51, 32, 53,199,128,236,124, 32,184,209, 12,212,237,184, 31,119, 95,
+228, 34,180,126, 93,138,226, 75,134, 22,199,167,125,137,120,117, 28,250,102, 62, 96,106,232, 19, 68,199,174, 28,120,248,224,252,
+158,187,247,119,254,118,232,105,243, 70,173,213,133,198, 4,228,229,229,177, 4, 65,176,147, 70,127,251,124,235,136, 44,122,197,
+160,187, 12, 71, 39,124,246, 47, 54,245,126,174,174,174,151,157,157,157,207, 22,138, 35, 63,153, 76,118,201,211,211, 51, 26, 5,
+ 11, 61, 14, 36, 39, 39, 7,169,213,234, 22, 40, 88,156, 21,155,153,153,217,190,208,242, 20, 91,138, 37,108,131, 74,165,154, 72,
+211,116,143,194,237, 35,154,166, 67,159, 60,121, 82, 39, 52, 52,244, 65, 64, 64,192,237,128,128,128, 99, 1, 1, 1, 7, 3, 2,
+ 2, 14,182,107,215,110,153, 57,220,195, 91,158, 54,124, 77,139,188,103, 66, 11,133, 34,107, 93,225, 43, 44, 66, 11,192,185,162,
+ 14,104, 38,129,224,190,105,252,120, 56, 30, 60, 8,238,147, 39, 24, 62,116,168, 92, 44, 22,175, 64, 65,140,166, 22, 82,169,244,
+215, 89,179,102,201, 92, 22, 46,132,215,249,243,136, 57,124, 24, 70, 46,247, 70,121, 74,167,209,104,192,225,112, 44,150, 24,137,
+ 68, 2,154,166, 81,156,201,247,181, 7,208,132, 43,137,169,209,224,163, 42, 24,176,121,199, 85,173,175, 13,124, 62,195,237,176,
+202, 63,240,169,154, 23, 56,199,181,169,219, 10,191,150,215,212, 4, 39,143,239, 40, 68, 92, 92, 60,104, 48,118,205, 55,107,181,
+218, 28,181, 90,141,208,208, 80,231,155, 55,111, 86, 15, 9, 9,113, 42,124,255,250, 27,222,152,102, 94, 94, 94,187,189,189,189,
+ 95,122,121,121,237, 6,208,204,142,239,110,184,112,225, 2, 40,138,194,172, 89,179,144,155,155, 11,131,193,128,204,204, 76,196,
+197,197, 65,175,215, 35, 33, 33, 1,143, 30, 61,130, 94,175, 71, 76, 76, 12,116,186,178, 7, 36, 12,195, 64, 46,151, 67,171,201,
+195,234,249,223, 97,230,180,201,200,121, 22,137,132,164, 84, 56, 58, 72, 48, 97,194, 4, 74,161, 80, 48, 12,195, 84,165,105,186,
+ 35,195, 48,107,108,185, 79, 86,245,237,162,175,175,111,221,197,139, 23,215,249,110,254, 26,158,156,147,199, 10,100, 66,134, 47,
+ 19,176,252,218, 77, 49, 98,198, 10,222,242,165, 63, 63,190,114,229, 74, 34,108, 11,222, 73, 2,184, 24, 22, 22, 86, 51, 49, 49,
+ 49, 36, 40, 40,168,150,139, 95, 53,129,192,211, 59,155,231, 89, 69,197,234,180,215, 8,239, 42,173,214,172, 89, 19,117,233,210,
+165, 36,123, 56, 37, 18, 73,237, 45, 91,182,212,117,119,119,175,203, 21,137,132,249, 57, 57,187, 76,249,234,221,148,163, 66, 72,
+202, 29, 63,218,191,127,127,228,222,189,123, 83,236,225, 12, 12, 12, 12,154, 63,127,126,112,189,122,245,130, 61,252,171, 11, 68,
+222,190,153, 66, 31,191, 76, 81,189, 16, 1,124,170,118,254,245,215, 95,111, 95,185,114,197, 38, 78,138,162, 76, 36, 73,130,203,
+229, 66, 44, 22,227,248,241,227, 24, 63,106, 32,124,189,157, 81, 43, 40, 8, 29, 62,155,136,189,123,247, 90,124,120, 40,138, 42,
+177, 71,223,188,112,194,161, 48, 79, 34, 18,107,107, 71, 98,109,237,200, 48, 79, 34,178, 68,177, 85,248,121,113,199,216,212, 26,
+149, 48,221,104,131,216, 58,122,238,220,185, 69,195,134, 13,227,119,233,210, 5,215,174, 93,195,136, 17, 35, 46,238,219,183, 15,
+ 0,112,237,218, 53, 76,154, 52,233,226,153, 51,103, 48,118,236, 88,180,111,223,158,127,225,194,133, 95, 97, 67,236, 31,147,201,
+132,141, 27, 55,194,100, 50, 65, 42,149,194,201,201, 9,221,186,117, 67, 84, 84,212,216, 77,155, 54, 69, 83, 92,238,167, 93,123,
+124,140, 35, 7,247,225,209,253,168,177,155, 23, 12,182, 59, 40, 48, 73,146,232, 50,116,104, 70, 70,112,176,114,179, 74,149, 63,
+ 82,161, 16, 7,165,164, 56,253,189,123,183,139, 13, 66,141,160,105,218, 34,174,204,162,195,188,113,248,174,224, 72,234,130, 35,
+107,132,187, 79,121, 70, 94, 19,220,226, 55,194,195,210,226,103,113,249,228,136, 62,223,249,163,207,119,254,232, 57,181,218,112,
+113, 21,172,151, 84,193,184, 46, 95, 86,109, 23,208,200, 1,170, 52, 3, 14,255, 18, 19,171,205,196, 66, 0,143,108,121,206, 25,
+134,121,144,152,152, 8, 62,159,143, 42, 85,170,212, 4, 96,246, 11,220, 48,122,244,232, 47,230,204,153, 51, 25,192,156,194,247,
+164,237,218,181, 11,206,203,203,195,147, 39, 79, 0,224,102, 41,214, 96,203, 42, 67,165, 42, 70, 80,205,171, 30, 66,106,143,129,
+ 66, 81, 31,137, 74, 61,146,148,122,172, 95,221, 11,145, 23,230,225,230,201, 33,136, 77, 73,129,200,163, 55,104,147,174,174, 13,
+131,122,175, 59,119,238, 16, 23, 46, 92, 32, 24,134,129,209,104,100,115, 85, 42,246,214,197,139,208, 68, 68, 16,114,185,156,104,
+217,184,117,222,230,121, 71,174,239, 95,117,241,166, 33,223,238,129,250,155, 96,230,243,231,207,155,237,222,189,187, 29,128,153,
+245,234,213,187, 18, 23, 23,215,252,252,249,243,181,124,124,124, 86,148,151,212, 28, 22, 34, 38, 38,230,149,173, 48, 44,132,190,
+ 80, 52,116, 41, 20,115, 61, 1, 76,194, 27,172,178,183, 3,231,222, 99,103,248, 35, 40,178,218,176,168,208,178, 14, 20,134, 0,
+133, 66,102, 52, 26, 18, 78,157, 58,101, 32, 73, 18, 98,177, 24,195, 70,140, 32, 87,255,246, 91,171,129,205,154,157, 13,255,224,
+131, 99,103,207,156, 9,107,210,164, 9, 88,150, 5, 73,146,248,243,207, 63, 53, 90,173, 38,211,215,215,215,209,150, 70,195,250,
+ 1, 82,169, 84, 22,161,149,147,147, 3,119,119,119,155,167, 14,213, 42,156, 62,115, 60, 50,139,165, 63,139,235,242,116,169,225,
+199,148, 94, 77,178, 25,154,147, 67, 27,145,163, 97,145,171, 5,231, 26,233,212,100, 88, 96,111,195,139,142, 77, 30, 69, 68, 95,
+206,212,210, 90,187, 86, 75,164,165,165,125,215,175, 95,191, 76, 79, 79, 79, 66, 46,151,195,219,219,155,236,217,179,103, 70,124,
+124,252,156,242,222, 17,103,103,231, 79,218,181,107,119, 40, 49, 49,177,111, 68, 68, 68,213,243,231,207,247,109,215,174,221, 33,
+103,103,231, 79,108,164,216,245,237,183,223,170,249,124, 62,154, 54,109,138,220,220, 92, 20,174,242, 41,117,179,101,138,148,199,
+227, 97,237,226, 31, 48,115,218,100, 40,163,175,225,238,197, 83, 56,151, 66, 96,198,252,159,193,227,241,202, 21,235,171,134,171,
+184, 94, 61, 47,217,195, 73, 35, 6, 36, 77,159, 54, 77,118,251,246,109,238, 23, 95, 78, 98, 99,146,149,224,119, 89, 66,161,205,
+119,228, 29,181, 43,186,126,212, 1,179,102,126, 93,175, 48,104,103,169,168,237, 42,174, 87,215, 75,246,224,235,240,129,207,191,
+252,242, 75,209,143, 63,254,168,109,214,172,153, 38, 53, 53, 85, 36, 81, 56, 5,113, 28, 28,235,198, 36,167, 72,155, 53,107,246,
+226,179,207, 62,203,182,151,115,198,140, 25,226, 19, 39, 78,112,250,245,235,103,202,202,202,146,114, 69,162, 80, 66, 32,108,156,
+158,149,229,208,183, 95,191,167,125,251,246,205, 47, 12, 88,106, 51,231,247,223,127, 47,126,244,232, 17,167, 89,179,102,198,148,
+148, 20,153,196,217, 37,132,114,116,106,244, 50, 57, 85,222,184, 73,147,103, 95,124,241,133,186,180,114, 90,139, 20,153, 76,150,
+216,162, 69, 11,252,242,203, 47, 88,190,124, 57, 58,119,238,140,168,251, 81,232,250,197,100,212, 25, 55, 9, 7, 47, 95, 69, 98,
+ 98, 34,230,206,157,139,144,144, 16,240,120,188, 71,197, 62,143, 99,163,137,219, 41, 32,110,167,128, 32,198, 70, 19,230,253, 18,
+ 45, 91,115,114, 96,125,124,113,199,221,252,190,120, 75, 87,152, 39, 17, 89,154, 31, 86, 89, 98,171,111,223,190,227,205, 33, 28,
+ 70,142, 28,121,113,197,138, 21, 45, 71,142, 44, 24,104, 55,109,218, 20,243,230,205,107, 57, 99,198,140,139,243,231,207, 71,135,
+ 14, 29, 16, 16, 16, 80,230,194, 23,154,166, 97, 50,153, 48,112,224, 64,152, 76, 38,164,167,167,227,241,227,199, 88,183,110, 29,
+ 88,150, 21, 2,128,167,151, 79, 67, 62,159,143, 59,183,110,228,207, 28,217,228, 15, 59, 44, 89,132,245, 32, 38, 47, 47, 15,125,
+199,141,203, 72,168, 81, 67,185, 38, 35, 35,127,148, 66, 33,174, 22, 27,235, 36,211,235,189, 81,138, 95, 34, 65, 16, 96, 24,198,
+ 34,172,204,130,171,232, 86,216, 81,218, 4, 67, 62,115,244,252,182, 36, 0, 64,235,193, 94,232, 57,181,218,112,207, 64,241,202,
+ 86,131, 10,140,222,123,231, 61,103,115,147,232, 31, 97,196, 3, 59, 44,214,215,174, 93,187, 6, 71, 71, 71,244,235,215, 79, 64,
+146,228, 66,243,120, 21, 5,177,179,150,154,185, 4, 2,193,146, 33, 67,134,144,217,217,217,184,123,247, 46, 0,156, 41,169, 93,
+ 98, 89,214,114,238,121, 74, 2, 52,195,199,165, 91,199,113,242,252, 30,188, 76, 76, 71,108,154, 22,224, 56, 64,171, 78,128, 65,
+147, 8,125,246, 45,168,116, 98,155, 10,204,227,241,210,235,213,171,199, 54,106,212,136,101, 89, 22,207,158, 61, 51,197,196,198,
+154,110, 44, 91,198,222, 27, 51,134,144, 61,126,204, 19,137, 68,132,191,191, 63,132, 66, 33, 35, 20, 10, 51,255,197,206,251,173,
+132, 91,120, 11, 97, 33, 42,210,170,197,226,253, 68, 50, 94, 93,109,104, 9, 96, 90, 92,192, 82,176,114,209,128, 61,191,174,118,
+232, 55,112,176, 58, 36, 36, 68,225,237,237, 13,130, 32,208,171,119,111,162, 93, 68,132,140,235,229, 5,231, 6, 13, 44,211, 17,
+167, 79,157,194,241,227,199,213, 71,254,218,239, 61, 98,212,168,238, 0,182,148, 82, 24,142, 64, 32,176,252,110,114,114, 50, 4,
+ 2,129,197, 39, 66,165, 82,193,213,213, 21,201,201,201,182,102,190,222, 58,125,218,213,105,105, 77,190,243,111, 34,227, 18,199,
+212, 41,160, 89, 22, 92,130, 6, 52, 44,140, 52,160, 51,178,104, 88,141,114, 58,169, 49, 41, 14, 95,219,247, 2,192, 86,123,174,
+158, 78,167,251,251,246,237,219, 99, 24,134,217, 3,128,140,136,136, 96, 30, 60,120, 48, 30,182, 59,174,191,110,182, 23,139,167,
+158, 61,123,214,105,234,212,169, 89,135, 15, 31,206,233,214,173,155,195,186,117,235,156,218,183,111, 63, 53, 51, 51,115,167, 45,
+134,192,184,184,184, 45,241,241,241,227, 27, 53,106, 4,165, 82, 9,131,193,128,200,200, 72, 4, 6, 6,226,230,205,155,168, 89,
+179, 38,110,220,184,129, 90,181,106,129,166,105,104,181, 90, 48, 12, 67,151,213,152, 43, 51,210,129,204, 56, 36, 93, 59,134,199,
+247, 34,113, 54,137,192,170,157,135, 80,165,170,127,185,226,212,212,116, 19, 7,123,186, 58,159,252,113,246,247,110, 49,127,255,
+137,125, 27, 87, 49,231,142, 29,171,195,151, 97, 76,155,129, 19, 63,214, 27,225, 7,128,223,188, 73, 35,116, 81, 60,162,197, 85,
+145,114,246, 65,233, 1, 22,107,186,137,131,221, 93,156, 79,252,180,112,142,236,217,241,205,216,181,246, 23,118,239,182, 29, 33,
+ 90,160, 73,112,112,112, 23,146, 36, 29, 1,104, 11,253,188,108, 74,109, 83, 28,231,233, 67,135,194,180, 64,147, 3, 7, 14,116,
+ 17,139,197, 30, 0,140,249,249,249,207,223,132,243,204,225,195, 97,230,114, 18, 4,225, 6,192,192,178,236, 51,216,153,130,167,
+127,255,254,243, 38, 77,154, 52,141,166,105, 87,171,209, 57,181,100,201, 18, 14,195, 48, 20,203,178, 6,146, 36, 13, 39, 78,156,
+160, 77, 38, 83,146, 86,171, 29,247, 38,173,200,199, 31,127,140,171, 87,175,206, 70,193, 34, 12, 91,173,213,175,248,105, 21,166,
+236, 41, 55,127, 68, 68,196,220, 79, 63,253,116,250,206,157, 59, 31,175, 88,177,162,199,216,177, 99,241,231,159,127,162, 70,141,
+ 26,184,115,231, 14,190,251,238, 59, 0,104, 57, 99,198,140,131, 27, 54,108, 8,136,137,137, 89, 98,131, 69, 3, 38,147, 9, 59,
+118,236, 64,175, 94,189,224,234,234, 10, 47, 47, 47, 16, 4,241,247,168, 81,163,126, 3, 0,138,160,120, 0,160,211,234,116, 65,
+ 65,141,108,182,224,242,120, 60, 75, 91,151,146,146, 98, 89, 41,248,225,167,159,102,172,255,241, 71,252,161,209, 96,148, 66, 33,
+ 78,240,241,241, 60,248,236, 89,248,253,130,198,153, 45,205,170, 83,150,200,178,213,165, 65,147,140,111,255, 90,240,210, 3, 64,
+231,214,131,189,208,122,176, 23, 26,245,116, 35, 72,138,192,189,147,153,136, 58,173,220,107, 84,225,111,216,151, 46,231,193,194,
+133, 11, 15,182,105,211,166, 71,237,218,181, 49,122,244,232,207, 54,110,220,200, 51, 26,141, 95,226,159, 48, 15, 14, 36, 73,206,
+ 89,187,118,109,184,147,147, 19, 46, 92,184,128,243,231,207,255, 13, 32,174,164,118, 9,128, 37,102, 86, 21,223,154,218, 71, 49,
+121,226,180,196, 75,184,120,225, 47,212, 8,153, 8,145, 71,119, 56, 5,205,135, 33,122, 57,244,153, 39,225,228,219, 13, 9, 49,
+207, 64,113, 4, 81,101, 57,161,176, 44,123, 63, 33, 33, 33, 32, 32, 32,128,120,249,242,165, 9, 0, 75,211, 52,107,104,213,202,
+ 88,231,199, 31,185, 81,159,125, 70, 52,127,244,136, 98, 9,130,137,140,140, 4,128,135,255, 69, 47,110, 14,183, 16, 21, 21, 85,
+ 82,184, 5,187, 80,175, 94,189,150,231,207,159, 23,104,181, 90,156, 59,119, 14,141, 27, 91,214,118,253,167,209,239,173,181,200,
+123,134,240, 98,222, 91,247,138, 69,235,149,138,205, 16,220, 90, 53,107,210, 60, 18,155,122,117,239,158,127,251,246,109,203,168,
+ 79,123,253, 58,212,199,143,131,166,105,176, 44,139,243, 17, 17, 24, 50,120,112, 30,151, 34,214, 87,171, 86,149, 37,216, 87, 98,
+183,116, 44,102,244,208,175, 95,191,126,150,198, 39, 62, 62, 30, 18,137, 4,124, 62, 31, 12,195,192,100, 50,129,162, 40, 56, 56,
+ 56,192,100, 50, 21,103,130, 41,202,105,164,149,234,190, 27,186, 14, 74,246,202, 51,176, 99, 28,171,193,143, 39,178, 60,156, 30,
+114, 2, 61, 66,184,112,225,164,177,103,150,124,144,196,232, 50,251,226,245, 21, 93,101, 45,249,175, 89,191,126,253,223,134, 12,
+ 25, 66, 2, 64,199,142, 29,201,250,245,235,175, 68,233,169,114, 74,229, 20, 10,133, 2, 0, 56,116,232,144,242,241,227,199,157,
+ 15, 29, 58,164,180,126,223, 70,206,117,139, 23, 47,134, 88, 44,134,201,100,130, 94,175,183,248,103, 89,191, 26, 12, 6,184,184,
+184,224,200,145, 35,160,105,250, 72, 89,229,244,245,171, 10,194,181, 58,182, 28, 58,139,243, 25,188,242,136, 44, 11,103,117, 15,
+ 73, 45, 15, 23,231, 83, 63, 45,152,235,154,245, 52, 18, 9, 9, 9,236,137,227, 71,174,104,129,196,156, 92,204,204, 86,163,150,
+ 70, 15, 97,227, 0,196,157, 90,251, 13, 59,163, 53,140, 40,126,213,160,133,179,142,135,164,150,183,171,243,137,159,127, 90, 32,
+203,126, 26,137,228,148, 20, 28, 61,114,232,182, 22, 48, 79, 55, 14,103, 24,166, 46,195, 48,117, 1, 12, 47, 69,188,216,197,153,
+159,159, 95, 47, 63, 63,191, 94, 69,114,178, 44, 91,143,101, 89,155, 57,173,125,162,150, 46, 93, 26,157,156,156, 60, 36, 45, 45,
+173,147,121,203,202,202,234,152,151,151,215, 54, 63, 63,191,149,102,105, 85,135,252,252,124,183,188,188, 60, 79,173, 86,219, 16,
+ 64,164, 29,117,222, 2,235,168,211,201,201,201,179,146,147,147,137,178,202, 73,141,139, 38,182,255,252,245, 95,107,215,174,245,
+124, 67,254, 87,202,153,145,145,177,103,231,206,157,161,254,254,254, 1,195,135, 15,199,154, 53,107,176, 98,197, 10, 29, 0,108,
+216,176, 65,103,101,201,242,141,137,137,105, 84,194,180, 97, 71, 43,107,201,214, 15, 63,252,144, 61,127,254, 60,122,245,234,101,
+ 9, 36,250,251,239,191,195,100, 50,169, 58,116,232,192, 0,128, 70,155,175, 98, 25, 22,122, 67,137,243,239,175, 93, 79, 62,159,
+255,145,117,188, 64,115, 48,102, 62,159, 15,150,101, 81,171,101,203,140,236,144, 16,229,198,156,156,252, 89,245,234,201,195,131,
+130,134,215, 6, 6, 23,199, 73, 16,196, 43, 86,157,162,155, 29,150, 44,235,114,166,105,146, 48,250,175, 5, 47,143,155, 45, 91,
+ 66, 41, 7,218, 92, 19,246,255,248, 50, 93,155,142,223, 75, 18, 63,165,157,187, 82,169,252,226,199, 31,127,212, 41, 20, 10,124,
+252,241,199,152, 63,127,254,168,150, 45, 91,230,184,185,185, 93,173, 81,163,198,189, 1, 3, 6, 36, 71, 70, 70,126,209,174, 93,
+ 59, 60,121,242, 4, 63,255,252,115,118, 86, 86,214,160,210, 56, 9,130,176, 88,242,122,118,237,168, 92,189,242, 23,166, 67,155,
+241, 16,139,228, 48,114,125,161,204, 51, 34, 75,205, 66, 47,104, 2, 62, 79,128, 78,205,130,113,245,196,230,124, 90,175,222, 82,
+ 86,157,207,203,203,219, 59,108,216, 48, 21,143,199,131, 94,175,103,185, 92, 46, 4, 5,126,199, 12,183,115,103, 67,243, 7, 15,
+ 76, 52,203, 50, 4, 65,224,171,175,190, 82,103,101,101,237, 44,207,115,100, 7,172, 57, 43, 42,220, 66,199, 34,253, 79, 69,132,
+133,120, 27,231,254, 62, 99, 93, 49,219, 63, 22, 45,243,146, 74,243, 43, 65, 48, 52, 77, 51,168,230, 95, 77, 22,243, 50,110, 85,
+255,254,253, 70,118,233,210, 85,220,181,107, 87, 97,112,116,193,104,244,208,161, 67,216,183,111, 95,254,201,147, 39, 85, 2, 46,
+181,193,183,138,175, 59, 77, 51, 32, 8,166, 84, 53, 44,147,201,190,252,246,219,111, 69, 57, 57, 57, 88,177, 98, 5, 19, 26, 26,
+ 74, 74, 36, 18, 24, 12, 6,108,216,176,193, 24, 28, 28,204, 37, 73, 18, 57, 57, 57, 32, 73,242,145,141, 39,120, 55, 39, 46,177,
+211,111,237,250,236,107,244,249, 8,231, 58,237,154, 43,218,250,122,195,216,128, 69, 82,252, 75, 60, 62,115, 50,235,254,137,101,
+153,208,166,246, 65,217,233,129,138,235, 8,126, 56,121,242,164,219, 23, 95,124,193,106,181, 90, 34, 46, 46,142, 93,176, 96,129,
+219,232,209,163,127, 72, 74, 74,250,164,156, 55,133,200,206,206, 6, 65, 16, 76, 97, 67, 98, 30,245,219, 51, 47, 23,181,101,203,
+150, 3,189,123,247,238,217,161, 67, 7, 68, 71, 71, 91,166, 8,173,133,150,121,245,225,194,133, 11,179, 1, 76, 47,139,148,203,
+229, 98,197,150, 61,200,206,202,128,187,187, 23,132, 34, 17,202,187,194,146, 79,146,179, 22,205,253,222, 45,227,225, 85, 34,234,
+202, 89,102,247,221,212, 52, 19,205, 22, 31,241, 63, 55,137, 45, 84,255,165,143,102, 72,106,214,162, 5,115, 28,204,211,154, 59,
+111, 37,171, 8,154,253,226,141, 30,145,247,133,243, 95,134,151,151, 23,146,147,147, 9, 47, 47, 47,182,208, 71,139, 45, 69,104,
+189, 90,193, 11,166,203,136,210,166, 13,203,203,255,226,197,139, 5, 13, 26, 52,248,250,201,147, 39,187,235,212,169, 51, 22, 64,
+ 21,157, 78,151, 61, 99,198,140,159, 54,108,216, 48,210, 22, 75, 22, 0,252,249,231,159,203, 70,140, 24,113,188,123,247,238,223,
+ 48, 12, 83,223,170, 99,127,225,230,230,102,153,194, 77, 79, 77,153, 54,102,228,192,105,121,121, 89, 54,199,185,147, 74,165,225,
+ 51,102,204, 16,170,213,106,252,250,235,175, 76,112,112, 48,105, 30, 20,109,219,182,205, 84,179,102, 77, 78,191,241,227, 51,150,
+166,164, 96,222,133, 11,234,105,117,235,134,110,124,252,184, 33, 24,102,107, 73, 86,157,226, 44, 89,102,183,139,114, 34,169, 80,
+108,253, 14,160,115,243,254, 30, 56,176,248, 37,178, 98,244, 63,193,132,103,176, 33, 45, 80, 49, 72,216,187,119,111,167,212,212,
+212, 3,223,127,255,189, 67,195,134, 13, 81,183,110, 93,174, 84, 42,109, 98, 14, 23,147,147,147,131,211,167, 79, 99,205,154, 53,
+250,251,247,239,247, 46,109,186,138,166,233,180,154, 53,107,154,175, 3, 75, 16, 68,166, 74, 71, 56,236,170,221, 68, 58,124,204,
+110,226,226,141,203, 72, 50, 48,208, 25, 25, 84,243, 15, 67,219,206, 75,113,240,216, 61, 58, 41,230,193, 3,163, 38,107,189, 13,
+229,125,246,244,233,211,253,115,231,206,237,255,205, 55,223,136, 50, 50, 50,104,157, 78,199,236,217,179,135, 26, 62,124, 56,205,
+114, 56, 12,143,195,193,151, 95,126,169,201,206,206,254, 11,248, 87, 19, 76,191,149,112, 11,111, 33, 44, 68,133, 89,179,172, 95,
+255, 87, 80,236, 19,202, 80,228,165, 53,107, 87,127,244,231,142,157, 30, 20, 69,122, 60,123,254,252, 70,143, 62,125, 19, 79,157,
+ 58,229,196,115,112,104, 12,128,209,143, 29,123,197,160,211, 40, 15, 31, 56,224, 87,173, 90,213,144,194,164,210, 44, 67,145,151,
+ 74,251,193,188,188, 60,245,133, 11, 23,242,167, 79,159, 78,196,199,199,111,119,119,119, 31,112,236,216, 49,105,159, 62,125, 52,
+209,209,209,123, 61, 60, 60,122,182,107,215, 78,246,245,215, 95,235,242,242,242,236, 73, 60,250,128, 77,207,170,125,253,251, 37,
+159, 94, 95,188,250, 3,112,168, 22,208,113, 1,198,120, 9,134,220, 83, 0,182,195,142,120, 71,214,144, 72, 36, 33, 98,177, 24,
+183,111,223,206,106,210,164,137, 94,171,213,242,230,207,159,239, 44,145, 72, 66,202,123,225, 89,150,101,179,178,178,192, 48, 12,
+ 7, 0, 81,248, 10,198,254,181,248,159,244,232,209,227,192,174, 93,187, 62,236,218,181, 43, 2, 2, 2, 96, 52, 26, 81,179,102,
+ 77,232,245,122, 4, 6, 6, 66,167,211, 97,246,236,217,200,201,201,153,140, 82,114,158, 17, 4, 1,147,201,100,113,182,245,246,
+241, 43,136,211,243, 6, 97, 44, 36, 92, 50,224,209,225,141, 72,203,204, 96,118,221, 73, 77,205, 55,208,157,158,166,231,223, 47,
+122, 92, 62, 13,117,187,225, 19, 18, 1, 64,199,148,158,113, 94,194, 71,192,227, 35,191, 35, 53, 45, 3,127,222, 74,206, 86, 27,
+152,206,143,139,225,180,171,156,239, 9,103,216,236,104,244,157, 96,251,177,111, 2, 91, 5, 85, 73,184,157, 2,226,166,120, 35,
+139,181, 27,139,141,145,245,134,252, 7,158, 60,121,114, 0, 0, 30, 60,120, 16, 63,112,224,192,105, 47, 95,190,156, 11,224,104,
+ 76, 76,204, 90,123,136, 54,110,220,248, 4,192,136,210,142,217,185,100,196,126, 0,251,237,225,205,205,205,213, 70, 70, 70,106,
+191,254,250,107, 34, 62, 62,254,152,135,135,199,135,199,143, 31, 23,247,233,211, 71, 23, 21, 21,117,198,203,203,171,117,199,142,
+ 29,165, 71,175, 93, 75,204,127,246,236,240,225,151, 47,125,140, 12,115,184,180,231,179,130, 69,214, 43, 98,107,255,188,151,139,
+ 14, 44,122,217,145,209, 97,175, 62, 11, 87, 0, 36,188, 1,231,249, 75,151, 46,213, 25, 60,120,240,174,110,221,186, 53,175, 83,
+167, 14,170, 84,169,130,199,143, 31, 35, 61, 61, 29,119,239,222,197,161, 67,135, 14,105,181,218, 50, 19,106, 43,149,202,215,211,
+ 19, 9,157,188, 54,255, 58,235,208,141,139,141,107,182,234, 58, 76, 84,215,139,129,222,192, 34, 62,246, 25,102,207, 92,159,159,
+ 28,251,228,129,193,100,232, 13, 27, 23,234,104, 52,154,117,203,151, 47,231, 30, 62,124,184,235,170, 85,171,100,126,126,126, 20,
+143,199, 35, 1,176, 55,111,222,100, 39, 76,152,160,206,200,200, 56,162, 82,169,214,253,203,125,244,249,231,207,159,135, 81, 20,
+ 85,161,225, 22,222, 32, 44, 68, 37, 42, 18,254,254, 62,117,170,251,121,141, 13,168,226, 51,222,223,207,119,104,113, 78,238, 1,
+ 10,133,204,191,170,119,120, 64, 21,159,241,213,253,188,198,250,251,251,212,177,193,180, 24, 32,151,203,143,121,122,122,134, 2,
+128,131,131, 67, 79, 71, 71,199,251, 14, 14, 14, 61, 11, 71,129, 61,165, 82,233,195,224,224,224,209,255,162,185,178, 84,206,154,
+ 53,107, 14,204,203,203,251,172,102,205,154, 3,205,251,207,158, 61,179,236,151,135,211,215,215,183,195,205,155, 55, 63, 89,178,
+100,201,199, 53,106,212,232,185, 96,193,130,143,255,250,235,175, 79,124,124,124, 26,150,131, 83, 0,224, 15, 46,151,155,202,231,
+243,211,184, 92,110,170,121,227,112, 56,169, 20, 69,165, 2, 88, 91,130,181,172,163,213, 40,231,162,187,187,123,140,187,187,123,
+140,135,135, 71,140,135,135, 71,140,167,167,231,107,155,139,139,203, 69, 91,175,103,144,135,180,101,147, 42,178, 75,245, 60,165,
+ 23,107,187, 75,130, 42,226, 30, 5,121, 72, 91, 54,174,226,112,169,158,167,236,194,255, 55,206, 80, 15,176,236,154, 32,150, 93,
+ 19,196,134,122,128, 45,107,191, 34,205,254,158,158,158,172,167,167,231,172,183, 53,149, 80, 2,255,191,254,188, 87, 32,103,128,
+ 76, 38,219, 89,165, 74, 21,115, 91,215, 93, 46,151,255, 45,149, 74,187, 23,182,117,221, 37, 18, 73, 68,112,112,240,176,178, 56,
+157,156,156,110,186,185,185,165, 20,110,201,238,238,238,201,238,238,238,201,110,110,110, 73,110,110,110, 73,174,174,174,137,230,
+205,209,209,241,106, 57,207,221, 13, 64, 83, 0, 13, 1,200, 43,240,122,250, 3, 24, 83,216, 6,253, 8, 96, 52,128,250, 21,112,
+143, 8,174,200,105,156,192,209,247, 18, 87,234,154,203,149,186,230, 10, 28,124, 46,149,146,130,199, 22,206, 90, 78, 78, 78,243,
+229,114,249, 95, 50,153,236,130, 76, 38, 59,224,226,226,178, 0, 64,173,255,168, 46, 73, 1,108, 64, 65,124,166,163, 40,152, 10,
+ 63,128,130, 69, 5,126,239, 96,157,255,255,140,240, 98, 12, 42,248, 55,162, 64,117,172,228,172,228,172,228,172,228,172,228,172,
+228,124, 15, 57,201,202,235, 89, 41,180,236, 20, 90,175,108,102,161,197,169,188, 54,149,168, 68, 37, 42, 81,137, 74,188, 6,166,
+242, 18, 84,194, 78, 20, 59,181, 76,148,162, 74,237,137, 53, 85, 30,101,123,186,146,179,146,179,146,179,146,179,146,179,146,179,
+146,243,255, 29,231,255, 11,252, 91,201, 99, 42,205,170,149,156,149,156,149,156,149,156,149,156,149,156,149,156,255,235,168,156,
+ 58,172, 68, 37, 42, 81,137, 74, 84,162, 18,149,120, 75, 88,103, 37,184, 94,153, 66,172, 20, 90,246,131, 4,240, 25,128,190, 0,
+170,163, 32,155,253, 30, 0,191,161,124,115,250,114, 0,211, 0,180, 64,193,234,156, 23, 0, 46,160, 96,117, 78, 94,229,229, 46,
+ 30, 46, 46, 46,223,114,185, 92, 71,160, 32,181,137,249,213,250,127,154,166,179, 85, 42,213,130,183, 84, 4, 10, 54, 70, 80, 54,
+151,213,186,108,214,175, 70,163,241,109,150,179, 18,239, 38,106, 58, 57, 57,253,161, 84, 42, 7,193, 42,201,114, 37, 42,241,191,
+ 0, 87, 87,215,177, 6,131, 97, 6,143,199,155,159,158,158,190,250,255,209,169,191, 38,178, 94, 17, 90,135, 15, 31,142, 0,128,
+110,221,186,181, 1, 0, 71, 71,199,203, 36, 73,250,219,243, 11, 12,195,188,200,206,206, 46, 49,128,154,163,163,227,101,138,162,
+ 94,227, 52, 26,141, 50, 14,135,147, 91,220,119, 76, 38, 83,130, 74,165,106,248,142, 92, 68, 2,192, 97,133, 66,161,157, 59,119,
+238,111,109,219,182,245, 77, 74, 74, 50, 77,157, 58,181,245,157, 59,119,186, 2,248,200, 78,177,213,140, 32,136,205,161,161,161,
+251,135, 14, 29,186,171, 73,147, 38,252,204,204, 76,217,158, 61,123,188,183,108,217, 18,201, 48,204, 32,148,146,104,245,125, 4,
+203,178, 37,230, 74, 44,237,179,162,224,114,185,142, 9, 9, 9, 50,243,247, 10,133, 21,140, 70, 35,140, 70, 35,212,106, 53, 66,
+ 66, 66, 42,188,252, 30, 30, 30, 97, 4, 65,172,146, 74,165, 13,243,242,242,110, 0, 24,159,156,156,124,199,158,178,154, 76, 38,
+176, 44,107, 41,103,157, 58,117, 42, 91,102,251, 48,138,207,231,119, 14, 12, 12,108,172,211,233,178, 94,188,120,113,157,166,233,
+239, 81,113, 57,218, 28, 0,124, 47, 16, 8,154, 84,175, 94,221,247,201,147, 39,241, 6,131,225, 26, 10,146, 33,231, 84,132,200,
+106,211,166,205,197, 95,127,253,213,121,220,184,113, 23, 47, 92,184,208,178, 82,108, 85,226,191,130,175,175,175,163, 90,173, 94,
+ 15, 32,140,203,229,122, 8,133, 66,136, 68,162, 20,129, 64,112, 91, 36, 18,141,188,116,233, 82,182,189,156, 52, 77,127, 31, 19,
+ 19,227,209,180,105,211,197,110,110,110,179, 51, 50, 50,180, 6,131,225, 76, 86, 86,214,100, 0,170,210,190, 91, 84,139,188,103,
+ 34,203,250, 21,102,209,197, 41, 60, 49, 22, 64,219, 87, 20, 24,135,227, 19, 27, 27,235, 38, 20, 10,193, 48,140,165, 51, 43,186,
+153,223,215,235,245,168, 91,183,174,161,140, 14,199, 55, 62, 62,222,141,207,231, 91,222,211,235,245,240,246,246,102, 18, 18, 18,
+220, 10,211, 30, 88,160,211,233,224,227,227,243, 46,229, 60,250,204,201,201, 41, 39, 46, 46, 62, 68,171, 51,204, 25,253,197,244,
+111, 7,245,253, 64,113,249,242,101,230,163,143, 62,210, 69, 68, 68,124,134,130,196,169, 54, 53,230, 4, 65,108,153, 58,117,234,
+108,161, 88,238,124,246,242, 3,221,150, 61, 71, 18, 67,107, 86, 35, 38, 79,158, 76, 77,152, 48,225,124, 88, 88,216, 31, 12,195,
+ 52,128, 29,150, 45,133, 66,113, 92, 32, 16, 84, 45,188,126,113, 89, 89, 89, 31,190, 75, 53,177, 80, 72,113,240,122,240, 88, 14,
+ 65, 16,118, 7,148,205,204,204,132, 70,163,121,109,171, 83,167,206,219,112, 68,228,112,185,220, 3, 11, 23, 46,244, 78, 73, 78,
+198, 47, 75,151, 54, 69,129, 37,179,169, 45, 95, 78, 75, 75,123,173,156, 65, 65, 65,168,132, 93,152, 54,123,246,236,133,159,126,
+250, 41,104,154,134, 70,163,241,122,250,244,105,240,140, 25, 51,122, 63,123,246,172, 49,128,231,111, 58, 24, 15, 12, 12,140,158,
+ 56,113,162, 83,227,198,141, 81,152,165,194,235,194,133, 11, 77, 55,108,216, 48, 36, 46, 46, 46, 8, 64,250,155,252,128,147,147,
+211, 31,191,255,254,187,179, 88, 44,198,193,131, 7,157, 59,116,232,112,225,214,173, 91,173,222, 64,108,145,206,206,206, 19, 0,
+180,103, 24,134, 15,224, 90, 86, 86,214, 60,216, 31,213,221, 83, 42,149,238, 37, 73,178,154,213,179, 10,146, 36, 93, 8,130,200,
+ 48,191, 71, 16,132, 27,195, 48, 87,148, 74,101,243,202,234,248,126,195,217,217,121, 84,106,106,234,175, 2,129,128,167, 80, 40,
+ 32, 22,139,193,225,112,192,225,112,170, 8, 4,130, 42, 2,129,160, 75,187,118,237,198,255,253,247,223,165, 70,216,111, 22,234,
+ 62, 28, 36, 49,135, 34, 72, 10, 0, 72,174, 68,238,224,224,128, 57,115,230, 72,122,246,236, 41, 1,128,139, 23, 47, 14, 29, 54,
+108, 88,135,132,132,132,186, 37,137,173,226,180,200,123,132, 18,131,217, 90, 39,149,142,120,229,201, 37, 73,240,249,124, 92,189,
+122, 21,182, 4, 43, 55,167, 72, 40,181, 53, 40,140, 48,126,231,206, 63, 6, 0,115, 71,195,231,243,113,233,210,171, 65,229,155,
+ 53,107,102,179,133,163,162,208,183, 78, 65,144,199,221,159, 23,148,171,223,170,130,232,218,187, 63, 15, 66,235,159, 99,209,119,
+194,172, 1,249, 90, 67, 35, 0,234,236,172,172,172, 27,251,246, 37,133,214,172,201,251,227,143, 63, 26,123,123,123,247,181, 67,
+104, 77,107,208,160,193, 94, 74,228,224, 50,116,216,240,161, 35, 57,164, 97,200,152,175,231,199, 39,103,168,195,195,195,247, 29,
+ 60,120,112,232,162, 69,139, 30, 78,153, 50,101, 26,128,239,108, 45,191, 80, 40,172,250,232,209,163, 64,154,166, 81,167, 78,157,
+119, 49,141, 65, 40, 10,130,239,125, 10, 96, 71,225,123, 3, 81, 16,185, 63, 12,192,109,123, 44, 91,102, 11, 86,113, 91, 69,195,
+219,219, 59,104,240,224,193, 46,202,140, 12,252,178,116,169,249,237,134, 40, 99, 26,209,252,252,232,245,122,124,252,241,199,131,
+105,154,230,152, 69,160, 78,167,211,231,228,228,104,241,143, 99,105, 58,128, 15,108, 40,142,191, 68, 34,249, 9, 64,152, 70,163,
+241, 6, 0,137, 68,146,200, 48,204,126,181, 90,253, 29,254, 73,224,107,247, 0, 23, 64, 48, 74, 78, 5,197, 46, 92,184,240,201,
+244,233,211,159,255, 7,156, 85,221,221,221, 23,244,235,215, 15, 71,142, 28,193,209,163, 71,141, 34,145,136, 51,108,216, 48, 98,
+252,248,241,138,137, 19, 39,118, 1,176,252, 13,111,115,151,217,179,103, 59,213,174, 93, 27,123,246,236,193,221,187,119, 53,129,
+129,129,162,182,109,219,130,195,225, 56,125,251,237,183, 31, 1,216,252, 38, 63,160, 84, 42,231,125,253,245,215, 91,118,236,216,
+ 33,123,241,226, 5, 86,173, 90,229, 50, 96,192,128,136,184,184,184, 54,118,136, 45, 1,128, 9, 0,218, 81, 20,213,106,216,176,
+ 97,166, 47,190,248,130, 75,146,164,113,233,210,165,174, 27, 54,108, 24,192,229,114,195, 50, 51, 51,109, 25,164,145, 0,230,140,
+ 28, 57,114,196,223,127,255,173,184,126,253, 58,223,217,217, 25, 52, 77, 91, 44,197, 12,195,184,153,235,172,201,100, 66, 80, 80,
+144,143,213,247, 69,239,171,208, 32, 73,210,192, 48, 12, 23,128, 16,128,174,172,253,255, 37,145,229,228,228, 52, 78,169, 84,254,
+230,225,225, 1,119,119,247,215,218, 92,157, 78, 7,161, 80,200,243,240,240,248,189,103,207,158,220, 3, 7, 14,148, 56, 5, 72,
+ 80,196,247, 7,119,206,245,118, 82,200, 0, 0,203,214,156,200, 7,128,191,254,250, 11, 73, 73, 73, 80, 40, 20,168, 91,183, 46,
+ 53,119,238, 92,207,201,147, 39,255,146,149,149, 53,178, 36,174,162, 90,228, 61,179,104,173, 43,110,191, 84, 31, 45,150,101, 45,
+121,242,108,172,180, 69,223, 58, 93,132,143,208,235,245, 40,106,209, 50, 63,188, 92, 46,183,168,249, 17, 4, 65,176,165,113, 22,
+131, 97, 18,137, 36, 68,173, 86,175,180, 99,116,107,225,220,253,121, 16,182, 8,166, 14, 52,103, 34,237,242,117,193,235, 22, 0,
+151, 95,142, 92,245,107,155, 54,222, 19,102,174,152,165,201, 76,202,248,118,112,247,170,129, 30,206, 34, 73,118, 90,142, 83,173,
+ 90,157,138, 88,105,202, 42,103,235,161, 67,135,110, 61,121, 53,134, 16, 10,121, 60, 14, 69,113, 91,214,171,233,236,235, 64, 57,
+200, 0,135,248,231, 79, 46, 15, 31, 62,188,222,148, 41, 83, 90,217,193,137,194, 14, 23,219,182,109, 3, 65, 16,164, 61,231, 94,
+129, 40,122,223,205, 15,113, 40,128, 91,133,251,219,173, 58,149,237,133,239,221, 50,139,173, 98,172, 94,167,139,138, 23,243,244,
+155,209,104,196,176, 97,195, 6,155, 76, 38,142, 85, 35, 81, 84,192, 20, 39, 98,108, 58,119, 79, 79,207,147, 0, 62, 32, 8, 2,
+122,173, 86,255,211,207, 63, 91,127,124,179,136,200, 58, 93,210,179,100, 52, 26, 65,211, 52,231,214,173, 91, 92,171,186,206, 5,
+ 32, 1,224,194,178, 44, 72,146,188,103,195, 61, 10, 18,139,197,151, 15, 29, 58, 36,111,216,176, 33,193,231,243, 97, 50,153, 16,
+ 21, 21,229,187,104,209,162, 49,167, 79,159,254, 72,173, 86,215,193,235,201,211,109,185,239,193, 23, 46, 92, 80, 7, 4, 4, 20,
+ 43, 28, 85, 42, 21,167,102,205,154,109, 74, 16, 69,111,155, 51, 33, 53, 53,181,215, 7, 31,124, 48, 54, 37, 37, 37,218,100, 50,
+125, 3,160,174,139,139,203,173, 62,125,250, 64, 36, 18,181,211,104, 52,203,223,164,206,187,185,185,245,108,222,188, 57, 86,173,
+ 90,133, 69,139, 22,117, 4,112, 6, 64, 7,149, 74,117,186, 71,143, 30,112,116,116,236,149,157,157,189,249, 13,158,163,154,173,
+ 91,183,254,125,206,156, 57,178, 35, 71,142, 32, 48, 48, 16,185,185,185,248,234,171,175,220,126,248,225,135,115,217,217,217,109,
+173,158,139,146, 56,235, 8, 4,130,205, 59,118,236,144, 6, 4, 4, 4,240,120, 60, 50, 32, 32, 0, 74,165, 18, 90,173, 86, 48,
+127,254,252,122, 34,145,232,206,242,229,203, 55, 3,232, 83, 70, 57, 73, 0,243,214,174, 93, 59, 54, 60, 60,220,113,240,224,193,
+180, 94,175,199,174, 93,187, 64, 81, 20,184, 92, 46,196, 98,177, 37,121, 53,143,199, 67,173, 90,175, 5, 73, 63, 88,202,249,230,
+160,192, 15,213, 17,246, 77,187,158, 46,133,207, 50,245,193,229,114, 33, 20, 10, 33, 20, 10, 33, 16, 8,240,232,209,163,153, 66,
+161,112,105, 9,214,241,215, 56,137,127,212, 69, 8,128,235,101,237,227,117,215,144,183,222,126, 22, 3, 31,130, 32,150, 1,104,
+ 87,208,237,146, 17, 46, 46, 46, 95,166,166,166,198,218,202,233,233,233,233,156,153,153,185,220,211,211, 19,238,238,238,150,254,
+219,219,219, 27, 70,163, 17,169,169,169, 96, 89, 22,217,217,217, 16,139,197,240,242,242, 90, 30, 30, 30,190,103,221,186,117,153,
+197,114, 50, 88,212, 99,192,140,239, 41,138, 34, 1,128,226, 72,165, 19,167, 3, 85,171, 86, 69,203,150, 45,161,213,106,145,147,
+147,131,224,224, 96, 14, 65, 16, 67, 9,130,144,179, 44,187, 26,192,217,255, 65, 67, 97,137,206,240,179,139,206,139,154,179,197,
+243,120, 60,155,132, 86,225,241,101,153, 33, 72,163,209, 8, 30,143,247,138, 69,130, 32, 8,208, 52,253,202,251,102,161, 85, 30,
+161, 62,126,252,120,230,247,223,127, 31,155,149,149,181, 6,229,156, 74, 24, 58,116,232,107,254, 30,147, 39, 79, 78, 72, 75, 75,
+ 99, 63,238, 20, 34,137, 62,150,148, 92, 93, 33, 21,185,202,100,213,132, 10, 39,199,204,204,204, 43,133,141,137,173,168,209,160,
+ 65, 3,209,150,125, 23, 18, 70, 79, 90, 56,183, 97,128,179,188,190,143,139,194,195, 65,196,151,146,132, 90,104, 50, 38, 56, 57,
+ 57, 5,218, 91,110,115,187, 32, 22,139, 65,146,228, 59, 97,209,178,154, 46,188,197,178, 44,148, 74, 37,142, 28, 57,130,174, 93,
+187,222, 50,139, 16,149, 74,133,228,228,100,120,122,122,222, 42,180,124,148, 57,141,200, 48, 12, 12, 6, 3, 12, 6,131, 69,192,
+ 88,213, 33,139,128, 49, 31, 75, 81,212,189,114,158,194, 92,133, 66,209,186, 93,187,118,252,157,187,118,241, 89,150, 85,163, 32,
+135, 90, 30,203,150,144, 32,187, 8, 76, 38,147,197,202,198,229,114, 17, 23, 23,103,233,184,204,185, 37,133, 66,161,109,166, 12,
+129,224,235, 63,255,252, 83,222,184,113, 99, 34, 51, 51, 19, 12,195, 88, 26,201,223,126,251, 77,216,183,111, 95,239,200,200,200,
+111,117, 58,221,236,242,220,174,146, 4, 17, 0,200,229,114, 19,108,139,152, 93, 38,167,201,100, 34, 90,180,104, 49, 37, 35, 35,
+163,158, 70,163,153,111,203,101, 4,112, 48, 33, 33,193,186, 99,191, 19, 29, 29,173,233,223,191,191,168, 90,181,106, 77, 30, 60,
+120,240, 70,117,181,102,205,154,205,184, 92, 46,174, 93,187,166, 3, 96, 30, 89, 71,220,189,123, 87,215,167, 79, 31,129,175,175,
+111,179,236,108,155, 93, 86,106, 6, 5, 5,157,114,115,115, 19,153,219, 80, 87, 87, 87,238,186,117,235,100,137,137,137, 48, 24,
+ 12,152, 54,109, 26,186,117,235, 6, 23, 23, 23, 76,158, 60,217,125,241,226,197,127,228,229,229, 53, 40,205,104,205,231,243,183,
+ 62,125,250, 52,208,211,211, 83,116,245,234, 85,212,175, 95, 31, 25, 25, 25, 72, 73, 73, 65, 94, 94, 30, 82, 82, 82, 48,114,228,
+ 72,183, 95,126,249,197,203, 6, 75,150, 69,100,173, 91,183, 46,123,239,222,189,212,250,245,235,101, 92, 46,215, 34,180, 56, 28,
+142, 69,104,153,115, 43,150, 99,166, 33,187, 80,180, 57,230,228,228,228,188,193, 45, 18, 0,224, 91,139, 44,129, 64, 0,129, 64,
+ 0,161, 80,248, 70,121, 89,223, 19,120, 19, 4,241,128,199,227, 9,196, 98, 49,143, 36, 73, 8, 4,130, 78, 78, 78, 78,247,235,
+214,173, 91,247,212,169, 83, 49,182,144,104,181,218,173, 2,129,128,235,230,230, 6, 0, 8, 12, 12, 68,253,250,245,161, 86,171,
+153,156,156, 28, 56, 58, 58,146,177,177,177,208,104, 52, 72, 78, 78,134,159,159, 31,151, 36,201,173, 40,240, 67,126, 13,151,111,
+165,172, 1,176,198,188,239,226,226,146,106,109,233, 20, 10,133,240,246,246, 70, 98, 98, 34,100, 50, 25,245,195, 15, 63,244,217,
+181,107, 87,239,203,151, 47, 15, 5,176,205,138,106,246,123,236,163,101, 22, 89,214,175,255, 8,173,110,221,186,205, 58,124,248,
+112,155,226, 70,225, 92, 46,183,194,124, 93,204,130, 74, 46,151, 23,181, 90,129, 97,152,146, 44, 90,118,255,142, 80, 40, 20,141,
+ 27, 55, 46,119,245,234,213,118,139,173,126,171,162, 45, 86,172,215,134,145,117,234, 92,254,246,219,111,123,254,253,247,223,137,
+ 13, 3,170,113, 36, 73,177,121, 66,185,163, 35,124,170,116, 29,214,171,207, 93, 20,172, 62,180, 21, 79,115,115,115, 69,213,125,
+196,122,146,212, 18, 85, 4, 28,153,167,132, 39,240, 80, 40,188,121,122, 93,154, 92,161,224,235,116,186,108,148,146, 4, 26, 0,
+220,221,221, 79,136, 68, 34, 63,243,190, 66,161,112, 96, 89, 22, 98,177, 24,158,158,158, 82,138,162, 30, 91, 61, 92,177,169,169,
+169,157,202, 42,152,163,163,227, 9,129, 64,224, 71,146, 36, 8,130, 0, 69, 81, 32, 73, 18, 36, 73, 90,254,167, 40, 10, 4, 65,
+ 32, 63, 63, 63, 54, 38, 38,166,147, 13,231,107, 2, 16, 70, 16,196,173, 35, 71,142,160, 73,147, 38, 56,118,236, 24, 58,119,238,
+140,156,156, 28, 68, 69, 69,161,117,235,214, 0,240,169,173,247,220,218,249,221, 60, 40,120,244,232,145, 69,184, 88,111, 50,153,
+236, 77, 76,236, 23,251,245,235,135,223,127,255,157, 45, 28, 76, 72, 8,130,168,239,224,224,240,232,225,195,135, 54,249,193,176,
+ 44, 11,131,225,159, 67,205,157, 87,161, 63,132, 93,201,129, 41,138,234,212,160, 65, 3, 34, 39, 39,199, 44, 32,193,225,112, 64,
+ 81, 20, 40,138,194,175,191,254, 42,106,220,184,241, 12,129, 64, 48,133,199,227,169,140, 70,227, 78,173, 86, 59, 31, 64,246,187,
+212, 34,181,106,213,106, 82,124,124,124, 55, 63, 63,191, 67,111, 64,195, 26,141, 70, 61, 0, 17, 69, 81,220, 10,104,163,168,194,
+186,165,181, 18,251,166,194,125, 1, 10,166,137,109,130,139,139,203, 31, 71,143, 30,245,241,243,243,131,209,104,132,201,100, 66,
+ 94, 94, 30, 34, 34, 34,160,211,233, 96, 50,153, 16, 24, 24,136,239,191,255, 94,251,229,151, 95, 10,215,174, 93,155,150,151,151,
+ 55,168, 12,218, 47,247,236,217, 35,241,244,244, 20,105, 52, 26, 60,127,254, 28, 13, 26, 52, 64,110,110, 46,212,106, 53,242,243,
+243, 97, 48, 24,160, 82,169, 28,105,154,214,151,193, 53,211, 90,100,141, 25, 51,230, 30,159,207,111,240,197, 23, 95, 32, 33, 33,
+193,242,204,143, 30, 61, 26,238,238,238,150,103,169,240,249,180,171, 97,230,112, 56, 16, 8, 4,224,241,120,217, 85,170, 84, 1,
+ 65, 16,194,216,216,216,242, 76,197,201, 1,168,184, 92, 46,223, 90, 96, 9, 4, 2, 92,187,118,237, 91, 62,159,191,212, 30, 95,
+ 79,182, 72,231, 86,214,254, 59, 48,104, 93,198,227,241, 4, 78, 78, 78, 60,171, 1, 39, 79, 42,149,194,205,205,109, 21,128, 46,
+ 54,158,119,168,147,147,147,165,125, 15, 9, 9, 65,124,124,252,254,156,156,156, 33,105,105,105, 32, 73,114, 43, 73,146,189,205,
+131,212,172,172, 44,248,250,250,134,150,196,215, 60,204, 99, 44, 8,246, 21,139, 86,145, 1, 26,228,114, 57, 94,190,124, 9,181,
+ 90,205, 62,121,242,132, 24, 55,110, 28,161,215,235, 55, 69, 70, 70, 94, 65,193,106,251, 18,181,200,123, 2,251,125,180,204, 22,
+ 45, 91, 59, 0,130, 32,202, 28, 77, 24,141, 70,105,112,112,112,113, 14, 95, 68,113, 66,171,112, 58,169, 92, 21,157,203,229,202,
+202, 43,182,138,226,208,222, 29,238,139,190,159,246,189,147, 87,181,234, 83,166,204,228,116,239,222,253,234,150, 45, 91,104,167,
+218, 93, 58,156, 61,177,205,125,249, 87, 83,143, 29, 61,122, 20, 40,112,140,182, 21, 23, 15, 31, 62,236, 49,121,194,120,124,255,
+245,151,199,229,129, 46,124, 41,225, 36, 17,234,212,233, 82,176, 26, 65,141,160,110,251, 14, 29, 74, 6, 16, 89, 26,137, 88, 44,
+246,123,240,224, 65,160,245, 66, 2,189, 94, 15,177, 88,140,179,103,207,186,138, 68, 34, 87, 0,208,104, 52,168, 91,183,174,173,
+ 22, 19,191,199,143, 31, 7,202,100, 50,228,231,231, 67,167,211,193,104, 52,130, 97, 24, 16, 4, 1, 46,151, 11, 62,159, 15,137,
+ 68, 98,239,202,190,219, 0, 62,237,218,181,235,246, 99,199,142, 33, 56, 56, 24, 89, 89, 89,136,142,142, 54,139, 44,243,180,161,
+ 77, 48, 91,137,172,253,177, 56, 28, 14,254, 8, 8,192,232,164, 36,139,128, 89,230,224,128,239,153,242,101,211,168, 91,183, 46,
+123,241,226, 69, 28, 63,126, 28, 61,122,244, 32, 14, 28, 56, 96,160,105,154,151,148,148,116, 47, 41, 41,201, 38, 14,134, 97, 44,
+101, 53,183,219,214, 2,203, 94,161,101, 50,153,100,124, 62, 31, 90,173, 22,102,203,131,245,230,239,239, 15,165, 82,201, 81,169,
+ 84,156,164,164, 36,241,188,121,243,190, 56,119,238,156,103,110,110,238,192,255,178, 21, 90,189,122,181,223,232,209,163,227, 56,
+ 28, 14,219,185,115,231,193,177,177,177,189, 60, 61, 61,207,252,253,247,223, 63, 3,168,105, 47,159,139,139,203, 77, 14,135,227,
+163, 82,169,120,187,119,239, 54,230,230,230,242, 92, 93, 93, 83,205,109,135,249, 90, 27,141, 70,155, 86, 46,187,184,184,220,204,
+200,200,224,173, 92,185,210,152,153,153,201,115,119,119, 79, 53,243,100,103,103,243,118,239,222,109, 84,169, 84, 60, 7, 7,135,
+155, 57, 57, 57,101,242,101,100,100, 12, 26, 58,116,232,133, 51,103,206,184, 80, 20,133,216,216, 88,100,102,102,194,209,209, 17,
+ 91,183,110,133,159,159, 31,246,236,217,163, 84, 42,149,163,126,250,233,167, 25,133, 34,171, 44, 31,173,214, 77,154, 52,241,203,
+206,206,134,163,163, 35,212,106, 53,110,222,188,137, 58,117,234, 32, 41, 41, 9, 36, 73,194,209,209, 17,191,253,246, 91, 62, 65,
+ 16,202,210,136, 68, 34, 81,175,240,240,112, 71, 0, 8, 15, 15,119, 12, 15, 15, 47,182,131,107,214,172, 25, 86,173, 90, 85, 84,
+104,217, 51, 48,176, 88,157,172,196,145,182,105,211,166, 56,119,238,220, 84, 59,197,145,222, 44,218,138, 90,179, 4, 2,129,221,
+139,105, 24,134,225,161,192,165,129,176,101,255, 29, 64, 27,145, 72,196, 43,250,102,126,126, 62,207,211,211,179,149, 29,194,215,
+ 89, 36, 42, 48, 56,249,249,249, 33, 39, 39,135,214,235,245, 3,182,109,219,102, 4,128,176,176,176, 1, 52, 77,107, 77, 38, 19,
+197,231,243,161, 86,171,225,230,230,230, 92,138,109,244,155,131, 59,231,121, 20,245,209,242,244,244, 68, 88, 88, 24,116, 58, 29,
+146,147,147, 17, 17, 17, 97,164,105,122,251,234,213,171, 25, 87, 87,215, 17, 31,127,252, 49, 21, 25, 25,249, 57,128, 73, 37,105,
+145,247,204,154,181,174, 68,161, 85,168, 32,207, 1,104, 91,244, 36,139,138,159,210,132, 86, 89, 83,135,124, 62, 63, 59, 46, 46,
+ 78, 98,221,169,152, 76, 38,120,121,121, 49, 44,203, 18,197, 9,173, 55, 49, 5,115,185, 92,217,244,233,211,179, 87,175, 94, 61,
+232,229,203,151,179,108,249,206,238,207,131,176,165,136,200, 90,179,104,206,170,149,139,230, 57, 61, 59,190, 9,235, 87, 44,161,
+105, 26,145,245,234,213,107,149,151,151,199,113,144, 24,145,145,141, 99,133, 34,203, 86, 81, 72, 2,216,120,253,250,245,200, 46,
+ 93,186, 92,218,248,231, 62,167,164,231,207,175, 8, 84, 25,201,242, 26,129, 28,158,183, 95,239, 92,173,150, 55, 96,192, 0, 87,
+ 0, 31,151,213,136,101,103,103, 35, 37, 37,165,168, 0,195,163, 71,143, 94, 59,214,166,194,145, 36,104,154,198,222,189,123, 33,
+ 22,139, 33,145, 72, 94,217,204, 34,171,156, 11, 21, 30, 3, 64,231,206,157,161, 84, 42, 33,149, 74,109, 46, 87, 81,241,194,178,
+ 44,244,122, 61,244,122, 61, 12, 6, 3, 13,128,203,225,112, 48, 50, 33,193, 98,229,177, 71,192, 20, 69,189,122,245,216,203,151,
+ 47,227,210,165, 75, 80,171,213, 88,185,114, 37, 60, 61, 61,219, 3,152,105, 47,151,149,147, 62,173, 82,169,184, 42,149,202, 98,
+ 29,228,114,185, 22,235,129,141,150, 60, 30,135,195,177,140, 70,205,155,181, 85,139,162, 40,184,187,187,195,195,195, 3,107,214,
+172,225, 85,171, 86,173,219,127,217, 2, 45, 94,188,184,198,178,101,203, 54,108,217,178,229,216,160, 65,131,118, 69, 69, 69, 13,
+119,112,112,184,119,246,236,217,121, 2,129,128, 41,231,243,237,147,148,148,228,102,253, 22,195, 48, 98,147,201,100, 17,182,249,
+249,249, 54, 15, 48,184, 92,174,207,131, 7, 15,196, 0, 48,111,222, 60, 46, 0,177,217, 25,220,204,153,159,159,207,173, 83,167,
+142,143,173,117,253,194,133, 11,173, 58,118,236,120,249,212,169, 83, 10, 63, 63, 63, 36, 38, 38, 34, 49, 49, 17, 53,106,212,192,
+130, 5, 11,212, 42,149,170, 5,128,199,121,121,121, 7,108,228,244, 82, 40, 20,220,184,184, 56,152, 76, 38,132,134,134,226,183,
+223,126,195,128, 1, 3, 80,183,110, 93,168, 84, 42, 60,120,240, 0,155, 55,111, 86,240,120,188, 82,219, 14,141, 70,115, 96,221,
+186,117,190, 69, 45, 90,131, 7, 15,150,164,166,166, 90,234,228,156, 57,115, 94,153, 66,180,167, 77, 46,156,218, 42,113, 43, 15,
+ 76, 38,147, 92, 40, 20,170, 4, 2, 1,223,236,159, 21, 17, 17, 97,183, 53,171,200, 0,208,158,253,255, 12,102,209, 90, 76,223,
+ 10, 15, 15, 15,155,121, 4, 2, 1, 97,110, 27, 77, 38, 19,114,114,114,104, 79, 79, 79,203,244,254,173, 91,183,232,170, 85,171,
+210, 20, 69, 81,124, 62, 31, 4, 65, 64, 44, 22,151,216,224,179, 52, 59,167,251,128,153,175,172, 58,156, 56, 29, 48, 24, 12,184,
+117,235, 22, 12, 6, 3, 34, 34, 34,140, 63,253,244, 83, 82,118,118,246, 68, 0,156, 19, 39, 78, 12,157, 58,117, 42,229,230,230,
+214, 49, 45, 45, 13,101,105,145,247, 72,108,189,102,229, 50,247, 66,231,186,117,235, 70, 20, 46,173, 36,204,194,201, 30,161, 85,
+248,240,149,217,243, 18, 4,129,228,228,100,203,190,155,155,155,221,191,101, 43,156,157,157,213,205,154, 53,147,101,100,100, 28,
+ 88,188,120,113,185, 44, 89,107, 22,205, 89,181,112,238, 15, 78,202,135, 87,145,144,148, 12,101,154, 49,242,226,189,151,251, 1,
+236, 7, 0,172,173,125,142, 24, 27,253,171,173,156, 65, 46,162, 16, 46,143,179,255,131, 46,221,124,251,135, 79, 34, 63,251,236,
+179,150, 67,135, 14,205, 25, 52,104,208, 4,169, 84, 90,211, 96, 48,100,237, 59,114, 36,166,127,255,254,213,104,154, 30,138, 50,
+ 98,142,104, 52,154,216,182,109,219, 90, 95, 79,249,233,211,167,221, 99, 98, 98, 48,126,252,248,244,196,196,196,108,235, 99,109,
+ 41,163,193, 96,136, 13, 9, 9, 41,113,186,208, 60,165, 8, 0,185,185,185,177,118, 92,210,129, 40,116,124,207,204,204,196,163,
+ 71,143,192,225,112,208,180,105, 83, 92,188,120, 17, 45, 91,182,188,101,143, 85, 75,171,213,194,207,207, 15, 90,173, 22,106,181,
+ 58, 31,128, 96,107,181,106, 0,128,207, 51, 51,113,243,167,159,112,117,225, 66, 88,215,103, 91, 81,191,126,125,246,234,213,171,
+184,119,239, 30,116, 58, 29, 70,141, 26, 5, 0, 68, 97,221,181, 39,100, 70, 0, 69, 81,157,187,116,233,226, 5, 0,106,181,154,
+184,126,253, 58,132, 66,161,229, 89, 56,116,232, 16, 18, 19, 19, 65, 16, 4, 20, 10,133, 79, 86, 86, 86, 53, 0, 47, 75, 49,251,
+ 19, 47, 95,190,196,143, 63,254, 8,134, 97, 48,117,234, 84, 4, 6, 6, 90, 4, 86,108,108, 44,230,205,155, 7,154,166,241,195,
+ 15, 63,160, 70,141, 26, 48, 26,141, 66, 20, 31, 86,227, 95,193,228,201,147,159,237,223,191,255, 88,124,124,252, 71,139, 22, 45,
+106, 67, 16, 4, 51,101,202,148, 31,229,114, 57,253, 38,188, 89, 57,185,120,244, 52,214, 34,132,138,110,174, 46, 78,118,243, 61,
+121, 30,111,249, 62, 77, 91,243,209,112,118, 82,216, 91,196,124,163,209,168,238,221,187,183,227,222,189,123,137, 26, 53,106,224,
+197,139, 23,102,203, 80, 62,236, 15,233,144,168, 84, 42, 3, 41,138,226, 61,125,250, 20, 85,171, 86, 69,147, 38, 77, 48,127,254,
+124,100,100,100,192,100, 50,193,205,205,141, 49, 26,141,183, 12, 6,195,249, 50,184,230,140, 25, 51,134, 7, 96,108,161,101,171,
+222,196,137, 19,153, 37, 75,150,224,214,173, 91, 22, 11,150,181, 51,188,189, 83,135,214, 86, 39,235, 45, 34, 34, 98, 42,159,207,
+103, 1, 92,131,253,129,158,245, 69, 45, 90,229,177,102,189, 45,188,205,149,140,158,158,158, 17, 50,153,172, 91, 86, 86,214, 43,
+ 86,173, 22, 45, 90, 24,220,221,221, 47,216,202, 35,149, 74,179, 40,138,114, 6,128,196,196, 68, 72, 36, 18,222,243,231,207, 23,
+162, 32,120, 54,170, 85,171,182, 80,169, 84,242,170, 21,182,167, 30, 30, 30,208,235,245, 37,186,177, 92,185,157,186, 9,192, 38,
+243,190,147,147, 83,114, 78, 78,142,104,201,146, 37,121, 11, 23, 46,212,208, 52,173, 3,112, 54, 59, 59,219, 18, 71, 43, 37, 37,
+ 37,135,203,229, 58, 57, 58, 58,122,155,133, 86,113, 90,228, 61, 67,201, 22,173, 66, 37,201, 22, 21, 68, 4, 65,188,230,160, 94,
+134,208, 42, 83,100,209, 52,253,138,149,193,236,240, 94,220,111, 21,118,234,229,154, 58, 44, 20, 89,194,125,251,246,109, 93,188,
+120,241, 53, 91,191,103,237,163,181,246,231,185,139,204, 34,235,238,165, 83, 56, 16,157,147, 49,117,225,210,101,229,189, 3,181,
+ 93,196,245,221,221,157,207,253,180, 96,142,252,217,241,205,216,181,246, 23,246,238,141, 27,141,111,220,184, 49,100,252,248,241,
+ 85, 10, 43,150, 18,192, 29, 0,253, 97,195, 42,157,196,196,196, 78, 69, 58,225,199, 60, 30,207, 93, 44, 22, 35, 49, 49, 49,239,
+201,147, 39,118, 79,201,100,100,100,116,122, 11, 21,144, 99, 22, 89, 25, 25, 25,120,240,224, 1,218,181,107, 7, 0,184,120,241,
+ 34, 90,180,104,129,200,200, 72, 52,104,208,224, 22,128, 70, 40, 35, 80,171,209,104,204,174, 93,187,182,197,186,149,147,147,195,
+ 0, 64,120,114, 50,214,121,122,130,195,225,224,234,194,133,248,206,104,196,124, 59, 5,124, 72, 72, 8,123,253,250,117,196,196,
+196,192,100, 50,161,103,207,158, 40,231, 67, 95, 55, 40, 40,232,244,217,179,103, 93,165, 82, 41,212,106, 53,242,242,242, 48,108,
+216, 48, 12, 24, 48, 0, 58,157, 14,187,119,239,198,193,131, 7, 33,147,201,160, 86,171,161, 86,171, 21, 93,187,118,189,252,248,
+241,227,214, 0,158,150, 32,180,216, 78,157, 58,225,194,133, 11,160, 40, 10,141, 27, 55, 70,102,230, 63,139,129,220,221,221,139,
+251,140,250, 47,133, 22,135,195, 97, 35, 34, 34, 22,181,105,211, 6,241,241,241, 31, 53,104,208, 96,229,240,225,195, 19,223,148,
+ 87,225, 32, 67, 72,157, 0,232,116, 58,232,116, 58,120,121,121, 33, 55, 55, 23,207,158, 61,131, 78,167,131,187,155,163,221,124,
+ 97,117,107, 88,248,220,220,220,160, 86,171,241,242,229, 75,232,245,122,184,184,216, 37,180,124, 59,117,234,244,247,246,237,219,
+157, 55,111,222,172,111,219,182, 45,127,229,202,149,132, 92, 46,135, 85,199, 98, 47, 34, 46, 94,188,232,215,177, 99,199, 90, 15,
+ 31, 62, 68, 68, 68, 4,244,122, 61,194,194,194,240,228,201, 19, 52,107,214, 12,121,121,121,215,110,220,184,113,208, 22,195, 48,
+128, 25, 99,198,140,129, 89,108, 93,184,112, 1,201,201,201,144,201,100,175, 9, 45,179,239, 99,225,170,113, 47, 91, 10,107, 22,
+ 68, 86,150,167,239, 28, 29, 29, 13, 0,150,149,211,250, 4, 0,136,143,143, 23,212,171, 87, 79, 39, 20, 10,249,133,162,109,233,
+155,240, 85, 36, 42, 96, 37, 99,137,240,240,240,152,232,226,226,210,209,223,223, 31,169,169,169, 60, 62,159,143, 22, 45, 90, 24,
+ 26, 53,106,100,240,240,240,248,220, 86, 30,129, 64,240,144,199,227,181, 46, 24, 76,208,136,139,139, 3,203,178, 83,235,214,173,
+251,101,110,110, 46, 50, 51, 51,249,114,185,220, 50,168,174, 85,171, 22,116, 58,221, 67, 59, 44,111,115,170, 86,173, 58,131,199,
+227,205,207,200,200, 40, 46, 44, 4,223,209,209, 81,206,227,241, 96, 48, 24, 94, 17,155, 69,181,200,251, 46,178, 94, 17, 90, 86,
+ 42,242, 21,161, 99,143, 69,203, 22,171,129,217,193,222,122,223, 44,234,138,254, 86,121, 99,104, 57, 56, 56,232,204, 34,107,254,
+252,249,215,202,195,177,103,251, 54, 79, 7, 38,223, 55,233,218, 81, 60,190, 23,137,253, 15,178, 51,166, 46, 92, 58,161,251,199,
+ 3, 83,139, 10, 51, 91, 16,232, 42,174,235,238,230,124,238,231,197, 11,229,202,135, 87,145,156,146,130,163,215,110, 68, 26,128,
+ 7, 0,166, 86,164,105, 25, 40,152, 58,164, 40,234,157,168,176,133,247,216,226, 12,159,156,156,108, 22, 89, 97, 0,208,178,101,
+203, 91,133, 34,203,252, 94,153,177,180,178,179,179,139,166,172,233, 8,192,197,124,254, 28, 14, 7, 45,102,204,176, 91,100, 1,
+ 96, 35, 35, 35,161, 84, 42,205, 35,197,242,138, 44,120,120,120,124,125,246,236, 89,215,141, 27, 55,170,182,108,217,146,201, 48,
+ 12, 55, 36, 36,196,167, 97,195,134,196,214,173, 91, 1, 0,253,251,247,199,212,169, 83,113,255,254,125, 72, 36, 18,180,108,217,
+146,158, 53,107,150,219,196,137, 19, 63, 79, 77, 77,157, 80,108,239,200, 48, 60,161, 80,120, 6, 64,251,135, 15, 31, 2,192,101,
+ 20,164,112, 50, 91, 17, 74,252,204,150,206, 55, 55, 55,151, 43,147,201,138, 13, 13,193, 43, 24, 13,217,107,129,176,112, 94,186,
+116,233,199,159,127,254,121,255, 87, 95,125,245,244, 13, 57,139,181,104,117,235,214, 13, 26,157, 1, 9,169, 57,160,105, 19, 52,
+134, 52,187,249,172, 45, 90,221,186,117, 67,190, 86,143,184,100, 37, 76, 38, 26,185, 26,155,251,114,241, 7, 31,124,112, 98,231,
+206,157, 30, 87,174, 92, 1, 77,211,204,147, 39, 79, 94,246,238,221, 91, 62,101,202, 20,231, 55, 88,100,180, 98,224,192,129,125,
+ 47, 93,186,164,172, 85,171,150,211,181,107,215,144,150,150, 6,147,201,132,246,237,219,131,207,231,199, 45, 92,184,144, 7, 96,
+133,173,247,166, 80,108, 25,110,220,184, 49,250,234,213,171, 78, 78, 78, 78,124, 38, 40, 8,201,167, 78, 97,239,222,189,175,125,
+ 97,237,218,181,128,141, 81,248,205, 22,167,235,215,175, 87,136,192,122,165,167,230,243,203, 61,253,248,190,226,250,245,235,137,
+159,125,246, 89, 29,185, 92,190,172, 85,171, 86,237,156,157,157, 73,133, 66, 17,225,237,237,253,101, 72, 72,136,205,179, 11, 92,
+ 46,119,184, 68, 34,121,102, 50,153,168,188,188, 60,168,213,106, 0,128,201,100,226,147, 36,137,106,213,170, 89,250,146,198,141,
+ 27,195,195,195,131,142,142,142, 30,110, 43,127,122,122,250, 43,171, 16,139,193,152, 22, 45, 90,112,116, 58, 29, 98, 98, 98, 46,
+ 90,127, 80,156, 22,121, 79, 16, 94,170,248, 50,159,148,245,201,121,123,123,199, 27,141, 70,246, 1,192,222,185,115,135, 13, 15,
+ 15, 47,117,211,106,181,172,155,155, 91,114, 49,157, 31,172, 57,117, 58,221, 43,223,211,233,116,172,187,187, 59,173,209,104, 94,
+227,212,104, 52,172,143,143, 79, 98,105,156,197, 96,216,237,219,183, 87,127,247,221,119, 77,236,184, 64, 22, 78,118, 77, 16,187,
+121,243,230, 79, 88,150,109,211,170,142,223,189,126, 33,238,108,139, 64,183,164,131,123,182, 15, 96, 89,182, 77,209,205, 28,224,
+180, 52,206, 32,119, 73,237, 14,193, 85,178,238, 30,223,193,158, 93,242, 5,251,115,207, 64,182,129,143, 44, 59,200, 69,100,111,
+142,152, 50,179,165, 7, 7, 7, 63,102, 24,134,213,235,245,108,112,112,240,147,138,224, 44, 7, 74,227, 12, 69,129, 47,219,192,
+ 98,222, 11,125,131,114,222,101, 89,150, 85, 42,149,108, 94, 94, 30,171,211,233, 88,154,166, 89,107, 0,184,107, 3, 39,107, 48,
+ 24,216,172,172, 44, 22,182,251,220, 21,203,233,233,233,249,242,249,243,231,108,245,234,213,227, 11,205,241, 19,213,106, 53, 91,
+ 20,106,181,154,109,215,174, 29,251,228,201, 19,182,106,213,170,218, 39, 79,158,176,158,158,158,143,202, 40,167,191,175,175,239,
+ 25, 23, 23,151, 8, 0,129,118,124, 86,234,245,220,189,123,119, 0,203,178,163, 88,150, 13, 47, 97, 27,197,178,108,208,127,205,
+ 89,120,125, 83, 89,150,101,243,243,243, 89,165, 82,201, 38, 37, 37,177,249,249,249,108, 94, 94, 30,123,251,246,109,246,202,149,
+ 43,236,189,123,247, 88, 39, 39,167, 84, 91, 56,205,124,122,189,158, 85,169, 84,108, 90, 90, 26,171,209,104, 88,181, 90,205, 70,
+ 69, 69,177, 55,111,222,100, 31, 62,124, 88, 28,223,107,156,206,206,206,107, 83, 82, 82,242, 46, 95,190,156,191,102,205,154,124,
+ 15, 15,143,135, 0,252, 0,212, 84, 40, 20, 41, 95,124,241, 5, 43,149, 74, 99,203,249, 28,213,225,114,185,183, 23, 45, 90,116,
+253,240,225,195,169, 7, 15, 30,212,111,216,176, 33, 97,252,248,241,231, 57, 28,206,109, 0,117,202,249, 28,185, 57, 58, 58, 94,
+190,118,237,154, 41, 43, 43,139,205,206,206,102, 85, 42, 21,171, 86,171, 89,141, 70,195,234,245,122,214,104, 52,178,231,207,159,
+103,221,221,221,173,167, 37,191, 41,101,144, 53,137,101,217,175, 89,150,229, 84,116, 91,103,197,221,170,162, 56, 43,162,173, 35,
+ 73,210, 80,216,118, 52, 45,216, 45,125,255,191, 42,103,135, 14, 29,126, 24, 48, 96, 0,219,185,115,103, 54, 44, 44,236,181,173,
+ 65,131, 6,236,184,113,227,216,195,135, 15,179, 63,253,244,211, 15, 21, 80, 78, 14, 10, 22,189, 44,232,208,161,131,241,194,133,
+ 11,108,255,254,253, 89, 0,157, 74,211, 34,239,179,224, 50, 47,166, 49,135,119, 32,172, 95, 1,192, 96, 48,196, 63,126,252,216,
+179,150,201, 68, 1,192,175,191,254,250,154,149,194, 26, 23, 46, 92, 48, 17, 4,241,172,180, 95, 55, 24, 12,241,103,207,158,117,
+ 95,181,106, 21,215,202, 4, 12,147,201,196, 36, 37, 37,145, 43, 87,174,124,229,248,115,231,206,153, 76, 38, 83,156,157, 39,185,
+ 57, 52, 52,116,115, 69, 92,173,243,247, 99,190, 60,113,244, 47,151,166, 77, 90,101,203,157,156,138, 29,133,237,254, 60, 8,196,
+216,210,173, 90, 4,135,156,191,104,193, 28, 71,243, 20,228,159,183, 82,178,181, 58,186, 93,116,134,230,110, 69,223,225,188,188,
+188, 24,243, 74, 64,181, 90, 29,247, 14, 86,194,219, 40,136,113,101, 42,242, 94, 35,188,161,211, 41,195, 48,112,112,112,176, 88,
+ 67,203, 97, 17,101,139, 88,210,222,200, 71,128,101,217, 75, 81, 81, 81, 85,135, 13, 27, 38,219,178,101,203,115,154,166,185, 35,
+ 71,142, 52,120,120,120,240, 46, 94,188,104, 4, 64,180,105,211,134,147,146,146,194, 38, 38, 38, 42,123,244,232,145, 59,122,244,
+104,231, 59,119,238,240, 25,134, 41, 43,104,225,139,248,248,248, 14,229,248,172, 84,244,235,215,239, 57,222, 60,141,205, 91,231,
+ 52, 67,153,173,194,243,152,196,194, 8,230, 12,232,216, 84,139, 95,149,209,104,130, 82,149,105,183, 69,235,217,203,196,194, 20,
+ 99, 52,104, 58,169,144,175,192, 33,158,205,202, 47,187, 55,225,112, 90,206,154, 53,171, 11, 73,146,228,213,171, 87,117,139, 23,
+ 47,142, 79, 79, 79,239, 9, 32, 14, 0,178,178,178,218,110,222,188,249, 15, 27, 66, 57,148,132, 7, 70,163,177,217, 55,223,124,
+ 51, 1, 64, 75, 0, 85, 10,185, 47, 22, 90,178,202, 27,193, 60, 45, 59, 59,251,195, 46, 93,186,156,162, 40,170,154,213,115,228,
+ 2, 32,195,252, 92,176, 44,235,150,154,154,250,145, 45,132, 4, 65, 44,125, 91, 13,201,219,228,126,195,118,232,189, 88,201,120,
+230,204,153,217, 61,123,246,228,248,249,249,125,235,231,231, 71,102,101,101, 33, 47, 47, 15, 36, 73,194,195,195, 3,193,193,193,
+240,240,240, 96, 30, 62,124,184, 96,218,180,105,101,198,228,171, 93,187,118,128,209,104,172, 78,146,100, 0,128, 0,150,101, 3,
+ 8,130, 8, 0,224, 4, 0,114,185, 92, 94,181,106, 85, 78,211,166, 77,209,164, 73, 19,156, 59,119, 14,123,246,236,217, 4,224,
+132,181, 53,171,168, 22,121, 23,240, 32, 20,108,157,219, 32,238, 55, 64, 27,130,193, 57,150, 68,219,224, 72, 75,156,189,162, 34,
+171,228,164,210,197,152,254, 58,181,111,223,222,242,192,217,208,169,196,148,245,240,165,167,167,119, 26, 62,124,248, 43,156, 52,
+ 77,235, 50, 51, 51, 63,107,222,188,249,111, 20, 69, 9,138, 84,216,216,180,180,180,127, 53, 87, 95,209, 56, 90,157,186,244,202,
+120, 83, 78, 41,143,172,254,248,200,239, 72, 77,203,192,159,183, 82,178,114,245,116,219, 39, 25,249, 81,111,163,252,177,177,177,
+157,223,101,169,111, 53,141, 88, 20, 55,237, 73,189, 83, 92,245,178, 33, 32,105, 89, 57,234,136,194,112, 34, 21,242,144,167,164,
+164, 44,153, 49, 99,198,135, 11, 22, 44,112, 61,118,236,152,220,124,254,125,250,244, 73,139,138,138,106, 5, 64,160,213,106, 79,
+ 47, 88,176,192,117,206,156, 57,206, 0,156, 1,160,107,215,174,169,169,169,169,171, 80,137, 82, 97, 52, 26, 19,130,107,215,122,
+101,228,104, 30, 0, 90,255,111, 50,153, 18,236,225, 43,142,199,122,159,166,233, 82,249, 40,138,250,170, 73,147, 38,212, 87, 95,
+125,149,122,236,216, 49,115, 34, 93,107,133,246,184,140,160,164,182, 64, 7, 96,113,225, 86,145, 80, 43,149,202,102,118,126,135,
+174,172,141,197, 14, 40,237,217,255, 79,112,224,192,129,153,253,251,247,223,236,228,228,180, 45, 32, 32,160,150,187,187,187, 92,
+ 36, 18, 65,167,211,229,234,245,250, 71,143, 31, 63, 30, 52,115,230,204, 23, 54, 89, 56, 54,111,166, 0,240, 24,134, 17,146, 36,
+ 41, 1, 32, 39, 8, 66, 97, 22, 90, 4, 65,192, 96, 48, 32, 38, 38, 6,223,125,247, 29,125,230,204,153,159, 0,252, 96, 71,223,
+209, 8,128,171, 85, 59,238, 10, 64,143,130, 0,182,233, 4, 65,220,120,219,215,139, 96,112,174,206,109, 16, 15, 66, 81, 92, 63,
+ 81,122, 82,233,146, 30,184,244,244,244,102, 21,253, 16,151,196,153,158,158,238,247,174, 60, 33, 67,117,139,119, 96,237,226, 87,
+242, 28,154, 69, 88,113,251,101, 33, 71, 99, 26,191,226,196,253, 37, 58, 19,203, 24, 76,204,136, 39,233,249, 15,254,191,182, 62,
+165, 9,169, 55,204,107,249, 65, 69, 21,177, 2, 79, 55, 42, 58, 58,186,249,248,241,227,103,138,197,226,198, 0,144,159,159,127,
+ 53, 41, 41,105, 46, 10, 87, 21,150,245,121, 37, 74, 70, 70, 70, 70,195,119,145, 79,175,215,127,217,188,121,243,229, 52, 77,255,
+108, 50,153, 46,254, 63,184, 21,218,202,218,248,254, 98,215,174, 93, 47, 0, 52, 3,128,190,125,251, 82, 0,176,103,207, 30,187,
+197,243,176, 97,195,104,150,101, 13,133,245, 65,141,130,213,133, 89,230, 54, 85,173, 86,103, 37, 37, 37, 61,164,105,250, 33,128,
+ 63, 96,255,138, 91, 87,130, 32, 14,179, 44,219,173,176,191, 56,204,178,108, 55,235,247,222,182, 85,171,140, 67,202,118,134,175,
+ 68, 1,246, 60, 0, 81,116, 42,176,172,253,178,240, 56, 85, 29, 1,160, 65,229,213,253,127,137,231, 73, 73, 73, 67,223,224,243,
+ 74,188,127,136,211,235,245, 61,255, 31,157,111, 78,229, 45,255, 31,233,255,202, 33,176,204,120,248,240,225, 91,115, 17,248,175,
+ 81,231,246,171, 3,240,162,251, 86, 8, 47, 78,120, 85, 10,173, 74, 84,162, 18,149,168,196,155, 32,187,242, 18, 84,226,127, 25,
+102,223, 44,243,126, 9, 62, 90, 69,253,179, 44,251, 4, 74, 94, 57, 96, 79, 86,242,242,172,146, 56, 93,201, 89,201, 89,201, 89,
+201, 89,201,249,159,115, 58, 2,168, 10, 96, 81, 25,199, 21, 93, 93,152, 10, 32, 3,128,177,242,122, 86,114,190,129,126,176, 9,
+ 44,203,118, 45,109,234,144, 32,136, 35,111, 75,104, 89,156,225, 67, 49, 43,248, 54,102,153,247,203, 18, 90, 44,203,174,251, 55,
+132, 96,199, 74,206, 74,206, 74,206, 74,206, 74,206, 74,206, 74,206, 74,206, 55, 20, 90,237,166, 77,155, 54, 29, 5,161, 49,216,
+105,211,166, 77,103, 89,182,107,193, 71,108,215,183,249,219,247, 27,160,205,131, 80,176,230,237,126, 3,180, 41,225,208,112,171,
+237,213,240, 14,149,168, 68, 37, 42, 81,137, 74, 84,162, 18,239, 48, 46, 47, 92,184, 48,127,225,194,133,102,199,247,116, 0, 68,
+161,133, 43,253,109,254,112,225, 52,161, 45, 11,165, 74, 79,193,243, 31,192,139,228,240, 6,115,121,130,118, 96,153, 96, 0, 0,
+ 73,221,167,245,218,191, 77, 38,195, 54, 0, 73,229, 37, 14, 2,106,215,112, 20, 29,212,209, 52, 47, 62, 87,223, 55,186, 32,205,
+129,221,232, 11,180, 16,240,249, 39, 5,142,142,162,226, 62,215,101,103,107,116,122,253,135,123,128, 75,149,207, 64, 37, 42, 81,
+137, 74, 84,226, 61,129, 68,161, 80,156, 33, 73,210,207,252,134,245,170,239,162, 43,192,105,154, 78, 86, 42,149, 31,162, 96,170,
+248,223,228,180,254,190, 30,229,236,203, 43, 26,182, 78, 29,194, 58,188,131, 85, 20,214, 50, 51,102,215,242,144,180,170, 21,224,
+183, 61, 41, 37,245,150, 74,171, 31,249, 56, 41, 79,105,111, 33, 41,174, 96,180,204,193,113,254, 39,195,191,116, 14,172, 89,139,
+240,245,245, 6, 88, 32, 46, 62,193,253,217,211, 39, 29,118,109, 89, 49, 89,149,163,252,206,168,211,253,110, 47,119,109, 64, 82,
+ 69, 42,184,248,251,180, 79, 29, 57, 48, 97,224,188,237,199,137, 60,131,239,195,130,229,166,118,137, 44, 71,103,231, 19, 11, 79,
+159, 22, 41,234,215,127,229, 51,150,101, 11,242,235,221,189, 43,250,246,195, 15, 79,244, 85, 42, 59, 85,138,173,255, 73,120,200,
+229,242,137, 92, 46,183,173,193, 96,240,227,243,249,241, 52, 77, 71,100,101,101, 45, 3,144, 88,121,121, 42, 81,137, 50, 81, 90,
+126,205,255, 44,247, 38, 0, 72,165,210,155, 36, 73,250, 88,139, 0,115,206, 94,243,126,209, 87,134, 97, 94, 40,149,202,230,165,
+208, 6, 56, 57, 57,253, 6,160, 81, 89,225,106, 10, 99,179,221, 80, 42,149,159,161,228,213,122, 50,133, 66, 49,155, 32,136,126,
+ 36, 73, 82,101,157, 19,195, 48, 52,203,178,187,179,178,178,126, 0,144, 91,210,113, 10,133,226,116,116,116,116, 35, 55, 55,183,
+ 50,173, 52, 38,147, 9,113,113,113,174,141, 27, 55, 62,175, 84, 42,131,222, 38,167, 61, 90,228,191, 68, 41,171, 14, 75,172,232,
+ 0, 94,201, 47, 68,148,126, 35, 49,120,227,252,207,188,147, 99,159,122,143, 89,176,163, 38,225, 76,183,125,148,169, 73,177,245,
+ 7,121, 66,233,193,102,173, 59,181, 27, 55,225, 43,201,237,168, 71, 56,121,238, 10, 84,106, 29, 40,146,132,163, 76,140,154, 53,
+171, 19, 75,215,237,117,217,180,102,233,207, 87, 47,156,234,170, 85,231,244,176, 75,166,139, 57,223, 77,237,221, 88,226,236, 68,
+ 3, 12,141,175,187,132, 72,190, 61,124,235, 59,228,155,166,219, 45,178,206,156, 17,167,165,166, 98,142,151, 23, 56, 38, 19,132,
+ 36, 9, 33, 65, 64, 72,146,144, 8,133,232,188, 97, 3,230, 30, 59, 38,158,249,209, 71,149, 98,235,127, 12, 82,169,116,184,151,
+151,215,226,245,235,215, 59,251,251,251, 67, 34,145, 64,169, 84,186, 60,126,252, 56,116,210,164, 73, 67,147,147,147,103,168, 84,
+170,181,149, 87,170, 18,149, 40, 17,161, 0,110,161, 48,127,169, 29,159,149, 8,161, 80,152,170,213,106,221, 74, 59,134,207,231,
+167,233,245,122,247,178,184, 72,146,244, 73, 76, 76,116, 19,139,197,160,105,186, 48, 27, 0, 99, 25, 72, 91,103, 63, 41, 12, 84,
+139,160,160, 32, 67,105,156, 50,153,236,215,180,180,180,142,230, 60,129, 86,130,170, 88, 36, 38, 38,118,172, 83,167,206,175,185,
+185,185, 31,150, 32, 94,102, 79,152, 48, 97, 98,221,186,117,205, 86,160,194, 44, 8, 5,175, 25, 25, 25, 24, 63,126,188,229, 55,
+ 24,134,193,169, 83,167, 38, 12, 31, 62, 28, 89, 89, 89,147, 74, 57,119, 63, 55, 55, 55,162, 48,161,120,137,152, 53,107, 22,102,
+205,154,133, 21, 43, 86, 16, 92, 46,215,177,140,235, 89, 33,156,182,106,145,255,194,130, 85, 70,100,248, 35,120, 53,188,195,145,
+215,132,150,173, 32, 89,230,232,188,101,235, 71,206, 25,214,146,216, 56,169, 99,224,216, 21,167,175,144, 60,182,245,195,100,109,
+188, 13,150,172, 17,141,154,119,108, 59,126,226, 84,201,142,191,206,226,241,195,187,136,190,184,243,149, 99, 26,126, 56, 28, 41,
+ 25,185, 24, 62,238,107, 41, 65,113,218, 94, 56,125, 96,132, 81,167,217,104,163, 53,203,221, 79,192,255,162,105,227, 96,110,162,
+232, 49, 60, 20, 34,180,108, 80,131,235,123,226,222, 23,106,152,150, 63, 44, 88, 37, 99,151,200, 90,255,233,167,104,101, 52,194,
+141,162, 64, 17, 4, 40, 0, 36, 65, 64,171,211,225,198,224,193,104,188,117, 43,126, 56,116, 72, 60,187,123,119,187,196,150, 68,
+ 34,185, 77, 16,132, 34, 47, 47,175, 43, 10, 18, 75,191, 15,168, 35,149, 74,143,176, 44,155,165, 86,171, 67,223,161,114,121,162,
+ 96,142,190,232,232,152,135,130, 21, 85,118,101, 22, 22, 8, 4,163,251,246,237,187,116,213,170, 85,226,212,212, 84, 36, 37, 37,
+129,166,105, 8,133, 66, 4, 6, 6, 18,167, 79,159,118,158, 58,117,234,146, 35, 71,142, 8,114,115,115,151,219, 51,176,225,114,
+185,235,156,156,156, 62,114,119,119,151,164,165,165,229,103,103,103,159,210,233,116,163, 81,254,180, 41, 36,151,203, 29, 84,181,
+106,213, 94, 94, 94, 94,238,137,137,137, 25, 9, 9, 9, 7,117, 58,221, 38,148, 51, 81,179,213, 53,173,143,194,104,245, 0,146,
+171, 86,173,122, 63, 38, 38, 38,173, 2, 57,147,170, 86,173,250,160, 28,156, 18, 0,187, 0,120,149,113, 92, 18,128,254,176,211,
+154, 93,137,138, 19, 89,133,217, 30,138, 10,170,210, 62, 43, 21, 58,157,206,213, 96, 48,128, 91, 66,178,120,181, 90, 13,153, 76,
+230,106,107, 33, 69, 34, 17,118,238,220, 9, 46,151, 11, 46,151,139,172,172, 44,248,248,248, 88,246,121, 60,158,229,255, 42, 85,
+170,148,201, 71,211,116, 99,138,162,144,151,151, 7,154,166, 45, 91,118,118, 54, 88,150,133, 64, 32, 0, 77, 23,164,115,178,250,
+188,113, 73,124, 4, 65,244,243,242,242,194,142, 29, 59,160,215,235, 95,251, 92, 46,151, 35, 42,234,159, 36, 35, 20, 69,161, 73,
+147, 38, 36, 65, 16,253, 0, 76, 42,133,151, 5,128,240,240,112, 80, 20, 5,138,162, 64,146,164,229,127,243, 70,211, 52,102,205,
+154, 5, 91,178,118,188, 13,206,119, 13,101, 68,134, 79, 70, 9, 62, 90,100,105,164,181,220, 37,159, 77, 26,216, 49,255,187, 17,
+ 93,216,233, 67, 62, 96,167, 14,108,195,126,212,186,222, 95, 20,135, 67, 92,123, 16, 7, 31, 7, 96,211,248, 70,126,190, 46,146,
+168, 96, 39,105,205, 98, 40,172,151,120,122,137, 37,242, 31, 63,251,242,107,233,145,243,247, 16, 23, 31,247,154,200, 2,128,155,
+ 39, 55, 33, 57, 41, 17,183,162, 19, 48,104,196,231, 82,185,220,241,199, 34, 13,106,137,203, 70, 29,100,188,159,166,245,111, 41,
+204, 51, 38, 33, 87, 1, 80, 1,124,112,197,106, 76,237, 86, 95, 32,151,241, 74, 75, 85, 97,225, 20,240,249, 39, 23,158, 62,109,
+ 17, 89, 45,116, 58, 8,104, 26, 38,154,182,136, 44,189,201, 4,141, 94, 15,207,188, 60, 60, 27, 62, 28,172,209,136, 25,251,247,
+139, 5,124,254, 73, 91,202, 9, 0, 60, 30,207,243,224,193,131, 85,234,213,171,119, 14,182, 7, 51, 61,253, 22,234,142,173,156,
+ 13, 66, 66, 66, 34,182,110,221, 90,133,199,227,121, 86, 4,167, 80, 40,252, 88, 34,145,164, 11,133,194,143,203, 89, 78, 18,192,
+188,145, 35, 71, 70, 86,175, 94,253,108,161,176,178,136,154,234,213,171,159, 30, 57,114,228,109, 0,179, 74,168,235,197,113,122,
+123,121,121,205, 95,181,106,149,248,201,147, 39, 72, 76, 76,132,209,104,196,192,129, 3, 65,211, 52, 52, 26, 13,244,122, 61, 22,
+ 45, 90, 36,113,118,118,254, 14, 5,137,130,109, 57,119,158,131,131,195,147, 45, 91,182,244,125,249,242,165,244,236,217,179, 68,
+ 84, 84,148,100,201,146, 37, 61,157,157,157, 31, 3, 16,148,227,122,146,158,158,158, 27, 15, 28, 56,240, 89, 84, 84,148,207,190,
+125,251,184, 87,175, 94,245, 92,179,102,205, 40, 79, 79,207,173, 0,168,114,222,163, 80,177, 88,220, 97,202,148, 41,204,229,203,
+151, 19, 47, 95,190,156,184,116,233, 82,180,106,213,170,197,156, 57,115,194,202,201,217, 64, 38,147,181,159, 50,101, 10,115,225,
+194,133,164,107,215,174, 37, 44, 89,178,132,108,223,190,125,203,249,243,231,215,183,147,115,215,229,203,151,219,196,199,199,251,
+ 39, 36, 36, 84, 75, 72, 72,168,154,144,144, 80, 53, 49, 49,209, 47, 57, 57,185, 74, 74, 74,138,111, 90, 90,154,111, 68, 68, 68,
+ 75, 0,219,223,177,231,232,255, 3, 39,199, 44,164,148, 74, 37,142, 28, 57,130, 66,235, 85,168,181,200, 82,169, 84, 72, 78, 78,
+ 54,127,198,177,165,156,114,185,252,204,250,245,235, 89,173, 86,139,156,156, 28,164,165,165, 33, 62, 62, 30,207,158, 61, 67,102,
+102, 38, 30, 61,122, 4,177, 88,124,198,150,114, 18, 4, 1,154,166, 45, 66,234,212,169, 83, 24, 57,114, 36,148, 74,165,229, 61,
+ 14,135, 99,249,223,252,157,178, 56,205,150, 39,154,166,113,237,218, 53,140, 25, 51, 6, 75,151, 46,197,246,237,219,113,248,240,
+ 97, 40,149, 74,139,216, 50,153, 76,101,114,102,100,100,128, 97,108, 27, 51,177, 44,139,156,156, 28,155,239,187,181, 0,226,112,
+ 56,175,137, 34,243,102, 79, 93,122, 67,206,119, 22, 54, 68,134, 47,121,132,109,254,167,208, 84,215,246, 21,161, 85,213,227,187,
+197, 19,251,137, 64, 27,192, 26, 53,128, 33, 31, 48,228,129,209,231,131,224,137, 0,163, 6,174, 2, 37,118,141,171, 37,255,102,
+199,243,135,244, 35,162,107,116, 70,238,241, 98,123, 4, 14,111, 80,191, 97, 19,156, 19,210, 84, 72, 76,205, 1, 69,254,211,239,
+133,117, 28, 6, 14, 69,226,250,137, 2,195, 21, 73, 81,200, 81,235,144,157,103, 64,223, 97, 19,157,126, 95,250,253, 32,147, 65,
+ 91,106,140,151,186, 64, 96,176, 84,218,187, 78,157, 42,228, 67, 65, 52,194, 62,186, 8,154, 1,216, 11,221, 17,154,229, 70, 5,
+157,228,247, 86,231, 26,230, 71, 1, 79, 74,181,102, 56, 58,138, 20,245,235, 99,142,151, 23, 90, 27,141,224,177, 44, 62, 72, 77,
+197,221,137, 19,161,219,187, 23, 36, 0,222,199, 31,163,221,178,101, 56,239,229, 5, 15,141, 6,217,147, 39,195,245,248,113,240,
+228,114, 17,210,109, 91,252, 64, 16, 4,218,182,109,139,211,167, 79, 59,119,238,220,249,196,189,123,247,250,152, 76,166,243,229,
+185,137, 14, 14, 14, 55, 57, 28,142, 79, 89,199,153, 76,166,132,156,156, 28,187,211,140,112, 56,156,214, 77,154, 52,217,191,111,
+223, 62,133,193, 96,168,144, 81, 8,159,207,239,220,179,103,207,245,171, 87,175,150,143, 26, 53,106,253,225,195,135,243,245,122,
+253,113,123, 44, 57, 0,230,173, 93,187,118,108,120,120,184,227,168, 81,163,216,103,207,158, 89, 91,175, 92, 91,181,106, 85,125,
+253,250,245, 30,141, 26, 53,154, 48,102,204, 24, 30,128, 25,101, 89,121,164, 82,233,184,245,235,215,187,100,100,100, 32, 47, 47,
+207,210,200, 38, 36, 36, 64, 36, 18,129, 36, 73,144, 36, 9, 46,151,139, 31,127,252,209,121,220,184,113, 19,149, 74,229, 68, 27,
+172,100,235,126,251,237, 55,215, 15, 63,252,144,124,249,242, 37, 72,146,132, 80, 40,196,167,159,126, 74,106, 52, 26,197,156, 57,
+115, 54,171,213,234, 1,246, 92, 67, 46,151, 59,104,221,186,117, 53, 91,180,104,193,137,142,142, 70,179,102,205,112,253,250,117,
+124,252,241,199,220,220,220,220,106, 83,167, 78, 29,169,211,233,236,141,227,226, 41, 22,139,235,254,253,247,223,241,190,190,190,
+150,134,165, 90,181,106,116,215,174, 93,149,209,209,209,181, 46, 95,190,156,217,188,121,115,123, 18,150,123,139,197,226,160,163,
+ 71,143, 38,207,153, 51,167,195,218,181,107,123, 2, 64,227,198,141, 15,206,157, 59,247,172, 82,169, 12, 62,127,254,188,178,117,
+235,214, 9, 54,242,121,121,122,122,210,227,199,143,151,150,118,208,134, 13, 27,178, 81,144,112,217, 31,192, 11, 84,226,223,130,
+ 9, 64, 24, 65, 16,183,142, 28, 57,130, 38, 77,154,224,200,145, 35,232,218,181,235, 45,107, 49, 16, 21, 21,133,214,173, 91,163,
+208,162,101,147,175, 86, 78, 78,206,180, 89,179,102, 93, 24, 52,104,144,248,149,198,128, 36,225,232,232,136, 46, 93,186,104,213,
+106,245, 52, 91, 11, 74,211, 52, 56, 28, 14, 18, 18, 18,176, 97,195, 6, 44, 88,176, 0,129,129,129, 48, 26,141,175,137,173,194,
+118,207,166,198,207,100, 50,225,198,141, 27,216,182,117, 43,102,124,247, 29,100, 50, 25, 0,192, 96, 48, 64,153,149, 5,161, 80,
+104, 17, 99,101, 8,167,221, 79,159, 62,157,232,227,227,243,202,148,161,249,181,176,205, 2,195, 48, 48,153, 76,208,106,181, 88,
+186,116,169,137,101,217,221,101,245, 63,102, 81, 52,113,226, 68,232,116,255, 24,212,235, 23,250, 36, 87,173, 90, 21, 33, 33, 33,
+150,125,146, 36, 89, 91, 57,127,111, 94, 23, 26,171,163,107,205, 90, 2, 0,240,241,241, 65,173, 90,181,224,233,233, 89, 34,103,
+113, 90,228,191,134, 29,145,225, 75, 22, 90, 37,101,202,126,248, 50,101,209,168,169, 75,150, 72,132, 20,247,203, 94,245, 80,197,
+145, 7,136,156,192,107,253, 13, 8,199,130,129, 60,171,124, 1,156,252, 6, 63,247, 86,146,225,127,104,255, 50,208, 10,215,231,
+ 89, 89,175, 57,225,113,121,194,118, 1, 53,106, 18,113,201, 74,112, 56, 28, 72, 28, 92,208,188,215, 36, 80, 20, 9,169,163, 11,
+ 8, 90,243,143, 34, 38, 41,112, 40, 14,148,185, 26, 84,245,175, 65, 10,132,162,118,234, 50,132,150,220,129,251,219,148, 1,205,
+133,153,166, 4,136,170, 8, 65,155,187, 83, 47, 62, 72,231, 92,124,213, 57, 80, 20,126,240,222,111,200, 49,182,183,229,194, 80,
+ 38, 19,220, 40, 10, 6,150,197,221,137, 19, 17,182,110, 29,110,153,133,225,186,117,184, 21, 30, 14, 39, 46, 23, 2,146, 4,107,
+ 52,190, 54,167,111,139,208, 2,128,248,248,120,236,221,187,215,169, 95,191,126,251,163,162,162, 6,217, 41, 54,204, 92, 46,215,
+174, 93,115,243,247,247, 47,241,152, 23, 47, 94,160, 97,195,134,118, 79, 79,241,249,252,206,237,219,183,223,177,119,239, 94,135,
+ 7, 15, 30,192,205,205,237,141,133,150, 64, 32,104,221,177, 99,199, 29, 91,182,108,145,167,167,167, 99,221,186,117,242,238,221,
+187,111,143,140,140,236,165,211,233,108, 17,155,175,136,172,117,235,214,101,111,216,176,225,119,188, 58, 69,152,188, 97,195,134,
+141,141, 26, 53,250, 44, 60, 60,220, 17,192,216, 66,223,129, 82,197,150, 64, 32,104, 27, 16, 16,240,202,168, 86, 32, 40, 48, 54,
+ 73, 36, 18, 56, 56, 56,128,199,227, 65,167,211, 33, 44, 44,140,224,243,249, 45,109, 57,103,153, 76,214,177,119,239,222,228,197,
+139, 23,145,146,146, 2, 71, 71, 71, 72,165, 82,208, 52,141, 81,163, 70, 81, 75,151, 46,109,171, 86,219, 55,195,229,235,235,219,
+179, 67,135, 14,156,251,247,239,227,229,203,151,208,233,116,120,252,248, 49,228,114, 57,134, 12, 25,194, 91,188,120,113,247,196,
+196, 68,123,133, 86,221,240,240,240, 84,107,145,101,134, 68, 34, 33,106,214,172,169,116,118,118,110, 0,192, 30,161, 85,247,243,
+207, 63, 79, 91,184,112, 97,235,211,167, 79, 91,130, 94,158, 62,125,122, 42, 0, 44, 95,190,252,130,171,171,107, 3, 0,182, 10,
+ 45,176, 44,203,124,242,201, 39,177,124, 62, 31, 92, 46, 23,124, 62,255,149,141,199,227,129, 36, 73,153,249,113,254, 31, 22, 53,
+141, 0,252,130,130,228,186,223, 1,184,246,142,148,235, 54,128,176,174, 93,187, 90,196,214,177, 99,199,208,185,115,103,100,103,
+103,227,254,253,251,214, 34,203,158, 4,203,183,141, 70,227,157,157, 59,119, 54,239,215,175, 31, 97,245,124,225,193,131, 7,120,
+244,232,209, 45, 91,249, 72,146, 4,195, 48,224,114,185, 88,178,100, 9, 12, 6, 3,254,248,227, 15,236,217,179, 7, 36, 73,130,
+ 32, 8, 16, 4, 1,185, 92,142, 21, 43, 86,216,213,238,209, 52,141,205,155, 55,227,155,169, 83, 45, 34,171,112, 38, 3, 30,238,
+238,112,118,113,193,243,231,207,203, 20, 90, 89, 89, 89, 63, 28, 58,116, 8,165, 57,195, 31, 58,116,200,242,127, 17,103,248,178,
+251, 57,138,130, 78,167,195, 7, 31,252,147, 42,246,243,207, 63,183,252,175, 84, 42, 65, 81,148,249, 90, 16,182,114,106, 88,160,
+151,240,159,247,186,124,245,213, 43, 22,186,146, 56, 75,210, 34,239,162,117,171, 24,177, 21, 86,104,157,245, 4,208, 21, 5, 62,
+ 90,201, 64, 25, 62, 90, 79,210,212,171, 56, 68,114,200,194,241, 31, 14,171,226,230, 0, 54, 47, 21,188,246, 63,224, 78,186, 8,
+ 75,150, 30, 5, 0,124,253,105, 67,212,239, 56, 15,250, 77, 31, 98, 98, 51,138, 63, 56, 65, 55, 5,192,204,215, 27, 70, 38,200,
+199,219, 11,119,158, 69,129, 67, 81,224, 59,184,192,193,201, 29,140, 73,143,156,180,151, 56,183,239, 87, 0,192,218,205,187, 65,
+146, 36, 56, 28, 10, 58, 61,141,192, 42, 94, 96, 24, 38,168,180,114,214, 6,154,183,117,119,105,226,235,231, 72,220, 87,188, 68,
+ 77, 55,231, 34, 19, 33, 2, 4, 38, 73,137,102, 82, 81,227,172, 28, 85,243,135,192,229, 50,197, 0, 73,130, 36, 8,136,121, 60,
+232,246,238, 45,240,218, 92, 87,208,103,221, 10, 15, 7,249,215, 95,144, 9, 4,160, 8, 2,156, 66, 19,116,121,160, 82,169, 64,
+ 16, 4,182,109,219,166, 24, 50,100,200,246,251,247,239,135,107,181,218,189,246,112,100,103,103,119,109,209,162,197,217,205,155,
+ 55,187,122,120,120,188,246,121, 74, 74, 10,134, 13, 27,150,158,157,157,109, 87, 80, 55,161, 80,248,113,207,158, 61,215,111,218,
+180, 73,254,244,233, 83,228,229,229,193,213,213,245, 77,235,104,131,166, 77,155,238,223,187,119,175, 67, 74, 74, 10,114,114,114,
+160,211,233,176,109,219, 54,199, 46, 93,186,236,141,142,142,238, 12, 32,178, 12,142,153,214, 34,107,204,152, 49,247, 0,184, 1,
+248,173,168, 6, 45,252,172,158,149,216,202, 1,176,184,148,145,168,159, 68, 34, 65, 90, 90, 26,134, 13, 27,134, 39, 79,254, 49,
+128,122,121,121, 89, 70,122,207,159, 63,135,171,171, 43, 8,130,112,179,229,164, 93, 93, 93,165,122,189, 30, 35, 71,142, 68,124,
+124,252, 43,156, 9, 9, 9, 32, 8, 66,108,239,133,116,119,119,119,215,104, 52,104,213,170, 21,180,218,130,188,190,253,251,247,
+ 7,151,203, 69, 90, 90, 26,184, 92,174, 75, 57,238,143, 75,215,174, 93, 75, 12,173, 34,151,203, 13, 10,133,162,182,157,156,206,
+221,187,119, 79, 92,183,110,221,107, 11, 91,174, 95,191,222,195,201,201,233,180,147,147, 83, 77, 59, 57, 25,107, 81,197,227,241,
+ 94, 17, 90, 92, 46, 23, 36, 73, 50,248,223,199, 79, 0,204,171,224, 86, 3, 8,121,135,202,102, 17, 91,199,142, 29, 67,112,112,
+ 48,178,178,178, 16, 29, 29, 93, 94,145,101,110,239,190,153, 61,123,246,201, 62,125,250, 72,204,131, 86,145, 72,132,201,147, 39,
+107,242,242,242,190,177,171, 18, 49, 12, 56, 28,142,101,144, 44, 20, 10, 17, 22, 22,102, 17, 89, 4, 65, 32, 63, 63, 31, 28, 14,
+199,188, 34,145,176,177,140,240,244,240,128, 76, 38, 67,141,192, 64, 60, 45,108, 71,204,255, 11, 4, 2, 16, 4, 1,147,169, 76,
+ 67, 94,110,161, 83,251,164, 10,190, 55,172, 89, 20,149,106, 58,246,242, 2,195, 48,102,145,201, 86, 4,167,139,139, 11,242,242,
+242,108,229,124, 39, 81,130, 69,203, 44,180,186,162,192, 87,235,181,240, 14,109, 0,156,195,171, 75, 42,201,218,238,210, 13, 11,
+199,117, 24,246, 97,176, 11, 52,233, 47, 33,148,185,128,112,172,138, 37, 75,143,226,254,139, 76, 0,192,146,237, 55,177, 99, 78,
+ 23, 64,228,132, 90, 14, 25,240,144,113,122, 63, 74,123, 93,104, 17, 96, 9,134,101,193,161,200,194,185, 91, 10, 20, 69, 66,153,
+158,140,101, 63,140, 45, 20, 89,123,112,228, 66, 52,124, 2,130,255,153,199, 37, 8,128, 45,189,114,187, 58,240,214,141,235,211,
+ 84,148, 74, 36,195,209, 75, 12,161,176,136,126, 84,240, 64, 84, 37, 49,190,173,143,248,198, 33,237,186,135, 57,134, 50, 59, 10,
+ 33, 73, 22, 56,191, 19, 68,177,206, 61,100,225,103, 20, 65, 20, 68,127,101,236,107,211,205, 66, 94, 36, 18,193, 96, 48,128,162,
+ 40,172, 92,185,210,177, 99,199,142,191,217, 43,180, 0, 60, 72, 77, 77,237, 50,106,212,168, 99,187,119,239,118,113,113,113,121,
+101,244, 48,106,212,168,140,212,212,212, 46,176,211,233,158,203,229,254,182,122,245,106,121, 76, 76, 12,242,243,243, 33, 18,137,
+ 44,141, 79,121,235,103,227,198,141, 79, 28, 63,126, 92,145,147,147, 3,131,193, 0,145, 72, 4,150,101, 65, 81, 20,254,252,243,
+ 79,231,110,221,186, 29,141,139,139,107, 95, 90, 89, 69, 34, 81,175, 66,225,132,240,240,112,199,240,240,240, 54, 64,137,145,122,
+ 45, 8, 15, 15,119,156, 52,105, 82,119,141, 70,179,184,148,115,142, 87, 42,149, 30, 34,145, 8,251,246,237,131, 84, 42,133, 88,
+ 44,134,151,151, 23,148, 74, 37,196, 98, 49, 88,150,133,209,104, 52, 55, 22,153,182,156,120,122,122,122,158,201,100,114, 56,118,
+236, 24, 50, 51,255,249, 74,149, 42, 85,144,157,157, 13,134, 97,242,237,189,152, 73, 73, 73,169, 4, 65,248,222,185,115, 7, 49,
+ 49, 49,232,220,185, 51,254,250,235, 47, 52,108, 88, 48, 59,172,215,235,203, 19,196,143,166, 40,138, 45,165,222, 18, 0, 20, 21,
+201, 89,216,121,217,197,201, 48, 12, 99, 22, 89,214,175,214,226,171,140,223,252, 95,129,131,245, 56,225, 93, 45,100,231,206,157,
+161, 84, 42, 33,149, 74, 43,194, 63,231,138, 70,163,121,124,224,192,129, 6, 93,187,118, 5,159,207,199,227,199,143, 17, 25, 25,
+ 25, 13,224,138,189, 66,139,203,229, 98,246,236,217, 24, 59,118, 44,220,221,221,241,205, 55,223,128,195,225, 88, 54,130, 32, 44,
+ 22, 46,123,224,230, 94,250,194, 71,179, 67,124, 89,198,112, 7, 7,135,217, 36, 73,246,163,108,184,112, 52, 77,211, 12,195,236,
+206,201,201, 41, 53,188,131,217,113,221,150,123, 97,125, 13,202,232,211,222,152,179, 4, 45,242,159,163,232,106,195, 18, 44, 90,
+230, 85,135,175,165, 2, 50,159,229,185, 66,147,221, 57,107,145,245,227,216,118,195, 62, 12, 86,224,224,153,107,224, 25,178, 1,
+125,110, 41,119,216, 8,130, 39,129,187, 3,183, 88, 95, 33,130,164, 30, 37, 36, 38,193, 89, 33, 45, 20, 89,133, 27, 73,162,126,
+112,193, 96,246,200,133,104,248,248, 7,131, 67, 81,224, 80, 20,164, 34, 1, 82, 83,146,193,225,144,143, 74,250,217,186, 20,250,
+244,169,233, 91, 85,225,204, 69,134,171, 30,158,238, 37, 24, 6, 26,200,224,227,201, 71, 39,103,161, 95, 93, 10,125, 74,149,229,
+ 44,107, 17, 90, 6,147, 9,188,143, 63,182, 76, 23,222, 10, 15, 71,216,186,117,160,123,246,132,218, 96,120,197, 84, 92, 94,161,
+ 37, 18,137,144,155,155,139, 65,131, 6, 41,141, 70,227,103,229,172, 11,145,153,153,153,125, 7, 15, 30,156,105, 22, 48, 6,131,
+ 1,131, 7, 15,206,204,204,204,236,107,131,149,232, 53, 24,141,198,207, 26, 54,108,168,204,200,200,176,148,179, 60, 13,142, 25,
+ 78, 78, 78, 71, 54,108,216,224,164,211,233, 96, 50,153, 44,156, 34,145, 8, 20, 69,193,213,213, 21, 59,118,236,112,117,114,114,
+ 42, 53,103,149, 70,163, 57,176,110,221,186,108, 0, 88,183,110, 93, 54, 65, 16, 17, 4, 65,172, 33, 8, 98,117,145,109, 13, 65,
+ 16, 17,214,199,106, 52,154,253,165,113,235,245,250,136,232,232,104, 86, 44, 22,131,162, 40, 24, 12, 6, 8,133, 66,139, 73, 92,
+165, 82, 65,163, 41,152,230,142,140,140,132,209,104,188,104,203,185,231,230,230,158,217,188,121, 51, 83,165, 74, 21, 4, 7, 7,
+ 35, 44, 44, 12, 77,155, 54,133,159,159, 31,230,206,157, 75,171,213,234,115,229, 16, 90, 71,118,237,218,101,244,245,245, 69,131,
+ 6, 13, 32, 16, 8, 80,191,126,125,120,121,121, 97,193,130, 5,250,156,156,156, 99,229,184, 77,113, 81, 81, 81, 84, 41, 34, 87,
+ 14, 27, 86,239, 22, 65,252,141, 27, 55,168,166, 77,155, 30, 44,250, 65,227,198,141, 15, 74,165, 82, 7,179,137,221,158, 17,185,
+181,184, 18, 8, 4,150,205,252, 62,135,195,249,255, 96,209,154, 8,224, 30, 10,226, 48,125,243,142,149,205,226,248,158,153,153,
+137,232,232,104, 68, 70, 70,162,105,211,166,184,120,241, 34,240,143,131,188,221,200,201,201,249,102,206,156, 57,106,243, 74,190,
+239,190,251, 78,147,155,155,251,141,189,109, 48,203,178,224,114,185,168, 85,171, 22, 38, 77,154,132,163, 71,143,226,241,227,199,
+ 48, 26,141, 22, 33,100,246,201,180,199,162,197,227,241,224,238,238, 14,163,209,104,177,102, 1,192,211, 39, 79,192,225,112,192,
+ 48, 12,244,122,125,153, 22, 45, 7, 7,135,217,235,215,175,159,144,145,145,225,153,158,158,238,102,189,165,166,166,186, 37, 39,
+ 39,187, 37, 38, 38,186,197,199,199,187,197,198,198,186,189,124,249,210,115,209,162, 69, 19, 28, 28, 28,102,219, 82, 78,138,162,
+ 80,191,126,125,124,254,249,231,150,109,213,170, 85,150,237,220,185,115,118, 59,175, 83, 20,133, 90,179,150,160, 75, 58,107,217,
+142,186, 18,150,237,254,215, 99, 74,227, 44,170, 69,222, 9,152, 87, 27, 90, 39,150, 46, 6,230, 85,135,230,182,204,226,182, 81,
+212, 25, 30, 0, 16,228, 33,158,247,227,232,214,195, 62,168,237,128, 3,103,110, 98,206,254, 23,143, 2,135,185,214,170,174, 72,
+ 7,147, 30,141,175, 63,109,136, 37,219,111, 2, 40,152, 58,100,210,238,131,205,122, 14, 86,230,139,151,202,140, 98,167, 29, 76,
+122,237,217, 23,207,158,180,171, 85,183, 17,153,146,145,247,202,242,207,176,182,125, 65, 16, 4,188,253,131, 65,113, 56,160, 40,
+ 18, 28,138,130,163, 92,136,232, 59,119, 24,157, 70,115,182, 56,206, 54, 0,135, 47,226,175,250,180, 83,125, 97, 18, 63, 13,174,
+158, 18,240,184, 5,218,145,125,209,183, 72, 15,193, 1,234,202, 48, 60,209, 89,116, 54, 85,187, 74,161, 54, 28,140, 40, 97, 4,
+200, 48, 12,164, 2, 1,180, 58, 29, 52, 38, 19,218, 46, 91,102,153, 46, 36, 9, 2,183, 1,212, 91,182, 12,151,247,238,133,156,
+207, 7, 4, 2,155, 87,133, 20, 39,180, 50, 50, 50, 48,116,232,208,204,228,228,228, 33,229,241,209, 50, 67,167,211,157, 79, 73,
+ 73, 25,210,183,111,223,109,251,246,237,115,234,219,183,175, 50, 37, 37,101,136,141,126, 79,175, 65,171,213,238,141,143,143,207,
+ 31, 58,116,232,214,237,219,183, 59,187,184,184, 88, 70, 34,229,170,172, 4,145,209,161, 67, 7,129, 45,199,149,113,200,156, 66,
+231,246,177,133,150,173,122, 99,198,140,185,140, 2,255, 43,107,204, 90,187,118,109,127,171, 41,198, 53, 0,150,149, 70,172, 82,
+169, 86, 79,154, 52,105,196,249,243,231, 93,132, 66, 33, 8,130, 0,143,199, 67,141, 26, 53, 44,171,104,184, 92, 46, 88,150,197,
+ 87, 95,125,149,145,150,150,182,220,198,123, 51,102,206,156, 57,173,181, 90,173, 98,232,208,161,148, 80, 40, 68,106,106, 42,150,
+ 46, 93, 74,111,218,180, 41, 91,173, 86, 15, 43,135, 16,222,252,253,247,223,183,205,203,203,243, 31, 53,106, 20, 47, 39, 39, 7,
+ 26,141, 6, 83,166, 76,209,111,220,184, 49, 65,163,209,216, 29,240,183, 89,179,102,207, 98, 99, 99, 91,230,231,231,103,137,197,
+226,162,214, 62, 66, 34,145, 52, 2,176,213, 30,206,176,176,176,231,113,113,113, 77,231,205,155, 23, 97, 52, 26,185,215,175, 95,
+239,105, 22, 89, 43, 87,174, 60, 39, 20, 10, 59,160,132,101,209,165,212, 17, 70, 32, 16,188, 98,193, 42,250, 63,135,195,249,255,
+ 96,209, 58,135,130,144, 25,239, 26, 94, 17, 89,247,239,223, 71,187,118,237, 0, 0, 23, 47, 94, 68,139, 22, 45,112,241,226, 69,
+180,108,217,210,238, 88, 90,133,248, 91,165, 82,197,158, 59,119,174,142,175,175, 47,174, 92,185,242, 18,192,223,246, 22,210, 44,
+180, 56, 28, 14, 6, 14, 28,136,142, 29, 59,162, 74,149, 42,175,172, 54, 52,255,111,143,216, 48,153, 76,168, 91,183, 46,116,122,
+ 61,120, 60,158,101,106,146,195,225,192,213,205, 13,207,158, 61,179,201,162, 69,146,100,191, 94,189,122,145, 15, 30, 60,192,128,
+ 1, 3,176,109,219,182, 18,143, 29, 60,120, 48,118,238,220,137, 94,189,122,145,211,167, 79, 47, 53,188,131,217, 9,221,150,115,
+ 50,247,211,101,181,251, 21,197,105,173, 69,222, 53, 88,133,118, 40, 14,225,197,188,183,238, 21,161,101, 21, 36, 12,254,174,226,
+225, 29,107,112,112,224,236, 77,204, 57, 16,183,153,102,217,125,251,110,101, 29,254,166, 5, 96,216,253, 41,234,247,221, 90, 48,
+ 93, 8,128, 73,187, 15,195,238,193, 32,196, 46,184,144,200, 69,142,198,112,164,248,138,103,216,246,215, 31,191, 78,106,250, 91,
+ 75, 87, 79, 55, 7, 40,115, 52, 22,177,117,235,220, 30, 0, 64,159, 49,243,193,161, 10,166, 20,229, 82, 33, 68, 60, 10,123,183,
+ 44,207, 48, 24,180,197,214,174, 92, 46, 57,118,122,243, 26, 14,124,137, 17, 42, 15, 22,193,174,255,100,202, 33,252,247,188, 46,
+184, 66, 21,112,185,159,133, 79,171, 75,229,203, 31,100,143,133,145, 89,245, 90,135,152,157,173,201,190,115, 71,212,121,253,122,
+ 92, 31, 50, 4,222, 52,141, 8, 47, 47, 56,113,185,112, 16, 8, 64, 18, 4, 52,135, 15,227,242,190,125,112, 23, 8, 0,153, 12,
+166,185,115,161,139,142,134, 49, 55, 87, 83,142,145, 25,250,247,239,159,145,145,145,209, 87,175,215,159,127,211,138,160,209,104,
+142,199,199,199,143,109,214,172,217,111, 70,163,241, 51,141, 70,115,252, 77,248,244,122,253,241,148,148,148,143,251,247,239,191,
+103,255,254,253, 46,142,142,142,229,230,202,204,204,108, 88, 65,245,157, 1, 48,163,208,185,125,108,120,120,184,227,141, 27, 55,
+ 70,108,216,176,225, 55,171,209,132,219,200,145, 35, 71, 23, 17, 89,101,174, 58, 4, 16,151,150,150, 54,119,242,228,201,243,127,
+254,249,103,169,217,241,253,238,221,187, 48,153, 76,224,114,185,160,105, 26, 35, 71,142,204,203,204,204, 92,130,146, 35, 58,191,
+ 86,181, 84, 42, 85,141,121,243,230,109, 88,182,108, 89, 71,138,162, 36, 52, 77,171,243,243,243, 35,180, 90,237, 48,148, 47,142,
+ 22,147,158,158, 62,116,230,204,153, 67,151, 46, 93,218,139, 36, 73, 55,147,201,148,145,155,155,123, 72,163,209,108, 68, 57,166,
+146,174, 92,185,146,254,233,167,159,190, 72, 79, 79, 15,242,241,241,201,145, 74,165,122,189, 94, 79,137, 68, 34,185, 68, 34, 9,
+ 3,112,133, 32,136,135,246,112,222,186,117, 43,101,212,168, 81, 49, 58,157,174,214,154, 53,107, 46,200,229,242, 51, 4, 65, 16,
+ 60, 30, 79, 33, 18,137,218, 1,136, 32, 8,226,169, 61,156, 36, 73, 50,214,214,171,162,254, 89,124, 62,255,255,139,143,214,187,
+ 8, 75,120,135,140,140, 12, 60,120,240,192, 44,178,194, 0,160,101,203,150,183,204, 98, 43, 50, 50, 18, 13, 26, 52,184, 5,128,
+107,111,125, 85,169, 84,147, 7, 13, 26,116,188,112,112, 60,185, 28, 3, 63,139,208, 50, 11,170, 42, 85,170, 88,246,173, 55, 43,
+ 31, 45,155, 64,211, 52,120, 60, 30, 56, 28, 14, 60,189,188, 44,191,197,178, 44,158, 61,123, 6,165, 82,105,147,208,162, 40,138,
+ 34, 8, 2, 3, 6,216,182, 32,249,147, 79, 62, 65, 68, 68, 4, 40, 27, 85, 33, 69, 81,168, 90,181,106,153,199,152,117,169,173,
+156, 62, 62, 62,229,230,180,214, 34,239,146,192, 42,238,255,226, 68, 85, 73, 15,196,107,120,158,166,153, 55,248,151, 75,211, 31,
+166,104,247, 69,167,230, 79, 2,192,238,190, 47, 62, 89,223,149,250,240,195,154, 9,208,173,107, 9, 66, 94, 16,188,141,205, 75,
+ 6, 33,113, 71, 2,227,141, 89, 7, 31,165,152, 64,148,228,255,146,148,151,151, 51, 99,203,250,149, 63,143, 28,247,149,244,254,
+243, 84,228,228,233, 64, 81,164,117,227, 9, 14,135,130, 92, 34,132,175,135, 3,182,255,254, 75,110,174, 42,123, 38, 74,200,123,
+ 88, 69,198, 27,211,161, 81,117, 1,207, 83,141, 90,245,250,131, 18,254, 35, 2,216,148, 18,102, 7, 91,156,196, 71,113,106,225,
+ 95,113,234, 49,183,179,244,175, 11, 45,189,254,195,239, 58,117, 58, 49,231,232, 81,113,227,205,155,241,124,228, 72,120,105, 52,
+ 16, 20, 78, 37,146, 4, 1, 41,143, 7, 41,143, 87, 32,178,150, 46,133,198,100,194,178, 33, 67,242,117,122,125, 39,123, 30,242,
+204,204, 76,244,236,217, 51, 61, 41, 41,169, 11,202, 49,181, 87, 18,212,106,245, 94, 0,123, 43,138, 79,167,211,157, 79, 72, 72,
+248,168,103,207,158, 71,143, 31, 63,238,250,142, 4,153, 51,139, 45,195,141, 27, 55, 70, 95,184,112,225, 57, 94, 77, 44,154,125,
+225,194,133,231,163, 70,141, 34, 54,108,216,176, 17,192,247,176, 49,128,167, 90,173, 94,121,234,212, 41,180,110,221,250,251,133,
+ 11, 23, 58, 55,108,216, 16,110,110,110,200,205,205, 69,100,100, 36, 38, 78,156,168, 84,169, 84, 11,179,179,179,127,182,179,204,
+ 6,157, 78, 55,216,122, 41,117, 69, 92, 7,157, 78,183, 41, 57, 57,121, 83, 69, 17,142, 31, 63,254,238,179,103,207, 50, 93, 93,
+ 93,155,240,120,188,122, 40,240, 3, 74, 1,176,209, 94, 65,100,198,184,113,227,238, 60,123,246, 44,195,219,219,187,105, 33,167,
+ 35, 10,210, 24,173, 47, 7,103,210,205,155, 55,125, 26, 53,106, 68,114,185, 92,150,162, 40,112,185, 92,150,195,225,176,133,126,
+ 53, 44, 0, 28, 58,116, 72, 0, 64,137, 74,252,219,176,132,119, 72, 78, 78,182, 22, 89,102,171, 85, 88,203,150, 45,111, 21,138,
+ 44,243,103,229,241, 47, 59,205, 48,204, 27,229,235,101, 89, 22,115,230,204,193,218,181,107, 81, 86, 68,243,194,213,125, 68, 89,
+124,102,139, 22, 77,211, 48, 24, 12,184,127,255,190, 37,102,151,121,186,208, 28,218,193,100, 50,149,186, 90,157,166,105, 90,175,
+215,227,207, 63,255,180, 73,108,237,216,177, 3, 90,173, 22,116, 25, 10,206, 58, 20, 67, 72, 72, 8,148, 74,165,101,177, 79, 88,
+216, 63,161,242, 12, 6,131, 93,194,213,204, 89,171, 86, 45,100,100,100,192,236, 47,236, 59,228, 31, 99,143, 73,253, 63, 27, 63,
+184, 68,139,150,205, 61,102,125, 7, 7, 7, 29,223,184,191, 71,176,160,109,191, 48, 7,248,123,200,192,229, 9,145,164, 50,225,
+244, 67, 21,214,159, 75,137,215, 24,233,110, 79,210,243,163, 74,227, 17,136,229,199, 27, 54,239,216, 98,200,232,137,146, 60, 29,
+141,152,152, 88,164,167, 37,131, 36, 72,120,122,251,192,207,175, 42, 68,124, 18,219,214,253,172,190,117,249,204,165,188,220,172,
+206, 37,113,117,117,224, 93, 94,250,113,139,166, 1, 1, 50, 2, 38, 35, 64, 27, 1,147, 17, 96, 10, 95,205,239, 49,175,214,185,
+ 7, 15,178,217,233,183,149, 87,143,228, 24,138,205, 89,213, 23,104,225,232,228,116, 98,214,161, 67, 98,198, 96, 64,230,228,201,
+ 16,155, 76, 16, 22,142, 74, 10, 78, 68, 0,211,220,185, 5, 34,107,240,224,252,156,236,108,187, 82,240,184,184,184,220, 36, 8,
+194, 37, 61, 61,253,189,138, 12,239,234,234,122,132,101,217,140,140,140,140,134,239, 80,185,220, 0,100, 3, 48, 20, 51,144,112,
+133,253,254, 63,102, 84,117,117,117,157, 78,146,100, 51,150,101,157, 73,146,204, 98, 24,230, 74, 90, 90,218, 34, 0,207, 42,251,
+211,255, 12,230,200,240,213,202, 56, 46, 13,192,151, 40,112, 10,142,169,188,108,255, 58, 42, 60, 5, 79, 69,194,201,201,233,218,
+137, 19, 39, 26,250,251,251,147,214, 14,239,230, 88,121,230,233, 45, 14,167, 64,203,157, 63,127,222, 52, 96,192,128, 43,169,169,
+169,173, 75,226,148,201,100, 39,239,221,187,247, 65, 78, 78,206,107,130,202, 58, 82,188,121, 95,173, 86, 99,220,184,113,167, 74,
+ 74,193,227,224,224,176,244,231,159,127,158,208,167, 79, 31,210, 28,142,194,122, 51,167, 11, 50,111, 6,131, 1, 91,183,110,101,
+150, 47, 95,190, 34, 39, 39,167,196,169, 67, 79, 79,207,248,164,164, 36, 31,115,168, 5, 91,130,138, 86,173, 90, 53, 57, 54, 54,
+214,235,223,228,124,143, 5,215, 58,107,225,109,175,105,130,168,229, 38,233,207, 2,253, 72, 48,117, 73,130,224,155, 88, 60, 6,
+139,147, 98, 78,254,111,183,146, 97,211,212, 25, 87, 36, 26, 47,147, 42,126,232, 51,232,115,231,170, 1,129,132,187,167, 55, 8,
+144, 72, 77, 73, 68,236,139, 39,236,254, 63,126,205, 84,171,148,179, 53, 26,245,175,165,241,212, 6, 2,170,201,121,187,249, 52,
+106,194, 44,128,138,228,167,122,109,196, 1,192,192, 37, 31,197,228, 26,251, 63, 44,101,218,199, 44,182,102,236,223, 47,230,215,
+172,249, 90,160, 56,134, 97,160,139,142,198,178, 33, 67,236, 22, 89,149,168, 68, 37, 42, 4,254, 40, 59, 70,150, 17, 5,241,185,
+ 76,149,151,235, 63,193, 59,155, 84, 26,128,196,201,201,233, 12, 69, 81,126,102,139,140,181,181,190,152,132,210, 49,169,169,169,
+ 29, 0,148,182, 66, 56, 64, 38,147,253, 74,211,116, 99, 91,146, 74, 83, 20,117, 61, 55, 55,119, 60, 74, 73, 42,253, 54, 86, 29,
+ 58, 59, 59, 63,139,141,141, 13, 48,175,162,182,238, 43,139, 91, 89,254,244,233, 83,180,105,211, 38, 54, 37, 37,165,234,191,201,
+249,174,162,132, 85,135,225,197,220, 99,251, 44, 90,111, 1, 94, 60,129,116, 40, 95, 36,108,207, 24, 77,181, 64, 0, 28, 46,247,
+145, 94,171, 57,171,211,228,109, 65, 9,211,133,255, 38,250, 2, 45, 4,124,254, 73,158, 92, 46, 42, 78,180, 25,115,115, 53, 58,
+189,254,195, 74,145, 85,137, 74, 84,162, 18,149,120,143, 80,211,201,201,233, 4,151,203, 21, 88,139,201,162,255,155, 97, 50,153,
+180,233,233,233,157, 1, 60,254,151, 57,223,107,216, 19,196,252, 21,216,233,164,214,209, 86,206,194,173,205,187,206,249, 22,207,
+157,173, 64,206, 54,133,156,179,222,147,114,182,121, 87, 57,205,231,107, 7,111, 71,123,234, 81, 69, 93, 79,171,114,178, 21, 93,
+206,183,197, 89, 81,207, 81, 49,229,100,223,194,125,159,245,158,148,179,205,187,198, 89,180,254,216,200,107, 23,167,141,117,202,
+222,114,178, 21, 93,206,183,197,249,166,207, 81, 41,229,100,223,180, 46,149,112,239,103,225, 61,196,131, 80,176, 15, 66,193,222,
+111, 80,108,220,198,226, 44, 90, 96, 89, 22,118, 57, 18,190,173,149, 0,230,176,251,133,252,196,187,202,105,125, 29, 42, 50, 85,
+192, 91, 72, 59,112,174,162, 57,139, 92,207,138,194,172,194, 21, 38, 17,176, 33,224,168, 61,231, 94, 17,247,189,200,185, 86, 8,
+111, 57, 68,150, 93,156, 21, 85,239,223, 54,103, 69, 61, 75, 69, 57, 43,162,222, 23,119,223,223,226, 61,170,168,114, 86,200,179,
+244, 54,234,124, 49,245,231,141,121,139,114, 86,196,179, 84,148,179, 34,234,253,191,193, 89, 17,207, 82,113,156, 21, 81,239, 75,
+186,247,239,171,133,202, 60, 93, 88, 24,226,129,176, 65,108,173, 3, 0,178, 60, 23,237,109,224,109, 36,146,172,104, 65,244,182,
+196,166, 29, 22,152,255,156,179,130,239,209,172, 66,206,138, 28,221,180,173,168,123,244, 54,234,187, 53,103, 69,241, 23,229,169,
+136,251, 84, 28,231,155,150,183,132,114, 86,248,185,191,105,189,255,183, 56, 43,248, 30, 85,200,179, 84,132,179,109, 5, 15, 6,
+218, 90,237,207,170, 72,206,138,122,150,138, 41,231, 27,223,167,226, 56,223,180,188, 37,148,179,194,207,189, 34,250,144,183,197,
+251, 95, 90,180, 88,178,196, 58,177,174,200,246,175, 8,141,255,108, 74,206, 78,238,255, 41, 78, 59,167,103, 58,190,133,123,255,
+159,150,179, 34, 57,139,150,177, 34,167,123,222,102, 57, 43,146,211,142,178,254,207,113,190,111,247,253, 93,188,158, 37,241,189,
+201,180, 84, 73,214,209,183, 81,206,138,228,180,145,251,127,130,243, 13,238,253,255, 12,202, 53,117,248, 54, 97,190,240, 21, 60,
+ 50, 65, 5, 91, 96,222,218,121, 87,112, 57,219,190, 13, 11,225, 91, 64,133,151,179,112,164,252,195, 91, 56,247,247,229,154, 86,
+ 62, 75,149,207,210, 59,247, 44, 21,169,147,109, 43,208, 82, 84,161,150,231,162,156, 21,241, 27,214, 28, 21, 85, 71,223,246,185,
+ 87,228,179,244, 54,238,253,251,134,255, 27, 0,133,106,237, 30,181,247, 74, 74, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
0};
diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c
index 353f547dc17..589fc124f4d 100644
--- a/source/blender/editors/datafiles/splash.png.c
+++ b/source/blender/editors/datafiles/splash.png.c
@@ -1,6610 +1,6389 @@
/* DataToC output of file <splash_png> */
-int datatoc_splash_png_size= 211350;
+int datatoc_splash_png_size= 204235;
char datatoc_splash_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0,
- 1, 26, 8, 6, 0, 0, 0, 8, 90,206, 70, 0, 0, 0, 1,115, 82, 71, 66, 0,174,206, 28,233, 0, 0, 0, 6, 98, 75, 71, 68,
- 0, 1, 0, 1, 0, 1,178,230,200,110, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, 0,
- 0, 0, 7,116, 73, 77, 69, 7,218, 3, 2, 19, 20, 24,177,122,117,152, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,119,188,
- 93, 85,157,254,255, 94,107,151, 83,111, 77, 15, 36,144,144, 16, 32, 16, 32,161, 36,128,212,208, 65, 65, 64,197,138,232, 87, 29,
- 44,140, 12, 58, 40,138,131,140, 35,234,111,116,196, 2, 72, 19, 29, 20,140, 12, 85,144, 58, 8,130, 6, 12, 37,210, 33,180,144,
-158, 91, 79,221,109,173,223, 31,123,175,125,247, 57,247, 6,226,232,188, 70,244,174,215,235,230,150,236,179,203,218,107,173,231,
-243, 60,159,178, 4,160,249,179,154, 13, 40, 4, 10, 0, 43,115,194, 8, 64, 0,200,248, 24, 13, 78,242, 9, 7, 8,129, 58,160,
- 37,160, 36, 32, 17, 8, 36, 26,139, 16, 32, 57, 43,104, 17,127, 87,233,221, 58,241,223,137, 50, 71,141,183,241,246,247,212,100,
- 50,227,226,249,133,208,241,228, 19, 97, 58, 9,197,152,159, 49,255,173,210,255,215,230, 96, 45,147, 15, 89, 45,199,163, 51,231,
- 79,230,187, 70,130,144,230,131, 35,199, 65,242,247,236,121, 84,124,140, 14,177,146,191, 42, 32, 20,201, 26,162,227,153,111, 33,
-145, 40, 32, 66, 17,162,129, 72, 36,151, 48,151,209, 54,232, 92,114,134, 32, 89, 73,222,170,239, 79,182,189, 37,141, 64, 97,161,
-210,126,202,190,163, 8,136,146, 21, 82,141,175,127,227,109, 11,136,252,103,182,214, 1,165,199, 28, 98,170,229,167,104,100,138,
- 35,129, 72,143, 28,163,145, 40, 20,106,100, 57,201,172, 58,217, 31,245,248,219, 27,111,227,109,212, 28,252, 51, 22,120, 13, 8,
- 51,243,218, 64,154, 17, 64, 31,185,134, 74, 62, 35, 51,199,169,204,185,228, 22, 87, 3,209, 50,131,227,107,106, 84,178,126,168,
-150,207, 9, 64,235,246,117, 64,181,221,203, 91,248,189, 9,217,242, 55,173, 19, 66,148,105,162, 5,212,199, 87,191,241,182,229,
- 38,254,220,241,209,102,135,199, 11,130, 24,153,216, 98, 20, 46,103,173, 83,141, 75,136, 76,108,237,200,176,118,115,156, 30,185,
- 59,171,229, 26,201, 68, 16, 42, 94, 76,198, 71,248,120,251,187,101,234,178,141,203,189, 25,208,201,204,247,228,216,246, 85, 64,
-180, 76,196,182, 5, 67,181,124, 90,211,170, 8,200, 49,215,131,204,185,180,218,178, 66,208,118, 29, 57,134,210, 16, 37,134,255,
-136, 38,248, 22, 6,118,209,246,128,162,205,112,201,188, 19,161, 71,212,202,184, 63,147,231, 87,111,117,195,102,188,253, 85, 49,
-117, 49,106,210,153, 9,108,228, 64,133,212,173, 19, 18, 44,144, 46, 8, 7,116, 8,170, 58, 50,223,179, 43,131, 54,192, 46, 32,
- 17,228,210,165, 66, 40,144, 42,195, 14,198,219,120,251,123,110,186,141,189,254, 15, 63,222,242,187, 26, 67,186, 31,219, 60,104,
-199,164, 86,208, 31,203,232,142, 89,249, 40,133, 32,115, 2,173, 99, 5,207,102, 44,129, 58,214,242,254,166,108,121, 1, 99,118,
-184, 24,233,143,150, 78, 78, 93, 45,227,180,125,188,253, 5, 65, 61, 59,177,163,148, 61,139,140,213,173, 90,199, 97, 10,220, 22,
-136, 28, 96,225, 19, 96,227,141,120,197, 68,150,129,144, 57,143,108, 93, 4,198, 1,125,188,253,221,183, 54,137,122,171, 1, 93,
-182,126,207, 40,107, 99,177,238,173,193,163,118,150, 46, 90,126, 87, 25,149,142, 17,195, 95,143,196,226,232,118, 96, 75, 72,184,
-214,217,245, 32,246, 53, 71, 99, 40, 5,111,105, 91, 44,141, 21,216, 2,115,111,249, 57, 19,227,208, 54, 6,198,219,120,251,139,
-128,250,232,129,106, 2,109, 12,184,171,150,197, 33,212, 17, 16,100,128,223,142, 1,221, 88,234, 90,103,228,167, 17,163, 64, 38,
- 60, 63, 93, 32,244, 22, 88,198,120, 27,111,127, 71, 77,180, 1,251, 27, 79,137, 49, 96, 58, 43,141,139, 17, 86, 45,199,192, 21,
- 61, 6,140,200, 12, 22,169, 55,184,106,202,218,179,103,110,241,197,143, 13,106,145,182, 33, 9,159,149,153,171,136,191, 17, 96,
- 23,153,142,213,217, 62,208, 25,227,103,140,247,147,246,219,248,250, 55,222,254,210,160,174,218, 23, 18,161, 50,192, 30, 51,120,
- 17,115,243,228, 75,161,117, 3, 21, 53, 98,111,186,116, 64,216,153, 21,195, 72,136, 81,234, 87, 27,147, 61,232,145,235,143,143,
-235,241,246,247,220,100,219, 92,108, 81,100, 69,198,216,110,153,181,114,244, 25,244,104,230,167,199,152,239,250, 13,230,191,216,
-130, 9, 49, 54, 0, 11, 52,178,197, 48, 25, 61,153, 5, 81, 42,194,135, 9,184,255,109,176, 83, 1, 72, 61,218, 24, 83, 26,116,
-146, 17,208,250,118,101,178, 38,142,184, 70,198,131,230,198,219, 95, 28,212, 91, 6,148, 86, 35,211,215,200,102, 66, 17,233,248,
-175,217,116, 54, 9, 4, 40,134,149, 71, 36, 3,208, 86,178,240,100,124,242, 99, 44, 20, 34,179, 76,232, 81, 75,203,120, 27,111,
-127, 79, 44,125,108,224,220,122,115,188, 45,200, 78,200, 36,200, 93,109,241, 60,186, 13,174,117, 27,227,215, 25, 22, 25, 37,105,
- 89,217,251,139,210,136,121, 43, 51,143,227,116, 87,195, 82, 91,131, 97,179,129,118, 18,173,101,124,222,191, 25, 36,147,201, 99,
-171, 12,113,145,173,129,134, 25, 85,198,202, 16, 36,115, 76, 52, 62, 21,198, 91,166, 89,192,191,252,121,160, 46,209, 45, 78, 33,
-149, 73,139, 1,164, 13, 68, 88, 64,135, 5, 57, 13,239,216,119, 18, 95,252,200,209,188,231,168,189,176,104,178,234,165,205,184,
-105,110,170, 64, 74, 7,215, 45, 16, 70, 17,150,165,176,172,120,157,144,201, 60,143, 21,122, 11,133, 68,103, 67,228,183,208,114,
-185, 28, 90,107,180,214, 72, 41,145, 82,162,245,214,173, 10, 66,196, 83,205,124,198,113, 28,148, 82, 88,150,149,158,195,252,156,
-203,229,226, 62,209,127,155,182,179,235,186, 68, 81,148,246,201, 88,125,225, 56, 78,218, 7,185, 92,142, 40,250,191, 93,114,108,
-219, 70, 41, 53,234,125,102,223, 91,246,111,237,199,164, 75,175,148, 8, 33, 90,222,109,246,185,183,230, 62,108,219, 78,251,195,
-244,229,214,142,193,177,142,119,109, 7,173,212,152, 18,185, 65,125,203,182,227, 99, 4, 72, 41, 64, 43, 44,145, 17,203,133, 0,
-105,141, 56,194, 45, 43,113,100,139,228,191, 44, 84, 50,111,180, 78,156,222, 50,201,158,182,237, 17,153, 88, 58, 49, 80, 27,229,
- 45, 49, 18,116,155,251,173,197,128,200, 88,233, 86, 18,211,238,100, 0, 11,172,248,126,156,120, 13, 65, 42, 16, 49, 55,181,237,
-183, 86,226,139, 16, 2, 41,101,235, 24, 19, 22, 10, 39, 93,203,192,194, 18, 14, 82, 88,104, 4, 26,176, 44, 23,173, 99,248, 22,
-104,138,150,133,165,227,113,144,179,192,215,227, 76,125,188,253, 69, 65, 93,198, 19, 88, 10, 68, 44, 24, 33, 77,180,166,208,241,
- 36, 23, 86,146,218, 22, 91,215, 7,236, 92,228, 59,231,253, 19,157, 97, 63,243,182,237,229,152, 67,247,103,187,201, 14,191,255,
-253, 42, 58, 11,208, 12, 21,161, 86,132, 81, 4, 82,162,148, 66, 41,157,250,238,140,101,170,176,144, 78, 14,173,130, 55, 4,117,
- 33, 4, 97, 24,166,139,183, 1,119,179, 40, 11, 33,222,240,203,117, 93,148, 82,233,103,148, 82, 72, 41,177, 44,171, 5,208,180,
-214, 68, 81,212, 2,110,142,227,252,159,131,218,159, 61, 64, 44, 43, 5, 70,243, 44,249,124, 30,219,182,241,125,127,148, 17,147,
- 5,208,191,134,103, 55,239,200,117,221, 81,247,151,189,239,177,128,221, 24,128, 66,136,116, 12,228,243,249,150,243,102,207, 55,
- 86, 51,134,143,233, 63, 99, 28,154,190, 49,231,223,210,151,185,199,108, 95,154,123, 85,109,128,222, 34,133,155,121,168, 20,182,
-227,224,216, 54, 81, 24, 38, 56, 26,139,222,174,109, 19,170, 4,205, 83,205, 94, 39, 64, 47, 65, 90, 49,233, 22, 18, 45, 5,194,
-182,146,227, 18,142,168, 20,150,157, 24, 54, 58,169, 58,161,147, 96, 89,203, 78, 28,237, 10,147,132, 54, 42,192, 91,136, 12, 53,
- 16,216, 9, 61, 72,204,232, 56,122, 70, 16, 3,185,107,129, 37, 64, 5,241,179, 70, 99, 24, 49,127,165, 96,222,190,238,180, 44,
-191,118, 46, 54,132,180, 70,163, 81,132, 40, 84,188,158,218, 14,161,138,192, 18, 88,142,131,214,138, 72,249, 41,127, 15,244,184,
-251,113,188,253,197, 65, 93, 36, 50,154, 70,232,168, 37,102, 93,165,242,187,133,219,209,137, 10,234,148, 4,236, 56,189,200,158,
- 59, 76, 35, 26,120, 29,171,182,137,104,227,171,236,183,223, 66,142, 61, 96, 39,238,185,231, 49, 34, 9,181, 80, 33,114, 14, 90,
-218,137, 81, 16, 79,115,219,178,208,210, 70,233,152, 45,104,173,120,179, 97,109, 22,192,118,182, 99,128,202, 76,182, 45,125,101,
- 23,223, 92, 46,151, 26, 8, 74, 41,242,249, 60, 65, 16,164,172,212,178,172,244, 90, 81, 20,189,229, 1, 61, 11,206, 66, 8,242,
-249, 60, 97, 24,166, 95, 89, 80, 50, 6,210,150,152,238,255,165, 81,162,148, 74,223, 91,214, 80,105, 7,229,118, 5, 39,171,238,
-100,159,221,128,117, 16, 4,127,242,194, 94, 42,149, 82, 99, 40, 59,158,182,244,101, 89, 86,122,159,165, 82,169,229,154,237, 32,
-169,219, 13,110, 4, 8,141,237, 56,248,158,135, 0, 28, 57,162,111, 43,165,176,208, 88, 66,101,230, 18, 72,215, 69,171, 76, 97,
-153,228,228,150,109,161,163,216,164,150, 86, 18,189,174, 34, 3,191, 96,187,180, 68,184, 43, 5, 58, 74,140,136,214,123,214,105,
-168,189,206,220,173,133, 72, 87,145,216, 9, 32,115, 54, 58,242, 65, 7,160,226, 74,121,210,149, 72, 5,142, 99, 19, 69,127,221,
-174,183, 44, 59, 31, 61, 48, 50,249,230, 90,129,140,176,164, 70, 74,141,210,154, 72,135,105, 31,105, 34,144, 2,173, 35, 34, 1,
-110, 14,162,104, 92,122, 31,111,255, 91,160,174, 69, 26,206, 98, 38,173, 50, 51,216,206, 17, 53, 27,104, 21, 33, 52,108,222,224,
-225,134, 27, 88,122,224,126,108, 90,253, 18,229,168, 78,125,221,107,204,152, 57,131,247,159,118, 34, 43, 30,255, 61, 27,251, 3,
-148, 14, 9, 2, 63,161,231,241, 68, 15,181, 68, 41, 1,182,140,153, 4, 81,194, 16,244, 86, 45,172,102, 65,206, 50,182,173, 97,
-234,134,129, 71, 81,212, 34,185,134, 97,152,254,191,249, 50,108, 46,203,202,222,202, 45, 43, 95,103, 65, 48,151,203,145,203,229,
-240,125, 63, 53,114,204,179,106,173, 41, 22,139,233,223,255,175,153,146,185, 47,219,182,145, 82, 18, 69, 81,202,158,219, 23, 96,
- 99,164,152,223, 45,203, 34,138, 34,194, 48, 68, 8,129,109,219,169,209,182, 53,239,214,128,179,185,143,236,231,140,177,244, 70,
- 95,217,251,204,142, 95,243, 44, 74,169, 84,193,210, 45,128, 78, 10, 8, 81, 24,165,193,170,182, 37, 64,141, 68,174,152, 50,164,
- 86, 6,108,165,144, 35,121,209,210, 78, 24,178,138,129, 56, 1, 86, 75,104,108, 5,157, 54, 88, 42,185, 78, 20,101,210, 90, 69,
- 2,216, 42, 13,120,205,212,169, 75,190,139,196, 85,167,211,149, 35,214,252,226, 59,177,208, 16, 69,104,192,182,210,186, 53,232,
- 80,163, 21,168,232,175, 63,150,166,125,140, 24, 5, 72, 36, 46, 16, 65,128,208, 1,130,216,248,137, 69, 15, 1, 66,140,244,134,
- 86,177, 4,106,130, 40,116,156, 71, 16,141, 75,239,227,237,127, 7,212,227, 72,119,187,189, 2,148, 0,149,149,244, 16,184, 82,
-147, 19,240,199, 85, 85,158,127,118, 5,135, 47, 93, 74,193, 82, 84, 6, 6, 80, 2,234,205, 26, 39,159,116, 2,229,124,192,239,
- 31,126,141, 9, 29, 16,248, 70, 30,204,101,236,253, 8, 28, 11, 34,239, 79, 22,159, 12, 75,219,210,164, 27,139,165, 26,201, 57,
-203,246, 10,133, 2, 97, 24,166, 50,108, 59,147,109, 7,193,183,106, 51,128,148, 53,138, 28,199,193,247,253,148, 53, 26, 23,133,
-235,186, 41,208,252,181, 40, 21, 89, 64, 55, 96,108, 90, 46,151, 75, 1,188,157, 33,155,191,153,231, 50,159, 51, 32,171, 83, 63,
-243,214, 25,148,134,117, 71, 81,148, 94,119,107,198,134,145,239,219, 85, 38, 51,246, 68,150,149,183,115,119, 1,210,146,104,165,
-145, 2, 28, 91,160,194, 24, 50,243, 54,216, 10,242,201, 39,138,118,108, 39,107, 5,145,138,226,105,101, 59,160, 52,210,182,209,
- 81,132,227, 72,116,152,196,162,107,200, 1,174, 50,187, 48,196,243, 60,210, 42,246,185,107, 53, 34,211,103,214,134,145, 50,210,
- 50,117, 5, 88, 9,188,105, 36,134,247,139, 36, 14, 39, 7,228, 53, 20,162,248, 90,174,142,149,248,216,214,183, 19,133,225,173,
-209,218, 93, 42,127,210,103,147, 56, 7, 92, 23,162, 16, 61,142,230,227,237,127, 13,212,147,201, 44,218, 42, 60,169,216,160, 68,
- 56,110,172, 19, 73, 65,168, 20, 97,226, 38,123,105, 51, 60,240,224, 74,246,218, 99, 14, 51,103,109, 71,223,192, 0,181,202, 32,
- 57, 66, 14, 88,184,128, 3,247,153,203,221,119, 60, 70, 61,132, 16, 69, 36,192,202, 23, 80,145, 15, 40,108, 2,116,180,117, 11,
-106,150,221, 24,198,179,181, 19,203, 44,166, 74, 41,108,219,198,117,221, 22,224,206,250, 91, 23, 46, 92,200,206, 59,239,204,188,
-121,243,240,125,159, 74,165,242,150, 7,245,177,250,209, 0,222,226,197,139,153, 59,119, 46, 59,238,184, 35,245,122,157,193,193,
-193, 22, 67,224,175, 73,130, 55,239, 48,235, 50, 48,192,216, 62, 22, 92,215,197,182,109,180,214,216,182, 77, 16, 4, 8, 33,232,
-232,232,192,247,125,164,148,116,119,119,211,104, 52,182,234,218,237, 62,213,236,189,188, 89,107, 87, 73, 76,208,103,170, 52,181,
-100,129,180,202,238, 96, 64, 93, 97,219, 18, 21,234,145,220,146,132,173,231, 13,188,170,248,111,138, 56, 46, 45, 84, 25, 26, 40,
- 37, 68, 1, 66,135, 72, 13,121, 43, 62,253,162,157, 38, 48,119, 66,196,220,105, 57, 80, 1,195,245, 24,237,133,101,161, 84,212,
- 2,227,217,152,152,148,165,163, 82,117, 79, 9, 29, 27, 3, 66,164,235,137, 11, 20,128,157, 38,195,206,219, 20,153,214,109,163,
-252,144,170, 23,111,227, 18,141,212,152,253,171,159, 59, 70,134,255,115,230,134, 72,203,236,217, 16, 69,177,122, 63, 14,238,227,
-109, 12, 84,214,127,222,128,181, 16, 90,165, 49,240,233,162, 47, 70,138, 86,230,138,101,188,122, 51, 57, 30, 80,113,189,247,137,
- 14,116,135,240,153,247,238,204,225,123,237, 74,153, 6,225,208, 38,166, 76,157,142, 59,113, 27,154,133, 41,124,232,139,223,226,
-191,159, 26,102, 83, 68, 18, 85, 27, 7,203,148,146,115,251,188,177, 95, 41,151,203,225,121, 30,142,227,164, 96, 62, 99,198, 12,
- 22, 44, 88,144, 46,234,111,212, 54,108,216,192,171,175,190,202,208,208, 80,202, 66, 13, 83, 50, 0, 97, 36,247,101,203,150,113,
-236,177,199, 2,112,206, 57,231,240,141,111,124,227, 45, 63, 64,178,207,154,101, 25, 29, 29, 29, 44, 91,182,140, 35,143, 60, 18,
-223,247, 57,239,188,243,248,254,247,191, 79,173, 86,107,145,179,255,154,140,154,246,251,113, 93,151, 32, 8, 88,180,104, 17, 7,
- 30,120, 32,243,231,207,103,234,212,169,184,174, 75, 95, 95, 31,107,215,174,229,153,103,158,225,166,155,110, 98,227,198,141,233,
- 88,106,239,139,173,109,229,114,153,195, 15, 63,156,122,189, 78,179,217,164, 80, 40,188,169,154, 33,132,160, 82,169,240,187,223,
-253,110,212,117,227,251, 9,198,144,220, 71, 76,107, 33, 65, 71, 10, 87, 10,148,210,105, 58, 41,192,158, 59, 78,163,195,242,104,
- 84, 6,113,138, 93,172, 90, 51,192,134, 90, 92,197,185, 17, 9,194,200, 74,100, 95, 1,145, 31,203,247,196,160,158,147,240,201,
- 15, 30,205,241,251,238, 76,179, 62,204,181,183,220,195,181,247,188, 76, 21,240,128, 72,216,216,249, 2, 97,163,214, 82,199, 61,
- 77,193, 18, 54,232,144, 92,114, 47,158, 76,164,126,105,197, 81,112, 81, 72,167,134,201,192,231,255,223, 17, 28,182,255,254, 12,
-215,155,252,248,151,183,241,179,123,159,160, 2,248,150,131,138,254,250,119, 41, 51,160,110, 12,200, 63,199,224,213,218,198,205,
-229,240,189, 38, 82,130, 82, 33,227,109,188,181,172,217,163,214,129,148,123, 39, 11,133, 48,245,215,117, 98, 89,143,228, 74,218,
- 64,167,142, 90,114, 81, 83, 85,222, 88,229, 22,132,126,149,208, 1, 47,128,174, 78,135, 74, 5, 74, 57, 80,245, 56, 99,229,182,
- 95, 63,195, 54, 69,201,146,249, 59, 96, 89, 54,149, 13,235,233,182, 92,242, 86,158,203,254,191,175,112,193, 37,215,240,211, 95,
- 61, 74, 95, 51,108, 41, 58, 37, 90, 76, 19,147,165,219,250,221, 4, 37, 25,240,149, 82,242,145,143,124,132, 47,159,251, 37,164,
-109,109, 21, 83, 82, 74,113,219,109,183,113,227,141, 55,114,213, 85, 87, 97, 89, 22, 97, 24,166, 19, 85, 74, 73,179,217, 76,149,
- 0,223,247, 71,129,255, 91,181,101, 93, 9,150,101,165,253, 89,169, 84,112, 93, 23,173,117, 42,191, 27, 64, 55,224,247,215, 0,
-232, 89, 32,118, 28, 39,253,121,201,146, 37, 28,125,244,209,124,240,131, 31,100,234,212,169,105,208,154,145,199, 13,163,182, 44,
-139, 31,253,232, 71,252,224, 7, 63,224, 43, 95,249, 74,106, 32, 6, 65, 64, 62,159,167,217,108,110,149, 81,148,203,229, 88,178,
-100, 9,215, 93,119, 93,250,121,147,254,247,102,237,174,187,238,226,200, 35,143, 76, 85, 33, 51,238,124, 63,204,200,216, 97,106,
- 76,199, 63, 56,128,131,214, 35, 46,147,166,231,227, 75,112, 20,204,233,130, 11, 62,249, 65,122,243,113,160,156, 39,108,254,243,
-166,219,249,201,175,158,160,234,199,217,211, 18, 29, 7,165,106, 5,216, 72, 59,132, 16,194,100,171,176,109, 38,247, 82,162, 70,
- 57,167, 40, 90, 35,249,211,182, 1,155,160,145,108, 16, 58,178,166,164,219,168, 50, 70, 69, 52, 65,124, 98, 97,242,220,227, 86,
- 84, 17,229,234, 70,240, 34,156,100, 59, 86,203, 6, 21, 5,163,236,152, 49, 55,148, 73,114,192, 91, 54,148, 74,162,248,205,253,
- 69, 38,194, 64, 36,123, 75,168,214, 28,251, 40,251, 89,218,202,219,182, 83,164, 49,168,146, 72, 29, 12,127,190, 9,162,147, 61,
-173, 99, 53,228, 47,113,198,241,246, 55, 6,234,173,165, 92, 69,203,228, 75,188, 90,182, 3, 97,136,208, 13,114, 40,122,172, 56,
-203,228, 61, 7, 79,229,164, 3, 22, 49,115, 98, 47,145,144,212, 26,117, 10,121, 11,215,141, 32,170,199, 64,106,231,240,237, 60,
-158, 40,163,237, 2, 57,183,136,173, 35,108,191,129, 77,147, 66, 94,209,168, 14, 97, 41, 73, 57, 95,192,154, 52, 45, 73,169,177,
-241,155, 30, 50, 90,199, 5,103,156,202,210,197,123,112,246, 87,175,100, 77, 37,158, 96,117,108, 34, 44, 52, 17,185, 98, 62, 86,
- 2, 52, 20,138,101, 26,245, 42,144,228,163, 43,133, 37, 44,124,207,195, 18,241, 98,216,108,212,144, 86, 44,255,133,161, 74,193,
-120,172,133,214,128,243, 49,199, 28,195,241,199, 31,207,251,223,255,126, 78, 62,249,228, 22, 9, 63, 43,235,154, 5,180, 61, 48,
- 47, 27, 45, 45,132, 32,151,203,209,108, 54, 91,148,132, 32, 8, 82,169,184,157, 37,143, 5, 82,230,122, 82,202, 81,202,129, 1,
- 91, 19,152,213, 46,227,154,123, 55,192,100, 82,190,124,223, 79,217,160,137,106, 55, 96,151,149,146,205,223,219,131,185, 76, 32,
-218, 88,242,119,251, 51,153, 32,188,172, 11, 35,123,124, 22, 16,205, 51,155,251,205, 50, 86, 3,114,217,251, 53,159,245, 60, 47,
-253,188,231,121,105,240,227,157,119,222, 73,185, 92,110,121,207, 66,136,150,247,111,250, 55,138, 34, 62,249,201, 79,114,204, 49,
-199,112,226,137, 39,178,114,229, 74, 92,215, 77,239,233,141,153, 85,124,143,230,218, 70,214, 31,107,156,101,175,217,238, 14, 48,
- 6,169, 57, 54,126,102, 13,216, 8, 34,220,100,222,250,105,216,137, 27,131,148,142,203, 47,215, 61, 31,105,187, 68, 90,227,138,
-128,163,118,233, 97, 94,248, 18, 93,158, 29,247,141,235,242,193,195,247,228,167,183, 62, 17,143, 87,226, 90,110,158,150, 96,185,
- 16, 73,130,208,195, 38, 24, 41,126, 82,171, 83, 14, 45, 44,169,169, 14, 15,142,128,159, 2, 23,176,195, 48,173, 40, 25,136,216,
-192, 79,237,237, 92, 44,179,105,131,203,150,157, 68,204,251, 9, 70,117, 16, 18,208,164, 73,111,177, 72, 79,117, 29,157,174,131,
-227,106, 34, 1,205,182, 2,240, 70, 9, 48,105,181,161, 16, 4, 42,134, 81, 75, 72, 36, 97,236,250,179, 28,148,116,147, 69,174,
-137,163, 99, 23, 64, 21, 55,150, 40,172, 0, 68,136, 8, 21,182, 74, 2, 8, 5,212,180, 76,130,130, 93,192,195, 73, 84,144,209,
-121,226,173,101, 93, 5, 2,180,166,100, 89, 28,186, 99, 55,135,204,233,102,193, 54, 29,204,155, 84,164,183, 96, 19, 42, 77, 95,
- 61,224,137,117, 53,238,124,190,159,171, 87,108,160,226,189,145,122, 35, 9,194, 96, 36,119,120, 28,207,199,219, 40, 80, 23, 35,
- 21,224,172, 12,168,167, 46,181,114, 25,234, 77, 16,130, 66,190,136,108, 12, 19, 69,240,241,183,239,204,251,150,238,195,116,127,
- 3,114,232,121,148,147,103, 74,161, 72, 24,122, 68,181, 42,229,130,132,142, 18,212,251,240,101,142, 40,215,141, 31, 88, 52,135,
- 66,242,182, 69,167, 3, 42,244,208,145,196,182,108,172,124, 25, 37,108,106,126,132, 86, 2, 39,111, 99,187, 18,155, 6,245,141,
- 47,113,208,238,219,113,211,143,191,194, 71,206, 58,159,149,175,130, 69,152,250,233,189,122, 61,206,233, 12, 20,141,122, 29,153,
-200,114, 74,141, 86, 32, 36, 36, 59,199,197,171,139,109,219,220,120,227,141,148, 74,165,150, 52,183, 32, 8,144, 82,114,228,145,
- 71, 82,171,213, 40,149, 74, 40,165, 56,244,208, 67,185,237,182,219, 56,252,240,195,169, 86,171,111,218,193, 70,246, 55, 6,131,
- 73,129,107, 54,155, 72, 41, 83, 96, 48, 96,148, 13,168,202,178,100, 3,204, 89,214,153,141,226,238,234,234, 98,104,104, 40, 5,
-203, 32, 8, 82, 86,221,217,217,201,240,240,112, 11, 96, 22,139, 69,124,223, 79,239,195, 28,107, 98, 6,140, 63,217,128,241, 88,
-192,154, 85, 42, 12,187,205,102, 21,100, 13, 25,243,153, 48, 12, 83,163,167, 93, 69, 49,199,155,107,154,236, 2,207,243,210, 62,
- 48,204,184, 80, 40, 16, 4,193, 40,163, 39,155,153, 96,158, 55,219,103, 65, 16,224,121, 30,229,114,153,102,179,137,101, 89, 60,
-250,232,163,220,125,247,221,220,115,207, 61, 60,244,208, 67,120,158,199,180,105,211,216,103,159,125, 56,227,140, 51, 88,186,116,
- 41,190,239, 51,107,214, 44,110,190,249,102,230,205,155,151,126,246,205,228,115,147, 5, 97,198,149,121,254, 48, 12,185,242,202,
- 43,121,230,153,103,210,194, 52,217, 32, 67, 3,226, 74, 41,214,173, 91, 55,234, 92,113,191,219, 40, 37, 91, 29, 80, 98,180,244,
-139, 86,216,150, 75, 16,134,224,218, 56, 17, 28,182,231, 44,166, 57,117,234, 67, 30, 61,157, 29, 12, 55,250,153, 80,236, 97,175,
-185,176,226, 85,240,252, 86,126, 27, 43,118,178,165, 28,172,173, 67,116,109,136, 66,185, 72,222, 45, 16, 48, 16,215,144,176, 37,
- 34, 84,132,201,167,243, 37,151, 70,205,143,111,211,182, 98,170,233,197,107, 78,148,146,105,145,174, 67,174, 13,126,232, 16,234,
-216,165,215,168, 14, 34, 27, 18,173,242, 52, 26, 53, 26, 58,182, 89,132, 99,161, 27, 81,122, 67,165,188,139, 8,124,154, 1, 40,
-173,113,108,151, 48, 84, 40, 29, 7,247, 89, 64, 24, 5,241,212,183,115, 41,211, 78, 70, 74, 18,233,175, 64, 7, 88,122,164, 16,
- 78,164, 65, 90, 10, 37,108,136, 36,104,135, 64,132, 56,210,176,102, 70,247,127,162, 30, 10, 9,215,189,111,103,142,221,121, 2,
- 5,103,180, 50,232, 2, 69,215, 98, 70,119,158,227,118,158,192, 5, 71,204,226, 31,111,121,145,171, 87,108,216,130,191, 52, 81,
- 8,244, 22,182,205, 29,111,227,160,142, 21,111,188,162,162,216, 98,181, 51, 99,196,215, 26,106,149,120,210,217,130,122,179, 74,
- 17,200, 75,216,105,231, 5, 8,165, 9,106, 27,177,106, 27, 33,223,139, 23,249,212, 27, 62,142,101, 83, 15, 97,232,181,213, 76,
-152,216, 67,181,214,135,211, 17,210,217,219, 67,209, 17, 32, 3,132,235, 96,229,243, 84,125, 31,109,217, 88,194,138, 23,142,124,
- 46,102,123, 66, 17, 42,159, 82,119,137,230,240, 16,149,234, 58, 38,246, 76,225,151,215,124,151,115,191,118, 17,255,117,251, 42,
-234, 42,160, 80,128,106, 3,194,192, 27, 89,240,162, 24,176,165,144, 40,173, 70,188, 7, 9,148, 43, 65,154,127,219,104, 52,248,
-192, 7, 62,208, 2,208,237, 81,236,167,158,122, 42, 23, 92,112, 1, 51,103,206, 68, 41,197,226,197,139, 57,235,172,179,248,234,
- 87,191,250,166, 29, 28, 4, 1,165, 82,137, 90,173, 70, 16, 4, 20,139, 69,130, 32,192,117,221, 84,174,182, 44, 43, 5,171,118,
-182,106, 24,105,187,156,223, 30,108, 53, 52, 52,148,130, 86, 54,135,222,117, 93,134,135,135, 41,149, 74,120,158,135,239,251,184,
-174, 75,189, 94, 31, 37, 17, 27, 64, 49, 62,192,108, 78,116,150,149,102,239, 53, 11, 50,217,123,142,229,225,248, 90,190,239,183,
-164, 3, 26,163,201,244,181,249,217,220,175,239,251,169, 17, 97, 64,211, 48,119,211, 15,230,254,179,126,242,246,170,129,217,130,
- 57,134,229,186,174, 75,161, 80,160, 90,173,242,203, 95,254,146, 31,252,224, 7, 60,253,244,211,233,249,242,249, 60, 66, 8,214,
-173, 91,199,109,183,221,198,205, 55,223,204,213, 87, 95,205, 7, 62,240, 1, 0,102,206,156,201,167, 62,245, 41, 46,190,248,226,
-150,248,129,173,241,229, 27, 99,198,244,249,117,215, 93,199,131, 15, 62,216,146, 14,153,101,227,230,126,165,148,233, 59,202,250,
- 99,227,177, 18,166, 12, 57,106, 1,244,196, 96, 82, 65, 82,191, 37,140,165,102,223,103,222, 20, 88,184,243, 28,162,104,136, 90,
-174,192,211, 47,188,202,156,109, 39,210,237, 58,156,124,232,219,120,252,210, 7, 18,192,211, 32,194, 88,211,215,177,230,110, 46,
- 17,179,245,128,156,204, 99, 41,137, 37,115, 68, 9, 35, 87, 88,113,245, 55, 0,199,198,111,106,100,105, 34,170,209,128, 72, 97,
- 91,177,116,238, 58,121, 60, 21, 37, 5,110, 64,216, 17, 57, 32, 12, 0, 93,163, 96, 9,116, 4,194, 14,176,186,122,177,132,139,
-101, 57, 49,172,233, 2,218, 79, 52,255,192, 35,210,154,225,186, 79, 86,255,208, 97, 68,185, 80,160,214,168,196,134,160, 37,240,
-148, 34,208, 30, 58,240,176, 93, 7, 79, 37,157,167, 69,236, 87, 80, 30, 66,133, 35, 1,124, 73, 15,199,254,107, 31,132,139, 40,
- 79, 68,215, 7,240,117,144, 68, 16,188,113, 59,121,193,228,150,223, 7, 27, 33,143,172, 30,102, 93,197, 39, 84,154, 29, 39, 22,
- 89, 60,179, 19,219, 18,116, 21,108,174,122,215, 78,108,219,149,227,107,247,190, 54,218,157,132, 70,162, 80, 58, 54,154,198,107,
-191,143,183,209, 90, 78,146, 7,110, 2, 88, 76,216,201,200,254,229,126, 60,177,133, 74, 11, 64, 69, 22,252,247,239, 31,163,110,
-119,208, 40, 78,166,222,177, 45,141,142,109,168,119,108, 67,173,107,123,134,202,219,209,232,158, 67,105,214,238, 12, 83,130, 66,
- 39, 81, 20,208,172, 14, 98, 41, 31, 41, 20, 94,189,201, 64,213,195,119, 58,241,236,110,134, 84,142,141,158,197, 64,100, 51,172,
- 93, 6, 66, 73,159, 23,177,122,195, 70,100, 33,135,147,179,104,214, 54, 83,239,127,149, 11,206,249, 24, 63,252,250,187,153,228,
-130,106, 64,193,138,141, 17,161, 20, 57, 55, 94, 20,109,203, 70,109, 33,221, 37,155,207,107, 22,120,179,128, 26,208, 10,195, 48,
- 45, 38,115,195, 13, 55,176,116,233,210, 22,137,248,237,111,127,251, 86, 5,188,228,114, 57,106,181, 90,202,100,235,245, 58,150,
-101, 81,171,213, 82, 9,214,124, 47, 20, 10, 45,121,210,237,160, 21,134, 33,133, 66, 97,148,244, 62, 86,121, 90, 3,164, 70,170,
-246, 60, 47, 53, 8,124,223,167, 80, 40,164, 0,151,101,204, 6, 96,204, 53, 77, 5,181,124, 62,159, 94,211, 92,207,252,110, 12,
- 9,147,170,149,101,175,230, 60,217,188,117,115,159,197, 98,145,102,179,153, 30,111,228,125,195,174,179,249,226,157,157,157, 45,
-236, 59, 43,223, 91,150,149, 86,240, 51,215, 76, 83,190,146, 84, 67, 99,164,248,190, 79,173, 86,227, 29,239,120, 7, 31,254,240,
-135, 89,177, 98, 5,141, 70, 35, 77,117,108, 54,155, 45,108, 95,107,205,105,167,157,198, 51,207, 60, 3, 64,181, 90,229,252,243,
-207, 79,213,155, 55,107, 70,129, 49,207, 97, 89, 86,106,196, 24,151,192, 88,174, 28,211, 23, 70, 77, 49, 46,162,108,153, 94,173,
- 35, 68, 50, 99,211,197, 93,155,170,110, 17, 22, 1,118,162,116,131,162,100, 9, 58,129,183,239,191, 39, 37, 91, 81,245, 61, 94,
-236, 27,230, 39,191,122, 20,225,150,176,162,136, 3,118,154,199, 4, 32, 39,226, 8,243,152, 30,198,224,101, 17,166, 36, 84, 0,
-182, 10,200, 89,177,107,139,164,108,140,237,216, 41,125, 21, 18, 44, 21,130, 10,176,130, 6,150,242, 40,171, 6,165,160, 65,175,
- 10, 41,120, 85,138,186, 65, 89, 10, 92, 29, 33, 3,159, 48, 52,246,118, 64, 24, 53,227,167,115, 32, 82, 48,212,240,227, 74,120,
- 38, 24, 40, 12,112,163, 26, 69, 17, 80, 38,164, 12, 49,233, 72,201, 73, 72,165, 81, 3,153, 35,192,162,158, 36,118,119, 58,208,
- 5,184,126,128, 29,129, 43,161, 72,149, 14,134,232, 81, 1, 19,128, 78, 70,246,114,239,236,176,227, 56,130,132,104,235, 90, 29,
-217, 53, 25,116,142, 55,220,160, 86, 36, 5,245,128,186, 31,113,213,195,235, 56,242,210, 71,153,112,254,131, 28,121,197, 31, 57,
-237, 23,207,241,209, 95, 62,207,129,151, 60,206,142,223,122,152,251, 86, 13,166, 31,189,224,200, 89, 28, 56,171,107,172, 40,151,
- 52, 70, 64,142,227,215,120, 27,147,169, 71, 35, 0, 23, 10,149,108,131, 74,186, 99,147,208, 26, 59, 20,136,192, 75,139, 85, 52,
- 5, 92,251,155,231,121,232,143,207,179, 67,143,164,232,186, 84, 2,168, 7,154, 92,185, 11,219,145,120,149, 77, 80,139, 56,108,
-209, 36,142,217,111, 1,243,166, 79, 37,108, 12, 17,161,241, 67, 69,128,139,236,152,204,186,134,166,119,230, 14, 76,158, 56, 29,
-171,216, 1,185, 2,132, 33, 81,109, 16,161, 26, 12, 15,174,101,112, 96, 45,104,143,222,238, 46,242,104,188,234, 90, 14,222,115,
- 59, 46,255,247, 15,241,137, 47, 92,205,186,106, 12,236, 94, 4,202,248,107, 29, 25, 79,196, 12,144,107, 49,178, 63,179,201,121,
-247, 50,129, 78, 38,151,217,243,188, 84,122,118, 28,135,102,179,201, 43,175,188,194, 37,151, 92,194,153,103,158,137, 82,138, 69,
-139, 22,109, 85,244,179, 97,184,198,207,107, 64,190,163,163,131, 74,165, 66,111,111, 47,187,238,186, 43,249,124, 30,223,247,121,
-226,137, 39, 24, 24, 24,104, 97,168, 89, 54,219,206,228,180,214,120,158,151,250,213,141,124, 62,121,242,100, 22, 46, 92, 72,165,
- 82, 97,227,198,141, 60,247,220,115, 41, 56, 71, 81, 52, 42, 29, 43,235,151, 55,242,240,188,121,243,152, 54,109, 26,249,124,158,
- 21, 43, 86,176,121,243,230, 20,112,109,219, 78,153,170,227, 56,105,217,216,108,159, 20,139, 69,234,245, 56,182,162,209,104,160,
-181,102,218,180,105,204,159, 63, 63,149,162,159,126,250,105, 54,109,218, 68,185, 92,166, 90,173,166, 18,115, 59, 83, 55,106, 67,
-173, 86,107,233, 83,128, 57,115,230, 48,125,250,116, 6, 7, 7,217,176, 97, 3,107,215,174,109,113, 23, 24,101,193,168, 0,150,
-101,113,239,189,247,110,177, 12,171,241,123,155,247, 31,134, 33,215, 95,127, 61,159,251,220,231, 40,149, 74, 8, 33, 88,176, 96,
- 1, 43, 87,174,252,147, 38,155, 49,176, 76,235,234,234, 74, 1,220,184, 83,218, 51, 50,140,219, 98,172, 56,130,184, 60,171, 9,
-216, 74,124,190,216,241,194, 47,130,212,165,150, 84, 78,199,137, 52, 83,128, 99,246,154, 79,212,232, 71, 20, 74, 92,251,223,119,
-115,223,203,176,166,191,194,140, 94, 73, 47, 46, 39,238, 55,149, 43,151,175, 39, 82, 35,114,178, 1,114, 19, 42, 22, 75,211, 33,
-182, 20, 68, 90, 32,172,152, 24, 40, 63,150,165, 93, 21, 7,228,105, 96, 90,175,195,230,254, 26,197, 4,116,231,244, 66,111,209,
-198,178, 93,150,191, 82,167,166,234,212, 19,109,161,145,212, 51, 71,170,148, 60, 7,142,203,102,101, 33,156, 34,121,215,166, 12,
- 20,130, 6, 46,113, 92,219,212, 18, 76,155,230,162, 20,172, 89,239,179,190,158,200,230,150, 96, 56,178, 80,185, 14,116, 24, 65,
-216,196,214, 13,100, 16,223, 71,183, 3, 67, 1, 20, 5,204,152, 4, 93, 57,137,131,162, 25,193,154, 62, 88,227, 67, 13,232,175,
-132,137,111, 50,169, 69,175, 5,170,127, 3,210, 74,140, 95, 49, 54, 95, 50,212,232,162,135,214,242,205,255, 94,205,250,161, 70,
- 92, 63,110, 12, 50,240,202, 64,147,163,175, 92,201, 3,255,176, 39,123,109,219, 1,192, 87, 14,223,142,195,126, 52, 50,198,180,
-208, 4, 73, 74,176,146, 73,213,206,113,154, 62,222,218, 65,125,100,183, 31,153, 6,119,100, 35,230,164,214, 20, 92, 11, 21,106,
- 66,165,227,252,208, 32,142, 41, 89,221,132, 23, 86, 41,138, 78,147, 48,132, 80, 3,108,140,211, 94,128, 93,166,194, 62,251,238,
- 71, 79,143,131, 87,171, 34,194, 0,145,207, 81,243, 5, 3, 81,158, 92,215, 4,118, 58,246, 88,232,153, 14, 86, 62, 30,160, 50,
-182,244, 45,175, 10,110, 68,247,240,122, 74,235, 94, 98,245, 11, 79, 16, 40,135,218,224, 38, 38,118,119, 99, 9,159,253, 23,204,
-225,188,179,223,199,185,223,184,134,161, 70,188,120, 5,201, 28,107, 38,236, 97,108,166, 62,178,121, 99, 46,159,167, 80, 40,208,
-104, 52,168,215,235, 45, 1, 76, 89,153, 88, 74, 73, 95, 95,223, 22,131,193,222,200,167,158,245, 19, 71, 81, 68,185, 92,230,236,
-179,207,102,233,210,165,236,183,223,126, 41,219, 53,215,126,249,229,151,185,242,202, 43,249,209,143,126,196,198,141, 27,105, 54,
-155,233,121,106,181, 26,133, 66,129,115,207, 61,151,253,246,219,143, 70,163,193,221,119,223,205,119,190,243, 29,182,221,118, 91,
-222,253,238,119,115,250,233,167,179,203, 46,187,180,184, 0, 94,127,253,117,254,227, 63,254,131,239,125,239,123,105, 89, 91, 3,
-182,198,239, 62, 52, 52, 68, 20, 69,156,126,250,233,156,121,230,153,204,157, 59, 55,101,206, 0,207, 62,251, 44,151, 93,118, 25,
-215, 92,115, 77, 10,196,198,167,158,141, 1, 48,128,106, 84,137,206,206, 78, 62,244,161, 15,241,241,143,127,156,153, 51,103, 82,
- 44, 22, 91, 2,190, 30,123,236, 49,174,185,230, 26,126,246,179,159,165,254, 99, 3,190, 81, 20,241,173,111,125,139,253,246,219,
- 15,223,247,185,238,186,235,184,242,202, 43,201,229,114,156,123,238,185,124,254,243,159,167,209,104,164,231,252,245,175,127,205,
-177,199, 30,139,231,121,105, 89,213,172, 18,145, 13, 90,107, 47,111,107,228,250,172,159,222,176,232,223,254,246,183,124,241,139,
- 95, 76, 93, 11, 83,166, 76, 73,141,132, 55,106, 6,160, 77,156,131, 25, 19,198, 21, 98,206,151,141,162,207, 6, 59,102,207,111,
-130, 43,179, 57,239,169,253,109, 50, 64,116, 82,159, 93, 4,105,241, 39,157,128,169, 3, 44,153,237, 50,179,163,128, 8, 5, 3,
-145,205,221,143,122, 12, 3,119,252,254, 9, 62,113,226,177,228,134,107,188,243,224,183,113,249, 67,203,176, 37,105, 93, 9, 82,
-131, 56, 83,230, 70,107,106,245, 10,194,206,199,229,222,129, 9, 14,156,124,226,225,236,186,109, 55, 5, 2,158,123,234, 69,174,
-191,227, 73,118,116,225,148,227,247,231,109,123,236,196,180,238, 18, 34,136, 99, 50, 74,221,147,185,253,129,229,252,215,189, 15,
-242,251,151,171,120, 97,108,133, 8,219, 34,244,163, 88, 61,116,242, 80,232,166,232, 22, 81,213, 65,186,128, 41, 54, 44,217,103,
- 6,199, 28,117, 0,147,122, 75, 20,243, 57,194, 80,225,107,139,213, 27, 7,185,241,142,251,185,225,161,215,240, 9,104, 54, 42,
- 96, 21,192,113,201,135, 13,166,230, 97,241,108, 88, 52,127, 22,187, 45,216,131,174,142,110, 74,110, 25, 25,120,228,168, 99, 57,
- 54, 67, 65,129,245, 53,197,127,222,114, 47, 15,172,124,129,215, 43,208,140, 34,132, 19,144,207, 59, 52,171, 53,164,138,213,140,
-209,251,160,183, 2,251,153, 55,173, 2, 61, 82,215,222,210,154,104, 12, 96,247, 66,205, 87,238,124,133, 95,157,190, 27, 0, 7,
-206,234,166,236, 90, 84,253, 68,135, 17, 25, 23, 75, 82, 93,118, 92,127, 31,111,163, 64, 61,202,142, 8, 45, 71,226, 98, 18,216,
-115,243, 46,149,102,188,176, 56, 57, 73, 62, 87,100,120,184, 10,161,128, 32,222,176,165, 25, 40, 92, 2,186, 45,176,162,120, 1,
- 57,121,191,153,156,249,193,147,232,240, 55, 83,106, 14, 32,162, 6,181,102,147, 87,215, 87, 9,122,102,178,195, 1, 71,145,223,
-235, 48, 34,191,128,204, 79, 32, 84,177,176,100,153, 82,211, 82,145,179, 2,152, 48, 17, 39, 55,153,217, 83,103,243,226, 3,119,
- 48,185, 99, 58,213,161,205, 76, 40,231,169,215,251,120,239,137,199,242,220, 75,171,185,248, 39,247,167,213,170,194, 24,145, 17,
-142,131, 14,194, 45, 71,167, 2,245,122,179,197,223,107, 22,116, 19,208,100,130,217,148, 82,169, 92,252,167,212,255, 14,130, 32,
- 53, 26, 28,199, 97,255,253,247,231,166,155,110, 34,138, 34,122,122,122, 82,153,223, 84,105,115, 93,151, 89,179,102,241,207,255,
-252,207,156,118,218,105,124,240,131, 31,228,161,135, 30,106,241, 95,135, 97,200,194,133, 11, 57,228,144, 9,101, 17,251, 0, 0,
- 32, 0, 73, 68, 65, 84, 67,208, 90,179,124,249,114,118,219,109, 55,126,244,163, 31,177,120,241,226, 22,101,192,176,205,105,211,
-166,241,221,239,126,151, 57,115,230,240,153,207,124,166, 37, 64,175, 84, 42,209,223,223,207,212,169, 83,249,222,247,190,199,201,
- 39,159,220, 18,232,213,104, 52, 40, 20, 10,204,158, 61,155,127,255,247,127,231,132, 19, 78,224,136, 35,142, 72,129,209, 60,167,
- 1, 30, 3, 56,229,114,153, 37, 75,150,112,205, 53,215, 48,105,210, 36, 6, 7, 7, 83,240, 53, 6,148, 82,138, 61,247,220,147,
-221,118,219,141,243,206, 59,143,253,247,223,159, 39,159,124,178,197, 63,191,251,238,187,179,112,225, 66,164,148,220,115,207, 61,
-236,176,195, 14,252,238,119,191,163,171,171,171,197, 16, 51, 62,121,195,122,107,181, 90,106,144,152,247,104,216,110, 71, 71, 7,
-195,195,195,163,210,238,204, 61,101,125,241,198, 37,145,117,121,100,141,133, 55,106, 89, 63,185,185, 23,243,179, 9,154, 52,198,
- 69,251, 38, 47,237, 5,115,198,250, 89,183,248,148, 50,105, 98,118, 60,157,163,136, 52, 72,172, 0, 28,191,223, 66,236,230, 48,
- 42, 95,226,254,199,158,102,125, 24,127,234,246,229,155, 56,249,168,136, 41, 82, 50,103, 74, 23,115, 38, 64,125, 0,106, 58,142,
- 13, 67,196, 1, 99, 89,155, 95, 0,133, 82,142, 16,129,138, 60,220, 88, 53,103,193,196, 28, 75,103, 79,196, 13,107,172,190,247,
- 89, 14,158, 8, 95,248,202,103,177,132,134, 70, 63,101,187,134,146, 17, 94,125,152,234,203,175,113,212,110, 83,217,115,238, 59,
-249,201,157,247,115,233,189,175,160, 34,176,115, 22,158, 23,131,186,167, 36,117, 63,150,218,245,208, 58, 14,221, 30,142, 61,100,
-111,246,221,107, 79,188,168, 74,193,105, 32,106, 27,105,212,170, 76, 40,119, 48,123, 70, 15,219, 31,191, 39,251,237, 56,133, 47,
-253,248, 17,250,241,168, 32,192,143,235, 99, 28,127,208,108, 62,126,220, 98, 74,170, 78,211,139, 51,117, 8, 20, 54, 33, 69,134,
-145,126, 64, 94, 91,244,228, 28,190,246,254,131,121,109,104, 9, 95,189,232, 39, 60,182, 22,134,131, 58,126, 80,103, 66, 1, 42,
-141,204,122,211,238,223, 51,224,107, 59, 73,144, 0,216,142,131,142,212,200,110, 52, 99,180,223,190, 50, 52, 50, 70,164, 96, 70,
-119,142,103, 54,214, 71, 44,134,108,238,158,102,124, 71,151,241, 54,134,252,222,178,111,185, 68,102, 64, 79,161,104, 52,125,114,
- 5, 55,150,205,189, 0, 63,172,199,187, 10, 97,129,155, 56,187, 28,176, 27, 1, 50,130,217, 14,124,236,164,189, 57,122,201, 30,
- 20,171,107,201,251, 3,248,149,205, 88,182, 34,144, 14, 29, 83,183, 99,218,129, 39,192,110, 7,227,235, 94,154,229, 34,253, 33,
- 44, 95,241, 26,143,172,120,140,205,125,253, 56,182,197,188, 57, 51,217,127,209, 2,246,152, 61,129, 66, 71, 25,138,221,204,217,
- 87,210,247,228, 67,148, 74,130,202,224,122,186, 38, 78,102,253,107, 47,240,201,211,223,199,157,119,222,207,139,235, 99,203, 89,
- 2,218, 22,169, 20, 63,138, 61,137,145,121, 87, 44,142,108,202,146,101, 68, 6,200, 77,112,155, 82,138, 15,124,224, 3,228,243,
-121, 60,207,227,142, 59,238,216,170, 13, 61,132, 16, 41, 27,126,247,187,223,205,213, 87, 95,157, 46,242,190,239,243,199, 63,254,
-145,123,239,189,151,117,235,214,209,217,217,201,113,199, 29,199,194,133, 11, 41,151,203,148,203,101,110,189,245, 86,150, 46, 93,
-202,163,143, 62,138,101, 89, 41,160, 24, 95,183,217, 36,228,214, 91,111,101,250,244,233, 0,252,242,151,191,100,249,242,229, 72,
- 41,217,107,175,189, 56,229,148, 83, 82,224,251,244,167, 63,205,154, 53,107,248,246,183,191,157, 42, 8, 38,231,252,156,115,206,
- 73,211,245, 12,131,189,249,230,155,121,228,145, 71,240, 60,143,247,189,239,125,236,182,219,110,188,237,109,111,227,246,219,111,
-111,217,253,206,228,177, 27,255,186,235,186, 44, 93,186,148,235,175,191, 62, 5,212,174,174, 46, 86,174, 92,201, 45,183,220,146,
-246,201,137, 39,158,200,162, 69,139,210, 84,179,135, 30,122,136,131, 15, 62,152, 71, 31,125, 52, 5, 96,219,182,211,231, 45,149,
- 74, 60,252,240,195,169, 95,191,209,104,240,216, 99,143, 81,171,213,216,110,187,237, 82,247, 73, 54,253, 46, 27, 68,103,192,115,
-120,120, 56, 5,240,108, 90,158,169, 30,151,221, 77, 45,159,207,115,216, 97,135,209,108, 54,211,251,120,244,209, 71, 83, 99,109,
-107,128,221,184, 70,130, 32, 72,163,221,115,185, 28, 83,166, 76, 97,251,237,183,103,242,228,201, 12, 14, 14,242,194, 11, 47,176,
-126,253,250, 22,240,143,162, 8,215,117, 83, 54,111,152,190,227, 56,113,122,147, 30, 49,194, 33, 66, 51, 34, 9,107, 41,208,241,
-238, 74,108, 87,128,131, 22,206,199,242,135,168,217,157,220,249,200,115,212, 19, 92,120,161, 2, 43, 87,111,224,136, 25,147,200,
-105,159,119, 28,186,136,167,151,173,136,165,123,157,241, 39,171, 44,118,197,241, 2,205, 48, 68,169,144,124,242,247, 73,118,200,
-132,104, 16,217,172,176, 67,111,145, 83, 79, 60, 18,229,123,136, 66,129, 63, 60,253, 28,207, 61,255, 20,145,136, 56,112,241,190,
-236, 51,103, 54,245,129, 62,102,116,247,240,254,163,247,163,223, 31,230, 23,191,237,103,184,230,227, 36,133,241,132, 6, 91, 7,
-244, 20, 44,230, 76,237, 96,214, 65,243,217,107,209, 98,250, 6,135,249,237, 19,207,177,106,213,115,216, 94,149,189,231,207,101,
-247, 93,119,198,174, 15, 51,217,241, 56,116,247, 25,124,232,224,215,184,234,190, 13,212,163, 38, 86,174, 68,228,133, 52, 2, 73,
-232,148,104,120, 17,195,181, 6, 47,189,254, 42,207,172,222,192, 80,117,136, 46,171,198,140,137, 29,236, 58,119, 22,115,103,206,
-162, 81,221,192,174, 19,167,112,206,251,143,229, 27,151,253,138, 71, 6,160,232,196,128,158,206,113,157,101,235, 42,169,153,145,
- 90,197,105,217,220, 72,129, 82, 26, 75, 36,245,120,199, 96,235,237, 30, 61, 75,138, 86, 99,193,184, 68,148, 48,123, 80,143,183,
-241, 54, 26,212, 77,253,104,201,200, 62,232, 42, 19,236,225, 53,125,144,144,239,238,161, 57, 84,141,171, 65,185, 5,240, 27, 96,
- 53,177, 66, 29,203,237, 19,224,194,207, 28,195,142, 19, 10,200,225,231,200, 11,159,160, 58,136,101, 11, 66, 55, 71, 21,155,109,
-247,216, 23,118,222, 3,109,247,176,145, 34,203, 95,108,114,229,117,183,240,210,203,175,146, 43,150,144,150,131, 68,177, 98,205,
-147,220,248,192, 19, 28,180,231, 78,156,253,225, 35,233,177,166,192, 20,155, 9,131,131, 12,190,244, 4,174,221,129,223, 12, 40,
-217, 57, 66,221,228,115,159, 57,157, 79,126,241,202,212, 36,209,166, 86,114,203,188,105,245,127,233,204,177, 38, 5,203,247,253,
-148,137,103, 1,225, 23,191,248, 5,219,108,179, 13, 65, 16,144,203,229,248,225, 15,127,184,117, 29,156,248,103,167, 79,159,206,
-247,191,255,253,148,129,173, 89,179,134,143,126,244,163,220,123,239,189, 45, 82,254,249,231,159,207,209, 71, 31,205,207,127,254,
-115, 58, 58, 58, 40, 22,139,252,244,167, 63,101,254,252,249,169,162,208,238, 11,255,252,231, 63, 79, 16, 4, 44, 91,182,140, 51,
-206, 56,131,161,161,161, 22,176,253,220,231, 62,199, 13, 55,220,192,158,123,238, 73, 20, 69,156,123,238,185, 92,114,201, 37,105,
-154,155, 9, 6, 59,243,204, 51,211,223, 31,121,228, 17, 78, 61,245, 84, 86,175, 94,157, 26, 17,223,254,246,183, 57,234,168,163,
-248,241,143,127,204,193, 7, 31,156,250,127,219,253,252, 0,179,103,207,230,242,203, 47, 79,127, 95,181,106, 21,231,156,115, 14,
-183,220,114, 75, 11, 43,254,218,215,190,198,161,135, 30,202,178,101,203,232,237,237,197,178, 44, 46,190,248, 98,246,221,119,223,
-212, 15,158,141,188, 63,235,172,179,112, 93,151,103,159,125,150,243,206, 59,143,101,203,150,181,108,147,106,128, 48,187, 3, 95,
-246, 93,102,251, 58,171, 46,100,139, 9,101,175,105, 36,239,119,189,235, 93,105,108,195, 19, 79, 60,145, 6,176,109,173,251,197,
-140,175,108,173,249,159,255,252,231,148,203,229, 52, 64,211,180,151, 94,122,137,235,174,187,142,203, 47,191,156, 87, 94,121, 37,
-245,199,103,115,239,129,120, 91,206, 68,226,141,163,209, 21,224,225,155,152, 17, 9,126,104, 97, 39, 1,115, 7,238, 53,139,130,
- 8,209,142,195,107,195,130,187,254, 24,196,234, 88,222, 98,168, 25,113,195,111, 30,225,232, 79,158, 74,189,127, 19, 7,239,185,
- 11, 63, 92,182, 34,102,202, 9,243, 71,197, 88,226, 16,167,133, 70,161, 68, 8, 73,222,141, 3,198,162, 36, 40, 79,122, 85,220,
- 40, 71,206, 86,156,112,194, 9,188, 90, 17, 60,179,166,159,239, 94,121, 45,175, 14,198,138,177,176,225,210,223,222,199, 65,219,
-223,199,217,167,189,147, 57, 94,133,153, 69,193, 63,158,188,148,199, 31,249, 5,107, 20,244, 5,137,239, 62, 8,153,226, 70,232,
-129,213,156,114,252, 33, 12, 89, 93,252,226,190,135,249,230,213, 15,177, 25,104, 38,129,109,229,135, 95, 96,146,124,129,175,125,
-238,112,118,159, 86,162,100, 41, 78, 57,242, 64,110,126, 96, 25,235, 34,240, 67, 1,182,195, 90, 49,153,203,239,121,158,223,223,
-243, 27,214,111,142, 63, 63,148,248,244,123,115,128,231,209,201,102,142, 94,184,146,143,189,243,104,114, 94,131,185, 19,203,124,
-234,253,135,241,177,239,221, 67, 95, 0, 58, 39,169, 7,170,125, 73, 25,113, 97,166,185,127, 50, 1, 95,145, 84,191, 51,229,109,
-101,178, 99,122,107,219,109, 90,169,197, 24,124,125,104,100,236,187, 73,105, 95,165, 37, 97, 96, 10,115,143, 39,170,143,183,182,
-104, 14, 59, 13,126, 81,241,206, 63, 40, 34,204,206, 79,113, 36,173, 91, 40, 97,217,121,154,131, 67, 73, 2,123,136, 20, 1, 66,
- 6,184,190,166, 43,128,195,119, 21,124,231,203,239, 97,146, 91,167,172,134,176,130,126, 26,195,155,176,115, 22,186,152,167, 34,
-115,200,222, 25,176,211, 94,224, 78, 98, 64, 21, 88, 93,133,111, 94,254, 51,126,255,226, 90,134,115,221, 84, 11,189,212, 10,189,
- 4, 61,211, 8,122,182,165, 94,154,204, 61,143,175,226,171, 63,188,137, 10,146,168,105,195, 54,115, 8,237, 2,110,177,140, 45,
- 36, 34,170,147,211, 13,118,219,113,123,230,206, 72, 9, 69,188,117,100,251, 30,217,140, 45, 85,157,115,206, 57,156,117,214, 89,
-124,250,211,159,230,179,159,253, 44, 95,252,226, 23, 57,251,236,179, 57,235,172,179,184,235,174,187,168,215,235, 28,124,240,193,
-248,190,143,227, 56,156,126,250,233,220,113,199, 29,163, 0,118, 75,242,123, 24,134, 92,113,197, 21,116,117,117,161,148, 98, 96,
- 96,128, 61,247,220,147,187,238,186,107, 84,228,119, 46,151,227,246,219,111,231,200, 35,143,164, 82,169,144,203,229,216,101,151,
- 93,248,200, 71, 62,146, 50,117, 19,212,102,216,101, 24,134, 44, 95,190,156,143,126,244,163, 12, 14, 14,182,176,248, 48, 12, 89,
-189,122, 53,231,157,119, 30,149, 74, 37,149,219, 15, 57,228,144, 22, 38,251,229, 47,127,153,102,179, 73, 16, 4,108,216,176,129,
- 19, 78, 56,129, 87, 94,121, 37, 85, 42, 12,144,220,117,215, 93,188,235, 93,239,162, 94,175,167,140, 51,187,185,137, 41,153,251,
-173,111,125,139,158,158, 30,132, 16, 12, 13, 13,177,223,126,251,241,235, 95,255, 58,237,151,238,238,238,148,181,222,119,223,125,
- 28,115,204, 49,172, 95,191, 30,199,113,216,103,159,125,248,204,103, 62,147, 6,223, 25,208, 53,108,247,153,103,158, 97,233,210,
-165, 44, 91,182,172,101, 1,204,110,182,178,181,205, 48,123, 83,135,192,188, 51, 83,152,198,243, 60,190,250,213,175, 50,123,246,
-236, 20,164,191,247,189,239,165,121,250, 91,243,254,205,253, 85, 42,149,150,157,217,122,123,123, 83, 64, 31, 30, 30, 78,211,218,
-182,217,102, 27,206, 57,231, 28, 86,173, 90,197,217,103,159,221, 18,188,152,117,121,104,147,228, 45, 70, 2,226,226,141,149,194,
- 76, 56,155, 77, 87,161, 72, 55,112,204, 33,139,241, 26, 67, 84,253,144, 59, 30,122,140,122,226,146, 13, 66,168, 0,127, 88, 53,
-192,154,161, 10,190,142,216,126, 98, 39,135,239,222, 29, 3,184,144, 73, 81,248,228,153,116,172,136,217,118, 9,161,108,208, 46,
- 26, 39, 3, 47,241,238, 99, 90, 4, 12,250, 30, 21,219,230, 43, 63,184,150,149,131,208, 15, 12, 72, 88, 29, 65,159,132, 7, 94,
-133, 11, 46,253, 47, 26, 88,212,134, 7,216,182, 36,249,224,113,219, 19, 5,201,134, 49,128, 21, 69,224, 55,226, 98, 56,145,226,
-254, 21, 79,242,237,255,124,136,117, 64, 31, 37,106,118, 55,235,177, 89, 11,172,145,112,229, 77,191,161,234, 69, 72,191,193,164,
- 66,200,254,187,216,116, 91, 49,107,246,149,228,191,238,122,136,139,174,251, 13, 43, 55,199,207, 93, 5,134,237,110,154,178,155,
-181, 94,129,205,192, 90,224,134, 71, 61,190,121,197,141,244,123, 80,200,219,204,153, 57,153,109,187,226,117, 36,212,238,155, 71,
-191,143, 90,111,222,124,188,156,182,104,106,250,243,163,107,170, 12, 54, 70,212,198, 64, 8, 60, 33, 8,132, 78,107,138,140,183,
-241, 54,154, 72,182,196, 91,168,145,210, 76, 72, 80,177, 37, 30,212, 61,242,150, 69,160, 20,142,173,241, 67,141,106, 4, 20, 53,
-204, 0, 62,112,228,108, 78, 57,250,109, 76,206,133, 16, 56, 12,245,109,162,163, 84,196, 42,119,224,133,138,193,166, 36, 40, 79,
-166,119,187, 69,208, 49, 11,244, 4,124, 95,114,245, 85,183,241,196,170,213,120,197, 78, 10, 26,214, 15, 14,160, 53,116,118,118,
- 83,202, 23,232, 46,118,226,228, 92, 30,124,122, 21,143,188,208,199, 65,115, 39, 64, 80,167,115,226, 68, 54, 62,255, 18,211,123,
-138, 56, 42, 68,133,117,182,223,102, 26, 11,118,153,195,147,171, 95, 28, 25,236,105,100,143,106,153, 0,178,205,186,253,183,127,
-251,183, 22, 6,149, 45,199,105, 10,158,116,116,116,112,245,213, 87,115,197, 21, 87,240,192, 3, 15,164,210,237,214,128,198,190,
-251,238,219, 34,223,254,235,191,254, 43,253,253,253, 41,168,230,114,185,116, 65, 55, 69,111,150, 47, 95,206, 85, 87, 93,197, 25,
-103,156,129,235,186,156,116,210, 73, 92,113,197, 21, 41, 91, 55,199,153, 0,187, 83, 79, 61, 53,205,181, 54,146,112,182,200,203,
-173,183,222,202,171,175,190,202,252,249,243, 9,130,128, 37, 75,150,112,227,141, 55,226, 56, 14,239,126,247,187,217,118,219,109,
-211,103,255,210,151,190,148, 6,172, 25,255,119,214,191,124,255,253,247,115,195, 13, 55,240,206,119,190,147, 66,161,144,246,149,
- 97,146,115,231,206,229,184,227,142, 75, 13,150,207,125,238,115,105, 97, 28,211,167,102,243, 23,227,251, 95,190,124, 57, 63,251,
-217,207, 56,235,172,179, 24, 30, 30,102,233,210,165, 92,116,209, 69, 88,150, 69, 46,151,107,201,209,191,232,162,139, 88,179,102,
- 77, 11,160,103,107,106,255, 41,160,110, 2,216,178,145,252, 81, 20,165,105,142, 75,150, 44,225,203, 95,254, 50,141, 70, 3,223,
-247,121,237,181,215,248,201, 79,126,210,146,145,176,181,108,189, 92, 46,167,110,131,135, 31,126,152,167,158,122,138, 39,159,124,
- 50, 45, 60,115,232,161,135,178,199, 30,123, 48,105,210,164,180,111, 46,188,240, 66,118,218,105, 39, 78, 63,253,244, 84, 73, 48,
-197,132,114,249,124, 92,251, 93,203,180,190,250,136,241,106, 96, 30,106,141, 26,243,138,176,221,148, 14, 68,189,137, 91,234,229,
- 55,143,254, 10, 63, 81,213,163, 48, 66,184,130, 53, 21,205,239,158,126,142,195,118,157, 13,141, 33,142,218,119, 1,191,122,226,
-126, 10, 66, 83, 83,128, 30,217, 62, 38,206,139, 79, 42,172,105,139, 72,151, 98,160, 7,124, 75,226,217,177,175,185,105,229,184,
-242,167, 55,241,154, 23, 71,146,171,100, 87, 86, 45,109,154, 82,176,206, 15,248,221, 58,184,241,254, 71,121,239,210,189,169,215,
-134, 57,242,109,251,115,241,245,175,208,151,172, 77,121, 39,143, 66, 19, 72, 7,191, 56,137,203,111,190,149,213, 17, 84,132,136,
- 61,218,150,139, 14, 45,234, 40,250,148,226,191,159,245,121,125,211, 0, 19,166,231,152,232, 70,116, 4, 33,249, 8,138,118, 64,
- 35, 84, 72,203,193,139, 34, 66, 20,205,228, 89,136, 66,144, 57, 4, 22,146, 46,116,206,102,163,215,199, 93, 47,195, 59,214, 87,
- 89,178,125, 55,229, 82,142,221,247,216,150,103, 31,120,157,170,175, 16, 78, 9, 29, 84,226,117,115, 20,136,103, 10,195,108,229,
-112,220,109,106,137,211,247, 30, 1,245, 31,254,110,237, 22,143, 13,133,122,203,111,235, 60,222,254,151,152,122, 90,123, 33,203,
-100, 51, 3, 81, 39,192, 21, 69, 65,108,247,135,154,169,249,120,163,133,157, 74,112,209, 89,135,242,129,131, 23, 48, 81, 13, 83,
- 93,255, 10, 97,109,152, 82,177, 8, 72, 42,213, 58, 74,228, 8,172, 60,190,211, 77,121,230, 78, 64,137,208,178, 89, 63, 12, 55,
-222,249, 27,172, 66, 23, 50, 95,166,161, 65, 89, 54,218,205, 51, 52, 60,204,218, 53,235,120,105,221, 70, 42,161, 70,148,186,184,
-253,190, 7,227,188, 89, 41,113,167, 78,161,238,213,193,142,200,217, 26, 17,214,209, 97,131, 93,119,153,151, 0, 71,242, 79,155,
- 41, 43,245,232,186,241, 74,209,178, 56,103, 25,112,118,219, 81,227,255, 93,188,120, 49,147, 39, 79,110,137,104,127, 51,127,234,
- 1, 7, 28,144,202,238,149, 74,133,239,126,247,187,105,106,148, 97,131,198,143,109,138,148, 72, 41,185,254,250,235, 83, 38,183,
-100,201, 18,138,197, 98, 75, 52,186, 1,201, 21, 43, 86,240,250,235,175,167, 57,236, 89,223,123,118,226,255,225, 15,127, 72,203,
-174,238,188,243,206, 41,227,223,119,223,125, 83,137, 56,138, 34,126,242,147,159,164,231, 50,215,111, 87, 37,174,184,226, 10, 10,
-133, 66,139,159,218, 48,215,163,142, 58,170,133,157, 94,118,217,101,163,238,217, 40, 6,217,173,112,141,114,209,217,217,201,225,
-135, 31,158,166,223, 25, 3,192,182,109, 94,120,225, 5, 46,185,228,146,244,254,218,251,250, 79, 93,232,178, 37,107,133, 16, 45,
-125,182,203, 46,187,112,253,245,215, 19, 69, 81,250,172, 70, 49,217, 26,233,221, 60,171, 25, 95,107,214,172,225,204, 51,207,100,
-198,140, 25,236,187,239,190,252,211, 63,253, 19,223,255,254,247,249,230, 55,191,201,133, 23, 94,200, 17, 71, 28,193,212,169, 83,
- 57,255,252,243,121,233,165,151, 82, 21,228,195, 31,254, 48,167,156,114, 10, 74, 41, 74,165, 82,106,100,121,205,102,226,191, 29,
-113,153,169, 54,255,171,235,196,108,247,253, 39,238,141, 21,212,208,150,228,209, 23,158,231,233,213,117, 4, 35, 85,211, 68,194,
-190,111,184,251, 97,236,174, 46,162,102,133, 37,187,239,196,172, 14,144,145,142,209,216,211,105, 90,155, 0,252, 48,113,215,105,
-139,184, 42,123,124,142, 80, 88,168,164, 84,107, 67, 43,126,245,251,205,148,186, 93, 34,105,199,113, 93,137,129, 64, 4,161,109,
-209, 0,238,248,253,139, 12, 69, 14,210,202, 65, 20,178,100,143,237,226,113, 7,132, 74, 33,236, 2,161, 83,102,229,107,125, 60,
-189, 57,182, 37,132,180,177, 69, 8,222, 64,172, 14, 56, 69,170, 42, 71, 13,120,230,149, 53, 8,233, 16, 5, 62,199, 31,187,127,
-188,156,133, 33, 54, 10,162,128,188,109, 97, 19,167,194,118,218,144,211, 85,122,116, 31, 83,168,210,195, 16,121,175,159, 92,242,
-156,143, 62,246, 48,205,198, 16,131,125,235,217,102,106, 79,178,195,157,194, 21,214, 86,176,116,149,137, 46, 84,109,255, 61,178,
- 64, 21, 28,201, 79,223,179, 83,234, 67,127, 98,109,149,171, 87,172,127, 83,194, 48,222,198,219, 40,162,226, 91, 54,104,133, 72,
- 54, 48,176, 18, 64,143, 72,114,214, 45, 27,108,129,239,135,148,128,178,134, 92, 19, 22, 78,128,175,159,253, 14,166,187, 67,116,
- 58,155,169,213, 61, 44,221,164,163,220, 21,111,195,234,251,116, 20,138, 4,104,186,187,187,121,197, 15,160,187, 7,138,157,108,
- 4,158, 30,172,227,151,203, 4, 50, 9,211,245, 67,172, 66, 30,183,144,167, 17, 42, 8, 26, 52,241,120,233,181, 97,230,245, 22,
-240, 67,149, 84,146, 82, 80,204,211,213, 81,164, 81, 25,164, 80,204,145,147, 22, 3,149, 65,230,239, 52, 15,139, 95,197, 5, 31,
-218,230,155, 76,144, 92,106,146, 93,229,146, 66,177, 18,254,229,130, 11,210, 2, 36,166,152,137,235,186, 52, 26, 13,118,216, 97,
- 7,142, 57,230,152, 52, 21,235,235, 95,255, 58, 39,159,124, 50,111,127,251,219,233,235,235,219,170, 13, 91,142, 63,254,248, 52,
-160,237,182,219,110, 75,101,217,108,213, 48,179, 9, 76,182,116,236,227,143, 63,158,166, 53,117,119,119, 51,111,222, 60,254,248,
-199, 63,182,148, 11,181, 44,139,219,110,187,141, 9, 19, 38,164, 41,119, 38,183, 62, 11, 90,174,235,242,228,147, 79,166,192,107,
-228,102, 41, 37, 59,236,176, 67,202, 80, 77,164,125,163,209, 72, 89,126,118,227, 18,115,221, 71, 30,121,164, 37,112, 44, 27, 13,
-126,236,177,199, 82,175,215, 41, 22,139,105,148,250,208,208,208,168, 13, 73, 12, 59, 54,146,244,175,127,253,235, 20, 48,243,249,
- 60,187,238,186, 43,143, 61,246, 88,202,110, 1, 30,121,228, 17,108,219,110,121, 95, 91, 2,242,173,217, 73,205, 40, 37, 89, 48,
-119, 28,135, 82,169,196, 79,127,250, 83,166, 77,155,150,246,225,231, 63,255,249,244,250, 91,187, 89,143, 41,202, 19, 69, 17,143,
- 61,246, 24, 47,190,248, 98,234, 31, 31, 24, 24,136, 23,244, 66, 1,207,243,210,235, 95,112,193, 5,220,120,227,141,172, 88,177,
- 34,237,171,175,127,253,235, 44, 91,182,172, 69, 81,176, 44,135,102, 51,174,174, 62, 42, 8, 58,138, 11, 71,137, 40, 96,162, 5,
- 7,238, 57,143,176,222, 71,113,226, 4,238,122,240,161,248,186, 86,108,212, 10, 29,107,234, 57, 96,229,107,176,122, 96,136,201,
- 82, 97, 69, 85, 14, 93, 50,151,231,239,124, 1, 47,210,248,140, 84,156, 84,128,176, 21, 82,135, 40,105, 17,201,145,194, 85, 90,
-200,212,169,247,252,139, 47, 99, 1,155, 6,125,164,101, 97, 37,184, 22, 69, 65, 26,193, 35,129, 39,214,130,239,246,226,245,247,
-211, 53,113, 34,147, 39,245, 98,241, 42, 26, 8,162, 16,223,118, 9,117,129, 59,150, 47, 39,178,193,247,193, 21, 1,182, 54, 37,
-178, 2,132,112, 81, 50, 71, 36, 60,214, 14, 54, 25, 86, 57,164,138,216, 80, 9,104, 0, 13,108,138, 34,222,148, 74,135, 1, 5,
-192,141, 96,135, 73,208,219, 99, 49,123, 98, 15, 51, 45,240,106,117, 26,197, 78, 2, 25, 33, 85,133, 5, 83,109,102,116, 40,134,
-154,138, 25, 19, 59,232,182,193, 11, 67,194,160, 49,106,203,105, 49,230, 24,139,223,144,214,180,250,192,245, 8,241,184,226,228,
-121, 44,152, 22,187,124, 26, 65,196,123,127,254, 12,106,107,236,211,241, 50,177,227,173, 29,212, 17, 86,146,131, 58, 82,255,157,
-148,185, 43,180,142,208, 65, 68, 57, 15,178, 17,167,171,189,251,128, 14, 62,114,220,161, 76,205,123,132, 3,107,241,109,192,238,
- 64,184, 5, 26, 86, 1,191, 94,163,128,133, 37, 5,142,212,248,170,129,136,146,205, 26, 8,200,147,163,187, 35,135, 35, 53, 4,
-138,124,161, 64,221,175, 19, 85, 26, 52,130, 68,163, 43,119,146, 67, 99,215, 21,175,188,188,154,206,189, 98, 22,142, 23,130, 16,
-248, 94,131, 80,214,193, 5, 81, 42, 66, 51,100,234,180,201,113,105,105, 67, 7,132,213, 18, 78, 42,180, 73,197, 25,153, 88,129,
-239,115,225,133, 23,182, 4, 74,101,129,214, 0,195,153,103,158,201,249,231,159, 79, 87, 87, 23,139, 22, 45,226,150, 91,110, 97,
-159,125,246,217,170, 78,222,107,175,189,168, 84, 42,116,118,118,178,235,174,187,114,251,237,183,167,209,226,134, 29,230,243,121,
-250,251,251, 41, 20, 10, 20, 10, 5,154,205, 38,245,122, 61,245,179, 3, 76,154, 52,169, 5,164, 13, 64, 14, 13, 13,209,215,215,
-151,222,191, 1, 96,195,160, 13,104,101,217,180, 1, 96,173, 53, 71, 31,125,116, 10,142,203,151, 47,111,145,166,195, 48, 76,207,
-103,130,189, 60,207,163, 90,173,178,114,229, 74, 22, 45, 90,212,242, 44, 90,107,230,207,159,159, 86,144,219, 97,135, 29,184,246,
-218,107,211, 2, 53,213,106,149,142,142,142,150, 77, 96, 76, 77,251,206,206,206,150,200,254,114,185, 76, 20, 69,169, 1,100,138,
-243,100,171,180,109, 9,188,183,150,197, 24,159,122,246,157,187,174,203,125,247,221,199,130, 5, 11,210,202,113,159,248,196, 39,
-184,236,178,203,210,251, 53,234,194,214,180,108,160, 95,165, 82, 25,117,127, 99, 25, 40,207, 62,251, 44, 95,248,194, 23,248,198,
- 55,190,129,239,251,236,176,195, 14,156,120,226,137,220,112,195, 13,169,145, 21, 4, 81,194,181,229, 72, 13, 41, 83, 44, 70, 71,
- 56,196,245, 34, 14, 94,188, 45,157,110, 64,201, 17, 84,253, 38,203, 31,247,176,129,122,148,200,219,201, 71,243,196, 65, 99,191,
-186,251, 62, 62,245,246,131, 9, 2,143, 3,247,217,153,159,221,249, 2, 77,192, 69, 98, 75,133, 86, 73, 25,247, 28, 32, 27,140,
-212,163,204,244,171,142,183, 87,121,246,217, 87,113,147,114,239,145,178,176,146, 82,179, 89,239,178,121,147, 79, 63,191,138,195,
-118,157,200,107,175,191,206,206, 59,206,196,186,235, 49, 34,160, 88,178,241,253, 6,190,204,209,196,166, 25,142,168,138,153,192,
-124, 2,223, 7, 89,192,139,146, 96, 73,160, 88,238, 68, 89,195,148,138, 54, 3,117, 65,217,142, 37,137, 30,224,232, 3,166,243,
-158,183, 31,206,180,201, 61,132, 73, 29,251, 9, 94, 3, 75, 43, 26,133, 14,148,235,146,183, 34,104,244,209,236,239,167,212, 53,
- 25, 21, 70, 24, 55,119,164,189,173, 27, 99,109,223, 71,234,231,199,161,236,255,118,212, 44,222,179,199,228,116, 62,126,236,250,
-231,147, 52,182,241, 54,222,254, 39,160,158,230,166,199, 59, 42,249,109, 3,207,181, 45,180, 31, 33, 27,176, 93, 9,190,112,250,
-161, 44,153,221, 75,175,234, 35, 28,218, 76,103,105, 2, 67,195, 77, 84, 97, 42,170,216,193, 55,127,116, 45,219,109, 91,226,136,
-197,187, 48,179,199, 69,134, 13,116, 99, 51,189, 57, 9,125, 47,195,196,237,233, 45,230, 89, 50,221,102,209,244, 73,220,253,204,
- 16,118,222,161, 40, 11, 68,146,184,166,113,164,144, 10,188, 70, 3, 29, 68,168, 70,196,164,222, 41,241,228, 13, 53, 84, 27, 84,
-135,134,153, 56, 41,151,164,119, 68, 56, 82,208,172,180,213,226,150,130, 22,115,215, 20,212,201,152,182,166, 2,155, 1, 65, 3,
- 52, 89,208, 19, 66,112,245,213, 87,211,104, 52,184,244,210, 75,241,125,159,189,247,222,155, 79,124,226, 19, 92,114,201, 37,111,
-234,179, 53,101, 78, 77, 69,181,153, 51,103,166,185,223, 0,131,131,131,116,119,119,167,215, 51,117,206,219,101, 98,243, 55,195,
- 20,179, 27,208,152,133, 62, 43, 35, 27,247,128,169,244,102,234,154,123,158, 71, 62,159,111, 41,158, 98, 2,240, 54,109,218,148,
-250,128,179,155,208,152, 10,120, 89,128,202,186, 45,178,236,213, 84, 74,107, 52, 26,204,157, 59,151,185,115,231,182, 68,238, 87,
-171, 85,202,229,114,154, 99,158,205, 51, 55,138,129, 49, 70,140,187, 65, 74, 73, 62,159,199,182,227, 93,197, 76,181,186, 55, 98,
-224, 91,211,180,214,233,230, 48,190,239, 51,117,234, 84,110,189,245, 86,118,219,109,183, 84,238,254,244,167, 63,205,143,127,252,
-227, 22,255,120,182, 62,253, 27, 53, 83,255, 32, 91, 62,215, 24,100,166,236,111,163,209,104,201, 65, 23, 66,208,108, 54,185,236,
-178,203, 56,255,252,243,201,231,243,212,106, 53,230,205,155,151,110,243, 27,187, 45, 92, 66,207, 4,184,218, 32, 99,180, 19, 10,
- 28, 20, 57,226,220,244,131, 23,239,142, 27,213,137,130, 26, 15, 60,253, 20,235,227,100, 22, 74,201,124,207, 39,219,177,154, 90,
-231,127,120,114, 61,125, 7, 13,210, 89,176,153, 57,173,155,125,231,231,184,231, 41,143, 8, 73,168, 70, 98,174, 35,209, 68,200,
- 8,139, 16, 75, 52, 82,176,182,148,196, 82,113, 8,110,181, 18, 82,137,160, 80,156,140, 87,247, 9,164, 64, 43, 15,153,179, 80,
- 65, 4, 74, 82,116, 52, 58,208,104,175, 70, 56, 28,209,237,120, 20,236, 56,185, 54, 2,164,244,177,116,128,163, 34,186,203, 5,
- 20, 80,112, 28,106, 65,128, 7,184,133, 60, 97,195, 79, 44,246,184,126,188, 27,213, 41,138,128,102,101, 0,199,150, 12,215, 67,
- 74,110, 17,225, 7,236,214, 13,255,113,238,251,153,217,155,167, 57, 52, 68,109, 83, 13,191,179, 27,237,148, 24,208, 14,142,101,
- 83, 81, 2,191,238, 83,140,106,116, 42,176,195, 28, 90,150, 17,185,174,180,124,174,176,200,238, 72, 51,182,251, 37,171,218,180,
-179,121, 33, 56,251,192,109, 57,231,144,153,233, 49,103,255,234, 37,174,121,108,227,214,175,224,227, 44,125,188,141, 2,117, 21,
-164,190, 30, 45, 77, 85,184,152,213, 58, 64,222,247,201, 1,123,207,112,249,236,105, 39,176,125, 71,136, 93, 93, 67, 62,215,196,
- 46, 58, 12,213,129,201,115,120,181, 98,113,225,119,174,101,213, 26,120,199,212, 34, 61,211,103, 49, 52,240, 10, 61, 57,143,142,
-188,133,114,124,130,190, 87,113,156, 38,106,104, 29,221,221, 51,248,216, 73,199,179,226,171, 87, 16,214, 6,137,146,197, 53,148,
- 18,229, 9,114, 14,104,165,137,134,135, 56, 96,143, 93, 56,230,160,157,112, 34,160,104,195,170,117,216, 82, 17, 5, 30,216, 69,
-104,214, 81,178,200,250,245, 27,137,162,216,143,216,136,228,232, 1,223,134,239, 50, 1, 75,195,112, 77,240,153, 9, 68, 51, 12,
- 80, 74,201,224,224, 32,151, 93,118, 25, 63,248,193, 15,210,122,233, 39,157,116,210,155,130,122, 24,134,105, 80,149,227, 56,188,
-252,242,203,188,252,242,203,228,243,121, 26,141, 6,182,109, 99, 89, 86,202,214,204,130,111,192,216,176, 99, 41, 37,175,189,246,
- 90, 10, 20,245,122, 61,101,234, 38,135,121,172,188,105, 3,246,237, 91,191, 26,105,221, 20,212, 49,236,216,244,195, 8, 27,140,
- 83,248, 42,149, 74,234,227, 53,247, 48, 48, 48,208,178,163, 92,182, 98,154,137,154, 95,181,106, 85,154, 22, 23,134, 33,165, 82,
-137, 40,138,232,239,239,103,202,148, 41, 0,244,245,245,209,211,211,131,239,251,233,245,108,219,102,211,166, 77, 45, 69,129,178,
- 64,221,254, 76, 89,246,251,167,248,213, 77,223,155,118,235,173,183,178,104,209,162,244,125, 93,124,241,197, 92,122,233,165, 45,
- 69,132,140,113,178, 53, 91,175,182,187, 7,204,150,188,230,221, 25, 55, 71,182,252,171,137,114, 31, 24, 24,224,233,167,159,102,
-225,194,133,148, 74, 37,142, 56,226, 8, 46,188,240,194, 22,117, 67, 96,197,195, 90,170, 22, 4, 49,187,155,206,233,134,249,211,
-123,232,148,125,136,188,197,236,153,211,249,234, 63,110, 67,195,235, 66, 91,157, 40, 75, 83,173, 12, 48,177,152, 71, 71, 30, 56,
-146,124, 56,192,132,188,133,163, 61, 74,193, 16,251,207,159,197,253, 79, 61, 75, 64,152, 74,240, 14, 16,250, 53, 34,153,238,127,
-134,101,252,237,218, 66,232,248,190, 92, 39, 46, 54, 52, 84,175,131,200,161,173, 28,232, 40,179, 47,131,164, 30,132,116, 17, 7,
-100,250,190,100,194,228, 73,244, 63,247,122, 60,150,128,161,190,205,148,102,110, 75, 19,139,245,107, 95,167,224, 66,197, 15, 8,
-113,208, 2,226,215, 96, 37, 17,191, 30, 69, 25, 27,142,150,176,200, 17,146, 19, 58,150,241,253, 58, 51,243,112,209,151, 62, 74,
-183,232,163, 49, 48,140,167, 75,252,242,238,223,242,248,250, 77,188,182,161,201,198,245,241,218,208, 32,142, 69,232, 4,222,187,
-127,142, 51, 79, 57,129,205, 3,195, 68, 65,132, 35,160,170, 65, 40,209, 6,215, 99,188,255, 55, 24, 27, 31,219,119, 26,223, 60,
-118,135,244,247,127,189,231, 85,190,243,192,235,127,210, 2,190, 53, 46,166,241,246,119, 6,234, 78,178,207,176, 22,196, 69, 18,
-132, 13, 97,132, 36,164, 64, 44, 83,189,103,201,100,254,223, 59, 15,163, 16,110,198,169,247, 49,177,219, 1,223, 99, 40,176,169,
- 79,154,203,163,235, 3,254,237,210,101,188,176, 33,158,222,175, 15, 65,163, 97,211,161,226, 90,201, 66, 53,137, 68,157, 87, 54,
-173, 98,110,117, 19,178,119, 42, 97,168, 56,124,241,182,124,229, 83,239,227,242, 95,220,198,115,171, 55,147,155, 60,131, 32, 16,
-216, 74,227,134, 17,205,254, 77,236,191,211, 12,254,227,139,239,103,122, 1,100,208, 15,225, 38,214,190,242, 36, 22, 77,114,110,
-137, 56,102,223,198,113,114,172, 93,187, 62,142,230, 13,146,103, 81,113, 45,197,100, 95, 35,164, 41,117,169, 69, 10,236,134,237,
-102, 1,208, 4,171, 25,144,207,238, 5,126,239,189,247,114,248,225,135,227,186, 46, 7, 29,116,208, 86,119,180,137,150,191,242,
-202, 43,249,214,183,190,213,178,177,135, 1,137,177, 2,239,198,218,222,211,200,232, 70, 74, 55,134,199, 88,133, 80, 76,234,149,
-217,171, 61, 11,186, 89,127,118, 22,132,204,231,204,177, 89,240, 50,199, 71, 81, 68, 71, 71, 71, 11,195,206,250,153,205, 53, 46,
-189,244, 82,190,253,237,111,183,196, 1,100,243,218,179,106, 65,214, 40,105,175,160,102,228,253,172,236,222, 30,125,190,165,197,
-109,172,189,234,179,187,184, 25,214,127,201, 37,151,176,104,209,162,244, 51,151, 94,122, 41,103,156,113, 70,203,189,109,169,242,
- 91,118,188,100,119,212, 51,129,132,102, 1,206, 86,137,203, 22,148, 49,199,183,215, 72,232,239,239, 79, 85,154,108,182, 69, 60,
- 46,117,188,147,154,173, 99, 80, 79, 84,112, 39,137, 29,177,129, 67, 23,108,195,196,160,138, 21,212,193, 9,217, 97, 82, 7,219,
- 76,233, 64, 70, 29, 16, 72, 92, 41,169, 85, 67,122, 38,228, 65,118, 50, 52,228,211,233,148, 41, 70,253,224, 85,153, 94,146, 28,
-184,243,246, 92, 34,158,101, 80, 67, 93, 64, 78, 66, 46, 2, 11, 65,211,202,161, 68, 30, 45, 70,152,190,214,110,204, 16,100,132,
-175,147,128, 66,171,158, 40,101, 26, 81, 44, 32,234, 21,108, 61,226,135,111, 0,158,204,225, 57, 93, 12, 4, 57,194, 66,103,204,
-194,129,174,124, 7,126, 0,190, 16,244,116,245,226,249,155,227,109, 77,140,101,174, 35,108, 36, 22, 17, 17, 97,188,171,107,110,
- 18, 1, 93,216,106, 51, 46,126,156,143,111,193,145, 11,103, 48,213, 86,104,145,227,245, 90,200, 63, 93,116, 45, 15,175,215, 24,
-141,175, 35, 81, 55,250, 19,131,194, 7, 54,135, 46,161, 20,116,149,243,200, 96, 29,185,132,240, 68, 34, 79,164,107, 45,192,173,
-199,208,221,157,164,232, 16, 90, 35, 45, 11,148,230,189,123, 76,226,226, 19,231,166,135,126,239,193, 53,156,119,231, 43,227,136,
- 52,222,254,236, 38,109, 61, 18, 28, 23, 75,241, 54, 72,129, 13,148,129,147,151, 76,225, 31, 78, 89, 74,174,178,154, 9, 86,157,
-137, 19, 58,169, 84,235,244, 7, 46,181,210,116,174,123,224,143,252,243,119,254,139,149, 27,226,148,149, 72,192, 75,235,250,233,
-171,132, 20, 58,167,128,175,192,181, 41, 22, 4,118, 52,196,115,203,239,132,168, 31, 91,212,177, 61, 56,245,152, 57,124,247,252,
-127,224, 19,239, 58,136,153,197, 97, 38,203,205, 76,162,143, 61,103,148,249,218, 89,167,113,245,119, 79, 99,102, 25,138,193, 32,
-200, 77,168,167, 31,164,186,254,121, 38,149, 45, 26,213, 65,194,122, 3,217,217, 75, 35,136, 88,241,232, 74,194,100, 46, 9,105,
-183,204, 48, 45, 70,172,102,149,113,183, 54, 26,141, 20,156,140,172,105, 64,208, 44,208,102, 55, 46, 83,134,212, 48,173,108,157,
-248, 55,178,164, 31,126,248,225,116,211,149,227,142, 59, 46,101,195,165, 82,105, 84, 25,210,108,238,179,137,254, 54, 32,147,221,
- 5,237, 47,101,157,123,158,199,115,207, 61,151, 94,231,248,227,143, 7,160,183,183,183, 5,176, 13,208, 56,142,147,150, 98, 93,
-188,120,113,202,234,179, 37,118, 31,124,240,193,244,158,151, 44, 89,146,126,222,196, 6,100,141, 8, 83,227,221,188, 11, 83,147,
-126,107,251,119,107, 90,214,128, 49,101,106,205,185, 77, 52,249, 85, 87, 93,197,105,167,157,150,246,235,133, 23, 94,200,103, 63,
-251,217, 52,250,223, 24, 27, 70, 77,201,231,243, 45,229,100,179,227, 37, 11,252, 38, 72,206,168, 25,166, 66,158, 25,111,198,189,
- 96, 20, 29,115, 79,230, 30,179,217, 23,166,250,221,228,201,147,211,243, 11, 41,147,250,173, 35,238, 37, 91, 75, 44,226,157,200,
-222,113,200,219,152,212, 93, 70,219, 57,148,221, 65, 83, 22,168, 71,177, 74,227,196, 85,158,113, 10, 46, 85,191,193,112,208, 68,
-230,139,212, 35,135, 74, 93, 64,105, 34, 4, 33, 83, 59, 75,236,191,247, 54, 56,153,121,228, 0, 5,237, 34,148,139, 80, 54,182,
- 34,101,234,198, 7, 32, 8, 89,180, 71,188, 7,129, 21, 41,242, 93, 5,112, 93,116, 35, 68,234, 24,176, 93,108,114,196,177, 58,
-251, 45, 90, 64, 87, 71,137,117, 27, 55,241,250,134,254,140,151,222, 38,194, 65, 37,241, 3,163,130,100,180,196, 70,225, 50,178,
-101,106, 40, 28, 2,145,163,163, 88, 98,120,176, 15, 75,196, 6,207, 49,111,219, 27,215,175, 98, 75,193,178, 91,239,224,177,245,
-154, 33,108,194, 92,158, 64, 57,227, 63, 0, 0, 32, 0, 73, 68, 65, 84,208,178,227, 13, 92, 0,223,202,227,137, 56,198, 96,219,
- 89,179,241,188, 38, 94,163,138,107,137, 52,130, 32, 24, 67, 98, 31,229, 72, 55,190,126,157,108,113, 29,106, 78,216,101, 2, 63,
-126,215, 78,233,123,189,234,145,245,156,121,243,139,255,227,241, 61, 30, 5, 63,222, 90,152,122,154,189, 38,236,248, 43, 94,189,
-201, 11, 40, 11, 56,233,152,183, 97,251, 67, 76,232, 42,224, 56,146,161, 64,177, 81, 76,161, 52,125,123, 46,191,254,110,254,243,
-206, 87,216,224,143, 4,187,248, 26, 94, 95, 31, 49,136,195,218,186,207,244, 98, 15,146, 10, 5,229,211,173,134, 88,187,122, 37,
-205,199,239, 34, 63,251, 0,114,157, 51,129, 50,179,167,249,252,203,199, 15, 67,127,252, 48,214,246, 13,226, 22, 59,233, 40,196,
-158,239, 66,164, 41, 91, 21, 80,235,224,153,251, 89,253,135, 95,211, 19,245, 83,202,119,227, 87, 35,236, 98, 23,253, 3, 53,124,
-119, 50, 43, 30,127, 53, 94,188, 1, 29,134, 73,121, 70, 29, 7,164,232,196,197,158,153,134, 58, 97, 96,149, 74, 5, 33, 68, 90,
- 15,220, 44,198,134,161,154, 96,169, 90,173,198,148, 41, 83, 82, 64,216,154,232,103,173, 53, 79, 61,245, 20,251,236,179, 15,149,
- 74,229,255,103,239, 93,131,109,203,170, 50,193,111,140,185,246,222,231,156,123,111,230,189,153,121, 19, 80, 76, 4, 65,208, 20,
- 50,161,178,144, 66, 48,149,135,160, 69,116,182, 85, 17, 21,109, 73,135, 73,180, 68,160,118,168, 88,218, 42, 24,104,208, 18,225,
- 11,121, 4, 82, 88, 88,180,173, 72,118,241, 80, 40, 1, 5, 73, 72,168, 34,121, 36, 47,121, 35, 5,130, 36,228,139,204,251, 58,
-175,189,247,154,115,244,143, 57,199,124,173,185,246, 62,231,102,218,213, 70,221, 77, 92, 86,158,253, 92,107,174, 57,231, 24,227,
- 27,223,248, 6,158,240,132, 39,224,216,177, 99,216,222,222,142, 76,102,205,187,107, 20,167, 70, 97,127,127, 31,179,217, 44,194,
-210,121,148, 86,171,144,157,239, 99, 58,157,226, 51,159,249, 12, 30,245,168, 71, 1, 0, 30,241,136, 71,196, 8,177, 54,138,121,
-121,214,149, 87, 94, 25, 69, 97,116, 44, 52, 90,253,194, 23,190,128,199, 63,254,241, 88, 46,151,248,209, 31,253,209, 40, 1,187,
-183,183, 87,136,212,104,234, 33, 71, 25,242, 46,101, 7,109,154,179,210,107,205,106,187,207,157, 59, 55,200,195,239,236,236,224,
-213,175,126, 53,174,191,254,250,248,220, 75, 95,250, 82,252,230,111,254,102,129, 26,232,124,168,187,168,229,232,132, 62,159, 67,
-162,154,255, 87,165,194, 35, 71,142, 20,154,241,185, 51,164,156,136,157,157,157,200,139,184,246,218,107, 99,186, 69,171, 33,238,
-188,243,206, 48,142,132, 9, 77,177,112,228,245,196,201, 67,110, 4,139, 77, 0,255,236, 59, 46,194,241, 99, 51,156,222,219,195,
-190,108,226,143,110,120, 11, 62,119, 10,232, 25,232,118,125,229,199,142, 35,240,102, 7, 43, 75,244, 22,216,156, 93, 4,217, 91,
-224, 1, 83,139,167,125,239,149,248,193, 71, 61, 12,147,233, 17, 60,229, 95,124, 31,222,250,225,215, 99, 59,160,252, 27, 0,186,
-253, 14,199,230, 4,199, 14, 91, 65, 44, 38,232,247,129,177, 4,203, 28, 15,126,192,113, 28, 3,176, 11, 96,251,238,187, 66,168,
-176,129,141,110, 11,203,126, 59,246, 75,188,242, 18,224, 36,157,194, 61, 95,249, 28, 30,244,192,239,196, 98,241, 13, 44,161,223,
-105, 96,169,131,165,212, 93,209, 0,176,210, 67, 27,203, 26,207, 42, 40,136,115,150, 8, 61, 8, 93,215, 97, 43,160,116, 15, 56,
-177,129,249,185, 59, 48,157, 93,138,187,110, 59, 23, 58, 79,246,176,182, 7,109, 0, 91, 22, 88,236, 3,228,246,177,105,128,205,
- 30,120,212,119, 93, 1, 67, 11, 56, 8,102, 71,102,216, 13,200,130,136, 23,249,161, 21, 32,187,233, 58,216,222,183, 75,101,102,
- 60,253, 59,143,227,134,127,251, 93,177,116,237, 13,159,188, 11,207,126,211, 23, 46, 88,162, 11,143,251, 46, 82, 79,181,173,148,
- 52,139,197, 55, 62,232, 0, 92,118,201, 69,184,251,244, 61,216,119,192, 29,219, 75,252,195,185, 14,124,255, 71,226,151, 94,254,
- 38,188,226,173, 95,193,237, 11, 96,122,108,130, 37, 0, 51,243,222,235,221, 22,248,235,255,242, 33,208, 69,151, 97,219, 78,177,
-232, 25,176,132,205,126, 31, 15,190,216,224,142,191,125, 47,206,125,228,237,192,233,207, 99, 38,223,192,183, 78,183,113, 12,119,
-224, 34,220,133,111,157,220,131, 7,118,119,227, 36,182,113, 57,238,193, 49,250, 58,112,230,115,216,251,240, 91,241, 15, 31,121,
- 23, 78,204, 22,184,228,232, 4,238,244, 93,152, 94,124, 49, 22, 61,195,205, 46,198, 77, 55,127, 20,183,126,179,232, 73,115,192,
-204, 22, 34,123, 91, 13,186,146,181,114,104,124,103,103, 7,143,120,196, 35,240,240,135, 63, 60, 70,152,159,254,244,167, 15,228,
- 69,255,213, 95,253, 85, 36,155,205,231,115,252,210, 47,253, 82,220,244,213, 40,104,255,115, 37,202, 49,115, 44,117,210,243,211,
-243, 81,245,180,131,228,116,215, 61, 22,139, 5, 62,244,161, 15, 69,232,247,254,247,191, 63,174,187,238,186, 24,141, 3,192,137,
- 19, 39, 10,164,226,200,145, 35,184,238,186,235,162, 34, 92,157,239,190,241,198, 27, 35,236,188, 92, 46,241,252,231, 63, 31,139,
-197, 2, 93,215, 69,206,128, 66,233,243,249, 28,123,123,123,152, 78,167, 5,153,172,134,155,207,247,225,156,195,230,230,102,212,
-122, 87, 7, 74,181,211, 95,249,202, 87,226, 89,207,122, 86, 52,224,127,248,135,127,136,231, 62,247,185,145,239,160,223,161,100,
-182,188,223,185, 94,187, 70,239,138,178,228,196, 75,102,198,238,238,110,124,223,206,206, 78,193,240, 87,209,158,154,131, 49,157,
- 78,241,236,103, 63, 59,190,182,177,177,129, 91,111,189, 53,222,147,216,122,213,134,194, 48, 59, 5, 92,232,115, 15,193, 81, 0,
- 79,250,222,239,193,134, 17, 96,186,137,115, 91,151,225,134, 15, 2,127,243, 5,224, 93,159, 3,222,243, 85,224,166,191, 7,222,
-251, 85,193, 77, 95, 92,226,166, 47, 2,239,253, 18,240,246,207,156,197,187,190,188,143,191,252,252, 18,239,248,212,109, 88,110,
-120,229,191,239,121,208,253,241,160, 35,136,177, 50, 3,112,189, 68,109,118,159,230, 10,229,110,228,119, 21, 35, 75, 92,186, 57,
-193,213, 15, 4,142, 7,115,126,108,131, 1, 44,176,211,251, 58,249,105,112, 64,158,252,207, 46,195,252,155, 95,193,183,156,216,
-194,108,218,225,109,239,250, 68,140,136, 45,177, 15,116,193, 17,101,227, 16,168, 39, 49,122, 87, 68,205, 46,188,127,190,236, 65,
- 36, 16,231,205,255,197,199, 54,113,226,146,139, 48,223,223,129,237,253,245, 28,219,152,248,237,111, 31,216,223, 15,234,124, 2,
-160, 7, 30,243, 29,192, 21,151, 92,132, 13,244,216,156,116, 94,183, 93, 51,120,188,126,126, 50,115,208,230, 39,252,224, 67,142,
-227, 77,255,235,149,152,118,254, 59,222,254,249,187,241,227, 7, 45, 93,187,240,184,240, 56,140, 81,143,120, 17,121, 9,216, 16,
-172, 99,233,128,175,124,227, 14, 92,122,197, 67,113,183,219,192,252,216,183, 66, 78, 62, 12,207,121,225, 43,240,151, 31, 63,133,
- 83,240,240,212,221,231,150,176,147, 41,118,104, 19,187, 4,204, 25,248,139,119,254, 55,220,113,102, 27,219,189,192, 76,143, 1,
-188, 9,178, 6, 91,100,113,172,191, 11,253, 87,111,198,206,187,255, 4,248,248,141,192, 61, 95, 3,246,119,128,229, 18,199,142,
- 28,195,148,123,224,236, 87,128,197, 87,128,175,127, 16,247,188,247, 6,220,241,185,247,227,136,217,199,209,163, 91,144, 73,135,
-125,103,209, 47,123,220,189, 7,204,187,139,241,202,255,235,207,177, 11, 96,223, 1,108, 58, 31,134,136,245, 53,248, 25, 28,166,
-245,188, 18, 55, 81, 23,141,169, 18,210,212,192,229,198,253,228,201,147,248,147, 63,249, 19, 48,115,148,139,125,243,155,223,124,
- 32,163,254,134, 55,188, 1,119,221,117, 87, 36,229, 61,247,185,207, 45,186,169,229, 70, 91, 13, 90,222, 8, 38,207,235, 43,212,
-173,132,178,123,251, 48,198,224, 15,254,224, 15, 10, 35,246,172,103, 61,171,104, 28,163,245,212, 26, 61, 47, 22, 11, 60,239,121,
-207,139, 6,166,235,186, 24,165, 79,167, 83,188,238,117,175,139,157,214,136, 8, 63,243, 51, 63,131,107,174,185,166, 48,254,106,
-108, 55, 54, 54,162,230,190,222, 3, 29,151,251, 2,141,152, 76, 38, 17,214,215,104, 89,171, 14, 94,254,242,151,227,167,126,234,
-167, 96,140,193,230,230, 38, 62,250,209,143,226,215,126,237,215, 10, 3,155, 27, 94,117, 60,116, 28,244,222, 41,194,114,197, 21,
- 87,224, 87,126,229, 87,240,188,231, 61, 15,191,252,203,191,140,107,175,189, 22,206, 57, 92,124,241,197,152, 78,167,133,144,143,
- 58,100,234,220,108,108,108,196,121,160,176,252,203, 95,254,242,168, 95,112,247,221,119,227,207,254,236,207, 34, 82,162,231, 99,
-177,244, 26,226,206,139,185, 24,242,206,248,131, 38,192, 19,174,124, 16, 54,177,196,222,210,226,141,239,254, 48,238, 4,112,118,
- 2,156, 97, 47,141,186,111, 60,194,182,107,189, 51,190, 36,192,154, 14,123,152,224,110, 0,239,253,228, 29, 56, 53, 95,130,105,
-129,227,221, 41, 60,253,251, 30,228, 73,114,198,175,123, 62,194,216,159, 8,118,102, 14,219, 83,135, 93, 0,115, 0,189,241,197,
-239,157,244, 56,209, 9,254,205,211, 30, 27,123,169,219,253,179, 56,122,116, 14,225, 61, 56, 51,135, 65,143,135,108, 2, 63,244,
-184, 43,113,242,248, 6,152, 25,239,185,249, 35,184,125,207, 71,195,182, 64,180, 93, 33, 32,133,136,203,217,216, 78,185, 48,179,
-228,224,200,129, 57,118,153,199, 61,167,207, 2,166, 3,195,225,234,239,190, 31, 38,128,175,245, 95,250, 15,111, 77,128,139, 54,
-189, 3,240,128, 45,224,223,252,203,167, 96,163,183,224,133,133, 89, 58,240,190,239, 70,103,170, 22,171, 18, 49,135,240, 47,108,
- 50,174,247, 87,240,248, 7, 29,195,155,127,226,187,177, 49,241,235,252, 61, 95, 58,133,127,253,167,159, 65,127,193,162, 95,120,
-220,215, 70, 61,234, 81, 57, 23,196,164,253,166,177,132,207,145,255,250, 75,222,134,215,191,251, 22,252,151,207,223,129,255,240,
- 23, 55,225,127,249,153,151,227, 99, 95,245, 98, 14, 61,102, 88, 98, 2,161, 9, 48,221, 0,250,222,171,203,206,128,187, 0,252,
-251, 27,222,140,157,201, 37, 88, 76, 79, 96,111, 78,152, 77, 55,177, 60,117, 39, 46, 57, 2,156,232,182,177,188,227, 51, 56,245,
-201,247,224,203,111,250, 15,184,253,175,255, 20,123,183,188, 13,219, 31,254,207,216,254,208,159,227,244, 7, 95,143,255,246,167,
-191,131, 47,191,245, 63, 98,247,182, 79,227,178, 35,132, 35, 51,198,185,221, 61, 44,164,195,244,232,101,216,199, 38, 54, 78, 94,
-129, 87,254,223,111,192,103,191,238, 23,173, 3,176,180,206,231, 26, 67,241, 13,137, 39, 14,101,151, 29, 13,124,215,113,161,136,
-150, 43,186, 45,151, 75, 60,252,225, 15,199, 79,254,228, 79,226,131, 31,252, 32,174,190,250,106,236,238,238, 98, 58,157,226,220,
-185,115,248,189,223,251,189, 3, 69,138, 0,240, 19, 63,241, 19,177, 21,234,214,214, 22,222,246,182,183,225,201, 79,126,114,209,
- 13, 44,135,110,245,115,223,249,157,223,137,231, 63,255,249,248,217,159,253, 89,108,109,109, 69,200,254,216,177, 99, 7, 86, 53,
- 91,245,208, 46,100, 47,120,193, 11, 98,142,248,186,235,174,195, 75, 94,242,146, 88, 62,165,121, 94, 34,194,137, 19, 39,240,209,
-143,126,180,200,179,171,113,203,161,250, 23,190,240,133,248,230, 55,191, 9,192,235,188,191,235, 93,239,194,147,158,244,164, 24,
-177,107,158, 90, 25,246,147,201, 4,199,142, 29,195, 69, 23, 93,132, 95,253,213, 95,197,243,159,255,252, 3,165, 55, 14,146, 79,
-215, 6, 45, 57,234,242,154,215,188, 6,207,121,206,115, 48,159,207, 97,173,197,167, 62,245, 41, 60,233, 73, 79,138, 14,140,138,
-198,228, 6, 94, 29, 15, 53,190, 26,161,235,235, 15,125,232, 67,241,194, 23,190, 16, 47,122,209,139,240, 27,191,241, 27,120,252,
-227, 31, 15, 0, 56,115,230, 12,158,240,132, 39,224, 13,111,120, 3,158,249,204,103, 70, 39, 82,243,237, 74,152,211,241,191,230,
-154,107,112,203, 45,183,196,180, 5, 51,227,101, 47,123, 25,238,190,251,238,232,144,236,239,239, 99,177,216,135,133,197,116, 26,
-186,173,200, 18, 76, 62,175,252,232,239,154,225, 91, 78,108,193,176, 3,207,182,240,159,223,243, 41,204, 13,208,243, 49, 0, 71,
-176,136,198,156,225,192, 88, 4, 62,204,210, 2,224, 13,236, 99, 11,119,246,192, 71, 63,253,121,152,142, 96,150,167,241,244, 39,
- 62, 18, 71, 9,232,200,175,160,110,214,193, 18, 65,208, 65,136,179,200, 58, 25,215,126,111,142,199, 93,245, 72,252,212,143, 94,
-137,139, 0,220, 31,192,116,187,199,201, 9,112,145, 3,190,125, 11,248,185,159,124, 26,238,119,233,113,204,231, 75,156,182, 19,
-188,241,111, 62,135,125, 0,189,105,181, 11,175, 90,206, 58, 7,146, 30, 22,140, 57,216, 43,218,165,228, 6,156, 8,166,155, 71,
- 99, 14,252, 93, 31,250, 91,236,200, 4,221,198, 38,158,254,228,107,241,232,203, 59, 92, 10,135,203, 0,156, 20, 96,182,244,122,
- 28, 15, 59, 1,252,187,103, 63, 3, 79,253,222,199, 98,185,179, 3, 80,135,197,210,161, 95,166, 86,182, 41,196,230, 70,102, 61,
-145, 88,175,126,192, 81,188,245, 89,143,194,209,153,159,247, 31,252,234, 89,252, 79,127,252,105,204,251, 11, 6,253,194,227, 31,
- 33,167,206, 81,146,168,135,115, 22,226,177, 52, 44,225, 59, 23,125,126, 23,248,253, 55,126, 30, 54, 44,150,142,125,215,166, 9,
- 8,221,230, 12,251,182, 3,250, 5,176,183, 11, 51, 35,216, 37,176,187,239,191,241, 45,159,216,199, 35, 62,252,101, 60,229,170,
- 7,226,219,166, 83,108,242, 46, 38,203,185, 95,173,221, 12,199,143, 79,177, 39,167,112,249,116, 10,119,250, 86,204,191,185, 15,
- 54, 2,231,124, 68,251,173, 91, 51,184, 77, 3, 50,155,216,223,223,197, 2, 12,230, 13,236, 44,150,152,119, 19,208,214, 73,188,
-231, 67,159,193,191,127,237, 7, 49,157, 1, 59,115,132,196, 57, 67, 92,143,131,118, 48, 58,125,250, 52,142, 30, 61,138,157,157,
-157, 66,103, 60,135, 69,181, 31,186, 26,179,159,254,233,159,142, 6,118, 45,252, 6,224, 93,239,122, 23,126,225, 23,126, 1,191,
-245, 91,191, 5,102,198, 37,151, 92,130,191,249,155,191,193,141, 55,222,136,119,188,227, 29,248,248,199, 63, 30,115,183,155,155,
-155,120,236, 99, 31,139,167, 62,245,169,184,234,170,171,176,179,179,131, 23,188,224, 5,216,221,221,141,185,221,188, 12,237,222,
- 62,182,183,183,113,195, 13, 55,224,250,235,175,199, 85, 87, 93, 5, 0,184,254,250,235,241,180,167, 61, 13,175,122,213,171,112,
-203, 45,183,128,153,241,148,167, 60, 5,207,124,230, 51,241,192, 7, 62, 16,159,250,212,167,224,156,195, 85, 87, 93, 85, 16,192,
-250,190,199,137, 19, 39,240,166, 55,189, 9, 87, 92,113, 5,126,255,247,127, 31,206, 57, 28, 59,118, 12, 55,222,120, 35,222,242,
-150,183,224, 3, 31,248, 0, 62,255,249,207,199,104,245, 97, 15,123, 24, 46,191,252,114, 60,227, 25,207,192,213, 87, 95, 13, 0,
-248,197, 95,252,197,251, 4,126,215, 20,131,242, 36, 0,224,145,143,124, 36,158,245,172,103, 97, 62,159,199,231,206,157, 59,135,
- 55,190,241,141, 88, 44, 22,184,248,226,139,177,183,183, 23,175, 75,163,252,173,173, 45,204,102, 51,156, 61,123, 22,175,125,237,
-107,241,186,215,189, 46,162, 41, 26, 57, 79, 38,147,168, 9,144, 87, 55,204,102, 51, 60,245,169, 79,197, 15,255,240, 15,227,119,
-126,231,119,240,238,119,191, 27, 31,251,216,199,240,217,207,126, 54, 18,233, 30,243,152,199,224,218,107,175,197, 51,158,241, 12,
-156, 62,125, 58,246,166,191,229,150, 91,240,162, 23,189, 8,179,217, 12,123,123,123,177, 74, 99,235,232, 38,118,119,247,176,164,
- 61,128,124, 46,157, 28,112,241, 12,248,193,107,255, 57,156,221,195, 98,209,227,203,183,127, 3,119,220,227, 57,176,190,229, 26,
- 97, 6, 10,117, 33,140, 57, 44,186, 25, 99,177,112, 48,232, 33,110, 15, 18, 50,211,239,184,233,131,248,254, 43, 31,128, 99, 52,
-199,183, 95,118, 28,143,127,164,193,123, 63,105, 97, 0,184,197, 18,211,254, 24,156,235, 48,235, 61,185, 86, 35,235,165, 33, 44,
-165,195,199,254,246,179,248,182, 71, 60, 6,255,250,135,158,138,239,187,230, 26,252,197,219,223,142,127,184,245, 46, 44,150,192,
-119,127,247,165,248,193,239,127, 42,190,253,126,151, 96,185,184, 11,118,114, 63,188,241,198, 15,224,166,175, 0,115, 3, 44,221,
- 20, 22, 11, 56,226,224, 60, 36,225,168, 62,236, 90,157,132,210, 84, 24, 88,204, 0, 94,160,115,203, 80,224,226,208,131,112,110,
-110,177, 7,128,167,192, 77,159,249, 42,158,240,184,127,142,203,182, 58, 92,212, 89,188,252, 23,255, 45,110,188,249,163,248,200,
- 23,255, 14,119,159, 90,226,242, 19,192,149, 87, 62, 28, 15,126,248, 35,241,176,135, 60, 24,183,125,249, 11, 56,243,149,191,199,
-183,124,215,119, 96,225, 58,216,206, 37,244, 64, 60, 59, 81, 32,133, 33, 47,218, 89, 11,240,206,103, 63, 10,199, 55,211, 94,242,
-165,123,246,240, 91, 63,252,144, 3,205,221,223,123,223,215,240,213, 83,243, 11,150,234,194,227,224, 70,221,128, 33, 65,229, 9,
- 34,160,208,112, 97, 65, 64, 31,254,109,247,161,231, 19,123, 72,222, 75, 45, 8, 22,123,187, 0,109, 5, 67,218,131,123,207,215,
-233, 54,128,237,125,223,205,233,183, 95,251, 97, 92,126,201, 9, 60,224,202,203,112,231,169, 47,225,242,251, 95, 10,183,115, 6,
-203, 9, 99,178, 53, 3,220, 62, 54,205, 2,108,118, 32,178, 7,158,248,218, 24,235, 8, 16,139,165, 24,116,180, 1, 49, 4, 39,
- 6,123, 11,135,133,108, 96, 65, 71,113,235,109,187,248,119,191,254, 39,176, 12,156,158,251,133,190,177,121, 20,139,157, 61, 68,
-119, 62,195,234, 92, 67, 11,190,183, 14, 71,143, 30, 45, 88,238,170, 42,166,162, 33, 57,100,123,227,141, 55,226, 5, 47,120, 1,
-110,190,249,230,162,236,106, 93,164,110,140,193, 75, 94,242, 18,156, 59,119, 14, 47,126,241,139,177,185,185,137,201,100,130,167,
- 60,229, 41,120,242,147,159, 28,243,204, 57,251, 93, 35,183, 35, 71,142,196,174, 97,113, 63, 9,209,253, 65, 58,197,173,131,223,
-173,181,184,243,206, 59,241,244,167, 63, 29, 31,249,200, 71,112,242,228, 73,108,108,108,224,193, 15,126, 48,126,251,183,127, 59,
- 70,188,234,208,156, 58,117, 10,215, 95,127, 61,126,247,119,127, 55,166, 4, 52, 90,101,102,156, 58,117, 10,204, 92, 92,175,170,
-200, 93,119,221,117,184,238,186,235, 34,249, 80,157, 39, 53,176,234, 60,105, 69,194,125,241,152, 78,167,176,214, 70,146,156,178,
-199,149,232,103,140,137, 81,181,234, 19,228,249,116, 69,109,244,249,221,221, 93,188,255,253,239,143,247,246,232,209,163,216,222,
-222,198,222,222, 94, 68, 89,148, 79,160,165,112,251,251,251,177,124,239,242,203, 47,199,143,253,216,143,225,199,127,252,199, 11,
-199, 34,119, 64,142, 31, 63, 30,187,251, 61,239,121,207, 3,224, 73,119,121,217,223,238,206, 30, 96, 16, 91,122, 78,125,185, 56,
-142, 95, 10, 60,242,209,143,193,233, 83,119, 96,235,200,101,184,233,157,239,192,210, 43, 49,195, 64,112,180,219, 68,223,111,123,
-232, 25, 61,122, 48,100,225,213,103,102, 19, 2, 89,193,174,115,152, 3,248,240,151,129,219,247, 13, 46,186,236, 18,108,239,205,
-241,189,143,123, 44,110,250,228, 7, 96, 0,156,153, 19, 22,116, 20, 14, 19,136,108, 36,165, 56,114,190, 87, 28, 77,240,241,207,
-253, 29,222,243,177,175,224,217,207,126, 14,142, 78, 55,240,211,207,252, 49,236,237,222,131,147, 39,166, 56,115,238, 28,186,205,
-139,176,189,183, 11, 59,189, 24, 31,252,219,207,226,149,111,249, 26,206, 0,152,219, 9, 0, 66, 15, 96,206,155,152,211, 17,244,
-160, 72,148,115, 33,165,102, 68, 65,248,208,149,142, 8, 61,150,232,105,130,185,153,160,163, 99, 56,231, 58,204,142, 1,119,109,
- 3,239,249,210, 28, 15,122,199,205,120,214,255,124, 45,142, 79,151, 56, 49,179,248,151,223,255,221,248,129, 39, 62, 10,211,205,
- 45,244,203, 61, 44,133, 65, 71, 46,195,206,206, 14,110,120,243, 95,226,248,140,241,208,239,249, 30,204, 39,155,152,111,248,212,
-131, 32,203,233, 13,180, 90,147, 24,141,136,224,228,209, 50,141,244,227,143,190,223,129,231,238,107, 63,126,199, 5,163,126,225,
-113, 56,248, 61, 26,244,104, 44,194, 28,101,134,163, 14,251, 50,193,130, 39,216,199, 4,219,174, 67, 31,188,113,223, 12,162, 7,
-100, 9,184, 5,140, 0,180,244,211,121, 62,247,243,122,206,190,181,225,175,189,252, 29,248,143,111,126, 31,228,248, 67,176, 61,
-223,194,221,139, 45,236, 79, 79,224,172,157, 66, 96,224, 44,195, 78,142,194,110, 92,134,185, 57,142, 61, 62,142, 69,119, 49,150,
-152,130,173,192,237,237, 98,139,122,204,183,207, 96,251,220, 62,120,243, 82,188,255, 83, 95,199,255,246, 11,127,140,187,231,192,
-174, 67, 60,175,157,157,189, 80, 48, 43,190,172,134,124,102, 97, 50,241, 14,199,116,234,149,201,118,119,151,126, 83, 48, 28,141,
-183,178,178, 53,218,210, 77,246,150, 91,110,193, 43, 94,241,138,168,249,126,243,205, 55, 23, 68, 46,149,114, 85, 57,211,186,158,
- 90, 97,110, 0,120,205,107, 94,131, 39, 62,241,137,120,213,171, 94,133, 51,103,206, 20,239,175, 37, 92,137, 8,175,127,253,235,
-241,156,231, 60, 7, 47,123,217,203,162,241,211,115, 85, 5, 60,102,142, 6, 55,111,116,162, 6, 63, 39,229,233,247, 42,113, 76,
-115,196, 68,132,219,111,191, 29,215, 92,115, 13, 94,253,234, 87, 15, 74,230, 52,239,253,190,247,189, 15,143,126,244,163,241,177,
-143,125, 44,190, 71,149,225,148, 4,167, 53,249, 68,132, 63,250,163, 63,194, 19,159,248, 68,188,244,165, 47,141,112,188,126,159,
-158,147, 66,221,203,229, 18,127,253,215,127,141,159,255,249,159,199,139, 95,252,226,120, 93,103,207,158,141,231,169,215,112,208,
-146, 62, 21,217,201, 37,114, 53, 50,174,199, 40,103,228,215,205, 97,114, 7, 78,225,115,157, 55,218,209, 77,101,110,213, 81,210,
-116, 11, 0,124,246,179,159,197,115,159,251, 92,124,250,211,159,142,186, 2, 10,189,231,240,190, 58, 32, 55,220,112, 3,126,228,
- 71,126, 4,207,121,206,115,138, 74,132, 66,139, 32, 91,184, 19,238, 32, 61,176, 49, 3,254,197, 19,190, 23,119,205, 25, 59,155,
-151,227,214,126,134, 27,255,246, 43, 56,235,128,217,116,134, 9,122,244,189,239,152,231,216, 43,209, 9, 38, 0,207, 0, 98,204,
-151, 18,250,180,123,198,250,237, 0,222,254,233, 59,113, 43, 46,197,233,233, 73, 60,230, 9, 79,193,244, 24,240, 77, 0,187,155,
-247,199,238,209, 7,225, 78,123, 20,238,200, 37,209,135,238,200, 43,162,187,201, 12,115, 58,130,183,125,114,142, 95,127,241,171,
-240,249, 91,239,129,157, 30,193,198,145,139,112,234,212, 41,204, 38, 6,196,140,219, 78,239,225, 21,111,184, 17,207,127,213,205,
-248,178, 5,246,103,132,238,200,209, 16, 58, 0,223,220,103,156,157, 94,142,179,230, 98,204, 67,133,142,241, 18, 20,232,242,190,
- 77,179, 13,223,177,174, 51,216,193, 12,167,236, 12,219,211, 75,112,143, 59,130, 61,204, 0,222,196, 46,128, 63,125,239,223,227,
-119,255,248, 47,240,197,123,246,112,143,179,144,163, 83, 96, 54,195,153,249, 2,230,232, 9,208, 69,151,225, 29, 31,248, 4,126,
-238,255,124, 37,254,211, 71, 23,248, 34, 54,112,247,229, 15,196, 87, 38, 71,240, 13,153,160, 15, 29,232,148,127,180,234, 33,255,
- 31, 72,190, 93, 16,159,185,240, 40,246,188,141, 96,199,123,245,118, 13,135, 62,228, 93,138,118,149,101, 42, 46,104, 55,167,134,
- 40,125,248, 47,237,203,174, 57, 53,104,196,233, 28,238,215, 1,155, 75,224,113,223, 6,252,220,179,127, 24, 87, 92,113, 25,110,
-187,251, 14, 92,122,108, 19,199,250,109, 28, 49, 2,154, 76,225,216,192, 65, 96, 97, 1,219,195,217, 30, 19, 2,156, 16,206,236,
- 89,200,236, 18,220,181, 55,193,235,222,114, 35,222,116,211, 41,108,195, 59, 13,243,232, 40,135,220, 86,252,219,203,102, 26, 2,
-102,179, 14,123, 65,180, 89, 0,204,166, 71, 48, 95, 44,144,228, 47,214,195,232,218,223, 91,163,211, 90, 99, 93,137,117,106,164,
-114, 37,180,220,105,200, 13,219, 15,252,192, 15,224,234,171,175,142, 13, 86,206,158, 61,139,219,111,191, 29, 95,253,234, 87,241,
-129, 15,124, 32,150,210,169,129,211, 6, 47,250,251, 99,186,231,121,109,179, 74,188,230, 15,141,248,114, 65,152,173,173,173,104,
-160,174,190,250,106, 92,117,213, 85, 56,113,226, 4,142, 31, 63,142, 59,238,184, 3,111,125,235, 91,241,245,175,127,189, 16, 77,
- 81, 88, 59,103,226, 43,107,191, 46,241,218,216,216,192,163, 30,245, 40, 60,238,113,143,195,201,147, 39,177,187,187,139,253,253,
-125,124,237,107, 95,195,233,211,167,113,243,205, 55, 23, 37,103, 26,217,182,148,242, 90,215, 52,246,216,216,216,136, 13, 83,148,
-208,151,223,191,131, 58, 7,122, 31, 55, 54, 54, 10, 5, 61,173,117,207, 83, 16, 26,189,231, 14,150, 70,252, 91, 91, 91,120,244,
-163, 31,141,107,174,185, 6,211,233, 52, 50,233,207,157, 59,135,207,126,246,179,248,196, 39, 62,129,187,238,186,107,189, 90,152,
- 46, 83, 11,204,204, 6, 76,191,128, 19, 47, 15,123, 82,211,101, 29,112, 87,239, 69, 99,122, 24,204,132,176,101,166,216,182,187,
- 1, 70,246, 53,224,190, 87,122,143,110,185, 68, 7, 96, 30,214,210, 6, 44,166, 16,156, 12, 41,185,109, 3,156,115, 30,229,218,
-132,175,133,159,194,115,104,108,248,251, 37,255,199,143,224,218, 7,122, 17,171, 63,248,243,143,224,255,249,175,119,248,115, 1,
-240,192,203,128, 71, 60,244, 82, 92,186, 5,136,157,227,214, 91,183,241,119,183, 1, 95,220,245,228,189,185, 1,122,199, 0, 25,
- 76,186, 9,204, 98, 23,151, 79, 1, 89,248,223,217, 9,255,176, 53,193,246,238, 18, 27,225,119, 23,188, 9,152, 77,192, 46, 64,
-110, 27, 39, 1, 92, 6, 79,220,227, 77,224,139,115, 6,120, 11, 27, 44,152, 44,118,112, 4,158,184,247,125, 87, 2,151, 93,114,
- 4, 71,143,222, 15,219,187, 61,110,187,237, 54,124,253,206, 37,110, 59, 7,156,177, 30,221,235,197, 19,232,118,151,192,116, 11,
- 56,179, 27, 64, 64, 54, 88, 58, 90, 81,109,227,130,192, 21,195,245,254,191,143,204, 38,216,159, 47,177,184, 15,107,203, 47, 24,
-245, 11,143, 98, 91,240,162,141,236, 69, 30,137,125, 87,182, 56, 91, 28,224,122, 64, 44, 76,152,160,158,122,166, 76, 79, 23,159,
- 87, 35,111, 85, 89,221,179,239, 48,155, 26,200,190,141, 27,192, 38,128, 31,250,129,203,241,175,126,244,105,120,208,177, 14, 15,
-216,191, 7, 27,118, 15, 75, 11,236, 45,151,112,232,209, 77, 24,147, 14, 16,211,225,246,179,115,108, 94,254, 32,124,249,180,195,
- 91,222,253, 97,188,243,253, 95,194,215,238, 81,200,205, 27,245, 62, 8, 80,164,166,144,145,219, 94, 68, 52, 19,227, 13,208,222,
-238, 18, 78,124,175,120, 39,171,115,239,106,176, 21, 26,175,107,167,213,216,107,151, 47, 53, 22,185, 82, 90,110, 20,148, 96,149,
- 71,139,181, 81,100,102, 28, 59,118, 12,103,206,156,137,239,205,141, 80,173,123,174,101, 90, 26, 29,107,228, 87, 47,118,141, 66,
- 21,202,213,207,168,236,109,171, 46, 92, 13,170,166, 35,242,154,245,186,187,156, 26,243, 26,165,168,213,224,234,177, 1,188,216,
-205, 61,247,220, 83, 84, 2, 44, 22,139,120,142, 10, 81, 43,235,252,192, 80, 84, 16,244,209,207, 28, 61,122, 20,243,249, 60,138,
-255,172,227, 69, 28, 57,114,164,208,102,175,199,179,117, 46,122,125,185,132,111, 43,226,175,255,174,191,175, 53, 78, 3,163,206,
- 29,224, 0, 35, 6, 91,102, 2,107,189, 35,177, 73, 94, 88,230,116, 31,214,199,198, 17, 96,190,128,113, 22,157, 97,204,165, 7,
-102, 83,208,158,243, 45, 64, 39, 29,128, 37,166, 75, 79,180, 91,120, 19, 15,208, 20,144,125, 28, 11,235,124,159,124,219, 83,200,
- 17, 44, 23, 11,108,208, 18,212, 1,115, 54,152,244, 22,151, 89,224,119,255,247,239,199,211, 30,114, 20,204, 83,252,222,159,127,
- 28,127,252,190,175,122,131, 29, 86,230,230, 12, 96,235,165,234,143,134,231,239, 1, 48, 55, 27, 62,244, 94, 44, 0,233,209, 25,
-130, 88,193, 52, 40,228,197,250,243,112,217, 11, 23, 0, 57, 6, 22, 54,210,215,208,113,143,153,179, 80,208,155,166,192, 61,214,
- 11,231,146, 88, 24,183,192, 81,227, 73,129,121, 54,124,138,132,248, 45,209,133, 22,178, 61, 64, 22, 8, 85, 5, 36,128,113,137,
-120,235,195,130, 46,124,143,107, 26,119,189, 14, 66, 86, 14, 8, 96,121, 31, 24,118, 17, 58, 48,119,232,194,227,127,144,156,186,
- 45, 58, 60,113,105,208,165, 15, 18,140,190, 45,171,178, 91,189, 88,141,159,162, 14, 46,230,181, 60,223,156, 61,160, 47,158,193,
- 50, 95, 88,108,108, 77,176,191,187, 68, 31,140,250,127,186,233, 78,188,225,166, 63,197, 67, 79, 0,255,234,177, 39,112,197,241,
- 99,184,255, 3,191, 13,151,158,188,204,111,100,251,251, 56,125,230, 30,220,179,125, 14, 95, 63,189,141, 55,191,243,191,226,115,
-119, 0,123,236,163,132, 30,192,214, 6,225,220,190, 4, 24, 44,103,159, 74,185,160, 58, 6, 27, 96,177,112, 88, 90,192,237,205,
- 33, 66, 96,120, 3, 40,117,226,189,122,168,161,203,235,199,243, 8, 74, 13,169, 70,113,121, 71, 51,221,164, 53,194,238,251,190,
- 48,230,106,240,114,153, 84,173, 63, 63,115,230, 76,252,125,173,171,214, 77, 94, 13,186,170,219,141, 25, 57,109,128,178,189,189,
- 29, 85,203,234,238,102, 53, 28,237, 91,122,154,168, 59,223, 18,133,201,197,113,114,248, 58, 55,126,121, 23, 57,189, 62,117, 62,
-244,187,183,182,182,226,103, 20, 98, 86,216, 90,157,142,188,231,124,237,104,213,209,240, 88,132,173, 61,228,251,190, 47,222,175,
-186,235,171, 30,185,209, 87,199, 78,243,230,121,223,128, 35, 71,142,196, 38, 58,122,189,173,190,235, 57,122,161,206,160,166, 81,
-244,222, 40, 18,176,210,160,135,169, 78, 78, 96,120, 10,103, 13,118,173,192,132,226,173, 51, 2,244, 22,192, 69, 23, 3,123, 11,
-111, 1, 1, 76, 54,166,152, 47,247, 3, 34,215, 65, 16,206,143, 60, 94,103,145,243,184,125, 23, 49,179,113, 20,243,253,179, 56,
- 50,243,109, 34, 22, 11,191, 63, 76, 38, 71,177,223,159,243,249, 45,199,232,173,245,171,110,105,177, 49,157, 66,120, 3,180,185,
-137, 61, 0, 59, 96,200,236, 34,223,150,125,177,173, 46, 3,108,128,210,157,217, 10, 36,158, 30, 96,241, 56,161, 21, 88, 48,246,
-196,160, 51, 29,140, 88,144, 91,132,249,168,197,108,161,104, 7,189, 7, 7,157, 64,156, 69, 79, 4, 51, 97, 44,172,197,124, 1,
- 95,188, 59,241, 91, 90, 15,198,105, 27,174, 47,196, 1,100, 39,216, 67, 23,154,211,204, 32, 52,131, 19,235, 17, 12,218, 5,172,
-151,154,165,192, 47, 50, 97,116, 60, 58,217, 50,170,233, 57,235, 66,133,173, 75,251,231,164,235,192,206,161,119, 12,129,131,131,
- 11,123,234, 97,114,167, 4, 87,181,126,189,240,184,240,232, 98,100, 29, 22,117,130,219, 5, 16, 23, 13,250,160,109,111, 88, 12,
- 34, 30,158,154, 5,153,200, 14, 14, 61, 12, 22, 8, 26,148,236,176,223,219, 40, 33, 41, 6,216,183,222, 48,127,113, 9,252,250,
- 59, 79, 97,214,157, 66,199,255, 0, 18,160,119,126,143,232,157,110, 41,169,249,138, 56,239,119,240,100, 3,167,233, 40,196, 44,
- 1,187,139, 36,216, 56, 60,207,222,101, 95, 36,254,187, 25,226, 57,171,174, 42,143, 89, 19,173,215,134, 62,207, 9,235,251,212,
-136,183,186,153, 41, 4,171,155,187, 18,225,212,248,231, 16,115,173,137,190,179,179, 51,136, 22,245,123,149,168,166, 81,179, 58,
- 25,185, 65,169,115,200,185,196,169,254,142,254,102, 30,141,231,117,216,122, 46,234,156,228,176,120,158, 90, 80, 53,180,250,161,
-141, 74,244,253,154, 86,200, 17,131,220, 49, 80, 49,154,156, 64,152, 59, 32,235, 12,122,126,239,242,146,182, 58,125,178,206, 41,
- 80,164, 65,127, 59, 63, 31, 77,201,168,241,215,223,104, 33, 53,250, 93,234,224,141,233,239,215,122,240, 43, 3,117,177,222, 56,
-132, 4,152,193, 12,211,201, 6,246,101,215,175,233,189, 69, 74, 73, 89,193,124,127, 31, 98,130, 3,191, 92,122, 99, 71,136, 77,
-157,108,232,177,206,161, 7, 56, 83, 15,183, 63,199, 36,112,101, 12,124,147, 19, 0,232,151,251,232, 96,176,180, 64,199, 51,108,
-177,197,134,115,152,153, 14,189, 3, 78,239,156,197, 78,191,136,209,175,204,151,222, 28,210, 81, 76,197, 97, 66, 61,118,101, 23,
-214, 2,189, 91,122, 5, 72, 6, 96, 45,172,243,196,220,141,233, 6,246,247, 45,122, 11,175, 14,199, 6, 91, 51,131,253,253, 5,
-140, 1,200,116, 88, 46,250, 32,240,210,195,176,129,117,192, 92, 8,243,133, 0,221, 4, 52, 17,144,237, 33,139,189, 24,188, 76,
- 55,142, 98,177,127, 22, 83, 7,108,116, 0, 19, 97, 41,115,104,105,160,145, 57, 4,140,126,238, 60, 89,104,226,199,100, 58,221,
- 68,215, 19,196,237,198,110,117, 10,179, 23,123, 9,149,240, 56,153, 14,204,132,101, 31, 74,134,173, 11, 77,109, 76, 64, 62,189,
-130,134, 17,221, 71, 19, 42,177,192, 4,210,113, 8,186,122,192, 90,108,193, 97, 54, 33,156, 93,212, 77,111, 47, 60,254,135, 55,
-234,146, 71,230,240, 6,144, 50,187, 13,205,181, 71,232, 61,108, 0,170,228, 20,176, 36, 11,192,128, 65, 48, 32, 21, 95,112,234,
-210, 58, 88,242, 18,178, 29, 1, 52, 35,204,231,130,221, 93,255,250, 57,117,108,245,100, 12,128,201,212, 63,185,232, 49, 51,201,
- 67,118, 4,236, 47,122,127, 14,221, 20,176,187,225,124, 29, 50,229,105,191, 72, 8,224, 73,104,241, 8,159, 89,112,193,214, 76,
-201,171, 83,205,215,176,215, 53, 90,172,235,199,235, 77, 87, 13,182, 70, 95, 90,158,166,125,192, 53,210,207, 29, 2,141,250,180,
- 19, 91,222,229, 44,135,206,243,104, 57,135,196,115,227,158,127,175, 18,213,244,253,218, 25, 77,207, 69,141,142, 26, 19,101,128,
-231,145,162, 70,248,122,158,202, 76,207,127, 55, 23,172,209,207,182,154,186,232,127,231,206,129,230,145,243,136, 92,191, 91, 63,
-147,167, 43,242,243, 86,103,227, 32, 37,133, 74, 62, 83, 56,188,174,167, 63, 72,190, 50, 55,172, 74,126,203, 59,233,233,181,181,
-154,239,228,136, 72, 75,145, 78, 81, 8,157, 7, 26,181,231,247,111,213, 99,102, 66, 95,111,233,130,129,112,216, 95, 46,209,251,
-254,171,222, 98,237,247,232, 28,192, 33, 29,181,112,240,140,186,249, 34, 57,241, 46, 25, 34,143,182, 5, 67,229,230,222, 33,167,
- 14,108, 28, 22,189, 67, 15, 96, 26,112, 59,130, 5,195,161,119,115, 44, 67,212, 72,232, 48,153,110, 97,134, 9, 22, 86,231, 5,
-176, 12, 10,120, 93,128,140,151, 34, 32,222, 64,239, 22, 62,220, 54,228, 43,105,172, 55,114,189, 0,178,191, 11,160, 3,179,129,
- 19, 66,239, 8,103,247, 22,209,226, 49, 4,196, 12,113, 14,126,104, 45, 8,126, 28, 45, 49,224, 44, 4, 61,102,236, 3,144,133,
- 3,168,235,176, 88,248,186, 91, 7, 96,222, 3,132, 69,112,138,124,192,204,178, 12,193, 12,193,145, 71, 19, 22,115, 96,223,245,
- 97,159,243,242,176,235, 2,130,110, 50, 65,191, 92,162,183, 61,152, 60, 95,201, 7, 66,126,191, 34,221,112, 41,236, 90, 65, 3,
-204, 74, 74, 32, 10, 59,128, 39, 33,138, 50, 0,150, 62,232, 89, 92,128,221, 47, 60, 26,115, 46,184,240, 48, 1, 70,175,251,255,
- 46, 49,129, 96,154,197,192, 11,159, 75, 23,237,200,228, 95,234, 49,131,197, 12,147, 0,255,117,216,133,117, 61,120, 22,186,166,
- 77, 12,236,146,112,174,247,204,147,173, 41, 97,190,240, 11, 7,198, 11, 88,244, 78,162,175, 64,232,193,112,232, 24,176,125, 56,
-203, 40,142, 33,224,141, 37,220,124, 27, 94, 62,163,132,188,242,169,238, 22, 54,110, 86,198, 76, 64,110, 9, 88,192,138,131, 4,
-249,198, 21,232,123,220, 96,115, 57,207,214,166,171, 6,187,150, 22,173,115,187,121, 51,150,188,229,107, 30,229,181, 12, 78,158,
-119,215,163,126,143,146,244,212,248,169, 1, 84, 99,163, 36,174,220,200,232,249,230, 29,226, 52,250,212, 72, 81,107,246,119,118,
-118,138,107,209,154,236,253,253,253, 98, 12,212, 0,235,115, 42,252,146, 71,255, 57,159, 32, 79,103,212,237,110,107, 3,169,207,
-231,149, 1, 7, 41, 41, 84, 98, 91,173,159,159, 27,232,149, 11, 36,180,155,213,223,207,175,119,107,107, 43,222,139,220, 96, 43,
-227,190,206,153,231,165,114,185, 35,150, 55,117, 81, 72,255, 32, 45, 53, 67, 80,235, 35,181, 73, 15, 76, 54, 48, 93, 58,184,229,
-158, 55,185, 22,192,238, 57, 79,164, 19,224, 40, 8,232, 4,231,122, 96,219,147,214, 92, 0, 0, 32, 0, 73, 68, 65, 84,119,103,
- 7, 64,135,141, 0, 57,247, 75,191,178, 5,155, 0, 77, 0, 44, 33, 88, 98, 99,234,217,240,187, 54,160,120,129,153,182,176, 61,
-152, 8, 34,193,176,201, 18, 75,237,186,198, 19, 44,123, 1,216, 96,107,211,151,186, 81,239, 96,204,110,209, 83, 92, 0, 44, 92,
- 7,134,175,177,119,139, 5,132,217, 39,204, 13,195,245, 75,108,248, 46,238,232, 93, 31,224,246,206,159, 95, 55,241,192,119, 63,
- 7, 4, 48,179, 13, 88, 43, 65,193,205,133, 77, 7,152,109, 78, 49,223,247,123,136,254,176,244,190, 90,103, 58, 97,236, 89,135,
-158, 8,100,142, 0,112, 16,235, 83, 91,100,129,205, 9, 65,122,129, 19,192, 46,252,103,187,205, 45,244,203, 96,136,237,220,243,
- 25, 86,100,181,157,166, 42,133,130,211, 65, 96, 99,124,129,142,235, 61,236,174,113, 82,224, 42,245,228,188, 83, 70, 30,188,128,
-181,192,114,223, 71, 59,204,193,193,177,112,114, 33,155,126,225,209,222, 23, 74, 56, 15,165,132,130, 68,242, 25, 71, 87, 94,245,
-158, 57, 66,245,254,171, 36, 40, 58,169,105, 53,136, 62,128,159,152, 93,104,237, 10,131,189,197, 50, 68, 2,128, 91, 10,250,165,
- 64, 28, 5,223, 24,152,146,193, 20, 38, 26,121, 11,130,227, 73, 4,166,104,185,231,153,174, 43,160, 73,117,163,205,100, 10, 16,
- 99, 49, 95,122,104,145, 61, 99,213,115, 0, 36, 66,199,173,127, 90,114,164,198, 87, 55, 99,141,190, 52,250,211,141, 56, 87, 87,
-211, 28,178,126, 62,143,102,245,189,121, 39,178, 28,222,213,168,148,136, 98,158, 93,127, 71,235,160,213,112, 43,171, 90, 85,201,
-212,129, 80,242,158, 26,201, 60, 71,157, 71,150, 57, 36,175,186,227,234, 60,236,236,236, 20,173, 67, 39,147, 9,250,190, 47,250,
-185,251,210, 64, 19,207, 51,111, 56,163, 93,216,114,231, 33,255, 91,211, 0,154, 91,174,219,208,230,198, 93, 13,121,171,228,108,
-213, 67, 53,253, 53, 77,145,215,213,139, 72,154, 3,141,227, 50, 68, 89,122,244,243,201,223,215,221, 61,239, 44, 45,251,208,214,
- 54,140,131, 32, 68,221,147,174,128, 98,245,251, 20,130, 5,251,200, 84, 32,254,187, 67,174,201,137,131, 64,252,231, 9,229,191,
-236,251,162,228, 49,133,152,110,177,141,189,229,190,239,162, 54, 73,101, 95, 27,161, 12,126, 31,130,253, 62,149,164,110, 24, 19,
-215,187,129,210,204,184,224,168,236, 47,108,208, 57, 39, 31,110, 75,128, 7, 58,134,131,245,111, 13,231,166, 46,255,221,110, 3,
-223,112, 23,227,116,119, 25,182,251, 73,218,104, 66, 10,155,179,235,240,249,100, 95, 86, 59,209, 60,159,115,193, 35, 9,156, 25,
-202,134,128,148,192,211, 1,206,161, 11,235,199, 46, 22,128,181, 16, 31,167,251,255,103, 96,190,167, 78,160,114,129, 0, 54,254,
- 4, 22, 75,141, 32, 12,164,183,144,222, 34,150,187, 79,128,189,165,248,136, 89, 82, 8,212,207,119, 35,121, 88,235,233, 92, 13,
-189,231, 70,125,185, 4,119, 29,120, 50,137,247,205, 58,183,162,211, 34, 69,227,157,127, 55,177,231, 7,193, 57, 56,107,125,126,
-127,146,174,169, 57, 79, 14,250,160,127,162,199, 11,143,177,219,217,137,207, 9,185,129,208,161,207, 60,119,144,130,192, 33,160,
- 32, 3, 81, 68,197,146,216,167, 20,120,240, 40,224,169,144, 19, 74,250,142, 32, 56, 24, 40,225, 14,133, 59,145,104,111, 54, 62,
- 67, 32,109,133, 30,156, 11,215, 80,115,170,175,161,244,155,235,212,130,110,140, 99,132,169, 58,194,173,159,187, 15,110,192,154,
-215,199,223, 33, 20,206,229,208,139, 56, 87,228,185,183,215,194, 13,194,197, 97,206,101, 77,172, 33, 24,133,179, 35, 21, 36, 31,
-139,131, 12, 48, 21, 9,207,116,254, 84,253, 46,141, 28,243,239,169, 63,223,122,223,202,235,103, 28,136,216,209, 60, 47, 23,197,
-162,188,229,227, 64, 90,203, 32, 55,109,128, 18,242,228, 46,188, 95,200, 15, 26, 7,142, 9, 2, 18, 38, 20,184, 48,186, 58, 92,
- 95,134, 0, 49,121,204,177,212,181,235,128,126,233, 87,255,253,142,205,240, 61, 15,251,118,124,219,229,199, 33, 34,248,240,167,
-191,136,111,124,243, 52,206,206,253, 74,229, 80, 34,198,240, 61, 26,150,214,105,152,154,109,218,156, 82,130,217,244,142, 6,172,
-224,144,187,116, 62,121, 62, 80,207,191, 78,118, 55,255,110,125, 95,137, 40, 20,215, 77,237,247,158,151,177, 25, 36,227,185,189,
- 46,138,215, 27,215,133, 67,204,159,124, 47, 59,223,133,123, 64, 82, 31, 69, 37,192,240,211,245, 26, 21, 89,253,125,235,246, 90,
- 89,191,188,215,157,223,170, 61,125,237,235,247,114,247,148,198,158, 54,102,127, 14, 16,151,235, 57,241,127, 87,242,228,127,111,
-167, 75,254,145, 1,172,117,236,106,186,151,163, 31, 55,232,241,164,240,202, 5,152,255,126,107, 2,181,206,191,120, 31,153,161,
- 49, 60,212,125,118, 16, 90, 49, 78, 78, 86,158,207,129,200,142,180,194, 72,255,163, 77,234,132,106, 9, 13,143,190, 22,171, 94,
-148,116,160,117,146,198,223,157,223,226,202,157, 14, 25, 62, 53,216,148,243,243,150,106, 19, 17,155,148,228, 20, 1,232, 60, 87,
-100,105, 5, 71, 54,167,216,221, 91,120,116,128, 0,230, 46,228,217, 25,196, 12, 39,146, 12,216,170, 13, 76, 52, 98,175,238,191,
-220, 23, 55,209,173,156, 34,107,253,187,243,253, 48,225,208,140,247, 81,163,151,137, 72,149,183,199,173,156, 18,242, 79, 57,242,
-149,245, 54,100,221,240,186, 3, 26,253,181,227,127, 47,141,250,125, 4,182,135, 45,153, 58,185, 55,145,231, 58,170,200,189, 53,
-106,185, 39, 73,231, 49,251,214,253,126,125,254,131, 69,145, 49,186, 91,207,223,219,168,253,190,242,244,254, 9, 65, 67,135, 58,
-247,123,131,100,228,142, 15,137,191,215,165, 61,119,163, 27, 0, 73,251,251, 15, 27,217, 28,196, 40,184,149, 88,211,122,251,124,
-216,185,225, 50, 87,158,170,248,150,170,205,194, 69,242,155,126, 95,121,150,134, 12,172, 44,131,194,164, 39,148, 90,113, 35,231,
-225,235, 78, 92, 72,126, 57,184, 67,205,131,182, 31,198,231,109, 79,243,251,175,215,175, 71, 19,240, 70, 10,110,127,253,122,142,
- 7,156,255,239,175,119,204,152,120,176,199,172,154,131, 60,178, 62,232, 60,247,111, 28,112,253, 29,116, 93,196,243,201, 22,219,
- 63,166,120,206,186,243,114, 43, 87,221,193,175,231,124,127,255, 48,223,219,250,174,182, 35,126, 31, 68,234,114,175, 6,229,255,
- 47, 14,223,216,178, 93,125,204,181,218,207, 7, 62,225,193,182,122,184,163, 8, 65,200, 5, 88,112,120, 36,152,230,243,241,184,
-230,188, 15,146,114, 56, 72,240,187,202,121,171,131, 45, 34, 26,125,191, 66,200, 38,176,146,173,179,135,244, 99,235,249,231,154,
-206, 6,143, 44,180,250, 58,235,133, 86,111,162,235,156, 82, 87,189, 78,135,220,172,221,136, 81,112, 7, 88,171,116,128,241, 25,
-235, 62,150,198,137,177, 68, 63, 24, 71, 14, 6,127, 25, 34,121,130,169,170,224,187,236,250,213,221, 26,206,111, 42, 42,194, 93,
-112, 10, 28, 56,164,236,206,111,213,212, 87,229, 64,161,172,236,176,199,123,119, 6,174,233, 92,158,207,195,196,121, 87, 30,109,
- 37, 3,126,144,245,251, 79,233,184,126, 92,204, 96, 29, 74,150, 58,150, 67,204, 35, 27, 37,215,112,159, 29,169,218,255,199,214,
-193, 42,183,178, 30,135,238,241,143,125,252,121, 27, 36, 71, 7,136,132,215,177,147,207, 35,167,155,255,230, 58,246,242,170,243,
-115, 33, 15, 75,154,152,172, 48, 82, 98,192,246,206,167,208, 26,175, 11,220,218,210,168,117, 99,104, 6, 77, 33, 14,126,116, 36,
-112, 86,198, 49, 94, 18, 95, 94,216, 56,239,248,247,154,115, 30, 59,255,220,232, 31,196,168,183, 92, 71, 71, 24,117,138,116, 92,
-234,215,245, 82, 56,240, 43, 56,144,209, 76, 21, 1,232,209,132,252,108, 46,157, 75,228,169, 84, 32, 23, 98,199,225,181,177, 12,
-249, 20, 68,190,144, 9, 76,209, 25,171,127, 47, 18, 40,129, 65,131, 30, 61,255,114, 78,186,149,175,215,243,151,171,231,114, 61,
-255,252,219, 6,200, 18,141, 59, 91,131, 72, 80,146, 91,211,187,154,208,149, 34, 71, 1,124,253, 52, 51, 12, 17, 68, 44,196,186,
-129, 54, 62,216, 51,191, 23,125,239,133,159, 58, 95,246,234,156, 11,156,144, 52, 63,253,118,144,102,148,196, 22,202,158,105, 15,
- 16,132, 4, 36,254,254,139,117, 99, 83, 63,166, 57,198,254,206,205, 26, 11,193,194,121, 65, 23,146,120, 52,224,226,239,250,232,
-156,196,243, 35, 26,174, 99, 34, 30,172, 91,125, 31,139,248,244,133, 12,239,215,216,188,170,231, 49,113, 40,137,101, 19, 73,164,
- 74,138,213,127, 53,198, 92,207,235, 85,227,183,110, 60, 13,113,241,124,254,186,131, 20,159,215,191,243,231,235,239, 59,236,177,
-119,237,125, 74,255,206,171, 85,106,116, 85,200, 55, 29,203,207, 15, 78, 70,207,175,126,221, 65,214,206, 63,221,167, 70,175,131,
-202,253, 95,234,249, 47, 67,183, 75,215,129, 27,217,191,187,218, 40,142, 77,174,209,141, 90,100,208,253,236,190,132,199, 91, 68,
-181,226, 28,248,252,225, 19, 19,114, 42,113, 35,209,244,115,216, 1,197,165,239, 39,165,236,102, 76,102,130,193,230,198,228, 94,
- 37,198, 89,232, 94, 57, 5, 34, 7,103, 5,140,166, 12, 72, 14,101,212, 87,157,147, 70,210, 92, 17,114,198, 38,117,220,248, 71,
- 34,251, 92, 48,134, 2,174,164,223,239, 8, 62, 39, 27,238, 75, 52,186,193, 3,102,241,162, 34,138,136, 80,128,135,245,125, 68,
- 38,116, 19, 47,175, 87, 2, 59,139,144, 12,147,126, 62,215, 45, 40,126,175,218,116, 89,218,112, 35,115,105,208,205, 8,146, 66,
-194, 32, 18, 16,165, 72,213, 51,191, 3, 66, 4, 3, 33,192,245, 54,108, 30, 97,147, 13,248, 91,174,149, 40, 21,236,238, 90, 76,
- 26, 73,177,140,191,191,254,175,153,153,120,231,221,249,117, 46, 46,149,128, 10, 1,231,246,118, 49,153, 78,125,126,220,122,242,
-235, 70, 55, 73, 27, 42, 19, 32, 12,203, 2, 51,241,154,238,190,130, 67,208, 75, 15, 54, 60,152, 83,249,126, 34, 13, 84, 35, 39,
-135,210,164, 59, 84, 80, 33, 92,174, 1,189,127, 34,130,201,136,113, 48, 97,126,181,142, 66, 50,106,136,117,127, 26,115,210, 56,
- 32, 78,254,126, 87,206,106, 56, 26, 98,128, 3,114, 21,156, 73, 50, 28, 29, 1, 99,130,168, 81, 54, 39,243,127,214, 90, 63, 31,
- 10, 35, 69,201, 88, 29,194,168,214, 70, 57,150, 24,229, 28,145,112,148,112,116,193,232,213,198,112,204,152,175, 53,130,131,253,
- 35,145,167, 91,251, 86,199,156,173,235,114, 78, 57,132,230, 67, 4,144, 84,125,247, 68,113, 24,130, 85, 39, 95,247,177,176,207,
- 73, 92,107,136, 21, 26,245,145,214,189, 14,206,198, 87,215, 49,197,251, 68,162, 71,196,163, 39,196, 74,216,195,134,198,189, 35,
- 41, 39,220,112, 19,226,149,176,169,136,172,206, 5, 50, 29, 16,126, 62, 63,163,126, 80, 67, 54,118,254, 57,122,219, 52, 46,141,
- 5, 25,191,147,220,129,234,164, 87, 62, 44,157,119,126, 66,199,223,172,249,253,129,135,154,157,255, 24, 87,224,124, 28,140,218,
-120,143, 25,251,252, 56,246,157, 6,109,226, 15, 19,129,195,130, 96, 2,168, 43, 35,113,147, 25,110,170,224,252,226,245,248, 25,
- 41, 12, 92, 94,206, 72, 85,230, 86, 35,239,220,112,115,195,152,107, 4,229, 29,195, 10,150, 46,156, 29, 6,137,141, 89, 73,228,
-206,165,254,190,184, 16,241, 73,104,141, 44, 97,124,252,166,211,117, 93,145,142,200, 35, 47, 53, 6,146,149,192,213,240,115, 28,
-127, 75,131, 10, 2, 47,182, 20, 16, 57,167,247,203,101, 6,147,112, 98,235, 24,132, 24,206,245,232, 21,144,119, 12, 97,194, 36,
-116, 64, 20,241,247,140,141,143,234, 69, 4,142, 28, 38,147,105, 73,212,164,161,163,170,207,217,204,160, 75,110,148,121,181, 81,
- 23,150,241, 72, 77, 4,134,199, 95, 59, 28,210,214, 54,234,181, 83, 90,238, 39,169, 76,175, 78, 43,233,177, 11, 34, 89, 6, 4,
- 97, 42, 94, 7, 0,211,233,205, 13,243,214,185, 98,124, 98,201,108,101,212, 40,116,210, 59, 48,204, 45,226,231,122,118,212,249,
- 93, 71,234,121,164, 43,153, 81, 87, 99, 47,185, 83, 32,222, 70,232,250,212, 35,135,121,172,231, 61,118, 94, 30,201,225, 2, 86,
-207,157,190,126,217, 23,247,178,248,111, 0,206, 16, 92, 88,107,249,218, 31,204, 67,100,234,166,162,133,135, 94,115,224,222, 61,
-124,221, 25, 19,188,243,208, 56,186,176,215,233, 49, 62, 79, 46, 56,122, 85,164,222,138,148,242,201, 39,107, 24,169,113,240,207,
-215,168,157, 7,251,240,190, 34, 89,144, 12, 61,227,149, 48,138, 70,144,234, 73,129,209,145,129,176, 59, 47,248,200,111, 58,116,
-175,145,140, 85,227,207,204, 43, 55, 43, 95,103,238,154,112, 89, 61, 46,245,235, 7,137,212, 91,198,190, 5,223,229,207, 55,239,
-121,123,112,176,180,203,104,164,153,120, 16, 65,119, 1,126,215, 8,153,179,205, 67, 55, 20,245,154, 37, 84, 10, 20,146,183,209,
- 25,144, 44,239,173, 81, 63, 48, 97, 83,108, 70,196, 1, 18,141,149,150, 38, 25,114,150, 80, 67,237, 35,114, 98,175,214, 66,112,
- 69, 68, 94,112, 54, 48,140,212, 83,196,174,169, 2,191,197,249,104, 45,155, 55,182, 52,140, 6,229, 49,236,213, 80, 88,202, 27,
- 3, 42, 54,180, 41, 7,194, 88, 48, 46,130, 12,102,101,160,183,190,175, 98,199,140,217,108, 35, 9, 42, 89, 11,129, 96, 50,157,
- 97,105, 83,167, 66, 43,128,115,130,142, 59,175,124,184, 44,225, 81, 71,229, 57,187, 60,255, 41, 82, 70,235, 0,156, 91,191,105,
-166,247,211,224,104, 50, 10,187,191,239,213,184,172, 9, 58, 52, 18, 92, 5,151,143, 31,195, 60, 83, 53,193,240,124,167,169,163,
-108, 77, 9,188,204,156, 83,157, 9, 53,204,115, 91,124,167, 70,111,164,250, 24,189, 61, 47,103,229, 32, 72, 95,174,176, 57, 48,
-152, 34, 43, 3,130,132, 42,135,190, 25,185, 19, 31, 68, 5,136, 40,104, 54, 12,124,222,112,100, 56, 1, 68,236,232,181,173, 66,
- 26, 69, 4,174,247, 78,135, 20,105,153, 12,181,117,146,170, 46,194,126, 72, 1, 49,145,144, 62, 92,233,116, 56,183,250,117, 97,
-228,197,152,121,144,204, 49, 85,168,243, 32, 56,244,113,126,152,184, 30,243,253,179,235, 40,229,228,114,168,104,204,168,231, 27,
-174, 91, 65,130,138,239,147,131,211,112,206,103,194,117,102, 77,127,237,117,193, 61,115, 17, 57, 38,216, 37,192, 51,213,235, 28,
-115,193,222, 83, 34, 17, 56,241, 34, 30, 90, 30,124,208, 99,216,233,207, 59,109,177, 42,210,173,157, 38,138, 11,166, 69,167,242,
-158,162, 16, 13,137, 28, 58, 30,213,235,102,196,217,200,157,129, 26,230,108,230,232,196,134,250,101,138,199,218,105,203, 35,224,
- 26,125,232, 12, 39, 56, 48,207,197,135,239,153,134,249,193, 85, 68, 85,212,183, 83, 70,152,203,210, 5, 30,204,176,213, 52,114,
- 49,202, 98, 73,157,138, 57, 71, 8,136,253,249,178,148,223, 21,115,169,190, 67, 32,169,114, 83, 72,249, 16,115, 48,246, 20, 96,
-120, 10, 68, 31, 10,185,108, 59,164, 8,137, 41,230,195, 74,196,134, 86, 44, 16,146,176,185,101, 70, 46, 68, 90, 68,222,249,225,
- 16,160, 57,120, 1, 23, 27, 34,112, 53,248, 16,223,109,137, 1, 76,121, 18, 54, 77,139, 46,196, 56, 66, 4, 19,218, 50, 19,145,
- 23,143,225, 36, 36, 36,217,140,140, 96, 82,232,173, 96,197,249, 84, 75,133,162,152, 53, 37,151,181,129,137,247, 55,156, 67,141,
- 68, 30,118, 15, 98,208, 74, 84, 47,170, 9,162,218, 15, 67,138,195, 35,153,237, 61,119, 21,183, 34,138, 74,113,185, 86,108,180,
-122,227, 1, 80,217,167,193,172, 69,228,234,207,229,159, 31,164, 55,100,164,104,191,129, 98, 20,231,166, 67, 66,228,123,124,132,
-165,230,141,118,216, 31,116,169, 72,114,194,157,248, 68,232, 88, 52,158,183,188, 30,162,170, 4, 10, 72, 3,235,188, 22, 63, 55,
- 56,114,198, 36, 34, 36,122,132,225,136,152, 0,237, 52, 69, 76, 47,100,156,131, 65,206, 62,219,183,226, 28, 41, 74,112,218,129,
-118,156, 39, 97,255,175, 35,251,174, 5, 11,141, 77,234, 22,105,199, 29, 38, 42, 63, 4,204, 62, 86, 74,118, 95, 63,162, 39, 20,
-115,100, 85,238, 44,131, 76,135, 71, 31,229,214, 17, 80,126,172, 61,175,218,145,185, 55,156, 2,111,232,184,204, 65,202, 97, 74,
- 12, 13, 76,195, 35, 51,209,235, 31, 70,118,249,249,183, 88,234,156,195,191,202, 61, 40, 34,137,218,105, 72,145,125,107,226,182,
-136,110,249,220,235,196,198, 77,178,128,191,165, 97,160,179,107,210,180,144,227,112,190,168, 4,109,194,174, 66, 89, 63, 1,132,
-136, 58,119, 28, 58, 78, 70,213, 80,136,196, 57,207,215,122, 66,148, 71, 19,242,136, 28, 32,161, 0,207,154, 2, 46, 79,215,111,
-194,253, 52,225, 44,186,193, 12, 34,152,132,246, 48, 13, 8, 62,241,136,241,146, 44,191, 65,132,200, 63,187,161, 66,129,159,173,
- 4, 75, 69, 50,200,239,120,204, 41,255, 30, 27,139,146,255, 46, 31,117, 51, 24, 57,146,148, 95,127, 64, 29,212,168,185, 80, 62,
-231,244, 28, 66,174, 48, 16,209, 72,180,196, 76, 89,231,129,136, 6,110, 16,139, 18,241,136, 77, 23,137, 69, 57,113, 45, 63,230,
-175, 75,194,132,189, 4,238, 10,162, 82, 94,236,239, 9,117,158,104, 39,236,197,126, 28, 9, 58, 37,214,133,191, 75,226,157,215,
-201, 24, 19,191, 42,200,168, 35,220,147,117,233,201,220,144,181,141,122, 34,186, 42, 12, 29,225,232, 28,182, 15, 6, 84, 95,207,
-159,175, 97,250,252,111,206,190, 95,197,154,244,121, 23,174, 41, 15,154,148,163,197, 89, 9,234,224,249, 44, 61,225,156,172, 76,
-157,180,158,171, 29, 11, 19,246, 3, 14,199, 98,175, 49,165, 81,173,131, 95, 17, 25,160,173,254,185,210,233, 17, 22,159,183, 55,
- 62,226, 78,118,129, 32,224,181,200,110, 51, 40,210,156, 62, 73,145,134, 13,232,145, 4, 7, 97,200, 95, 38,106, 87, 22, 83, 5,
- 17,229,175, 31, 6, 30,167, 92,252, 34,159,160, 7, 12,180, 73, 92,243,125, 7,115, 10,120,232,204, 28, 58, 35,178,174, 78,241,
-240,233,133,214,231,155, 11, 58,192,231, 69,126,116, 69,218,164, 73,228,161,213,206, 91, 30,201,180,190,147, 43,156,157,197,167,
- 20,184,130, 47, 41, 35,172,149, 70,199, 68, 99,212,204, 73, 18, 53,141,189,122,196,236, 42,130, 11, 39,131, 27,191,131,105,148,
-195, 97,186,100,164,162,225,113, 73,165,208, 7, 50, 46,122,240, 57,196,201,129, 56,199,153,195, 64,196, 62,178,165,208,222, 55,
-192,237,145,175,162,145,120, 24, 43, 29,255,124,179,106, 70,109, 50, 22,177, 81,212, 93, 45,140, 54,123,130,143, 49,156,233,171,
- 53, 88,189,209,129, 30, 18,214,172, 72, 48,246,174, 16,121,113, 49,194,204, 54,173,194, 17, 64, 84,143, 75, 24, 8,146, 86,107,
-110,228,145,156, 34, 27,210, 81, 66, 18, 58, 55,123,163,235, 2,121,200, 49,135,102, 48, 20,175, 84,104, 88,226, 89,150,156,154,
- 96,136,169,153,198,144,236,251, 60, 18,146, 35, 34,233,115, 34,185, 81, 7,106,118, 50,137, 4,167, 78,171, 78,252,102,155, 31,
-153,253,252,227,192,222, 55, 12,244,241,252,199,170, 76, 66,225, 83, 6, 73, 87, 59,195,202,245, 89,167, 43,234, 72,155,132,124,
-169,150, 34,149, 78, 70,255, 30, 59,214, 92, 25, 93,255,202,169,148,176,190, 11, 68, 52, 70,194,105,206,168, 62,168, 19, 95, 5,
- 81,192,212,245, 63, 69,118,148,192,217, 66, 88,242,231, 21, 17,203,100,116, 77,204,140, 99,192,151,201,155,120,213, 70, 61,190,
- 54,194,149,200,199, 88,217,247,227,169, 9,106,114,141, 86, 29, 45, 36, 17, 87, 3, 44, 31,255, 39,130,142, 70,148,136,206,215,
- 8, 29,134, 61, 95, 37,175,214,230,207, 15, 27,129,175,255,172,196, 5,126,190,200,192,189, 5, 18,238,237,120, 18,243,192,163,
-175,255,187, 5,223, 68, 35,187,130,185,159,195,147,173, 60, 21, 5,136,153,165,145,238,160, 70,196,156, 59, 11, 38,192, 69, 38,
-193,250,173,247,213, 34, 48,121, 29,184,102,157,115, 52, 36,207,205,229,185,245,218,169,241,139,196, 69,164,195, 71,157,214, 71,
-130,145, 33,109, 3, 59, 89,225,117, 14, 57, 53,160, 35, 19, 96,119,142, 80,124, 92,240,172,204, 84,223,172, 4,148, 80, 21, 10,
-134, 63,158,147,147, 48,142,237,244, 0,168,237,228,228,121,102,225,161,123, 47, 46,116, 68,140, 34, 47, 20,151,155,136, 3, 76,
- 14,215, 83, 17,137,123,227,207, 96, 86, 99,102, 42,242, 16, 69,148, 42, 23,239,112, 97,163,211, 70, 79, 49,185,147, 79, 89,114,
-213,166,230, 34,177,137, 69,224,130,234,176, 31, 34,111, 8,157, 48, 96,124,254, 17,200,142, 97, 28, 29, 49, 88, 52, 77,198,190,
- 26, 62,252,237,141,146,203, 34,100,175, 54,111, 66,189,187,209,116,154, 88, 88, 18,176, 88,127, 14,206,134,116,155, 70,136, 18,
-190,215,193,177,135,109,149, 56,168,249,113, 32,211,166,207,165,106,195,243,254,125,193,193, 35,100,185,125, 30,205,253, 82, 16,
-213, 31,202,159, 39, 56,127,172,170, 36,186, 30,132,166, 65, 7,124,183, 56,229, 79,136, 43, 9, 98,146,149,194,217, 8,239,151,
-196,197, 8, 65, 51,197,223,138,100,205,144,222,140,207,103, 71,135,108,114, 40, 47, 72,114, 14,133, 12,242,232,241,124, 50,198,
-159,100,108,244, 60,130,175,141, 97, 78, 56, 44,136,134, 89,212,189,202,168,215,134,189,216, 71,149,216, 23, 22,152,117,206,119,
- 13, 20,129,169,114,238, 53,146,161, 17,118,171,244, 81,157, 70, 19,254,230,192, 47, 48,129, 17,175,115,215, 85,251,114, 55, 22,
-193,181,160,138,166,113,169,101, 60, 15, 27,137,210,189, 51,122,247,246, 51,126, 13,186, 17, 25, 78, 28, 64, 92,102, 77,206,109,
- 77,206, 92,232,176,138,124,181,243,225,162, 99,225,239, 87, 35, 93, 26,239,111,249,223, 33,155,190,218,105, 72, 95,146,177,230,
-147,138, 20,139,140, 87, 48,200,144, 72,148,143,187,103,189,202,202, 72,157, 70, 17,134,112,118, 84, 3,201,149,211, 50,114,109,
- 20,242,213, 66, 4, 38, 23, 33, 87,114, 90, 55,237,255, 78, 81,185,191,108, 67, 12, 54,222, 88, 18, 11, 76, 32,188, 69,214,110,
- 48,250,113,211,208, 69, 47, 24, 48,242, 91,232, 23,143, 16, 5, 87,214,197,115, 80,104, 35, 23, 35, 77,141, 48,181, 55,186,214,
-119,139,164, 72, 51, 42,188,107,173, 56,165, 57,164, 17, 1, 18, 55, 63,161, 67, 89,122,197, 80,202,231, 59,161,216, 58,212, 85,
-115, 79, 13,183,214,165,199,156,108,158,226,160,148, 35,207,231,169,227,220, 33,201,137,110,136,229,124, 90, 13,129,112,254,250,
-183, 19,231, 83, 76,226, 60,114, 34, 8, 8,138,119,119,148,201, 77, 17,117,148,112, 15,210,149, 39,182,179,150,188,166,223, 24,
-164, 65,105, 60,184,168,255,219, 59, 29, 90,117,208,200,233,231,198,153, 80, 56, 15,241, 61,194, 49, 23,172, 71, 91, 85,110, 40,
- 25, 79,130, 46, 64, 62,118,214, 97, 37,201,108,237,254,191,130, 79,112, 16,180, 86,207,233,124, 57, 85, 9, 41, 11, 14,111,109,
- 26,195,139, 92, 25,223, 88,234,202,235,200,140, 52,138,114,230, 65, 79,140,160, 69,194, 58,243,184, 67, 71,117,164, 77, 85,245,
- 79,170,132, 25,136,138, 73, 89,159, 16,234, 6,224,180, 78, 61,236, 81, 20, 29, 64,127,236, 14, 99, 16, 15, 26, 73,175,186,193,
-247,165, 65, 94,245,249,131, 54, 95,105,201, 48,230,159, 61,108, 36,125, 62,215,115, 24,249,234, 85, 11,166,133, 78,212,247, 98,
- 48, 41,113, 48,100,165, 53, 22,134,124, 68,215,132,237,199, 54,181, 60,215,158,193,229,241,152,193,244, 17, 54, 43,114,236,101,
- 20, 63,233,180, 52, 12,131, 82, 46, 48, 29,128,116,228, 74, 80,158,173,207, 97,135,134, 41, 28, 88,238, 74,124, 51,196, 5, 84,
-199,209,227,167, 24,141,197,231, 40, 56, 60,164,117,197, 50,172,223, 15,236,249,242,158,180,199,189,134,224, 37, 52,116,113,164,
-231,152,229,133, 99, 13,175,100,209, 52, 7, 24,210,196, 40,203,185, 84, 82,164,198,197,136,223, 64, 56,230,200, 17,196, 94,184,
-218,120, 57, 57,148,228, 81, 19, 7,129, 21,242,240, 41, 5, 56, 61, 26, 98, 10,145,149,111,221,236, 55, 34,142,114,242,181,241,
-211, 14,133,166,128, 83, 51, 35,165, 80, 63,169,156,171, 11,196, 36,223,138, 74, 72,192, 70,217,251, 20, 57, 28,162,117,201, 33,
-245,104, 40,109,138,168,162, 92, 39,110, 16, 37, 51, 85,164,205, 17,163,158,111,250, 45,131,225, 57, 60, 93, 97,192, 21, 66,205,
-245, 48,114, 7,187, 72,143,132, 31,228,148,191,140, 37, 87, 49,138,182,222,184, 56,231,154, 98, 41, 98, 15,175, 51,114, 24, 68,
-117, 45, 11,222,201,154,244, 30,175,225,117,153,102, 89, 97, 43,141, 56, 76,227,185, 34, 31,190, 78, 7,165,249,122,230,140,145,
-146,241, 66, 74,202,251,218, 28,239,143,230,236,115,206, 85, 57,246,218,185,178,230,111, 12,145, 31, 31,136, 74, 72,159, 84,145,
-186, 11,181, 61, 10, 9, 21, 37, 49,160, 34,211, 35,141,168,130,153,238,149, 65,203,149, 74, 91, 6,233, 48,117,224, 77,196, 97,
-229, 57, 80,164, 32,173,235,210, 51,254, 88, 87, 83, 51,238, 84,184,208, 32,131,238,197, 98,146, 53,147,121,165,131, 37,128,225,
- 58,253, 49,178, 8,169,117, 30, 62,146,101,172, 32,243,213,245,230, 84,193, 8, 46, 43, 21,171, 8,117,145,229,209,242,160, 67,
-169,137, 9,145,186,166,107, 99, 91,221,112,164,177, 69,169, 78,132, 40, 93,197,133,242,176, 14, 41, 19,204,152,176, 9,132,172,
- 96,148, 65, 96,131,162, 30, 94,175, 51,214,202, 71, 99,174, 40,134, 75,228,202, 12,130, 69,128,137,135, 14, 81, 59, 79, 58,140,
-242, 77, 32, 47,185, 84, 55, 92,229,238,136, 40, 70,186, 45, 44,173,135, 20,185, 58,143,200,148, 17, 74,100,245, 74, 14, 25,151,
-162, 66, 66,128, 21, 31,255,250, 90,102,223,172,197,101, 48,179,136,175,203, 87,155,229,115,170,166,161, 63, 30, 88,193,121, 90,
-133, 74,196,136,201,159,175, 80, 94, 71,207, 33, 18, 74, 71, 95,217,199, 65, 49,174,126,189,220, 11,114,230,118, 50,236, 52,186,
-199, 8,214, 43,193,173, 51, 74,190, 28, 32,149,211,165,127,109, 22,121,254, 26,133,129, 79,221, 26, 41, 32, 77, 17,186,139,208,
-180, 39, 94, 75,138,228,213,249,165,180, 7, 30, 38, 64, 59, 76,240, 53,150,231,174,157, 9,230,213,234,121,131,231, 66, 58,132,
- 70, 94,207,157,226,218,168, 39, 39, 55,212,123,143,238,185,178,114, 47,207, 91,119, 39,133, 68, 77,237,174, 31, 63,211, 24, 43,
- 23,184, 2,130,164, 75, 33, 89,222,156,200, 31,109,176,207, 28,156, 57,221,189, 59,114, 18,137, 13,210, 32, 58,172, 34, 66, 20,
- 39,186, 66,150, 20, 81,214,177, 60, 2, 65,221,104, 68, 86,145,104, 60,215,208,146, 93,172,143, 99, 50,141, 40, 96, 69, 9, 37,
- 70, 52, 26,253,174, 54,180,231,175,253,110, 16, 75,137,239, 21, 71, 33,103,111,183,162,241, 81,148, 98,196,231,105,141,197, 32,
-226, 15,151,213, 49,129,132,214,194,116,140,118, 73, 85,202, 73, 86, 11, 51,188,222,117, 93,170, 1, 47, 60,111,239, 17, 78,120,
-168, 96,110,144,148,216, 44,146, 17,205,161,109, 71, 21,162, 16, 12, 70, 82,131,243,231, 96,140,137,100, 76,147, 69,226,185, 1,
-175,141,186,214,177,114, 76,237, 36,114,156,207,143,101,130, 36, 35,233, 15, 30, 25,207, 90, 40,199,115, 18,204, 32,151,154,195,
-172,188, 98,110,137,184, 56, 15, 40,115,224,148, 24,199,161,164, 51,231, 45,248, 72,153, 34,140, 46,148,120,232, 86,244, 24, 32,
- 81, 36, 4, 64, 66,194, 93,192, 16,178, 48,162,249,126,110,212, 57,167,251,175,136, 90, 62, 47,160,185, 69,117, 28, 76,181,230,
-212,103, 36, 7, 22,142,200,131, 64,162,138,227, 32, 53, 70,165, 19, 43, 18,106, 22, 71,114,170, 9, 70, 15,191,193, 18,156,180,
-113,221, 1, 20,218,222, 37, 12,111,201,197,163, 56,106,231,217,179, 92, 44, 65,249, 20, 33, 85, 36, 54, 29,195, 62, 44,204,190,
-125,110,208, 90,240,185, 88, 23, 29,114,225,213,245,244, 5, 82, 52, 2, 65,175,151,149,174, 81, 83,138,243,201, 81,137,172,213,
- 10,122,190,254,183, 84,212, 43,100,154, 45,129,196,141,166, 57,156,115, 69,192, 74, 25, 57,212, 59,162,238, 80, 65,101, 45,222,
-228, 13,185, 79,119, 57,215,135, 32,193,129,201, 4,131, 76,197,124,208, 35,131,125,207,142,236, 27, 69,108,132,219, 37, 87,176,
- 11,156,158, 58,181,101, 66,237,132, 35,129,191,245,254,197,142, 36,108,202, 40,143, 12, 21,244, 32, 15, 45, 86, 10, 85,186,169,
-115, 32, 66, 12, 27,133,248, 92,163, 56,149, 65, 76,141, 24,172,216, 64,100,241, 23,175, 57,193,148, 75,240,131, 36,206, 22,172,
-211,210,104,151, 50,154,249,113,200,110, 29, 23,196,119,206,139,103,208, 72,125,160, 46,110,213, 2, 31, 66,132,221,161,224,167,
-246,116, 63,248,231, 90,181,138,174,170,119,212,201, 80,231,150, 91,147, 94,133, 27, 10, 57,215,108,131, 53, 76, 77,130,136, 26,
- 23, 35,156, 72,113,141, 69,239, 66,157,183, 33,207,198,174, 9, 59,100,120, 96,252,137, 8, 65, 40,206, 55, 6,225, 97, 68,204,
-204,158, 69,156, 11,195,168, 81, 14,165,101, 32, 7,187,176,163,169, 6,245,172,148, 96, 37, 34, 89,126, 60,147,226, 84,200, 61,
-254, 94,166,189,110,204,128,140,199,226, 50,144,136,139,247, 15,136,112,236,218,249, 87,105,167,144,202, 98, 3,207, 41,136,141,
- 38,168,156, 80, 66,101,111, 4,169,164, 96, 69, 4, 83,211,149,145,122, 30,237,231,169,148,176, 17,218, 88, 91,239,161,116,238,
- 76, 42,117,114, 46,152, 77,129, 17,138, 50,187,245, 61, 87,149, 57, 27,196,117,184, 70,187, 50, 61, 5,221,176, 25, 82,104, 24,
-136, 8, 12,153,136, 26,104,148,228,170,156, 59, 73, 57, 40,194, 37,159, 65, 68,224,216, 85, 26,220, 56, 16,167, 38, 5, 54,236,
- 69,130, 88, 10,177, 32,128, 96,168, 43,229,127, 93,218,143, 28, 0, 49,132, 30,126, 83,230,112,238, 12, 9, 94,235,200,253, 11,
-149, 2, 16,237,120, 39, 49,227, 42,226, 32,228, 32, 46,180,190,233, 5, 68,158, 40, 72, 76, 33,136,242, 42,108, 66,192,212,152,
-178,180, 81, 74, 49,213,146, 40, 43,141,136,149,171,253,114, 69, 62,189, 85, 58,109, 40, 18,101, 37,200,221,170, 14,134,131,175,
- 78, 41,186,231, 17,101, 70,213,133,232,222,140, 34,164,198,240,160,130, 43, 50,225,213,203,164,132,102, 20,239, 21, 31,180, 20,
-215,224,164,224,148,120,135,223,247,210, 48,193,244, 17, 83,172,130,240,226, 84, 28,231, 69,180, 83, 46,148, 52,170,168,147,243,
- 41, 43,103, 5,196, 8, 13,139, 4,189,181, 69,151, 94,226,212, 58, 73,136,189,200,147,132, 52, 83, 16, 64,233, 90,140,191, 60,
- 90, 42, 74, 41,164,212,178,213,144, 71,114, 26,102,118, 20, 27,208,165,176,241,123,157,107,160, 67, 23,181,211,253,141,207, 13,
-181,198,176, 82, 29,181, 92,136, 26, 81,242,170,163,172,124, 93,215, 44,173,129,157,200,201,136, 81,148,162,142,180, 30,195,188,
-161,192,125,193, 45, 24, 24, 78, 42,163,186, 24, 49, 74,233, 69,115, 35,114, 14, 73,221,130,168, 54,204,155,215, 37,106, 40, 96,
-243, 14,220,188,110,181, 76,174,104,103,234, 63, 99, 37,117, 59,202,115,146,122,238, 26, 17,147, 36,182,183,158,175, 39,162,121,
- 8,138, 57,206,140,148,203, 9, 48,177, 26,250,141,233, 36,131,193, 75,163,232,200,231, 25,147, 83,148,177,147, 11,231,197, 27,
-116,102, 83,148,156, 17, 4,211,188,238,156,210,152, 70, 34,206,136, 16, 8, 53,208,213, 22,247,160,165, 77, 80,111,150, 93,100,
-232,151,210,187, 4, 47,222, 82,232,170, 15,156, 69, 46, 20,171,106, 65, 35, 87, 11,121, 20,134, 26, 81,251, 58, 57,188,226,243,
-229, 36,160,130, 0, 22,254, 57,142,155, 42, 67, 96,204,100, 45,210,213,100, 36, 7,148,129,200, 4,113, 18,142,240,228,152,110,
- 67,237,172, 4,186,131, 71, 58, 14,224,148, 15,246, 4, 0,157, 25,242, 0,136, 84, 69, 80, 29,190,180,223,228,106,128, 14,192,
- 50,204, 35,199, 14, 70, 12, 28, 28,108,206,134,167,100, 84,157, 70,108, 97,140, 29, 3,100,145,141, 69,168,205, 23, 10,154, 68,
- 12,154,228,229,138,106, 16,146,163,194, 29,175,188,230, 86,250,109, 21,215,166,197,225, 25, 75, 95,184, 3,242,137, 74,253, 15,
-201,120, 53,188,182,122,103, 20, 54, 15,156, 10,114, 73,167,164,197, 91,241, 83, 53, 51,236, 82, 54, 65,242, 42,145,201,206, 80,
-231, 29,109, 19,171, 95,188,157, 50,106,223, 52,117,197,126,206,218,168,166,231,225,116, 67,158,147,162,235,135,130,211,149,139,
-128,197,170, 23, 2,156,241,205,145,196, 58, 88, 50, 16,235,208,229, 93,158, 14, 98, 72, 6,209, 67,165,104, 84,143,177, 52, 4,
-107,242,239, 84,120,100,236,247,214, 17,157, 40,115, 30, 83, 45,112,114, 66,214, 22,138,179, 89,249,189,241, 28, 24,205,136,215,
-250,204, 94,220,240, 64, 40,254, 94,149,175,209,156,234, 58,230,232,216,235, 46, 24,178,218, 81, 38,242,249, 41, 15,127, 14,187,
-132,149, 57,191, 73, 65, 64, 75,249,167,112,237, 57,177, 70,124, 38,199, 71,180, 1,193, 96,170,212,212, 42,168,206,116, 1,121,
- 73,198,160,203,196, 20,122,113, 69,244,239, 13, 56, 71,227,110,173, 45,224,125, 18, 95,166,196,204, 32,167, 37, 37, 73,181,139,
-203, 64, 15, 93, 64, 2,242,198, 25,105,252, 24,189,115, 1,241, 41,103,104,100,175,155, 82, 51,158,243,220, 63, 4,134, 77, 51,
-239,202, 25,146,213, 90, 23,117,100, 51,150,222, 24, 35, 70, 26,105,111,176, 74,202,113, 84, 66,209,209,113,170,213,214,170,124,
- 45,168,202, 41, 75, 90,199,233, 58, 40,228,254,140,175, 52,167,182,162,151, 43,100, 87,195,235, 89, 67, 21, 71,235,171, 67,218,
-121, 82, 61,119,142,142,125,129, 2,140, 24,159,186,158, 89,148,223,128, 50, 74, 43,149,206,100,116, 15,244,243,163,234, 55, 80,
-145, 26, 91, 58, 15,122,159, 8,128, 13,218,255,204, 20,202, 0,141, 47,163, 11,200, 3,179, 68, 82,162,178,171,213, 76,177, 0,
-189,169,244, 41, 64, 77, 71, 68, 26,142,142, 35, 12,122, 20, 30,132, 28, 92,190,159,154, 4,199,177,241, 26, 34,141,180,146,253,
-190,174,212,152,107,135,250,128,249,254,120, 95,171,177,161, 49,199, 5, 84, 40, 25, 38,199, 48,200, 92, 83, 57, 87, 59, 13, 64,
-157, 52, 57, 69, 36,169,122,194,101,168,158,162,220,225, 23,253,188,168,196,164, 56, 4,202,202,167,243, 42,130,206,163, 6,226,
-208,105,195,129,131,176,158, 91,134,127, 0, 79,185,213,158, 83, 77,246,113,144, 3,231,142,155,175,185,213, 93,146,214,149, 87,
-140,145, 67,104, 44,106,199,120,195,134,150,124,226,186, 9,198,180, 90, 59,186,254,158,154, 97, 46, 92,146, 25, 19, 4, 29,180,
-207,217,148,139, 92,134, 76,242, 90,170,144,131,100, 10,229, 82,136, 97, 25, 8,114, 6,123, 22, 93,135,146, 41, 3,205, 45,250,
- 92, 99,199, 4, 43, 12, 56, 7,155,229, 30,163, 2, 23, 58, 36, 6,186,139,138,108, 70,169, 31, 78, 66,221, 55, 71,194,153, 34,
- 54,158,195,230, 34,247,194,192, 55, 13,209,218,211, 84,102,230, 82,234,166, 48,128, 20, 26, 98,152, 65, 52, 28,145,130, 46, 57,
- 27, 10,195,167,239,149, 32, 19,219, 13,115,226,213,166, 62,214,226,148, 77, 59,167, 62,112,142,171,205,173,230,180, 12,231,117,
-158,243,147,230,110, 69, 65,213,171,254, 92, 43,143, 42, 13,129, 15, 3,109,125,201, 89,185, 90, 41,110,147,165, 44,155,173, 55,
- 91, 50,165, 99,251,203, 16,194,247,225,191, 13,138,110,150, 92,156, 87, 8, 57, 75, 18, 61, 26,159,195, 20, 19,115,224,142, 28,
- 68,120,165,130,151,230,112,155,213, 21,228, 50, 71, 52,148, 76,161,218,188,199, 2,165,240,175, 3, 23,233, 15, 7,159,231,245,
-168, 75, 40, 67, 35,138,235, 78, 50, 46,171, 18, 65,221,144,255,154,152, 67,185,131,210,104,117,218,103,138,131, 45,163,186,110,
- 31, 78, 72,138,137,233,208,252,184,174,163, 61,199,126,130, 24, 30, 69, 10,162,235,240,124, 92, 96,138, 7,174,151,194,248,160,
- 1, 92,111, 98,245,131,234, 17,134,102, 45,156,245, 75, 15, 4,204,218,158,165,238,104,233, 92, 99,117,130, 73,227, 90, 56, 54,
-218, 65, 45, 32, 40,131,116,106,246, 53,172, 34,134, 74,108, 68, 86,127, 31,186,196, 69, 68,140, 50,181, 62, 73, 13,102,242,206,
-113, 93,221, 26,112,108, 35,105, 25, 29, 9, 53,198,197, 38,100,218, 70, 52,247,248,115, 86,115, 43,103,117, 32,214,252, 8,180,
-178,234,179, 7,245, 66,213,219,111,201,160, 10, 81,157, 81, 90,153, 3, 95, 87,231, 78, 89, 14, 75,225,179,252,152, 62, 94,191,
- 30, 62,223,117,205,133, 88,200,165,162,172,239, 46,114,227, 13,157, 1, 10,157,152, 40, 68, 34, 5,124, 42, 38,171,113,175, 72,
-119, 70,185, 23,161, 89, 14, 1,112,158,163, 41,206,129, 96, 67,217,141,230,235, 4,212,153,184,197, 41,129, 41,180,224, 14,164,
-179, 14, 68, 18, 91,148,230, 17, 16, 51, 3,214,198, 70, 41,134, 43,227, 27, 90, 23,114, 70, 74,170,239,151, 52,122, 7,112,136,
-234,141, 18,122,242,118,173,156,171,190, 49, 12, 15, 13,108, 78,116,171,197,123, 6,202,137,102,205, 28, 95, 87,242, 51,242, 71,
-100,250, 0, 0, 32, 0, 73, 68, 65, 84,194,148,215,235, 92,146, 84,181,226,153,188,101,150,186, 73, 45,102,203, 42,151, 50,226,
-167, 1,161,140, 42,102,125,138,192,141,143, 4, 89,138,223,139, 70, 61,212,103, 31, 70, 38, 89, 6,255,243, 91,179, 33, 68, 29,
-125, 10,236, 96,101,215,107, 74,194, 16,133,210, 63, 14,198,218,107, 20, 36,162, 90, 91,134,180, 86,242,202,149,214,116,101,249,
-249,169, 68,227,106,143,225, 60,125,145,114,211,169,111,134, 27,214,193,199, 8, 12,209,177,246,196,185,176, 6,179,214,169,206,
-208,176,118, 32, 35, 58, 23,227, 23,115,178,153, 83,213,153,230,220, 26,171, 25, 31,109,254, 37,126,109,120, 82,104,121, 4,177,
-119,238,130,174,123,200,121,168,215,217,144, 15, 93,173, 39,154, 87,127,132, 86, 46,131,198, 92,173, 70, 93, 28, 74, 51,189, 6,
-123,152,251, 46,233, 46, 16,181, 16, 53, 87, 16,227,106, 39,195,134,215, 99, 27,105,231,239,179,195,106, 91, 19,239,129,142,111,
-144, 67, 78, 55, 57,216,134,128,234, 72,150,199,138,165,160, 73,209, 38,137,228,187, 3, 42,202,141,145,160, 14, 18, 73,183, 34,
-143, 34,210,101, 51,186, 97, 29,232,183,120,245,141, 31,211,148,175,143,163,186,202,178, 90,156,199, 90,215,188,222, 3,247,121,
- 31, 83,146,170,244,158, 71,211, 15,110,152, 7, 37, 39, 49, 95,157,179,243, 77,163, 30,122, 99, 58, 45,160,222,252,159,230,182,
- 91, 77, 18,212,160,120, 34,143,107,230,207,160,155, 17, 44,196, 4, 73, 70,241,245,213,158, 88, 68, 33, 31,200, 85, 46, 90, 2,
-185,196,203,145,166, 8,153,161,182,133,136,209, 17,129,103, 93, 97,216,242, 18, 58,134,203, 90,172, 38,213, 58, 18,151,213,106,
- 83,145, 94, 40,223,135, 76, 77,142, 98, 23,180,124, 78,119, 97, 19, 30,131,207, 35,252,158,149,225, 52,147,228,135,156,223,181,
-179,220, 98, 34,183,144,164,193,166, 77,168,250,168,215,196, 60, 41, 13,251,224,244, 83,164, 84,204, 67,225, 50, 98,207,228, 58,
- 29,149, 28,240, 85, 71,104,100, 21, 26, 87, 24,120,102,189, 1,133, 18,188, 20,189, 40,177, 87,141,181,143,176,188, 92, 96, 60,
- 18,135,198, 28, 6, 90, 1, 47, 65,131, 93,165, 62, 56, 26,129, 36, 76, 67,217,122,229, 24,149,184, 32,174, 68, 81,113,144,170,
-148,100,129,118, 53,212, 30, 7,121,126,205,137, 19,121,174,132, 9, 56, 18,123,168, 91,201,166, 48,222, 48, 88,198,168,214,186,
- 4,164,166,112, 74, 80, 55,118,162,162,181,107, 93,237, 4,235,138,231,115,103, 39,111, 5,155, 87, 69,149,223, 35, 33, 82,246,
- 78,138, 30,185, 34,226,141, 85, 43,229,218,251,121, 85,147, 30,205, 1,208,217, 98,206,135, 42, 15,201, 26,121,184,128, 52, 81,
-134,104,169, 84,180,100,117,230,133,187, 65, 4, 33, 7, 43,201,152, 35,107, 11,172,145,125, 46,227,221, 90,159,206,185,130,156,
-236,144,210, 45,117,203,192, 82, 17, 48,104,241,103,208,141,254,102,183,202, 24,174, 82,218, 73,196, 25, 23, 67,192, 66,185,108,
- 68, 25, 11, 82, 38,186, 13,115, 86,163,185,186,102,186,181,177,212,240,101,141,111, 80,253,185, 65,111,197,213, 72, 1,141,230,
-245, 36,181, 9, 44,216,215, 56,156, 3,180,150,164, 87, 71,234,233,191,253,162,181, 3, 99,145, 27,144,142, 27, 36,186, 44,242,
-236,216,164, 82,173, 16,253,166, 40, 87, 39,146,205, 96,220,146, 72,201,196,237, 92,164, 18,244, 38,166, 56, 59,133, 21, 57,144,
-118,172,184,226,117, 10, 26,235,144,228,132, 36,197,176, 84,205,192, 1,174, 55,212,229,234,226, 25,144, 30,234,183,213, 40, 35,
- 85,116,168, 42, 24,130, 96,140,110,118,154, 92,229,192,203,240, 53,233, 67,248, 61,119,138,152, 11,117,243,134, 70,189,140,212,
-248, 39, 94, 68, 75,101,183,126,130,164, 13,139, 82, 37,187, 90, 79,185,174,218,208,242,255,118,131, 92,107, 25,113,107, 41, 26,
-175,200, 56,138, 75,115,205,101,173,107, 53,175,207, 68, 81,153,206,247,251, 78,221,233, 40,235, 2, 23, 91, 93, 86,199,200,250,
-213, 18,215,160,141,225, 73,148, 89,110, 94, 8,142, 76,104,168, 18,200, 67, 28,228,108,141, 39, 68,165,112, 90,197,116,178,206,
-102, 65, 5, 76, 33, 80, 63,222,222,145,203,231, 7, 5,242, 39, 7, 35,171,232, 77,148, 3,166,132, 64, 72,182,105, 59, 72,179,
- 61,169,138,139, 36,133, 61, 31,133, 17, 13,243,223, 94,225,176, 76,149, 17,164, 66, 20,202,191, 65, 82,140, 35, 92,226,143,184,
-124,109,113, 16, 28, 98, 42, 20,218, 64, 60,232,162,216, 58,198, 70, 48,145, 83,164,168,148,203,212, 7,169, 60, 23,164,123,169,
-110, 28, 17,175,117,247, 74, 88,127, 61,234, 90,207,111,137, 65,173, 79, 83, 50,134, 10,126,106,244, 89,218, 14,175,132,186,127,
-113, 65,181,190,182, 75, 65, 41,137,164, 76,151, 20,247, 84, 84,121, 46, 67,161, 52,112,247, 61,153,211,178,171,114, 44,142, 60,
-227,158,153,195,156,149, 40,244,212, 29, 40,111,189, 34,231,155, 43,129,213,125,125,215,193,223, 57,179,181,213, 26,175,229,217,
-172,106, 79,120, 80,216, 61,255, 91,228, 96,185,163, 38,227, 29, 54,148, 84, 84, 30, 42, 82,151, 33,213, 28,110,213,251,175,118,
- 74,176, 22,193,240,236, 91, 83,180,118, 40, 34,109,180,197, 81,188,247,232, 89,228,110,185,240, 81, 49,115,242,150,131, 30, 51,
-133, 25,153, 75, 16,230, 82,177, 2, 23, 34,193,218,225,177,153, 87,237, 50,114,161,100,164,181, 64,218,202,136, 78, 32,255,219,
-156,105,161, 27,226,152, 99, 23,225, 96, 97, 76, 48,168, 4,113,125, 74,149, 84,141,106, 98, 11,212,188, 9, 11,149, 85, 20, 78,
- 74,109,114,146, 50,210, 78, 29,156,106,135, 40, 80,237, 98,153, 37,173,117, 10,155,228, 37,231, 86,106, 13,199, 77,196,141,183,
- 22,110,230,236, 70,242,159, 45,248, 94,168, 94, 19,146, 85,185, 80,179,181,100, 42,201,227, 65,133,133,132,139,171, 29, 86, 9,
- 96,166,132,215,156,120,167, 62,103,245,214, 71,195,101, 46, 84, 75,159,116, 75,119,206,197,122, 95,147,109,250, 94,211, 95, 27,
-186,184, 16,165, 75,150,107,215,170,139,176,118, 85,158,142, 66,201, 18, 82,105,168,202,143,198,138,136,168,107,158,109,218,132,
- 2,217, 73,193,100,214,221, 12,195,214,165,165,166,126,236,247, 27,198,159, 99,164,237, 95,178,197,157,139,173,138, 51, 4,129,
-130, 19, 22,143,168,199, 47,185,160, 68,126,252,227, 76,104,228,194,253,150, 60,108,132, 83, 27, 87, 17,138, 78,183, 54,198,129,
-216,172, 94,155, 7, 57,247,200, 25, 42, 72,170, 45, 13, 18, 77,159,153,106, 85,241,129,247,204,214,107,196, 2,118, 73,113,176,
-201, 35, 27, 73, 73, 68,135, 44,240, 31,138,126, 24, 89,112, 39,214,181,211,187, 85,121,105, 65,225,147,148,226,138, 72,134,234,
- 17,184, 92,230, 91, 9,203,190, 31,130, 31,119,131, 78, 91, 86, 34, 95,200, 7,204, 9, 75, 13,175,103,229, 15,174,134, 87, 50,
-195, 80,120, 43,203,126, 85, 28, 16,243,153,131, 92, 62, 97,148,233,154,223, 32, 45, 41,171,219,230, 17, 81,211,123,162, 81,152,
- 81, 98,217, 8, 69, 84,162,139,158,118,174,100,198,217,223, 16, 41, 8, 13,122,212, 92,166, 49, 20,107,224,155, 6,156,199,153,
-163,174,138, 0,213,136, 43, 60, 67, 69,111,229,212,162,200,235, 45,251, 47,240, 27,144,245, 13, 8,224, 69, 47, 44,106, 29,114,
-151,180,177,169,164,227, 68,185,197, 40,208, 66, 89, 61,106,152,148, 46, 83, 91, 10,139,201, 19,221,216, 87,161, 73, 70, 5, 21,
- 53,200, 89,205,183,211, 28, 85,102, 76,136,224,156,119,106,144,128,212,104,160, 83, 26, 36,145, 6,213,175, 16, 17,192,250,205,
-146,216, 84, 68, 65, 73, 30, 54, 18, 51,133, 40,232,133, 19,167,168,159, 56,214, 81, 67,218, 37, 60, 54,164, 38,138, 22, 38, 26,
-157, 57,137, 68,181,122, 62, 14, 20,255,169, 36,134,230,218,233,173,121,207, 35, 4,187,124, 13, 68,163,136,118, 7,175, 8,223,
-135, 92,157, 32,181,206, 74, 98, 71, 67,137, 83,202,178,198, 10,103,235,156,212, 90,127,205,101,106,228, 72,130,230, 81,172,141,
-191,199,148,136, 85, 81,190,119,146, 27,165, 92, 67, 59,192,239, 5, 98,235, 35, 43, 23, 8,110, 14, 64,223,167,234, 14,237,230,
-215, 34,204,197,126,216,217, 62,225,203,201, 25,166,234, 48, 98, 37, 19,229,201,165, 95,171,127, 73,190, 54,193,194, 8, 72, 86,
-252, 13,147,241, 64,104, 8,226, 72, 84, 84,195,128,208, 39,161, 53, 41, 1, 96, 83,181, 64,141,156, 28, 19,190,183,142,148,195,
-126, 97, 98, 44,143, 90, 68,199,183,166, 13,117,218,218,194,150,178,118,186, 96, 48,183,137,115,138,204,154,137, 25, 13,220, 90,
-226, 47,131,136,152,185,161,162,152,191,158,113, 72,178,225, 71,160,229, 38,177, 23,201,106,241,195,124,207,144, 39, 87,233,230,
-179,242,193,108,170,117, 79, 36, 63,137,233,113,102, 30,236,239, 89, 53, 56,122,103,147, 29,141,105,164, 20,116,244, 17,201,209,
- 84,123,238, 64,155, 32,137,236, 9,169,218,244,166, 59, 76,190,124,192,124, 15, 2, 20,178, 10, 94,116,174, 13,131, 43, 60,216,
-117, 43,127,211,134,226,250,220,160,151,249, 93, 94,121,238,147,201,100, 37, 59, 94,178,254,190, 99,100, 58,150, 84,166, 86, 86,
- 2, 0, 76,221,234, 49, 90, 65, 4,204,181,192,199, 38,237,170,146, 63, 83, 68, 85, 67,141,129, 34,239,154,137,232,144,238, 2,
-193,163,110,106,194, 11,178,197,221, 34,248,233,166,231, 6,158,110,222,133, 10,117,191, 99,242, 61,179,253,198,238,192,212, 85,
-240,115, 5,199, 23,141,107,104, 80,125,160,226, 57,130,118,223,105, 31, 9,228,101,104,234,220,165,112,236, 48,218,251,195,136,
-182,228, 64,140, 33, 67, 45, 79,125,213,125, 31, 77,121, 49, 13,206,161, 77,196, 9,194, 61,198,140, 34, 78,105,174, 72,211,160,
-231,236,100,225,146,176, 83, 55,204, 17,229, 39,196,141,149, 83, 14, 83,157,176,172,145, 75,212,167, 51,107, 6,188, 81,114, 90,
- 50,186, 29,220,104, 4,199,177,141,107,236, 14, 71,161,109,165,244,209, 40,171, 38,190,230,195,243,243,166,188, 7, 56,178,238,
- 99, 20,144, 26,113,133, 84,179,106,128,171, 35,144, 92,233, 82, 17,140,131,147,226,144, 36,137,211,253,169, 69, 80,184,109,212,
-165,228, 54,228,253,218, 99, 78,154, 77,161,228,201, 97, 76,212, 33, 47, 43,103,204, 96,252,146, 81,117,197,122, 75,168, 65,174,
- 6,106,170,123,196, 81,110, 92,141, 85,252,126, 2,172,199,253, 75,246,121,133,196, 76,140, 41, 93,137, 12,177,113, 88, 47,238,
-213, 78,121,228,101,151,201,194, 82,128,180,245,174,228,138,112,190,255,187,141, 78,143, 1, 3,226,130, 35,152,181,238, 37, 83,
-180,240,101, 36,241, 53, 84, 98,104, 14,206,151,252,214,202,114, 74,136, 67,232,195, 16,196,216,188, 88, 83, 70,236,204,130, 54,
-202, 82,219, 7, 98,191,175,130,223,149, 20, 64,107,156,130,188,191,246,161,186,168,173,144, 38, 44,212,189,100, 53, 81,111,212,
-240, 83, 9,135,183, 35,127, 12, 12,141,126,215,132,205,154,220,142,180,243,232, 97,178, 51, 83,212,247,165, 70,189, 47, 55, 75,
-238,234, 60,168, 20,186,253,185, 33, 79, 75, 84, 50,248,217,255,109, 52,219, 76,249,231, 37,146,103, 20,161,136,117,224,245, 88,
-134, 72,192,161, 20, 31, 41,154, 86, 4,167,203, 4,177,152, 40, 9, 26, 8,126, 96, 87,117, 82,203,234,196, 67, 19,149,124,222,
-172,234,114,150, 8, 29,121, 10, 2,177,196,175,128,225, 37,149,111, 21, 78,169, 80,161, 10,151, 56, 32,169, 85,173,207,213,151,
- 12,221,168,179, 14,105, 18, 32,165, 5,191, 53, 28,200,148, 22,144,200, 57, 41, 57, 28,245,151,173,214,246, 71,238, 84,134,177,
-145,140, 19, 32,112, 69,237,249,128,104, 7, 90,209, 11, 26, 69, 35, 24, 70, 30, 9,165,177,177,133,115, 25, 34,179, 96, 63,114,
-153,206,230,190,209,208,238, 47,235,200, 77,211, 47, 24,148,121, 85, 68, 36,201, 56, 53,185,115, 86,178,212,243,107,105, 35,105,
-206,185, 56, 71, 37,111, 86, 36,137, 1,173,206, 16, 7,226,183,230, 91, 53,149,204,106,246, 51,125,251,178,245, 39, 55,175, 41,
-223, 87, 83,233,222, 80,126,180,150,177,117,148,250,216, 11,173,129,172,101,245,110,182,238,254,172, 42,135, 54,240,125, 9, 98,
-253,117,133, 52,112,227, 88,176,213, 81,246, 17,207,255,187, 73, 70,206, 66,117, 31,244, 80, 68, 71, 40, 32, 13,234,140,178,238,
-111,214, 5, 99, 28,248, 51, 89,163, 74,150,144, 30, 12,223,229,209,138,242, 24,123,168,100,198, 31,208,102, 75, 4,215, 25,239,
- 12,187,112, 53,138, 74,134,116,141,234,158, 36,154,169, 6,130, 18,245, 60, 10,206, 12,145, 55,234, 99,236,240, 85, 58,226, 53,
-148,176,106, 81,178,148, 12,225,243,109,167,218,114, 50, 90,245,224, 7,105,157,154, 27,160, 66, 81,104, 69, 77,122, 25, 37, 7,
- 15,142, 19,231,186,217, 47,215,185, 1, 59,181, 28, 55,151, 12,214, 72, 15,223, 85,206, 78, 11, 94,205,189,248,186,131, 17, 87,
- 82,175,190, 25,200, 56,210, 32,176, 17, 90,110, 25, 33, 59, 16, 51,145, 65,100, 25,115,248, 13,167, 69,184, 61,190,177, 75, 91,
- 38, 99,155, 87, 35,212, 45, 41, 9,101,122, 69,141,120,108,253, 90,177,210, 21,161,169, 81,166,177, 28,120, 34,126, 86, 93,241,
-176, 30,221,146, 21,105,157,117, 77, 52,214, 69,244,204, 92,200, 54, 55, 13,123, 3,105,200,149,194, 86, 85, 90, 48, 86,139,131,
-104, 52,234, 6,104, 93, 86,195, 44,146,245,124,166, 1,225,104,213,163, 70, 26, 90, 54,167,201,234, 95,195,185, 89,197, 67,168,
-157,151,213, 45, 65, 45,198,252, 18, 14,145,127, 49,175, 11, 22,185, 67, 71, 25,106,145,165, 17,234,117, 49, 22,173,107,168,201,
-161, 75, 30,178, 28,180,131, 31,123, 10,100, 62, 77,252,119,145, 97,158,162,115, 65,187,116,210,176, 89,139, 40,173,170, 71,231,
- 40,223, 93, 62,239, 27,249,248,116,157,196,182,192,153,106, 91,214,222, 57,166,204, 36,249,216,218,135, 28,190, 80,214, 35, 69,
- 90,220, 93,251,249, 81, 56,134, 80,138,221,166,116, 29,139, 71, 14, 34,235, 61,254, 24, 5, 78, 4,165,122,195, 88,222, 26, 56,
- 59,241, 53, 21, 67, 74,252, 36,145, 60,245,201,208,110,133, 10,255,247, 72, 21, 56, 46, 32,194, 54,244,184, 55,113, 31,247,119,
- 71,149,230,242, 92, 98, 94, 94,172,163,219,173, 19,125, 89, 15,201,103, 81,120, 11,186, 70,187,251,206,152,247, 86, 63,250,190,
-172,243,108,193,140,245,238,213,210, 30,143, 48, 80,150,239, 77,155,184,107, 27, 22, 41, 37, 88,135,253,188, 57, 65,195, 49,215,
-152, 17,137,200,231,233,218,162, 22,154, 51,146, 88,138, 67, 89,239,106, 1,154, 93,160,154, 56, 56,134, 44,249,152, 91,174,152,
-209, 92,113, 40,180, 65,118,154,123,174,112, 10,108,188,167,174,128,175,181,150,146,217, 12,140,138, 10,179,148,198,215,203,217,
-176, 41, 55,200,190,238,210, 71,101, 14,218, 45,245,181,204,121,203, 73, 41,236,203,220,192,218,183, 32, 35,242,101, 37,135, 49,
- 87,139, 82, 36, 63,229,180,131, 55, 14, 42, 96, 57, 47, 3, 42, 89,169, 93, 69,154,164,213,124,147, 28,154, 77,165, 77, 41,175,
- 39,133,147,184,226, 54,143, 25, 35, 70,128, 85, 71, 16, 45,219, 16, 65,162, 2,119, 26, 68, 79, 77,162,168, 12,149,191,189, 78,
-133, 36, 68, 7, 40,218,179,182,250, 82,215,221,199, 58,234,206,203,193,215,177, 95,246,174, 77, 98, 82,102,124,149,147,173, 59,
-194, 9, 86,195,179,171, 12,122,186,167,110,144, 70, 75, 2, 79,195,113, 76,185,111, 19, 24,203,110,112,167,165,209,185,174,137,
-251,113,218, 6,120, 80, 58,231,141,148,112, 89,161, 83,236,149,149,224, 75,253,223,195,146,202,198,252,224, 64,140,100, 14, 61,
- 23, 72, 69,246, 67,157,186, 18, 21, 40, 59,170, 8, 56, 21,228,219, 81,160, 64, 83, 59, 5,233,178,228,144, 73,102,180, 87,169,
-211,229,129,123, 94,165,194, 25, 85, 47,239,182, 38, 49,237, 23,174,137, 76,160,234, 74,176,109,237,222, 35, 74, 32,244,179, 46,
-245, 70, 17,216,192, 93,178, 32,235, 2, 11,222, 59, 15,206,229,136,151, 36,135,128,168, 80,103, 77, 68,245,204, 12,132,121,213,
-141, 69,127, 7,141,170,187, 64, 28, 27,141,212, 71,132,107, 14,238, 52,208,218, 72,101,101,145,127,150,147,110,245,212, 21,215,
- 55, 63,111,178,157,175,104,140, 82,191,215,217, 65,142, 75,203, 91, 40, 39,114, 80,158,241, 75,227,188, 58,231, 78,107, 89,157,
-107, 35,249, 1,209,164,252, 62,166,145, 28,173,212,191, 91, 45,142,192,246, 23,117,154,164,174,115, 15,239,115,201, 41,208,242,
-139,252,183,156, 27,150,240,181,149,249,218, 78,155,216,172,153, 8,115, 36,231, 73,188,239, 84, 54,101,169,230, 64, 31,157, 62,
- 41,238, 77, 50,110,238,192,115,117, 52,154,212, 54,176, 24,151, 63, 38, 89, 19,189,183, 28, 7,114,190, 7, 28,149, 98, 73, 45,
- 99, 58,152, 91, 99,232, 92,165,208,168, 13, 69,104, 44,109, 54,144,116, 30,115,212,207,175, 11, 98,171,245,114, 94,219,205,153,
-227,116,144,245,193,117, 87, 49,119,126, 45,151,213, 1,245,251,129,137,227,214,106,189, 90,200,254,114,133,126,114,133, 94, 8,
-181,141, 55,181, 33,120,202,136, 98,181,211,194, 89,154,195, 53,180, 20, 88,146, 87, 80, 40,253,181, 27,109, 22,221,210,210,243,
- 46,118, 87, 35,195, 3, 5, 62, 37, 24,250,239,231,160, 91, 96, 10, 34, 31, 70, 58, 21,214,123, 82,225,112,101,229,136,173,255,
-233,116, 43, 26,226, 52, 28, 5, 93,231, 66,130,137,239, 99,231, 7,128, 81,112, 62,234,238,140,186,167, 25,180,101,114,117,221,
- 43, 33, 55,159,187,206,249, 84,136, 47,204, 93,250, 8,156, 5, 34, 93,168, 14,209, 74,136,161,109,147,248, 27,170, 39,239, 66,
- 80,153,210, 47, 93, 62, 25,155,222,187,180, 73, 54, 57,187,184,222,116,198,154,201,183,140,185, 93,131,191,117,161, 33,197, 24,
- 59, 28, 7,236, 1, 60,166,138,135, 40, 35, 58,166, 81, 31,162, 95,148,198, 42,117,233, 89,147,203, 23, 12,244,175,139, 37,219,
-165,220,172,200, 56,188, 94,127, 78,138, 92, 80,169, 36,214,146,136,100,137,174,105,169, 97,204,121,137, 90, 99, 33,169, 81,147,
- 20,249,147,118,137,114,130,222,150, 70, 79, 39,126,220, 68,130, 81,183, 68,161,121,130,122,152,218,220,165,186, 63,186, 6, 67,
-100, 30,171, 40, 28, 10,196, 32,161,143, 82, 56, 91, 10,181,137, 70, 42, 44, 25,113,207,143, 16, 7,209, 12,168,184, 78, 96,182,
-231,198, 75,141,163,179,182,130,171,169,106, 67,106,115,232,166, 48,220,209, 37,144,178,113, 77,177, 96, 36,219, 0, 48,174, 69,
- 51,102, 80, 41, 33,179, 5, 60,136, 42,221,211, 34, 87, 1, 90,111,157, 28,183,186,127,116, 44,128,202,219,210,102,146,176,182,
- 74,239, 8,198, 66,201,202,192, 71,227,181, 38,167,190,146,239, 67,232, 66,151, 56,221, 31,108, 88,112, 92,113, 22, 90, 50,183,
-222,216,217,228,208, 0, 25, 92,138,162,111,188, 52,215,185, 65, 42,238,145, 98,159,203,181, 30, 60,140, 61, 18,208, 56,135,162,
- 71, 61,101, 61,236,137, 6,233, 9,151,141,171,246,146,151,188,115, 93, 21,249, 74, 6,207,182, 56, 49, 36,201,233,104,201,229,
-230, 8, 99,221,250,212,147, 6, 61,191,196,176,143, 98,235,186,117,176,196,122,110,202,254,214, 83, 49,196, 3, 29,135, 22,130,
- 59,134,162, 44,173, 75,144,122,222,127, 67,247, 41, 89,195, 21, 11,138,126,104,180,125,174,207,199,160, 81, 61,197, 52,234,248,
- 75,208, 97, 64,214,233,205, 57, 47,109,235,143,110,160,232,231,138,107,228, 1, 34,152, 20,252, 56,180, 90,181,129,136,151, 25,
-245, 4,107, 83, 36, 10,172,242, 78, 25,148,121,100,237,197,151, 54,166, 12,150,136, 45, 89,179,136, 12,169, 79,236,240,179,195,
-252,220,152,215,238, 8, 24, 19, 41,240,178,126,169,143,113,209,231, 88,108,216,220, 75, 15,116,157,167,158, 67,192, 69,238,171,
- 42,149, 75,134, 93,138, 30,209, 53,252, 87,239, 26,197,196,202, 74,153,138, 58,225,108,163,202, 39,169, 69, 69, 40,206,189,102,
- 12, 69,129, 36,211, 38, 46, 34,200, 85,212,191, 6, 60, 89,187, 29,150,124,211, 17, 39, 46, 54,217,241,231, 71, 69, 90, 64, 28,
-141,168,209,185, 1,175,163, 38, 49,229,134, 82,115,106,196,148, 53,116,177, 88, 88,191,209,217, 16,173,199,156, 59,188,119, 76,
- 36,177,188,139, 84, 99, 91, 55, 83,114, 49,167,172,127, 67, 76, 56,183, 68,144,204,211, 15, 5,159,160,134,202, 27,178,195,105,
- 67,200,230,101,214,170, 83,156,215, 19, 16,105,228, 44, 67, 36,198,149, 67,146, 35, 13,178,170,163, 17,185,140,141, 75,161,217,
- 35, 5, 30, 5,103,247, 64,226,249,165,245, 51,222,247,189,172, 52,214,117, 94,117,162,166,132,137,141,233, 56, 56,194,168,206,
-131, 42, 41, 90,167,109,145, 61,219,216,203,207, 90,136, 99,239, 9, 6,184,211, 55,133, 13,215, 43, 46, 70,199, 38,193,113,195,
-241,162,241, 46,101, 57,250, 84, 56,217, 3,163, 46,195, 52, 6,101,104, 29,208, 14, 58,168, 29,177, 27,148,198,118, 41,136, 90,
-247,136, 26, 0,233,190,106, 11, 98,210,251, 23,254,214,133,211, 25, 26,112,158,154,156,146,209,127, 50, 8, 66,180,252,139,180,
-151,121,224,218, 80,200, 21,231, 99, 98,136, 87,254,142,238,249, 82,253,203,249, 20,163,251,145, 72,228,212,140, 34,158,177, 34,
-168,210,161,208,128,175, 66, 92,106,163, 14,184,136, 60,228,242,187,133,104, 80, 12,218, 4, 14,222,209,112,193, 33, 27,244, 14,
-169,213, 65, 3,177,212, 81,219, 46, 6, 53, 7,173,127, 12, 93, 80, 77, 42, 10,213,174, 94,197,166,239, 74, 9, 80, 14, 27,181,
- 56, 9,186, 25, 18,197, 30, 84,145, 44,117,238,226, 32, 35,217,208, 39, 86, 85, 35, 46,193,151, 65, 36,145, 27, 11,195, 85,235,
- 76, 20, 44,214,252,168,125,216, 85,171, 87, 40,151, 35,212,127, 38,121, 68,217, 38,212, 36, 42, 69, 14,134, 36, 71, 67,149,165,
- 40,143, 26,203,156,109,173, 93, 61,140, 99,134, 13, 93, 34,225,163, 34,123,196,188, 82,145, 95, 42,105,239,254,243,136, 45, 3,
-173,181,197,152,113, 22,181,250,146, 58,151, 53,161,168,206, 1,101, 29,104,238, 73, 38,120,180,140,160,173, 14,148, 3,250, 92,
-136,129, 83, 14, 50, 46, 12, 0,194, 54,178,243,243,190,236, 84,231, 90,101,152, 83, 76, 81,158, 75,227, 67, 26,161,120,205,233,
-142, 56,206,190, 80,188, 5, 39,161,186,219, 2,147,137, 73,142,142, 0, 76, 46,238, 28,154,163, 39, 78, 90,248,190,119,178,248,
-218,126, 10,139,176,214,236,143,130, 38,101, 89,127,222, 12, 39,206, 49, 21, 31, 18, 23, 38,127,208,152, 35,135, 88,119, 47,233,
-121, 10,239, 19,231,127,159,109, 73,158,145,108, 68,148,232, 88, 58, 75, 53,180,105,131,156,110, 24, 39,166, 98,141,208,204,119,
-217,227,232,100,132,178, 48, 41, 75,218,234, 60,243,192, 8, 83,189, 62,101, 72, 36,212,249,201, 92,108,170, 26,233,217, 32,212,
- 67,146,122, 78,139, 91,198,205,210,115,225,145,241, 67,252,252, 39,202, 17, 7,133,178, 67,250, 37,107,141,220, 34,168, 41, 18,
-230, 26,228, 59, 67, 93,138,182, 51, 93,252, 18, 94,231, 1,176, 40, 57, 80, 51,210,250,122,172, 49, 84, 61, 94, 20, 52,237,157,
-205,206,145,138, 92, 86, 42, 5,101,246, 58, 11, 97,211, 34,246, 70,133,100,117,122, 51,119,126,202, 42,153, 76,195, 62, 91,149,
-172,215,200,193, 40, 7, 20, 36,149,127,165, 20,167, 88, 87,234, 72, 40, 49, 78, 91, 59, 23,142, 78, 66, 52,157, 11,178,190,157,
- 26,188, 18, 81, 97, 41, 73,161, 99,149, 92,134,186,162, 18, 37,170,106,230,243,145,104, 20, 65,112, 69,235,241,116,164,138,232,
-153,140,188, 39,239,198,106, 12,233,219, 99, 31, 8,140, 62,125,144,130, 3, 91,237, 31,182,161, 99,210,121,212,132, 51, 34,134,
- 13,125,143, 75, 88, 93,105,244,146,231,135,156,239, 82, 37, 97,178, 24, 53,234, 32,152,160,227,171,138, 64,169, 52,195,165,249,
- 70, 30,126,175, 35,157,194, 68, 51,149, 1, 77,198, 86,116,202,248, 44,152,181, 25, 99, 13, 28, 73, 40,110,164,206,146, 50,163,
- 74,163, 30,249, 8,203,156,252,247, 58, 25,207,233, 29,164,142,178, 36,174,149, 16,187,201,224,151,168, 43,173,141,116, 50, 21,
- 42,146, 42, 82,202, 39,117, 78,102,204, 75,190,224,187, 87, 17,201,202, 46,113,205,254,202, 13, 78,195,192, 25,162,210,208,232,
-253, 83,164, 65,245,181, 93,133,208, 52, 91, 47,142,209,199, 88,226,244, 32, 74,205,104,244, 55,172, 42,218, 5,118,107, 45,251,
-104,151,165, 56, 17, 40,240, 28,202,118,214, 67, 44,130, 86, 55, 90,105,102,138,178, 66,131,100,135,117, 83,170, 29, 57,137, 72,
-202, 32, 35,152, 79,241,220, 1,164, 6, 33,140,218,165,115, 62,133,144,196, 96, 72,146, 99, 95,246,255, 14, 48, 51, 80, 40,250,
-165, 28, 48, 55,248, 40,170,194,231, 29, 89, 19,221,122,202,246,153, 68,172,203,139, 3, 11,148, 74, 29,215, 92, 24,170, 72,181,
- 8,166,221, 36, 94,111,138, 18,147, 35,218, 77,120, 16, 0,148,237, 87,185, 77,204,138, 78, 48, 71,150,180, 52,162,110,170,154,
-228,180, 34,220, 85, 41, 5,151, 5, 77,173, 71, 30,201,181,248, 21, 28, 24,214, 20,155,154, 4, 94, 3, 83,161,156,200, 35,206,
- 3,105,111,251,108, 14,181,100,170,169,154,127,209,177, 17, 20,105,167, 26, 38,167, 74, 6,183,220, 87, 37,138,111,141, 25,205,
- 22,106,234, 85, 4, 57,116,231, 91,195,185, 2,173,213,128, 80, 46,137,106,217,107,240,152,107,221,183, 26,252, 56, 42,185, 36,
- 28,188,201, 34,237,201,117,107, 96, 46, 80,103,231,134,233,133,184,172,105,216, 27, 69,170, 70, 72, 34,102,208,144,104,216,208,
- 69,164,200,105, 70,113,149,138,128, 67, 42,139,202, 62,111,105, 66,212,202,144,224, 93,121, 47,219, 64,170,214,143,156, 24,163,
-121,195, 17,106, 71,234, 52, 10,243, 73,244, 62,221,138,242, 21, 29, 60, 83, 45, 90, 71,163,244,137, 17,200,189,126, 63, 85,185,
- 56,105, 27,158, 53,253,224,109, 38,177, 73,141,207, 22, 25,158,218,192,181, 78,217,149, 27, 75,167, 50,172, 85,253, 56, 21,199,
-225,100,111,117,232,107,142,139,100,203, 39,175,211, 30,192,251,241,130,139,122,105,100,125,149, 3,158, 86, 56, 55, 99,172, 98,
-109,125,169,241,162,139,115, 69, 98,228,164,132, 18, 26, 33,105, 41,172,174,117,233,204, 12, 23, 74, 82, 76, 40,100,119, 49,109,
-163,240,121,137, 24, 20,117,217,153,117,146, 85, 14, 92,254,249,154,157, 45,109,153,217,250,150,231,155, 10, 53, 61,137,146, 11,
- 33,177, 95, 64, 34, 46, 74,204,171, 98,148,119, 98, 86,148,215,141,111,214,229,148, 29, 35,206,249,212, 11,183,114, 82,113,126,
-230,155,154,240,144, 87,211,103, 70,195, 57, 7, 97, 14,134, 61,141,103, 20,132,193,176,109,235,180, 43,225,205,193, 53,230, 27,
- 55, 13, 37,221, 8,227,164,223,214,218, 25,252,205, 92,164,235,214,237, 70,173,243,107,221,187, 85,198,188,108, 8,101,139,235,
- 28, 56,247, 99,191,235,106,197,208,116,254,101,245, 14,183,199, 14,153, 10, 38,211,202, 92,122,139,124,168, 26,231,142, 86, 7,
- 80, 44, 88,201,175, 74,206,105, 38, 66, 70, 52, 72, 31,229, 71,229, 4, 80,214, 26,118,180,180,152,218,206,142,206,101, 49, 9,
- 73,112, 78, 21, 61,101,216,252, 71, 85, 90,105, 88,130, 46,145,165,143, 97,151,182,188, 67, 85,218,180,185, 24,156,162,142,152,
- 92,132,222, 53, 79,105,144, 12, 6, 75,169,230, 21,251, 48,103,202, 40, 92,213, 4, 13, 11, 40, 40,146,158,234,252,228, 74,198,
-177,212, 93,128,106,230,172, 28, 40,146, 94,105,232,131, 17, 18, 90, 31,153,143, 9,141,176, 90,133, 86, 94, 91,170,242, 18, 42,
- 27,159, 20, 42, 87, 99,250,162, 24,239,147,236, 39,179,203,242,200,114,232, 58,121, 18,172,188,127, 50,210, 71, 60, 23,218, 24,
-243,160, 91,206,100,105, 24, 57, 88,193,196, 11, 16,136, 87,170,210, 70, 36,132,228,209, 55, 12, 16,103, 37,120,121, 67, 27, 38,
-147,133,214, 33,230,140, 78,150,100,139,105,168, 25,189, 74,190,184,238,202, 37,153, 76,105,107, 51,173,231,111, 46,146,164,205,
- 77, 86,229,164, 53, 2, 97,245,252,145,250, 75,231, 92,141, 22,228,122, 16,182, 63,175,236,119, 61,162,121,159,117, 26,243, 63,
-190,154,199, 83,247,136, 40, 34, 89, 27,200,113,141, 77, 95, 67, 33,161,114,227, 44,238,127, 86,135,109,209, 46,131, 18,140,215,
-181,155, 74,166,116,213, 92, 30, 37,251,174, 64,168, 90, 60,162, 98,124, 12, 55, 13,250,186,231,198,206,115,112,191,198, 2, 38,
- 74, 16,122,145,178, 36,106, 50,209, 71,123,120, 96,117,148,222, 50,150,165, 83,146, 20, 75,165,101,140, 87,144,240,106,131,219,
- 74,127,228,193, 90,173, 87,104,168, 84,229,107,157,107,206,190,111,143,123,138,220,153,217,247, 67, 8,168, 98,235, 60,164, 53,
- 54,201, 64,122,241,153,105,144,105,173,217,154,245, 38, 66,205, 5,234,161, 91,173, 73, 54,129, 59,167,114, 6, 68, 82,104,239,
-162, 33, 80,177, 78,163,211,231,240, 80,228, 41, 74,120, 87, 70,176,217,161, 74, 91,110, 67, 76, 28, 44, 58, 16, 84, 62,184, 97,
- 40, 35,165, 4, 19,143,123,154, 81, 31, 60, 83,193,203,243,185,241,168, 98, 9, 82, 70,250, 84,221, 23,239, 89,122,248,159,199,
- 79,188, 33,124, 66, 49, 34,172,197,134,214, 69, 94,245,120,152, 42,210,138,112,151,164, 77,111,229,247,228,155,119, 70, 18,162,
-220, 19,205,238, 93, 52,106,148, 32, 60, 7, 6, 71, 68, 64, 25,224, 28,196, 28, 50, 74, 18, 81,193,181,102,169,202, 28, 99, 9,
- 28, 82,207, 98, 9,236,247, 64, 88,115, 40, 57, 22,169,173, 88,237, 52,142, 59,130, 26, 49, 71,248,149,107,141,254,172, 79,122,
-171,206,188,112,170,184,106,224,145,202,108,146,207,145,100,123,153, 84,185,139, 74,253,129, 76,172,167,181,185,249, 84, 9,175,
-133, 70,235,231,199, 28,132,129, 92,236,136,113,179,118,185, 50, 82,117,153, 20,107,100,174,103,227, 75,157, 41,140,245, 88,253,
-121,201, 28,167,178, 27, 87, 5, 98,214,226, 86,171,197,105, 86, 59,216,178, 38, 85,151,231,212,199, 34,113,254,127, 89,123,179,
- 94, 89,150,236, 60,236, 91, 43, 34,171,246,112,246, 25,238,216, 19,217, 20,217,205, 9,160,105, 9, 52,197,201,180, 12,129,130,
-109, 24, 2,252,226,127,225, 39, 63,251,127, 8,254, 7,124, 52,108,208,134,100,138,176, 9,219, 34, 91, 20,217, 77, 54,217,156,
-164,238,190,183,187,239,124,230, 61, 84,101,196,242, 67,196,138, 88, 17, 25,153,181, 47,169,211,184,200,222, 83, 85, 86,102,100,
-172,233, 27, 54,130,214, 73, 77,144,133, 88, 81,155, 88,208, 74,165,139,156, 40,114, 17,177,106,113, 27, 77, 80, 31,224,137,172,
-127,197, 86, 48,119,220,121, 4,174,168,197,173,161,246, 93, 39, 35,158,213, 44,202, 51,204,204,205,121, 54, 90, 33, 34,105,125,
-245, 9,143,206,179, 81,187,138, 35,211, 43, 1, 10,123,166,161, 68, 91,108, 84, 30,105, 43,240,149,178,150,187,126,106,165,220,
- 74,164,123, 37,213,105,228,100,181,209,165,109, 19,148, 89, 7, 6,124,240,152,192, 59,222,113,169,238,181, 82,231,178, 18, 92,
- 83, 73, 74,151, 49,212,153,224,122,166, 30,140,214,178,245,128,166, 66,255, 24, 3,208, 70, 0,137,225,166,216,203,112,226, 68,
-101, 9, 44, 16,198,253,195,177,214, 81, 40,139, 70,186,196,166,120,119, 27,197, 51, 51, 50,214,153,142,173, 90, 19,202, 49, 59,
-197,173,101,111, 57,147, 31,117, 9, 20, 19, 1,218,174, 40,249, 20,122,116,227,218, 2,128,243,110,187, 61,187,118, 95, 86,146,
-169,254, 60, 34,213, 25,179, 86,210, 67,139,224,193,235,140, 90,174, 2, 32, 37,215, 82,112,108,197, 12, 34,160, 17,231,145, 40,
-229,250,158,186, 54, 84,168,112,150, 97, 96,176, 5, 93,114, 71, 6,232,212,142,197,104,117, 4,194,160, 78,231,126, 89, 9, 21,
-252, 4, 97, 88,201,241, 90, 69, 39,167, 3,249, 86, 80, 95,204, 48,139, 28,238,186,109,239, 90,119,171, 9,196,134,210, 41, 43,
-122, 25, 42,211, 26, 25,171,149,112, 15, 6, 29,221,207, 72, 35, 45,241, 13,182, 3,182,213,238,196,248,111,175, 93,195, 30,179,
-178,192,176,240,118,165,189,230, 33,112,159,110, 65, 3, 33, 25, 40, 74, 18, 17, 40, 10,134,186,138, 6,108, 58,124,206, 11,208,
-152, 54,207,161,167, 52,247,215,223,238,193,197, 34, 57, 47,126,119,162, 75, 97,239,171,178,176,170,182,122, 13,218,107, 51,117,
- 69,231, 43,238, 35,154, 54,126,193,127, 48,151, 34,197, 82,254, 20,197, 54,231, 86, 62,243,248,190, 80,228,188, 70,182, 49, 23,
-141,248, 12, 55, 94,214, 82, 32, 17,146,236,179,224, 56, 5,102,206,114,159,237, 28,153,225,153,139,225,189, 35, 5, 43,105,144,
- 74, 32,153, 72,104,164, 34, 81,120,225,201,209,167, 1,121,117,184, 56,150, 10,252,177, 52,175,170,181, 31,139,171,211,162, 5,
-182,218,242,160, 65, 98, 74, 67,233,202,222,135,154,122,164, 51, 97, 19, 36,181,237, 17,159, 50,179,124, 63,202,177, 57,249, 88,
- 61,142,199,137,117, 15,244,145,174, 69,196, 11, 9, 72,155, 24, 48,201,166, 40,144,115,110,177, 49, 45,147,187,165,193,135, 6,
- 89,135,126, 83,105,175, 71, 36,110, 55,182, 21,153,207, 53, 32, 93, 17,179,201,149, 39,101, 11, 89,235, 71, 93,100, 30, 81,103,
-254,138,209,136,161,117,142, 83,160, 75, 44,149, 63, 15, 1,107,138,206,181, 51,241,145,119,115,159,220,217,153,185,144, 20,185,
- 97,244, 82,173, 42, 2, 18,101,152,236, 24,117,131,114, 93, 53, 97,164,190,189,137, 68,227,178, 46,115,165,106, 49,149,244,176,
-210, 19,139, 60,110, 65, 98,246,121,189,111,229,190,192,108, 12, 24, 99, 86,214,147,217, 13, 55,253, 34, 64,162, 52,188,149, 64,
-108, 45, 77, 89,150,192, 75,182,148, 72, 66,219, 37, 49,128,165, 50, 45,144, 58, 82, 18, 65,226, 73,111, 81, 60,135,130, 56,245,
-168,242,160,163, 89,252, 90, 80,166, 46,113,171,123, 73, 29, 13, 53,149,129,193, 54,140,198, 97,253,125, 24,185,253, 45,141, 67,
- 42,133, 43, 64, 22,226, 68,182,250, 69, 87,148,149, 78,149,172, 91, 95,219,162,108, 45,168,111,173, 49, 77,240, 34,181,136,125,
- 90,136, 15, 69,163, 78, 71,208, 41,157, 72, 52,108, 38,157,115,231,117,146,253, 46, 98, 54,171,210, 49, 87,200,186,236, 54,248,
- 59,118, 77,178, 32,221,207,131, 80, 97, 73, 45,146, 62,166,170,208,184, 50,194, 40, 46,161, 25, 74,196, 2,120,153,195,242,161,
- 67,229,188,186, 76, 11,114,206,181, 72, 62,138,136,113, 78,214,147,246, 65, 87,125,110,189,105,100,144,216,133, 83, 89,167, 88,
-142,167,182,125, 2, 24,223,228, 60, 19,204,242,166,150,147, 92,221, 20,165,169,228, 87,181,218, 87, 90, 81, 49,160,220,140, 64,
-237, 49, 18,138, 34, 16, 11, 16,213, 47,221,100,110,222,186,230,148,155, 85,127,143,196,220,108, 12,102,158, 43,149,186,173, 68,
-162,206,174, 70,217,102,111, 72,179, 66, 73, 89,123, 16,152,182, 1,113,113, 16,180, 90,177,155,222,241,107,229, 33,235, 81,254,
-221, 6,162,170,112,253,195, 59,177, 91, 9,230,153,239, 75,101,199,170, 45,117,181,125, 53,198, 25,182, 22, 87, 85, 49, 22, 5,
-189, 16, 36,102, 37,186,123,116, 37,108,171, 13, 65,150,202, 91, 93,181,215, 92, 39,219, 5,129,148,238, 85, 1,148,229,255,146,
- 35, 21,157, 20, 87,234, 5,141,214,130,231,201,249,246,160, 51,165,235,111, 43,104,111,123, 43, 32, 83,202,104,245,125,228,115,
-118, 0, 70,231,169,123,198,144, 53,145,193, 88, 17,219,221, 20,109, 99,247, 93,206, 16, 66,163,243,176,150, 96,172, 5, 27,171,
-104, 57, 12,210,142,151,107,101, 69, 37,115, 40,170,117,226, 26,233,245,223,194, 28, 81, 39,190,178,213, 49,235,139,166, 89,141,
-181,250,125, 77,150, 65,110, 20,244, 48, 80,226,179,239,113, 60, 30, 55,215, 87,167,151,217, 2,190,115, 37,189,165, 80, 23, 7,
- 51,247, 5,254, 97, 1,174,109, 13,153, 76,238, 84,102,225,145,149,114,150,219,232,144,166,219, 51,107, 82, 24, 67,163, 55,210,
-188,111,172,226, 92,107,180, 60, 12,246,103,111,103,158, 41, 43,151, 82, 69, 59, 16, 56,139, 91, 40,215,179, 34,104, 1,113,202,
- 67, 68,230,255,102, 62,178,168,125,158,217,196, 73,121,135,220,100, 82,148, 55,109,107,165,103, 13,176,136, 81,124,140,139,216,
- 0, 4,193,248, 74, 83,151,125, 15, 31, 30,233,170, 28,211, 2,117, 84, 21,151, 21, 13, 94,220,129,136, 55,149,150, 36,100,202,
-148,238,199,230,117,154,239,175,185, 14,229,140,151, 41, 5,130,198,222, 18,105,142,153,102,160,210,100,155,245,161,149, 78,147,
-126, 60, 35, 91, 83,230,106, 50,241,145,245,102,215,157, 1, 90,145,147, 34, 36,145, 13,125, 99,151,249,151,121, 56,103, 43, 65,
- 67,142, 9, 4, 8,230, 38, 41,177, 76, 86,129, 32,118, 51,213,162,238,148,219, 98,190,204,204,114, 27, 43,115,185, 73,253,182,
-157,203,129,190, 42,240,181,244, 29,253, 7,155,181, 7, 0, 0, 32, 0, 73, 68, 65, 84,187, 22, 37, 95, 40, 39,249, 19,197,114,
-126,177,153, 53, 42, 96,174, 81,220, 26, 5, 63, 26, 87, 66,222,248,213,107,233,210, 96, 46, 12,186,184,148,119, 68, 5, 32, 85,
-223,175,155, 93,231,251,225, 75,128,112,109,149,151,193,133,209, 42,232,161,197,118, 44,158, 21, 43,186, 84, 22,224,188,138,149,
- 40, 84, 57, 89,151,190,141,140,113,215,107,165,242,173,137, 35,213,140, 22, 40, 10,114, 86,153,171,153,205,234, 21,238,114, 16,
-229, 9,107,197, 67,197,205,109,105, 92, 99,171,254,178,150, 6,126,222,107, 0,180, 81,245, 45,132,213,153,248,102, 27,127, 85,
-206,185,251,187,208, 90,195, 46,146,239, 24, 64,102,150, 76,157,235,101, 95,217,247, 12, 14,145,244, 60, 7,164,241,212, 8, 45,
-174, 73,170,152,164, 86, 6, 61,249, 30, 20,185, 24, 85,172, 92,103,217, 8,216,171,192,229, 21,147,199,173,235, 94,159,157,118,
-108, 59,148,177,205, 95, 79,221,247,109,225, 18, 51,162, 61, 64, 22, 5,141,242,212,123,157,130,158, 99,197,102, 15,168, 51,117,
-229,105,151, 25,181, 52, 78, 94,206,248,117,115,153, 7,107,133,193,240,222, 53,155,184,163,182,109, 87, 51,170,176,248,112,101,
-147, 84,135, 26, 50,186,226,133,157, 20,155,135, 44,218,246, 82, 92,194,108,138, 13,172,237, 58,116, 27,149, 67,109,241,147, 97,
-208, 2,216,164, 50,140,142,210, 49,112, 63,247,235,168,249, 74,148, 58, 70,232, 81,238, 81,150, 47,110,219,235, 3,195,152,173,
-234,130,150,222,173,171,139,191,209, 78, 30,209, 75,214,166,227,210, 85, 83, 25,240, 21,251, 74,146,198,210,168,149,109,177, 4,
-226, 65, 12, 29, 70,221,242, 64, 70,202,151, 10, 6,193,167,118, 79, 29, 3,192,208,184,242, 12,135,187, 46, 72, 97,109,168,210,
- 90,225,133, 87, 71, 61, 91, 97, 16, 39, 22,135,228, 99,181,234,149, 98,141, 91,220, 90,205,251, 82,238, 50,140, 40,133,107,213,
-107,191,241,219, 74,164,191, 1,250,156, 13, 3,139, 94, 96,166, 6,192,183,232, 4,172,152, 29,213,153,222,250,185, 46,104, 57,
-163,153, 59,104,104, 92,116, 95,239,137,184,105,220, 33,195,205,190, 5,170,201,230,207,239,139, 29, 88,195,173,148,153,231, 90,
- 37,124, 98,166,188, 53,155,175,121,160,220,251, 60,215,146,250, 85, 76, 64,148,213,145,130, 42, 48,218,167,127,164,175,174,199,
-161,124,245, 9, 32,110, 19,164,141,102, 70,111, 2, 19,105, 16,216,187,239, 53,242,181, 43,215,122,212,137,170, 28,241, 54,240,
- 70, 58,125,191,238,230,227,122,114, 66,169,184,141,163, 17, 67, 14,168,243, 60,183,194,100, 29,219,198, 13,240, 12,190,160, 3,
-185, 86, 50, 14, 85,254,175, 34, 94, 99, 81,145,170,155,163,169, 42, 58,109,103,187, 81, 85,225,153,148,211, 89,139,206, 57,183,
- 31, 84,102,175,255,119, 12, 97,243,161,163,142, 14,164,138,105,150, 87,238,168,117, 41,210,234,210,171,229, 29,181,122,116,250,
-245,125,142,154,133, 38,235,195, 92,133,231, 84,161,255,254,232, 72,102, 83, 19, 90, 14, 99, 41,119, 64,220, 10,119,153,168,125,
- 31,215,189,190,140,181,105,135,160,160,209,194,222,162,212, 88,140,192,136, 53,161,186,234,128, 44,102,167,154,100,121,200, 48,
-249,160,149,135,158, 59, 62,109,114,157,227, 2, 2,227,110,126,230, 76,224, 6,137, 21,254, 66,165, 85,198, 6, 21, 75, 6, 72,
- 72, 37,184, 91,218, 96,181,108,164, 82,105,167,249, 22,171,220,107, 86, 96, 75,212, 56,201,193, 94,131,185,158,147, 36, 30, 63,
- 6,138, 98,107, 96, 59, 3,245, 30,177, 23, 26,223, 66, 99, 24,100,131, 57, 81,139, 6,174, 93, 11, 90,204,204,135,224, 74,123,
- 15, 99, 92, 5,133,246,213,125, 19,208, 68, 81,191,177,237,232,109, 0, 36,183, 0,137,101,140, 97,145,204,100, 48, 16,180,226,
-192, 86, 48, 19,232,146,206, 54, 33, 17,202, 82,167,125,235,159,214,129,100,163,241, 4,141,128,179, 27,129,236,100,192,143,178,
-100, 5,217,164,130,104, 1,120,107, 69, 47,165, 29,157, 14,238, 55, 97, 76,215, 19,186,191, 33,215,150, 4,237, 2, 47,211,181,
-248,197,106,199, 27,141,129, 72, 21, 11,209,107,164,247,224, 87, 13,194, 44, 35,155,224, 78, 57,212,130, 35,143,113, 61, 41,234,
-112, 37,163,245,105, 21, 11, 71,127, 63, 7,157,221,115,233,218,166, 53, 58,183, 20, 89, 98, 12,219, 27,131,239,120, 39,173,241,
- 70, 53,180,176, 21,122, 53, 29, 32,203,224, 33,194,220, 41,142,245,154,197,250,161,234, 7, 15, 53,195, 1, 35,134,185,177,148,
-107,218, 93, 84,145,171,100, 94,223,138, 25, 48, 90,241, 20, 91,193,245,220,223, 5,245, 34,183,139, 85, 21,201,131, 26, 64,141,
-126,127,235, 40, 57,129, 41,214,158,162, 77,146,229,247, 71,199,166,181, 91,184,231,230,114, 26,202, 74, 63,195,214,207,192,198,
-180,193,242, 25,181,117, 26,239,153,245,159,170, 58,134, 72,210,149,153,109,213, 76,118,195, 74,176,136,199,172,204,108,121, 5,
- 64,211,235,156, 83, 49, 33, 81,121, 86, 50,246,176,249,117, 72, 85,205,122, 85,152, 88,214,146, 88, 90, 74,182,210, 76, 6, 9,
- 84, 21,250,242,130,114,138,216, 70, 53,130,225,226, 75, 31,154,163,231,218,118, 34, 75, 45,203, 23, 69, 58, 31,248,173,160, 62,
-174,150,184, 27, 57,181,247, 99, 28,212,105,181, 11,240,121,170,211, 62,233,219,154, 3, 15,209,211,139,153,232,253,170,213,182,
-234,161, 49, 16,107,197,138, 85, 54,218,250,192, 82,136,201,206,237, 71,201,198, 26,127,254,190,215,116,252,153,238,143, 78,167,
-141,206,193,125,239,169,244, 34, 87,118,230,126,194, 28, 43, 18,109,118, 34, 11,218,219,252, 30,204,245,228,123,202,132, 12,215,
- 42, 85, 33, 24,197, 56,217,148, 44,185,192, 89, 33, 42,165,148,153,164, 7, 53,158,148, 78, 64, 39, 80, 84, 58, 13, 3, 23,182,
- 24, 99,193,140, 97,176,190,220,134,151,138, 98,198, 60,115, 73, 46, 99, 39,144,228,156,107, 60, 41, 86, 71, 3,230,186,251, 50,
-107, 38,211,182, 86, 23, 42, 17, 56,159, 0, 59,186,225,113, 55,111, 73, 21,171, 51,230,242, 85, 65,204,146,239, 75, 38,205,180,
-144,181,164, 21, 16, 6,134,200,216,101, 69, 96, 29,224,116, 76, 64,160,166,186, 77, 1,134, 6,193, 35,140,197, 99,238,137,217,
- 17,161,222,102,163,193, 8,156, 58,102,167,221,102,142, 78,178,124,104,109,101,218,143,204, 87, 65, 60,132,129,159,244,198,140,
-108,208,174, 60,101,108, 83,146, 39,170, 89,183,206,108, 1,192,115, 59,158,209,142,144,203,218,251,165, 11,212,163,187,215,232,
- 73,166, 66,162,234, 69, 82, 90,232,102,236,156, 43,141,152, 3, 63, 13,103,187,125,117, 91,220,219,114,192, 44, 44, 14,219,149,
- 64,139, 59, 65,211, 20,235,206,151, 90,141, 4, 50, 72,234, 88,130,121,165,181,172,249,180,203,216,123, 53,121, 88, 55,198, 26,
-110,216,158,166, 60, 67,183, 52, 35,197,172,146,172,111,160,253,166, 27,250, 13,158,229,100,117,189, 86,197,234, 88,109,203,106,
-248,100,251,220,140,236,116, 83,108, 63,127,171,172, 23,109,203, 40,123,126,143,130,164,157,185,218,215,151,197,239,139, 1,105,
-141,208,239, 97,123, 78,123, 66, 18,121, 77,244,197,126, 57,158,193,171,181,242,137, 4,161, 75,182,185,199,194, 80,171,155, 96,
- 3, 91,226,129,111, 27,242, 44,208,224, 70,118,181,185, 63, 3, 60,212,104, 44,208,175,177, 89,226,194,130,183, 1,193, 57, 99,
-124, 5, 52, 2, 46,165, 3, 96, 10, 17,235,248, 6, 84, 74,221,104,102,142, 16, 65, 25, 61,223,106, 37,212, 27,101,217, 67,139,
-132, 82, 0,239,207, 12,229,169,158,215, 92,102,233,188,232,142,140,198,163,214, 80,198,187,158,148, 47,186, 65,214,202,136, 49,
- 24, 26,103, 39,160, 0, 12,179, 99,165,165,232, 76,169, 0,142,204, 5,238,145,208, 86, 67,121, 45,131, 91, 84,170, 76,203, 42,
- 78,171,245, 30,109, 45, 35,158,116,175, 77, 78,159, 79,101, 78, 43,105, 82, 29,232, 92,241, 83, 85, 52,219, 58, 42,250,177,149,
- 63,221,166,116,245, 15,129, 3,134,160, 16,251,121, 79, 85, 40,163,141,116, 84,201, 47,232,100, 3, 0, 14, 81,203,151, 94,173,
- 14, 76,107,219,117, 40,104, 53,146, 90, 40,230,105,226,150, 43,242, 68, 11,171,184,144, 30,240, 37, 20,115,135,166, 3,128,229,
- 74,156,153, 17, 96,197, 33, 4, 68,174,118, 84, 96,212, 17,225,154,202,197, 21,105, 27, 30, 38, 96,250, 80,243,134, 12,107,164,
- 56,236,132, 72, 55,102, 24, 37,158,149,151,239, 22,110, 89,139, 74,154,226,192,155, 57, 25,153,245,247,165, 77,174,105,179, 18,
-196, 74,167,103,109,205,244,184, 12,217,152,231,110,117,149,122, 64,156,109, 39,111,206, 72, 27, 60, 9, 3,107,226, 55, 52,126,
- 30,176,241,252,172, 37, 46, 91,221,135, 17, 38,130, 78,168,101,182,148,179,251, 41,215,157,242,154, 47,107,239, 68,197,223,119,
-149, 74, 18,185,228, 90,150,251,225,186, 36,221,219,207,196,167,187, 26, 91,231,206,113,217, 30,183, 49, 38,198,152,219,244,117,
- 38, 31,165,206,198, 25,212, 61,159,220,142,162, 64,205,103,105,252, 21,200, 4,213,197,117, 73,255, 29,143,199, 97, 82, 80, 20,
- 41,137, 7, 96,199, 42,159, 44,177,213,175,232,213,235, 92,118,113,179,231, 88,103,234,134,175,156,244,120, 43,223,153,115,191,
- 56,237, 27,177,180,189,162,169,214, 98, 86,214, 98,113, 77,170,199, 83, 85,190,170, 52,128,154, 81, 23,159,225,216,150,167, 61,
-239,156,101, 25, 60, 4,128,152,104, 96,172,193,139,243,151,109,102,166,247,234,208,227, 35,225, 27,186,167, 58, 20, 97,177, 41,
-124,158,132, 64,242, 12,124,180,153, 20, 28, 19,115,215, 38,195, 34, 41, 41,103, 49,176,252,163,242,181,180, 95,163, 53,140, 89,
-173, 36, 86,136,248,132, 22,205, 90, 53,138,165, 80,243, 44,114,186,160,161,163,185, 73, 81,103,211, 61, 88, 76, 12, 77,114,196,
-108,200, 21, 59, 80,112, 30,105,189,246, 21,117,197,245,150, 22,189, 21,102, 41,116, 71, 49,216,128,132,203, 96,182,157, 7, 35,
-133, 44,118, 19, 78,148,207,146,152,116, 45, 50, 34, 74,237,179, 21,160,148,228, 46, 87,179, 9,115, 43, 2, 3,110, 95, 51,218,
- 77, 91, 4, 14,174,100,244, 67,160,150,183,152,150,145,225,197,120, 19,229, 19, 22,196,108, 0,176,159,167,205,187,150, 64,210,
-125,218,174, 13,128, 79,177, 35,173, 79,125,207,106,239, 41,106, 77,167, 75, 56,207, 42, 59, 85, 56, 83,114,137,145, 31,150, 97,
- 53, 30,239,253,188, 15,205, 93, 58,151,180,251, 4,242,181,128,220, 7,245, 17, 26,127,113,255,141,202, 37,101, 29,246,230,245,
-227, 18,253,109,131, 23,195,221,115, 76, 52,238,198, 56,114, 11,187,209,173,132,168, 79,156,122,235,214,210, 61,201,236, 24,137,
-209, 56, 38, 82, 3,110,102, 16,188, 49,204, 25,157,227, 86,208, 6,128,200,110,209,154,111,126, 39,196, 77,116,124, 0, 53, 34,
- 68,250,206, 58, 10, 46,236, 23, 30,119,108,100, 80,180,249,228, 87, 28, 27,203,213, 52,119,203,154,239,121, 35,180,179,136,130,
-170, 69,182,145, 3, 55,136,244, 54,179,141,245,100, 85,237,199, 84, 0,110, 37,227, 45,206, 65, 43, 25,100,170,224, 98,211, 14,
- 19, 35, 10,186,208,208, 94,201,128,121, 3,177,123,175,192, 76,188,153,169,159,252, 23,129,200, 17, 28, 25,209, 69, 80,160,198,
- 79,219,179,203,179,221,234,151,108, 27,253, 50,106,199,163,181,172, 85,241, 3, 43,185,202,212,154,109, 20,148,118, 55, 21,171,
-115, 90,202,230, 44,108, 64, 68, 93,123,149,171,196,166, 21, 16,169,247, 39,160, 49,194, 33,105,100,115,123,177, 19,181, 74, 37,
- 99,167,168, 18, 50, 89,206, 33,181,192,105,233, 84,182,120,173, 94, 88,132, 12, 18,118,224,190, 85, 13,118,204,220,188,111, 21,
-102, 83, 34,134, 24,223,106,206,178,175,156, 90,159, 34, 25, 50,169, 62,228,169,170, 86,127,244,201,237, 16, 16,146,133,163,132,
-212, 23, 35,129, 35,135, 10,187,151,148, 20, 83, 76, 40,123,149, 98,178,109,119,243,190,118,253,172,181, 50, 43, 45,111, 32,212,
- 90,172,154,165, 83, 63,172,131, 37, 61,127, 13,170, 11,202,231,137, 46,205,231,153,227, 87,221, 10,170,227,171,114, 67,105,147,
-114,234,251,249, 58, 58, 25, 79, 65,157,225, 20,236, 80,200, 72,162,100, 57, 91,124,216, 73, 32,145, 16, 73,170, 21,173,105, 87,
-203, 56,146,111, 7,103,185, 95, 49,176,205,136, 72,221,170, 72, 17, 44,140,144,215,137, 30, 35, 69, 80,164,178,207, 7, 84, 43,
- 93, 82,143, 3,184,180,239,151,117, 68,139,245,156,126,238,192, 14, 73, 59, 84,247,229, 13, 69, 80,116,227, 72, 71,212, 28,193,
-132,136, 0, 18,151, 18,196,168, 95, 51, 36,247,236, 21,219, 18, 17,192, 96, 68, 9,101, 63, 36,179,222,137,210, 48, 51, 57,195,
- 49, 24, 49, 83, 94, 35,136,125,234, 23, 19, 99,111,246, 79,135, 37, 15,220,254,127,239,167, 14, 88, 89, 5,107, 68,170,108,141,
-160,186, 64,182,222, 11, 57, 78, 85, 80, 89, 99, 0,182,207,134, 66, 33,175, 59,128,199,247, 59, 3,204, 72,168, 24,183,212,241,
-106,226,146,139,196,100, 55,237, 56, 85,176,109, 91, 91,138, 52, 44,151, 74,190,234,189, 39, 84,173, 52, 65, 4, 70, 37,203, 86,
-178, 34, 85,209, 44, 26, 73,215,226,154,102, 20,113,218, 82, 61,150,115,104,130,180,216,115,164,166,253,214,128,227, 70, 89,108,
-151,233,159,106, 73,221, 47,170,199, 85,208,202,169,246,155,138,167, 16, 36, 57,220, 17, 64, 46, 59,154,105, 11, 41,204, 89,221,
-175,221,172,123,249, 80,155,164, 52,243, 70,179,105, 11,183,103, 25,137, 48,135, 12, 92, 44,193,186,234, 95,215, 13,191, 35,241,
- 85, 57,191,102,158, 93, 3,184,113,201,106,230,239,218, 90,170,191,223, 91, 79, 18, 43, 48, 45,189,134, 21,159,161,197, 62, 41,
- 96,215,169,244, 81,155,224,197,172,157, 76,177,122,125,219,214, 37,135, 58, 83,170,231, 17,203,154,118, 94,219,115,209,240,243,
- 99, 81,159,227, 98,254, 27, 75, 71, 64, 47,167,226, 82,210,165,139,249, 18, 71, 29,212, 34,146,224,112,188,205,215,148,243, 90,
-136,217, 63,252,136, 24, 5,142,125,122,102, 98, 76,173,250, 28,212,161, 56, 23,239,234,122,142,154,236,228, 16, 35, 17,192,168,
-173, 45,101,180, 48,113,237, 52,160,219,160,153, 7, 1, 88,146,120, 68, 74, 62,168,204,197, 11,251,130, 91,125,125,234,146, 94,
- 51,188,107,103,212,107,148,175, 76,249, 36, 81, 59,215, 10, 64,101, 78,126,216, 58, 75, 28, 29,251, 53,209, 24,140, 80,219,242,
- 44,174,245,198, 13, 36,170, 97, 12, 87, 71, 44,162,124,109, 37,182, 42,151, 3, 73, 92, 91,233,141,198, 90, 81,176,250,185,239,
-179, 31,237,124, 13,110,146, 13, 41, 28, 49, 16, 9,158, 18,119, 60,229, 35,156,174,117,254,126, 10,158, 2,239,125, 78,174,157,
- 41, 26,164,180,162, 37,212,189, 95,143,204,118,191,241,247, 74, 74, 88, 71,115, 64,135, 33,202,246,191,186,183,112, 46, 32, 99,
- 29, 57,133,188,142, 57, 95,119, 61,198, 56,131, 56,159, 63, 43, 38,133, 11,214, 41,137,153,185,102,223,148,236,127, 30, 67, 62,
- 7, 30,139, 94,105,225, 26, 58,246, 85,227,185, 78,132,201,200, 96,199, 98,127,107,198,134,145, 17, 41,164,247,237, 70,160,177,
- 88,159, 16,156,112,197,121, 12,239,123, 77,218, 34, 85,203,230, 4,214,155, 17, 66,132,196, 25, 34, 4, 95,179,212,113,112, 11,
- 81, 77,236,201, 72,101,218,108,102, 9, 52, 17,147,213,160,107, 41, 47,245,248,151,136,221,252, 49,135,115,192, 69, 22, 19,101,
-201,203,206, 96, 60,165,136,233,197,182,199,251,102,200,159,183,165,248,121,126,191, 52,194, 5, 16, 10, 89,196, 39,228, 44, 46,
- 36,192,162, 67, 7,191,131, 1,104, 37,169, 66, 27,232, 20, 93, 29,122,139,216, 53,244, 37,121,147, 24,185, 70,248, 0,112, 69,
- 6, 53, 85, 47,245,124,137, 76,203,217,104, 3,144,229, 96,219,145, 72,241, 97, 54,109,121,131,206, 46,173, 45,140, 41, 85,181,
-163, 18,187,170, 57, 22,205,227,126,125, 68,155, 20,142, 90,150,130,180, 41, 32, 46,186, 59, 78, 55,239,144,232, 76, 73,182, 53,
- 22,244, 9,114,226,161,237,211,126, 94,238, 72, 63,181,202,208,194, 28, 51,230,130, 56,107, 59,182,200,119,159,231,122,156,129,
- 23,148,143, 14,154, 32,231, 35, 81,103,178,194,213, 79,192,130,230,214,244, 10, 32, 9, 23, 32,235, 64,172, 26,161,217,200,197,
- 86,193,155, 72,210,184, 86,217,170,172,164,218, 35, 37, 59, 50,153,195, 70,251,179, 31, 63, 44,103,202, 92, 89, 31,121,175, 81,
-155, 85,151,147,198,102,116,101,252,191, 91,132,115,168, 90, 4, 82,211, 14, 98,129, 47, 93, 49,206,227, 15,206, 85,137, 43,148,
-190,181,115,100,195, 83, 31, 6,117,199,171,221,139, 83,182,199,169,146,172, 50,221,141,207,189,126,230,105, 44,226,146, 18, 20,
-223,141,110, 92,179,207, 16,113, 93,183, 93,235, 93,215, 87, 18, 6,227,225, 6,211,116,203,186,113,123,189, 31,161, 16,128, 57,
- 31, 21,156,170,235, 30,145,179, 85, 41,101,223,147,132,165, 73,207,182,237,178,112, 51, 42, 35,114,249,254,231,128, 9,125, 29,
- 6,187,164, 33,193,110, 66,144,184, 8,236, 90,108,120,239, 23, 65,189, 22, 37, 17,142,140, 0, 85,150,149,165,108, 36, 5,101,
-248, 72,218, 8,251,174,134, 67, 82,217, 19,234,159,223, 28,255,176, 52, 28, 82, 38,143, 98,185,162,204, 89,160, 44, 34,230,191,
-241, 33,175, 97,183,152, 41,215,209, 82,101,144,201,201,160,222,108, 25,212, 82,235, 98,143, 51,161,104, 56,165,157,143,115, 14,
- 19,253, 20, 89, 43,185,166, 27, 80,119,237,234,101,173, 28, 70,173, 86, 12, 86,213, 54,133,227,223, 51,168,159, 38, 31,109,204,
-235,139,144,207,192,183, 88,217, 4, 33, 44, 2, 14, 17, 21,217, 65,103,232, 21, 13,106,181,160, 75,101,128, 3,176, 51,181,216,
- 97, 8,218,108,210, 27, 63,223,254,115,107,213,196,108, 81,231,220, 4,221,154,108,180,237, 46,173, 86, 75, 80, 39,203,159,150,
-218, 33,146, 26, 93,154,128,101,251,151,102,236,193,221, 61, 25,136,148,193,228, 38,112,112,181, 15, 97,144,202,146,147,216, 52,
- 51,175,149, 6,147, 65,171, 19,167,170,136,234,125,248, 92,194, 49,138,142,165, 13, 53, 49, 62, 53,222,233,159,159,237,121,107,
- 63, 79, 77, 49, 37,174, 78,217,171,246,188, 91, 5,105,142,114, 0, 6, 26, 22, 76,255, 25,107,112, 95, 9,216, 76,155, 73,115,
-105,241, 71,106,250,223,210,201, 2, 11,117, 0, 88, 11,200,203,242,192,232, 13,127,152,154,249,102, 52,173,116,165,250, 22, 38,
-221, 9, 23, 66,199,188, 25,212,215,198,104,247,185,127, 0, 48,121,222, 4, 42,218,189, 58,169,127,202, 2, 93, 47, 52, 80,136,
-236,222,155,177,226,248, 86,252,236, 87,128,108, 88, 3,191,233,197,229,147, 29, 77,178,116,179,238,243,240,202,245,221, 98,241,
- 52,159,131, 19,117,217,170, 20, 22,204, 88,164, 2,244, 30, 3, 15, 93, 82,228, 83, 45,134, 70,107, 69,154, 78, 77, 89, 47,133,
-133,194,198,254,122,144, 84, 83,104,246,187,241, 80,170,174, 47, 49,251,132, 63,132,116,163, 3, 92, 99,182,193,115,128,112, 2,
-226, 68,142,173,209, 4,197,210,190, 33, 9,165, 82,234, 43,230, 40,189,145,203,242,201,148,156,205,148,182,114,190,216,197, 3,
-187,115,145,141,134, 63,169, 45, 82,234,182,184, 70, 79, 28, 75,238,164,109,191,127,238,118,251, 2,189,122,191, 89,216, 16, 8,
- 66, 45, 83,160, 7,196, 53,202,123, 29, 6,192,162, 51,133,105,137,101, 88,107,249, 47,154, 58,212,116, 80,250,163, 99,222,244,
- 67,246, 5,123,209, 74,144, 42, 96,114, 1, 2, 18, 83,173,150,251,213, 38,135, 75,183,178, 42,124,212,178, 37, 34, 56,107,227,
-243,223,245, 6, 82,108, 18,172,194,229,214,196, 37,251,154,170,168, 17,115,162,233, 89, 45,135,251,180, 73,135, 32,154, 46, 64,
-141, 54,112, 57,129,132,118, 88, 49,250,216,112, 73,171,255, 63,219,190,194,153,231,151, 49, 74,213, 89,120, 72,221,236,207,213,
-173, 36,247,163,207,159, 76, 49, 86,196, 61,184, 42,230,109, 1,237,196, 68, 9,149,147, 46,178,210,100, 18, 10,171,205,159,247,
-171,136,132, 93,136,185, 91,209, 39,188, 10, 74,228,149,164, 98, 43,104,149,251,227,220,248,190,118,214,207,167,249,243, 43,226,
- 45,136,195,159,175,141, 22, 91,134,197,224,181,101,236, 5,209,123, 60,148,241,161,240,170,139,165,125,254, 71,251,160, 21, 71,
- 26, 1,226,234, 30, 27, 87,229,120,181,146,182,149,182, 6, 83,186, 7,147, 41,168,142, 74,254, 12,218, 90,223, 2,234,181, 51,
-246, 14,252,134,113,113, 36,221,125,177, 60,253,158,250, 39,172,126, 5,105,127,141,195, 89,189, 44, 40,130,122,244,115,168, 51,
-110,219,201,139,154,249,166,161, 70,157,167,168, 43, 79, 52,188,195,184, 60,169,178, 89,129, 54, 45,211,171,223, 46,101,242, 28,
- 53, 16,165, 42,171,217, 45, 24,169,138,110,139,197,102, 95,159,185,239, 77,183,193,243,196, 77, 63,181, 40,228, 84, 78,208, 13,
-130,151, 15,173,171, 72,117, 91, 21,103, 91,212, 5,101,172,163,229, 69, 9,165, 82,141, 3,106, 80, 89,160, 3,225,191, 52,151,
-172,181,125,235, 37,221,178, 18, 22, 84,161,178,247,154,245, 67,181,253, 79,166,138,110, 51,247,154,221,235,198, 94, 41,104, 85,
-217, 45,123,173,149,209, 79,145, 48,110,230,164, 84,193,156, 43,183,201,173, 25,218, 16, 22,152, 4,202, 93, 85, 46,179, 91,159,
-253, 14, 18, 66, 94, 91,143,202, 8, 73,221,133,133, 48,166,185, 63,210,204, 35,235,215, 29,151,222,240,238, 35,245, 2, 45,178,
- 64,191,218, 4, 91, 49, 7,227,246, 40,173, 86, 48,117,253,204,109,176, 22,110,180,248,235, 90,225, 70,206,120,164,219, 77,131,
-103,162,153,169,155, 68, 92,154, 74,113,208,239, 50,184,144, 33,232,204,220,183,104,198, 26, 84, 58, 55, 82,248,203, 54, 9,209,
- 34,195,142, 12,226, 98,100,112,255,103, 92,194, 54,250,189, 23, 21,234,169,191, 17,235, 65,125, 75,133,173,222, 64, 30, 38,235,
-182, 3, 90,180, 71, 88, 22, 51,225, 24, 99,245, 46, 48, 65,171,172,157,141,162,133,114, 69,169, 0,198, 81, 34, 82,146, 50, 57,
- 13,148, 28,105, 26,108,217,239,234,103,209, 86,121, 47, 37,219, 39,181, 99,160, 98, 52, 53,122,222, 75,204, 53,172,114,230, 70,
-237,206,254,215,189,110,233, 68,230,231,117,154,246,237,231,238,158, 99,137,206, 20,203,213, 67, 66,147, 79,134,107,128,113, 37,
- 57,101, 52,223,183,127,231,133,169, 86,123,165,229, 25,242,155,231,106,156,114, 96, 20, 37,176,164, 89,154,136, 36, 87, 26,169,
-242,138,194,109, 16, 23, 90,217, 76,200, 22, 74,110, 97,205, 89,132,250, 5, 5,121, 57,252,251, 83, 60,206,141,246, 88,162, 28,
-132,191, 87, 80, 95,115,169,186,119,243,158, 87, 30, 8,108, 43,181,161,155, 89, 74, 87,197, 47,218, 78, 43, 82,172, 34,177, 49,
- 83, 89,252, 50,157, 80,152, 83,205,122,221, 80, 99, 54,245,201, 15, 50,107,191, 68,168,180,173,237, 70,239,157, 67,160,144,147,
- 65, 46,170,127,106,201,171,115, 51, 26, 24, 23,212,132, 44, 5,197,166, 27,211,249,101,143, 90,207,233, 20, 99, 93,107, 37, 8,
- 25,245, 53,187,193,229, 54, 59,177, 20,249,217,251,200, 96, 90, 5, 42,151,159, 53, 5,182, 91,191,115, 93, 11, 35, 62,249,234,
-156,213,116, 74,224,146, 45,141, 48,149, 12,223,190,223, 48,227, 23,215, 40, 18, 2,108, 2,160,173, 52,184, 14, 2, 69,134, 29,
-152, 82,189, 26, 61,110,206,122,148, 77, 30,101, 59,122,180,212,174,182, 63,183,148,165, 70,196,164,184, 28,186,146,108,244, 71,
- 89, 49, 82,234, 95,191, 57,159,110,243,220,234, 20,104, 49,178,181,111,172, 26,185, 40,207,152, 7,115,240, 19,202,124,205, 26,
-139,178, 90,233,142,204, 72,108,226,199,204,213,150,214, 98, 12,186,231,123, 45,233,208,164,164,241,218, 56,225,246, 54, 10,224,
- 67,188,209, 70,219,124, 49, 82,176,227, 32,231, 22,251,243, 58, 32, 58,130,104, 90, 85,213,220,138, 27, 91,122,248, 54,168, 59,
-215,162,231, 23, 86,197, 88, 25,175,229, 61,181,217,191,164,142,179,163, 5,238,161, 5,145,123, 16, 39, 85, 42, 78,160,136,148,
-141,248, 78,144, 37,115,143,237, 92, 45,103, 42, 35,196,231, 73, 26,135,105,211, 9,135,254,138,181,109, 27,150, 85, 0, 70,133,
-179,108, 84,234,144,133,147, 79,253, 89, 88,242,255, 22,111,118, 34,104,243,231,173,244,251, 74,122,187,192, 23,233,140, 67, 71,
-206, 70, 88,151,227,220,210,110,151, 92, 53, 55, 49,162, 71,227,230,228,174,207,216, 91, 89,205,236,105,159,193, 45,100, 16,247,
-236, 56,207, 34,201, 84,173, 84, 58, 58,204,156,209,184,117, 51,173, 28, 88,157,215,243,186, 30,121,166,149,244,109, 41,222,152,
-207,233,121, 75,254,124,214,161, 80, 27, 59,170, 33,239,200,195, 41,194,159, 5, 62,163,130, 57,115, 46,181,211,178,105,175,105,
-189,205, 45,170,219, 38,168, 68,229, 92,214, 54,243, 69, 27, 91, 42,214,128, 64, 32,151,129,115, 57, 81, 87, 86, 75, 31,220, 26,
-208, 34,251,197, 64,166, 95, 11,182, 77,220,182,242, 90, 29,137, 72,125, 2,106, 42,252,149,160, 61, 28,105,209,242,245,200,162,
-167, 21,223, 96, 58, 93,107,214,158,247, 85, 56,211,117,211, 31,197, 38,253, 93,208, 19, 17,120, 55,157, 20,122, 89,224, 8,100,
-169,167,222,171,182,108,201, 52,183, 63,231, 97, 48, 95, 24,103, 53,102, 62,108, 10, 1,110, 37,159,187, 74, 93, 76, 74,166, 86,
-185, 22,147,160, 99, 49,233,198,159,188,146,196, 80,236,237, 69,195,202,112,176, 85,234,171,136,124,106,206,167,178, 11,214, 45,
-128,215,212,232,136,124, 6, 89,198,225,152, 82,186, 14,171,253, 90,223, 47,160, 87,137, 91,142,184, 44,201,120,177,135, 73,104,
-239, 27,120,156, 60,200,120, 76, 65,204,166,219,157,254,198,247, 79, 27,101, 26, 20,117, 42, 59,165,157,117, 34,131, 20,171, 42,
-182, 18,216,169,227,150,223,163,107, 61,168,100,151,109,184,173,153,246,234,156,243, 68,165,189, 89,169, 83,196,189,245,100, 87,
-192, 14,212,137, 39,148,204,152, 86,230, 83,116,218, 3, 27, 88,106, 47, 15, 45, 17, 17, 23,218,206,125,123,191,162,211, 7,217,
- 40,197,188,185,115,105, 31,171,113, 10,199,132,145,112,142,242,195,163,153,177,203,188,218,196,110, 72,175,175,168,212,190,178,
-232,180,147, 73, 69, 99,140,113, 74,168,102, 65,164, 65, 58, 11, 28, 9,128,201,123, 83,133,247,193, 54, 5,113,155, 76, 56, 53,
-134, 65,162, 82,105, 59,141, 73,192,236,146, 29, 49, 39, 14,122,210, 0,224, 6, 36,215,204, 44,209,186,241, 69, 27,204,114,123,
- 45,241,251,141,208,140,153,249,246, 21,122,185,159,121,211,140, 0,246,211, 84, 44,104,181, 66,135,227,213, 10, 93, 59, 43,214,
-216, 98,225,252, 62,104,149, 18,184,120, 34, 52, 63, 51, 95,187, 97,114, 61, 80, 41,227,109,147, 22, 6,140, 78, 95,219,166,231,
- 28,132,245,168,189, 32, 45, 20,104,227,191, 38, 25, 64,165, 28,114,206, 74,244, 72, 34,217, 66, 90,176,115,174,116,126,244, 24,
-187,160,236, 54,236, 79,155, 86,246, 8,253, 62, 72,186, 23, 9,192, 70,194,104,147,173, 81,245,170,149,235,104, 12,208,183,219,
- 55,177, 56, 50, 54,196, 25,237,207,246,125,108,229,172, 5, 74,219, 17, 88, 79,136,182,186, 13,107,221,144,209,223,109,141, 54,
- 36,134,225,249,111,105,241, 55,207,121,140,105, 28, 77, 53,233,105,177, 81,219, 35,148,216,189,255, 34,105, 84,153, 90, 25, 43,
- 31,142, 62,155,119,138,158,204,188,164,210,158,145, 6, 46,178,152,155,213, 7, 84,154,138, 88,117,177,185, 15, 50,157, 98, 88,
-111, 72,209,194, 83, 96,116,225,169, 5, 52,169, 32,138,106,104, 11, 54,102,154,253,226,236, 19,128,172, 88, 70,113,163,205,181,
-165, 24,231,134,206, 88, 39,129,116, 38, 83, 44,188,104,165, 67,112,203,161, 29,129, 78, 68, 78, 39, 47,107,192, 10,138, 82, 42,
- 26, 17,129,155,114,112, 84, 16, 5,161,169,168,117,209, 73,147,128,181,166, 42, 41, 57, 80,229,181,244,160,123,167,201, 0, 85,
- 64,137, 66,206, 77,171,156,237, 53,233, 23, 61, 69, 67,215,169,159,171,208, 71, 72, 64,174,154,248,104, 16, 75,152,143,244,121,
-119,206,151,182,183, 21, 94, 73,130, 15, 10,132,139,173, 25, 80, 54,126, 32, 65, 85,148,211, 96,174, 60,253,252, 44,120,207, 93,
-197,153,121,208,185,198, 73,226, 76, 48,252,232,220,253,200,179,165,162, 82,134,228, 90,230, 40, 91,184,230, 10,219,249, 58,154,
-114, 5, 56, 72, 37, 72, 29,148, 67,157, 53, 14,136, 25,228,114,216,226, 42,123,105,164, 7, 10,102,128, 87,128, 91,182,249, 84,
- 3, 68,221, 19,172,241,133,195,178, 43, 97, 43,236, 16,226,189, 0,156, 54,240, 20,160,144,105,127,167, 68, 10, 37,217,210, 54,
- 59,193, 45,146,161,152,250,147,165,157, 78,131,100,169, 96, 86, 12,175, 93, 58, 11,100,234,190, 95,254,206, 98, 56,250, 42,176,
-255, 76, 54, 64, 96,137, 53,112,112, 77,112, 42, 6, 30, 29,181,202, 6, 27, 17, 65,136, 42,234,229,154,125, 69, 0,144,171, 28,
- 19,251,247,189, 58,165,228, 4,165, 57,239,252, 28,106,101,234, 92, 86, 2,141,233,119,171,178, 30,213,209, 9,197,102,111, 7,
-164,140, 99, 89,218,117, 84, 18,136, 50,199,231,205,130, 74, 43,113,139, 21, 89,171,194, 71, 65,123,100, 61,220, 36,144,206, 21,
- 75,229, 1,164, 3,243, 28,210, 94,192, 6,235, 21, 35, 68, 34, 66, 46,104,172,145, 86,228,118,238,172,178,213,209,240, 66,236,
-185,198, 88,101,172,185, 8,101,213,238,164,119,126, 37, 49,201,234, 24,113,206,235,196,128, 7,135,243, 6, 81,155,145,216, 33,
- 32, 43, 23, 80,161, 37, 36,170, 95,157,190,118,112,185,165,235, 74, 37,106, 45, 39,147, 34, 78,204,179,182, 80,190, 86,197, 44,
-229, 3, 83, 84, 52,124,182,176, 20,100, 37,167,116,129, 92,158,235,235,247,235,215,153,143, 46,116,242,231,137, 78, 22, 81,148,
-137, 88,204,249,184,140,242,231,230,252, 18,112,161, 42,188, 65,147, 2, 85,104, 2,167,182,126,254, 58, 81,158, 70,226, 49,170,
- 72, 21,219,206,196,192, 73,174, 54, 6,150, 27,135,228,170, 66,103,217, 90,118, 18, 8, 28, 35,156,243,112,144,188, 81,214, 99,
-217,225,187,214, 19,155,102, 17, 13,230,243,213, 73, 46, 97, 44,152,185,178, 9,137, 51, 96,142, 83, 27, 91,189, 4, 84,250, 84,
-172,249, 8, 23,187, 71, 94,120,121,103,248,144,180, 46, 99, 41,200,147,169,172,125,149,211,213,239,163,182,206,133, 48,148,118,
- 44, 89,112,190,247,194,190, 25, 11,177,105,111,123,147, 92, 49, 81, 81,193,211, 36,130, 92,139, 10, 47, 74, 89, 80, 37, 92,147,
- 72,246,182,177, 68, 41,233,193,210,205, 74,131, 56,136, 16,108,155,216,116, 1,132, 0,206, 73, 11,242, 8, 77,244,168, 73, 89,
-239,201,192,212,208,152, 52,185, 43, 10,128,194,141, 71, 57, 79,190,225,215,234,239,244, 64,161,145,159,118, 4, 32,142, 87, 70,
- 95, 43, 22,146, 6, 25, 95, 0,134,249, 58,176,237,210,177,174, 79,215, 84,238, 69,179, 63,214,164, 77,147, 61,155, 44,148, 78,
- 69,136, 89,235, 74, 22,109,252,102,132,227,234,209, 74,205,198, 57, 44,233,168, 24, 37, 69, 24,251,218, 27,186, 86, 95,105,142,
-172,115,251, 89,113, 12, 45, 80,202,147,203, 0,171,244, 60,204,135, 99,249,218, 38, 61,197, 91, 97,224,162,216,124, 14,211,190,
-239,153, 20, 41,217,221,230,158,168, 11,154, 5,178,149,128, 13, 73,215,127,163,171,186,101, 62, 53,154,129,247,215,202, 13,100,
- 96,155, 42, 41, 88, 81,169,101,215,115,154,166,225, 61, 81, 86,132,158,126,237, 78,181,133,143, 26,186, 84,121, 97,238, 36, 93,
-253, 96,255, 67, 9,234, 97, 21,243,181, 46,191,235,149,103,103, 13, 93,168,104, 97,183, 31,184, 80,120,178,254,117,177,162, 52,
-136,211, 82, 65, 65, 12,250, 57, 22, 32, 21, 35, 41,105,145,196,212,166,205, 95,215,163,202, 64, 86,215, 55, 20,135,184,228, 79,
-157,146, 3, 1,155,164,129, 36,129,151,244,125,202, 49,183, 74,201, 84, 92,245,152, 43,105,115,190,132, 36, 54,194,249,152,144,
-218, 85, 45, 76,191,207,189,135,174, 57, 95, 50, 95, 91,177, 17, 43, 70,162, 63,143,221, 98,100, 90,239, 52,208,136,187, 91,168,
- 73, 26,217, 85, 9, 78,101, 5,197, 36, 71, 82,228, 46, 43,191,167,117, 75,169,138, 72, 53, 40, 9, 90,167, 49,148,142, 76, 10,
-222, 85,154, 23,101, 14,158,236, 16,139, 70, 29,152, 8,206,177,233, 76,228, 57,111,148, 70,198,149,168,213, 68,112,108,191, 79,
- 69, 46,212,149,234,181,206,170,134,138, 78, 52,182, 54,213,100, 58,113,211,107,139,148, 59,192,166, 51, 46, 73,158,184, 88,151,
-234,235, 71,116, 64, 44,173, 36, 81,219,235,165,170,224,101,123,222,185,177,203,149,165,164,245,159,199,182,227,197,115,193, 38,
- 88, 84,115,147,200,216,205, 52,207,225,136, 83,139,190,184,232,149, 89,231,210,163, 61, 93, 10, 30,183, 97,227,192,100,197,216,
- 56, 82, 7, 38,148,181, 86,253,136,155,156, 51,180, 53, 42, 32,114, 80,167, 1, 32, 14, 81,224, 40, 5, 93, 5,253, 22,124,136,
-189, 79,204,139,202, 28, 3, 54,197,200,105,139, 5, 11,244,250,226, 95, 8, 99,180,183,117, 21, 27, 98,129, 90, 12,134,244,173,
-122, 35,128,162,130, 34, 66,130, 57,134,242,108, 9, 85,236, 8,140, 15,130,100, 43, 72, 90, 5, 18,155, 53,160,166,229, 82, 5,
-123,154,196, 84,104, 49,134, 89,244, 93,179, 65, 83,223,109,232, 32, 28,195,127, 74, 89, 91, 11,244,163,241,197,218,207, 87,131,
- 58,173,131, 13, 53,128,247,157,128,210, 57,232,188, 59,244,227, 4,200,178,157, 79,217, 35,197,166,190,146,246, 5, 89,140,155,
- 99,217, 51,214,186,200,229, 73,146, 44, 91, 92,112, 30,148, 52,129,213,174,180,100, 96,162,193,141, 75, 16, 39,150, 92,237,165,
-108,181,182,249, 77,219,160, 84, 50,109, 16, 43, 84, 19,137,185, 82,204,129,131, 85,196,164,138,153, 56, 69,241,216, 54,125, 85,
- 8, 65,149, 43, 53,192, 27, 29, 1,228,246, 16, 83, 85,148, 27,125, 95, 3,175, 6, 93, 71, 84, 0, 86,138,194,142,185, 82, 72,
- 95, 43, 15, 48,125,223,233,131, 41,218,198,207,156,226,152,218,168,250,181, 61, 54, 10,211,141,223,110,173,245,180,195,177,208,
-102, 22, 78,150, 90,194, 25, 92, 81, 73, 56, 21,177,205,102,243,205,237,162,104,174,149, 41, 99,169,168, 44,117,224,168,197,194,
-161, 85,181,171,180,165,165, 27,227,236,250, 41,198, 42, 84, 54,118, 6,229,123, 79, 70,219, 61, 85, 10,181, 74,232, 4,102, 20,
-136,147, 37,131, 9, 75, 20,241,228,124,217, 96, 85,219, 64,184,203,212, 87, 3, 67, 68, 20,106, 16,232,132,254, 92, 42,194,148,
- 76,165, 94, 43, 71, 89,204,124, 53,248,106,112,150,174, 58,235,131,182,181, 99,181, 0, 58,233, 54, 53,251,247,165, 61,237,170,
- 35,222,168, 43, 81, 42, 5, 83, 13,150,223,101, 46,237, 61,196,196,239,150, 96,218,209, 5,188,147,168,110,161, 84,120,153,245,
-208,119,140,160,202, 87,198,250, 82,168,147,124,109,217, 49, 86,217,177, 49,246,232,128,132, 92, 24, 58, 93, 96,151,218,196,213,
-231, 74, 50, 6, 36,136,128, 61, 26, 12, 66,227,116, 5,128, 93,197, 62,104, 5,238,108, 37, 40, 99, 84,185,165,104, 54, 44,129,
- 21, 3,147,158,110,181, 54,171,237,103,240,163,223,239,193,147, 64,132, 16,167, 4, 53, 31, 37,239,219, 80, 7, 63, 45,126, 56,
-183,155, 57,237, 51,142,212,179,160,151, 83,205,251,143, 76,233,245, 36,201,145, 38,213,201, 80,119, 50,193,230, 12,188, 80,207,
- 86,185,250,113, 21, 89, 63,106,151,175,205,250,215,174,227, 26, 80,184,196, 42, 9,141, 7, 70,255, 94,125,165, 60, 42, 18,134,
- 8,126, 85,154,139,221,249, 81,127, 14,219, 30, 9,108, 40,171,163,113,235,136, 69,224, 29, 85,237,247,138,120,182,149, 67, 13,
- 10,202,227, 83,100,171,152,139,147,188,157, 37, 7,139,152,171, 55, 65,140, 93, 21,166, 40, 33, 74,138, 93, 35, 67, 8,139,230,
- 18,233, 64,230,101, 67,212, 48,222, 86,250,142,234,121, 71, 18, 48, 83, 87, 9,213,223,171,240,243, 52, 14, 40,109,117,174, 6,
- 26,169,149,105,199, 3, 84, 42,127,213, 42,214,135, 59, 72,210, 34,143,221, 38,163,213, 92,144,246, 88,111,142, 42, 25,213, 28,
- 93,181,239, 74,199,139, 44,154,191, 65,187, 13,105,248,156,133,125,200,215, 23, 72,254,224,220,204,244,116,230,196,107,217,108,
-158,169,145,140, 16,222,174,116, 50,156,213,116,103,169, 0, 55,182,247,175,138,184, 56,117, 61,107,228, 74, 92,139,171,104,170,
- 49, 50, 40,251, 26,252,188,118, 66,162,148, 57,184,206,217, 41,119, 7,100,129,147,208,100,144, 23, 64,203, 30, 75, 81, 55,206,
- 28, 80,216, 53, 26,241,105, 6, 42, 5, 0,102,219,228,122,143, 35,122,240, 97,213,113, 16,146, 85, 94,121, 10, 98,203,115,227,
-114, 76, 9, 11,204, 57, 45,170, 89,118,185,139,102, 62,171,178, 93, 64,201,143, 90,164,102,207,102, 79, 0, 0, 32, 0, 73, 68,
- 65, 84,180,171, 73, 8, 97,160,223, 32,200, 0, 49, 45,220,104, 13, 39, 82,197,107, 92,127, 29,121,105,162,100, 41, 83, 97,133,
- 32,230, 58,240,109,251, 25,217,168,114, 85, 20,162, 98, 23,156,247,165,237,204,165, 41, 37,229,107,201,237,247, 24,151,106,115,
-182,205, 41,125, 5,109, 59,212, 3, 61,249,242,108, 58, 54,190,229,220, 34,232, 5,139,231,106,209,173, 48,137,192,112, 54, 28,
- 3,196,229,110,152,115, 96,114, 96, 55,101, 35, 22, 32,204, 49, 87,229,220,149,239, 84, 42,104, 24,172,134,106,222,235, 76,141,
-244,102,139,182,252,179,121,144, 80,146, 91,165, 78,225,109,165, 77,174,180, 18,150,174,149,238, 12,162, 94,172, 85,112, 82, 3,
-117, 92,173, 69,173, 91, 94, 49,230, 33, 25,196,197,106, 68,229, 60,111, 48, 96, 24,206,241, 38, 82,126,196, 30,104,131,120,104,
-215, 97, 67,138, 34, 28,179,252,176, 38,183,212,109,212,228,105,149,125,210, 38, 49,219,214,186,109,119, 35, 57, 15, 26,241,144,
- 42,246,193, 86,163, 26,173,225, 5,101, 35, 18,210,141,137,181, 61, 95, 77, 63,146, 81, 9, 87, 29, 95,146,165,113, 11, 42, 5,
- 41, 26,203,212,188,154, 76,165,223, 47,122,105,130, 92,122,175,138,124, 38, 44,143, 92, 30,110, 99,233, 73, 41,104,104,104, 79,
-134, 20,148, 43,122, 87,144, 2, 41,104,115, 54,174, 80,154, 14,119, 94,237,178,201,139, 85,145,148, 42,150,162,162, 9, 57, 5,
- 34,151, 55, 94,165, 41,100, 19, 3, 36,148,101,212, 46, 70,105,153, 91,124,113,110,117,138,113, 84,211,185,183,182,115, 80, 65,
-125,148,199, 46,165, 67, 99, 44, 24, 27, 32, 9,115,245,128, 95, 4,158, 42,231, 90, 44, 28,179, 72, 11,163,175,168, 66, 1, 22,
- 38, 26, 91,213,103, 46,179,122, 82,101,132, 22, 53, 14, 84,106, 99, 95,169, 23,238,122,167, 81, 45,212,206, 1, 35,198,192,195,
-117,158,185,148, 77,153,236,231, 54, 25,122,157,229, 74,163,146,166,221, 16, 49, 0,175, 14, 61, 85, 59, 76,157, 88, 76, 3, 8,
- 26,206, 49,219, 74,157,224,183, 21,233, 6, 21,158,165,232,132,108, 74, 18,161,192, 41, 52, 0, 42,238,209,207,166,194, 40, 65,
-199,204,172,251, 49,129,115,190,101, 97,244,231,192,213, 18,216,173, 33,148, 59, 10, 92,179, 6,172,165,179,125, 52,180, 27,199,
-173,214,188,214, 20, 49,211,250,154,239, 47,193,216,235, 85,158,200,201, 10,114,156, 44, 46,149,218, 70,213,124, 63, 19, 30,182,
-240, 89,128,140,169, 88,179,254,228,221,104,108,146,198,132, 18, 37,119,106,218, 68,182,218, 63, 80, 26, 95, 24,204, 76,111,172,
-229,114, 48,139, 49, 86, 25, 90,243, 89, 23, 51,225,174,149, 61,101,116,183,254,253, 2,195, 51,232, 86,140,208,253,107,221,196,
- 53,228,123, 5,159,110,179,158,214,216, 2,189,200,205,218, 58, 41, 51,125,185,159,242,228, 66,166,153,198,214,201,205,254,220,
-253,190,119, 84,216, 53, 77, 21, 84, 51, 30, 46,170, 59, 69,106,193,204,158,211,247, 82, 5, 75, 38,112, 16,146,247,116,106,203,
- 85,229,117, 42,178,176,137, 39, 94, 60,171, 81,173, 53, 13,204,166, 51, 6,177,128, 52, 87,102,196,101,150, 58, 48,110,209,163,
- 35, 70,204,166, 1,250,125,148,205, 88, 10,192,134, 75, 71, 1, 69,217, 77,131,179,179, 64,156,133, 96,139,148,191,149,238, 24,
- 11, 38,160, 73,130, 77, 36,170,237, 99, 6,134,149,130,114,167, 59,241,252,102,228,129, 30, 77, 94,128, 77,245,129,106,171,213,
-196,187,102, 44, 65, 92,250, 39,126,101, 83,178, 15,133,149,170,212,192,228, 10, 27,162, 86,219, 10,156,209,113, 76, 17,192, 48,
- 34, 41, 14,190,128,249, 34,173,163,252,169,243,139,239,165, 47,203,239, 59,110,123, 0, 93,251,139,105,172, 56,149,109, 19, 50,
- 37,175, 2,203,154, 13,179,211, 91,111, 2,123,238, 36,168,182,123, 19,204, 77,119,199, 43,229,110, 68, 55,226,177,244,171,203,
-201,169,227,164, 72,181, 37, 85, 27, 99, 92, 72, 11, 91,162,153,206, 12, 53, 80, 17,183,232, 92, 81, 63,104,170,115, 92,235, 31,
-237,178,226, 85, 85,192,162,210,137, 72,231,234,155,177,196,168, 93,175,237,127, 89,185,223, 13,111, 92,245,219, 81,181,223, 9,
-148,140,135,164,254,188, 4,149, 78,134,182,151,243, 36,166,230,111,150,116,180,106, 8,148,198, 60, 74, 57,205,207,149, 91,182,
-108, 79, 1,190,122,153, 87, 93, 63,234, 43, 35, 98,171,205,182,111,219,227, 19,156,231,122, 93,128,205,160, 55,242, 88,215,181,
-232, 48,150,153,213,231,103,148, 0, 39,118,200, 88,138,149, 7, 20,179, 45, 87,204,145,136, 87, 63,127,183,163,143, 17, 15,127,
-141, 13,180,165,171, 31, 86,176, 29,213, 59,160,103, 12,228, 62, 42,113, 54, 13,146,174, 59,208,162,244, 89, 13,123,226,125, 49,
- 1,237,185,246, 98, 58, 34,188, 74,127,172,210,221, 8,185, 90, 51, 2,173,165, 77, 39,112,218, 62,168,172, 55, 84, 91,199, 88,
-164, 73, 9, 33,183,133,235,145, 51,212, 62,189, 87, 40,191,167, 80, 2,221, 68,154,142, 21,197, 5,150,161, 55, 15, 40, 50,163,
- 10,214, 42,160,188,152,209,127, 82, 64,120,234, 68,149, 42,214,148,108, 56,152,185,124,254, 56, 44,104, 92,175,139, 30,186, 65,
-197,150,138,132,200, 24, 86,232, 92,200, 56, 5, 73,109,192,199, 8,120,195, 22, 40, 26, 91, 5,253, 94, 41, 52,206,206,100,165,
- 19, 31,232, 43, 10,123, 83,145,219,107, 5, 2, 95,223,223,243,132,222,119,184, 65,235, 71, 41,159,165, 85, 42,163,102, 19,179,
-247,200, 42, 72,121,178,118, 57, 70,106,145,244, 58, 91,231, 36, 73,237,246,236, 67, 29,115,103,167, 8,186, 48,192,217, 74, 81,
- 31,242, 89,214,128, 46,178,152,189,177,250,215,218,135,179, 43,147, 93,199, 7,151,149, 77,166, 40, 22,178, 17, 62,113, 92, 81,
-196, 58,126,112, 45,239,157,200,193,113,181,178,132,142,117, 12, 80, 78,231,241, 61, 80,206,242,202,155,185, 28, 58,214, 67,193,
- 90, 50,156,167,188,166,104,168,140,198,224, 5,250,217,254, 92, 72, 58,179, 19,109,199,102,124,136, 42, 78,202, 74, 37,232,124,
- 25,107, 81,215, 38,151,210,142,231, 38,217, 18, 4,244,114,196,170, 84, 55,234,154,176,168, 83,158, 12, 18, 31,203,158,176,168,
- 21,160,218, 4,215, 36,250, 36, 31,187,145, 69, 72, 73,159, 24, 67, 4,210, 98, 68, 5,153, 28,231,153, 58, 53,251,128,189,255,
- 20, 67,178,160,206, 88, 24, 49,152,152,164,107,158,159, 26,137,181, 3,198, 46, 57,146,169, 75, 32,120,209, 70, 39, 18,204, 57,
-208, 16,176,169, 49,223, 35,216, 23, 65,112, 69,111, 67,131, 10, 13,102,231,106,152, 69, 74,169, 66, 68,182,244,206,193, 71,131,
-121,204, 45,246, 88, 0,202,105, 86,172,192,190,101,178,161,184, 27, 77,202, 74,210, 39,146,172, 88,227, 9, 69,183,142, 37,176,
-198,119,183,148,183,126, 30,223, 39, 16,246, 26,106, 71, 45, 28,238,186,100,107,153,100,199, 92,200,233, 88, 43,228, 98, 36, 12,
- 19, 64, 26,182,255,151, 69,141, 27, 38, 58, 73,124,102, 62, 22,206,163,115, 14, 59,239,171, 72,254, 60, 87,116, 44,145, 9,234,
-166,234,107, 90,172,249,161,202, 65,205, 65, 50, 78, 43, 46, 50, 56, 46,212,155, 56,252, 80, 45,245,101,196,117,239, 44, 91,165,
- 39, 25, 74,169, 68, 11, 74,140,150, 34,211,106, 45, 90,121,172,149, 34, 34,177, 90,212,245,182,129, 10, 44, 82,109,113, 88, 49,
- 5,201, 9, 6,137,225,189,198, 82, 29, 59,170, 86,114,108, 28,161, 98, 70, 79, 42,101, 44,201,165,242, 2,128,177,168, 38,144,
- 21,219,152, 19,100, 45,241,120, 82,203, 90, 84,226, 55,243,165, 99, 27,200,218,106,115,236, 38, 53, 66,142,171, 0, 75, 60, 30,
-224,116, 70, 75,173, 3,155, 26,160,176,202,180,105,151,194,200, 84,218,214,120,242,236, 11, 57,224,165,135,205,173,202, 60, 38,
- 84,248,180,223,153,214,177, 44, 54,175, 30,189, 90, 90,200, 57,160, 71,106, 13, 85,180, 10,117,163,249,165,237, 6,232,198,224,
-108,151,160,138,235, 36,170, 85,132,115, 83,249,132, 22, 64,151,218,246,153,189,202,249, 33,173,112,147,122,205, 76, 91,110,132,
-132,181,130, 30,118,140,165,126,203,206,185,162, 52,161,235, 43, 74,245, 63, 71, 49, 20, 25, 52, 2,141, 63, 53,181, 52,230, 60,
-118, 99, 4,239,243, 75, 8,156, 72, 81,222,131, 36,122, 29,187, 9,199,195,140,221,238, 12, 66,192,241,238, 22,196, 14,158,128,
-105,231, 49, 31, 67,227, 32,102, 77, 90,202,184, 3,235, 46, 94, 18, 35,216,167,164,230,112, 8, 8, 33,192, 57, 46,154,248,146,
- 55,237,227,241,136,201,123,204,243,140, 16, 2,206, 47, 47, 48,207, 51,162,254,108, 74,202,112,187,221, 14,215,215,215, 56, 59,
- 59,195,235,215,175,225,220, 4,206,191,227,156, 75, 20, 54, 6,246,251, 61,110,110,110,210,247, 68,146,189,186, 6, 31, 17, 80,
-156, 43, 38,198,161,184,193, 81,168,246,176,169,255,236, 10, 88, 44,237, 40,105,237,135, 60, 95, 78, 88, 31, 49,136,232, 10,140,
- 83,246,140, 38,133, 52, 8, 90,250,249,185,163,148, 85,101, 71,165,152,173, 40, 79,198,174,114,149,165, 62,112,204, 84, 89,129,
-206,197, 3, 98, 78, 94,166,105,159, 62, 91, 72,184,133, 8,107,227,156,100,162,251,106, 94, 91,241, 77,176, 55,162, 63,141,250,
-162,132,242,115,235,249,110, 27,150,100,220,215,234, 26, 74, 55,204,123,215,168,220, 89, 36,191,213,123, 23,163,151, 64, 41,219,
-200,251,180,203,212, 66,189,174,161,165,205,122,159,240, 40, 33,150,100,164, 20,109, 76, 96, 55,173,116, 17,150, 99,183,126,132,
- 66, 68,152,202,254, 40,101,189,123,196, 25,136, 25, 93, 44, 41,251,167,130,118, 79, 82,147,165, 61,163,114,153, 42,238,109, 81,
-147,166, 53, 64,228,114,246,108, 23,164,169,244,136, 74,219, 62,102, 32,153,242,123,173,193,130,228,214,112,239, 14, 21,161,155,
-174, 43, 45,143, 50,161, 18, 52, 95,167, 33, 33,213, 76,157,211,223,165,153,185, 7, 98, 44, 64,182,230,152,215,179,207,155,162,
- 99, 42, 21,122,200, 62,231, 1,213,250, 47,241, 87,235,156,172,102,254,161, 73, 58,180, 2,103,245,218, 45, 18,188,212, 80, 37,
-172,225,194,102, 11, 73,198,160, 10, 73,131, 67, 56,151, 43, 74, 74, 61,140,116,105,212,103, 59, 46, 20,159,250,255,188,119, 67,
-133, 43, 21,154, 57,219,239,202,249,218, 74, 81, 43, 67, 9, 49,205,165, 41,181,172, 10, 37, 45,115,169,217, 80,138, 90, 35, 3,
-170, 98, 31,230,107, 71,109,229, 9,239, 86, 53,253,150,210,142,173,120, 82,164,122, 95, 71,252,225,181,153,104,105, 45, 50, 25,
-235, 84, 1,145, 47,129, 55, 81,224,124,241,172, 87,242,147,234,187,171, 68,167,226,150,150, 29,171, 58,154,104, 86,213, 66, 1,
- 80, 22,211, 56,206,237,225, 94,203,157,135,191,215,230,138, 61,234,155, 6, 28, 97,226,164,162, 23,217, 33,100,232,172, 72,132,
-144,100, 13,137, 76, 71, 19, 73, 65, 84, 34,238,142, 7,144, 99, 76,251, 93,122,118,142,135, 18, 84, 37, 95, 23,203,140,226, 21,
- 43,207,190,189,237,124,230,213,199,136,105,154,112,118,230,210, 90, 12, 71, 28,143, 71,248,157, 47,247, 51,100,183, 47, 55,249,
-210,197,121,112,121,137,187,195, 1,204,140,195,225,128, 16, 35,230, 16, 16, 69,176,219,239, 75,100,112, 52, 97,183,219,229,238,
- 99,132,247, 30, 62, 28, 0,246,121, 43,180,137, 9,151, 96, 88, 13, 62,196,140, 34, 93, 65,204,199,210,185,172, 85, 58,169,110,
- 63,185,170, 33, 64, 58, 10,144,142, 26, 91,197, 79,162,200, 80,245, 79, 19, 81, 27,212,171,243, 89, 28, 42,197,233,191,201,249,
- 77,222,120, 63, 35, 39, 3, 82, 35,178, 12, 29, 49, 88,149,218, 77,153,101, 32,113,107,254, 55,101,246,134,154,111,201, 64, 27,
-225, 36,254, 97, 0,222, 43,157,128, 16, 26,240,222,218,223, 44,168,120,165,184,163, 5, 35, 98, 52,166, 0, 81,194, 31, 24,163,
- 13,217,112,191, 60,165, 61,175,163,233, 81, 92,240, 18,131,201, 76, 56,183,114,165,184,153,179, 6,120, 72,227, 38,229, 64, 11,
-196,181, 52, 51,146,177, 34, 91, 75, 97, 73,104, 97,206,116, 54,171, 85,221,183, 19, 71,199, 33, 80,160,111,223,197, 49,186, 88,
- 95, 95, 66, 92,188,174, 85,152,242,236, 54,207, 71,219,239,182,245,104,195, 12, 99, 42,159,187,225, 63, 54,128,239, 56,158,199,
- 81,157,201,172,254, 11,113, 1,178,234,219, 75,155,176, 12,230,162,168, 54,156, 45, 13, 68, 49, 44, 72, 77,194,156,144,170,185,
- 43,163,201, 16,101,144,198,197,131,203, 18,188,237,117,212,224, 92, 40, 75, 93,251,217,138,129,180, 51,247,106, 88, 34,156, 44,
-122, 99,215, 97,176,138,103,189, 15,253,162,146,161, 22,157,190, 22,212,251,249, 95, 5,227, 73,229, 65, 83, 75,167, 35,178,118,
-103,220,140, 3, 10, 95,159, 76,101,110,215,241,130, 7,203, 13, 29,235,212,195,223, 43, 79,173,222,127, 58,193,179,142, 75,170,
- 22,229, 22,140, 85, 83,236,185,190,118,140,176,219,237, 16,130,152,174, 79,186, 47, 65,193,156,131, 57,170,254,173, 35,218,116,
-245, 82,151, 46,225,180,255, 28,143, 71,163, 66,231, 50,168,149,225, 39,143,249,120,192,110,242,224,201,227,238,238, 14,206, 57,
- 60,123,245, 26,211, 52, 97, 98,135, 67,136,216,237,118,120,244,198,155,152,166, 9,119,119,119, 64, 72,193,111, 62,222, 97,154,
- 38, 56, 16,230, 57, 85,237,251,221,121, 17, 82,176, 65, 61,198, 88, 42,118,132,222, 53,172, 58, 49, 82, 6,192, 54,207, 24, 87,
-245,192,130,172,199, 64,140,218,104,238,151,181,142,165,178,157,142, 83, 99,151,172, 59,237, 68, 58,218,164,136,201, 10, 32,176,
-242,216,219,207,215, 43, 12,206,217,218, 20, 81,134,115,125,160,173,108, 85,186,183,232,208, 43,241, 68, 90, 26,179,121, 80,154,
-215,235,159,163,126,255, 91,140, 91, 98,172,120, 25,230,161, 61,170,196,170, 5, 96,245, 5,146,233, 90, 39,196,100,186,215,162,
- 54,192,100, 70, 90, 13,251, 65, 22,206,109,210, 41,163, 70,169,206,149,118, 36,167,123, 67, 92, 70,124,120,109, 3,114,202, 35,
- 12,165,136,192, 58, 35,146,144,225,144, 73,236,133, 75,121, 81,129,113, 82,128,114,249,247,196, 72,137, 50, 10,197,162, 42, 54,
- 81, 86,124,170,252,236,162, 52,102,142,118, 86, 61, 58,242,104,134,165,127,159,249,152,218, 14,180, 71,197,181,195,251,230,245,
-236,251,137, 4,163,128,166, 34, 47,174,157, 93,147,110,232, 78,241,243,205,249, 56, 55,165,243,144, 86,105,142,179, 34, 93, 64,
-200,220, 79, 89, 15,186, 27,168, 73,113, 58,151,246,128, 67,115,148,116,177, 17, 16, 50,207, 56,128, 34, 97,150,185,124,237,136,
- 32,228,243,145,202,177,228,216,218,201,232, 40,122, 46, 63, 8,147, 59, 55,180, 47, 44,230, 78,211, 52,165,207,224,120,209,190,
- 39, 34,204, 49,140,145,217,202, 25,238,208,173, 11, 33,147, 92,109, 55,149,137,240,226, 33, 95,203,162,131,142, 9, 76, 50,105,
-103,207, 54,153,235, 59, 9, 96, 42,149,214,125,188, 7,138,160, 10, 58,150, 9, 15,236, 81,141, 51, 92, 3,138, 92, 73, 52,214,
-193, 89,127, 79, 23, 65,203,195,239, 55,123,170,157, 11, 23, 35, 8,177, 27, 91,164,189,110,191,223,227,238, 56, 35,132, 35, 66,
- 8,136,243,161,160,190, 23, 60,222, 13,212,242, 16,232, 20, 66,153,139,122,239, 65, 25, 77, 77, 2,176,119,184,187,185, 69,136,
-130,221, 52,129,157,131,219, 77,101,164,229,167, 61,246, 83, 68,136,128,176,195,229,195, 71,240,222, 35,204, 7,188,186,126, 13,
-151,147, 1, 79,140,227,241,152, 2, 20,113,150,190,229,130,135,104,128,103, 11,153,232,216, 86,180,177,159,239, 14, 58, 75,131,
-235,191, 8,178,250,251,243,186,111,122, 31,132, 71, 8,253, 24,101,147, 37, 97,209,235,163,106, 94,250,153, 47,218,228, 88,131,
-122, 83,204,109, 0,220,100, 5, 72, 70,178, 6,152, 93, 42,213,245,173,106,108,116,242,104, 5,112, 54,210,196, 31, 62,127,206,
-165, 17, 71,136, 57,174, 73,145,169, 46,114,220,166, 24,161,238,231,148,181, 77,214,158, 95, 43,243, 59,138, 11, 22,239,166,251,
-148,223, 57, 70,100,128, 35, 35, 97, 51, 18, 33,159,169,182,225, 89,209,237,185,165, 87,213,231,178, 76, 32, 73,181,183,150, 88,
-124,169,235, 76, 67, 26,231, 43, 5,230,121, 40,228,191,145,143,104,120,134,178,184,145,237,127,189,112, 64,109, 77, 80,225,106,
-163, 3,210, 81,225,181,198,194, 83, 44,115,137,242, 96, 74,245, 15, 21, 83,141, 72, 52,180,189, 74,249, 42,188, 79, 89,162, 91,
- 75,183,163, 36, 0, 92, 42,175, 56, 71, 3, 36,163, 77, 15,236,209,141,103,230, 12, 22, 74, 71,202, 10, 57, 18, 19, 93,104,242,
- 83,178,119, 12, 57,171,204, 71,138, 4, 71,110, 8,176, 82,222,110,132,192, 79,174, 80, 1, 41,107,106, 51, 19, 28,165,160,189,
-207, 45,202,158,138,162, 65, 61, 38,130,235,208,231, 59, 33,196,121, 19,173,170,226, 41,227, 93,189, 82, 98, 70, 96,155,237, 10,
- 86, 31, 2,163, 13,174,243, 55,243,117,195,175, 99, 67, 21, 41,178,180, 29,200,102,128,119,216, 10,244,127,223,127,189,192, 77,
-127,129, 68,232, 94,157,158, 83,148,158, 53, 84,183, 51,148, 86, 86,115, 21,137, 5, 95,160,136,244, 24, 35,200,187,180,246, 35,
-193, 57,143,227,241, 80, 92,194,250,215,175,234,116,219,255,220, 52, 33, 30,143,152,231, 84, 29, 79,147,135,196,136,227,225,128,
-195,237, 45, 46,246,103,152, 85,141,212,121,132,152,193, 93,236, 49,147, 96,127,254, 16, 79, 95,189,128, 68,193,217,217, 30, 47,
- 95,189,198,123,239,127, 15,207, 63,123,138,175,254,216,143,227,242,242, 18, 23,231,123,196, 24,113,136,128,184,156,136,206,233,
-217, 59,106, 82, 26,187,121,112,174,208, 75, 37,171, 21,187, 9,234,196,213,165, 81, 76,208,111, 40,120,221,218, 15,253,179, 16,
-209, 86,232, 69, 66,152,218, 74,222, 2,160, 77, 7,224, 16,230, 69,135,101,244, 60,142, 68,120,116,127,219,186, 95, 86, 10, 93,
- 19,193,152, 71, 53,138, 35,114, 13,135,168,239,104,242,102,215,128,200, 85, 58,221, 96,140,120, 95,107,108, 22, 30,254,253, 72,
- 43,160,167,197,234,125,238, 61, 4,212,131, 0, 66,136,196, 69,233, 47,137, 60,165,223,247, 29,149,178,127,198, 66, 12,117,142,
-223, 84,240,149,194, 92,246,111,104, 80,159,156,150, 59, 57, 88,229,114, 95,146,153, 70,114,206,228,234, 43, 13,128, 88, 43, 82,
- 37,254, 84,217,213, 74, 19, 67,169,112, 19, 7,190, 74,206, 86, 0, 87,204,202,108, 88, 90,136,101,224, 8,147, 47, 98, 9,170,
-109,174, 64,176,132,201, 35,168,144,113,154, 75,114,222,156,245,152,103,254, 49,211,146,196, 86,250, 9, 40, 1, 80,169, 92, 89,
- 24, 49,235,148, 71, 74, 90,246, 49, 87,214,250,181, 6, 81, 34,211,114,201,128,180, 86,153,137,242,249,199, 12, 96, 19, 48,249,
- 44,210,147, 94,119, 79,251,113, 38,222, 89, 32,142,196, 15, 34,197,147,193,223,206,252, 29, 28,104,215, 45,154, 16,170, 58,154,
- 65,101,143, 92,222, 44, 80, 69,193,113, 97,158,115, 85,137, 86,238, 50,155,148, 48, 51,196, 49,224, 92,247,115, 42, 2, 45,209,
-204,199, 90,170, 24,109, 8, 71, 84,223, 98, 81, 3, 23,201, 29,162,149, 49, 78, 84,107, 78, 53,252, 64,181, 14, 38,238,204,138,
-170,178,111, 77, 88, 45, 45,141,176,210, 1,216,232,170, 72, 77, 26, 45,168,176,103, 84,173, 5,208,251,252,124,164, 97,125, 98,
-232,184, 73,187,226, 21, 55, 47, 77,202,116, 35,225,236,122, 64, 18,187,246, 56,225, 56,223, 33, 4,193,249,249,121,169,120,207,
-207,207, 49,207,199,134, 90, 55,122, 6,214, 42, 58,187,193,158,157,157, 33,204, 17,135,195, 1,175, 95,191, 6,123,135,221,217,
- 14, 15,220,101, 2,191, 17,225,120, 8, 32, 22,220,205, 17,160, 8,191,243,248,228,211,167,248,211,191,254,183,120,248,232, 49,
- 46,206,207,241,226,197,115, 60,127,250, 12,140,136,219,235, 27,236,247,123, 60,122,244, 8, 95,120,231,221,180, 63,198, 4, 38,
-142,209, 35, 32, 34,100,173,135,209,125,151,142,239, 95, 42,107, 43,176,147,139, 14,161,216,160,186,197, 96,128, 71,150,160, 13,
- 16,139,125,195,153,239, 49, 56,190,107, 79,111,185,153,141, 58, 66,107,126,242, 22, 95, 65,130, 6,216,214,220, 67,227, 47,176,
- 72,170,181, 99,119, 98, 56,190, 5,162, 99,246,229,186,217,160, 90,158,247,184, 28,175,246, 46,136,214,184,106, 68,193, 91,187,
-126, 11, 48,157, 62, 47,153, 27,173,218, 44, 70,191,167, 8,170, 9,213, 53,210,120, 62, 40,144,215, 92, 31, 75, 37, 45,192,109,
-243,252, 85, 37,212,236, 87,177,159, 28,212,190,163, 71, 64, 50,169,169, 68, 44, 74, 96,170,118,198, 18,179,196,107, 86, 62,131,
- 44,168, 77, 68,117, 54, 95, 29,222,141,116, 41, 4, 34,115,213,154,151, 8,160,227,181, 35, 86,153, 90,168,172,171, 20,155,115,
- 77,176, 18, 0, 78,154,135,107,129,130,102, 46,242,171,165, 13,158, 65,127, 36,201,215, 59, 41,199, 81, 57, 58,242,217,120, 38,
- 3,187, 50, 34,142,145,198, 5,169, 61,194,166, 5, 95,143,128,192, 57,159, 57,115, 92,208,196,204, 9, 52, 6,146, 2,180,234,
- 55, 50,155,105,174,201, 18,150,223,165, 56, 12,254, 58,211,218,178,110,228,144,146, 29,207, 12,114, 14, 62,193,213,225, 57, 25,
-149, 72, 8,165,237,174,148, 12,117, 31, 3, 51,220, 76, 6,240, 70, 99,254,164,227,226, 62,213,108,124, 76,136,210,177, 24,168,
-213, 49, 63, 5, 20,212,174, 74,114, 91,115, 75, 13,117,109,151, 75, 78, 50, 36, 87,106, 36,205, 58,218, 32, 96,140,217, 7,180,
- 4, 69,182,193, 39, 46,102,218,189, 63,245,127,140,202,221, 10,237,160,235, 20,128, 8,167,172,129,219, 74,158, 22, 64,171, 2,
- 50,140,131,246,110, 51, 95,204,212, 59,195, 3, 23,164,153,109,148,180,254,143,243,140,247,222,127, 31,175, 94, 62,197,215,190,
-246, 53,236,188, 43,213,203,226,188, 84,231,193,241,102,151,227,238,112,196,217,217, 25,252,110, 74, 24,152,221, 30, 62, 35,217,
- 15,135, 25, 55,135, 59, 60,122,244, 8,225, 40,240,158, 17,231, 35, 38,191, 3, 49,227,207,255,234,175,241,127,252,238,191,198,
- 63,248,250, 79,227,193,197, 5,126,248,254,123, 96, 1,126,238,103,127, 6,209, 17,158,190,124,133,253,126, 15,231, 28, 28, 59,
- 28,143, 71,144, 99,120,154, 50,162, 59,130,157,197,198, 0, 46,207,214,163,139, 5,140,150,102,254,156, 4,164,212,149,203, 36,
-117, 33, 99,153,216, 96, 73,214,102,192,189,242, 35, 11, 22,200,237, 69,240, 21, 73, 30, 11,202, 90, 49,140, 18,159,117, 4,180,
-226,236,247, 7,221, 63,120,181,253, 93,223,115,129, 88, 55,213,108, 17,213, 49,171,223, 21,113,173, 65,135, 40, 86, 74, 23,161,
-202,113,115, 76, 30, 51, 49, 38, 41, 91,246,169, 51, 99, 13,149, 44,160,185, 40,122, 2, 11, 32,118, 68,149, 97, 94,101, 87,172,
-248,210,247,152,142,242,122, 10, 0,238,222,223, 81, 82,106,100, 0,115,140,101, 63, 77,197,226, 18, 83, 52,194, 18,141,190, 79,
- 25, 40,105,139, 48,239,138, 6, 46, 53,173,143, 82,109,103,125,111,134, 74, 29,102, 67,151, 60,111,101,157,173, 27,133,180, 36,
- 60,147, 22,147,163, 22, 97, 73,200,218,233,165,202,140,185,109, 29,115,133,165, 84,129,148, 97, 33,204,121, 83, 14,221, 49,255,
- 60, 31, 57,255,125, 50,138,161,170,201,150,255, 94,178, 35, 92,177,217, 84,148,105,156,243,163,149,185,196, 8,121, 55,201, 14,
-116, 50, 87,110,173, 0, 66,105, 46, 45,153,186,224,121, 0,194,203, 1,177,182, 21,217,232,143, 43,128, 42, 45,210,195,124,172,
-130, 45,206, 53, 28,200, 17,175,178,205,178, 67,211,166, 27,181,161,213,101,104,216,186, 5,224,119,187,161,158,113, 52, 51, 35,
-214,123, 23,141,218, 91,225,110, 59,176,107,207, 57,168,232, 79,246,249,134,227,100,113,168,244, 36,131,240, 22, 69,112, 23,205,
-238,244,187, 62,255,190,207, 29, 2,100,187, 73, 5,253, 20,160, 80,241, 64,167,225, 92, 62,132, 74,159,113, 5, 29,202, 6, 77,
- 27, 54, 43,193, 53, 32, 90,149,233,148,225,239, 99, 13,224,180, 50, 19, 63,213,158, 31,122, 49,211, 0, 24,186,194,123, 93, 77,
- 10,186, 10,153,214,240, 13,131, 77,143, 98, 48, 34, 80, 49, 61, 67,250, 92,198,132,216, 14,243, 12, 56, 15,114,140, 87, 55,183,
-248,206,119,190,131, 79, 62,253, 8, 15, 30, 94,225,139, 95,120, 23, 94,184,170, 25, 90,128,209, 10, 38,162,255,255,103,103,103,
-136, 49,226,120, 60,130,221,132,243,243, 51,188,186,185,197, 55,191,245, 45,252,241, 31,127, 19,255,244,159,253, 22,206,175, 30,
- 34, 16, 99,154,118,160, 32,112,251, 61, 66, 8,248,235,255,240, 93,248,179,115,124,246,252, 5,158,191,124,133,219,227,140, 71,
- 87, 87,128,247,184,121,245, 10, 15, 30, 4,192, 49,118,103,123, 48, 73, 70,235, 87,156, 71,228, 88,246, 15, 50,227, 16,139,155,
-112,187, 9,136, 82,102,255, 49,198,150,129, 17, 67, 21,181,202,149,166, 51,149,164,132,216, 86,150, 22,219,145,131,174, 27, 84,
-245, 60, 16,126, 81, 83, 34, 56,174, 22,197,174,107,103,119, 64,228,222,229,108, 25,124,226,162,146, 46,194, 66,168,214,179,101,
- 4, 99,176, 42,105,158, 60, 47,102,194, 13,251,198, 4,177, 30, 40, 24, 69, 48, 71,134, 87, 81,179, 60, 22,236,217, 51,163, 10,
-125,225,209,208, 1,115,237,113,150, 8,228,153,185, 13,174, 74, 3,215, 4,111,216, 25,204, 98,103,214, 18,216, 25,107,224,112,
-140, 85,190,184,147, 51,230, 78,212,137,140,248,153, 98,122, 56,187, 20,218,231,194, 95,238,119, 89,192,159, 0,114, 93,155,196,
- 88,168, 74,171,198,196,197,189, 44, 7,125,110,131, 79, 49, 72,145,104,220,145,104,177, 40, 75, 37,221,101, 82,154,113, 17,215,
- 76, 43, 40, 37, 68,146,156, 43, 56, 5,101, 1,193, 51, 21,234, 89,204,193, 86, 3, 70,108,123, 98,165,253, 43,130, 34,188,210,
-131, 86,116, 83,230,142, 39, 78,157,242,158,132, 88, 1,115, 25,253, 44,217,121, 7,146,252,122,117, 54, 47, 9,183, 6,138,105,
-150,156, 2, 41, 10,247, 52,121,226, 18, 98,164,123, 87,111,110,242,105, 60,160, 1,185, 91,252,119,119,119,139, 86,172,254,174,
-203,218,232, 86,189, 46, 74, 44, 96,158,222,165, 72,119,175,130,234,206, 88,130, 72,104,218,138,146, 3,123, 84, 56,124,200,155,
-116,126,232,108, 59,108,238, 80,237,130,244, 16,201, 44,141, 63,186,204, 1,179,196,242,240,169,214,188,115,110, 81,157, 52, 64,
-184, 83,148,192, 13,245,175,216,153,160,140, 0, 72,100, 82, 36, 21,110, 25,207,240, 35,170, 76,207, 8, 67,208,177, 13,104, 5,
- 77,223,173, 87,101, 21,172, 6,254, 40,247,238, 6, 80,113,145,106,103,171,162,173, 97, 83,233, 89,111,245,105,231, 17,142, 1,
-175,175, 95,227,241,213, 3,188,190,185,198,110,114, 8, 49,224, 54, 6, 60,120,124,129,155, 99,196,203, 87,175,112, 55, 31, 1,
-102,124,252,217,167,248,250, 79,125, 13,215, 47, 94,182,180,204,158,201, 48, 72,142,168, 67, 47,199,152, 1,169, 62,161,217,119,
-231, 23,120,121,115,139,191,253,222,247,113,254,255,253, 1,254,219, 55,223,198,131, 7, 87, 8, 49, 34, 16,227,211,231, 47,240,
-248,225, 35,124,252,201,167,136,228,113,115, 12, 8,243, 45,194,225,128,139,139,128, 57, 6,156, 93,156,227,193,131, 7,120,241,
-226, 5, 46, 46, 46,240,217,167, 31,131, 93,162,195,145,164,231,106,183,219, 33,206, 29,144, 75,178,118, 69,142,180, 33, 36,221,
- 5,199, 84,146, 99,203, 40, 96,207, 77,187,213,182, 95,181,195,209,106,179, 75,253,189,204,131, 30, 97, 17,218, 74, 23, 75, 97,
-169,130, 7,169,232,111,167, 84, 69, 5,196,102,144,150,173,192, 35, 18, 35,135,179,110,250,124,184, 43, 85, 52, 20,159,130,206,
-218,214,128, 0, 37,239,131, 58, 98, 45, 65, 63,134,198,115,160,208, 16,245,239,250,177,164, 2,205,120,151,186,160, 90,185,230,
-160, 43, 26,148,217, 4, 89,163,227,128,252, 89, 36, 23, 42,108,132,151, 64,173,212, 49, 11,165,226, 37, 95,119, 50,109,247, 16,
- 99, 30, 51,166,103, 71, 98, 76,159,195,236, 83, 61,112, 46,230, 14,120,178, 76,166,170, 64,106,198,152,172,122, 24, 29, 58,191,
-239,164, 46, 53,168, 1,127, 62,249,242,102,245, 24,114, 48,116, 25,253,172,250,213,177,225,133,147,184,210,126,116, 89, 21,204,
- 86,163,206,204, 76,218, 89, 92, 52, 23,108,137, 78,238, 43, 85, 99,254,222,110, 44, 68,112,251,253,146, 91,109, 55, 55,230,162,
- 18, 55,154,203,146,108,111,122,203,160,222, 81,198,138, 74, 92, 93, 8,186, 17,247, 32,191,216,201,188,246, 86,154, 35, 58,213,
- 22, 37, 77, 8,184,189,125,189, 29,116, 86,124,130, 75,240, 61, 30, 79, 3,202, 6,244, 54,125,224,103,209,156,134, 26, 49, 34,
-253,155, 16, 66,225,116, 51, 51,102,243, 62,145, 0,231,119, 69,148,130, 36,249,127, 35, 2,129, 40,139, 14,142,181,150,131, 86,
- 66, 43, 46, 74,213,208,197,173, 34,169,201,136, 17,201,134,150,247,208,160, 98,113,157,196, 98,145,234,103, 12,161,161,124, 9,
-247,154,248,232, 80,238,234,123,206,221,235,201,114,166,186,130,152,254, 60,149,250,246, 88, 99, 41, 59, 90, 43,119, 21,215, 72,
- 34, 44, 87,231,103,152,174,174, 16, 5,216, 77,103,152, 99,192, 44,128,115, 19, 94,190,186,134,223,159,225,207,191,243, 23,248,
-209, 71, 31,227,235, 95,255, 41,188,124,117,141, 31,126,252, 33,222,188,184,186, 87, 80,111,186, 35,118, 77,199,136, 71, 79,158,
-224,163,143, 62,193,158, 46, 0,231, 49,237,206,240,228,205,183,240,224,241, 99,188,255,193, 7,248,131, 63,250, 35,252,210, 47,
-253, 50,188,103,156,159,159,227,203,239,190,141,191,249,203,191,194,217,213, 21,190,247,221,247,241,120,119,134,199,143,159,224,
-112,119,139,155,187, 3,158, 61,123,134,135, 23, 23, 56,191,184,192,163,203, 11,252,224,131, 31,224,173, 39,111,224,246,230,166,
- 84,219,126, 55,129,189, 3, 71,110,102,224,186,217,107, 80,117, 69, 13,179,242,172, 91, 74, 83,108, 4,189,154,215, 40,237,239,
-122,199, 57, 39,204, 84,146,110, 90,242,138, 97, 21, 17,221, 16, 93,223,156,131,186, 92, 74, 98,255, 20,170,239, 72,162, 85, 4,
-114,140, 70, 71, 36,150, 74,119,241,236,228, 81, 23, 98, 59, 11,183, 85,191,119, 14,146, 95, 67,204, 62, 77,249,243, 7,195,142,
- 41, 38, 73, 90, 93, 75,173, 82,131,142,119, 51, 0, 70, 95,111,206,106,118, 85,131, 20, 37,120, 23,137, 50,221, 6,152, 76,194,
-145, 11, 21,105,253, 2, 20, 19,173, 29, 58,171, 47,161,222, 5,222,208,243,172, 89,150, 31, 61,104, 59,222, 44, 54,214,186,118,
-122,157,252,110,106,199,141, 81,224, 39,159,102,201,218, 22, 32,201,173,142, 40, 16,138,136,179, 81,192, 33, 95, 80,155,250,111,
- 42, 18, 23, 3,126,111, 22, 55, 97,233, 79,182,114, 92,227, 44, 13, 98,221,162,228,199,254,201, 84,218,212, 73,209,139, 17, 66,
-192, 60,207,213, 6,213,182,241, 72,154,118, 84,127,142, 14,124,130, 54,211, 60,111,141,223,183, 86, 74,209,160,163, 75, 23,160,
- 67, 40, 87, 76, 1,138,167,110,145,130, 53,149, 46,117, 99,219, 32,113,139,111, 52, 68, 92,159,164, 41, 53,217,230,184, 26,180,
- 45,122,235, 64,213,219,136, 18,150,252,204, 69,226, 68,180,176, 63,181, 85,191,179,239, 43,237, 6, 39,185,210,112, 88,218, 20,
-158,170, 62,215,192, 46, 77,171,124,208, 58,236, 41, 73, 91,109,120,238,100,108,251,202, 56,102, 90,164,178, 52,226,128,190,210,
- 43, 97,141,208,224,159,119,206,126, 10,205,126, 42,192,151, 81,123,247,121, 74,146, 75, 53,169,184,189,189,197,142, 9,222, 51,
-110,174,111,112,118,118, 6, 48, 97, 55,237, 65,126,143, 91, 17,220, 29,102,252,232,163,143,241,250,246, 6,231, 15, 46,241,242,
-213,115,124,246,244, 57,222,186,122,148, 28,133,169,109, 27,235,122,145,156, 20, 42,152,210, 10, 8,129, 19,165,237,217,179,103,
-120,240,224, 1,110,239,142, 16, 98,220, 29, 15,248,230,183,191,141,155,187, 3, 46,119,123,252,237,247,190,143,139,135, 79,240,
-203,191,252, 75,120,245,242, 37,190,247,222,247,241,225,143, 62,192,180,223,227,103,127,254,231,240,226,250, 6,119,243, 17,135,
-195, 1,152,143,169,130,114,140,215,175, 95,227,114,191,195,183,191,253,109,252,211,127,242, 95,194,239, 28,188,155,112, 56, 28,
-192,206,225, 56,207,240,211,206, 26, 38,182, 90,246,134, 59, 78, 64,163, 92,166, 79, 87,200, 96,133, 53, 48, 25,123,215,101,137,
- 82, 88, 40,214,200,102,141, 18,218,156, 87,167,170,152,180,227, 93, 11, 16,173,243,181, 12,115,170,207,183, 26, 63, 73,238,194,
-197,172, 9,171, 21,248,194,169, 78,199,116,172,236,158,216,101,189,130,200, 4, 22, 95,102,235,253, 51,171,214,192, 75, 89,219,
-124,140,235,192,216,212,126,111,245, 49,122,138,170, 26, 18,105, 91,189,159, 93, 35, 68,195, 10,162,218, 86,167,251, 25,180, 40,
-174,162, 7, 58,247,232,252, 83,214,189,163,223,137,148,100,146, 11,248, 14,169, 51,234,119,126,106,102, 15, 21, 69,152, 32,247,
-146,237, 29,171,139, 86,149, 81, 69,222,108, 73, 6,217, 5, 37, 37,117, 79,188, 40, 22,172, 78, 51,243,182, 97, 72,143,228,118,
-206, 53, 65, 93,181,131,181,154,176, 63, 11,144,178, 41,108,169,133, 57, 89, 15,136, 91,155, 97, 48,214,171,214, 35,219, 46, 10,
-129,161,131,152,254,180,222,236,185,203, 68,251,107,113, 82, 60, 70,219,119, 43, 51,199,205, 74, 95,146,203,211,125,144,213,107,
- 32,184, 45,100,236, 41,244, 54, 75,109, 55,110,137,168,108,117, 34,122, 25,216,254, 51, 43,207,118, 20,212,211, 15,194, 2, 85,
-219, 95,255, 53,135, 45,235,230,102,187, 49,205,108,157,187, 14,201, 61, 3, 54, 13,204, 83, 22,235,182,114, 70, 55, 54,130,207,
- 31,220, 71,157,170,241,189, 33,236,118, 59,188,253,214, 59, 56, 30,238,176,219,121,204,135, 0,246, 19, 56,164,241,201, 44, 17,
- 32,143, 63,250,230, 31,225,147, 79, 63, 67, 20,194,247,127,248, 35,156,157,239,240,254, 15,127,128,159,249,234, 87, 27, 60,159,
-117,168,211, 4, 94,199,111,150,241,160,255, 46, 47, 47,241,226,197, 11, 92, 94, 61, 0,239,142, 16,158,240,205, 63,253, 51,252,
-217,159,127, 7, 96, 7,119, 56,130,167, 29,254,228, 79,191,133, 32, 17, 31,125,244, 17,222,251,222,119,211,140, 27,132,139, 39,
- 87, 56,204,175, 82,155, 83, 18, 6,192,123,143, 71,143, 30,225,209,227, 43, 28,227, 17,119,199, 91, 68, 74, 42,114,142, 29,166,
-105, 74,124,246,108,119, 26,141,198, 80,245, 28,200, 1, 61, 39,165,233, 89, 67, 43, 84, 2,151,125, 33,100,181, 59,230,251,206,
- 91,172, 60,231,222,239,187, 36,131,246, 53, 76,114, 97, 69, 93,244, 63,238,173, 73, 21, 88, 71,132,185,232,210,155, 53,217,187,
- 79,246, 29, 44, 43,131,186,144, 54,149,102,140,139,114, 95,219,207,109,219,253, 42, 83, 62, 2,175,165,165,224, 86,247,164,126,
-253,142,169,108, 53,158,185,110, 22,207,132, 36, 11,220, 97, 30,136,150,201,238, 70, 84, 95, 62,191, 22,131,161, 22,178,160, 33,
-203, 97, 52,174, 99,107,222, 69,166,125,159,207,205,159,239,246, 45, 80, 0,177,160,244,236, 44,155, 81,129, 4,218,166, 79,123,
-226,152,114,226,104,205, 56,160, 69, 5,147,247,155,173, 7, 27,216, 84, 25, 25, 18, 75, 69, 20, 99, 44, 32, 20,109,111, 38, 91,
- 79, 20, 10,157, 86,145, 52,208, 48,183,182,147,160, 1, 63,119, 4,142,178, 23,223,160,115, 75, 59, 84,105, 90,182, 2, 55,243,
-202,154,105, 86, 94,234,154,176,200,169, 69, 51, 31,227,231, 3, 90, 25, 95,246,212, 70,138,247,222,212,151,116, 22,221, 84,226,
-122, 80,161,113,107, 60,163,240,154,164, 98,148,212,132, 16, 26, 6, 64, 31,160, 44,146, 87,228,243, 9,153, 16, 17, 16,230, 4,
- 56,108,112, 3, 6,244, 40,178,224,144, 54, 21,245, 90,198,174, 38, 46,253,239, 67,186,100,224,239,207, 89,167, 49, 48,191,157,
-245, 46,146,153,202, 64, 48,100,166,197,166, 43,180, 84, 73,180, 88,236,167, 79,159,226, 11, 95,248, 2,238,110,111, 16, 1,156,
- 95, 94, 0,204, 16, 39,152,193, 69,219,250,111,254,253,223,226,147,103, 79,241,240,225, 67, 60,127,249, 10, 23, 15,222, 69, 4,
- 3,236, 43, 40,182, 11,220, 90,161, 59, 75,199, 25, 92,235, 39, 79,158,224,217,179,103,152,206, 47,192,222,225, 15,255,237, 55,
- 48,237,207,192,110,194, 59, 95,250, 18,120,218,225,124,127,134,175,255,244, 79,227,167,127,230,103,240, 59, 47,158,225,247,126,
-239,247,240, 15,255,209, 47,225,230,238, 22,215,215,215,216,121,135,157,159,176,119,140, 7, 15, 30, 96,191,159,112, 60, 30,241,
-214, 27, 79,240,228,231,126, 14,211, 52,225, 54,206,152,101, 6,121,130,223,123,156,239, 24,225,152,245,216,251,246,187,174, 79,
- 90,247,193, 22,145,108,200,179,110,225,138,133, 56,140, 20,221, 15,136, 20,157,141,213,238, 76,136,171,149, 94,250,255, 97, 60,
- 82,138,100,218,143,239, 0, 0, 32, 0, 73, 68, 65, 84,233,181, 25,180, 80,194,108, 68,170,216,183, 63, 95, 1,182, 89,160,180,
-237, 84, 20,113,149,129, 56, 77,235, 79,190,241, 12,111,236,149, 35,151,186, 30, 19, 99, 63, 79, 65,169,187, 20,247,166,156, 84,
- 42, 54,203,162,233,117,172,182,134,156,215,121,188,197,205,244, 5,202, 28, 55, 18,122, 96, 85,126,214,142, 65,185, 75, 58,124,
-154,105,216,179,140,139,222,255,164, 97,160,155,109,167,160,188, 18, 12, 16,135, 65,129,122,121, 2,114,171,243, 75,189, 41, 86,
- 92,192,222,240, 17,144, 67, 85, 7, 27,167,168,190,122, 53,136,113, 79,188,208,183, 94,107, 69, 15,237,249, 92,167,121,222,201,
-200,170,118,121,113,155, 50, 21,230, 86,192,166,123,182,119,232,239,208,122,183, 73, 8, 65, 26, 65,139,254,250,135, 16,214,207,
-135, 98, 19,160,134, 92,216,141,170, 27, 50, 23,160,157, 3, 33, 12,142, 8, 41,201,116, 32,204, 92,117,197, 53, 9, 13,131,153,
-250,168,243, 49,174,142, 53,139,230, 85, 23,167,209, 38,178, 54, 22, 42,252,246,236,155, 48,202,180,123,245,184, 45, 47,244,255,
- 24,255,182,146,178,118,188, 36,195, 36,160,116, 85, 64,131,123,236,112,113,113, 1, 34,135,105, 74, 82,176, 46, 47,124,199, 14,
- 60, 77, 56,178,199,222, 77,120,242,230,219,120,239,195, 15, 17, 4,240,211, 14, 15,174, 30,225,231,191,254,147, 73, 67, 61,198,
- 69,242, 87, 2,120, 23,208, 27,124, 10,128,112,119,196,180,223, 97,127,126,137,219,187, 35, 38, 23,224,166,125,166,176, 18, 62,
-253,236, 41,222,125,247, 93, 72, 20,252,240,195,143,224, 61,227, 87,126,245,215,241,165,175,124, 25,255,238, 79,190,133,203,203,
-199,216,237,118,185,162, 77,250,241,231,231,231, 96,102,220,221,221,224,197, 75,194,207,126,253,235, 96,151, 20,235, 98,144, 52,
-242,147, 76, 79,243,110, 56,218, 42, 45,247,158, 55,221,185,228, 17, 42,191,186,111,173,112,174,248,155,170,155,165,209,251,135,
-233,156,142,100,180,155, 96,138, 86, 10,196, 6,245, 54,128, 98, 1,148,181,130, 58,109,226,229, 22,235,135, 7,123, 37, 25,240,
-222, 34, 88,211, 18,179,193,185, 99, 44, 33, 46, 58, 5, 21, 13, 78, 39, 59,132, 35, 67, 39,149,243,213,248,210,227,184,184,211,
-154,215,132, 66,103,230,246,142, 75, 56,110,202,234,114,103, 72,101,159,159, 72,105,188, 50,242,204, 88,240,233, 71, 10,151, 64,
-219, 73,209,248,236,137, 27, 72, 60,209, 90,230, 87,149,142,236, 73,122,118,139,118,138, 46,150,102,147,149, 26, 8,218, 68,148,
- 54,103, 9,222,251, 82,137,219, 25,132, 6,250, 68, 49, 97, 80,116,109,192,236,230, 24,112, 60, 4,224, 89,113,134, 30, 33,190,
- 5, 56, 43,237,119, 63,109,242, 12, 41,182, 18,146,189,234, 90,128,108, 87,218, 39, 54,250,157, 27,235,178,219, 74,119,173, 93,
-158, 2,202,178, 6,179,215,237, 84, 80,247,198,180,161,169,142,121,124, 29,209,123,132, 99, 90, 93,180, 66, 0,251, 21, 15, 0,
- 94, 55, 68, 24,205,175,198, 35,130,164,126, 8,138,247, 74,134, 70, 35,162,216,125,159,157,116,221,136, 78,113,142,123,208,151,
-126, 61,214,126,175,158,234,188,116, 69, 4,138, 31,252,218,248, 69, 55,221,209,250,138,212, 2,209,244, 57, 93,187,166, 34, 2,
- 10,209,108,130, 14,143,223,124,132,143, 63,248, 16, 95,252,194, 59, 56, 30, 15,184,190,126, 5,199,132, 99, 8,112,178, 75,157,
- 36,109, 93, 59, 7, 33,194, 33,204, 8, 16,188,251,238, 23,193,199, 99,107, 44,211, 85,234,212, 37, 63, 86, 19, 30, 0,206, 47,
-119, 56,134, 25,111,190,249, 38,158,189,124, 5,127,118,142,255,244, 31,253, 67,252,205,127,248,110,105, 79, 95,223,221,226,199,
-126,236,199,240,159,253,242, 47, 3, 20, 17,142, 51,190,242,213,175,224,197,245, 13,190,249,103,127, 13, 17,193,197,249, 57,226,
-225, 6,135,227, 45, 14,135, 59,248,203, 51, 60,122,248, 8, 63,120,255,251,248,241, 47,127, 25,111,190,241, 6,156,163, 68,205,
- 36, 66, 8, 17,199, 24,176,235, 40,163, 86,140, 68, 91,165,209, 0,191,138,110,102,102,245, 36, 9,238,218, 33, 33,216,231,217,
- 80, 14, 69, 64,188,124,198, 67,166,236, 90, 61,134,209, 56, 96,205, 59, 67,181,211, 27, 30,246,128,251,206,142, 65, 78,134, 60,
-244,152,241, 46, 22, 28, 38,131,241, 84,137,134, 6, 92,106, 6, 73,245,186,137,100,241, 70, 65,111,125, 97, 69,178,146, 12,237,
- 97,184,238,171,194, 93,197, 2,149, 65, 7, 27,128,108,238,133, 11,217, 46,102,253, 47, 26,140, 64,223,205, 5,176,148,185,166,
-118,223,142, 69,148,171, 85,205, 11,133,134, 87,121, 49, 49,103, 91, 49, 38, 39,207, 24,165,160,220,139,171, 98,254, 61, 13,224,
- 60,208,187,240, 52,249, 2, 84, 74, 80,123, 41,109,136,150,172, 47,157, 25, 5, 22, 0,143,102, 83,232, 50,184,186,200, 66, 83,
- 49,123,246, 11, 5, 51, 75,225,160,220,226,166, 24,139,146,153, 14, 16,230,174, 74,107,130,186,119, 37, 75, 82, 64,221,136,203,
- 28, 66,104, 22,241,162, 61,162,218,197,195, 25,178,128,216, 45,230, 78,214, 5,171,241,235,213, 12, 84,219, 83,142,225,100, 35,
-211, 30,100,106,253, 67,105,219, 63,163,141,125,154,166,198,188,164,247,211, 14, 66, 77,230,217,243,213,245,239, 71,129, 93,114,
-150,109,253,161,171,127,122, 18,233, 81,197, 63, 61,146, 17,239, 17, 2,166,105,191,137,184,247,102, 60, 51,250,121,192, 54, 85,
-141,236, 38, 50, 8, 86,109, 74, 83, 53,255, 71, 30, 0, 67,116,189,193, 83,164,107,183,116,221,179,207,141,144,172,119,128, 40,
- 49, 0,212, 63, 91, 65,152, 77,114, 74, 70,177, 16, 21,168,217,240,103,185,181,108, 93, 75, 24,185, 12, 98,154,133,157,193,143,
-220, 36,101,229, 25, 81,160,171,115, 32,118,248,131,127,247, 77,124,235, 91,223,194,127,247,207,255, 27, 60,188,186, 64,132,224,
-242,108,135,227,205, 45,224,128,253,254, 12, 47,110,239,240,254, 15, 62,132,208,132, 55,222,120, 43, 91, 87, 10, 94,191,126,141,
-179,253, 62,173,243, 82, 48,112,117, 21,203, 27,135, 5,147,114,151,252, 68, 8,200, 77,248,224,163, 15,241,232,241, 27,224,105,
-194,163,135, 15,112,121,113,129,103,207,159, 39,241, 24, 17,124,245, 43, 95,129,115, 14, 23,231, 23,248,198, 55,190,129,223,254,
-237,223,198,131,171,199,112, 60, 33, 28,142,184,187,185, 5,201,140, 71,151, 15,112,190, 59,195,179,103,207,240,241, 7, 63,194,
-131,139, 51, 28, 14, 7,156,157,237,112,123,184, 41, 78,123,206, 77, 56,195, 84,196,123, 22,157,185, 92,105, 70,253,126,150, 38,
- 44,128,166, 28,190, 5, 14, 68, 49, 7, 31,106,138, 0, 88,167,104, 69,112,119,201, 98, 97,218, 80, 5,221,178, 5,118,198, 38,
-219, 40,137,112, 9,171, 49,211, 30,163,121, 89, 82,175,138,136,195,221, 49,201,131, 91, 61, 3,168, 47,120,162,228, 66, 90,240,
- 22,229,118, 68, 82,206,108,199,147, 44,104, 20,240,216, 81, 29,231,118, 70, 46,108,139,149,104,130,180, 38, 63,130,164, 74,120,
- 15,240,103, 59,162, 75, 98, 98, 17, 2, 14,212,240,219,123, 25, 87, 75,193,237,101, 96,129, 76, 89,222, 24, 31,246,221,223,126,
- 20, 32,122,159,179, 66,122, 48,138,130,105,127,150,162, 62, 7,166,244,182, 76, 37, 11, 94,224, 77, 0,120, 62,247, 70,139,152,
-146, 29, 36,103,126,156, 9, 90,165,242, 36,105,130, 87,156, 67,226,241, 45, 78,154, 91,208, 70, 65,174, 78,109,226,198,185,101,
-105,169, 4,121, 30, 46,197, 95, 58, 35,232, 59,148, 35, 83, 11,132, 90, 96, 20, 42,196,186, 8,164,216,106, 61, 2, 64,216,110,
- 89,251,221,110,172,146,148,207,159, 58, 78, 99,191,152, 28,249,197,172,138, 77, 80,117,236, 54,236,106, 0,199,220, 96, 28,200,
-240, 88,117, 51,105,109,183,105,181,253, 26,115, 6, 28,145,232,175,130,202,156, 30, 86,242,221,204,122,216,162, 39,107,127,219,
- 26,234, 72,230,192,230, 19,201,239,198,136,168, 52, 19,233,180,167,177, 72, 28, 42, 86, 2,189, 25, 74,151, 36,142,230, 18,150,
-187, 63,124,244,173,230,115, 54,220, 17, 80, 49,224, 97,242, 9,181,139, 53, 83,152, 88,192, 76,106,254, 83,130, 42,183, 9,106,
- 1,206, 89,176,155, 5, 9,113,149, 39, 78,239, 95,253,166,235, 60, 57,203, 54,147,162,208, 93,118,138, 50,222,209,100,241, 4,
- 97,216, 25,176,229,147,121, 26, 74,240,177, 84,211,227,241, 8, 71, 30,218,132,244,126, 74, 93, 50,158,240,251,223,252, 22,254,
-213,239,254,159,248,207,127,235,159,224,205, 47,190,133,155,187, 23,184, 57,190,198,213,195, 7,120,250,234, 22,119,119, 1,143,
-222,249, 34, 94,223, 29,113, 56, 70,236,119, 23,112, 8, 56,190,190,193,219,143, 30, 65,238,110,112,156,143,216,157,157,167, 68,
-198, 77,184,189, 61, 96,154,246, 56,134, 3,156, 75, 13,234, 57, 28, 19, 37,237,236, 12,199,227, 17,199,219, 59,156,101,219, 84,
-114,140, 71,143, 31,227,110, 62,130,163,224,241,229, 21,110,158, 63,197,131,253, 14,116,188,129,151, 11,188,253,248, 18, 59,138,
-120,254,217, 83, 60,253,228, 41,222,122,242, 54, 62,249,236, 5,142, 71,193,124, 4,206, 46,207, 16, 14,130,151,207, 95,227,217,
-103,207,241,229,119,223,196, 7,207,159,225,108,231,241,165, 47,126, 17, 79,159,189,192,126,127,134, 72,132,187,195, 1,126,151,
- 80,240,182, 19, 89,146,243, 18, 28, 9,106,130, 89,216,172, 34,168,245,120, 52,152, 22, 26, 2,166, 26,229, 54, 43, 52,213,140,
-143,150,230, 38, 22,244,185, 53,243, 13,121,168,107, 43,108,148,253,220, 97,218,113,125, 6,197, 96,143, 50, 16,208, 13, 48, 81,
- 86,177, 83, 98, 42, 44, 82,113,164,148,178, 52,202,152,231, 25,224,196, 32,225, 60, 70,157,188, 79,231,159,109,123,189, 79,216,
-134, 6, 17,159,185,249,119,183, 55,152,206,246,227,189,183,195, 10,180,157,187, 36, 32, 22,144, 58,181,189,216, 12,144, 0,132,
- 42,158,213, 99,201,250, 14,236,125,198,157, 67,176, 47, 19,230, 12, 40,181,238,147, 54, 73, 87,158,251,154,123,165,141,199,229,
-250,236, 46,206, 23, 45,225, 92,228,195,155,121, 76,205,236, 99, 51, 47,117, 5,137, 71,139,140,166,215,226, 29, 85,138, 98,181,
-190,177, 4,252, 20, 74, 81,169,238, 91,197, 51,233,102,183, 35, 99, 8,173,214,122,117,172,212,222,245,247,158, 67,175,185,254,
- 16,182,121,222,246,188, 68,253, 95,184,229,101,246, 71, 85,108,139,205,195, 38,245,251,165,189,135,182, 82,104, 64, 78,157,248,
- 78,126,189,152, 5, 32, 10, 63,213,100,241,170,128, 84,172,105,141, 97,128,253,126,153, 13,214, 50, 32, 85, 31,148, 56,230, 44,
-146, 92, 4,152, 10, 21, 82,192,224, 44,181, 75, 22,189,201,212, 84,152,139,246,117,175,203,222,183, 59, 55,218,247,167, 58, 29,
- 34, 78,183,212,180,217, 10,202, 17, 57,120, 10,185,162,120,104, 59, 40,169,221,238, 12, 8, 14,137,154, 99,116, 10,212, 70,180,
- 38,127, 93, 71,133,251, 15,131, 44,253,168,191,207,205, 72,163,140,121, 64,249, 89, 72,230, 64, 86,163,191, 97, 97,104,170,165,
-109,224,238,122,185,166, 61, 95, 87, 33,153,100,135, 69,112,113,118, 9, 34,135,155,155, 91,220,222,221,225,225,213, 99, 60,189,
-190,197,179,235, 91, 76, 87,143, 48, 61,120,136,155,227, 17,151, 87, 15, 16,195,140,231, 47, 95,224,241,147,183, 65,231,143,241,
-131,143, 62,195,180,223,225, 50, 94,226,213,171, 87,120,243,241, 37,126,226,171, 63, 14, 71,128, 59,223, 99,246,140, 7, 87,143,
-240,244,249, 75,156,185, 61,174,158, 60,192, 49,204,240,254, 12,113,190,197,110,231,113,123,119, 3,239, 25,199,112, 0, 81, 82,
-146, 3, 4, 15, 30, 94,225,250,238,128,187,195, 17,111,189,245, 14, 94, 60,125,129,203,243, 51,124,237, 39,255, 1,254,252, 47,
-255, 28, 95,250,210,151,240,197,119,223,192,155,111, 60, 66, 12, 7, 60,188,186,196,219,111,191,137, 55,223,124, 19,160, 51,220,
- 6,194,103,159,125,134,221,206,227,236,242, 12, 60, 39,111,117,213,167,191,184, 56,199,249,229, 25,230, 99, 44,108, 23, 55,121,
-144, 39, 56,184,226,182,168, 87,218,186, 69, 38, 32,237, 10, 0, 46, 7,189, 20,171,109, 16,164, 38, 40,182, 94, 18,113,209,249,
-146,121,110,192,120, 61,238,136, 78, 88,235,210,142,235,185,102,193, 49, 30, 86,184,177,233,104, 90,160,106, 31,208,163,168,114,
-100,150,121,102, 73,188,126,118,144,152, 24, 17, 76, 30,158, 8,187,189,199, 60, 31, 1, 16,188,138,198, 28, 15, 32,118, 56,207,
-202,127,158, 90,208,116, 41,204,152,178, 68,106, 92,232,217,167, 89,120, 28, 98,105, 4, 33, 73,252,138,192,185,105, 89,136,117,
-215,178, 40, 81,218,175,221,253, 98, 6,173, 96,113,106, 39,213, 15,217, 89, 77,229, 13,172, 39,103,188,140, 51,126,119,126,182,
-104, 61,235, 77,236, 17,136, 45,200, 42,228,214,123,237,219, 84, 65, 45,170,156,235, 78, 33, 73,169,144,236,234, 60,114,203, 72,
-138, 28,111, 2,199, 74,123, 71,214,125,135,203, 44,146,219,247,178, 42, 73,155,128, 53,205,240, 6, 51,238, 53,128, 19,245, 73,
-128,161, 52,149, 86,188,169,244, 87,223,223,204,164, 27,167, 30, 84, 77,229,194, 68, 25, 32,221, 5, 52,164, 20, 86, 55, 89,169,
-193, 36,207,154,244, 8,211,246,177,194, 14,214,148,128, 59, 59, 81, 49, 29, 3, 66, 43,243,105,131,146,102,162, 37,185,194, 10,
-151,125, 48,151,110,239, 77,181,134,181,150,177,189, 85,236,168, 19,146,119,221,210,135,180,107, 86,211, 20,199, 92,130,117,207,
-119, 69,151,228,146,177,100, 5, 98,185, 6,100,229, 40,187,217,177,157, 25, 54,159, 67, 53,161, 45,165,140,179,171, 93, 78,236,
- 28, 17,144, 59, 61, 86,211, 90,172,201,136,112,113,217,227,206,191, 62, 72, 66, 47, 55,205,236, 60, 82,209, 74, 93,187, 75,135,
-172,156, 24, 68,224,119,103,224,105,135, 15, 63,122, 31,127,240,111,254, 16,103, 87,151,248,157,223,249,223,241,223,255,243,255,
- 26,111, 61, 58,199,153,159,112, 56, 70,240, 52,225,230,246, 26, 49,206,184,189,125,141,203,203, 11,156, 95,236,112,249,224, 12,
- 49, 30, 18, 94, 66, 24, 51,128,143,159, 62,195, 31,126,227,143, 48, 31, 5,103,151, 23, 56, 28, 14,184,122,116,133,183,223,122,
-140,159,252,169, 31, 79,190, 4,222,225,250,246, 53,206,206,206, 48,185, 29, 14,243, 17,175,175, 95,225,236,226, 2, 68,132, 79,
- 63,253, 24,255,226, 95,252,207,184,185,185,193,151,190,244, 37,252,234,175,254, 99,252,224,135,239, 97,183,243,120,112,117, 1,
-231, 8,251,253,132,187,195, 13,158, 63,127,134,231,175, 94,194,237, 46,113, 56, 94, 99,154,206, 17, 29, 97, 55, 17, 64, 1,135,
-249, 14,206, 39,217,104,239, 83, 16, 57,134,244,255,217,187,132,140,158,124,178,112, 94, 1,124,108, 87,201,121, 37, 70,169, 0,
-145,114,148,220,142, 85,131,170,250,115,253,126,166,174, 24, 95,251, 49,133,108,107, 52,213,240,112,236,223, 88,123,216, 50,222,
-115, 11,160, 91, 31,212,171, 10,105,173, 40, 53,105,100,211,209, 35,137,112,228,225,220, 57,110,111,175,177, 63, 59,207,110,107,
- 51, 68, 8, 23, 15, 30, 96,158, 35,238,238,110,192,222,131,125,178,134,182,160, 61,162, 68,167,148, 48,176,110, 70, 40,146,180,
-205,248, 51,239,244, 49,198,130, 15, 24, 49,106,182,218,247,127,103,134,202, 10,101, 59, 54, 18,226,235, 32,220, 17,147, 39,197,
-236,229, 61,241,126, 55, 45,218, 4,162, 74, 71,157,196,102, 3, 40,179,244,141,174,114,238, 17,150,220,209, 18, 74,160,183, 21,
-243, 64,115,215,182, 33,170,204, 95, 39,108,159,181,111,121, 77,187, 55, 74,231,103,219,254, 60, 88,235,186,193,209,169,118, 47,
-198, 63,103, 90,250,109, 71,163, 69,156, 13,228, 22, 63,103,169,193,156, 86,180,157,155, 32,178, 6,116,137,237,140,116, 68, 39,
-163, 1, 64,106,149, 2,101, 23, 95,159, 8,116,223,215,160,221,191,126, 1,201,157, 16,160, 97, 19,180,183, 50,213,184, 33,131,
- 74, 57,216,162,219, 46,203,188, 59,155, 45, 52,235,176,153,209,112, 11, 4,237,208,173,245,115, 87,106, 34, 55,115,233,216,240,
-211,235,185,199, 74,203,178,194, 42,212, 3,238, 12, 56,179,251, 20,206, 92, 27, 11,100,109, 41,117, 21,211,225,250, 42,125, 69,
- 12, 72, 43, 49,143, 92,165,137,206,180,117,118, 89,211,220,253,110, 7,246, 30,243, 93,106,159,238,207, 47,240,248,241, 99,124,
-248,193,199,248,224,163, 15,113,119,119,196,237,252, 2,127,240,111,190,129, 95,248,233,175,227,215,126,233, 63,193,197,229, 30,
-251, 0,220,220,220, 96,122,240, 24,111,188,241, 24, 47, 94, 62,195,180, 35, 56,191,199,147, 39,143,112,245,248, 2, 23, 87, 23,
-120,245,242, 53,252,238, 2,239,127,248, 62,190,253, 23,127,133,207,158, 61, 47, 90, 19, 23, 87,231,120,252,240, 1,222,122,231,
- 77, 60,124,116,137, 72, 2, 55,237,176,219,157,165, 86,125,136, 56,187,216,101, 20, 51,225,252,209, 3, 16, 9, 14,135, 91, 28,
- 14,183,184,190,121,133,199,111, 60,194, 28, 14,216,237, 60, 46,175, 46,112,123,119,192,123,239,125, 15,159, 60,253, 4,175,175,
-239,112, 59, 63,199,225,112,192,228, 5,199,219, 35,230,201, 97,126,251, 10,199,153,193, 36,120,241,234, 21,110,143, 7,236,118,
- 59,120,231, 48,237,119, 73, 2,249,110,110, 17,211, 43, 73,165, 27, 36,147,201,200,131,140,205,179,186, 72,198,108, 28,181, 60,
-170,150,126,242,149,200, 62, 22,112, 77, 80, 31, 21, 19,107,232,240, 94, 70,152, 85,198, 52, 35,236,171, 42, 92, 44, 93, 66,131,
-130, 94,116, 40, 43,234, 31,198,173, 19,216, 77,123,204,243, 12,102, 87,232,199,146, 69,133,224, 29,206, 30, 92,129,153,147,160,
-143,223, 35,134,128,200, 19, 64, 51,166,253, 89,190,182,210,128,240,138,170,159,247,136,174, 51, 76, 18,129,136,131,139,146,252,
- 62, 26,202,174,203,152,135,144, 69, 68, 66,201,178,109,188,104,226, 75,119, 92, 0,161,239, 41,136,181, 70,189,147, 40,155, 26,
- 42,189,145,204, 18,241,191,236, 6,251,253,217,217, 2, 57,109,161,255, 65, 13, 79, 6,134, 33,202,195, 36,108,109,186,180, 10,
- 88,176,220, 71, 91, 33, 81, 7,112,162,174,201,219,204, 6,181, 53, 75,210, 36, 25,101,209,177,217,178, 77, 85,172,243,122,118,
-110,187, 77,155,103,247,148,103, 45,125,240, 85, 33,255, 2, 32, 49,231,214, 32, 43,237, 57,231,178, 90,173, 73, 99, 31,244,109,
- 27,121,163,157,108, 41, 13,195, 32,184,200, 96, 91,228,240, 54,213,137, 54,143, 48, 0, 49, 30,216,161, 14, 95,171,103, 36, 24,
-160, 87,111,136,211,172, 69, 26, 63, 28,145,128, 53,199,237,242,123, 39,120,248, 20, 24, 35, 46,215, 18,124, 56, 22,161, 81,207,
-131,102,110,103,102,234, 34,161, 6,235,133,114,159,100,181, 45, 42,179,253, 72, 43,247,196,180,225,155,247,235,120,254,250, 41,
-252,168,187,193, 61, 58,152, 65,240, 85, 20,132, 91, 93,114, 0,120,125,115,139,105,154,176,191,216,225,236,236, 12,175, 94, 94,
-227,233,243,231,248,253,255,247,247,241,157,127,255,125,252,198,111,252, 6,254,239,223,255,127,240, 43,191,246,235,120,245,234,
- 26, 87, 79,158,192, 81,196, 3, 63,225, 40,192,109, 72, 42,111,143, 30, 93,226,229,203,231,216,239, 28,142,225,128, 47,126,229,
- 75,248,228,217, 83,236,166, 75,184,253, 57,158,189,186,134, 56,143,243,203, 43, 28, 14, 7,236,207,207,241,252,197,115,188,247,
-222,123,248,173,255,234,183,240,133, 47,190,131,195,237, 45,166,189,131,159,118, 56,228,185,118,116, 73, 74,149,189,195,237,221,
- 29,130, 68, 60,123,241, 60,205,217, 31, 93,225,201,147, 39,184,190,126,141,121, 62,128, 88,240,131, 31,190,135,239,127,255,123,
-217, 97, 49,224,230,245,117, 6,225,157,225,112,119,131, 29,239, 48,207, 7, 28,143,192,147,199,143,240,226,197, 51,220,222,221,
- 97,127,190, 51, 76,143,164,182,233,119, 83, 39,238, 36,173, 46, 65,159, 52, 91, 60, 76,126,136,181,167, 73,145,178,229,115,123,
- 44, 69, 1,117, 0, 89, 49,227, 72,225, 5, 83,169, 52, 4, 99,220, 52,252, 97,111,169,140, 75,113, 24, 4,149,129, 29, 87,179,
- 37,232, 64,139,189,196,232,225,108,108,115,123, 60, 34,198,136,139,221, 57, 36, 4, 76,222,193,239, 38,220,221, 28, 0,114, 8,
-112,184,189, 59,226,250,250, 26,222,123,124,242,209,199, 8, 33, 96,191,219,225, 11, 95,120, 7,211, 52, 97,231,211, 56, 36,206,
- 1,206, 39, 27,112,153,231,236,124, 57, 10,234, 74, 71,115, 64, 8,109,204, 33, 49, 29,208, 78,164,169, 6,158,250,181, 90,138,
-107,178,210, 29, 79, 83, 70, 79,236,169, 35,113, 26,123,143, 6,236, 37, 26, 20,225, 13,184,152,118,190,136,212,163,155,101,179,
- 8, 36,208,106, 80, 79, 14, 37,167, 51,147, 62,187,179,115,122,235, 90,196,221,239, 48,176, 58,107, 95, 4,123, 25, 7,245,190,
- 18,181, 74, 61, 4, 35,222,191, 22,212,137,107,229, 77, 29, 26, 61,139,248,219,205,212, 30,109, 64, 26,253, 28,160, 34,214,111,
-175, 85,131, 49,232, 42, 99,173,180,250,110, 72,211,210, 93,169,110,217,162,172,239,233, 4,182,208, 25,176, 26, 2, 86, 11, 96,
- 81, 81, 82,147,201, 54, 1,155,219,160,238, 59, 36,239, 72, 57,110, 4,162, 99,157,143, 1, 11, 31,248,194,166,232,252,137,155,
-235, 38, 12, 76,212,221,153, 21, 42, 27,197, 21, 17, 8, 25,182,213, 42,176,205, 45,174, 67,179,241, 51,154,129,192,154,162,158,
-172,116, 49,136,151,226, 61,194,180,249, 44, 22,236,133, 48, 28,117,157, 58, 81, 93,128,244,111,218,239,112, 60, 30,113,123,123,
- 0, 28,227,118,190,197,195,135, 15,241, 43,191,241,107,248,199,255,197, 63,193,255,240, 63,254, 79,120,249,234, 57,222,121,231,
- 29,252,216, 79,252, 56,110,239,142,184,185,126,137,135, 15, 31,224,238,120, 4,237, 46,240,238, 27,239,224, 55,127,243, 55,241,
-191,252,111,255, 43,118,103, 19,174,175,175,113,121,241, 0,111,188,241, 22, 66,100,188,122,125,139,143, 62,121,134,187, 89,192,
-211, 46, 9,166, 56,143,231,207, 95,226,230,246, 6, 31,126,244, 17,190,254,245,159, 74,215,192, 17, 14, 33,226, 24, 5,222, 59,
- 4,137, 56,132, 25,123,231,225,189,199,207,255,252,207,195,123,143,155,155, 27, 92, 92, 92, 36, 80,149,243,120,117,253, 26,111,
-197,136,167, 79,159,226,197,139, 23,240,126,135,155,155,207, 48,135, 3,142,243,140,227,237, 14, 33, 28,193,110,143, 99, 72,200,
-238,183,222,121, 27,110, 98,128, 29,136,211,236,243, 16, 98, 74, 78,253, 4,158,118,136,119,135,218,109, 90,217,103,234, 51,146,
-129,164,134, 72,168,224,184,148,231,167,128, 40, 66,217,248,132,114,128, 73, 63,143,249,251,122, 84,160,106,232, 43,200, 6,216,
-204,171,238, 99,100,212, 8,139, 7, 65,171,242,138,160, 78,128,108, 48, 27,230,220, 89,184, 0,110,163, 81, 92,211,142,215,249,
-197, 30,199, 48, 99,242, 59, 60,253,248, 83, 60,127,254, 28, 55, 55,119,248,238,119,191,139,151, 47, 95,227,242,234, 33,126,242,
-107, 63, 5,239, 61,158, 62,125,138,191,254,203,191,194,197,229, 57, 46,207,206,241,163, 15, 62,192, 47,254,226, 47,226,252,252,
- 10, 96,198, 33,222, 38,189,125, 84, 75,231,194,218,202, 61, 17,171, 42, 73, 0,226, 60,151, 74,191,206,218, 19,253,217,137, 75,
-160,185,149, 25,250,169,202,219, 98,102,122, 74,115, 97,163, 12,228,103,237,239,121,246,141,149,234,242,117,208,118,170,117,124,
- 41, 24,142, 92,210, 12,158,125, 75,245, 81,164, 47, 19, 36, 70,120,191, 47, 51,246, 97,181, 62,187, 49,136,108, 32, 62,130, 65,
-144,229, 56, 86, 60,162, 19, 23,245, 62,115,143,145,120,200,112,211,222, 74, 26,152, 27,119, 30, 13,142,165, 21, 61,144,209,220,
- 66,155,142, 22, 71,143,118, 28,221,220,181, 69,179,248, 60, 70, 79,125,113,253, 86, 84,235,182, 2,251, 86,214, 25,105,204,223,
-214,160,237, 86,130,189,116, 65,189,231,116, 47, 44,102,105,253,156, 37,155, 58,244,154,205,247, 57,218,187,125,106,153,245, 40,
-211, 69, 7,138,151,106,116,146,109, 58, 93,135, 84,182, 65, 94, 72, 86,232,109, 52, 68,207, 66,184,233, 6, 88,137,205, 54,161,
- 88, 38, 99,150,221,164,105,145,235,157, 25, 35,193, 17, 82,107, 50,111,142,187,243, 29,118,103,103, 56, 63, 63,135,223, 79, 8,
- 33,224,234,241, 21,254,229,191,254,191,240,131, 31,126, 31,111,188,241, 24,187,179, 9,191,241,155,191,142,227,205, 11,240, 4,
- 60,124,227, 13,208,171,215,136,110,135, 31,126,248, 1,118,187, 84, 93,223, 92, 31,240,233,211,151,248,227, 63,249, 51,252,202,
-175,252, 26,104,218,227,131, 79,158,226,217,171,215,120,113,125, 13, 9,192,241,120,196, 44, 17,119,135, 25,211,110,143,111,127,
-251, 47,240, 11,191,240, 11, 56,219, 79,217, 25, 11,152,118, 23,152,101, 78, 64,170,233, 12,206,159,225,217,103,207, 49, 71,198,
-237, 33,226,242,234, 9,222,126,247, 75, 56, 28,111, 17, 35,240,254,251, 63,196, 87,190,252, 19,112, 60, 97,206,154,226,222, 79,
-224, 67,128,247,105, 29,222, 30, 3, 64,140,253,254, 28,211,110,143,203,171,199,112,211, 14, 17,140, 32, 14,126,154, 16,231, 59,
- 56,158,224,132, 16,133, 33,121, 28, 34,107, 27,255, 66,130,149,170,239,156, 81,203, 44, 65, 88,186, 49, 34, 12,176,184,140,239,
- 85,172, 38,139, 28, 41, 83, 97,144,252, 11,197,213,253, 45, 42,115,132, 34, 24,149, 15,221,180,119,173, 14, 9,181,108, 17,181,
-230, 22, 99, 9, 74,210, 50, 44,230, 40,136,148, 88, 13,194,148,212,253,220, 14,211,217, 57,226,235, 27,220, 5,224,225, 27,111,
-227,226,236, 28,135, 57, 98,127,126,129,183,222,126, 27, 12,194,109, 56,226,217,139,231,184,122,120, 9,191, 75, 40,120, 56,134,
-227,148,204, 37, 9, 97,206, 4,170, 60,232,232,102,205,156, 63,217,200,235, 93, 36,194,197,245,120,114,106,127, 84, 74,109, 81,
-116,203,157, 86,103, 44, 84, 89,213, 77, 59, 75, 93,253,185,196,214, 8, 75,139,129,114, 13, 29, 53, 35, 21,225,138, 15, 43, 99,
- 62,145,236, 86,168,210,186,222, 21,159, 87,100, 32, 78,241,241,117, 21,133, 11,137,197,199,218,250, 89, 71,191,148,225, 59,165,
- 93,222, 92,152, 40,155,156,194,147, 1,153,104, 81,253,247, 64,185,113, 59,245,126, 65,127, 33,158,130,165, 54,251,162, 45,190,
-162, 48, 55,226,157,219, 25, 48, 99,172, 1,207,125, 37,222,125,127,232, 6,183,213,242, 97, 58,221, 89,185, 71, 43,137, 77,166,
- 90, 48, 11, 29,114,157, 6,193,186, 55,237, 24, 37, 11,140,154, 52, 88, 32,102, 95,145,215,138,189,118, 54,120, 48, 91,183,128,
- 85, 55, 76, 49,215, 41, 42, 91,149,122,163,245, 61,186,119, 25,104,103,255,222,145,109,207,199, 97,146, 70, 25,115, 65,202, 91,
- 45, 15, 62, 23,241,141,152, 1,124, 67, 12,138, 17,244,144, 34,153,188, 92,223,145,218,150, 59,129, 16, 17,202,245, 39, 48,196,
- 49,238,174,239,112,125, 76,118,163,236, 39, 60,124,116,133,127,245,187,255, 18, 95,248,194, 59,248,236,217,115,188,249,230, 19,
- 68,138,248,255, 73,123,211, 31, 73,210,252,190,239,243, 60,113,102, 68,102,214,213, 85,213,215,116,207,204,206,236,206, 30, 35,
- 30,226, 18,162, 86,146, 37, 1,178, 68, 75, 47,252, 15,216, 16,109, 65,162, 33,192,128, 96,200,176,223,233, 63,144,255, 0, 89,
-176, 12, 67,128, 37,136, 94, 16, 36, 69, 27, 36, 69,145,203, 21,247,152,153, 93,206,236,204,116,207,221, 93, 93, 93, 71,102,229,
- 25,119,196,243,248,197, 19, 17, 21,153,149,213,221, 67,245, 32,145, 83,121, 70,198,241,252,174,239, 81,160,176, 28,135,121,180,
- 36,175, 42,126,244,131,183,249,215,255,230,223,146,102, 37,203, 69,202, 7, 31,124,196,246,112,192, 15,190,255, 67,254,221,119,
-255, 61,255,224, 31,254, 35, 30, 29, 29, 19,103, 25, 10,105, 22,110, 97,168, 86,193,160, 79, 85, 36,124,240,225, 67,102,179, 25,
-253, 59,119,234,197, 89, 16, 4, 3,150,113,132,180, 28,130, 32, 64,107, 65,154,141,137,150, 41, 23,227, 25,131,254, 54, 96, 17,
- 45, 51,206,206, 39,188,243,246,187,220,189,251, 21,162, 36,103, 62,139,233,249,146,126,127, 8,210,197,243, 28,194,158, 71,180,
- 92,130,182,233, 15,134,248,190,135,210, 22, 97,127,155, 74, 9, 42,101,225, 88, 62,194, 2,105,121,102, 52, 89,106,132,244, 91,
-182, 64, 19, 64, 87,207,211, 78,167,168, 49, 52,169, 85, 44, 13,165,117,117,145, 23,242, 82, 91, 92,182,190,227,215,107,143, 55,
-210,172,155,130,122, 35,129,170,175,233,146, 10, 97, 35,164, 66,235, 75, 74,164, 86,122,197,105,177,113, 33,187, 76,134,215,116,
- 2,212, 42, 38, 73,175, 21, 24,210,178, 80,149,166, 20,154, 52, 47,200,242, 18,233,216, 84, 74,147,151,138,215, 94,121, 21,141,
-228, 98, 54, 55, 9,146,227,178,140, 83,147, 56,134, 61, 38,243, 5,183, 42,141,235, 57,181, 97, 86, 45,150,102, 25, 95,120,173,
-100,199,113,205,152,198,104,154, 88,103,212,255, 52, 18, 68,185, 98,106, 67, 13,254,163,245, 33,233,174,241,171,133,208, 51,199,
- 23,232, 43,150,225, 43,247,141,120, 12, 92, 1,180, 26, 74,117,151,205,114, 21, 51, 38,149,188,212,250,111, 58,198,150,196,106,
-197,168,106,169,221,234,114,189,176, 27,153,195,150,250, 84, 7,109, 81,139,104,232, 14,138,209,216,104,215, 90, 59,181,124,159,
-245, 28,113,144,235,173, 42, 55,180,198,175,145,211,123, 94,213,251,172,192,252, 44,147,150, 23, 65, 44, 62, 15,248,160,213, 53,
- 0,186,142, 49,192,179,130,186,148,207,110,131, 63,171,253,189,169, 82, 94,159,157,174,160, 83,165,120,102, 91,233, 89, 39,239,
-117,143, 73, 97, 93, 73, 82,232,160,250, 27, 81,135, 77,243, 96,117,221,247,116,102, 90, 93, 89,213,245,147,190,249, 61, 13,254,
- 67, 74,137,109,219, 45,175,213,243,188,218,189, 79,183, 34, 54, 85, 85,181,210,144,121,158,183,218,208, 66, 60, 15, 91,160, 55,
-119, 99,196, 26,120,176, 11,148,163,163, 96,213, 44, 32, 66, 93,170, 77, 53,253,119, 99,138,184, 90,237,137,198, 15,218,186,100,
- 93,116, 59, 26,141,104,197, 26, 94, 67,233,142,107, 22, 96,217,142, 17,105,170,105, 90,150,101, 12, 73,138,162, 64,233, 18,161,
-140, 52,170,241,180,214, 44,163,136,254,112, 64, 85,148, 70,124,195,178,201,242, 2,219,115, 81, 90,147,164,102,198,238,122, 30,
-189, 32,224,239,252,234, 95,226,131, 15, 31,240,224,225,251,252,151,127,235,175, 83, 42,213,218,221,218,174,199,123, 63,251,128,
-225,112, 11, 22, 9, 55,110,248,164, 81,140,227, 14,120,237,245,151, 80, 84,124,239,251, 63,160, 23, 4,228,133, 49, 88,193,146,
- 84,149,102, 25, 39, 12, 6,125,178, 20,148, 80,204,151, 17, 95, 9, 66,190,247,199,223,231,237,183,223,193, 18, 54,131,173, 97,
-123,172,181, 50, 9,207,241,211,115, 42, 37, 57, 61,187, 96, 25, 39,228,121,202,124, 30,241,217,167, 71,124,252,201, 35,250,195,
- 93,242, 76,227,121, 14,121,150, 1,146,170, 18, 76, 39, 75, 92,167,135,148, 14,113,156, 51, 30, 79,232,245, 2, 44,203, 98,176,
-181, 71, 56,176, 24,143, 23,148,101,137,227,153,243,173, 44, 75, 92,215,180,237, 29,203,165,210, 37,182,180, 16,150,100, 57, 95,
-224, 7, 61, 44, 33, 41,170,130,126, 24, 34, 45,135,139,201,152,237,157, 29,180,214, 20, 69,137, 99, 75,210, 44,195, 18, 6, 85,
- 95,230, 5, 69, 85,174,176, 44, 92,223,195,119, 61, 28,219,106, 69, 81, 36, 53, 26,188,198, 60,117,207,243,170,170, 46, 61, 19,
-234,192,210,156,155, 69, 81, 32,165,196,113, 28,166, 83, 67,229,179,109,227,181, 25, 37, 9,187,219,219,196,113,220,226,165,170,
-178,174,254, 92, 23,215,113,136,163, 8, 41, 37,131,193,128,217,108,134,237,184,117,231, 71,173, 74, 14,235, 6, 43, 36,113, 93,
- 11, 85, 65,156,230,100,101,193,114, 54,227,228,108,196,206,222, 46,182,231, 50,157, 47,152,207,231,140,207,207,112, 61,143,249,
-114,193,206,206, 14,189,126,200,187,239,189,199, 87,191,250,154, 25, 75, 8,218,192,238,184,134,253, 32,132,213, 6, 69, 93,127,
- 31,173, 71,136, 54, 65, 94,107,132,112,160,117,183, 83, 45, 32,180,165,233,106,189,185, 93,183, 54, 46, 99,109,253,146,226, 50,
-233,146, 29, 12, 22, 53,219,100,125, 54,175, 59,170,113, 90,212,236,174, 70,116,134, 75, 13,130,102, 61,208,170, 1,220,214, 56,
-128, 26,104,157, 87,101,203,185,167, 11,192, 20, 96, 43, 46,103,199, 77, 6,216,238,144, 46, 0,173,173, 76, 84,219,118, 86,181,
-140, 66,183, 66,109,130,152,236,160,199,175,227,169, 63,175, 85,253, 34, 9,128, 88, 67, 47,138, 13, 40,248, 46,121,127,147,140,
-171,122, 1,244,253,117,127, 11, 94, 60, 56,110, 14,148,108,164,180,189,136, 46,188,181, 86, 41,175, 84,106,107,149,162, 92, 63,
- 57,159,193,239,190, 78,201,110,179, 22,177,188, 54,168,175,183,125,175, 6,166,205,125,111, 77,231,243,186,173,205,142, 5,167,
-174,103,124, 82,202,206,185, 42,168,106,225, 10,165, 20,121,189,128,153,150,173,106,229,131, 27,115, 31,187, 9,102,141, 53,238,
-179,128,138, 92, 82,251, 46,149,223, 46, 41,125,242, 10, 59,163,238, 92,168, 14, 79,125,125,166,222,233, 68,104,113, 21, 77, 91,
- 67,233, 46,191,123, 45,168, 11, 26,218,147,218,136,193,104,246,165,109,155,121, 51, 66, 80, 20, 21, 85,149,162,132,196,113, 92,
- 92, 91,146, 37, 49,101,105, 22,191, 27, 7,123, 68, 81, 66, 81,149, 4,189, 62, 32,112,124,159,197,108,206,206,222, 46, 50,138,
- 0,240, 7, 3, 44,215, 97,127,127,143,191,253,183,255, 71,254,233, 63,253,159,248,123,127,239,191,226,171, 95,253, 42,147,201,
- 24,219,118, 65, 88,252,242,175,252, 10, 89, 37, 40,190,120,194,108, 62,226,252,108,194,220, 75,201, 51,205,214,214, 16,219,241,
-152, 45,230,156, 28,159,163,148, 34,203, 10,180,174,136, 22,115,180, 46,217,221, 25,112,114,122,204,163, 47,142,120,227,107,223,
-224,195, 15, 31,240, 7,127,240,135,248,158,241, 78,247, 60,143, 56,142, 41, 11, 77,232,247,112, 93, 31,199,114, 88, 46, 19,206,
-207, 71,148,101, 73,169, 74,170, 74,115, 49,137,152, 76, 83, 78,158,142, 24, 46,203, 86,237,111,177, 56, 35,240, 61, 60,207,225,
-209,209, 49,121,158,147,167, 41, 15, 31,124,138,101, 11,254,223,255,239, 15,136,227, 24,207,247,113, 93,159,180,200,233,245,122,
- 8, 33,136,162,136,251,119, 95,226,230,205,155, 68, 81,132, 16,154,167, 79,159, 18, 69, 17, 90,107,146, 36, 97,127,127,159,254,
- 32,192,113, 28,164,148,132, 97, 72, 20, 69, 12, 6, 3,146, 36, 90, 49, 45,170,170,234,210, 5,174,170, 8,195,208, 36, 81,174,
-187, 2, 32, 53,199,212,194,177, 37,190,231,224,123, 1,174,103, 99, 73, 7,105,129, 99,123, 56,174, 69, 85, 26,115,146,126, 56,
-196,178, 5,142,237, 25,202, 87, 5,183,239,220, 98, 62,159,146,231, 69,173, 30,233,241,193,131,143,184,123,247, 46,129,215, 51,
- 73, 75,207,232,251,143, 70, 35,202,170, 98,107,123,155,197,194, 4, 97,207,247, 47,117,212,215,174, 83,179, 50,152,112, 83, 86,
-154,163,163, 99, 78, 78,207,168,170,138,197, 34, 98, 50,155,226, 5, 33,103,103,103, 56,174, 71, 18,197, 60, 62,126,130,239,184,
-184,174,193, 68,104, 93, 81, 40, 69, 20,167,244,194, 0,215, 55, 24,137,162,204, 76, 80,148,150,137, 91,117,240,148,173, 84,173,
- 97, 10, 24, 96,162,190,164,249,155, 92,195,224, 0, 68,211, 85,150,176,166,114,183,105,100,169, 59,244,230,246,111,185, 6,228,
-173,183,163,171,238,215, 92,219,122, 3,128,186, 38,145,118,232,195,117, 42,222, 36,248, 93,237,145, 58, 35,184, 12,252,186,102,
- 23, 95,110, 79,243,251,109,203,185, 58,168,175,234, 74,188, 66,163,203,226, 82,124, 68, 96, 64, 6, 13, 79, 87,208,186,183, 93,
- 55,211,180,159, 1,212,120,145, 86,251,243, 2,253,101,187,146,107,229,252,228, 53, 73,197,250,227,205,251,186,174, 55, 77,251,
- 75,118, 80,240,162,123,143,252, 82, 1,121,157, 90,214,101,201, 63,171, 58,190,238, 51,101, 7, 56,215,204,250,229, 90,165,191,
-210, 57, 96,179, 69,236,243,102,210,215, 61, 47,244,213,118,248, 21, 76,133,184,106,169,121,121,114,111,170,212,197,102,148,103,
- 71, 49,173,185,120,138,170,166, 22, 89,151, 78,110,190,235,172,168,107,161, 58, 23, 95,253, 57, 10,109,248,198, 85,213, 17,225,
- 17, 45,223,191, 33,118,201, 58,121, 48, 42, 90,226,170,184, 77,141,185,232, 78,177,187,195, 17, 45,171,214,220,165,139, 98,191,
- 76,176,170, 85,138,161,150, 43,199, 73,116, 0,119, 43, 45,133,102, 36,208,106, 27,178, 66,216,107, 25,143, 10,148,170, 40, 10,
- 19, 44,188,158, 7, 66, 83,149, 10,165, 43, 19,172, 60, 7,203, 17, 72, 97, 51,155, 47,169, 42,141,227,120, 44,150, 9,179,217,
- 2,233,216,120,182,195,167,159, 31, 17, 4, 1,105,154, 52,190,124,224, 0, 0, 32, 0, 73, 68, 65, 84,242,244,116,204, 59,239,
-252,148,191,242,157,191, 9,192,104,116,193,227, 39,167, 4,125, 99,144, 98,102,240, 1,223,252,214, 95,224,221,119, 31, 50, 14,
-231,220,216, 1,199, 14,176, 44,143,197, 60, 34, 78, 47,248,106, 81,145,166, 41, 74, 41,110,221,186,197,100, 60,165, 72, 19,150,
-211, 9, 89,154,162,245,144, 55,223,124,147,127,247,221,239,242,255,252,230,111,130,150, 84, 90,112, 49, 93,112,239,222, 61,147,
-164, 40,129,223,235, 99, 59, 46,105, 94,176, 72, 99,202,170,192,113, 44, 92,215, 39, 89,206, 41,138, 18, 45, 53, 97, 48, 96,119,
-239, 0,173, 5,121, 94, 98,123,162,245,185,247,188, 30,174,237,129,116,113, 61,201,114,185,100, 24,244,235,160,218, 39,201, 51,
-146,172, 68, 33, 56, 63,159,145, 36, 9,190,231,224,245,250,184,126, 72,156, 22,244,122, 61,242,242, 4,219,237, 17,199, 49,131,
-237, 29,210,162, 36, 30, 77,241, 60,143, 48,236,225,120, 61, 22, 81,194,197,116,142, 45,100,219, 97,106, 40, 95,174,235, 98,219,
- 54,121,158, 51,157, 44, 91, 37,204,238,120,211,182,109,108, 71, 82,228, 9,160,176,109, 23,173, 43,178,172, 64,169, 18, 41,109,
-148, 42,241,253,128, 44, 75,232,245, 66,242, 60, 37, 8,250, 72, 9, 82,218,252,245,191,254,215,248,165, 95,250, 37,198,227,115,
-190,251,221,239, 82, 85, 21,179,217,140,127,242, 79,254, 9,179,233,180,150,136,150, 28,159,158,177,181,181, 69, 85, 85, 20, 69,
- 65,191,223, 55,174,120, 77,199,167,149,247,237, 46,212,151, 67,176, 50, 79,249,228,147, 79, 56, 57, 61,195,117,125, 46,198, 83,
-166,179, 5,123, 55, 42,230,179, 5,138, 57,170,172, 88, 46,151,136,193, 0,183,231, 18,167,117, 80, 47, 75, 38,243, 25,219,123,
-219, 56,182,101, 12, 80, 74, 19, 64,221,218, 68,168,185, 46, 87,214,140,238, 77,232,205,182,179,170, 46, 74, 27,177,156,117,192,
-248, 11,140, 34,181,208,151,214,167,157,245,227, 50,201,209,173,228,113, 87,195, 93,202, 78,112, 94, 95, 51,215, 77,183,214, 48,
- 27,237,231,107,125,197,219, 65, 0,182,116,236,149, 89,174, 65, 5,106,148, 16,245,253,165, 91,141,104, 84,199, 26, 81,253, 58,
-154,118,209,218, 93,116,182, 92,163,160,137,181,215,233,206,107,228, 6,116,178, 94,163,129,172,255,221,221, 1, 43,242,125,207,
-168,196,175,171,204,155,247,181,149,149,210,109, 48, 87, 27, 42,214,230,125,232,103, 87,184,109,231,162,171,184,215,157,189, 35,
- 95,140, 61, 0,207,245, 11,190,130,156, 22,151,149,155,222,128,142,110,185,247, 29, 98,216,138,250,217, 53,207,175,188,174,142,
-176,106,211,201, 47,197, 21,106, 93, 55,161, 16,215, 84,233,172,109,111,119,123, 46, 43, 84, 90, 83,135,166,157, 94, 20,133,225,
- 28,215,122,245,105,154,210,239,247,141,113, 78, 45, 82, 33,165,108,121,174,210,177,107,220, 72, 77,231,217,112, 14,182,138,126,
-242,210,106, 85,172, 80, 41,197,115,129,150,207, 74,248,212,149,145,133, 88,217, 95,151,199, 87,172, 92,220,141,140,103,183,213,
-191, 1,134,138,235, 26, 96, 91,150,229, 53, 39,185,170,247,133,105,199, 7,126,192,108, 62, 97, 56,216,165,170, 12, 48, 54, 77,
- 98,254,183,127,254,207,249,181, 95,251,239,249,141,239,254, 22,239,188,243,147,118, 59, 6,131, 1,113, 28,147, 36, 9, 2,151,
-223,254,173,223,229,237,183,126,138,180, 92,254,205,191,253, 13,226, 52,231,141, 55,222, 96,111,111,143,201,120, 76, 24, 12,248,
-193, 15,126,136,239, 7, 84,165,160,170, 52, 82,106,162, 40, 65,139,146,209,104,132, 16, 21,174,107,227, 88, 54,170,200,137,163,
-136,162, 40,136,147, 5, 22,154,225,176,143,239,251,204,166, 11, 46, 46,166,236,237,237,211,243, 5,139,165, 25, 5, 84,165,160,
-148, 21,101,153,212, 86,168,102,214, 90,149, 48,141,231, 40, 85, 34,108,155, 44,201,201,242, 41,158, 27, 34,165,141,239,251,148,
-186,100,123,123,155,229,124,206, 98,177,100,216,239,179, 92,196,148,149, 25,205, 68,203, 12, 37, 50,118,118,118, 56, 31, 93,144,
-166, 41,123, 7,135, 68,105,134,210, 48, 95, 36,148,149,102, 50,153,145,164, 25, 82,218, 36,105,142,239,121,216,174, 71,154, 20,
- 76,231, 19,110,223,188,197, 75,247,238, 99, 91,146,131,195, 67,122,189,144, 7, 15, 30,160,164,133,109,219, 56,142, 85, 87,242,
- 21,150,101, 99, 89, 54,142,115,213,130,250, 82, 76, 69,130,150,120,110, 64,158,167, 84,165,249,221,142,237,226,186,253, 54, 41,
- 40,203, 18, 41, 28,164,176,176, 45,143,178,168, 72,146,132, 52, 77,121,231,237, 63,227,233,211, 83, 30, 63,126,204,120, 60, 70,
- 74,201, 27,111,188,193, 23, 95, 60,198,181, 29,246,246, 66,252,158,209, 1,112, 28,115, 30,197,113, 76,191,223,103, 56, 28,146,
- 87, 37,162,190,126, 20,107,152,166, 86,102,216, 66, 41, 56, 31,141,201,178, 2,219,242,235,246,190,192,237,249, 56,142, 99,170,
-118,199, 37, 12, 67,182,183,135,216,182, 77,188,156, 19, 4, 62,189,192,167, 84, 21, 94,173, 46, 87,106,133,150, 22,150, 0,233,
-216,168, 6, 8,216,233,216,118,193,112, 85,165,106,214,210, 6,246,150, 52,108,143, 86,200,107,131, 2,234,117,227, 83, 26, 81,
-174,206, 10,190,130,233,233, 96,142, 86,124, 77, 58, 58, 45,212,120,159,255,172,177,178,186,250, 26,187,241, 59, 22,151,165,115,
-173, 71,108, 82, 14,203,114,219,222,253, 38, 39,176, 46, 16,103,147, 2,153, 86,250,138,150,251, 74,155,162, 81, 60,187,134,119,
- 36, 54,220,119,219,247,162, 3,184,235, 8,199,181, 21,183, 73, 58, 58, 64,147,181,231, 77, 53, 78,109, 50,178,225,126, 3, 0,
-101, 13, 55,189,178, 93,130, 85, 45,123,105, 61, 39,232,243,108,235,192,231, 89, 11,242, 12, 71, 55,177, 30,168, 55, 66,195, 94,
-236,100,186,110,219,100, 35, 34,191, 97,155, 86, 59, 18,108, 8, 74, 87, 65,126, 93, 87, 46,205,165,162,158,220,144, 12,180,162,
-142,150,153, 87,151,121, 65, 86, 86,216,158,143,101,219, 84,105, 70,156,229,248,190,143,176,107,201, 74,203,170,101, 54, 85,237,
- 5, 93,181,199, 97, 35,254, 98, 61, 78,174,253, 14,245, 92,212,188,216,152,180,116, 23,191,174,199,185,236,122,205,119,130,249,
-213,207,187,116,199, 19, 43,250,245,114,229,220, 92,206,151,166,133,107, 27, 59,210,162, 40, 40,139,146,126,127,136,112, 61,138,
- 50, 99,255,198, 45, 22,243, 24,223, 15,152, 45, 23,156, 60,189, 96, 52,142,248,223,255,229,191, 38,138, 18,190,242,234,215,113,
- 61,191,166, 29,205,216,222,182,120,248,240, 67,190,241,141, 95,228,139,207, 30, 81,149, 54,129,191,199,104,156,112, 62, 62,227,
-243, 47,142, 57, 60, 60, 36,137,151,244,251,125,142,142,142, 56,216, 59, 64, 85, 96, 57, 62,190,191,133,229,216,100, 89,198,251,
-239,191,207,214, 48, 64, 96, 49, 57, 31,145, 37, 41, 84,138,173, 65,200,100,146, 33,128,247,223,123,143,215, 95,127,157,111,124,
-253, 91,252,222,239,253, 33,179,249,130,170, 20,109,247,193, 15, 3,108,215, 37, 77,115,202, 82,225,121, 14,210,177, 89, 44,231,
-184,174,131,180,236,182,202,172,180,198,117, 2, 74,165,208, 85,133,144,138, 94, 47, 36,168,101,103, 27, 58,156,180, 44,163, 63,
-142,162, 40, 20,179,249,146,112,184,133,227,247, 40,114, 99, 25,156, 38,153,161,205,121, 62, 89, 94,210,235, 15,106,166,160,160,
- 40, 75,180, 16, 68, 73, 76,165, 5,105,158,241,248,248, 9,203,217,156,189,179, 51,195, 12,145, 6, 61, 95, 85,138, 44,203, 91,
- 17,150,166, 18, 87, 74,213, 54,176, 77,130,103,213, 55,105, 88, 21,150, 49, 27,114,253, 94,107, 78,101,250,208,150,145,104,182,
-108,211, 97, 68,144,214, 45,246, 52,205, 72,179,156,178, 82,188,245,206, 79, 80, 63, 50, 60,232,151, 94,186,195,215,190,250, 6,
-159,124,252, 41, 73,156,114,118,118,198,116, 54,225,175,126,231, 47,243, 43,191,242, 43, 36, 73,130,109,219, 12, 15, 14, 73,211,
- 20,199,177,136,102, 9,158,231,173, 40, 44, 94,142,147, 68,139,185,202, 11,243,221, 97, 24,226,250, 62, 21,130, 94,216, 39,232,
-133, 88,182,196,177, 45, 44, 91, 98,219, 18,215,178, 87,156, 7, 93,207,163, 82,138,160,111, 36,134,149, 42, 91, 28, 87, 81, 84,
- 43, 35, 9,106, 48,162,214,250,138, 54,251,165, 41,157,233,109, 27,146, 87,237, 71,209,145, 18, 23,107,160,219,198, 77,175, 85,
-168, 92, 75,248,229,115, 70,173,155,176, 97,171,143,203,107,113,101,226, 69, 70,209,234,170,247,133,109,219,118, 43, 13,217,157,
- 41,116,219, 61, 29, 16,249,149, 15, 47, 85,117, 69, 20,166, 43,192,114,165,162, 89, 7,246,212, 3,132,238, 44, 65, 32,174, 0,
-128, 86,230, 19, 29, 59,188,118,151, 88, 98, 69,228,161, 85, 71,237, 60,110,173,239,208, 78,133,246,101,168,104, 43,250,218,107,
- 7,182,187,195,215, 53,237, 27,170,224,106,146,240,156,118,183,210,215,182,193, 95,136, 33, 32,197,213,100,100, 77, 39,252, 89,
-153,226,243,192,130,155, 12, 95, 86,172, 95,121,177,150,214,149,237, 19,215, 60,191, 86,225, 55,228, 10,165, 20,113, 28, 19,213,
- 64, 30,215,117, 89, 44, 22, 72, 41,217,223,223,199,113,140, 80,136, 89, 12,173, 22, 52, 86,118,116, 18,158,167,147,189,126,110,
-168, 13,254,198, 95,246,223,181,226, 62,215,140, 93,116,199,182, 82, 34, 47, 21,191,218, 71,245,202, 68,222,243, 60, 92,215,165,
-136, 83, 44,203,180,163, 27, 80,213,217,217, 57, 91, 91, 3,180,146,104, 45,168, 74,193,205,151, 95,227,195,247, 63, 67, 41, 73,
- 63,220, 97, 56,216, 7, 45, 73,178, 20, 41, 28,134,131, 61,254,227,127,252,143, 44, 22, 11,138, 92,146,103,130, 39, 71, 35,146,
- 52,199, 13, 4,253,254, 13, 16,138, 44, 87, 56,110, 64,180, 76,168,170,138,139,139, 17, 66, 88,236,222,184, 73, 81,229, 44,227,
- 5,113, 60,103,119,215,199,179,109,242,188,160, 40, 96,171, 63,192,182,109, 60,215, 70,149, 37,203,229,146, 48,236, 17, 69, 17,
-147,135, 31,147,103, 5, 69,165, 56, 63,155, 48,220,222, 33,175, 74,166,139, 57,209,210, 84,127,170, 80,244,122, 30,175,190,242,
- 10,119,238,220,225,233,211, 99,148, 46,153, 78,167,230,119, 99, 97, 91, 46, 89, 97,230,221,158,111, 49,153, 74,190,246,218,235,
- 72, 41, 57, 61, 61,165, 40, 76,176, 62, 63, 63, 55, 1,127,208,231,241,241, 19, 60,207, 35, 77, 50, 20,154,215, 95,127,157,139,
-139, 11,116,165, 24,143,199,140, 70, 35,250,125, 83, 33,207,102,179,154,219, 31,179, 88, 44,184,125,231, 38,105,145, 83,205,231,
-120,190, 71,150,165, 92, 92, 92,176,213, 31, 32, 44, 99,138, 85, 20,141,152,137, 69, 24, 6,120,158, 79, 89, 22,196,113,210,154,
-248, 52,162, 40,205,223, 82,154,110,212, 96, 16,214,192, 79, 19, 60,203,194,156,231, 38,224, 10, 84, 85,146,231, 5,158,231, 97,
- 91, 46, 91,195, 30,142,227, 48, 26,141,208,245,117, 19,199, 57,163,209, 5, 91, 91, 59,148,165, 98,111,111, 31,128, 31,252,224,
- 71, 40,165,248,213,191,251,119, 41,139,148,243,243,115,134,195, 33, 81, 20,177,189,189, 77,146,165, 43,148,232,203,243, 85, 24,
-158,189,150,204,102, 51, 92,215, 55, 29,181,186, 72, 12,195,176,163,177,239,213,221,164,140, 40,138,232, 5, 30,190,111, 94,183,
- 92, 46, 57, 63, 63, 55, 9, 89, 85, 33,165,233,204,117,193,128,207, 99, 71,173,104,224,175, 49,159,186, 29,234,102, 38, 45,214,
-152, 59,215, 41, 82,202, 47,217, 93, 93, 81,223,107, 95, 43,159,185,198,108, 18,151, 89, 41,130, 54, 0,173,237,230, 2,111,223,
-180, 70,221, 41,203,178,254,225,155, 41, 94, 87,181,127,175,111, 15,111,122, 77,181, 41, 32,124, 9, 52,251,250,143,234, 6,252,
-107,105,107,215, 80,234,158,149,105, 93,183, 24,203,103,160,184,245,134, 76,109, 83, 81,171, 59,213,108,211, 26, 87, 43,200,233,
-203,228,104, 93, 81, 79,234,171,188,201,141, 40,253,107,254,255, 89, 12,131,235,180,136, 55, 61,191,254,190, 22,200,182,153,104,
-120, 73, 71, 91, 87,132, 18,171,146,180,172,117, 27,214,233,125,174,235,214, 0,171,140,249,124,206,249,249, 57,113, 28,227, 56,
- 14, 79,159, 62,101,127,127,159,189,189,189,118, 33,104,125,236,107,165,169, 77, 73,201,230,223,122, 93,183,162,233, 58, 93,163,
-220,165, 87,117,167, 95, 52,192,183, 62, 94,155,140, 64,218,243,230,170,171, 23,107,252,123,164,224,232,232,152,183,126,252, 14,
-203,229,178,158,169,154,121,241,123,239,189,199,246,238, 22,247,238,189,204,116, 50,199,247, 67,178,180,224,243,207, 31,243,210,
-221, 87,121,231,237,119,241,253, 16,129,133, 31,244,136,162,132, 48, 12, 89,204, 51, 44, 39,228,253,247, 62,197,119,253,122, 86,
-239,243,241,195,199,236,222,216,227,222,171, 47,113,118,118,204,211, 39,143,176, 45, 65, 24,184, 12,135, 67, 99,194, 34, 5,143,
- 30,125, 70, 20, 45,185,119,255, 46,175,189,126,159,237,126,159, 39, 71,199,248,174,139,235,248,168,170,162,204, 51, 92,199,225,
-244,108,206,173, 91,135,248, 94, 64, 94, 46,217,217,217,225,236,124, 66,156,102, 76, 31, 61,162, 40,115, 60,223, 71,104,193, 27,
-111,188,193,237,195,219, 0,244,195,144,147,147, 39, 36,105,196,173, 91,135,132, 97, 15, 41,109,206, 71, 19,148, 82,244,251, 3,
-194,126, 15,161, 11,164, 52, 45,254,243,243,115, 70,163, 51, 16,138,178,202,137,147, 37,203, 36,198, 93,206, 72,211,148,101, 44,
-201,210,130,237,237,109, 28,199, 97,103,103,135,119,222,126,139, 44, 79, 89, 46,151,109, 50,208,128,224,178,204,104,208, 7,129,
-111,128,102,101,193,193,193, 1, 69,225,115,124,124,204,196,115, 80,101,101,170, 83,105, 35, 37,236,237,237,179,179, 51,196,113,
-108,102,179,139, 22, 56,168, 20, 84, 85,129,193,165, 85,109, 72,121,227,141, 55, 8,195,144,233,116,202,114, 25, 99, 89, 86,157,
- 80,164,244,122, 61,122,189, 30, 85,165, 25, 12,182, 24, 14,135,109,178,123,113,113,129,227,120,220, 60, 56,228,248,248,152, 47,
- 62,127,204, 47,254,226, 47,146,101, 25,113,108,230,248,223,249,206,119,248,232,225, 3, 62,254,248, 99,206, 78, 78,152,207,231,
-252,236,253,119,185,123,247, 46, 74,149,220,186,117,139,173,237, 93, 54,249, 31, 54,169,124,146, 36, 28, 29, 29,181,212,102, 85,
-229, 20, 69, 65, 24,244,141,219, 94,150, 34, 37,228,105,138, 42,115,163, 43, 16,149, 4,129,223, 94,179, 23, 23, 23,196,105, 66,
-169, 42,108,105,215,180, 75,211, 85,185,116,105, 92, 93,195, 26, 31,117, 35, 5,219,137, 11,122,117, 52,169,219,201,247, 6, 44,
-208, 11,116, 48,175, 91,223,158, 7,158,190, 52,100,185, 38,206,172, 96,146,196,138, 93,110,183, 48,211,250,234,186,100, 55,244,
-133, 70,132,160, 25, 3,118,209,152,102, 33,108,228, 59, 87, 39,135, 95,150,247,221,242,129,219, 54,180, 94, 65, 73,111,114, 89,
- 91, 55,178,170, 58, 11,164, 82,171,149, 73,115,175,245,243, 65,107,173, 39,186,126, 70,203,180,179, 51,175,216,203,138,166,165,
-126, 61,192,237,186, 76,178, 11,180,216,196, 47,109,254,110, 47, 6,189,233,164,211, 87,212,195, 36,181, 81, 78, 3,246,234,236,
-207,202,184, 55,215,149,190,190, 34,110, 83,213,205,219, 46,246,192,126, 6,128,174,130, 14,130, 91,182,110, 82,162, 35,127,100,
-124,211, 55,104, 90, 55, 13,173, 53,233,212,198,175,186,197, 44,172,204,167,197,202,152,163,235, 13,221, 32, 83, 45,203,194,239,
-245, 8,131,128,197,114, 73,150,101, 80,183, 51,179,252, 82,253, 75,107, 77,169,138,118, 30,111, 42, 11,181, 74, 61, 65,183, 21,
- 82, 87,115,125, 83, 93,220,133,215,154, 22,159,108,125,165,215, 44,100, 86,175,145,142,163,155,169, 10,196,181, 0, 80,221,153,
- 84,181,254, 11,181,161,146,106, 76, 62,218,129,146,249,190,192, 11,152,206, 30,243,214, 91, 63,229,193,195,135,244,122, 1,251,
-251,251, 4,253, 33, 71, 79, 71,188,243,103, 31,160,197, 15, 73,162, 20,105,217, 68,139,152,123,247,191,194,222, 94,202,108,158,
-240,254, 7,159,146,231, 57, 47,191,250, 26,111,190,249, 38, 31,126,248, 33, 91, 59,123,156,159,143, 56,188,125,155,104,190, 64,
- 72,201,249,120, 66, 56, 8,248,218,215,190,198,251, 15, 62, 96, 52, 62,193, 18, 10,215,246,176,157, 30, 69,165, 9,108,151,172,
- 40,249,236,139,207, 89,196, 49,135, 55,111,144,197, 9,145,210, 60,125,114,196,254,254, 1,176,172, 57,184,112,112,112,192,141,
- 27,187, 0,188,255,238,123,220,186,115,155,191,250,157,239,240,189,239,255, 41,143, 30, 61, 98,127,111,155, 82, 43,126,249,151,
-127,153,170,210,173,137,172,239,251,248,190,195,227,199,143,113, 92,171,237,228, 12,135,125, 84, 5, 69, 85,225, 58,190,169,212,
- 61,159, 94,207, 67,171,146, 71,143, 63,103,190,152,226,186, 54,160,216,221,221,198,118,125,170,170,226,191,253,251,255, 13,191,
-240, 11,191, 64, 85, 40, 62,250,232, 35,126,235,119,126,155,163, 71,143, 9,195,144, 87,239,223,227,240,240,144,147,211,227,182,
- 99,244,198, 55,190, 65,175,215,227,173,183,222, 34,138, 99, 92,215,229,240,240,128,195,195, 67,118,118,182,112, 44,205,197,104,
-140,227,120,244, 92, 83,169, 54,109,109,207,243, 72,211,140,163,163, 35, 94,126,249,229,182,181, 94, 85,206, 21, 71, 77,215, 53,
- 51,239,197, 98, 65, 28,199,220,186,117, 11,223,247, 91, 69,189,131,131,131, 58,153, 11,218,182,253, 98,177, 96, 60, 30,243,242,
-203, 47,211, 11, 3,132, 37,217,222,222,102,116,126, 65,165, 12, 46,229,214,173, 67,254,248,143,255,132,126,216,227,226, 98,202,
-191,248, 23,255,146, 87, 95,125, 25, 33, 4, 63,250,225, 91,104, 42,162, 40,226,215,127,253,215, 55, 20, 50,151, 74,117, 81, 20,
-241,244,233, 9, 89,102,152, 40,149,174,173,124, 45,139,170, 40, 72, 18,195,166, 72,210, 8,219,182,145, 82,178, 88, 44,176,109,
-155,126, 95,178,183,119, 3,171,230,101,107,203, 66,104, 40,138, 12, 93, 41, 44,207, 70,149,250,218,248,179, 14,124, 91, 41, 60,
- 58,172,159,134,214,182,105,166,222,202,128, 43,189,217,229,177, 1,202, 10,179,238, 90,181,136,207,122,253,120,173, 99,222,218,
-231,174,255,221,234, 15,118,121,234, 82,212,227,102,227,175,222, 48,210,218,160,126,114,118, 90,247,225,107, 93,110, 20,174,235,
-224,212,126,183, 90, 87, 53,144,195,105, 1, 72,166, 66,182,235, 5,209,144,225,171,210,240, 54,173,122, 1,109,184,147, 40, 93,
- 31,172, 26,141,220, 72,249,105,179,192, 91,218,194,178, 28,180, 80,148,170, 50, 1,187,158, 51,148, 69,133,231, 56,102,102,216,
-242, 10, 21,150,208, 84, 52,138, 87,194,240, 48,107,255,107,129, 85,227, 3,228, 37,221,226, 25,125,244,110, 6, 36,116,167,125,
-223,182,236,197,149,153,244,170,126,188,190, 34, 92,210,232,122,179,146, 73,109,146, 1, 85, 87,196, 98, 52, 87, 29,202,186,218,
-224,171,207, 41,211,127,110, 56, 27,221, 64,209, 9, 2,205,143, 93, 7, 52,174,159,108, 93,128,163,176,106,207,120,203, 90,145,
-135, 20, 29,164,189,236,162,178, 55,248,160,105, 97, 44, 22, 55, 7,245,122,182, 45,175,162, 63,233,240, 57, 87,252,224, 27,218,
- 70,171,150,101,108, 92,149, 86,216,142, 71,169, 97,119,111,159,151, 94,126, 25,223,113,169,132,228,236,233, 9,194,118, 76,114,
- 99, 91, 84,186, 68,105,141,227,217,166, 53,169, 58, 1,183,227, 11, 47,197,186, 21,199,213, 14,135,181,166, 9,112, 69, 24,250,
-210,221, 98, 35,110, 0, 26, 36,190, 81,189,210,157,202,188, 9,214,150,101,140, 48, 68,123,177,215,192, 75, 41,113,164,185, 94,
-205, 28,214, 65, 97,161,235,155,229,120,252,244,167,239,114,124,124,204,135, 31,126,200,195,135,143,184,243,210,107,108,109,239,
-240,224,163, 79, 72,143, 46, 76,176, 21, 33, 65, 16,178,189, 27,114, 62, 26,241,250,215,223, 96,107,103,155, 15, 62,120,128,148,
-146,237,253, 3,180,214,124,237,235, 95,229,108,116, 74, 81,229,104, 52,123,251,123, 44, 22, 51,194,237,144,147,179,167,188,252,
-250,171,124,229, 43,175,240,224,227,135, 60, 61,121,140,239,187, 20,133, 38,180,109, 46, 38,115,246,191,246, 53,158,156,156,242,
-224,193, 3, 10, 85,225,216, 30,182,180, 24,159,143,208,219, 91, 12, 6, 3,182,118,183, 73,211,148, 50,203, 41,114,131,178,118,
- 45, 27,215,182,136,166,115, 62,125,248, 9, 47,221,188, 77,182,156,242,183,254,198, 95,230, 31,254,163,255,129, 56,205,248,230,
-155,127,129,223,255,253,223,231,255,252, 63,254, 21, 23, 23, 23,188,242,202, 43,160,183,233, 15,130, 22, 11, 52, 12,135,252,131,
- 95,251,239,248,189,223,251, 61,126,239, 15,254,144, 55,223,124,147,255,229,127,253,159,233,185, 14, 63,248,225,127,226,143,254,
-232,143, 72,227,168,174,150,119,185,123,255, 30, 73,146,240,143,255,241, 63,230,205, 55,223,100,107,107,139, 40,138, 24,134,125,
-126,242,246, 15,232,123, 22,131,158, 75, 20, 37,204,103, 19,230,179, 49, 55,110,220, 96, 52, 26,241,171,191,250,171, 12,182,134,
-252,248,237,159,144,230, 25, 69, 85, 98, 9, 73, 47, 8,233,247, 3,182, 6, 33, 63,255,173,111,240,227, 31,255,152, 48,216, 38,
-175, 20,135,187,187,166, 85,127,251, 54,126,216,231,201,211, 79, 81, 66,162,132,164, 63,232,115,113, 49, 98, 25, 71,132, 97,143,
- 36, 73, 40,203,146,219, 55,111, 50, 24,132, 60,121,124, 76,180, 88,178,183,179,203,214, 96, 72,158,231,132,189,128, 91, 55,111,
- 49,155,205,184, 24,143,177, 15, 44,118,118,118,152,207,231,124,241,217,231, 12,251, 3,194, 48, 52, 73,112,232,179,183,183,195,
-231,143, 62, 35, 12, 67,238,222,189,203,209,241, 19,250,195, 1,182,180,248, 43,127,245,175,241,214, 91,111,241,254,135, 15,216,
-221,222, 97, 56, 28,114,239,222, 61,198,103,231,156, 31,159,113,255,254,125,202,178, 36,201, 82, 28,207,163,212, 26, 85, 25,253,
-131,188,170, 40, 84,197,100, 54, 35, 8, 2,178, 56, 35, 79, 98,118,183,183,136,162, 5, 89,150, 17,132, 62,139,197,194,116,221,
- 74, 77,158, 22,100, 73, 78, 26,103, 38,246,184, 14,170,212,100, 89, 74,208,243, 8, 3,159, 36, 90,182,194, 47,205,202,165,148,
- 54,197, 74,103, 70,190, 98, 62,211, 20,124,117,234, 91, 41,163, 85, 47,132, 41, 34, 26, 64, 93,213, 56,213, 9,218, 32,221,104,
-217, 75, 46,239, 13,186,174,106, 49, 48,150,180,144, 88,107,227, 88, 5, 66,163,132,106,131,111,227, 88, 39,132, 52,203, 55,171,
-110,146, 85, 45, 40,164,154,106,174,246, 2,160,249,126, 93, 23, 87,168,141,157,112,235,239,255,215,127,247,159, 41, 3,171,160,
- 44, 11,146, 56, 34,203, 82,202,178, 36,207, 13,104, 69, 85, 21,121, 89,144,101, 25,121, 94,182,213,177, 22,180,139, 98, 67,187,
-176,234, 10, 95, 85, 80, 86, 5, 65,175,215,201, 52, 75,164,201, 1,234,172, 10, 92,203, 69, 34,169, 84, 69,165,149,201, 70, 44,
-176,164,133,101, 91, 70, 41, 71,107,164,170, 13, 83,132,249, 49, 66, 84,104,161,113,164,211, 86,220,166,187, 96, 4, 70,148,170,
-106,246,144,120,102, 80,111, 45, 65,105,184,191,141,196,169,168,233,108, 98,197, 54,181, 13,232,173, 26,154,110,103, 97, 77,246,
-188, 98, 78, 34,100,123, 0,187,207, 25, 13,244,213,106,109, 83,171, 91, 10,187, 61,241,204,173,230,102, 10,105, 0, 37, 82, 55,
-118,105,141, 46, 97,203,199,110,168, 94,210,186, 4,216,200,218, 1,171,121,222,182, 77,114,102, 53,247,107,183,230,245,221, 91,
-227,162, 37, 44, 27,203,114,145,150,109, 94,183,118,111, 73,187, 78, 74,228,138,195, 88,179, 47,180,101,100, 40,133,172,177, 6,
- 82,214,254,235,162,189,175, 29, 83, 46,229, 87,155,125,216,156,103, 53, 50,119, 50,155,113,126,126,206,173, 59,183, 25, 14,135,
- 6,184,212, 11,120,122,114,138,235, 58,244,135, 67,250,253,144,178, 82, 40, 85, 25, 32,148, 82,245,254,108,142,137,181,113, 59,
-155,253,221,238,119,121,121, 12, 88, 51,163,121,214,109,253,220, 64, 10, 20, 13,133, 77, 24, 32,103, 11,113,171,147,157,202, 36,
-166, 82, 74, 35,108, 34, 12, 47,191, 84, 21,101,158, 83,230, 9,158,235,128,176,201,114,133,235,247,209,194,226,236,124,194, 91,
-111,255,132,223,249,173,127,207,197,120,194,214,246, 46, 7,135, 55, 25, 79,230,156,143,199,148, 72,158, 28,159,178,187,125,131,
-157,237, 61,142,142,158,178,179,179,199,193,225, 33, 31,127,246, 25, 23,211, 9,179,249,156, 59,119, 95,226,165,251,119, 41,138,
-130,199, 71,143, 77, 55,196,182,176, 45,139,188,204,248,252,232,115, 94,249,202, 43,220,186,125,147, 7, 31, 61,224,252,252,140,
-189,189,221,182,203,167, 17,248,189,128,209,248,130,143, 63,249,148, 94, 96,146,136, 44,203, 56, 60, 60,224,141,215, 94, 99,255,
-198, 30, 81, 98,218,171, 69, 81, 50, 28,110,213, 64, 49,205,246, 96,139,243,179, 17,174,229,180, 98, 61,131,173, 1,139,229,146,
- 79, 62,253,132, 47, 30, 61,230,119,255,253,239,240,211,159,188,195,222,222, 46,243,249,140,251,247,239,177,179,179,195,157, 59,
-183,153,205,102,236,238,238, 50,159,205, 57, 61, 61,101, 52, 26, 49,232,135,216,150,228,157,183,127,204,241,147,199,252,224,135,
- 63,224,139, 47,190, 64,105,141,235,185,128, 48,251,183, 44, 73,211,148,119,223,125,151,239,125,239,123,252,201,159,252, 9,239,
-253,217,187,188,253,214, 91, 20,105, 70,156, 38, 72, 33,120,245,213,175,176, 61, 28,176,187,179, 77, 85, 22,148,170, 34,138, 98,
-126,252,214,219,140,198, 19, 92,207,227,198,254, 62,190,231, 50, 30,157,179,183, 51,164, 42, 50,166,147, 41,131,193, 54,121, 89,
- 94,202,152, 42,152,207,230, 76,167, 83, 19, 36,164,197, 75,247, 94,226,224,224,144, 36,137, 73,211, 12,223,247, 24, 14,135,236,
-221,184, 65,145,230,102,123,235,109,109,197,120,234, 96, 54, 30,143, 73,211,148, 6, 59,149,231, 57,139,197, 2,223,247, 9,194,
-128,249,124, 74,146,166,248, 65, 15,219,113,216, 26, 12,217,222,222,198,118, 44,182,182,182, 72,226,132, 94, 47,224,229,151,239,
- 51, 26,141, 17, 66,224,121, 62, 39, 39, 39,220,189,125, 7, 93, 84,252,240, 79,255,148, 82, 85,220,127,249, 62, 69,169, 40,202,
-130, 48, 12, 81, 2,142,143,143,121,252,248, 49, 69, 94,154,110, 89, 98,198,100, 55,246,118, 73,210,148,188, 72, 1,152, 78,167,
- 38,137,149,102,124, 16,134, 33, 97,216, 39, 75, 50, 38,147, 17,223,254,246,183,217, 59, 56, 32,137,150, 36,177,193,202,152,206,
-134,219,206,165, 69, 29,148,215,177, 39,171,157,175, 53, 89,112,125,213, 36, 71,172, 43,244,233, 78, 85,173, 47,221, 26, 27, 6,
-142, 37, 36, 82,218,181,138,163,233,152,233, 22, 21, 94,219,141, 11, 93, 19, 97,140, 48,137, 82,181, 96,150, 22, 43,223,183, 46,
- 91, 46,196,101, 28,186,122, 47, 87,100,166, 91,237,247,162,168, 40,138, 12, 91, 26,244,161, 37, 61, 92,207,208, 75,170,170,160,
- 84, 10, 44, 1,149,166,170, 74,148, 46,112,221, 10,187, 40,161, 6, 45, 8,203,105, 23,172, 70,173,200,178, 28, 92,219,162,172,
- 52, 74,171, 75,245,156, 90, 24, 64, 8,163, 49, 93,149,149,105,123,202,154, 54,129,162,172, 42, 42,101, 90,165,174,112, 55,183,
-174,133,117,185,115,181,108, 3, 96, 51,167, 23,181,218,153,210,138, 47,251, 79,211, 53, 68, 89,159,215, 95, 6,250,110, 5,126,
-165, 82,215,235,243,213,171,149,182,104,252,129,197,213,217,104,119, 38,187, 58,226,232,126,159, 6, 97,175,156,184,154,205,218,
-237, 90,200,141,227,146,231, 42,230,233,103,200,167,114, 85,150,118, 83,230,116,221,119, 88,141,160, 74,119,118,254, 28,160,201,
-186, 14,188, 20, 22, 73,146, 19,197, 41, 26, 73,216, 31,226,184, 62,149,170,209,180,190,199,104, 60, 38,236,247,113,253, 61,164,
-109,129,212,216,142, 67,149,169, 21,237,254,231,113, 83, 55,238,135, 23,208,246,127, 38,226,178, 94, 84,228,134,241,184, 80,151,
- 64,159, 6, 24, 68,157,224, 89,210, 54,137,154,176,201,203, 18,141,233, 86,156,158,158,242, 59,191,251,251, 60,120,248, 9,203,
-101,140, 16, 22, 95,251,218, 27,156,159,159,243,225,251, 31, 96, 57, 54,101, 94,160, 69,193, 43, 47,221,161, 42, 42, 62,120,239,
-167,124,243,205,111, 17, 69, 17, 15, 62,124, 15,199,117,145, 90,241,243,111,126,139, 94, 47,228,201,147, 39, 40,165,216,221,221,
-229,236,204,204, 86, 95,122,233, 37,170,170,226, 27,223,248, 6,219,219,219,124,246,217,103,204,231,115,124,223,167, 40, 10, 92,
-215,101, 54,155,177,183,183, 71, 28,199, 28, 31,155,214,244, 96, 48, 96, 58,157, 18,167, 41,147,201,132, 79,190,120,132, 99, 9,
-230,203, 37, 7,135, 55,152,207,150, 28,159,156,209,243, 60, 94,187,255, 10, 31,127,254,152, 69,253,185,199,103, 35,158,156,143,
-248,214, 95,248, 38,105,161, 40,180, 32,157,205,121,239,189,159, 1,112,247,238, 93, 44,199,101,184,189,131,101,185, 80, 85, 45,
-240,171, 80, 21, 31, 60,124,192,206,206, 14,174,239, 17,103, 41,159,126,241, 57, 31,125,244, 17,121,158,147,101, 25,165, 86, 36,
- 89,134,235,106,210,243, 9,121, 89,240,232,241,111,146,166, 41, 85,173, 30, 23,250, 61,242, 60,231,198,238, 30,227,241,152,157,
-157, 61,230,203, 5,195,126,200,193,205, 91,196, 89,202,247,191,255,125,246, 15, 14, 65, 10, 14,111,221,164,168, 42, 70, 23, 23,
- 8,177, 67,224,249,100,105,193,232,244,152,251,247,239,243,254,251, 31, 83,150, 10, 41, 45,122,189, 30, 89,148,183,199,218,243,
- 60,230,147, 57,239,254,228,207,232,245,122, 44, 22,115,188,160, 71, 16,244, 73,211,148,211,211,115,116, 81,178,181,181,133,231,
- 59,181, 57, 77,134,210, 37, 58,213,164, 89,108,174, 17, 11,162,120,193, 50,154,215,177,169, 36, 47, 52,243,249,180,197, 76,229,
-121,142, 82,138,249,124,110, 58, 1,149,161,134, 38, 81,204,217,217, 25,119,238,220,106,215,131, 40,138,232,247,251, 76, 38, 19,
-164,128,163,167, 39, 96, 59,184, 65,200, 96, 48,192,241, 92, 78, 62,249,148,147,243, 51,158, 30,159,114,118, 62,166,170, 52,149,
-134,188, 42,177, 61, 35, 76,212,116,161,146, 44,163, 44, 20,232, 2,116, 74,154,154,235,217,245, 34, 14, 15, 14, 56, 58,138, 56,
- 58,122,194,214, 98,134,101, 11, 6,131, 62,158,231,177, 88, 44, 58,163,179, 23, 68,170,234, 85,238,207, 70,255,140,181, 84, 96,
-221,215,164,233, 84, 90, 72, 19, 19, 5,200,122,116, 93, 41,117, 9, 54,183,140, 26,162, 80,230, 24,212,106, 39,198,148, 7,163,
-130,184, 70, 51,231, 63,207,181,189,110,191,103, 89,110,108, 12,133,196,118, 36,170,172, 80,243, 18,161,161, 82, 5,131,193,128,
- 30,158, 81,136,170,231,140, 85,165,169,202,138,162,202,169, 16,173,152, 65, 83,221,217,150,107, 84,145, 28, 9,149,194,182, 37,
-158,231, 33, 45, 83, 69, 23,101,129, 37, 76,197,135,172, 59,200, 77,130,128, 85,171,239, 8,108, 97,129, 18,151, 66, 47,117, 75,
-212, 84,215,102,150, 81, 20,170,157, 67, 54,243,255, 70,250,243,185,139,172,184, 10, 44,219,244,250, 54,152,119, 90,176, 77,165,
-248, 60,191,226,103, 33, 35, 53, 2, 45, 21,235, 24,249, 77, 65,188,139, 42,237,218,129,174,100, 29,107,243,253,174,200,139,224,
-122, 13,227,245,217,122,215, 21,200, 18,114,163, 75, 80,243, 58,245,156,179, 80, 74,121,125, 96,147,102,222, 44,158,131, 59, 88,
-217,127,114,149,135,125,122,114,206,201,201, 89, 43, 52, 19, 69, 17,142, 99, 16,223,113, 28,211,235,133, 76, 38, 99,158, 60,121,
- 74, 28,199,220,184,113, 3,191,215,100,247,242, 75, 73,227,110,126, 94,190,216, 90,178,137, 38,168, 59,198, 50, 66,213, 26, 25,
-170,109,199,173,143, 71, 76, 7,170, 86,116,180,204, 60,175, 44, 53, 90, 75, 74,165, 41,202,148,217,114,201,217,217, 25,103,103,
-103, 12,135,219, 28,222,187, 71, 20, 69,204,102, 51,150,203,165,185, 70,164,192,117, 61,162,249, 5, 18,193, 95,250,246,207,243,
-228,201, 19,178,188, 4, 93, 48, 62,191,224,149,151, 95,198,243, 28, 62,253,244, 97, 45, 92,146, 51,157, 94, 96,219,182, 9, 62,
-153, 1,133, 13, 6, 3,126,246,179,159,181,163,185, 60,207,217,169,101, 80, 95,125,245, 85,142,142,142, 56, 59, 59, 67, 41, 85,
-131,196,204,204,118,107, 48, 96, 30, 45,249,228,211,207,113, 92,139,101, 28,113,118, 97, 20,224,250,193,128, 56, 78,185, 24,255,
-148,221,237, 93,102, 23, 19,108,219,102, 26,101,108,239,238,160,132,199,197, 60,161,228,140, 32, 8,184,121,120, 27,219,182,121,
-252,248, 11,110,236, 29,112,126, 54,198,117, 13,122,218,113, 93, 38,147,137, 89,151,106, 69,183,233,108,134, 86,138,155, 55,111,
-114,126, 54,166, 23,110, 97,187, 70,158, 53,203, 21,210,246, 73,210,148,178, 52,141, 18,199,233,225, 57,194,240,218,203, 18,223,
-235,131,112,144,150,215, 22, 54, 85,101,148,228, 46,198, 19, 16,146,162, 22,240, 57, 31, 93,240,228,228, 41,187,187,187, 28,238,
-239,113,118,118, 70,145, 44,185,185,191,203,221,187,119,121,251,173,119, 91,229, 62,128, 36,142, 91,165,196,217,108,102, 2,251,
-108, 89,175,169, 46,121, 86, 48,157,206,137,162,200,140,152,202,188,149, 72, 46,235,138, 63,207,205,154,238,251,126,139, 25,153,
-207,231, 70,226,182,102,129, 56,142, 99,186, 45,121, 14,194,204,190, 45,203, 66,106,136,227,216, 80,185,148,194, 18,146, 56,142,
- 25,141, 12, 79,253, 23,191,253,109,148, 82,140, 70, 35,252, 48,224,199,111,189,141,227,216,216,158,203,131,143, 30,178, 92, 46,
- 65, 72, 30, 31, 63, 97, 81, 3,247,206,206,206,112, 28,143, 32, 8, 26,202, 21, 89, 89,144, 87,138, 52, 47,219, 17, 73,119,173,
-200,178,140,229, 50,198,177, 76, 5,255,135,127,248,135,140,199,103,252,141,191,249, 95,240,230,155,223, 36, 77,103,117,226, 99,
- 63,251,154, 91,195,104,117,215,108, 33, 86,197,234,215,145,242,207, 98, 3,181,154, 18,218,170,187,104,142, 89,103,171,206, 90,
- 97,131, 42, 10,211,242, 87, 93,235,233,186,154, 23,250,203, 21, 1, 27,183,169, 67,109,173,223,107,159, 60, 53, 11,226, 32, 12,
-233,245, 60,202,162,160, 40,178, 58,232, 10,226,200,180, 71, 60, 87,182,109, 91, 19,120, 77, 43,216, 18,102, 78, 89, 99,140,168,
- 84, 69, 20, 47, 77,111,223,178, 8,252, 30, 82,130,155, 43,252,158,219, 6,114,173, 27,129,123, 11, 48,138, 87,121, 89,152,205,
-147, 2, 91,154, 4,161,218,232,135, 45, 58, 20, 59, 35, 66,208,206,240,181,110,181,172, 27, 64,198,122, 38,180, 98,205,122,141,
-223,182,238, 86,190, 93,240, 90, 3,108,106, 65, 73,122, 99,101,170,175,225, 53,179,209, 47,251, 25, 74,114,172, 83,158, 86,136,
- 25,173, 64,104,115,130,138, 90,139,125,133, 22,133, 49,248,232,218,177,182,222,234, 29, 63,249, 43, 6, 18, 93, 62,127,231,249,
-238,235, 95,180,243,241,172,142,128, 98,115, 34,162,215, 41,120,221,138,190, 30,185, 60,125,122,202, 98, 97, 42, 7,203,114, 8,
-130, 62,150,180,177, 45, 7,223,235,225,216, 46,142,227, 17, 69, 9,139,197,130, 48, 28,224,121, 30,121, 81, 62, 83,184,231,197,
- 41,105,214, 51,159,191, 52, 52,218,204, 48,104, 93,177, 58, 45,184, 70, 64, 67,212,231,180,235,186,216,150,139,208, 37,185, 42,
-169, 42, 69, 85, 22, 45,202,183, 31, 14,249,232,131, 15,249,191,255,237,111,112,242,116, 4,194, 98,111,111,159, 27,123, 7, 60,
-122,244,200,128,168,162,136, 94,207, 44,172,113,188, 36, 94, 76,201,147,152,175,191,241, 6, 95,124,250,129,209, 91,143, 18, 74,
-165,249,218,235,175, 35,109,151, 79, 63,121,136, 31, 4, 44, 22, 51,132, 16,236,237,237, 83,213,186,211,113,150,114,231,206, 29,
-222,123,239,207,144, 82, 50,153, 76, 8,195,144, 94,175, 71, 16, 4,108,111,111,243,222,123,239,113,126,126,142,214,154,126,191,
-143,214,154,139,139, 11, 51,171,223,222,102, 62,159,211, 59,232, 17,231, 37,121,169,144,153,161, 45, 5,129,198,237, 5, 36, 81,
-194,100,177,100,178,140,217,191,113,200,157,123,175,113,251,238, 29,118,110,236,241,117,199,227, 98, 50,226,248,241, 19,178, 60,
-173,145,214, 41,127,241,219, 95, 97, 58,157,146,149, 73,173,166,104,108, 82,117, 85, 81, 84, 37,147,233,212,252,134, 36,197,178,
- 93,118,118,118, 91, 65, 34, 63,232,225,251, 61, 22, 81, 68, 94,148, 12, 6, 67, 46,166, 19, 60,207, 35, 75, 82,226, 36, 55, 85,
-155, 45, 25, 79,230, 20,101,197,254,225, 45,146, 44,227,228,228,132,163,227,199, 20, 69,193,206,206, 14,203, 40, 34,202, 50, 22,
-113,196, 87, 94,127,141,162, 40, 56, 61, 31, 51,232,185,204, 22, 75,116, 85,160, 42,205,214, 96,136,239, 7, 88,210,166,210,198,
-152, 67,218, 22, 61, 63,108,165,102,109,223, 38, 12, 7, 68,209,130, 60, 75,176, 60, 73,208, 11, 17, 90, 98, 41, 97, 89, 0, 0,
- 32, 0, 73, 68, 65, 84,225,123, 33,150,128,188, 30,153, 58,142,131, 68, 19,248, 30,195,225,160,165, 47,150, 2,188,122,157, 20,
-194, 54,220,112, 75,212,213,114, 69,145,102, 88,190,143,108,176, 84, 21,100, 89, 65, 89,229, 53,224, 45,225,235, 95,255, 58,105,
- 86,240,209, 71, 31,113,235,214, 45,126,248,163, 31,145,165, 41,174,231,241, 26, 2,219,113,185,152, 76,153, 45, 34,166,211, 41,
- 10,131, 89,201, 10, 83, 0, 22,149,137, 9, 84,138,211,179,115, 51, 78,200,226, 90,216, 76, 18,184, 30,142,231,163,133,108,199,
- 5,231,227, 17, 55,110,236, 18, 39, 49,199, 39,167,168,138, 58, 49, 41, 9,130,128, 34, 45,128,106, 69,125,242, 89, 65, 82, 53,
-168,247,214,217,238, 42, 30,106,157, 10,119,165, 82,111,198,167, 24,155, 91, 45,141, 41,154,194, 24, 59,181,193, 95, 25,124, 89,
- 99,232,164, 91, 40,183,172, 71,182,246, 70,195,179, 23,167,215, 94, 10, 17,117, 95,103, 95, 92, 76, 73,146,136, 65, 24,114,247,
-238,109,118,119,140,204,163,208,170,206,252, 74, 44,105,117,190, 68,212,237, 34,137,101, 57, 20, 85, 69, 28,167,196,113,218, 86,
- 75, 85,169, 12,215,212,243, 72,189,148, 60,207,234, 11,121,200,238,238,110, 93, 41, 53,136, 95,141, 99,187,216, 64,161, 42,211,
-150,208,166, 19, 16,103, 41,174,227, 64,163,236, 87, 87,240,198, 68,165, 54, 12,113,108, 44,203,180,224,181,165,215,172, 1,197,
- 51, 43,229, 46, 58, 93,174,207, 79, 54,157, 24, 82,172,209, 9, 58,192,168, 63, 39, 71, 89, 95, 67, 65,123, 94,176,233, 10,150,
-108,234, 46,173, 91,155, 42, 46, 81,154, 43, 17,165,163, 31,176,174, 39, 32, 58,248,238,107,117, 3, 94,208,229,238,186,223,164,
-132,254,210, 65,245,242, 34, 51,252,234,195,195, 67, 28,199, 97,185,136, 56, 60,184,201, 98,177, 96, 54, 91,176,183,183,131,227,
-120,132,129, 9, 40,147,233,133,225, 50,215,248,194, 70,165,170, 97,125, 60,111,159, 63, 43,139,255, 50,219,126,237, 88, 67,233,
- 85, 21,170,134,114,167, 4, 69, 85,144, 21,133,169,202,108, 23, 71, 74, 51,110, 87,154, 71,199,167, 28,159,156,147,229, 37,150,
-237,226,186, 30,170,130,233,116,206,120, 60, 49, 73, 46,146, 44, 43,112,109, 9,170,194, 17,138,187, 47,223,101, 54, 58,198,183,
- 52,163,201, 5, 66,195,157,219,119,176,116, 69,180,156, 50,232, 7,204, 23, 17, 65, 24,178,189,189,141,170, 96, 60, 26,179,191,
-191, 79, 89,150,124,240,193, 7, 8, 33, 72,146,132,193,192,240,203, 15, 15, 15,241, 60,143,159,252,228, 39,140,199, 99,124,223,
-199,243, 60,163, 16, 87,163,192,171,202,168,154,237,236,236, 80,148,138, 56,142,240,124,215, 40,187, 69,115,150,203, 37,158,219,
-195,117, 93,198,163, 25,131,193, 14,113, 86, 48,154,204,232,245,135, 60, 61, 57, 35, 45, 83,210,104,201,112,184,197,226,201,130,
-162, 40, 56, 56, 60,160, 44,170,182, 90,109, 12, 78, 28,199,169,193,101, 69,141,120,247,136,210, 4, 53,155,114, 99,103,143,158,
- 31, 80,150, 37,179, 69,196, 50, 78, 73, 50, 35, 98,147,166,185, 73,134,155, 0, 87,150,134,139,238,122,100, 89,134,235,120, 40,
- 5,167,167,231,204, 46, 38,248, 61, 35,239, 26, 14,182, 72,243, 2, 41,108,250,253, 1, 89,154, 99,219,118,219, 61, 56, 56, 56,
-224,254,157,155, 60,250,236,115,131,124, 47, 74, 6, 91, 33,243,165, 1,234, 89, 66, 50,232, 7,244, 2,143,217,116,193,124, 49,
-101, 60, 30,227,120,166, 75, 82, 20, 5, 72, 73,150,166,148,150, 64,248, 94, 59,147,111,190, 39, 8, 2,118,119,119,219,209,137,
-227, 56,173,230, 60, 64,158,231,196,231,231, 4,225,192, 8, 18,149,101, 59,143,207,178,140, 44,203,204, 44,222, 49,235,199, 43,
-175,188, 98,198, 16,245,104,224, 63,252,135,255, 80, 75,226, 22,104, 41,120,255,195, 7, 45,234, 59,205, 51,150,113, 66,208,239,
-183,199,161, 40,138,149, 34, 43, 25,229, 20,105, 6,104,202, 42,199,119,141,214,124,105,149,237,235, 77,161, 86, 48, 26,141,144,
- 66,183,231, 78, 90,227, 8,146, 36,185,226, 26, 7, 47, 46,158,197, 11, 82,123,175,163,251,130, 25, 53,179,198, 91,111, 92, 76,
- 27,223, 5,179, 94,201, 75,150,208,218,250,248, 76, 57,238,103,120,147,172,128,120,187, 65,221,178, 12,200, 34, 78, 83,178, 44,
-107,245,135,203,220, 28,212,173,173, 65,171,198, 36,101,221,230, 43, 10,211,118,114, 28,226, 52, 99, 60,153, 48,155,205, 59,237,
- 9,171,214, 57, 14, 89, 44,162,246, 96, 26,231, 25, 11,207,119,219,153,186,231, 88,248,190,143,116,108,202,202, 44, 98,158,235,
-130,163, 41,179,212, 0,239,180,170,101, 92, 13,168,168,172, 49,218, 13,185, 43, 78, 51,132,176,112, 28, 27,144,100, 69, 86,183,
-121,220, 21,235,206, 77,162, 30,114,157,247,174, 55, 4,144,181, 54,114,213, 34,219,171,186,117,252,124, 3,151,231,181,113,175,
-158, 65,114,133, 52,117,189, 8,137,188,148,131,237,250,109,119,103,233, 66, 92,138, 25,202,171,173,168, 85,145, 81,177,113,100,
-124, 93, 18,241,188,238,243, 38, 57, 88,253,140, 74, 87,175, 33,196,117, 11,131,239,176, 15, 26, 31, 50,173,145,150, 69, 81, 86,
- 8,105, 81, 42, 77,146,229, 60,126,114, 76, 28,165,104, 1,182,227,145, 21, 19,130, 32,192,113,189, 58,145,180,112, 92,167,214,
- 38, 86,172,155,177,234,103,102,202, 98, 61, 89,126,118,226,214,177, 64, 93,217,161,141, 38,132,110,182, 97, 21,152,211,116,130,
-100,173, 75,158, 21, 57, 69, 94,213,213,167, 38, 77, 83,162, 52,227,227, 79,191,224,183,127,231,119, 57, 57, 57, 35,232,245,185,
-121,243, 22, 81,173, 43, 94, 22, 19,180,144,140, 39, 83,118,183,183, 40,242,148, 71,143, 30,241,218, 87,238,241,173, 55,126,145,
- 50,141, 16,122, 31,173, 53,113,146,178,189,179,207,249,116,202, 39,159, 63,198,114,123,148,121,140,210, 37, 7, 55,110, 48, 91,
- 44, 8,195,144,253,253, 61,142,142,142, 76,251,181,166, 78, 53,139,211,253,251,247, 73,211,148,183,222,122,139,178, 44,217,217,
-217,105, 3, 65,150,101,120,158,199,238,238, 46,179,217,172,109,207, 91,142, 81,185,179,164,198,150,176,183,213, 55, 64, 45,219,
-229,189,119, 63, 52,235,142,101, 49,153, 45,137,227, 24,203,241, 40, 19, 35, 50, 20,250, 62,123,123,123, 4,126,207,116, 95,242,
-148,207, 62,251, 2, 33, 52, 73,150, 50, 28, 14,107,233, 86,163,240, 38,132,133,101,187,164, 89, 1,181,143,252,120, 50,161, 23,
-134, 8, 91,112,126,126, 74, 20, 69,166, 98, 22,130,101,156,225,216,158, 25, 79, 58,134, 65,161,129,188, 85,138,129,167, 39, 39,
-244, 7, 1,123, 7,251, 68,209, 2, 45, 4,174,235,114,231,206, 29, 78, 78,207, 81, 85, 69,127, 48, 48,238,120,182, 69,149, 39,
- 20,121,197,217,217,136, 48, 12, 73,163,148,158,237,114,239,238, 29, 30,126,252, 17,101, 94,145, 87, 21, 89,150,152, 4,196,117,
-217,222, 30, 50,157,206,233,247, 3, 20,154,209,232,156,126,191,143, 16,130, 56, 78, 40,243, 12,203, 50, 51,121,160,214,243,247,
-216,222,222,230,221,119,223,165,170, 42,250,253, 62,253,126,223,208, 28,107,253,254,233,232, 28,132, 69,154,166,109,203,187,168,
- 19, 71,128, 48, 52,162, 54,139,197,130,201,116,142,148,146,199, 71, 95,144,101, 25,210, 54, 35, 19,219,117,217,222,189, 65,148,
-100,204, 22,115, 35, 35,156,230, 40, 36,190, 31,112,126, 62, 38, 43,114,170,210,124,166,193, 91,213,226, 79, 82, 98, 89,146, 44,
-173, 16, 20, 44,163,152,188, 80, 45, 24,204,169, 42, 2,223, 24,246,160,171, 14, 0,205, 4,203, 56,142,113, 45,251,153,235, 99,
-179,190, 8,161,175, 25,171, 90,215, 82,153,185,230,202,239, 74,205, 90,210,110, 21, 87,165,148, 88,118,189,246, 42, 69,169,160,
-212, 53,166,189, 17,138,209,242, 82,232,109, 3,133,249,138,236,244, 26,229,249,234, 10, 36, 87, 64,118, 0,182,214,154,254, 32,
- 96,107,107,139, 94, 63, 96, 25, 69,148, 69,134, 99,217,248,190, 1,187, 20,101,134, 20, 54,142,119,153,101,107, 1,174, 31,224,
-250, 61, 28,199,136, 75, 52, 0,185,162, 40, 12, 8, 0,139, 36, 49,179, 26,219, 54,226,251,227,241,132,162, 14,186,174,231,160,
- 43,211, 94, 84, 24,127,221, 48, 12,185,121,243, 38,123, 59, 91,244,122, 33, 85,153, 34,180,213,162,204, 13, 25,202, 54,173, 29,
- 48,173,196,104,129,192, 98,107,123,128,148,154, 36, 49,159, 63, 28, 58, 27,197, 82,158, 5, 20,235, 50,172,148, 0,202,106,101,
-142,210,206,151,107, 95,231,134,111,253,101,131,249,151,159,157,108, 80, 71,234,202,236,174,253, 38,125,229,189,155,249,146,122,
-205, 54,244,121,149,246,149, 78,130,124, 49,245,181, 23,249,221, 47,106,132,115,249,185,178,157,217,237,237,237, 35,165,228, 98,
- 60,101,116,110,102,191,243,217,178,125, 76, 43, 81,119,153,170,118, 81, 72,146,196,224, 62,214,142,223,159,119,251, 94, 4,155,
-177,122, 12, 47, 49, 34,173, 30,180, 90, 93, 70,138,162,172, 89,180, 22,150,107, 27,103,176, 56,229,248,248,132, 39,199, 79,249,
-233, 7, 15, 57, 29, 79,217, 63,188, 69, 24,246,169, 10, 69,154,228, 45,239, 25,105,177,181, 99,218,151, 71,143, 62,103,103,216,
-227, 91,223,252, 58,127,249, 47,254, 60,182,172,160, 74, 16, 74,145, 85,154, 94,184,197, 60, 74,248,163, 63,253, 17,111,255,244,
- 93,166,211, 57, 55, 14,110,225,184, 22, 82, 10,250,253, 62, 15, 62,250,132,163,163, 35,118,118,118, 90, 11,206,139,139, 11, 6,
-131, 1,203,229,146,143, 63,254,152,162, 40, 8,130,160, 85,244,115, 93,151,157,157,157,182,202,107, 1, 82, 73,130,143,203,108,
- 58, 33,240,109, 6,129, 79,153, 45,153,142, 83,110,236,221,228, 96,127, 7,239,165, 45,148,114,216, 63,188,205,124,185,224,248,
-248,152,249, 98,202,225,254, 46,175,190,250, 50, 84, 37, 73, 20,163,148,226,226, 98, 74,191,223,103, 48, 24,240,224,163, 15,219,
-224,100, 2,126,222,218,241, 42,165,240, 60,143, 36, 77, 41,242,156, 32,236, 49, 28, 14, 9,251, 1,174,111,102,240,210,182, 9,
-189,126, 27, 60, 12, 80,109, 65,154,228,148, 85, 78, 63, 28, 34,109,129,227,184,196, 81,138, 37, 33, 12, 7,244,122, 30, 79, 79,
-207,216,219,221, 39,201,115, 28,219, 99, 54, 91,176,187,187, 75,191,223, 39,154,229,220,191,127,159, 44,158, 51, 25,157, 51,155,
- 76,184,123,251, 14, 47,191,114,151,167, 39, 79,140, 52,170,235,210,223, 26, 16, 39, 17, 89, 30,115,251,246,109, 28,199,110, 25,
- 19,158,103, 51, 24, 12, 24,143, 70,220,185,247, 18,243,185, 41,168, 26,211,149,233,116,202,214,214, 22,183,111,223,230,230,205,
-155,173, 9,203,238,238,110, 43,154,179, 92, 46,153,204,166, 80,131, 48,165, 52,179,243,166, 66, 6,163,243,127,227,198, 13, 28,
-199, 33,203, 50,198,227, 49,159,125,246, 25,189,158, 73,162,118,246,246,168, 52,124,246,197,163, 22, 72,153,213,202,111,150,101,
-241,201, 39,159,144, 21,121,219,189,109,206,125,215,117,205,168,160,215,195,182, 77,114,101,216, 86,185,209,132,119, 93, 44,203,
- 56, 11, 70, 81,140,239, 59, 70, 95,160,150,155, 53, 58,248, 60, 83,205,242,234, 99, 87,245, 79,186,174,107,215,117, 72, 47,181,
-246,185,210,138,215, 90, 48, 30, 79, 40,149, 66,162,144,142,196,117,109, 44,187, 6, 64, 87, 26,219,118, 77, 50, 41, 29, 44,171,
- 97,211, 88,151,237,248, 14,218,125,157,114,188, 9, 13,127, 37,168,235,171, 60,125,235,239,252,202, 95,252,103, 73, 26,115,243,
-240, 16,215,181,205, 60,221, 22,196,113,132,194, 80,195,148, 42,177, 28,155,162,200,201,178,148,188,200,169,170,146,254,112, 64,
-146,230, 88,182,141,239, 7,248,126, 15, 75, 26,103, 31, 93,195,246,109,199,197,243, 77,133,148, 21, 70, 98, 81, 11, 97,168, 69,
-101, 69, 89, 21, 8, 41,153, 92,204,209, 64,154,230,166, 10, 89, 70, 20, 89, 66, 28, 47, 89, 44,230, 36, 89,194,116, 54, 37,203,
- 11,146,172,160,215, 31, 24,133,163,247,222,227,228,233, 9,113,156, 34,133,100,177, 88,242,248,241, 17, 69, 97, 20,143,148,210,
-228,121,129,214, 16,134,125, 60,207,167, 40, 74,242, 60,107, 51, 57, 41, 45, 51,167,172, 20,210,178, 65, 74, 52, 2,105,153,121,
-136,223, 11,136,226,132, 71, 71, 71, 44,151, 17,190,223,163,170, 20,167,167, 39, 4, 97,128,227,152,147,176,170, 20, 69, 81,178,
-181,181, 77, 85, 41, 99, 15,168,193,182,157,214,144,161,235, 30,102, 48, 3, 13, 87,178, 70, 70,118, 60,250, 86,104, 80, 82, 55,
- 83, 27,163,103, 47,205,246, 53, 51, 50,203,178, 59,252, 71, 97, 40,101,150,213, 86,124,155,171,100,209, 34,240,187,237,224,102,
- 91,155,139,179,155,153,118, 21,228,106,155, 63,131,143, 80,186,165,107, 52, 55,209, 42, 79,203,154,247, 45, 90, 60, 68, 99,251,
- 99,217,151, 84, 57, 67, 1, 20,181,131,175,110,103,254,101,105,122, 51, 90,105,202,162,196,177, 29,164,101,142,245,217,211,115,
-108,203, 33, 77, 76, 59,116, 62, 93, 80, 22, 21,190,215, 67, 32, 89, 46,150, 88,150, 36,207, 50, 4,154, 48, 8, 24, 14,134, 84,
-165,145,156, 20,104, 83, 49, 72,171,133,189, 54, 28, 87,173,180,161, 36,182,255,117,221,240, 86, 31, 19,215,101,247,141,101, 98,
-179,143,187,251,185, 14,235, 18,137, 82,218, 92, 11,212,115, 56,109,180,173,203, 74,225,121,230,124,139,162, 20, 75,186,104, 4,
- 63,250,225,143,249, 87,255,215,191,102,153, 20,236, 31,220,196,247,122, 92,140, 46, 24,143, 70, 84,149, 66, 11,147, 16,244,130,
-144,243,243,115,102,243, 25, 7, 55,246,216, 26,246,160,204,249,202,203, 47, 97,169,156, 42, 95,162, 85,110, 36, 73,147,136,188,
-172,248,240,193,135,156,157,143,121,237,245,175,242,248,201, 19, 92,215,103, 48,220,226,163, 79, 63,229,233,241, 73, 91,193,105,
-173,153, 78,167,220,187,119,143,249,220, 80,198,128,150, 90,101,219,246, 10, 48,169,105,131, 43,101,146,119,199,181,240, 60,151,
- 50,143,145,186,226,151,126,225,155, 36,209,140, 95,250,249,159, 99,103,123,139,167, 79, 79,240,252, 0,180, 36, 43, 11,102,147,
- 25,182,132, 34,207, 24,132, 61,110, 29, 30,112,113,113, 65,146, 36,166,154,174,197, 75,148, 82,100,185,161, 78,165,169, 81,123,
-171,180,194,170, 5,136,164,101,209, 11, 2, 16,144, 36, 17,179,249,148,189, 27,123,216,142, 69,191, 31, 82, 20, 57, 66, 11, 84,
- 85, 81,228, 57,121,150, 81,212,173,251,172,204,241, 3,191,246,193, 22, 28, 29, 29,113,235,230, 77,118,119,182,235,196, 38, 66,
- 72,193,116, 50, 35, 28, 12, 40,139,138, 52, 75, 13,133, 44,232,177,152, 92,224, 57, 22,161,239,241,209,195, 7, 4, 61, 31,199,
-177,233,247, 67, 70,163, 17,182, 35,185,152, 92, 48, 62, 31,145,103, 41,105,150,162, 84, 69,127, 16, 50,157,142, 1, 69,145,103,
- 68,203, 25, 66,152,115,180,177,103, 61, 61, 61,109, 43,244,241,120, 76, 20, 69,173,248, 76, 3,180,244, 60,143,139,139, 11, 0,
-122, 65, 15, 33,140, 5,113, 19,204,155,100,215,200,183,246, 72, 83, 35, 47,124,124,122,194,227, 39, 71, 32, 36, 65,216,167, 23,
-132, 40,165,121,250,244,204,204,192, 29, 23, 81,175,163,163,209, 24,207,243,152, 78,167,216,150, 69,180, 92,214,198, 59,198,251,
-189,233, 6, 24,218,162, 1,201, 89, 53,141,180,223, 31, 24,206,186,227,224,251, 30, 90, 25,252, 72, 85,148,228,121,194,207,253,
-220,207,113,112,112, 3, 93, 86,148, 69,142,109,137,214,211, 67,116, 40,100,173, 88, 84, 87,182, 22, 81,183, 22,205,189,144, 86,
- 75, 17,190,170,196, 81, 51,219, 59,207, 53, 70, 59, 74,105,226, 56, 97,185, 92,114,124,114,206,120, 50,225,233,201, 19,110,221,
- 57, 68,163, 40, 85, 65, 81, 22, 84, 74,145,102, 57, 73, 82, 32, 45,155, 94, 16, 32, 45, 11,141, 50,107, 79,221,213,166,166, 26,
-139, 6,179, 38, 37, 53,207,183,126,220,220, 26,170,176,121, 77,253,152,236,198,136,154,166,156, 23,217,138,200,140, 37,180, 81,
-100,242,106,154, 90, 35,130,225,216, 44, 22, 11, 42, 93,210, 11,204,204, 46,142, 99,242, 66,227,120,126, 91,193,163,101,157,105,
- 89,173, 75, 16, 24,176,156, 86,162,149,231,212, 90,131,101,218, 71,149, 22,164, 69,137,116,123, 88,150, 77,158, 41, 70,241,152,
- 11, 93, 34,200, 65, 27, 4,125, 89,105,242, 66,113, 62,158, 49,216,217, 67, 74,155,197,116, 14, 90, 25, 4,125, 29,140,178,204,
-204,235,122,126, 72, 28, 25,234, 76, 28,199,132,161,161, 92,152, 42, 33,170, 71, 10,246,138,142,176, 82,138,162, 52, 52,145,187,
-119,239,182, 62,212,143, 30, 61,226,139, 47,190,224,246,237,219,117,219, 43,198,182,109, 70,231, 23, 45,152,164, 9,128,141,127,
-117, 16, 4,228,121,222, 62,222, 4,175, 38, 96, 54,175,189, 78,141,111, 69,131,127, 45,211, 84, 74,161,171, 12,203,118, 13, 5,
- 79,173, 90,184,170,154, 9, 96,219,238, 70, 74, 88, 55, 19, 93,119, 18,107,146,143,102, 91,215,129, 27,221, 4,160,113,142,218,
-212, 77,216,148, 44,172, 35,226,149,170, 54,226, 29, 44, 41, 77,187,179,222, 71,205, 44,174,105,223,229,181, 58, 92, 85, 85,245,
-111, 52,251,180,217, 11,141, 84,102, 3, 30,242,125, 89,183, 23,171,150,107,175, 81,164,169,209, 12,111, 62,191,107,115,249, 60,
- 16,203,139,204,225, 54,101,248,221,199,139, 44, 55, 99, 28, 33,176, 45, 23, 41, 4, 85,101,248,243,158,239,226, 1,147,217,162,
- 5,125,253,217,187,239,241,193,131,135, 60, 61, 62,229,165,123,175, 82, 89,110,109, 24, 82,116,156,169, 42,132,237, 16, 14,134,
-140, 47,166,244,130, 62, 65, 24, 34, 41, 72, 19, 3,182,210,170,160, 42, 10,138,100, 78, 16,244,112,106, 29,131, 34, 43,176, 45,
-193,225,225,126,139,129,201,203,130,147, 79, 62,225,108, 60,102, 56, 28,214, 85,177,169,206,111,223,190,205,124, 62,103, 54,155,
-161,148,170,175,119,216,217,217,225,224,224,128, 44,203,152, 76, 38,237,104,207,247,253, 22, 68,155,231, 57,201, 50,162, 72, 19,
-182,182,251,120,150,224,213,187,183,217, 10,125,150,113,142, 46, 82, 38,163,115, 44,119, 64, 20,155, 10, 89,149,154, 44, 93,178,
-183,125, 15,215, 22,220,127,233, 14,139, 40,226,195, 15, 31, 50,159, 79, 25, 14,183,145,242,146, 9,211, 80,176,116, 76, 13,166,
-180, 90,159,243, 40, 90, 98,219,146,229,114,206,147, 39,143,217,223,223,175, 53,210,157,182,133,173, 20, 68,113,142, 84,181, 39,
-189, 37,107,234,215,172, 69,157, 39, 89,202,158,189, 77, 16,152,217,252,114,185, 52,114,173,105, 86,207,127, 13, 15,219,177, 37,
-195,225,208,176, 1,242, 1,247,238,220, 53, 21,120,221,237, 26,110, 15,121,242,228, 24, 33, 52,158, 95,219,154, 86, 70, 30,118,
- 60, 62, 39,203, 18, 92,215, 38, 47,140, 92,111, 81, 24, 32,219, 98, 81,181, 66, 50, 39, 39, 39, 43,242,170,121,158,115,118,118,
- 70, 24,134,148,165,113,197, 59, 63, 63, 55, 24, 8,215, 33,138,205,120,196,152,165,168,154, 31, 30,182,231,146,235,186,156,158,
-158, 50,158, 78, 24, 14,135,220,190,109,100,120, 71,163, 17,139,104, 73,208, 31,154,113,109, 61,147,111, 60,227,163,249,130,229,
-114, 73, 22, 39, 88,174, 67,145,230, 20,202,116, 17, 14,111,222, 52,199, 32,141,121,245,229, 87,140,130,156, 48,221,155,217,108,
- 70,150,101, 12,251, 3,138, 44, 67, 2,142,231,145, 37,102,189,189,121,243, 38, 66,105,242, 34,187, 34, 81,190, 42,168,245,229,
-186,110,215, 90, 91,215,146,210,205, 58,215,104,234, 59,142, 67, 56,216,162,208,146,188, 40,200,179,144,151, 94,190, 15,118, 93,
- 21, 40, 13,194, 37,155, 71, 36,177,137, 51,150,180,169, 84,217,142, 20, 87, 92, 31,255,188,236, 27,196,149,248, 97,187,174, 75,
-146, 36,237, 69,208, 44,164, 6, 65, 94, 25, 52,117,221,182,202,178,140,101, 28,181, 11,116,145, 22, 88,182, 15,170, 66,171, 10,
- 42, 51,183, 82,165,153,161,148,121,106,220,144,180,139, 16,118,125, 16,244,202,188,195,243,124,148,150,196, 73,129, 82, 9,158,
-103, 16,241,186,210, 84, 89, 74,191,239, 96,236, 34, 77,182, 67,169, 88,198, 17,185,146,108, 13,119,112, 93,223,100,172, 90, 51,
-155, 47, 76, 64,176,205,236,127,182, 88,178,140, 19,242,162,162, 40,149, 57,129,107, 64, 73,131, 10, 85,101,217, 82, 65, 60,207,
-171, 61,182,141,149, 98,169,105, 47,212,233,108,129,180, 28, 92,199, 71, 43, 51, 27,105,218,122, 73, 93,245, 55, 65,240, 70,165,
-113, 60,139,170,110,111, 55,226, 18,102, 86, 84, 7, 49, 11,148, 86, 45, 5,109,211,130,175,181, 54,156,211, 53,105,200, 38,152,
-182, 46,105, 43,237, 36, 83,173,219,205,251,139,188,149, 17,221,196,249,182, 44, 11,107, 45,200, 55,179, 30, 89, 47, 14,141,216,
- 76,183, 98,239, 6,230, 75,169,213,205,237,171,245,160,222,189, 87, 74, 92,121,190, 65,233, 91, 53,250,219,182,109, 84,165,234,
- 0,110, 83,106, 69,158,151, 88,194,166, 42, 20,158, 99,163, 69, 73, 85,148,181, 86,141, 32,175,181,224, 61,207, 67, 10,129,227,
- 88, 72, 76, 16, 93,204,150,248, 61, 23,207,115, 9,123, 1,186,182, 35, 45,203,146,170,243,123, 54, 5,226,231,206,204,159, 9,
-236, 91, 3,219, 72,115,157,149,229,165, 56,141, 17, 17,201,234, 4,198,107, 19, 51, 41, 45, 30, 61, 62,225,143,191,247,167,188,
-255,224, 67,182,183,119,217,217,223,103,158,148,204,230, 11,178,120,129, 35, 68, 11,254, 75,243,130,188,200, 40, 84, 69, 63,232,
- 1,138,120,182,160, 88,206,168,138, 16, 73,137, 42, 83, 44,169,209,170, 36,138,150,104,219,163,196,198,247, 61,182,183,109, 78,
- 78, 78,112, 93,151,143, 62,253,156, 60, 43,241,107,144,150, 82,138,173, 45,163, 2,151,231, 57,167,167,167,104,173, 91,202,146,
-231,121,248,190,209,132,111,218,240, 89,150,181,199, 57, 73,204,188, 56, 94,206, 17, 55,118, 88, 76, 70,244, 68, 73,186,156,113,
-120, 99, 7, 89,101, 20,209, 12, 75,106,194,192,101, 17,199, 12, 6, 59,248, 69,201,108, 58,166,231,187, 8, 42,170, 44, 37, 23,
-146,192,247, 40,243,148,170,200, 9, 2,159,139,139, 11,178, 36,101,103,107,155,162, 50,109,221,162, 50,215,121,145, 87, 84,165,
-225, 8, 75, 41,205,245, 76, 73, 81,100,140, 70,103,120,174,203, 96, 48,104,169, 92,158,231,146,249, 46, 74, 65,146,165,228,245,
-249,104,198,129, 26,207, 55, 21,233, 32,232,181,186,233, 23, 23, 83, 28,215, 71, 84, 21,158,215,195,118, 29,170,162, 68, 21, 5,
-126,191, 71,169, 74,182,135, 91,148,121,202, 98, 49, 39, 43, 13,110,192,114, 29,150, 73,204,108, 54,227,240,240,176, 22, 35,211,
- 88,182,224,248,241, 49, 55,111, 30, 50,155, 78, 0, 69,130,193, 54, 77,115,227,161,126,255,254,125,130,126, 72, 86,152, 78,132,
- 31,244, 80,104,126,246,193,251, 44, 22, 11,118,118,118, 8, 34,115,124,194, 65, 31,199, 51,193, 90, 90, 78,187, 30, 54, 73,202,
-214,214, 22,194, 54,231,245,209,209,113,221,190, 31,178,181,181, 67, 85,105,230,243,185,225,145, 59, 6, 4, 57, 30,143,201,147,
-148,120,177,100,107,107, 11,223,113, 73,226,152, 97,216, 39, 70, 48,190,184, 64, 43,197,206,238, 46, 85, 16,144, 38, 6,241,222,
-163,199, 98, 58, 99, 25,205,177,164, 67,175,215,163, 31,132, 56,150, 4, 85,226,186, 1, 69,150,161,202,138, 52,142,233,245, 92,
-246,118,182, 40,243,130,170, 54,130,233,182,199, 87, 3,123,213, 25,113, 93, 31, 20, 27,153,109,125, 29,251,200, 54,213,176, 42,
- 75,179,158,107,101,132,201,108, 11,207,182,136,147,148,180,200,168,138,148, 82,149,216,212, 24, 25, 13, 72, 27,175,215,163,170,
-109,128, 43,173, 12,155,171,150, 23,215, 27, 48, 76, 47,108,120,213,172, 39, 93,249,233,250, 87,216,118, 61, 3, 95, 44, 34, 60,
-207, 35, 94, 46,141,157,159, 99,124,126,231,243, 57, 85, 85,112,235,214, 29, 92,215, 69, 10,155,170,212, 4, 65,143,160,239, 82,
- 22,144,230,166,117,227,251,126,125,209,102, 36, 73,214,182, 88,186, 11,188,236,204,118,149, 82, 32, 44,138, 74, 17,197, 9, 69,
-169,209,218,162,231,249, 88,194, 70, 58, 46, 85, 85,226,216,230, 2,211, 2,164,229,155,106, 27,135, 74,131,101, 57, 88,162, 65,
-108, 26,123, 64, 79,120, 92,140, 39,252, 44,255, 25, 89,150,213,149, 65,211, 86,118,113, 28,187, 69, 45, 38,145,105,141, 53, 32,
- 50,207,243,112,123, 62,179,217,140,227,227, 99,194,208,112,116,155,153, 84,195,175,223,221,221,165, 84, 21,142,235,226,135, 65,
-235, 55,156,101, 25, 97, 24, 98,219,146, 36, 73,216,222,222,110,171,148, 70,248, 97,197,221, 76,203,141, 28,200, 75,243,149,234,
-153,168,253,110,231,195,112,244,197, 74,229,237,121, 94, 11,168, 80,226, 42,250, 90, 10,217,106, 11, 55, 84,194,117,255,119, 33,
-165,249,187,214, 28,214,242,242,249,174, 83, 82, 55,128,119,183,105, 83,213,187,142,254,222,148,145,170, 26,165,219,112,160,155,
- 57,236,104, 52,226,248,248,152, 40, 74,176,164,219,162,119, 77,149, 77,187, 95,178, 44, 99, 56, 28,182, 44,142, 6, 68,244,232,
-209, 35,108, 71,178,183,183,203,214,214, 0,219,145, 53,238,227, 42,232,230, 89,134, 68,102,222, 37,174,237,180,172, 31,215, 43,
-207,215, 76,146, 6, 31,160,106, 59, 88,207,235,213,126,207,198, 19,123,124, 49,225,211, 79, 63,231,103,239,127,200,249,197,132,
-221,189, 3,122,189,144, 52,171,152, 47,150, 44, 22, 11,202, 52, 37,240,108, 60,203,104, 77,100,113,202, 50,205, 25,236,236,146,
- 21, 57,255, 63,105,111,214,100, 73,146,158,231, 61, 30,238,177,158, 61,151,202, 90,123,155,238,153, 70, 3,131, 1, 33, 10, 50,
-241, 70,162, 73,148,204,100, 18, 37,153,126,129,140,127, 65, 50,253, 34,221,232, 66,183, 52,136, 4, 5,136, 0, 41, 18,196, 50,
- 0,103,159,233,174, 45,107,201,229,172,177,251,166, 11,143, 19,149,213,211, 51, 0,196, 54, 75,171,202,234,204,170, 60, 39, 34,
-220,253,251,190,247,125,222,195, 97, 71, 87,238, 72,124, 63,192, 7, 29, 96, 80, 2,218,170,196, 24,207,217,217, 57,215,155,154,
- 23, 47, 94,144, 22, 43, 32, 16,193, 14,135, 3,179,233, 34,136,199,170,138,213,106, 53,230,170,191,122,245,106,204,216, 62,118,
- 69,130,109,174,166,239,123,158, 60,121, 66, 20, 69, 99,160,139, 49,102,156, 1,123, 17, 14, 2,166,201, 72, 98,197,249,217, 9,
- 31,127,240,144,195, 97,199,171, 87,111,152, 77, 82, 22,167, 15,248,211,191,252, 49, 31,124,252,109,154, 78,211, 54, 37,211,188,
-224,234,245,171,112, 48, 65,113,126,239, 30,203,229, 12,165, 36, 79, 30, 61,164,110, 42,170,170,226, 91,223,250, 22,253, 64, 55,
- 59, 98, 76, 55,235,224,111,142,227,152,229,234, 20,103, 91,156,215, 67,186,218,150,135,247, 67, 37,250,248,201, 67,170,178, 97,
-187,221,114,118,114,138, 16,146,205,110, 75,213,212,100, 69, 49, 30,184,250,166,197,244,154,211,211, 83, 22,139, 69,208,248,212,
- 53, 73,154,211,246,161, 11,186,221,110,153, 76,115,206, 79, 31,131,235,249,224,131, 15,248,238, 23,223,225, 39, 63,250, 1,223,
-253,157,239,241,195, 31,253,136, 63,248,163, 63,226,179,207, 62, 67,201,132,255,241,127,248,159, 2,160,167,174,121,246,236, 25,
-147,201,132,207, 63,255,156,207, 62,251,148,178, 44, 57, 28,118,172,215,235, 1, 10,243,136,221,238, 16, 54,196,233,148,124, 32,
-120,138,225,128,247,248,241,227,193,142,120, 74,219,182, 92, 94, 94,142,207,148, 82,138,147,211, 51,180,214, 99, 7, 37, 4,192,
- 88,182,219, 77,176, 6,118, 33,132,102, 50, 9, 20,192,171,171,171,241,235, 23,139, 5,235,221,150, 60,207, 57, 91,157, 80, 87,
- 21,214, 24, 36,130, 84,197,124,250,197, 39, 20, 69,193,159,253,217,159,113,123,123, 75, 93, 85, 65,248,169, 13, 15, 31, 62,228,
-228,116,201,225, 16,126,246, 72,168,177, 35,215,117, 29, 77,211,112,113,126, 78,145,166,212,117,232, 34, 60,122,244, 8, 21, 73,
- 26, 87, 35,132, 31,139,168, 95,229, 74,185, 91,177,127,227,250, 34,248,149, 9,146, 95, 63, 40,188, 83,177,223, 1, 65, 9, 71,
- 54, 41,136,122, 73,175, 29, 42, 81,160,220,128,142, 13, 18,245,190,111,209,218,226, 93,112,139, 9, 17, 17,160,144,118, 40, 82,
-178,255, 32,135,205, 55, 21, 11,170,170, 26,170,178,102,189,217,134, 77,253, 80, 81,213, 7,178, 36, 29, 56,195, 29,198,246, 52,
-117, 55,180,207,195, 55,239,171, 26, 95, 86,163, 58,212,123,143, 77, 12, 74,197, 56,171,177, 54, 64, 38,230,217,156, 8,135,213,
- 38,188, 25,238,184, 1, 24,172, 85,136, 72, 97,140, 71, 16,147,230, 51,242, 98,134, 84, 25,145,239,130, 56, 72,122,150,203, 2,
- 17, 89, 14,101,137, 49,154,249,124,138, 37,197,152, 64, 37,139,165,196, 24, 7, 4, 21,188, 82,161,165, 94, 30, 42, 38,211,226,
- 29,176, 99,184, 56,113,156, 12,167,234,154, 52, 14, 54,148,222,104,186,102,112, 0, 12, 45,234, 44,207, 7, 44,166, 66, 37, 9,
-102,128,155,164,186,103, 90,132, 83,177,148, 18,139, 39,203,236,232,143,191,189,189, 29, 9, 77,219,237, 22,107,237, 48, 83, 43,
- 16,145, 31, 34, 48, 67, 91,220, 26,127,103,238, 45,222, 75, 3, 59, 38, 11,221,221, 20,222,181,187, 61, 81, 36,137,199,188,251,
- 35, 19,156, 81, 84, 8, 96,142, 74,221, 95,161,238,116, 54, 80,158,176, 14,100, 68, 22, 39,225,148,238, 2,138, 52,242, 96,140,
-127,207, 74,113,132,207, 88,252,112,163, 30, 3,145,220,123,239,245,215, 53, 4, 95,127, 88,142,237,172, 95, 7,127, 74,148,162,
-169, 42,174,174,174,184,185,185, 25,173, 49,198, 24,138, 52,204, 4,173,233,233,155,158,162, 40, 72,164, 10, 66, 77, 99, 81, 34,
- 34, 85, 49,157,117, 99, 71, 6,103, 48,125,143,115,161,114,218,174,111, 88, 44, 22,156,156,156, 12,217,213,239, 90,239,214,217,
-111,224, 28,248,247,170,239,187,193,167,127,147, 13,230,238, 3,120,252,189, 20, 2, 41, 99,172,241,244,166, 39, 18, 97, 97,107,
-250,150,178, 12,254,240, 31,252,224, 71,252,223,127,248,199,108,118,123, 30,127,240, 33,145, 82, 92, 94,190,230,118,187,195, 15,
-135,145,201, 52,199,107,205,110,183, 27, 34, 70, 21,121,158, 34, 34,197,238,176, 97,183, 59, 48, 73, 34, 38,105,200,176,182, 86,
-147,224,233,218,154,211,211, 83,182,101, 19,168,111, 81,206, 23, 95,124,129,143,114,254,247,255,227,255,100, 91,182, 44, 78,206,
- 17, 72,174,111,111, 89,204, 87,156,156,156,176, 94,175,121,245,234,213, 40,138, 59,198,100, 30, 5,113,251,253,158, 60,207, 71,
-232,205,108, 54,123,111,180,161,148, 2,103,184,124,249,154, 52, 10,162,190,200,131,237, 59,164,128,103, 95,125,201,179, 87,111,
-249,221,135,159,176,221,111, 41,155,154, 73, 49, 67, 13, 34,164,237,110,141,179, 61, 89, 81, 48,155, 77,152, 78,114,222,188,121,
- 19,232,152, 2,182,187, 13, 8, 79,145,229,100, 89,134,115, 65,163,160, 7,203, 91, 28,183,228, 69, 74,145,199,244,157,198, 59,
- 88,204,151, 76,138, 25, 77, 85,145,223,207,121,244,173, 39,252,193, 31,252, 1, 85,219,144,166,121, 88,171,125, 68, 87,119, 52,
-162, 39, 73,226,128,139, 45, 43,250,190, 15, 41,106,198,132,118, 63, 10,109, 52, 23,103, 23,148,101, 73, 28, 73, 30, 63,122,196,
-211,159,255,136,166, 46,121,245,242, 57,207,159, 63,231,207,255,234,175,185,190, 89,227, 28,252,224,135, 63, 39, 66,240,242,242,
- 45,143,159, 60,100,185, 92,210,182, 61, 79,159,254,123,230,243, 57,175, 94,189,226,108,181,162,235,195,204,251,234,234,134,166,
-181, 84,117,203,235, 55, 87,129,103,160,212,184,246,172, 86, 43,242, 60,231,203, 47,191,196, 90,203,189,123,247,198, 67,120, 89,
- 5,109,195,139,151,207,136,162,136, 60,155, 48,157, 78,135,206,145, 25,215,153,211,211,211, 32, 54,221,108,104,219,150,162,152,
-112,186, 88, 6,199, 68, 93, 19,121,144, 74, 16, 9, 31, 32, 99, 42, 69, 14, 17,182, 85,185,103, 82,100,124,254,157,207, 88,175,
- 79,249,139,191,252, 75,250,190,231,239,255, 39,191, 23, 70,155, 73,204,247,191,255,125,164, 20,220, 27,222,167,171, 55,175,249,
-224,131, 15,120,242,232,113, 40, 72,188,199,244, 53,171,197,156,239,253,246,111,225,141, 38, 85, 49,206, 9,156,209,200,175,185,
-114,188,248, 27,108,169,145,124, 95, 87,196, 47,115, 61,238,254, 94, 27, 59,220,183,114,204, 47, 25,255,126, 33,135,130, 92, 18,
-121,129,247, 6,111, 90,156, 51, 97,164,119,116, 22, 69, 17, 66,196,225,215, 59,157,133,227,129,228,232, 88,250, 70,225,189,248,
- 6,180,233,157,175,113,223,160,149, 82,206, 17,128, 29, 50, 6, 17,145, 15,182,135, 36, 14,237,144,249,124,137,181,150, 36,201,
-168,170,134,182, 13,138,206,245,110,203,219,183, 33,218,242,168, 40,237,251, 27,242,124,194,124,190, 0,231,217,237,118, 44, 22,
-139,241, 5,132, 22, 63, 99,187,220, 14,129, 43,117,221,178, 43, 43, 34,149, 35,189, 66,119, 61,145,239, 73,149,229,179,207, 30,
-240,248,209, 61,170,250,148,171,235, 27,174,111,246,200,100,130, 80, 19,186,206,130, 11,161, 47,199, 89, 25,132,106, 39,207,139,
-144,190,228, 61, 73, 18, 13,220, 99,195,237,237,237,216, 2, 44,203,146,223,250,226, 55,131,175,249,176, 15, 15,251,209,243, 57,
-116, 30,142,115,166,170, 44, 67,164, 98, 49, 25,105, 79,209,160,220,172,187,144,174,180, 88, 44,104, 7,252,229,177,229,213,117,
- 13, 66, 8,206,207,207,195,200,194,116,227,120, 35, 4,206,168,247, 90,218, 81,244,110,195,179,214,142, 85,228,113,150,252,238,
-226,135, 19, 93,101,170,224,209, 63,126,143,119, 95, 3, 36,188,207, 74,255, 58,225,237,216,118, 62,230,139,119,105, 58,158, 74,
-143,127,118,247, 6,252,250, 40,160,174, 91,162, 88,141,222,224,247, 21,170,238,189,239,189,251,239,223,221,212,127,157,119, 91,
- 91, 51,126,205,177,173,123,156,113,201, 40,198, 24,203,225, 80,141,149,186, 82,106,108, 17, 11, 33, 6,238,117, 80,156,182, 93,
- 77,154, 77, 56, 57, 89, 14, 29,142,240, 51,215,117, 29,230,128,131,135,247,111,227,145,191,251,225,248,219,121,246,191,233,123,
-227,232,157,197,167,235,186,241,253, 89,239,118,188,121,125,197,255,245,207,255, 25, 8,201,161,106, 72,243, 34,204,207, 27,141,
-243,130,249,124,193,190,235,240, 17,232,174,163,171,246, 88,163, 81, 50, 38, 78, 82,156,146,220,110, 55, 52, 93, 75,154,166, 76,
-103, 9, 73,212,162,173,165,215, 45, 42,178,239,238,229, 56,227,236,236,140,109,169,121,241,226, 37,113, 54,103, 54, 91,208, 25,
- 73, 83,119,228,211, 41, 23, 23, 23, 40,153,176,223, 7, 54,249,113, 70,126,228,112, 39, 73, 32, 73,214,117, 77,215,117,204,102,
-179,241,117,165,105, 58,222, 19, 71,123,108,223,244,120,235, 56,185,119,130, 82,239,168,121,143, 30, 61,162,152,100,227,125,112,
-108,241,206, 23, 43,188,128,125,117, 8,164,181,195,150,186,109, 56, 57, 59,195,123,203,118,115, 75,221, 4, 81, 86, 83, 30,120,
-246,236, 25,143, 30, 62,166,169,106,136,222,233, 48,162, 40, 98,191,223,163,117,199,233,233,108,232,102, 69, 44,102, 75,234,178,
-196, 89,168,202,134,217, 84,115,113,241,128,175,190,250, 42, 36,157, 77,166, 20, 89, 17, 98, 64,141,163, 40, 98,144, 22, 17,121,
-186,174,161,109,179, 16,174,227, 61, 73, 28, 44,102,207,159,126, 57, 90,180,186,174, 27, 43,232,235,235,235,240, 30,104,207,195,
-199, 31, 6,193,150,243, 67, 56,143,160,169,123,166, 19, 63, 50, 21,234,186,101,185,188,143,181,142,199,143, 62,224, 23,191,248,
- 69, 40, 30,180,163,152,204,198,231, 38,142, 99,218,182, 29,199,137,214, 90,150,203,229,168,102,223,239,247, 99, 17, 54,157, 78,
-195,247, 23, 5,179,105, 80,206, 95, 94, 94, 6,166,250,192,151, 63, 30,214,154,129, 31,127,140, 58,110,154,134,174,107, 67,215,
-212,135,117,213,116, 61,231,103,103, 36, 89,134,233, 53,251,237,142,191,247,189,223,225,237,219,183,252,232, 7, 63, 68, 70, 17,
-191,243,189,239,241,191,253, 47,255, 43,127,242, 39,127,194,191,252, 87,127,130,213, 61,187, 93,197, 7,143, 63, 28,249,245,255,
-224, 31,252, 3,126,235,139,223,228,159,255,179,223,167,111, 90, 14,135, 3, 23,231,103,124,242,201, 39, 1,198,148, 70,224, 4,
- 86, 27, 84, 18,191, 95, 44,252, 45, 93, 70,119, 29, 68,223,212, 49,188, 59, 90,252, 38, 45,209, 81,132,103,140, 65,166,138, 52,
- 74, 17, 74, 32,124, 16,183,133, 68,172, 24,106, 61,230,156, 28,133,178,145, 16, 68, 50, 28, 10,254, 38,196,201,221,110,231, 55,
-254,191,232, 27,102,234,203,147, 51,150, 39,103,161, 82, 67,145,165, 9,105,146, 35,199,106, 47,196,174,118,189,161,172,154,176,
- 16,169,160, 10,204,178,130,190,173, 73, 99, 25, 58,251, 67,154, 84, 20, 9,156, 55,212,213,129,174,107,240, 62, 25,189,124,194,
-134, 90,199, 17, 60,198,245,207,122,177, 0, 0, 32, 0, 73, 68, 65, 84,125,223,115,125,187,225,197,243,151,148,135,142,105, 94,
-160,164, 64,137,158,249, 68,241,197, 23, 31,128,112,164,105,204,114,181,224,118, 29,110, 74,225, 98,188,143, 80, 50,198, 17, 65,
- 20,161,146,100,152, 87, 11,140,119,161,146, 84,146,124, 50, 9, 10,232,190, 31, 69,109,200,104, 28, 21,212,117, 75, 85, 5, 2,
- 85,164,222, 5, 58, 52, 77, 55, 92,192, 14,103, 33,137, 51,178,172, 8, 57,243,189, 29, 32, 60,193,207,121,180, 56, 28,231,207,
- 71,224, 67,158,135,197,108,177, 88, 4, 94,113,185, 27,173, 62,198, 24,210,100,242, 53,101,185, 31, 55, 72, 99,130, 40, 81,202,
-224,229,207,243,156, 44, 75,199,156,251,208, 6,203,223,101,158,224, 97,176,108, 69, 34, 70, 69,146, 78,247, 67, 10,209, 32,210,
-243,239,207,128,143, 74,215,227, 9, 94, 15, 42, 98,127,199,234,114,220,104,142,136,207,227,161, 36, 78, 18,162, 72,161, 68,132,
-197,227,141,197,105, 51,222,244,119, 5, 38,191,106, 83,247,119, 89, 2,119,103, 70,131, 58, 84, 69, 49,206, 6, 54,182, 28,170,
-112, 41, 20, 73, 26,198, 58,206,180,193,215,109,131,231, 91, 69,130, 88, 70,216, 40,204,208, 77,223, 33, 69, 58, 32, 12,131,202,
- 54, 31,132,157,189,238, 72,147,130, 8, 65,117, 40,223,203, 88,255, 85, 62,245,187,221,146, 35,191,249,215,181,197,190, 73, 72,
-119,247,128,212,234,126,140, 52, 62,254,219,109,219,242,250,213,219, 33, 12,227,146, 15, 63,250,132,111,127,251,219,172,183, 59,
-126,254,243,159, 83, 55, 29, 74,197,244,206, 83, 44,102, 65,244,121,216,130,209, 76,210,148, 36,137,233,108, 79, 89, 55,236,107,
- 77,156,165,100,105,140, 16,154,186,174,232,181, 10,157, 50, 12,233,128,211,197, 73, 48,237, 56,131, 60, 12, 84,176, 52,159,210,
-245,193,174,148,165, 69, 0,173,236,118, 96, 29,139,233,140,166,239,198,247,237,232,131, 62, 66,102,142,215,251, 40, 26,189, 43,
-194, 76,211, 20,167, 13, 89, 86, 16,201, 24,103, 13,118,176, 0,205,166,115,138,124, 74,158, 77,240, 94,144, 79, 38, 97,246, 43,
- 34,122, 27, 82, 28,243, 44,199,154, 46,220,251, 62, 36, 97, 21, 69,198,108, 82,140,162, 88,219,119, 72, 21,254,125,149,132,142,
-226,124, 26, 32, 57,251,178,194, 90,205,118,179,103,190, 40, 80, 81, 76,215,105,234, 67, 73, 28,167,244,173,230,237,235, 43,138,
- 44,184, 91,154,174,167, 44,195, 44,184,215, 26,139,160,107, 53,122,240,225,247,125,143,138, 34,156,140, 70, 11,152, 24, 68,153,
-121,158, 51,153, 76,216,239,183, 68,128,233, 53,215,175, 95, 81,214, 13,231, 23, 15, 73,210, 9, 89,150,113,123,125,195,106,182,
- 98,179,217,144, 23,115,186,222, 81, 76,230,156,172, 52,155,237, 26,221,106,182,235, 53,231,231,231,172, 22, 43, 22,211, 57, 77,
-111,136,243,112,223,116,198,210,236, 15,108,183,219,240,236,164,107,242, 60,199,137, 40,228,189, 15, 89, 2, 73, 30,116, 14,187,
-242,192,253,123,103,163,184,175,109, 91,218,182,101, 58,157,178, 60, 61, 65, 74,201,143,127,252, 83,138,162, 96, 58,157,141,173,
-241,205,102,131,197, 51, 31, 4,117,231,167,103,212,135,146,181, 94, 83,150, 37,222, 58, 82, 21,115,239,244,140, 52,150, 20, 69,
-198,114, 57,167,211, 45, 82, 10,178, 60, 97,189,185, 33,203,146, 32, 90, 21, 67, 74,161,213,100,105,204, 71, 31, 62, 97, 49,228,
-219, 71, 30,218,186,226,236,228, 51,230,147, 41,120, 27,226, 80,135,249,255,215,139, 28,193,175,207,179,240,191,102,131,127, 47,
- 2,250,142,168,247,238, 33,252,248, 28,135,176, 34,207,225,112, 96, 42,103,129,243,238, 45,218,116, 72, 25, 52, 77,214, 52,104,
-231,177, 94,142,147,111, 59,132, 54,169,227,200,210,138, 95,201, 57,249,219, 20, 10,239,195,108,134, 77,125,181, 90,144, 36, 9,
-155,219, 91, 14,135, 3, 46, 47, 72,211, 20, 99,252, 56, 31, 14, 47,192,226,125, 80, 2,238,203, 26,163, 29,103,103,231, 68,132,
-214,178, 82,138,197, 92,146,101, 57, 66, 73, 14,251, 26,132,164, 44,107,138, 2,164, 28,148,210, 3,231, 87, 12,156,209,120, 56,
-249, 25, 19, 90,193, 22,143,213, 45,157,107,137, 35, 73,172, 4,125, 91, 17,225, 89,205,166, 76,167, 11,246,149,197, 29, 19,201,
-100,168, 18,133,140,152, 45,230,227, 76,201, 12, 94,248, 8, 79,215,148, 56, 19,170,147,104,168,250,110,111, 55, 92,190,126, 75,
-211, 66, 86,228, 68,113, 65, 85, 29,104, 77,136, 8, 76,146, 48,115, 74, 84, 76, 89,150, 76, 38, 83, 38,147,132,114,127, 24, 79,
-196,245,161,164,110,219, 81, 17, 31, 84,175,130, 73,150,211,165, 13, 17, 14,211,155, 97,243, 49,120,107,177,189, 5, 11,105,146,
-146,197, 25,214,127, 93,144,229, 71, 21,177,214,154,220, 79,112,214, 99,141, 24,188,255, 10,239, 45,109,219, 81, 85, 21,135, 67,
-224, 66, 31, 15, 18,199,128,134, 56, 78,137,211,100,212, 57, 28, 15, 29, 71, 11,201,187, 15,139, 16, 65,115,224, 17, 65, 72, 56,
-252, 29, 30,104,134, 10, 44,138, 2, 36, 36,136, 42, 53, 69,150,163, 34,129, 17, 26,239, 98,180, 49,195,233, 93,223,105, 47, 25,
-188,117, 88,247, 14,104, 33,162, 0, 8,178,214,226,172, 39, 27,103,254,119,110,234,227,230, 63,136,222,180,179,228,121, 78, 28,
-199,104, 19, 66, 77,212, 64, 60,244,214, 6,240, 3, 6,143, 70, 68,150, 56, 17,195,217,198,141, 93, 36, 99, 76,200,136,215, 61,
-251,237,134,174,107, 0, 71,158, 22, 67, 40,209,208, 17, 73, 18,144,209,232,155,149, 50,230,235,145,178,209, 32,132, 17,126, 56,
-204,188,195, 63, 0, 98,136, 15,190,235,141, 13,227,139,209, 25,112,231,245, 46,166,161,154, 53,195, 66, 81, 85, 21,151,175,222,
-240,179,159,253,140, 23, 47, 95,241,209,167,159,177,219, 31,168, 94,188,164,170, 26,174,111,130,234,124,117,122,194,205, 58,204,
- 93,117,219, 34,136, 40,138,130,108,232, 0,117,173,166,105, 59,172,143,152,231, 19,164,242,236, 55,107,244,110,195,227,179,130,
- 56,146, 56,215, 99,172,193,121,203, 36, 83, 24, 33,233, 59,194,156,152,148,217,108,198,245,182,228,183,191,247, 31, 17,167, 5,
- 63,249,217, 79,105,187,158,124, 82,176,223,110, 48,102, 0, 85, 57, 59, 94,223,195,225, 16, 2, 79,206,206, 16, 66,140, 41, 97,
-119,239, 79,173, 53, 74,132,205,175,200,167,232,190,199, 73, 75,150,199, 20,179,130,166,111,217, 29,246,236,203, 3,109, 91,211,
-183, 45,243,217, 4,171, 53,109,211,115,182,154, 99,251,253,152, 17,238,157,161,169,154, 81, 39,115,100,189,231,121, 30,196,187,
- 17,196, 50,232, 66,240, 22, 80,225, 32, 72, 68,111, 12,155,221,158,197,116,137,235, 52,105, 94,176,189, 93,115,255,254,253,225,
-208, 91, 51,155, 76, 72,211,132,195,225, 64,213,182,164,113, 24,239,117,213,129,229, 98, 1, 62,136,213,202, 67,141, 54, 29,214,
-123,228,160, 28, 87, 73,204,243,231,207,135, 17,225, 57,113,154, 82,214, 21,251,178,194, 17, 54,219,251,179, 21,222, 58, 62,253,
-244, 83,158, 62,125,202,163, 7, 15,194,129, 63, 78,208,166, 35,142,227, 48, 59, 95,223,114,122,182,226,234,234,138,223,252,141,
- 47,120,254,242, 5,187,170,197,137,128,189,213, 78,211,247,161,235,182, 88, 44, 70, 23,206,241, 61, 63, 86,217, 71,141,207,195,
-135,143,153, 79, 10,110,110,175,184,190,186, 37,138, 34, 46, 46, 46,120,252,248, 49,135,186,226,135, 63,252,241,168,128, 63,210,
-220,142,238,134, 99,241,146,103, 25, 74, 68,236,118, 7,218,166, 97, 90,204,200,178,140, 43,163,185,124,243, 26,245,195,132,166,
- 9,227,137,182, 13,149,125,158, 14, 14, 8, 33,104,170,106,220, 99,246,251, 61, 66,120,234,186,228,246,246,154,249,124,138,233,
- 91, 38,211,130,123,247,206, 80, 42, 34, 18, 2, 99,122,172,183,100,113, 22,128,102,199, 44,138,247, 54,197,232,151, 90,214,238,
-107, 85,249, 55,100, 40,253, 18,187,228, 40, 32, 63,102,138,220,205, 97,176,142, 17,180, 22, 39,138, 40, 77, 81,132,131,228,192,
-163, 69,136,160, 43, 83, 34, 9, 63,147, 14,235,146, 53, 22, 99, 44, 74,197,191,118, 83,255,117,155,253, 81,216,254, 75, 51,117,
-162,134,219,205, 13,109,215, 19,103, 10, 34, 31,130, 29, 28, 68, 42,199, 17, 83,183,125,168,173, 69, 76,213,180,120,225, 40,138,
- 28, 21, 73,210, 56,198, 25, 11, 50, 70,169, 20,109, 67, 11, 66, 68, 41, 94,196, 88, 47,241, 66, 82,119, 45, 90,183, 44,102, 19,
-164, 12,177,172, 42,138, 49, 78, 51,201, 83,156,149, 92,223,236,112,210, 82, 87,215, 36,194,162,162,140,190, 61,160, 17,204,166,
- 19, 76,215,161,107,143,179,146, 78, 24,122, 99,232,212,187,202, 80, 38, 9, 85,215,131, 51, 76,138, 4,175, 53, 39,243, 25, 77,
- 93, 82,247, 21,139,162,192, 56, 75,221,244, 20,121,202,249,197, 5, 86, 78, 48,106,134,182, 53,201, 68, 17, 43,129,214, 13,198,
- 52, 36, 74, 81,235, 48, 15,236,155, 62,112,134,165,162,215,154,206,180, 88, 31,112,181,109,223,163,162,128,147, 76,149, 2,239,
- 89, 78, 39, 72,239, 72,134,197,108,123,125,203,198,123, 58, 19,102,239,146, 16,144, 19,252,138, 97,131, 53,182, 15,176, 17,107,
-201,147,156, 73, 54, 67, 14,209,178,166,245,236,251,154,106, 31, 54, 35,235, 66,130,158,181, 22,109,195,130,102,180, 27, 85,211,
-135,178, 68, 42,197,249,189,228, 61, 78,240,241,198,116,206, 14,155,173, 25,236, 82, 2, 11, 88, 28,189,213,180, 58,180, 77,247,
-155, 45, 15, 31, 62, 36, 77, 20,135,106,143,240,144, 38,138,190,173,105,170, 61, 73,146,208, 91,195,161,108, 56,148, 45,121, 54,
-197, 71, 18,219,119,220,191,184,135, 21, 45,245,174, 38, 75,146, 64, 45,236, 29,109,103,152, 78,151,180, 77,143, 78, 44,179,249,
- 4, 37,131,206, 33,203, 82,170,170,226,228,116,201,238,176, 69,202, 8,149,196,108, 54, 27, 54,219, 29, 73, 54,229,252,222, 3,
-188, 77,216,237, 14,220, 59,157,226, 76, 67,170, 10,166, 83,133,163,193, 58, 75, 49, 73, 72,211, 83,186,214,114, 56,212,100,113,
-130, 51,130, 34,205,104,202, 29,203,121, 30, 58, 61, 81,176,213, 89, 99,113,177,199, 9, 21, 50,149,237,128,161, 37,136,217,172,
-214,204, 23, 51,174, 95, 95, 49,159, 77,169,247, 53,197,116,130, 55, 46, 60,191,145, 12,177,191, 62,168, 92,189,136,130, 58, 90,
-197, 33,194,216,123, 36, 65,104, 24, 71,129,126,232,156,165,107,187,144, 90,101, 29,251,106,207,254, 80, 81, 55, 29, 47,223,222,
-176,188,184,143,144, 49,149,222,178,126,251, 18,124,196,124,185, 64, 74,201,250,230,134,182,109, 17,113,130, 53,134, 76, 41,132,
-128,221,161, 12,190,109, 39,233,189,224,244,222,125, 14, 85,141, 51, 29,174, 15,126,255, 89, 49, 11, 11,112,234, 17,244,204,166,
- 9,214,246,104,231,176, 38, 98, 49,159,225,226, 25,235,127,251,231,124,244,201,183,169,187,150,235,203,215,212,237,144,102,102,
- 12,113,158,178,223,237,238, 0,235, 5,197,116,194,190, 60, 48, 91,204,233,186,142,179,179, 51, 14,219, 29,169,138,137, 35, 73,
- 89, 55,180, 85,205,197,217, 57,105,146,208,119, 29,182,107, 73,166, 49,121, 1, 77,127, 32,157, 36,196,153,226,237,245, 85, 56,
-112,122,205,249,201,148, 34,142, 81, 22,164, 11,193,214, 82, 74,154,102,207, 52,157, 16, 19,145, 39, 41,105, 28,163,181, 31, 68,
-125,193,198,149,166, 41, 94,247,100,211, 9,182,107, 48, 93, 63,162,130,137, 34, 28,129, 97, 64, 84,177, 90, 45, 1, 65, 54,203,
-121,115,253,134,179,147, 37,145,132, 52, 19, 60, 58,185, 64,169, 71, 60,127,250,140,235,155,183, 88,111,137,100,140,105,155,113,
- 86,111, 17, 8,149,209, 25, 15,210, 49,155,228,108, 54,155,192,189,199, 2, 14, 25, 43,138, 73, 65,253,213, 87,196,113,204, 52,
-205,136, 5,204,230, 51,238,157,157,112,216,109,232,218,154, 44, 77,152,207,114,242, 98,197, 87,125,192,199, 46, 78,103, 52, 77,
-137,243, 49,175,175, 46, 1,143,214, 29, 73,150,162,178, 4, 93, 54, 44,166,147, 49, 7,227,108,181, 36,206,114,126,252,227, 31,
-143,122,145,186,105, 40,138, 34, 84,189,192,229,229,229, 0, 66,177,204,231, 75,238,223,191,207,110,119,224,203,103, 79, 17, 68,
-204,231, 51,230,179,197,168,213, 32, 2, 41,163,209, 26, 60,201,114,230,211, 5, 86, 63,231,176,175, 88, 45, 29,189,117, 44, 78,
- 78,185,185,185,225,197,191,254,127,249,232,163, 15,134, 46,129,164, 40,166,220,220,172,199,110,153,146, 9,145,143,232,154,160,
- 83,194,121,226, 88,210,235, 32, 96,236,117,195,102,183,230,252,254, 57,113, 30,211, 86,245, 16,253, 11,214,121,124, 20,248, 23,
-199,206,222, 93,132,171, 19,239,132,174,239, 1,100,222,235,186,249,209, 49,228,143,160, 71,222,185, 81,188, 51,163, 95, 93, 27,
- 59, 90, 49, 39,147, 9,237,225,192,116, 58,101,125,125,195,231,191,245, 9,125, 89,163, 98,137,179, 6, 65,140,144, 10,135,134,
- 72, 98,109,132,240, 2, 41, 83,132,215,224, 28, 42, 18,127, 35,172,235, 87,217,106,223,109,246,238,151, 6,241, 42, 72,224,163,
-161, 93, 54,112,166,251, 30,111, 5, 81,228,135,211,184, 39, 73, 98, 36,146, 36, 77,241, 12,158,110,111,104, 26, 19,230,101, 72,
-154, 94,211,107,141,143, 2,124,102,185, 58, 99, 49,100,243,134, 55,208, 12,214, 22,135,179, 58, 96, 47, 85,134,213, 33, 37,174,
-119, 14, 99, 59,178, 60, 38, 85, 10,227,130,215,248,226,228, 20, 41, 44,109,103, 41,119, 37,189,204,232, 19, 75, 49,159,208,183,
- 26,173,221, 56,203, 61,206, 64,170,178,161,220,173,201,148,160, 24, 22,205,245,122, 77,158, 79,130, 55,221,244,180,141,161,182,
- 53,178, 5,103, 27,148,114,164, 49,232,166,196,154,158, 88, 74,102,197,148,166,233,130,210, 90, 74, 22,171, 21, 69,158,114,168,
-246,220,220,110, 2,139,185,183,136,152, 16, 95, 27,201,160,192, 30, 82,228,142, 49,102,193,186, 40,192,134,108, 93, 23, 57,124,
- 36, 48,163, 13,203, 99,135,138, 39,232, 13,134,138, 93,247,227, 92, 60,138, 34,156,245, 68,210, 15,208, 28,216,239, 3, 88, 35,
-140, 6, 50,156, 11,173, 56,235,194,194,245,246,205,213,187, 22,122, 20,174,245,209,174,104,140, 33, 18,126,200, 77,143,113,130,
-224, 68, 24,244, 6, 97,198, 28,230,230,184,156, 52,201,137, 60, 68, 56, 84, 44,233, 92,131,146, 71,204,100,196,100, 50, 67, 68,
- 89,208, 20,236,118,195, 90,239, 56, 93,205,105,170,146, 34, 73,169,235, 80,221,108, 54, 21,198, 88, 38, 89, 74, 83, 86,196,177,
- 9,169, 82, 66, 32,133, 8,169, 81, 34, 26, 18,156,162,161,242,154, 16,169,148,182,237, 57,236,247, 92,189,125,197,106,242, 49,
- 82, 40,154,190,228,205,171, 45,147,217,148,229,233, 25,130,152,186, 42,217,108, 14, 40, 17,147,198, 9,177, 18,116, 77, 77,146,
- 70,228,217,224,202, 48, 49,160,232,180,198, 24, 75, 79,143,245,142,110, 24, 35,104, 27,252,202,179,217,140,230, 80, 99,141,161,
- 46, 43,210, 56, 14,237,252, 40,194, 25,131,214, 54,164,228, 73,137, 84,113, 16,207, 12,174,129, 40, 82,224, 45,137, 10, 35, 17,
- 49,128,151,240, 80,100,129,159,189,223,239,249,235,191,250, 1, 63,253,249, 47, 72, 39, 83, 44,176,217, 7,134,253,102,183,195,
- 24, 23,158,209,161,131,208, 53, 45, 85,211, 16,167,249,200,133,104,219,102,216,104, 35,138,197,156,197,100,202,182, 10,243,109,
-156,197, 27, 67,124, 84,244,251, 8, 99, 58,148,132,174,111, 81,170,160,239, 91,156,207,248,221,223,253, 93,166,167,143,248,253,
-127,241,199, 56, 7,187,221,126,172,178,123, 19,136, 97,213,190, 2,239,113,199, 17,141,146,180,186, 31,199, 19, 33,186,217,142,
- 58,129, 99, 27, 51, 58, 2,134,132, 8,243,244,213, 10,219,239, 48, 70,147, 79,195, 92,178,237, 58,154,190, 99, 58,157, 6, 56,
-139,146,196, 34,232,124,102,147, 57,177, 82,232,110,143, 23, 4,176,138, 19, 68, 34,164, 67,230,217,132, 56, 43,131,159, 92, 68,
-163, 22, 69,107, 77,215,133, 81,129, 28, 32, 43, 34,138, 72,138,156,237,222,112, 40, 75,172, 53,228, 73, 10,222, 34,124, 56,100,
- 37, 66,114,255,193, 5,143,238, 95,144,165, 49,109,181,103,125,125,137,140, 66,156,105, 58, 77, 73, 85, 66,154,132,170, 49,216,
- 40, 51,178, 73, 65, 57,144,238, 24, 72, 98,135,170,164, 72, 2, 84, 37,205,130,184,176,239, 26,206, 78, 87,193,129,180, 15,188,
-253, 34, 79,169, 14,251,247,198, 61, 77,211, 32, 85, 72,193,139,100, 88,236, 79,239,157,114,189,217, 80, 29, 74,148, 82,172, 22,
- 75, 86,167, 39,193, 50, 88,135, 46,107,171,205,120,237,142,177,216, 97,198, 46,120,121,121,137,179,154, 39,143, 30,112,113,113,
-129, 53, 33, 32,105,187,221, 82, 87,129,145,239,189, 31,121, 15, 77, 27,180, 39,171,147,160,116,119,206,145, 63,254,128, 52, 13,
-246, 69,162, 40,216,182, 6, 81,173,197,147, 22, 57, 50, 73,145, 93,135, 27, 4,146, 85, 21, 24, 33,194,135,123, 49,203, 50, 86,
-171, 21,187, 93,244,158,215,125, 50,153, 4,219,163,120,215,189, 52,222, 33,134, 42,216,203, 99, 4,182,124,207, 30,230,253,144,
- 41,225, 25,226,138,223,159,131,191,199, 1, 81,114, 24, 93, 14,248,214, 1,227, 26, 9,137,136, 6, 65,231,221,207,101, 12, 67,
-245,253,238,249,142,144,199,182,255, 16,211,230, 92, 24, 17,252, 82,179,220,255,221,146, 66,254, 38, 37,188,255, 6,155,155,122,
-254,236,117, 56,129,217,208,178,208,125,104,237, 30,231,195, 1, 68, 96,145, 50, 26,148,219,130,162,200,136,147, 16, 16,225,188,
-197,235,240, 0,116,125,152,145,229,147,144,169,155, 21,129, 72,116,179,190, 5,239,152, 76,114, 34, 21,218,152,105, 50, 69,170,
- 8, 25, 39,196,106, 70,162, 78,241, 68,164, 83,135,117, 53,101,181,229,246,205, 75, 68,156, 34,164,194,218,142,205,205, 26,163,
- 67, 75, 81,196, 18,221,247,196, 34, 56,133,133, 23, 68,206, 14,169,111, 33, 71,189,237, 45, 95, 62,189,228,116,185,100,183,221,
-210,246, 29,247,238,197,200, 56,197, 35,137,227,148,159,252,252,103,172,183,123, 34, 44, 15, 30,158,243,228,241, 5,121,150,160,
-123,143,213,134,237, 97,207,172, 24, 4, 44, 72,146, 44, 84,197,125,215,209, 54, 13,145, 16, 84,101, 9, 89, 74, 94,132, 49,132,
- 84, 97, 52,160,134,170, 61, 88,249, 20,218,134,197,191,237, 13,218, 54, 99,244, 94,136,174, 61,134, 1, 12,234,246, 65,240,102,
-180, 29,168, 71, 71,164,104,216,212,165, 12, 94,247, 48,223, 15,240,157, 56, 14,249,190, 71, 66, 83,176, 20, 38,168, 56,194, 19,
-186, 35,199,135, 27, 28,206,120,140,241,196,177, 8, 66,165, 72, 32,172, 64,249,132,152,148, 68,134,159,219,233,136,222, 89,242,
- 52, 67, 55, 45,109,211, 12,185,208, 22,235,123,218,222,130, 87,200, 40,134, 72,225,125, 68,219,244,108,214, 59,238,221, 11,105,
- 92, 77, 21,108, 41,231,167, 23,116, 26, 22,243,192,162,182,174,195,244, 61, 62,178,104,215, 81, 30, 74,178, 44,161,239, 91,148,
-146, 24,107, 2,195, 93,197, 36,137,229,250,234,150,155,245,151, 8, 18,166,121, 78, 83,107,146, 88,146,165,115, 98,149,163,164,
-164,222,183,244,182,198,217,144, 62, 24, 9, 21, 14, 33, 93,203,245,245, 91, 78,207,166, 24, 27, 7,143,185,151,200, 72,210,155,
-150,166,235,144,177,195,121,143,241, 97, 44,243,242,213,107,162, 40,226,201,163,135,180, 85, 77, 81,228,152, 94,143, 11,158,209,
- 26, 99, 53,206, 56,162, 88,161,100, 68,132,135,193,207,234,189, 67,216, 65, 4,151,120,242,201, 20,235,161,211, 65,203,160, 75,
-195,247,255,253, 15,232,116, 15, 82, 49, 95,172, 64, 41,250,235,107,158,127,245, 20, 57,104, 70,142,110,137,253,126, 79,223,118,
- 3, 66, 50,112, 20,156,115, 52,117,135, 30, 22,221, 98, 58, 35,205,115, 90, 99, 66,123,222, 89,228,160,121, 56,182, 19,227, 52,
- 33,137, 35,188,169,201,178,156,186,177, 24, 11,141,238,249, 55,127,246, 23, 44,239, 61,225,201,147, 39, 92,111, 75, 54,135, 10,
- 21,167,119, 96, 82,208, 53, 97,246,122,104,194,243,112,140,186, 61, 46,104, 50, 11,247,123,221,181, 20, 69, 49,110,240, 95,215,
-105,212,117,141, 18, 97,188,114,122,122, 26,196,159,101,195, 97, 95,177, 56,157,142, 72, 89,231, 13,198,232,241,243, 35,181,174,
-111,250, 32, 88,213, 46, 44,248, 50,194,249,160, 90,214, 58,116,156,122,109,113,190,165,110, 27,122,107, 16,198,133, 3, 54,131,
- 19,101,160,157,233,182,195,233,112,208,181, 90, 98,157, 38, 87, 9,113,162,248,248,131, 39, 24,163, 41,166, 19,190,245,237,207,
-120,249,242, 37,218, 71, 24,211, 35, 68,140,177,154,201, 36, 92,139, 67, 85, 82,150, 37,167,167,167,164, 73,204,213,213,213,232,
-188, 73,211,148, 55,111,222,178, 94,135,244,183, 60,157,140,155,216, 17,191,122,252, 47,201,210, 81, 28,186,223,111,201,162,132,
-170,109,232,109,207,245,237, 45,113,156,114,118,118,143,221,238, 48, 8,236, 2,142, 84, 16, 10,129,174,211,220,110,214,227,189,
-154, 36, 9,167, 39,103, 84, 85,197,213,205, 53,105,154,112,122,122, 74, 86, 76,209,214,177,222,172, 71, 88, 78,150, 12, 32, 36,
-173,185,217,239,241, 62,136, 34,231,243, 57,211,217,132, 87,219, 80,208,200,129, 30,106,189, 27,181, 5,137,214, 88,227,208,198,
- 18,199, 3, 5, 77,197, 68,113, 66, 94, 20,236,246,251,224,170, 50,225, 58,166,105, 26, 68,131, 3,168, 75, 41, 21,236,113,214,
- 66,164,200,138, 41,113,154, 17,201,152, 56,129, 72,248,247,124,218, 71,183,210,187,104, 83, 49,134, 87,249,191, 1,213,173,173,
-185,147, 94,229,240, 62,172,189, 94,120,132, 15,197,147,119, 22, 47,124, 96,165, 68, 17,206, 25,140,237,233,250, 6,143, 9,227,
- 75, 21,161, 34, 49,216,213,194,238, 29,210,231, 92,248,192, 12, 52, 59, 23, 14,141,226, 72, 8,149,191, 20, 40,197, 55,136,223,
-127,229,166,238,126,249, 0,160, 98, 53, 65,201,227,204, 47,194,101,142,162, 48,239, 65, 69,186,174,165,105, 43,192,177, 92,206,
- 89,174, 22, 40, 21, 81, 85,209,168,220, 61, 84, 37,155,253,158,194,104,244, 17,117, 58,164,187, 61,127,254,146,162, 40,184,184,
-247,144,162,200,168,171,114,200,101, 78,233,117, 75, 81,196, 44,102, 11,210, 52,167,247, 59,170,182,196,120,141,241, 17, 6,201,
-190,238, 56,205, 3, 36,199,235, 22,173, 61,217,124,201, 97,183, 39, 23,146, 56, 82, 96, 29, 93,213,208,138, 16,110, 16, 9,137,
-181, 33, 18,111,115,104,176, 78,162,210, 41, 62, 74, 41,219, 30,239,195,235, 59, 91,206,169,118, 27, 34,233,152,100,146, 44, 81,
-228, 89,130,140, 4, 86, 90,182,219, 61,177, 50,152, 97,211, 60,250,137,143, 12,229, 60,207, 67,245,155,188,243,190,235,222, 34,
- 5,131,210,215, 14,115, 41,144,113,138,140, 61, 86, 4,108,173,179, 30,231,237,176,169, 15, 23, 92,184, 65,124,229,239,100,200,
- 31,213,151, 46,248,173, 77,248, 30,100, 16, 43,182,221, 97,240,227,191,139,234,148, 81, 60, 90,251,240,161,171,210,181, 61,158,
-119,208, 26,163, 53, 49, 49,222,132, 86,150,195, 67, 36,201, 84, 65, 58,207,153, 77,131,240, 77, 69, 10,171, 13,157, 51,236,215,
-187, 80, 89,159, 43,156, 21,232,222, 19,201, 28, 33, 37,157, 14, 88,213,197, 50,196, 89, 38, 17, 44, 23, 39,236,214,111,240,214,
-210,212, 53,118, 97, 48,189, 37,205, 38,161, 59, 97, 13,113,170,134, 92,128, 27,110,111,215,124,241,197, 23, 33, 14,210,116,136,
- 40,162,107,107, 84,156, 35, 60,236, 54, 91,126,254,147,159, 49, 41, 22,124,254,249,231,180,173,198, 59, 57,216,121, 66, 39, 99,
-191,223,179,222,238,144, 50,230, 59,159,126,135,166,105,136,149,164,215, 30, 39, 12,218,116, 24,163,105,155, 26, 33, 28, 50,242,
-236,171,138,222,104,138, 40, 84,120,218, 26,228, 96,157,107,235,134,110,181, 34,207, 50,230,211, 41,155,219,107,116,215,134,205,
- 4,139,183, 6,239, 44,174,119,116, 70, 15, 21, 64, 60,206, 48,231,179, 25,209,124, 17, 54,113,103,131,165,206,123,164, 74, 48,
- 8, 94,188,124,197,171,183, 87,204, 23, 11,110,182, 91,140,243, 92,111,214,129,126,167, 50,220,192,113, 55, 93,168,208,143,179,
- 76, 49,232, 28,170,170,194,118, 13, 74, 10,242, 52, 84,237,117, 93,179,222,151, 68,113, 17,170, 8, 60,218, 24,188,214, 24, 23,
- 60,240,145, 82, 24,219,179, 59, 52,196,217,140, 89,154,209,237, 91,138,217,148, 52,203,121,254,252, 57, 78,134,132, 53,235,222,
-145,181,142,247,207,113,198, 42, 7, 36,113, 93,215, 35,191, 58, 30,208,163, 71, 81,229,177, 82, 86,195,215, 30, 61,201, 89,150,
-145, 42, 73,146,134,138,167,169, 42, 14,135,122,244, 2,247,125,176, 8, 5, 87, 67,135,117, 26,105, 69, 56, 72, 13,116,174, 56,
- 75,169,251,158,174,211,180,186,127, 7,183,105, 90,110,111,111, 41,155, 58,140, 65,140, 29,186, 48, 61,214, 71, 68, 78, 80, 85,
-193, 34,149, 47,210,160,212,111, 26,186,190,195,153,129, 3, 17,105, 38,211,130,239,127,255,175,121,252,248, 33, 15, 31, 61,225,
-226,226,130, 7, 15, 31,243,167,255,238,207,185, 89, 31,200,242, 44,140, 66,132, 96, 62, 15,113,173,218, 89, 62,252,240, 67, 94,
-190,124,129,112, 71,189, 68, 67,166, 2, 42, 55,203, 50, 38,147,201,168,196,159,207,231, 44,151, 75,222,190,125, 59,118, 29,251,
-222,112,186, 58, 97,177, 88, 5, 4,175,143,176, 54, 56, 70, 54,155,221, 72,172, 60, 58, 62,142, 54,221, 35,177,175,170,170, 17,
-178,181, 90,173, 72,211,148,183,111,222, 82,150, 37,211,249,140,201,100,194, 98,177,224,112, 56,132,247,169, 44,201,178, 16,155,
- 43, 28, 35, 94,214, 24, 61, 8,117, 83, 30, 61,122, 16, 82,213,242, 4, 55,108,226, 85, 93,211,182, 1,204,211,116, 29,170,109,
- 71,232,207,209, 97,114,116,186, 36, 73,198,213,213, 85,208, 39, 84,213, 47, 9,210,150,203, 19,230,243, 37,229,190, 66,136,136,
-170,170, 17, 66,210,105, 75,219,187, 32,126,117, 71, 44, 53, 68, 49, 99,102,250, 47,137, 90,191,145,215,254,254,215,168, 36,190,
- 99, 25, 62, 58,118,162, 81, 15, 19,220, 72,239, 62, 63,250,227,189,183,104,221,161,117,135,179, 67, 39,204, 71, 67,240, 88, 24,
-119,122,111,199, 95,197,168,116,119,195, 38,238,134,167,210,253, 82,114, 27,255, 63, 43,249,177, 82,239,235, 48, 91, 61,222, 8,
- 74, 29, 79,209, 32,162,208,242, 75,210, 28, 21, 59,180,233, 73,210,120,156, 1,131,163,105,218, 64,221,137, 35,132, 20,116,125,
-143,182,123,140,177,120, 17,216,227, 63,251,197, 51,150,203, 37, 31,127,244, 25,145, 76,185, 93, 31,240,222, 51,159, 79, 41, 38,
- 49,109, 93, 50, 75, 99, 34,103,104, 76,137,245,154,124,178,224,225, 7, 31,241,118,189, 39,114, 57,179, 88, 49,155, 78,217,172,
-191, 66, 20, 75, 18, 61,197, 89, 67,223,183,200, 56, 1, 11, 70, 68, 56, 20, 36, 41, 22, 40,171, 32,150,235,140,227,116,181,100,
- 58, 27,188,152,117, 69,150, 39,236,182, 7,112, 30,221,157,178, 92, 77, 57, 61, 93, 97,140,230,112,232, 6, 11, 85, 70,146,230,
-104, 27, 88,210,105,154, 14, 99, 10, 79, 26, 7,162, 80,158,231,180, 93, 51,206,177,182,117, 53, 86, 44,105, 22,211, 54, 65,125,
- 62,153, 76,130, 37,201, 90,250, 65,236,229,156, 25, 50,142,143, 0, 18, 63,122, 44,194, 53,136, 66, 55,104,216,216,173, 61, 90,
-196,142, 23,208, 34,112,244,189, 70,136, 22,107,134,131, 68,111,113,174, 25, 60,171,237, 16,189,105,135,209,135,199,234,225,117,
-248, 8,237,122, 4, 22,239,251, 97, 22, 44,137,211,224,119, 85, 81,132, 31,128, 44,222, 6,164,106, 93,215,136, 97,209,206,138,
-156,117,117,224, 80, 55,116,218,209,118,118,132, 72,120,231,137, 39, 25,235,155, 27,138, 60, 71,120, 75, 26, 39,188,122,241,156,
-199,143, 63,194, 90,195,205,245, 22,148, 31,192, 37,142,170,169,185,221,172,131,255,255, 24,254,160, 20, 93,223,224,108,135,138,
- 19,206, 78,150, 60,124,112,129,238, 61,135,253,158,143, 30, 63, 66,224,176, 6,218,174, 67, 37, 49,211,201,130,253,174, 98,115,
-187,229,106,126, 69,211, 52, 60,188,127,129, 82, 50,248,168, 93, 27, 42, 58, 66, 46, 64,219,118, 97,102,232, 2,121, 48, 78,115,
-140,179, 24,237, 56, 93,157,208,230, 65, 44, 56,153, 76,112, 46, 60, 19, 93,211, 18,217, 0,230,145, 81,104,253, 57,231,232,219,
- 62,192, 61, 84, 10,121, 14,145,160,114, 14,235, 60,218, 5,107,168,182,134,151,151,151, 60,123,246,140,186, 53,116,214, 49,153,
-207,169, 58,205,171, 55,111,233,180,165,233, 90,156, 23,164,121,200, 9,111,135, 86,110,162, 20,211,233,148, 52, 81,116,189, 97,
-189, 94, 99,157,166, 72, 83,138, 44,197, 91,205,190, 12, 34,213, 36, 73,176, 34,164,138, 89, 29,180, 38,169, 10,215,222, 35,105,
-187, 14,103, 35,124,148,210, 25,135, 53,134, 52,155,178, 88,158,132, 89,126,221, 16,103,193,218, 90, 86,221,187, 22,124,223, 35,
-165, 96,191,223,135,123,113, 32, 44,234, 62,232, 69,162,161,179,164,117, 71, 20, 41,226, 56,165, 51, 97,230, 60,201, 10, 68,164,
- 24,110,229,192, 11,240, 26,219, 11,210, 56, 8, 50,215,235, 53,189,182, 1,138,163, 59,112, 61,211, 73, 70,211, 4, 1,218,241,
- 16,172,143, 62, 95, 17, 42, 69,231, 61,198,218, 0,125,177, 30,109, 13, 85, 93,227,124,120,239,143,226,162, 80, 1, 10,148,138,
- 49, 93, 77,146,167,196, 50,136,231, 58,239,113,198, 6,193,174,181,196, 82,241,236,249,115,238,157,159,211,153,142,207, 62,251,
-140, 79, 63,249,136,159,254,244,167,156,156,159, 97,133, 68, 70, 41,105,158,210,180, 21,183, 55, 27,170,170, 36, 82,146,221,110,
-203,131,123, 23,204,138, 9,222, 58, 54,219, 91,148, 23,204,102, 11,238,159, 94, 4, 11,168,233,200,138, 20, 21,199,116,125, 79,
- 57, 84,168,206, 57,146, 52,136, 93,243,162,192, 19,161,109,232, 48,164, 89, 14,222,211,117,125, 56,248, 9, 69,150, 22,195, 33,
- 50,216,223,244, 16,172, 18, 69,146,143,158,124,200,219,235,107,126,241,243, 47,153, 76, 38,204,231,115,210, 52,101, 49,155,115,
-249,234, 85,216,144,187,110, 68,153,214, 85,131, 30,162, 87,165,140, 88, 46,151,164,113,130, 0,166,147, 9, 55, 55, 21, 69,150,
-243,246,237,219, 49, 56,200,232, 96, 37,134,136,222, 88,140,209,227,225, 68,107, 67,175, 13,206,123,170,182,225,229,235, 55,236,
-246, 37, 85,221, 98,122,139, 20,161,203,119,124,182,218,182,231, 80,213, 88, 23, 82, 22, 85,156,130, 80, 52,109, 71, 60,192,204,
-132, 80, 40, 37,113, 71, 66,231, 49,141,242, 78,181,126,151,119, 49, 70, 25,127, 77,233,238,189,251, 70,187,233,123,212,182, 59,
-248,229,227,199, 49,162, 22,103, 6, 1,109,176,103,123, 27,170,122,239,192,105, 63, 16, 67, 29,194, 27, 68, 80,213, 4,151,146,
-119, 3,178, 91,126,131, 92,239,239, 30,229,252, 94,165, 30, 78, 16, 22,103,131, 76, 42,138, 64,169, 48, 63,112,206,112,115,179,
-101,185,156, 7, 42,147, 61, 86, 1,109, 0, 45, 56, 71,217, 84, 48, 68, 27,102,121, 65,150, 77,137,132, 98,187,175,216,239, 75,
- 54,155, 64, 63,194, 11,174,110,110,177, 30,140,143,200,211, 48, 87,114, 62,180, 38, 19,119, 64,119, 17,157,109, 17,169, 36, 75,
-115,138,199, 79,216,237,107, 98,219,163,119, 27, 22,249,132,166, 44, 57, 95,157, 81, 87, 37,186,239, 16,198, 98,188,192, 56,143,
-143, 98, 84, 28,108, 86, 85,221,114,117,187,166,235, 58, 78, 79, 79,153, 45, 86, 67, 59, 40, 38, 42, 10, 38,121, 76, 91, 30,112,
-237, 1, 93,109,145,203, 28,233, 45, 77,215,132,121,144, 11,118,131,163,221, 72, 16, 97,172, 99,191,223,211,117, 13,121, 26, 83,
- 76, 82,140, 13,115,255,192, 23,207,176,195,205,160,148, 34, 77, 38,196, 42,204, 76,131,104, 66,224, 6, 18,219,113,255,150,113,
-130,240,230, 61,155,211, 81,232,129, 23,104,221, 19, 69,119,153,234,114,104, 63, 5, 21,125,221, 53,193, 53, 96, 60, 26, 61, 18,
-172,182,219, 32, 98,187,127,255, 94,104,153,138,208, 30,195, 57,106,239,177,198,160,100,130,105, 59,164, 28,130, 55,136, 64, 14,
-173,121,167,222,227,184, 59,103, 57,148, 33, 97,111, 62, 45,176,222, 16,137, 24,231, 5,111,174,110, 57, 28,122,156, 16, 88,227,
- 49,125, 79,145, 39,164, 79,238,147, 42,143,112,193,246,210,117, 65,155,176,223,238,152,205, 87, 20,105,134,145, 30, 59, 4,193,
- 44,150,167,108, 55, 33, 9, 43, 75,227,208, 97,112, 65,161,238, 6, 94,242,249,233, 9,203,197, 9,109,171,233, 90,141,179,150,
-205,102,195,201,201,146,217,116,137, 23,158, 94, 31,103,252, 19,158, 63,127, 14,192,180,200,233,250, 26,129,161,237, 14,156, 44,
-231, 16,133,205,237,118,189,229,245,235, 55,116, 70,179, 88, 84, 92, 92, 92, 48, 95, 46,194, 41,125,176,231,236,182, 91,186,186,
- 38, 81, 17,103,167, 43, 14,214,176, 43,119, 16,133, 84,169,249,116, 66,162, 66, 76,228,237,205,134,174, 42,209, 77,205,227, 15,
- 62,164, 25,218,206, 2,232,141,166,106, 26, 94,190,122,197,159,254,197, 95, 50,157, 44,176, 14,170,182,163,237, 58,234,214, 32,
-162,136, 98, 50, 35, 77, 51,154,190, 11, 7,107,169, 66,251,122,176, 21,226, 45,109,167,135,215, 58, 40,117,189,163,105, 66, 22,
-118,156,100,196,121,160,128, 53, 85, 77,132, 97,154,166, 44,138,156,233,116, 78, 20, 39,152,222,224,156,100,121,122, 66,219, 24,
-122, 7,157,134, 63,249,215,127,138, 19, 49, 39, 39, 39, 92,175, 75, 82, 33,168,203, 3, 94, 68,161, 77,173, 59,148,204,112,246,
- 29, 81,239,110, 21,127,215,143, 62, 90,247,218,246,189,170, 61,228,194, 75,210, 56, 98, 62,157,112,178,146, 60,184, 56,199,244,
-154,205,250,134,111,125,244,152,207,191,248, 46,218, 26,218,166, 68,120,141,119, 14,163,131,245, 84,184, 16,232,225, 28, 88, 19,
- 42, 65, 21, 71, 35, 95, 33,146,199, 8, 91,143, 26,156, 55,214,153, 0, 45,241,154, 36, 78,195,161,187, 12,182,206,190,237, 70,
-171,146, 16, 18, 55, 68, 76, 59, 99, 40,138,130,151,151,175, 88, 44,230, 40,149,176, 47, 15, 44,102,115,150, 39, 43,246,135,154,
-215,175,223,114,255,225, 99,132, 15, 76,244,221, 33, 84,222, 63,254,241,143,153, 79,166,180,109, 75, 83,213,220, 92, 95,179,152,
- 6,241, 94,158,101,212,135, 61,223,249,252, 51,102,179, 25,187,237,129,215,175, 95,135,123,117,200, 33, 95, 44, 22,119,192, 39,
-146,190, 51,180,109, 79, 81, 88, 34, 4,109,215, 50,155, 46,198,156,131, 99,103,174,170,170, 49, 29,175, 40, 10,158, 61,123,198,
-237,102, 51,182,255,151,203, 37,113, 28,243,244,233, 83,234,182, 30, 19,194,142,156,129,166,105,104,170,106,132,100, 29,249, 26,
-203,213,148, 44, 75,104,234,112,216,154,228, 5,145,146, 65,143,226, 29,113,154, 32, 7,102,197, 17, 57, 27, 58,153,106,232,252,
- 42,118,187,221,216, 65,112, 3,204,235,226,226, 34,140,103, 90, 77, 89,150,124,245,213, 87, 92, 93, 93,209,247,134,195, 33,188,
-150,103,207, 94,112, 56, 84,227,154, 20, 94, 75,204,124, 62, 37,146,193,141,116, 28, 3, 29,105,121,209, 49, 28,229,107,202,246,
-240,158, 14,182, 91,103,239, 0,191,222, 7,128, 29,239,227, 40,146, 99,149, 30, 70,161,126,180,160,134,153,123, 76, 26,199, 68,
- 81,124,167, 2, 15,173,115,239,237, 55,110,217, 65, 7,224,255, 78,155,246,223,186, 82,159, 20, 25,214, 74,140,211,161,197,160,
-228, 96,111,178,120, 43,208, 78,227, 35,129, 76, 98, 34,175,134,100,157,160,146, 69, 70, 76,103, 43,234,182, 9,243,113, 21, 88,
-202, 72,137,247, 37,219,237,150,103,207, 95,208,107,195,190, 60,240, 87,255,254,175, 89,173, 86,156,157,157,113,239,236,156,178,
-169,137,208,161,173, 38,226, 96,235,113, 61,200,132, 70, 27,226, 52, 70, 9,199,205,118,207,205,238,134,213,100, 74,154,197, 88,
-171, 57,236, 58,140, 11,201,230,169, 12,182,128, 35,176, 5,107,131,103,179,237,152, 46,230, 76,151, 75, 58,221,211,174, 75,206,
- 86, 11, 14,187, 91,170,173,193,244, 29, 23,103, 39,188,125,245, 18,233, 3,109, 76, 73, 65,154,101,180,131, 74, 59, 82, 49, 74,
- 42,164, 12, 51, 58,221,119,244,109, 9,147, 60,160, 54,157, 71,119, 45, 69,150,179,156, 47,208,121, 64, 72,166,121,198,108, 58,
-167,105, 26,118,229, 97,248,185, 2, 61, 78,201,112,227, 29, 23, 30, 6,239,110, 72,117,243,239, 60,220,163, 69,205, 15, 45,206,
- 65,145,137, 31, 82,224,194, 71,145, 77,222,205, 30,173,165, 60, 28,216,172,111, 56, 57, 57, 9, 41, 71, 3, 38, 87,138, 8,235,
- 12,213,161,164,139,162,145,135, 30, 39, 1,110, 35,162,119, 9,117,198,234,247,253,157,206,177,217,134,217,224,105, 62,229,208,
-108,137,109,143,177,130,170,238,105,219, 14, 25,231,104,237,232,122, 67,145,165,164,105,206,197,201,148,190, 11,132, 66,211,107,
-238,157,157,243,139, 47,159,226, 28, 76, 23, 39, 56, 33,232,123,112,198,187,149, 70,202, 0, 0, 32, 0, 73, 68, 65, 84,147,231,
-115,166,179, 19,186,206,146, 37, 57,110,168,150,147, 84,161,132, 8,234,126,225,153,207,166,156,158,164,120, 7,111,223, 94,243,
-242,229,115,226, 88,176, 90,125,192,161,220,115,115,117, 75, 83,213,172, 86, 43,116,215, 15,167,255,150,253, 97,143,115,150, 72,
- 58,182,187,142, 40,178,244,198,177,217,239,169,187,161,213,223,235, 49, 57,175,239,123,110,174,222, 34, 69,216, 24,188,181, 68,
-131,200,211,246,161,221, 41,100, 80,185, 59,147,160,226,148, 56,146, 72,225,241,218,224,132, 96,115,117,131, 21,130, 98, 54,103,
-189,219,242,253, 31,252,144,203,171, 55,148, 85, 69,213,106,100,226,120,241, 50,160, 86, 79,206,207,240, 8,170, 1,134,211,105,
- 55, 30, 24, 99, 41,198, 13,203,152,112,159,222, 21, 82,213,117, 77,215, 6, 15, 52, 16, 4,117, 85, 21, 80,202,194, 51,157, 20,
- 76, 82,137,183, 13,187,125, 73, 89, 53,228,177,196,203,140, 23,175,110,232,123,139, 74, 11, 14,117,104,207,171, 52,225,229,171,
- 55, 68, 42,166, 90, 55, 52,109, 31, 52, 23, 66, 32,163, 8,211, 5,220,108, 72, 22,244, 35,216, 37,168,122,163,209, 70, 21,169,
- 48, 2, 59,230,170,251, 72,208,107,195,172,200,121,176,156,242,219,223,249,132,147,185, 34,150, 21,203,233,148,186, 44,201,164,
-228,191,254, 47,255, 33,255,249, 63,252, 71,252,179, 63,252, 23,252,233,159,253, 5, 77,189, 67,119, 2,167, 27,124,164,136,165,
- 39,149,193,181,225,173, 14,186, 12,107,104,234,146,234,112, 24, 8,130, 33,167,221,153, 64,196,108,202, 67,112,102,184, 35,205,
-207, 82,151, 21,222, 7,128, 85,154,166, 36, 82,225,180,193,104,141,183,154, 98, 58,165,106, 27,242,233,132,125, 85,113,249,234,
- 53, 46, 18,148,135,154,249,124, 62,188,174,176,134,181,109,205,201,233, 18,161, 32, 77,114,250,190,167,111,123, 76, 31,178,195,
- 31, 61,122,196, 98, 58, 27,171, 58, 33, 60,251,178,228,205,245, 91, 94,189,184,164,170, 42, 78, 79,206,153,207,231, 99, 71, 65,
- 27,135,113,193, 54,220,247,129,151, 81, 85, 13, 73, 18,240,200,130, 14,109, 45,135,170,194, 12, 99,193, 44,203, 7, 84,181,226,
-246,246, 54, 88,216,140,225,226,193, 3, 30, 62,124,200,102,179,225,213,219,144, 29,127,132,183,116, 93,135, 84,134,197, 60,204,
-183, 25,254,174, 34,203,152,207,230,224, 45,203,249,130, 72,120,206, 86, 43,158,237,247, 76,166,225, 25, 61,194,134,142, 27, 76,
-111, 76, 8,160, 82, 18, 31, 5,101,186,197, 35,147,152,253, 32,234,115, 67, 90,227, 17, 43,124, 92,187,173,241,225, 80,220,106,
- 98,149,226,188, 64, 14, 69,154,117,107,188,247, 99, 2, 96,154,166,188,126,253, 22, 57,108,234,105, 26,214,221,227,198,126, 20,
- 6,222, 37,175,221,221,216,133, 16,204,167, 5, 66,188,179,232, 29,255,223,241,243,163,144, 60, 26,178,208,143, 93,169,144,170,
- 25,196,178,227,159, 91, 15,196,160,194, 40, 91, 18, 84,113,158, 99,142,250, 55,100,160,135,208,214, 95, 35,132,251, 59,200,234,
-196,113,164,144, 10,188, 15,216, 61,235,205,104, 13, 8, 45,222,104, 76, 54,106,219,160,108,205, 82,133,115,208,119,193,202, 35,
-100,192,136, 42,149,133, 27,174,109,145, 81, 76, 28,167, 76,167, 83,158, 60,121, 50,222,128,219,237,150,155, 27,195,106,181, 36,
- 82, 33,221, 72, 73, 55, 80,185, 28,186,239,131, 95, 24,137,214, 45,214, 91, 82, 5,182,213, 8, 45,248,234,233, 37,243,229, 73,
-152, 59,165, 57,233,100, 66,150, 23,204, 87, 39, 40, 21,211,246,102, 88,144, 82, 68,156,112,113,113,193,226,100,197,100, 54,229,
-176,185,197,154,150,188,136,217, 92, 85,244,125,195,227,251,247,209,189, 99, 90,100,193,119, 45, 5,162, 11,213,124, 16,250, 89,
-116, 31, 54,226, 82,107,148,148, 44,102, 5,106, 94, 4, 75,133,213,212,117,176, 16, 77, 38,179,241,134, 43,171,154,174,215, 56,
- 43,120,250,226, 57,219,237,150, 94,235, 17, 32, 51,155,205, 88,172,150,228,113,130,176, 54, 88,107, 6,107,217,168,126,183,122,
-204, 12, 22, 34, 26, 71, 35,225,192, 21,161,181, 31,195, 78,178, 52,128, 61,122,221, 18,251,112,115,207,231,115,158, 60,121, 20,
- 50,124, 61,196, 42, 70,197,146, 94,126,109, 54,170,196, 8, 54,178,222,224,181, 71, 11, 51, 10,158,242,124, 18, 90,164,206,177,
- 61,108,131,135, 63,139, 57,236, 43,156,208, 92, 93,237,168,202, 6, 99, 60,198,117, 88, 35, 72,146,128,196,141,227,152,235,235,
-107,230,147,132, 55,111,222, 80,100,129,112,117,239,236,156,221,161, 38,201,231,172,171, 22,227, 37,214, 24, 22, 11,133,209, 17,
- 93,231,145,203,160,161,144, 50,140, 48, 34,201, 16,223,232, 40, 15, 27,164,140,201,179, 9,203,213,140, 36, 13,137,107,117, 83,
- 13,217,215, 41, 74, 45,201,178,140,229,114, 57, 66, 81,242, 44, 48,192,167,179,130, 94, 71,180, 77, 75,163, 27,154,214, 48, 95,
-156,178, 92, 46,135,197, 34,167,170, 26,222,188,190,164,218,239, 89,174,230, 60,184,119,206,126,191,225,213,203, 75, 46, 95, 62,
-231,116,185,224,236,226, 30, 69, 22,238,237,245,122,205, 94,236,209, 93,240,235, 71, 81, 80,235, 79,167, 51,222,220,220,114,168,
-223,242,250,230,150,159,252,252,103,188,189,185, 37,206, 82,172,135,155,219, 13,235,237,110, 56,228, 37,108,182,123,170,170,226,
-252,254, 5,139,197,130,203,203,203,176, 40,107,131, 84,130,211,213, 73,104,135, 38, 9,187,253, 30,213,135,164,190, 60, 86, 88,
- 27,186, 47, 1, 82,148, 99,189,227,102,189,165,152, 78, 56, 93,205,113,186,229,234,242,146, 47,191,124,202,231,159,126,204,253,
-139,179, 64, 61,187,252,138,127,250,251,255, 28,132,228,119,127,239, 63,101,127,168, 49,187,118,156,141,111,182, 91,164, 20, 24,
-235,137,132, 36, 18, 14, 99,124, 24, 59, 12, 98,207,163,128,238,104,193, 57, 2,141,142,155,203,177,101,121,116,168, 44,151, 75,
- 62,124,120,143, 73,145,115,182, 10,215, 37, 75, 20,249,106,201,201,106,193,164, 88,161,155,154,223,252,206,167,252,211, 76,226,
- 77, 3, 78,162, 48,164, 82, 49,201, 38,164,210, 7,161,156, 8, 21,188,233, 59,234,253,142,195,126, 75,223, 53,232,190,197,105,
- 79, 83,149,212,135,154,186,170,137,100, 0,216,104,109,233,218,154,230, 16, 66,127,138, 97,198,109,109,160,154, 29,201,110,189,
-217, 7,225,102,103, 72,179, 24, 47, 36,215,215, 55, 33,234,244,230,134,199,143, 31,243,221,239,126,151,178, 14, 92,245,123,247,
- 31, 4, 1,225, 62, 84,149, 86, 7,162,155, 30, 32, 61,106, 24,159, 24,221, 81,150,123, 78, 79, 79, 89,175,215, 35, 3,253,200,
-192, 56, 70,160, 74, 25, 42,244, 60, 15, 46,135, 44, 11, 29,146, 35,212,167, 25,104,125, 71,171,213,177, 66, 7,184,186,186,162,
-174,107,102,179, 25,159,124,242, 9,231,231,231, 84, 85,128, 10, 73, 41, 81, 81,132,238,122,226,244, 29, 0,234, 40,214,115,198,
- 16,199, 10, 25, 73, 62,249,214, 71, 8,239,232,117, 8,109,249,244,211, 79,185,190,121,203,122,123, 96,209, 5, 94, 70, 89,135,
-236,144,254, 8,178,146,140, 25,237, 33, 29, 49,136,204,154, 65, 88, 25, 33,232, 6,239,252,145,230,216,182,237,157,131,146, 29,
-214, 83, 67,154,102, 67,148,106,132,148,209,168,135,138, 34,137, 24, 48,171,206, 70,244, 93,112, 79,181,210,140, 27,244, 8,210,
-194,127,173, 19, 26,238,221, 75, 99,145, 74,188,167,243, 56,254,254,168,204, 63,226,119,143,122,165,163,142,228,246,118,141, 53,
- 26,231,122,186, 70,143,142, 36,229,163, 32, 24,118,199,145,170, 26,118, 92, 57, 40,219,228,224,163,191,107,150,191,251,201,127,
-216,175, 10,215,112,187, 89, 83, 20, 5, 42,137,169,235,240,166, 11, 25,196, 66,105,158,113,187,222, 98,173,103, 54, 91, 32, 35,
- 23,152,236,113,129,209, 45, 86, 27,100, 82,112,216,135,139,170,100,152,137, 28,219, 60, 31,126,248, 97,160, 73, 69,130,221,110,
-199,102,115,139, 84,158,235,205, 91,108,223, 49,155, 78,112,189,166, 45, 43, 36,146, 67, 85,147, 78, 11, 62,251,238,111,240,211,
- 95,252,148,124, 57,195, 56,136,156,100,186, 58, 15, 66,145, 56, 33, 45,130, 93,163, 75, 44,155,195,129,243,243,115,246,235, 91,
- 84,154, 81,238, 58,122,237,248,228, 91, 31,210,116,154,190,239,168,170, 3, 93,189, 35, 75, 36, 78,183,220, 91, 22, 92,156, 46,
-105,117,196,183, 63,251,156,205,126,131,179,176, 92, 46,217, 87, 53,171,147,130,106, 83, 51, 41, 22, 28, 14, 21,103,167, 39, 33,
- 38, 82,119, 40,153,132, 25,115, 93,134,116,170,172,224,246,246,150,163,131,173,170, 42, 86,171, 83,174,111, 55,252,236,167,191,
- 96, 62,159,243,173,207, 62,161,109, 91,158,191,120,202,118,183,230,225,163,251, 65, 12,166, 53,243,233,132, 98,146, 13, 17,136,
- 97, 78, 89,228, 83,246,251,146,190,179, 99,238,174,240, 62,128, 58,156, 6,225,144, 82, 96, 61,212, 77, 57, 46,192,109, 85, 19,
- 71,130,207, 62,249,152,174,111,193,201,144, 13, 47, 64,247,129,247,156, 37, 33,124,230, 80,238,152, 47, 86,172,183,123,148, 74,
- 2,227,126, 76,160, 18, 76,102,211, 32, 30, 33, 8,191, 62,254,228,211,208, 50,107, 58,144, 10, 47, 4,121,158, 15, 11, 78,142,
-113,112,216, 55,244, 77,205,126,239,105,154, 19,138, 56, 88, 88,206, 78,231,196, 50, 98, 59,220, 39, 15,166, 11,158,191,186,229,
-197,213,129,125,165,131,210,212,191, 4,103,120,240,224,130,179,229, 57,130, 4, 37, 36, 62,242,120,111,176,125, 96,251, 39, 42,
-180,194,122, 93,227,240,124,244,209, 99,188,247, 28, 14,155, 65,196, 5, 89,150, 96, 76, 31, 44,135, 67, 86,116, 28,231, 40,229,
-233,219, 65,132, 24,229,172,215,215,164,121,216, 84,214,219, 61, 31,127,240, 33,105, 26,243,131,191,254, 43,126,246,243,159,240,
-217, 39,159,140, 97, 23,199, 80, 11, 99,123, 38, 89, 26,232, 89, 3,255, 61, 81, 49,198,247,232, 94,135,107, 82, 86,148, 85,131,
-246,158,159,127,245, 37,255,238,207,254,130,214, 57,234,190,163,110, 59,242, 36,102, 91, 86,220, 92,111,152,205, 22,131,107, 34,
-225,228,228, 12,227,161,105, 58,172,245,131,171, 33, 38,159, 76,185,221,172,233,141, 38,205, 51, 14,187, 61,109,223,177, 92, 46,
-185,190, 89,211,215, 54,136,173, 78,150, 35, 30, 84, 24, 67,158,198,156, 44, 23,188,190,124, 65,162, 2, 42,244,199, 63,125,206,
-197,189,239,243, 79,254,201,255,204,245,245, 53,127,244,199,255,134, 87, 87, 91,164,146, 60,123,126,201,245,237, 45, 42,206,131,
-205,232, 80, 14,186, 31, 79,162, 34, 58, 29,226,109,167, 89, 76,111, 45, 89, 62, 9, 64, 34,109, 48,198,146,164, 41,194, 59,154,
-170,198, 91,131, 20, 80,151, 7,148,138, 6,148,106,136,208,236,234,138, 87, 47, 94, 82,190, 53,208,158, 51,201,131,136,239,199,
- 63,250, 9,125,221, 16,217,152,205,250,134, 60, 79,249, 71,255,197,127, 70,175, 99,214,235,154, 76, 6,142,193,223,251,157,111,
- 51,153,166, 56, 99, 57,148, 45,187,125,136,148, 77, 99, 9, 70, 99, 12, 8,107, 48,166,167,173, 43,210, 36,198, 59,144,210,129,
- 3,133,195,245, 1,236,226,135,177,218,113,134,108,173, 5,169, 48,214,210, 15, 80,155,172,200,113,131,213, 81,198, 65,207, 80,
-215, 53,175, 95,191,102,177, 88,208,212,221,176, 81, 74,210,105,202, 98,190,226,242,242,146,184, 8,116,185, 56,146, 76,178,124,
-108,143, 79,138,108,232, 36,117,252,228,135, 63,226, 31,255,227,255, 30,173, 53, 63,250,209,143, 40, 38, 25, 85, 25,232,157, 93,
- 91, 19,171, 16, 27,124,114,114, 50,160, 93, 91, 18, 21, 67,146, 32, 58, 19, 2,119,102, 51,226, 56,102,177, 88,176,223,239, 57,
-236,246, 56, 19, 58, 16,159,124,244, 17, 69, 81,112,115,115,195,118,187,133,209,110,229, 81,177,164, 42, 15,193, 78, 26, 9, 18,
-165, 2, 22,123,183, 11, 22, 76, 41,209, 93,143,240,150,242,176,167,222, 29,248,199,255,221,127,203,245,213, 27,254,159,127,249,
-175,168,235,154,170, 58, 12,135,187,176,241, 7, 91,113, 52, 8,239,178, 17, 53, 27,160,102, 65,147,145, 37,233, 80,153,155,247,
-130, 82,154,166,225,250,250,154,162, 40,104,154,102,108,227, 31,161, 90,186,183,131,218,222,227,149,192, 24,139, 49, 97,191, 41,
-138, 4,103, 69,208,243,196,161,245,174,251, 32,208,115,222, 97,237,187,232, 95, 99, 12,198,234,208,189, 52,193,101,212,122,243,
- 94,219,253,120, 64,189,155,213,145,231,121,136,138, 85,138,195, 97,135,192, 81, 76, 82, 54,235,138,235,159,124,201,242,100,193,
- 7, 31,124, 64, 82,100,252,245, 95,253, 37, 90, 91, 38,197,156,100,200,232, 56,118, 0,100, 20,145, 36,138, 56, 77, 16, 74, 4,
-231,144, 24,246, 86, 37,136,132, 26, 63,191,107,181,243,110,232,162, 59, 49, 88,237,212,248,185, 39,136,162, 21,162, 39, 81,142,
- 72, 26,122,221,209,183, 13,206,103,136, 72,209,107, 67, 74, 68, 89, 55,164, 42,199,104,143,139, 35,156, 27,168, 94, 50,195,244,
-193, 19,121, 76,150, 10,167,157, 16, 4, 50,155,205,176,189,230,186,122, 59,248, 24, 61,179,217,132, 94,119, 36, 50, 66,205, 67,
-128, 64,164,226, 48, 51,172, 91, 68,148,132,106, 35, 86, 60,121,112,143,205,245, 91, 50,149, 50, 93,221,167, 61, 84,136,196,241,
-232,226, 1, 78, 41, 26,173,121,246,226, 57, 79,158, 60,225,203,103, 79,185, 56, 59,103,181, 90,241,213,243, 23, 68, 66,241,244,
-171,159,145, 77, 23, 97,174,147, 38,148, 59,205,139,103,207, 73,179,132,233, 36,224, 94,211,108,202,217,189, 7, 84,125, 79,154,
- 39, 68, 17,163,103,243,222,217, 41,251,221,129, 60,149,129, 44, 53,205, 56, 59, 63,225,245,235, 87,196,233, 32,146,107, 91,188,
-183, 35,115, 89,170,152, 52,205,105,251,112,154,251,238,119,191, 27,196, 41,203, 25, 85,125, 32, 73, 63,197,123, 71, 85,238, 2,
-193, 76,134,139,216, 52, 13,125,223,142, 21, 15,194, 49,157, 22, 92,238,222,224,236,157,217,137, 24,116, 15,241,160,206,237, 61,
-118,160,149, 29, 14, 59,138, 34,227, 80,110, 67,236,166,238, 40,178, 57,189, 14,145,179,199,211, 50,230,157,112,164, 44,107,102,
-139, 21,189,209,196,113,224,122,207,103,203, 64,172,171,111,121,248,240,225,248, 96,169,216,226,157, 67,197,225, 6,143, 85,134,
-148, 5,249,100,193,108,186,228,205,213, 53,191,168,190, 34,153, 22,100, 67, 75,127, 54, 75,233,155,161,154,115, 33, 5, 42, 78,
- 10, 54,219, 3, 95,125,245,148,175, 46,247, 36,197, 28,225, 66,198,117,166, 98, 46,238, 61, 64,202,148, 24, 19, 82,253, 34, 55,
- 28,102,221, 48, 91,247,163, 13,208, 2, 73, 42, 8, 83,151,193, 58,118, 20,235,249, 0,231,120,167, 46, 13, 15,112,175,109, 96,
- 27, 88,139,247, 80,150,213,152, 7,208,223, 15, 7,128,170,106, 88, 45, 79,249,232,163,143, 71,196,112, 81,100,124,251,243,223,
- 32, 75, 98, 68, 20,116, 13,158, 8,111, 12, 93,111,136,149,162,211,150,178,172,233, 7,102, 67, 47, 34,222, 94,221,112,179,221,
- 33,211, 20, 39,224, 80,213,108,170,138,221,161, 36, 73,114,234,166,225,254,253,135, 65,156, 89,228, 76,218, 9, 39, 39,103,236,
-247, 97, 81, 60,182,224,191,245,241, 39,228, 69,138,181, 14,109, 13,175, 95,191, 65, 40, 73,146,230, 44, 23, 1, 6,178, 59,236,
- 57, 79,206, 40,138, 2,173, 53,155,205,134,219,155,107, 30, 63,188,207,250,246,138,253,126,195,199, 31, 63,226, 31,253, 87,255,
- 13,251, 67,195, 31,252,225,191,226,242,237, 26,107, 97, 95, 90,126,242,179, 95, 16,199, 41,197,100,194,223,255,251,255, 49,111,
-174,110,184,221,108,105,170,154, 78,247, 84,101,131,136,124, 64,184, 10, 64, 74,174,174,111,169,134,205,255,216,186,188,107, 61,
-203,243,124,120,255, 10,206,206,206, 66, 30,247,245, 13,183,166,229,123,159,125, 64, 28, 73,210, 84,242,229,151, 95,114,123,123,
-203, 39, 31,125,139,127,243,111,255, 28,169, 98,136, 9,217, 14, 34,160,100, 19, 21,113, 48, 61, 77, 85,243,228,241,125,164,136,
-216,237,126, 65,223,181,168, 72,176,223,110,105,235,146, 60, 38, 48,208,251, 14,171,205, 0,192, 97,136,233, 13, 41,148,214,133,
-180,193,187,122,150,175, 11,143,178, 44, 11, 33, 48, 85,139, 84, 2,103,163,225,222, 79, 73,146,140, 88, 42, 14,135, 3, 50, 10,
-204,251,167, 79,159,242,123,191,247,255,177,245,102, 77,150, 29,231,185,222,147,107, 30,246,188,107,215,208,213, 35,102,144,128,
- 72, 73, 60, 58, 82, 56, 44,251, 12, 97,135,195,255, 66,191,196, 55,250, 37,142,112,248,202, 87,190,208,104, 89, 65,250,136,146,
- 72, 29,137, 0, 5,162,209,243, 88, 85,123,222,107, 94,153, 43,211, 23,185,106,131,138, 56,184, 65, 4, 72,160,187,107, 15, 43,
-243,251,222,247,121,254,128,217,124,193,124, 62,231,197,179, 23,212,117,109,249,233,149,245,160,223,189,123,199, 62, 44,165, 36,
-203,236,100,103, 48, 24, 32,250, 67,242, 45,138, 57,138, 3, 84, 43,143, 77,131,170, 42,241, 3,151, 36, 29, 17,120,190,101, 8,
-236,174,143, 24,218,217,108, 70,158,231, 71, 23,252,221,187,151,246,178,115, 56,240,250,245,235, 99, 82, 30,236,207,198,115, 92,
- 14,121, 70, 24,219, 3, 70, 91,213,148,101,201,217,217, 25, 15, 31, 62,236,215,141,253,212,194,116,188,126,253,150,235,247,239,
- 24, 79, 70,236,247,251, 35,145,210,208,115, 23, 2,136, 3,251, 30,191, 77,188, 91, 58,231,247, 36,187,219, 9, 78, 91, 55,228,
-135, 3, 65,255,251,185,181,105,222,122,224,111,251,229,183,173,130, 91,162,101,219,218,117,154, 49,118, 10,144,198, 3,116, 7,
- 74,218, 90, 39,142,232,223,123, 28,223,135,174,235, 28, 67,113,183,149, 61,123, 11, 31,208, 86, 37,230,223, 60, 52, 29,112, 12,
- 2, 15,215,181,252,143, 86,214, 84,165, 13, 53, 86,101, 75,221,148, 36,241,128,166, 81, 68,190, 75,149, 55,108,214,123,182,155,
- 28,169, 4,142, 88, 18,165, 5,235,213,161,183,159,238,113,140,131,214,230,123,107,169, 54, 8, 87,208,209, 29,243, 0, 86, 54,
-230, 31,181,197,183,235,131,219,169,204,109,102,224,150, 20,120, 91, 3,188,157, 98,216, 93,190,192, 75, 83,159,213,186,160,108,
- 11, 28,215,179,152, 80,233, 18,132,190,245,231, 42,129,198, 37,140,147,126,254,111,168, 27, 27, 80,242,111, 89,235, 29, 4,129,
- 13, 65, 24,236,237,211, 65,224, 5, 62,190,107,109, 76,105, 60,160,106,107, 90, 37, 89,175,151,156,156,156, 18,197, 86, 34, 80,
-213, 45,173, 23, 82,150, 13, 6,135, 70, 42, 94, 61,127, 66,145,175, 48,198, 48,156,158, 49, 61,185,224, 16,148,212, 77, 6,126,
-196,110,187,162,108, 27, 70,227, 41,157,214,100, 69,198,191,251,253, 31, 51,159,206,120,251,238, 21, 69, 85, 48, 29, 15,200,171,
-134,186, 31,195, 56, 94,192,122,187,227,225,229, 9, 73,154, 32, 59, 13,174,207,207,127,249, 21,157,110,249,253,159,252,136,166,
-169, 65, 40,220,158,225,156, 11,200,139,140, 95,253,234, 43,238, 95, 94,242,249,103, 31,240,230,213, 83,242,126,223,153,166,195,
-227,238, 48,203, 50,132,227, 50, 24,140, 48, 93, 71,154, 14,143,136, 69, 37, 37,113, 24,145,196, 1, 81, 20, 32, 27,123, 10,173,
-203,138,170,183,102,105,109, 79,221,117,221, 82, 20, 21,113,148, 30, 31,240,183,129, 15, 41, 21,194,177,187,182,182,109, 49, 4,
-136, 30,187, 26, 70, 1,142,107,136, 34, 15,221, 53,196,145,135,131,189,225,226,186,116, 82,226, 71,145,173,145,249, 62,161,231,
-179,203, 10,162,120,140,238, 28,132, 27, 16,249, 67,100, 11, 81, 56,164,170, 42,138, 67,211,127, 0,124, 28, 66, 58,211, 33, 91,
- 44,131,221,181, 15,123,186, 14,221, 85, 52,117,193,242,230, 29,113, 28, 83, 57,134,123,151, 39,116,169, 93, 45, 84,149,238,251,
-157,130,200, 11,104,100,199,102,103,251,170, 97,226, 30,205, 70,186,163, 79,164,215, 12,134, 9,174,144,125,141, 84,162,251,220,
-131, 77,177,218,157,164,192, 74,111,132,176,123, 93,213, 74, 60,207,128,107,115, 0, 78,143,105,213, 61,142, 87,117, 32,165,166,
-174, 20,117,171,184, 94,221,224,250, 62,163,145,205, 63,148,101,201,122, 93,146,231, 37,159,127,254, 89, 63,214,108,104,171,178,
- 7,102, 40, 74,173,168,235,178,223, 3,218, 7,177,214,253,169, 26,129, 19, 4,180,141,228,151,255,242, 53, 55,203, 53,198,117,
- 41,219,150, 36,140,104,181,166,106, 36, 26,131,239,133, 36, 73,194,238,144,211, 40,137, 42,245,209,104,118,118,118,118,148,111,
- 0,184, 65,200,108,113,130, 54,202, 90,245, 92,151,172,106, 24,143, 7, 8, 97, 44,110, 85, 74,174,174,174,184,190, 90,146,196,
- 22,152,211, 41,201,124, 50,230, 15,126,242,251,184, 2, 28,209,241,197, 23, 63, 96,144, 38,252,233,159,254, 41, 29, 80,181, 29,
- 65, 50,164,233, 50, 70,147, 41, 95,252,240,119,120,250,212,138, 72, 78,102, 54, 84,149,237,247,228,101,217,147,192,228,177,145,
-145,149, 53, 77,109, 43,104, 22,182,164, 80,109,141,236, 27, 33,163,193,200, 62, 52, 59,137, 65, 35,140, 13, 54,170,174,229,126,
-143, 67,205,178, 12,223, 15,185,122,191, 36,137, 71, 8, 92, 94,189,124, 77,213,118,140, 79,198,120, 65,112,180,194,165,241, 12,
-217,118,172, 86, 27,238, 63,184,195,100,100,235,181,117, 81,226,247, 21,185,219, 47,193,219,135,100, 16, 4,132,129, 79,146,248,
-120,158,111, 65, 81, 94,128, 84,154,178,173,236, 84,163,187,221,165,134,184,174, 71,232,216, 67,137,219, 35, 97,173,123, 61, 64,
-184, 46,101,213, 0, 22, 78, 21, 71, 86, 69,237,133,238,145, 66,120,231,206, 93,219,126, 89, 44,104,138, 18,223,117, 16, 70, 91,
-186, 92, 26,115,113,126,126,148, 55, 93,189,123,195,201,108,206,126,187, 35, 77, 83, 30, 61,120,216,179,205, 21,166,179, 55,127,
- 55,176, 95,215,101,145,245,140, 67, 77, 85,100,200,206,224,249, 14,143, 30, 61,164,105, 26,242, 60, 99,185, 92, 50,155,205,184,
-188,184, 67, 20, 69, 92, 95, 95,179,222, 44,169,234,194, 86, 93, 5,212,178,193,104, 69,146, 70, 76,231, 86, 13, 61,159,140, 73,
- 46,206, 9,252,136, 78, 74,226, 40,226,222,221,187, 84, 85, 97, 73,143, 65,204, 71, 31,125,196,233,233, 9,117,175, 52,158,246,
- 53,207, 56, 14,137,226, 16,207,115,241, 60,187, 6,104,202,146,192,117,209, 82,162,154,134,166,180, 98, 43, 49, 7,223,181, 85,
-202,227, 30,219, 49, 86,206, 83,229,120,190,131, 84,141, 93, 43, 70, 17, 90, 41,202, 60, 39, 63, 28, 44, 76,167,174, 41,243, 28,
- 16, 61, 69, 83, 98,122,194,224,109, 23, 95,155,238, 8,221, 73, 6,105,143,175,110,142, 21, 74, 33, 4,101, 93, 31, 17,184,223,
- 91, 45,245,241,160,226, 56,118, 98,169,100,141, 82, 45,158,103,193, 70,246,159, 11, 60, 47, 64, 73, 77, 60, 26, 81,215, 37, 85,
- 37,145,210, 80,228, 13, 55,236, 8,226,154,170,146, 32, 60, 58, 45,108, 3,165, 51,248,183, 0, 56,213, 31,136, 28,131,235,201,
-127,179,186,250,237,125,254, 45, 60,233,246,161,126,251,240,191,125,127,143, 70,163, 62,220, 30,244,122,113, 23,239,242,242,140,
-170,201,217,172, 15,236,139,146, 78, 57,132,105,132,234, 12,141,236,193,245, 90,224,123,225,241,244,228,122,246, 77,230, 58, 22,
-180,224,250, 30,121,113, 56,142,137,124,231,251,224, 66, 89,150,120,174, 67, 18, 71,148,101, 97, 67, 40,109,135, 48,246,193,224,
- 8,151,166,211, 40, 97, 40,164, 97, 16, 15,137, 66, 23, 84,201, 48,242,152, 79,103,196,233, 12, 67,136, 23,133, 40, 41,217,100,
- 21,101,213,216, 23,195,135,245,122,141,235,192,110,187,164, 45,118,168, 42,231,250,237, 53, 95,252,248, 39,156, 44,134, 60,126,
-254,156, 48, 74,152,159,156, 49,153,159,147,142,102,224,106,138, 90,241,248,241, 99,254,242,255,253, 47,156,159,157, 48, 63, 59,
-231,225,253,115,202,194,194,104,116,171, 89, 76, 71,168,186,160,216,111, 89,250, 46, 97,232, 19,134, 62, 69,153, 33, 28, 99,199,
-123,117,139, 23,128,227,184, 71, 2,159,239,185,172, 86, 43, 22,139,185,221,225,182,117, 47,155, 56, 16, 56,130,120,144,218, 47,
- 55,213,114, 56, 72,134,195,148,179,179, 11,187,147,207,115,164,108,122, 49, 68,141,148,170,127, 17,161,105, 44, 89, 42, 8,110,
- 67, 29,183,149,145,150,135,143,238,241,226,197, 51,251,193,104, 26, 38,147, 57, 73, 20,226,184,214,112,214,182, 45,113, 24, 29,
-141, 90,142,235,114,200, 27,214,203,165,205, 77, 20,150,205,252,228,187, 39,156,221,185,232,171, 89,253,201,210, 24,148,146, 61,
-208,198,177, 15, 76,207, 97, 50,136,185, 94, 45,105,106, 7, 87, 72,154, 42,167,169,114, 27, 56, 12, 3,180,238,208, 88,141,171,
- 82, 29,170, 19,212, 82,226,135, 17,139,179,115, 70, 51,159,116, 60,165,173, 90, 58,169,216,172, 86, 60,249,238, 49, 85,177,227,
-147, 79, 31,113,121, 49, 67,155, 22,163, 27,180, 81,191, 37, 74,177, 33, 73,199,119, 48,194,230, 63,126,123,100,118, 59, 98,243,
- 60,215,198, 77,140, 64,107,203, 25, 48,194, 69,163, 81,218,208, 25,129,236,111, 82, 90,107, 6,131,129,229, 33,244, 92,231,245,
-186,231,196, 27,141, 95, 57, 32,148,197,202,202,134, 48,137,105, 27, 69, 39,220,158,137,223,161, 58, 67, 86, 84, 24, 35,184,218,
-108,120,183,188,225,252,206, 37,198,247,121,119,179,164,108,106, 90,217, 49, 28,143, 24,197, 9,215,171, 37,178,237,184,185,185,
- 98, 62,183, 59,207,241,120,220, 79,110, 44,236,229,246,182,179,223,103,118, 42, 20,122,182,109, 18,249,199, 27,209,109, 48,173,
- 44, 75, 26, 41,237,151,184,239,241,229, 15, 62, 71,201,134, 87, 47,158, 91, 18, 98,150, 81, 85, 21,211,233,148,255,233,127,249,
- 95,249,199, 95,254, 87,222,188, 95, 35,101,205,143,126,244, 37,127,252,199,127, 76, 20, 69, 60,123,246,252,104, 41,140, 2,143,
-218,117,240, 5, 56,158,160, 19,238,145,160, 55, 72, 18, 22,179, 25, 14,142, 93, 19, 26, 65,221, 90,199,184,235,187,248,174, 71,
-209, 22, 76, 38, 19, 28, 71, 48,153, 76, 40,203,194,166,172,235, 2,111, 52,197, 13, 19,164,209,188,191, 94,115,255, 50,229,197,
-235,247,124,240,201, 15, 25,141,199,132, 67,143,109,150,243,252,245, 27,158, 62,123,193,131,123, 62,110, 24,210,116,134,205, 54,
- 35, 73, 6, 12, 71, 19,202,186,161,172, 91,252, 48,164, 85,154,172, 82, 56, 34,160,211,157,229,219,215, 13,121, 46,233,144,116,
-128, 35, 74, 90, 3,145,235,218,139, 12,224,244,123,116, 27,228,226,248,144,184, 5,246,120,158,143, 29, 29,217, 73,149,231,184,
- 72,169,136,251,245,141, 16,194,142, 94,131,128,235,235,235,227,141, 43, 73, 18, 70,163, 17, 90,171,254,198, 94, 28,211,219,243,
-233,148,223,253,221,223,237, 15,243, 53,159,125,246, 25,175, 94,189,234, 71,211,242,184, 78, 2,221, 95, 56, 52,178,182, 28,245,
- 48, 73,184,184,184, 56, 78, 68, 30, 61,122,196, 23, 95,124, 97, 39,166,142,203,118,183,166,110,202, 99, 62,192,126,118, 93, 70,
-163, 1,101, 89, 83,215,165, 53, 72,158,156, 28,193, 63,105, 98,197, 45, 69,158,247, 35,115,159,253,126,207,155, 87, 87,191,101,
- 85,220,241, 71,255,254, 15,249,131,127,255,135,252,223,127,246,231,208,105, 60,129, 61,136,104,117,180, 53,222,238,163,111,111,
-204,183, 33,207,227, 84,172,109,200,234,146, 44,187, 32,207,243,227,255,214, 52, 13,135,108,199,102,123,171,235,182, 55,116,225,
- 24,234,178,233, 31,190,246, 65,158,164,218,170,139,181,176,138,240,218,222,224,183,219, 45,121,158,219, 95,191,191,213,158,157,
-157,217, 38,212,112,216,155, 27, 5, 90,171,223, 10,206,113, 52,170, 89,241,208,247,107, 1, 99, 36,198,116,104,221,246, 16, 48,
-183,255,188,119, 52,173,162,174, 90,180,113,168,107, 73,221,238,241,188,130,186, 81, 61, 88,199, 69,187,224,152, 91,144,152,192,
- 56, 6,141,135, 49,173,157, 14, 96,185, 37,199,130,125, 31,132, 45,219,230,191, 41,154,185, 69,127,107,173,109, 72,221,177,128,
- 45, 71,184,120, 65,232,115,255,254,125, 70,195,156,231,175,223,146, 29, 26,124, 63,192,104, 43,101,137,227, 20, 63,140,144,186,
-163,109, 74,219, 27, 21, 86,121, 90, 55, 61,145, 71,248, 71,201,192,118,171, 88, 47,151, 86,242,226, 24, 78, 79,166,148,181,101,
-163,167, 73, 98,171, 28,101,133,150, 29,251,237, 30,109, 12,194,143, 24, 14, 83, 34, 98,124, 39, 66,117, 5, 78, 87, 51, 78, 28,
-134,161, 96,181, 94,241, 87, 63,253, 71, 10,229,224,134, 29,139,105,202,163,139, 41,195, 65, 68, 99, 58, 38,163,148,201, 32,102,
-183,188, 38,211,154,197,120, 68,145,229,196,190,199,112, 54,227,207,255,250,111, 49,142,203,249,249, 57,151,119, 2,126,243,236,
- 45,174,106,168,106,197, 79,255,225,215, 24, 47,229,106,189,231,175,254,230,111,249,159,255,243,255,200,217,201,144, 42, 59, 48,
- 72, 67, 28,173,153, 14, 19,190,248,225,167,150, 98,213,150,184,158, 29,229, 76,230, 83,166,195, 25,215,215, 75,170,166,227,226,
-226,194,246, 42,189,128,206, 8, 30, 63,126, 76, 85,100,220,189,243,135, 28, 84,131,233,108,106,185,200,118,196,113,136, 67,199,
-225,176,227,234,234,134,187,119,239,240,224,225,125,194, 40, 32,138, 67,194,208, 50,195, 79, 78,102,100, 89,113,124, 81, 85,103,
- 77, 71, 73, 26, 35,112,112, 92,155, 0, 29,244,210,131,111,127,243, 53,160, 9, 60,151, 40,112,241, 92, 67, 28,121, 4,129,139,
-235,120, 56,216,128,147,209, 10,140,194,161,163,174, 42, 58,199, 33, 30, 79,136,124,131, 39, 20,190,145,248,190, 64,116, 54,228,
- 98,100,133,234, 90,219,203, 78, 99,194, 32, 96, 56, 8, 73, 18, 15,223,233,208,178,196, 19, 6, 71,216,189,152,242, 28, 90, 89,
- 2, 35,251, 97,198, 82,239,234, 86, 35,117, 78, 45, 97, 50,157,226, 5, 49,119,238,222,195,235, 25,247,255,252,203,127,226,219,
-111,174,217,110, 5,158,247,200, 6, 84,250,148,189,205,114,124,127,138,213, 90,247, 73, 91,250,218,161,215,159, 88,125, 43,120,
- 80,146, 70,183,125,214, 65,160,164, 65, 42, 65, 81,117,236,183, 86, 26,146, 87, 57,163,209,128,170, 40, 24, 14,135,200, 70,177,
- 89,173,109,117,172,170,153, 78, 39, 92, 87, 21,110, 47, 16,242,253,136, 78,203,163,208, 33,138, 7,253,196, 39,196,243, 4,111,
- 95,191,225,111,127,246, 83, 28,223, 39, 43, 42, 6,211, 9,173,227, 80, 52, 45,121,109, 63, 91,195,196, 78,184,138,162, 56, 62,
-148,215,155,125,239,228,238,216,239,183,189,167, 60, 98, 56, 30,217,189,175,128,245,118,195, 96,144, 32, 2,143,235,213,146, 32,
-142, 40, 14, 25,105,146, 32, 92,167, 63, 96, 7, 92,204,102, 56,104,226, 56,230,242,206, 57, 81,224,225, 0, 39, 11,235,140,223,
-108, 54,252,217,159,255, 37, 69,221,144,164, 3,254,251,255,225, 63,242,229,151, 95,242,201,167, 31, 65,167,249,217,207,126,134,
-231, 58, 92,156,159,241,234,213, 43,194,192, 39, 10,124, 84,224, 35, 68,240, 61,106,218,177,112, 40, 63,112,241,221, 0, 47,112,
- 17,198,161,145, 53,117,217, 16,198,150,133,224,238,172,172,201,243, 29,174,223,191,103,144,198, 96, 28,182,171, 43,242,225, 0,
-237,248,248, 81,192,190,104,120,242,252, 29,198, 56,220,185,123,223,226,143,227,128,114,117,160,146, 26,237, 6,212, 74, 48, 25,
-140, 8,226,148,172,146,104,199,146,202,194, 56, 33,106, 52,178, 19,184, 97, 66,160, 26,220, 48, 70, 54, 21,194, 13,113,132, 33,
- 26,196,180,178, 35,244, 61,132,227, 19, 25, 67,208,223, 44,187,206,114,189, 45,234,212,252, 86,224, 79,247, 80, 39, 73, 89,218,
- 53,200, 96, 48,232, 39, 2, 32,219,166, 31,143, 27,162, 40, 33,244, 2, 94, 60,125,110, 63,171,141,164, 42, 74,218,186,177, 36,
- 76,165,200,243, 3,111,223,190, 70,184, 14,129,231, 51, 27,141, 24,164, 41,217, 33,103,189, 92,177, 59,221,130, 54,180, 77,141,
-233, 15,248,105, 26, 51, 76, 99,220, 81,130,239,123, 20,249,129,210,119, 57, 89,156,177,205, 10, 6,131,132,179,179, 5,179,217,
-140,174,235,120,254,252, 57,195,129,157,220,196,113, 76,158, 31, 48,157, 34,219,239,236,251, 42,181,161,102,109, 20,113, 24,160,
-149,164,204, 51,238,221,187,199,229,229, 61, 94,190,124,201,102,179, 98, 52,122,136,231,121, 44, 22, 11,158,124,251,152,166,173,
-136,227,152,229,178,166, 40, 10,162, 40, 98,155,229,228,101, 65, 81,102,120, 65,128, 49,157,173, 16, 26,133, 54,246,214, 45, 85,
-131,231, 58,232, 14, 11,109,114, 28, 11, 96, 82, 29, 97, 20,161,180,164,170, 10,202, 50,103, 58, 29, 19,199, 17, 73, 20,146,101,
- 45, 85,153, 51, 25,167, 54,148,105, 52,145,239, 17,197, 1,157,178,147, 57,207,117,112, 93,104, 26, 27,174,139,162,136,192,119,
- 24, 14, 98,130,192,237, 13,115,131, 62,228,230,177,221, 44, 41,139, 3, 93,103, 41,134, 65,127,112, 21,184,120,190, 99, 9,154,
- 70,209, 41, 3, 66, 19,133,182,118,189, 89,109,104,101,109,235,182,113,192,112, 48,166,110, 74,234, 58, 58, 30,168, 69, 95,233,
-149, 82, 34,101,135,192, 34,180, 93,223,102,152,180, 82,223,243, 25,148, 57,218, 54, 29,239,223, 26, 33, 61, 79, 28,147,236, 6,
- 27, 12,188, 61,108,252,118, 24,222, 24,219,203,239,180, 69,140,183, 74,218,181,184,146, 29,194, 56, 76,167,115,132, 27,241,238,
-122,203,245,205,150, 67,118, 32, 78,135,108,182,246, 4,185, 94,174, 8, 67, 31,186, 22, 80,248,158,232, 69, 0,182,210,178, 89,
- 47, 73,227, 31,161, 85,204,219, 87, 25, 97,224, 16, 5,150,185,125, 27, 20, 57,153,157, 80, 85,149,253, 2,239, 28,226, 36, 70,
- 99,144, 66, 80,182, 29,218,241, 16,126, 76,232,105,238,156,186,204,135, 6,215,245,184,186,217,242, 79,255,245, 87,236,164,199,
-233,197,132,225,240, 3,166,243, 57, 39,211, 1,141,172,137,163,128,200, 53,136,174, 37,112,236, 84, 33,138, 98,188, 48, 36, 63,
-100,188,123,123,197,234, 80,178,218,150, 8, 66,222,189,126,129,163,106,100,167,121,115, 85, 48,158,206, 56,236,111,208,155,156,
- 95,125,253,107,254,240,247,191,196, 19, 26, 7, 67, 85,150,120,174,224, 7,159,124,196,245,242,134,186, 42,137, 66,159,188,175,
-151,125,252,241,199, 52,141,228,221,111,158, 48,157,206,184,119,127,129, 16, 46,171,205,142,155,155, 27, 94,191,124,206, 15,127,
-248, 57,178,109, 64, 53,140, 39, 41,155,234, 64, 89,212, 12, 6, 35,206, 22, 39,172, 86, 43,164,106,137,227,144,217,108, 98, 31,
-248,142, 71,118,200,251, 61,146,253,255, 78,167, 99, 70, 77,130, 82, 53, 65,232,247, 93, 79,151,178,204,185,188,188,192,243, 29,
- 6,131,132,186,169,184,115,113,206,104, 60, 96,189,188,177,227,168,218,146,166, 58,165,142,114, 7,223, 3, 87,180, 76, 70, 54,
-209,121, 50,139, 17, 66,242,241,135,119,240, 61,171,120, 13,162, 16, 41, 29,130,208, 67,155, 0,199,181,220,236,206,104, 92, 26,
-206, 78, 78,145,213,152, 67,105, 67,105,127,244,135,255, 14,199,177,244,175,233,116,140,235, 64,219, 41,140,146,248, 81,108,233,
-113,218,222,174,163, 52,225,213,171, 23, 76,230, 3,134,233, 8,180, 38,207, 54,148,213,158, 40,178, 1,192,237,206, 69,169, 26,
-221, 89,200,131, 23,248,184,174,165, 64,117,134, 30, 64,209, 59, 69, 28,139,105,245, 92, 23,207,129, 32, 80, 84,109,113,236,163,
- 54,170,163, 44, 36,235, 77,201,187,247, 43,150, 55, 54,133, 62,155, 77,142,183,138,231,207,159,243,226,197, 43,130,254, 36,255,
-246,237,123,158,191,248,142,201,104,216, 59, 12, 44,229,172,105, 43,139,191, 20, 62,173, 50, 71,192, 73, 89, 87,212,157, 33,137,
-125,102,231, 99,214,219, 13,187,162,182,166,185,209,144, 52,178, 59,211,195,222,170, 46,157, 94, 1, 28, 69, 17, 82, 53,204,166,
- 39,253,190, 82, 28,149,165,121,158,219,219, 79,215, 17,165, 9, 6, 56,100, 5,211,201,136,217,108, 70,210,155, 9,187,174, 99,
- 48, 24,144,166, 41, 85,110,237, 87,111,223,190,101, 58,180, 95,138,255,240,247,127,199,229,189,187,124,242,233,167,124,254,197,
-151, 92, 93,223,144, 21, 13,227,233,140,215,175,223,242,139, 95,252,130,166,170, 88,175,151, 96, 52, 63,253,233, 79,185,127,121,
- 7, 79,192,120, 60,100,144,218, 95,199,104,251,101,212,200, 22,227,250, 61,254, 85,209, 73, 59, 17, 26,248, 41,161,111,147,218,
-214,133,125,202,124, 62,231,163, 79, 62,230,103, 63,251,217,113,239,126,254,195, 31, 50,137, 83,242, 74, 17, 37, 54,148,117,243,
-238,134,217,100,193, 63,254,242,107,170,182, 34,153, 68,100,101,129, 27,198, 92, 62,120,132,208, 49, 85,107,216,101, 53,121, 89,
- 80, 53, 13,171,245, 13,202,184, 76, 23,103, 72, 45, 88,156, 94,128,241, 16, 78,128, 17, 10,199,135, 40,140, 56,191,240,232,140,
- 69,228, 34,236, 72,211,115, 5,157,108,143, 74,216,223,214, 2, 11, 33,240,130,240,152,124, 46,203,242, 8,146,186,189, 37,158,
-111,215, 0, 0, 32, 0, 73, 68, 65, 84,109, 10,172,185,112, 56, 28, 50, 26,141,184,185,185,225,217,179,103,124,250,233,167, 22,
-209,219, 83,222,182,187, 53, 93, 39, 9, 67,187,123,215, 24, 2,223,227,238,249, 57,223,126,251, 45,139,147, 83,138,162,224,233,
-211,167,124,250,233,167,248,174,245,220, 95, 92,156,161,186,150,237, 14, 14,135, 61,158,107, 45,101,163,209,128, 15, 62,124,200,
-246, 80,145, 23, 21, 47, 94,188,224,155,111,190,177, 46,250, 36, 33,142, 99,214,235,229,177, 15, 62,159,207, 57, 89,204,142,233,
-115, 33,196, 17,223,123,255,254,125,138, 67,193,171, 87,175,104,251, 44, 80, 24,134,188,121,243,134,147,254, 22,175,148, 66,119,
-112,126,126,110,123,245,251, 45,239,174,175,172,212,166,149,199,100,126,212,167,217,133,177,253,255, 91,189,243,109,223,253,150,
- 70,232,121, 30,158,239, 80, 55, 13,203,229,146, 34,179,174,137, 60,207,123,104, 86,219, 31,122,107,174,175,175, 89,204,231,124,
-240,193, 67,162, 40,161,147, 45, 93,103, 72, 79, 79,136,211,132,170,105,120,249,114, 99,229, 52,253,190,252,246,144,182,113,173,
-189,240,112, 56, 28,255,249,249,249,185,165,240,169, 17,110, 21,244,200, 97,155,246,247,125, 59, 93,108, 91, 73,215, 35,100,147,
- 36,166,174, 27,130,192, 39,138, 3,194, 48,160,110, 74,170,170,164,105, 19,164,146,100, 69,142,238, 4,202,208,127, 47,216, 10,
-178,210, 26,209, 79, 16,149,214, 8, 97,215, 5,157,180,223, 90,230, 86, 28,136,232,233,127,208,182, 10, 33,156, 62, 59,212,179,
-233,133,243,111,254,126, 44,196, 57,244, 89, 0,253,125, 80,238,250,253, 13,135,188,192,245, 66, 28, 55,161,235, 96,183, 59,112,
-115,179, 99, 56,145, 8,199,238, 73,140,232,248,225, 23,159,225, 26,133, 54, 13, 97,224,224,184,128,177, 35,247,253,197, 28,199,
-237, 48,166, 33,219,111,236, 31, 68, 42,242,195, 1,217, 9,140, 18,248, 97,196,102,119,160,200, 27, 70,163,136, 97, 50,102, 87,
-108,121,127,179,226,217,245, 99,218, 70, 48,139,103, 60,152,133,252,224,226, 30,243, 81,194,213,245,146,236,176,167, 51, 2, 47,
- 26,208, 34, 88,239,115, 94,189,122, 67,232,156,225,248, 14,219,108, 67,228, 26, 6,129,143, 23,248, 28,154, 12,227,197,228,251,
- 3,141, 59,228,193,163,143,104,158,189,165,150, 14, 79, 94, 94,179, 89, 29,240,177,157, 72, 39, 28,178,201,107,226, 32,229,131,
-143, 46, 73, 19,143,166,105,153,204, 6,104,213,146, 68, 94,239,138, 30,245,227, 23,197,108, 54,195,113, 93,139,252,236,149,163,
- 47, 95,190, 36,203,114,194, 40, 1, 28,190,254,215,223,176, 90,173, 72,227,144,199,143, 31,243,225, 7,247,240,125, 23,211,117,
-120, 78,111, 4,210,118,180,186, 88, 44, 64, 24,246,251,253,145,105,221, 52, 37, 77,221,242,171, 95,253, 43,155,205,134, 59, 23,
-119,249,225, 23,159, 19, 69, 65,175, 47,213, 72,217,144, 23, 89,223, 87,213,180,117,197,112, 52, 96,234,141, 56, 61, 59, 33, 12,
-125,100, 91,161, 84,203,110,179,239, 33, 33,138,147,147, 57,161, 23,208,117,138, 71, 15,239,216,169, 64, 45, 73,146,132,253, 46,
- 59, 2, 40, 28,199, 26,210,164,148, 4,241,173,194,213,246,102,203, 50,199, 21, 18, 85,231,116,170,166,169, 10,146,193,132, 15,
- 31,221,195, 13,110,117,167, 45,142,177, 31,174, 14, 59,186,195,245, 65,219,155, 99, 28, 43,102,243, 33, 66, 84, 28,246,133, 37,
- 82, 57, 13,227, 73, 76, 16, 10,178,253,134,217,164,207, 21, 56,246,164, 42,101,135,146,198, 42, 81, 93,135, 60,175,108,213,202,
-241, 16, 56,232,174, 67,104, 31, 63,177,251,106,207, 3,227,118, 72,165,112,220, 14,215,241, 48,194,163,149,182, 50,115,118,118,
-198, 98, 62, 71,247, 95,126, 55, 55, 55, 54,212,105, 58,242, 60,231,237,219,183,188,123,247,142,209,224, 99,130, 32,166,145, 53,
- 56,130,225,104, 68, 16, 68,232,206, 97,187,207,121,243,238, 13,223,124,251, 27,134,211, 9,218,113,145, 66,208, 54, 45,194, 15,
- 80, 70, 18,248, 22,212,179, 92,111, 45,137,170,179, 95, 62, 89,153, 17,199, 17,243,249,140, 52, 29,144,196, 3, 94,191,126,205,
-110,183,163,105, 26,194, 56,162, 44, 75, 58, 99, 31,152,117,213,210,246, 59, 71,109,132,213,223,222, 50,222,101,199,120, 60, 56,
-226,157, 47, 46, 46,152, 15, 18,246,187, 53,195, 65,194, 96,144,176,223,239,249,245,175,127,205, 55,143,191, 99,159, 87, 4, 97,
-202,251,155,165, 85, 10,247, 59,111,165, 90,162,208, 30,198,159, 62,254,150,192,119,237, 67, 97,102, 71,151,243,197,194, 78, 53,
-148,230,233,203,215,164,113, 72,211, 52,180,109, 75, 41,155, 35,108,230,246, 97,104,122,112,199,155, 87, 1,111, 95,191, 66, 41,
-197,221,187,119,249,244,227, 79,152, 12, 71,108,150,239,105,181,224,144,151,172, 54, 7, 12, 9,207, 95,188,198,120,130,250,245,
- 1, 17,120, 12,134,115,162,120, 66, 85, 64, 81,212,100,133, 2,211,242,252,249, 51,138, 50, 3, 2,146, 81,136, 52,138,100, 52,
- 69, 73, 67,221,182,148,149,253,108,232,206,161, 51,142,149,141,116,182,255,155, 6,246, 64,140,238,190, 23, 38,245,234, 99, 99,
-122, 72, 73, 31, 18, 13,252,136, 46,176, 7,167,186,106,143, 15,234,180,255, 92,164,201,128,211,197, 25,207,158, 60, 97,179,217,
-176, 93,111,168,235,154,162,200,143,225,175,182, 53,132, 33,148, 85, 1, 66, 80, 87, 6,207,117, 57,236,115,202, 48,199, 19, 14,
-155,213, 18,255, 7,159,243,240,225, 67,222,189,123, 71,224,185,164,131,152, 7,247, 47, 45,146, 84, 43, 86,235, 27,246,251, 61,
-101,153, 19,134, 17,203,213,166, 79,238,187,253, 97, 19,148,178, 19,216,205,106, 77,118,216, 49, 24,218,144, 98,146, 36, 12,135,
- 3,202, 44,255, 55,160,160, 66,119, 68,129,199,126,187,166, 40, 10,138,220,174,147,118,235, 13,206, 39,159, 48,153, 91,244,243,
-100, 54,179, 73,121,223,122, 30,242, 50, 35, 12,237,138,193,174,193,172,141, 48,142, 45,111,126, 60,182, 65,229, 65, 24,247,235,
-214,222,137,209,179, 2,110, 89,247,247,238,221,195,243, 60,203,203, 15,173, 84, 39, 47, 60, 38, 35,123,203, 86,109, 3, 61, 71,
- 93, 43,137,233, 12,174, 7,109, 91, 97, 58,133,106, 43,154, 42,255,190,210, 39,192,245, 92,155,204,167, 35,207,118, 22, 73, 28,
- 71,204, 79, 38,125, 46, 7, 16,134,170,178,160, 52, 33, 12,190, 31,246, 85,229,186,111,107,180,220,187,119,137,227,120,140,199,
-103,204,102, 86, 1,123,117,117, 67,219,214, 71, 36,241,118,119,160,174,228,209,223,224,186, 2,199,183,123,121,139,165,182,171,
- 67,237, 71, 24, 35,144,141, 21, 72,217,149,136,119, 76,177,127,159,126,119, 64, 24,148, 84,255,205, 20,252,237,223,111,179, 0,
-183,106,104, 33, 92,188,191,254,127,254, 63,156,126, 17,223,106, 67, 52,152, 48, 28,141,104, 59,143,178,104, 0, 69,146,134, 8,
- 26, 46,207,167,116,170, 36,219, 55, 22, 74,175, 5, 82, 73,124, 87,112, 50,155,114,245,254, 53, 90,106,210, 52,228,244,236, 4,
- 28,203,244,238,180,225,253,234,134,178,168, 45, 85, 78, 89,185,252,102,183, 97,118,186,192,197,193,237, 12,170,170,185, 89,191,
-160,190,106,120,114, 71,163,234, 1,219, 93,206,219,171, 13, 65, 20, 18, 13, 71,148,242,192,183, 79,159,115,184,126,131, 43,126,
-151,139,243, 57, 85,126,224,116, 50,230,234,122, 69, 28,184, 36,113,138,208,214, 26,167,124,248,226,179,143, 45, 57, 44,171,109,
-152,205,141,112, 93, 7,105, 36,173,180,238,241,233, 60,229,242,242,146,159,252,232, 67,140,204,137, 66,168,178, 22,215, 15,209,
- 82,163,113, 9,194,132, 34,175,241, 67,203,125, 63, 20, 37,203,229,178,175, 76,105,118,251, 61, 74, 67,213,212,124,247,236, 5,
- 82, 67,219, 57,252,237, 79,127,206,116, 58,231,124, 49,226,230,250,154, 36,114, 24, 13, 18,138,170,196,241, 7,220,187,188, 67,
- 94,236, 80,173,125, 35, 53, 77, 71,158,183, 4,126, 74,211,184,172,215, 21, 66,108,153,159,237, 24, 12, 99,186,206,174, 64,170,
-170,166,204, 53,142, 19, 80, 21, 25, 93,157,227,168,150,243,179,115, 27,168, 17,176, 56,155, 80,213, 5,187,253, 13,166,115,208,
- 82, 49, 8, 19, 34, 63, 64, 33, 9, 35,155, 84,141, 99,159,178,174, 80, 90, 83, 22, 21,116,154, 36,137, 16, 2, 59,254,206,235,
- 99, 10, 94,120,174,221,169,251, 14,203,229,210, 18, 6,165, 66,182, 29,109,147,147,229, 55,125, 55, 92, 99,180, 37, 69,117, 90,
- 90,106,153,212,180,202, 65,247, 50,140,197,108, 72,190, 95,113,243,126,205, 98,113,106,235,125,126,120, 12,137, 44,175,111,122,
-181,145,238,199, 90,210,166, 72,221,160, 15, 63,218,209, 22,158,197,147, 26,173,145, 97,136,239, 65, 58,136, 8,210, 24, 28,141,
- 68,147, 26,112,188, 4, 97, 34, 62,120, 96,111,203,190,239,147,142,198, 76, 70, 67,174,151, 43,190,253,205,119,196,113, 76,215,
- 9,132, 27,145, 21, 53,235, 77, 78, 89, 73,162, 4, 58,133, 61,164, 74, 67,173, 26,118,135,130, 44, 47, 41,234, 6,105, 32, 76,
- 71, 52, 58, 35, 47, 45,138, 54,239, 43,162,233,208, 6,146, 42, 99,147,201, 66, 91,204,228,116, 52,238,111, 38,146,193, 64,240,
-254,253,251,126, 58,163,208,152,227, 13, 3,173,145,170,225,234,221, 59, 58, 58,226, 40, 66,213, 13,198,129,217,249, 37,174,235,
-242,238,221, 21,131, 36, 37,158,140, 49,202,142, 23, 15,101,133, 84,134, 14,135, 7, 31,124,204,225,144, 17, 37, 9,173,252,150,
-193,104, 76,219,216, 91,137,231,249, 36, 73,140,238, 36,211,233, 20,173, 90,132, 48,199,190,244,106,189,103,189, 57, 32,165,100,
- 60, 30, 51,157,206,168,219,150,170,105,105,149,194,247, 67,107,185,235,115, 0, 77, 99, 73,120,183, 18,151,170,105,121,254,242,
- 21, 81,146,218, 60,135,231,243,243,159,255,156,193, 96,196,253,187,231, 44,206, 47,185,190, 89, 83,212, 26,189,221, 33,252,136,
-170, 46,136, 70, 19, 26, 41,217,237, 75,188, 18,208, 17, 32,108,253, 42,136, 64,215, 12,194,136,162,146,100, 85,197,104, 60, 32,
-242, 35, 54,213,142, 48,182, 59,237,174, 23,133,136,174,235, 39,102,216,196,179,112, 25, 12,199, 8,244,113,165,163,122,158,189,
-214,244, 19, 30, 77, 43, 45,116,200,138,133, 60,132,235,144,244,235,159, 44,223, 50,159,206,142,235,177, 32, 74, 44,241,176,145,
- 12, 71, 19,178, 34,183,191, 15, 47,196,235, 45,200, 85,255, 0,238,148, 98,185, 90,115, 50,155,179,218,110,112, 93,151,213,122,
-201, 87, 95,125,197, 31,253,209, 31, 17,134, 33,249, 97,143,112, 12, 97,228,245,187,241,239,199,182,155,205,134,139,203, 7,124,
-246,233,135,204,103, 35,158, 62,125,202,227,223,124,195,249,249, 57,187, 32, 56, 86, 27,165,148,200,186,225,213,171, 87,200,186,
-182, 18,151, 40, 98, 48, 24, 48, 24, 12,209, 90,114,114,186, 96, 33, 78, 45,253,179, 23, 71, 93, 93, 93,177, 88,156,113,117,253,
-142,205,102,213,143,242,115,182,219, 45, 66,184,118,103, 29,250, 12,210,132,179,179,115,242, 50,231,230,122,137,233, 58,198,195,
-148,100, 56, 56, 98,178,227, 52,196, 17, 3, 48,230,104,182, 84, 93, 75,103,212,145,183, 33,132,176,135, 19,225,144,164, 17,103,
- 39, 11,138,216,230, 17, 22,243, 19, 54,235, 45,176,101, 50,153,208,117, 29,207,158,191, 96, 52,181, 65, 78,227, 56,120, 97,104,
-123,236, 64,213,243,232, 39, 19,171,147, 61, 57, 57,177, 25, 17,236, 65,190,109, 91,116,103,136,226, 33, 82, 27,170,182, 57,130,
-190,108, 30,167,237,219, 2, 54,135,147,101,153,133,219,244,130,157,186, 46,109,216,207,119, 48,149,229,228,239, 14, 5, 65, 16,
-145, 14, 70,246, 70,221, 73, 75, 49,148, 28,199,243,129,112,113,132,143,145,138,174,233, 80,218,161,243, 12,142,168,123, 35,229,
-237,196,200,138,114, 92,199,183,239, 85, 64, 11,141, 99,110,147,252,110, 31,160, 21,223, 99,198,133,165,119,186, 31,207, 47,255,
- 55, 45,236, 30,236,237,205, 27,140,163,249,227,255,240,159,200,246,146,221,182, 36,240, 67,132,105,248,241,143, 30,177,152,251,
-140, 19,193, 97,117,205, 97,153,225, 26,143,182,105,105,170,134,166, 31, 53, 57, 2,230,243, 19, 27, 98, 24,142,240,147, 4, 47,
-138,113,195, 0,227,185,228, 85,129, 54, 29, 97, 28,176,219,103,108,183, 5,171,235, 13,179, 36,225,100, 16, 50, 9, 5,179,212,
-103,191,219,146,213,154,199,175, 86, 92,237, 26,170, 78, 83,181, 37,170, 83,168,206,160,140,224,233,203,215,184, 66, 48, 25,143,
-169,165,194,245, 3, 90,165,193,243,236,137,219,116, 12,134, 3, 2, 15, 62,250,224, 33,158, 35, 40,243,130,186,106,216,108, 51,
-134,131, 41,174,227, 51, 29, 13,113,168,121,246,236,215,156, 44, 18,123, 91,111, 43,148,180,169,109,169, 61,148,242,104, 90,104,
-165, 13, 88,229, 85, 97, 95, 0, 35,216,110,119, 92, 45,151,212, 74, 49,156, 76,121,249,246,138,215,239,151, 40, 2,202, 90,144,
- 14,103, 84, 69,205,189,187,247,136, 60, 23, 97, 26,186,122,143,106, 42, 75, 35,194,224,123,130, 67,182,167, 40, 74,118,251, 6,
-213, 37, 92,223,212,252,250,235,215,184,254,152, 86, 25, 90,173,153,159,157, 80, 52,149,229,173, 43,129,238, 34,140, 52,248,186,
-192,105,115,238, 45,230,140,210, 20, 35, 4,218,215,212,228,132, 3,143, 36,244,168,178,140, 54, 83, 76,135, 83,124,225,162,100,
- 67,171, 50, 91, 65,209, 1, 55,171,130,119,203,150,178, 13,168, 91,159,172,182,146,130,215,111,222,224,121, 62,174,112, 41,242,
-138, 50,175,169,139, 14,215,139, 41, 42,201, 33,107,104,106,155, 48, 23,248, 56,194,163,174, 90, 58,213,145,231,133,213,168, 26,
-135,166,110,112, 52,100,251, 29, 47, 30, 63, 37, 9, 28,230,163, 1,190,176, 86, 57,215, 56,232, 22,124,199,231,222,229,125,246,
-251, 3,158,227,161, 84,103, 9,117, 65, 64, 18,199,160, 13, 85,158, 91, 19,147,210,125,162,183,165, 81, 13,126,232,176,221, 46,
- 25, 4,214, 37,160,101,131,148, 53,121, 83, 34,141,102,189,217, 34,235,154,174,168, 9,208, 32, 90,242,195, 22,215,179,225,175,
-166,131,162,150,180, 18,118,135,146,188,168, 41,202,150,249,201,130, 48,142, 57,100, 37,181,106,201,138, 10,225, 7,252,243, 87,
-223,240,242,237, 91,118, 69,206,124,113,138,235,249,212,109, 67, 93, 86, 54, 68, 21, 70, 12,146,148,170, 44,168,235,138, 56,137,
-112, 92,129, 70, 51,155,204,232,100,199,110,187,227,211, 79, 62,163, 40, 43, 14,135, 3, 65, 20,114,117,115,131, 31,250,180,170,
- 37, 14, 67,164,108, 81,109,205, 98, 50, 99, 58, 72,145, 85,133, 81, 10,207,241,153, 77,167, 20,121,142,193, 48, 30, 12, 40,139,
-130, 7, 15, 30,224,120, 22,129,187,203, 11,106,217,145, 85,150,214, 40, 53,188,124,251, 30,169, 58,170,170,197,115,125,134,163,
- 49,201, 32,193,117,125, 14,135,156,178,149,104, 44, 49, 82,118,112, 40, 27,140, 27, 64, 16, 81, 52,138, 67, 89,179,218,238,185,
- 89,111,168,218, 26,131, 67, 85, 55, 28,178,156,166,149, 40,173, 45, 62,180,211, 8,199, 69,117,118, 55,221,202,142,182, 85, 20,
- 69,133,236, 58,174,175,222,129,209,204,230,115,218,182, 99,119,200, 9,162, 20, 63, 12, 40,234, 26, 37, 65, 56, 65, 15, 91, 50,
- 20, 77, 77,150,231,180,157,228, 80,228, 20,101,201, 46, 43, 56, 84, 37,194,181, 63,251,178,174, 72,146,184,255,245, 90, 58,173,
-105,218,150,186,175,138,185,142, 79, 20,220, 30, 88, 53, 70,120, 52, 82, 99,112,201,203,146,206, 96,209,190,218,160,180, 70,117,
-154,186,170,201,202,146,186,110,168,218,150,195, 33, 99,179, 93,163,181,162,149,146,249,201,156, 48,138, 89,173, 54, 24,224,236,
-236,146,166, 85, 20,101, 69, 81, 86, 52,117,139,227,123, 68, 97,140,113, 44, 3, 68, 32, 8,194, 16,207,247, 56, 57, 57,193,245,
- 60,226, 56,225,237,219,119,204, 78,230,248, 97,192,175,191,254,138,151,175, 95,242,228,241,119,188,123,255,158,229,114,201,171,
- 87,175, 56,108,246,253,148,105, 6, 90, 49, 76, 34, 78, 79,102,156,206,167,140, 6, 9, 81, 16, 80, 21, 57,243,233, 4, 71, 56,
-232, 78,113,121,231, 14,195, 62, 15, 80,151, 53,135, 44,227,233,243,215,252,243,191,124,197,179,231,207,121,250,228, 59,222,190,
-125,195,114,117,205,251,247,111,113, 93,195,108, 54, 97, 52, 74, 81, 82, 34, 48,124,240,225,199,180,173,194,243, 67, 86,203, 37,
- 85,145,161,154,138,221,118, 71, 93, 21, 76,166, 83, 58,109,219, 2,251,237,150,116,152,226,186,142,213, 64, 47,175,123, 11, 99,
- 68, 16,250, 12, 71, 35, 78,102, 51,116,215, 81, 22, 25, 39,243, 25,157,146,212, 69,193,205,213, 53,117, 89, 49, 72, 71,220, 92,
- 47, 41,202,134, 23, 47, 94,113,178,184, 96,189,217,243,175,143,159, 96,132,207,211,151,111,216,238, 11,148,118,208, 90,144,229,
- 37,101, 89,163,149,166, 83,154,245,205,141,205,200,244, 23, 18, 99, 28,174,175,110,216,110, 51,178,188, 36, 47, 27,170,166, 97,
-191, 63, 96,132,237,237, 87, 77,133,236, 36,142,235,129,112,153, 76,103,125,175, 60,100, 56, 28,225,186, 14,135,108, 71, 20, 5,
- 76,230, 83, 84,215, 49,155, 47, 88, 44,206,216,110, 14, 68,126, 64,232,251,180, 77, 9,170,195, 40,219,158, 49,170, 35,114, 2,
-140,212, 52, 89, 75,153, 73, 60, 47,165, 40, 42,139, 65,238, 42,186,182, 64, 53, 53,105, 52, 96,183,201,108,179, 9, 67,219, 53,
-104, 52,157,238,168, 27,133, 75, 68,211, 26,164, 54, 20, 85, 69,211,175,105,163, 32,192,187,188,124, 64, 81,110,136,135, 49,110,
-164, 88,111,118,108,151,239,153, 79, 71, 28,182, 7,100,221,224,208, 49, 73, 60, 92, 93, 82,231, 13, 62, 45,186, 41,185,222,236,
-241,227, 4,124, 23, 23, 67,228,121,180,141,164,104, 75,146,193,144, 65, 18,179, 43, 26, 28,223,197,119, 2, 38,190, 79, 20,125,
-132,238, 36,129,235,177,221, 23,252,197, 95,252,140,243,243, 59, 60,188,123,143,211,105, 74,232,104,162, 80,208,202, 6,141, 97,
-118,241,136,245, 62, 39, 28, 92,241,234,221, 13,187,172, 68,227,112,231,226, 14, 95,254,224, 99, 38,129,226,236,100,142,239,193,
-116, 50, 32,240, 4,129,239,210,148, 5,121, 85,131, 41, 25, 71, 41, 78,212,225,202, 61,186,216, 16, 26, 24,132, 46,158,176,187,
- 11,161, 21, 89,190,197,161,225,155, 95,255,138,192,249,132, 97, 28, 81,229, 21, 46, 33,198,184,120,194,238, 80,253, 64,160,197,
- 45, 70,215,144,149,182,166,242,232,225,125,158,191,126, 67,158,219,113,155,112, 60, 92, 17, 50, 72, 82,246, 89,129,163, 87,108,
- 54, 57, 31, 61, 58,161,206, 90,218, 58, 67, 8,135,186, 82,136,192, 65,170,138,170,169,169,106, 73,171, 2,170, 66,241,226,197,
-138, 44, 43, 72, 6, 41,169,239,225, 56,222,209, 34,228,251, 49,170, 3, 69,130,107, 58,226, 4,146, 88, 16, 8,137,223,213,180,
-198,160, 91, 48,142, 5,208,196,177,195,201, 98,140,104, 11,100, 93, 81,123, 14, 65,236,160, 28, 48,142,224,213,203,119,188,191,
-170,241,194, 25,186,182,216,205, 48,134,229,106,203,157,179, 19, 60,215,178,161,235,178,197, 49, 54,128,242,238,237,123, 70,147,
- 49,126,228,115,200,247, 20,117, 5,102, 79,212,187,162,165,108,240,124,135, 40,112,113,232,104,155,130,233,120,198,195,123, 23,
-232,186, 66, 86, 25,163,228,146, 59,151,247,249,135,191,255, 37,223,252,235,215,248, 94, 66, 81,182, 60,123,250, 4,165, 59, 92,
-207, 48,159, 79, 49,231,103,120, 62,212,165, 93, 11, 52,117, 65, 91,230,140,135, 19,180,240,240, 2, 15, 28, 65, 86,102,220, 92,
- 95,145,186, 14,225,249, 25, 93,215,224,165, 33,149,106,105,202, 10,215,241,233,100, 75,181, 47, 81,117, 67, 50, 30, 80, 52, 21,
-110, 48,196,245,236,159,107,159,213,104,199,101, 52, 91, 88,151,188,240, 88,111, 51,214,187, 45, 85,157, 49, 24, 13,216,103, 59,
-138, 55,111,216,229, 57,233,104,116, 68,209,110,246,123,155, 24,143,162, 99, 82,213,250,226,125,232, 59,205,118, 4, 58, 36,219,
-239,217,111,115, 62,251,244, 7,108, 54, 27, 54,187, 45, 56,130,237, 97, 79, 58, 76,143, 42,202,188, 42,145,141,228,252,116,206,
-151, 95,252,128, 52, 78,120,255,246, 45,171,205,134,186,149,199,164,239,108, 54, 59,238,171,227, 56,166,174, 90, 54, 7,171,229,
-196,243,217,229, 37,113, 92,219,241,240, 62,195,117, 93,254,243,127,248,143, 40,165, 88,173, 86,188,123,103,113,181, 81, 20,225,
- 6, 1,117,219,241,250,253,245, 49,205,172,112, 16,170,183, 14, 10,151,166, 51, 20,117, 77, 68, 72,164, 59,188,192, 39,113,135,
-199,253,254,109,255,155,223,234,175,223,102, 53,186,206, 54, 8, 78,207,207, 72,135, 67,132,112, 57, 57, 61, 67, 27,123, 3,204,
- 14, 57,121, 94,146, 21,246,247,131,227,226,122, 30,141,178, 60, 3,167,118,143,188,119,139, 78,246,168, 91,137, 49,182,199, 28,
- 42,219,246,168,170,222,231,142,205, 46,180,141, 34,207,182,212,117, 77,211, 52,212, 93, 69, 18, 37,120, 61,116, 69,202,246,184,
-211,117, 93,215,246,175,173, 6,201, 26,251,234, 26,217, 35,148, 45,219,209,224,230, 5,179,217,142, 48,140,251, 91,103, 0,142,
-139,236, 44, 28,196,113, 60,106,217,178, 63,236,137,162,128,225, 48,198,113, 60, 58,163,216,239,247,100, 89,198,163, 71,143,108,
-202,186,211,156,159,159,179,223, 91, 11,219,253,251,247,249,139,191,252, 51, 84, 43, 81, 93,195,120, 60,182, 34,173, 60,163,149,
- 53,207,159,126,215,239,234, 45, 85,174,105,236,141, 80,224,218,181,104,191,210,211,154, 99, 59,194,114,214, 91,188, 32, 36,136,
- 6, 8,199, 99,183,219, 48,158,164,164,113,194,245,205, 91,164,148, 76,167, 67,162,200, 99, 58,181, 12,250,175,126,253, 13,143,
- 31, 63,182, 48, 42,225,219, 85, 88, 83, 50,136, 38,148, 85, 65, 34, 34,190,253,230, 43, 6,227, 17,174,227, 19,248, 46,168, 22,
-213, 1,198, 26, 48,187,206,240,226,197, 11,180,214, 60,120,240,128,174,135,209, 8,236,235,190, 89,174, 44,212,169,211, 22, 4,
-118,200,169, 27,201,187,247, 75,118,217,129, 70, 90, 36,242, 96, 52, 38,173, 91, 12, 30,219,172,196,236,246,104,173,112,141,177,
-181,232,182,161,169,106,210, 52, 38, 74,236, 90, 43, 8,237,207,221, 24,129,209, 2, 41, 53,198,149, 71,227, 91, 85, 85,228,185,
-173,145, 6,158,111, 95, 35,165,173, 34,182, 82, 40,153,225, 56, 14, 97, 24, 80, 22, 53,211,147, 41,117,213, 18,198, 17,178,145,
-228, 89,197,124, 58,229,252,252,156,237,230,134,182,170,112,133,196, 17, 48,136, 67, 92, 92,146,208,161, 41, 21,251,205, 53,174,
- 27, 83, 87, 2, 33, 36,243,249,200,174,125, 7, 99,170,170,193,243, 12,159,127,254, 0, 45, 60, 30, 63,123,138, 27,244,129, 78,
- 37, 72, 34, 91,191,117, 29, 31,133,180,170,103,221, 81,151, 57, 3, 79,224, 93,158, 77, 41,107,135,225,216, 1,103,206,203,151,
-111,112,117,195, 52,141,201, 70, 30, 95, 63,251, 53,101,185,230, 15,126,124, 70,114,113,142,235, 5, 36,231, 11, 92,229,177, 94,
- 23,120, 81, 66, 50, 26,178,223,239,109,160, 43, 77, 88,156,158, 16, 68, 41, 55,235, 13,129,159,224,120, 1, 89, 99,181,140,147,
- 36, 65,170,150,186,172, 48,178,229,242,254, 61,150,171, 13,223, 62,249,142,193,239,124,198,252,108,138,105,115,100,117,192,113,
-193, 53, 45,139,129,199,157,223,249,132, 31,125,246,144, 86,193, 62, 47, 8,195,132, 63,254,239,126, 15,157,173, 24,197, 46, 89,
-182, 39, 68,210, 85, 53,109,165,233,186,150, 8,193,249,157, 51,148,118, 41,155,142,212,147,156,205, 2,252, 32,101,185, 58,176,
-220, 92,147, 78,206,240, 28,201,120, 16,144, 36,115,100, 91,179, 93, 47,185,252,236, 83,146,192,167, 42, 90, 48, 2,223,209,120,
- 65,128,112, 58,140,232,240,251, 68, 48,210,166, 94,199,195, 1, 93,219,112, 54,155,112,121, 49,160,200,106,174,175,183, 22,114,
-225, 89, 45,229,111,190,123,194,229,197, 24, 63, 26,208,202,146,125,158,225, 5, 49,180,130,172,104, 57,100, 27,182,135, 61,190,
- 23,163, 85, 72, 83, 93,115,113,234, 19, 68,130, 32, 0, 95,231, 52,251, 13,178, 83, 22,138,160,192, 73, 3,156, 56,101,120, 18,
- 49, 26, 57,132,158,193,117, 27,252, 78, 35,180,193, 32,161,105,241,133,199,201,124,140,144, 62, 77,103, 71, 98,110,152,160,148,
-193,193,225,221,219, 37,203,181,228,242,114,129,108, 27,164, 60, 16, 37, 62,231,231, 19,222,190,126,198,167, 31,126,132,239, 6,
-108,214, 59, 22,243, 57,217,126,201,226,100,128,240, 32,241, 67,242,131,198,117, 61,154,186,195,117,106,220,192, 39, 74, 60,202,
-252, 0,174,101,206, 43,157, 33,220,132,225,120,200,228, 36, 97,183, 41, 48,162, 98,190, 72, 24, 12,125,138,106, 67,154, 40,132,
- 11, 90,214, 12, 6, 9, 74,181, 36, 9, 68,145, 38,140,124, 28, 28, 30, 61,122, 96, 15, 56, 82, 19,184, 17,218,113,233,162, 0,
-169, 59,174,175, 86,228,155,221,241,131,155,166, 67, 90,161,144,173,162,168,106,210,216,165,213,202,186,161,103,115,234,174, 38,
- 29,143,216,231, 13, 79, 95,188, 98,185, 41, 48, 78, 64,146,166, 22, 11,106, 58,154,182,162,106, 75,124, 95,208, 42,201,114,189,
- 98,185, 89, 66, 31,154,186, 69, 71, 22, 69, 65, 35,219,227,158,176,105,154, 35, 25, 75,120, 46, 81,154,224,246,170,199,219, 32,
-208,131, 7, 15,108,192,106,117,141, 49,134,178, 42,145, 74,114,126,126,206,211,103, 47,136, 34,187,102,112,177,169,218,215,175,
- 95, 51, 76, 7,164,113,204,151, 95,126,201,211,231, 47,120,251,238, 29, 74, 41,134,195, 33,203,229,178, 23, 45,149,150, 30,214,
-143,137,111,109, 90, 65, 16,176, 90,173,142,204,239, 39,207,159, 81,150,229,241,203,222,241,237, 3, 72,150,197,177, 98,116,171,
-197,188, 77,137, 3,168, 64, 30,107,124,117,221,176, 94,111,142, 93,225, 91,221,239,109, 15,248,183,255,114,156,230,216,183, 13,
-253,136,178, 40, 25, 60, 24, 17, 6,241,145,211,189,219,237,144,178,179,107, 10,215, 50,190,113, 92, 60,223,167,150, 54,155,225,
- 7, 17,162,207,161, 4, 81,136,231,210, 87,166, 36,198,235, 9,140,194,253,126,101,212,227,105,253,192,208,105, 7, 93,106,218,
-174,197,119,253,227, 72,117, 52, 26,161,148, 60, 62,212,133, 16,100,123,139,237,237,180,252,158, 57, 81,245,108,115, 4,190, 3,
- 65, 96,119,202, 73,146, 28, 3,151,195,161,197, 43,239, 54,235,227,104,191,235, 95,139,219, 7,112,221,148,220,187,119,143,247,
-239,223, 31,215, 22, 74, 41, 78, 78, 78, 88,175,215, 76,103, 51, 62,254,236, 83,158,190,120,202,126,187, 37,142,173, 41,205,254,
-185, 67, 58, 12, 55, 55, 55, 71, 27,222, 45,140,196,202,114,130,158,107,209,245,166, 52,203, 7, 56,190,206,174,203,201,201,130,
- 32, 74,184,123,121,201,195,187,151, 68,177, 69, 13,127,254,131,143, 25, 36, 41, 95,125,253, 47,252,221,223,253, 61, 31,126,248,
- 33,179,147,211, 62,188,229, 16,133, 49, 85, 85, 91, 2,165,136, 72,211,152, 15, 63,124,132,231, 59,140, 39, 67,174,175,175, 9,
- 3,203,252, 87,117,193,249,249, 57, 56, 1,219,237,222, 38,184,181, 97,183,219,177,221,108,216,237,118,120,158,199,120, 60,198,
-243, 67,132,235,211, 42,141,106, 91, 68,150,227,123, 97, 47,182,241,184,115,239, 46, 39,243, 5,239,175,175, 56, 61, 61,167,211,
- 86, 99, 90, 87,253,148,216,129,232,214, 42,105, 12, 56,130,113, 63,158,175, 91, 73,117,179,194,104,203, 79,137,227,196,166,245,
- 27,251,115,239,100,135,106,109,115,199, 86, 2, 45, 76,108, 56,152, 16,199, 41,142, 8,122,124,120,132,210, 10, 28,159, 36, 25,
-145, 36, 54,116, 92,118, 21,210, 83,204, 23, 39,184, 30,108,214, 55,204, 79,134,180,117, 73, 85,231,184, 78,108,107,158,142, 34,
-142, 6,164,169, 97, 56,137,137,166, 3,178, 98,199,239,255,193,135, 12,210,128, 97, 18,246, 23, 67,151,209,100, 65, 94, 72,214,
-251, 55,188,187,186,198,245,195, 62,100, 87,245,104,247, 14, 89,238,112, 93,219, 70, 19, 77,137, 39, 5, 30,180,140, 6, 49, 70,
-151, 12,210,132,251,119, 47, 49,170,161,170, 86, 68,110,199, 79,126,247,115,126,254,243,191,161, 58,108, 41,246, 41,157,172, 64,
- 11,132,238,152, 77,173, 46,114,249,254, 29, 89,182,231,179,207, 62, 99,190, 56,101,179,222,209,116, 10, 35, 59,110,150,239, 8,
-227, 1,187,221,225,216, 3,150, 82, 82,229, 5,101, 43,185,188,152, 49,157, 37,140,227,128,182,217,178, 93, 23,140,210,128,211,
- 89,138,227, 88, 53,166,112, 52,195,129,143,118, 98,180,227,243,252, 69,197,155,183, 47,184,121,125, 74,168, 11,188, 65,132,150,
- 13,142, 31, 35,187,230,200, 81, 79, 6, 49,217,126, 13,110,200,112, 56,227,247,127,252, 57,191,243,197, 15,241,195,132, 39,223,
- 61,231,159,127,253, 45,211,211,115, 52, 48, 25, 95, 18,199,224,137,134,195,246,138,201, 56, 97, 52, 76,185,122,123, 69,224,218,
-174,161,227,185,148,165, 36,175, 10,194, 96,192,100, 28, 19, 24, 31,163, 5,194,116,184, 90, 97,218,146,209,100,194, 32,116, 88,
- 33,169, 15, 27,146, 56, 5, 45, 88,175,215, 24,225, 19, 15, 98, 26, 89,209, 30, 90,158, 60,121,131, 22,224, 58, 5,105,234,226,
- 56, 6,223, 83, 12, 71, 67,134,241, 5,179,233,226,216,167,212,166, 35,138, 67,234,218,193,104,151,213,126,139,118, 66,226, 20,
-162,113, 66, 58,246,240,122,250,147,167,251, 30,187, 27,208,200,214,254,187,137,199, 96, 50,160, 40,107, 68, 4, 45,109, 47, 36,
-241,209,120, 68, 97,128,239,248, 40, 26, 6,147,136,233, 60,224,193,221, 57,170, 94,243,205, 55,255,202,199, 15, 63,102, 52, 24,
-128,238, 24,164, 17,243,217,136, 74,181,108,179,140,236,176,226,225,195, 15, 24,222,155, 29,245,132, 97, 24,130,152,247,166, 34,
- 67, 93,159,145,198, 9, 81, 20, 19,134,143,112,197, 67,246,187,107,242,195,150,179,179, 41,191,243,197, 39,148,133,194, 15, 45,
-179,221,186,142, 33,140,122,238,189, 35,216, 32, 89,156,206,108, 8,171,145, 4, 94,136, 52, 32, 34,251,222,240, 60,107, 52, 27,
-184, 1,163,225,192,178,249,219,134,241,104,206,252, 44, 68, 54,138,213,251, 37,104,135,208, 15, 8, 67, 15,165, 21,178,169, 8,
- 60,152, 77, 6,100,149, 98,179,190,166, 41, 11,106, 89, 97,140, 69,242, 10,215,161,105, 91,202,166,162,211,154,217,226, 20,109,
- 56,154,167, 28,199, 38,109,127,251, 1,248,253,205,215, 63,122, 20, 94,191,126,205,118,187,101, 58,157,242,193, 71, 31, 90, 5,
-107, 83, 91, 65,145, 35,250, 16,154,173,224, 24, 99, 40,202, 10,199,192,108, 26,218,177,172,235,241,246,205, 91,254,249, 87,191,
- 98, 48, 26, 31,185,225,183,110,245,241,120, 76,221,195, 53,110, 31,216,183, 9,228, 91, 76,167, 23,216, 48,228,225,208, 63,180,
-186,238,200,235,191, 5,222,220, 38,150,221,158,126,246,219,196,181,219, 7,253,120, 60, 62, 6,226,110,119,189,117, 93,131,113,
-142, 20, 48,203,162,143,250, 64,159,165, 38,222,250, 9,238, 92,124,196,253,123,151,100,153,189, 5, 45, 22, 11,206,206,206,184,
-190, 94,242,248,241, 99,202,178,135,195,184, 30,145, 49,116,178,151,199, 24, 7,215,183, 21, 70,223, 11,193,115,240,125,213,243,
-183,189, 35,218, 51,142,227,190, 66,164,143, 61,235,225,112, 72, 28, 89,228,111, 60,136,236,235,211, 79, 55,218,214,134, 16,155,
-198,222,240,227, 48,162, 40, 10,180, 81,199,195,218,173, 11, 92,107,133,145, 53, 97, 24, 49, 28, 14,143, 25,130,219,138,211,109,
-182, 64, 56,182,239, 62, 74, 99, 70,163, 17,195,161,253, 14,108,107,216,110,109,112,242,201,147, 39, 60,122,244,168,103, 83, 52,
- 24, 3,215,215,215, 12,210,148, 31,253,232,119,249,135,159,255, 23,194, 48,176,228, 60,207, 99, 54, 59,161, 40, 50,188,145,115,
-132,143, 0,199,247, 93,215,187,193,147,100,208,187, 55,236,103,242,246,247,228,122, 30,139,197, 41, 2, 75, 48,171,234,130,231,
-207,159, 83,215, 21,127,240,239,127,194,231,159,127,206,233,217, 9,175,223,252,239,172, 86, 27,178,162,161,105,173,212, 71,105,
-219,122, 74,211,148,216,143,153,207,167,220,127,112,215, 50,230, 31, 62,224,151,255,244, 11, 91,187, 77, 18,214,235, 45,243,241,
-136, 14,193,230,230, 26,169, 96, 50, 30, 90, 0, 76, 89, 90, 1,152, 77, 73,224,121, 1,151,151,247,184,119,239,193,209,147, 17,
- 7, 33,142,239,209, 52,146, 40,142, 45, 7,222,117, 24, 12, 70, 44,123,236,173,212,210, 58,235,149,166, 42, 11, 59,230, 14,237,
-231,205,113, 28, 28,207,197,117, 92, 84,215, 33, 92, 7,227, 88,248, 76, 87, 84,199,135,184, 43, 12,194,115,142,217,136, 48,140,
-241, 92, 13,198,195,104, 75,108,243, 60,223,222,142,149, 66,169,219, 94,185, 67, 81, 84, 56, 66, 88, 42,160, 99,120,241,236, 25,
-239,223,191,230,147,143,255,144,217,244,156, 78, 86,196,145,197, 17, 71, 81,140,239,248,116, 50,231,233,203,111, 89,248,151,124,
-247,236, 59, 62,250,104,198,195,159,252,136,178,216, 17,132, 29, 97,232, 83,213,215, 76,102, 11, 62,251,236,146, 55,111,159,227,
-186, 2,221,194,106,151, 49, 31,159, 98,148, 38, 16, 6, 33, 21, 97,224, 18,140,199, 44, 70, 99, 60, 35, 52,141,106,173,150,210,
-117,232,164, 38,107, 14,132,110,194, 40,245,200,246, 25, 85,102,245,169,135,197, 20,223,133,192,143, 8, 19,151, 48, 74,152, 57,
- 1,178,179, 97,155,243,243,115, 14,153,125,115, 92,175, 86, 60,127,241,134,203,123, 15,240,132,131,105, 42,148,236,104,140,161,
-105,172,175,215,243, 4, 89,182, 33, 78, 60, 22,147, 57, 15, 47, 83, 78, 70, 9,105,228,147,246,130,138, 56, 78,236,141,212, 73,
- 40, 27, 77,211, 57,212,121,205,187,215, 87, 60, 95, 60,231,195,203, 9,133,176,176, 13,169, 26, 75, 64,146,109,255, 80, 31, 48,
- 95,156,210,182, 13, 78, 83,224,123, 62,160, 72, 67,248,241,151, 31,241,193,135,247,200,219, 22, 63,142,112, 29,133, 39, 52,158,
- 35,121,242, 56,131,174, 36,244, 2,206, 23,145,173, 63, 72,137,239,123,196,161,131, 31, 8,198, 99,143, 65,228, 18,137,144,166,
-233, 80,210,161,171, 10, 94, 61,253,150,213,205,146,195,234,138, 0, 69,213,118,104, 79,224, 96, 40, 14, 45, 85, 93,163,180,225,
-221,213,138,205, 58,227,171,127,125,134,214,154,135,143,166,252,222, 79,126, 15,151, 10, 99, 26,134, 65, 74,232,249, 68, 65,210,
-223,150,108,213, 65, 27,159,205,182, 96,189, 42,217,175,118,172,246, 7,230,167, 67,228,221,123, 56,174, 79,135,180,123,122,225,
-163,141,131,233,124,132,241,233,164,162, 46,109,178,183, 67, 18,132, 62, 90, 40, 28, 60, 26, 41, 24, 12,102,248,183,122, 79, 85,
-115, 50, 31, 50,155,121, 56, 84,252,224,179, 15,201,183,182,242,114,239,242, 62, 31,127,244, 1,235,205, 27,132,144, 4,158, 75,
-145, 31,216,110,214,156, 46, 22,220,191,255, 16,223,247,217,237,118,116,198,146,235,180,182,206,241,219,135, 84,221,214,248,129,
- 75, 26, 69, 8, 93, 81,230, 7, 70,105,194, 15, 63,255,156,221,182,192, 8,199,142, 25,221, 30,176, 96,108, 16,209,119, 93,178,
-253,150, 50, 63,216,159, 9, 2,229,214,104, 71, 96,116,203,190,104,184,186,218,210, 73,131, 16, 86, 67,154, 36, 17, 85,169,240,
-221, 14, 45, 58,174,174,174, 41,247, 57, 49, 62,187,245,154,201,212, 58, 15,170,178, 37,207, 14,100,149, 38,175,237,206,215,218,
-155, 28,226, 52,162, 85, 13,155,155, 21, 89,153, 51,154,140, 9,157, 20,131,253, 82, 46, 42, 91,117, 10,251, 36,116, 89,218,250,
- 96,146, 36,148, 77,141, 31,133, 71,169,209,118,187,101,219,107, 48,207,207,207,121,119,125,197,122,183,181,244, 56, 37,153,159,
-218, 67,220,245,245, 53,195,225,144,237,118, 75, 20,133,184, 61,145,236,235,175,191, 38,244, 45, 71,218, 8, 88,245,206,129, 52,
- 77,201,178,204, 30, 10, 38, 99, 54,155, 13, 90,219,127,231,246,203,252,226,226,130,172,200,173, 42,185, 15, 29,174, 54,107,139,
-221,236,123,240,128,237, 96, 99, 33, 32,227,241,216, 18,174,140, 13,137, 17,127, 63, 74,167,211, 4,161, 13, 92, 89,249,143,173,
-188, 45,151, 75,148,210,199,135,252, 96, 48, 98, 60, 30, 99,140, 97,183, 59,244,112,165,142,186,110, 89, 46, 87,124,254,217,103,
-132, 94,200,213,213, 21,207,158, 61, 59, 30, 38, 38,147,209, 17,109, 44, 28,199,222,112, 61, 65,221,127,190, 29,172,121, 80, 43,
-107, 33, 12,253, 8,173,122, 13,172,210,184,142,139,239, 90,254, 65,203,247, 83, 6, 11, 36, 17,120,218,254, 55,111,129, 39,118,
-101,100, 39, 45,183,135,151, 48, 12, 73,211, 20,199,181, 15, 76,235,144,215,199,213, 74,154, 14, 73, 18,139,105,141,227,248,136,
-242, 76,162,152,186,172,232,180, 4,109,127,205, 56,177,237, 1, 80,168,254,225,187,217,108,168,170,138,231, 47, 95,179, 56,187,
- 32,244,124,164,204, 80,173,100,185, 92, 41,212,176,223, 0, 0, 32, 0, 73, 68, 65, 84, 18,133, 33,143, 30, 61,192,247,125,126,
-241,139, 95, 16,133,150, 72,105,167, 61, 53,163, 65,114, 60, 44, 58,142, 67, 16, 37,199,159,251,109,224,210, 30,192,232, 65, 37,
- 30,186,174,169,139, 2,165,222, 91,183,128, 19,160,141,178, 35,126, 41,249, 63,255,143,255,139,191,249,235,191,226, 79,254,228,
- 79,248,224,131,143,250, 80,115,134, 31, 68, 56,194,235, 15,236, 49, 6, 73, 93,238,142,159,247,197,124,134,139,230,243,143, 63,
- 96,181,188,102, 52, 30,115, 50, 25,163, 52, 36,131, 33,195, 36,229,102,181, 67, 26, 65, 16,198,100,135,138,217,201, 9,186,179,
-239,223, 56, 9,137, 2, 75,166,179,100, 56, 69,215, 27, 62,101,219,145, 23, 5, 90, 27,138,170,100,119,216,179,217,237,200,203,
-194,210, 63,123,105,208, 45,182, 59, 77, 99, 6,195, 33, 6,199,222,252,141,213,195, 10,199,197, 49, 6, 41,237,173,188, 58,216,
-196,124, 24,120, 4, 81, 64,153,229,116,157, 33, 9, 83,162, 48,177,193,231,170,161, 40,107,164,194,126,199,106, 97,191, 91,141,
-219,187,231,107,198,195, 49, 77,211,176, 89,223,176,219,175, 25,166, 17, 81, 40,248,225, 15, 62,180, 83,164,182, 34,232, 15, 13,
-166,211,116, 93,193, 87,191,249, 5,207, 94, 28,120,127,245,158, 95,253,234, 95,248,248,195,187,104, 89,226,122, 6, 17, 26,186,
-174,100,179, 45,185,115,103,204,157,139, 41,111, 94, 47,105,202,142, 36, 30,161, 85, 70, 87, 43, 68,167, 9, 93, 15,223,243,240,
- 59,129,169, 21, 94,165,106,118,187, 29,113,232,162, 58,193,110, 95,224, 58, 14,233, 60, 69,171,142, 86, 86,156, 93,156, 50,157,
-157, 34, 68, 68,135,161,146, 29,187,253,129,242,253,123,206,102, 39, 44, 22,103,132, 97,200,205,205, 13,155,109,102, 45, 82,241,
-128,221,190, 96,117,115,133,208,134,186,170,104, 27, 69, 91,218,126,174, 48, 29, 78, 40, 72,125, 69,215, 72,116,169, 25, 71, 11,
- 22,147,132,174, 45,233,218,154,182, 85, 28,182, 27,124, 63, 69,248, 13,141,246, 40, 27,216,237, 51,234,182, 35,175, 90,140,227,
- 81,201,150,125,222,208, 57, 1,174,103,157,238,194,245, 8,226,152,109, 94,179,203, 14,156, 24,151,203,203,123,184,210,222,180,
- 93,215, 5,209,177,152, 37, 76,230, 19,182,235, 37,194,128,239, 5,124,244,232, 3,235,171, 46, 51, 2, 95, 0, 13, 77,147, 17,
-134, 35,102,179,132,116, 16, 16, 69, 9,109,213,145, 21,123,140,114, 72,227,136, 79, 62,254,144,178,106,112,189,136,201,104,132,
-227, 69, 12, 6, 51,188, 32,228,237,213,123,158, 63,127,142, 84, 85,191, 67, 20,212, 82, 33,149,149, 73,156,150, 1,167,139, 57,
-131,164, 67,214,123, 68,219, 17,186,160,149,189, 69,185,194,195, 49, 29, 90,251,255, 63, 87,111,214, 37, 73,114,158,103, 62,110,
-102,190,199,154, 75,101,237, 75, 87,245,130,110, 0, 68, 55, 64,130,128, 64, 74,212,118, 36, 82, 71,103,164,203, 25,158,185,215,
-197,252,135,249, 55,163, 51,210,156,145, 14, 15, 37,106, 52, 18, 23, 64, 4, 73,128,236,110,244, 2,116,117,237, 89,185,103,198,
-234,187,187,153,205,133,121, 68, 55,230, 34,111,170,187,178, 34, 60, 60,220,190,229,125,159,151, 80, 57, 65,248, 98, 62,231, 48,
-203,233,218, 61,178, 71,215,104,119,199,120, 90,128, 22,212,173, 32,175,117, 15, 60,145,120, 26, 48, 37,218,212,148, 93, 78, 58,
- 78,232, 44,204, 86, 21, 69,214, 98,250,206,190,169, 10,210,212, 99,111,154, 48,153, 72, 76, 87,226,121, 45, 63,250,225,111,241,
-217, 47, 30,115,244,250, 21,111,190,113,135,201,104,128,198, 96, 60,201,157,235,183, 49, 21,228,203,156,203,243, 43, 70,227,177,
- 35,173,153,150,166,170,145,190,235,178,187,206,229, 95, 11, 79, 98, 53,204,138, 57,161,148,212,165, 83,206, 71, 97,194,221,219,
- 83,178,162,114,163,226,168, 87,182,227, 70,239,155,184,197,186,104, 72,211,148,131,235,251, 28, 92,159,130,240, 40, 59,143, 47,
-158, 28,242,162,124,141,175, 18, 90,237, 8,120, 40,159,170,214, 60, 59,252,146,203,229,156,197, 98,198,183,223,125,143,201,206,
- 14,249,106, 78, 87, 55, 44, 22, 51,172, 23,115,239,206,109,180,136,120,122,248,154,243,203, 11,170,170,224,209,163, 71, 92, 94,
-157,178, 90, 45,168,218,134, 56, 77,240,163,144,229,149,155, 0, 84,189,202,123,115, 16,109,184,221, 27,171,208,245,235,215,183,
-157,242, 38, 33,107, 60, 30,115,112,112,128,209,240,244,233,151,142,161, 46, 60,194, 36,222,146,228,164,148,125, 96,140, 27, 43,
-183, 70, 99, 53,104,157, 99, 34,199,218,206,171,218, 65,157,250, 36,180, 77,199,110,173, 83, 46,111,186,235, 56,142,145, 82, 50,
- 26,141,184,154,207,182, 69,106, 20, 69,206, 94,215, 59, 13, 54, 93,173,231,121,120,214, 29,238,155,221,184,176, 95, 33, 43,173,
-181, 46, 58, 20, 28, 83,221,119,222,235,205,129,233, 80,150,222,150, 79,189, 73,105,219, 36,144,185,212,199,138,171,166, 38,142,
- 14, 40,138, 2,217,211, 54,154,166,217, 30,140,227,241,152, 40, 74, 40,138,130,229,218,177,211,187,214,208, 86, 53,158,239,245,
-164, 50,181,141, 93,246, 60,127,235, 69,222, 28,188, 93,215,109,121,218, 27, 30,253,230,115,170,235,154,176,117,240,145,178, 44,
-221,238, 30,219, 83,192, 92,225, 98,123, 28,169,177,221, 54, 7,126,195, 50, 47,203,118,155,172,182,129,213,108, 38, 16,163,209,
-136,229,106,222, 43,208, 91,132, 80, 68,113,136,239, 75,242,252,171,168,210,241,120, 76,158,231,148,101,201,209,209, 17,161,234,
-163, 72,181,251,221, 47, 94,188, 96, 50, 25,241,163,191,247,187,156,156, 28, 17,250,129, 91, 95, 86, 5,227,241,148,182, 42,221,
- 46,122, 54,115, 19, 12,161,182,249,246, 27,156,169,155, 26, 56,246,122, 16,134,219,128, 35,107,161,169, 90,222,121,231, 29,134,
-195, 17,171,245,146,247, 63,248, 54,127,240, 7, 59,124,252,241,135,252,209, 31,253, 17, 77,167,233, 12,232,206,146,164, 33, 8,
- 65,224,135, 4,126, 66,215, 20,140,175, 93, 71,133, 17,171,101,198,135, 31,126, 76, 26,250,236,238,140,184,119,251, 14,235,245,
- 10,235,193, 98,225, 96, 74, 85,109,184,188,188, 4, 21, 48, 28,237,144, 14,166, 72, 63,222, 2,125,116, 83, 83,148, 53, 69,238,
-162,170,215,107,231,182,104,218,138, 52, 25, 82,183,141,179,129,225,212,230,109,215,184,238,187,143, 3,222,100,158,135, 97,132,
-240, 21,173,209, 32, 5, 93, 93,211,182,206,214,106, 55,184,237, 70,211, 53, 13, 85,182, 6, 99, 49, 70, 19, 39,142, 73, 16,244,
-159,191,181,222,118,242,225,190,211,110,154, 32,173, 79,233,213,104, 3,182,174,251,156, 9,195,108,118,197,106, 57, 39,244, 61,
-246,119,246,184, 60, 63,161, 46, 31, 18, 12, 2,202,124, 69,163, 60,124,233, 38, 88,119,111,239,243,131,239,127,151,255,227, 63,
-252,103,180,149,188,124,250,154,231,143, 15,121,251,173,123, 64,197,106,121, 69, 16,249,116,117, 75, 20,250,188,245,224, 54, 47,
-159,190,194,211, 30,223,253,246, 55, 56,122,117,200,170, 43, 28,126, 60, 30, 16, 42, 77,158, 45, 81,228,168,121,150,179, 88,103,
-212, 77, 68,107, 50, 60, 20, 30, 30,243,245, 26,172, 65,134, 1,183,238,221, 71,248, 9, 39,151, 43, 71, 43, 11, 21,218, 83,136,
- 48,161,238, 90, 30, 63,125,140,144, 62,202,143,104,141, 71,148, 14, 24, 76, 66,222,247, 3,190,248,226, 11,166,147, 1,109,236,
- 30,208,155,135, 95, 28, 38,248, 1,172, 86,199,220,186,177, 71,154, 36,200,182,225,242,228, 53,131, 36,102,152,166,100,203,140,
-249, 98, 73,148, 24,106,157,147,119,130,101,105, 57, 91, 45,209, 97, 68,137,143, 9, 6, 4,202, 18,104, 31, 63, 29,211, 90, 77,
-214,212,228,235, 10, 51,171,137,210,132, 47,191,124,205,112,184,132,192,193, 58, 84,172,220,195,167,171,105,234,156,124,161,233,
-170, 6,219,105, 84, 28, 50, 8,135,212, 85, 70,209,213,172,109,129,231,105,214,217, 10, 37, 5, 81, 16, 19,168, 16,207, 72, 86,
-171, 21,167,175,206,145,210,231,224,224,128,187,183,111,225,135, 17,120, 18, 79, 42, 60, 25,208,212, 6,229,135,116,205,146, 39,
- 95, 44, 57,121,253,148,182,221,227,242,226,132,171,139, 57,194, 51, 88,235, 50,218,203,245,146,174,200, 17,186,132,182,166, 52,
-150, 56,140,182, 15,249,178,106,233,108,130,214, 9, 88, 77, 93,148,180,121, 69,179,106,168, 51, 67, 83, 73,218, 74, 82, 87,154,
-171,101,193,201,229,138,139,171, 21, 73, 24,226,155,134, 56,176, 12, 19,137,231,215,120, 45,128,228,234, 34, 99,189,182,212,165,
-197, 23,138,201, 56,226,224, 32,101, 56,136,137, 2, 67, 99, 61,148, 39, 80, 18,190,253, 27,239,240,179,191,254, 59,254,250,175,
-127,202,251,223,121,151, 32, 10, 65,198,220,190,190,195, 32,154,242, 23, 63,249, 75, 78, 95,159, 81, 87,206,147, 41,125, 65, 81,
-228,125,248, 76,207, 85,214, 27,182,177, 11,240, 73,131, 30,246,161,221, 30, 44, 12, 20, 81,152,210,117,174,144,241, 3, 71,120,
- 10,164,162,109, 90,124, 17,210, 86, 29, 68,146, 52, 74, 81,190, 7,194,162,172,193,154,134,186,204, 17,161, 79,221,181, 84,101,
-203,229,213,130, 40, 77, 56, 59,187,226,244,252, 4, 48, 76,198, 59, 4,145, 15, 54, 33,150, 22, 36, 12, 39,251, 88, 63,230,163,
- 79,191,228,163,143, 62,196, 15, 98,126,248, 59, 63,226,245,235,215, 20,181, 3, 98,164,195, 20, 25,248,180, 93,199, 34,239, 85,
-188,254, 87, 40, 76, 39,100,113,234,106,225, 43, 39,172, 84, 33,109,179,102,189, 94,187, 29,123, 60,112,129, 53, 74,113,120,120,
- 72, 89, 87,125, 87, 31, 35, 3,191, 7, 17,185,253,248,106,181, 98,103,103,218,219,111, 90, 36, 30, 65,143, 95,182,157,166, 51,
-154,182,113,113,158,101, 83, 99,133, 99,157, 47, 22,139,237, 46,124,179, 99, 13,227,104,155,107,190,233, 50,149, 82,196,131,212,
-197, 94,246,209,153,178,135, 96,248,210, 9,199,226, 32,236,193, 35,218,113,244,173,165,107,219,173,207,120, 48, 24, 33,125,159,
-170, 90,224,251, 45,190, 31, 34,165, 3, 4,109,174,203,166, 99, 84, 74,225,171,208, 61,160,235, 26,207,106,116,107, 88,206, 22,
- 14,232, 81, 85,148, 69,193,112, 48, 64,119, 46,131,252,246,237,155, 92, 92, 92,145,151, 21,108,246,226,253, 33,237,138,146, 6,
-207,147,180, 90,211,181, 6,247, 28,247,127,237, 0, 15,122,123,151, 49, 6,109,245, 54,127,190, 51, 93,159, 40,198,215, 50,180,
-191, 90, 55, 56,230,121,207, 92,208,221,175,177,228, 93,193,208,244,197,140, 43,204,165,148, 44,230, 87,120, 24,135, 57,157,205,
-122,204,172,135,233, 92, 33,222,213, 13,109,189,137, 97,149,204,151, 43,178,162, 36,141,189,109,224, 74,163, 59,148, 39,209,214,
-240,252,249, 11, 12,154,223,255,103,255,156,223,253,189,127,192,179, 47,159, 56,220,182, 29,146,198, 9,202,115,218,141,172, 44,
-182,197, 89, 89,150, 46, 29,172,135,228,184,245,129,183, 93, 5,109,192, 51,109,219,226, 75,159,200, 15,136,252,128, 96,186,195,
-217,241, 9,135, 47, 94,178,202, 51,170,170, 65, 72,223, 97,146,241,200,178, 12,113,113,193,206,222, 53,116,231, 17, 39, 17,243,
-213,140,213,122,193,221, 91,183, 48, 93,141, 12, 2,210,116,200,254,238,152,207, 62,251,140,211,211, 83,130, 40,225,230,221, 7,
-168, 32, 98,103,119,159,214,122,228,117, 67, 49, 91, 51, 24, 78, 93,244,106, 81, 49,159, 93,186,130, 67,119, 12, 71, 46, 48, 72,
- 40,137,180, 1, 85, 83,179,204, 28,147, 67, 42, 69, 81,185,247,155,103, 89,111,193,243,126,141,246, 7,176,202,214, 4,126,212,
- 7,163, 4,248,113, 76,215,186,208,163,197, 98, 65, 89,100, 4,218,178,191,183,131, 82,130, 48,142,182, 5, 89, 58,152,160, 59,
- 88,190, 58,222, 2,115,172,181,212,173,195,214,150, 77, 77, 89,150, 36,161, 71, 85,230, 44,103, 87, 46,181,205,106,180,109,145,
- 42,228,242,242,156, 39, 79, 31,243,246,155,111,184,239,130,112,217, 8, 47,159, 63,199,116,154,135, 15, 30,241,230, 27,239,113,
-116, 52,167, 92, 88, 62,253,187,231,188,125,255,109,226,216,167,171, 50, 2, 4, 42, 20,104,219,113,247,230, 77,238, 30, 28,240,
-236,203, 67, 34, 31, 14,174, 13,184,125, 99,128,213, 29,105, 28,226, 97, 89,206, 45,195, 52, 68, 69,161,207,120, 60,100,189, 88,
- 83, 21, 37,111, 61,122, 3, 41, 61,102, 87,231,140, 71, 3, 86, 85, 65,148,186,174, 46,175, 92,117, 89,180, 45, 97, 28,144,198,
- 49,157,118,251,185,120, 48,113,106,236, 22,210,241,142,203, 99,151, 43,222,125,247, 93, 66, 95,177, 90,204,168,171,114,251,229,
- 73,226, 20, 41, 44, 59,195,123, 8,211, 82, 44, 10,130,201,132, 40,142, 49, 86,144,229, 29,203,117,201,229,213,130,161, 17,148,
-157, 71,167, 66,138,214,146, 53, 5,235,166,224,213,249, 17,250,111, 87,164,161, 98,177, 94,161,252,144,170,233, 64, 56, 49, 68,
-148, 36,116, 93,199, 47,127,245,152,221,201,152, 59,247, 31, 18, 15, 39,238,193,164,107,202, 98, 69, 26, 8,230,231,151,140, 71,
-187,174, 51, 82,146,243,171, 25, 30, 29,150, 6, 95,117,196,177,143, 71,128,240, 66,164,136,240,180, 64,120, 17, 70,175,104,140,
- 69,216,150, 85, 86,184,125,213,213, 21,235, 60,115, 68, 59,165, 40,139, 26,235,193,197,217, 5,146,146, 34,187,224,117, 53,227,
-240,229, 75,180,145,152,166, 34, 13, 12,227, 84, 17, 72,141,215,181,196,129, 68,201, 4,221, 53,196,190, 66, 10,136,146,152, 48,
- 54, 52,157, 79,107, 98,178,162,247,197, 18, 66,235,163,107, 69, 93,122,148,185,102,177,206,120,121,178,228,233,243, 83, 46, 46,
-215, 40, 4,161,237, 56,216, 77,120,112,119,159,100, 32,161,115,124,255,182, 13,169,187, 22, 67,139, 84,134,131,131, 33, 55,111,
- 78, 80, 20,232,170, 37, 80,110, 79,232, 25,215,101,127,231,219,239,240,139, 95,124,202, 79,254,252, 39,252,195,127,242, 79,177,
-224,200, 98, 26, 22, 87,115,194, 96,192,104,180,217,223,121, 72, 79,210,181, 26, 15,131,239,251,180,182,165,174, 91,146, 56, 96,
-144, 12,208,117,137,238, 26,210,100,136,193, 99,126,229,242,191,135, 73, 74,217, 84,155,176,225,237, 65, 52, 25, 78,208,218, 29,
-156, 14,112, 83,209,154,154,170,246,176,186, 1,163, 49, 86,147,173,107, 22,235, 53,120,146,105,191,251,182,198, 67,245,200,198,
-203,249,140, 65, 20,176, 88,175,136,162,136,171,171, 43,254,242,231, 31,241,234,244,146,221,253,235, 24,161,248,243, 31,255,153,
- 27,117,123,150,100,144, 48, 95, 45,169, 86, 75,183,235, 23, 2,229,251,116,157, 65,245,187,218,205, 23,223, 24, 67, 60,112,169,
- 89, 47, 95,190,116, 62,218,158, 35,126,112,112,128, 49,134,215, 47, 95,246, 66, 54,247,119, 90,163,201,150, 69,111,113,242, 89,
- 46, 87, 92,187,182,191,229,217,111,246,187,142,130, 38,251,224,160, 1, 74, 6, 76, 38, 19,242,170,220,146, 2, 95, 31, 31, 51,
- 76,211, 45, 57,108, 19, 18,177, 25,101,111, 70,206, 26, 75, 81,150, 91, 54,182,181, 22, 63, 8, 24,141, 70, 46, 90,184,170, 56,
-216,219,119,211,131,126,199,188, 81,180, 7,190,223,171,197, 91,103,185,249,218, 30,222,189, 95,111, 27,214,178,233, 96,163,200,
-117, 80,155,107,100, 53,219,131, 55, 12, 67,202,178,228,228,228,100, 43,108,211, 90, 51,234, 58,214,235, 37,186,109,136,146, 20,
- 21,110, 34, 44,189,175,210, 3,149, 79,103,204, 86,165,191,233,180,155,166,217,238,102, 55, 12,247,206,124, 21,245,105,140, 83,
- 88,127,189,155,183,214,108,189,249,117, 93, 35, 61, 65, 28,199, 36, 97,178,157,134,108,242,214, 37, 30,105,154,160,148, 96, 58,
-157,110, 15, 81,215, 37,187,215,168,117,219,195, 65,108,223,233,119,125,124,168,237,133,108, 78,128,183, 41,190,232,187,208,131,
-189,125,218,182,101,119,119,143,139,243, 43, 62,249,228, 19,110,222,188,206,227,199,143,105,154,218,209, 2,219, 35,138, 44, 7,
-221, 17,165, 78, 41,191,191,191,223,107, 60, 74, 70,163,209, 54,177, 45, 78, 6,219, 49,253, 70,211,208,182, 46, 56, 73,121,130,
-227,147,163, 45, 19,253,242,242,146, 70,187,236,240, 52, 77,153,175, 86, 36,241, 0, 77, 63,165, 65,176, 92,175, 8,227, 61,162,
- 36,229,245,171,231, 44,150,107,118,199, 67,158,124, 57,231,254,255,244, 47,120,244,214,187, 92, 94,206,248, 47,255,245,191,178,
-206, 11,126,249,171, 47,208, 94,128, 12, 99,240, 19, 58, 13, 97,156,210,182, 93, 63,113,113, 33, 85,158,231, 33,130, 16, 95,133,
- 61,216,203, 17, 33,179, 62, 80, 73,244, 96, 37,107,109,159, 55,239,225,121,106, 27,214, 50, 26,141, 24, 77,198,219,149,138, 49,
-134, 70,119, 52, 90, 67, 5,121,225, 38,211, 89,225,174,219,245,235, 7,252,224,251,223,229,218,181,107,172,114, 87,124, 55,109,
-135, 71,135,144,146,193,208, 65,155,178,220,165, 94,174,179,101, 79, 93,183,168, 48, 32, 77,125,206,207,230,204,103, 51,166, 59,
- 35,166,227, 33, 71, 71, 47, 9,125, 69,188,187,203,171,151,175,185,125,243, 6,147,209, 0,211,181, 84, 69,199,103,159,126,193,
-106,181,226, 95,253,235,119,249,131,127,242, 47,249,183,255,246, 63, 50,191,188,226,179, 15,191,224, 7, 31,124,135, 55, 30,238,
- 51, 78, 71,104, 74,138,170, 68, 41,201,238,100,202, 91, 15, 31,242,119, 63,253, 59, 62,250,249,207,248,224, 55,222,225,189,111,
- 62,194,154, 6,221,213,104,221,210, 84, 9,131, 52, 65,254,207,255,244,135,255,251, 40,141, 57,216,221,225,218,222, 20,211,181,
- 72, 9,163,209,128, 42,207,136,194, 0, 60, 65,154, 14,104,234,218, 1,236,235, 10,172,161,105, 28, 3,216,122, 30,171,162,166,
-243, 36, 63,253,249,135, 84, 26, 70, 59,187, 78,196,226, 75,210, 36, 36, 8,125,210, 52, 34, 77, 66,226, 56, 36, 76,220,104, 47,
-242, 7, 40,145,112, 53, 47,201, 74,141,245, 98,206,231, 57,103, 23,115, 58, 28,118,239,124, 54,167,110, 91, 86,101,198,186, 46,
- 25, 77, 71, 76,118, 39, 36, 73,200, 48, 77,177, 86,224,135, 49,241, 96,196,120,186, 75, 58,156,226,121,138,178,110,121,117,120,
-200,197,229, 21, 65, 16,113,244,250,136,123,247,238,160,148,228,236,244,132, 36, 8, 41,215, 25, 62, 78,229,158,175,106,116, 39,
- 88, 47, 42,124, 21,209, 20, 45,101,209, 80,150, 29,105, 58, 65,119, 18,173, 3,214,235,150,178,176,148,149, 70, 6, 62, 97, 28,
-211,104,205,225,235, 67, 62,254,228, 23,204,103, 87,196,113,196, 32, 13, 89,175,175, 80,210,112,109,127,192, 91,143,238,178, 55,
- 25, 50, 29, 39, 60,186,127,143, 71,143,222,224,155,239,190,195, 15,127,240, 62, 55,175, 37, 76, 6,138, 97,162,240,173,112, 21,
-180,138,145, 82, 17,197,238, 97,225,169, 0,171, 2,170,214, 67, 27,197,211, 87,167,156, 93, 86,236,237, 92,103,127, 58, 36,246,
- 37, 71, 71, 47,121,117,244,138,199, 79,159, 80, 84, 37,249,186,192, 51, 6,105, 53,182,173,168,170, 18,221, 89,206, 47,151,156,
- 94, 20, 44, 75,133, 17, 33,161, 52,220,189,189,203,141,107, 3,218,106,129,167, 91,146, 56,197,104, 75, 93, 57,216, 77,219, 86,
-148,249,138,107,215,174,147, 45, 11,158, 62,125,197,245,235,215,201,203, 2,221, 25, 62,255,229, 47,233,218,150,187,119,239,162,
-124,133, 18,110, 28, 38,164,135, 47, 60,140,238,240,149,164,169,107,194, 32,128, 78,227,245, 33, 45,198,184, 3, 69, 8,199,217,
-246,132, 69, 73, 80,129, 75, 96,139, 2,233,120,216, 88, 70,195, 1, 81, 24, 17, 70, 18, 79, 85, 24,219, 16,248, 49, 23,231, 51,
-158, 63,127,205,229,229,146,103, 47, 95,147,149, 21,201,112,196, 98,181,228,245,225, 43,164, 20,125,128,198,119,184,123,239, 14,
- 97, 20,113,247,246, 77,230,139, 37,127,250,227,159,240,244,229, 33,251, 55,110,113,112,227, 38,135,199,199,136,126,172,230, 71,
- 1,157,209,148,101, 78, 86, 20,116,214,144, 14, 6,184,224, 78,250,108,106,119, 64, 9, 95, 49,234,197, 99,103,103,103,219,125,
-246,181,235, 7,220,184,121,131,117,182,230,244,236,172,239,166, 90,170,166, 37, 73, 83,180,233,122,241,149, 33, 77,146,222,186,
- 4, 69,238,214, 97,234,107,221,181,144,146, 78,119,212,141,243,207, 11,233, 51,153, 76, 1,143,139,139, 75,194, 32,196, 15, 67,
-202,170, 6,207,209, 11, 39,147, 41, 90,155,222,190,227, 81, 53,173, 67, 80, 10,126,109, 84, 29,135, 17,111,188,241, 6,207,158,
- 62,101,111,111,207, 49, 32,250,232,215,162, 40, 92, 65,158, 36,204,103,115,252,192,199,243, 4, 77,219, 34,165, 79,211,180,228,
-121,129,239,187,206,120,163,106, 22, 66, 48,159, 45,217,221,221,219, 6,166, 4, 65,192, 98, 62, 99, 50, 30, 50,157,184,127, 99,
- 54,155,225,251,138,157,157, 9, 74,185,200, 76, 41, 60,174, 93, 59,224,237,183,223,193, 19,146, 87,175, 14,105,154, 22, 41, 20,
- 87, 87, 51,192, 5, 26,249, 74,145,103, 25, 82,128,238, 90,162, 32, 36,240,125,132,146,125,167,229, 17, 69, 33, 66,138,237,129,
-189, 41, 30,132, 16, 91,130,162,236,177,189,121,238,108,136,155, 64, 35,173,187,222,242,148,109,199,229, 77, 93, 17, 6, 62, 74,
- 8,238,220,190,141, 7, 44,151, 43, 70,189,197,113,189, 94,210, 84,165, 75, 18,235, 15,241,186,174,250, 34, 66,161,148,207,124,
-185,102,157,213,164, 73, 76, 16, 70, 72,169, 16, 66, 50, 76,211, 62, 70, 24,222,124,243, 77, 46, 46,206,121,244,232, 33,227,233,
-152, 79, 62,251,148, 36,138,209,186, 99,103, 58,165,213,154, 32, 8, 41,138,146,215,175,143, 88, 44,150,204,151, 11,142, 79,142,
-201,139,156,229,106,197,229,229, 21,203,165,211, 70, 93, 93, 93,113,124,118,202,114,190, 64, 41,201,114, 49, 39,207,243,254,117,
-251, 76, 38, 19, 38, 59, 83,246,247,247,249,224,187,223, 35, 43, 10, 86,203, 53,158, 84,148,101, 69, 94, 20,164,131,129,211, 42,
- 24,235,246,212,210,103,157, 57, 80,210,143,127,252, 19,138,162,226,225,195, 55, 89, 44,214,252,248,127,252, 13,233,112, 74,222,
-184, 70, 45,175,106,252, 56,165, 40,156,195,192, 15, 2,116, 79, 69, 44,203,194, 9, 44,117, 75,211, 54,212,109, 77,219,211, 30,
- 55,206,138,166,105,232,172,233,189,227, 46, 35,195,243, 96,103,103,138,215,175,118, 2, 63,194, 83,138,206, 24,194, 40, 38,232,
- 3,173,234,186,113, 88,218, 44,227,205, 7,247, 57,216,157, 82,150, 43, 58,221,146,151,107,118,118, 39,238,187, 85, 87, 92, 92,
- 94, 80,148,149,139, 80,110, 27,134,195, 33, 69, 85,176, 90,205,241, 4, 4,129,100,127,103, 68, 85,102, 78, 44,120,247, 54, 69,
-190, 70, 42,184,115,235, 22,187,187,187, 52,117,195, 98,190,228,222,237, 7,188, 62, 58,229,249,243,215,212,141,229, 31,252,222,
- 63,198, 26,201,206,206, 13,174,237, 93,231,244,232,152,213,226, 10, 65,199,163, 55,110, 33,188, 6, 41, 65,119, 29, 24, 65, 28,
-142,121,246,228, 37,207,191,124,202,189, 59,183,248,222, 7,223,134,174,166, 41,151,208, 21, 96,106,132,109,233,218, 2, 21,154,
-154,108,113,229,146,160,252,144,220, 84,188,248,226, 5,187,215, 14,152, 78,167,206,151, 89, 22,204,117,183,173,244, 59, 93,131,
-242, 48,198, 3, 4,157, 39, 25,237, 94,227,241,243, 67,254,203, 95,124,204,228, 23, 95,240,187, 63,250, 29,222,255,214, 55,137,
-149,162, 69,247,153,227,142,144,211,234, 14, 79, 90, 84, 20, 98,109, 64,215,121,148, 70,113,126, 58,163, 13,198, 52, 29, 4,254,
- 16,141, 97,180, 59, 34, 72,199, 46,162, 46, 10,240,130,152,206,147, 52, 8,124, 25, 17, 34, 89, 92,206, 56, 61,187, 96, 62,159,
-187,221, 85, 18, 19, 6, 17,131,208,231,238,141, 27,252,224,123, 31, 56,187, 70,219,242,127,255,187,255,147,223,249,209,111,115,
-227, 96,159,213,226,138, 88, 8, 86,185, 75,229, 26,141,118,192,104,194,200,167,174,221, 8, 37,148, 33, 40, 67,215, 74,150,171,
- 21, 85, 37, 8,227,132,174, 89,131,146, 68,131, 33,101, 93, 80, 55, 53, 70, 8,119, 16,120,150,241,100,200,183,127,227, 93,150,
-203, 25, 74,128, 82, 98,251, 16,177,214,253,104, 43, 64,184, 96,136,227,227,115, 20, 29,129, 23,227, 9,129,109, 61, 58,235,245,
- 10,219, 26,131,198, 8,137,145, 30, 8, 31, 35, 45,202,247,153,236,238, 97, 80,188,124,113, 4,221, 10,204,146,201, 48,224,221,
-119,110, 97, 9, 8,252, 49, 62, 1, 49, 30, 73,168, 8, 34,159,117,217,240,228,229, 17, 95,188,120, 69,105, 7,220,186,123,131,
- 71,119, 71, 36,169,143, 20, 21,235,108, 78,105, 64,183,166,175,222, 35,172,173,209,166,166,214, 21, 65, 16,113,243,246, 93,130,
- 32,118, 49,156,180, 72,229,179,191, 63,194, 15, 18,124, 9,158, 18,120, 82, 32,164,143,181,142, 75,188, 94,175,169,139, 10,107,
- 90, 70,195, 16,229, 9,124, 49,164,173,107, 22,171, 53, 85,185, 68,249, 33, 97,228, 19, 68, 46,142,182, 51, 21,214,115,153,205,
- 97,228, 57,191,109, 87,209,181, 13, 73, 11,137,167,192,243,104,235,134, 52,138,121,244,198, 67, 78, 47, 50, 6,211, 3, 38,187,
-215, 56, 60, 58,230,179,207, 62, 97, 60, 26,241,195, 31,254,128, 40,116,163,217,117,150,177,187, 51,229, 47,255,226, 79,121,242,
-228, 9, 29,110,167,141,240,120,246,234, 37, 65, 28,146, 23, 37,190,175,200, 86, 43,186,174, 65,247,180, 39,109, 44, 77,211,119,
-124,218,224, 11, 73,222, 7,194,236,236, 59, 59,210,213,213,213,118, 95,186,191,191,143, 16,130,179,179,179, 45,199, 96,243,179,
-201, 75,111,187,154, 40,138,216,219,219, 99, 56, 28,146,101, 25, 23, 23, 23,196,177,243, 62, 75, 44,163,209,136,186,103,137, 11,
-207, 99,127,127,159, 40,114, 86,170, 60,207, 57, 63, 63,223,218,214,186,174,219, 22, 26,155, 46,125,163, 76,223,236,157, 1,116,
-159, 82,181,233, 94,195, 48,252,234, 64,243,253,237,235,245,195,112, 27,251,232, 98, 67,191,154, 74, 24,107,182, 58,130,205, 78,
- 57,237, 39, 5,155,221,113,158,149,219, 78,223, 69,249, 70,140,199, 99, 78, 79, 79,121,251,205,135,204,231, 51,138, 34, 99,103,
-103,194,222,222, 14, 87, 87, 87,196,113, 72,217,235, 95,234,170, 98, 49,155,131,233,168,107,167, 91, 24, 36, 49,202, 15,104,186,
-118, 27,216,145,166,233,246,223, 48,198, 80, 55, 78, 0, 87, 20,110,172, 94,183,205,150,165, 15,176,191,127,109,123,125,220,225,
- 45,251, 29,169, 27,185,110,174,163, 39,108, 63, 33,112,227,255,174,235, 64,247, 74,127,163,183,152, 86,247,123, 44, 74, 57, 45,
- 65,150,101,142,114,102, 45, 77,159, 77,174,181, 70,234,175, 52, 7, 82,178, 93, 23,172, 86, 43,167,202, 15, 92,243,179,187,115,
- 13, 99, 44, 93,103,120,242,228, 25,183,110,221,226, 71, 63,250, 29,116,227, 4,125,194,179, 91,155,220,122,189,230,236,236,140,
-245,122,141,233,181, 1,155,253,249, 38,186,115,107, 59,196,225, 92,133,231, 49,152, 76,144, 82, 50, 30,143, 9, 67,167,173, 40,
-106,135,171,254,217,207,126,214, 71, 76,167, 24, 60, 90,169,168,219,150,249,236,146,233,206, 30, 42,138, 41,106,141,110, 10, 6,
- 81,196, 42, 91,178,123,237, 22, 63,249,233,223, 96,240,120,239,219,223,227,213,201, 37,207, 15,143, 24, 78,247,136,135, 49,235,
-178, 98,181,206, 9, 2,103, 89,148, 82, 34,251,123,199, 9,106, 3,135,163,222,160, 85,123, 75,102,219,182,116,189, 94,194,224,
- 2, 87,214,235,130, 40,114, 19,133, 48, 12,157,229,172,235, 40,106,151,188,152, 23,229,246, 51,220, 8,233,180,238, 56, 56, 56,
-112,239,201, 58,228,108, 89,174, 29,165, 79, 58,155,106,146, 76, 56, 61, 57,163,200,106,199,113, 87, 46,200, 9, 12,120, 22,173,
- 59,234, 50,167,109, 26,198,227, 17, 69,145,113,248,250, 37,202,131, 36,137, 89,174,215,200,204, 99,190,204, 48,173,225,143,254,
-248,255,197, 90,203,217,241,177, 43,108,253,207,248,230,123,223, 38, 29, 25,238,223,219,231, 15,255,240, 95, 83,172,231,236, 79,
- 83,124,137,139,217,173, 45, 50, 8,105,181,229,240,197, 33,207,159, 60,163,105, 58,158, 63,125,193,242,187,239, 19,249,134,216,
-183, 96, 90, 71,120,165,231,234, 95,139, 21,211,235, 19,162, 36,102,185, 90, 33, 3, 67, 26,194, 52, 77, 8, 61,143, 32,137, 9,
-132,231,104, 59, 42, 38,138, 28,176,127,103,178, 75,107, 65,134, 49,209,104,130, 12, 71,124,252,229, 17,131,233,144,214,122,124,
-254,228, 57,195,241,132, 55,239,222, 64,122,160,109, 7,104,140,238,247, 89,158,203,105,175,107, 15, 21, 14, 57,107, 42,126,254,
-248, 9,207,150,110,220,242,230,131,251,220,190,185, 79,105, 26,130,200, 49,204,165,150,132,248,110,111, 47, 67,164, 39,105,170,
-140, 56,176,220,189, 57, 37,240,111, 48, 30, 79, 25, 14,135,248,126,136,181,186, 31,109,185,108,238,201,120,128, 45,175, 56,121,
-254,152,135, 55,119,137,167, 41,166,107, 17, 3, 71, 65, 11, 67,225, 96, 47,169, 34,138, 6,104,107,156, 96, 37,141,232,186,150,
-178,173, 92, 64, 72,224,177,206,150,120,190, 79,185,104,104, 58,141,192, 35, 30,142,216,191,113,139,217,229, 25, 87,179, 25, 87,
-179, 25,195, 97,136,213, 46, 58,212,118,224, 9,209,227, 76, 29,101, 73,155, 22,225, 11,116,147, 83,149,130,216,119,201, 86,166,
-147,189,154, 93, 96,181,161,197, 69, 72, 90, 35,201,171,142,197,170, 98, 85,230,204,150, 21,194, 15,104, 76,200,193,193, 46,247,
-110,222, 36, 12, 27,144,154,186,210,132,106,136,105, 5,116,218, 69, 20,138,128, 87,231, 25,203, 47, 79,121,118,188,162,236, 74,
- 84, 24,113,235,186,143, 39,220,131, 77,122, 26, 95,132,196, 42,193,247, 99, 60, 35,200,171,194,133,184, 40, 5,210, 5, 0, 73,
-169,176,162,196,243, 65, 8,184,119,255, 58, 66,134, 76,118, 66, 84, 24,244, 25,231,110, 23, 26,134, 49, 73, 2,229,186,196, 90,
-216,223, 27,144,175, 51, 23,252, 19,250,116,214,223, 6,200, 0, 68,137,243, 37,171,112,128, 54,110,167,110,140,161,174, 58,174,
-174,230,180,181, 65,170,161,123,152,135,138,225, 96,200, 49,115,202, 34,227,193,131,123,216, 32,229,103, 31,127,194,243,215, 47,
-240,148,228,193,131, 7,220,190,117,139,243,211, 19,102,179, 25,241, 40,225,223,253, 95,255,158,249,229, 5,239,191,255, 62, 71,
-231,151,148, 86, 81, 52, 45,171,188, 36,203, 11,118,246,118,161, 31, 81, 55,109, 69,146, 36,110, 76,220,182, 84,149, 59, 20,226,
- 48, 96,149,101, 46, 91,122,144,110, 49,175,155,131,121,178, 51,101, 56, 30,177, 92, 46, 57, 59, 59,219,134,134,108, 2, 39, 54,
- 29,200,198,231,188, 25, 29, 11, 33,240,140,165, 41,171,109, 34, 24,128,146,146,225,206,206,246, 0,221,140,220,215,235,181, 59,
- 64,124, 71, 83,108,234,102, 43, 80,219, 88,177,170,170,162,232,153,236,155, 81,111,211, 54,248, 66,246, 25,207,186, 15, 2,185,
-218, 30, 56, 89,175,236,223,116,252,157,214, 8,173,177,158, 19,240, 53,173,198, 83,114,155,249,172,148,192,152,110,203,196,222,
-236,213,195,200,199,162, 49,198,254,218,193,126,242,122,229,236, 94,163,145, 83,117,211, 33,164, 7, 70, 83,230, 89, 31,209,154,
- 17, 6, 17,247, 31,220,230,254,253,251, 60,125,250,140,211,147,115,130, 80, 57,139, 97,158, 99, 13, 72, 37,136,250,241,124,158,
-187,184, 78, 43,188,109,193,225,121,142, 51,176, 25,203, 74,233,116, 49, 74,169, 30,208, 98,136,162,112, 59, 77,112, 73,147,178,
- 47,126,218,175, 2, 47,251, 81,127, 85, 23, 4,254,112,187,106,112,118, 65,247,123, 76,207, 43,207,243,140, 52, 77, 29, 42,183,
- 44,221, 1,101, 90,116,231, 33, 83,217, 55, 73, 80,119,154,206, 66,215,116,204, 23, 11, 86,123, 25,195,201, 16,169, 20, 85,227,
-236,100,199,167, 39, 92,191,126,141,219,183,111,243,159,254,211, 31, 83,102,185,211, 57,244,235, 13,165, 20,147,233,148, 91,183,
-239,186, 66,236,107, 2, 70,183, 87,118,121, 9,155,131, 82, 88,215, 9,110,176,167,139,245, 2,189,208,219,102, 46,203, 50,166,
- 59,123,180,198,176, 92,172,145,126,192,206,206, 46, 87,243, 5,243,249, 21,158, 20, 92, 31,220,227,205,183,223, 98,118,113,238,
-108,161, 65,128,213, 29,168,136,159,127,252, 25,247, 30,189,203,247,255,222,223,231,240, 63,252, 71,230,139, 53, 34,104, 72, 70,
-206,147,238,251, 78,201,239,251, 62, 98, 99,161,196,108,239,213,245,122, 77,146,198,219,239,131, 16, 2,175, 23, 43, 74,207, 61,
-115, 66,233, 38, 59, 46,231, 92, 58,118,122,239,238,104,154,118,171, 47,193,218,237,186, 97,103,103,202,173,155,215,157,226,221,
-183, 91,129,156,177, 46, 69, 47, 8, 2,146, 32,233, 3,105,220, 26,199,235,220,148,165,237,227,167,233,185, 20,203,229,146,178,
-112,224,155, 78, 59, 1,184,231, 57,133,187, 82, 62,190,138,169,171,142,179,243,115,246,119,247, 24,140,175, 97,140,225,147, 79,
-159,176,202, 74, 30,189,121,202,222,206,152,251,183,238, 48,191, 90, 3, 25, 69,213,225, 71,130,178, 41,161,115, 98,199, 87,175,
- 94,240,211,191,254, 25,195,193, 46,103,103, 11, 62,254,248, 11,254,209,239,254, 54,129,201,192,184, 52, 60, 60,139, 68,162,246,
-134, 17, 42, 24, 80,150, 57,141, 50,168, 97,196,163, 55, 30, 16, 38,187, 92,205, 86,132, 81,194,104,156, 34,124, 75, 20,244, 16,
-121,235, 44, 8,141, 17,228,157,165,106, 5,191,252,252,115,254,159,255,254, 83, 52, 33, 50, 12,249,226,217, 43,103,211,249,205,
-247,121,112,103,143,113, 4, 66, 88, 60, 1, 50,244,240,165, 15, 42,196, 31,248,160, 82,178, 23, 53,231,101,198,201,203,151,116,
-173,102, 94, 54, 44,202,154,183,239,221, 36, 29,196, 8, 60, 76,215,208, 22,181, 75, 90, 10, 36,173,173, 72, 7,138, 36,182,120,
- 72, 2,169,136, 67, 15, 69,133,108, 91, 7,200, 55, 18, 83,230,116, 20, 44,202, 57,191,245,237,111,240,201,167, 31, 35,105,233,
-234, 6,169, 60,234,166, 38,203,220,248,105,177, 88,177,202,114, 30, 61,124, 11,131,139,182, 43,250,177,155, 31, 5,228,197,154,
-106, 89, 58, 91, 94,105, 9,195,161,251,146,183,134, 48, 8,216,187,118,224, 2, 12, 6, 33,218, 66,150,151, 24, 93, 97,187,202,
-129,195, 29,219, 10,129, 15,158,192,250, 62,126, 48,112, 85,166, 10,177,158, 79,215, 58,138,145,219,231,141, 48,116, 8, 25, 64,
- 91,211, 26, 73,211,148,142,172,134, 37, 74, 60,194, 8,164,178,164, 73,196,120, 20, 81,100, 51,164,105, 17,186, 65,155, 10, 97,
- 36,166, 51, 84,141,164, 38,162,168, 27,106, 3,157, 23,226,169,128,186,107,251,113,112,131,242, 66, 6,113, 68,224, 37,132,190,
- 79, 91,118,120,129,194, 83, 33,190, 39, 16, 94, 75,215, 89,164,177, 84, 77, 78, 52,176, 8, 97, 48,166, 38, 78, 2,164,144,189,
-175,220, 99, 93,100, 84, 85,137,177, 13, 74,164, 36,161, 34,241, 71,189,133,196,227,240,234,188, 15, 81,240, 49, 6,174,223,188,
-193,100, 50, 33, 43,214, 40,133, 75, 69, 19, 46,179,216, 51, 29, 82, 73,202,178,102,177,184,196,179, 10,107, 15, 24, 14,199,238,
-193,172,107,210, 40, 70,226,225, 89,203,147,231,207,249,226,203,199, 12, 70, 67,170,170, 96, 58,157,240,234,213, 11,124, 37, 56,
- 61, 59,227,207,254,253,159,211,234,142,255,237,223,252, 27, 62,253,252,151,252,213,207, 63, 36, 76, 6, 84,198, 67,248, 62, 50,
- 10,200,202, 2,165,156, 96, 73, 74,233,236, 60,214,162, 91, 67,215,103, 31,135,190, 75,174, 50,198,108,115, 0, 54, 7,230,238,
-238, 46, 59,123,187,204,102, 51,206,206,206,200,243,124,171, 48,223,116, 79,117,235,252,225, 73, 26, 97,173, 99,189,183,149, 19,
- 82,109, 58,197,182,109, 73,226, 16,172,101,167, 15,212, 48,198,184,213,151,181, 92, 94, 94,178, 90, 57,109,128, 10,220,131,188,
-235, 31,214, 66,136,173, 58,254,171,220,104,111,219,201,122,198, 66, 63,130,223,100,127, 95, 92, 92, 16,244,218,131,141,122,125,
-147, 79,191,121,111,218, 24, 23,146,227, 7, 4,253,158,126,179, 79,223,168,216, 55,175,221, 90,187, 45, 48,172,245,182, 83, 2,
-175,159, 54, 20, 69, 78, 93,151, 76,119,198,172, 22,115,130, 64,113,237,218, 30,103,231, 39,128, 68, 34, 16, 88, 86,139, 57,121,
- 94, 51,155, 93, 81, 55,206, 95,236,135,233, 54, 60,100, 99,253,148, 82,161,141,235,204,234,174,221, 30,232,155,247,189,121, 63,
- 74,169,109,231,253,245,131,111,227,205,119,124,118,183,255, 54,214, 9, 18, 55, 83,136,209,104, 68,149,103, 8, 60,162,208,233,
- 11, 54,192,154,141, 53,206,185, 23,108,255,103,238, 90, 74,229,209,149, 78,181,173,148, 98,127, 60,117,147,152,254,117, 88, 79,
- 83, 20, 21,231,231,231, 40,165, 56,124,241, 18, 63,144,232,182,227,230,173, 3, 78, 78,206,248,214,183,222, 99,111,111,159,231,
-235, 53,137,255,255, 43,236,242,156,195,195,195, 45,248,232,235,100, 63, 33,156, 71,123,243,103,128, 19,201,133, 33,109, 91,111,
-133,122,155,207,113, 56, 28, 50,153, 76,184,127,255, 62, 87,183, 22, 28,190, 62,166,174, 35,167, 41,224, 0, 0, 32, 0, 73, 68,
- 65, 84, 75,226, 80, 33,167, 19,164, 18,156,157,159,112,235,206,109,238,220,185,195,203,231, 79, 41,202, 10,171, 59,246, 14,110,
-113,116,116,196,135,191,248,156,239,126,247,187,188,255,193,111,242,242,240,136,197,106, 73, 28, 70, 72,229,138,175,213,114, 65,
- 85, 22, 8, 11,117, 93,226,225,166,154,109,235, 34,159, 87,171,246,215, 52, 22, 91, 0,146, 20, 40, 79, 16, 71, 97, 95,188, 84,
-172,178, 53, 74, 6,125,167, 94,111,245, 4, 97, 24, 82, 22, 5, 66,120,236,239,236,112,112,112,192, 56, 77,153, 95,157,241,230,
-183,190,129,239,123, 95, 5, 16, 25, 71,150,155, 76,247,249,198, 55,190,193,225,235,115,116, 7,117,235,238,255,182,170,209,198,
- 77,158,171,202,244,186,136,142,155, 55, 15, 16,210,240,250,213, 11,231, 56, 73, 83,154,186,227,198,141, 91, 44,230,107,226,116,
-178,157,218,117, 93,195,176,110, 88,102,107,254,234,111,254,146, 91,183,118, 72, 18, 24,166, 1, 77,221,225, 41, 15, 79,250,116,
- 93,139,177,130,197,186, 32, 76, 38,200, 48, 65, 72,197,186,108,249,179, 31,255,156,135,247,238,243,224, 32,197,107, 12,186,179,
-110, 37,129, 70, 9,237,177,188,154,243,234,248, 5,251, 55,175, 99, 61, 73,147,117,156, 31, 93,178,204, 52,235,124, 70,148, 6,
-236,236,198,236,238, 15,104,234,156,182,106,153, 47, 53, 97, 58,230,114, 89, 96, 85,198,225,201, 21,158, 74,153, 78,166, 72, 63,
- 32, 12, 82,154,114,193,139, 87,135, 60,184,115,141,189,189, 29, 2,233,226, 51, 27,157, 32,148, 66,123, 2, 21, 15, 56,186, 90,
-113,122,121,130, 63,136,240,213, 0,131,226,245,108, 73, 94, 59, 4,226,195, 27, 7,236, 38, 62,104, 75, 91, 87,248,126,136,167,
- 59,180, 46, 89, 47, 43, 68, 96, 8,149, 15,218,199,118,185,179,133,132, 9, 97,160,104,155,134,221,113, 66,219,214,132, 34,196,
- 15, 21, 63,248,205, 15,220,195,110, 52, 64, 41,193,151, 79,190,224,147,207,255,150,223,255,253,127, 78,148, 10,218,215, 5,126,
-100, 81, 65,130,146, 17,159,125,254, 5, 39, 39,103,124,255,135,223, 39, 26,198,172,214, 51,166,251,251,104,109,241,253, 49,214,
- 40, 86,203,140, 60, 47, 16,158,100, 52,218, 65, 72,203,229, 98, 77, 18, 75, 2,101, 9,131, 16, 97,125,108,107, 48,157,117,171,
- 11, 33,250,195, 61, 68,250, 9, 42, 74,240,124,215, 41, 72,229,136, 88,218, 19, 46, 13,174,105,184, 92,204, 88,173, 42,206,207,
-214,156,158,102, 44,103,231,212, 85,199,124,150,163, 74,159,217,229, 46,119, 14,174, 83, 22, 5,129,223, 98,173,102,181, 90,225,
-203, 0, 1,104, 2, 58,213, 98, 44, 52,186,165,172, 43,252,200,173, 67, 58,163,241, 60, 87, 13, 75, 33, 64, 91,119, 56, 88,129,
- 50, 33, 86, 40,172,112,123,125,211,181,120, 74,130,165, 79,200,210,212,141,102,185, 92,226, 33,216,187,182, 79, 93,151,156,159,
-158, 56,156,174,213, 72,235, 70,132,129,114,135, 83,145,229, 92, 94,158, 83,150, 53,147,126,252, 55,217,153,210,117, 46, 68, 65,
-249, 30,203,108,233,136,120,184,131, 63, 77,191, 74, 32,139,147,196, 9, 56,181,199,112, 56, 37,159,215, 52, 85, 75, 28,186,168,
-210,191,249,217, 95,161,162,132,178,169, 8,195, 0, 79,184, 28,249,167,143,191,228,207,254,199,159, 83,116,142,102,248, 71,255,
-229,191,114,121,181, 68, 70, 9,157,240, 9,194,144,103,143,159, 48, 24, 13, 17, 90,147,231, 13, 70,107,148,112,216,205,170,105,
-104,181,197,247,157, 16,114, 56, 28,210,117,154, 60,207,105,219, 14, 33,100, 47,218, 73,216,221,221,167,170,107, 78, 79,207, 89,
- 46,215,142,184,215, 99, 60,165,116,135,102, 28,134, 68, 65,128,110, 28,194, 83, 8, 65, 36, 29, 87,160,204, 11,151, 5,221,180,
-164, 83, 23, 15, 59, 25,186,120,207,141,247,125, 51,166,111,181, 75,252,219, 28,166, 27,219,218, 70, 21,172,173,117,118,164, 94,
-185,189,121,208,135, 97,136,192, 67,163, 29,148, 37,140,192,216,173, 90,124, 51,182,181,214,226, 41,137, 39, 4,198,195,229, 5,
-232, 14, 97, 93,248,199,215,139, 5,119, 48, 40, 32,112,220,255, 30, 4, 99,173, 69, 42,151,255,236, 9,139,239, 75,180,118, 5,
-101, 24, 40, 70,131, 20, 93,151,219, 98,123, 52, 26, 80,151,141,219,173,214,181, 19,234,162,248,198,219,239, 16,134, 17,175,143,
- 78, 56, 57, 63, 99,208,223, 23,244,113,211, 97, 24,210,106,183,242,217, 25,237,244,226, 66, 7,103,169,219,166, 31,193,186,194,
- 34,142, 29,112,103,227,219, 23,194,237,211, 55,255,207,100, 52,222,254,183, 77,129,178,161, 7,150,217,154,189,157,221,173, 24,
-207, 21,121, 62, 81, 63,157,112, 99,113, 31,207,179, 91,101,186,240, 44,149, 45,221, 53,232,117, 12, 94, 15,203,113, 41,134, 18,
- 79, 73,218,174,163,170,107, 70,227, 62, 29, 82,117, 20,101,201,135, 31,127,196,173, 59, 55,249,224,131, 15,156,149,178,255, 76,
-253, 62,242, 52,142, 99,242, 60,231,201,147, 39,172,215,235,237,170, 64, 99,251, 41,161,247,107, 43,148,186,174, 49,214, 18, 37,
- 49, 81,226,172,143, 97,236, 38, 20,142,209,174,120,246,236, 25,171, 60,195, 19,146, 48,148, 8,237,238,159,245,122,197, 98, 93,
-240,177, 39,248,246,183,191,201,222,222, 30, 95, 94,205, 24,141, 70,100,121,197,245, 27,183,249,226,241, 83, 6,195, 9, 15,223,
-124,155, 71,111,189,195, 98,181,228,234,234,138, 85, 31,177,154,175,242, 45,125, 81,107,221,119,234,158, 75, 77,236,215, 42,162,
-191,231,186,174,219, 90,216, 2,225,152,249,142,232, 24,161,141, 32,140, 18, 60, 79, 48, 95, 45,105,234,142,174, 53, 12, 82,183,
- 34,172,139,146,201,100,204, 59,111,191, 77, 20, 5, 92,158,157,147,175, 51,126,241,241,167, 68,113, 64,146, 68, 28,220, 60,224,
-198,238, 62, 47, 94,188, 96,190,248, 21,190,114,194,187,170,236,133,196,158, 4,227, 92, 12, 18, 15,221,118,120, 72,238,223,123,
-131,187,247,110,209,180, 69,143, 27,142, 25, 12, 70,100, 89,193,147, 95, 61, 99,185, 46,216,221, 61,160,104, 86,204, 86,107,166,
-211, 49,239,125,240, 29, 38,163,136, 23, 47, 62,103,189, 56,227,197,235, 67,222,255,214,187,180,186,161,179, 30,117, 97,241,252,
- 9,159,125,250, 37, 71, 71, 23,188,245,246,183,248,205, 31,254,136, 95,124,248, 41, 45,130,117,101,248,233,207,127,193,205,127,
-246,125, 2, 37, 16, 42, 64, 98, 29,120,172,110,113,254,193,197,146,233,237,155,172,171,142,215,103, 87, 60, 59,204,201, 10,193,
-213,114,141,182, 53,215,111, 37,220,190,189,135, 53,110, 20,209, 20,151, 36,233,148,188,172,184, 88,100, 36,211, 3, 30, 60,124,
-135,139,185, 83, 41, 78,166,215, 88, 25,103, 43,218,236,217,132,173,176,182, 67, 89,137,177,150,198, 64,153, 23, 28, 62,123,193,
-147,199, 79, 41,109,128,136, 35,146,225,144,178,171, 33,171,249,187, 79, 62, 39, 91, 92,242,219,223,122,139, 81,236, 67,167, 25,
- 12,124,172, 0, 31,159,116, 58, 36,138,124,162, 48,196,235, 12,109,233, 18,195,164,215,186, 28,232,201,192, 89, 15,130,128,221,
-189, 41,235, 34,199, 15,122,213,179,142, 93, 26, 14,138,227,163, 83, 60, 33, 73, 7, 3,222,120,243, 17,109, 45, 56, 59,190,160,
-204, 13,255,253, 79,127,198,229,229,140,235,183, 30,113,255,193, 13,180,205,156,114,221,118,212, 89,193, 32, 29, 51, 78, 7, 52,
- 85, 67,158,151,104,107,104,219,138,211,179,130,233, 56, 97, 50, 78,216,157, 14, 73,163, 16,164, 1,237, 54, 90, 32, 48,248,100,
- 89,195, 98, 85,210,116, 0,153, 35, 98, 9, 71, 8,211,186,166, 49, 37,218, 22,189,192,163, 97, 57,111, 40, 51,201, 48,142, 89,
-213,167,152,106, 77, 75,202,122, 62,195,211,183, 8,131, 1,157,205,208, 6,162,120,140,192,195,118, 5,214,235, 72, 98,197,168,
- 11, 72, 67, 55,234,106,116, 73,217,168,173, 29,200,106,225,172, 83, 74, 97,172, 68,201,144,101, 86, 80,154,154,170,117,121,240,
-161,159, 96, 59, 39, 90,113, 98, 44,131,177,146,170,172, 49, 6,164, 23,160, 77,139, 49, 30, 77,211,145,196, 17,113, 52,116, 96,
- 9, 79,109,169, 91,158, 17,148, 69,195,254, 94,132,244, 21,243,217,138,243,139, 75,130,192,231,224,214, 62,179,217,130,249,252,
- 98, 43,184,242, 8,200,214, 37,101,233,246,248,103,167, 87,220, 80,123, 14, 66,211,184, 98,233,242,236,156,203,162, 98,157,175,
-216,223,153,114,116,114,204,205,253, 3,246,247,119,249,232,111,127,206,243,167, 79,185,113,227, 6,203, 50, 39, 8, 99, 62,253,
-229, 99,110,220,186, 77,107, 5,167,199, 39,164,227, 41,163,221,169, 59, 16,133,162,170, 27,220,224,217, 81,201,154,166, 35, 12,
- 99, 6,241, 16, 79, 73,186,206,112,126,126,182, 29,135,111,178,171,135, 67,135,203,156, 47, 23, 46,164,165,127,208, 23, 69,177,
-221, 87,111,252,175, 27,165,118,211, 52,196, 97,180,237, 72,132,112,169,122,105,236, 72,100, 27, 66, 93, 93,215, 4,177,179,210,
-157, 92, 94, 56,149,182,255,235,153,223, 82, 74,202,178,220,250,214, 55,215,124,235, 51,239,195, 26,165, 39,182, 93,219,112, 56,
-220,118,107,170,199,109,126,221,121,176, 89, 13,108, 30,180, 27, 28,231,166,112,216,116,120,155, 41,192,198,211,237, 14, 92,177,
-253,221,155, 3,117,227, 87,239,186, 6,225, 57,205,197,120, 60, 38,203, 23,104,221,114,235,214, 77,142, 95, 31,187,181,133, 84,
- 36,225, 0,131,116,163,198,126, 36,110,117,139,214,174,128,149, 82,210, 25,141,210,138,166,169,233,186,102,171, 15, 8,124,243,
-107,135,250,102,215, 60, 24, 12,183,206, 5,183, 18,113,175,115,195,134,159, 93, 94,185, 67,209,124, 85, 32,109, 14,195, 13, 76,
- 72,120,118,171,188,119,211, 13,111,251, 59, 55,215,107,179, 31, 70,176, 45, 76,173,241, 56, 63,191, 68, 27, 67, 20,134, 91,253,
-193,134, 67, 63, 26,141,208, 93, 67, 16, 40,226, 52,101,177,184, 98, 62,155,241,171, 95,253,138,111,125,243, 93,242, 60,231,103,
-127,245, 87, 40,233,184,248, 89,150,109, 69,141,131,193,128,247,222,123,207, 33,125,123,206,193,230,190,216, 56,144, 54,147, 10,
-103, 97,116,106,241, 44,203,182,239, 47,142, 99, 30, 63,126,204,211,167, 79, 49, 8,118,118, 92, 26, 93, 20, 39, 36,113, 68,211,
- 86, 68,190,224,197,179,199,236,237,140,248,198,219,239,146,198, 3, 62,249,228, 19, 23, 71, 59, 26,211, 26,203, 71,159,124,202,
-219, 77,221,243, 18,220,106, 69,162,241, 52, 36,105,228,210, 29,155, 6, 99, 59,172,238, 48,214,163,235,218,222,246,183,113, 75,
-244,188, 4,207,133,224, 12,135, 35,146, 36,193,235, 93, 5, 27, 7,131,198,110,119,232,155,247,209,180, 21,113, 28,179, 51,157,
-146,132, 1, 89,182,226,242,226,140,201,120,200,222,254, 62,139,171, 43, 86, 89,129, 62, 58,103,144, 78,200,214, 5,101,213,178,
-191,127, 3,211,118,206,109, 35, 55,154, 4, 31, 97, 5, 66, 9,186,182,102,177, 88, 50, 26,166,124,254,249, 47,201,178, 37, 77,
- 91,112,124,252,154,162,168, 72,146, 1, 88,159,163,227,115,198,163, 51,234,182, 97, 49,191,226,224,198, 53,198,227, 1, 55,111,
-236,115,239,238, 77,206,206, 46,120,125,114,193,253, 55, 42, 34,153,160, 68,200,147, 23, 47,121,250,244,136,231, 47,142,169, 58,
- 67,222,125,201,222,254, 1,225,112, 12,243,156,193, 96,151,121,214,242,248,229, 49,161,106,241,125,185,253,172, 85, 99, 66,108,
- 48,194,139, 71, 84,214,167, 18,112, 89, 88, 78, 87,150,179,171,156,198, 8,202,166, 97,233,213, 60,191, 60,103,156, 70,188,121,
-255, 45,158,190, 62,230,234,252, 25, 55,111, 28,240,250,232,132,131,251, 1,121,107,153,207,115,132,148,212,101, 73, 18, 36,172,
-215, 87,204, 46, 46,121,237,119, 8, 91, 16, 39, 1, 42,144,248, 81, 72,228, 39, 36,114,200, 94,114,192,163, 27,111,177,212,146,
-204,132,120,126,196,193,193,144, 40,176, 52,171, 51, 86,213,146,100, 39,226,214,205, 41,186, 45, 24, 12, 28,225, 43,136, 70,116,
-120, 46,134, 19, 75, 71,131, 85,160, 60, 73, 26,197, 36, 81,140,176,224,201,152,201,100,135,178,169,241,227, 24,109, 12, 50, 8,
- 56,187, 88, 48, 74,247, 24, 15,238,240,222, 55,126,155,186,116,163, 39, 79, 72,206,206, 46,248,244,179, 23,204, 46, 43,142, 14,
- 75,140, 73,249,240,111, 95, 18, 6, 59,196,163, 61, 86,203, 37, 88,141,169, 74,234,172,198,195,167, 45, 26,138,188,114,224,155,
-222,126,116,114,126, 65,163,155, 94,133,235,161, 80,216,206, 67, 89, 9, 4, 8, 66,116,103,105, 77,192,170,104, 56, 63, 63, 7,
- 4,227,209, 14, 90,119, 40, 31,160, 34,138, 61,146, 36, 98, 58,220,227,246, 65, 74, 32,166,212,186, 99,176,231,147,103, 75,154,
- 85, 71,234,135, 4,126,138,240, 21,101,155,128, 53, 8,237,225,233,142,206,128, 53, 53, 2, 67, 44, 45, 67, 95,144, 40,143,194,
- 51, 78,105,218,108,208,135, 30,194,115,217,189,109, 91,210,118,134,197, 98, 69, 39, 4, 23,243, 5, 69,217,144, 38, 17, 74, 27,
- 60, 58,162,104,208,239, 34, 19, 2,127,197,124,177,164,105, 4, 69,209,226,217, 8,219, 25, 4, 49,186,145, 52, 90,163,133,160,
-200,220, 23,197, 23, 3, 6,145,160,107, 37, 85,221,209, 54, 13,243,229,156, 32, 16,140,119,118,232, 90, 15, 33, 35, 44, 30,194,
-115,239,205,147, 13, 82, 37, 8, 47,226,242, 98,201,238,254, 14,199, 71, 71,196, 94, 66, 28, 57, 21,245, 71, 31,125,132,140, 98,
-170,170, 64,248,130, 91,119,111,241,199,127,242,199, 36,202,231, 31,254,163,223,227,163, 79, 63, 97,125, 92,147, 21, 57,201, 96,
-200,203,163, 83,252, 40,230,173,119,223,229,249,203, 35,132,242,169,178,130, 46,207, 73,195,128,182,105,208,218,169,109, 7,105,
-218, 7, 67, 8,218,186,225,226,114,206,112,232,188,222, 69, 81,112,239,222, 61,194, 48,228,232,228,152, 60,207,183, 15,201,205,
- 65,183, 57, 20, 58, 99,144,190,143,217, 28,144,198,226, 89,247, 32, 42,138,130,182,114,177,172,155,241,249, 70,157,109,173,101,
-127,223,217,157, 54,120, 90,235,241,107,112,151, 13, 10, 22,192, 15, 67,132, 82, 52,235,245, 87, 66,215,254,161,183, 17, 15,153,
-214,137,229,210, 40,102,189, 88,226,247,211,134,175, 23, 30,155,131,191, 51,186,143,232,117,200,205, 52, 78, 72,211,212,117,249,
- 61,228,198,246,196,174,205, 62,127,115,136, 24,211, 17,134,126, 31,107,217, 97,140,102,255,218,158, 67,217, 90,205,106, 61,231,
-141,123,119,251, 67, 88,160,164,199,247,127,251,183,152,207,231,224, 41,140,134,103,207, 94,242,234,229, 75,210,225,148,219,183,
-111,161,148,100,157, 23,219, 0, 20, 79,186, 21,161,214, 78,176, 86,102,107, 76, 24,162, 67,221,107, 8,116,255,254,221, 56,126,
- 83,112,109, 38, 27, 82,134,191,182,166, 72,122, 91,108,219,213,191,230, 18,168,170,138,186,117, 63, 81,232, 4,129,101, 89, 82,
- 85,229,215, 4, 94,221, 22, 70,164,187,166,167, 82,250,219,238,146, 30, 45,170,250,145,255,114,181,194,244, 98,174, 13, 44,166,
-169, 75, 14, 14,238, 49, 76, 83,164,132, 52, 73, 88,173, 86,204, 23, 11,167,174,110, 90,174,214, 51,130,224, 43,134,189,181,142,
-137,159,101, 25,162, 47,246,182, 69,197,182, 80,115,162, 63,235,245, 40,223,208, 89, 87,139, 94, 31, 2,112,251,246,109,132,128,
-251,247,239,146,101, 5,151,179, 25,187,187,187,124,255,183,127, 11, 33, 4,255,253,191,253, 41,227, 97, 12,186,227,252,248,152,
-135, 15,222,224,225,195, 7,124,250,233,167,180,157,225,106,182, 96, 50,222, 97,181, 94,240,217, 47, 62, 97,181,118, 60,130, 40,
- 10,192, 58, 11,155, 31, 38,116,198,210, 84,206, 50,230, 75, 73, 24, 6,253,181,118,154, 28, 39,226,244,176, 88,164, 80, 4, 42,
-216, 2,159,162,208,193,117,140,117,247, 88,215,116,248, 42,100, 52, 10,182,123,121, 33, 93, 94,123, 28, 57, 49,161, 53,154, 40,
- 8,153, 78,167, 46,224,167,168,217,191,182,203,108, 54,103,182, 88, 82,214, 13,171, 85, 78,158,189, 98,119,239,128,174, 3, 41,
- 2,112,136,117,199,159,144, 10, 79,187,160,151,182, 49,204,103, 75, 70,227,152,157,221, 17, 39, 39, 71,248, 97,192,245, 27, 55,
- 72,226, 49,214,115, 22,207, 81, 56, 37,142, 67,222,252,198, 67,124, 95,240,240,225,155, 8,227, 99, 57,225,228,116,201,159,253,
-197, 71,236,142, 38, 92,219,191,193,108, 6,175, 14,115,214,101, 72,148,196, 60,127,125, 78,227, 41, 38,215,174, 49,207,106,154,
- 90,160, 85,204, 79, 62,252, 2, 97,221, 84,169,233, 92,161,169, 42, 99, 92,140,103,163,123,239,224,132,178, 59,162,196,167, 20,
-176,200, 11, 16, 1,148, 37,139,227, 43,222,121,227,128,183,223,251, 13,138, 34,224,229,171, 51,158,191,120, 5, 66, 18,132,130,
-117, 83,114,176, 63, 69, 40,197,147, 47, 62,103,124,115, 15, 69,196, 50,175,120,250,234,132,174,203, 25, 15, 6, 68,105, 68, 50,
- 26, 48, 26,198,204, 78,207, 56, 61, 94,162,100,130,180, 32,141, 79, 85,105,162, 40, 64, 55, 21,163,225,148,186,185,196,147, 16,
-164,138,186, 48,104,209,208,232,130,200,143,176,149, 27,171,250,190, 75,142,210,214,135, 86,163,176,208,105, 58,107,145, 97,196,
-197,122,133, 39, 92,215, 48, 91,174,105,235,154,233,100,143,178,177,120, 34,228,253,239,253, 61,202,166,160, 49, 29,143,159, 60,
-230,228,104,193,203,195, 75, 94,189, 90,224,169, 17, 65, 56,224,207,127,250, 57, 54, 76,249,173,239,189, 67,145,173, 8,188,150,
- 81,236,208,130,202,143, 9,148, 34, 16,146,170,106,168, 26, 75,163, 43,132,241,232,106, 67,177,174, 16, 26,164,167,192,120, 40,
-207,128,180,232, 18,130, 52, 38, 74,198, 8,105,128, 75,124,223,231,250,141,125,146, 40, 68, 72,141,103,107,146,129, 79,153, 23,
-248,114, 0, 58, 64, 48,116, 10, 80,149, 97,166, 17,245, 90,115,113,118,233, 44, 80,190, 64,119, 46,124,161, 40, 42, 2, 95, 33,
- 68, 8,218,208,214, 29, 77,209, 97,170, 25, 94,187,192,143, 71, 24,237,110, 6,172, 4, 47,164,238, 42,102,153,179, 21, 54,218,
-163,179,130,107, 55,110,210, 52,103,188,126,117,132, 47, 45,131, 36,225,214,141, 3,134,131, 41,117,221, 50, 28,140, 16,242,136,
-249, 50,231,248,244,156,245,114, 73,215, 53, 68,190, 34, 91,172, 89, 95,205,233, 58,215,117, 54,157,233,149,185, 29, 73, 50,226,
-232,245, 25,171,213,138,251, 15,239, 16, 69, 17, 97, 40,251,226, 74,244, 68,172,154,174, 79, 75,106,154, 22,107,157, 10,126,177,
- 88,241,248,201, 33,187,187,187,232, 26, 14, 79, 47,209,202, 71,123,130,241,206,148,231,175,143, 9,211,132,159,252,229, 79,161,
- 40,249, 87,255,226, 95,178,174, 42, 62,252,236,115,194,116, 64,217,181,204, 22, 57, 72,197, 56, 29,240,228,201, 51,164, 31,178,
- 92, 46, 93, 18, 84, 26, 19,199,105,127,168,107,226, 52,117,209,175,158, 36,207, 75,230,243, 57,163,233,132,197, 98, 78,154,166,
-220,188,121, 19, 41,229, 54, 53,109,181, 90,109, 15,181,141, 72, 42,142, 99, 55,194,239,213,242, 65,223, 17,111,194, 81,182,224,
-147,174,101, 28,133,220,187,125,135,179,203, 11,142,142,142,120,240,232, 33,195, 36, 37, 29, 13,121,242,197, 99, 46,103, 11,180,
-117,145,166, 27,191,243,112, 56,116,232,209,170, 36,142,226,109,224,204, 86,169,110,204,150,211,238, 4, 68, 78, 73, 44,133,192,
-143, 66,178,203, 11,100,224,111,125,219,155,189,189,110, 90, 90,227, 20,200, 89,158,109, 71,243,155,223,183, 33,211,133,202,119,
- 97, 62,190,218,238,170, 55, 36, 64,199, 34, 79,104,154, 13, 3,190,161, 45, 42,212,222, 46, 31,188,255, 93, 86,139, 43,142,143,
- 95,115,121,113, 66, 20,187,195,245,151,191,252, 2, 33, 21,218,202, 94, 8, 37, 72,134, 3, 16,174, 59,190,115,255,222,118,212,
-188,153,150,104,229,112,167, 82, 74,172, 54,253, 33,238,108, 80,109,163,191,210, 72,244, 19,146,205, 52, 98, 35,158,219,188, 94,
-128,174,113, 29,186,146, 1,168, 62,190,179,211,238,122,212, 37,208,231, 2,244,187,244,141,171,193,152,110, 75,170, 67,186, 41,
- 64, 83,105,240, 36,251,195, 49,131,193,136,188, 42,145, 65,136,232,233,129,110,125,197,215, 60,238,154,203,203, 75,222,124,243,
- 97,239, 77, 31,178, 51,157,246,163,126,193,119,222,255, 14, 39, 39, 39,156, 29,159, 32,165,216, 18, 0,157,191,219,221, 79, 39,
- 39, 39,110,189,214,125,229,207,223,252,108,238, 1,107, 29,228, 74, 8,129, 71,191,198, 48, 94, 95, 64, 58,141,144, 82,138,229,
-114,217, 51,235,221, 4,232,155,239,189,203,171, 87,135,196,126,232, 14,230,162,160, 92,175,248,173,239,126,192,127,251,179, 63,
-103, 56,112,171,141, 65,156,176, 88, 44, 28,148, 73,244,205,141,244,157, 86,192, 10, 20, 6, 45, 61,180, 22,120,125,129,218, 52,
-213, 22,221,235,138, 66, 69,216,239,251,195, 36, 38,244, 3,124, 37, 89,175, 29,125,206,104,139,244, 21,121, 94,110,255,222, 98,
-177,112,159,167, 39,152,140, 71,212, 69, 78,219,180,220,187,123,135, 48,144,120,198,178,204, 92,138,221,112, 56,228,248,248,136,
-197,108, 78,224,135,236,238, 70,172,150, 69,127, 29, 45,190, 50,212,157,163,219,249,248,120, 94,136, 39, 37,203,229,146,186,222,
-239,239,153,152, 60, 95,211,182,154, 65, 58, 36,203, 10,210,193,148,225,100,140, 82, 1, 85, 85, 16, 38, 46, 70,121,157,101,140,
- 78, 71, 4,114,204,122,173, 73,146, 17,179,133,102,190,156,241,203,167, 87, 88, 19,144, 87, 22,229,199, 92, 94,205, 9, 18, 55,
- 81, 25, 12,199,220,189, 47, 57, 61, 94,208,169, 0, 99, 98,234,178,117, 69,200,122, 69, 83, 21,168,209, 52,225,244,226, 21,239,
- 60,122,147, 74,123,156, 30, 93,210,106, 65,169, 45,151, 69,134,145, 10,211,106,200, 90, 2, 3,217, 85,198,139, 47,158,240,232,
-141,187,172,151,115,146, 40, 69, 42,197, 96, 39,229,166, 7, 50, 24,210,180, 22,186, 21,171,249, 5,111,220, 59, 96, 94,181,204,
-214, 13,167,167, 23,248, 98,197, 96, 52, 96,188,155,115,243, 70, 72, 62,239,184,202,161,212,150, 85,150,209,145, 16, 4, 17,182,
-169,208, 93, 77,219, 72,186,218,226, 4,135, 29, 81, 56, 64, 8,195,104, 24,225, 53, 30,177,145,248,173, 69,122, 21, 81, 40,200,
-214, 57,210,250,216,210,210, 74,143, 78,128, 54,150,227, 85,198,170, 52, 44,150, 5, 74, 72, 6,129,160,110, 64,136,128,221,157,
- 61,106,163, 89,149, 37,126, 32,105,180,225,233,203,167,116, 54, 34, 24, 13,169,108,204,101,163, 17,123,215,248,228,217, 11,210,
-145,228,253,183,175,209,102,151,248, 8,118,118,247, 49, 86,226, 41,197, 48, 78, 57, 60, 60,164,235, 26,166, 81, 76, 28, 14,152,
- 76,135,164,105,140, 49, 29, 69,221, 96,172,135,246, 13,210, 87,212, 29, 46,109,204,143, 41,242, 5,247,239, 60, 64,120, 13,211,
- 65,128,146, 6,109,106, 60,163,209,101, 71, 40, 5,214,212,116,182,115, 59, 30,233,224, 53,249,122,137,174, 45,147,161, 66, 55,
-107, 76,235,209,148,165, 27,163,106, 75, 93, 22, 72,229, 97,140, 34,207, 43,170,206, 50, 74, 90, 70,105,197,210, 4, 40, 92,193,
- 48,155,175,137,125,197,235, 87,167,124,254,197, 51,158, 31,190, 38,140, 19,254,215, 63,252, 95,216, 29, 39, 28,159,188,164, 45,
-156, 39,248,224,198,117, 14,143,142,201,215, 37,105,154, 18,197, 3, 90,107, 72,198, 41, 50, 82, 60,253,248, 41,215,247,118,185,
-190,115,155, 72, 41,108, 47, 88, 82,129,143, 10, 36, 85,215, 18, 15, 7,160, 93,183,210,232, 6, 63,244,136, 82,159, 32,144, 20,
-229,156,233,206,128,162, 4, 63,156,226, 11, 31, 33, 12, 82,129, 18,134,229,226,156,221,253, 91,148,181,229,197,209,130, 52, 29,
-241, 39, 63,254, 75,140,149, 52, 66, 82,213,154,186,110, 89,173, 47,105,154,134, 7,247,238,243, 63, 62,254,196,133, 47,164, 19,
-188, 32,160,174, 51,130, 56,197,120,176, 92,172, 29,135,161,223,107, 15,227, 8,211,105,199,239,238, 44,147,201, 14,227,241,152,
-245, 98,201, 50,155, 1,130, 32, 14, 40,203,124,139,125, 77,146,132,243,243,115, 78, 78, 78,208,214,217, 1,235,182,117, 57,222,
-158,135,244, 29, 36,101, 60,157,244,124,244, 14, 79,122,212,117, 73,211,181, 36,131, 20,131,197, 15, 93, 8, 15,194, 1, 98,206,
- 47, 47, 16,210, 71,170,128, 86, 91,158, 62,123, 65, 94,214, 46, 92,163,238,250,224,146, 20, 99, 52,231, 87,231,238,128,143, 2,
- 84,168, 8, 35,159,229,106,222,171, 99, 13,173,110,176,158, 65,111, 14,101, 15, 68,232, 19, 70, 17, 89, 93,146, 21, 37,215,246,
-246,177,214,163,204, 74,148, 80, 40, 79,209, 89, 39, 68,172, 5,172, 51, 13,214, 41,162,187, 40,162,200, 86,228,189, 53,111,144,
-164, 8, 37, 25,166, 3,218,206,141,223,163, 40, 34, 43,221,200,219,246, 1, 24,109,219,162,148,192,235, 74,150,153,163,237,249,
-190,143,237, 90,210, 36,233,187,115,201,106,157, 51, 95,173,177, 72,167,101, 8, 3,166,211, 41, 81, 16, 50, 91, 46,216,187,182,
- 79, 50,136,185,121,251, 38,235,165,123,192,183,117,135, 64,210, 53,142, 88,231, 75, 15, 55,124,114, 54,168, 64,245,206, 10,165,
-168,218,142,188, 42,232,172,235,228,133,242, 9,227,196, 17,236,112, 93,153,181, 95, 37,171, 21,217,138,108,181,166,170, 10,108,
-175,212,142,211,132, 56,142, 49,157, 35,237,185, 52, 46,225, 98, 79, 91,231, 51, 6,208, 18, 86, 85,195,142,177,216,178, 6, 4,
-109,167, 73,130,240, 43, 84,111, 20,184,116,183,229,140, 40, 86,120,158,229,229,171, 23,124,235,221,247,200,178,140,225,104, 66,
- 24,134,156, 28, 95,240,205,111, 26,254,254,239,254, 30,255,249, 79,254,152,227,227, 99,188, 44,163,235,177,165,129, 47, 41,242,
-140,189,221, 93,162,158, 73,223,182, 45,237,215, 10, 23,207,243,156,152,210,210, 11, 7, 37, 65, 16,162,117,135,213, 22, 63,112,
- 35,253, 40,136, 57, 62, 61,225,252,252, 28,173, 53, 79, 30, 63,221,186, 3, 54, 83,159,119,222,124,155,245,226,146,231,121,198,
-157,251, 15,120,116,255, 14,199,199,167, 68,210,223, 78, 10, 84, 24,161, 2,197,213,108,198,238,254, 30,203,171,153,115,124,248,
-138,208, 87,120,214,108, 69,124,198,208,175,242,250,238, 59, 14,144,158, 96, 52, 24,130,176,196, 97,128, 18, 30,131,216, 1,141,
- 54,215,178, 51, 46,112,167,168, 74,210,225, 0, 41,224,141,123,247,152,207, 47, 56,216,223,229,248,240, 37,145, 15,247,238,222,
-230,213,171, 87,140,135, 9, 85,238,154,205,239,124,231, 59,156,157,157,177,183,183,199,229,213,140,166, 45, 24, 77,198,206, 66,
- 41, 13,160, 25,141, 6,172,179, 2,221, 23,168,171,197, 37, 77,231, 10,195,211,211, 83,222,121,243, 45, 30,171, 39, 8, 79,209,
-182,154,243,243,115,226,100, 64,158,151,132,161, 79, 94, 24,206, 78,142, 72, 98,159,211,163,215,152,230,140,201, 32,165,177, 26,
-207,143,168,234, 26,235, 75,146, 48,194,203,215, 52,197, 26, 99,214,216,206,199,183,134, 36,240,105,163,152,201,174,187, 62,149,
- 86,148, 90,178,174, 58, 46,174,230,116,117,134,250,228,151,159,115,113,113,198,213, 34, 98,153, 85, 60, 61, 90,240,233,171, 43,
- 94, 46, 44,245,255, 71,214,155, 62, 73,146,228,231,121,143,199,125,229, 81, 89,149,117,244, 61,199,206,137, 37,102, 23, 32,151,
- 32, 5,194, 8,202, 40, 51, 73,159,248, 63,234,155, 76, 34,105,144,201, 36,163,129, 32,176,192,130,187, 36, 23, 24,236,156, 61,
-211,211,211, 93,119,229,157,113, 71,184,187, 62,120, 68,116,181,216,102, 99,115, 88,117, 87, 77,102,164,251,239,120,223,231,117,
- 19,164,170, 72, 66,151,145,155,160,168,209,181, 98,183,217,112, 48,155,243,232,233, 19,100,165, 40,138,156,253,126, 67,209,150,
- 88,214, 14, 41,161,173, 75, 92,215,198,241, 92,230,103, 15,248,235,191,250, 21,151, 23,119, 76,198,115,142,136, 41, 68, 77,165,
-151,212,185,177,145,229,178, 54,151,149,150,180,109,141, 45,204,238,217,178,124, 28,140, 58,218,117, 61, 84, 93,227, 90, 6,147,
-105,107,155, 42,173, 17,142, 70,201, 2, 79,152,145,136, 35, 52,174,237,226,184, 62, 25, 45,231,119, 43,190,120,117, 65, 50,123,
- 64,214,216,220, 93, 93,226,171,138,249,193,132,227,227, 51,178,188, 2,199, 54,194,157,218,164,111,125,252,241,199,252,242,215,
-159,147, 86, 30,141,237, 64,144,160, 81,220,238,174,249,241,194,226,179,247, 19,222,121,114,130,106, 53,150, 16, 52,178,165,169,
- 75,182,155, 13,219,205, 53,142, 45,152, 79,206, 24, 37, 30,162, 45, 89, 92,221,209,162,113, 60,159, 32, 25, 81,182, 5, 74, 53,
- 56,118, 64,145,237, 73,235, 10,215, 17,120, 97,130, 0,234,116,135, 19,184, 68,129, 75,163, 20,178,146, 72, 52, 74,213,166,107,
- 85, 10,173, 5, 77,171,185,187, 91,114, 50, 63,230,228,244,148,221,218, 84,167,237,110, 71, 20,134,200, 78,164, 99,185, 14, 26,
- 65,236, 73,102, 65, 68, 18, 79,240,198, 7,252,111,255,254,151,232,198,163, 41, 82,174, 46, 46, 89,223,221,242,242,213, 57,231,
- 55, 75,110, 55, 57,159, 61,251,128,125, 94,241,232,244,144,208,117, 80,174,205,227,135, 15, 24, 37, 35,218,249,156,111,127,247,
- 21,159,126,250, 41,251,253,150,163,249,140, 74,213, 96,105, 92,223,193,239, 80,158,158,101,227,248, 1, 89,158,147,102, 5,217,
-182, 70,184, 54,178, 85, 88,184,132,126,196,100, 20,225, 71, 46,209,200, 35, 74, 92,176, 36, 77, 83, 19,141,142, 13, 47, 94, 11,
-132,237, 80, 87, 45,101, 89,211,212, 26,215,247, 89,239, 75,162,201, 1,191,252, 47,255,149,191,255,250, 57,127,240,143,127,129,
-114, 60,110,239,150,204, 14, 14,201,138,146,205,110,199,237,106,139, 90,172, 17,150,131, 82, 22,178, 86,236,246, 25,113, 52, 30,
-108, 42,150,101, 33,164,164, 42,202, 97,183,137,107,198,144, 66, 8,163,105,200,178, 78,104, 4, 82, 42,102,179, 67,230,243,249,
-144,190,118,115,115, 99, 16,166,158,107, 70,125,247, 70,185, 82, 74,162, 36, 30,136, 94,253, 72,186, 23,163,245, 76,242,190, 99,
- 31,141, 70,188, 58,127,141,227, 56, 38, 28,166, 99,200,239,187, 81,122,255,231,244, 99,244,126,188,122, 95,176,166,148,122,203,
-194,165,135, 8, 84, 51,202,111,149,196,194,128,127,122,248, 77, 89, 87,198,238, 36, 37,113, 24,145,237, 83, 16,138, 48, 8,112,
- 61, 99, 3, 43,155,138,217,108, 74,224, 26, 59,208,108,122, 64, 16, 4, 52, 77,195,106,181, 50, 52,184, 81, 66, 81, 84, 70,116,
- 86, 55, 70,252,105, 57, 8, 81, 34, 53,184, 66, 32, 21,102,178, 85,150, 8,105, 10,191,249,236,144,147,227, 51,132,237, 96,217,
- 46, 63,188,190,224,110,185,166, 40, 13,123,127,126,124, 8,202,232, 4, 94,190,124,201, 39,159,124,194,239,253,244, 19, 94,190,
-248,145,213,221,146,192,245,168,242,189,129,246,244, 94, 64,165,141,155,196,243, 7,193,223, 27, 50, 29,195, 88,189,170,170, 97,
-100,222, 91,173,218,214,216,227, 44, 84,215,185,107, 2,223,199, 81,198,190,103,187, 14,173,108, 6, 91,156,215,237,170, 77,206,
-187,161,143,105, 13,181, 50,188,245, 86,129,163,232,188,216,106,208, 58,248,129, 59, 48,199,173,206,145, 48, 26, 39,188,120,241,
-130, 36,140,152,207,231,164,105,198,229,229, 21,183,215, 38,240,231, 23,255,228,231, 60,125,250,148,207, 63,255,220, 20, 77,109,
- 75,146, 36,236,119,155,110,119,111, 96, 65,126,135, 78, 45, 58,230,125,219,152, 11,116, 20,135, 67,170, 96,255, 92,180,109,139,
-106,205, 62, 59,138, 67, 78, 79, 79, 7,188,176,113,170, 40,116,107, 48,213,174,107,115,120,120,136,231,216, 44, 46,174,136, 70,
- 99,110, 46, 47,120,242,224, 1, 22,130,197,106,141, 84, 70,143, 81,181, 13, 77,107, 49,153,206,208,194,198,238,130,137,218,182,
- 29,124,232,247,159,205,190,208,233,255, 30, 69, 17,163,177,161, 24,150, 69, 70,150,231, 70,249,239, 58,212,117, 75,154,229, 52,
-210,172, 21, 76, 40,143,228,228,228, 1,158,239, 32, 84,136,146, 45,143, 31,158, 97, 91,138,179,227, 57,187,245,202,232,152,132,
- 98,118, 56, 37,207,115,150,183, 22,171,213, 10, 75,136,174,112,107,144,178, 69,106, 19,206,227,184, 62,174,103, 52, 17,173, 50,
- 83,145,237,126,195,193,120,132, 31,184,198,218,234,133, 20,165, 33,137,198,201,196,172,165, 92,135,192,119, 17,186,165, 42, 83,
- 14, 38, 99,222,123,246, 30,215, 23, 43,246,251, 10,108,159,162,108,208,142,207,110,183, 99,187,219, 17,141, 34, 44, 26,108, 59,
- 49, 86,103, 20,233,126, 75,150, 53, 72,165,176,108, 31, 91,248,136, 42,224,112,126,194,251,239, 60,193,213, 13,206,243,151,231,
- 60,120,112, 74,232,121,172,210, 27,164,198,144,133,178,148, 74, 53,124,244,225,199,204, 15,198, 28,134,154,106,183,160,216, 45,
-200,138,138,139,235, 27,164,178,168,139,110,223, 36, 76,184, 69,171, 26,148, 20,228,105, 70,182, 95, 51,250,248, 61, 62,124,239,
- 93,254,234,207,255, 10,213,180,212, 85,203,106,185,165,106, 92, 90, 37,216,109, 83,179,167,107, 11, 90,187, 69,182, 53,182,178,
- 80,194,248, 40,243,178,198,150,146,116,151, 98,201, 7,228,105,133,237, 9,100, 83, 33,220,160,251,240,152, 48, 7,180,241,127,
-107, 97,163, 48, 93, 14, 8,218, 86,113,125,181,196,217,106,252, 96,138,231, 38,136,186,229,245,235,115, 84,227, 17, 71, 9,150,
-231, 16,197,190, 25, 25, 7, 30, 79, 31, 63, 99,189,107,248,111, 95,254,200,221,234, 22,237,149,140, 39, 49, 73, 44,240, 2,101,
-226, 78, 19,104,235,138,166,201,177, 28,129,235,130,157, 23,140, 15, 32,240, 60,158,190, 59,195,117, 4, 90,182,232,219, 29, 82,
-104,180,104,240,188, 26, 89, 75, 70, 81,192,244, 64,224,187, 46, 69,166,112, 45,135, 56, 12,208,173,207,122,181, 66, 22, 46,219,
-198, 56, 6, 92,199, 34,136, 2, 2,215, 67, 57,198, 15, 91, 41,200, 74,205,171,187, 13,251, 26,142, 31,189, 75, 37, 82, 19, 51,
-233,134,212,218, 70, 34,169,180,192,150, 22, 74, 11, 26, 9,194,181, 25, 77, 79,248,224, 39, 19,254,229, 31, 43,130, 40,225, 48,
-182,121,112, 52, 35,137, 66,206, 78,143,249,241,122,197,215,207, 95,112, 48, 25, 97, 9,205,118,181, 68,214, 21,179, 73,204,108,
- 28, 19,134, 30,201,217, 41,177,109,243,245,215, 95,243,193, 39, 31,243,244,201, 67,110, 22,215,188,126,245, 35,159,126,250, 41,
- 63,254,240,146, 47,190,249,150,182,172, 24,141, 38,198,187,220, 74,118, 69,198,120,118,128, 22, 2,221,104,166,163,132, 48, 10,
- 16,142,102, 50,141, 56,102,134, 31, 56, 84,149,100,228, 70,148, 69,101,124,234,173,141,108, 60, 16, 33,101,213, 80,151,130,209,
-228,144,151,151, 87, 60,127,254, 28,207,243,184,189,189,229,246,246,150,163,147, 7, 60,123,247, 61,206,207,207,137, 71, 19,234,
-186,101,181, 94, 99,223,203,248,238,247,165, 69, 81, 12,138,241,126,255,219, 51,195,103,179, 25, 90,107,150,203, 37, 69, 81, 24,
- 53,122,167,126,246, 60,143,195,249, 17,105,110,130, 90, 86,171, 21, 90,208, 69,198,154,241,165, 37, 4,190,231,153,145,123,211,
- 96, 11,139,221,126, 55,236,158,237,123, 64,150,254,247,244,162,159, 62, 2,116, 58,157, 14,163,240,126, 4,218,139,212,250,241,
-119,127, 24,246,202,220,126, 39,222,227, 50,251,220,133,230,222,215,246, 23,189,109,219, 76,167, 83,118,219,237,192,205,190, 47,
-132,107,219,150, 48,122,179,107,142,227, 24,181,151, 68, 65, 72,158,102, 76, 79, 78, 8,195, 96,176, 40,161, 21,150, 0,203, 18,
-184,174, 77, 89, 53,247,104,120, 46,142, 99, 65, 33, 81,210,172, 29,138,188, 68,105, 97,240,183,194,198,117,125,194, 56,102,159,
-153, 9, 83, 24,134,140, 70, 45,141, 92, 83,149, 57, 69, 22, 18,250, 1, 81,224, 83, 39, 17,231,231,175,208,242, 13, 98,181, 71,
-140,122,157, 34,220,192, 75,116, 23,193,233,224,184,158,137,224,212, 26,209, 84, 6,132, 37,140, 42,191,173, 43,100, 83,227, 88,
- 22, 73, 20, 17, 4, 62,251,189, 99, 38, 54, 77, 53,196,235,218,150, 97,114,111,183,235,193,183,222,143,188,239, 91, 17, 45,203,
- 50,188, 11,101, 46,246,251,239,155, 16, 70,145,222,175, 3, 92,215,165,169,234,142,168,104, 50,221,227, 40,100,185,220,179,220,
-172, 57, 62, 59, 29,136,112,233,126,207,197,197, 5,223,255, 48, 99,118, 56,231,240,240,144,243,243,115,124,199, 49, 17,160, 93,
-218, 94,211, 24, 87,197,114,101, 66, 85, 20,157, 59, 33, 48, 86,175,126, 84,221, 99,106,123,167,131,198,228,145,175, 86, 43,146,
-196, 32,102,231,243, 57,227,241,120, 40,120,109,219, 70,119,249,243, 77, 35,135,226,244,139, 47,190,224,227,143, 63, 29, 46,234,
-186, 91,133,216,182, 48, 17,182, 94, 72,154,238,208, 90,147,166, 41,194,226, 77, 42,158, 17, 17, 13,197,105,209, 69,205,122,129,
-143,176, 45,154, 86,129,176,153, 76,199, 28, 30, 29,155,215, 28, 77, 83,103,195,179,218,127, 30,250,117,148, 82, 70,136, 23,248,
- 14, 65,190,158,158, 15, 0, 0, 32, 0, 73, 68, 65, 84, 28, 32,120,195,241,207,151,107,124,215, 65,203,150,135, 15,207,248,252,
-243,207,137, 71, 35,108,219,101, 62,159,155,117, 78, 43,104, 85, 87,124, 40, 6, 1,104, 16,186,228, 59,103,128, 72,245,186,139,
-233,116, 74,187, 94,129,101,138,244, 52, 77,201,138,156,233,100,196,120, 60,166, 13,125,230, 71, 51, 30, 63,126, 76,182,107,184,
- 91,108,112, 35,147,143,174, 90,209, 37, 61, 22, 52,117,137,104,106,163,113,234, 98,148,133,213,160,149,133,107, 57, 6,202,165,
-106,118,235, 59, 2, 91,243,241,179,143,177,100,133,115,185,218,114,242,228, 25,133,210, 20,181, 38, 45, 43,170,170,161,109, 42,
-226,192,231,244,232,128, 36,244, 8,236,154,232,224,128, 73,108, 4, 21,183,119,107,164, 18,200, 6,194,208,199, 11, 3, 92,169,
-177,164,192,114, 92,146,160,100,183,188,165,173, 43,180, 84,196,190,137, 35,244, 29,143,116,159, 83,183, 14,101, 43, 41,170, 6,
-219,181, 80, 14,104,219, 66, 74, 11,169, 37, 46, 6, 24, 0, 29,133,174, 54,135, 72,185,217,226, 11,155, 70, 11,124,219, 88, 29,
- 44, 75, 32, 44, 23, 75,184,104, 93, 34, 37,104,213,152, 81, 76,109,146,157,170, 10, 94, 92,188, 38,240,183, 60,123,116, 70,100,
-155,253,250,139,231,223, 49,153, 76,137,199, 9,241, 40,194,113, 33,207, 96, 54,153,243, 7, 63,255,140,147, 39, 31,241,255,252,
-229,127,230,229,229,146, 52,149,204, 18, 65, 28,135, 28,204, 38,248,129, 32, 12, 2,195, 39,182, 93, 44,199,197,178, 37, 81,236,
-210,150, 5,150,221,160,180, 66, 8, 8, 35,119, 32, 48, 89, 94, 64,150,151,204, 14,167,108,214,215,140,162, 16, 89,231, 20,105,
- 74, 91, 86,132,126, 68, 83,182, 4,163,168,179,161,128,235,216, 56,150,139,208, 32,235,150,186,148,228,173, 38, 57,122, 66,251,
-227,146,207,159,191, 98,116,116,198, 56, 25,161,234, 10,207, 79, 88,167,251, 78,221,106,252,200, 74,105,202,162, 38, 45,204,135,
-183,146,154, 63,250,197,207,153, 36, 49,129,213,226,163, 76,154,149,159, 16,141,110, 56,191,184,226,246,250,138,242,189,167,124,
-127,251, 10,207,178,120,246,232, 20, 1,216,186, 53, 40,206,249,140, 42,123,192,215, 95,252, 61,101,149,211, 20, 57, 39, 93,220,
-237,163, 39,143, 57, 72,102, 92, 93,222, 48, 26,141, 41,170,134,172,105, 40,110,111,137,143,206,204,184,209,182, 9, 60,135, 86,
-150, 20, 69,202,110,159,155, 17,168,103,246,157, 23,231, 11,138,188,194,119, 2, 28, 59,160,174, 36,174, 59,193,118,160,108,109,
-182,203, 45,127,253, 55,191,226,230,246,142, 48, 30,241,187, 47,191,162,149,154,179,135,143,240,195,152,151,175,206, 9,163,132,
-186,174, 7,139, 79,127,209, 85,221, 33,215,239,152,239,251,199, 13,107, 32, 25,178,198,141, 24, 48, 24, 46,244, 48, 12,121,242,
-228, 9, 89,231, 11,206,178,140, 36, 73, 6, 30,122, 47,138,234,189,205,213,114,249, 86, 58, 88,216,241,215, 29,215, 25, 84,211,
-253,193,222, 95,182, 85, 85,113,112,112, 48, 28,190,253,207,114, 63, 21,172, 63,140,239, 91,207,250, 14, 62,138,162,183, 0, 55,
-247,173,108,253,127, 55,162, 52,143, 81,146,176, 90, 26,178,164, 99,217,195, 14,188,169, 12, 63, 61,142,141, 85,176, 85,125,186,
-155,217,121,246,227,245, 62,246, 75, 8,193,108, 54, 35, 12,205, 62,127,187, 49, 81,165,202, 6,129, 24, 58,224,222,198,148, 87,
-229, 48, 33,176, 61,243, 51,153,132,190,128,205,102,131,235, 5,128, 98, 60, 78, 40,170,210,192, 62,138,140, 36, 50,159, 65,215,
-179, 89, 44, 22, 44,151,119,124,242,201,239,241,201,135, 31,177, 88, 44,249,251,191,251,135,238,125, 46,208,194, 70,136, 6, 45,
- 12,252,201,117, 93, 28,223,195,241,220, 65, 85,221, 67,101,250, 75,161,191,188,227, 56, 50, 5, 67,219, 80,200, 6,219, 22, 56,
-142,139, 99, 11,234, 90, 83,215,205,240,158,244,175,107,159, 47,223, 91, 10,251,241,136,101,117, 64,178,238,107, 85,167, 72, 55,
- 86, 46,176,132,131,214,213,240, 12, 98, 91, 84,117,141,239,139, 46,181,108,207,126,187, 51,249,244, 93,208,206, 95,252,197, 95,
-240, 39,127,242,199,252,155,127,243,111,248,234,171,175, 40,179, 28,215,117,168,187,231, 69, 41,197,102,187, 37,220,167,104, 75,
- 24, 22,134,214, 52,210,236,252,167,201,225, 80,132,244,154,132,251, 69,173,192,128,145,238,195,122,110,110,110, 58,165,190,198,
-119,220, 14,184, 3,150,229,112,120, 60,199,243, 13,132,200,245, 28,194,208, 7, 20, 69, 89, 51,153, 29, 12, 0,152,237,118,139,
-231, 57,228, 89, 58, 20,150,182,109,211,116,250,144,126, 18, 21,118,206,143,227,227,227, 65,179,176,217,239,140,112,212, 53,133,
- 79, 85,155,244, 54, 51,201, 52, 58,134,120,148,240,240,193, 3, 84,211, 80, 55, 21,101, 94,112,118,124, 68,186,219,242,232,193,
- 41,139,219, 59, 19,136, 51, 55,207, 92, 85,100,104,121,128,107, 91,160, 20,101,149, 82, 87, 53, 85, 81,162,181, 24, 62, 47, 77,
- 93,210,182,146, 81,162,176,109,135,180,200, 57,148, 83,108,219,165,172,114,110,175,111, 57,152, 78,187,105,149,234,216, 17,198,
-122,154,103, 37,222, 56, 49, 43,154,202, 56, 51, 62,252,240, 39, 92,223,220,177, 45,118, 68,163, 3, 54,105,142, 86, 45, 77,211,
-178,221,164,156, 30, 76,176,132,162, 85,146, 58,207,177,108, 15,219,241,168,218,154,178,172, 16, 2,174,175,206,113,105,249,233,
- 79,158,224,232, 6,199, 31,207,185, 94,165,100,219, 13, 85,213,144, 23, 37,139,197,154, 40, 24,241,233,103,159, 18, 56, 80,101,
- 27,242, 98,139,111, 11,226, 40, 64, 89, 46,141, 54, 49,127, 65, 18, 97,161,145,186, 37, 8, 34,148, 20,184,182, 71,244, 48, 96,
- 20, 56,148,187, 13,251,213, 29,143, 30, 62, 96,187, 41, 80, 88,216,182,139, 22, 54,219,125,137,176, 28,164, 45,176,180,133,210,
-134,174,100, 50, 3, 20, 22,150, 73, 71, 82, 13, 85, 81, 96, 9,141,131,198,198,132,118,184, 66,147, 53, 38,218,211, 82, 32,181,
-133,214, 46,146,158,103,109,194, 38,210, 60, 3,237, 82,228,138,197,237, 29,178,110,121,120,100,243,222,147, 7,172,157, 59,160,
-230,217,211, 57,163,233, 8, 48,227,202,205,114, 65,171, 45,144, 1,170,145, 70, 40,211, 66,145,150, 84, 89,139, 67,140, 43, 20,
-105,190, 48,157,158, 42, 57, 56, 56, 36,142, 99,226, 56,102,117,115,199, 98,177,162,204, 51,170,178, 68, 43, 65, 20, 31, 16,132,
- 62,233,174,230,250,110,205,122,149, 50,157, 36,236,246, 45,219, 93, 77,145, 22,216,118, 77, 35, 5,121,157, 51,241, 14, 88,108,
- 76, 84,102, 32, 3,148,229, 16,184, 30,142,227, 49, 30, 77, 9,221,128,181,136,217,213, 46,203,157,226,175,127,243, 37, 63,255,
-217, 79, 25, 69, 62, 69, 81, 83, 20, 13,190,107,198,108,150,176,140,239, 93, 9,234,166,129,194, 80,193,100,190, 39,100, 70, 18,
-185, 40, 90,182,235, 29, 94, 80,224,187, 54,167, 39,115,254,219,111,255,158, 23, 47, 94,112, 24,192,199,239, 62, 98, 50, 26, 81,
-228, 41,170,174, 73,187, 81,244, 59,207, 30, 35, 28,193,231, 95,252, 61,255,232,103, 63,231,228,236, 33, 8,151, 40,138,185,185,
- 94, 34, 29, 27,229,248,104,237,178, 77,151,188,188, 90, 82,216, 33,135,135, 7, 56,177, 67,219,152,238,168,105, 76, 6,250,110,
-151, 14, 2, 39, 67,146,179,168,171,140,170,148, 52,210,224,124,247,105, 75, 42,239,184, 92, 93,113,113,117,195,106,151,209,174,
- 83,210, 34,231,209,227, 39, 70,215,240,227,107, 52, 22,121,167,130, 5, 8,187, 46,189,233,172, 95,178, 27, 51,246,157,105, 63,
-186,235, 67, 64,118,187,221,208,153,228,121,142,148,146,147,147, 19,142,142,142,104,219,150,139,139,215, 72, 36,227,131,177,185,
-136, 59,166,187, 81,188,155, 78, 53, 12,125,124,215,198,237, 66,122,124,215, 54,193, 51, 10,180,182,135,206,187,239,242,238,135,
-174,244,168,209, 44,203,134,203,166,183, 83,245,158,243, 32, 8, 12,230,185,195,195,246,224,153, 36,140,222,130,175, 40,165, 80,
-157,157,140, 46, 62,181,169, 75,194,192, 27,198,206,145, 31, 13,221,100,255, 43, 8, 2, 92,215,101,181, 90, 81, 53, 37,147,201,
-120, 16,244,205,143,103,180, 77,133, 86, 45, 71, 7, 51,124,103, 62,188,158, 73, 18,117,152, 84,195,113, 47,171, 10,173, 5,174,
- 99,148,237, 89, 71,229,203,138,146,253, 62, 67, 68, 62, 82, 65, 35,245,160,168,247,131, 8,178,140,186, 85,196, 97,128,106, 77,
- 20,165,133, 66, 53, 13, 79, 31, 61,226,116, 62,231, 87,191,250, 91,118,155, 13, 79, 30, 63, 99,179,217,177, 79,183,248, 94, 77,
- 85, 53,198,195,107, 11,243,188,119,175,143,215, 33, 53,171,142, 0,103, 91, 22, 90,181,104,169,208,178,235,156,109, 3,125,209,
-109, 23, 80, 84, 55,200,182,197, 18,102,250,151,223, 75, 70,235, 11,168,222,147,111,117,254,241,172, 67,218,154,162,202,236,232,
-223,172, 75,204,248,214, 82,224,218,189, 56, 84,211,182, 53,158,103, 10,194,116,187, 35, 8, 35,178, 52,103,181, 92, 99, 1,243,
-249,156, 34,175,216,165, 41,203,197,130,111,190,249,134,207, 62,251,140,188, 40,248,171, 95,254, 85, 23,124, 52, 26,212,250,166,
-179,244, 73,146, 17, 97, 96,116, 27,131,231,190, 44,134,169, 81,127,105,246,130, 74, 35,158, 53,232,218,182,109, 25,143,199,111,
- 65,143,124,223,237,176,195,116,159,151,128, 56,142,249,240,195, 15,137,162,128,215,151, 23,248,190, 71, 24, 6, 92,221,220,152,
- 8,104,161,217,239,183,104, 45,201,178, 10,238,125,207,182,109, 41,186,239,221,219,239,166,135, 6,182,100,123,166,216,117,124,
-143,184,227,190,183, 82,210,180,146, 90, 74,131,233,214,122,152,200,132,129,103,240,201,187, 29,117,101,104,144,227,241,152, 42,
- 75,141,152,116,113,199,147,199,143,135, 44,120, 45, 91,110,174, 46,248,189, 79, 62,226,251, 31,126, 68,120, 30, 87, 55,119, 84,
-181, 17, 55, 58, 94,136,235,134,104, 44,164, 84,228, 85,137,218,182,195, 20,204,113, 28, 3,150, 41,170, 1,231,172, 4,108,215,
- 70,247, 17,122, 33, 85, 85,144,167,130,166, 46,176, 80, 92, 93, 92,242,175,255,167,159,177,216,108,249,235,191,249, 53,182, 5,
- 74,182,236,183, 59,118,219, 45,161,239, 83, 75,133,103, 9,148, 52,211, 32, 68,131,227, 53, 72, 45, 80,178, 70, 53, 45,101,186,
- 69, 91, 10, 45,107, 60, 23,156,215,215, 43,190,127,117, 73,177, 91,155,240, 5,207,231,104, 62,195, 14, 39, 4,182, 36,114, 5,
-181, 20, 84, 93, 35,211, 74,141, 84, 2,195, 6,245,240,131,144,116,191,131,182, 96,122, 48,198,149, 22,170,209, 76,147,152,177,
-127,194,205,213,119, 4,142,197, 63,250,228, 67,214,139, 61,231,215,251,193,186, 99,105, 7, 41, 45,144,182,121,208,218,150,170,
-209,104,173, 80, 66,163, 49,106, 85,167,205,216,239,183, 52, 77,133,101,181, 72, 85, 96, 89, 53, 96,227,249, 2, 28,187, 83,110,
-186, 72,109,161,164,130,166, 49, 16, 3, 20, 69, 93,179,217,102,228,133,161, 0,149, 69,139,109, 7,140, 71, 33, 31, 60,249,125,
-190,250,242, 11,202, 98,195,249,229,115,238,110,174,121,246,238,123, 36,225, 20,129,226, 55,255,249,215,124,247,205,247, 56,163,
- 99,194, 56, 64,183, 37, 69,218,208,212, 80,230, 13,219,245,158,178,204,216,238,247,248,142,143,235,250, 4, 65,132,239,135,220,
- 44,175, 88, 46, 22,200,166,229,104,126,140,148, 54,101, 37, 88,109, 10,170, 74,144, 87,146,219,229,130,203,203, 75, 46, 46, 94,
-179,221,110, 24,197,230,178, 11,124,151,218,114, 77, 87,232, 71,140,156, 16,161, 28,170,218,120,191,171,170,160, 80, 37,223, 45,
-206,249,135,175, 94,225,185, 46,127,247,197,247, 68,241,152,159,188,247,132,124,183, 38,238,148,249,102, 52,153, 97,105, 11,180,
-109, 68,135,202,236,146, 84,155,113, 87,109,209,147,144,201, 56,161,109, 52, 74,219, 4,225, 1, 79,158, 60,225,250,230,142,253,
-126,207, 79, 30, 60, 37,142, 99,110,174,174, 73,162,128, 90,150, 20,157, 24,175,168, 74,146, 40,226,211,143, 62,226,155,175,190,
- 52,182, 26,225,114,115,115,131,146, 2,219,181,113, 67,159,214, 81, 20,117,195, 54,207,241,247,123,102,135,135,148,117,133,106,
- 74, 80, 45, 22, 38,179,184,109, 20,150, 2,223, 9,217,239, 82,194,112, 68,186, 47,216,238,115,138, 74,177,205,161, 40,107,138,
-235, 27,110,183, 55, 44,215, 27, 52, 22, 94, 16, 48,139, 34, 92, 63,228,245,197, 21,158, 31, 50,154, 76,134, 46, 29, 24,212,178,
-253, 40, 61,116,253,206,138,100,248,214,199,199,199, 67,186,213,114,185, 36, 73, 18,242, 60, 71,107,115,209, 4, 65,192,201,201,
- 9,117, 93,243,205,243,111, 17,142, 61, 92, 98,247,187, 60,179,211,211,195,120,191, 63,236,211,221,158,192, 51,225, 18,170,149,
- 84, 84,111, 41,201,251,174, 47,236,196, 77,155,205,198,240,197,187,117, 65,239,161,238, 21,218,247, 17,179, 67,168,204, 61, 11,
- 93,239,125,190,191,119,239, 59, 69, 33, 4, 77, 99,112,162,219,237,214, 8,201,148, 70, 91,250, 45,102,184,232,254,221,182, 5,
-162,101,224,199,199, 81,128,208,208,180, 13,117, 81,178,144,106,152,114, 88,150,197,118,181, 6,169,144,109,131,235,120, 40, 41,
-209, 74,152,108, 6,199,165,180,109, 2, 55,162,174, 77,231,230,219,147, 97,229, 96, 32, 58, 53, 62,129,137,128, 22, 26,207,119,
-112, 43,155,182,109,200,243, 12,219,129,188, 48,157,220, 59,239, 60, 99,185, 92, 81, 86, 57, 31,126,248, 19,126,254,243,159,243,
- 55,127,243, 43, 94,124,255, 18,203,245,112,189, 0,207, 11,134,139,119, 40,228,204, 60, 21,161,244,189,248,213, 55, 88,210,186,
- 40,105,165,121,175,122, 69,123, 31, 35,108,118,225,111,104,122,247,223,191,254, 61,220,164, 89,215,149,155,192, 65,205,155,203,
-179,191,212, 61,219, 25,246,213,126,224,118, 93,157, 25,229,175, 23,203,225,189,117, 93,151,182, 91,227,136,123, 49,180,171,213,
-138,187,187, 59,222,127,255, 3,190,248,135, 47,217,237, 55,236,247, 41,174,235,188,137,218,181, 11,150,155, 53,117, 35,135, 9,
-141, 33,173,165,248,142, 59, 76,112,250, 73, 86,223,185,107, 37,135,132,193, 30,182,116,124,124,108,180, 50,158,131, 35, 12,253,
- 45, 73,198,102, 58, 20,135,216,150,131,212,138, 48,244, 89,174, 55, 28,207, 79,241,125,143, 34, 75, 77,162, 95, 99,210,239, 54,
-233, 30,191,123,221,238,255,178,109,147, 64, 56, 26,141, 58,187,154, 41, 48,243,238,188,105, 59,221,128,112,108, 38,179, 3,162,
-182,101,181, 90,177, 94,175, 17,194, 30, 8,138,155,205, 6, 75, 41,154,178,226,108,126, 4, 82, 49,142, 13,208, 72,181,186, 35,
- 8, 58, 28,207,143,136,227,152,100, 52,194,178, 28,163, 25,169, 91,230,179, 67,202,166,161,172, 90,202,114, 7, 88,248, 65,130,
-231,249, 3,215, 32, 8, 34,202,178, 52,227,245,241, 49,155,172, 64,183,138,182,105,240, 3, 35,182,109, 42, 3,176,234, 87,124,
-174, 99, 10,192,155,155, 27,190,254,230, 75,158, 62,123,204,119, 47,126,224,250,110,133,110, 59, 74, 93,217, 16,120, 30, 85,217,
-160, 29,115,147,153, 76,250,170, 35, 41, 26, 75,223,205,237, 53, 77, 93, 16, 5, 30, 89,182,199, 79, 2,156,162,133, 70, 9,220,
-104,130, 23,143, 57,154,205,120,226, 5, 4,201,152,197,114, 77,189, 95,152,135,160,227, 59, 75,165, 81, 56,216,174,141, 70, 80,
-214,173,153, 46,137, 55,190, 87, 27,240,109,219,116,139,251, 13,186,205,113, 45,135, 39, 15,143,105, 26,155,203,187,181, 73,244,
-241,124,227,101,214, 22,173,173,105, 90,144, 6, 32, 70, 35, 20, 26, 69,100,219,200, 86,163,132,196,114, 21,241,200,199,166,197,
-193,176,218, 61, 92, 90,109,163,148, 17,188,212,117,139,106, 90,116,157,161, 91, 88,100, 41,109,219,114,117,117,205,102, 43, 64,
-155,124,227,249,124,142,101,195,102,115,139,109,181,216, 86,131, 45, 20, 81,224, 16,250, 30,227, 56,162, 21,150,201,218,237,173,
- 49,181, 68, 85, 53, 69, 86, 99, 80,246,130,208,137, 16,142, 98,145,175,113,241, 80, 45,228,105,142,146,130,186,150, 52,181,162,
-170, 36,101, 5,127,247,249, 55,172,246, 5,223,191,188,164,146,154,197, 42, 35,203, 21, 8,151,147,211, 67, 52, 9, 78, 50, 97,
- 93,187, 20,187,148,197,111,191, 66,107,201, 40,142,153, 29, 28, 49,155, 30,226,251, 17, 85,217,144,101, 5,121,109,243,171,223,
-125,207,249,229,150,217, 65,204,118, 87,243, 15, 95, 60, 71, 43,201,108, 18, 98, 11, 69, 93,101,216,150,232, 14, 47,176, 45,223,
- 96, 71,148, 70, 8,197,108, 18,161,218, 12, 89,231,200,202,162, 81, 2,173, 29,214,219,138, 47,190,120,206,108, 54,227,116, 62,
- 99, 60,158,144,101, 5,233,106,141,208, 83, 26, 41,209, 26,172,192, 38, 91,231, 36,211, 9, 19,103,194,199, 31,125,200,249,171,
- 31, 13, 15,223, 9,240,131,200,172, 79,218,130, 52,173, 88,175,151,164,219, 13, 69, 89,210, 86, 5, 79, 79,167,168, 50, 71, 54,
- 53, 40,141,146, 13,170,105,113,113, 76, 6,178, 31, 82,228, 21, 47, 94,190,166,168, 37, 74,120,248,181, 70,105,193,221,102,193,
-197,221, 5, 85,171,153, 78, 71,140, 38, 83, 26,169,209,216, 38,106,114, 60, 54,151,146,237, 18, 68,101, 71,193,218,155, 93,183,
- 99,254,236,190,202,238,247,231,227,241,120,216,205,110, 54,155, 65,136,150, 36,137, 1,224,116,130,185,205,102, 99,108,110, 97,
- 64,154,101,168,110,124,110,117,145,172,253,103, 65,104,216,109,182,198,194, 87, 55, 70,224,105, 59,248,142,201,124,239, 15,211,
-254,176,186,223,161,247,252,116, 33, 4,163,209,104,232,210,251,124,112,219,182, 13,253,205,245,134,113,118,255,245,189,151,122,
-191,233, 46,235, 46,230,179,191, 12,134, 0, 22,199, 97,146,140, 88, 46,215, 93,214,246, 27, 59,149, 16, 2,203, 49, 35,235, 86,
- 74, 92,223,235,152, 6, 53, 81, 28,224, 57, 65, 71,197,115,177, 3,223, 20, 27,182, 48, 49,187,142, 67, 81,229, 6,217, 42,165,
- 97,252, 7, 30, 74, 65, 16,120,132, 97, 55,222, 87,146,245,170, 96,187, 79,153, 78, 70, 4, 65,192,122,149,178,223,110,217,174,
- 55, 38, 31, 65,195,120, 50, 37, 73, 18, 60,219, 97,191,223, 97, 9, 77,224,185,120,142, 77, 83,149, 60, 56, 59, 33,207, 50,150,
-119,183, 8, 13, 15, 31, 61, 99,187,221, 18,143, 71,131, 16, 79, 41, 69, 24,117,244, 57,105, 14,123, 91, 88,104,109, 58,116,161,
- 52, 22, 10,161, 37, 72,129,110, 37,154, 55, 72, 91,221, 95,254,154, 46, 35, 65, 15, 58,131, 30,226,114,191,235,236, 47,201, 82,
-118, 23,147, 54,118, 53,163,181,176,128,123,130,198,110,135, 29,134, 1, 69, 81,116,168, 95,239, 45, 75,160,239,251,172, 22, 11,
- 28,199,225,112, 54, 39,140,252, 46, 85,109,204,229,229, 53,159,124,242, 17,191,248,197, 47,184,190,185, 28,216,250,125,161, 81,
-150, 37,187,221,142,221,222, 36,204,149,181, 41,156,122, 26, 93, 63,153, 9, 61,243, 92,245,128, 32,147, 38,231,224,185, 46,227,
-241,184, 11,120,114,186,201, 85,138,107, 59,100,217,158,253,126,203,126,111,145,157,191,166,170, 26, 38,211, 3, 94,189,190, 0,
- 75, 80,140, 70,120,158, 99, 28, 13, 64, 81,100,102, 37, 8,212,221,152,189,127,173, 92,215,197,245, 60,194, 40, 34, 25,141,152,
- 76,166, 88,174, 67,232,249, 67,158,122,185,221,178, 88,175, 77,113,105,187,216,174,153,102,229,101, 53,196, 19,247,239, 71,236,
-251,104,223,199,238,252,248,190,239,179, 90,173,112, 44,193,126,191,103, 20, 69,204,166, 99,180, 18, 60,126,244,144,231,223,125,
-111,172,129,186, 34,140,124,236,214,195,113, 21,117, 87,252,222,199, 9,187,182,153,146,229,121,193,110,155,226,219,150, 89, 55,
- 99,172,171,142,235,242,232,201, 59, 40, 52,155,205,142,166,169, 8,131, 0,203, 18, 88, 40, 86,139, 59,126,253,235, 95,243,241,
-167, 63,229,232,104,198,229,213, 13,109, 99,154,155, 48,240,168,138,146,217,120,108, 62,147, 22,248,190,135,155,167,228,121,138,
- 86, 53,104,129, 37,224,248,240,136, 36, 48, 83,147,218,179,112, 30, 61,123,135, 60,221,225,123, 14,145,235,130,110,105,154,138,
-103,179, 49,227, 40,224,226,226, 18,169, 4,218, 50, 60,229,170, 21,224,120, 93, 96,138, 70, 54, 45,201,164, 35, 61, 53, 13,109,
-217,114, 52,154, 18, 71, 1,187, 85,137,109, 73,210,253,138,229,114,203,233,241, 25,163,233, 9,225,243, 87,124,254,205, 23, 8,
-105, 33,164,241, 11, 34, 91, 68, 43, 65,218,104, 44,148,101, 20,222,173, 22,168,198,132,166, 52,173,234, 20,234,134,160, 99, 56,
-198, 45,178, 99,175,235, 14,140,161,235, 22, 45,141,130, 55,203, 50,252,112, 66,171, 32,138, 71,228, 89,195,114,189,230,224,224,
-103,156,157, 77, 40, 86, 43,158, 60,121,198,110,159, 97, 99,115,122,250, 0, 27, 97, 72, 81,190, 24, 42, 81,219,105,176,132, 7,
- 66, 81,213, 25, 85,185,167,182, 52,109, 81, 32, 90,137, 46, 27,194, 32,160,149,166,162,154,140, 70, 20,179, 25,113, 52, 98,179,
-217, 49,158, 29, 82, 46,183, 68,163,128,179,167, 30,182,151,208,124,255,154,187, 23,119,204, 15,207, 56,121,242,148,203,203, 87,
-228,141,199,200,159, 49,142, 15,209,152, 67, 98, 93, 72,246,205,158,171, 77,133,192, 50,107,146,188,164,168, 5,155,125,205,120,
-114, 76,182,223, 18,197, 83,174,174,239,240, 29,197,159,252, 15,255,152, 44,223, 16,122, 22,129,103, 99,107, 1,218,194,119, 61,
- 44,203,233, 34, 56, 53,194,106,136, 71, 49,227,192,193,117, 28, 84,165, 81,142, 96,119,183,227,203,175,191,226,225,163,103,252,
-179, 63,250, 5,249,242,146,186, 74, 25,143, 15,140,232,171, 85,120,129, 79, 90,212, 72, 4, 87, 87, 55, 28,159,156,112, 58, 63,
- 6,224,226,242, 10,161, 27,218, 50, 35, 72, 38, 52,117, 70, 83,151,216,162,101, 58, 10,216, 23, 21,233,234,150,147, 79,158,224,
-168, 8, 71, 24, 60,173, 97,183, 51, 4, 52,120, 94,194,197,205,130, 87,151,231,172,182, 57,184, 1,110, 24, 35,220,128,203,235,
- 11,188,200,230,167,191,255, 25, 85, 85,113,117, 99,172, 95,194,182,200,138,130, 77,150,114, 56,155,147,231, 6, 78,226,119, 73,
- 99, 97, 24,154,232,204,142,226, 54,155,205, 56, 59, 59, 51,107,147,213,138,215,175, 95,179,221,110, 7,158,118,223, 61, 42,165,
- 56, 56, 56, 24,136,111, 73,146,176,218,110,176,187, 67,174,191, 56, 70,163, 17, 66, 24,142,251,201,252,152,237,118,107, 20,201,
-251,253, 91,120, 86,128, 86, 43, 36,114,184,200,147, 36, 25, 58,235,229,114,249, 86, 88, 71, 47,198,234,247,216, 69, 81, 16,220,
-235, 26,122, 10, 90,239, 75,151, 82,146,166,233, 91, 62,117,231, 94,118,122,223,253,197,113,204,213,197, 53,201, 44, 30, 46, 41,
-221,234, 1, 34, 51, 26,141,168,155,114,248,185,250,206,141,238, 18,108,219,150,233,236,144,195,195, 67,211,157,110, 54,104,173,
- 9, 60, 31,132,141,141,177, 71,185,174,139, 66, 12,224, 16, 3,179,177, 88,173, 22, 38,199,186, 62, 36,246,189,225,210,232,133,
- 94, 8, 97,168,132, 81,100, 14, 68,161,186,160, 32,133,106,107,130, 48,193,234,252,221,167,103, 39,188,252,225, 71,242,162,226,
- 95,253,171, 63,229,252,242,134,219,219, 5,139,229,218,248,177,187, 53,133, 82,138, 86,214, 67,183,220,187, 14, 90,215,235,198,
-206,230,245, 20,150, 73,226, 83,210,236,121,101, 93, 25,190,188,197,208,205, 14, 97, 35,247,248,242,189, 95,189,191, 96,104, 76,
-243,243,182, 67,193, 29,138, 39, 41,223, 60, 23, 97, 24, 14, 32,153,233, 56, 25, 72, 97, 69, 81,176, 88, 44,134, 85,139,153, 46,
- 37, 60,120,240,136,239,190,125,206,213,213, 13, 71, 71,199,124,253,245,215,102, 58,149,110, 7, 47,126, 85, 85,216,142,195,225,
-225,156,135, 15, 31,226,120,157,197,173, 44, 6,253,132,214,154,168,187, 20,223,252,156,166,168,104, 58,252,112,154,166,131, 38,
-229,245,235, 31,137,131,112,112,112,236,118, 59,106,105,158,255, 7, 15, 31, 82,151, 57,126,100, 68,113,125,150,128, 16,130,166,
- 52, 90,138, 56,142, 7, 17,101,127, 81,246, 19,129,190, 40,222,101,105,135, 96,110, 6,209,232, 0, 56,106, 91, 86,139,229,192,
-130,232, 11,159,254,181, 79, 58, 93,140,136,205,127,115, 29, 7, 75,155,157,251, 40, 54,122,153,170, 44, 57,127,245, 26,215, 11,
- 24, 31, 76,209, 74, 97, 89,112,116, 48,227,234,230, 22, 89, 43,226,120,204,129, 31,226, 5, 49,121, 81, 33,101, 79,173,179, 8,
-194, 16,180,153, 96, 72,173,153, 76, 38,216, 2,234,167, 79,217,237,118, 93,170, 96, 51, 20,220,219,205, 30,215,179,152,141, 71,
- 4, 81, 12,150,197,111,254,235,127,225,221,119,222, 51,186,145,155, 5,155,245,146,216, 79,104, 69,219,105,102, 90,146, 56,228,
-232,232,136, 48,120, 64, 89,165,180,173,209,236,204, 15,143,141, 51,163,169, 16,186, 38,205, 11, 28,223,247,241,252, 25,178,174,
- 64,128, 43, 92,146,192,167, 41, 83, 92,165,152,143, 2,110, 87, 91,164,246, 16,182,143,229,216,224,154,157,184,210, 10,199,179,
-201,203,130,241,216, 67, 53, 53,182,173,135,232,188,179,147, 67,222,123,246, 79,176, 68,197,241,145,145,252, 39, 98,132,227, 60,
- 99,118, 60,226,245,249, 5,235,155,148,180,200,160,201, 81,173, 33, 11,217, 94,136, 23,153,113, 93, 16,198, 44, 55, 45, 69, 35,
- 73,243,138,151,207,191,193, 81, 53,159,126,242, 1,118, 91, 15,251, 58,215,117,176, 68,199,151,246,108,242,125,131,223, 85,125,
-251,206, 10, 83,237,187, 36, 32,209,176, 90, 45,120,116, 28,113,123,179,167,204, 75,180,208, 64, 72, 85, 40, 22,183, 55, 92, 95,
-223, 18, 77, 78, 41,100,128,210, 13, 81, 96,177,221,221, 18, 88, 25,117,219,130,149,225,122, 54,109, 46, 81,178,225,209,217,156,
-171,215, 47,105,164,225, 40,223, 45, 86,221,131,169,104,168,249,183,255,215,191,229,159,253,241,255,200, 7, 31,127,194,221,111,
-126,203, 50,221,241,242,242,156,100, 54,103, 60,159,114,179, 94,115,113,179, 96, 20,197, 52,218, 54,163, 20,223, 99,187,221, 18,
-116,126,104, 63,242, 41, 42, 51,130,178, 28,129,227, 78, 40, 43, 31,180, 68, 54, 26, 71,128,208, 14,117,217,176,223,238, 56, 57,
- 76, 80,117,142,111,107, 28, 33, 16, 2, 84,155,226,216, 1,201, 56,166,110, 90,194,241, 1, 90,182,200, 58, 55, 23, 64, 48, 98,
-179, 94,179, 88,155, 11,232,235,111,191,101,187,251, 23, 88,202,232, 29,238,214, 59, 66,215, 98,159, 21,184,126,133,229, 90, 84,
- 85, 75, 28,199,228,121, 65,150,101,236,118,107,202,108, 71,171,148,225,244, 91,146, 70, 91,236,119, 25, 71,227,128,227,207, 62,
-161,168,106,138,253,142,211,113,196,118,113,195,209,193,140,245,122,107,112,148, 7,135,128,249, 30, 8, 69, 60,142, 57, 56, 58,
- 96,114,114, 6, 65,200,215,207,191,227,246,230, 2,219,117, 25,197, 35,190,255,225, 71, 38,147, 9,211,131, 67, 46, 46, 46,184,
- 91, 46,241,195,152,100, 60,226,234,230, 22, 33, 76,126,184,237,122, 4,158, 57,180,227,216, 80,224,206,206,206,120,231,157,119,
-200,178,140, 23, 47, 94, 12,187,235, 30,175,218, 31,216, 61, 9,174, 63,212,166,211, 41, 82, 43,252,242,205,152,221,178, 44,124,
-199, 69, 40, 77,163,140, 42,120,177, 88,144, 36, 9,174,101,227, 90, 54,173, 54,161, 31,117,119,249,182,149, 1, 95,140, 70,163,
- 65, 16,183,219,237, 40,203,242, 45,132,236,213,213, 21,190,239, 15, 95,215,171,146,123,236,106, 93,215,120,142,139,118, 21,104,
-134, 78,101, 8, 47, 17, 22,142,235, 25,110,123,183,183, 68, 42,226,209, 20,199,182, 65,181,216,142, 17,165,106,173,105,181,121,
- 13, 76,103,188,199,118, 76,232, 69, 83,153,207, 92, 83,213,204,231,115,234, 60,195,115, 92,182,219, 53,227,241,152, 48,244, 9,
- 2,143,162,168,134, 0,151,241,120,140,235,251,180,141,100,148,140, 88,175,215, 3,171,221,178, 44, 60,219, 27, 38, 12,253, 74,
- 33,207,115, 67,210,171,106,100, 31,189, 89,215,160,117,103, 25,116, 16, 74,115, 48,153,114,112, 56,163,204,171,225, 53, 62, 57,
- 57,225,230,118,197, 15, 63,252, 64,148, 76,168,235,146, 52,221, 13, 29,175,108, 25, 14,126,207,181,209,174,141,108,107,146,209,
-168,243,185,215,120,129, 79, 81,102, 88, 8, 67,188,235,210,206,130, 32,192,178,161,172, 42, 26, 41,169,186,206,124,183,219, 13,
- 0, 28, 19,207, 43, 7,149,180,219,214, 84,149,185,212, 93,199,188,190, 85, 93,153,179,203,115,209,150,192,119, 76,145,183,219,
- 25,103,196,108, 54, 35,203,178,161, 0,171,170,202,172,142,180,224,249,247, 63,112, 60, 63, 29,136,119,175, 95,191,230,230,238,
- 22, 47, 48,157,228,103, 63,255, 25,255,246,255,248, 63,141, 88,211, 51, 93,119,213, 21, 45,251,125,198,205,221,173,241, 81,183,
-213,160, 94, 31,208,193, 61,113, 80,118, 89, 13,158, 59, 76, 31,122,241,231,201,201, 9,254,128,255, 53,133,138, 27,248, 76,221,
-217, 48,254, 78,179, 29,109,219, 48, 31, 31,179, 88, 46, 9,195,144, 95,252,147, 63,228, 47,254,242, 63, 17,197,193,144,196,214,
-219,221,250, 85,145,239,251, 28, 31, 31, 51,154, 78,135, 66, 87,107,205,213,229, 13,235,245,154,178,106,152,207,231, 84,117,203,
-122,189,101, 60,153,226,120, 30,101,110,200,141,179,217,204,208, 30, 59, 18, 93,154,166, 88,170, 97,126,120,100,138,219,214, 36,
- 40,182,117, 67, 93,217,228, 89,193,108,118,196,102,187,229,197,139, 23, 60,121,242,148, 70, 73,178,180, 34,142, 99, 46, 55,215,
-104,219,161, 40,107, 14,189,176, 91, 93, 41,182,219, 45,179,217,148,125, 94, 16,120,150, 73, 70,172, 27, 82, 37,121,242,244, 49,
- 82, 54, 3,210, 89,107, 49,216, 82,155,166, 33,140, 18, 19,237,221,167, 4,122,134,116, 23, 6, 30,117, 89, 18, 5, 14,190,107,
- 83,213, 37,101, 89, 18,118, 32,166,186,110, 8, 3,135,192,117,105, 45,179,166,246,195, 0,207, 15,209,117, 65, 83,236,105,219,
- 18, 7,213,226,216, 2, 9, 84,117,137,227, 59,132,129, 75,236, 90,180, 77, 67, 99, 43,170,108,199,245, 38, 67,187, 49, 34,156,
-160, 45,147,131,235,251, 46,130, 22,217,228,212,205,158,108,187, 67,215, 26, 23,139,131,228,140,211, 7,103,200,250, 6,207,147,
-180, 85, 67, 93,108,168,219, 26, 95,120,188,255,244,132,247,159,158, 17, 58, 33,223,126,247,156,197,110,197,174, 86,164,117,192,
-239,190,249,129,108,151, 27,104, 69,154, 49,154,204,184,189,221,178, 77, 91,174,175, 55,156,255,248, 61,239,189,243, 9, 7, 7,
- 17,155,245, 45,201,120, 68,211, 74,100,219, 80, 54, 37,147, 40, 33, 12, 99,180, 13,142, 39,121, 48, 63,227,240,248,142, 87,215,
- 63,226,219, 9,158, 35,184,186,189, 33,223, 92, 99, 55, 54,171,197,154, 86, 74,242, 42,199,178, 53, 85, 94,208, 52, 45,113,229,
-112,112,246,174,217, 61,213, 85, 55,154,180,216,237, 54,124,245,245,239,216, 76, 60,178,197,154, 71, 15, 30, 83, 86, 13, 69, 91,
- 35, 44, 7,199,243,153,205,102, 40, 97, 14,194, 26,155,170,110,168,164, 34, 26, 79, 73,139,154,151,231,151,140, 14, 14,120,247,
-189,159,144,103, 21, 89,154,209,202,146,237,174,100,189,186,165,200, 50,132, 48, 15,124, 16, 71, 72,221,242,234,226,146,120, 60,
-162,150,230,128,240,195, 22, 95,204, 25,197, 17,182, 29,144,101,123, 28, 45, 57, 57, 62,227,217,227, 39,120,110,195,200,155,161,
- 84,105,144,174,174,131,236,186, 18,199,106,113, 19,143,172, 40, 8, 2, 15,219,243, 8, 52,120, 65,192,212,115,120,104, 37, 28,
- 30,157, 83, 93,175,184,185, 91, 96,183, 5,148, 41,170,202,112,108, 97, 82,202,178,146,125,190,103,179, 93,226, 89,130,233,120,
-196,217,241, 33,163, 81,204,201,225,204,216, 18,109,151, 32, 74,144, 8,124,215, 1,203, 37, 30, 77,169, 74,201,205,197, 43,236,
-182,224,193,209,148, 47,191,252,130,116,159,243, 79,255,233, 63, 67, 74, 69, 81,213, 92, 94, 94,226, 37,123, 14,142,207, 56, 57,
- 61,229, 98,185,230,252,242, 21,185,172,152, 30, 27,190,186,107,155, 49,117, 43, 53,216, 38,247, 59, 76, 98,148, 22,131,160,167,
-223, 65,219,182, 24, 46,109,207,243,134,221,224,110,183, 99,177, 48,130,199,190, 67,234, 47,215, 36, 73,222, 34,142,245, 23,120,
-207, 15,111,171, 26,108,235,173,184,212,126,119,109,124,225,166,171,217,170,237, 64,149, 27,188,185, 74, 17,197, 17, 65, 20, 14,
-211,128, 60,207,135,164,183,190,179, 25,118,219,221, 63,223,103,184,247,221,119,255,239,189,226,190, 23,216,253,255, 41, 98, 74,
-240, 70,184,165, 52,179,201,148,116,187, 27,168,113, 82, 75,220, 46,249, 42, 77, 83, 92,203,172, 20, 60,225, 12,221,146, 41,218,
-125,227,196,144, 18,109, 59,195,161,213, 79, 26,234,186,239, 50,192,237,214, 5,232,122, 64,199,218,142,233,212, 87,219, 29,181,
- 52, 19,136,170,170,144,209, 27, 4,168, 2, 2,207, 39, 47, 11,138, 52, 27, 20,228,190,107,163, 90,243,207,113, 98, 56,228, 40,
-129,231, 26,199,192,201,124, 78, 93,183,188,122,245,138,195,249, 49, 79,159, 62,197,245, 2, 46, 46, 46,176, 44,211,209, 23,133,
-241, 88,239,118,251,238,255,199,162, 44, 10,138,110, 84,111,119,202,234,205,106,109,216,242, 93, 7,103, 59,214, 91,118,191,160,
-163,239,221, 23, 23, 74, 41, 41,235,210,104, 49,108,167, 27, 47,119, 59,245,123, 52, 55,199,113,208, 66, 35, 91,141,176,204,234,
-197,115, 3,132,165,145, 77,253,223,141,245,123,151, 68,239,167, 55, 59,241,138, 86,182,198, 2,213, 72, 2, 63, 34, 25, 69, 60,
-124,248,208,160,115,187, 11, 84,116, 63,115, 89, 55,221,206, 62, 31,180, 2,158,219,190, 53,109,232,159,119, 99,173,202,135,139,
-181,159, 60, 56,142,195,201,201, 9,143, 31, 63,102, 28, 71,228,121, 74, 52, 74,186, 2,180, 67, 20, 91,130,135,143,206, 72,243,
-156,233,100,204,195, 71,143,185,189,189,230,100,126,204,117,151,149,224,217, 14,120, 14,105,150,145,231, 21,174,107, 13, 43,178,
- 85,135,185,117, 93,215,156, 87,182,249,188,218,174, 51,172,190, 14, 15, 15,217,165, 25, 30,224,121, 1, 74,181,236,118, 59,198,
-201,136,200, 15,168,171,138, 34,221, 51, 59,152,112,112,112,128,210,138, 40, 49,113,205, 74,154,223, 35,181, 73, 27, 12,130,144,
- 48,137,105,165,164,174, 77, 0,142,101, 89, 76, 15, 15, 77, 80,140,213, 97,116, 11,115, 73, 11, 91, 13, 90,153, 52,207,184,187,
-187, 99,148, 4,180, 53,156,159,159,211, 86, 37,190,239,178,221,165,166,144,214, 54, 81,148,152,231,197,179, 81,109, 75, 83, 75,
-180,176, 72, 18,195, 64,177,109,193,147,167, 15,184,189, 89,177,223,167, 28, 76, 19,110,239,150, 88,214, 24,180,100, 54,155,118,
-186, 10,195,200,175, 91,137,101, 71,180, 82, 25,178,164,176,140,101, 49,219, 44,240,163,208, 60, 56,117,133, 23,141, 73, 34, 15,
-215, 86,208,212,168,182,192, 18,138,197, 98,193,245,238, 28,220, 49, 82, 56,104, 5, 65,232, 83, 22, 91, 38,163,136, 36,118, 41,
-243, 2, 71,187, 56, 56,120, 66,227, 57,135, 56,122,143, 45, 44, 60,215,194,115,109,234,218,168, 94,221, 46, 17, 76,150,123,158,
-156,133, 60,125,247, 41, 47, 46,150, 92,173, 21,145,111,230, 62,109, 83, 81, 99, 19, 68, 30,155,117, 78, 81, 64, 20, 29, 35,229,
- 13,219,157, 70,201,138,253,190,196,243, 67,210,188, 32,207,204,136,227,116,126, 74, 18,133, 20, 77,205,182,145, 92, 92,222,178,
-221,110, 81, 40,220,192,163,170, 54,220,221, 46, 57,223,221, 18, 8,159, 42,175,120,240,248, 17, 15,230,103, 28,204,166, 20, 89,
-142,101,217, 96,199, 16, 24,165,233,182,174, 24, 79, 70,164, 89,206, 39, 79, 30,113, 56, 61,225,234,213,183, 20,219,148, 15,223,
-255,125, 38, 19, 31,101, 9, 90, 97,118, 99,121, 81, 80,181,146, 40, 62,160,104, 28,102,135,143,216,167, 21,191,253,251,175,120,
-241,195, 21, 55,171, 61,187,125, 70,211, 72, 54,171, 37, 73, 20, 18,123, 13,227, 56, 98, 54,158,241,224,228,167,140, 70, 35,198,
- 99, 35, 94,188, 91,238,248,223,255,221,159, 33, 75,104, 26, 11,101,217, 70,233, 25,152, 46,205,214,138,182,170, 17,182,100, 52,
-154, 48,155, 29,161,101, 74,158,109,208, 77,137,109,105, 67,117, 3,148,146, 20,181,196,209,128,227, 97, 59, 62, 85, 90,144,239,
-247,232,180, 68, 59, 17,174, 61, 2,173, 88, 46,239,248,252,243,207,209,229,158, 98,183,166,206, 83,218,182, 70, 88, 46,181,108,
-113, 3,155,211,147, 67, 62,249,201, 7,156, 30, 78,137, 60, 27,215, 6, 7,137,235, 57,108,179,148, 50,223,225,248, 1,174, 37,
- 81, 82,225,169,134,178,200,185,189,120,205,163, 73,128, 27, 5, 60,121,240,144,231,223,127,199,110,183, 97,124, 48,163,206,114,
-118,249,142, 81, 20,112,181,184,230,251,243,151, 44,118, 41,203, 52,103, 50,155,161,108,155,229,110,197,131,249, 25, 94, 16,116,
- 54, 28, 11,223, 11, 9,131,150,162, 50,163,245,126,207,178, 89, 59, 7, 0, 0, 32, 0, 73, 68, 65, 84, 61, 78, 98,115,169, 57,
- 14,243,227, 67, 67, 71,171, 42,170,202, 20, 94,247,119,209,189, 50,248,254,184,185,239, 84,122, 79,111, 95,133, 43, 12, 4,201,
-113,221,142,165,221,187, 13, 76,210,158,234,246,211,149,172,144, 66, 26,104,141,106,192,210, 56,174, 53,140,214,251,176,150,254,
-226,239,133,110,253, 37, 49, 26,141,134, 75,227,126, 48, 74, 37,223, 20, 9,253, 97,236,121, 30,142,101, 15,136,211,251, 72, 80,
-251,222,136,184,239,140, 47,207,207,137, 67, 67, 69, 43,139,218,164,164,117, 29, 90,175,164,239,119,242,125,247,119,255,240, 87,
-104, 44, 97,155,176, 11,203,233,254,178,186, 72, 98, 9, 66,224,119,123,230,188,172,186,142, 57, 24,214, 21, 10, 69, 81,149, 38,
-183, 62,246,135, 14,208, 92, 92,166, 59,234,109,132,145, 31, 96,161,168,138, 18,219, 50,185,213, 85, 81, 18,120, 1, 15, 30, 60,
-224,229,143, 23,131,144, 74, 42,139,235,235,107,130, 32,224,248,228,136,170, 46,184,186,186, 50, 43, 13, 47,164,105,149,185,212,
- 60, 15, 41, 27,234,186,164,105,205,225, 10,138, 60, 79, 9,227,128,186,182, 40,243,130,170,169,105, 91,186,224, 26,135,100, 20,
-147,102,249, 91,208,154,251, 1, 56,247, 35,104,117, 23, 33,119,255, 82,183,109, 27, 37,212, 80,232, 1, 72,173, 16,157, 16,106,
-226, 78,217,111,119, 6,217, 27,249, 4, 81, 60,140,221,247,121,129,112,108,118, 89,138,235, 26,187,213,235,215,175,201,246, 41,
-127,252, 47,254, 57,191,248,163,127,202,239,126,247,187,161, 40,232, 47,237,222,247, 61,154, 8,162,192,195,181, 29, 92,199,250,
-239,128, 69,253,218, 71, 40, 53,232, 60,122,239,119,175,255,144, 82,114,126,126,206,249,249,185, 1,250,220,139, 71,141, 18,147,
- 87,144,140,199, 93,108,177,160, 40, 10, 78, 78, 78,184,190,190,166, 44, 10,130, 48,100,215,185, 35,206, 78,231,204,231,115, 38,
-211, 41, 82, 74, 86,171, 53,150, 54,172,117,180, 53,184, 9,188, 32, 68, 41, 88,173, 86,228,249,154, 56, 25, 99, 11, 65, 28, 70,
-230,231,183,204, 20, 45, 14,125,118, 91, 3,133,113, 29,203, 92,234,109,205,233,201, 49, 55,194,252,126,215,247,136,146, 49, 18,
-205,126,151,177, 88,174,217,167, 57, 8,219, 76,164, 59,109,141, 84, 22,199, 39, 7,236,210,162,115,130,152, 88,109,215,117,201,
-203, 6, 97, 59,108,247, 41,182, 45, 76,112, 87,146, 80, 57, 22,139,245, 10,219,182,169,235,202, 76,155,148,194,243,156,161,224,
-119, 3,159,213, 98, 7,155, 13, 7,211, 41,190,235,209,122, 14, 71,135, 19,148,108,120,249,227, 43,234, 70, 98,219,130,237,182,
-229,209,163, 51,122,249,154, 35, 44, 3, 42,116, 28,234,198, 76,141,132, 37, 12, 7, 98, 18, 57, 8, 75,209,186, 22,218, 9,152,
-140, 34, 66,207, 66,151,123, 44,221,114, 52,141, 25, 77,102,108,107,139,197, 23, 63, 80, 75,192, 54, 35,136,178, 44, 57,152, 30,
-114,118,114,196,244, 32,162,173, 90, 44,105, 99, 73,205,114,181, 37,114, 37, 31,189, 63,194, 34,167,173,242,142,237,110,225,162,
-113,164, 6, 9,187,205,146, 96, 20, 34,112, 89,222,254,200,127,251,237,107,238,178,154, 40, 58,164,172, 26, 60, 63, 98,183,219,
-115,144, 56,220, 92,175,137,130, 49, 31,189,255, 41,119,183, 27, 82,223,226,242,226, 5, 87, 87, 33,235,237, 10,203,114, 88,220,
-108,248,250,171,111,169,243, 10,101,217,220,237,118,220, 21, 45,155,204, 84,255,187,253,134, 34, 91,242,167,255,252, 99, 30,125,
-246, 41,186,110,217,110,183,156, 61, 58, 51,222,218, 36,224,246,234, 26,173, 44,182,169, 36,171,106, 14, 14,142,168,182,165, 97,
-163,227,240,206,179, 15,120,252,232, 61, 22,175, 94, 17, 69, 30,117,107, 83, 43,133,178, 5, 74,107,242,198,116,121, 81, 18,243,
-227,235, 75,164,178, 80, 74,112,254,250,134,230, 98,203,126, 87, 50, 59, 56, 97, 54, 19,124,251,205,151, 60, 60, 61,228, 95,255,
-233, 31,243, 71,191,248, 67,124,209,224, 8,133,103,153, 3, 33, 12, 19,176, 3, 46,239,246,252,249,127,252,143,252,120,177, 33,
- 28, 31,225,133, 83,100,107, 62,136, 89,182,195,119,133, 97, 76,107,193,118,183,231,118,177, 33,112, 37,158,237,226,132, 9,161,
-235, 80, 55, 5, 90, 73,226,201, 8,173, 4,141, 84,160, 5, 10,195,137, 23,194, 92, 4,105,186, 38,167,102,113,119,195,217,201,
-156,211,227, 57,158,152,145,110, 19, 34,215,140, 11,109, 47, 52,241,171,180, 68,190,195,116, 50,194,113, 61,146, 36, 96, 28, 7,
-164,251, 21, 89,145, 50, 25,197,236,114,195,200,118, 28,139,172, 40,217,109,214,172,215,123, 22,215, 87,108, 31, 30,147,103,123,
-226,100,204,201,217, 25,181,108, 57,191,190, 97,185,222,113,252,224, 33,110,156,240,231,127,243,183,124,254,229, 23,124,250,179,
-159, 51,125,240,144,172, 44, 89,110,205, 56,245,252,234,146,208, 51,228,186, 70, 73,118,219,148, 52, 77,169,154,118,128, 66, 72,
- 41, 7,104, 70,150,239,241,125,159, 44,203, 88, 44, 22, 76,103, 71,195, 56,218,228, 50,231, 3, 88,166,183,109,217,247,108, 72,
-125,199,212, 31,204,158,227,118, 34, 40, 3,154, 17,247, 58,106,107,160,150,217,111,184,228,157,175, 57, 8, 2, 51, 81,192, 76,
- 18,250,253,254,125, 16, 77,255,251,250,196,172,126, 58,208, 11,156,140,119,216, 25, 46,223,254,251,246, 73, 93,125,183,127,127,
-180,218, 95,238, 70,133,107, 81,150, 37,235,205,142,249,145,161,180, 13,241,173,247,236,117,174,215,197,130, 98, 48,171,253,100,
- 64, 41,133,213, 93, 2, 77,243,102,223,218, 43,231, 93,215, 53, 72,100,169,169,171, 6,169,205,136, 21, 33,240,132,121, 94, 93,
-207,195,233,138, 0,186, 11,206, 80,222, 90,202, 42, 71,116,224,141,222, 1,224,121, 30,109,211, 80,180, 25,150, 5, 85, 94,226,
- 59, 30,161,103, 49, 29, 79,208,242,181,153, 80, 96, 49,155,153, 11,226,230,230,134,209,100,108,226,159, 61,143,186, 46,177, 44,
- 51,225,177, 16,131, 30,194,118, 29, 34,219,216, 4,233, 34, 88,123,127,118, 20, 7, 52,141,109, 86, 85, 82, 82,118, 1, 45, 77,
-251,134,125,223,235, 46,250,215,219,243, 60,154,170,238,222, 23,253,214,133,223, 23,137, 18, 51,218,118, 58,130, 92, 81, 24,171,
-101, 20,250, 36, 73,196,118,189, 25,158,133,126, 12,222, 23,149,211,233,148,219,219, 91, 99,255, 75, 38, 56,174,197,203,151, 47,
-121,247,221,119, 57, 61, 51,190,238,223,254,246,183,111,156, 12, 94, 71,172, 19,130, 36, 25, 99,219, 35,210,221, 30,199,126,195,
- 61,232,245, 0,253,170, 33,219,237,134, 75,188,247,238,247, 23,183,235,186, 60,121,252,184,123,198,212, 91,207,174,137,181, 13,
- 57, 59, 59, 27, 68,122,227,209, 8, 97, 89,156,158,158,226,186, 62,183,183,183,168, 70, 14,223, 51, 77, 83, 51,157,234, 10,194,
- 32, 8, 88,175,183, 4, 81, 52,172,195,250,181,212,120, 60, 54, 83,161, 46,182, 54, 8, 2,195,137, 8, 3,162,192, 27,136,120,
-126, 87,176, 41,109, 38, 8,155,205, 6,209,229, 19, 20,101,205,247, 63,188,100, 58,157, 50, 59,154, 67,199,145,184,186,189, 99,
-187,223, 81,183,230, 34,206,242,220,136, 40, 80, 93,225,106,208,227, 90,107, 83,132,217, 22,121, 89, 48,106,130, 97,197,227,216,
- 2,215,247,200,247, 57, 77,219, 34,165,160, 41, 10,108, 11, 68, 28, 19, 36, 17, 46,224,121, 59,211,140,248, 62,161, 31,160,101,
- 67,232,121, 76, 70,198, 26,253,253,203, 31, 9, 66,143,235,235,213,155,179, 71, 74,147,204,103,187,212,128,214, 70,208,105, 91,
-150, 89,203,254,226,179,143,185,188,190,101, 87, 24,187,134,239,216, 40, 89,163,235,146, 48,112, 40, 43,137,235, 89,157, 82,181,
- 69,217, 22,182,235,225,162, 65, 43,100, 45, 41, 10, 99,113, 65,107,198,193, 8,199,210,232, 90, 35, 44,143,100,124,128,171, 44,
-218,202,228, 68,219,194, 33, 14,141,208, 71,161,153, 79, 35,110,214, 75,138,166,226,248,100, 78,221, 60,199,198, 53,100, 33,207,
- 70, 43,101, 48,163,150,205,119,207,159, 19, 34,144, 69,193,175,127,249,154,186,202,105,100,193,227,167,115,194,196,229,217,179,
-103,157, 66,116, 79,147, 73, 38,135, 71,156,158, 28,112, 26,207,120,113,189,227, 55,159,127, 71,219,104,162, 32, 33,137, 15, 56,
- 57, 61,229,135,239,190, 34, 45,183,220,220, 89, 56,158, 77, 28, 5, 92, 95,222,152,200,209,189,226,219,151, 43, 14,143, 78,201,
-228,142,221,110,195,200, 73,216,109, 42,190,253,230, 21,101,101, 98, 70,191, 63,191, 49,152, 88, 37,105,149, 68, 91,102,151, 51,
- 30, 39, 6,107,121,116,194,233,201, 3,142,207,158,113,112,252,132,221,159,253,191,252,240,250,150,147, 7, 15,153, 78,230, 68,
-225,136,166,209, 76,146,152, 58,187,197,209, 37,170,169, 72, 60,135, 60,219,163,132, 75,236, 39,252,244,147,159,112,121,251,119,
-216,110,132, 16, 49,173,174, 80,150,166,170, 11, 44,215, 69,219, 80,215,146,219,213,150, 47,190,125, 65, 18, 58, 68,158, 64,202,
-130,195,131, 41,182, 80,104,213, 50,110, 77, 80,138, 22,130,241,116,134, 45, 36,170, 35, 62,105,215,194,149,154, 64, 8, 30, 28,
- 30, 80,227,242,244,201, 67, 66, 27,110,174, 45, 2,207,167,106, 37, 89,101, 14,116,173, 10, 16, 54,173,212,102, 7, 40, 75, 84,
- 19,144,237,119,164, 69,138,182,225,118,177,196, 13, 67, 19, 78,112,179,162,105, 52,233,182,224,226,242,154,246, 15,126,198,110,
-179,227,118,189,231,253,143, 62,230,252,226, 6,203, 11,120,244,254, 71,252,242,111,127,205,127,248,203,191,100,181,207,201,170,
-134,162,106,104,202, 6,225, 56,196, 81, 68,186, 55,105,102, 54, 22, 85, 35,135,241,117, 81,189, 1, 70,244,158,238, 48, 12, 57,
- 56, 56,224,213,203,130,243, 31, 95,161,218,150,100, 60, 38,142, 99,118,187, 29,105,154,190, 37,184,177, 44,107,184,188,251,113,
-107,127,152,245,106,117,199,113, 8, 66,207, 92,198, 77,139, 80,102, 61, 99,219, 14,141,146,195, 33,220,143, 46, 45,203,194,114,
-205,165,239,116,130,176,186, 49, 89,236,253, 84,225, 62, 44,230,173,203,179, 59,248,250, 14,169,191, 56,238,243,183,251, 34,164,
- 40,138,161,211, 26, 79, 39,111,193,103,250, 95, 6, 58, 99,138,184,113, 23,188,177, 92, 46,153, 29, 29,226, 7, 46,109,209, 65,
- 80,220, 55,136,219,254,255,193,117, 93,108, 1, 82, 54,102,108, 93, 87, 52,101,133,101,167,212,157, 47,222,247, 66,108,199, 35,
-114,130,225, 32, 14,195,208, 76,151, 44,167, 75, 5, 52,153,231,150, 35,176, 44,129,231, 57,216,174,133,235,132,216,162, 83,142,
-151, 37,142,231, 82,215, 70, 44, 37, 27,127, 16,182,217,190,107, 58,109,199, 29,132,143,163,209, 8,219,117,217,238,179,161,184,
- 49,157,216, 22,219, 18, 28,205, 14,184,188,186,224,238,230,218,136,155,148, 50,169,113,173, 41,180,132,165, 41,171,178,115,210,
-212, 40,209, 93,196,210,124,207,182,169, 80, 74, 34,165, 66,105,176,236, 55,110,130,222,210,216, 23,104,253,251, 83,169,150,170,
-174, 17,226,205, 88,187,233,162, 69,107,105,190,206,118,204,132,197,238,199,248, 90, 14, 54, 74,165, 20,155,205,134,237,118,219,
-137, 45, 25, 46,234,201,116,134,210, 70, 68, 39, 28,151,170,169,249,234,155,175,209, 72, 30, 61,122,194,119,223,125,103, 72,117,
-178,125, 67, 8,148,146,229,114,201,221,221,141,193,143,138, 55, 94,113,231,222,243,102, 10, 73,211,157,246,107,165,237,118, 59,
- 92,232, 71, 71, 71, 84, 85, 69, 60,158,112,116,100,118,214,227,113,210, 89, 90, 25,138,207,170,170, 72,243,138, 36, 73,184,186,
-188,225,131,247,127,130,251,177,207,191,251,247,127,198,252,120, 66, 28,199, 68, 81,130,213, 41,237,219,182,101,113,183,100,181,
- 90, 97,219, 46,251,237,150, 44, 51, 22, 84,167,155, 32, 57,182, 55,188, 54,190,231,227, 88, 54,161, 31, 48,138, 99, 35,188,220,
-238, 24, 79, 70,220,221,221, 17,199,102, 18, 93,181, 13,223,125,255, 61, 71, 71, 71,248, 65, 68, 85,150, 60,120,248,152, 44,203,
-248,246,249,247,180,218,168,214,151,171, 13, 69, 81,240,222, 7, 31, 80, 55, 38,109,110,179,217, 80, 22, 21,182, 19,116,235, 47,
- 23,199,181, 17,149,185,208,107, 93,147,196, 1,203,213,138, 52,221, 51, 78, 34, 67,130,140, 70, 32, 4,150,229,177, 90,175,205,
-170, 71, 75, 99,223,174, 42,252,208,176, 81,238,110, 23, 60,126,112,194, 47,254,241, 31, 34,132,224,245,197, 37,135,199, 71, 96,
- 91,212, 82,177,218,174,193, 18, 8,173, 81,141, 66, 91, 38,216, 93, 32, 64, 75, 44,173, 17,150, 41,202,156, 79,222,127,135,116,
-187,166,168, 74,164,210,148,197, 30,167, 17,248,162, 38,246, 35,146, 36, 96,145,153,253,129,176, 92,252, 32,164, 85, 22,150,109,
-254,192,186,110,185,187, 93,115,163,239,168,202,134,200, 91, 32,100, 11,245,158,219,203,128, 63,252,249, 35,198,227, 3, 2, 49,
- 34,112,124, 84,237, 80, 85, 45,182, 45,168, 27,197,174,104, 40,242,154,198, 17,140,146, 41,142,235, 99, 55, 29,127, 88,129, 45,
-204, 15,250,250,199, 87, 76,130,156,103,167,103,204, 15, 38, 60, 62,254,148,170, 44,121,125,126,206,255,242, 63,255,175,204, 79,
- 39,248,177,207,213,235, 91,147, 98,214,122, 96,121, 52,174,131,242, 19,206,255,239,255,192,118,183,229,244,240, 33,158, 80, 60,
-255,238, 37,186,202,112,108, 11,169,108,110,150,107,148,106,241, 28,155,187,155, 91,226,104, 74, 45, 61, 22,203, 53,110,229,146,
-101,245, 48,158, 93, 46,151,212,245, 17, 97, 28,209, 42,133,114,193,141, 2,230, 7, 7,104,161,152, 30,152,203, 66,104,213,169,
-158, 51,254,243,111,126,205,106,233,163,176,217, 44,110,200, 54, 43, 94,215, 53,105,101,216,216,241,151,223,240, 7,255,232, 35,
-142,167, 30, 72, 77, 83, 22,120, 86,136, 99, 41,150,219, 53,120,130,159,254,244, 83,126,251,205, 37,105,109, 83,200,138,198, 82,
- 20,109,142,229, 74,148,109, 81,150, 21,142,109, 83, 73,197,235,203, 59,108,171,165,173,114,110,175, 47,120,247,157,167,204,102,
- 99,118,155, 13, 96, 84,182,113, 28,242,217,239,255,148,208, 19,248,152, 81,166,239, 26, 11,152,213,218, 60,124,112,194, 55,223,
-255, 72, 93,236,241, 67,207,164, 70,173,150, 84, 18,150,187, 28, 97, 89, 8, 93,211,230, 59, 92, 45, 25,121, 46,239, 60, 60,198,
-126, 56, 39, 77, 83, 86,219, 21,149,108, 89,237,182, 76, 15,231,140,252, 17, 56, 46,101, 81, 24,177,161,227,177,220,166,220,220,
-220,225, 7, 1,147,205,158, 69,154,161,173,154,151,203, 45,255,233,111,127,205,114,151,243,224,201, 83,198,179, 67, 92, 47, 96,
-159,149, 76,167, 7, 20, 85,205,171, 31, 94,113,116,120, 76,219,202,225, 16,199,234,115,205, 25, 66, 44,162,200,116,242, 65,232,
-117,222,215,154, 56,140, 56, 58, 58,234,240,173, 70,177,221, 43,221,123,248, 69, 85, 85, 67,167,223,119, 9, 38,136,196, 25, 58,
-249, 73, 50, 26, 40, 89,247,199,156, 40,107, 56,212,238,239, 64,123, 15,183, 73,169,235, 19,231,212, 91, 29,125,223,177,223,199,
-101,246,202,246, 1, 61,218,237, 55,239, 99, 49,239, 79, 20,162, 40,194,113, 28,246, 89, 58, 28,216,253, 62,190,167,215,249,158,
-195,225,120,202, 7, 31,124,128,235,120,124,249,245, 87, 70,152, 25, 4,180,138,183,188,238,116, 5, 13,247,124,238,125,240, 70,
- 93,215, 52,189,127,186,236, 10, 30,219, 27, 62,195,181,108,105,202,130,216,118, 12,170,184,109,200,243, 61,105,150,177,203, 82,
-170,186, 33,176,245, 48,217, 16, 54, 56,150,195, 40,138,217,165, 57,163,209,136,205,122,103, 84,220, 78,133,106, 53, 54, 54,161,
- 31, 33,107,201,110,189,161, 81, 26,223,241,121,242,248, 49,155,253,142,166,150,184, 81,192,213,229,205, 0, 13,114, 93,247, 13,
- 44,196,181,217,238, 54,104,213,233, 21, 58,175,120, 81,150,157,144,207,104, 19,252, 40, 68,202,134,170,106,201,139,148,142, 70,
-139, 35,192,117, 76,132,110,223,121,223, 47,224,122, 93,132,227,155,231, 68,116, 74,242,190, 64, 28, 10, 45, 75,188, 5, 61, 10,
-186,253,124,219,152, 2,117, 58, 30, 81,150,229, 80, 24, 5, 93,158, 66,219,182,236,247,123,110,239,238,120,244,232,209, 0, 32,
-250,189,223,251, 41,182,109,113,126,126,206,116, 58,229,103, 63,251,217, 96, 97,115, 28,135, 32, 50, 5, 92,213,180, 84, 69,206,
- 55, 95,125,133, 99,189, 89,209,184,157,242,220,182,109,194,240,255, 35,235,205,154, 44, 57,210, 51,189,199,221, 99,143,179,230,
-201,181,118, 20, 22, 2,236,110,176,217, 77, 26,151, 33,103,140,146,120, 33,153, 46,230, 66,127, 77,210,149,126,130,164, 59,201,
-198, 76, 52,174,195,173,155,236, 70,163,177, 53,128, 90,179,114, 61,251,137, 61, 60, 60,116,225, 17,167,178,122, 96, 86,102, 64,
- 33,171, 42, 43, 34, 78,248,183,188,239,243,134,172, 86,118,122, 51, 8, 45, 11,161,143,227,237,255,255,217,201, 25, 89,150, 17,
- 69, 17,215, 55, 87,221,115,238,238,115,235,133,176,168,217,120, 56, 33,207,115,206,207,207, 73,211,156, 15, 62,248,136,209,112,
-136,234, 58,251,178, 44, 41, 59,145, 96, 16, 71,123, 52,114,216,169,212,119,169, 93, 75, 5,157, 51, 64,215,102, 31, 71, 28,199,
-241,222,141,149,231, 57,235,245, 26, 93,213, 76,134,103,168,241,136, 60,183, 17,200,147,201,132,108,183,227,230,230,102,239, 32,
-169, 77,139, 27,132, 40,207,103,187, 94, 99, 90,129, 27,248,108,146,132,249, 98,129, 31, 90, 91,224,102,179, 33, 12, 34,164, 98,
-127,143,203,178, 68,183,166,251, 60,192,122,187,193,193,102, 30,232,202, 78,150,234, 6, 76,107,211,214, 22,139,197,222, 81,227,
- 58,118, 21, 98,176, 90,149,108,187,224,252,229,144,214, 84,188,255,228, 49, 85,153,242,250,252, 53,135, 71, 19,150,235,132, 48,
- 12,237,218,147,160,227, 43,212, 22, 94, 37,133, 29, 34, 40,129, 48, 13,162, 53, 56, 3, 95,209,214, 5,158,132,198, 21,212,101,
- 77, 35, 65,136, 26,163, 75,162, 40,222,123, 43,251, 23, 78,161, 91, 2, 9,186,177,248,206,166, 49, 8, 71,226,168,208, 70,210,
- 9,133, 84, 13,202,113, 25,196, 19,134,195, 26, 81,165, 84, 89, 78,190,211,212,165,245,178,167,101, 67,214,184, 52, 38, 32, 73,
-114,222, 44,109,228,156, 31, 4,196,241,136, 54, 84, 52,153,102, 24,133,140,143, 15,248,203,255,225,207,248,201,199, 31, 35,116,
- 73,177,221,240,230,205, 5, 95,124,249, 53,166, 81,100,101, 73, 90, 88,203,128, 35, 34,170,164,100,177, 78,249,242,249, 51,136,
- 34,190,254,234,123, 4,246, 80,166,213, 44,230,107, 98,215,165,200,118,164, 69,202,106,179, 70,136, 22,207,149, 52,117, 73, 16,
- 28,112,116,124,202,225,198,240,234,106,141, 54, 14,147,113, 76,155,167, 12, 70,138,223,255,233,199,228,201, 53,241,116, 74,174,
- 43, 94,189,126, 77,120, 32,121,246,242, 5,215,107,195,127,248,211, 63,197,212, 13,202,203, 81,170,160,105, 54, 8, 19, 19, 7,
- 13, 63,252,248, 1,103,167, 51,126,249,213,119, 72,111, 0,174,199, 98,157,243,111,191,252,134, 63,250,241, 71,168,166, 70,148,
-134,229,237, 45, 69, 85,115,189,220,144,234, 75,178,214,163,145, 21,219, 38,165,108, 93,132,114,105, 27,131, 43, 90,154, 74, 83,
-234,138,217,100,140, 55, 24,146,214, 13,162,105,136,194, 1,121,237,224, 68, 7,196,227, 99,174, 23, 5,121,145,226,235,134,194,
-148,252,211,207,254,157, 15, 31, 29,243,254,189,153,245, 99, 7,150, 92,151, 45, 82, 70,145,207, 71, 79, 31,227, 41,137,105, 52,
-186,174,248,252,243,207, 41, 27, 88,165,165,221, 21, 54, 5, 15,142,103,124,252,244, 61,142, 70, 49, 65,224,178, 91, 39,108,119,
- 59,202,162,162,117, 21,202,243,104,149, 67,101,160, 17, 14,142, 63, 96, 48,142, 57, 58, 53,120,241,152,233,169, 36,140,135,104,
-233,114,239,189, 15,248,171,191,253, 7, 94,156, 95,242,241,239,253,152,224,213, 5,235, 93, 66,187, 77,153, 29, 13, 56, 61,125,
- 96,213,233,158,195,147,135,239,177,218,108,246,185,201,117, 93,227,119, 12,114,173,237,135,109, 16, 89, 91, 75,149, 23,100, 59,
-197,100, 52,102, 58, 30, 19, 6, 1,101, 85,113,113,117,133,116,188,110,141,145,238, 95,186,125, 39,222,219,107,250,177,247, 62,
- 77,171, 59,156,149, 82, 4,158,111, 57,232, 89, 70,221, 88,110,123, 40, 4,218,215,160,236,193,216,227, 73,123,148, 43,221, 1,
- 98,215, 30, 98, 79, 33,187,123, 0,247,135,112, 31,221,106, 15, 73,171,168,238,215, 2,105,154,162, 16,180,221,139,185,127, 33,
-247,221, 99, 83,119,177,155,130,119, 52, 2,253,168,213,145, 22,138,227,123, 1,103,103,103,182,235,168,108,146,160, 29,249,218,
- 34,128,110, 74, 32,239,116,117,214,218,230, 91, 79,117,107,104,104,105,141,192, 52,246,122,237,118, 59,116, 7,154, 42,171,140,
-162,168,200,242,210,238,130,183, 9,121, 81, 96, 68,119, 40,210, 98,132,157, 58,105, 1,194,245,246,122,136, 56,142,237,181,169,
- 27,154,110,205,208,143, 57,133, 16,172,215, 91,164,227, 17, 15, 7,184, 66,238, 67,119,226, 56,102, 58,157,114, 61,191,221,195,
- 94, 60, 47,224,225,195,143,208, 90,243,229,151, 95,147,236,236,215, 58,158, 21, 7,234,238,192,114, 58,184, 71, 85,217,131, 73,
-121, 46,161,136,169,139,162,139,250, 4,173,223,106, 30,238,122,173,251,233, 74,127,221,108,145,200,127,243,143,232,116, 23, 74,
- 41,148,211,105, 47,186, 53, 80,255,227,110,164,174,101, 2, 68,251, 2,162, 40, 44, 98,183, 40, 10,124,207, 18, 15,227,208,103,
- 56,156,144,231, 45,166,109,153, 29, 29,242,242,229, 75, 46, 47, 47,109, 99,214,235, 21,106, 77, 83, 87,124,242, 59,191,131,123,
- 71,232,233,222, 81,194,219, 66,225, 7,123,237,131,157, 88,152,253,247,222, 52, 13,207,159, 63,223,187, 69,190,251,254,219,189,
-254, 3,105,139,212, 40,138,172,165,115, 52,221, 11, 63,119,187, 29,243,249,156, 31,252,224, 7,172, 54, 75,235, 40, 16, 14, 89,
- 97,221, 51,171,249,130,213,102,203,118,187,229,240,248,132,233,116,202,112, 56,100,179,217,176, 93,239,136, 99,123,184, 71, 81,
-132, 68,218,160, 33,215,130,186,182,117,137,104,225,176, 67, 21, 15,226,152,197,162, 97,177, 92, 90,235,169,239,241,245,183,191,
- 33, 12, 67, 30,222,187,207,151, 95,125,205,131, 7, 15,120,244,248, 9,195,209,138,151, 47, 95, 98,132,221,227, 23, 69,197,120,
-114, 64, 24, 90, 79,252,104, 56,166,105, 91,140,177, 24,245, 77,178, 35, 24, 13, 17, 74,226, 56, 62,187, 52, 97, 20,249, 22, 47,
-189,179, 66,191,166,149,164, 89, 70, 16, 14,201, 43,171,168,175, 26,141,235,249, 4,209,128,162,212, 4,142, 75,224, 8,210,221,
-146,191,255,155,191,102,249,195,223,229,119, 62,249,132,223,255,244, 71,124,247,242, 2,179, 92,227,121, 86, 72,171,198, 10,199,
-243,160,238,162,130, 90, 65,232,186, 52,173, 70,215, 6,209,180, 56, 82, 52, 56,178, 97, 50, 10,144,202,101,183,109,240, 36,180,
- 85,205, 46, 45, 40,218, 20,132,229, 56,251,238,218,190, 56,149,195, 32, 12,217,238,106,164,112, 58, 16,191,131,233,110,116, 91,
- 55, 56,173,229,213,214, 24,202,198,166, 27,149, 89, 69,158, 25,138,212,142, 8,175, 23, 43, 94, 94, 44, 89,167, 37,155, 42, 39,
-105,236,232,173,172,237,141,167,117, 8,221,144,229,122,142, 43,106,210,188,102,189, 77,208,249,150,237,252,138,202,180, 60,121,
-255, 99,118,133, 97,123,157,112,118,118, 66,170,119,252,252,103,191,224,139,207,158,145,164, 53, 21,134, 2, 65,229,184, 28, 30,
- 30, 97,234,134, 48,142,104,145,252,243,207,126,201,225,225, 33,227,201,136,193,208,229, 96, 54, 34,244, 37, 85,153,217,244,173,
-211, 83,170, 47,158, 17,250,129, 85, 13,235, 6,215, 85,128,193, 27, 4, 76,143, 30, 80, 54,134,213,237,142, 87,151,111, 8,199,
- 67, 94,157, 95,113,117,125,193,167, 63,249, 3, 2, 71, 49, 95,239,152, 14, 39, 84,157, 50,255,232,108,198,240,226,146,243,155,
- 27,210, 34, 37,105, 96,114,112,196, 38,201,249,155,191,255, 71, 98, 79, 48,116, 13,145, 43,184,189,185,164,168, 42,146, 82, 51,
- 79,114, 10, 17, 80,234, 26, 48, 72,209, 80,214, 53,210,115, 40,203, 10,135, 22, 79, 24, 38,131,128,129, 47,168,243,138,192,147,
- 20,233, 6,129,102, 54,157,112,118,118, 70, 89, 87,248,190,111,253,158,178,229,223,127,246,247, 36,217,152, 36,215, 92, 94,221,
- 82,206, 52, 39,103,247,153, 29,133, 28,156,220,135,142, 21,173,104, 9, 28,193,111,190,250, 53,211,112,192,217,125,219,193,122,
-162, 33,144, 16, 58, 32,218, 26, 87,133,132,113, 64,221, 54, 52, 74,113,120,239, 30,243,237,134,162,110, 89,111, 11,182,105, 73,
- 28,140,152, 76, 71,132,227, 17, 69, 3,173, 19, 50, 59,125,192, 38,205,248,167,191,254, 7,126,241,249,175,249,159,255,243,255,
-194,235,203, 43,142,206, 30,162,194, 45, 85,221,240,242,213, 5,158,183,216,191, 44,214,235, 13,105,150, 82,119, 12,109,215,117,
-241, 28,151,178,172, 45,234, 83,216, 67,183,172,114,174,230, 57,174,119,207,166,157, 37, 41,121,150,145,102, 57, 23, 87, 55, 76,
- 14,102,148,181,166,110, 12,131, 48,178, 99, 96,165,144,157,167,250, 46,199,187,247,117,191, 61,104,236, 7,213,237, 58,189,162,
- 40,246,112, 24, 67, 75, 86,218,255,150,119, 70,180,101, 89,119, 35,212, 6,173,203,253, 11,252,174,226,189, 63,152,123,165,123,
-223,169,245, 29,125,150,101,111,247,234,174,139,232, 10, 0,173, 53, 72, 65,146,165,251,145,116, 63, 78,237,189,225, 61,137,204,
-115, 3,234, 70,243,252,217, 11,194, 48,228,244,222, 25, 71,174,195, 98,177,176,193, 49,213,219,221,188,105, 91,100, 87,220, 27,
- 93,211, 52,238,158,154,150, 36,137, 5,178,116,123,198,126,239,219,123,228,221, 40,166, 46,109,183, 84,150, 53, 81, 28, 99,234,
- 10,218,134, 97,236, 83, 23, 18,191, 27,189,214,141,161,106, 44, 62,212,247,125,116, 83,161, 4,180, 70,211,232,178,251,115, 21,
- 13,130,198, 72,162,233, 24,146,148, 86,192,124,101,161, 70,105,154,162, 92,143,249,179,239,105,133,228,236,236,164, 91, 75,148,
- 29, 59, 62,239, 48,182, 3,214,171, 77,103,227, 50,150,201,109,172,200, 81,152,134,186,176, 95,215,104, 77, 89,229,228,185, 77,
-151,147,128,215,169,224,235, 90,163,132,132,214, 22, 86,142,114,104,133,176,107,149, 34, 39,148,234,206, 65,248, 86, 40,103, 29,
- 19,182,248, 81,142, 64,235,182,187, 62, 37,131, 48,220,135,167, 36,187, 13,131,193, 8, 33, 20, 69,154,117, 40,212,102,255,140,
- 73, 41,121,125,241,134,143,222,255,128,201,100,200,122,189,196, 75, 10, 26, 99, 88, 46,215,220,191,127,159,215,226,205, 91,144,
- 81, 87,112, 24, 90, 92,229,240,171, 95,253,178, 99, 87,216,191,143,211,173,112,250, 80, 33,209, 89, 32,251,136,214, 44,203,108,
-130, 96,231, 10,169,202,154,193, 96,192,147, 39, 79, 56,152,206, 48,109, 23,110, 82,151, 86,108,102, 90, 14,103,199, 76, 71, 35,
-118,157,184,116, 60, 14,120,253,250, 37, 79,159, 62, 37,205,189,125,166, 65, 16,198,156,158,158,162, 77,203,104,185,100,185,222,
-216, 20,180,205, 6,229,250, 93,176, 79, 31, 25,235,117,206, 20,217, 21,159, 53,201,118, 77,186, 75, 56, 60,154, 50, 28, 14, 72,
-146,132,221,118,205,108, 54,165, 44, 75,206,207,207,137,162,136, 36,205, 24,142,198, 40,223,231,242,251, 23,124,243,237,247, 60,
-122,244,136,199, 79, 30,130,146, 36,187, 29,203,245,154,172,200, 59,251, 89,201,114,185,198,247,108,151, 28, 15, 71,248, 94,136,
- 40, 11,148,146, 36, 89,138,220,231, 22, 84,108,147, 29,117,165,153, 29,157,160,148, 99, 45,125,209,136,177, 25,227, 71,161,197,
-238,214, 6,148,220, 79,127,243, 52, 33,142, 6, 28, 78, 99,110,230, 11,130,151,175,248,143,255,233, 47,184, 94,172,241, 93, 69,
- 28,250,152,166, 70, 73, 59,197,106,140, 70, 74, 69,211,193,172, 52, 30,194, 52,214,102, 46,156, 6, 63,144, 20,155, 37,126, 24,
- 83,166, 27,240, 67,148,113,208,218,193,236, 26, 74, 81,227, 59, 46,178,169,112, 26,144,110, 68,178, 91, 33,113,172,170,177, 74,
- 9,130, 1,208,237,252, 76, 69,224,121, 44,214, 75,210,178, 32, 30, 58, 52, 78,192, 23,175, 94,242,243,127,253,154, 40,152, 90,
-113, 65,150,225, 42,143,162, 46, 56, 59,123,143,198, 13,249,197, 23,223,147, 21, 9,131,193,148,178,110,208,109,137,240, 28,118,
- 85,195,213,162,102, 16, 44, 25, 6,146, 77,102, 56, 60, 58,197, 59,112,249,254,122, 69,146,166,252,211, 47, 94,115,187,216,242,
-242,213,156,141,246,169,132, 13, 69,240,194, 8, 93,150,164, 73,142, 18, 45,241,233, 17,227,201,144, 7,239, 61, 38, 12,134,100,
-233,142,229,252, 10, 33, 37, 87,183, 87,172, 55, 11,158,189,254,158,179,155, 91,124,223, 69,175, 19,148, 14,236,152,202, 64,161,
- 91,146,186, 33, 24,133,168, 86,163, 11,193,235,151,115,164,115,205,231, 95,156,227, 5, 17, 95,124,125,139,104, 13,178,213,136,
-118,142,244, 15,184, 93, 23, 44,147, 10, 21,141, 89, 22, 21,248, 33, 3,119, 76,211,180,236,178, 29,199,227, 35,206,223,188,225,
- 96,228, 51, 10, 92,187,154,208, 13, 85,235,224,199,135, 92,190,185,165, 72, 26, 68,171, 8,156, 0,207, 17, 24, 9,193,192, 71,
- 86, 57,211, 64,241,187, 15,143,152, 70, 14,179,135,167,120,174,232,130, 21,126,192,244,248,152,162,206,137,188, 6, 73,197,209,
-100,192,179,103,223, 81,215, 53, 79,158,126, 68,154, 38, 60,187,218,208, 6, 99, 14, 85, 72, 93,151,120,170,165, 44, 54,196, 65,
-136,163, 4,113, 32,248,147, 63,252,148,237,118,139,235, 5, 76,198, 67, 66,106,226,110,111, 38, 28,151,151,175,206,113,118, 17,
-143,223,255,128,167,135, 71,172,118, 41,159, 62,253, 17,255,248,175,255, 70, 89, 37,184,222,128,172,210,168,170, 38,136, 7,108,
- 54, 43,238, 63,124,196,231,223,124,203,127,253,151,159,243,205,119,207, 9,226, 1, 47,222, 92,243,171, 47,191,102, 48, 28,211,
- 74,201,114,177, 70,107,205,189,233, 12,223,247,153, 95,223,176, 43, 50,178,178, 64,121, 46, 65, 20, 82,100, 37,201,198,218, 96,
-102,147, 41,113, 28,242,234,226, 21, 15, 30,221, 99, 52, 26, 49, 95,205,145, 75, 43,168,170,203,134,249,237,154,178,129, 77, 86,
-146,215, 26, 39, 8, 17,202, 69,155, 22,229, 90, 33,149,193, 10,191,178, 34, 7, 1, 65, 20,226, 5, 62,202,237, 2, 84, 60,213,
-229, 57, 11,134,195, 49,158, 99, 61,228,187, 77,194,236,232,128,166,170,201,116,141, 84,194,162,121,145, 72,233, 80,151, 6, 41,
- 60, 59,170,212, 37,186,178,130, 44,221, 26,242,202,122,174,123, 27, 91,191,151,188, 11, 53,233, 71,249,181, 99,145,183,123,148,
-168,239,208,180, 45,215,183,139,125,167,171,155, 22, 87, 90,221, 65, 85,244,177,178, 29,133,174,210,140,167, 7, 52, 77,195,171,
-215,111,152, 30,140,121,252,248, 49,198, 24,174, 47, 47, 73,211,148,164,169,200,179, 12,186, 3,175,204, 83, 48, 26, 93, 21,236,
-186, 29,171,160,165,200, 83,242, 44,217, 31, 58,227,209,192, 10, 16,165, 96, 50,138,217,110, 27, 84,219,224,180, 53,195,192, 65,
-149, 21,109,153, 49, 12,148, 85, 5,107, 67, 86,149,123, 81, 83, 57,191, 97,187,222, 16,135, 30, 85,177, 35,119, 90,226, 56, 36,
- 30, 14,184,158,207,169, 27,171,254,149, 82,112,116,120,132,151,231,108,147, 29, 7, 39,179,125, 23,141, 16,108, 54, 27, 46, 46,
- 46,241, 28,135, 36, 43, 88,175,215,140, 70, 19, 78, 79, 79, 57,156,206,248,246,219,111, 89,173, 86,212,165,125,105,171,182,133,
-218,170,214,195, 56, 38,207, 51, 26,211, 16,250, 62,117, 55,185,104,218, 22,163, 27,116, 11,161, 31, 81, 85,154, 52,201,112, 39,
- 19, 74,163, 41,116, 13,194,218,157,108, 7,175,208,157,210,222, 78,125,172, 14,105, 56,138,201,118, 9, 69,247,231, 41,165,216,
-236, 50,178,226,130,167, 79, 3,132,116, 17,142,135,105, 75,106,211, 16,249,118,244,190,221,174,241, 67, 15, 47,140,184,185,189,
-101,185,217, 50,154, 30, 16,197, 99,164,227,241,250,249, 27,132,104,185,154,221,240,248,225, 19,110,111,111,185,190,185,196,241,
- 60,164, 2, 63,244, 45, 69,111, 60,164, 46, 45,118,186,105, 26,234,110, 74,180,199,197,150,214,105, 97,106,109, 93, 12, 93, 33,
-153, 39, 41,173, 20, 54,106, 52, 12,113, 61,135,211,179, 19,142, 14,102, 76,167, 83,171, 27, 48, 13, 69,154, 17, 13, 7, 44, 87,
- 54,205,110, 48,140,104, 76,141,235, 59,156, 95,188,228,163,143, 62,226,234,234,134,197,106,137, 49,154,213,106,197, 98,181,166,
-174, 45,108, 12,160, 54,134,208,181,224, 49,175, 83,217,235, 42,227,250,114,213, 9,254, 20,155,205,138,241,104, 72, 89, 8,162,
-192,225,246,230,130,143, 63,254,136,198,104, 46,175, 46,152, 78,167,123, 29,192,116,118,200,124,185,226,201,123, 31, 50,156,205,
-240,135, 67,222, 92, 93,179, 78,108,248, 16, 29, 50, 88, 8,193,229,197, 57,163,145, 69,224,186,158,195,120, 52,177, 65, 63,195,
- 17,187, 52, 39,171, 10,138,194, 22,183, 85,158, 50, 95,174,121,112,239, 62,109, 91, 1,246,231, 71,195, 33,171,229,150, 86,216,
- 12,244,211, 35,107,245,107,154,134,114,183,193, 81,138,217,209, 9,219,245,146, 55,215,107,142, 14,103,252,250,171,231,180, 50,
-226,195, 15, 63,100,113,187,164, 78, 51,178, 52, 69, 87, 57,174,239,161, 58,254, 64,223,116, 24,225,160, 92, 15, 33, 20, 78, 93,
-215, 44, 23,183,124,246,217,231,252,254,143,127,194,209,193,140,205, 46,199, 40,143,172,104, 64, 10, 86,187, 13,155,205, 14, 87,
- 57,140, 61, 15,225, 4,104, 19,226, 72,137,212, 26, 79,215, 56,213, 18, 95, 41,102,199,167, 28, 30, 60,100, 16,186,124,251,205,
-191,210,228, 27,156,118, 66, 93,217, 80, 22, 93, 27,136, 20, 7,179, 99, 30,191, 63, 68, 9, 67, 90, 20,140,166, 39,100,181,224,
- 98,177,102,243, 34,167,170, 74,116, 99,200,155,138, 48,240, 48, 66,112,125,155, 83,166,151, 56,166,224,234,245, 51, 92,255, 59,
-206,151, 91,140, 12,217,108, 51, 10,109,104,140, 67, 94,106, 92, 47, 66, 5,118, 20,155,215, 26,207,117, 49, 85,133,163, 4,101,
-190, 33,243, 91,214,171, 91,138,180,160, 42,114,148,212, 92, 92,164,132,161,224, 96, 54,224, 71, 63,250, 33, 79,223,255,152,255,
-231,255,253, 39,226,109,193,182, 44, 40,243, 22,165, 42, 42, 93,243,122,126,195,213,188,194, 20,154,166,108, 41, 10,248,236,179,
-111, 49,140,240,131, 41,127,255,143,159,227, 40,137,106, 53,179,131, 9,121,173,208,173,228,197,155, 57,207,206, 47,185, 93,239,
- 88,237, 18, 60,223,195, 17, 14, 85,186, 99,185, 84, 44,167, 1,142, 24, 80,150,146,155,197,194,230,253,186, 33,171,221,134,155,
-229,142, 86,184, 56,173,131,174, 26, 50, 93,209, 6,138,204, 84,156, 12, 67, 70,113,192,163,123,103,252,224,233,125, 84,147,161,
-171, 12,199,149,100, 85, 73,177,187, 5, 39,224,250,205, 75, 94,188,122, 67, 85,150,188,124,245,138,171,139,107,132,242,216,166,
- 5,219,172,226,215, 95,125,199,199,159,252,144, 40,116,193, 88,107, 83,154,172,105,180,245,205,222, 63,153,113, 56, 25, 88,250,
-149,146,232, 93, 70, 91,105, 20,144,100, 37, 6,152,175, 55,168,235, 5, 87,155,130,180,168,216,125,245,156,111,191,123,198,248,
- 96,198,171, 87,175,104,219,134,131,131, 3, 14, 15, 15, 25, 14,135,252,237,127,253, 71,110,150, 27, 54,105,202,189,251,143,153,
- 28, 30,114,126,113,133,114,124,234, 6,214,171, 21,155,205,206,238,248, 54,107, 91,129,111,182, 54,221, 79,128,169,107,132,177,
-221,173, 23, 15,247,118,174, 69,145, 49, 30,143,152, 76, 38,132,161, 79, 89,100,212,133, 85, 14, 87,169, 85,194, 74, 71,253,150,
- 39,220, 66,186,251,113,173, 61, 0,101,183,211,210,123,175,118,111, 69, 3,105,213,239, 13, 8, 90, 75,153,114, 3, 90,167,161,
-109, 12,147,201,152,162,169, 59, 31,118, 65, 93,212,152, 70,162,132,131,231,185, 8,217, 32, 28,241,223, 88,157,164,144,251, 49,
-107, 15,145,233, 59,236,254,107,237, 56,254, 93, 1,156,238,213,215,210, 6,152,216, 12, 84,241,206,200,119, 31,243, 42, 36,126,
- 24,144,117,118,190, 48,180, 93,196,103,159,125,198,241,225, 33,143, 31, 63, 38,207, 18, 54,155, 13,203,229,156, 44,203,144,152,
- 78,143, 97, 57,248, 74, 56,239, 80,213,250,241,254,221, 31, 86, 17, 47,144,227,225,158,235,221, 67,102,148, 18, 32, 90, 28,215,
-118,108, 73,158,219,235, 34,172,194,184,105,106,171, 97, 41,115, 46,182, 91,188, 32,166, 65,161, 13, 36, 69,137,185,157, 19,120,
- 14,219, 36,177, 35,227, 56,196,116, 58, 21,207,243, 64,138, 61,179,220,118,170,111,201,102, 55, 55, 55,164, 91, 43,144, 20, 45,
-108,211,148,131,225, 8,213, 33,122,163, 48, 68, 10,129,219, 21, 71,189,178,223,158, 53, 93, 84,168,120,167,233,254, 22, 0, 0,
- 32, 0, 73, 68, 65, 84,123, 79, 28,199, 67, 58,150, 77, 96,176,193, 34,109, 99, 39, 40,166,125, 27,189, 42,165, 68, 40,137, 16,
- 22, 10,212, 39,197,217,200, 83, 9,210, 58, 83, 22,171, 53,143, 30,220,239, 38, 81, 18,207, 15,145,210,222,167,198, 85,182,251,
-174, 12,187, 52,101,179,221,145, 23, 37,142,176,191,222,238,152, 27, 86,171, 13, 81, 20,241,135,127,248, 71,204,231, 55,236,178,
- 29, 45,141,229, 17, 40,135, 42, 47,217,237, 82,170,170,176,236,246, 32,124,107,127,236,180, 0, 22,170,228,116,107, 26,111, 15,
- 98,234, 39, 83, 0,147,201,132,205,102,195,102,179,225,197,139, 23,108,183,219,189,176, 82,121,238,158,104,215, 74,193, 96, 48,
- 64,185, 14,211,233,148,155,155, 27,130,192, 34,154,139,188,162,149,173,157,160,108, 82,202,114,135,116,173, 39,254,224, 96, 98,
- 63,127,101,222, 89, 44, 3,182,219,150,172, 43, 34,163, 48,192,113, 36,211,113, 12, 24, 62,254,228, 67,154, 70, 51, 28,198,164,
-105, 72, 93,215,108,182, 27,232, 82, 25,165,112, 40,234,138,197,114,205, 31,255,241, 31,115,118,122,202,114, 57,231,252,229, 43,
-202, 42,167,200,242,125, 24, 81, 85,230, 8, 36, 39,135, 51, 30, 63,126, 15,215, 15, 58, 55,193, 22, 47,183, 57, 14,101, 94, 32,
- 91, 65, 16,198,184, 94,240, 78,222,132,105,176, 69,157,177,235,176, 74,215,150,225,191, 71, 75,219,231,194, 15, 99,140,174,104,
-144, 20,101,197,243,231, 47, 56,158, 29,226, 74,197,241,209,140,157,235, 96,140,166,174, 5, 8, 67,173,237, 26,160,255,204, 9,
- 20, 8,112, 14, 38, 51, 60, 47,160,174, 52, 45, 14,227,233, 17,105, 49,231,197,171, 75,174,111, 55, 44, 54, 59,146, 92,163,113,
- 57,152,157, 16, 14, 39, 8,169, 48, 72, 66,213,242, 59,167, 49,179,129, 36,140, 36,227,209,136,195,131,251,140,226, 9,155,245,
-156,255,227,187,127,192, 75,174,137, 43,133,106, 52, 31,159, 29,242,240, 63, 29, 19, 15,103,104, 83,131,231,112,181, 94,163,165,
-160,212, 59,178, 82,227,184, 13,129, 39,104, 58,126,174, 82,118,164, 90,229, 59,190,123,126,133,103, 42,198,195,128, 38,243,240,
- 91, 7, 63,156, 80, 9,129, 44, 53,174, 2,217, 42, 12, 10, 33, 5,170,251,139, 23, 69, 74, 52, 30, 34, 84, 75,219,148,148,137,
-129,200,165, 78,215,156,157, 28,146,236, 74,158, 60,250,128, 50,223,241,233,167, 31,243,224,225, 49, 71, 39, 71, 44, 87, 41, 97,
-216, 16,198,150,223,158,230, 37, 80,176,201,214,124,251,252, 25, 58,223,113, 56, 56, 68, 24, 15, 63,154,242,245, 23, 95, 51, 24,
- 31,114,124,239, 49,151,111, 46, 8, 60, 73,165, 5,155,164,166,172, 21,121, 89,242,205,119, 47,217,229, 37,135, 39, 15, 16,222,
-132, 44,213, 12,194,136,204,215, 8, 5,187, 52,177, 93, 73,145,242,253,243,231,252,224,135, 63, 38, 30,133,204,207,111,185,184,
- 93, 34, 84, 72,173, 5, 45,146,178,177, 36, 57,229,180, 48,140,121,121,126,201,207,127,249, 5,227, 40, 96,224, 54,152, 58, 39,
-240,177, 36,186, 60, 71,182,130,247, 30, 61,230,252,252,146,127,251,247, 95,162,181,230,234,234,138, 87, 47, 94,160,117,205,118,
-187,197,115,108, 62,250,147, 71,143,200,211,141, 69,223, 86, 53, 70,215,152,238,229, 77,215,189,150,105,197,208,183,118, 66,164,
-131,116, 3,166,135,167,220, 60,127,201,151,191,249,158,229,102, 71, 81,105,242,218,112,118,239, 30, 79,223,255,144,239,158,191,
- 96,189,222,112, 59, 95,243,234,205, 5,215,215,215,160, 28,254,236,207,255, 35, 39, 15, 30,241, 55,127,251,143,100,186,193, 13,
- 6, 86,132, 36, 29,210, 46,220, 2, 32,217,238, 88, 44, 22,232,166, 98,232,142,246, 99,113, 71, 56, 40,169,112,149,139, 68, 80,
- 84, 21, 69,145,115, 52, 57,220,139,220,202,178,196,104, 67,235,181,180,104, 4,154, 58,207,209, 85, 70, 83, 22, 56,248,136,214,
-177,239,107, 3,190,231, 80, 21,249, 91, 15,120,107,197,132,142,124,155, 85,126,117,123,251,150, 85,239, 56,180,141,245,144, 42,
-207, 42,142, 21,206,254, 96,110, 26, 27, 15, 41,187,151,166, 16,109,183,239,238,145,172,150,123, 47, 91, 27,252,209,139,226,250,
- 0,149, 30, 52,211,171,219,109,215,254,238,161,222,139,120,196,254, 94,189,141,250,188,187, 75,239,255,223,124, 62,223, 11,254,
-194, 48, 68, 72, 75, 47, 91, 44, 22,180,109,203,217,189, 19,235,224, 80, 71,182,235,222, 39,145,217,113,121,219,176, 23,248,245,
- 2,192,126,100, 95,150,229, 59, 96,150, 94, 57,223,123,236,235,186,102,113,123, 77, 86, 20,156,221,127,192,139, 23,175,208,221,
-232, 62,112, 36, 7,147,169,181, 88,102, 5, 65, 24,179, 92, 93, 82, 85, 26,210,140,178,210, 20, 69, 6,109,203,116,116, 98, 29,
- 4,117, 97,119,198,162,165,174,117, 23,162, 98,175,245, 96, 48,176, 34,199,174, 83,150, 82,178, 92,174, 49,192,239,124,252, 49,
- 79,158, 60,225,235,175,191,182,251, 99,218,253,216,119, 56, 30,189,227,128, 16, 66, 32,127,107, 55,222,236,247,230, 98,191, 83,
-119,164,178, 58,139,194, 10,188,154,110,175,222,235, 48, 92,229,236, 69, 87,119, 45,146,173,177, 99,241, 74,215,172, 86, 11,102,
-211, 9,141,169,113,218,183, 73,123,189, 29, 49, 43, 44,112,166,105, 52,121,158,177,219,109,173,109,184,179,191, 9,209,242,205,
-111,126, 67, 16,249, 60,126,252,136,207, 62,123,195, 23, 95,127, 65, 60, 8,247, 88,225,193,112,188, 23, 86, 30, 70, 49,173, 35,
-201,187,207,138,148,210,230,204, 55, 13,166,177,154, 1, 37,228,219,196, 63, 99, 24, 4, 33,203,229,114,175,111, 24, 15,134, 86,
- 64,214,105, 65,180,214,123, 39, 72, 99, 12,209,112, 64, 24,134,236,210,100,175, 93,233,245, 31,219,237,150,180, 40,169, 43,141,
-214, 16,199, 49, 94, 24,216,232,213,195,195,142, 87,176,235,194,132, 66, 30, 62,120,192,120, 60,102,177, 88,208, 84, 37,151, 87,
-111,240, 93, 7,223,115, 45,147,126,183,101,181,152, 19,199, 49, 71, 71, 39,140,199, 99,182,155,180,211, 60, 84,236,118, 41, 32,
-120,245,234, 53,129, 23,112,112,112,200,209,193,140,229,114, 73,178,219,216,231,215,177,185, 7,203,229,154,155,155, 27,110,110,
-110,152,204, 14,249,224,131, 15,120,252,240, 62, 73, 86, 16, 5, 33,243,155, 43,118,117, 13,141,233, 52, 29, 30,109,219, 48, 24,
-142, 45,195, 64,215, 52,101,137,235,137,174,200,201,217,166,137,125, 22, 29,133, 40, 58, 90, 33,206,158,219,191, 92,173,120,246,
-242, 5,142,144, 28, 30, 30,226, 56, 30, 69,241, 86,183,131, 48, 86, 17, 47, 68,231,150,176,107, 21,231,197,247,207, 9,188,128,
- 63,255,243,191, 96,122,112, 76, 94, 26,214, 73,193,191,254,226,215,228, 21, 68,241,152,164,104,104,165, 67,157, 20,220,174,207,
-169,180, 33,140, 7,204, 2,248,209,159,253, 25, 79,206, 66, 28,213,197, 77,210,224,170, 20,124, 77,185,131,100,185,192,123,239,
- 1, 45, 46,145,242,192,149, 20,219, 53,155,100,129, 51, 24,224,133, 17,249,170,228,122,126,197, 38, 45,217,110,182, 52,186, 64,
-119,149,111,145, 87, 16, 4,118,228, 98,140,197, 10, 54,138, 86,186, 24, 35, 41, 27,131,240, 20,158, 31,226,248, 18, 99, 36,141,
- 78,236, 62,191,170, 59, 96,133,228,241,163,123, 4,142,224,217,247, 95, 51,142,125,254,228, 15,126,204, 7, 31, 62,161, 69,243,
- 15,127,251, 55,108, 86,183,124,241,171,239, 17,166,100, 50,250, 19,171,148,204, 50,162,200,227,240,104,204,112,236,146,229, 53,
-101,149,208, 10,193,124,177, 67, 52, 21,171,155, 75, 54,235, 20,229,197,228,149, 32, 91,110,121, 90, 75,198, 7,103,136,214,170,
- 17,165, 4, 95, 6, 72,223,144,119,187,148, 86,216, 42, 49, 10, 67,166,211,136,192, 25, 67, 83, 80,213, 53, 77,211, 82,234, 6,
- 45, 29, 86, 69, 65,236, 6,228,218,102,221,123,190, 75,154,215, 56,142,103,171,125, 12,131,104, 0, 66,113,179,216,242,111,191,
-250,146,147,163, 67,126,247,189,123, 12, 3,143,109,178,198, 43, 44,114,179,212, 53, 15,206, 78,249,193,239,254,136,255,242, 87,
-127,199,124,185, 98, 16, 90,129,205,193,100,202,193,244, 16,218,134,219,155, 5,143, 31, 62,178,144,135,197,154,192,183,123,204,
- 90,107, 36,214,202,166,148, 75,217,150, 44,118, 41,126, 56,178,106,244,151,111, 40,141, 64, 75,143, 93,182,225,235,111,159,179,
-218,101, 4, 81,200,131,247,222, 71, 75,129,242, 67,132,155,115,117,117,193,250,249,134, 93, 2,255,233, 47,126,202,175,191,252,
- 13,203,205, 22, 39, 8,169,155,150,221,122, 13,210, 65,111,211,125, 74,218,118,187,165, 46,173,167, 91, 57,150,118,101,132,253,
- 48,248,174,143,196,134,112,216,103, 71, 18, 14, 98,132, 84,251, 48,133, 60, 75, 8, 29, 15,237,150, 72,209, 50,138, 3,194,214,
-179, 9,129,190, 66,185,142,141,116,212, 26, 79,194,112, 56,178,241,153, 61, 61,174,126,235,229, 77,146,132, 44,203, 88,109, 55,
-152,186,194,119, 3,124,229,208,118,123,249,216,141, 49, 77,203,102,179, 33, 41,115,146, 44,163,174, 53, 82,218, 23,178, 18,150,
- 17, 80, 20,197,190, 83,175,107, 75, 46,235,199,230,253, 46,188, 44,203,189,210,189, 23,171,134, 97,216,253, 92,181, 87,189,247,
-170,234, 94,157,252,219,135,253,111,171,236,251,195,191,231,202,207,231,115,164,178,254,226,182,243,119, 95, 92,158,219,113,172,
-146,221,117,118,187, 3,206, 30, 98,129, 23, 90,245,123, 39,220,139, 58, 79,113,191, 42,232,109, 71,253, 72,183,215, 9,244,160,
- 29,207,145, 24,173, 57,152, 88, 33, 85,216,125,214,243, 60, 33, 81, 25, 97, 24,147,236, 54, 68,113,140,114,125,178,188, 34,201,
-106,110, 87, 59,123,248,123, 62,190, 31,162,181, 33, 73, 18, 46, 47,175, 1,187, 3, 54,173, 61, 72, 44, 83,220, 39, 73, 50,148,
-107,157, 10,147,201, 4,223,119,169, 43,195,243,231,207,239,176,198, 83, 92, 41,137, 67,235,215,239, 11,160,166, 47,136, 16, 56,
-242,237, 1,219,116,236,248, 30,204,211,139, 27,251, 98,243,110, 49,117,183,232,234,175, 71,191,191,166,187, 39,109,247,243,189,
- 37, 44, 73, 18,134,113, 72, 24, 88,140,172, 20,173, 21, 70, 26, 77, 20, 14,152,175,223,236, 97, 64,187,237,150, 42, 47,172, 50,
-189, 3,203, 8, 33,120,254,236, 37,163,209,136,135, 15, 31,179, 77, 19, 94,189,122,129,214, 13,163,113, 76,178,181,221,100, 85,
-148,150,158, 87,151, 52, 13,132,157, 83,196,166,211, 25, 76,103,137,147, 82,226, 74,181,239,230,219,142, 79,144,231,185,213, 93,
-117, 40,227, 32, 8,246, 57, 3,142,239, 89,191,119,154,226, 71,214, 90,122,125,123,195,217,217, 25,201, 46,229,234,234, 6, 37,
- 93, 78, 79, 79,185,184,184,102,179,190,193,113, 2, 38,221, 52,207,241,189,189, 3,197,126, 6,160,174,173,150,235,252,252, 21,
-174, 84, 32, 12, 81,224,243,248,201, 35,102,211,201, 94,225,190,236, 48,205, 74, 41, 6, 81,204,252,122,137, 68, 48, 28, 12, 56,
- 60, 60,100,189, 73,248,242,235,223,176, 92,174,249,225,239,126,194, 79,126,252,123, 68, 81,196,237,141,213,150,140,134, 49, 97,
- 24,242,248,209, 35,150, 43,139,146,189,124,243, 18, 26,205,251,239,127,200,120,122,192,131,211, 19, 98,199, 97, 29, 71,220,220,
-220,176,221, 38, 76,199, 19, 60, 63,216, 91,107,109,164,183,229,117,184,174,157,208, 41,209,176,205,115, 59, 45,236, 33, 72,157,
-224,114, 60, 30,163,181,182,168,227, 40,178, 26,158,222,162, 43, 37,194,233,211, 6,251,116, 64,246,207,149, 83, 21, 53,131,192,
- 82,226,242,194, 30,232, 69, 45, 48, 34,192,141, 92,118,133,166, 52, 18,122,159,172, 1, 47,176,138,226, 97,212,210, 82,225, 72,
-143, 70,231,212, 70, 83,149, 91, 28, 21,224, 40,159,193, 16, 46,111,118, 44, 54,134,100, 87,178,221, 25, 16, 62,121,163,217, 21,
- 21,142,204,248,230,219,151,220,172, 82,214,155,148,218, 8,116, 43, 25,132, 3, 90,229, 17, 68,113,231,129, 7,225, 58,168, 64,
-209,212, 13,137, 78, 49,186, 6, 13,110, 16,224, 75, 23,225, 52,184,194,161,109,149,197,110,118,120,203, 44,217,177,222, 46, 57,
-220, 4,252,193,127,248, 19,142,166, 33,129,175, 40,179, 45,223,126,245,133, 5, 4,100, 5,174, 19,113,114,124, 64, 83,185, 36,
-107,205, 50,206,109, 36,172,177, 80,150, 48, 26,224,250,130,188,240, 73,179, 53,207, 94,172,112,148, 65, 86,176,219,100,156,222,
-159,114,239,225, 7, 20,165, 38,203, 45,133,171, 42, 43,124,215,161,166, 65,121,146, 97, 16, 34,242, 2,183,133,154, 45,117,221,
- 80,154, 45,145,119,134, 51,244,201,146,156,186,213, 72,199,101, 60, 58,225, 73, 52,228,106,177,197,159, 38,108,202,138, 10,112,
-148,160, 21, 6, 67,131, 48, 54,216, 34,165,101,183, 92, 83, 20, 13,111,202,132,159,255,234, 55,120,142,228,241,241,144,195,209,
-144,245,226, 13,147,193, 0,148,160,200, 83, 30, 63,122,196, 79,255,240,143,249,255,254,234,175,201,139, 2,199,139,240,252,152,
-123,247, 30,242,213, 23,191,102, 60, 24,179, 94, 37,136,214, 16,197, 35, 76,163,169,117,133, 49, 22, 92,161,235, 22, 90,137,242,
- 6,220,110,175,137,133,207,124,149,242,252,205, 45,175, 47,111, 8,135, 99,140,116, 57,188,247,128,184,110, 88,174,183,188,190,
- 90,112,177,248, 25,203, 93, 70,105, 4, 89, 13,171, 4,194, 0,146,172,226,235,175,191,197, 72,133,114,125,138,178, 38, 26, 12,
-240, 92,151,245, 98,249,142, 29,203,116, 2, 30, 87,217,157, 93, 31,123, 25,248, 1,109, 99, 95,178,111,243,152,173, 18,186,197,
-128,177, 54, 38,207,243,240, 93,193,104, 60,230,254,217,161, 85,205,155,154,186,110, 40,202,146,178,172,168, 76,131,239, 74,102,
- 93,242, 91, 89,105,242,188,232,172, 65,182,227,206,210,130,237,110,219,253, 57,174,245,115,183, 45,181,174,200, 43,129, 83, 58,
- 32, 33, 43,114,146, 34, 35,201,114,154,214,224, 57, 62, 82,216,226,161, 63,132, 29, 99, 25, 15,189,160,170, 63,212,239, 98, 71,
-239, 90,161,246, 94,241,238, 48,191,203,224,238, 15,239,254,215,191, 29,235,218, 95,219,143, 83,251,235,105,241,154,134,210,216,
-162,220,104,219, 65,187,202,170,199,107,109,129, 42,162,181, 71,154,233,199,177,157,184, 47,138, 6,214,195, 91,149,180, 6,219,
-145,100,102, 47,244,203,187, 34,172,239,142,123, 81,160, 80, 86,213, 94, 23, 37,135,179, 99, 78, 78,206,240,220, 0,215,177,234,
-225,155, 34,231,213,171,115,222,123,242,136, 70,183,100,105,129, 16,138,197, 98,133,112, 61,210,196,250,150,227, 56,182,163, 93,
-165, 24, 14,135,220, 44,230, 93, 36,176,135,214,181,229, 70,180, 16, 4,150,198, 86,119,107,149,209,104, 68, 20, 69,188,185,184,
-102,189, 94,115,112,112,192,143,127,242, 19,150,203, 37,223,126,251, 45, 89,145,239,215, 4,150,182, 89, 89,251,106,119, 45, 90,
- 99,104, 0, 79,118, 2,191,250,109,226, 94,207, 10, 40,122,165,188, 49,182,224, 52,111,197,140,253, 61,170,202,234, 29, 80, 17,
-162, 1, 97, 69,158,142, 84,118,220, 60,155, 66,199,127, 31,196,118,148,188, 93,109,236,245,237,112,183,162, 59, 52,234,202,174,
-134, 70,163, 67, 27,106, 50, 24, 80, 85, 21,183,183,183, 28, 30,206,248,244, 7, 63,180,133, 20, 48,136, 34,218,198, 16, 5,182,
- 8,219,110,183,108, 86, 43,235,102,168, 74,242,213,214, 30,206, 66,224, 72,235, 70,112, 92,133,239, 90,145,158,227, 89,170,228,
-120, 50, 97, 50, 30,239, 69,164, 90,107,134,145, 13, 7,170,186, 14,191,159, 12,172,182, 27,174,175,175,185, 93,204,145, 82,114,
-124,116,194,245,245, 53,227,241,148, 89,215,141,247,147,149,126, 95,175,148,162,204, 45,192, 70, 74, 56, 60,154,225, 74,197,226,
-230,154,150,134,147,163, 67, 90, 4, 39,199, 51,102,211, 9, 18, 67,145, 89, 8,213, 32, 10,105,234,154,219,171,107,130, 56,218,
-235, 22,194, 48,230,232,224,144,215,175,175,153, 78,103, 56,202,227,235,175,127,131,209,154,167, 79,223, 99, 54, 59,178, 5,117,
-145,177,221,110, 57, 62, 62,230, 39,191,255,123,124,242,241, 71,124,241,229,151,156,159,159,243,236,251,111, 56, 61,190,207,116,
-114, 64,224,187,220, 63,187,135,239,122,180,173,237,160,211, 44, 99,151, 36, 12, 71, 49, 72, 65, 89, 87, 36,233, 14,199,145, 29,
-156,200,197,117, 21,210,113,169, 1,161, 36, 69, 90, 33,178, 12,207, 27, 97,104,109,128, 87, 85,147, 22,182,104, 66, 40, 16,146,
-166, 53, 56,174, 71, 81, 84,221,245, 53,232, 22,140,144, 56, 54,226, 79,115,179, 92, 18,142,102,148,186,101,185,201, 48,202,101,
-181,203, 17, 42,164, 50, 45,186,168, 17,170,177,149, 65, 85, 49,159,223,144,139,156,155,249, 49,227,160, 64, 57,157, 90, 82, 57,
-148, 70,147,107,137, 81,208,122, 83, 50, 19,243,226,102,197,245,213,130, 86, 56,108,147, 53, 23, 87,223, 83, 26, 77,101, 66, 26,
- 92, 92,199, 39,112, 3,154, 22,202,160,237, 24,234, 30,227, 97,184, 87,133, 38,121, 73, 83,151,248,190, 71, 28,135,248,158, 71,
- 93, 25,132,163,240, 91,123,243, 13, 2,221, 52,136, 86, 32,149, 96, 54,155,226,202,150,225,112,200,236,112,202, 98,113, 73, 85,
-149,172,138,156,225,120,136, 41, 74, 38, 7, 71, 76,135, 71,156, 30,191, 71,182,219,114,126,190,230,245,229, 45,173,146,156, 28,
-223,195,245, 51,148, 55, 6,225, 83,155,134,155,155, 43,218,182,238,130, 12, 92, 14,131, 3, 90,229,113,120, 52, 68,249, 54, 95,
-119,177,218,161,148, 98,190, 88, 97, 90,141,174,106,188,192,103,155, 36, 56,158, 79, 94,214, 54,249,169, 42,136,124, 24,199, 35,
-118,142,205,144, 55,109, 75,171, 20,110, 56, 96, 56,117, 73, 43, 67, 94,107,178,170,166,105,237, 40,218, 49,150, 36, 20, 71, 1,
-109,219, 80,214,154,209,193, 17,217,118,199, 55,207,206, 57, 58, 24,241,240,222,239, 81, 84, 37, 71, 71, 39,148,121,129,112, 93,
-180,174, 72,202,138,167,239,127,200,147,151,111,248,246,203, 95,241,250,252,138, 40, 28,209,224, 32, 28,159,175,190,253,158,162,
-170, 25, 68, 33, 70,215,236,146,205, 59,163,224, 30,217,121,124,124, 12,142, 98,216,122,108,171,150,188,149,108, 74, 77, 74,206,
- 46, 95, 18,198, 99,198, 7, 51,170,213,142,151,151, 87,123, 65, 87, 85, 85, 72, 47,224,248,158, 75, 28, 6,124,243,237, 51,148,
- 31, 48,157, 28, 48, 95,172,136,135, 67,226,225,152,215,111,206, 25,143,167,123,212,166, 29,107, 70,221,139,181,193,119, 20,162,
- 31, 17,214,186, 59, 96,237, 24,184,168, 43,170, 34,183,197,143, 16,120,174,131, 66, 80, 87, 5,133,104, 25,133, 62,147,225,152,
- 42, 93,161, 68, 67,232, 40, 92,161,240,165, 75,227,187, 72,215, 35, 10, 60,218, 70, 19, 71,246,224, 75,146,100,239, 73,207, 50,
-123,200, 24, 83,239,153,222, 66, 41, 11,199, 48,154, 36,221, 33,164,164,210, 53, 82,216, 3, 7,161,236, 14,186,109,105, 58,142,
- 55, 24,154,166,221,219,162,238, 90,206,122, 5,178,214,205,126,108,219,119,225, 61,174,182, 63,212,251, 42,189, 31,139, 42,229,
-188,227,157,110,247,123,183,183,227,242,186,174,247, 1, 45, 65,224,237, 21,206, 85, 93,216,172,247,178,234,118,167,109,231,179,
- 22,239, 36,145,245, 7,209, 93, 45,192, 93, 47,188,231,217,160,150,119,124,219, 93,222,122,111,225,211, 90,147,166,169,237,184,
-186,177,188, 77,229,178,135,225,245,245, 53, 69,150, 83,229,183,100,165,161,106,182,196,131, 1,141,177, 60,130,251,247, 31, 80,
-230, 25,174,235,114,124,124,138,112, 92,110,111,175,187, 66,200,177,136,106, 47, 32, 12, 67, 38,147, 9,171,205,102,239, 81,150,
-142, 2,229,112,120,124,196,252,230,150,231, 47, 95, 16,250,246,107,117, 85,237,253,224,189,157,209,116, 7,121,239,173,230, 78,
- 46,121,239,131,239,179, 3,250,196, 49,189,223,151,131, 82,111, 11,182, 61, 38,246, 14,133,173,191,142,246, 89, 48,251, 67,187,
- 44, 75,170, 14,101,236,185,106,143, 20, 54, 2,194,208,239, 86, 65, 45, 66,180,251, 67,176, 79,203,155,205,102,123,193,229,229,
-229, 21, 39, 39,199, 60,124,240,152,213,118,195,252,230, 10,223,181,212,187,158, 82,231,251, 62,239,191,255, 62,131, 65,100, 45,
-139,142,251,238,247,215,154, 61, 78,214,113, 28,202, 70, 91,255,186,227,236,121, 0,187,221,206, 38,177,101, 25,223,191,120,110,
-159,211, 78,179,161,219, 78,191,210,229,208,111, 54, 59,155,136, 41,157,253,228, 98, 54,157, 50,157,205, 24,196,241,158, 2,169,
-187,100,206,193, 48, 38,242,237, 10, 69, 96, 8, 2, 23,215, 17,148,165,182, 88,234,213,130,166,169, 57, 59, 61,230,213,171,194,
-142,164,117, 77,109,218,142, 56,103,105,146, 70,223,181, 31, 66, 16, 68, 72, 9,111, 46,175, 73,211,132,179,211, 99, 30, 61,122,
- 0,237,132,229,114,201,118,181,162, 72, 83,142,142,103,124,250,163,223,229,244,232,128,155,235, 57, 89,178, 97,211, 52, 40,215,
- 97, 50, 59,100,118, 48,197,245, 60,178, 34,103,177,174, 81,158,178,220, 15,217,157,143,216, 41,162,157,208,212, 29,168, 71,190,
-147,239,208, 39,242, 25, 99,136,162,208,174, 29,179,212,178,248, 75,187,138,203,139,180,187,238,254,254, 51,189, 95,209, 93, 92,
- 92,241,230,226,138,243,235, 5,133,121,198,124, 83,176, 45, 12,149, 17, 76,143,207, 72,138, 26, 93, 55,148,217,142,182, 17,132,
- 82,160, 90,137, 82,130,112, 16, 81,227,144, 26, 23, 89, 25,218,170,194,241, 36, 82,128,214, 64,124,192,229,214,240,145,152, 82,
- 58, 37, 55,229,142,229,250,150,188,216,226, 68, 49,179,201, 4, 71,197,180,218,177,217,236, 69,193,102,151, 88, 54, 54,134, 42,
- 45,187,253, 86,109,133,110, 64, 37, 21, 42,112,112, 66,139,160,244,125,159, 56,240,105, 2, 65, 20, 14,112, 28,143,108,152,217,
- 28,230,166,161, 72, 19,234, 70,179, 73,172, 48, 45, 24, 12, 80, 12, 40,179,148,180,168,201, 77, 13,198,197,108, 75, 28,225, 19,
-196,167,212, 77,105,241,169,173, 1,109,199,229,214, 71,106,112, 29, 15, 63,136,209,117, 97,237, 30,216, 16,148,205,110,135,227,
-214,132, 40,118, 73,198,110,151, 48, 26, 14, 64, 57,248,174, 79,107, 50, 68,255, 50, 45, 11,242, 52,195, 21, 6, 69, 77,232,216,
-140,233,182,177,128,129,109,150,179, 75, 51,210,186, 69,250, 3, 54,187, 28, 33, 61,164,242,236,205, 69,226, 73,141, 68,144, 39,
- 9,181, 49,180,120, 20, 26,138,198, 62, 20,223,191,186,230,211, 79, 50,212,176,229,120, 58,101,117,123,137,170, 13, 89,219,242,
-139,207,191,131, 96,138, 84, 62, 15,159,126,196,213,124,199,248, 96,195,106,185, 97, 50, 59,229,102,190,230,122,190, 97, 19,228,
- 44,231, 11, 26, 83,239, 15,204,190,203,112, 66,135, 10,143,139,203,107, 62, 28, 29, 33,195, 49, 87,219,156, 18,151,193,100,198,
-166,154,243,213,179,231,196,183, 75,138,170,182,132, 49,215,161, 41,106,218, 22,188,120, 68, 28, 70,100,233,142,163,179, 7, 8,
-233,176,222,110, 25,140, 70, 24,108,241,112,122,122, 15,211,128, 80, 46, 38,181,169,113,142,215, 69, 43,214, 26,215,113,246,193,
- 32,109,107, 59, 50, 37, 4,253,214,179,109, 91, 92,207,239,224, 33, 37, 85, 81, 19,249, 46,227,192,199,115, 5,138,154,199,247,
-102, 32, 90,194, 40,166, 54, 45,141,145, 36, 89,193,205,237,146,166,204,173,178,215,117,152,231, 5,243,249,156, 74,219, 93,113,
- 86,116,193, 38, 82, 90,225, 81,211,224,133, 17,225,112, 72, 89,100,236,210,132,214, 88,177,154, 31, 69,120, 97,132, 64, 81,119,
- 56, 81,187,127, 85,184,174,221,111,214, 45,160,186,206,218, 88,252,164, 49,221, 72,190,235,214,123,194, 90,159,106,101, 11, 45,
-103,127, 16,220, 29,179,171,238,112,221,163, 73,239,136,180,250, 67,221, 24,131,234,186,103, 99, 96,183,219,225, 41, 27,121, 42,
- 60,219, 25,246,137,106,129,223,191, 0,197,126,100, 44,101, 69, 84,191, 37,205,221, 21, 88,221,165,227, 69, 81,244, 14, 84,231,
- 29, 70,120, 28,144,101, 41,207,159, 63,103, 60, 30, 50, 95, 46, 88,173, 23, 56, 82,112,114,114,130, 20, 45,167,199, 71,100, 73,
- 66,154,151,180, 40,226,241, 1, 82, 89,113, 85,239, 15,119,186,149,208,100,124, 64, 89,150,204,231,243, 14, 83,219,210,120,205,
-126,207,219,199,120,166,233,142,166,133, 93,146,161, 60,143, 52,207,216,237,118,124,248,254, 7,252,244,167, 63,229,226,252,156,
-139,139,139,119, 14,116, 43,131,180,207, 88, 43, 4,178,203, 87,247, 29,151,186, 59, 32,122,102, 65, 16, 88,177, 84,221,232,253,
-247,216,239,220,109,161,166,247, 69,152, 16, 98,159,211,238, 58, 86,143, 80,105, 77, 16, 5,123,126,124, 95,188,105,109,240,253,
-128,241,193,140,186, 46, 17,170,195,179, 42,144, 10, 48,134,164, 11, 45, 2,200,171, 18,157,165, 12,194,136, 90,151,140, 70, 99,
-118,187, 29,175,158,191, 98,155,110,169,155,106, 79, 57,108,219, 22,175,242,216,213,197,222, 7,239, 40,241,110, 49,215,190, 43,
-182,148,221,181, 55, 29,150,185, 63,136,143,142,142,246,235,162, 48, 12,105,193,250,183, 59,141,129, 35, 21,203,249, 2, 93,183,
-239,104, 84,238,221,187,103,167, 47,181,157,168,248,174, 75,154, 52, 56, 66, 50, 30, 15, 81, 74,178,238,166, 9,101,153,226,168,
- 8,163, 43, 92, 37,144,162,165, 44, 50,238,223, 63,227,242,252, 13,233,118,195,201,201, 25,173, 80,228,185,205, 5,233, 19, 0,
- 93, 55,236,214, 19,138,249,220,166, 99,254,232, 71, 63, 32,207, 18,110,174, 46,184,190,188, 34, 73,182, 60,125,239,177,101, 4,
-248, 62,111, 46, 94,147, 23, 59,222,127,255,125, 78,142, 14, 25, 68, 33,187,245,142,182, 49,104,211, 34,154,130,166, 49,196,126,
- 0, 50, 66,186,150,165,160, 77,205,170, 44,113, 28,143, 97, 60,176, 43,212, 93, 66, 93,175,112, 28, 65, 94, 86,104, 93,209, 52,
-245, 91, 62, 65,211, 34, 29,251,190,247, 60,143,245,102, 75,145,151,164,153, 21,118, 86, 69, 73, 89, 55,208,108,222, 33, 70, 10,
- 33,113,254,246,239,254,142,239,158,151,140,167, 16,207,102,156, 61,124,196, 39,199, 15,248,171,191,251,103, 94, 95, 95,161, 17,
- 40, 39, 0, 36,174,178,221,115,154,110,104,105,136, 85,200,237,114,197,193,200, 37, 12, 20,186,209, 4,194, 90, 31,178,188, 70,
- 3,187,172,161, 50, 30,206, 96,202,193,217, 61,188, 81, 72,154,207, 41,170, 5, 77, 91,147,172,230,228, 73, 78, 93,105,138,218,
-166, 58, 29,204,142,152, 78, 15,168, 76,195,237,124, 65,224, 91, 78,118,169, 27,138,178,198, 13, 3,134,131, 33,117, 85,225, 9,
-133,114, 36, 77, 89, 99,116,133,233, 31, 54,105,213,166, 71,167, 39,164,217, 14, 35, 36,111,174,111, 49, 90,227, 7,138, 32, 26,
- 34,101,203, 40,112, 40, 11, 77,158, 72,100,109,152, 14, 71,148,153,198,117, 61,140, 73,217, 37, 27, 90, 37, 17, 82,163, 43,141,
-160, 67,129,202,144, 56,116, 41,139, 4,164,176,213,185, 23,208, 52, 53, 81,108, 3, 70,226, 56, 38, 75, 83, 92,215, 33,165,197,
-147,146,201,200,238,119,134,177,207,201,212,167, 78,230, 28, 31,140,173,144, 43,219,145,164, 57,243,237,150,210, 72, 50, 13, 69,
-179, 36,111, 90, 60,111,192,104, 52, 97, 89, 45,104,187, 17,160,163,192, 81,138,182, 5,227,120, 20,101,131,240, 34,134,177,207,
-171,171, 57,255,252,111,159,241,159,255,242,143,120,254,234,130,161, 47,241,253,128,245,205,150,219,197, 10, 34, 69, 48, 24, 49,
-154, 28, 32, 49,124,243,236, 21,105,178,101, 16,134, 60,249,240, 19,116, 85, 91, 49,218,193,113,103,139,178, 59,195, 65,215,241,
- 40,165, 72,139, 28,127,116,200,139,203, 57, 6, 72,202, 6,237,120, 60, 63,191,160, 21, 46, 31,124,252, 3,242,162, 66,119, 66,
- 53,132, 96,155, 21,196,113, 72,139,100,147,165,132,126, 72, 89, 85, 24, 83, 16, 68, 3,162, 40, 98,177, 90, 18,134,118, 23,219,
- 10, 24, 70, 33,152,183,108,241, 32, 8,208, 18, 60,199, 78,134,132, 77,246,232, 96, 31,134, 86, 89,242,150,235,123,164,157,208,
-173, 44,114, 34, 79,241,240,222,125,126,250,233, 39,124,240,248, 33,131, 64, 17, 7, 10, 41, 90,226,193,136,186, 17, 20,117,205,
-235, 55,215,252,243,207,127,193,213,237,130,193,120, 66, 85, 85, 44, 87,243,142,140, 53,182,130, 50,229, 16, 13, 6,111,199,221,
-104,198,227, 17,179,131, 9,219,245,134,162, 42,187,224, 21, 31, 71,186,208, 64, 90,164,100, 73, 2,166,101, 56,140, 25,141, 70,
-123,172,104,159,192,213,239,196,251, 14,207, 30,220,111,185,225,186, 49, 68,234,237, 78,243,238, 46,253,183,201,102,125, 23,120,
- 55,117,235,110, 26,151,253, 53,237,126, 34,224,186, 62,109, 99, 19,232,250,176,153,254, 64,246,187, 60,116, 27,118,242,246,197,
-222,171,159,251,206,191,167,158,245, 93,252, 94, 1,221,249,159,123,209, 89,191,103,204,202, 28,221, 54,228,235, 37,135,199, 71,
- 20, 69,134, 16, 45,179,217, 33,163, 65,204,102, 61,231,228,244,136, 42, 31,178,217,165,120,126,140,112, 93, 90, 28,218,214, 48,
-159,223,114,124,120,184, 31, 51, 71, 81,196,225,204,102,216,187,174,107,119,234,142,191,191, 46, 61,226,180,105, 26,178,162,220,
- 23, 64,143,187,252,235,197, 98, 65,210,221,163,187,236,254,190, 11,170, 59, 75, 97, 43, 4,230,142, 0,240,110, 54, 64, 63,153,
- 40,138, 2,217, 57, 41,180, 53, 18,237,239,131, 49,134,186,122,187, 42,218,103, 9,116, 66,190,190,115,235,105,132,131, 40,218,
- 39,152, 25,211,139,136, 5,134,186, 91,141,217,123, 94,228, 5,203,229,146,250, 81, 77, 20, 69,148,165, 93, 35, 68,126,192, 87,
- 95,189,228,201,147, 39,140,199,246,243,235, 41,171,203,145,242, 45, 61,208,212,154, 93,189,123,235,150, 64,188,147, 1,223, 23,
-132,162, 7, 33,185,206,219,159,235, 10, 55,173, 53, 71, 71, 71, 12,135, 67, 30, 60,120,192,225,225,225, 94, 43,176,218,110,246,
-194, 81,173, 53,203,229,106,159,107, 80,150,118, 21,227,251, 62, 85,153, 18,196, 97,167,107, 10,136,195, 16,199,177, 17,185,190,
-239, 34,101,132,146, 13,101,158, 82,215, 33, 94,215,229, 15, 6, 3,254,242,191,251,239,249,223,254,247,255,149,179,123,167, 72,
- 97, 89, 2,121,158,226,121,150, 15, 31,117, 5,215,237,237,109, 7,220,241, 72,146,142,108,233, 57, 60,124,252, 30,183,215, 23,
-172,215, 91, 62,251,229,231, 28,204, 38, 60,121,248,144,147,147, 19,182,235, 21,207,159,125,135,231,121,156, 29,159,240,244,201,
-189,142,227, 32,216,238, 82,222,220,220, 80,228, 14,194,113,153, 78,199, 86,228, 91, 27, 43,104,212, 45,198, 5, 41, 92,130, 32,
-100, 60, 18,108,210,132, 93,154,189,163, 75,233,159, 1,215,117, 41,234,146, 40,138,222, 34,172, 3, 43, 28, 44,125,155, 71,239,
- 72, 69,219,233, 30,236,196, 45,196,153,175, 74,222,255,104,196,195, 39, 31, 18,142, 14,168,164,207,213, 42,193,143, 2,188,157,
-139,231,248, 20, 90, 35, 29, 1,178,165,172, 50, 28, 37, 80,194,161,214, 57,101,150,211, 86,154,180, 76,113, 29, 75, 42,242,131,
- 16, 7,151,192,149, 44, 23,115,190,250,242, 11, 74,173,201,171, 12, 67,202,225,212,227,242, 50,231,230,250,134, 97, 16,113,122,
- 58, 37, 12, 99,142,143,143, 57,156,157,160,156,128,217,236,136,127,252,231,159,145,239,182, 28, 28,159, 82,232,150,176,149,232,
- 72,146,151, 21,201, 70,227, 72, 73, 45, 74,242,221,214, 2, 71,218, 5,202,113,105, 16, 56,202, 99, 48, 26, 19, 68, 33,159,252,
-232, 83,251,208, 10,129,112, 90, 26, 37, 40,165,131,112, 97,151,111,240,253, 16,119, 60, 64,105, 73, 82, 23,232,182,166,174, 51,
-226,161,162,206, 75, 90, 1, 69, 9,121,105, 24,142,142,241,188,198, 42,148,219, 26,161, 4, 69,145, 33,165, 3,194, 86,148, 85,
-163,113, 20,148, 69,130, 82, 80, 85, 5,158, 47, 45,156,197, 85, 84,101,134,164,102, 20,251, 44,183, 13,202, 52, 28, 12, 7,148,
-169, 5, 58, 36,105, 97, 65, 26, 26,242,214, 65,184, 1,101, 99,111,250,241,209, 17, 77, 85,179, 89,205, 25,198, 19,178, 60,237,
- 94, 10, 2,161, 20, 82,185,228,181,193,147, 62,191,252,252, 43, 62,121,114,202, 79,126,248,148,124,183,162, 41,180, 93,169,184,
- 62,165,110,209, 21, 93,120, 2,132,225,152, 58, 41, 40,112,237,143,186,230,131, 15, 62, 38,240, 45, 19,124,190,156, 83,153,148,
- 36, 41, 89,101,183,232,214, 88,177, 83, 85,146,100,118, 68, 40,148,131,227, 5, 12, 38, 49, 66,186, 52, 66, 82,232,110, 7,236,
- 5, 20,117,101,213,236, 69,137,231, 6,248,129, 71,101, 90, 12, 86,136,164,117, 67,189, 75,112, 93,139,129,108,104,193,104,202,
-220, 62,224,227,241, 24, 73,251,142,184, 75, 58,160,140,162,165,217,139,104, 20,118,140,219, 51,224, 45,160,194, 97, 48,136,153,
- 12, 98,102, 7, 99, 36, 21,129, 27, 18,122,214,178, 84, 23,153,157,186,168,144, 56,244, 41,178,132,182,177,135,234,243, 87, 47,
- 40,138,146,217,108,214,141,210, 28, 76, 91,218,180,166,166,193,152,114, 31, 6, 51, 25,199,221,135,121,199, 98,181,222, 31, 36,
-170, 5, 71, 56, 4,158,207,116, 58,230,241,195,251, 93,177, 81,239,163, 92,211, 52, 37, 45,236,184, 90, 98,171,110, 21, 4,251,
-206, 60,203, 50, 92, 71,237, 5,110,182, 67,125,155, 75, 14, 80,102, 54,178,184,236, 68, 94,123,250,151,182,135, 77,208,141,189,
-251,195,168,105, 26, 76, 93,221, 25, 7, 55,123, 69,114, 95,100,248,190,191,199,101, 22,105,182,183,179,217, 64, 20,203,152,239,
-217,249,150,194, 86,117, 73,102,110, 7, 34,169,247,190,250,190,235,205,243,156,193, 32,162,174,114,180, 46,112, 61, 15,104,121,
-248,240, 1,215,215,215,180, 24, 30, 63,126,200, 34,114,136,124,159, 56, 8, 16,142,100,187,203,144, 52, 68,131, 49,174, 31, 80,
-230,214, 58,228,121, 54,136, 69, 25, 99,243,182,203,146,203,203, 75,170,218,174, 23,214,235, 98, 31,250,209,103, 2,140,199, 99,
-206,175,174, 41,180,166, 53,134,123, 39,167, 84, 69,201,205,205, 13,227,225,136,167, 31,124,192,213,197, 5,151,151,151, 20, 90,
-227, 73,137,231, 56,148,157, 69, 45,232,132, 96, 82, 74, 54,203, 21, 77, 85,239, 83,212,154, 78,253,189,191,151,216, 38,163,213,
- 93,225,217,173, 45,106,211, 96,132, 21,223, 1,228,121,214,165, 10, 70,232,238, 90,141,135, 67,132,144, 8, 33,187, 81,182,100,
- 48, 28,113,125,157, 33,165,193,119, 61,242,220,162,100,253, 32, 36, 47, 75,222, 92,158,115,118,118,134, 84, 46, 97, 52,224,243,
-207, 63,195,113, 28,158, 63,127,206, 39,159,124,194,167, 63,252,148, 36,177, 97, 46,195, 40,222, 3,141,130,208, 90, 11,191,251,
-238,187,189,138,255,174,237,170,135, 24,249,142,107, 1, 58,190,131, 23,248,123,128,141,211,133,147, 68, 97,136,235, 90, 38,255,
-237,237, 45, 87,215,215, 0,172,119,219,119, 0, 69, 96,247,231,190, 23, 80,118,162,187,104, 16, 51, 28,197,236,118, 59,134,113,
-220, 69, 44, 43,110,110,175,186, 0, 30,197, 54, 91, 17,250, 46,185, 41,144,162,197,119, 20,187, 36,229,124,185,224,255,254,191,
-254, 79,254,240,167,127,192,249,249, 57, 85,173, 49,166, 98, 58,157,114,123,187,160, 49,243, 14,114,100, 39, 32,174,114, 24, 13,
- 6,251, 8,230,241,104,192,124, 62,199,247, 3,218,214,176,219, 46,121,115,241,154,171, 55,111,248,209,167, 63,224,222,189,123,
- 54,215,190, 46,217,110,215, 96,236,115,236, 7, 33, 39,131, 3,226,113,200,171,215,151, 20, 85,193,108, 54, 99, 20, 15, 16, 66,
- 49, 8,109,238,189,174,106,104, 29,164, 8, 40,203, 29, 7,227, 3, 54,155, 13,190,107,133,141,111,181, 46,214,127, 46,148,203,
-122,155, 16, 15,172,232, 84,183, 45,231,151,151, 28, 29,204, 56, 60, 58,230,222,201,137, 21, 16,119,248,234,241,120,130,243,167,
-127,254,135,248, 97,132,150, 14,155,172, 96, 91,230,188, 58,191,100,177, 90,114,112, 56,229,118,181,197,180, 13, 45, 22,109,169,
- 48,180, 82, 32,187, 74,189, 71,114,182,186,165,109, 90, 28, 89,163,148,131, 16,146, 32,240,248,226,251, 11,110, 22,255, 5, 35,
- 36,143,158,222,227,127,250, 31,255,140,195,163,128, 42,127,143,205,122,197,116,120, 72, 20, 13, 72,118, 25, 89,150,227,168,128,
- 32,136, 88,175,231, 28,205, 38,188,120,241, 2,217,182,184, 93,221,168,117, 77,150,164, 84,117,131,163, 4,187,245, 53,158, 43,
- 58,113,200,196,194, 74, 16, 24, 33, 9,194,136,213,118, 5,173, 61,184,116, 31,178,209, 85,158, 70,106,252,145, 71, 85, 45,112,
-219,152,113, 48, 34,144,146, 42,221, 34,196,142,166,117,240, 35, 65,154, 23,196,131, 24, 33, 61,118,201,134,237, 38, 97, 50, 28,
-227,184,138,182,238, 66, 92, 26,141,214, 85,231,123, 6, 93, 55, 84,141,217,143, 32, 93, 87, 17, 69, 33,141, 46,168,138, 29,142,
- 20, 76, 71, 51,222,124,187, 38, 80,138,233,112, 72,150,101, 8,199,165, 49,138,101, 90,178, 91, 36, 84, 90,227,226, 34,125,104,
- 27,236,139,195,113,137,218,246,181,122, 0, 0, 32, 0, 73, 68, 65, 84,253,200,222, 72,169, 48, 66,129,116,108,158,110,107,215,
- 4,181,105, 17,173,228,111,255,233,103, 12, 7, 1,247, 78, 14,216, 20, 13,175,175, 22,228,165, 65, 69, 30,186,195,189,186,174,
- 3,181,225,114,190, 33,221,189,102, 48,140,240, 29,151,193,116,198,225,209, 12, 17, 12,136,198,118,103, 94,214, 27, 76, 99,153,
-223,121, 35,184,221,164, 93,180,164,178,137,101,194,122,136,155,170,162,105, 13, 77,151,210,213,182, 22, 33, 42,148, 77,132,107,
- 5, 52,186, 5,209,118,126,106,235,137,221,119,158,162,235, 18,238, 36, 91, 73, 41, 81, 93,183,211, 98, 48, 13,221,248,217,170,
-177,165, 20,123,129, 92,139, 65, 52, 10, 83,234,142, 69, 46,208, 85,205,235, 87,207, 56, 59, 12,241, 30,223,103, 54,116,104,245,
-219,221,171, 20, 46,210, 21, 68,129,223,209,218,118,251,176, 21, 59,255,148,251,100,166,126, 44,106, 21,168, 14,180, 26, 33, 91,
-142, 14,173, 98, 55,203, 19,150, 75, 43, 32, 27, 6, 3,104, 37,174,235, 48, 30, 13, 8, 92,135,180,195,218,238,118, 9,181, 54,
-251, 16,144,134,246,157,221,116, 89,148,239, 8,176,250,142,174,239,182,123,170,220, 93,241,213,221,238,175, 63,216,239, 30,252,
-119, 49,175,191,221,241,223,237,252,251,238,223,122,243,251,175,147,239,220, 15,249, 91,191,111,223,213,245, 26,140,254,247,234,
-227,109,123,171,212,254,123,166,161,210,182, 32,204,202, 12,173, 13, 89, 89,128,176, 97, 47,182,139, 75,153, 76, 38, 76,196,160,
-139,126,245,145,110, 75,163, 75, 2, 79,145,165, 5,215,215,151, 76,167, 83,188,208,219,167,218,197,113, 76,182,120,235,158,232,
-167, 6,246,229, 55,102, 58, 59,228,106,190, 64, 72, 27, 13,218,163, 81,251, 23,234,205,205,205,254,154,250,189,240,175,170,186,
-232, 75, 65,161, 53, 65, 24,188,163,114,239,255, 94,117, 93,239,149,204,119, 39,135,253,247,113, 55, 21,237,238,125,232,239, 89,
-255,223,125,177,114,119,117,209, 63, 43,113, 28, 83, 85, 59, 28,199,166,148, 13,135, 67,148,116,247, 12,133, 40,138,168,171,134,
-213,106,181,239,252,139,162,224,250,250,154,147,147, 19,210, 52,225,205,155, 55,232,178,218, 91, 16,149,180,130, 45,207,177, 1,
- 89,178,243,220, 59,242,237,247,210, 63,107, 66, 73,178, 50,223, 79,148, 44,112,198,186, 84,242,206,221, 48,153, 88, 88,203,110,
-103,221, 10,181,105,246, 35,240,182, 19,255, 29, 28, 28,112,116, 60,227,250,234,150,178,202,169,138, 18, 37, 36,113, 28,117, 29,
-108, 69, 89,212, 72, 90, 92,215,161, 46,115,124,199,225,244,244,148, 34,143, 9, 67,159,139,215,231, 76, 15, 38, 24,109,245, 6,
- 69, 81, 88, 33,228,119,223,163,148, 69,106,103, 89, 70, 81, 86,184,174,143,114,253,189,237,238, 46, 79,127,189, 94,219, 85,192,
- 32, 2, 99, 45,105,117, 93,115,179, 88,240,175,255,242,115, 30, 63,121,200,251,239, 61,193,159, 76,216,174,231, 36, 73,137, 82,
-246,154, 81,215,248,174,207,239,124,244,148,219,249,154,111,190,252,181,197,207, 14,167, 76, 70, 99,170, 35,203,198,208,186,161,
-200, 10,116,109,181, 94, 31,127,252, 49, 55, 55, 55,182,160,233, 38, 99, 86,236,233,236,255,189,172,242, 61, 75, 95,107,205,106,
-187, 65,157,159,115,117,121, 65,158,102,140,199, 99, 14, 14, 14,168,170, 26,231,163, 31,253,144,243, 55,151,124,249,213,111,216,
-230, 53,211,227,123, 52,173, 97,157,164, 24,199, 90, 5,236,230,184,127, 40,187,189, 93,219,210, 24,216,102, 57,219,172, 68,181,
- 6, 85, 27, 28,101,104,218,146,214,177, 15, 81, 20, 40,106,211,128, 99,168,117,198,116, 26, 35,154,130,216, 15,112, 70, 83, 94,
- 60,127,205,225,236, 4,144,108, 86, 9, 66, 22,248,126,193, 63,253,203,207, 80, 78,192,237,237, 45,141, 1,215,139,112,130, 8,
-215,117,112, 68,133,116,193,247, 92, 14,238,159,118, 12,220, 22,229, 57, 8,116,183, 79,135, 2,144,202,165,110, 26,139,159,236,
-118,129,117,247,194,106,100,139,206, 19,154,166, 37, 48, 21, 59,145, 32,234, 26,161, 51, 38, 35,129,239,199, 28,157,156,241,253,
-243,207,168,170, 37,227,201, 17,174, 55, 34, 12, 70,184, 65, 72,154, 37, 72,169,112, 3,133, 35,216,103,221,182,216, 23,135,106,
- 12, 90, 27,156, 46, 17, 75, 8,129,209,246,225,140, 3,135,201,208,130, 50,146,221,150,225, 96, 96, 21,198,141,173,188, 39,195,
- 17,117,227, 32,243,154,178,177,106, 91, 71, 42,155, 14, 37,109,247, 68,219, 80,245,106,104,169,208,128,233,136, 87,162, 5, 35,
- 92,158, 95,220,242,245,203, 11,166, 39,103,228, 77,201, 42,173,169,112, 9, 29,151,182, 85,182,211, 83,146,172,110, 88, 37, 25,
-203,229, 26,103,187,181, 10, 95,207,227,105,249,100, 47,220, 88,172,150,172,215,235,253,139, 59,235,196, 28,116,127, 95, 28,207,
- 22, 23,173, 85,161, 55, 77,139,234, 2, 82,238,142, 49,239,114,205,189, 46,171,251,183,161, 37,125,238,183,166,179,102,153,198,
- 14, 3,187,151,111,211, 58,160,236, 62,175,109, 91,104,236, 78,178, 7,173,220,141,191,204,243, 28,169, 43, 60,183,133,255,159,
-174,247,106,174, 35,203,178, 52,191, 35, 92, 93,191, 18, 0, 65, 77, 38, 35, 35,114, 82, 84,138,202, 18,211,221,214,253, 50, 79,
-253,191,171,103,108,102,170,103,170, 50, 35, 69,100, 72,106, 2, 4,112,181,235, 35,230,225,184, 59,192,204, 26,154,209,194, 64,
-144, 8,192,197, 57,103,239,189,214,183,188, 32,141, 52,179, 73,132, 22,129,143,175,188, 64, 40,129,241,225,160,152,164, 49, 90,
- 7, 43,153, 47, 75,154,174,197,121,133, 19,130,174,237,208,113, 50, 90,179,154,166, 35,142, 37, 93, 87, 99, 90,139, 82,146,211,
-229,146, 72, 74,234,186, 36, 73,166,228,105, 70, 89, 7,224,197,114,182, 68, 96,168,171, 35, 77, 83,245, 21,241,109, 94,251,176,
-208, 15, 31, 71, 74, 35, 17, 24,239, 62,157,137,107, 53,162, 84, 15,135,195, 56,163,214,113,220,199, 87,138, 79,212,243,131, 85,
-110, 56,100,142,155,185,151,224,233,149,182,183,155,139,179,208,118,237,168,105,161, 98,140, 96,117,136,219,175, 33, 37, 82,235,
- 16,193, 10,193, 39,110,123,132,177,214,212,253,193,103, 88, 69,236,157, 77,237, 80, 22,120,194, 65, 38, 74, 2, 59,187,174, 67,
- 71,234,104, 90,118,187, 13, 89,127,255,166,147,140, 36,210, 76, 82,141,212, 10,227, 13,109,221, 34,147, 41, 58,146,236,182,135,
-144, 43, 46, 28, 81, 20,198, 6,211,217,132,245, 54, 84,139,105, 26,247, 27,180, 14,239,100,207,142, 87,253,193, 49,209,183,156,
-245, 56,142,241,214,177,223,239,153, 78,167, 60,127,241,130,203,203, 75,174,183, 91,242, 36, 65,234, 80,213, 38,195,129,110,176,
- 18,246,246,182,182,109,199,124,117,217,183,166,181, 84,227, 70,238,189, 71,184,240,123,184,215,183, 30,120, 17,222, 61, 17,226,
- 52,133,208,163, 40, 82, 8, 65, 62,157,135,240,147,214,144, 79,115,154,155, 61,222,220,182,252, 27, 27,218,254, 69,213, 96, 28,
-148,213, 49, 84,160,139, 5, 74, 41, 14,135, 61,223,126,251, 45, 63,249,252,115, 22,171, 37, 95,125,247, 23,182,251,221, 45,218,
-216, 88,170,162,164,173,107,222,237,110,152,229, 83,234,182, 65, 18, 10, 39,132, 27, 89,240, 90,107,212,112,184, 27,242,216,123,
-215,145, 55,183,226,200, 97,220, 17,216,245,201, 40,178, 27, 42,254,121,223,249,153,207,123, 38,128,130,155,245, 21, 15, 31, 62,
-100,186, 92, 98,108, 75,113,216, 83, 55, 37,166,105,130,141,119, 58,101,187,190, 33,141, 53,235,171,107,156,115,172,111, 54, 56,
-107,120,248,240, 33,127,249,203, 95,198,131,208,225,176, 69, 69, 73,159,194,167, 56,150, 53,137, 80,196,113,132,167, 68,169,208,
-125, 56, 30,143, 20,197, 33,180,187,179, 24,156,165, 53, 30,231, 21, 66,198, 28,203,134, 31, 94,189,197, 26,207,139,207,158,115,
-118,255, 1,199,125,136,105, 53,206, 17, 71, 41,142,134,213,234,148,231,207, 30, 49,203,167,188,251,112,193,126,189, 97, 58, 63,
-225, 71,207,159, 81,221,191,207,119,223,125,199,225, 80, 48,159,207,121,255,254, 61, 81,172, 48,109,139,183, 22,211,191, 47,222,
- 90,234,254,125, 30, 4,165,117,213,246,207,155,160,107, 45,219,237,150,223,252,242,151, 92,188,123, 79, 87, 55,152,166,197, 27,
-139,254,250,219,215,108,247, 7, 44,138,108,146,224,122,127,164, 3,154,166, 70,201, 8, 45,193,154,192,118,118,222,227,173,165,
- 19,146,198, 91,138,214,112,232, 28,169, 74, 72, 0,225, 45,149,233, 23,230, 44,167,168, 67,172,167,243,142,237,241, 64, 99,131,
- 0, 68, 89, 77, 93,213,124,247,237, 91,182,219, 48,255,217,239,142, 8, 29,209, 54,134,111,190,125,137, 16,138,123,247, 31, 48,
-201,103, 68, 73, 74, 58,153,144, 78,242,176, 16,244,194, 33,211,180,216,206, 81,183, 93, 95,201,216,190,122, 83,104,233, 57, 22,
- 59, 58,227,168,218,142,182, 87,212, 58, 31, 22, 60, 35, 60, 62, 82,196, 58, 6, 39, 66, 43,187,110,152,166,158,166, 52,188,249,
-254,134,207,158, 63, 35, 18, 25, 69,221, 98, 90,133,214, 73,104, 43,215, 62,216,243,154, 3,105,154,160,227, 80,245,117,198,224,
-189, 25,115,160,141,181, 76, 38, 57, 90,201, 0,199, 16,130,249, 98,202, 60,139,144, 62,180, 10,139, 34,240,148,207, 86, 39,148,
- 85, 67,158, 42,158, 61,121,202,236,164,225,245,197,154,215, 31,174,232,202,138, 40,201,194, 11, 93,213, 76,226, 32,168,176,117,
-139, 20, 14, 33, 29,194, 15,181,109,239, 69,150, 9, 42,154,243,187,175, 95, 17,231, 11,132, 86,188,254,120, 67,231, 21,201,209,
-224,164, 70, 71, 9, 78,132, 5,186,168, 43,148,142,152,205,103, 36,177,102, 58,155,145,102, 57, 55,155, 53,187, 99, 65,213, 25,
-208, 17, 66, 10,156,177,120,173,137,251,150, 81,104, 67,106,144, 10,133,234,149,225,125,133,233, 61, 18,112, 61,157,203, 1,206,
-152, 49,179,251,238,156,113, 16,124, 13,191,198,121,221,157, 77,234,118,134, 28,254,159,206,153, 81,221,141, 15, 8,207, 1,120,
-145,164, 9,221,126, 79,228, 29,211,233,140, 7, 15,150,252,232,249, 19,206,239,173, 80,190, 67,223,129,180,120,103,198,217,148,
- 16,130,162, 42, 33, 10, 54, 24, 99, 45, 94, 69,120, 17, 22, 0, 29,167,253,220,180,101, 54,153, 96, 91,129,119, 13,137,142,200,
-167, 25,113,164, 88,204,102, 76,242, 21,105,154,227,108,216,192,195,172, 86,144,104,133,109, 3,186,117,168,188,135, 10, 61,138,
- 34, 18,173, 70,244,107, 8,224,104, 63,169,184,135,170,238,174,216,106,168,242,194,230, 30,141,215,212, 24,131,240,140,201,114,
-195, 47,173,245,232,189, 31, 15, 66,119, 14, 2,109, 99,130,248,106,252,220,109, 12,107,211,184, 79, 14, 98,195,159, 15,223,211,
- 80,145, 15,247,112, 84,225,223,185,135, 97,174,218,161, 98, 77,156,102, 92,175, 55, 84,101, 77, 20,107,202,227,129, 15, 31, 46,
-121,246,248, 33,145,210,236,214, 27,166,179, 9,147, 52,235, 29, 5, 2,239, 45,157,169,200, 39, 65, 64, 85,215, 13, 55, 55, 21,
-203,229,201,104,119,155,205,102,163,207, 63,136,221,130, 32,247,120, 60,146, 78,242,177,227,146,197,201,173,195, 66,235, 48,110,
-236, 59, 14, 3, 19, 32, 82, 18,169, 85,159,206, 5,105, 28, 17,165,201,232,199, 86, 66,253, 77,103,100,248,237,250, 13,252,110,
-222,248, 93,229,251,232, 74, 24, 46,143,112,227, 72, 36, 73, 18,170,170, 30,163, 88,189, 20, 28,171,146, 40, 86,228,147, 25, 18,
- 75,115, 56,112, 60, 30,105, 27,243, 73,215,160, 44,195,188,118,121,182,192, 57,131,137, 99,138,226, 24, 90,219,179, 25,207,158,
- 61, 67,190,127, 55,186, 20,164,146,156,156,156,160,148, 24,163,140, 7,161, 95,107,186, 94,144, 26, 14,211,178, 15,252, 25,126,
-226, 16,246, 21,198, 55,147, 36, 37,207,243,158,215, 62, 99,190, 88,140, 90, 28, 99, 12,251,226,136,115,142, 60, 75,216,237,118,
-212,117,133,142, 36, 95,124,241, 5,147,108,202,239,255,240,101, 80,244, 75,207,110,189,193,217,142,211,229,146,171,143, 23, 56,
-103,153,207,167, 28,118, 27,166, 39, 15,104,154,134,229,242,132,170, 42,240, 54,208, 3,219,182,229,242,242,146, 40, 78, 80, 42,
- 28,136,210, 73, 76,148,165, 97,108, 32,250, 49,137,237, 48,166,237,187, 43,205, 88, 13, 91,227,209,145,166,109, 26,144,138,197,
-242, 4, 37, 97,191,223,242,205,247,223,211, 90,203,231,159, 61,229,241,163, 7,108,110, 46, 41,251, 88,214, 36,138,104,235, 10,
-156, 39,139, 36, 95,188,120,198,110, 91,112,189,222,241,234,135,111,152, 47, 79,248,252,243, 31,179, 90,173,120,243,238, 45,247,
-243,115,222,125,120, 59, 6, 23,133,184,217,240,238,151,101,137,185,147,219,112,247,112, 39,132,160,147,146, 63,255,249, 43, 86,
-243, 57,243,249,156,213,106, 21,222,235,155, 67,197,213,245,142,235,205,158,237,254, 64,237,160,234, 12,243, 76, 49, 95,157,176,
-217, 30,192, 13, 37,186, 12,255, 33,180,121, 13,154,155,170,229,195,190, 36,149,158, 84,134, 42,218, 43, 11,186,165,244,154,123,
-207, 95, 48, 91,158, 81,119, 5, 82,117,124,245,221, 43, 98,225, 16,181,165, 57,214, 44, 23, 79,104, 59,104,182, 45,219, 93,131,
-138, 29, 85,217,112,255,209, 11,170, 42, 40,212, 27,179, 69,104,193,164,158,112, 42, 79,104,170,109,111, 19,211, 56, 27,194,226,
-147,222,146, 51,155,205,136,163, 4,223,163, 18,213,218,209,180,134, 88, 57,186, 56,208,208, 24, 54, 92, 4, 85,231, 48, 77,135,
-111, 29,145,181,204,243,132, 71, 15, 86,156,158,196, 56,223,177,187, 57,160,125, 76, 85,214, 56, 95,145, 53, 21,214, 67,219,173,
-137, 83, 69,156, 8,170,174, 64,121, 23, 88,202,222, 33,133,194, 75,133, 71, 6,148,165, 76,200,146,184, 7, 87, 40, 34, 41,153,
-230, 83, 86,171, 37,217,116, 70,221,116,100,147, 41, 19,173,120,249,254, 61, 74, 75,178, 56,230,122,127,160,171, 43,154,178,164,
-117,146, 12,201,177, 42,123,128,129,194, 26, 71,231, 29, 17, 10,229, 29, 18,143,116,142, 0,155, 20, 8,169, 73,243, 19,126,248,
-240,142, 78,125,133, 16,130,235,235, 53, 90,197, 68,113,129, 80, 26,213,131, 46,226, 56,166,110, 67,144,134, 78, 98,238,157,159,
-241,224,209, 67,234,182, 97,123,216,178, 61,108,131, 34, 27, 79,219,118, 56, 99,232,172, 37, 77,110, 55, 30,235,192, 15,184, 85,
-231, 17, 30,172,233,240,206,226, 76,176,177, 72, 66,118,182, 21,224,100,200,228, 14,109, 92,129,119, 14,255, 87, 41,101, 1, 85,
-249,169, 88, 71, 8, 17,190,119,229, 71, 69,174, 31, 44, 85, 10,252, 64,238,210,161, 42,139,227,148,121, 18,177, 92, 78,195,252,
- 44,137,136,164, 64,218,176,193,122,111, 65,200, 59,112, 11,249, 73, 5, 38, 84, 16, 44, 69, 82,142,173,187, 56, 14,226, 81,215,
-221, 82,218,146, 56, 35, 77,130, 77, 47,146,138, 73, 26, 42, 70,143, 96, 62, 13,252,104, 79, 80, 4,135, 44,239,142, 40,137, 64,
-170, 81,232,213,222, 17,147, 73, 41, 41,155,186, 23,104,245, 51, 90, 60, 22,143,232,175,199, 80,141, 12,155,209, 93,218,215,221,
-182,176, 20,242,111, 14, 3,220, 25,109,220,110,220, 65,159, 97,189,165, 49, 93,120,167,117,132,190, 99,197, 50,198,208,245,157,
- 23, 92,251, 9,244,166,109,219, 49,150, 18,232, 51,212,109,111, 3, 44,123,241, 96,175,176, 23, 2,132,166,110, 58,142, 69, 77,
-221,152,192,115,111, 29, 85,217,114, 40, 42,234,186, 97,181, 90,241,238,245, 43, 16,142,243,243,115, 92,225,144, 82,145, 79, 4,
- 8, 9,194,177, 88,204, 48,166,165,169,236,136, 47, 77,211,148,229,114,217, 19,190,162, 94,212,231,123, 75, 88, 61,142, 79,100,
-103, 70,235,150, 19, 33,159,125, 16,186,238,118, 59,222,189,123,199,242,100,197, 79,239,159,243,250,245,235,176,113, 73, 56, 84,
- 53,247,239, 61, 24,245, 3, 1,179,122,107,103,131, 16,187, 25,174,185,251, 27, 76,239,221,235, 63, 32,128,101,172, 71,122,225,
-144,126, 54,159,205,168,235,134,195,225, 48,110,242,187,221,129,173,220,115, 54,207,209, 82, 35,220,145,226, 88,208,116,150, 36,
-201,250,249,124, 69,148, 36,196,198,132,131,175,247,161,101, 93,150,188,123,251,150,197, 98,198,143,159, 62,231,124,121, 50,134,
-182, 32,111, 15,103, 85, 85,241,234,213, 15,163, 5,113, 56,152, 13, 63,159, 16,158, 40, 9,137,133,147,222, 74, 39, 9, 10,255,
- 52,186,141,156, 45,138,130,205,118,203,205,205, 13,175, 94,189,162, 40, 10,132, 86,125, 56,208,173, 72,212,116, 1,171,252,147,
-159,172, 48, 93,195,119,223,126,224,183,127,255,143,156,223, 59, 37, 86,138,135,143,238,243,252,217, 35, 62, 94,188, 39,203, 18,
-166,147,251, 8, 33,121,246,236, 25,171,213,138, 23, 47,158, 83, 28,142, 92, 94, 94,242,143,255,252, 25,255,242, 47,255,194,253,
-243, 7, 60,121,242, 12,135,228,207,127,249,154,237,254,200,211,167,207,232, 12, 33, 10, 53, 78,241, 46,140, 78,133, 16,200, 72,
- 99,241, 52,166, 67,197, 19,166,243, 37,182, 11,142,149,162, 44,144, 42,164,171, 93,223,236,120,253,250, 53,255,244, 79,191,229,
-193,249, 9,147, 56,166,109, 26,132, 15,174,164,214, 20,253, 97, 79,112,118, 58, 35,203, 18, 62,222,172,169,155, 35, 58, 86,172,
- 78, 23,100,121,194,245,213, 21,139, 30,114, 21, 42,244,219, 81, 70,211, 52, 60,232,153,245, 3,222,120,112, 20, 4, 42,161, 32,
-235,137,123,187,253,134,188,204,120,240,224, 1,250,223,127,255,103,182,219, 45,173,245, 40, 29, 49, 63, 57,101,145, 36,188,123,
-255,145,183,239, 47,200,146, 20,172, 67, 56,217,207,157, 4, 14, 25,112,118,202, 81,152,142,235,227,145,200, 25,180, 9, 51,117,
-132, 65,167, 17,141, 87, 44,207,238,113,114,239, 33,157,171,177,166,224,229,171,119, 52,251, 45,139,104,206,249,234, 62,101, 93,
- 4,112,133, 15,130,169, 36,202, 80,177,224,233,139,123,108, 54, 27, 46, 63,126,196,138,208, 90,181,214,147, 38, 25,171,229, 50,
- 0, 23,132, 34,138,114,148,138,198,246,238,160,188,117, 46, 44,130,249,227,135,163, 5,199, 11,137,214,225,226, 57, 47,130, 39,
-222,120,254,248,229,159, 40,170, 45,159, 61,123,198,175,126,254, 99, 94, 60,187,143,148, 53,215,235, 43, 54,187,130,123,167, 39,
-188,191, 40,120,251,230, 61,157,191, 4, 29, 81,213, 71,116, 44,176, 88, 92,215,129,183, 36, 74, 18, 71, 10, 41,116,104, 81, 34,
-113, 34, 84,166,145, 18,164,145, 66,251,154, 68, 26,126,241,249,143, 56, 91,253,138,206,121,202,174,225,216, 84,148,155,146, 15,
- 31, 47,137,179, 25,141,147,188,121,243,134,139,203, 45,214,121, 60,190, 71, 88, 58, 98, 21,147, 78,250,116, 44, 29, 13, 94, 22,
-240, 2,217, 87,155, 14, 69,231, 4,173, 79,105,137,185,216, 4, 2,154,119,142,217, 52, 70, 11, 25, 84,244,174, 79,197, 18,142,
-188,127, 49,133,244, 28, 14, 59,222,188,121,133,138, 35,170, 58,216, 42,164, 86, 97,190,220,129,143, 34,226, 52,165,105,186, 48,
-103,117,161,194,150,138,126,204, 96, 49, 38, 40,141,233,249,228,178,111,159, 75, 33,145, 3, 60,197,121, 92,207, 91,191,187,105,
- 15,155,209,255, 95,229,174,148,194, 71, 30,111,236,184, 9,122, 9, 66, 6, 0,172,242,130, 8, 69,219,186, 81,248, 21,254,125,
-192,179, 90,211, 32,124,139,165,223,172,148, 6,161,194, 34,172, 36,113, 58, 33,201,114, 68, 31,225,105, 92, 25, 34, 90,117,207,
- 40, 63,134, 10, 6,235, 41, 11,131,166, 67, 45,131,251, 65, 75,232, 76,176,208, 68,113,131,142, 34,230,139, 25,121,158,115, 60,
-238,192,215, 68, 58,184, 73,140, 15,237,236,193,202,162,123,138,216,128,130,237,122, 21,252, 48,199,180,125,126,243,112,173,134,
-191, 55,136, 7,239,138,232,238, 42,150, 7,188,231,221, 17,135,115, 14,217,179,219,199,207, 57,255,137,122,126,140, 19, 29,191,
-166,248, 4,123,171, 4, 35,103, 61,164,150,117,159, 28, 48,234,186, 30,115,204,239,138,243, 2, 72, 40, 4,231,236,247,123,234,
-230,154,182, 13,235, 76, 81, 53, 52,157, 71, 74,205,118,179,231,252,228,132, 72,107,234,178,194, 25,203,160,190,200,146, 20, 29,
- 71, 92,223,172,195,225, 80, 65,146,198, 88,219,177,219,109, 88, 46, 79, 70,194,217, 80,109,226, 25, 49,182, 89,146,146,198, 33,
- 58,122,104, 9,183,174, 25, 41,120, 89,150,141,162, 62,173, 53, 73,150, 50, 95, 46, 40,218, 0,149,193,249, 79,244, 7,119,209,
-188, 67,247,194,245, 27,228,127,116,152, 10,207,255,237,199, 81, 20,141, 22, 50,121,103,196, 33,101,248,122, 1, 11,219,245,157,
-132,176,206, 84, 85, 67,150,168, 79,220, 13, 89, 22, 54,245, 65, 57,222,244, 63,155,148,146,233,100,130, 86,112, 56,236,200,178,
-132, 60,205,192, 58,190,251,230, 27,118,187, 29, 78,220,118, 89,194,230,173,195, 33, 39, 73,251, 3,112,176,160, 57, 99,105,186,
- 26,217, 42, 14,135, 3,254, 46,152,199,123,108, 27,172,128,211, 60,167, 40, 10,226, 36,225,225,195,135,227,104, 66, 88, 69, 93,
-151,216,174,233, 15, 69, 9, 73, 18,196,153, 87, 87, 31,131, 3, 67,107, 54,219, 27, 30, 61,122,200,118,125,205,215, 95,253,153,
-231, 79, 31,115,122,186,226,234,227, 37,222,245,194,236, 56,163,107, 45,111,223,190,229,242,195, 5,135,195,142,255,245, 63,255,
- 39,234,186,230,203, 47,191,228,127,255, 63,255, 47,242,233,156,243,243, 7, 28, 14, 7,190,252,195, 31,153, 78,231,252,252, 23,
-191,164,170,250, 53,202, 7,232,207,112,207, 3,126,215, 7,161,173,212, 72, 97,131,159, 92, 70,232, 40,197, 90, 67,211, 58,254,
-245,127,126,201,111,127,243,107,158, 60,186,143, 38, 66,171,132, 88,105,146, 88,178, 92, 6,178,157, 51,146, 60,159,242,197,242,
- 41, 55,187, 35,151, 55,107, 60,138,229,242,132, 52,141,249,252,179, 31,227,189,167,232,121, 11,109,219, 6, 38, 65, 63, 18, 8,
- 21, 59,159, 28,246,157,115, 56,211,178,143, 35,180, 16, 92, 92,190,103,189, 94,243,231, 63,255, 25,189, 59, 52,100,179, 19,114,
- 25, 84,219,105,154,225, 85,120, 8,242, 52, 14, 27, 69, 64, 79,244,109,162, 8, 60, 72,169, 16,210,146,229, 25, 34,150,136, 86,
-226,132, 7,169,112, 61,152, 37,203, 50, 50, 61,165,110, 74,202,250,128, 22, 45,177, 52, 68, 50, 34, 85, 57, 77,213, 98, 69,135,
- 76,131,232,105, 58,153, 32, 85, 76,162, 68, 88,152,147, 9,247, 31, 61,189, 93, 4,186, 22, 37,166, 72, 26, 82, 21,226, 80,227,
- 40, 69,104,213,251, 36, 13, 93,211, 6,165,166,112,104, 29,225, 92,131,116, 22, 77, 88,192, 20, 45,222,120, 76,107,168,155,134,
-245,118,195,147,243,148,159,254,167,191,227,139, 31, 61,197,214,123,142,219,151, 68,145,101,154, 74,210,108,202,189,135, 15,200,
-166,167,252,251,159, 94,242,251,175,191, 69, 88,141, 17, 13, 77, 27, 54,207, 88,197,204, 39, 9, 89,154, 96,234,138,253,225, 72,
-139, 69,147, 16,101, 83,138,170,196,209,145, 0,146,138, 4,184,191, 92,179,221, 21,236,143, 37,173,141,121,245,250, 53,219,195,
- 62, 44,210, 58,226,102, 87,132,202,163,171, 81, 42,197,120, 9,210, 35, 93,192,153,202, 56, 65, 69,221, 39,192, 18,225, 28,120,
- 27,148,182,206,227, 93,196,245,118,135,149, 49,135, 22,140, 83, 76,210, 41, 66, 6,207,191,150,146,178, 58, 98, 76, 71,150, 36,
-156,223, 59,237, 31,170,154,166,169,248,120, 85,133, 83,162,150,225,185,192, 5,239,168, 14,209,151, 67, 53,230,156,195, 15,254,
-117, 21, 54, 23,172,193,117, 6, 21,197,253,162, 20,188,228,182,179,183, 12,121, 25,102,183,194, 11,156,236,217,224, 74,224,135,
-135,214,249,177,194,177,253,200,196,139, 32,150,243,222,245,149,117,223,190, 86,183, 28,238,206, 89,172, 17,184,190,179, 52, 84,
- 45,101,233, 17, 98,142,150, 2,107, 90,160,235,125,183, 6,173,195,156,220,247,139,227,168,220,246, 33,104, 65, 20,183,109,175,
- 99, 81, 97,140, 37,141, 19,178, 56,195,116, 53,145,134,184,175,232,135, 13, 98,104,151,101,147, 8, 41,116, 16, 6, 58, 71, 93,
- 85, 8, 27,194, 55, 54,219, 29,199,178,198, 11,152,207,231, 97, 3,237,127,254, 0,141,241,159, 84,116,195,134, 58,250,150, 91,
- 51,110,230, 67,187, 88,107,141,113,127,187,185,223,229,194, 15, 93,137,168, 79,189,194,203,176, 1,245,234,247,187, 27,144,148,
- 18,231,123,123,157,138, 63, 33,210, 69, 73, 16,149, 77, 38,147,241,231,141,227,120,140,166,221,239,247,227,247,157,101,217, 40,
-146,178,214,134,206, 80, 23,225,188,162,172,250,136, 88, 20,157, 13,144,171,174,117, 92, 87, 91, 30,222, 59,114,178, 58,227,250,
-230, 35,219,237,158, 52,203,168,203, 42,132,103,244,241,160,135,195,129, 40, 74,122, 88,201, 17,173, 18, 14,135, 29, 74,199,204,
-102, 57,117, 29,196,101,173, 53,168, 62, 33,114, 28,101,120,168,250, 17,216, 96,139, 26,230,235, 81, 20,113,239,222, 61,214,219,
- 13, 85, 83, 51,159,207,233,156,229,226,226, 2, 45,251, 14,197, 29, 74,220,208,101, 26,237,109,198,192,157, 77,125,104,241, 15,
- 99,150,178, 13,215,194,221,105,219, 7,205,146, 29, 71, 76, 67,247, 99,240,204, 71, 50, 25,255,189,233, 42,136, 52,145, 78,152,
- 77, 21,141, 9,227,130,206, 26, 92,255,236,236,247,123,230,147,108,164,239,133,118,245, 50,180,155, 35,205,253, 39,143,120,115,
-241,158,111, 95,189, 14,100,196,254, 89,107, 76,135, 57,118,108, 14,187,113,132,114,247, 89, 50,166, 35,205,179,240,142,218, 64,
- 43,140,117,232, 88, 68, 82,141, 66, 56,231, 28,166,239,222,228,121,206,116, 58, 37,205, 3,236, 37,192,213,220, 24,161, 42, 37,
-188,122,245, 3,101, 89,112,118,118,134,109, 91,186,186, 1, 23,144,203,187,249,132,147,211, 21,211,105, 72, 0,204, 92,120,246,
-179, 44,227,205,219, 87,236,143, 7, 86, 39,171, 0,222, 57, 57,227,205,187,139, 49,112,231,226,226,130, 15,151, 87,236,247,225,
- 89,121,247,238, 29,243,121,192, 5, 15, 93, 47,221,199,171,118,198,208,118,134,206, 4, 75,242,108,177,100,185, 92, 6, 0, 85,
- 91,147, 78,102,188,152,159,176,217,108,248,225,229, 7,118,187,130, 23, 79, 31,176,154, 47, 72, 98, 25, 82,228,222,191,225,209,
-163, 71, 20, 77,205,122,191, 9,174,159,201,140, 39, 79, 31,112,179, 61,242,242,205, 15,220, 95,157,209,181, 33,105,241,176,219,
-115,117,117, 69,211,133,119, 72, 75,133, 64, 97, 76, 55,186, 41,248,107, 30, 4,176,221,220,224,173,227,199, 47, 62, 11,107,207,
-217,249, 61,206,207,207,169,170,138,143,215, 55, 61,215,186, 96,191, 59,144,102, 25, 66, 4,229,120, 72,141, 20,224, 61, 14, 63,
-158,122,195,248, 39, 40,152, 67, 59, 77, 98,173,196,182,150, 44,113, 28,247, 59,148, 78,208,145,196,212, 29,208, 34, 91,135,158,
-167,184, 16,110,133, 7,182, 69,129,106, 90, 28, 7,162, 56,163,109,143,204,103, 75,108,175, 36,197, 58,142,173, 9, 16,129,178,
- 65,171,144,192,100, 93,133, 78, 98, 84,127,232,240,194,225,188,195, 26,139,115, 6,165, 34,172, 7,103, 28, 78,180,184, 58, 44,
-240,219,253,161,111,203, 73,210, 36,162,170, 15,236,247, 27,164,175,145,177, 68,170,240,247, 90,219,130, 18, 44,166, 25, 63,121,
-241, 24,165, 5,203,179, 83,182,197,134, 63,125,245,103, 78, 22,247, 57, 59, 59,227,233,195, 7,196,145,226,221,235, 55,252,229,
-155,239, 40,171,142,116, 58,229, 88,119, 97,163,240, 26, 39, 60,138, 20,227,107,222, 95,109,248,127,126,255, 39, 94,127,188,102,
-146,196, 24,161,241,206,144, 36, 41,109,103,185,186,186, 2, 20,113,146,132,106,174,117, 68,241, 64, 18,171, 49, 93, 67, 26, 75,
-202, 54, 16,205, 68,223,190, 22,125,197, 30,212,240,132, 77, 79, 7, 8,135,138, 82,238,157,223,167,173, 42, 16, 30, 21, 75, 76,
-217,161,163,224,159, 95, 44,130, 2,255,216, 71, 16, 78,103,147,158,190,149,160,122,171,206,112,130,239,186,142, 93, 93,147, 39,
-179, 32,208, 49, 97, 33, 83,189, 80, 70,222, 9,242,240,120,156, 5, 99, 3, 63,221, 99, 81,178, 39, 85,221,177,100, 41,237,145,
- 34,234,147, 83, 36,222,135,191, 23, 20,231,195, 34,103,111, 43, 77, 99,113,158, 16,149, 41, 2,137,207, 24, 75,219, 25, 90, 99,
-113, 94,225,157, 10,104,221,126, 65, 13, 49,170, 53,177, 16,100,113,255, 72, 59, 79,212, 87, 68,194,121,232, 25,247, 90, 74,138,
-210,160, 39, 2,235, 5,120,133,210, 49, 74, 74,210, 84,113,118,118, 74,219, 26,156, 21,100,145, 68,234, 48,195,236,186, 46, 28,
- 32, 85,159, 57, 62, 73,232, 76, 77, 85, 31,113,166,229,120, 44,233, 26,199,116, 49,231,209,163,135,124,184,188,166,172,171,177,
-170, 12,108,104, 57,122,121,109, 47, 96,243,214,245, 28,238,112, 13,189,135,206, 90,164,214,180, 67,128,134, 53,100, 81, 54, 58,
- 61,198, 42,177, 15,230,208,119,194, 92,134,131,195,120,104, 16, 67,133,110,198,143,251,109, 38, 92, 59,211,144,250,232, 19,120,
-205,208,142, 31,126, 13, 98,191, 65, 41, 29,199,113,255, 28, 26,172, 15, 7, 56,235, 65, 9,133, 80,154,253,161, 36,155, 77,241,
-125,158,184, 16, 2,169, 99, 34, 17,192, 48,194,116,108,182, 71,126,242,217,115,182,219, 61,135,195,129,201, 36,197,212, 21, 54,
- 82,224, 19, 22,243, 41,235,245, 22,112, 1,115,219, 90,242,229,164,111,193,211,179,232,117,216, 96,202,146,198,118,108,183, 33,
-237,207, 89,131,233, 90,182, 85, 57,142,114,150,171, 5, 74,135, 77,102,146,103, 1, 78,148,133,214,244,116,154, 51,155, 77, 17,
- 2,222,189,189, 64,137,144,254, 35, 69, 16,120, 13,215,118,128,180, 4,158, 63, 72,125,171,248, 31,103,235,125, 66,160,115,142,
-214,134,103,211,249,112,159,135,231, 59,207,115,156,191,213, 92,180,214, 96,170,208, 61, 72,227, 8, 91, 55, 72, 15,117,111, 75,
- 28, 70, 31,101, 29,192, 73,171,197,156,235,235,107, 38,105,152,113,215,166,195, 88,207,195, 71, 79,248,230,219,191,176, 63, 22,
-252,250, 55,191,161, 51,134,203, 94,237, 63,153, 77,145, 62,116,137,166,147,148, 67, 17,248, 10,117,219, 34,188,199, 11, 65,164,
-117, 96,231,119, 29, 73, 18, 19,167,209, 56, 54, 80, 74,145,196,201,232,179,159,207,231, 40, 41,153,207,102,156,157,158,246, 49,
-166,113,176, 56,118, 53, 90,247,136,218,221,129,253, 62,220,227,187,182,203,151, 47, 95,242,244,201, 35,158, 63,127,206,199,139,
-247,188,122,245, 10, 29, 41,206, 78,239,225,144, 28,139,154,175,191,251,159,193,178,153,198, 28,203,150,120,127,224,244,244,148,
-166, 53,172, 55, 59,164,212, 76,166,115,218,206,208,116, 6,231, 5, 58,137,169,218,230, 19, 30,128,212,241,168,191, 48, 38, 88,
- 49,227, 40, 10,252,245, 52, 97, 54,157,134,152,218, 54, 0,173,238,221,123,200,251,247,111,217,109,214, 28, 54,215,124,124,127,
-194,143,158, 63,228,209,253, 19,164,210,252,240,242, 37, 58,137,137,211,132,120, 57,199, 19,178,208, 79,231, 25, 39,179,207,217,
- 92,111, 88,239,214, 60,124,248,136,103,207,159,240,229,239,255,200,213,213, 21,147,105, 78, 81,214,227,218, 56,116, 90,232, 9,
-143, 73, 18,145, 68, 41,229,225,192,122,187, 33,214, 81,104,195,239,118,232,251,247,206,216,172,111,216,239,247,108,182, 59,118,
- 27,137, 67,240,232,124,133,117,144, 77,103,236, 15, 37,222, 9,226,108,194,219,119,111, 49,120, 98, 17,179, 92, 44,201,245, 20,
- 97, 36, 74, 74,188,118, 28,154,150,174,179, 40, 37,104,125, 69, 62,157, 35,132,195, 25,135,144, 17, 82, 40,162,153,102,215,181,
- 40, 25, 84,234,157,115,212,157,164, 45,107, 38,249,156, 72, 40,210, 84,211,181,129, 65,236,173, 97,146,196,124,120,123,201,126,
- 26, 97,177,232, 88,245,194, 46,137, 22,138,186, 87, 90,230, 81,134,235,111, 80, 58,153,210, 25,207,225, 88,161,163,132,186, 51,
-220,172,183,236,143, 69,160,156, 69, 49,231,179, 57, 69,125,228,247,127,249,129,203,245,129, 31, 61,121,200,106, 49,193,148, 21,
-199,157, 65, 10,129,146, 71, 14,199,192,108,255,229,231,143,208,249, 4, 39,151, 60, 61,155, 51, 79, 83,186,166,161,109,111, 80,
- 78,145,136,154,127,254,245, 23,124,245,253,107, 14,101,104,241, 74,192, 10,129, 17, 62, 32, 9,245,132, 86,231, 92, 20, 29,215,
-141, 64,212, 37, 62, 59,162,176, 20,187,119,125, 92,172, 67,168, 16, 8,224,133, 10,185,238,198,224,141, 65, 96, 57,222, 92,145,
-196,138,174,217,143,144, 8, 37, 35,148, 76, 64, 74,156,112, 56,107, 73,162,176,115,137,190,237,249,225,253, 59,226, 88,147, 79,
- 82,186, 58,144,168,156, 51,236,139, 61,168,176,232,196, 89,218,199, 27, 6,160,222,161, 44,145, 85,152,157,214,117,195,186,220,
-132,232,213, 52,193,217,142, 72,203,222,123,233, 71, 50, 84,103, 61, 40,141,239, 83,221,156,115,161,133, 36, 85,111,121, 84, 88,
-231,208,125, 37, 18, 22, 59,200,178,156, 36,137, 80,113,132, 34, 10, 45,176, 62,227, 56,200,180,253, 24, 85, 57, 36, 81, 25, 17,
- 44,149, 97,195, 3,231, 20,130,160, 26,247, 82,208,182, 53,145,111, 89, 46,207,216,238,143, 32, 52, 50,142, 64, 9, 58, 52,179,
-197, 9,213, 97, 31,172, 78,211, 5, 87,155, 61,245,110, 77,121,216, 33,244,140,182,243,232, 36, 39, 75,115,154,186,100,154,165,
- 8, 83,209, 22, 91,156, 84, 33,138,209, 11,170,178,197,123,193,177,172,209,113,134, 32,162,106, 26,188,112,160, 90,156,237, 80,
- 73, 70,100, 38, 84,213,150,253,197, 7, 30, 60,122,198,124, 57, 67,151,138,178, 60,226, 92,152,163,102,105,204,122,125,236, 65,
- 55, 18, 99,116, 31, 16,100,111, 55,130,166, 37, 78, 82,234,182, 9,215,194, 9,100,207, 91,255,143, 4,106, 74, 41, 68, 47, 84,
- 68,136,112, 24,104,219, 64,189,178, 61,138, 87,132, 17,138,235,186,240,172, 37, 9, 81,172,130, 0,209,132,170,214,180, 29,109,
- 29,168,120,117,219, 4,126, 69, 23,218,165, 42,210, 28,203,162, 39,226, 57, 84, 20,211,116, 45, 66,233,176, 72, 57,143,113,158,
-174,173,177, 82,128,136, 56, 28,107,188,117,129, 14, 40, 28, 77,219,133, 81, 71,154,209,213,130,175, 95,191, 99,117,118,143, 23,
- 95,124,193,219, 87,223, 82, 28,119,220, 59,201, 41,170,146,253,218,112,122,254,136,174, 49,236,118,123, 36,138, 52, 73,240,214,
-210,214, 85,208, 54, 76, 38,104,149,226,253,156, 56, 14,237,254, 71,247, 31,112,220,237,137, 53,100,137,226,228,225,189, 49,216,
-232,236,252, 30, 31,222, 95,178, 92, 46,111,171,111, 37, 71,197,246,239,255,240, 37,190,107,121,250,224, 28,225,125,192,144, 54,
- 53,145, 82,100, 73,130,245,142, 40,138,169, 15, 7,240, 2,173,163, 62, 2, 86, 34,164, 14, 22,202, 56, 26,109, 93,198, 25,132,
- 15,207,234,161,168,112, 93,232,124, 84, 85,131,117,240, 68,233, 81, 59, 81, 86,199, 16,152, 18, 71,172, 78, 22,152, 38, 99,125,
-125,221,111, 76,150, 40, 9,156,128,229,124,198,113,191,227,131, 13,157,156,155,155, 27,150,203, 37,145,210,196,113,198,205,122,
- 71, 89, 26,172,105,248,195,151, 95,242,179,159,253,140,255,246, 95,255, 43,151,151,151,156,156,158, 82, 28,143, 33,192, 73,120,
- 78,186,150,195,110,207,118,191,227,254,189,115,102,139, 57,199,253,129,211,211, 85,216,212,251,240, 24,239, 3, 93, 47,207,115,
-146, 94, 83, 48,120,213,101, 47,212,220,172,183,220, 92, 94, 83, 20, 5,223,191,122, 9,194, 35,149, 98,177, 88,112, 60, 30,199,
-153,241,139, 23, 47,152, 77,114,138,227, 49,180,166,139, 2,128,197,234, 20, 47, 20,203,229,146,253,177, 64,199,154,203,205,150,
-109,209,211,226,122, 86, 64,231, 97,119,172, 57,150, 45,198,135,130,242, 80,175,105,141,195, 10,201,161,170, 57, 28, 43,164,212,
-227,200, 40,201,130, 10, 63, 28, 28, 5, 82,164,228,147,148,170, 56,112,221,148, 52,179, 25,211,108,194, 36,141, 33,142,136,163,
- 8,107, 60, 63,126,241, 25, 93, 91,242,195,119, 95,179, 63,238,216, 22, 59, 26,251, 99, 22,243, 64,215,163,110,137, 29, 44, 22,
-193, 54,103, 27, 67,158,230, 52,166,230,225,233,130,229, 52,227,195,229, 21,109, 87,241,155,191,255, 21,223,127,247,146, 31, 94,
-189,230,225,195,199,236,247, 71,116,146, 34,229, 48,230, 49,125, 54,128, 27, 93, 51, 58, 78,121,242,228, 17,187,195,158, 44, 75,
-208, 63,252,240, 3, 31,175,215, 40, 1,211,249,156,127,250,167,127,226,187,151, 63,176,221,237, 65,128,105, 90,148,244,232, 40,
- 98, 50,137,153, 77, 18, 14,101, 9,190,195,180, 53,194,205, 49,141, 7,221,245,213, 86,140,232, 57,190,105, 22,211,182,245,173,
-186, 87,134,112, 20,231, 5,149,105,113,206,144,106,141, 53, 1,237,153,166, 57, 90, 7,159,169,119, 6, 37, 5,177,146, 88,231,
-168,235, 35,214, 54,148,213, 17,143,164,182, 93,200, 29,238,171,153, 94, 19, 77,211,132, 5,174,105, 13,198,149, 32, 36, 87,155,
- 61, 77,107, 40,170,154,178, 49,200, 40, 6,149,226,163,136, 15, 31,111, 16, 31,133, 81, 0, 0, 32, 0, 73, 68, 65, 84,232,218,
- 26,231, 44,187, 99,197,246,120,228,252,228,132,249, 36, 65, 11, 69,117, 56, 4,102,120,215, 33,180,102,189,222,178,123,115, 68,
-167, 25, 89, 18, 81,155, 2,141, 71, 90, 67, 91, 91,242, 84,112,118,127,197,229,250,154,119, 31, 95, 34,162, 20,173, 52,194, 7,
- 14,184,195, 82, 24, 67,106, 18,114,161,144, 73, 70,113,104,121,243,225, 18,233, 44,179, 73,204,249,217, 25, 75, 17,225,133,102,
-247,242, 61,109, 83,210,161,136,100,132,210, 34,116, 29, 92, 75, 83, 59, 94, 60,188,143,140, 52,117,213,114,117,115, 67,101, 90,
- 18, 61,101, 49,155,163,227,148, 99,217,112, 40,138,222,158,100, 0,135, 49, 2,211, 85, 56,111, 73, 99, 73,172, 21,182,183,194,
-220,226, 40,131,141,109, 76,220,194,142,243,176,161, 13,215, 84, 53, 74, 69,227, 70, 62,204, 85,135,207, 15,128,152, 91,101,182,
-238, 43,199,219,170,101, 56, 60,168, 49,210, 51, 70,245,138,250, 33, 86,116,168, 82,134, 57,239,176,161, 15, 15,184,239,145,170,
-206,130,247, 34, 84, 59,206,135,108,241,126,230,251,224,209,189, 96,149,170, 67, 44, 98,215, 25, 76, 99, 89, 44, 66, 69, 23,230,
-155, 14,233, 12,121, 18, 42,197,147,249,130,131,207,184,218, 53, 52,141, 5, 95,177,185,185, 98, 62,137,200, 21, 28,119,215, 36,
-139, 21, 17, 49, 82, 38, 24, 47,238,204,148, 99,170,166,102, 58, 95, 32, 37,116,174,163,181, 53,162, 21,116, 38, 88,171,116,236,
-121,243,230, 13,113, 18, 8,132, 67, 42,215, 93,133,187, 49, 6, 76,168,250,166,147, 28,225, 67,171,185,235, 58,148, 86,212,117,
- 77,231, 12,248, 79,245, 8,119,125,227,119,231,173,119,125,233, 82, 74, 20,225,186,135,202,223, 6, 17,172,115,184,222, 79, 44,
-164, 31, 99, 98,189,191, 37, 87, 13,173,233,170, 41,251,207,249, 79,114,222,187,174,163,233, 90,242,124,214, 71,119, 14, 35, 4,
- 17,240,183,198, 96,189,192,184,128, 92, 69,170,192, 43, 24,146,202,165, 64,168,136, 56, 19,212, 85,197, 87,223,124,195, 63,255,
-253, 47, 57, 63, 63,231,234,227, 59,210, 68,145,166, 51,246,149,165, 42, 14, 36,145, 34,139, 99,132,144, 68, 73, 70,219, 26, 98,
- 29,186, 95,182,237, 80,113,194,114,177, 96,181, 90, 49,159,135,234,181, 51, 13,121, 60, 65,230, 19,206,207, 78, 57, 30, 3, 32,
-231,116,181, 28, 89,232, 67, 38,246,144, 33, 62,157,207, 57, 89, 46,240,214, 81, 29, 11,226, 40,234, 9,103,114,244, 60, 87, 77,
-160,163,217,254,218, 35,125, 15,143, 9,221,160, 40, 82,196,105,208,246, 52,109, 73,164,228,168,121, 80,136,113, 4, 20,190, 94,
- 54,222,211, 64,191,235, 69, 82,177,186,109,243,123, 79, 85, 28,199,121,112,158,231, 65,156,234,110,245, 23, 77,221,177,190, 9,
- 44,248,182,168,184,185,222,161, 35,201,102,125,195,226,227,140,213, 42,100, 44,124,247,221,119,252,238,119,191,187,147,166, 87,
-147,101, 97, 20, 53,124,253,242, 88,244, 35,148,158,154,167,196, 40,240, 26,253,247,253,108, 93,246,152,216, 65,155, 96,155, 64,
-155,203,243,124,212, 93,248, 62, 59,225, 46, 23,127,120,246,103,179, 25, 85, 85,241,250,245,107, 30, 63,126,204,102, 83,242,240,
-225, 35,190,253,246, 91,116,148,208, 30, 2,180,169,179,142, 56,214, 72, 25,222,137, 48, 14, 9,107, 80, 83,118,125,107, 61,240,
- 39, 76, 29,188,236, 87, 87, 87,129, 50,151,207,209, 42, 36, 90, 14,157, 72,239, 45, 55, 55, 87,236, 54, 55, 97,195,143, 52,117,
-121,164,206,167,156,159,159,143,239, 34,177,236,137,139, 83,126,254,203, 95, 97, 76,205, 15, 47,191, 99,127, 60,240,119,127,247,
- 83,206, 78, 87, 44,231, 83,154,170,102,179,217,176,154, 47,200,103, 83,180,208, 68, 2,140,112,100,105,196,143,158, 61,226, 88,
-213,220, 92, 93, 16, 39,154, 71,143, 30,113,117,189, 38,203,178,128,250, 53,166,199, 74, 71,227, 1, 60,140,197,160, 44, 43,246,
-199,146,217, 98,133, 82, 22,253,225,114,205,233,249,138, 7,247,206, 67, 20,231,124,129,117, 1, 40,211,118, 29,211,105, 66,170,
-131,226,114, 54,159,209, 52,167,228,213, 4,107, 3,108,222,123, 79,103, 27,156, 55, 1,101,167,130,253, 72, 71,114,100, 85, 11,
-225, 71,251,145,148, 42,248,152,123, 63,181,237,111,158,148, 18,221,167, 13, 5, 53,100,135, 86, 18,111,250, 25,147,181, 68,217,
- 20,131,194, 19,230,154, 82, 74,156,109,199,135,199,218,219,164, 36,107, 61,198, 28,105,218,208,190,107,141,163, 54, 6,161, 52,
-169,214, 56,235,168,186,150,182, 42,192, 25, 58,103, 40,235,130,237, 97,203,199,235, 43, 78,151, 75,150,121,142,176,134, 52, 73,
-168,235,134,166, 61, 80,153,150,206,187,112,147, 15, 21, 71,235,144, 62,248, 38,179,124, 66,170, 52, 85, 19,232, 78, 54, 12, 30,
-105,188,193,245,186,132, 32,242,113, 28,143,123,218,174,196,250,160,132, 94,229, 19,164,239, 72,123, 63,123, 85,215,120, 20,206,
- 52,104,161,136,181, 10,200,195,182, 38, 17,142,231,207,158,241,191,124,241, 25,105, 18,113,255,254, 61,226, 56,229,229,171,119,
-252,219,239,126,207,135,139,107,234,226,192, 34,142,144,174, 67,216, 22, 73,211,123,232,131,204, 49, 75,116, 32,255,201, 16,230,
- 49,188,100, 67, 24,196,144, 65, 62, 68, 40, 14, 51,194, 65,229,123, 27,220,225, 63, 81,245, 14,127, 62,188,164,195, 60,235,174,
-119,252,238,166, 50,120, 94,239,182,111,135,182,115,215,117,227,166,255,215,191, 6, 11, 93, 89, 23, 97,158,236, 61,130,224,132,
-208, 74,135, 44,109,231,209,145,162,173,246,204,242,156,235,203,151,100,178, 69,235, 96, 17,137,132, 35,142, 20, 77, 85,146,106,
- 29, 66,111,132,160,117,146,221, 97, 79, 89, 85,116, 74,115,179,190,162,115, 10,193, 12,225, 59,158, 61,122,202,179,251, 39, 92,
- 92, 93,178, 46,106, 90,211,129,212, 68, 81, 88,104,157, 49, 65, 24, 25, 39,129, 89, 94, 20, 8, 61,140, 20,250,182,181,247,120,
- 4, 69, 81, 80,245, 28,249, 1,203, 58, 64, 80, 66,181, 22,160, 19,131, 96, 45,116, 75,106,218, 54, 40,134,227, 40, 69,120, 57,
- 98, 77,239,194,101,194, 49,247,214,166,118, 87,252, 54,108, 20,105,220,199, 26,223, 17, 36, 58,231, 48,222,225, 4,119, 68,122,
-225,192, 52,204,228,135,251,157,231,121,127,120, 16, 33,132,133,176, 65, 75, 41,137,133,164,107, 45,173, 53,163,165,203, 59,209,
-223, 95,139,245,224,133,186,195, 22,184,213, 74,136, 17,110, 21, 52, 26,235,155, 45, 31,175,215,252,226,139,231, 56, 91,179,217,
- 92,177, 92,173,112,214,176,189,185, 98,154,207, 67, 4, 41,138, 56,209,212,117, 59, 30, 48,235,166, 68,123,199,124, 62,103, 58,
- 11,126,237,227,241,200,241,102,207,231,159,127,206, 87, 95,253,137,247, 23, 33, 4,230,226,227, 21, 85,211,142,239, 66,211, 43,
-179,117, 15, 8,170,154,174, 39, 48,134,192,148, 56,142,169,187, 22, 25, 73,166,243,156, 44, 79,169,109, 67,231, 76,152,139,123,
-139,183, 62,116, 43,251,123,225,177, 8,233,209, 81,200, 83, 72,250,231, 70,120, 27, 80, 47,206,224,108,215,255,215, 80, 20, 33,
-208,106, 20,252,154,112, 72,170,171, 0,194,153, 78,167,148,101,216,236,119,219,117, 47,148, 11,226,191,123,247,238,241,253,247,
-223,179,152,205,136, 98, 53,178,252, 67,214,188,102, 54,155,179,223, 29,185,184,184,224,252,252,156, 39, 79,158,240,167, 63,253,
-105,212, 71, 76,122,254,252, 32,216,186,185,185,161,105, 44, 81, 36, 80,253,252,221, 9, 79, 36,111,197,145, 66, 8, 84,223, 50,
-246,222, 83,217, 14,219,133,119, 90, 56, 40,218,154,201, 98,198,201,217, 41,247,239,223, 15, 57,236,139,249,168, 53, 24,186, 71,
- 0,215, 87, 87, 0,252,195, 63,252, 3,223,124,243, 13, 15, 31, 62,100,187,221,134,205,174,110, 67,160,147, 20,104, 17,128, 64,
-169,214,148, 93, 77,162, 36, 15,206, 78,121,247,230, 21,190,235,144,206,129, 53,216,174,197,212, 53, 58, 17, 36,113, 68,154,164,
-227, 1, 34, 86,122, 44,224, 90,199, 56,206, 24,198, 77,117,219,210,117, 27,140,179,228, 89, 15,255,210,241,136,227, 61, 57, 89,
-177, 60, 89,208,154,142, 15,239,223,112,121,121, 21, 14,125, 58,226,176, 63,128,179,193, 22,110, 44,146,144, 23,239,149,100, 50,
-155,226, 9, 45,255,248, 52,165,172, 58,172,219,176, 88,204,250,220,138,138,186,109,145,242,214,146, 26, 14, 31, 49,122,158,112,
-115,181,230,234,122,131,233, 60, 73, 26,161,127,253, 15,127,207,217,217, 25,206, 57,190,125,249,154,175,190,254,134, 77, 47, 70,
-153,228, 57,214,122,116, 63, 63,243,206, 48,205, 51,102,211,201,104,129,112,109, 67,219,167, 76,141,138,207, 30, 1, 40,101, 80,
- 27, 7,193,147,191,179,168,247,169, 50,226,214, 47, 27,245,115, 63,103, 77,184, 73, 50, 14,121,200,214,133, 86,190, 19, 68,105,
- 70,103, 66, 53,209, 30,139, 32, 42,194,211,182, 69,127, 3, 12,214, 24,132, 12,202,238,178,170,195, 12,190,110, 81, 81,130,150,
- 2, 79, 8,148,111,235,118,100, 92,235, 40, 38, 17, 17,206, 89,106,211,240,113,123,224, 88,214, 92,165, 49, 39,243, 37, 75, 20,
-206, 7, 11,156,237,179, 49,170,166,161, 42, 14,252,232,225, 35,176,134,124, 62, 35,203, 50,138,170,229,195,197, 37,157,237,152,
- 77, 83,246,199,166, 87,118, 75,148, 36,180,169,156,197, 89, 75, 93, 89, 44,176,152,133, 88,200, 88, 69,196, 42,204,245, 78,151,
- 57,171,211,115,126,254,139, 95,242,239,127,248, 35,111,222, 93,112,118,190,228,231, 63,249,123,206,207, 86,164,145, 70, 41,193,
-245,199, 75,182,155, 53, 15, 31, 60,226, 31,255,225,215,252,248,199, 47,248,243, 95,190,229,205,219,247, 52,198,246, 96, 30,131,
-117, 10,157,196,128, 35,142, 99,150,203, 57,121,158,179,223,239, 71,188,231,221,141,121,168,200,134,151,123,200,139,190,187, 1,
-123,239, 71,255,228,221, 54,239,176,169,123,239, 3,213,234,110, 40, 70,255, 12, 12,149,249, 93,159,243, 93,129,217,240,245, 7,
- 37,238, 93, 59,214,248,172,169, 94,239,225, 92,128,171, 12,220,255,225,244, 31, 50,181,130, 32,169, 58,114,125, 93,240,252, 65,
- 16,196,165,145, 34, 75, 3,105, 78, 68,193,235,110, 93, 71,215, 25, 58,175,177, 94,176, 61, 28,208,211,128, 54,109, 58,143, 20,
-142, 68,122, 30,221, 63,229,197,179,135,220, 59, 91,240,253,187, 43,222,126,184, 66, 56,200,210, 20,211,180,124,248,240,129,235,
-235,235,113, 78, 87,151, 21, 58,145, 33, 89,213,218,144,163, 16,197, 72, 12,171,213,138,162,172, 70, 52,228,240,243, 15, 63,103,
-146, 36,227, 61, 24, 68,120,139,197, 34, 8,246,202,130,182,173,177, 61,159,192,244, 81, 54, 22,255,233, 1, 72,200,255,112,195,
- 87, 74, 65,196, 39, 31,135,138,145, 79,102,121,195,231, 66,158,122, 60, 86,113,225, 48, 37, 70, 8, 15, 4, 57,199,176,184,203,
- 62,235, 25, 27, 72,144,129,228,216,139, 0, 9,162,199,144, 28,247, 41,195,254,174, 98,188, 51,134, 73,150, 33,148,224,171,175,
-190,226,209,217,156, 7, 15, 31,241,229,229, 59,178,166, 65,107,133,244, 14, 37,124, 88, 28,125,176,172, 46,102, 57,214,135, 88,
- 92,132, 68, 69,122, 20, 33,166,105,202, 98,177,192,249,208,225, 59, 28, 14, 1,229, 57, 13,136,208,174,235,152,207,231, 33, 49,
-174, 10,138,243, 60,159,141,145,170,147,201,132,123,247,238, 33,132, 96,191,217,114,179, 94, 7,128, 77,146,112,221, 3,154,172,
- 13,158,110, 29,223, 86,159,131,213, 50, 48, 37, 12, 18, 69, 36, 8,105,113,222,163,188, 71, 9,208, 82,161,189,192,244,215,249,
-120, 56,208,214, 13,182,235, 53, 33,189, 53,176, 40, 10,188,189, 37,247, 13, 93,202, 80,173,103,163, 77,178,235,110, 15,217,117,
- 15,140, 90, 46, 79,136,180, 68,137,148,203, 15, 31,232, 76, 16,207, 61,126,252,152,195,225, 48,162,119,111, 25, 4,221,136, 82,
-221,237,118, 76,167,211,208, 69,146, 30,107, 13, 74, 74,226, 97,244,214,117,225,144,137, 24,227, 84, 21, 34,140, 65,100,128,254,
- 44,151, 75,238,157,158,113,114,118,218,139, 43,163, 17,223,219, 52, 13,235,245, 58,228,175,199, 49,255,229,191,252, 23,126,243,
-155, 95, 49,159,207,249,227, 31,255, 56,206,192,119,219, 53, 73, 58,193,119, 93,208,193,104, 73, 36, 64, 57,135, 22,176,156, 77,
-201,180,198, 69, 22,103,187,254,221, 11, 72,217,229, 34,231,209,249, 61,156,211,116,238, 86,208, 55, 4,255,120, 25,214, 54,213,
-111,236, 81, 52, 25, 49,199,195,245, 87, 74, 65,213,224,188,231,176,223,246, 99, 50,195,201,201, 25,219,237,150,139,143,107, 38,
-147, 41,211,124, 78,146,102,152, 46,232,105,218, 58, 40,219,189, 12, 7,117,173, 37, 40, 77, 28, 37,172,166, 51,154,174,183,173,
- 10, 63, 10,143,247,251, 61,182, 79,156, 12,208,159,208, 25,205,210, 5, 73, 28, 24,240,214,117, 65, 67, 52, 93,174,248,254,245,
- 27,214,235, 53,101,219,113,181,217, 82,119, 6, 75, 88, 76, 7,234,145,173, 58,116,191, 25, 79, 38,147,176,224,104, 69,235, 36,
-222,246,173, 35,209, 11,143, 8,115,166,166, 14,167, 28, 55,120,151,149,236, 25,200,182,239,177,133, 86,106,164,194, 11,215,154,
- 64,126, 75,251,133,108,191,175, 16,186, 7,153,120,112, 40,154,206, 34,123, 63,159,144, 30, 25,169, 48,175, 23,225,228, 41,164,
-192,122,131, 53,150,206,184,128,182,237, 55,144,174, 53,152,174, 87,108, 91,211,207,147,131, 50, 83, 70, 26, 17, 5,196,168,181,
-150,194, 56,202,125,129,245,138, 99, 85,147, 79, 82, 22,139, 57, 77, 97,185,124,255, 30,139, 37, 75, 34,214,251, 29,182,105,249,
-240,241, 50, 96, 81, 13, 88, 33, 73, 38, 25, 39, 42, 98,119,188, 64,224,251,235, 18,186, 31, 18,200, 52,204,102, 51,164,206, 72,
-147,132,170,106, 16,177, 34,206, 98,220, 96, 75, 51, 13,166, 17, 60, 62, 63,229,209,249, 41,143, 30, 62,228,252,236, 52,168,183,
-187, 22, 45, 97,241,217, 51, 46, 47, 47,249,250, 79,127, 64,234, 32, 10, 44,139,134,105,158,114,154,101, 32, 53,155,221, 54, 84,
-196,222,211,118,125,198,179,105,169, 10, 23,120,234,127,213,150, 29,124,163, 73,146,244,136,208,102, 20, 64,253,117,228,231, 93,
-251,211,221,175,113,215,171, 60,186, 23,254,202,250, 51, 40,224,241,129, 65,143, 12, 15, 80, 24,198,244,148, 62,211,183,147,101,
-192,234, 88,239, 66,102,119, 15,174,145, 82, 98,188,194, 59, 70, 1,167,181, 1, 52,212,182, 45,182, 13, 93,142,203,203, 75, 58,
- 7,171,213,170,255,126, 60,214,120,218,178, 33,137, 99,202,227, 1,227, 65, 57,139,113,138,108,146, 83,148, 37,145,174, 88,206,
-103, 36,217,132,229,124,198, 50,143,120,112,186,160,220, 94, 83, 55, 53,179, 73,224,146, 39, 50, 97, 58, 73, 88, 46, 18,102,249,
-132,147,229,138, 39,143, 90, 28,138,124, 49,167,115, 21, 93,107,177, 38,240, 20, 22,211, 64,196,243, 94,176,222, 4,209,214,112,
-136, 25,210,164,226, 94, 76, 52,153, 76,144, 82,142,115,197,233,116, 26, 32, 51,166,163,171, 91,250,163,234,208,184, 70,139, 91,
-133,178,151,129, 11, 32, 21, 61,122,149, 48,227,239, 79,215,157,105,254,198,250,134,184,205,108, 31,252,178,206,216,158,148,219,
-195,135,250,205, 60, 84, 49, 10, 37,123,162, 88, 15,189, 9, 57,218,224, 92, 32, 79, 58, 47, 66,246, 2, 42,136,125,122,212,170,
-115,119,188,242,222,253, 77,196,235, 32, 90,138,164,230,234,242,130,127,253,127,255,141,255,246,159,255,145, 23, 63,254,130,195,
-113,199, 34,203, 72,227, 4, 33, 20,203,213,156,174,179, 84,117,203,124,182,164,105, 59, 58, 27, 54,121,169, 53,222, 91,138, 62,
-237, 47,159,102,196,201,125, 14,135, 3, 73,146,141, 99,166,160,129, 16,100,214,115,113,241,113,140, 63, 29,236, 21, 77,107,104,
- 59, 75, 54,153,178, 88, 45,105,154,134,221,113,135,232, 97, 53,111,223,190,238,109,124,106,204,205,150, 90,125, 18,162,227,173,
-161,107,106,188,109, 57, 30,246, 68,189, 85, 76,122, 16,222, 35,123,225, 93,164, 4,139,105, 62,110,172, 0, 93,107, 57,186, 18,
-223,251,201,245, 29,167, 68,224,233, 79,199, 77,254,112, 56,240,225,221,123,102,179, 41, 85,211,112, 44, 75, 22,243, 48,187,110,
-219,154,105,190, 24, 35, 72, 77,231, 56,236, 3,229,236,183,191,253, 45,151,151,151,228,121,222, 31,120,196,152,182,182, 94, 95,
-179,219,237,152,205,102,212,101,197,195,251,247, 66,199,168,159,165, 15,247,107, 72,251,139,180, 26,109, 90,198, 24,108,103,198,
- 3,227,182,217,241,205, 95,190,102,189,221, 80,150,197, 72, 78,187,123,192, 75,251, 88,219,235,235,107, 86,171, 21,175, 94,189,
-226,167, 63,253, 41,139, 69, 8,193,178,109,199, 44, 75,153, 79, 50,230,243, 41, 89,154,178, 94,247,135, 74,225,249,236,197,115,
- 54,155, 29,219,237, 22,132, 34, 74,147,160,107,202,178, 48,118,116,146,213,108, 21, 24,245,235, 27,140,235,152,231,225,122,149,
-101, 57,118, 46,165, 86,196,105, 18, 70,190, 77,208,174, 8, 41, 57, 22,123,202,182, 66, 9, 65,148, 36, 92,221,220,144,166, 9,
-206, 43,162, 56,231,195,197,154, 44,205,185,127,186, 36,210, 49,117, 85,162,227, 0,168,170,170,146, 40,154,114, 60,108, 57, 57,
-187,135, 80,176,190,185,102,117,114,143,231,143, 31,112,216,238,152, 77, 39,225,123,152, 36, 84, 85,245, 73,226,159,148, 18, 21,
-197, 76,231, 17,211,201,132,182, 13, 7, 63,253,239, 95,254,137,143, 31, 63,142, 64,140,237,238, 72, 89, 86, 40,209,160,180, 96,
-146, 4,209,148,115,162, 79,229, 9, 94, 74,103, 67, 78,173, 18, 18,209, 87,121,119,219, 47,198,118,227, 6, 48, 16,136,194,131,
-233, 62,201,142, 22, 61,164, 68,107,141,119, 45,206,182, 8, 2,169,104,187, 93,211, 90,199,108,190, 64,233, 24, 25,197, 36, 58,
- 84,244,198, 56, 58, 75, 63,207,147,200,190, 77, 39,164,197,212,142,214,130, 78, 82,162, 72,224,168, 70,188, 94, 19,192,163,248,
-222, 75,235, 5,216,129,100,230,131,157, 42,120, 85,130, 10,184,106,195,225,224, 88,149, 84, 77,152,189, 15,234, 94,165, 36, 90,
- 71,108,174,111,248,248,241,192, 98, 17, 22,236, 56,203,136,146, 24, 29, 5,177,136, 4,156,239,147,213,250,143, 35, 1,222,118,
-232,228,214, 10, 20, 9, 77, 35, 61,174,107,177,166,165,107,107,158, 62,251, 17,231, 39, 1, 78,144,167, 17,174, 62, 82,217, 14,
-129,199, 74,201,197,197,123, 90, 27, 90,164,135,221,150, 67, 81,211,116, 6,143, 4, 29,177, 63, 22,168, 40,120,173,117,164,104,
- 90,135, 82,146,229,114,193, 98,177, 96, 95, 20,224,111,163, 59,239,114,166,179, 44, 27, 43,178,225,164, 63, 84,226,119,125,210,
- 67,123,234,175,233,112,195,169,246,238,140,120,152,135, 15,115,242,187,164,180,187,254,230,161, 82, 29, 60,197, 67,231,128,191,
- 90,244,205,240,128,247,255, 86,247,243,120,215,183,185,149, 22, 36,177,228,242,195,134,168,255, 62,202,178, 36, 79, 38,224,117,
-255,179, 89,140,119, 40,153,224,144,116,189,192,203, 33,232,186,134, 56, 73, 89,206,103, 60, 58, 63,227,209,249,130,211, 69,206,
-205,135, 43,242, 36,225,208,116, 44,103, 83, 38,209,132, 56,210,156,157,204,121,250,228, 9,229,193, 96, 58, 73,213, 89,162, 56,
-166,234, 60, 82, 88, 58,110, 43,241,182,233,152,100,249,109,176, 74,143,212, 28,210,219,134,220,236,249,124,126, 59,207,236, 9,
- 95, 66, 8,146, 40, 38,142,210,241, 90,181,214,132,176, 16,217, 95,103,220,200, 1,184,123,207,198,246,123,127,128, 27,222, 93,
- 41, 21, 66,120,156,187,141, 9,157,205, 66,133,106,232,198, 63, 27,248,212, 3,223,125, 56,140,116, 54,128,123,156, 0, 33, 36,
- 82, 73,202,170, 9,223,151, 20,253,204, 84,223,233,218, 73,228,232,245, 54, 8, 73, 96, 5,244, 20,173,160,209,137,104,234, 16,
- 28,243,224,254, 67, 94,189,124,201,201, 98,202,127,255,239,255, 27,127,248,242,223, 80, 8,166,147,152,170,106, 48, 93, 29, 92,
- 22, 93, 67,146,100, 65,217,222, 90,144,154, 88, 74,156,247, 84,101, 3, 74, 50,153, 76,198,209, 78,150,101, 20, 69, 49,138,186,
-234,186,102, 58,157,143,227,142,193, 78, 38,132,160, 42,155, 62,255, 91,146, 77,146,241, 58, 44, 22, 11,210, 52,229,120, 60, 50,
-157,134, 96, 38,223, 39, 27,106,173,251,120, 83,198,174,149,247,161,101, 93, 70,146, 73,223, 2, 14,153,222,129, 62,151,196, 25,
- 78,192,124,190,100,187,187,141,215,236,218,208, 97, 76, 38, 89,239,131, 15,228,179, 36, 73, 2, 57, 79,197, 84,117,209,219, 82,
- 27,180, 84,163,239, 62,207,243,241,125, 50,198,176,223,239,121,112,126,134,150, 1,137, 28,120, 1, 37,203,229,146,203,203, 75,
- 94,191,126, 61, 62,151,131,102,198,218, 96,153, 27,222,247, 55,239,223, 97,219,219, 76, 2,219,153,113,164,150,232,136, 40, 14,
-239, 88, 83,213, 35, 96, 37,224, 98,131,155,224,217,103,159,145, 84, 37,117, 93,141,150,194, 97, 13, 80, 74,161,149,226,251,239,
-191,199,218,142,171,171,171, 62, 23,254, 3,191,248,197, 47,200,251,241,232,208,225,203,178,140, 72, 73,206, 78, 86, 24, 99, 88,
- 46,150, 40, 33, 57, 63,187,207,177, 12, 25, 21,214, 5,255,126,231,130,189, 84,169, 0,209, 9,169,107,247,104, 76,135,245,110,
-212, 23, 13, 56,220, 97, 4, 49,116,212,132,146,212, 85,205,177,223,248,103,179, 89,208, 16, 25,131, 52, 49,145, 78,113,222,224,
- 17,124,243,221, 75,182,155, 5,159,191,120, 70,146,102,148,197, 30, 89,150,120,103, 67,167,165,143,227,150,218, 98, 77,203,110,
-123, 67,154, 77,121,242,248, 62,111,222, 94, 48,205, 51,178, 44, 9,174,145,126,164, 25, 10, 83, 40,203,154,143, 31,175,184,185,
-185,166,107, 90,172,235,208,251, 67,197, 36, 95,160,163, 48,223,172,203,138, 36,137, 88,204,103, 36, 81,140,237,163,223,156,141,
-136, 34, 21, 2, 53,240,120,103, 65, 73, 32,204, 45,133, 16, 56,111, 67,149,165, 36, 90,232, 81,209, 28, 22, 9,223,111,232,126,
-172,218, 66, 5, 29, 78,103,109, 87,135, 54, 26, 30,133,199,249,208,238,223,111,246, 8, 25,145,228,146,186, 49, 32,117, 95, 17,
-135,128, 11, 37,185,205,134, 86, 10, 45,195, 77, 27,230, 73, 90, 42,218,225,161,148, 17, 58,114,159,108, 92, 81, 26, 30,242,206,
-121,140,119,193,250,227, 61, 94,134, 57,125, 48,137, 9,186,166, 99,231, 11,210, 88,245, 27,164,164,105, 66, 27,101, 50,155,145,
- 23, 5,167,167,167, 33,185,236, 88,176, 63, 84, 88, 33,121,114,127, 21, 56,204,214, 51,201,195,137, 82, 10,135,107,195,159, 21,
-117,131,211,158,170, 40,169, 14,134, 52,146, 60,122,112,159,159,254,228, 11,242, 44, 97,222, 71,181,154,174,227,112,216, 83, 28,
- 42,148, 18, 68, 74,208, 17, 64, 19,174,110, 48,166, 28, 91, 71,157, 49, 28,171,154,162, 44, 73,243, 41, 58, 14,100,163,174, 11,
- 45,187,206, 89,188,244,180,214,208, 52, 45, 90,197,227, 73,122,104,247, 14, 27,249,221,150,249,176,209, 12,159, 11,167, 70, 49,
-110,182, 67, 53, 63,156, 38,199,132,178, 59,209,140,127, 99,235,249,171, 48,145, 97, 1, 25, 54,114,115, 71, 8, 57, 80,186,238,
-226, 71,109, 23,172, 68, 74,251, 30,229,169,199,208, 21,229,134,192,147,182,135,149,192,118,187,165,170, 26, 88, 78,113, 4,236,
-166, 53, 65,208,229,132,198,137, 24,107,160,177, 65, 39, 97, 84,204,254, 80,112, 68, 80,231,138,174, 18,248,153, 36,207, 98,238,
-221,127, 64, 45,182, 32, 91,108,237,168,171,130,174,137, 40, 15, 7, 54, 55,215,108,214,215, 88, 47,241, 90, 82,119, 77, 24,225,
-180,193,197, 80, 29, 91,246,229,142, 73, 22, 84,220,199, 99,192,102,206,102,179,209,214, 22, 48,150,246, 19,192,204,112,144, 26,
-210,211,238, 34, 87, 69,223,182, 11,202,243, 96,247,211,138, 0, 47,114, 22,195,109, 20,171,151, 2,108, 63, 24,146,178,199,127,
- 74,172,187, 77,187,211, 58,192, 95,134,231, 42,224, 42,107,202,186, 66,235,104,180, 43, 57,231, 56,246, 33, 26,113,148,246,235,
- 2, 36, 89,160,238, 5, 45, 65,232, 26,128, 12,173,247,190,187,240, 9, 1, 15,223, 11,197,194,151, 16,210,131,149, 76,146, 12,
-156, 99,177,200,184,250,168,121,245,246, 29,251,178,102,117,114, 70,181,223, 16, 73,137,116,150,227,118,131,142, 50, 34, 45,169,
-171, 2,211, 89,240, 61,236, 70, 69, 8, 37,241, 88,180, 82, 65, 84,165,195,187,156,229, 57,235,245,150, 36,139,195, 38,186,221,
- 82, 20, 69, 24, 29, 72,129,113,150,166,238, 62, 33,246,181,109, 75,146,246,185,232,206,225,109, 71, 18,229,156, 62,125, 76, 20,
- 69,161,243,226,110,219,165, 65, 68, 10, 93,221,140, 72, 86,165, 20,167,243, 60,204, 86,189, 71,235, 24,193,176,177, 69, 56, 47,
-104,140,165,249,248,113,236,142, 13,107,151,234,177,182, 87, 87, 87,172, 78, 22, 35,174,185,179,129, 29,224,173, 33,207,115,242,
- 44,132,162, 12,218,152,225, 62, 26, 99,176, 90,114,125,125,141,239,223,231,179,179, 51,138,162, 96,181, 84, 60,126,252,152,183,
-111,223,142, 33, 66, 3, 64, 40, 28,184, 58, 94,189,122, 69,211,181,200,248,246, 16, 22, 70,170,183,122,153,214,121, 18, 47,104,
-186,134,186,171,152, 68, 2,229, 29, 69, 85,144, 99, 89, 44, 22, 88, 31,158,249,147,147, 21, 15, 30, 60, 24,225, 57, 67, 33, 88,
- 22, 5, 74, 5, 45,192,213,213,213,248,204,239,247,123, 30, 60,120,192,106, 58,239,187,173,183,227,189,213,233,217,184, 62,116,
-214, 49,155,199, 44,250,177, 69, 89,135, 92,115,107, 45, 58, 78,176, 34,198,217, 14,103, 29,139,213, 60,132, 44, 21, 5, 81,164,
- 56,203,150,212, 93, 27,236,216,222,129,239,221,194,145, 70,105,141,182,150,249,114,222,223, 91, 69, 81,149,232, 56, 33,205,114,
-182,117,203,246,102,207,243,103, 79, 88,223, 84,124,184,184,228,236,236,132,199, 15,239,209,118, 13,198, 27, 22,243, 25,222,155,
- 96, 13,108, 42,180,247,204, 38, 25,187, 30, 62,117,255,193, 67,170,106, 65, 81,213,212,173, 37, 78, 66,215, 78,169,136,110,176,
-122, 3,139,121,142, 49, 17, 77, 85, 7,139, 96,221,134, 19,168,175, 67,219,242,236,236,156, 56,209,216,174,229,234,230,154,197,
-124, 26, 90, 42, 34,128, 64,218,174, 65, 54, 2,215,133, 68,178,206,253,109, 5, 55,158, 36, 92, 16,211,221,109,221,222, 13,247,
- 24,196, 65,229,225, 24, 60,201, 90, 33, 69, 68, 18, 71, 68, 90,177,152,206,168,234,240, 16,150, 69,205,155, 15,151, 65,172,115,
- 39, 36, 96,216, 28,154,182, 65,208, 71,114,154,154,197,116,206,211, 39, 19,166,211, 41,199,162,162, 44,203, 59, 7, 9,213,159,
- 2, 5,222, 24, 34,165, 2,187, 93, 64,235, 60,157, 53, 88,235, 16, 72,154,186, 63,217,103, 25, 15,238,157, 97,186,134, 15, 23,
-111,177,182, 35,142, 53,155,245,142,199, 15, 31,179,156,205,137,180,162, 42, 75, 78, 87, 39,164,147,156,214,121,166,179, 37,101,
- 29,224, 17, 90,107,178, 72,133,217,186,112, 33,176,102,223, 98, 44, 92, 94,188,103,183,185,198, 24,219, 39,206,205, 17,222,178,
-221,172,153,100, 97,163, 21,182, 37, 75,194,108,179,107,106,214,251, 35,141,147,212,141,165, 3,100,156, 96,171,102,100,184,223,
-127,244,152,253,225,192,161, 56,114, 40, 10,100,164,208,113, 76, 62, 73,209, 82,245, 66,159,132, 56,186,157,183, 74, 25,162, 19,
-239,166, 66, 13,155,233, 93, 42,216, 16, 56,162,122, 80,209,144,196,117, 55, 45,108, 80, 3,223,198,122,186, 79,170,238,161, 83,
-114,151,178,117, 87,189,125, 55,101,236, 46, 56,101, 56, 88,152,126, 99,243, 34,248, 99,181, 12,158,243, 97,100, 48,108,138,109,
- 83, 16,107,152,207, 39, 28,138, 42,116,121,140,231,112,172,177,169, 98,183,222,144,207,230,120, 4,101, 87, 82, 26,184,217,236,
- 16, 42,208,240,156,237, 88, 45,167,188,248,209, 83,238, 47, 39, 76, 98, 73,113, 93,176,190,254,200, 52, 95,176,219, 53, 20, 69,
-129, 20, 33, 72,167,237,231,130, 73,146, 96,189,164,113,166, 79, 7, 4,239,117,240,248, 70,146,206,212,161,253,155, 5,156,233,
-126,191,103,191,223,143, 66,161,161,162,253,248,241,227, 56,246,186,123,104, 74,211, 20,219,245,155,173,142,198,119, 98,120, 23,
-235,182, 25, 91,225, 97,211,236, 73,101, 98,232,212, 91,132,212,159, 48,228, 93,239,151, 86, 74,142, 96,151,225, 94,221, 61,156,
- 13,239,242,241,120, 68,201, 40,168,219, 81, 35,119,160,179, 6,101, 12, 58,142,113, 64,107,122, 1,164,245,159,136,169, 66,231,
-166, 31,167,220,230,241,140, 93, 60,235, 28, 39,203, 5,229,241,200,118,119, 32, 74, 50, 58,227,120,251,238, 3,191,253,245,207,
-249,243,191,255, 43, 18, 79,150, 70,236, 15, 37, 73, 62, 99, 54, 95,114,179,217,163,179,132,205,246, 72,217,182,168,214, 32, 85,
-216,132, 51, 33, 48,109,139,109, 60, 42,138, 89, 46,151,108, 54,187,113,142, 59, 92,139,195,225, 64, 58, 9,115, 84,239,142,227,
- 33,180, 44, 75,214,235, 53, 77, 93, 50,159, 78, 40,133,100,115,179,166,169,106,230, 95,124,193,116,146,211, 85, 21,201,100, 66,
-215,132, 77, 33,233,103,198, 29, 32,220,173,139, 32,139,207,200,243,124, 92, 35,173, 21, 35,157,205, 56,139,112, 50, 28, 2,250,
- 10, 54, 78, 18,202,182, 25,221, 33, 65, 44, 12,235,221,122, 60, 92, 47,151, 75,142,135, 29,198,116,116,189, 43,105, 72, 46,251,
-209,211, 31, 17,199, 49, 87, 87, 87,252,250, 87,127,135,240,150,166, 63, 36,174, 86, 43, 94,190,124, 73,219,182, 60,125,246,152,
-103,207,158,177,223,239, 71,144,216,208,142,206,243,156,237,118, 77,221, 54,212,109,139, 87,119, 70,106, 67,176,139,214, 68,125,
-136,205,253,251,247, 71, 53,126, 20, 69, 60,121,242,132, 89, 30,186, 25,179,217, 44,116,157,146,152,179,179,179,177,202, 31,238,
- 67, 93, 85, 92, 92, 92,224,156,225,253,251,247,252,252,231, 63,231,228,228,132,197, 98,193,147, 39, 79,192,186, 94,107, 16,133,
- 78,170,177,196,105, 60, 30,126,163, 56,232,191,234,182,163,110,251, 8,231,147, 21,190, 11, 66,208,108,178, 68, 39, 49,101, 81,
-161, 99,141,141, 19, 78, 79, 79, 88,173, 86, 56, 28,214, 58,170,182, 70,202, 16,126,101,140, 13,169,113,141,197,122, 75,146, 70,
- 33,119,160, 10,235, 77,150, 5, 27,155,119,130,233,124,201,118,119, 96,190, 88,114,216,111,120,245,250, 45,121,158,113,178, 92,
- 34,133, 67, 10, 67, 34,195,232, 42,155, 76, 1, 73, 81,149,228,105, 2, 50,230,195,251,119, 44,250,104,214,205,245, 22,161, 53,
- 73,156, 81,183, 29,135,125, 65,221,148, 72, 9, 79,159, 60,228,139,207,126, 65,103, 26,182,235, 13,218, 56,144,202, 51,201, 39,
-164,105, 72, 39,170,170, 10,111,195,188,108, 58,157,142,243, 20,231, 12,178,127,201,227,190,194,142,211, 12,143, 8, 47,191,238,
-225, 7,109, 55,206,247, 92,111, 49,146, 82,226,145,120, 97,251,120, 82,199,118,191, 35, 75,115,210, 36, 70,121, 67,121, 44,136,
- 35,193,201,252, 30, 66, 71, 28,139,146,170,115,236,203,154,147,251,143,121,255,241, 26,217,219,229,164,164,183,245,132, 54,105,
-150, 79, 71, 49,151,118, 49,198,122,174, 55, 91,146, 73, 14, 74,143,161,243, 89, 26,143,225, 20, 18,129,244,193,102, 98,113, 97,
-147,144,138, 88, 70, 24, 33,122, 47, 46,212,199, 35,243,244,148,231, 79, 30,243,241,226, 3, 63, 28, 42,206, 31,158,145,101, 25,
-139,105, 16, 45,157, 44, 87, 84,199,130, 95,252,228,167, 65,173,140, 64,196, 49,173,113,156,204,103,227, 98, 59,159,164,104, 37,
-192,180,232, 40, 37, 74, 87,236,138, 10,211, 53,212,101,193,122,179, 65,234,136,227,177, 36,137, 66,107,175,145,208, 53, 5,182,
- 51,228,121, 70, 91, 87,236, 14,123,154,206, 81, 52, 18,149,100,104, 17,225, 59,139, 78,115, 78, 38,115,100,239, 71, 46,215, 55,
-196, 73,210, 91,207, 20,113,156, 98,188,193, 52,109,240,207,122, 57,206,115,135, 77,161,105,154, 79, 54,226, 17, 81, 58, 80,178,
-250,205,117, 88,228,135,118,226, 80,117, 15, 27,240, 32,220, 25, 78,221,195,198, 48, 8,112,142,199, 99,152,161,223,169,102,134,
- 86,238,112,128, 24, 14,140,159, 6,185,132,131, 99,148, 36,164,233,132,186,173,200,146,148,166,170,144,202,179, 88, 44,216,236,
-182, 65,187, 65, 24,109,156, 44,103,100,147, 9,147,104,202,100,190,196,122, 69,154,196,120, 12,101,107,144,173, 69,234,136,120,
- 50,197,118,225, 48,182,254,211,183, 60,126,246, 99,150,203, 37, 39,139, 41,229,126,199,143,127,245, 83,190,254,227,239,130, 39,
-246, 88,112,211,214, 28,143, 97,193,117,214, 82,213,101,127,157, 99,174,175, 95, 17,167,121, 8, 14,242, 54,140,176,122, 11,146,
-239,219,152, 78,132,159,165, 40, 10,210, 36,230,244,100, 53, 98, 34,243, 60,103, 49,159,133, 40,203,170,162,107,155, 16, 84, 50,
-201,198, 17,214,124,185,234,187, 15, 65,192,149,231, 57,157, 13,118,196,180, 11,221, 23,209,212,125, 60, 46, 65, 53, 31,108,215,
-204,102, 83,234,218,140,214,195, 56,142, 73,122,177, 94,211,219,178, 66,155,222, 19,233,128, 5, 30,218,167, 2,197, 52,207,122,
- 17,207,145,170, 47, 14,172,245,227,156,189,174, 91,218,126, 84, 16, 20,241, 98, 12,222, 25, 72,108, 74, 72,148, 16,232,222, 70,
-228, 93,160,220,197, 74,247,237,227,208, 73, 59, 57, 57,225,226,253, 91,166,139, 37,166,171,248, 31,255,199,255,205,243,199, 15,
-248,217,207,126,198,247, 95,255,153,186,110,153, 76, 50, 46, 46,222, 83, 53,129, 19,176, 88, 46,113, 94, 97, 54, 91,172, 51,160,
- 21,198,182,120,159,113,117,245,145,233,124, 65, 44, 21,231,103,103,108,110,110,184,184, 56,146, 36,129,168,120,125,125,141, 16,
-130,205,205,122, 20, 60, 2, 99,135,240,120, 60,254,127,108,189,215,146, 37, 89,154,157,247,109,225,242,168, 16,169, 75,118, 87,
-247, 0, 99, 24, 96,112, 71,194, 12, 70,242,154, 79,197, 87,227, 53, 97, 70, 98, 48,152,153,238,233,170,234, 18,169, 66,157, 56,
-202,229, 22,188,248,183,123,156, 40,160,204,218,170, 51, 45, 43,227, 8,119,223,191, 88,235, 91,100, 86,179, 40,114,234, 82,172,
-156,205,241,200, 47, 63,253,196,248,230, 13, 70, 41,110, 63,223,224, 19, 42,185,202, 11, 81, 38, 91, 75,149,186, 77,165, 20,187,
-195,225, 25,117,207,123,185,159,186,126,144, 78, 88,229,243,138, 35, 36,170, 90, 84,105, 37,224,221,140,225, 53,185,128, 96,202,
- 52, 73, 40,170,146,182,141,184,240,228, 88,201,243, 28, 23, 29,237,208, 18,162,227,112, 56,240,245,151,239,248,212,117,188,124,
-253, 10,180, 98,177, 90,114,108, 78,244,131,227,229,171, 55,124,247,135,191, 17,230, 71,153, 39,215,197,144,128, 74,181, 40,245,
- 71,199,102,179, 33,207,101,218,103,181,120,206,139, 66,194,182,170,170, 74,187,117,155,212,251,114,175, 88,109, 8, 68,218,113,
-100,119,144, 60,240,127,248,135,127,224,251,239,191,151,166, 37, 89, 67, 77,154, 0,124,250,244,129,175,190,250,234, 9,124,181,
-219,113, 56, 28,248,226,205, 23,115,230,128,233, 59, 33,219, 89,209,216,152,180,154,146,213, 80,224,234,197,203,121,116,254,112,
-183,149, 96,160,168,104,143, 7,172,201, 8,126,164,239, 71,142,205,158, 83,215, 83,214, 5,247,119, 91,180, 65,162,193,219,163,
- 16,222,252,192, 56,120,242,194,206,235,130,113,144, 20,201,170, 90, 64,212, 24,147,113,177,222, 80, 47, 74,250,193,209,180, 61,
-167,102, 71, 89,229, 20,255,246, 15,188,120,113,201,216, 30, 81, 54,176,168, 43,250, 97,228,245,235,215,100,167,150, 99,211, 50,
-116, 13, 70,193,237,231, 79,108, 86, 11,246,251, 35, 62,136,243,101,181, 89, 99,173,229,231,159,183, 84,153,225,225,238, 19,223,
-135,145, 63,252,241,247,252,238,155, 47,176,163,119, 88,101,231,172,227,194, 26, 50,155,236,103,185, 40,118, 7,159,110,204, 24,
-241,156,141, 99,125, 96, 76, 54, 32, 73, 37, 11,115,222,178, 74, 42,218,174,235, 83,106,152, 77, 15, 4, 81, 37, 43, 12,214, 8,
-109,106,116,162,208,158,214,217,109,115,196,216,156,186, 42,185,186, 80,140, 81,113,177, 94,115,181, 17,255,104,150,101,196, 32,
-234, 81, 31, 3, 85, 33, 59,177, 73,172, 23,148,226, 98,179,162, 40, 50,194, 56, 80,229, 25, 97, 41, 42,108,151,186, 23, 21, 35,
-209, 59,116,122,136,100,214,226,181,194, 19,113,209, 19,195,128, 13, 3, 74, 35,150,175,220,176, 44, 75, 62,185,145,139,245,138,
- 55, 47, 94,178, 88, 45,137, 65,177, 40,151, 66,150, 42,189, 88,196,242, 2, 63,169,188,173, 21, 49, 75,106, 39, 77, 4,215,181,
- 18,249,169,101,244,227,125,218,107,230, 57, 69, 46,185,232,131, 27, 81, 90,208,157,214, 86, 88, 93,113,114, 71,118, 7,217,235,
-140,222, 99,139, 37, 42, 64, 31, 20,253,224,104,199, 64,235,188, 8, 5, 83,172,139,205, 10, 48, 22, 23,192,245, 30, 31,199, 73,
- 19,141,138,134,224,198,103, 44,240,105,220,118,158,228,245,220,185,160,158,217,212,198,209, 61, 75,163, 58,223,137, 79,223,230,
- 98, 62, 0, 0, 32, 0, 73, 68, 65, 84,149,248, 52,106, 60,167, 68,205,185,211,169,139, 60,255,103, 6,165, 36,118,248,228,137,
-158,246,123, 83,168,133,205,243, 52,106, 22, 27,204,169, 59, 97, 80,100, 69,254,204,102,183, 92,109,168,202,138,168, 52, 74,107,
-154,198,179,170, 45,251, 83,143, 85,142,155,251, 3, 63,252,252, 25, 83,212,124,241,205,119, 28, 91,207,227,254,192,213,245, 75,
-222,189,121, 37,147,160,211, 1, 55,246,220,222,222,206, 5,208, 24, 53,238, 20, 36, 58,116,234, 96,147,152,111,122,159,227, 56,
- 50, 18,232, 93,199,232,132,181, 47, 48, 18,121,159,203,229,242, 25, 82,118,154,114, 77, 78,131,105,141, 52,229,169, 79,221,206,
- 52,162,223,222, 61,176, 94,175,217,108, 54,201, 17, 32,194,158,186,172,104, 58,153, 80, 77,159, 99,239,198, 89,103,174, 19,229,
-109,210,184,152, 68,221,155,246,154,231, 78,136,223, 98,106, 37,202,117, 10,178,177, 73,140,167,231,224,150,152,168,147, 74, 41,
-134,105,151,111,236,147, 56, 50, 61, 75,100,239,236,113, 76,118, 58, 65,170,106,173,158, 69,145,250,168, 36,202, 53,179, 41,129,
- 49, 82, 22, 34, 96,253,219,239,190,228,231, 31,254, 21, 24, 56, 28, 14,180,221,137,176, 85,172,150,145,166,125,207,106,121,201,
-106,189,164,237,122,246,199, 35,206, 5,250,172,161, 79,105, 92, 82,100, 46,121,253,250, 53,183,183,183, 92, 45,151, 73, 36, 90,
-205, 93,234,244,186,179, 34, 23,220,111, 42,106,173, 81,100, 10,202,220,206,185, 6,101, 46,241,165, 62,120,220, 56,130,143, 68,
-229,113,140,162,192,142, 90,236,108, 38,199,228,122,158,130,201,116, 69,238,191, 97, 20,255,119,219, 13,100,165, 52, 74,225, 76,
-204, 24,163,116,241,231,154, 6, 63,134,103, 24,215,233,251,155, 82,230, 52,106,142,133,157,174,181,187,135,123,234,186,228,221,
-187,119,172,215,178, 19,254,253,239,127,207,251,247,239,121,120,120,224,205,155, 55,124,252,248,145,239,191,255,158,182, 61,205,
- 9,128,243,243, 32, 70,190,253,242, 11,185,238, 34, 82, 12,180, 93, 42,208, 69,161,125, 60, 30,101, 39,157,174, 95, 72,250,170,
- 8, 46,164,232,104,107,248,226,139,119,207,236, 90,211,243,136,244,249, 47,151, 75,174,175,175,231,120,214, 16, 36, 26,247,195,
-207, 31,121, 60,236,231,215,213,117, 29,211,244, 89, 25,131, 10,138,118,104,217,111,247, 84,117, 49, 71,235, 78,252,129, 41,139,
-188, 44, 5,226,180, 59, 28,240, 81,138, 34,101, 12,195,224,136, 42,224, 6, 41,162,166,124,121, 66,100,236, 19,162,219,139,200,
- 51,166,188,186, 57, 30,217,232, 84, 8,201, 42,170, 57,141,220,220,109,169,126,249, 72, 63, 12,124,253,197, 27,178, 56,112, 56,
- 74,246,252,245,181, 20, 29, 28, 27, 78,167, 3,206, 5, 80, 25,209, 59,150, 85,137,139,208,180, 3,199,253, 1,107, 45,111,223,
-188,226,180,187,167,239,142,220,223, 14, 92,108, 42,212,245, 11,172, 34, 80, 22,153,248,231, 66,144,155,200,123, 92, 50,243, 75,
-133, 39, 49,123, 42,168, 57, 20, 35,198,136,144,103, 69, 69, 59, 29,234, 49, 42,226, 20,208,161,100,115,166,116, 68, 27,161, 42,
-197, 16, 0, 25,119,107,107, 81, 38, 19, 74,150, 83, 20,121, 78, 93, 88,162, 31, 65, 69, 94, 94,174,185,123,252,149,253,227,150,
- 87,175,191,192, 26, 69, 31, 28,133,205, 9, 14,114,109, 9,218,112,113,181,230, 65,185,132,164, 20,209,199, 23,111, 95,139, 40,
-196, 15,148,133, 5,159,179,235, 26,142,167, 67,162,111, 9,231,250,111,190,254, 26, 55,244, 28,218, 3,199,182,193, 19, 41,235,
-138, 23,171, 53,229,245,154, 69,185, 16,108, 99,112,148, 86,177,187,191,195,168, 72,158,149,212,197,130, 99,211, 38, 86,115,152,
- 15,180, 73, 96, 38, 86,105,147,166, 24,211,231, 35, 29,150, 78,156,246,194,138,213,110, 98,157,135, 41, 1, 47, 68, 10,101, 64,
-233,196,189, 23,213,237,224, 61,206,195,232, 21, 77, 28,104,188,166, 29, 6,186, 78,132, 74, 78, 65, 72, 64, 15,101, 50,214, 23,
- 87,146, 63,237,158,194, 57,164,168,145, 14, 49,142,131, 68, 28,158,137,211,206,197,113,211,129,115,174,110, 63,255,115, 19, 45,
-238, 89, 86,244,217,158,252,252, 48,248,159, 1, 74,108,158, 73, 1,164,148,148,132, 90, 99,243,156, 44, 61,192, 30, 30, 30, 64,
-107,220, 89,222,120, 89,150,248, 24,113, 93,135,143, 9,192, 49,202, 13,109, 80, 84,149,116, 66,158, 72,211,116, 41,151, 58,210,
-106,249,223,255,247,143,255,196,223,255,221,191, 97, 85,229, 16, 29,255,245,159,254,194, 95,127,253,149,245,230,154,111,183, 61,
- 46, 42,110,239,119, 98, 79,185,184,132,224,249,233,230, 35,235, 42, 99,116, 61,213,114, 65,123,240, 60,220, 61,176, 59,122,154,
- 30, 10, 29,137, 97,164,235,122, 78,199,150,211,233,196, 48,142, 60,108,239, 49,101,158,124,177, 53, 85,177,161,170, 42,140,238,
-241,126, 96, 12,146,137,126, 94,172,104, 45, 35,215,105,119, 46,123, 52, 51, 51,192,207,197, 75,227, 56,204, 22,180, 57,180, 36,
- 77,209,186,212,105,103,198,224, 83, 76,102, 80,178, 23,196, 67,215,118,100, 54,103, 28, 6, 76,153, 75, 88, 74, 58,212,181, 86,
-207,130, 99,158, 2, 95, 36,150,210,197,128,139, 35,182, 8,179, 50,120, 86, 56,159, 57, 28,230,200,211,224, 19, 36, 40,217, 13,
- 19,242,182,204,202, 39, 67, 91, 90,163,144,132,159,227, 56,146,229,210,169,183,205, 40, 52, 54,163, 8, 49, 35,171, 74,110,239,
- 30,168, 23, 75,214,235, 53,214,230, 56,191, 21,103, 78,128, 44,179,116, 46,240,240,240,128, 83,226, 15,104,187, 19, 10, 67,215,
-169,228,247,111, 88,115, 73,102, 52,151,155, 53, 95,124,241,118,182, 24, 89,155,179,168,228, 16,232, 83,161, 59, 77, 32,230, 48,
- 27, 20, 95,189,125, 51,135,176,168, 51,167,141, 75,100, 51,171,196,181, 32, 1, 37,154, 69, 85, 97,173,166,109,123,201, 49,175,
-202, 39,232, 78,242,240, 15, 78,238,117,239, 61,221,225, 32, 83,154, 16,208, 17, 80, 30,159, 14,245, 16, 28,206, 61,229,155,163,
-194,124,159, 77,113,157, 99,159,190, 11, 35,135,220,116,157,244, 83,225,144,132,129,143,143,143,146, 17, 95,228,115, 33,248,226,
-197, 11,134, 97,224,175,127,253, 43,251,189, 8, 0,167,123,127, 90, 25,252,211, 15, 63, 72, 0,146,205, 48,153,133,240,228,116,
- 17, 47,118, 5, 3,115,248, 77, 94,100, 20, 86,138,160,113, 20,212,248,148,218,183, 88,136,181,247,245,235,215, 88, 43, 17,170,
- 89,194,163,118, 93, 67, 93,215,236,118, 59,238,239,239,231, 63,187, 59,126,226,167,159,126,162,109,123, 22, 43,177,217, 29, 78,
- 34,140,182,121, 70, 93, 46,112, 33,226, 34,244,163, 52, 53, 1,141,143,162, 75,170,235, 50,157,103, 98,255,173, 23, 37, 89,202,
- 46,232,199,129,174, 27,104,135, 54, 21,225,138,232, 61,121,150, 81, 21,197, 51,209,169,119,210,170,102,102,178,213,138,141, 46,
- 4,185,142,175,174, 46, 64, 25, 30,118,123,248,249, 61,187,221,129,245,106,197,101,101, 81, 58, 39, 48,242,249,246,126,134,252,
-116,253,192,205,205, 29, 38,147, 16,167,170, 46,136,202,224, 3, 60,220,220,176, 92,172, 89,111,214, 20, 38,210,183, 7,142,251,
- 3,191,252,244, 51,143,119, 15,216,194, 74,118,179,247,210,185,202,195, 64, 90,255,205,230,117, 18,192, 41,105,194, 83, 3, 39,
- 64, 24,230,116,163,168, 20, 6,137,133, 36, 64, 80,160,131,216,117, 10,155,225,162, 64, 74,198,224,113,253, 0, 70, 83, 88,249,
-243, 89,110, 81,104,252,216, 19, 81, 50,186, 76,163,216,213,102,133, 33, 50,186, 1,130,167,204, 51,250, 19,228, 70,196,119, 54,
- 51,162, 62, 12, 53,155, 58, 35,203, 44,198,230,140,133, 33, 87, 30,223, 15,116, 67, 71,110, 51,114, 3,155,101, 65,157, 69,172,
-214,146,133,108, 53,255,241,111,255, 29, 38,141, 5,251, 48, 48,134,113,222, 5, 87,121, 65, 85,136,208,228,211,167, 27,234,194,
-210,156, 14,168, 20,205,168,140, 84,100,178,125, 79, 93,106, 58, 8, 37,132, 36,226, 71, 79, 12,147, 72, 76, 96, 20,179,144,196,
-141,120,213,163,137,168, 56,117,201, 2,228,144, 4, 57,143, 81,162, 32,246, 78, 14,128,168, 51, 34,145,193,123,218,118,100, 80,
- 57,167,161,167, 31, 68,181,233,189,136,120,208,150,162, 48,184, 16,201, 38, 63,112, 4, 21,181,248,130,125,144,174, 61, 6,166,
-134,236,188, 27,159,186,246,243,170,255,183,194, 54,249,125, 59, 31,234,231,158,243,115, 97,220,111,237,110,179,216, 45,217,114,
-124,124, 14,176, 57,247,176, 47, 22, 11,185, 38, 83, 7, 88, 20,197,236,147, 30,134, 65, 62,123, 49, 43,164,202, 62, 36,159,169,
-153,187,171,190,239,233,157,151, 4,170,161,229,255,249,127,255,129,205,102,195,239,190,253, 10, 21,225,199, 95,111,184,123,116,
-228, 75,195,135,219, 45,235,213, 37, 95,126,245, 53,187,237, 35,153,209, 12,174,135, 32,118, 43, 55, 10,198,116, 8,176, 59,180,
-184,144, 37,105,167,220, 30,202, 26,130, 2,151,210,212,190,252,242, 75,116, 97,209, 25,146, 42,104,214,100,198, 48,164,107,115,
-181,190, 32,175, 68,137, 61, 41,107, 39,117,251,110,183,123,150,172,246, 91, 74,220, 52, 82, 61, 28, 14,243, 24,182, 44, 75,240,
- 30, 23, 60, 38,117,207,198,152,217, 38,106,148,166, 76,157, 90,239,227, 51,174,254,244,119,139, 30, 32,127,246,208, 58, 95,173,
-200,131, 93, 30, 54,251,227, 97,126,208, 63,145,254,158, 72,102, 54,169,173, 39,119,133, 73,197,219, 84,137,180,141, 16,233,140,
- 17, 96,149, 61,187,214, 36,166, 87,207,118,173,105,189, 55,140, 14, 84,198,231,251, 7,126,254,249, 87,178,162,164, 68,145, 55,
- 45,139,160,104,186,158,118, 24, 48, 54,103,183,191,103,116,129,139,235, 23, 44,202,138,113,244,184, 97, 20, 82, 89,223,225, 71,
- 89,117, 12,195,192, 87, 95,124,201,225,112, 32, 92, 6, 78,167,150, 87,175, 94,205,171, 41, 17,254, 85,148,101,253, 68, 63,180,
-154,253,195,253, 51,231,134,214,122, 46, 88, 72,176,167,122,185, 18,168,151,247,140, 93,207,105,159,128, 73,198,226,252, 83,110,
-198,212, 93,154,172,160,168,133, 77,126,106, 58,185, 62, 82,164, 67, 84, 6, 21, 68,163, 48, 14, 30,141,198,123,241,138, 71, 2,
-109,219, 37,215,128,154,109,137, 50, 1, 50,115,124,234, 36,212,155, 20,243,223,127,255,253,124,111,117,157,132, 56, 57,231,132,
-177,110,173,196,181,118,157, 48,219, 51, 51,119,255, 77,223,241,226,173, 76, 56,246,251, 61,133, 18, 39, 65, 94,198, 39, 6,124,
-102,158, 21, 60, 85, 89,204, 58, 27,231, 28,215,151,215,168, 16,185,184,216,204,211,185,233, 94, 24,199,113,214,167,244,189, 20,
-202,211,216,189, 44, 75,154,166,225,223,254,237,191,161,235, 91, 62,125,252, 60,119,250,117, 93, 39, 39,148, 37, 34,161, 95,139,
-101, 20, 10, 95,136,100,153, 33, 4, 75,145,101,172,235,146,166, 57,114,121,177, 97, 12, 35, 69, 89,147, 87,165,184, 1,142, 7,
- 86,203, 5, 77, 91, 66, 72,118,218,174,151,117, 74,181, 16,235,177, 23, 42,132,247,201,186,153, 38,219,222,141, 28,143,143, 34,
- 50, 15,201, 17,160, 32,170,140,221,190,225,212, 12,252,247,127,249,129,191,251,227, 87,172,235, 2, 99, 51,246,251, 3, 93, 39,
-188,128,170,170, 88, 44, 42,142,109, 71, 24, 6,150,171, 11,180,213,172,150, 53,119,119, 90, 34,107,147, 75,195, 88,197,225,112,
-226,254, 97,139, 27, 61,182,204, 51,140,134,232, 35,153,213,120,239,230, 61,204,213,213,213,211,131, 92, 41, 84, 60, 35, 63, 17,
-231,139, 12,165,136, 76,163, 53,208, 26, 73,118,211,194, 61, 14,174, 79, 29,104, 36, 40, 13, 81,137, 13,203, 71, 90,215,144, 89,
- 3,221, 64, 84, 35,151,181,161, 90,214,114, 1, 25, 69, 89,228, 84,185,140,219, 51,163,209,202, 99,137, 68, 28, 38,122, 86,133,
-162, 84, 3,151, 27,177,217,100,101,133, 49,178, 95,143, 6,174, 86, 27,172, 66,200, 62,217, 11,172, 78, 94,251, 20, 59,152, 41,
-195,162,170, 40, 23, 37,202,192,224, 6,186,174, 33, 68, 9,245, 40, 10,241,227, 31, 74, 13, 81,194, 11,116, 86, 96, 50,203,224,
- 37,107,123,240, 78, 88,218,120,136,129,254,212, 37,250, 86, 64,101,249,236, 22, 24,199,129,136,167,200,228, 98,235,251,158,206,
- 13, 4,109,153, 50, 24,109, 46,187, 75,135, 34,246, 3, 85,102,164,123,209, 50,178,109,123, 71,239, 35, 67, 48, 12, 40,233, 88,
-189, 40,158,167,195,111,127, 58, 66,148,194, 36,207, 69, 9, 27,163, 18,230, 64, 76,209,125, 78,162, 6,165, 75,127, 14, 7,154,
- 58,233, 73,236, 53, 61,100, 39,107,207,249,136,222,152,236, 89, 55,119, 94, 28,156,167,138,205, 35,169, 51,117,172,116, 69,150,
-243,225,251,116,243, 79,163,223, 73, 24, 55,141,253,207, 45,110,242,119,202, 56,214,143, 46, 9, 84,100,204,151, 87, 41,211,122,
-244, 56, 23, 4,100, 20,197,254,248,121,219,241,175, 63,254,204,225,216,112,119,119,199,143, 31, 26,242, 2,186,160,113,187, 6,
- 79,193,122,177,164,174,151,168, 8,205,241,128, 81, 48,180, 29,251,253,145,195, 97, 71, 89,150,152,162,102, 60, 13,184, 40, 69,
- 44,225,105,133,209,247,189,132,170, 16, 68,148, 53,140, 18, 42,145,103,100,117, 77, 89,229, 24,187,166,237, 58, 6, 31,158, 29,
-138,231,159,229,122,189,126,218,135, 58,199,118,187, 77, 29,149,136, 41,151, 85,205,195,195, 3,219,237,118, 62,192,141, 49,100,
-103, 72, 93,140, 38,164, 53,201,116,184, 14,195,128,110, 90,124,136,207,160, 52,178,247, 12,216, 44,166, 66, 73,198,225, 33, 42,
-129,231,160, 82, 4,101,120, 58,204, 83, 65, 19,207,116, 22,211,123,153,174,149,167, 96, 25, 80, 70, 24,242, 70,105,170,101,157,
-148,247, 66, 89,211, 41,190,215,164,195,189, 72,122, 16, 23, 65,161, 9,193,211,143, 30, 23, 35,167,166,227,251,191,254,200, 87,
-111, 95,210,116,162, 17,169, 42, 13,218,240,184, 63,177, 88, 10, 35,124,251,184,167,170, 42,150,171, 21,119,119,247, 60, 30,246,
- 24,187, 70, 13,138,237,118, 75,126,146,209,242,213,213, 21,185, 53,108,214, 43, 52,138,229,114,201,122,185,120,202,172, 79,227,
-255, 89,168,233, 2, 99,250, 60, 3, 26,101, 36,139, 94,161,177, 41,115,188,239,123,116,218,105,207, 83,178,179,194,101,119, 60,
-224,220,144,190, 23,153,176,216, 94,238, 49, 23, 3,245, 26,202,229,138,195,233, 68,239,100,253, 50,140, 35,189,147,215,208, 55,
-125, 42,128, 61, 62,136,245,182,233, 91,114, 43, 42,242,213,162, 78,159,125, 18, 79,170,150,126,104, 83,248,204,147,154, 94,107,
- 61, 91, 41,149, 82,236,247,123,254,252,231, 63,243, 31,254,195,127,224,239,255,254,239,231,216,212,213,106,149,108, 85,114,184,
- 55,199,150,251,203, 87, 52, 77,195,114, 85,207, 74,254,232,229,122,171,138,108,222,233, 75,238,186, 88,164,167, 53, 83,155,220,
- 0, 42, 69,190, 58,231,184,191,191,231, 47,127,249, 11,199,227,145, 60,173,250,172,213,115, 17,146,231, 57,239,222,189,163,174,
-107,190,120,243,154,246, 15,223,177,172,106, 78, 93, 75,211,118,148,147,128, 48,144, 2,169, 74,134, 97,129, 49, 10, 66,160, 44,
-165,184, 89,212, 21,221,233,136, 82,158, 63,254,241, 59, 30, 15,143,100, 69,201, 98,181,226,227,199,143, 52,205,145,232, 29,121,
-102,168,138, 26,109, 13,125,219, 37, 77, 79,206, 48, 36,188,113, 20,175,178, 11,208, 13, 61,206, 59,122, 63,166,128, 24,185, 22,
- 78,109, 51, 63,175,156,243,168,168,121,255,225,150, 87,155, 21, 77,157,113,117,117, 65, 89,149,132,224,184,187, 23, 52,237,197,
-197, 5,195,112,195,113,232,232,250, 22, 53, 14,148,197,146,171,203, 13, 93, 47,106,254, 60, 47,208,186, 34, 43, 86,156,218, 17,
- 31, 44,118,185,168,132, 41,187, 46,102,177,195,221,221, 29,198,168, 89,177,253, 91,107,147,252, 58, 61,252,123, 39,214,147, 40,
-208,138,224,153,211,157,158, 70,181,110,222,177, 79, 35, 84,128,193,121, 98, 86,176, 40, 44,121, 28,208,140,140,163, 96, 60,179,
- 44,163,107, 26,134,190, 37,179,154,177,147,127, 95, 44, 23,188,186,186,160, 48, 23,194,185,181,154, 60,183,212,181, 88,148,170,
-114, 65, 81, 87,103,254,105, 3,137,120, 84,102, 86, 10,152, 40,244,177,210,136, 96,105,232, 3,206,183, 4,229,146,144,198, 81,
- 38,240,199,110,123, 67, 94,212,148,133, 70,199,192,235, 55, 47,217, 53, 3, 58,179,244,110,148,224,134,166, 33,175, 69, 48,152,
-153,140,227,177, 21,159,172, 22,146,213,224,100, 45,225,149,236,200, 51, 20, 88, 67,244,242,250,253,244, 57, 69,159,210,213, 12,
- 40,177,251, 97, 20,109, 35,149,245,232, 2,205,224, 24,130,162, 15,154, 99, 55, 48,142,189, 48,229, 39, 44,232, 25,209,203, 90,
- 89,159, 20,169,242, 14, 46,162, 85,164,208,150,104, 53, 81, 5,198, 48,166, 21,231,243, 17,251,228,135,252,109,215,125,238,179,
-213, 90,211,247,227,188,167,250, 45,159,253, 25,212,228,140,235, 60,119, 52,211,245,112, 54,162,127,150, 69,157,212,237,147, 0,
-108,194,213,206,162,199,170,226,212,118,196,232, 25,186, 39,208, 77,215, 73,119, 99,108,206,227,221,205, 92, 32,140, 49, 82,231,
- 37, 5, 29,159,110, 31,249,241,175,191, 16,128, 55, 95,189,101,177, 92, 39,162, 91,198,232, 2,251,211,145,139,229,130,227,241,
-200,221,205,141,224, 37,157,128, 43,108, 81,227, 81, 12, 1,154, 97, 72,113, 58, 2, 54,106, 59,177, 51, 29,142, 71,137, 93,141,
-162,224,246,234,201,238,119, 58,157,208,177,195,197,129,136,149,235,124,178, 88,166,195, 96,154, 22, 77,239,103,250,245,122,189,
-102, 24,134, 89, 37,255,187,175,191,153,199,162,119,119,119, 28,143,194, 0,159,198,232,139,197, 66,222, 59,233, 26,211, 62, 1,
-106, 52, 90,201, 94,218,132,167,245,139, 8, 20,159,219, 23,229, 62,242,179,183,252,124,141,130,214,194, 97, 56,251,190,207,119,
-162,147,254, 66, 77,137,142,105,213, 99,149,150, 98, 35,248, 51,142,191,100, 86, 27,155,205, 69,160,120,201,159,166, 68, 70,201,
-193, 42,171,159,130,207, 55,119,124,249,230, 21,206,121,156,143,216,188, 96, 85, 46,104, 58,185, 39, 46,175, 94,205,187,206, 58,
-129,124, 38,118,126,158, 25,246,135, 35, 93, 39,186,133, 97, 24,184,190,190,150, 85,199,181, 63, 67, 78, 63, 21,149,104, 89,131,
- 76, 22,179,139,139,181, 76, 40, 99,162,198,165,207,108, 18,126, 22, 69,193,227, 86, 92, 13, 74,117, 51, 72,232,112,216,179,219,
-109,233,221,200, 48,116,140, 99,178,144,142,142,102, 18, 54, 42, 32,106,186,161,231,212,117, 2,133, 10,162,225,240, 65,186, 43,
-131, 73,209,216, 82,244,196, 24, 24, 6, 1,216, 60, 57,144,106,148,138, 60, 62, 62,162, 18,249,110,234,198,149, 82,188,122,245,
-138,135,135,135,249, 26,155, 88, 8,101, 89,242,241,227,199, 89, 61,255,227,143, 63,202, 90,105, 24, 24, 6, 17,205, 45,202,197,
- 60, 42,215, 74,225, 82,122,153, 27,100,178, 70,240,207,104,134,126, 28,102,184,149, 39, 98,180,165,233,218,196,252,144,207,108,
- 82,193,159, 71,212,230,185,157,133,219, 2, 38,219,243,151, 63,253,153, 15, 63,255, 68, 81, 20,108,214, 53,203,101, 77,239,188,
-136, 12,251,158,193,133, 4, 72,146, 48, 29, 77,192, 69,143,209,138,186,170,185, 92,175,216,250,129,174, 61,208, 52, 71,110, 63,
-125,166, 94, 45,169,235,146, 50,183, 56, 63,144,103,165, 36, 10,170,136, 27,122, 17, 10,134, 8, 94, 82, 28,155,174,127, 90,107,
- 18, 33,122, 52, 17,163, 60,206, 13, 28,142, 59, 46, 54, 87,103, 19, 54,131, 54, 5, 85,189, 6,229,248,225,167, 95,121,247,234,
-146, 23, 47, 94,202, 58,218, 79,118,235,241,201, 10,217, 52,180,167, 99, 66,141,107,214,139,154, 24,101,218,243,184,111,168,151,
- 11, 94,188,254,146,160, 44,109,215, 97, 23, 85,129, 49,122, 38, 87,121,239,201,140,226,216, 52,108,183, 91,178,172, 72, 35,210,
-240,108,252, 22, 60,130, 89, 12, 10,131,140,218, 99,244, 41, 57,198, 61, 19, 61,249, 32, 81,148,168, 48, 83,168,138,162, 32,104,
-131, 46, 34,144,147,231, 79,194,142,113, 28,209,177,225, 97,127, 34, 55,150, 23,151, 87,100,214,112, 89,172,200, 46,150,188,123,
-253,130,235,213, 2,173, 70,246,187, 59,178,220, 48, 14, 30,147, 89,170,202,160,116,160, 90,150,201, 14,116,139,213,154,152,105,
-122,167, 41,179,156, 60, 51,216,168, 9,195,200, 56, 70,180,181,228, 88, 76,166, 48, 74,184,203, 56, 79, 28, 35, 85, 97, 40, 42,
-121,200,222,239, 91, 54,155, 13,247,251,247, 73, 80, 23,192,123,118,205, 81, 64, 20, 4,202,188,160, 29,122,241,135,163,104,251,
-129,253,169, 65, 41,147,186,173,145,209, 15,212, 85, 65,102, 13, 58, 90,220, 48,226,156,248,185, 29,145,195,233, 72,223,183,172,
-234,130, 48,180,140,169, 64,209,153,165, 25, 4,172,211, 5,205,169, 25, 24, 93, 67, 12,130,198,181,214, 82, 23, 57,101,102,207,
-186,232,128,138, 1, 77,148, 81,187,247, 68,229,112,195,200,232, 29,131,235, 49,249,147,207,124,186, 64, 39,149,250,228, 51,159,
- 14,236,243, 3,220, 24, 81, 56, 79,191, 55,141,212,206, 65, 39,147, 40,110, 94, 73,156,117,147, 33,137,102, 72,135,192,180, 19,
- 62, 71,213, 14,195,240, 12, 31,123,110,153,243,222, 11, 42, 51, 10,220, 98,202,130,238,123,185,249, 66,154, 44, 41,155,205,177,
-154,213,162,162,216,172, 0, 69,211,203, 53, 83, 46,215, 96,115,142,221,128,213, 30, 77,160,204, 50, 90,163,105,247,178,115,188,
- 88,175, 88, 46,151,156,186,150,178,168,184,121,216,178,125,220,163,109, 65, 94,212,100, 42,163,111, 3,104,131, 75,209,153,211,
-104, 60, 16,201,107,225,164, 47,139,122,126, 45,152, 82,178,196,155, 46,101, 2,200, 4, 35,207,114, 84, 94, 80,102, 57,219,237,
-150,110, 28, 25,218,110, 6, 92, 44,202,138,190,105,185,191,185,101, 28,251, 25,118,210,187, 62,217,195, 4, 33,172, 53, 12, 67,
-138,111, 84,138, 60, 51, 4,147,216,243,130, 64, 18,138, 94, 94,224,220,147,128, 74, 41,206,186, 81, 55, 31,230, 50, 61,208,243,
-254, 87,172,107,157,168,238, 66,124,150,243,110,173,198, 24,197,216, 15,179,134, 35,166, 2, 71,232,146, 6, 19, 45,163, 79,110,
- 6,109,200,242, 76,128, 58,133,157,167, 76,130, 14, 29, 83,161, 8, 89, 97, 49, 99,206, 48, 74, 1,252,225,211, 71,190,249,242,
-181,208, 18,135,129, 24, 37,225,173, 40, 10,182,143,123,150, 43,201,222,190,127,220,145,231, 57,155,205,154,182,109,232,219,150,
-205,213, 21, 33, 74, 0, 8,209,203,115,193,218, 4,161,217,205, 40,214, 41,135,221,123, 79,215,246, 28,143, 71, 25,167, 18, 5,
-133, 75,156, 39, 19, 79,137,131,118, 30,201,123,247, 84, 48,207, 17,154,200, 58, 78,132,113, 2,205,209, 9,111,221, 37,215,200,
- 4,162,153, 68,135,226, 32, 2,165, 69, 16,172,162,198,245, 50, 89,213,233, 94,210,134,164, 48,151,251,215,230, 25, 38,123, 90,
- 9,228, 73,100, 57, 89, 28, 79,167, 19, 87, 23, 23, 40,165, 88, 44, 22,233,158,238, 40,138,146,178, 20,109,208,205,205,205, 92,
-160, 76, 66, 81, 99, 50,138,194, 72,116,105,240,244,219,145,207,119,183,120, 63, 38,242, 96, 90,177, 69, 63,107, 43,196,230,150,
- 4,181,153,100,112, 76, 43,220,112,102,121,187,184,184,144, 41,201,122,205, 42, 93,219,198,200,235,123,243,230, 13,135,195, 65,
- 40,154,255,252, 79,236,183, 15,252,254,247,191,231,250,250, 90, 2, 91,138,138, 81, 43,186,182,193,165,107, 75,197, 18, 77,192,
-187,145,182, 57,162,195,128, 31, 10, 74, 27,185,186,186,224,112,216,242,233,243, 7, 14,199, 29, 88,184,187,187,225,250,250,154,
-183,175, 94,178,223, 31,103,111,124,235, 6, 41, 12,220, 40,207,250, 74, 34,106, 67,136,146, 54,167,196, 5,102, 51, 67,161,114,
-108,223, 73,211, 53,118,228,101,205,208,123, 8,162, 51,240, 17,202,172,226,238,254, 51, 86,137,237, 47,203, 12,139,186,192, 22,
-249,108,123,172,234,146, 97,168,105, 7,137,204,237,186, 70, 70,238,233,243,184,125,104,136,106,228,250,234,138,205,197, 75,177,
-180, 41, 37, 89,188, 50,110,237,176, 86,246,114, 1, 1,117, 76, 35,145,169, 51,159, 21,176, 81,104, 85, 6,241,155,146,110,248,
-185,155,215,231,106, 96, 5, 41,138,209,121,135,181, 50,242,206,170,138,251, 67,139, 31, 12,177,144,124,229,206, 57, 14, 77, 75,
-163,123,238, 30,182,212,245,134,172, 52,180,163,160, 7,139, 92, 83,230,134,186, 50,224, 60,174,148,215,123,219, 61,144,155, 2,
-165, 45,167,182,147,236,224, 94,132, 32,139,170,130, 32,197, 5, 26,138,122, 37,227,212,193,205,241,120,218,106,148,242,140, 78,
- 33, 28,160, 40,113,144, 41, 81,172,237, 71,222,191,255,192,246,241,196,175, 31, 62, 83, 93, 92, 17, 77, 70, 63,122,110, 62,125,
- 34, 6,136,126, 96,181,172,249,235, 79,191,240,242, 52,160,140,168,207,239,239,183, 51, 41,172,239, 91,220, 56, 18,189, 64, 70,
- 78,167, 35, 93, 47, 15,140,186,174,209,131,103,191,223,115,220,239,168,138,156,254,116,100, 81,151,188,121,243,134, 92,103, 52,
-237,158, 67, 55,160,178, 26,101, 21,165, 45, 37,137, 42, 29,116,231,168,215,190,239, 41,139, 2,149, 91,178,104,240, 22,108,166,
-137, 81, 30, 36, 93,223, 51,250,129,194, 20,226, 53,142, 14,239, 98, 10,227, 41,229,223,182, 32,226,113,163, 0, 30,220, 24, 8,
-209,225, 92, 76, 15, 47,149,146,223, 28,227,216,211,247,162,230,159, 44,116,114,221,120,140,201,146,104,196,167, 76,128,140,209,
- 11, 11, 25, 35,116,164,209,245,196,240, 68,166,155,108,113,217, 25, 83,250,156, 44,231,188,195,102,133,104, 2, 66,100,153,213,
-104,109,105,135,158,161,119, 79,112,153, 20, 58,163,141,198,133,136,241,224,162,163, 88, 46,104,187,129,159,223,127,158,139, 16,
-171,225,205,139,107,150,151, 27,186,246,136,239,123, 54,155, 13, 95,127,245, 37, 74, 41,254,250,243, 47,172,215,107, 62,222,222,
-209, 13, 30,112, 20,133, 71, 27, 43,221,250, 48,206, 59, 90,165, 34,139,101, 77,147,126,125, 60, 52,244,167,128, 27, 70,180,234,
-201,243, 12, 31, 53,135, 99,115,134, 92, 85, 51,191,126, 76,191, 23,130,227,120,148,156,123, 99,158, 10, 46,157, 9, 69, 43, 32,
- 34,174,245,197,102,238,148,142,109, 51,223,139, 82,236,149,228, 73,220,211,247, 61, 62, 4, 48,210,181, 89, 34,109, 27,230, 12,
-233,115,141,130,216,215,192, 35,164,199, 39,241,163, 0,107,108, 54, 57, 30, 52,222, 50,239, 68, 39, 27,211,180,190,201, 18,102,
-149, 16,159,165,188,161,210,123,214,162, 74,232, 19,158,179,239,123,250,113, 16,240,203, 48, 48, 58, 71, 84,154, 66,231, 73,133,
-237,136, 88,246, 93,224, 52, 4,222,188,120,197,241,216,176,127,220,225, 99, 75,181, 88,115,106, 58,154,166,225,197,139, 23,124,
-250,244, 9,215,119,188,123,247,142,174, 61,241,203,175, 71,172,201,185,186,170,185,189,149,232,233,203,171, 43,238,238,238,208,
- 90,243,167, 63,253, 73, 60,247, 62,208, 14, 61,227,224,230, 34,103, 82,157,219, 60,195,141,195,252, 30,158,210, 9,197, 54,165,
-149, 69, 27, 43, 76,238,200, 44, 8,156,174,235,201,217, 49, 58,121,150,206,107,206,179,255,149, 41, 80, 37,119,210,193,247,105,
- 74,230, 99, 4,239,168,138,196,103,143,158, 44, 75, 68,207, 16,136,137, 0,154,101, 25, 99,122,190,100,214, 10, 73, 47,203, 25,
-199, 97, 46,158, 79,167,147,228,203, 55, 13, 67,215,241,184,223, 83, 37, 86,197, 55,223,124,195,118,251,192,229,229, 37,175, 94,
-189,226,243,103, 9,190,145,253,188,227,242,114, 51,171,226,155,166, 65, 27,249,153,147, 70, 40,203,114,226,220, 16, 6,209,186,
-100, 66,126,180,214, 98,179, 64,189,216,204,194,183,170,170,120,249,234,154,211,177,101,181, 90,177,217,108,184,184,184,152,249,
-231,135, 99,195,246,241,128,177, 5,175,223,125,193, 87,239,222,242,238,205, 75, 92,140,244,157,192,200,172, 2,188, 67, 33,247,
-144,252,252, 56,179, 52,198,177, 71,159, 52,163,235,121,253,250, 53,221,208, 19,186,158,122, 37, 5,196, 15,223,127,207,213,213,
- 21, 47, 95,190,228,215, 95, 63,240,226,133,216,151,243, 60,103, 89, 11,155,193,245,114,127, 87,101,145, 50, 25, 50,130, 10,100,
- 78,161,163, 70, 41, 9,114, 81, 72, 99,178, 92, 95, 50,244, 34, 64,204,139,146,227,177, 33,183, 22,109, 75,126,121,127, 67, 81,
-175,120,251,234, 90,236,124,195,128, 54,240,242,106, 61,147, 89,243, 65,214, 98, 77, 59,206, 46,177,188, 90, 50,120,203,221,253,
-227, 83, 65,157,229, 88,109, 51,114,107, 9,206,211, 13, 35,198,203,151, 98, 20,172, 19,119, 88,232, 86, 82, 61,186, 41, 29, 42,
- 23, 1,198,100,122,137, 74,167,139,219, 36, 28,212,153,210,178,111, 9,126,228,226,114,141,247,142,195,254,145, 87, 47,174,200,
-203,154,227,233, 19, 86, 27,246,251, 6,187, 18,216, 71, 53, 74,103,217,122, 80, 81, 49,250,128, 85, 2,139,177, 42,240,120,255,
-145, 87, 23,223,128,118, 44,150, 21,101,189, 36,152,130,125,211,113, 60, 14,168,188,132,144,209,184,145,247,119, 59,214,139,142,
-223,127,253, 37,133,146, 93, 79,244,129,193,203, 8,215,247, 45, 23, 23,235,116,216, 25,186,232,232,181, 33, 51, 5,195, 16,112,
- 49, 98, 84, 96,189,185,166, 94, 62,242,240,227, 7,190,120,251, 38, 9,206, 12,135,227,137, 62,104,110, 31, 79, 92, 95, 93,240,
-254,102,203,246,228, 57,245,159,217,108, 54, 56,183,151,209, 73,138, 44,172,106,177,188,124,110, 27,238,238, 30,104,218, 65, 42,
-176,209,209,181, 3, 1, 24,199,158,178, 42,208,214,242,213, 31,254, 64,215,117, 28, 93,128,177, 99, 76,226, 49,101, 51,154,238,
-148,196, 80, 26,173,159, 48,189,206,185,196,209,142, 24,163, 25,134, 62, 37, 96, 69,198,182, 79, 69, 87, 36, 43, 53,174,141,180,
-199,227,188, 59,213,218,208, 28,122,154,195, 17,173, 21,139,197,146,182,109, 18, 21, 80,244, 20, 74,129,214, 34, 86, 27,131,140,
- 26,181,178,140,174,199,141,225,201,178, 99,213, 60,209,153,254, 29,131,146,152,207,160,136, 42, 96,109,206,208, 15,132, 32, 59,
- 62, 99,173,164,248,133, 0, 10,108,110,240,193,145,217,140,171,205,229, 76,197,154,210,187,242,212,133,159, 91,242,178,162,146,
-135,171, 54,232, 66,144,194,243, 14, 94, 73,145, 25, 92,160, 31, 3, 33,209,244,138, 50, 67, 43,240, 78,188,180,199,230, 64,119,
- 60,224,251,158,151,175,126,199, 79,239, 63,177, 90,173,200,203, 37,167,206,209,156,122,242,186,146,174, 41, 58, 46, 86, 43,168,
- 46, 48, 58,144, 89,203, 98, 89, 96,122,207,114,189,166,172, 42, 78,221, 73,130, 88,130, 34,179,150,102,191,149,247, 25, 3,175,
- 94, 94,207, 83,137,105,255,152,105, 67,212, 18,130,113,119,119, 55, 31, 0,168,167,207,221,123,207,169,235, 25, 83,202,219, 52,
- 22,206,178,140, 49, 41,200,197, 67, 59,130,177,132,105,125,225,196, 68, 54,166, 3, 51, 4,209, 28, 8,153, 47,127, 6,155,177,
-214, 82,102,178,151, 44,138, 98, 30,245, 26,163,201,114,195, 98, 81,209,247, 45,101, 89,203,207,203, 51,234,122, 57, 91,134,140,
- 78,201,114, 77,155,118,140, 41, 50,212,245, 60,238,238,137, 65, 97,178,140, 24,195, 28,222,179, 63,157,120,120,120, 96,179,190,
-228,167, 95,222,115,113,113,129, 10,145, 74, 23,252,229,135,143,120,239,168,138, 18,231, 6, 50,171,248, 47,255,248, 3,255,231,
-255,254,134,161, 57,241,246,213, 53,223,255,240, 35,139,213, 5,117, 93,179, 61, 28,121,241,250, 21, 47, 46,215, 20, 38, 96,227,
-192,186,174,248,226,171,111, 56, 52, 45, 95,191,124, 69,140,145,135,237,142,113, 28,121,245,234, 21,215,175, 94,178, 77,249,225,
- 70,105,176, 22,165, 37, 42, 58, 38,183, 75,150,139, 71,249, 98,189, 38,164,162, 49, 36,219,216,232,197,237,147,167,168,207,221,
-238, 17,148,104,150,148, 10,248,113,164,176, 1, 91,101,228,101,133,243,229,252, 93, 77,228,182,182,109,231,201,101,140,145,177,
-239, 81, 33, 80,165,177,249,228,143,206, 44, 41,202,152, 52,165,145,235, 94, 41,205,113,215,112,177,186,100,183,221,243,250,245,
- 75,116,136,220,223,220,178,250,166,226,242, 98, 45,147,216,194, 18, 53,152, 44,227,253,199, 15, 92,110,174, 88,174, 55, 52,199,
- 19, 87, 87, 87, 40,147,241,233,230,150,139,139, 75,190,252,242, 43, 22, 85, 45, 43, 21, 60,203,186,194,102,242,236, 49, 40, 30,
- 30, 30,248,248,241, 35, 74,169,217,122,150,231,185, 20,126,233,121, 48, 29,220,101, 94, 96,140, 98,185,170,113,110, 72,227,254,
- 58,173, 8,100, 85,183,223,237,121,255,254, 61, 31, 62,127, 38,179, 5, 69, 81,137,234,223, 39, 70, 9,142,171,149,225,143,127,
-248,154,230,212, 17, 11,147,156, 5, 39,138,162,224,254,113, 75,136, 34, 56,141, 81, 38,171, 99,132,227,169, 97,177, 88,176,235,
- 58,186,247, 31, 82,234,103,195,245,235, 55,220,222,222, 82, 47, 86,220,223, 62,240,238,221, 59,172, 54,116, 77, 75, 76,147,148,
- 73,147, 50, 53, 26,117, 93,178,221,110, 41, 76,142,115,105, 82,219,119, 51, 44, 74,245, 35,245,114, 37,103,165, 53,184,224,249,
-245,195,123, 50, 91, 80,215, 37, 95,188,251, 29,119,159,223,243, 95,255,241, 95,217,125,125,192,228, 5,139,202, 96, 99,224,110,
-123,207,106, 81, 73,145,157,114, 30,140,178,156,246,123, 50,109, 40, 12,172, 23, 25,109,103,216,239, 31,184,188,184,166,113, 35,
- 54, 42,200,108,134,154, 18,121,166, 92,102,253,148,105, 43, 74, 79,139, 3, 76, 22, 25,137, 66,239, 50,138,220,102, 50,126, 74,
- 91, 28,151,196, 66, 83,184,134,214,154,122,185, 96, 28, 58, 78, 9,106,147,231, 57,203,101, 77,158,215, 16, 34,199,253,137,101,
- 45,255,173, 42,115, 22,155, 11,186,174, 99,113,121,141,138, 57,132, 17, 21,158, 4, 92,163,107,201,203, 12,173, 12,251,253, 17,
- 99, 51,202, 69,206,174, 15,188,255,240,145,187,199, 3,117,181, 36,203, 13, 63,252,252,129,127,255,183,127, 36, 43,106, 84,244,
-104, 61,204,137, 77,147,141,161,119, 35, 46, 38,114,154,182,140,126, 16,225, 89,132,118, 28, 41,108, 69, 12,208, 12,178,175,241,
- 67,160,117,247,156,250,129,211, 16,132, 66, 55,120, 62,223,222,210, 37,234,146, 53,142,219,251,247,188,121,117, 73, 94, 86, 84,
- 69, 65,153,186, 19, 93,166, 21, 70, 84,108,119, 13,152, 41, 87, 56,224, 93,192, 68,155, 62,163, 37, 55,183,183,114,160, 38,171,
-132,119, 17, 99,123,193,229,134,145, 67,215,145,101, 54,113,153,253, 60,254,158,112,139, 19, 98,116, 38,134,157,169,212,229,226,
-180,115, 66,210,212, 1,207,201,121, 89, 70,211, 52,243, 56,126, 2,143,204,163,217,232,231,157,237,116,157,156,131, 46,206,133,
-113,191,165,198, 77, 83, 28,157,217,103,187,252, 41, 41,105, 24, 92, 10,222, 88,206, 55,210,185,159,219,185,100,233,234,135,103,
- 22,185,105,252, 57,117, 77,211,231, 50, 29,234,211,248,115,154, 54,217,114, 33,172,116, 15, 62, 12, 88, 34,168, 48,119, 83,110,
- 28,208, 38,163,237, 6,108, 54, 48, 12, 66, 70, 51,153,149,107,116, 89,115,125,181, 97, 81, 22, 60,220,239, 49, 49,112, 31,239,
-121,184,187,231,242,197, 75,134,161,227,112, 60,210,116, 3, 89, 86,240,226, 98,195,106, 81,177, 40,172, 8, 39, 83, 16,196,116,
-168,143,125, 79,115, 58,112, 72, 52,182,135,135,187,148,118,183, 36, 47, 37,212,161,237, 78,244,163,248,102, 81,162,182,143,137,
-177, 16, 20,216, 34, 23,171, 84,242, 6, 79,162,171, 62, 49, 9, 48, 26, 99, 52, 81,171, 39,250,227,121,198,122,210, 63, 76,129,
- 78,198,104, 50, 99, 33,133, 31,201,142, 57, 50, 14,154,237,237,199,167,181, 75,140, 9, 46, 35, 34,217, 97,112,243,218,102,236,
-135,121, 13, 99,140, 65,197, 64,219,119,146, 48,101, 45,202,136,141, 47, 76,138,123,109, 25,189,227,235,111,191, 73, 73,101, 59,
-154,148,189,224,156,195, 46, 44, 69,185,228,212,157,184,185, 63,114,123,255,192,183,223,126,203,221,231,143, 92,174,215,116, 93,
- 75, 94,149,178,162, 26, 71,170, 66,236,173,199,195, 30,231, 60,198,228, 84,213, 83, 96,201, 50, 69,200,118,157, 64,119,190,251,
-238, 59,254,252,151,127,149,201, 72,211,160,148,228,135, 23, 89,142,177,242, 25,141, 93, 79, 85,148,179, 88,208, 71, 37,147,170,
-190, 35,250, 56,175,129,150,203,101, 26,205, 70,110, 62,125, 16,209, 87,158,113,117,177,166,115, 17, 6, 55,135, 38,157,195,149,
-206, 3,147,206, 61,220,147,200, 48,203,141,172,213, 84,192, 59,149,166, 1,102,206,173, 7,205, 97,119,160,174,107,186, 83,199,
-245,245, 53, 93,115, 18, 10, 32,145, 60, 65,185,198,113,164,233, 90, 78,173,172, 9, 47, 47, 47,185,184,186,228,197,171,151,220,
-223,222, 49, 12,142, 79,159, 62, 73,176,202,205,141,184, 50, 8, 88,171, 25,198,142,113, 28,112,253, 48,239,225,223,188,121, 51,
- 23,132, 77,211, 64, 7,222, 31,230,247, 55,110,215, 97, 0, 0, 32, 0, 73, 68, 65, 84, 56,175,112,163, 35,179,144,105,197,161,
- 57,225,210, 14, 60, 6,133,143,176, 90,110,120,241,250,213,108,231, 60, 54,146,152, 87, 47, 86,148,121,129,181,154,171, 43, 1,
-221,188,127,255, 30,133,225,226,226,146, 87, 47,175,249,235, 79,191,112,181,185, 72, 99,107,207,152,198,217, 54,207, 18, 57,212,
- 81,106, 97,216,215,203, 37,251,195,137,207,159, 63, 66, 80, 44,214,155,249, 90,253,238,187,239,248,248,241, 35, 99,194,165,143,
-157,195, 15,146, 45,160, 8,216, 44,163, 94,228,140, 67, 71, 76,255, 77,110, 51, 28,145, 94,129, 27, 6,218, 83,131, 75, 86,101,
-173, 45,125, 18, 66,238,118,134,119,175, 94, 83,175, 46,201, 15, 7,126,249,120,131, 49,154,255,248, 31,255,150,139,245,134,159,
-127,250,158,248,242, 37,153, 57,119, 18, 13,232,169,121,142, 35, 70, 71,190,249,242, 53,255,253,159, 31,249,245,215,239, 41,171,
- 5,214,159,229, 40,159, 51,217,139, 44,199,100,249, 51, 20,171,181,150, 81,188,108,105,199,102,228,193,146,114,155, 99, 74, 93,
- 10, 81,190,148, 24, 99, 82,232, 89, 98,112,184,161,199,106, 69, 89,137, 18,114,177, 94,243,242,213, 53, 15, 15, 15, 84,117,134,
-177,242,192,209, 54,227,216,108, 33, 26,170,178,130,193,203,223, 29, 3,135,174,101,191,149,204, 99,173, 2,219,199, 29, 15,135,
-150,221,177,231,225,216,241,254,211, 45,183, 15, 59,242,188,144,189, 82, 81,241,226,213,107,116, 94,224,218, 35, 0,141, 11, 88,
-165,105,187, 22,173, 21,131, 50,233,198, 25, 9, 78,212,181, 74, 69,218,126,100,127,106,120,145,215,168, 90,113, 28, 6, 62,109,
-143,180, 3,152, 12,134, 0, 62,128, 79,221,171, 79, 35, 54, 27, 28,214,100,228,165,229,230,110,203,178,206, 24,235,154, 62,147,
-241,215,178, 94,160,181,162,239, 59,222,126,249,133,248,203,211,238, 50,207, 74,116, 38, 29, 85, 55,244, 44,150,213, 12,233, 17,
-126,182, 56, 20,164,179, 46, 24,157, 67, 27, 25,243,105,173, 49, 40, 84,202, 54,206,243, 28,165,159,196,107,231,118,163,233,225,
- 26,210,142,123,170, 60, 39,129,148,181,150, 44,207,161,239, 37, 86, 49,137,183,226, 48,204, 7,128, 82,242,112,115,222, 75,172,
-166, 82,100,121, 78,145, 56,211,192,236,121, 61, 39,208,157,175, 9,154,227,241, 25,207,125, 72,129, 21,206,201,195,237,152, 24,
-220,231,197,200,180, 95, 13,114,177, 61,179,226,157, 91,226,126,235,143,159,148,248,211,193,174,148,124, 94, 33,189, 46, 99,204,
-156,112, 54,246, 98,117,186,216,172, 89, 44, 42,238, 13,248, 32, 93,252, 56,142,212,117,197,177, 21,129,219,175,191,254,202,183,
- 95,125, 77,158,231, 60,220,124,230,186,200,121,251,246, 45, 38, 47,104,123,249,121,139,197,147, 10,120, 42, 62, 78,167, 35,104,
- 77,230, 28, 85, 85,113,121,121, 57,167,177, 77, 42, 95,239, 35,230, 44,176,163,107, 7,162, 50,104, 45, 34, 41, 31,131,216, 65,
-173, 38,183, 26, 63, 6,154,227,126, 22, 25, 74, 32,139,153, 5,120,211,103,233,189,135, 32,251, 88,129,151, 60,191, 70,166,207,
-109,142,228, 69,137, 16,214,249,185,104,204, 50,177, 44, 21, 69,193,254,116,146,145,123, 94, 18, 2, 44, 86, 75,154, 83,162,210,
- 1, 89,145,138,188, 36,152,235,251,118,254,126, 70,239, 88,148, 75,148,210,244, 78, 72, 98,211, 68,162,235,186, 25, 63, 92, 20,
- 5,155,141,176,217,125, 20,148,104,185, 40,217, 29,182,252,211,159,254,133,111,254,143,255,196,237, 63,222, 82, 45,150,180, 77,
-203,106,115,205, 48,202,103,113,121,113,193,208, 55,140,163, 63,131, 40,217,153, 20, 55, 21,172,162,129, 80,188,123,247,142, 23,
- 87,215,220, 61,220, 99,173,158,167,150, 70, 41, 22,139, 90,198,230, 99,207,110,155,192, 39, 74, 97,149, 88,131,213, 32,249,244,
-227, 32,182,203,205,102, 77, 85,150,100,153,225,225,238, 70,158,135, 81,212,244, 22,113,175, 76,197,234,116,223,158,139,196,206,
-217, 14,231,248,228, 44,179,137,164,239,165,173,154, 0, 40, 90,165, 93,188,231,216,156, 40,235,146, 99,219,112,109, 46,121,249,
-250, 21,159, 62,125, 20,113,116,150,201,159, 75,223,245, 20,177, 60,157, 1,227, 56,162,140,230,250,250, 90, 28, 16,233,250,184,
-185,185, 33,120,209,228,200, 8, 61,155,167,100,199, 97,228,225,120,194,253,203,159,196, 38,151,229,207, 52, 50,207, 44,146,209,
- 83,151, 25,203,122, 49,175, 35,150,203, 37,125,223, 81, 47, 86,188,126,253, 58,173,223, 44,139,197, 83,113,126,121,117,205,106,
-185,196,234,200,215,111,175,233,251,158,235,235,107,118,143, 7, 62,125,250, 68,211,246,115,128,215,148,133, 97,242,132, 21, 79,
-170,255,221,238, 64,110, 13, 89, 85,114,121,241, 18, 55,142,236,247,143,148, 89,137,213,240,112,119,195,122, 89,179,172, 75,242,
-164,188, 95, 46, 23,184,174, 39, 88, 77,145, 91,154,230,200,219,215,175,184,188, 88,242,235, 47, 31, 68, 93,175, 69,132,234,199,
- 1, 55,136, 93,217, 13, 29, 46,104,121, 22, 91,141, 81,162,157,232,251,142,247,239,127,165,239, 4,134,164, 85,228,230,254,158,
-247, 31, 62,177, 40,191,161, 42, 87,116,221,136,174, 75, 50,155, 99,237,200, 56, 38, 1,167, 23, 4,246,245,171, 87,140, 33,242,
-245,187,215, 12,195, 53, 31, 63,126,198,126,248,240,129,162, 40,102,155,129, 62, 19, 45,157,223,224,211, 67,239,188, 8,144,223,
-179,226, 75,143,162,102, 38,168,180,111,151, 81,109, 85, 21, 73,217, 42, 35,171, 76, 27,250,190,149,188,233, 40,190,198,162, 44,
- 1,143,206,114,180,209,140, 94, 58,127,239, 35, 38, 68,218, 20,217, 23,163,167, 61, 30,216, 62,236, 57,182,162, 94,141, 38,103,
-183, 63,241,211,135, 91,238,119, 7, 30, 79, 3,251,227, 64, 96,192, 5,248,119,223,125,137, 45,107, 78, 93, 79,110, 51,174, 55,
-215, 2, 98, 8,145, 33,117,138,170, 42,233, 78, 13,237,169,157, 15, 52,163, 13,199,177,227,177,237, 96,127,160,137, 57,157,143,
- 20,171, 26,227, 3,121,189, 32,203, 10, 17,236,160,146,119,122,164, 75, 74,245,186, 42, 82, 42,146, 65, 37, 5,173, 49,138,122,
-185, 98,177, 94,226, 93, 96,140,145,168, 2,171,205,134,186, 44,233, 6,161, 98,157,218, 99, 26, 71, 39,134,114, 33, 35,103, 31,
- 53,101, 81, 48, 12,178, 23, 53, 70,179,217,108,158,101,109, 79,157,151,115,110, 78, 72, 59,239,224,167,117,202, 36,110, 27,210,
-200,243, 28,239, 58,171, 83, 83, 65,247, 91, 96, 76, 60, 75, 70, 27,210,175,167,131,122,234,130,167, 7,241,164,176,157, 66, 36,
-126,219,185,187,248,100,104,155,126,182,188, 23,121,125, 93,223, 63,179, 73, 77, 86,184, 41,151,123,232,250,255, 33,210,245,124,
- 28,127,158,247,126, 94,208, 88, 43,129, 30,206, 43,108,148, 44,232,204,102,242,144,117,142, 48, 12, 4,239, 40,172, 73,150,155,
- 4, 92,178, 10,107, 43,138,170,100,117,177,225,213,171, 87,220,220,136,176,166,200, 45,139, 34,231,203,111,190,166,107, 7, 30,
-118,123,238, 30,118,108,140, 37, 43,170, 57, 32,228,176, 63,193, 52, 41, 80, 34, 76, 58, 30,143,108,183, 91,140, 49,156, 78, 39,
- 14,135, 3, 81, 49, 39,119, 77,187,240, 83,219,207,202,255, 60, 29,150,159,111,111, 80, 17,170,186, 38, 51,150, 99,115,194, 40,
-177, 40,217, 84,212,101,105,135, 25,125,192,235, 32,171,137,179,116,184,249, 32, 15,114,120, 43, 12, 74, 11,108,134,248,116,207,
- 71,255,212, 57,202,161, 46,215, 91, 53,250,244, 29,137, 62,226,176, 63,113, 58,157,102,213,175,208, 21, 21,193,249, 89, 1,190,
-217,108, 88,173,175,196,227,156,158, 65,180, 82, 4,250,192,179, 67, 61,248, 49,169,173,171,249, 26, 38, 41,185, 93,107,249,249,
-151,247,236,246, 71,208,134,166,109,113, 78,161, 9, 84,101,142,235, 59,236,197,130,162,200,229, 53, 13, 14,215, 13,248, 32,208,
- 20, 17, 91, 70,108, 86, 48,142, 61,109,219,177,168, 42, 94,188,120,193, 79, 63,253, 52,219, 7,125,112,248, 65, 50, 31,170,170,
- 96,181, 90,176,127, 60,200,117,173, 51,116,166,196,182, 27, 18, 45, 45,137, 76,199,209,161, 85,143,214, 69, 82,111,139,176,179,
-235, 58,162,202,158, 21,164, 19,136,101,186, 23, 38,145,214,116,255,156, 43,242,103,135, 17,147,199,221,206, 78, 18,166, 24,226,
- 24,230, 40,223,251,251,123,190,254,230, 75, 62,126,252, 64,136, 79,110,135,195,225, 48, 23, 55,211,115, 97,226, 65,236,247,130,
-112,109, 79,242,231, 14, 59, 89, 83, 88,163,168,138,146,110,144, 0, 48,173, 20, 70,103,243,174,125, 76,248,227,182,105, 80,169,
-136,214, 42,202,186,106,182,172, 90,198,193,209,169,145,178,172,201,179, 74, 50, 16, 14, 59,234, 36,218,123,247,238, 29,151,221,
- 41, 69,202,202, 51,226,226,226, 66,146, 11, 75, 75,161,224,195,175, 63,243,230,205, 59, 30,183,114, 29,157, 78, 39,170,178,230,
-151, 95,127, 69,103, 57,101, 81,113,117,125,205,177,109, 0, 41, 34,155,166,193, 26,195, 41,137, 30,151, 85, 73,119,178, 73,247,
- 35,186,142, 41, 83,254,213,171, 87,172, 22,130, 75,119,195, 72,140, 75,177,227,154, 72,223,158, 88,175, 87, 68, 4, 74,163,141,
-145,102, 24,225, 25,220,220, 61, 50,140, 14, 29,131, 68, 20,171,136,178,130,145,205,179, 12,140, 88,222,178,205,154,213,162,164,
-107, 15,252,211,191,252,133,224, 60,191,255,246, 75,134,190, 35,120, 41,216,235, 90,172,218, 66,127, 21,151,214,105,255, 72, 64,
-177,170,114,242,205,146,246,240,136,157, 0, 18, 15,251,180, 3, 3,242,204, 82,100, 50, 42, 94, 44,107,217,145,167, 7,106, 76,
- 68,170,144,124,169, 97,234, 32,211, 67,106,112,194, 27,118,103, 93,161,196,154, 10,193, 77, 23, 37, 62, 6,238,182, 15,180,163,
- 67,101, 21,202,104,246,167, 29,218, 84,210, 49,188,255, 32, 15,186, 83, 79,181,232, 56,157, 68,172,151,165, 28,241, 62,194,190,
- 29, 89, 40,195,177,117, 68,147, 99,203, 26,211,121,140, 51,212, 58,199,100,150,177, 31, 56,244, 29, 63,125,248, 72,102, 34,175,
-175, 47,209, 89,206,126,183, 21,202,211,208,179,185,188,102,244, 15,108, 31,238,230,131,104,126, 88,120,169,129,127,221, 30,177,
-217, 7,154,193,115,241,242, 37, 69, 85, 19,149,193,152,140,227,110,207,122,189,198, 24, 35,145,126,227, 72,150,155,121,215, 91,
- 85, 21,199,253, 78, 30, 38, 17, 78,109,199,169,109,232,251,145,118,104,185,186,186, 98, 56, 60,242,184, 11,180,221, 19,111,187,
- 40, 36,195,119,183,127, 68,181, 41,185,201,228,120, 95, 51,122,151,124,208, 5,214,100,207, 56,235,211,195,121, 26, 35,158,251,
-186, 39,107,206,116, 8, 79, 15,142,243,177,171,140,197,226, 12, 85,152, 59,221,233,208, 61, 59,164,167,135,184, 78,163,194, 73,
-232,227,196,178,141,139,144, 87,245, 51, 50,217,185, 29, 42,198, 72,149, 23,207,252,236, 83,215, 84,150, 53, 85, 85,193,225, 9,
-110, 50, 21, 25, 50, 85,144, 2,179, 76,105, 85,231, 80,150,243,174,230,188, 40, 57, 63,236,167,223,179,118, 90,195, 32, 10,116,
-239,105,142, 39, 50, 21,102,152,203,241,176, 75,197,105, 72,158,226,200,118,247,192,230,234,154, 31,127,252,145,195,225,192,221,
-231, 79,104, 21,185, 88, 46, 80,214,240,227, 15, 63,225,162,166,237, 7, 1, 0, 21,162, 36,174,138,140,190,109, 40,178,140, 16,
-124,130, 13, 41,250,113, 72, 90,149, 50, 65,115,100,218, 49,133,164, 72,226, 84,196, 90, 63, 79, 89, 98, 20,155,141, 27,122,226,
- 40,244, 42,163, 52,203,186, 34,183, 25,235,245,138,246,212,200,136, 54,120,177, 23, 1, 54,147, 52, 59, 81,111,155, 89, 43, 51,
- 9, 98,149,138,130,137,214,176, 92,174, 19,231,224,121, 39, 63, 29, 64,209,201,129,125,245,226, 21,135,195,137,227,233,132,195,
-115,106, 27,178, 44,103,117, 81,227, 83, 36,172,168,183, 61,223,124,243, 13,235,229,130,183,111,223,242,253, 15, 63,115,127,127,
-207,221, 86, 2, 73,218,166,159,159, 51,115,166,118, 89, 66, 72,121,210, 49, 60,125, 30, 41,121,171,174,107,198, 99,203,231,219,
- 45,223,252,254,143,252,235, 95,254,132, 49, 57, 15, 15, 15,148,245,154,221,110, 71, 93, 90, 46,215, 27,138,162,100, 8, 29, 58,
- 58,124, 16, 4,243,100,145,147,130,210,147,151, 5,247,247,247,124,247,221,119,108, 86, 43, 57,236,172,161,105,122,249,156,198,
-145, 49,113,201,203,178,164,235, 58,148,150,124,237,243, 20, 67,239, 61,171,205, 58,165,240,121,202, 66,184, 12,109,219, 63, 21,
-186, 33, 62,179,126, 78, 5,231, 84,228,158,163,153,207,175,229,233, 16,142, 74, 12,149,115,247, 59, 63,147, 21,202, 26,124,140,
- 12,110, 20, 43,223, 73, 14,176,122,181,100, 12,158,101,177,228,250,197,171,164,215,216,206,247,209,195,195,195,124,160, 77, 69,
- 48,136, 37, 14,224,219,111,191,101,189, 90,176,217,172,200,173,162, 44,178,153, 96,151,167,149,209,207, 63,255,204,225,112,224,
-219, 55, 47,103,190,132, 4,210,216,217, 82,167,149,165,172, 47, 25, 70,207,245,139, 75, 22,139, 5,171,197, 82, 20,222, 43, 17,
-206,109,183,247,108,183,247,228,133,197, 57,177,114,158,142, 91,136, 3, 58, 46,249,239,255,242,103,222,189,121,195,203, 23,175,
-249,245,151, 15,244,125,138,198, 53,130,127,125,216,237,229,103, 25,146,181,173, 96, 97, 23, 28,247,242, 92, 89,173, 86,156,246,
-135,121, 58,210, 52,141,132,201, 4,207, 97,247,136, 77, 90,165, 93, 10, 36, 26,146,221,240,152,190,231, 85, 93, 83,213, 5,139,
-133,132, 45,245,227,192,208,142,184,200, 12,236,241, 33, 74, 82, 98,140,184, 97, 76,208, 50,185,191,156, 27, 88, 46, 69,151, 50,
- 6,193, 19,111,239, 79,252,245,167,247, 20, 69,197,171,171, 13,206, 39,189, 81,158,205,194,217, 16,101,162, 53,246, 39,222,190,
-125,203,118,187, 99,236, 70,254,230,187,175,177,255,249, 63,255,103,118,187, 29,119,119,119, 82,177,181,221, 92, 13,180,109,139,
-205,210, 46, 39,225,252,230,138, 62, 17,213,156, 27, 8, 81, 44,109, 50, 4,146, 3, 96, 26,217, 15,195, 64, 85,139,192,230,112,
-216, 83,212, 5,203,122,195, 98, 81,225, 66,192,196, 72, 94,229,184,177, 0, 99,232,134, 14, 31, 27,188,143, 28,219,142,222, 43,
-124, 52,228,121,193,114,179, 34, 83,129,205,213,134,125,239,232, 67,195,167,135, 71,202,178, 70,101, 37,203, 77, 70,182, 50,168,
-228,111, 29,134, 94, 52,123,105,127,126,232, 6,218,155,123,110,110, 62, 11, 43,222,104, 70, 91,177,221,239,216,239,247,148,101,
-129, 10,210, 41, 45,163,101,177, 94,179,189,189,165,237, 6,180,205,137,218,162,172, 4, 21,180,253, 56,171, 60,167, 64,134, 60,
-207, 89,111,150, 79, 59,102, 43,149,238,169,109,147,117, 67,211,142,142,182, 61,137, 61, 39,179, 12,163,231,184,221,114, 56,156,
- 48, 70,113,117,245,130,139,171,203,249,179, 83, 73, 53, 62,197, 87, 78,105, 87,179,127, 54,145,236,166, 67,245, 60, 54,117,122,
- 72,156,119, 2,231,157,242,121,234,217,249,238,238,183,156,111,245, 63,217,183, 78, 15,249,233, 66, 59,127,224, 76, 7,243,116,
-240,156,251,206,127, 11,167, 57,255,251,231,113,236, 56, 2,221,252,153, 78,239,247,124,132,255,219,236,247,169, 80,153, 94,203,
-179,107, 53, 62,135,235,204,158,120, 39,145,173, 90, 41,130, 27,233, 92, 0, 55,130, 31,209,165,101, 81,215,232,212, 33,159, 79,
- 68,246,251, 61,119,247, 91,153,150,100, 37,187,253, 35, 86, 65, 85,230,172,210, 46, 27,244,172,242,182, 40,148,201,101, 63,171,
-149, 32, 77,157, 48, 25,148,177, 44,151, 75,209,157, 36,240,203,244,158, 66,178,242,148, 70,196, 69,243,131, 49,207, 89,175,215,
-100,153, 68, 82,126,241,246,221, 60, 90,215, 90, 39,197,191, 79,120,202,171,153, 84,183, 88, 60,101,183, 79,118, 45,185,119,253,
-156,150,246,100, 97, 19, 27,156,160, 46, 19,119, 32,234,103, 43, 28, 99, 12,221,105,160, 92,212,188, 93,110,208,166, 23,205, 65,
- 18, 51,173, 86, 11,110, 31,238,103, 95,186, 82,224,188,120,136, 31,221, 56,147,195,218,182,165, 29,134, 57, 51,126,210,228, 76,
-223,239,106, 37, 48,152,105, 15, 59, 29, 54, 19, 29,109,121,177,194,155,140,159,127,249,149,191,249,195,255,198,143, 63,254,136,
- 49, 57,205,110, 79, 85, 46,232,135,129,187,219, 7,105, 82, 22, 11,138, 80,176, 81,150,126,240,196, 0,203, 74,172,188,199,182,
- 33,183, 25,151,155,139,249, 90,253,253,239,127,207,237,237,109,178,159,245,160, 2, 89,102, 68,129,108,211,164,204,201,253, 25,
-140,236,177,167,251,111, 34,225,137,104, 83,118,224,203, 98,153,136,110, 67,250,190,108,130,239,196,103,211,178,233, 51,158,166,
- 68,211,235, 57,191,135,195,236,120, 49,104,107, 48, 8, 38, 90,165,123, 97, 26,169,135,137, 25, 79,206,251, 15,159, 88, 46, 68,
- 75, 96,114,217, 69, 79,147,162,201, 70, 56,253, 51,133, 42,101,153, 0,177,242, 60,199,165,134,103,154, 28,196,196,119,111,154,
-102,190,151, 71, 39, 77, 88, 93, 47,249,183,255,238,239, 80, 42,166,124,134, 78,178,215,241,140,131,104,114, 58,183, 99,251,176,
- 19,129,157, 22,237, 69,215, 53, 24,171, 25,134,142,162,200, 80, 58,242,135, 63,252,158, 47,223,189,101,153, 50,236,203, 92,190,
-203,239,190,251,142,203,205, 6,231, 28,111,222,188,225, 95,127,248,129, 47,191,252,146,253,225,132, 15,176, 40, 43,124, 8,162,
-204, 79, 5, 74, 93,215, 92, 95, 95,211,158,132,161,254,120, 56, 80, 23, 37, 89, 89, 81, 6, 33, 63, 22, 85, 77,211,245,188,200,
-114,134,177, 39,122,201, 0, 89,173, 47,216,237,182, 28,142,210,245,255,243,159,255,196,203,237, 53,125, 63, 10, 38, 55,129,105,
- 22, 85, 77, 85, 47,249,124,187,165, 31, 70,180, 23,209,245,208,247,114,168,235,140, 56, 40, 78,167, 3,227,197, 10,215, 15,188,
-124,249,146,119, 41,126,118,183, 21,142,198,139,203, 23, 40,149, 9,224, 45, 4,153,136, 88, 89,125,201,186,178,231,225, 94,248,
- 20,117,189, 96,232, 3,246,235,175,190,101,124, 51,226,190,147, 81,233,169, 57, 72,229,124,115, 43, 41, 90, 74,139,193, 75,167,
- 28, 89,173, 48,193,147,165, 47, 86,133,124,174, 12,229, 73,171,103, 81,215, 20,244, 80,215, 53, 6,197,246,254,158,139,205, 10,
-107,181, 36,221,244, 35,251,102,143, 53,242,192,177, 6,156,145,234,118, 28, 60, 89,181,224,112,236,200, 77,142, 45,114,170,229,
-154,178,176, 88, 19,217, 30,143, 88, 13, 14,205,177, 29, 56,245,158,104,164, 67, 31, 66,164, 29, 29,195, 56,162,136,180,237, 9,
-107,224,102, 59, 8, 73, 13,225, 0,163, 35,253,141,164, 48,185, 96,176,170, 64, 27, 69,204, 2,193,150,140,100,140,100,148,203,
- 74,194,237, 59, 71, 55,140, 12, 78,128, 47,198, 88,150, 85, 69,223,202, 14, 84,233, 72, 63, 26,142, 41, 15,183,174,107,154, 67,
- 67, 55, 14, 24, 20,101, 37,121,201, 1, 69, 52, 6,157,231,220,220,221,147,101,134,213,230, 66, 0, 7, 33,178, 59,156,230,241,
- 87,150, 21, 12, 67,196,230,102,134,189, 76,163,246,201, 58,104,108, 49, 31,102,206,185, 20,151,163,208, 49,162,210,205,205,132,
-160, 76,187,186,169,163,176, 89, 70,212,233, 80,215,154,160, 82,222,245,180,167,182, 50, 30,196, 24,225,246, 27, 9, 13,137, 33,
- 16,148,198,156,129, 71,206, 31,246,255,179, 40,213,223,242,224,165,208, 80,207, 8,106,211, 88,245,124,228, 62,173, 3,206,243,
-172,167,159, 57,189,239,243,215,112,206, 71, 63, 63,236,126,251, 79, 8,129, 56,142,233, 6,137, 12,125,139,246,129, 60,211, 9,
- 68, 99,217,110,183, 84, 73, 3, 50, 29, 54, 83, 6,116, 81, 20,184, 32,159,101, 89, 22,179,183,118,185, 92, 10, 77,204,121, 33,
-207,101, 57, 62,166,155,176,109,228, 80,138,134,186,174,200,138,114, 78,142, 82, 74, 49,122, 73,175,235,251,113,134,122,144, 70,
-150, 81, 49, 43,162, 15,135, 93, 26, 7, 14, 4, 55,160,115, 33,235,185,177,231,184, 31,231,168, 77,107,237,140,144,149,244, 44,
-217,233, 63, 60, 60,112,115,127, 71, 63,200,158, 49, 51, 2, 59, 58,167,249,233,200,188,190,152, 52, 20, 62, 89,131,228,208,183,
-148,229,146,170,172, 1, 77, 81, 84, 84,213,130,227,233, 68, 81, 72,136, 80, 89,212, 51,178, 52, 4, 15,189,124, 23,143,251,157,
- 64,147,188,158, 59, 81,107, 45,198, 78, 19, 36,159, 98,127, 5, 62,179, 63,202, 24,184,239, 26,201,219,174, 42,150,203,101, 18,
-106,141,148, 69,201,205,195,142,110,240,212,203, 21,110, 12,212, 85, 69, 12,142,170,204, 25,220, 72, 63, 56, 22, 75, 67,158, 43,
-138,210,242,120,104, 24,186,136,206,228, 25, 53,193, 80,166, 32,162,237,253, 3, 95,125,241, 37, 67,215,211, 52,167, 20, 21, 27,
- 69, 95, 16,100, 95,220,154, 41,252,198,160,140,122,158,127,160,229,192, 19, 54,189, 20,111, 69, 38, 48,165,187,227, 65,166, 12,
-203, 92,220, 33, 81, 86,148, 33, 58,250,161,157, 39, 77,195,216,205, 77,194,212, 13,203,252,208, 67,148,112, 17,163, 53, 38,173,
-163,226, 52,173,139, 41,147, 67,235, 68,160, 27, 49, 10, 73,198,172, 68,139,115, 56, 72,231, 62,121,212, 39,102,196, 48, 12,244,
- 41,137,238,213,139, 23,114, 47,104, 97,193, 55,199, 99,122, 45, 37, 77, 59,242,223,254,249,159,231,136,223, 9,104,227,211,174,
- 61,179,150, 31, 62,254,223,232,196, 77,247,126, 20,170,165, 73,130, 62, 96, 89, 75, 1,234,250, 65,132,127, 73,171,161,136,228,
-185,229,184,123,100,181, 94,144,105, 67, 93, 10, 40, 77,220, 54,242,190,175, 47, 47,201,108,193,224, 61,155,171, 43, 30,254,203,
-127, 73,123,249,129,110,232,217,239,142, 28,219,134,221, 97,207,114,185,156,159, 5, 46,197,187, 90, 45, 58,158,182,232,185,184,
-186, 4, 45,176,176,201,203,127,115,247, 64,219,157,168,178,138,141, 90,225, 93, 79,211,245, 12,163,167,105,143, 68, 31,120,220,
- 31,168,171, 5,195,152, 4,186, 46, 80, 41, 43, 46, 8,155,116, 47,222,227, 19,212, 73, 5,203,104, 61,131,119, 20,165, 65, 27,
-195,234, 98,195,203,151, 47,169,151, 43,242,162, 38,114, 96,119,232,249,244,121,203, 23,111, 95, 82, 20, 21, 49, 12,160,100,114,
- 21,163, 52,222,235,245,154,227,126, 79,102, 20, 47, 46, 47, 5, 28,119,177, 92,254, 95,247,247,247, 51,208,127, 28,133,148, 84,
- 37,122,149,196,238,149,100,121, 54,123, 79,149,214, 44,106, 25,143,234,244, 32,176, 86,246, 9,122,234, 26,173,153, 9, 96, 32,
- 15, 13,165, 21,203,229,130,190,235, 56, 29, 27,129,211, 63,238,104,251,150,178, 16, 80,199,246,241, 1, 99, 51,238,238,182,244,
-131,167, 29, 29,135,166,225,238,126,203,118,247,200,241,116, 66,105,205,199,143,159,197,154,227, 34, 93, 63,114,232, 6, 60,154,
- 83, 63,240,184, 63,202, 7, 76,100, 28, 6, 6, 55,146,217,140,195,241,196, 24, 34,203,245,134,222,121,118,167,150,253,161, 37,
- 47,107,180,201,233, 71, 79, 51,244,132,160,112, 62,242,240, 32,251,144,160, 53, 65, 25,218, 78, 88,227, 50,170,201,168,202,130,
-174,105, 88, 46,234, 25,218,224,188,127,214, 57,215, 41,186, 86,184,224, 41, 54, 54,203,208, 70, 64, 18,101, 89, 83, 21,181,224,
-254,148, 37, 32, 34,151,113,116, 41,225, 78, 49,142,226,131, 52,214,208,119, 3, 49, 6,170,178,166, 44,202, 68,147,139,207,186,
-224,169, 19,155, 48,175,231,221,251,121,199,254, 91,174,248,111,217,236, 83,167, 63,253,254,121, 74,218, 36,170, 83,191,241,213,
-206, 73, 92,103,249,236,231, 34,153,223,170,239,189,119,207,118,254, 79, 66,157,167,168,214,233,181, 79, 35, 72, 57,180,211,251,
-253, 13,189,238,183,133,195,249, 62,253,188, 99,159, 14,127,233, 40,106,172, 82,248,177,199, 26,195,114, 89, 83, 79,254,106,107,
-184,188,216,136, 72,212,187,121,223, 93, 85, 53, 81, 27,134, 97,228,226,242, 2, 19,101,135,253,159,254,151,255,149,183,111,191,
-224,151, 95,126,229,234,197, 11,218,174, 39, 43, 23,243,248,173,235, 91,174,175, 47,249,234,171,175,248,247,127,247,119, 28,155,
- 35,251,253,129, 79, 31, 63,177,125,124,228,112, 60,177,221,110,217,237,228, 16,187,185,187,229, 38, 41,142,135, 97,192, 59,233,
- 24,143,199, 35,119,247, 55, 84, 69,193,221,221,221,204,243,110,154,134,221,110, 71,223, 39,181,238, 56,242,248,248,200,110,183,
-167,239,251,249,125,119, 93, 71,115, 58,161, 52,100,185,165,174, 42,150,203,154,170, 42,169,138,156,204, 26,140,213,212, 85,137,
-201, 12,153,205,211, 30,209,206,113,185, 74,105,172,145,248,219,166, 19, 11,150,210,150, 49, 4,242,178,160,159,227,125, 73, 25,
-212, 82,200,191,126,253, 42, 49,202, 13, 49,138,152,210,207,206,150,132, 93, 13, 79,105,126, 82,200, 72, 39,239, 93,138,120, 77,
-133, 94, 81,228, 16, 61, 87,155, 11,140, 82,124,247,187,111,230, 28,110, 5,140,110,100,189,150, 78,174,172, 43,234,170, 74, 35,
-101,195,241,112,194,230, 5,126, 12,148, 85, 41, 49,176, 54, 99,247,184,227,234,250,138,155,155, 27,254,240,135, 63,112, 56,236,
-137,120, 9, 63, 73,254,127,231, 7,170,178,102,127, 56,177,219,239,137,137,213,177,223, 29, 57,117, 45, 90, 27,124,162,169, 93,
- 92, 92,224,157, 99,185, 92,224, 67, 32,207, 44,187,199,173, 60, 59,109,206,144, 20,232,147, 96,117, 66, 52,159,175,203,230,100,
-184, 84,204,207,215,124,130,209, 40,165,103, 46,190, 79,194,213,233,158,105,219, 22,107, 12,163,147, 60, 0,165, 53, 49, 68,142,
-199, 3,139,229,130,170, 40, 49, 70,158,213,101, 90,151,149,101, 41, 98,203, 52,150, 62,236,247,228, 69, 33, 34, 93,239,249,221,
-183,223,176, 90,173, 57,118, 45, 77, 55,200,222,216,202,223,157,165,108,140,190,239,201,242, 60,173,249,101,181, 21, 83, 10,159,
- 78,148,182,190,107, 89, 44, 75,134,190, 37,166, 28, 10,173, 53,199,227,158,162,200,146,127, 31,114,107,105,154,150,195,254, 64,
-158, 21,108,214,151,172, 86, 27, 84, 84, 44, 18,101,113,177, 88,112,121,121,201,114,181, 17, 49,101,240,233,121, 26, 88,173,215,
- 51,169,238,112, 56,204, 98, 94, 31, 20, 69, 89, 51, 56, 79,219, 13, 60, 60,238,249,124,123,143,182, 25,218,102,180,109, 35,194,
-187,162,160, 31,197,225, 20,149,102,185, 94,211,143,131, 40,233,157,151,215, 48, 58,198, 0, 62, 8,148,200,133, 72,215, 15,236,
-143, 13,221,224,240, 33, 50,142, 81, 24, 46,218, 48,184,129, 97,236,185,184,220,112,177,185, 32, 16,185,187,189,231,112,104,165,
- 24, 54,150,199,135, 71,214, 23, 43,214,235, 53, 16,176,153,161,174,139, 52, 73,233, 8, 62, 80,148, 37,187,199, 71,154,246, 68,
- 81,230,216, 67,115,122,150,145,109, 19,108,165,235,155,244,165,100, 2,129,112,142,253,241, 40, 30, 72,163,231,209,204, 19, 65,
- 74, 82,216,230,160, 13,245, 52,130,117,206, 49,166,138,240,246,254,142,224,146, 24, 43, 6, 34, 96,180,230, 97,247, 72,112, 3,
-193, 43, 62,124,252, 44, 66,168,216,129,181,180,131,224, 17, 25, 13,102, 24,248,120,123, 7,222,211,221, 63,146, 79, 81,159, 90,
-124,186, 30,139,201,114, 70, 31,232,199,129, 60,177,211,119,167, 6, 99, 36, 38,242,126,119, 36, 0,182, 88,144,149,154,209, 41,
-180, 68, 32, 73,212, 29, 48,122,176,185,112,147, 51,155, 17, 2, 20,185,136, 9, 61, 10,149,148,162,121,158,211,166,135,165,182,
- 54,165,213,105,148, 73,126,106, 55, 50,184,145, 97,116, 88,173, 49, 90,252,146, 49, 70, 50,109,176,166, 16,253,129,243, 51,184,
- 98,178,110,249, 48, 50,186,128, 15, 17,229, 38,171, 75, 33,172,243,212,209, 77,130,165, 16, 60,120, 97,220,143, 49,136, 56, 72,
-107,114,163, 49,249,147,178, 61,132,144, 18,234,164,170, 31,131,127,182,123,158, 16, 25, 49, 50,179,147,157, 27,102,189,193,196,
-153,158, 42,234,243,212,212,243,195,124, 58, 84, 39,141,192,249,206,126, 42, 6,164, 43, 52,207, 66,100,206,139,133, 24, 35, 62,
-253,255,243, 3, 93, 58,247,152,130, 74,178,255, 97,164, 63, 11,137,188, 20, 13,121,138, 98,157, 64, 74, 82, 44,216, 4,232,144,
-181,210, 97,187,199, 13, 3,139,244,208, 47,138,130, 83,115,100,117,121, 65, 85, 47,147,136,108,164, 44,106,222,126,177,224,245,
-235,183, 2,198,216, 92, 82, 86, 5, 15,159,111, 57, 28,119,124,255,253,247,172, 47, 46,248,244,233, 19,151, 78,176,167,167,211,
-137,166,149,159,237,198,158,221,110,199,151,239,222,162,172,225,205, 75, 1,122,172,214, 75,138,178,226,216, 72,231, 25,149, 38,
- 16,231,131,121, 22,146, 5,143,115,145,220, 90, 76,189,128, 16,185,188,248,255,249,122,175,102, 75,178,244, 60,239, 89, 38,221,
-182,199,149,109, 55,109,102, 6, 3, 12, 72, 4, 4, 50,192, 32, 3, 87,250,211,212,173, 20,146, 66, 4, 67, 0,133, 33, 6, 26,
-180,171,170, 46,115,236,246,233,150,209,197,183, 50,247, 62,213, 77,117, 68, 71,119,205,116,213,217, 38, 51,215,103,222,247,121,
-151,227,232,116,191,223, 99,180,226,252,252,156,171,171, 43,209,120, 36,177, 95,211, 52,172, 30,238,229,154,173,107,166,211, 9,
- 58,179,148,101,206,213,197,197,232, 10, 40,243,140,207, 62,251,140,183,111,223, 82,239,247,216, 60,103,189,222,178,219,215, 84,
- 85,133,106, 26,238, 87, 27,148, 50, 60,125,118,129, 74,121,141,245,161,101,187, 63,176,217,239,228, 26, 48, 36,174, 64,135,115,
- 9,173, 26, 3, 54,141,120,157,115, 40,147, 97,139, 2,151,198,212,121, 33,136,219, 35,226,211,208, 36, 85,248,160, 14, 31, 93,
- 32, 9, 86,163,139,156,125,211,146,169,192,155,247, 55,252,230,171,207,120,245,253, 15, 60,123,246,140,119,239,222, 97,141, 66,
- 91,195,238,208,112,113,174, 88,158,205, 41,172,216,130,234,218,163,144, 72,230,229,114,142,139,128, 18, 81,153, 82,138,127,249,
-151, 63,242,228,201, 19,222,127,120, 59,234, 83,218,182, 69,183,112,127,191,226,252,252,146,119, 31, 62,208, 29, 14,116,174, 31,
-247,168,109,219, 17,131,162,174,101,180, 29,189,103,183,219,137,224,202, 24,138,170, 28,137,136,128,236, 90,149, 98, 49,155, 99,
-203, 74, 88, 26, 93,151, 16,175,106,180, 39,122, 47, 33, 79,211,106,146, 72,118,110,140,220,205,178,140,186, 77,194, 85, 43,247,
-115,239, 58,138, 50, 7, 45, 7,117,115,216, 83,183,226,175,223,172, 30,168,170, 9,251,205,134, 98, 50, 33,106,197,118,187, 21,
- 14,134, 82,220,221,221, 81, 37,102,251,114,185,100,191,223,227,186,150,175,190,250,138,106, 58,225,143,127,252, 35,219,219, 15,
-252,213,159,125, 41,123,230,132, 40,158,166,164, 49,155, 9, 94,246, 79,255,242, 71, 98, 84,204,206,132, 31,145,229, 70, 8,163,
-192,229,243,167,216, 34, 31,247,238,243,201, 84, 68,113,200,234,101, 49,157, 73, 6, 64,110,217,110,183,172, 31, 54,252, 31,255,
-251,223,179,156,205, 9,209,113,247,240,112,156,188,165,235,193,123,137, 52, 62,191,184, 0, 45,235,170, 67, 35,226,183,106, 58,
-167,110,123,186, 78,156, 31, 77,211, 82, 77, 51,178,114,194,110,183,163,239, 3,179,249,153,160,102,187, 7,172,181, 44, 22,103,
-152,162,144,179, 42, 43,216, 29, 26, 58, 23,104,186, 32, 57, 9,214,242,176, 57, 96,173,165,245, 29, 93,231,168,221,134,106, 54,
-195,100, 5,147,217,156, 72,141,139, 17,101, 20,189, 11,244,206,147,229,150,170,202, 88,109,214,212,135,134,231, 79, 95,112,117,
-245,148,221,246, 21, 62, 42, 38,229,132,135,219, 27,254,233, 15,255,130,214,240,171,207, 95,208,116, 59,124, 8, 44,151,162, 65,
-120,255,254, 61,104, 67, 81,201,154,105,170, 53,182,105,154,241, 80, 7, 80, 33,117,122,125, 51, 86, 63,167, 66,164, 24, 37, 20,
- 36,198,163, 10, 83,107,131, 25,233, 87, 97,228,250,158,118, 72,234,228,223, 7, 54,188,132,201,139,207, 86, 69, 81,188, 43,125,
-210,237, 25, 67,136,138, 60, 61,224,178, 92, 46, 78, 23, 34, 70, 89,148,213,248, 24,164,242,212, 18,255,170,180,197,164,177,179,
-137,130,202, 52, 8, 88, 4,130, 0, 34, 82,184, 71,136, 16,122,225, 97, 91,125,154,231,237,209, 73,253, 59,160, 26,253,216,105,
-114,114,216, 68,200,179,159,117,162,195, 8,115,168, 86,251,190,151, 17,124,242,216,142,194,145,188, 36,211, 57,198, 28, 71,204,
- 74, 13,241,142, 45,117,221,138,175, 50,170,180,111, 85,143, 20,220,114,176,241, 40, 39,121,128, 87, 12,197,214,118,187, 29, 71,
-155,156,104, 29,134,110,221, 53, 18,199,121,186, 75, 61, 29,143, 63,218,177,158, 40,220,143,182, 49,253, 51,197,249,233,120,124,
-120, 16,158,142,227, 79, 25,241,191,148,252,246, 75,169, 96,167, 59,115, 57,124,120,244,115, 31,101,125,199,227,228,226,201,147,
- 39,227,110,246,227,216,210,225,251,236,186, 70,196, 39, 39, 35,252, 1,246,178, 88,156, 37,251, 82, 79, 49,153, 82, 76,166, 40,
-173,153, 47,150,204,230, 11,178, 44,227, 15,255,244,223,249,252,229, 75,190,248,226, 11,254,207,255,237,127,229,246,254,158, 23,
- 47, 62,225,238,254, 30, 83, 84,132, 84,184,104,107,208,209, 16,149, 92,195,226, 36,240,146,241, 22, 3, 90, 65,102, 84,218, 25,
- 11,194,118,120,157,226,127, 53, 40,101,211,200, 80,152, 6,243,197,108,252,190, 7, 69,185,172, 3,202,145,218,118,113,113, 49,
-118,239,167,201,123, 85, 89,146, 21, 18,129, 44,111,220,227, 92,207,230,176,229,182,200,104,235, 61,231,231,231,178,207,215, 25,
-206, 93,203,196,105,116, 51,136, 64,179, 42,133, 85,176,175, 15,220,173,146,214,192, 90, 50, 50, 16,123, 59, 12, 41,134,192,102,
- 35,129, 67, 69, 94,225, 19,127, 96,120,118,124,124, 29,140, 19, 38,205, 24,253,202, 73, 0,145,235, 3,170, 84, 28, 90,199,203,
-103, 23,124,251,227, 43,190,249,234,115, 46, 46, 46,216,172, 31,136,193,177,221,110, 40,171, 5, 77,223,241,246,195,123,137,215,
-212,208,181,123,156, 55, 99,177,103, 50, 75,212,242,235,174,119, 35,230,247,234,234,138,223,254,246,183,252,195, 63,252, 3,179,
-153,104, 25,154,195, 65, 14,107,164,104,171, 91, 25,239,239,234, 6,148,166,237,142,214,208,224,193, 59,207,118,179,167,200,114,
-230,115, 57,184, 86,171, 21,251,180,203, 30,174,185,178, 44, 89, 46,151,163,199,187,235,186, 81,196,117,186,138, 58,205, 82, 56,
-157,192,141,171, 47,163,127, 54,189, 27,188,215,217,137,176,181,239, 69,219, 80,165,226,113,191,171,165,147, 45, 10, 65,237, 38,
- 71, 70, 85,228, 76, 38, 19, 98,145,243,245,215, 95,243,230,245,143,252,240,195, 15, 44,150, 11,158, 62,123,193,108, 54,147,241,
- 58,208, 52,178, 62, 80,137, 99,241,213, 87,223,240,228,201, 19,158, 93, 93, 38, 93,190,167, 57,212, 28,154,154,201, 98,142,206,
- 68, 23, 16,163,120,231,179,204, 66, 34,226,109, 54, 27, 65,245, 54,189,232, 0,148,101,185,184,228,221,187,119,188,123,255, 19,
- 16,168,166,147,113,250, 52,155,205,184, 76, 4,184, 67,219,240,226,197, 11,234,182,161,191,190,101,181,217,164, 21,145,136, 86,
-239,111, 86,216,172, 98,187, 23,119, 64, 85, 85, 20,121, 37,216,224, 62, 98, 51, 37, 41,153, 77, 75,211,245,162,242, 55,150,188,
-144, 53,136,243,129,106, 50, 61, 50,218,173,166,138,140,252,135, 34,175,232,125,160,154,206,184, 95,109, 88,175, 55,236,250, 22,
-231, 59,130,135,186,113,172,119, 61,159,126,250, 82,120, 31, 90,176,189, 38,207,200,109, 14, 90,147, 23, 21,247,171, 53,223,253,
-240, 35,147,105,193,114, 94, 16,145,100,212,217,226,140, 75, 47,221,151, 86,134,186, 57,224, 35,216,213,106,245, 51, 17,209,248,
-112,142,138,214,245,143, 14,253, 33, 38,244,200,117, 15,224,193, 4,176, 49,153,228, 17,114,210,233, 95,126,240,178, 19, 33, 14,
- 74,205,148, 77, 22, 35,154,180, 75, 9,167,137, 78,134,128, 28,146, 38, 29,246,222, 69,124,116,216, 40, 72,207,222,123,137,121,
- 13,226,207, 84, 70, 18,227, 72,201, 79, 90, 13,133, 66, 18,177, 56, 79, 8, 10,239, 57,138,201, 62, 58, 88, 98, 84,114,168,171,
- 72,145, 31,195, 15,156,115,104,100, 79,165,173,194, 88, 69,157,198,113,189, 31, 60,254,137,197,156, 46,210,224, 35, 42,137,166,
-134, 67, 71, 14, 85,241,200,214,237,129, 24,213,152,212, 52, 28,184, 3, 46,115, 54,155,141,161, 4,167,222, 85,180,128,130,246,
-187,157,128, 68, 6,102,122,148,207, 42,179,233, 51, 83, 26, 98, 16,107,196, 71, 32,139, 97, 71,171, 83, 30,124, 28,139,174, 52,
-162, 71,209, 54, 39,150,183, 16,240, 30,250, 24, 32,249,218,163,210,132,132,118,125,236, 69, 29,246,214,238, 68,197, 27,211,195,
- 72, 98,123, 67,136,196,152, 61, 18, 9, 61,246,162,135,159, 21, 12,199, 44,247,161, 48,180, 39,113,160,254, 81,240,144, 82,114,
-147, 12, 15,175, 1, 6,114, 26, 58,162, 16, 13, 68,232,123,124, 34,207,245,125,207,182,109,120,242,244, 74,146,159,218, 38,117,
-192,146,209,220,121,199,118,223, 80, 85, 21,171,251,123,174,223,191, 99,115,127,207,191,186,234,189, 36, 0, 0, 32, 0, 73, 68,
- 65, 84,253,171,191,228,234,234,138,197,217, 25,127,243, 55,255,158,255,251,191,253, 19,127,250,254, 7,162,145, 7, 59, 90,225,
- 79, 32, 57,130,241,205,152, 78, 74, 14,117,123,124, 77, 90, 58, 48, 19, 36,117, 80, 50,209, 19, 43, 66, 67,166,115,180,130, 24,
-228,225, 62,159,207, 31, 21,221,195,123, 28,174,149,167, 79,159, 30, 65, 32, 39,135,102,158,231,156,157, 11,104, 67,197, 64,140,
-154,204, 24, 14,181, 99,179, 90,163,141,226,251,111,255,117,220, 81,203, 97, 55, 88,164, 96,121,118,145, 68,159,129,222, 57, 30,
- 30,238, 56, 12,240,165, 76,139, 37, 78,165,216,198, 64, 82, 60, 43,110,110,110,228, 33,102,244,168,138,215, 70, 40,101,130,159,
- 85,192, 81, 92, 41,223,189, 26, 53, 13,196, 65, 87, 33,215,119, 8, 64,102,200,139, 9, 63,189,254,158,213,102,199,175,190,252,
-156,127,248,251,255,194,164,204,217,174, 55,204, 22,151,116, 49,178,218,108,217,108, 54,152, 89, 9, 65, 48,166, 89,110,232, 67,
- 71,239, 90, 76, 86,224, 83,194, 86, 89, 22,163,210,252,155,111,190,225,187,239,190,163, 42,196,157,112,119,119, 39,106,252, 52,
-249,113,251,122,252,220,195,201, 52, 74, 89, 67,235,122,114,107,198, 73,153,181,150,229, 82, 70,196, 67, 14,198,233,170,107,192,
-176,206,231,243,113, 12,127, 10,143, 26,174, 29,231, 28,218,154,177,232, 67, 43,186,193,205,162,178, 71, 5,238, 72,119, 51, 25,
-121, 94, 98, 77, 78,150, 21, 35,144,101,152,168, 89,107, 71, 12,110,215,117,236,251, 94, 44,100, 79,174,228,224, 60,136, 94,163,
-174,107,230,139, 51, 90, 52,127,122,115,195,102,243, 45,187,221,134,232, 3,117, 35,211, 95, 21,146,200, 46,179,124,114,240,252,
-240,246, 86, 44,114,174, 21,139, 50,142,182,217, 96, 51,149, 18,248, 2,153, 49,100,182, 56,113,183, 84, 50, 49,214,153,240, 33,
-202, 9,191,251,221,239, 8, 81,115,126,241,132,235,235, 15,168, 86,222,115, 53,153,113,113,249,132, 98, 50,193,199,136,205, 50,
-222,125,184,230,233,211,167,188,120,254, 9,247,235, 21, 93,215, 51,157,205,152, 78,167, 76, 23,103,236,235, 30,147, 68,181,103,
-103,103, 16, 35,219,237,154,249,124, 62, 82, 20,135, 41, 83,150,101,248,244, 28,209, 90,108,139, 15, 15,235,241,190,245,190, 79,
-224, 37, 61, 70, 75, 15,207,249,221,161,161,109,229,207,233, 59, 89, 11, 40, 21,201,114, 73,204,220,239,247,146, 70,216, 73, 66,
- 42,105,255, 62, 89,206,169,219, 3,215,183,247,252,244,246, 3,246,243, 23, 76,171,140, 67,221, 39,204,241, 19, 33,182, 98, 40,
-186, 68,210,252, 88,125,252,113,178,214,240,160,252, 37,161, 19,128, 53,249,163,255,127, 56,148, 66, 16, 92,232,240, 0, 29, 4,
- 80, 67,106,155,115, 18, 21,232,156, 75,135,177, 8, 43,116,136,116,173,163,245,142,168,156, 36, 57,197,152,128, 10, 9, 54, 18,
- 2, 54,202,107,156,148,121, 18,228, 25,162, 49,105,124, 44, 99,100, 21, 21, 93,221, 16,140,194,164,202,181,119,145,222, 71,162,
- 74,157,170,111,113,191, 16, 27, 58,132, 80,108, 54, 98,137,232,199, 47,243, 40, 38, 50,118, 56,104,197,178, 16,162, 39,248, 72,
- 12,160,245,209,250,147,231, 57, 38,207, 30,169,194,251,222,211,236, 15,168,168, 79,118,216, 10,239, 35,109, 59,228, 29,139,242,
- 93, 41,177, 94, 13, 66,146,161,114,119,206, 97,179,234,103, 29,244,105,226, 90, 85, 85, 35,151,185,174,235, 71, 7,187, 86, 26,
-171, 37, 88,229, 99,235,215,169,149,230, 84,156,118,218, 13, 75,212,169,164, 55,124,220, 93,159,118, 90, 31,239,184, 79,255,252,
- 83,238,193,233,174,123,184,196,108,250,249,167, 69,131,252,252,159,199,189,158,238,255,135,247, 50,136,196,140, 49, 76,167, 83,
-177,201,157,252, 57,109, 35, 28,124,171,164, 16, 25, 16,229,157,243,148,133,144, 4,123,215,211,119, 14, 59, 45, 65, 91,154, 67,
- 75,211,108,201, 15, 53,177,115, 92, 93, 93,177, 94,203,205,253,219,223,253, 78,242,162,117, 54,130,119, 66,140,146, 72, 24, 3,
-190,119,228,185,165, 79,247, 85,153,201,161, 46,216, 75,233,216,173,210,130,212,141, 73,131,161,193,104, 3, 65,246,114,153, 86,
- 84,121,134,142,199, 17,237, 48, 22, 6,198, 85,201,240,224,159, 78,167,163,136,175, 72, 76,239,225, 0,186,184,144, 4,169,122,
-191, 67,197, 72,153,103, 24, 53, 39,207, 68,216,117,121,126,201,118,183,163,105, 28,243,249,146,237,254,192,119,155, 29,251,125,
-141,177, 37,231,231, 23,212,237,129,237,102, 79,221,181, 20, 69, 70, 81, 77, 70,209,230,112,239,187,164,240,214, 70,179, 94,111,
-152, 76,166,210, 17, 37, 85,251,112,221,142,154,143,143,220, 14,201,127, 33,173, 65,140, 8, 3, 75,130, 76,186,174, 19, 85,242,
-190, 33, 68,195, 15,175, 94,243, 63,255,199,191, 97, 50,145,105,197,174,105, 57,180, 13, 69, 33, 83,199,213,106, 69, 22,132,229,
-221,198, 72, 94,102,248,232,112, 33, 96, 85, 20, 61, 64,231, 70,158,131, 8, 23, 91, 94, 60,255,132,221, 86,162, 82, 1,122, 23,
-112,190,197,230, 37, 90,215, 96, 28,147,164,115,105, 59, 57,212,219, 84,192, 77,206,151, 73, 20, 42, 1, 53, 86,203,170,110, 50,
-145,149,222,144, 68, 88,215,245,248,204, 25, 18,201,134,235,249, 20, 94,180, 94,175, 71, 15,249,112, 79,103, 89, 38,218, 37, 99,
-196,166,151, 68,149, 67, 67, 33,211, 8,125,212,176, 4, 79,215, 69,170,170,164,235,250,241,217, 50, 68,222, 14,207,175,125, 93,
-227,130,167,200,115, 62,121,241,124,212,111,212, 93, 75, 48, 18,156, 35, 59,108, 33,238,217,172, 32,207, 82, 6, 69,219,178,217,
-238,232,190,255, 62,137,196, 60,243,249, 60,169,228,107,148,242, 40,167,165,238, 11, 1, 23, 36,241,208, 38,106, 95,211, 52,178,
- 6,212,146, 42, 24,162,226, 80,183, 60,127,254,156, 79, 62,251,148,203,203,115,138, 73, 37,169,127, 73,144,249,176,190, 31,167,
- 13,219,237,150,162,170,216,237, 14,172,247,123, 98, 39,163,247,174, 91,179, 90,111,233,195, 49,120,233,254,238, 6,239, 69, 88,
-189,152,206,232, 93,251, 72, 84, 92,150,249,120, 14, 20, 89, 46, 17,229, 70,222,175, 34,224, 66, 18,119, 86, 57,198,230, 64,164,
-111, 27,105,252,124,160, 42, 44,133,181, 28, 56,208,165,104,218,229,124, 65,223,123,218,102, 45, 83,218,184, 23, 54, 69, 84, 20,
- 69,142,205,114,206, 46, 47,232,235, 61, 31,110,238,152, 76, 42,184, 58,163, 15,158,186,110,249,236,197, 11, 64,167,103, 92, 98,
-112, 76, 38,179,113, 31, 49,216, 90, 78, 15,233,224, 85, 98,186,135, 95, 16, 89, 41,156, 11,248, 56, 44, 97, 99, 10,113,146,174,
- 79, 0, 52,169, 18,183, 3,234, 78, 68, 96,125,239,233, 67, 47,149,119, 0, 21, 5, 96, 99,163, 74,137,111,138, 16, 61, 74, 43,
-124,232, 9, 41, 35,215,104, 77, 12, 8,133,201,121,238, 19, 36, 95,105, 75,208, 50,186, 30, 55,195,177, 39,215,138,112, 34, 10,
-235,130,224, 28,117, 18,115,136, 7, 59, 48, 12, 42, 30, 29,234, 74,145,165,125, 79, 32,162,189, 27,109, 74, 38,229,178,135,225,
-225,147, 2, 46,148, 50, 24,163,126,246,231, 88,125,140, 22, 84, 74,113,136, 7,122,142,233,101,101, 89,146, 23,150,195,190,161,
-105,119,216,204,136,106, 86,137,106,120,236,174, 99,196,106, 45,118,163, 24, 41,171, 34,161, 30, 69,177, 58,116, 2, 69, 81,160,
-180, 38,184, 14,215, 53, 4,215,161,162, 79,121,242, 66,163, 82, 39,246,176,143,253,227, 98, 97,138, 76,171,114,236, 14,162, 34,
- 69, 36,154, 49, 27,123, 8,238, 25, 3, 27, 4, 50, 47,184,208,100,139, 58,142,251,101,196,139,146, 16, 32,149,198,208, 31,119,
-234,167, 74,250,161,227, 25,118,169,131,205, 77,169,228,233, 53,199, 17,237, 96,101, 27, 58,243,161,227, 24,214, 15, 31,231,124,
-203,126, 47, 16, 59, 47,157,112,250,126,108,154, 10,101, 69,206,245,245,245, 8,186, 41,166, 26,141, 88,161,188,115,120, 31, 56,
-155, 77, 88,175,110,185, 92, 46,185,186,186, 34, 75,194,209,166,245,114, 72,228,121, 18,251, 4, 65,160,170,199,160,157,210, 10,
-166, 87, 43,137,197,213, 26,185,153, 91, 75, 81,138,101, 50,183, 25, 69,102,136, 49,208,119, 45,202, 40,209,182, 16, 8,193,113,
-168,101,100, 58, 28,224, 89,218, 89, 31,106,193,106, 14, 10,232,188, 40,200,211,161,222, 38,168,143,235, 36,254, 55, 75,208,155,
-182, 22,235,143,242, 25,229,249,133, 8, 53,187,142,190,247,156,205, 22, 76,231, 11,188,210, 60, 60,172,229,225, 93,230, 28,154,
- 3, 33, 58,138, 50, 35,207,202, 81, 91, 19,212,177,128,236,181,162,235,122,172, 45,199,164,182,186,110,198,123,112, 68, 20,107,
- 57,148, 76,234,216,143,197,166,232, 64, 78,157, 11, 74,105,124,240, 68, 52, 30,216,237,107,242,170,226,167,119, 31,104,219,150,
- 79, 63,121,201,135, 15, 31, 88, 44, 22,108,119, 59,102,182, 96, 50,155,209,117, 53,109, 7,121, 97,105,219, 26,109, 42,138, 34,
-103,123, 56, 16, 99,193,116, 90, 37,154,154,140,177, 59,215,243,246,253,123, 46,159, 60,225,219,111,191,147,241,114,223,179,217,
-110,105,219, 14,135,162,105, 26,124,240, 20,249,177,192,246, 28, 49,189,241,108, 33, 49,205, 77, 67,211, 28,152, 79,165,168,104,
- 58, 55,118,252, 3,129,243,112, 56,140, 26,130, 65,187, 52,124, 70, 35,225, 47, 29,192,251,125, 45, 49,172, 33, 29,238,138,116,
-168,187,180,234, 43, 82, 3,224,137, 94,166,156,109,104, 80, 1,250,206,211, 30,182,156, 37, 77,198, 48,157, 69, 43,108,158, 81,
- 78, 42,250, 86,138,198,253,126, 79,190,148,226,227,254,254, 94,238,121,239, 40,178,140, 44, 3,187,156, 72,104,138,247,244,125,
- 96, 90, 86,228,133, 77, 89, 1,178, 90,186,185,185, 97,191,217,161,188,100,139,151, 38,226,201,176,214,140,122,142, 44,147,177,
-127,149,139,133,243,252,236, 82,214, 72, 70, 38,122,179,153, 88, 2,241,129,119,215, 31,104,250,142,179,139,115,130,243, 60,172,
-239, 37, 8,200,117, 35, 51, 68,186,228, 61,187,237, 62, 77,237, 12, 89, 94,142,215,209,126, 95, 75,252,181, 23,175,252,217,242,
-130,243,165,136, 7,155,230,192,253,253, 61,193,119,120,231, 32, 90,242,228, 0, 43,243, 66,166,179, 61,146, 73,162,115,180,151,
- 6,172,202, 50,138, 60, 23,110, 65, 38,212,188,190,239,165, 8, 10,145,178, 20,251,106, 83,119, 16, 28, 42,230, 84,101, 41,147,
-215, 4, 66, 82,202,160,172,198,237, 58,102,211,138,222,138, 91,227,167, 15, 55,120, 34,139,217,132,197,164,224,254,254,158,105,
- 85, 80,229, 25, 77, 35,141,162, 29, 30,110, 81,241,179, 44,236,199,251,173,159,119, 99,162,204,238,241,238,241, 78, 83,226,238,
- 30,243,188, 67,226, 78,159,118,124,105,213,150, 30,194, 30,215, 54,228,234,200, 15, 15,120,121, 48,120,141, 10, 65, 44, 55,202,
-160,213,144, 29,236,169,242,169,120,111,244, 96, 11, 74, 40, 82, 36, 83,216,183, 77, 58, 76, 18, 23, 91,107,180,150, 76, 91, 99,
- 21,182,180, 18,131,121,218, 45,170,227, 97,236,156,123,212,137, 30,145,170,199,195,252,212, 35,126, 44,120,142, 19,142, 83, 33,
-226, 64,100,115,206,161,128,178, 26,200, 88, 54,237,110, 59,172, 21,241,219,100, 82,208,183, 45, 49,120,186,190, 29,247,105, 3,
-188,161,239,123,154,246,232, 15, 29,170,241,211,221,240,240,192, 24,118,253,167, 92,239,225,192,245,241,227, 81,103,120, 68, 96,
- 59,237,206,135,223, 59, 60,140, 73, 88,202, 95,156,116, 40,245,232,129,125,250, 57, 28,255,126,124,157,197,209, 99,171, 30,253,
-250,180,147, 31,198,251, 33,136,247,243,244,181,157,142,160,135,204,235,211,113,244,233,180, 97, 72,177,210, 26,148, 81, 24, 45,
- 64, 22,180,102, 82, 76,104, 93, 47,126,243,172, 32, 55,134,201,116, 46, 7,255, 65,186,135, 42,207, 70,139,205,179,103,207, 89,
-173, 86,156, 47,207,216, 29,246,196, 96, 88,173, 86, 68, 37,186,143, 56,232, 60,140, 88, 26,155,166, 97,189,126,224,124,246,140,
-170,200, 48, 70,186, 21, 77, 18, 92,134, 56,126,102, 89,110, 40,138, 28,239, 58, 66, 47, 59, 52, 31,188,116, 87, 40,116, 60,186,
- 19,134, 32,144,225, 80,216,110,183,104,173, 25,180, 51,167, 32,144,225, 90,170,170,138, 89, 53, 17,200,198,253,221,200,153, 88,
- 46,151,172,215, 27, 46, 46, 46,100,205,161, 13,117,219, 81,150, 19,230,115,104,211,159,223,117, 29, 58, 51,148,121, 78, 36,241,
-207,137,114, 15,251,240,179,213, 76, 81, 84, 63,155,226,140, 5,246,232,162, 80,143,108,141, 33,196,159, 57, 53, 6,118,198,116,
- 58,165,239,188, 32,149,145,241,241,235,215,175,249,242,243,207,121,243,230, 13,139,197, 57,235,219, 61,219,221,158,203,139,115,
-148,150,231, 73,232,123,242,188, 2,107,201,202, 76,114,204, 67, 79,153, 79,208,105, 18,166, 84, 79, 85,201,158,117, 96,154, 59,
-231,177, 38, 35,203,132,102,105,242,108, 12, 11, 2,240,169,145,233,250,110,156,168, 13,215,189,220,143, 29,185,213,204,102, 51,
-118,215,183, 35,253,113,184, 63, 6, 27,230,221,221, 93, 34,169,233, 81,136, 54,104,103,142, 59,245,164,128, 87,136,151, 63, 9,
-143, 79,139, 88,121, 94,125,132, 89,246,210,148,180, 7, 25,253,218,148, 97,159,229, 34,224, 27,127, 86, 8, 82, 20,173, 31, 40,
-203,146,219,219,219,145,250, 56, 20, 22,222, 59,124, 2,220,156,205,101, 34,116,117,121,158,220, 18,201, 45, 4,124,184,126, 39,
-161, 86, 85, 37,133,100,145,167,231,199, 81,163, 35,233,142, 25, 85, 94,140,225, 77,243,249,156,144,118,230,231,231,231, 92, 95,
- 95,179,219,237,184,190,185,229, 15,255,253,195,104, 33,238,124,119, 66,125,180, 40,163,228, 51,222,237,136, 17,138,162,162,235,
-125, 74,106,243, 84, 85,197,124, 54, 33, 51, 90,132,165, 79, 46,200,178,236, 56,197, 58,127,206,147,243,115,182, 59,153,138, 88,
-123,212, 15, 21, 69, 65, 93,183, 84,229, 76, 82,249,148, 74,145,227, 17,101,213, 8,188, 25,104,132,109,215,241,238,221, 59,156,
- 75, 99,126,224,238,126,197,135,155, 21, 86,105,102,149, 8, 21, 23,139, 25, 23, 23, 87,180,173,216, 86,171, 20, 16,211,119, 50,
-221,126, 88,137,139,229,234,242,156,236,229,115,238,238, 30,200,159,157,179,152, 95,224,131, 99,189,122,192, 30,154,250, 35,129,
-210,227,221,250,184,207, 84, 10,133, 34, 6,127,114,115,105, 2,154,168, 3,250, 81,152, 0, 40,157,208,128,105,172,162,198,135,
-177,124,121,202,128,213, 82, 57, 74, 85,155, 14, 36,101,176, 54, 71,103, 26, 23,122,162,150,238,127, 60, 80,144,144, 9, 25, 91,
-203, 69,252, 63,254, 43,144,231,153, 96, 46,131, 4,168, 88, 12,193, 24,162, 50,160,100, 21, 32,113, 12, 39,221,170, 98, 76, 10,
- 82,201,170, 18,117, 36, 40,137,171, 84, 86,194, 19,156,247, 50,122, 63, 57,128,140,138, 39,226, 47, 65, 35,250, 49,131,222,211,
-167,131, 55, 70,121,109,235,245,195,216,201,139,160,171,161,239, 58,124,175,185,243, 61, 85, 85,140, 55,123,223,247, 73, 80,149,
-145, 89,133,138,134,174,115,100,121, 49,250, 76,135,238, 84, 41, 37,192, 5,173,143,168,208, 44,123, 52,158, 31, 10, 57, 53,124,
-159, 33, 8,184,226,228, 65, 75, 8, 24,165,208, 89,134, 79,135,166, 73,175, 55,126, 36,210, 57, 61,156, 71, 33,158,115, 99, 62,
-119,112, 61,164, 3, 89, 69,149, 2, 14,204,207,244, 28,143, 14,245,147, 76,130, 71, 56,211,152,172,111, 63,183,159, 63, 18,196,
-141,106,233,143,126,198,240,186,157,235, 30, 21, 15,206, 57,201, 39, 40, 75,246,187,154,222, 71,148, 9,128,166,109, 59, 84, 31,
- 82,124,172, 5,164, 99, 85, 72, 23,162, 77,228,252, 47, 37, 38,178,169,221,168,240,118,195,154,201,232, 17, 25, 92,215, 53, 42,
-180,244, 79, 47,198,215, 28, 83,145,172,173, 26,119,120,170, 80,163,238, 96, 4,240, 12, 5, 89,215,165,253,179, 34,207, 11,156,
-243, 28, 14,245,152, 16,229,156,167,239, 29,187,157,112, 20,228,179, 96,220, 3, 55,141,208,183,238,238,238,208, 81,162,117,239,
-239,239,137, 49,178,181,150,243,179, 51, 62, 92,223,164,168,204,146,186,235, 89,111,119, 52, 78, 4,134,189,115,244,161, 75, 66,
-170, 2,107,115,122,231,177,214, 99,180, 73, 24, 98,249,238,180,178,100,182, 24,247,252,189, 11,160,142,208,162,177,120, 28,166,
- 68, 90,252,189,164, 8, 88, 55, 8, 73,135,201, 95,154,218, 77, 38, 19,138, 44,167, 9,138, 60, 43,177,177,135,216,243,195, 15,
- 63,240,151,191,249,154,197,108, 14, 9, 70,213,120, 41,166,139, 1,138, 85, 85, 76,166, 21,117, 23,201, 82,162, 90,239,252,163,
- 21, 81,212,138,128, 26,175,169,191,248,253,191,225,143,127,252, 35, 77, 93, 51,137, 48,169, 91,108,145,203, 53,225, 29,196, 99,
-252,108,138,156,127, 68, 56, 28, 38, 79, 67,212,242,164,204,217,239,123,161,219,105, 73, 88, 43,138,129,183, 31,132, 65,160, 53,
-209, 59, 92,215,208,118,233, 30,235, 29,153,129, 42,193,153, 72,154,139,222, 59, 24, 86,170, 33, 80, 85,211,132,154,109,198,239,
-129,168, 30, 9, 70, 31, 30, 30,152, 76,100, 53,149,229, 80,215,245,184,174, 43,178,124,132,203, 12,246,102,128,155,235,247,172,
- 86, 27,202,197, 5,251, 90, 4,118, 81,103, 84,115, 69,221,123,222,188,191,225,254,254, 30,223,181, 34,208,236, 26, 98,140,124,
-242,242, 57,159,205,151,180,222,177,121,216,210, 52,109, 10, 83,234,199,181,192, 81, 88, 43, 5,185,214,154,122,183,103,189,145,
-194, 98, 40,104, 46,206,175,120,114,245,146,247, 55,215, 52, 77,195, 98, 33,250,163,206,181, 84, 41, 13, 46,207,115,252, 36, 74,
- 26,100,215, 49, 67,216, 31,135,166, 37, 51,154,190,217,163,162,167, 42, 50,250,166, 33,244, 61,101, 37,147,174,139,179, 25,147,
-242, 9,117,115,206,195,195, 67, 42, 6,196,137,114,121,121, 14,104,190,253,215,215,116,206, 39, 90,222, 80,228,167,213,172,181,
- 68, 60, 69,166,176,218, 82,102,138, 77,189,231,176, 77, 13, 94, 91, 51, 45, 43,246,181,228,215,107,173, 89,158, 95,178, 88,204,
- 56, 52, 45,251,122,135,206,172,192,141, 20, 99, 22,196,102,179, 67,107, 97,164,156,151,138,253, 52,227,108, 54, 39,183,169, 24,
-202,178, 12,159, 30,228, 1,228, 16, 34,130, 15,184, 24, 48, 81, 32, 50, 42, 14,157, 82, 76, 74, 97,145,191, 21,182, 32, 6, 81,
-138,139,232,204, 72,164,166,206,208, 86, 88,185,218, 74, 64,115, 64,196, 93,210, 88,104,130, 10,116,157, 48,115, 3,158,166,247,
-137,184,165, 81, 70, 66, 17,172, 54,104, 44, 30,159,170,115,149, 60,172,226,207, 60,230,182, 11,214, 84,143, 83,134, 4,159,215,
-162,102, 39,170,196,187,131,224, 2, 1,151,120,207,113,120,231,112, 50, 58,214, 74, 70, 81, 58, 42,124, 20, 64,191,239, 59,130,
-209,248,254,168, 68, 53,218, 18,117,127,210,229,171, 4,241, 16,180, 98,159,186,194, 76, 27,172, 53, 82,252,104,141, 77,225, 46,
-110, 94,129,209,196, 49, 40, 99, 58,234, 15,198,125, 88,122,253,206,247, 16,196,230, 52,236, 70, 35,162, 64, 47,203, 82, 62,135,
-116,144,107,173,201, 82, 80,140, 75, 9, 69,129,136, 9,102,172,212, 71,158, 63,195, 91,151, 3, 66, 37, 4,230, 41, 39,253,116,
-164,125, 10,125, 25,139,160, 40, 29, 74,244,242, 96,214,195, 40, 48, 42, 57,212, 58, 71,231, 4, 99, 42,118, 27, 37, 15,178,132,
- 43, 85, 81, 19,149,240,145,229, 34,145,239,106,152, 78,156, 98, 95, 7, 71,130, 20,129,241, 17,128,230, 81,104, 77, 86, 28,245,
- 29, 73,168, 71, 80,146, 27, 63,116,247, 49, 98,173,232, 34,140, 49, 34,224, 81,154,188,172, 88,173, 86,242,126,149, 1, 2,166,
-169, 37,119, 62, 8, 29,208, 90,139,153, 78,216,220,239,121,179,253,137, 47,191,252, 21,109, 47,185,233,251,186,166,237, 29,202,
-150,224,123,122,223, 99, 16,151, 7, 97, 8,151, 9,108,183,219,227,200, 53,203, 5,186,164, 79,240,188, 65, 37,140,171,147, 34,
- 50, 68,178, 34, 39,215, 6,239, 34,193,230, 28,186, 14,215, 74, 28,171,182, 57,101, 85, 81, 84,213,152,161, 32,137,110, 17,147,
- 25,218, 94,108, 60, 89, 22,216,108, 37, 14,246,254,238,142, 16, 28,243,137, 68,250,234, 8,173,235,216,214, 53,229,100,198,195,
-122, 69,221,108, 36,155,193, 26, 10, 99,104, 59, 71,236,165, 59,203,115,139,201, 10, 81,184,167, 20, 70,239,197,186, 57, 76, 4,
-198,221,120,244,163, 27,161, 40,138,212, 8,132,147,188,137,152,198,199,131,232, 81, 29, 73,119, 41, 29,238,168, 33, 49,228, 69,
- 42,100, 51,217,101,219,220, 82,239, 35,239,111, 86, 52, 93,228,201,211,103, 92,223,222, 49, 47, 13,214, 69,148,239, 8, 58,176,
-235, 58,206,174,100,111,124,216,239,152,164, 22, 69, 68, 34,129, 60,147, 49,109,150, 21,236,246,123, 50, 99, 88,175,215,252,246,
-207,126,205, 15, 63,126,199,205,245,245,137, 61,210,160,173,194, 6, 77, 31, 3, 86,107,138,170, 66, 27,184,111, 14, 34,232,237,
- 37, 44,202,135, 64, 89,100,244, 62,210, 57, 1,137, 12,227,246,170,170, 82, 50, 96,160,170, 42,174, 46,167, 99, 7,123,106,249,
- 28, 51,236,145,226,173, 77,133, 72,151, 72,160,195,164, 96,136,231,181, 54, 67,169,149,128,102, 98,164,239, 69, 20,216,182, 13,
- 10, 7,109,224,236,236,156,178,152,224,123,199,253,237,157,128,155, 10,105,204,154,195,142,229,114,201,110,183, 99,179,219,243,
-227,171, 31,192, 7, 62,253,252, 11,178,162,192,251, 72, 72, 65, 60,190,235,169,169, 81,137, 63,112,251,225,154,178,204,201,172,
-101,187,221,177,217,252,191,124,247,253,143,120,215, 97,108,142, 70,138, 38,194,227, 9,158, 4,175, 72,154,160,247,114,232,158,
-159,159,139, 91,196, 8, 73,241,235,175,191,166,154, 20, 60,127,254,156, 73, 81, 50, 91,138, 19,164,172,114, 97, 3,120,199,247,
- 63,252,200, 23,159,125,206, 98,177,224,135, 31, 94,241,238,221, 7,230,115,197,167, 47, 95,240,249,103,159,240,238,221,107,238,
-110,111,104,154,134,183,111,223,114,182, 88,242,245,215, 95,115,168,247,220, 94,223,241,231,127,246, 13,211, 42, 67,227,185,190,
-110, 88,221,175,112,109,201,147,139,115,230,243, 57,151,103, 75,186,164,159, 40,203, 60, 89,158,125,138,151,118,212,245, 1,163,
- 35, 69, 94, 49,159, 78, 37, 40,234, 80,163,181,101, 90, 78,233,251,134,221,118, 69,145,139,178,190,170, 26,238,239,239,201,178,
-130,243,229, 25,135,195, 78,206,169,100, 93,142, 62, 64,208, 56, 15, 15,235, 29, 83, 59, 99,189,218, 82,149, 83, 38,211,146,178,
- 44,177,213,116, 42,220,233,222,137, 66, 60, 66,240, 78,186, 76, 99, 36,139, 57,165,144, 13,123,244, 40, 51,115, 81,152,167,133,
- 63, 17,162, 68,179, 73,176, 65,223,209,180, 29,185,145, 88, 69, 69,196,121, 39,147,242, 76,172, 45, 42, 6, 76, 4,229, 93,218,
-193, 75,103,174, 77, 82,173,167,195, 96,236,178,148, 2, 29,101,207,172, 60, 62, 56,114,157, 73, 60,166,214,100, 86, 0, 18, 2,
- 49,105, 37, 10, 82,105, 80, 41,168, 2,136,170, 23, 53,122, 58,250,187, 93,195,108, 54,145, 84,182,166, 22,101,234,249, 25, 86,
- 27, 14, 77,205,249,242,130,125,189, 99,231, 26,166,217, 36,169, 33, 29, 30,207,164,202,168,166,179, 71,227, 76,185,241,100, 34,
- 17,130, 59,166,130,161, 48,153,101,146, 2, 41,250, 94,244, 4, 89, 38,194,173,152,253, 28,146, 50,120,214,219,182,166,109,123,
- 32,164, 93,185,193,135,136,177, 89, 18,122,100,184,232,232,187, 30,157,246,233, 33, 4,178,162,160,233,156,192,117, 70, 31, 58,
-228, 73, 80, 56,240,249,139,211, 56,210,147,241,248,104,239, 74,177,153, 31, 39,120,141, 93,111,202, 83,142, 90,130,114, 60, 17,
- 45,231, 39,133,205,196, 65,209,245, 18,252,163,148,100,125, 7, 79, 31, 34,133,150,144,147,232, 35, 46, 56, 84,212,152, 44, 79,
-197, 33,216,220,159, 40,222,143,129, 22, 10,143, 9,134,233,164,196, 16,233,124, 18,138, 41,147, 32, 25,158, 38, 81,217,142, 30,
-250,152, 58, 63,153, 36, 25, 13,184, 30,155,220, 3,161,119,228, 89, 73, 89, 76, 56,212, 45,135,186,133, 16,105, 15, 7,202,178,
- 28,105,110,179,170,100,183, 59,208, 25,136, 94, 58,160,162,170, 88,109, 54,204, 30, 54,172,183,123,246,135,142,206,235,100,137,
- 9,100,249,132, 24, 28,101, 94, 80, 22, 25,109, 93,243,252,226, 5,117,221,144,217,130, 60, 47,232, 93,160, 40, 42,182,187, 3,
-243,249,146,222,123, 98, 63,140, 99,161,239, 28,177, 15, 20,133,196, 28, 11,139,161,161,238, 29,109,221,137, 8, 42, 68, 54,187,
-189, 92,247, 64,235, 61,141,147, 60,251,214,213,216, 34,199, 84, 83, 58,231, 49,185, 32,146,243,162, 96,179,105, 57,116, 61,173,
- 19,161,157, 86,138, 46, 90, 62,220,124, 16, 53,183,143, 56, 87,147,217, 2,147, 65,136,142,174,111,136, 58,173,209,186, 48,250,
-200,171,233, 4,173, 35,237,174,166,174,219,180,250,145,123,196,121,185,246,167,211, 57, 79,159, 62,103,179,122, 96,251,176,197,
- 24,195,121, 74, 96,235,250, 22,101, 45, 93,219, 98,109, 78,244,125, 74, 35,139,248,228,253, 15,218, 80,119, 53,231,103,115, 14,
-245, 14, 27,192, 44, 22,156, 93, 61, 99,167, 13,187,250,129,127,250,246, 13,127,241,213,151,108,214,107,150,179,130,155,219, 91,
- 92,223,147,207,102,212, 84,188, 95,237,185, 88,102,204,203, 9,174,239,152, 77, 42, 38,209, 16,148, 34, 63, 43, 89,173,183, 18,
- 44,148, 50,224,119,187, 45,174,235,248,221,111,127,203,159,254,249, 95,168,219, 6,180, 34, 43, 51,150,203, 57,215,215,183, 16,
-100, 74,209, 30, 14,156,159,157, 81,230,249,120,104,159,157,157,241,244,233,211,209,114,120,113,113,129, 37,229,172, 15, 43, 62,
-147, 97, 76, 54,162,186,103,179, 25,155,205,102, 20,189, 54,251, 3, 93,215,224,250,158,186,105,168,235,142, 67, 35,215,224,122,
-187,225,254,126, 37, 1, 33,101,193,102,183, 77, 22,215,122,100, 19,120,231,200, 50, 41,132,230,147,169, 80, 48,107, 17, 24, 14,
-176,170, 79, 94, 60, 75, 76, 8,135, 49,242, 60,217,237,118, 60,125,250,148, 31, 95,191,226,238,126,141, 50,134,175,191,252,146,
-208,181, 76,114,203,139,203,165, 20,201, 40, 33,105, 30, 14,184,166,102, 90, 22, 28, 14, 59,188,181,204,167, 19, 41, 90,186, 94,
- 50, 27, 66, 64,231, 86, 18,224, 92, 18, 62, 42, 81,173, 11,168,169, 37,179, 70,242,215,203, 34, 77,106, 37,240,230,211,151,159,
-136,231, 63, 6,126,245,249, 75,158, 61,121,202,213,211, 39, 66, 47, 53,122,164,163, 26,148,140,235, 87, 43,218,253,142, 79,159,
- 63, 97,181, 90,177,189,191,225, 39,213,211, 7, 71, 57,157,240,112,183,102, 50, 59, 35,132,140, 31,190,127,203,211,167, 87,116,
-117,195,143,223,191,226,243, 47, 94, 80, 21, 57,207,159, 94,210,247, 45, 49, 42,254,245,251, 31,248,243,223,253,158,103,207, 47,
-121,255,254, 61,147,106, 46,182, 81,231, 71,177, 97,231, 27,209,100, 21, 22,144,231,167, 85, 22, 29,114, 92,171,112,153,100, 73,
-156, 47, 39,244,237,158,168, 50, 86,247,119, 50, 77,202, 83, 44,108, 85,178,221,174,209,165,224,167, 47,159, 92,241,246,205, 79,
-148, 19,195,122,115, 64,133,158,170,122,137,202, 74, 34,150,201,124,142,237,250, 6,239, 28, 33, 6, 84, 72,227,236,232,199, 95,
- 23,101,118,178,171, 61,250,149, 81,160,163,136,194, 84,240,178,243, 34,226,162, 65, 5,208,218, 96,135,177,102, 16, 33,154, 30,
-224, 38, 94, 40,241,193, 59, 50,109,200,172, 65,197,158,222,136,135,209,135, 30,109, 50,108, 38,118,149, 83,134,249,209,179,156,
- 97,204, 4,215,181,204,166,243, 49,205,168,109, 91,180, 82,148,197,100, 12,228, 56,181, 59, 13, 93,230,112, 16,239,118,187,180,
-191,179,148, 47,158, 51,159, 47,168,170, 18,239, 3,135,195,158, 24,193, 26,198, 78,123, 50,153,226, 92,207,225, 80,227,163,231,
-108,185, 32, 34,158, 97,173, 20,138, 12, 84,164,107,123,186,182, 17,107, 91,240,116, 46, 64, 47, 23,116,136, 18,203, 72, 82,195,
-254,143,200,103, 63, 31, 23,107,156, 11,132,208,166, 12,108,217,107, 14,197,214,176, 55, 31, 44,120, 67,112,132, 73,133,151,119,
-225,103,144,152,186,235,199, 29,253,199,233, 79,131,250, 61, 36, 13,164, 79,255,148,203, 96,216,151, 91,180, 58,174, 65,130,138,
-226, 63, 72,187,190, 67,202, 89, 30,132, 64,206, 4,108,186,142,164, 19,247,233, 80,151,131, 94, 35, 29, 62, 90, 38, 0,210, 57,
- 75, 58,152, 88,175,100,210, 65,136,196,148,218, 20,245, 56,247, 71,171,100, 39, 81,134, 2,141,103,160,230, 5, 20, 58,197, 76,
- 43,130, 23, 49,231,197,116,138,209,199,207,223, 26,133,209, 2, 3, 17,177, 76,131, 10,129, 50,207,101,103,156, 37, 38,118,232,
- 8,206,224,251,134,190,111, 9,193,240,176, 94,203,216,190,110,241, 72,232, 12,198, 82, 86, 83,201, 34,104,107, 66, 47,235,149,
- 42, 47,201,115,203, 97,191,102, 54, 19, 18,214,221,106, 45,241,181, 69, 78,140,138,205,110,199,249,249,241, 58,214, 26, 72,255,
- 94,166,176,142, 69, 57, 97,127,168,217, 91,217,237, 14, 44,245,224,250,148,150,232,177,198, 96,134, 96, 31, 47,215,159, 85,150,
-172, 42,232,187, 3,147,217,140,217,114,145,214, 96,144, 39, 31,239,106,183,195, 1,198, 90,180,182,168, 94,226, 54,211,188,139,
- 60,151,120,222,120, 66, 27,108, 26,225, 91,132, 52,230, 63,213,155, 12, 68,187, 65,236,213,182,109, 2,126,244,143,138, 78, 18,
-138, 53, 51, 86, 10, 46, 47,137,128,202, 10,118,117,127, 56, 48,159,205, 88,206,231,143, 86,132,117, 93,115,191,218,208, 28, 26,
- 98,211,243,230,253, 53,127,253, 23,191,149,228, 51, 5,161,221,227,162, 97, 91, 55,148,231, 79,177,197, 84, 10,145, 34,199, 40,
-141,205, 12, 46,104,234,166, 67,217, 40,174,132,212, 84, 12,251,227,205, 70,112,163,255,246,175,254, 13,171,245, 90,248,252, 89,
-198,229,147,171,100, 3,147,107,125,189,149,149,199, 16,142,210, 59,217,109, 15,192,153,205,110, 39,100,194,204,142,142, 11,151,
- 68, 70, 74, 41, 73, 47, 75, 32,155,213,106, 37,175, 51, 51, 9,221,107, 33, 10,124, 42, 47, 38, 52, 73,200,232,130,104, 36, 80,
-226,174, 25, 64, 85, 67, 65, 85, 20, 5, 49,179, 73,227, 18, 8, 42, 48,201, 39,100,182,224,112, 56,176,234, 58, 46,151,226,195,
-119, 93, 79,149, 92, 25,138, 72, 89,202,191,223,222,175, 88,111, 54, 60,121,246,156,167,207,159,115, 86, 22,172, 87,247,163,126,
- 37, 70,249,111,159, 62,185,228,243,207, 62, 65, 69,161, 28, 14,206,139,187,187, 59,174,175,175, 69,216, 25, 2,251,195,150,217,
-124,158, 14, 99,209, 75, 13, 58,143, 44,203, 40,115,209, 26, 85,133,132,197,228, 86,190,135,178, 44, 41,242,138,135,205,158,135,
-251, 21,111,223,253,196,119,223,127,155, 18,204, 90,218,182, 30,221, 39, 89,150,241,226,197, 39,156, 45, 23, 50, 62,207, 51,140,
-146,243,104,187, 91,211,246, 94,158, 53, 65,145, 23, 57, 42, 9, 65, 47,206,102, 52,109,203, 97, 95,115,113,121,206,235,215, 27,
-158, 61,123,198,135, 15, 55, 84, 85,197,219,119,111,184, 60, 91, 82,148,130,104, 30,220, 54,117, 93, 51,153,201,235,175, 38, 57,
- 93,215, 96,181, 56,201,150,203, 37, 90,181, 4,111,196, 55,159,103,168, 16, 9,141,147,123,214,123, 84, 76,147, 80, 3,187,132,
-229,237,186, 33,138,217, 83, 77, 39,146, 40,216, 29,104, 90,199,195,190,230,108, 83, 19,231, 21,214,150,216,208,119,194, 11, 78,
- 15,243,143, 15,192,120,162, 58, 30,132, 85, 68,121,192, 58,239,208,193,202, 33,172, 44, 54, 27, 84,217,210,233,231,133,133, 40,
-126, 85,162,198, 88,198,104,199, 24, 20, 49,234, 49,242, 53,207,252,184,147,175,202,233,120, 24, 15,254,202,225,208, 57,245,122,
-102,185,161, 57,236, 71,214,118,215,117,100, 77, 51,218,155,134,238, 83, 68, 74,199,244, 36,109, 12,218,100, 24,155, 49,157, 45,
- 36,219, 89, 25,178,188, 32,162, 89,111,182,212,117,139,247, 61,214,230, 24,155, 49,155,231, 18,153,216, 57,246,251, 29,125,239,
-197,154,212,123,162, 10, 35,148,134,244,192,243, 17, 34,226,145,138,200,129,232,250,158,174, 23,135,193, 64, 68,235,251,131,236,
-247, 63, 58,216, 79, 59,229,199, 59,235,254,209,254,216,230, 25,125,239,198,226,199, 24, 77,223,139,136,202,245, 34,140,138, 1,
-124, 56,190,198,227,206, 80, 75,120, 87, 28, 28, 14,160,209,143, 14,254,144,118,223, 33, 77,104,134,119,152,194, 29, 65,153, 17,
- 73,249, 49,227,125,248,253, 40,131,210, 3,210, 82,143,187, 84,121, 13,226,146, 80,137,127, 32, 35,218,128, 66,166, 70,138, 32,
- 94,123,147,196,154,233,240,142, 10,140, 30,236,148, 98,207, 51, 70,130,133, 80,226,209, 7, 48,131,144,142,193,123, 31,192, 43,
- 80, 90,244, 15,202,211, 37, 30,192,252,108,201,124,190,164,105, 26,222,191,127, 47, 65, 43,133,193,185,200, 98, 82, 81,152, 20,
- 20,211, 53, 84,153, 33, 51,145,194, 20, 40,166, 68,231,233,154,154,135,187, 59,218,190, 39, 43, 23, 16, 60, 15,183, 55,120, 20,
-109,226,144, 71,223,162,203,156, 44,147,112,149,223,252,230, 55,220,222,222,208, 52, 53,219,237,154,233,100,137,115, 61, 69, 81,
- 50, 95, 76,217,237, 54,132,216, 17,251,142,222,117, 40,239,208, 38, 96,202, 2, 77, 96,117,243,150,166,149,181,200,114,185,164,
-180, 6, 76, 68,227,208, 70,163,179, 92,214, 59, 81,209,247, 97, 36,237,161,250, 65,128, 32, 93,242,100, 42, 43,165,166,195,245,
- 14,223,247,172,238,238,105,157, 28,184,193, 51,130,107, 6,109, 6, 32, 60,109,159, 68,178,185,167,117, 98,225,210, 64, 89, 20,
-227,250, 38,120, 70, 30, 61,193,227,186,150,195,110, 59,222,171,131,117,242, 52,254,119, 40, 4, 78,199,247, 90,107, 38, 41,208,
-102, 49,159, 82, 22, 54, 9,245,170, 81, 28, 40,175, 81,166, 41,239,175,111, 40,202,146,250,176,163,156, 76, 89,223,175,248,240,
-176,163,108, 68, 25,253,100, 57, 99, 90, 10,202,212,164,216,204,182,115,160, 20,243,249,140,253,174, 29, 11,106, 21, 21,239,223,
-127,224,197,139, 23,124,245,213, 87,252,253,127,253,175,108,247,123,174,111,111,169, 94,191, 22,113,219,195, 42,185,101,228,129,
- 28,130, 40,154,219,206, 61,198, 30, 43,217,159, 63,185,186, 64,199, 83,129,174, 73,233,136, 50,217,124,120, 47,123,228, 47,191,
-248,156, 23, 47, 94,240,236,201, 83,178,220,176,186,187,231,251, 87, 63,114,123,247,128, 45, 50,118,219, 61,161,247, 18,133, 29,
- 21,196, 64, 89,138,138, 95,163,176, 70, 67,150,161,163, 77,107,210,227, 42,107, 62,159,179,223,109, 78, 60,244, 11,225, 20, 40,
-131, 82, 98,141, 44,210,132,113,120,134, 14,184,213,105, 18,181, 12,182,185,182,173,233,251, 22,165,100, 77,248,229, 23, 95,243,
-234,213, 43,153, 36,172,215, 28, 14, 59,140, 81,204,102, 19,206,207,207,121,242,228, 10,212, 17,217, 60, 76,126,199, 20, 72,215,
-225,219, 3,187,122,155,156, 53, 97, 84,181,183, 93,143,210, 37, 93, 18, 99,122,239,121,120,144, 4, 78,177, 2,171,177, 64, 24,
- 68,161, 15, 15,162, 97,234,122,217,245,111, 86, 15,248, 8,147,106, 73, 87,183,184,206, 39,225,116,224,233,211, 43,116, 6,171,
-205,150,166,111,184,184,122,146,206,160,192,135,247,183,212,187, 45,183,125, 75,150, 25, 14,189,172, 51,130,146,172, 5,101, 32,
-132,140,166, 61, 48,159, 79,120,246,236, 5,222,189,103,191, 57,112, 56,236,185, 88, 62,197, 51,165, 13,154,204, 89, 98,104,104,
-211, 10,226,200,230, 8, 28,154, 6, 99, 21, 77,223, 37,237, 70, 63,218,114,251,222,211, 25,195,106,119,224,253,237, 67, 90,235,
- 22,216, 92,107, 92,116, 40,143,164,235,244, 1, 31,122, 57,116,241,248, 86,246, 86, 85, 57, 37, 47,100,143,211,187,150,182, 17,
-184,203,192,180,206, 10, 51,166, 64, 13,202,200, 34,221,212,167,176,143,143, 65, 33, 90,217,241,247, 12, 34,140, 83,191,241,128,
- 7,253,184,131, 29, 14,247, 65, 73, 43,222,195, 14,173, 45,121,110, 9, 1,154,230,144,118,255, 33,217,228,134, 29, 93, 71,219,
-138,208,170,170, 42,250, 62, 2,142,213,106,135,115,171, 49, 7,122, 40, 36,134,125,117,223, 11, 6,114,168, 0, 39,179, 41, 31,
-110,238,199,162,227, 84,125,126,164, 59,181,227,251, 27,246,194,195, 40,219,100, 89, 18,132, 61, 62,196,199, 77, 67,130,212, 12,
- 23,210,105, 82,147, 73, 41,121,222,203,255, 71, 84, 88, 43,185,184,206, 57,188, 11,163,171, 96, 0, 1, 29,149,227,169, 72, 72,
-106,239,225,117,125,236,117,127,100, 53,250, 31,112, 10, 62,246,174,255, 18, 21,238,116, 47,248, 51, 86,188, 58, 58, 39,204, 73,
-241, 56,112,173, 31, 5,140,156,188,126,127, 82, 4,145,178,221, 51, 37, 86,199,143,189,242,227,116, 71,137, 38, 68, 17, 48,153,
-161,180, 22, 19, 61, 69,153,243,244, 66, 50,154, 95,190,252, 84, 14,149,122, 63, 10,253,242,220, 50,171, 50,130,111,201,114,205,
-180,180,156,233,230,217, 0, 0, 32, 0, 73, 68, 65, 84, 76,138, 89,154, 32, 25, 38,101,134,235,123,138, 66,172,142, 26, 48, 58,
-160,180, 36,183,237,219,142,250,176,147,207, 66,121, 98,148,142,250,254,254,158, 50, 87, 34,150, 76, 86,193,188,202,209, 7, 97,
-165, 55, 77,141, 54, 98,101,243,193, 9, 18, 52,244,130, 93,141, 22,140,146, 76,242,244, 29, 44,150,203, 17,130, 49, 32,126,125,
-148,107,210,117, 94, 38, 88,165,220,147, 93,138,239, 85, 74, 73, 52,233,196,141, 16,148,225,240, 30,162,113, 59,239, 4, 67,156,
-238,199, 65,172, 20, 66,224,254,230, 33, 69, 73, 38,139,161,210,144,231, 68, 23, 8, 10, 65,141, 38,193, 82, 68, 14,235, 1, 78,
- 50,184, 51, 78,237,136, 67,193, 48, 36,129,157, 90, 28, 79,249,222, 69, 81,112,168,119,236, 82, 30,182,206, 28,147, 16, 81,109,
-143, 14, 61, 83, 3,235,237,158, 63,125,251, 45,127,253,151,191,225,187, 63,254, 51, 79,158,189, 96,219,116,216,173,196, 18, 19,
-228, 16,201,178, 44,101,146,139, 79,223,207, 42, 98,208,100, 89,142, 89,102, 98, 61, 66,141, 64,168,249,124,206,114,190,224,250,
-250, 70, 98,168,211,117,121,234, 78, 25,210,206, 54,155, 93,186,246,253,168,130, 23,216,142, 92,215,235,245,250, 88,200, 39,113,
-177,220, 55,114, 15,124,242,201, 39,227, 84,237,213,171, 87,212,135, 29,103,103, 11, 10,155,113,177,148,238,119,183,223, 51,159,
- 84,180, 78, 4,152,109, 74,202,115, 33,142,159,163, 15,253,163,164, 67, 99,229, 89,219,181, 82,132, 13, 19, 22,153, 14,157,143,
-186, 7,148, 8,231,178, 20,113, 60,222,127,189,227,254,246,150, 44,122,102, 85, 57, 58, 4,234, 20,110, 53,240, 0, 62,188,123,
-199,183,223,126,203,126,191,151,128, 48, 34,211,169,224,183, 47, 46,206,249,241,205,171,209,186, 23,130, 19,178,232,184,234,115,
-178, 67, 6,129, 46,101, 25,101,126,196, 69,119,206, 99, 77, 73, 94, 77, 56, 59, 59,123,180,106, 43,203, 9,121,158,115,126,126,
- 62, 94,211,195,127, 51,144, 54, 55,219, 21,207,158, 94,113,119,191,162,107,106, 66,176, 24,163,164, 19,182,150,109,211, 80, 69,
- 73, 9, 93,109, 87, 92, 92, 92,208, 52,141,232, 11,182,123,153,192,118, 7,178,108, 70,211, 53, 84,147,130, 34,159,178, 54, 6,
-157, 28, 46, 74,123,156, 43,113,189, 76,168,118,113, 79, 85, 21,216, 76, 17,247, 29,179,249,140,166,107,241, 14,188,107,199,198,
-117,152,106, 13, 76,134,190,239,198,194, 87,244, 84, 2, 30,234, 93, 96,123,168,201, 30, 54, 44,150, 75,230, 24,236,108, 90,225,
-189,165,109,123,154,198,163,241,105,204,174, 33, 41, 5,139, 34,163,170,166,201,207, 23, 49, 58,144, 25, 75,140,185,164, 86, 37,
-251, 74, 49, 73,123,143, 62,137,172,114,251,136,253,125, 36,239,164,174, 57, 72,192,139,120,162, 3, 58, 69,215,121, 82, 78,180,
-115,156,159,159,211,159, 28,136,167,170,106,215, 58,194,198, 97,172,194,187, 72,239, 90,242,172,100, 50,149, 15,113,183,223,136,
-250, 54,202, 78, 81,233, 40,161, 41,209,209,181, 66,246, 26, 14,238, 83,251,221,112,152, 13,135,219,122,179,123, 92,168,100,114,
-129,215,135,150, 60, 47, 37,181, 76, 25,208,154,168, 98,210,210, 11, 44,161,105,154, 19,154, 92,186, 33,188,176,219, 69, 24,150,
-136,119,234,152,114, 71,234,104, 85, 26,249, 57,231, 8,125,143,210,199,204,229,225,144,108,219,150,128,194,164, 0,130, 48,140,
-156,181,193,102,249, 81, 75,144,212,237, 67,216, 3,104,137,131, 76,162,188,225,253,157, 6,178,156,238,176, 63,142, 47,253, 56,
- 42,242,151,226, 81, 79, 81,176,167,213,247,105,197, 95,228, 22, 29, 3, 81, 88,154,227, 4, 32,166,215, 32,224,145, 1,116,227,
- 25,128, 2, 58,137, 18,197, 89,145,174, 11, 45, 25,120,167,175,121,120, 47, 10,249, 25,222, 57,240,142, 76, 23, 84, 69,129,234,
- 58,206,150, 11,206,150,115, 32, 50,169, 50, 46, 47,159,115,127,247,129, 15, 31, 62, 80, 31, 26,137,235,204, 13, 77,211, 99, 13,
-156,159,205,199, 34, 78, 84,172,162,167,168,170,138,105, 85,113,104, 58,108, 81,241,176,218,208,116, 30,115,210, 65,106, 21,152,
- 76, 36, 44,201, 24,205,127,251,167,255,135,207, 62,125,206,167,159,190,148, 44,114,223, 49,157, 86, 88,155,227,241,227,125, 87,
-218, 12,239, 45,174,235,142, 48, 17, 31,232, 29,152,188, 32,170, 72, 31,101, 87,186, 62, 72, 46,248,100,162,147,165, 74,209, 75,
-234, 54, 40,185, 62, 58, 39, 42,229,197,108,206, 97,183,103,191,221, 81,239, 15, 35,116,137, 16, 57,180,245, 72, 29,115, 9,162,
- 82,239,247,236, 82,112,147,214, 26,155, 85,100, 90, 31,147,203,138,130, 69, 37,158,219,182,239,248,234,139, 47, 70,122,157, 92,
-203,158,174,147,128,140,249,124, 78,215,251,241, 48, 28,226, 96,155, 52,109, 27,254, 30, 44, 84, 42,117,133,189,119, 28,214, 53,
- 15,247,183,228, 74,115,104,106,108,222,136,224, 74, 91,116,232, 49,211,130,166,241,252,248,250, 13,255,233, 63,252, 13, 46, 70,
- 14,117, 67, 57,153, 97,204,154,178,154, 48,173, 68, 35, 51,153,148,130,237,117, 82,200,207,243,156,174,245, 52, 93, 63, 10, 38,
-173,201,199, 2,117,189, 94,243,242,229, 75,190,252,242, 75,254,175,191,255, 47, 84,211,233, 8,133, 25,240,188, 49, 70,138,236,
-152, 51, 30, 19,138,217,245,199, 2, 56,234,192,100,178,148, 34, 42, 4,212, 9,139, 98, 40,174, 63,220, 92, 83, 21, 37,243,233,
-100,188,151,170,188,224,217,211,167,188,252,228, 57,175, 95,191,230, 95,254,116,143, 34,240,228,114,201,118,159,115,119,191,194,
-213, 61, 77, 42, 64, 50,163,240,125, 16,215, 80, 18, 61,107,101,199,221,254, 64, 90,108,154,142, 15,205, 45, 23, 23, 23, 84, 41,
- 31, 92, 14,118, 61, 66,141,154,100,189, 91, 46,231,228,185,165,235, 26,152, 22,100,133, 37,170,156,169, 19,110,188, 15, 61,145,
-200, 31,255,244,175,201,150, 54, 77,215,181, 60,227,111,111,111,248,233,253,123,208, 50, 73, 26,197,174,189,195,249, 46,173, 11,
- 42, 73,205,140, 30, 39,110,119,188,215,232, 40,103, 83, 52,145,224, 3, 42, 77,117,150,203, 37,159,126,250, 41,179, 68,140, 27,
- 62,251,219,219, 91,222,188,121,115, 4, 33, 13,211, 94,109,232,155,150, 42,179,196,188,192,232,146,135,213, 22, 26,197,243,231,
-207, 89,111,182,172,112,188,124,241,132, 34,159,240,227,235, 55, 76,138,146,178, 42,248,244,147,151,220,220,124,224,252, 66,192,
- 78,197,195, 14,109,114,180,146,247, 35, 17,202, 13,145,158,122, 47, 19,188,139,139, 11,186,125, 67, 40, 69,140,121,117,117,134,
- 46, 50, 54, 7,177,129,234,166, 29,237,141, 89,106,202, 84, 98, 62, 12,231,232,105, 99, 37, 77,176,164,101,238,155,158,245,190,
- 70,221, 61, 96, 5, 46,146,147,219, 78, 36,254, 3,102, 48, 61, 12,135, 78, 57, 70,201,186, 29,118,174,101,158, 97,243, 9,189,
-119, 99, 40,200, 64,180, 58,181,109,156,102, 1,127,220,221, 17,181,216, 30,126, 65,221, 60, 60,248,135,157,219,208, 61,156,162,
- 20,143,221,122,129, 65,211, 7, 71,166,107,246, 77,137,142,138,186,107,152,150, 19, 58,175,208, 49,200,190, 87,105,180,201, 41,
-176,232, 44, 27,133, 93, 56,136, 6,170,124,130, 41, 12, 56,104, 92, 67,236, 35, 42, 83,216,104,192,130, 53, 5, 65, 7,108, 76,
- 23, 21,134,246, 80,227,250, 32, 17,150,182, 64,105, 69,223, 5,218,246, 64,145, 75,176,129,119, 17,165,122,140,206,112,186, 19,
-155,157,210, 9,201,122,154, 71, 30, 70,187,160,160, 18, 99,130,112,216, 71,164, 63,128, 62, 4, 48,150,204, 88,140, 78, 35,209,
-168, 9, 26,140,206,198,195,255, 99,196,164,124, 63, 6, 99, 44, 89,145, 63, 98, 19, 12,227,210,225,175, 97, 12,250, 75, 9,107,
-191,148,134,118, 58, 38, 29, 42,234,211, 9,192,105,231,252,184, 96, 80,227, 63,101,178, 32,126, 12,149,210,156, 4, 31, 58,124,
- 22, 50,166,180, 10,234,166, 75, 26, 13,247,136, 84,119, 26, 82, 19,131, 35, 6,135, 33,162, 99, 0, 5,214,104,114,107, 40,237,
- 52,141,248, 35,151,151,151, 44,230, 83,218,230, 64, 12, 78, 4, 76, 49,144, 91, 67,102, 52,170, 16,209,212,124, 54, 29,175,195,
-162, 40,168,155, 61,209, 9, 41,107, 58,157,114, 56, 52, 68,157,243,176, 94,243,253, 15,111,209, 74, 81,228, 9,227,153, 68, 77,
-101, 89, 82,101, 98,251, 10, 81,209,246, 29, 77,223,225,155,128,177, 57, 54,207,121,241,226, 69,210,124,136,144,202, 42, 75,244,
-178, 59,245,181, 28,130, 89, 81,146, 69, 17, 86,117,181,194,197,128,119, 29,109,211,161,136,163, 72, 75,118,116,134,216, 11, 22,
- 51, 70, 17,156,174, 31, 86, 99, 39,125, 56, 28,198,204,241,197, 98,129, 82,138, 95,255,246,207,198, 73,212,144, 49,160,181,166,
-156, 76,152, 78,231,100, 89, 1, 74,240,183, 93,223,143,121,213, 67,167,247,240,240,192,237,253, 29,219,237,118,156,100,237,247,
-123,118,183, 55, 50, 37,216,108, 83,145,235,127, 70, 23, 28,174,155, 1, 61, 43, 54, 61,199,122,189,150, 34, 50, 56, 84, 42, 46,
-142,211, 24, 53, 6, 31,105,163,184,127, 88,243,225,250,142,233,252,156, 31, 95,125,207,217,133, 36,117,145, 23,172, 55, 15, 92,
- 44, 39, 73,128, 21, 81,209,227,124,135,201, 10,140,209,180, 93, 61,190,143, 54,244,105, 66, 97,133,158,230, 35,255,241, 63,253,
- 29,239,175, 63,140,145,198,109,219,146,249, 48,142,216,135,215,101,140, 97,154,203, 33, 19,195, 17,168, 36,105,100,187, 71,208,
-168,225,121, 57, 76, 43,186,212,177,169, 40,163,237,121,149,227,218,134,204,106,206,206,150,252,250,235,175,121,247,238, 45,239,
-222,189,163,111,101,231,156, 89, 77,171, 36,244,199,247,125, 10,154, 74, 1, 74, 39, 42,250,182,109,153,230,179,113,186,224,156,
-163,111, 61,219,237,150,252,252, 28,107, 53,211,233,244,209,253,106,140,161, 50,102, 12,120,105,118, 30,215,183, 50, 49,154,207,
- 71,100,241,161,150,134,233,183,191,253, 45,231,231,231,148, 89, 62,222,147, 98,233, 60,208,244, 61,127,250,238,123,182,251, 61,
-237,161,149,123,212, 74,148,244,176, 71,215, 39,208,174,178, 16,155,218, 36, 37,132, 22, 54,227,229,139, 23, 28, 14,135,113, 18,
-176,217,108, 30, 77, 36, 7,203,222,128, 67, 31, 40,115, 93,215,209,247, 22,183, 63, 80,205,166,148, 85, 69, 94,204,105, 59, 71,
-239, 68, 24,122,191,217,114,121,190,164,115, 82,132, 44,231, 21,234, 66, 73, 42,167,210, 84,165, 60, 15, 98, 12, 24, 35,235,194,
-221,126, 71,116,210, 24, 75, 17, 11,251,253, 22,124,224,229,203,151,204,230,211,145,248,248,236,249, 11,118,109, 77,231, 29,214,
-138, 21,213,187,152, 98,188, 45,121, 85, 10, 96,202,105,188, 23,189, 74,116, 33, 1,137,228,251,156,206,231,178,222, 10,142, 67,
-231,233,110, 87,216,186,149,244, 52, 31,197,242, 20, 6,230,114,202,212,246, 93,251,200,247, 59, 60,248, 93,240, 24, 39,105, 82,
-238, 35,232,201,241,161, 95, 31,199,236, 39, 99,221,161, 50, 31,246, 2, 3, 7,124, 0, 78,124,220,217, 13, 89,206, 2, 21,233,
- 79, 70,197, 6,239, 37,197, 12,165,136, 40,124, 84,116,189,168,168,125, 16,219,136, 79,135, 65,136, 2,237, 80, 6,140,178,100,
-121,134,239, 29, 4, 79, 16,207, 30,157, 15,208,120,130,139,116,174, 99, 54,153,147,151, 25,209, 67,239, 59, 58, 31, 8,222,163,
-208,228, 89, 46,135,173,235,137,202,161,141,193,230,133, 16,229,114,169, 48,251,222, 19,122,159,198,231, 62, 89, 52, 2,189,151,
-202,185,170, 42, 82, 58,137,176,213, 7,219,224, 96,192, 27, 49,190, 58,113, 2,196, 58,118, 44,144, 68,148, 22, 98, 32,116,195,
-225,151,214,165,189, 35, 87, 39, 35,204, 36,118,235,189, 40,244,209, 10,227,143, 7,110,248,133,239,241,151,254,254,248,175,211,
- 3,122,184,113,237, 71, 15,219,211,172,245,211,209,188,119, 17,175,196,247,236, 34, 41, 23, 64, 39, 42, 17,130,134, 76,202, 59,
-143,164,170, 9,124, 72,110, 34,137, 79,228, 81, 12,236, 35, 28,237, 0, 1,138, 17,155, 89,170,178,192,106, 4, 60, 49, 45,153,
- 23,134,232, 68, 44,120,117,117, 69,140,145, 55,111,222,176,219,237, 70,197,241, 48,190,211, 90, 75,140,101,122,111,211,233, 20,
-109, 32, 4,143,119,194, 16, 80, 98, 31,193, 88,168,138, 92, 70,253, 90,246,156, 33, 4,234,195,129, 24, 58, 1,102,232,136, 54,
-150,251,135, 53,117,211,145,101, 57,214, 8,101,111,191,223,115,126,126,153,180, 29, 98,137,212,134,148,227,157, 0, 77, 74,209,
- 29,246,100,161, 39, 58,199,108, 94,240,226,197, 39,124,243,201,211,180, 54,144,240,141, 17, 58,100, 13, 69,150,147,165,135,165,
- 11,138,162, 88, 48,157,207, 1, 18, 28, 67, 14,221,162,154, 50,157, 78,211,126, 82, 30, 36,235,245,154,221, 86,162, 93,135,207,
- 99,189,222,210,186,158,190,105,233,210,164,101, 20,182,166,149,213,128, 89,181,214, 98, 50,233, 16,157,239,240, 81,165, 46,240,
-241,122,234, 52,106,116,248,204,139,162,120,164, 45,177,214, 82,228, 37,187,245,154,201,100,138, 79,161, 71, 25,140, 68, 64, 31,
-101, 61,247,167,239, 95,241,251, 63,251,134, 31, 94,191, 66,155,140,233, 92,242,182, 15,102,199,126,191,101,181,153,200, 68, 98,
- 72, 62,204,122,180,205,136, 49,176,219,237, 88,206, 23, 60, 60,172, 9, 94, 30,214,222,123,222,188,121,195,215,223,124,195,213,
-213, 21,111,222,253,132, 66,143,175,177, 40, 10,122, 47, 97, 36, 67, 24, 80,244, 50,149,139, 39, 5,182, 49, 34,118,236,125, 76,
-238, 91,185,199, 93,186,200, 21,102,124, 86, 86, 9, 26, 52,164,246,237,247,123,170,170,228,197,203, 39,252,249,239,126, 77,215,
- 53, 92,223,221,203, 14,185, 48,116,157,124,214, 77,221, 97,148, 18, 43,229,112, 47,198,152,178,225, 3, 15, 15, 15,162, 83,168,
-196, 34,107,181,225,238,238,142,253,126, 47,106,253,171, 11,202,178, 28,195,105,242, 92,190,191, 73,153,243,250,213, 59, 73,129,
-212, 71,241,241, 98, 49, 99,190,156,201,116, 52, 4,150,203,101,162,208,221,201,207, 41,202, 17, 40, 51,141,142,171,191,254, 75,
- 30, 86,119,180,251,150,201,180,100,158, 14, 41, 89, 85, 29,153, 10, 3, 67,126,128, 39,101,153,104,162,238,238, 55,204,102, 19,
-150,203, 57,251,253,158,251,251, 21,219,237,150,111,191,253,150, 55,111,222, 60,122, 46,124,254,249,231,252,230, 55,223,208, 52,
-226, 32,216,111,182,252,250,155, 95,137,192,211, 9, 99,228, 87,191,250, 21,189,139,220,175, 55,248, 0,211,249, 18,143,226,254,
- 97,131,181,150,139, 96, 56,236,107, 38, 85,201,229,229, 37,171,213, 29,187,251, 91,234,166, 39,120,203,102,123,160, 42,231,210,
-121,107,205,100, 82,178,237,214,220,108,111,120,245,234, 21,147,178,160, 44, 45,187,109,205,122,117, 67,208,226, 78, 24, 32, 65,
-174,119,180,125,143, 54, 29, 89, 89, 72, 76,173, 53, 24,107, 57,212, 13, 46, 19,117,253,164,152,140,239,107, 50,153, 96, 84, 28,
-115, 66,236,237,253,195,120,216, 14,187,144,143, 31,212,167,201, 96,121,158, 19,125,160,233,250,196, 18, 46, 30,239, 45, 79, 58,
-180,190,239,199,176,249,211,189,186, 36,123,249,116, 3,232, 71, 85,250,199, 10,245,225,225, 52,144,153, 6,225,140,152,253, 11,
-138,114,114, 84, 46,147,143, 93,137, 60, 36, 2,177,144,238, 89, 23,250,209,152, 88, 39, 52, 97,140, 10, 27, 12, 42, 59,178,202,
-197, 14,150, 49, 79,138, 96,231, 28,251,122, 47, 86,131,162, 32,203,242,244,129, 14,136,203,140, 44, 83,227,127,235,189, 26,227,
-104,135, 14, 20,186,147, 68,179,156, 24,101,242,192, 71, 29,236,233,103,127,140, 39,213, 63,203, 85, 30, 30,156, 1,245,232,160,
- 61,245,180,158,238,202, 63,214, 53, 28,105, 80,253, 35, 1,207,233, 24,253, 23, 15,201,255,159, 3,253,151,118,234,195, 67,105,
- 40,236,134, 3,113, 92,193,216,244,158, 61,184, 32,188, 4, 31, 24, 85,234, 58, 61, 8,133,193, 30, 8, 46, 18, 93,192, 40, 81,
-199,231,121, 57,230, 81,159,230, 24,200,232, 42, 41,241, 83,151, 94, 22, 57,243,105, 82,165, 22, 57,147,170,192, 31,246, 44, 23,
-103, 24,155,243,238,189,168,114, 55,155, 13,109, 43,124,237,139,139, 43, 2,176,217,237,199,104,211, 67, 35,163,176,103,207, 96,
-127,216,178, 90, 61,224,187, 30,215,183,184,182, 99, 95, 55, 76,231,226,217,239,251, 54, 1,155, 84,154,202, 48, 38, 96,201,126,
- 60, 48, 91,206,152,206,150,248,104,169,219,134, 69, 53, 67,103, 25, 79,158, 60,225, 55,191,254, 29,109, 87,143,244,180,178, 16,
-145,216,249, 66, 86, 0, 86, 7, 98, 12,220,223,220, 81, 78, 43, 94, 62,123,193,161,173, 89,223, 63, 80,119, 45,153,177,236,155,
-154,253,221, 67,226,104,203,248,119,179,223,177,221,237, 33, 74,116,240,160, 26, 62, 63, 63,231,254,254,158,222,199,145,209,221,
-165,152, 97, 57, 16,212, 56, 42,119,206, 81, 85,211, 81,249,156,101, 89, 26, 61,186,244, 64,155, 8,240, 35,141, 67,187,174,163,
-233,100,212,219,187,150,222, 71,136, 38, 37, 17, 30, 99,156, 79,187,244, 97, 61, 52,188,142,225, 58, 10, 33,176, 63, 52,146,221,
- 94,149, 56, 31, 31, 37, 3,138, 45,202, 97,115,203,183, 63,190,226,247,191,255,115,162,201,184, 95,175, 88, 46,206,120,247,225,
- 61, 85,190, 16, 14,124,150, 49,159, 75, 50, 90,219,245,104,221, 48,153, 45,200,140, 98,187, 90,243,213, 55,191, 97,183,219,165,
-213,149, 36,143,189,123,247,142,201,164,228,215,191,254, 53,175,223,190,225,112,216,143,233, 95,211,233,148,114, 82,200, 88,219,
-133, 35, 42, 54, 38, 97,233,160,155, 49,154,162,154, 18, 82,243,115, 26,250, 20, 99,164,181,162,121,105, 14, 7,172,209,148,153,
- 37,168, 19, 50,163,142,188,251,233, 45, 95,124,254, 41,247,247,247,188,121,243,134, 76, 43, 38,211, 89,138, 73,149,105,211, 24,
-229,236,143,235,171, 1, 98, 52, 66,112,170, 66,146, 9,171,140,251,123, 81,179,159,157,157,177,217,236,152,205, 38,227,103, 62,
-224, 87,203, 20,175, 26, 93, 63, 22, 46,183,183,183, 40, 21,199,140,133,237,118,203,235,215,175,169,170,138, 55,111, 94,115,126,
-126,206,217,124,193,237,237,173,232, 49, 30,110, 37,107,192, 42, 46, 22, 23, 76, 22, 19, 20,102, 4,223,196,232,217,111, 15, 35,
- 16,109,184,238,134,235, 81,104,139,226,211, 31,174,199,217,108,193,197,197,197,248,252, 89, 44, 22, 99, 17,180, 90,173,132,122,
-119, 38,201,139,109,189, 5, 96,177, 88,176,212, 57,119,235, 29,117,179,103,189,171,185,190,121,224,211, 79, 63,165,237, 28, 69,
- 53,227,139, 95,125,195, 15,223,253,145, 79,159, 63,227,199,215,111,248,219,127,247, 63, 49,153,230, 56,215,178,217,174, 18,125,
- 79, 44,222, 69,145, 37, 34,159, 99,183,219, 48,153,148,148, 85,206,135, 15, 31,176, 90,145, 23,178,250,236,125, 71, 23, 20,187,
- 77, 67,215, 56, 84,148,169,106,219, 57,250,216,160,178,156,162, 20,160,205,160,124,215, 73,248,119,190, 60, 79,120,241,156,179,
-197,108,108, 64, 54,155, 13, 54, 96,210,222, 85,161,109,193,180,154,141,213,122, 53,153,142,106,187, 65, 72, 81,101, 37,155,205,
-134,203,203,203, 20, 61,104,200,178,252, 81,194, 88,159, 56,211, 62,212,132,168, 49, 54, 27,241,123, 54,179,212, 77,207,116,182,
- 76, 93,161,163, 73, 65, 41, 67, 56,133,181, 86,190,212,180, 91,206,211,190, 42,164, 84,184, 44,237,172,134,232,207,192,128,145,
-149,202, 54,248, 40,162, 19,155, 83, 84, 83, 54,155, 13,243,249, 92, 66, 57, 50,169, 72,209,150,125,221,142,249,231, 93,219,141,
- 15,180, 44,203,152, 45,206,120,120,120,160, 72,158,231,206, 5,178,172,160,247,145,172,176, 66,211,242, 82, 69,238,235, 54,141,
- 93, 69, 69, 61, 40,221,234, 86, 70, 80,109,211, 48, 75,170,106,225, 43, 7,234, 86,186, 67,223, 8,217, 42, 1,160,208,218, 98,
- 76, 54,114,158, 7, 44,164, 4,152, 36,102,123, 58,180,251,222,143,254,214,143,139,129,143,119,225, 31, 71,162,186,148, 22, 6,
- 97, 12,122, 57, 21,203,157,174, 65, 78, 11,138, 71,202,248,143,132,119,195,207, 25,110,176,225, 90, 24,126,223,105,193, 49, 60,
-152,188, 23, 95,170,119,129,222,123,138, 44, 35,162,233,122,143, 11, 61,185, 5, 23,122, 84,212,216,220, 96,172,193, 71,151,146,
-225,228, 53,100, 86, 99, 77, 62, 22, 36,167,185,237,190, 23, 33,148, 10,114,227,247,185, 29, 87, 74,121,158,211,244, 61, 14,197,
- 54,229, 94, 15, 15,111,173, 53,249,100, 74,147, 30, 24, 90,107,170, 16, 81, 54, 99,181,219,139,213,104,189,199,232,128,115, 34,
- 66, 43,202, 9, 38,207,184,154,206, 88,158, 95, 48, 89, 44,153, 44,206, 40,166, 51, 14,135,134,229,217, 25, 90, 73, 10,212,151,
- 95,124,198,211,167, 79,200, 51, 9,126,113,189,167,115, 61,171,213, 74, 86, 78, 62,142, 58,140,250,208,115,216,238, 36,178,113,
-208, 69, 56, 81, 80, 55,206,227, 99,160,217,183,152, 92,131, 87,236,155, 29, 70, 9,179,220,106, 67,221, 54,148,121, 49, 30, 58,
- 67, 55, 73,240,148,182,163, 72,246, 78,173, 53,235,213, 22,239, 34,147,180, 83, 29,180, 2,195,164, 41,207,133, 95, 62, 20,249,
-101, 94,200, 62, 93,171,113, 44,106,140,193, 22,185,100,192, 87,213, 88,196, 40,165,168,219,102,236,220, 93, 12,244,157, 56, 69,
-234,186, 30, 15,237,225,154,215,218,166,188,234, 60, 41,218,197,122, 89,215,245,216,189,135, 16, 70, 63,249,114, 89,201, 61, 56,
-169,232,123, 39, 36, 64, 83,209,245, 53, 63,190,122, 75, 94, 84,220,221,221, 48,159,207, 33, 68, 54,235, 21, 23, 23,103,105,167,
-124,199,114,185,228,236,252,130,253,190,102,183,222, 80, 78,103,204,103, 83,174,223,191,165, 44, 69, 77,159,220,152, 76, 38, 19,
-110,111,111,121,250,252, 25,191,249,250, 27,254,241, 31,255, 17,215,181,146,220,183, 90, 73,204,174, 70, 72,101,173,161,235,146,
- 15, 91, 71,140,102,156,220,100, 89, 65, 72,140,120,165, 20, 70,229,104,155,225,251,110, 20, 75, 13, 7,175,142,129,213,106,197,
-239,127,255,123,110,175,223, 51, 89, 87, 60,127,126,206,118,187,229,233,147, 75,190,252,213,231,188,123,127, 45, 1, 55,243, 57,
-121,239, 89,173, 54, 4,223, 83,164,245,138,214,154,170,170,142,129, 70,169, 73,170,138,103, 92, 94, 60, 97,189,121,160, 21, 48,
-158, 76,116,140,165,233, 28,183,215,239,217,108, 54, 84,101,129, 86, 25,247,119,183,228,198,210, 57, 57, 48,191,252,242, 75,118,
-187, 29,219,237,158,249,124,201,229,213, 21, 46, 53,118,255,252,207,255,156, 14,227,158,159,126,122,155,158,109, 25,157,139,212,
-174,199,230, 57,187,118,195,191,190,191, 37,244, 73,165, 53,164,158,121,177,240,157, 70,243, 14,205,165,209,154,202,244, 50, 57,
- 77, 80,162,182,109,199,231,230, 23, 95,124, 49, 22, 75, 67, 48,207, 31,254,240, 7,254,246,111,255, 61, 55, 55, 55,252,240,221,
- 94,216,238, 33,208,245,145, 62, 68, 54,245,154,160, 51,170, 73,193,190,169,199, 98,243,230,253, 27,158, 62,121,193,195,106,203,
-211, 39,207,121,243,211, 91,254,195,223,254, 59,174,174, 46,248,187,191,251, 59,254,243,127,254, 95,120, 88,237,104, 27,199, 97,
-191, 77, 33, 75, 59,154, 70,242,213, 15,251, 45,211,105,193,231, 95,255,138,222,213,188,255,240, 19,180,134,174, 15,152,228,220,
-112,173,136,233, 76,227,216,237,247,244,206, 49, 95, 76,153, 47,103, 99, 35, 59, 60, 83, 69,119,226,153, 76, 10, 98,240,104, 99,
-120,184,189,145,181, 90, 94, 76,137, 58,226, 90, 71, 86, 25, 14,219, 3, 46, 58,170,201, 2,101, 21,185,206,113, 68,140, 45, 37,
-153,198, 43,130, 54,108,182, 53, 69, 49, 73, 94, 74,131,209,150,221,126,195,116, 50,231,242,242, 9,111, 94,191,101, 58,171,240,
- 78,225, 92,143, 34,147, 17,107, 15,101, 57,161, 62,244,132,232, 68,201,235, 92, 34, 83,229, 35,192, 98, 24,239,157,122, 67,119,
-187, 29, 89,150, 37, 36,224, 2,165, 12,117, 2,140,156, 70, 25, 94, 92, 92,140, 9, 70,215,215,215,146,169, 91,203,206, 98,181,
- 90,141,213,219,169,125, 96, 58,157,114,127,127, 63,254,156, 87,175, 94,241,197, 23, 95,112,119,119,151,114,181, 23,108, 54,155,
-177,155, 29,108, 5, 74, 41, 46, 47, 47,249,241,199, 31, 57, 63, 63, 31,167, 29,101, 41,116,159,135,135, 7,242, 60, 31, 67, 16,
-134,157,227,112,192, 23,133, 84,200,167,221,242, 48,105, 88,175,215,143,146,154,134,159,119,122, 40,170, 19,145,201,169, 38, 97,
-120, 32, 75, 18,214, 17,155, 43,187,250, 56,122, 85,135, 95, 15, 68, 55,130, 34,170,128,198,164, 95,139,192, 80, 69, 37,243,176,
-148,103, 45,121,199,142,204,136,213, 79, 69,240,193,141,255,187,198,128,142,244,173, 19, 20, 48,134, 54,122,250,214, 16,240,233,
-231, 72,247,109,221, 41, 2,182, 65,117,234,100, 50,208,167,206,197,209,123,253,209, 52, 71, 60,229,167,194,190, 83, 27,160,164,
-188, 73, 70, 0, 39,118,190,161,226, 63,212,150,207, 62,255, 28,231,156,248,102,209, 96,115,202, 42, 27,169,125, 49, 69,126, 86,
- 85,197,217,217,217,216, 57, 74,181, 60,167, 44,114, 66, 87, 19,124,207,114, 54, 31, 31,148, 38,203, 48, 70,138,212,188,170,216,
-237,107, 9,180,216,109,184,187,187,225,221, 79,175,229, 70,238,122, 25,177, 39, 10, 88,219, 72, 87, 23, 82,145, 55,142,165,125,
- 72,241,187,146,198,148,219, 2, 93,100, 52,125, 63, 82, 21,139, 32,122, 14,109,139,180,102,202,112, 49,146,151, 19,148, 49,244,
- 81,118,205, 85, 37,201,126, 93, 91,167,169,211,113,122, 51, 48, 11,230, 41,228, 99, 8,208,185,186,146,131,103, 8,139,169,107,
-193, 75,231,182, 24, 59,240,193,158, 86, 85, 21,121, 85,166,206,183, 75, 2,184, 3, 62, 30, 15,146,195,225, 32, 1, 23,113, 72,
- 38,108, 31,117,171, 63,139,129,254, 40, 27, 92,190, 75,253,179,162,117,248,254, 93,144, 0,152, 67,211, 82, 88,195,159,190,255,
-129, 47, 63,123,201, 79, 63,253,132,181, 53,101,145,147,101,102, 68,254,198,228,251, 70,201,103, 80, 77, 10,250,182, 97, 90, 86,
-108, 15,210, 96, 88,171,113, 62,142,238,151,197, 98,193,213,213, 37, 79,159, 62,229,236,236,140,245,122, 77, 84,114, 24, 79,178,
-105,122,158,185, 71,108,251,227,123, 18,115,168, 45, 64,123,253, 51,119,208,105,234,101, 94, 22, 56,159,132,158, 33, 77,122,242,
-138,159,126,250,137, 60, 83,188,120,118,133, 49,134,103,207,158,209, 52, 29,239,111,239,200,108,158,154,128,236,209,231,118, 44,
-152,244,163, 85,233,195,131,116,166,171,245, 61,121, 38,215,222,106,181,161,200,114, 22, 11,225,185,107,173, 89, 46,132, 9, 50,
-159, 76,185,222,109,121,254,252, 57, 15, 15,119, 35, 25,241,255, 99,235, 77,131,109, 75,239,242,190,223,122,215,188,214,158,247,
- 25,239,124,187,175,122,146,186, 91, 18, 8, 97, 98, 7,100, 11,162, 42, 65,108,134,114, 4, 4,203, 78, 19,149, 10, 59,229,144,
-170,160, 15, 96, 91,134,162,108, 97,176,131, 49, 50, 40, 33,102, 40,197,178, 21, 72,165,224,147, 44, 69,118, 8,136,214, 8, 45,
-117,183,122,188,125,231,123,238, 25,246,184,230, 41, 31,254,239, 90,103,159,150, 85,213,213, 45,245,213,189,251,236,189,246,251,
-254,135,231,249, 61,174,235, 18, 69, 17,158,231,209,235,245, 40,242,156,119,189,235, 93, 60,120,240,128,186,174,187,244,180, 60,
-207,185,114,117,135, 56,205, 56,153,207, 89,204, 22, 84, 84,132, 94,136,235,122,157, 56, 50,232, 5,167,211,183, 14,111,173, 40,
-235, 6, 67,137,120,207,247, 28,124, 59,212,218, 16,177,202,181,190,250,243,231,207,179,179,179,195, 96, 48, 96, 62, 63,225,181,
-215, 94,227,198,141, 27, 28,159, 28,234,148, 63,197,173, 91,119, 40,202,154,222,112, 68,156,164,212,134, 73,133, 69,213, 52,236,
-239,236,115,124,124, 76, 94,138, 13,251,222,193, 33, 23,206,159, 99,111,123,194,237, 59,247,217,222, 30,242,198, 27, 55,120,234,
-169,183,243,218,171,215, 57, 57,153, 51,159,159,128, 97,163,148, 37, 34, 76,173, 69, 49,140,138,249,124,206,238,222,148,232,245,
-136,197,106,137,239, 15, 81, 86, 69, 85,155,152,166,139,235,249,164, 69,195, 42, 78, 88,175, 35,188,192, 39, 77,115,153,186,232,
-207,178,179, 51, 91, 22, 71,135,135, 80, 22,130, 9, 55, 77, 92,199,193,106, 12,147,170, 46, 73,243,146, 97, 24,208, 24,153,228,
-115, 27,146, 51,237,187, 2, 5, 72,178,132,154, 10,163, 81,140,198, 83,178, 36,167,172, 97, 50,222,226,248,248,152,126,127, 72,
-191, 55, 20,210, 86,158, 51, 24,140, 68, 25, 73,163,197, 87, 50,162,137,210,164,243,119, 59,142,141, 19, 88, 92,188,120,145, 87,
- 94,121, 5,207,243,232,247,135,154,108,228, 75,226,148,109,147,231,146,234, 22, 4, 61, 86,171, 21,166,105,107, 33, 21, 76,167,
- 83, 22,139, 69, 55, 70,115, 93, 87, 56,220,122,231,105, 24, 70, 7, 4,176,109,187,251,245,158,231, 17,134, 33, 71, 71, 39,157,
- 58, 55, 8, 2,102,179, 25,219,219,219, 44,151, 75,157,208, 69, 23,182,208,130, 51, 90,187,202,102,103,184,189,189,221,141,231,
-139,162, 96,181, 90,117,138,204, 36, 73,186,108,100,165,148, 4,127,140,199, 90,112, 83, 16, 4,190, 70,133,230, 58,192, 65,242,
-198,119,119,183,245, 1,178, 57,238,174, 37,177, 74,255, 21,232,207,199, 48, 54,194, 78,180, 30, 66,117,206,242,214, 87, 94,107,
-168,154, 30,195, 25,173,135, 31, 76,195,160, 54, 68,168, 87, 86,133,228, 87, 27, 2, 32,162,150, 4,189,178, 41, 49,145, 67,183,
- 41, 27,138, 42,167, 49, 74,242, 42,167, 46,106,138,186,144, 95,111,130,137, 73,163, 26, 76,195,212,170,116,131,198,104,160, 42,
-105, 16,248,137, 97,153, 26, 11,219, 90,215,236, 51,234,223,150,210, 39,160, 27,186,247,161,213, 0, 88,166, 73, 83,231, 40,165,
- 87, 16,166, 22, 1, 81, 99, 42,179,131,245,136, 88,174,198,208, 59,186, 44,203, 4,249, 91,215, 28, 29,207,136,227,184, 11,176,
- 0,177,197,213,141, 33,227,254, 90, 7,227,100, 57,171, 72, 70,143,109, 46,185,239,187,212, 85,129,170,107, 76, 26,122,161, 79,
- 85,200,239,111,219, 54,105, 81,179,142, 51, 6,147, 41,171,117, 44,112, 29, 67,144,154, 70,163,197,161,141, 69, 20, 69,221,151,
-180,168, 55,166, 45,149,136,109, 12, 75, 81, 25, 21,101, 93, 82,102, 57,208, 80, 58, 13, 78, 93,225,185,138,154, 6, 63,112, 49,
- 77,132, 10,233,186,212,133,128, 95,134,195,161, 46, 22,165,224, 9,117,241, 44, 35,225, 16,223, 11,116,120,196,170,131,199, 68,
-203,136,244, 48,215,126, 94,233, 16, 90,156,169,227, 56,132, 97,200, 50, 90,227, 90,173,149, 79, 46, 25,101,138,199,122,177, 88,
-176,184,125,135,213,106, 69,127, 56,144,169, 80, 89,159,142,211, 77, 83, 23, 26, 54,101,221,144,151,165,132, 10,233,110,164,179,
-124, 90, 22, 69,154, 82,181,211, 31,173, 57, 41,203, 82,162,107, 65,108,153, 27,211,169,214, 6,170, 12, 45, 30, 74, 10,156,190,
-207,241,108,201, 83, 79, 62,201,206,222, 46,179,147, 67,124, 95,128, 43,174, 31,176, 92,172,186,247,138,186, 33, 79, 51, 92,247,
-236,164, 74, 41, 3, 27, 19, 84, 77, 85, 54,148,117, 69, 86,100,220,185,115, 71, 18,190,166, 83,121,127, 60, 79,166,140, 85, 77,
- 18,197,221, 26,209,214,103, 69,211,198,244, 73,181, 76, 83,202, 51,209, 22, 51,242,236, 11, 74,161,106, 4,106, 69, 45,192,154,
- 48, 16,223,249, 58,142,176, 92,135,248, 56,209,207,162,129, 50, 44,246,246,246,168,107,152,173,214, 88,166,141, 97, 90,100, 69,
-165,237,179, 74, 20,234,121, 77, 89, 75,244,171,237, 90,152,153,121,166,224,112,189,128,134, 37,129, 47, 63,135,109, 74,119,184,
-179,179,195,120, 60, 38, 12,124,108,101, 64,211,224,233, 73,140,151,134,156,204, 22,122,215,237,234, 51, 90, 26,168,209, 72, 66,
- 82, 70,195, 73, 87,208,141, 39, 67,113, 29,149, 37,158,107,114,240,224, 30,183,223,184,205,209,252,136, 58,175,177,236, 6,127,
-216,199,117,183,186,230, 75, 92, 10,193,153,139,205,178, 44, 38,219, 91, 58,240, 5,125,246,202,217, 23, 71, 9,139,197,130, 55,
-174,223,224,238,157,123,164, 89, 66,150, 37,204,231,115,194,208,151,162,173, 40,112,109, 15,203,114,240, 3, 7, 47,240, 56,156,
-157,160, 76,135,241,246,152,241,100,155, 87, 95,126,141,178,172,153, 12, 71,132,253, 62,163,241,128,215,111,222,100,177,154,243,
-240,229, 11,124,243,197,215,184,246,208,101,150, 11,177, 2, 62,244,208, 21,158,123,238, 27,244,123, 30,158, 23, 48,232, 79,112,
- 28,135, 94, 63,192,243, 28, 76,213,240,240,181,203,140, 6,161,104,133, 12,139,163, 89,196,157,187,135,204,151, 9,149,206,232,
- 8,195,144,188, 40,181,251, 64,206,124,183,116,187,201,167,101, 88, 4,158, 75,224, 58,184,142,133,109,105,194, 72, 93, 97,217,
-174,131, 81, 42, 80, 25,113,156, 82, 84, 37, 61,191, 71, 93,215,140,199,211,110, 87,178,189,189,221,237, 50,102,179,133,248, 31,
- 27,131, 59,247,239, 49, 30, 12,181,114,214,212,187,179,180, 83,115, 10,213,204,234, 42,175,182, 11, 23,219, 71, 69,158,151,188,
-242,202, 43, 93, 37,152,101, 89, 55, 38, 76,146,132,245,122,221,165,218,180,178,126,211, 52,201,115, 81,226, 39,217,113, 55, 14,
- 59, 62, 62,238,132, 3,237, 30,165, 21,124,180, 42,112,217,251, 24,156,156,156, 48,159,207,187,189,225,131,195, 67,182,183, 36,
-230,111, 62, 63,161,105, 12,130,192, 35, 77,115,148,130,178,108, 24, 14,251,172, 86,145, 88, 44,202,154,193,160,167,139,149, 76,
-239,155,214,120,158,199,112,216,239, 44, 13,134, 33, 84, 39,185,208,209,217,189, 11,141,141, 28,200, 56, 49,141,152, 76, 38, 40,
- 19, 86,203, 8,203,150,125,228,114, 53,239, 96, 61, 52,170,251,123,195,233, 94,189,165,153,177, 65,245,234, 68,110, 84,152,202,
-150,255, 31,154,129,175,211,237, 90,117,185, 99, 90, 90, 49, 95,158,142,172,203,242,172, 32,174, 60,237,152, 74, 61,221,144,228,
-189, 18,229, 89, 56,154,205,111, 53,234, 91,124,236,242,231, 26,157,176,177, 81, 13, 86,163,244,235,151, 41, 65, 94,136,200,208,
-177,237, 55, 89,122, 20, 52, 85,199,161,223, 84,181,203,165,110, 80, 23,245, 41,177,236, 63,163, 71, 40, 75,217,167,215,186,131,
- 43,114,205,195, 86,178, 10,120,229,181, 87,245,158,176,234, 38, 30,237,186,192,182,109,242,236,212,202,216,142,123, 11,173,242,
-246, 18,143, 52,137,160,174,176, 77,131,222, 74,212,170,237,168,204, 80, 22, 69,117, 74, 89,203,138,188,139, 75,149,213, 64, 65,
-191, 55,236,222, 31,137,120, 61,213, 6,180,162,210,246, 63,182,229,224, 5,162, 0,238,245,122,248,190, 71,217,148, 84,117,214,
-169,151,155,166,193, 49, 79, 19,216, 22,139, 5, 32,180, 53,154, 70,143, 94, 75,201,244,182, 44,150,139, 21,101, 89,119,246,209,
-214,215, 92, 20, 5, 89,145, 67, 35, 9,111, 74, 41,129,168,232,241,102, 75,139,235,107,145, 93, 43,174,173,171, 90,176,192, 85,
-133,178, 36,112,200, 80, 74,236,176, 24,100,101,165, 21,145,208, 96, 81,111,192,148, 78,185,254,117,231,233,222,220,177,111, 10,
-118, 55,147,249,218,103,190,157,238, 85, 77, 13,166,162,174, 12,210,178, 36,175, 27,124,219,225,104, 62,231,161,171,215,248,243,
-197, 9, 61,207, 38,137, 86,114, 70,172, 99,130, 32, 96, 48, 24,108, 36, 9,154, 93,119, 43,234,127,151,117,154, 2, 74,162, 89,
-203, 18, 48, 56, 60, 60,212, 59,249,190,124, 86, 74, 46,201,182, 83,204,203,170, 19, 42,182, 44,251,238,251,161, 12,138, 82, 70,
-167, 54, 6, 5,101,247,236,110,106,108,210,188, 68,169,156,189,193, 30, 73,158,113,253,245, 27,108,111,111,227,121, 62, 73,146,
-113,124,124, 76, 86, 84, 56,158, 79, 47, 28, 48, 25, 79,137,162, 68,232,127, 27, 48, 43,207,243,186,162,169,253,126,180, 83,155,
-126,191,207,106,181, 98, 52, 26,201,238,215,178,176, 76, 89,117,204,231, 16,250, 62,142, 99, 11,219, 61, 79,169,202, 28,207,147,
- 9,102, 16, 4,124,243,155,223,148, 9,149,158, 0,156, 59,119,129,227,227, 99,110,222,188, 41,147,153,181,104,146,190,255,251,
-191,159,209,104, 36,206,136,227, 7, 24,134,193,133,253,115,236,239,236, 18, 69, 81,199, 45,104,155,167,246,172,111, 47,246,246,
-142,104,133,134, 69, 93, 80, 85, 5, 81,148,144,166, 14,101, 89, 11,154,184,106, 88, 44, 22, 29,135,225,224,193,125,157, 89, 82,
-178,179, 59, 97,107,107,194,151,190,244, 21, 40,149, 0,198, 28,147,161,209, 48, 25, 13, 24,140, 38,152,142,135, 81, 21,248,174,
- 13,142,197, 67, 15, 61,196,189,123,119,152, 47, 78,200,179,152,239,250, 75,239,226,224,112,134,111,154,156, 28,175,176, 44,193,
- 5,239,108,109,243, 61,223,243, 95,242,252,243, 47,178,183,187,131,101,121,221, 93, 53,155,205, 56, 62, 58,224,222,253, 91,100,
-201,154,178, 41, 57,119,254, 18,101,158, 98,234,187,161, 30,112,167,174, 0, 0, 32, 0, 73, 68, 65, 84,172, 45,156, 74,206, 27,
-201, 13,169,197,227,238,218, 40,203, 60,165,115,150, 13,166, 49,224,202,197,115,244, 2,191,123,254,235,186,198,202, 18, 25,153,
-140,135, 3,210, 52,197,115,108,234, 82, 46,242,225, 80, 42,170,192,115, 73, 34,129, 40, 20, 89,218,117,208,242, 5,183, 88,197,
-218,150, 18, 23,236,237,157, 99, 57, 91,178,179,179,199,122, 29,129,169, 40,234,130, 60, 90, 82,150, 57,195,225,152,120,177,198,
- 11, 3, 22, 11, 97, 19,251, 97,159,178,134, 82,143,222,143, 78,230,242, 1,154, 38, 73, 22,177, 92, 75,224,133,239,251,140,167,
-219,204,102, 51, 66,205,226, 46,117, 17,176, 92, 46, 25,141, 70,221,193,179,183,183,215,141,237, 15, 15, 15, 25, 12, 6,157,114,
-185,237,232,243, 60, 23, 97,129,173, 24,143,134,196,201,154, 34,175, 24,142,250,216,150,203,108,126, 76,224,247,116,231, 42, 44,
- 97,195, 48, 48, 45,133,239,135,120,190, 67,145, 22, 56,182,137, 2,118,183,167, 68, 81, 76,211, 84,120,158, 40, 18,155,170, 96,
- 50, 26,112,235,214, 29,241,118, 90,138,221,237, 41, 73,180,210, 7, 93, 13, 85, 73,180, 90,136,231,176,134,178, 49, 68, 77,156,
-156,194,115,222,124, 25,183, 17,179, 69,118, 54,218,242,140,184,142,154,166, 42,186,152, 88,165, 4,236, 98, 40, 11, 3, 37,142,
-186,166,189,132, 91,148,106,163,105,108,198, 25,175,121, 89,201, 56,211, 80, 74, 80,172,166,146, 36, 59, 3,237,179, 55,191, 5,
-107,123,154,190, 37,201,108,150,121,118,204, 8, 16,122, 46, 70, 29,163, 84,131,103,157,189,184,165,195,203,190,229,144,171,244,
- 95, 57,116,220,118, 41, 72, 78, 61,207,157,144,176, 44, 59,255,111, 77, 35,113,170,101,141, 99, 89, 88,142,173,223, 87,227,140,
-214, 32,207, 43,137, 54,104, 26,177, 70,233,162, 66,240,147, 89, 87, 92, 58,142,131,178, 69, 37,237, 27, 22, 89, 85,225,123, 46,
-142,165,247,167,166,133,107,219, 66,184,179,109, 60, 83,232,138, 85,145, 99,155, 22,118, 24,202,248,215, 86,167,135, 88,110,118,
- 23,102,155, 47,221,138, 78,171,170,162,168, 75,202,120,205,114,189,214, 49,177, 6,181,158,116, 84,250, 16,183,117,193,210, 22,
-178,126,224,146,100, 37,209,106,141,109, 75,241, 93, 85, 58, 20,169,110, 72,117,146,150,227,185, 98,187, 43, 37,235,121,189, 94,
-211,235,245,200,171,146,160, 17,152, 76, 94,149, 36,121, 38,241,170, 85, 67, 83, 72, 36,104,170,167, 19,134, 97, 82,212, 21,166,
-178,240,130, 80, 82,193,148,161,247,150,165,196, 52,171,211,206, 58, 43, 10, 61,117, 58,157,206,108,174, 82, 54,147, 5,223,124,
-137,119,105,110, 85, 67,165,170,110, 26, 39,187,249, 80,222,175,170,162,106, 12,170, 6, 94,122,249, 85,206,253,229,239,144, 96,
-144, 34, 37, 8, 2, 26,211, 97, 48,156, 16,250, 1,158, 23,224,251,174,144, 4,131,128,213, 42,146,181, 2,210, 41, 85, 85, 41,
- 58, 31,163,193,118, 76,148, 33, 77, 75,175,215, 99,119,119,151,193, 64,166, 18,141,125, 74,179,236,246,192, 58,226,184, 54, 78,
- 9,108,134,169,176,108,228,140, 44, 74,138, 56,163, 44,191, 85, 8,107,219, 54,166,146,238,237, 40, 73,184,127,120,132, 23,246,
-168, 11,233,124,143,143,103,184,126, 72, 99,136,195, 96,103,103,135, 91,183,238,144,100,226,247, 47,235, 83, 33,178,178, 76,113,
-211,234,239,189,237,104, 55,138,169, 88,175, 86,108,237,108,107, 85,247, 28,219, 21,174,128, 92,236,115,250,253, 0, 85, 55, 26,
-230,213,116,171, 80,211,180,217,217,217,147,149,162, 22, 82, 46,230, 43, 60, 79, 92, 5,127,246,103,127,134,109,219, 76, 38, 19,
- 14, 14, 14, 49, 77, 1, 24, 61,255,226,203, 58, 58,186,236, 26, 48,199,113,152, 78,167, 93,177,216,174,198,226, 56, 62, 67, 27,
-148,239,159, 69,150,172,176, 76,131, 40,146, 92, 2,219, 22, 48,139,239, 73, 6,252,211, 79, 63,189,241, 90, 11,150, 75,177,179,
-237,238,238, 50,157, 78, 25,246,119,152, 78,167, 24, 10,250,195, 0,215,181,137,179,156, 91, 55,239, 80, 82,224,218, 54, 69,217,
-240,198, 27,111, 48,159,139, 6, 99, 56, 28,114,239,224,152,245,242,132,119, 62,250, 4,135, 15,102, 76,183,134,120, 97, 64, 81,
-138,189,111, 60,238,115,239,254, 93,198,163, 45, 30, 60, 56, 98, 57, 23, 27,102, 63, 20, 18,228,238,206,132, 87, 94,123,133, 7,
- 7, 95,163, 54, 44, 80, 46,181, 33,188,132,170,106,132, 70,218, 22,170,182,217,241, 15,140, 70,120, 29,117, 93,227,234, 59,216,
- 82, 66, 46,109,155,102,203, 82,138, 52,139,169,139,154, 85,188,162,231,247, 48, 76, 24,246,251,152,150,193,241,225, 33,171,120,
-197,176, 55,196,116, 76, 9,114,143, 87,132, 94, 72,156,136, 16, 0,160,223,235, 99, 90, 22,139,197,140,233,214,152,245,122,201,
-231,254,159,255,192,123,255,218,247, 97,168, 70,198, 61,142, 75, 93, 75, 16,196,114, 57,239, 14,175,118,247,219,142,192, 91, 32,
- 62,192,254,254, 62,179,217,140,193, 96,192,205,155, 55, 25, 14,135, 92,186,116,137,163,163,163, 78, 0, 81, 20, 5, 55,110,220,
- 96,127,127,191,131,130,180,187,240,186,174, 59,140,108,235,121,221,220,193, 13,134,178,179,158,205,102,210,125,249,110,119,112,
-223,190,125,187,203, 80, 14,130,160, 11, 88, 40,138,130,170, 46, 56, 60, 92, 50,234, 15,184,113,243, 46,151, 47, 93,212,107,136,
- 62,121, 94, 17, 69, 43, 93,253, 46, 89,175,151, 93, 44,160, 76, 1, 68, 33,122,124,124,216,169, 22,219, 15,112, 83,228,214,102,
-125,183,171,134, 83, 20,173,210,196, 57, 3,215,245,187,159,167, 21,120,217,182,121,166,195,193,104,206,170,194,141,166, 99, 76,
- 83,159,245,140,191,217, 74,216, 78, 0,218, 67,180, 45,138, 54, 59,170, 55, 43,236,207, 90, 17, 79, 47,227, 86, 55,176, 41,226,
-115,109, 19,163, 46,116,215,224,156, 65,252, 70, 81, 4,182,250,207,218,230, 90,109,131,161,225, 65,117, 37,151, 54,111,218,177,
-158, 17, 11, 86,181, 48,229, 53,136,167,253, 57,218,215,213, 94, 40,109,119, 44,136, 93,163,203, 9,104,139, 38,199, 17,151,133,
-229, 58, 68, 89,129, 1, 56,190,139,231,123, 12,123,190,132, 1,233,209,110, 94, 34,254,243,174,203,172, 72,210, 24,234,138, 48,
- 16, 72, 82,123,136, 75, 39, 33, 33, 15,117,173,180,120, 52,237, 28, 20,242,235,228,249, 78,210,132, 40, 78,200,155,138, 32, 12,
- 69,168,167,137,112,226,123,181,137,227,136, 60, 73,217, 82, 19,154,218, 32, 74, 98,140, 24,198,211, 17,142,227,146,166, 49,161,
- 31,116, 63,115, 59, 77,243, 60,143,192,239,225,251, 62,113,150,130,198,192,182,184,205, 77,206,123,180,204,136,214,107, 48,132,
-110,103,185, 54, 77, 41, 94, 99,215, 21,236,114, 94,213, 36,121, 70, 94, 84, 56,206,233, 78,191, 44, 75, 84,161,186,176,139, 86,
-115,210,174, 65, 54,167, 54,237,116, 96,243, 57, 19,135,131,234,116, 37,109,170, 97, 7,179,169,196, 45, 97,217, 46,168,154,117,
- 20,177, 92, 71,236,237,237,113,227,149,151,196,206,138, 28,140, 69,166,119,225, 58,140,164,245,233, 59,150,205, 42, 90,147, 52,
- 9, 69, 41,105,119, 73,154,162, 44,155,225,112, 72,161,113,163,195,225,144,221,221, 93, 14, 15, 15, 59, 66, 91,170,127, 93,235,
- 57,175,170, 74, 68,189, 27,175, 31, 67, 46,247,164, 73, 89,215, 53,101, 94, 96, 57,167, 24,222,117,146,118, 2,211,188,144,226,
-199,118, 60, 48, 20, 81, 44,184, 98,170, 8,199, 11, 48,149,141, 82, 38,131,193, 0,207, 59,102,182, 90, 10,111,190, 57,157,124,
-180, 86,101, 3,227,204,119,163, 61,255,218, 11,239,248, 88,130, 69,198,163, 17, 74,201,148,212,182, 12,124,199,165, 23, 6, 84,
- 69, 46,216,223, 68, 82, 32,223,242,150,183, 48,159,207,187, 85,229,235,175,191,206,229,203,151, 89, 46,151,188,245,173,111,237,
-206,185,219,183,111,115,253,250,117, 61, 41, 61,209, 64,161, 83, 43,173,157, 23, 20,101,197,157,187,247,186,117, 79,219,129,110,
-166, 49, 74,114,153,194, 54, 43,202, 66, 51, 1,168,186,184,239,246,207, 19,129,117,197,185,115,231,216,221,157, 10,218,184, 47,
- 83, 25,223, 11,153,205, 22,216, 78,128,161, 74, 92,223,194,118, 12,162,213,140, 50, 79,185,112,233, 33,206,239,187,140,198, 91,
-188,242,242,117,194,176,143, 97,154, 28,159, 28,242,202,245,215,121,215,219,159,226,133, 23, 95,230,219,158,122, 27, 89, 90,144,
-172, 35,109,223, 59, 98, 50, 29,113,112,112, 72, 20,173,112, 93,155,193, 96, 32, 86, 81,215,167,169, 13, 70,195, 9,182,229,208,
- 24,138, 92, 36, 63,162, 61, 73, 18,202,198, 66, 41, 19,219,114, 57, 89,204,169,141,134, 65, 47,208, 63,139, 62, 79,107, 89,217,
- 28, 30, 30,146,246,251,221, 90,194,113, 28,233,212,107, 42, 20, 38, 61,223,163,169, 4, 95,185,191,123,142, 91,119,238,176, 53,
-153, 80,164, 9,231,247,247,184,119,112,151,192, 11,201,203,140, 60, 77,100,158,239,186, 44, 22, 43,138, 50, 35, 12,125, 12,195,
-228,228,228, 8,165, 44,222,243,158,239,102, 60,158,114,120,120,128,105,218,184,174,176,112,119,119,183, 57, 58, 58, 97,186, 53,
- 33,207,202, 46, 59, 58, 12, 67, 86,171, 21,219,219,219, 58,227, 55,224,254,253,251,221,165,215,126,217,238,222,189,219, 29,174,
- 85, 85,177, 92, 46,113, 93,169,176, 31, 28, 62, 96, 50,158, 48,155,205,152, 76, 38,172,215,107, 38,147,137,182,160, 4,132, 97,
-216,141, 16,197, 3, 27,147,101, 9,166,217,170,169,229,224, 88,173, 18, 29,165, 39,227,159,147,147,156,126,223,215,236, 98,147,
-245, 58,145,240,142,104,197,229, 75,231, 89,175,151,186,211,150, 17, 79, 20,173,169,170, 83,231, 64, 28, 23,250,141,151,168,207,
-229,114, 78, 24,134, 44, 22, 11, 44,219,236, 14,181, 65,127,208,253,172,134,162, 35, 35,189, 89,225,222,141, 44, 13,179, 19,192,
-180, 2, 56,215,115,186,135, 95, 46,170, 55,165,170, 53, 85,199,169,119,180, 42,166,105,212,153, 75,249,205, 34,165,170,178,186,
- 66,163, 85, 50,119, 94,219, 13, 75, 98, 59, 26,111,191,128,173,149,103,179,219,222,180, 56, 22, 89,138, 99, 25,184,174,141,235,
-152,250,242, 16,177,150,162,194, 54, 79, 11,139, 86,191,208, 94,176,114,249, 42, 29, 45,139,206,119,215, 69, 17, 70,119,192, 11,
-223, 64, 70,120, 93,103,191, 97,145, 49, 26,249, 57, 28, 75, 94,183,173,109, 89, 77, 93,161, 12, 25,243, 91,166, 65, 81,215, 52,
-117, 73, 93, 85, 84, 72,231,218,160,217, 11,101,197,106, 29,163,104,176,116, 65, 18, 98,146, 23, 21,113,154,146, 38, 57, 37,101,
-151,136, 87, 85, 18,165,106,152,134,230,142, 75,164,102, 85,137, 21,175,172,114,170,188,234, 34, 54,229,253, 83,250,179,171,197,
- 14, 83,136, 88, 45,116,250,148,121,193, 56, 28, 10, 68, 38, 89, 19, 6, 33, 39,179, 4,101,214,212,105,132,101,217, 12, 52,206,
-214,166,196, 51, 29,176, 20,142,165, 48,125,159,172, 40, 40,170,138,181, 6,208,216,182, 43, 81,174,250, 89, 72,178, 84,112,201,
-141, 92, 46, 74,127,238,163,209, 8,219, 49, 41,244,107,109,119,200,174, 39, 62,247,186, 49,200,171, 26, 83,217, 36, 45, 21, 75,
- 89,242, 89, 25, 85,183,134,235, 4,110, 90, 84,212,126, 94,237, 51,246,230,148,192,206,179,174, 11,162, 54, 44,197,104, 36,140,
-167,168, 74,178, 34,167, 46,229,231,178,244,110,120, 54,155,241,208,197,221,174, 72,240, 3,151,170,108,136, 83,237, 0,169, 27,
- 22,179,130, 52, 73,152,110,109,225, 56,234, 76,129, 81, 85, 21, 85, 83,208, 20,121,167, 53, 88, 46,231, 93,225,223,106, 46,148,
-101,211,235,245,136,146,184,139,233, 21, 1,223,217, 73, 86, 94, 36,216,174,163, 19, 21, 26, 77,189,108,186, 53, 80,169,249, 29,
-105,145, 51, 91, 46,200,179,130,222,160,223, 77,104, 44,203,166,200,115,214,235,152,254, 96,132,109, 59,148, 24,108,109,237,240,
-224,100, 70,165,233,108, 53, 13, 77,158, 83,233,239, 67, 69, 69, 93,159, 90,120,227, 36, 99, 50,153,176, 88, 44, 25, 12, 6,108,
-111, 11,231,188,215,235, 81, 85, 5, 71,247, 15,176, 45,209,198, 36, 74, 18, 54,227, 56,166,223,115,169,170,154,249,124,193,209,
-209,241,233, 90, 68,119,217,182,229,118,162, 57,215,117,121,238,185,231,186,113,180,105,154,244, 2,151,170, 46,186, 21, 98, 89,
-150,164,209, 82,236, 90,182, 73,158,197, 18, 59,234,137,131, 10,117,106,207,107,170,130,192,119,187, 85,113,211, 52, 4,190,172,
- 80, 92, 39,232,108,119,101, 85,116,207,212,149, 43, 87,112, 92, 11,215,181,185,118,237, 26,223,248,198,235,210, 73,175,142, 56,
- 62,233, 51,232,251,164,105,194,124, 46,163,123,219,234,241,202,203,175,179,142, 50,166, 91,187,244,122,125,198,211, 9, 94,207,
-231,213,215,222, 96,203, 11, 41,139, 6,223, 15,153,205,142,216,218, 27,115,254,252, 57, 14, 14, 14,120,219, 91, 31,231,235,207,
-189, 72, 89,200,196,175, 5, 60,165,105, 44,129, 49,147, 9,183,238,222,161, 40, 52,233,175,182,206, 52, 45,173,203, 3, 26,162,
- 64,200,127,182,206, 94, 48,170,154, 40, 73,176, 77,133,157, 21,104,154, 46, 85, 13, 86,127, 16, 82,148, 37, 73, 28, 11,109,205,
-130,119,190,243,157,252,250,191,250, 87,244, 7, 3,254,227,231, 63, 79, 89,150,204,230,199, 76,167, 83, 94,120,254,121, 46, 94,
-186,132,161,171,251,235, 55,111,112,254,252,121,182,183,183,249,202, 87,190,196, 39, 63,249,111,121,223,251,190,143,159,253,217,
-127,192,239,254,238,111,115,254,252, 69, 70,163, 17, 63,242, 35,127,147, 31,255,241, 31,101, 56, 28,147,166, 49,127,247,239,254,
- 15, 60,255,252,243, 88,166,195,173, 91,183,248,216,199, 62,198, 15,253,208, 15,113,238,220, 57, 62,252,225, 15,243,199,127,252,
-199, 68,145,228, 61,183, 23,188,239,251,252,204,207,252, 12,239,127,255,251,137,227,152, 31,251,177, 31,227,250,245,235,221, 62,
-107, 54,155,177, 53,221, 34, 12, 67,126,239,247,126,143, 75,151, 46, 1,240,204, 51,207,112,255,254,125, 76,203,224,245,235,175,
-242,139, 63,255, 11,124,240,131, 31,196,247,125,254,254,255,244,211,124,254,243,159, 35,207, 75,118,118,182,249,195, 63,252, 67,
-170,170,226, 63,253,167,255,212,105, 8, 76,211,228,194,133,125, 62,254,241,143,115,245,234, 85,146, 36,225,163,255,224, 31,242,
-167,127,250,167, 76,182,183,249,210,151,191,200, 39,127,239,147,252,213,247,254, 85,254,241, 71,127,158,103,191,248,103, 76, 38,
- 19, 26,106, 38,227, 41,191,243, 59,191,211,237,118,126,250,167,127,154, 87, 94,121, 5,165, 20,111,220,184,206,199,255,213,175,
-243,158,247,188,135, 95,251,181, 95,227,245, 55,174,243,137, 79,124, 2,211, 52,249,252,231, 63,207, 79,252,196, 79,240,228,147,
- 79, 98, 41,115, 35,240, 66,199,187, 54,141,228,150, 43,177,149,136, 56, 78, 30,214,214, 22,216,217,254, 54,216,242,170,169,207,
-116,225,101, 94,157, 65,227,110, 18, 4, 91, 97, 75,219, 65,182, 29, 83, 43, 20,108,247,182,109,103,146,101,153, 88,173,170,156,
- 90, 89, 40,133,136, 26, 55, 46,244, 66,239, 91,101, 76,100, 96,121, 54,174,229,119, 95,250,170,170,164,138,246,125,150,161,199,
-237,219,183,169, 1, 91, 41, 26,195, 16,117,108,224, 98, 34, 29,105,158, 23, 20,165, 4,218, 72,213,223, 30,134,116,133,141,196,
- 88,170, 78,232, 88,215,122, 39,101, 26,194,250,214, 69, 73,217,137,153,154, 78, 95,208, 52,213, 25, 55, 65,165,137,110,178, 19,
- 46, 48, 29,147,170,212, 23, 18, 21,117,237, 10,227, 32, 12,216,218,154, 16, 37, 25,118,108, 98,109,216,109, 48,108, 98,173, 4,
- 15, 3,225, 44, 88,122, 4,111,233,168,224, 34, 77,201,154, 90, 72, 92,166,234,162,108, 77,109,225,236, 53, 62,166, 1,182,105,
-176, 55, 29, 19, 69, 17, 59,211, 17,174,107,179, 92, 26,162, 67,169, 82, 74, 87, 46,121,179, 81,236, 76, 69,180, 89,150, 5,141,
-149, 17,186,226, 81,119,188, 64,130, 89, 54, 46,203,246,146,108,167, 93,167, 93,178,252,172, 65, 16,144, 91, 22, 65,191,167,131,
- 38,116,186,223, 6, 29, 49, 78, 50, 42,180,200,169, 23,162, 44,139, 52,207, 5,248,169,108,177,199,101,197,233,138,167, 44,207,
-132, 54,181,148,182, 86,135,179,201,164,111, 71,216,213,198,132,169,253,125,218,238, 57, 77,197,194, 53, 91, 46,160, 31, 82, 38,
- 9, 71, 39,115, 46,238,111,177,181, 35, 34,212, 56,141, 25, 79,182,168,242, 76, 70,164,185,104, 13,146, 56, 99, 54, 91,176,181,
-181, 37,132, 60,211,214,145,182, 50, 93,204,242,130, 36, 90, 99, 15, 28,226, 40, 98,107,178,205,197,139, 23,153,205,102, 44,151,
- 75, 34, 77,242, 59,147,185, 46, 93, 67,247,172, 85, 85,195,114,181, 34,236,247,116, 49,108, 97, 89, 53,150,233,136,125, 87,191,
-255, 85, 85, 80, 22, 37,105, 20,107, 84,171, 79,150,164, 88,150,195,238,222, 57, 86,243, 25, 85, 85,118, 84,183, 94, 18,211, 15,
-125,142,143, 15,120,245,245,235, 88,142,131,107,218,212,170,162,108, 10,253,158,105,118, 4, 70,247, 26, 13,195, 16,123,101, 89,
-114,254,252,121, 86,171, 21,129,223, 35,142,100,100,237,232, 85, 84,154,198,244, 66,159,241,120, 76,146,150, 12,135, 3, 14, 15,
- 15,201,178,172,155,100, 14, 6,125,110,222,190,197,238,238, 46,113, 28,115,251,246,109,170,170, 98,127,127,159,193, 96, 64,154,
- 68,228,121,202,165,243, 59, 20, 69,214, 93,252,105,154,114,235,214, 45,142,142,142,244,110,221,211,108, 46,121,125,182,166,202,
- 73, 83, 38, 77, 88, 93, 85,156, 63,127,158, 60, 43,241, 52,183,196,113, 60,198,163, 9, 7, 7, 7, 92,188,116,129,123,247,238,
-113,239,222, 29, 86,171,136,251, 15,238,145, 36, 17, 85,101,224,185,125,124, 47,100, 50, 25, 99,219, 6,135, 71, 39,210,241,155,
- 54, 89, 81, 49, 26,247, 57, 89,220,151, 93,126,158,114,101,235, 42, 47,190,244, 2, 85, 93,241,248, 91,223, 74,242,224, 4,229,
-184,188,252,234,117,246,246,167,220,187,123,200,133,139,123,156, 63,127,129,215, 95,127,131, 71, 30,185,198,215,190,246,220,153,
-230, 52,240, 4,229, 59, 26, 15,112,173, 35,178, 52, 38,203, 83,178, 82,145,229, 53,141,229, 81, 86, 6, 73, 26,117,235,203, 60,
- 19, 1,174,163, 44, 60, 15,154,178, 33,138, 18,198,195,254,155,178, 46, 20, 86,150,151, 88,174, 3, 70, 70,146,231,248,142,203,
-207,254,195,127,196,255,241,111,255, 29,191,245,219,255,134,191,243,183, 62,136,233,184, 40,211,230,100,177,196,118, 60,106, 67,
-225, 90, 54, 77, 93,233,157,163,197, 98,190, 98, 60,158,242,245,231,158,231,163, 31,253, 40,158, 27, 80,215,176, 94,137, 8,229,
-255,250,131,255,155, 79,126,242,147, 40,195,226,202,213, 75,252,214,255,246,111,248,238,239,254,110, 65, 21,246,122,220,187,119,
-143,239,251,190,239,227,219,191,253,219,249,213, 95,253, 85,222,253,238,119,119,209,168,109,119,109,154, 38, 47,191,252, 50, 63,
-255,243, 63,207, 51,207, 60,195,175,252,202,175,240, 35, 63,244, 55,160, 46, 49,141, 6,199, 18,175,251, 47,253,210, 47,241,235,
-191,254,235,124,230, 51,159,225,201,167,222,202, 39, 62,241, 9,190,243, 93,239,198, 86, 6,182, 50, 56, 62,122,192,187,191,227,
-219,120,247,187,191,147, 95,255,248,111,240, 93,127,229, 47, 99, 91, 6,191,249,155,255, 43,191,252,203,255,156,207,126,246,179,
-252,224,127,253,215,233, 7,125,134,189,190,252,158,255,244,159,240,155,255,250,227, 60,255,252,243, 92,187,118,141, 95,254,165,
-127,198,143,252,200,143,136,128,195,182,184,115,243, 38, 63,244, 55,254, 58,190, 31, 50,232,133, 26, 52, 3,191,242,203,255,140,
-223,254, 55,255, 59,159,250,212,167,248,208,135, 62,196, 63,250,135,255,128,159,250,169,159, 34, 47, 37, 83,248,198,235,215,249,
- 27,255,226, 87, 24,244, 71,252,235, 79,252, 38,191,247, 59,191,199,167, 63,253,105,126,224, 7,126, 64,194,106, 26,169,142, 91,
- 75,147, 82, 18,210,210, 84, 18, 33, 88, 81,106,148,169, 8,218,219,247,193,181, 37,135,221,106, 26, 44,211,162,105,106,109,183,
-171, 58, 20,108,211, 52,228,177, 68,118,182,252,231,190,158,102, 40,213,208, 52, 37, 84, 41,161,239,162,144, 3,138, 58,167,201,
- 75,108,199,164, 23,122,164, 73,130,213,212,244, 92,147,129,223,211, 2, 35,177, 9, 89,150,194, 48,173,174, 99,142,162, 8,213,
- 52, 40, 29,167,216,162, 21, 61,111,168, 87, 18,142, 14,206,136, 8, 3,135,237,173, 17,166, 1,179,197,156,170, 40,233, 13,250,
-120,142, 79,148,172, 89, 45,150,100,133,216,115, 12,211, 70, 25, 6,166, 97, 96, 89,138,172, 41,169,138, 12,163, 81,168,198,192,
-168,114,253,254, 24,148,133, 6,125, 24, 22,166, 22,112,158, 78, 46, 64, 41, 61,206,167, 33,215, 9,101, 89,145, 82,163,197,123,
-182, 69, 89,200,191, 87, 70,131,107, 26, 56,142,173, 81,179,224, 88, 6,131,192,195,177,109,138, 44, 98,119, 60, 68,149, 49,117,
- 59,222,211, 88, 94,133,236,124, 7, 97,143,245,122, 37, 44,251,162, 96, 52, 28,138,176,173,174,133,219,109, 89,148,149, 48,235,
-139,178, 68,209,224,186, 14,138,154,120, 53,199,115, 37,139,121,208,243, 24,244, 68, 8, 85,100, 34, 2,115,109,147, 50,173,240,
-245, 65,232,251,174,126, 46, 50,173,147,200,201,243,170,179,186, 41,189,151,203,243,130, 52,215,150, 82,211,198,210,254,112, 73,
- 86,148, 75, 84, 66, 96, 2, 76,199,195, 53, 61, 76,251, 20,211,155,166, 41, 85, 89,227,123, 22,166, 97,146,233,192, 14,217,227,
- 43,168, 43,226, 68, 46,168, 56,139,207,140,204, 79,201,134,154,195,176, 33, 24,108,193, 46,155,132,191,166, 57,157,226,212,117,
-201, 96, 52, 36,203, 19,170,170,192, 52, 13,138, 34, 39, 74, 34,140, 38,103,107, 60,228,240,228,152,146,183, 96,121, 62,182,235,
- 48, 13, 29,146,245,146, 65, 47,192,115, 76, 22,235,181,232,104,234, 74,186,223,126,129,101,187,152,202, 32,240, 66,154, 90,192,
- 40,212, 50,145,169,138,146,126,216,227,238,157, 91, 92,123,228, 45, 92,187,118,141,187,119,239,210, 40,131,178, 42, 58,206,135,
-178, 28,162, 40, 33,203, 10,221,145,214,172,163,152,178,174,153, 45,151, 29,226,185,169,141, 78, 92,167,148, 69, 93,198, 40,195,
-160,204,114, 86,235, 5,231,246,246,137,163, 53,171,229, 2,163,110,184,113,235, 62, 15, 95,189, 66,150, 46,121,229,213,151,120,
-228, 45, 87,113, 28,155,241,208,229,219,158,126,140,131,219,183,137,226, 24,211, 13,112,149,131,225, 66, 94,102, 68,122,172, 95,
-100, 5,142, 99, 11,217,179, 40, 59,178,217,131,251, 15,164,128,235,245, 57, 60, 60,228,210,165, 75,120,174, 35,145,165,166,137,
-167,225, 50, 96,146,166, 49, 65,224,203, 4, 50, 90,201,234, 44, 73,177, 93,143,162,146, 98,237,220,133, 11,220,190,125,155, 91,
-183,110, 49,153, 76,120,248,218, 85,118,183,183, 24,245, 61, 20, 37, 69, 94,113,116,116,196,157, 59,247,240,253,144,225, 80,184,
-244, 23, 47, 93, 17,116,175,113,138, 7,111, 11,191, 40, 17,234,163, 50, 45,238,222, 19,143,118, 93, 30,118, 62,238,162,168, 56,
- 62, 62,150,233,158,109,179,183,183,207,193,193, 1,247, 14,180,117, 57, 90,227, 88, 46, 65,208,103,185, 76, 89, 71, 57,126, 24,
- 10, 39,160,172,137,210,146,147,197,146,218, 52, 40,200,240, 66,139, 7,135,183,177,172,154,243,187,123,220,191,115,159, 11,123,
-231,121,227,222,125,202, 34,197, 13,124,182,119, 70,188,240,194,171, 60,245,228, 19, 12,123,125,230,243, 37,239,120,250,109,124,
-241,139, 95, 36, 78, 99,118,118,118, 41,202,146, 55,110,223,230,187, 46,254, 37,162,117,198,254,206, 62, 55,239,222,199, 84, 16,
-120, 46,135,139, 37,158, 55,192,208, 40,231,229,114,201,120, 48,164, 44,107, 12, 85, 3, 57,118, 96,179, 92,174,169,203,188,131,
-124,249,190,207,254,254, 57,140,199, 30,125, 75,211,162, 2,135,195, 33,199,199,199,220,189,123,151,171, 87,175,118,163,212,231,
-158,123,142,107,215,174,145,101, 25, 47,191,252, 50,239,122,215,187,152,205,132, 68,119,253,245, 27, 92,187,118, 13,203,178,184,
-119,255, 62,219, 91, 91, 93, 94,242,243,207, 63,207,149, 43, 87, 80, 74,241,142,119,188,131, 95,252,197, 95,100, 58,157, 18, 69,
- 17, 79, 60,241, 4,231,207,159, 71, 41,197,107,175,189,198,227,143, 63,206, 82, 63,220,215,175, 95,231,226,197,139,221, 46,106,
-189, 94, 51, 28, 14,121,233,165,151,120,226,137, 39,186,234,253,203, 95,254, 50, 79, 63,249, 86,154,166,225,213, 87, 95,229,226,
-197,139,100,133, 60, 28,223,248,198, 55,232,245,122, 24,170, 97,127,127,159,183, 63,249, 54,162, 40,226,193,193,125,174, 92,185,
- 66, 83, 21, 20, 85,195, 27, 55,110,243,232,227,111,165, 44, 75,174,191,241, 26, 79, 63,253, 52,119,239,222,229,226,185,243, 60,
-251,236, 23,184,116,233, 18,105,150,112,235,214, 45,138,162,224,224,222,253,206, 38,244,222,247,254, 85, 44,165,120,254,149, 87,
-120,242,209, 71,187,200,197,158, 46, 82, 92,215,229,217,103,159,229,123,190,231,123, 68,145, 89,215,124,229, 43, 95,225,169,167,
-158, 66, 89, 38, 95,255,139, 63,231, 45, 15, 63,140,194,192,180, 28, 94,120,225, 5, 30,121,228, 81,148,109,209,239,247,121,246,
-217,103,249,246,119,188,179, 83,129, 43, 26,124,215, 70, 25,160, 26, 80,182, 69, 82,150, 2, 25,209, 64,134, 50,215,157,176,105,
- 2, 13,131, 80,192, 5,149,254,240,187, 24,219,178, 34, 45, 36,213,174,209,206,130,162, 40, 48,245, 62,202,178, 68,129,111, 40,
-225, 37,215, 29,240, 64, 14,102,219,209, 10,223,188,229,117, 27,223, 2,184,145, 52, 53,249,245,101, 81,119,251, 54,215,117, 9,
- 67, 73,253,107, 74, 41, 16, 90, 62, 65, 85, 54,186,210, 31,104,117,171,224, 54,243,172,236,212,175, 45,227, 57,207,115,182,118,
-118,187,135, 90, 66, 63,236, 78, 76,211, 30,250, 81, 20,201, 30, 84,219,157, 90, 5,105,173, 59,150,179, 90, 0, 61, 78,175,228,
-215,180, 19,146, 22, 8, 84,116,171, 14,217,255,154,134, 65, 47, 8,113,109, 9, 10,242, 44,139,233,104,200,120, 52,192,213,129,
- 70,203, 85,196,122, 29, 75,130,156, 50,169, 49, 4, 95,172,213,181,121,150,202,179,170,121, 9,171,213,138, 44, 59,237, 94,218,
-125,104,251,186, 91, 80,211, 98,177,192, 50, 96,107,123,210,165,151,157, 10,197,228,125,107,243,152,187, 81,164,182,244,149,101,
- 73, 86, 84, 20,141, 60,123,182,125,186, 82,217,236,216,171,242, 84,160, 38, 81,162, 50,237,200,178,140,178,174,177, 93, 95,231,
- 19, 72,154, 97, 75,145,107, 21,243, 74,127, 30,155,194,183,205,245,201,124,181, 60, 35,140,107,167, 64,237,136, 86, 98, 60, 79,
-115, 36,218,220,237,118,138, 86,214, 13, 69,145, 49, 8, 66,146, 36, 98,107, 58, 22,138, 93,191, 47,154, 29,199,194, 82, 10, 83,
-213, 12, 67, 31,207,172,249,182,167,158,224,177,135, 46,241,141,231,254,130,104,177,228,226,249, 11, 84, 53,220,190,125,155, 70,
- 41, 92, 47, 16,119,139,166,118,217,158,240,198, 77,203,166,204, 11,226, 84, 46,117,211,118, 24,244, 71, 18, 93,154, 38,156, 63,
-127,158,249, 98,197,141, 91, 55,121,238,249,111, 16,134, 33, 24, 50,242, 79,178, 74,107, 9,164, 81, 73,226,148,198, 0,101,218,
-148,154, 81,208, 52, 13, 89,113,170, 81, 41,203,146,104,181, 20, 97,102, 35,182,185,115,122,223,189, 53, 30,113,225,194, 37, 22,
-179, 21,239,120,199,211, 28, 63,184,195,124,113,200,183, 61,253, 86,122,125,143, 44, 73, 81,202,226, 75, 95,254, 11,238,220, 61,
- 2,195,166, 86, 38,113, 26,177, 76, 86,216,174,104, 99, 22,179,165,254,179,106, 61,213,147,149, 66, 75,217, 73,147,152, 71, 30,
-185,198,237, 27, 55,201,139,152, 11,123,123,212, 77,206,246,116, 34,162,228,162,196, 84,246,105, 86,124, 42,205,151,227, 74,116,
-118, 85,148, 12, 6, 3, 66,189,223,238, 5, 1, 39, 39, 39, 44,150, 51,174, 92,186,200,219,159,124,140,187,183,223,224,246,173,
-187,220,191,127,159,131,163,227, 78,164,104, 24, 6,111,123,242, 73, 1, 19,233,166, 67,184,231,250,181,233,117, 78, 69,131,161,
-181, 65, 52,213, 25,231, 77, 16,244,116,216,147,216,142,143, 78,230, 2, 21,243, 3, 12, 74, 84,157,115,110,111,135, 85,148,113,
-116,114, 76,111, 48,198,178,109,234,198,100,177, 94, 49, 24,140, 8,194,144, 60,203, 24,141, 70, 20, 69,214, 69,215, 38,113,198,
-100,180, 35,118,216, 44,230,234,229,243, 60,241,248, 35,220,191,115,147,171,151,207, 51,236, 7, 44, 22, 11,108,219,228,249,231,
-159,231,165, 87, 94,163,215, 27,144,102,114,238, 62,250,232, 91,200,162,136,235,215,175, 83, 99,146,228, 21,181,237,112, 50, 95,
- 83, 52,194,149, 56,153, 45, 80,182,141,107,186, 58,230,184, 16,238,188,235, 8,155, 63,240,216,219,217,234, 44,153,143, 63,250,
- 24, 22,208, 65,248,163, 40,194,182,109, 33, 7,249, 62,179,217,172, 59, 12,218,209,161,227, 56,157,141, 99, 48, 24,116, 94,240,
-170,170, 72,147,164, 43, 4, 22,139, 5, 67,109, 37, 43,203,146,223,253,221,223,229,153,103,158,225,107, 95,251, 26,253,126,159,
-175,126,245,171,120, 90,193, 94, 85, 82, 81, 13,135, 98,141,107,171,241, 54, 83,189, 5,195,132,189, 94,167,144,108,127,136,227,
-147, 25,219, 91, 83,130,160, 39,126,118,125, 56, 60,243,204, 51,156,156,156, 48,153,142, 56, 60, 60,228,226,185,253,206, 14,145,
- 36, 9, 59, 91, 19,230,203, 53,105, 26, 83, 21, 25,174,227, 16, 45, 87, 44, 78,102,184,150, 73,158, 37,184,142,131,239,121, 36,
-113,140,107, 59,124,247, 95,249,203, 52, 27, 35,231,109, 93,160, 28,222,185, 67, 16, 4, 58,106,113,201,236,248,152,160, 39, 66,
-163,205, 60,223,214,214,182,183,183,163, 63,108, 91,236,118,134,140,169,171,186,224,137, 39, 30, 39,142, 99, 9,253,176,109,194,
- 48,192,180, 12,138, 44,215, 8, 66,151,192,247, 48,145,157,154, 93, 85, 82,137,235, 93,122, 82, 85,100,105,130,163, 78, 57,202,
-117,115,106,203, 10,253, 83,203,146,164, 35,217,228, 69, 65, 89,229, 34,106, 74, 51,237, 52,144,135,200,118, 68,140,200, 6,202,
-182, 83,231,154, 14,166,215,156, 81,141,183, 99,252,110, 95,109,153, 29,253,110,211,134,180, 25,199,234, 56,214, 41, 60, 71, 43,
-185, 27,101,144, 87, 37,235,117, 68, 28,199, 34, 68,209,118,151, 52, 77, 73,116,184,208,122,189,102, 48, 24, 96,187, 46,105,158,
- 19,173,230,221,202,196,247,253,142,131,111, 89,206,153,157,111,251, 90, 54,237, 99,237,104,189, 21,235, 73, 17, 33, 69, 64,173,
- 35, 97, 55, 53, 7, 18, 4, 98,146, 21,185, 48, 25,154, 10, 67, 91,153,164, 83, 56,237, 40,125,223, 39,205,196,226,212,116, 97,
- 51, 66, 15,244, 3,147, 32,236, 73, 55, 91, 55, 96, 40,108, 71, 64, 20,134, 50,197,154,104, 9,235, 90,105,209,144,237, 24,244,
-250, 3, 1, 59, 89, 30,121,101, 48, 91,202,119,199,243, 2,234,162, 32,206, 42,150,145, 92,224, 21, 22,182,103,226,248, 62,110,
- 48,144, 11,164, 44,181, 80,203,234, 10,163, 14,126, 83,215, 66, 61, 67, 8,136,117, 13,149,134, 5, 24,166,137, 97,138,227, 67,
- 58, 74,163,123,207, 54, 63,215, 70, 91,232, 78,199,205,213,183, 96,143, 55, 71,135,155,249,233,109,209,101, 24,205, 6,119,252,
- 52,224,163,235,218,170,114, 99, 85,114, 74, 61,108,139, 46,101, 90,154,201,111, 98,160,176, 76,139,187,247, 14,120,199,147,111,
-195,245, 66,150,139,136, 74, 57,212,212,152,174,143, 31,244, 48, 44,155,229,225, 49,217,201, 76,166, 86,165, 36,226, 57, 94, 64,
- 93,150,172,227,148,166,170,176,204,146,245, 42,102,103,103, 7, 47, 12, 88, 46,151, 4,161,207,195, 15, 95,229, 27, 47,190, 32,
-194, 40, 79,104, 97,102,137, 6, 78,105, 33,166, 78,102, 44, 75, 9,196, 50, 77,251, 12,110,187,253,231, 22, 62,213, 84, 69,119,
-118,197,113,204,205,213,146, 32,232, 81,100, 85,103, 3, 54,173, 41,135,135,135, 20,229, 0,207,177,153,205,142,121,226,137, 39,
- 48,237,235,172,214, 9,113, 94,144, 21, 41,139,197,130,176, 31,116, 96,170,150, 5,145,231, 57,158,239,116,197, 85,211, 52,204,
- 78, 18,190,254,245,175,147, 39, 41,147,169,136, 7,123, 97,175,131,200,148,165,112, 33,218,117, 72,123,166,155, 27,106,108,211,
- 52, 89, 69, 17,190, 43,251,245,209,104, 68,211, 52,108,109,109,241,229, 47,127,153,197,201,113, 55, 41, 76,146,172, 3,228, 56,
-142,195,107,175,190,122, 6,152,211,234,122, 76,211,208,254,109, 69,221,212, 80,213, 26,131, 91,117,205,160,136,166, 75, 44,203,
-193,243, 61, 38,147, 9,211,237, 93, 17,112, 54, 13,161,239,210,239,185, 68,171, 5, 55,111,223, 39, 47, 11, 28,207, 99, 54,159,
- 19,132, 67, 93, 36,187,120,174,203,160,223,231,238,221,187, 92,185,114, 73,248, 45, 94, 8,141,197,116,107,135,157,237, 61,238,
- 31,220,230,245, 55,110,226,218, 22,142,101, 48,155, 47,201,178,180,179, 63, 94,186,242, 16,105, 94, 50,159, 47,169,106, 41,116,
-142, 14, 15,121,226,209, 71,249,234, 87,191, 74,216, 31, 81, 20, 57,202, 18,193,219,122,189, 36, 28, 78,168,235,154,190, 78, 10,
- 12, 66, 79,163,154,107, 93,224, 84,248,158,172,208, 44,125, 46,157,204,103, 88,155,241,154,173,130,238, 43, 95,249, 10,239,125,
-239,123,249,220,231, 62,199, 15,254,224, 15,146, 36, 73,167, 80,127,240,224, 1,223,251,189,223,203,151,190,244, 37,126,224, 7,
-126,160,179,247, 24,134,209, 93,184,173,167,112,185, 88,156,185,164,143,142,142, 40,203,146, 31,253,209, 31,213, 34,179,136, 60,
-207, 5, 39,233,121, 29,206,181,237,196,218, 47,169,235,186, 76, 38, 19,234,170,226,135,127,248,135,249,195, 63,252, 67,222,247,
-190,247,241, 71,127,244, 71,140, 52,220, 98,181, 90,105,148,164,205,103, 62,243, 25,222,255,254,247,243,233, 79,127, 26,219,182,
-249,206,239,252, 78, 94,248,250,115, 12, 6,146, 63, 60, 26,141,164, 72, 8,250, 12, 7, 3,138, 34,131,186,225,107, 95,251, 10,
- 63,250,129,191,201, 31,252,193,239,243,158,247,188,167, 19,175,236,237,109,243,165,103,191,192,143,255,232,127,195,191,255,247,
-255, 39, 65,224,241,200, 35,215,248,234, 87,191,138,227, 72,140,102,171,210, 12,195,144,126,191,143, 31,134,204,231,115,254,228,
- 79,254,132,247,189,239,125,124,238,115,159,227,253,239,127, 63, 47,189,244, 18,119,239,222,229,210,165, 75, 40,106,198,195, 1,
-158,231,241,224,193, 17, 55,174,191,193, 59,222,249, 52,207, 62,251, 44,223,241,174,239, 66,249, 14,253, 65,136,165, 12, 10,219,
-166,172,114, 6,189, 30, 65,224, 65, 85,147, 87, 37, 69, 42,185,221, 24, 13,134,230,131, 7, 65, 64,232,249, 18, 65,171,191, 88,
- 74,163,122, 55, 83,244, 2,207,161, 70,233, 48, 28,173, 32,173,234,110, 60,239, 56, 14,243,197,137, 56, 18,244, 65,221,142,237,
- 55, 61,212,237,179, 33, 19, 20,217,233,119, 66,159,110, 92,118,122, 89,182,191, 71,150,101, 20,105,138, 95,185,221, 65,221,230,
- 72,183,158,213,178,172,206,236, 90,187,105,131,235,117, 32, 31,215,117, 49,181,235,161,155, 16,104,161, 9, 24,250, 82,117,207,
-112,204,109,219,214,151,126,211,137,179, 54, 51,225,219, 75,189, 77, 16,227, 63,147, 76, 39,157,168, 37,226,172,186,162,169,196,
-182,181,138,147,238, 98,108,139, 98,215,115,201,171,152,170, 16,241, 83,221, 64, 85, 87, 26,141,107,158, 65,234,182,144,162, 86,
-113,110,188, 73, 12,214, 49, 31, 92, 71,248, 5,166, 34,202, 50,226,188, 68, 57, 30, 94,207,161,174, 26,209, 53, 56, 30, 77,147,
- 81, 52, 6, 69, 99,160, 16, 75,162,132, 27,193, 42, 90,157, 41,106, 10,173,177,104, 59,245,150,254,102,234,139, 95, 68,164, 43,
-233,254,221, 0,215,245,191,133, 90, 86, 85, 18, 97,218,178,242, 55,247,228,237,251,182, 73, 69,108,159,139, 77, 7, 72,171,144,
-143,227,245, 25,223,114,251,123,116,145,196, 8,193,176,157,184,108, 62, 99,166,105,118,160, 32, 44, 83,131,132,224,248,104,206,
-241,209,140,225,112, 76, 94, 42,150,177, 92,138,195,233, 14, 89, 94, 74,194,150,235,201, 36,203,116, 4,142, 19,167,120,181,238,
-166,117, 6,185, 97,100, 12,123,226,239,182, 61,151, 59,119,238,112,237,145,183, 48, 28, 12,120,228,225,107, 92,191,121, 3,106,
-105, 74, 28,207,208,231, 93,137,105, 89, 24,134, 64,131,202, 26, 93,236,216,122,213,147,159,129,233,100,137,172, 47,171, 34,235,
-166, 31,151, 47, 95,102, 57, 59, 17,106,165, 35, 90,140,249,234, 4,215,245, 88,175,231, 40, 19,122,123,251, 66,184, 67, 38, 35,
- 89,150, 17,197,137,232, 54,148, 73,150,200, 74,201, 82,182, 46, 60,229,215,216,142, 71,158,131, 99,217, 58,243,124, 34, 19,165,
-173,137, 88,200,178,140,221,189, 41,203,249, 66, 11,148,253, 83, 53,186,101,225,104, 65, 98,155, 57,229,135, 79,184,195, 0, 0,
- 23,234, 73, 68, 65, 84,121,167, 68, 53,128,123, 7,247,217,221,222,225,177,199, 30, 99,111,119,155,197,201, 33, 43, 53,235,188,
-242,231,173,211,226, 70, 38, 78,156,129, 0,181,207, 13, 8, 0,199,245, 92, 60,203,196, 49, 45, 76, 75,220, 10,190,239,211,239,
-247, 59, 29,150,176, 25, 32, 47, 10,238,221,187,207,122, 45,223,183, 97,255,188, 52, 99, 85,205, 91,222,210,231,202, 67, 87,113,
-108,159, 47,125,245, 43,172,163,132,120,181,102, 56,180,187, 41,210,114,185,100, 60, 30,119,100,211,245, 58,230,249,231,159,167,
-170, 26, 92,215,164,215, 27, 48, 28, 79,240, 92,139,176,231,179,187, 51,161,170, 75,234, 82,154,140,157,157, 29, 12, 67,158,201,
-213,114, 65,230, 8,219,125,107,107,139,149, 70,248,110, 6,154,153,134,194, 54,173,238,153,143, 99,113,171, 88,150,169, 83, 22,
- 79,145,225,104,184,219,106, 25, 97,181, 35,173,245,122, 77, 20, 69,244,122, 61,126,238,231,126,142, 79,125,234, 83,252,196, 79,
-252, 4, 95,252,226, 23, 73,146,132,193, 64,170,251,143,124,228, 35,252,198,111,252, 6, 71, 71, 71,252,254,239,255,126, 87,161,
- 21, 69,193,116,107, 75, 70, 75, 73,194,133, 11, 23,186,170,205,178, 44,126,225, 23,126,129, 63,248,131, 63, 32, 73, 18,126,235,
-183,126,171, 59,156, 54, 89,210,109,133,222, 34, 15,231,243, 57,159,253,236,103,249,192, 7, 62,192,131, 7, 15,136,227,152,167,
-158,122,138, 15,125,232, 67,184,174,203, 79,254,228, 79,210, 52, 2,214,240,130,128, 82, 31,162, 31,249,200, 71,248,149,127,241,
-207,249,201, 15,253,247, 84, 69,201,103, 63,247, 25,158,127,238, 47, 58, 52, 43,192,229,203,151, 73,211,148,245, 98,129,239,185,
-156, 28, 30,243,211,255,227,223,231,211,159,250,119,124,248, 67,207,240,255,253,241,159, 98, 91,138,166, 42,120,248,234,195,252,
-194, 63,254, 40,255,242, 95,254, 47,252,183, 63,246,227, 64,205, 23,190,240, 5,110,190,113, 93, 95,150, 38,139,197,172,251, 18,
-252,218,175,253, 26, 31,248,192, 7,168,170,138,127,246,177,127,194,199, 62,246, 49,254,187,191,253,183, 88,175,215,124,240,131,
- 31,164, 23,120,172, 22,179,238, 75,122,114,114, 68,150, 37,252,189,191,247, 83,124,252,227, 31,231,153,191,243,183,249,194, 23,
-158,101,249,224,128,166, 42,101, 47,109,137,191,188,237,130, 74,125,248,231,105, 76, 85,228, 18, 65,137, 77,232,187, 88,253, 16,
-211, 80,148,185, 88,116,114,101,208, 84, 66,174,146,176,166, 6,163,169,193,148, 68, 38,148,209, 9,145, 42, 61,254,171,170,170,
-139, 40,180, 44, 11,195,178,207,116,169,157, 5,206, 48, 40,242,156, 68, 7, 61,152,161,169,249,244,218, 79,156,231,146,143,110,
- 55,152,150,131, 99,123, 29,126, 52,111,133, 79,181,129,101, 74,103, 80, 42, 81,174,103,113, 78,154,102,146, 50,181,129,193,173,
- 57, 77,234, 2, 8,122, 61,202,186, 38,213,151,199,116, 58,197,178, 44, 86,171, 53,171,213,138,173,237,173,110,236,222,118,129,
-242,190, 91,128,162,168, 50, 50, 29, 50, 82,111,136, 8,171,170, 33,207, 75, 57,208, 55, 34, 65, 13,195,236, 68, 59, 34,202,147,
- 64,145,208, 10,161,145,206,177,170, 27,138,198,192,178,108, 25,221,246,132,247, 96,216, 46,141, 25, 81, 86,167, 66, 60,154, 74,
-168,104, 40, 74, 33,228, 80,214,154,240,135,146,212,193,178,198,168, 26, 77, 79,131,188,172, 73, 83, 25,113, 27,150, 75, 81,156,
- 6, 49, 97,172,201, 11, 61, 57, 41, 96,181,150,238, 78,169,140, 36,173,206,196,123,230,185,240,215,219,207,115,243,146, 85,234,
-212,193,144, 87,149, 20,117,160, 49,192, 18, 77,105, 53, 53,119,238,220, 17, 85,252,198,136, 92, 14, 96,153,240,100, 27,246,180,
-174,123, 86, 74,175, 51,106,198,158,219, 17,245, 54, 63,215,118,194,215, 54, 27,158,231,117,108,140,205, 52, 64, 17,221,169, 83,
-110,128, 82, 50, 57,168,229,249,110, 45,159, 77, 93,234,204,116,113, 62,220,184,121,151,199, 31,123,132,123, 15, 22, 84, 52,216,
- 40,146,162,226,240,232,136,178,168, 53, 63, 35, 36, 78,115,114,125, 40, 43,211,213, 60,251, 16, 67, 89, 52, 26,123, 90,150, 37,
- 94, 24,116, 78,156,178, 44,217,218,154,240,218, 27,215,233,133,125,237, 23,151,181, 92,221, 24, 34,238, 44,100, 98,147, 68,107,
- 93,120,211,173, 85, 54, 5,129, 6,218,206, 71, 45, 33, 45,165, 8,226,168, 4,173, 29,250, 33,219,219,219,124,253,207,191,132,
- 97,212,236, 76,251,196,177,124, 22, 59, 59,123,156, 28,207, 8, 92,135,166, 42,137,150, 11,166, 59,219, 76, 38, 19,142, 78, 14,
-101,252,191,225,172, 57,117,209, 20,221,165,222,212, 98, 7, 59, 60,184, 39, 93,103,146,240,194, 11, 47, 48, 30,142,206, 92,178,
-202,172,207, 88, 88,197, 53, 42,175,185, 21,238,218,182, 77,180, 90,114,116,114, 44,132,192, 34, 99,107,123,155,237,237, 41, 97,
- 24,118, 49,175,237,179, 28,199, 49,215,175, 95,239, 26,199, 86,196,219, 78, 63, 77,211,164,110,228,153,178, 29,125, 25, 98, 96,
-219, 38,129,235, 9,127,101, 60,102,157,196, 44,151,107,202,170, 97, 52, 26, 19,199, 49, 47,190,248, 34,127,242, 39,215, 73,226,
- 53, 77, 89,128, 41, 97, 74,187, 59,231,136,210,132,201,116, 27,219,117,200,243, 84,160, 99,113,194,213,171, 87,241,125,159,233,
-116, 10,149, 88,165,253,112,196,173,155,119,168,178, 10,211, 50,184,125,255,128,225, 32, 32, 47, 51,178,178, 96,208,243, 24, 14,
-250,172, 15,143,105, 26,131,209,104, 64, 93,151,242,189,113, 2,230, 39, 51, 30,127,226, 81,190,244,149, 63,151, 60, 6,195,192,
-182, 20,189, 32, 20,103, 75, 24,146,233,125,249,106,181,194,119, 93, 64, 38,161,150,107,115,124, 50,199, 48, 21,187,225, 16,211,
- 20,167,137,241,246,167,159,108, 22,139, 69,167, 58,110, 19,116,218, 47,234,169,117, 8,142,143,143,217,217,217,233,184,228,251,
-251,251,172, 87,113,247, 69, 60, 58, 62, 98,119,103, 23, 52, 42,178,173,214, 91, 31,167,160, 80,227,206,178,182,249, 69,108, 59,
-163,123,247,238,117, 31,240,209,209, 17,163,209,168,155, 20,248,190,143,167, 49,140,113, 28, 51, 30,143, 89, 45,196,186,182, 88,
- 69, 93,215, 86, 20, 5,142, 39, 31,124, 18,201,235, 59,183,183,195, 98, 49, 35, 12,116,192,132,109,118, 95,200, 40,138,240,189,
-144, 40, 94,209, 15,123,248,161, 71,150,228,164,169,188, 86,223,119,181, 66,217, 36,244, 67,202,186,228,238,237,187,216,142, 67,
- 93, 67,111,208,151, 61,151, 46,106, 90,178, 93,203,180,223,222,222, 38,138, 34,170,170, 98, 50,153, 72, 24,133, 45,170,214, 52,
- 21,171, 80,154,202, 94, 85, 48,185, 9,127,237,175,125, 47, 63,248,131,127,157, 15,127,248,195,184,142,116, 66,138,154,192,243,
- 81, 10,138, 44,147,136, 62,203, 38, 78,101, 28,216,142,156, 7,131, 94,231,149,110, 53, 12,169,238, 88,218, 29,113, 93, 22,148,
-117, 69,148,136, 47,182, 45,178, 90, 44,164, 97, 72,229, 93, 86, 98, 55,164,170,181,136,198, 58, 51,126,246, 92,193,109,174, 86,
- 43,193, 46,234,189,106, 85, 73, 80, 76,187,150, 40, 52, 48, 65, 25,167,194,185, 52,139, 9, 61,175,179, 3,137,213,166,209,157,
-186,236,223, 13,204,142, 93, 80,150, 37,121, 89,117,161, 31, 89,150,201,207,174,171,250,166,105,232,247,135, 58,244, 67,124,194,
- 23, 46, 94,212,118,150, 82, 51,200, 35, 29, 39, 42,239, 69, 89, 23,221, 33,210,250,188,219,160, 25,177,114,101,103,114,233, 79,
-147,246,132, 93, 95, 22,149,206,122,118,241,108, 27,215,177,112,117,232, 14,181,228,214,247,122, 61, 57,208,146,140, 40, 78, 37,
- 90, 83, 35,127,107, 13, 7, 10, 60,159,197,106, 41, 93, 84, 33, 17,152, 65, 47,196, 82, 38, 81, 18,163, 48,112,125, 15,163,129,
-162, 42, 41,178,156, 36,203,197, 82,103,152,221,115,223,118, 68,237,132,203,182,237,174, 91,222,236,168,187, 36,191, 74,176,179,
-155, 20, 55, 41,216, 78,147,209,218,177,106,158,231,152,202,238,254, 89,206,140, 81, 55,170,109,223, 67,185,156, 74,157, 36,118,
- 54, 29,177, 61,220, 91,151,130,229, 90, 28, 30, 30,118,136,229,205, 46,117,181, 90,225, 56, 86,167, 45,104,119,233,155,160,160,
-147,249, 76, 64, 28,166,194,243, 36,115, 91, 86, 64, 22,166,178, 49,117,162,162, 66,198,173, 14, 13,174, 5,131,208,229,187,255,
-202,127,193,127,248,252,127,100, 56, 28,234,226,250,164,155,130,164,105, 42,190,123, 75,126, 63,199,178,233, 13,250,132, 65,191,
-195, 23, 55,181,100,156,143, 7, 67,252, 94, 40, 99,101, 3,129,219, 52, 13, 47,188,248, 34,175,189,113, 3,219,145, 53, 78,154,
-215,164, 89, 46,190,241, 66,206,213, 92,175, 15,218,137, 71,154,103,103,198,214,165, 78,195, 76,163, 53,179,249, 49,161,231, 49,
- 30,143, 89,206, 78,184,124,249, 42,111,123,226,109, 92,184,112,158,175,126,249,207, 72,147, 53,174,163,176, 84,195, 91,159,120,
- 66,156, 67, 39,115, 26, 67,241,205,151, 95,231,149,215, 95,103, 48, 26, 81, 98,240,210, 43,223,164, 49,192, 82,118, 71,186,147,
-192, 45,177, 94,245,195, 62,150,101, 50, 25,143,137,227, 53,150,130,203,151, 47,176,158, 47, 56, 57, 57, 98,208, 15,241, 60, 17,
-255, 73, 90,154,167, 63, 63,100,199,141,234,158,167,233,116,218, 9,157,155, 74,166,170,158,227,114,233,242, 5,154, 34,229,225,
-135, 46,179,191,191,223,157,153,235,245,186,155, 46,204,102,179,174,249,235,206, 0,253, 93,175,170, 74,236,149, 74, 59, 70,138,
-130, 44,145,230, 66, 53,114, 62, 45,151, 75,173,209, 40, 89,172, 87,154,112, 40,228, 83, 83, 25, 28, 30, 30,144, 39, 49,105, 81,
-146,101, 57,189,254,128,172, 44,217,217,222,163, 49,208, 86,193, 1,150,229,224,248, 30,163,209, 64, 68,162,174, 71,208, 27,114,
-116,188,226,232,232, 24,215,117, 24, 13,251,140,135, 33,189,208,163,200, 99,150,243, 99,222,241,244, 83,216,166,120,234, 93,219,
-225,224,224, 30,190,235,114,112,112,143,215, 95,125,141,135, 31,126,152,171, 15, 95,227, 63,254,191,127, 66, 89, 43,210,178, 33,
-206, 75,210, 2,178,170, 70,153, 46,115, 29,225,123,116,116,196,120, 40,182,213,186,146,105, 99, 26,197,108,109,109,113,225,194,
- 5,193,146, 15, 6, 88,131,176,135,103, 59,204,231,115,178, 88, 30,208, 54,242,180,165,104,141,250, 3,214,235, 53, 15, 93,190,
-194,122, 45,204,231,157,233, 22,165,222,107,186,174,126, 16,178,126, 87,153,141,199,227,174,210,239,245,122, 93,182,112,187,187,
-111, 47,133, 36, 73, 58,174,180,231,201,222,163, 61,124,219,127,223,118,192, 73,146,176, 92, 46,187, 60,221,249,124,142,239,122,
-204,231, 75,108,215,101,127,127,159,227,217, 28,219,245,104, 26,136,227, 20,101,202,225, 49, 91, 46, 24, 15,135, 18,191,217,239,
- 19, 69, 43, 6,131,129, 64, 66,108, 33, 67, 93,186,112,158,251,119,239, 97,154, 13, 91,147, 45, 44,123,170, 11, 9,249,249,146,
- 36,194, 50, 76, 28,199,228,194,254,190,164, 76,149,130,186,189,116, 65,224, 51, 77, 37, 94, 87,203, 86,236,236,237,202, 88, 41,
- 12,216,154,140, 37,175, 58,207, 80, 52,216,150, 34,207,165,144, 90, 44,231,236,237,237,177,179,179,195, 71,255,209, 63,230,226,
-165, 11, 28,220, 59,224, 99, 31,251,167,216,150,137,109, 26, 27, 7,113, 73, 89,149,212, 85, 41,227, 38,215,166, 44, 5, 65,154,
- 23,226,185,246, 61, 11,203,247,113, 92,139,170,200, 64,143, 39,139,162,160,214,162, 58, 73,158, 43,186, 29, 95, 23,185,106, 53,
- 26, 6, 33, 7,177,237,200, 37, 87,164, 89, 39, 28, 19, 77,131,234,186,179,246, 48,111, 43,233, 60,203, 58,197,115,171,127, 48,
- 49,168,202,138,180,206,207,248,213, 91,241, 85, 86, 22, 27,105,116, 6,113,148,106, 81,149,161,169, 88, 13, 73,150,119,211,150,
- 44, 21, 63,112,109,212, 26, 6,115,250,108,181, 62,117,215,117, 57,214,145,163,237,101, 32,172,113,121, 47, 90,239, 53, 40,221,
- 13, 6,152,182,221,189, 31, 0, 89, 81,225,251, 33,166,109,117, 23,153, 88,231,160,200,115,170,178, 38,203, 4, 83, 25, 6, 30,
-195,225, 64, 50,195,115, 57, 96,162, 40,193,114, 78,180, 37,166,164, 40, 74, 26, 67,188,246,150,130,162,200, 41,171, 28,207,113,
-137,146,152,192,243,201,138, 28,211, 80,164,101,169,255,123,129,194,160,104,100,197, 98,152, 10, 12, 37,221,162, 97, 96,155,182,
- 22, 23,173,186,177,127,187,135,110,167,101, 98,235, 75,206, 4,167, 24,134, 65,165,193, 63,242,157,114,112, 28,227, 12,241,111,
- 52,156,116,197,119, 27, 64,212, 38,150,181,159,197,166,229,175, 5, 36,181,135,111, 95,163, 87,219,162,106, 51, 78,181,170, 42,
- 84,170,116, 40,148,219,105, 85,218,226, 83,138, 72,179,187,236, 91,184, 82,123,233,183,162, 79, 41,254, 78,119,174, 70, 45, 62,
-108, 3,147,120,181,194,192,196,177, 77,234,162,132,186,192, 81, 13,243,147,154, 47,127,245, 57,214,235,152,249, 98,133, 99,235,
-201,128, 46, 94,179, 52,101, 94,151, 12,250, 35,121,255,170,146,197,172,160,204, 11,134,195,161, 4,104, 88, 22,134, 49,232, 58,
- 82,128, 94, 47,160, 40, 50,194,176,207,213,171, 87,121,249,181,215, 9, 29, 7,211,180,137,146,181, 78,159, 20,138, 97, 86, 86,
- 36, 73,122, 70,136, 89,149, 13, 85, 41,151,128,169,108,156, 64, 59, 83, 18, 33,106, 54, 58,219, 94,254,204, 21, 89,150,114,247,
-238, 93, 30,122,232, 33,214,171, 57,113,180, 32,137, 86,220,185,115,167,179,160,174,162, 24,215,181,233, 5, 66, 89,155,238,237,
-224,251,210, 9,174, 86,145,254,115, 69,119,208,174, 67,155,166,198,178,220,174, 96,222,187,112, 78,242, 44,234,154, 75,151, 46,
-145,196,107,238,222,189,199,112, 56,148,162, 73,199,163,214,117,173,167, 36, 90,119,227,184, 52,134,234, 10, 68,163,105, 48, 12,
-197,104, 50,198,178, 44,210,180,226,100,182,224,229, 87, 94,227,181,215, 94, 67, 25,162,153,113, 76,139,229,114,137, 82,116,218,
-130, 94,175, 71,197,233, 88, 94, 48,225, 50,237, 52,244,100,160, 46,228,249,105, 51,222, 93,215,237, 38,108,105, 38,197, 65,221,
- 52,140,134,114, 57,215,117, 13,166,133,111, 9,241,206, 80, 22,235, 36,214, 73,113,170,115, 94, 93,188,120,145, 40,138, 88, 46,
-215,154,154, 40,107,149,162,177, 56, 58,153,177, 88,173,217,217,217, 1,101,241,198,141, 91,216,150,226,202,229,139, 84, 13,172,
-151, 43, 46,236,238, 50, 30, 73,195,102,155, 6, 77, 61,229,141,235,175, 81,148, 25,235,245,146,157,157,109, 30, 28,158, 80,196,
- 9,142,237,146,229,154,102, 87, 53,120,142, 67,189,161,125,147,201,136, 34,205, 51,106, 67, 73, 65,162,207,107, 51, 74,176, 90,
-207,105, 43, 74, 91, 44, 22,132, 97,216,229,152,175,215,235, 46, 28,165, 13,183,111,211,120,242, 60, 63, 13, 50,208, 65, 15,237,
- 23,175, 61, 20, 55, 19,215,218,241, 91,171,236,109, 85,236, 45,201, 72,196, 69, 69, 39,252,104,247,182,237,110, 44,138,162, 78,
- 1,219,238,234,107,253,231,108,238, 48, 91,232, 74,235, 73,150,244,171,152,133,142,204, 20,255,251,152,163, 7,247, 25, 13,250,
-146,220,214, 11, 9, 3,143,183, 61,249, 4,119,238,220,193,118, 76, 70,163, 33,195,225, 80,167,142,193,149, 75,143,162,148,226,
-224,224, 30,227,203,151, 89,173, 86, 88,142, 8,160, 14, 14, 14, 24,143,199, 58,141,168,228,242,229,135, 58, 80, 75,219,201, 92,
-188,112, 65, 95, 98, 21, 77, 3,151, 46, 94,160,168, 74,252,192,235, 50,154,127,230, 35,255,115, 55, 6, 31,143,135,140, 6,189,
- 46, 98, 84,198,221, 13, 69, 81,163,244,100, 35,209, 62,223,142,244,102,158,198,170,214,117,205, 98,177, 56,195, 52,207,180,149,
- 69, 41,165,109, 90,226,245,109, 15,231,246,162,110, 59,180, 60,146, 67,167,189,212,219,209,185,101, 73,231, 26,111,132,145,180,
-251, 95, 33,238,213,221,254,117,147, 39,158, 87,167,133,129,231,121,100,113,220,169,201, 55,189,224,173,210,190,219,173,229, 69,
-167, 10,151,157,157, 28,236,131,241, 64,239,104, 79,223,163, 60,207,169,234,166,123,214,218,103,210, 52,205, 78, 80,179,185, 74,
-216,244,237,111,198,201,182,160, 27,217,217, 91, 27,113,181,242, 58,215,113, 66, 85,201,175,181,149, 73, 20,203,123,191,180, 45,
- 44, 67,117, 1, 30,178,167,173, 41,106, 97,247, 91,214,233,200, 48, 77,147,238,114, 44,138,130, 90,191,191, 85, 35,159, 73,156,
- 38,221,119,169, 73,155,110, 61,101,154, 38,101, 81,139, 13, 77,229, 24,117,195,122, 53, 39, 79, 11, 92,207,150,157, 99, 93, 98,
-212, 13,166,209,136, 0,199, 16,132,172, 50, 33, 12,250, 56,174,197,124,181, 60,141,178,212,211,136,182,227,111,191,239,109,226,
-225,230, 8,188,253,223, 90,166,120, 55,125,209,171,180, 77, 80, 81, 93,215, 29,107,190,165, 70,218,154, 4, 88, 33,249,228,173,
-163,228,238,221,187,186, 67,119, 58, 98,100, 75,130,236, 4, 97,154,150,216,142, 97,139, 60,165, 41, 69,247,208,148, 50, 29, 48,
- 91,188,170,237,144, 38,114, 9, 68, 81, 66,149, 39,248,174,195,168,231,115,255,224,144,237,237,109,190,249,205, 23,152,142, 39,
-140,134,125,238,220,188,165, 73,150,123, 4, 65, 64, 79,235,129,170,178, 38, 47, 11,130,192, 97,119,123,204,249,243, 23,233,247,
-251,164,121,217, 53, 50,182,109,243,244,211, 79,178, 88, 44, 88, 69,146,228,118,249,194, 69,102,139, 37, 81, 26,225,249, 62,150,
-237, 48, 95,172,136,179,188,123, 15, 90, 13,146,232, 10,242, 51,107, 72,223,243, 79,125,249,202,198, 84,114,193, 25,117,211,233,
- 88, 48,106,166,227, 61,162,245,146,199, 30,123,130,227,195, 3,190,254, 23,127,206,214,214, 22,147,201,132,147,147, 19, 2,207,
- 97, 48,236,113,114,251,142, 60, 3, 24, 84,205,233, 57,153, 35, 77, 92,156, 38,167,226, 57,163,102,185,156,179,179,179,197,241,
-241, 33, 97, 24,240,232,195,215, 56, 58,122, 32, 49,181,163, 17,247,238,221, 59, 21,190, 42, 40, 26, 57,219, 84,155, 77, 81,201,
-196,101,216, 23,119,199, 82, 79, 83,167,211, 41,119,110,221,198,117, 20,251,182,131, 82, 34,174,174,171,138,178,204,153,142,198,
-157, 14, 38, 73,146, 14, 21,155, 22,185,158,100,200,243,209, 24,116,100, 76,168, 81, 13,152,150,129,173, 53, 68,237,121,225,186,
- 22,150,105,224, 57, 46, 89,145, 51,234,247,136,162, 21,111,127,251,219,217,223,223,239,220, 39,203, 85, 68,154,166,204, 87, 43,
-110,222,188, 41, 81,196,149, 20,144,163,209,136, 63,255,250, 55,120,236,177,199,120,241,197, 23, 25, 12, 39,100, 89,193,197,203,
- 87,136,215, 43,188, 48,192, 48, 32, 43,100,146,100, 59, 30,199,179, 37,227,190,207,114,189,162,200, 51,158,120,236, 17,102, 39,
- 71,168,186,228,191,122,239,123,185,113,227, 6,139,249, 9,231,246,118,152, 47,150,157,158, 36, 74, 42,220, 32,224,240,120,134,
-227,184,172,215,194,108, 89, 47,151,157, 70,168, 13, 97,106,181, 11,134, 97, 48, 30, 12, 49,223,250,248,227, 31,173,170, 74, 7,
- 68,248, 93, 7,221, 90, 83,214,107, 9, 41,105,197, 47, 45, 95,185, 21,210, 88,142, 37,160,255,186,196, 80,114,216, 91,150,169,
-199,180, 6, 73, 18, 83, 86, 5,166,169,168,155,138,178, 44, 80,166,209,253,115, 89, 86,111,218, 89,202, 15,213, 90, 95,218, 63,
-171, 21,128,181,151, 67, 43,164, 49,148, 18,255,174,178,176, 44, 27,203,150, 24,214,214, 10,212,235,133,250, 82,209,216,192, 44,
-163,172, 74, 30, 28, 60,128,166,214,113,117, 22,231,247,247,168,203,146,217,201, 9,189, 48,196,119, 93,166,211, 17,166, 50, 48,
- 16, 74, 85, 28,173,160,105, 8, 67,159,166,170,177, 29,139, 44, 47, 69,240, 84,228, 68,209, 26, 71, 35, 30, 61,215,197,117,108,
- 38,147, 49,211,233,132,201,120,204,246,100,194,160,223,199,178, 12, 92,219, 33, 78, 19, 34, 61, 22,175,138, 28,219,146, 61,157,
-101,154, 2, 69, 41, 37,235,218,113, 44,242, 44,101, 48,232,163, 26,180,159, 84, 43,137, 45, 19,203, 84,212,117, 69,158,103,221,
- 62, 82, 53,208,232, 11,170, 69, 86, 54, 77,131, 50, 77, 12,165,186,100,180, 6, 3, 67, 9,251,189, 40,114, 10,221, 77,181,126,
- 97, 67,239,141, 13, 93, 33,183,171,146,178,148,139,209,243, 60,182,183,167,120,158,139,101,153, 56,142,123,122, 17,234, 41, 77,
- 43,128,179,109, 27,207,113,177, 76, 19,199,178,241, 92, 87,194, 63,234,154,241,120,140,227,184,132, 65,159, 40,138, 89, 69,107,
-108, 71,242,156, 13,101,146,196, 25,158,231, 99, 89, 54,101, 89,177,140,214, 4, 97,136,105, 90, 52,205, 70,152,129,237, 96,233,
-103, 70, 44, 45,161,196, 46, 46, 87,162, 96,118,156,174,187,144,113,126,137, 31, 4, 4, 97, 8,134,193,122, 29, 99, 89, 54, 75,
-205, 51,207,242,140, 52,203,136,163,132, 44,205, 72,139, 66,166, 16,121,155,109, 94,235,189,158,141,229, 88, 66,160,179,228, 61,
-206,138, 66, 14,254, 34,167,110, 26,104,164,216,181, 93,143,176,215,199, 82, 38,235,213, 74,246,215,202, 2, 12, 28,219,165, 40,
- 4,243,106, 91, 14, 73,156,202,123,167,163, 52, 7,253,161,116,119, 40, 70,163, 17,190,126,159, 29,219,102,208,239, 51, 26, 14,
- 41,242,156,209,104,168, 89,251, 6,253, 94, 72, 89, 20,120,174,131,231,185,148, 69,142,169, 20,121,150,107, 45, 65, 35,147, 58,
-173,174, 22,245,173,164,214,197,113,210, 41,147,219,203, 84,104,141, 83, 61, 18,245, 80, 58, 17,207,178,236,238,179,239,247,251,
-140, 70, 35,246,247,207,211,235,245,197,115,111,219,221, 42,165, 85, 94,215,212,221, 74,173,141, 62,238,245,122,204,102, 51, 81,
- 99,235, 41,217,166, 88,178, 69, 61,183,197, 99,154, 38, 52,117,205,100, 60,194,216, 64, 27, 27,202,196, 15, 66,234,186, 33, 8,
-251, 40,211, 36,207,210, 46,117,173,170, 10, 76,106, 6,131,128,107, 15, 93,197,115, 93,174, 61,124,149,239,248,182,119, 50, 30,
-246,120,226,209, 71, 56,191,191,199,227,143, 62,194,206,206, 54, 15, 95,189,130,231,184, 96,128, 99,219,114, 46,148, 37,179,249,
- 66, 43,183, 19, 94,126,249, 37, 22,139, 5,113,180, 38,138, 19,210, 52,227,232,248, 4,215,243,136,181,178,187,172, 16,198,119,
- 45,116, 73,233,140,101,215, 94,234,130,186,213, 14,152, 74, 82, 38,209,212,195,104,189, 34, 8, 3, 6,253, 62,121, 94,224,249,
- 46,211,201,132,197,108,198,122,189,226,228,228, 4,211, 80,152, 10, 78,142,142,216,158,110, 49, 24, 13, 89, 44,231,172,227, 24,
-215,113, 72,243,130,176,215,231,228,248,132,186,105, 40,139,211,102,200, 80, 45,134, 87, 44,138, 79,190,237,109,220,185,115, 27,
-131, 70, 8,159,119,239, 82, 20, 57, 65, 16, 74,242, 95,221, 80,150, 25, 24, 74, 79,106,164, 19, 87,166,197,116, 58, 37, 47, 10,
-137,165,157, 47,132,107,175, 12,118,247,246, 56,184,127,192,114,181,100, 58,157,178,187,187, 11, 13,164,105,194,241,209, 17,190,
-239,201,251, 76,195,214,116, 74, 47,244, 9,123, 1, 69, 33,197,186, 20,118, 10,199,177, 81,134, 60,251,134,209, 48, 26,141,232,
-247,122, 76, 39, 99,134,253, 1,231,207,239,113,254,252, 57,174, 94,185,204,213,203, 87,120,232,225,135,184,122,245, 42,215, 30,
-126, 8, 83, 25,184,142,203, 98,185,212,136, 92, 7,219,118, 52,219, 95,166,138,182,235, 80,228, 37, 69,153, 51, 28, 74,236,178,
-161,164,120, 93,175, 34,214, 81,196,104, 60,229,232,240, 80, 79,154,125,142, 78, 78,152, 78,166, 44,151, 11,124,223, 99,123,186,
- 37,152,240, 94,200,238,206, 54,243,217, 49,239,124,199,219,177, 76, 52,200,169, 97,190, 88,128,206, 76, 80,134, 73,156,164,146,
-224,135,129,235,248,160, 20,182,237,176, 94,173,177, 93,155, 52, 75, 41,235, 18,199,118, 80,134,169,197,140, 82, 28,175,162, 53,
- 86,146, 36,221,109,223,142,181,219, 74,189, 13, 81,105, 47,211,182, 3,223,236,170,138, 13,102,243,230, 88,109, 83,240,177, 25,
- 46,209, 22, 13,155,182,168, 86,188,211,218,161,218,221,230, 38,166,180, 13,118,104,199,168,237,101,223,142, 28,187,145,110, 85,
-119,104, 80,249,187,123,166, 19, 19,241,199,233,127,119, 28, 7, 83,129,231,185,250, 98,204, 69,177, 28,184, 29, 68,191, 44, 5,
-240, 34,118,130,146, 60,175, 59, 14,111, 86, 52,148, 85,125,198,135, 43, 41, 90, 97,151,252,212,239,247, 37, 13, 13,168,234, 2,
- 43,178,116,183, 8,179,227, 19, 28,207, 37,240,220,174, 90,119, 28,135,192,115,116,113,112, 90,205,139, 64, 70, 4, 26, 89, 38,
- 25,236, 74, 87,163,155, 54,162, 77,117,241,217,248, 72,117,102,244, 93,212, 21,142,237,209, 24, 27,182,162, 13,122, 88,251,255,
-175,235,154,102,131,186,118,154,103,221,208,239,247, 59,162, 95, 59, 22,219,252,143,211,242,200,181,127,190,237,118, 55, 85,232,
-237,142,172, 21,195,108,118,141,106, 35,161,237, 44,191,254,212, 94,150,231,249,198, 78,223,255, 22,235, 83,251,108,182, 74,238,
-246,239,121,158, 51, 24,141,186,247,189,125, 77,109,182,182,236,221, 77, 61, 33, 49, 59, 59,201,230,179,196, 70,154, 87, 89,152,
-216,174,137,231,135,244,130,176, 19,113,210, 40, 12, 12, 12, 69,199, 2, 23,193,152,140,212,106,141, 99,109,187,225,118,116,222,
-254,124,155, 83,133, 77,117,172, 82, 74, 38, 15,165, 80,181,138,118, 26,209, 52,178,182,177,244,247,165,170, 40,139,188,187, 24,
-154, 90, 64, 57, 40,131, 94,175, 7,166, 58, 19, 4,212, 90,126,154,166,161, 23, 14,186,239,229,104, 52,234, 58,237,241, 88,246,
-164,135,135,199,167,163,124,173,203,168,107,209, 83,136,239,217, 60, 19,196,209,238,204,219,207,222,176,140, 51,251,252, 78,249,
-171,133,114,237,243,208,126,191, 90,175,254, 38,221,175, 44, 75, 81, 63,155, 38,202,180,104,148, 8, 46, 45,203,162,169,234,206,
- 61,211,212, 37,182, 50,104,202, 76,222, 31, 27, 29,178,225, 17, 6, 30,139, 69, 70,153,165, 36, 73,196,201,225, 3,162,229,162,
-251, 30,221,189,127, 32,236, 4,221, 33, 94, 71,177, 88,173, 9,122,125,242,178,102,111,111, 79, 79, 47,211,110,130, 25, 4,158,
- 48, 12, 92,183, 11, 21,210, 90,195,141, 28,248, 54, 76, 72,117, 29,249,230,179,253,102,238,131,101, 89,255,127, 91,103,179,157,
- 32, 12, 5,225,175, 38, 68,177, 88, 17,142,237,170,135,247,127, 36, 31,160, 90,139, 96,143, 32,127, 17,232,226, 66,220,116,145,
-109, 54,201,220,147,204,220, 59,131,241,158, 82,133, 49, 6,165, 53,195,196,106,172,204,146,245,122, 69, 93, 44,169,172,224, 34,
-246, 99,194, 48,164,168,107,154,214, 82, 55, 45,227, 56, 61,206,251,222,101, 67,252,183,170,170, 20, 10,123,120,144,101, 25, 77,
-121, 39, 73, 62,217,237,118,220,239,133, 68,213, 90,137,199, 21,151,197, 5,208,187,243,158,177,245,180,183, 22, 6, 39, 8, 2,
-180, 86,156,142,103, 54,155, 13,106, 28, 72,146,132,143,253, 59, 81,188,157,100, 96, 69,240,234, 79,178, 89, 79,154,166,228,191,
- 55,183,151, 48,160,115,122, 27, 68, 81,132, 89, 72, 13, 25,122, 59,197, 88,139,220,243,130,114,211, 18,115, 28,247,219, 86, 62,
-172,199,243, 55,135,195,129, 60,207,185,100,153,243,221, 0, 80,158,176,116,151, 52,117,201,123,101, 89, 74,223,208, 8,182,105,
- 93,141,157,113,208, 62,236,196, 36,120,124,157,142, 20,215,140,234,118,197, 55,154,177,111, 73,211, 31,238, 69,201,163,107,165,
-223,170,105,208,222,146,178,105,169,235, 30,213, 88, 70, 43,247, 92,123, 62,102,161,196, 11,222,243, 80,147,149,181,214, 98,100,
-181,143, 67,162, 40,114, 35,230, 93,215,241, 7, 99,242,166,153,201,181,177, 94, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
-};
+137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0,
+ 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, 6, 0, 0, 0, 8, 90,206, 70, 0, 0, 0, 25,116, 69, 88,116, 83,111,
+102,116,119, 97,114,101, 0, 65,100,111, 98,101, 32, 73,109, 97,103,101, 82,101, 97,100,121,113,201,101, 60, 0, 3, 29,109, 73,
+ 68, 65, 84,120,218,236,189, 9,184,101,215, 85, 30,184,214, 62,247, 85,149, 74,150, 69,201,182, 36,207,182,108, 3, 14, 6,227,
+148, 12,105, 51,180, 2,229, 38, 76, 25, 32, 18, 31,233, 4, 58, 12, 82, 66,210, 29,147,175, 45, 41,157,116, 67,186, 25, 44,165,
+137, 51, 0,253, 89, 33, 77,103,160, 33,150, 29,135,208, 31, 9,113, 57, 56,216, 38, 9,184,130, 13, 4, 27, 27,201, 50, 6,100,
+ 89,182,202,146,165, 26,222,123,119,175, 62,195, 26,254,181,239,173,170, 87, 85,239,149, 84,230,108,125, 87, 85,245,222,189,231,
+158, 97,239,189,166,255,255, 23,139, 8,205, 99, 30,243,152,199, 60,230, 49,143,203,127,148,249, 22,204, 99, 30,243,152,199, 60,
+230, 49, 27,245,121,204, 99, 30,243,152,199, 60,230, 49, 27,245,121,204, 99, 30,243,152,199, 60,230, 49, 27,245,121,204, 99, 30,
+243,152,199, 60,230, 49, 27,245,121,204, 99, 30,243,152,199, 60,102,163, 62,143,121,204, 99, 30,243,152,199, 60,158,242, 99,113,
+166, 95, 48,243, 94,124,159, 29,116,127,255,122, 65, 41, 84,106,165,223,237,255,126, 66,127,183,107,252,186,153,170, 55,143,121,
+204, 99, 30,243,152,141,250,222,141,193,104,115, 41,124,195,223,248,230, 47,250,129,155,191,244,197, 95,181, 88,112,247,175,223,
+251,209,119,127,255,207,188,239,127,223,220,174,199,118,219,176,207, 99, 30,243,152,199, 60,230,241,135,105,240,153, 34,218, 61,
+136,212,135, 3,238,251, 43, 95,247,121,255,240, 71,191,245, 21,223, 45,199,159, 32,186,234,106,226,103, 93, 67,191,248,190,143,
+222,255,221, 63,246,174,191,113,223,131,159,121, 91,255,158,109, 11,182,231, 72,125, 30,243,152,199, 60,230, 49,143,157,143, 75,
+ 89, 83, 31,140,250,254, 43,182,158,184,138, 30,124,128, 78, 62,248, 49, 58,241, 59, 31,160, 19, 31,250, 48,253,241, 47,120,222,
+ 13,191,244,195,127,234,159,124,253,171,159,255,183,250,247, 28, 82,131,206,243,227,153,199, 60,230, 49,143,121,204,227,169,105,
+212, 71,195,254,198,119,252,222, 79,252,216,175,126,242,125, 7, 15, 29,160, 69,199, 84, 31,126,144, 78,124,240,191,210,179,175,
+216, 56,240,175,255,215,111,248,223,254,230,183,124,241, 63, 98,166,151,205,134,125, 30,243,152,199, 60,230, 49,143,243, 52,178,
+151, 56,253,126,160,127,125, 78,255,250,130,191,244,229,215,190,238, 71,190,238,121, 95,191,127,155,232,228,233, 45, 42,251,123,
+ 35,255,194,151,210,190,107,159, 69,111,123,247, 7,127,227,123,126,252, 93,119,124,252,248,201,127,215,191,183,210, 5,164,226,
+231,244,251, 60,230, 49,143,121,204, 99, 54,234,123,103,212,209,176, 95,221,191,158,247,229, 47,189,234,219,255,249,183,222,240,
+ 93, 47,188, 98,113,224,196,137, 45,162,174,163,242,156, 23,209,129,231, 63,159,238,251,131, 79, 61,118,219,143,190,243,135,223,
+241,190,223,255,241,254,189,159, 49, 91,189, 27, 70,125,143,174,109,248,206,195, 52,149, 15,134,113,127,255, 61,247,127, 54, 79,
+158, 63,108,215, 59, 15,120,246,119,223,148,159,253,237,239,188,255,114,254,158,167,248, 58,155, 39,220, 60,158,178, 70,221,198,
+144,246,127,122,255,186,238,250,167, 47,254,228,191,248,246,151,252,245, 47,191,254,202,235, 79,157, 92,142,129, 57, 95,247, 60,
+186,226, 5, 47,166, 77,169,244, 63,255,228,123,254,233, 63,252,217,223, 24,106,237, 31,163,243, 64,199,159, 99, 33,220,160,175,
+157,140,227,253,189, 56,182,195,239,124,123,255,199, 17,253,231,157,253,231,238,250, 44,223,108, 62, 43,174, 87,157,147, 35,106,
+ 60, 14,195,175,134,231, 62, 24,145,123,251,107, 59,190, 11,223,211, 30,159,118,123, 14, 94,132,193, 28,175,183, 55,154,199,119,
+248,217,252,236,111,127,231,158, 60,251, 75,245, 61,151,208, 17, 58,251, 60, 91,115,255,103,163, 62,143,243, 25, 23, 74,105, 43,
+ 52,165,197,175,122,198,211, 54,190,240, 25, 87, 46,158, 81, 37,188, 0,214,255,245, 27, 17,139,253,132,237,231,254,219,225,187,
+ 15,110, 45,229,228,247,254,252, 39,254,237,223,251,211,207,255,211,175,185,246,202,207,217,220,234, 63,113,252, 83,116,234,224,
+211,104,227, 25,215,209, 63,184,237,166,111, 59,252,210,235, 62,239,117,111,250,165,215,127,250,241,205,119,211,238,208,222,110,
+238, 95,111, 56, 79, 79,249,222,254,117,180,191,164,123,230,105,243, 89,147,101,184, 89, 95,103,114,240,204,152,188,169,127,255,
+ 61,234,184, 92,140,113, 31,190,243,237, 23,240,185,163,253,235,181,187,108, 96, 6,195,242,222,230,199,131,193,188,115,158, 29,
+187,110,200,119, 62,207,238,190,233, 30,117, 94,142,207,119,111, 30,151,202,168,143,124,243, 43,247,119,135,127,224,107, 95,248,
+ 67,223,250,202,107,111,186,250,138,141,125,149,203,100,176, 75,153, 94,253,223,121,209,165,127, 15,127,114,215,197,191,121,250,
+ 93, 31,155,203,150,112,221, 94, 44,168,192,113,182,151, 91, 84, 79, 50,125,251,107, 95,241,165,175,122,233,179,222,250,157,111,
+ 60,250,125,239,253,208,195, 63,217,127,255,105,186,244,124,246,113, 97,246,155,251,240,231, 45,187, 17,185,205,227, 73, 29,239,
+ 61,207,247,223, 58,108,190,253,243,191,101, 47,162,230, 39, 97,220,124,134,107,156,141,250, 83, 97,158,221,125,211, 45,189, 97,
+ 63, 54,223,190,121, 92,170, 72,253, 89,119,127,227,139,223,248, 61,175,121,238, 87,108,158,168, 36,149,169, 43, 60, 5,240,194,
+211,171,255, 59, 87,158, 76,239,240, 26,126, 63,196,246,181,255, 71,167,233,253, 50,253,174,235,255,177, 40,220,121,154,137,237,
+115, 66,181,255,251,233, 19,155,244, 69, 47,188,246, 89,111,255,161,111,250,209,239,249,241, 95,124,217, 79,255,251, 15,253,112,
+255,219,135,105,247,196,106,142,158,229,119, 71,214,252,251,237,253,185,190,118, 54,236,159, 53,227,152,102, 98,142,245,207,244,
+168, 70,242,135,244, 89,223, 10,115, 96,136,180,222,220,255,238,198, 93,122,246, 67, 84,182,147, 26,241, 94,204,179, 91,215,252,
+236, 80,111, 76,110,238,141,201,189,243,148,216,227,121,118,251, 59,143, 66,198,100,253, 60,187,251,166, 27,231,136,125, 30,151,
+ 36, 82,223,191, 81,110,248,134,151, 31,122,181, 60,177, 69, 91,167,250,160,185,214,201, 72,123,102,221,226,121, 14,187,219, 21,
+ 42,207,184, 86,141,123, 29,131,116,170,154,197, 31, 63,167, 22,190,212,201,240, 15,209,252, 80, 98,239,166, 67,108,158,222,162,
+171,247,237, 43,255,239,237, 95,247,189,175,254,188,235,191,240,111,252,196,123,110, 63,189,181,124,223,110, 24,246,254,220,207,
+154,218,212,232,252, 13, 20,233,179,195,186, 8,239,154,167,208,101, 61, 6,163,122,207,186,200, 91,141,246,176, 1,223,219, 63,
+255, 55,129, 17,188, 97, 23,159,253,189,230, 68, 92,202,161, 41,225,195,141, 83,123, 4, 34,248,217,168,239,197, 60, 91, 19,121,
+171,209,158,230,217,221, 55,237,213, 60,155,199, 31,162,113, 33, 60,245,110,115,171,126,234,103,126,253,225,255,204,229, 52, 93,
+185,111, 73, 87, 94, 65,116,240,128,232,171,198,223,247, 87, 58, 80, 54,123,227,188,213,123, 2, 7, 39, 35, 95,235,248,202,224,
+143,254, 61,245, 84,255, 58,217,239, 56,253,159, 67,118,125,248,183,108,234,251,165,127,127,165,173,101,165,237,211, 75,250,222,
+111,126,245,145,183,223,253,205,255,234, 69,215, 61,253,155,212,236,239, 41,223,190,223,120,135, 69,247,218, 38, 98,186,121,158,
+ 62,151,245, 24, 50, 45,183,237, 36,149, 62,188,175,137,168,239,184,204,175,253,230, 38,122, 68,156,200,205, 26, 61,206, 99,183,
+230,217,237,239,188,109, 39,169,244,225,125,159,101,243,108, 30,151, 73,164, 62,132,197,159,186,227,103, 31,248,190,159,255,205,
+ 79,126,211,203,175,191,226,133, 67, 34,189, 14, 86,119,154,154,189, 13,158, 76,246,137,205, 90, 94,245,130,171,254,200,119,127,
+229, 75,111, 56,176, 56, 80,234, 96,160,135,154,250, 16, 91, 15,134,125,243,113,226,142,169, 60,255,149, 84,158,245, 82,226,167,
+ 95, 79,124,224,233,212, 91,110,170, 79, 60, 76,242,153, 7,169, 62,252,161,254,223,189,177,231, 43,250,239, 93,210,178, 63,112,
+125,124,147,190,226, 21, 47,120,193, 47,220,253,205,255,248, 79,220,249, 47,187,143, 60,248,232, 91, 41,192,123,123,101,216,239,
+239,175,234, 94,240,164, 15,239,198,113,215, 32,162,143,237, 18,210, 26, 17,254, 23, 68, 55,219,141, 99, 92,138,235,109,206,115,
+ 71,199,187,128, 8,249, 30, 10,112,229,161, 1,104,119, 25,215,214, 49,245, 62, 68,144, 67,148,120, 63,220,195, 61,139, 16, 27,
+196,253,177,139, 77, 47,247,199,203,115,244, 2, 40,111, 23,195, 2,216,129,161,190,184,121, 54,157,219, 92, 91,159,199,158, 26,
+245, 33, 41,254, 68,255,250,192,127,184,239,241, 55,246,175, 43, 52, 90,110,199, 51,190,246,139,174,253,206,111,186,241,197,207,
+ 62, 88,246,149,237, 49,165,222, 91,243, 83,167, 72, 78,247, 31, 95, 62, 65,221,231,126, 5, 45,110,252,115,212,189,248,143,157,
+ 49,133, 32,143, 60, 64,219,247,189,131,150, 31,125, 79,239, 0,236, 27,235,236, 67,201,126,243,196, 38,125,238,115,158,113,245,
+191,250,219,127,234,199,190,250,245,111,126,228,147,143,158,250,247,180,247, 13, 97,118,133, 35,171,134,237, 86,141,152, 14,175,
+249,253,253, 20,169,225,227,103, 56,198, 27,224,179, 67, 26,247, 30, 56,238,173,212, 32,109,245,152,119,237, 4,189,223,191,247,
+ 86,141, 18,110, 56,223,243,218,139,235, 61,203,181,222,161,199,197, 13,121,215,145,226, 16,209,226,184, 44,163,217,161,102,222,
+156,251,189,240,231, 29, 23,107,212,251,227,231,103,117,251, 59,239, 81,195,123,135, 62,255, 67,205,251,143,142,243,242, 60,140,
+159,102, 18,214,207,243,201, 57, 25,142,119,207, 89, 62,123, 68, 95,135,207,228,156,235,113, 44,109,126, 41,235,218,159, 21,243,
+108, 30, 79,222,184,144,180,245, 16, 13, 15, 57,242, 97,162, 63, 68, 19,127,252,163,253,235,119,245,245, 81,102,186,242,238,155,
+ 63,247,251,127,254,182, 47,254, 11, 47, 60,184,239,202,237,229,146,228,212, 19, 84, 31,249, 4,213,227, 31,239, 35,244,199,104,
+223,215,220, 78,251,111,254, 7,107, 13,122,242,116,175,121, 17,109,188,250, 59,105,227, 75,255,242,104,208,137,151,147,221, 30,
+ 13,251, 22,125,209,203,158,253,204, 55,254,229,155,238,238,127,248, 2,218,123, 89, 89, 92, 96, 23,180,208,123, 99, 52,108, 38,
+247,169, 55,126,166,104,255, 6,253,253,123,149,122,181,110, 28,134,205,233,144,190,239,237,148,107,255,237, 49,223,164,245,225,
+ 51, 26,223,254,245,230,225,125,103, 57,198,112,252,183,171, 81,189, 84,215,187,238, 90,239, 83, 67, 49,111,122,231, 55, 48,245,
+142,188,104, 52,130, 55,104,132,120, 33, 35, 63,171,233, 56,239, 93,227,124,217,152,128,167,119,223,180,163, 84,179, 30,239,220,
+243,124,170, 79,159, 41, 75,241,102,253,243,108,215,104,115,242,190,139,184, 23,243,152,199,101, 17,169,147, 70,195, 91,250, 34,
+ 48,166,221, 11,159,121,224, 27,223,244,173,159,127,215,215,124,238, 51, 95,118,250,100,165,229,178,127,203,233,147, 68,219, 91,
+131,212, 13,241, 6,209,254, 63,243,195,212,189,226,235,253, 96,143,157, 60, 77,191,240,190, 7,232, 23,222,255, 0, 61,242,248,
+ 73,218,232,152, 94,254,156,107,232, 79,222,248, 82,250,163, 47,121,246,116,224,231,191,154,120,223, 85,180,245,238, 31, 33,218,
+183,152, 78,161,143,252,183, 31, 63, 77,127,254,171, 95,241,170,127,254,142, 15,126,231, 47,252,234, 3, 63, 72,123, 68,119, 83,
+ 35,118,115, 19, 17,158,239, 49,110,214, 13,165,245,204,143,130,147,128,209,236, 13, 20, 72,251, 99,231,112, 54,222, 12,155,220,
+189,224,241, 31,110,206,251,214, 33, 50, 62,131, 80,204, 27,104, 21, 43,128,199,186, 25,162,155, 55, 63, 73,215,123, 72, 55,245,
+ 67,224, 92, 29,131,207,239,213, 56,114,142,136,234, 98,230,213,174,151, 95,206, 96, 16,111,104,141,186, 59,207,183,191,243,254,
+254,247,199,224, 92, 6,163,119,219, 46, 56,193,248,172,214,205, 37,159,123,253,247, 31, 63, 83,132,125, 65,243,188,143,182,207,
+ 33, 86,115,191,190,142, 54,198,252, 8,124,199, 33,117, 58,110,188, 68,106,118,123, 50,207,230, 49, 27,245,243, 25,150,242,190,
+250,107, 95,113,205,247,222,115,203,231,221,254,188,167, 93,113,197,201, 39,250,232,124,217,219,215,173,211,250, 77, 29,241,246,
+ 19,180,241,101,223,149, 12,250,127,250,240,131,244,250,159,122, 23,221,255,201,207,208,129,253, 27,180,177, 40, 84,250,163,189,
+255, 99,143,208, 91,254,227, 7,233, 27,111,124, 9,253,175, 55,127, 5, 29,236,127, 87,174,251,124, 90,188,226, 22,218,254,181,
+159, 36,186,234,186,241,107,199, 34,186, 48,253,237,111,123,205,119,253,187,247, 62,240,150, 62,152,255, 77,154, 74, 4,187,109,
+208,219,232,245,158,243, 60,198, 13,122, 12,220, 80,110, 91, 83,219,189, 75,163,219, 55,235,134, 98,223,125,227, 89, 14,127, 7,
+108,114,183,181, 70, 65,191,251,205,176,137,222, 49,136,169,224,251, 52,229,126,107,179,153,220,210,212,209,241,220,142, 60, 73,
+215,123, 7, 28,239, 78, 5, 49,182,207,106,175, 35,220,221, 50,188,111, 94, 23,189,106, 57, 98,184,174,123,118, 89,122, 23,175,
+225,248, 26,234,218,189, 48, 71,110,222, 5,163,126, 71,154, 75,217, 40,222,213, 27,202, 35,205, 61, 24, 34,236,163,103, 49,158,
+121,158, 55,105,113,117, 90,242, 60,191,251,166,117,233,243,187, 52, 75,113,236, 44, 14,208,173,234,228,226,156,124,237, 37,216,
+147,243, 60,235,207, 93, 94, 63, 27,170,121,236,124, 92, 44,106,220, 12,250,139, 95,247, 85,207,253,177,183,125,251,203,191,239,
+217,251,247, 93,113,226,244, 22,201,246,137, 17,240, 54,214,209, 59, 30,237, 44, 63,243,249,180,248,146,111,243, 15,127,248,227,
+199,233,219,126,236, 23,232, 55, 30,124,140,100,223, 1,218, 26,106,230, 27,251,105,223, 21, 7,232,202,167, 93, 73, 7,174,188,
+146,222,250,159,127,135,126,232,173,239,241,207,116, 47,253,227,196, 7,251,232,125,121, 98,250,246,254, 10,182, 55,183,232, 85,
+ 47,185,246,250, 47,121,249,245, 95, 67, 78,130, 59, 47,131,123,199, 89, 94, 67,164,241, 72,179,216,110,187, 0,160,213,155,154,
+232,242,198, 51, 29, 67,127,142,104,251,195,106,116,207, 54, 6,181,187,181,162, 56,106, 24,238,108, 34,158, 35,103,216, 48,205,
+ 96,190,118,157, 65,129,115,123, 50,175,247,126, 61,222,189,107,142,181,235, 81,238, 48, 15, 46,198,161, 59, 71,228,185,110, 88,
+ 13,250, 62,253,238,221, 26,183,158,227, 26,240,103,135,212,176, 93,236,152,230,210, 26, 67,173,117,244,215,158,101, 30,174,159,
+231,183,191,243,150,117,117,110,253,142,179,206,243, 33,114,239, 95,119,158, 11,141,174, 25,131, 91, 48,130, 86,167, 97,207,134,
+150, 32,246, 98,158,205, 99, 54,234, 59, 54,232,124,205,149,139, 35, 63,243, 63,124,222,219,222,248, 13, 47,250,239,135,100,252,
+233,186, 53,209,209,134,218,247, 70,127,248, 5,143, 47,161, 77,234, 62,247, 43,137,159,246, 76, 63,192,157, 63,245, 30,250,240,
+239, 61, 74,143,110, 51, 61,248,248, 54,125,236,209, 77,250,157, 79,158,236,163,246,147,116,252, 84, 31,233, 47, 22,116,245,213,
+ 79,163,127,245, 43, 31,166,163,239,255,136, 90,245, 5,117, 55,124, 37,201, 99, 15,143,220,247, 33,165, 63,104,220,236,187, 98,
+ 31,125,203, 77,159, 55, 44,224,167,211,249,215,214,223,112,150,215,145,102,145,189,246,124,165, 98, 65, 91,220, 47,253, 92,198,
+ 71,211,207,247,156, 37, 45,215,142,219,206,113,188,163, 77, 42,239, 6, 56,191, 86,194,242,174,179,157,223,154,115,187,212,215,
+123,215,165, 18,254,209,107,121, 67, 19,165,239,198,102,107, 66, 36,119,194,235, 94, 90,197,106,188,225,108, 56,136,243, 48, 24,
+135,155,103,124,239, 26, 67,118,188,249,249,110,208, 54,239, 58, 27,208, 76,141, 43,222,207, 91,207, 65,169,187,237, 28,198,248,
+140,243,252,188, 55,184,213, 99,237, 25,141, 85,159,207, 27,154, 40,125, 54,234,243,184, 36, 70,221, 20,101,158,246, 21, 47,185,
+234,175,191,231,175,124,193, 91,190,229,229,215,188,242,196,137,229, 64, 56,235, 13,250,214,116,212, 62, 58, 31,232,106,188, 24,
+254, 44,227,159,229, 57,175,240,131,124,228,161, 79,211,191,121,223,239, 18, 29,188, 98,162,185, 13, 98, 51,253,159,203,254,195,
+159, 57,189,164,143, 60,124,130,238,255,196, 9,218, 18,166,218,255,252, 29,191,241,209, 56,129,103,190,148,228,228, 99,253,223,
+182,245,108,164,255,107,165,207,127,222, 53, 47,233,255,245,108,218, 59,192,220,205, 26, 69,158,111,138, 23, 13,212,241,243, 48,
+ 10, 71,119,184,161, 28,219, 97,154,246,216, 25,206,233, 72, 99, 96,119,114,126,247, 62, 73,215,123,255,165,210,223,215, 18, 2,
+106,181, 31,167,139, 75, 73, 31, 87,227,253,146,254, 26,110,212,204,202, 93,240, 26,254,125,141,190,231,120, 50,116,147,227,181,
+ 91, 81,250,177,179, 68,170,247,238,102,116,186, 67,195,116,239,154,117,182,126,158,239,172,174,125,236, 60,156,225,243, 57,183,
+ 61, 41,237,232, 61,222,205,121, 54,143, 63,196,227,124,107,234,150,110,127,206,119,252,177,103,125,255,143,127,227, 11,191,123,
+163,118, 3, 31,189, 55,200,253,143,165,142,246,117,144,135,149, 33,229, 94, 88, 85,229,164, 55,234,251,168, 28,122,129, 31,232,
+129,135, 31,163,147, 67,187,213,167,239, 15, 63,193,224,109,131,129, 23,161, 79, 63,190, 69, 91,155,219,244,188,171, 23,244,153,
+ 83, 91,113, 18, 99, 61,189,119, 4, 78,159, 32,190,226,170,254, 99,131, 81,223,166, 23, 95,119,213,181,251,247,117,215,159,222,
+ 92,126,224, 60,175,235,108,122,215, 8,156, 57,164,222,244,205,231, 41, 19,123,228, 12, 27, 14,157, 43,186, 70,145,158,179,112,
+163,119, 90, 10,184,255, 44,215,120, 94,199,106,207,237, 18, 94,239, 37, 1, 14,169,227,214,214,188,239,188, 24,110,186,126,118,
+ 39, 98, 55, 3,206, 96,120, 14,239,109,178, 73, 23,164,244,166,145,239,205, 59,113,200,148,179,126, 28,174,123,248,220,133,114,
+214,119, 54,151,250,136,184,255, 78,218,129,241,188,216,121,126,182, 12,198, 13, 59,152,203,187,142,130,215,103,179, 58,207,102,
+221,247,121, 92, 2,163, 62, 70,191, 87, 29,232, 94,243,119,190,254,121,119,223,118,248, 89, 95,182,185, 73,116,106, 99,146,124,
+149,101,111,184,183, 42,237,219, 87,232,209,229,178, 94, 49, 88,230,161,161, 75, 7, 31,150,109, 63,216,181, 87, 31,164,110,223,
+ 6, 45, 7,164,219,168, 23, 47,106,212,245,207,225,103,125,132,255, 68,111,248, 63,122,234, 20,237,127, 37,156,170, 44,251, 87,
+111,228,183, 79,245, 14,192,211,123, 71, 98,208,159,175,116,205,149, 27, 7,175, 62,184,239,208, 39, 54, 79,158, 87, 6, 98, 39,
+ 45, 67,181,182,105, 20, 42,163,213,220,184,195,175,192,205,224, 6,173,211, 95,200, 56,116,150, 8,240, 98,198, 5, 25, 97,125,
+239,225, 75,124,189,123,190,217,169, 65,127,123,115, 29,183, 93,202, 14,125,131, 3,208,159,199,157, 20, 41,217,225, 62,222,188,
+ 14, 71,176,195, 12,211,161, 29,102, 89,134,113, 15,237, 2,103,253, 34,230,210,145, 51,124,231,174,148, 92,128,231,254,164, 82,
+ 34,245, 60, 86,231,217,156,118,159,199, 30, 27,117, 75,101,111,124,254,117, 7,254,220, 79,125,203,139,239,250,163,215, 30,188,
+246,228, 16,157,239, 95, 76, 6,189, 55,230,139,193,160, 95,209,209,223,124,199,239,191,255,133,159,179,239,115,190,251,240,179,
+ 94,120,106,136,218, 45, 90,223,218,162,250,201,223,161,242,252, 87,143, 7,123,249,115,159, 65, 95,250,178,107,233,151, 63,240,
+112,127, 22,139,201,136, 23, 53,232,166, 11, 87,167,207,158,122,228, 9,122,217,245,177,246,228,177, 63,232,163,244,199, 72, 78,
+127, 14,177,118,140,145,106, 78,193,152,252,223,245,244,187, 70, 79, 4,155,236, 8,230,218,225, 70,127,168,137,138,111,120, 10,
+207,137,227,187,240,222,203,233,122,119, 98,208,239,124,146, 90,238,162,186, 24, 93,196,125,108,185,233,231,138,100, 81,136,102,
+224,172, 31,185, 0,101,180,221,154, 75,187,109, 72,205, 33,127, 82,245, 13,206, 96,208,239,156, 13,250, 60,246,218,168, 91,186,
+253,218, 91,190,248,154,215,255,253,175,123,222,255,116,253,129,141,125, 39,122, 99,203, 7,167, 16, 92,122,227,126,160, 55,168,
+167,246, 17,253,143, 63,247,209,159,187,231, 61,159,120,219, 63,190,229, 69,183,143,105,248,225,211,157, 54,120, 89, 20,146,135,
+126,211, 15, 92,122, 99,255,183,254,204,141,244,117,191,245,255,245,225,126, 31,117,239,223,167,221,221,212,168,143, 17,124,255,
+191,199, 79,208,171,254,200,115,233, 47,252,183, 95,224,159,173,159,248, 64,191,249,110, 17, 47, 55,167, 55,246,198,182,244, 95,
+248,200,227,167, 78, 62,118, 98,243, 51,123, 24, 61,221,165,234,102,184, 89,158,239, 34, 52,110,236, 94, 27,220,167,202,184,220,
+174,183,221,104,239,217, 73, 38,103,143,230,219,241,126,190,237, 36,130, 61,155,241,184,161,201,196, 28,238,127,118,190,153,147,
+ 97,158, 31,189,220, 55, 59, 48,164,200,202,184, 71,179, 4,247,175, 75,121, 43, 34,253, 13,151,100,158,157,157, 83, 63,143,121,
+ 92,180, 81, 31, 11,221,139,142, 63,247, 7,255,196,115,254,254,235,255,155,235,191,102,123,155,232, 68,111,156,121,127, 25, 35,
+ 99, 57,185,164, 43, 23, 76, 15,156,222, 62,245, 23,255,249, 71,126,226,157, 31,122,236,167, 6, 43,251,187,143,110, 61, 68, 44,
+159, 47, 30,169,247, 63, 61,112,144,150, 15,188,155, 22,199, 31, 32, 62,244,162,241, 11,190,246, 85, 47,162,123,254,242, 31,167,
+215,253,227,119,209,137, 79,159,238,223,179,127, 66,180, 15, 31,220,236, 13,253,137,147,244, 71, 63,255, 58,122,203,235,191,158,
+174, 60,176, 49,157,213,214, 73, 90,254,214, 91,137,247,237,159, 16,246, 99,234,125, 57,214,225,239,251,248,167, 31, 62,181,185,
+124,152,246, 86, 89, 14, 59, 90, 93, 8, 8,231, 73, 51, 18, 79,210,184,108,174, 87, 81,230,173, 65,127,178, 1, 75, 23,235,216,
+180,160,179, 11,201,156, 12, 77, 94,238,252, 44,104, 3,122,107, 99,208, 95,251,100,212,174, 85,237,174, 53,232, 51, 48,110, 30,
+187, 50,202, 57,140,250,181,111,248,186,231,254,216,237, 95,118,253,215,156,234, 13,250,214,193, 5,241, 21,221, 24, 64,211,137,
+222,160, 31,232,232, 23,255,224,137,135,110,250,241, 15,126, 95,111,208,255,175,254,167, 15,244,175,223,255,237, 79,158,250,237,
+ 17, 36,183, 84,208,211, 96,168,135, 20,251,246,227,180,245,238, 55,166, 47,249,238,175,254, 2,250,143, 63,252,103,233,117,223,
+240,133,244,226,107,246,211,129, 62, 2,127, 90, 89,210,107, 94,246, 76,250,209,239,249, 42,250,165, 31,188,153, 94,124,221,213,
+254,254,237, 95,253, 9,146, 79, 63, 48,242,217, 69, 65,120,180,189, 28, 65,121,191,253,123,199, 7,136,252,195,180,135,141, 93,
+ 46,112,236, 38, 26,247,169,116,126, 71, 46,211,235, 61,147, 65,191,245, 41,102,208,119,203,144, 93,236, 56, 68, 23, 70,231,186,
+208,185,180, 87,134, 22,175,225,174, 29, 26,244, 93, 45, 29, 53,237, 85,103,131, 62,143, 75, 26,169,211,243, 15,237,187,233, 47,
+126,225, 53, 95,189,121,170,183,145, 79,219,232,163, 99, 38,217, 20,234,122, 11,191,255,202,142,254,217,251, 63,245,193,191,250,
+150, 7,254,206, 99, 39,151,239,234,223,254, 41,154, 26,189, 28,248,165,251, 62,243, 43, 15,126,102,235, 59,158,121,112, 99,177,
+ 20, 9, 18,220, 21, 7,251, 48,254,151,104,251, 61,127,143, 22, 95,246, 58,255,158, 47,122,225, 51,233,141,223,241,149,244,195,
+127, 97,155, 62,254,200, 19,180,111, 99, 65,207,185,230,202,149,243, 89,254,214,207,210,246,175,255,179, 49,234, 31,189,142,210,
+ 59, 24,203,218, 7,236,117,236,235,254,214,119,221, 55,168,212,124,102,143,141,250,133, 44,242,148, 66, 29,234,182,151,138,103,
+189,195,113, 63,156,223,142, 16,190,103,209,164,191, 28,174,247,114, 50,232, 23,108,236,180,121, 11,206,215, 59,207,243, 24,119,
+192,247, 15,247,231,124, 75, 77,135,119,120,158,135,119, 57, 59,177,147,243, 57,118, 1,247,127, 54,232,243,184,172,141,250,226,
+ 69,215,236,127,217,161,253, 29,157, 28,216,100, 67,212,221, 71,231,251,170, 80,221,207,244,250, 95,248,216,209,255,243,237, 15,
+ 14, 97,247,127,213, 69,248,132, 26,211,238, 15, 62,189,249, 43,111,253,192,241,247,253,213, 47,189,246,198,237, 83,203,222, 25,
+ 40,154,134,239, 35,246,131, 87,209,242,215,255, 41,201,201, 79,210,226, 53,175, 35, 62, 24, 98, 52, 7,122, 99,254, 34,136,202,
+125, 12, 41,247,255,242,147,180,253,190,255,135,120,168,189,247,198,156,134,148,123, 31,173,211,214,246,168,113,243,174,223,126,
+240,227,191,252, 91, 15, 13,169,241,211,123,101,212,155, 22,159,231,179, 49, 28,109, 22,243,158,181,182,188,192,113, 20,162,152,
+161, 97,202,145, 29, 40,230, 29,185,140,175,247,178, 48,232,107, 84,245,206, 23,155,144,245, 2,206,179,102,219,212,227,135, 90,
+252, 13,231,169,127,126,104,135, 32,187,118, 46,221,251,148,184,255,147,140,237, 13,187,116,172,217,160,207,227,146,140,179,165,
+223,187,223,122,232,228,135,126,111,115,185,125,240, 96, 71, 7,183,150, 52, 96,227, 30,239,170,252,249, 55,223,255,211,189, 65,
+255,254,254, 61,239,239, 95,159, 84,131,174,237,211,198, 38, 47, 15,253,253,255,240,208,189,143,246,159, 89,244, 47,218,170, 19,
+106, 78, 69,105,232,202,171,168,222,247,111,104,243,173,223, 70,203,255,250, 86,146,199,126,127,253, 66,120,226,225,254,125, 71,
+105,243,109,223, 65,219,191,246,143,122,171,127, 96, 84,148, 35, 69,225,113,217, 32, 30, 64,118,157,208, 15,252,204,175,189,173,
+255,200,239,232,247,239,186, 81, 7,222,242,121,111, 62, 74, 67,194,205,240,142,115, 68,186,151,122,180, 74,102,119,236,224, 94,
+220,113, 25, 95,239,153, 12,250, 49, 58,187,102,193, 57,157,190, 70, 98,248, 72,115,207,206,119,190,189,161,137, 94,119,108,236,
+128,182,229, 70,228, 2,231, 5, 53,206,217,249,142, 59,118,112,158,248,158,163,123,216, 56,229,248, 78, 35,112, 61,175, 93, 1,
+200,173, 49,232, 23, 53,207,230, 49,143, 11, 53,234,244,169,199,183,127,245, 91,126,250, 35,119,189,249, 67,159,254,208, 59, 62,
+126,226,161, 31, 61,246,240,177, 47,255,135, 31,252,219,247, 30,123,228,239,208,212,250,114, 72,185,159,164,220, 64,101,248,251,
+201,223,121,248,212,191,249,193,127,255,241,183,111,244,145,190, 60,190, 61,210,222,198, 28, 60,235,235,224,211,137,182, 31,165,
+173,119,255, 80,111,220,255, 28,109,254,235,219,104,251,221,119,211,246,127,250, 7,180,253,203, 63, 66,155, 63,255,215,104,243,
+ 45,223, 74, 91, 71,239,236, 63,255, 64,239, 8, 92, 61,137,210, 24, 4,174, 22,146,211, 76, 27, 7, 10,253,147,163,191,253, 91,
+255,238,191,252,254, 79,211,148,122,223,218,237,232, 92, 35,166, 65, 8,228,112,179, 65,156,207, 70,137, 94,249,212,249, 9, 54,
+253,157, 24,138,189,154, 4,154, 26,199, 40,238,200,153,164, 73,129,242,117,232,114,189,222,179, 24,244,215, 94,100,153,192,218,
+117,218, 11,231,203, 64,129,124,251, 78,148,225,160,141, 46,222,227,243,149,198,189,249, 98,163,223, 93,146,141, 61,114,166, 54,
+168,107,208,232,180,199, 25, 29,188,150, 91,207,212, 82,245, 12,116,179,221, 52,232,175,253, 44, 0, 29,206,227, 41, 58,206,150,
+126, 31,140,227, 35,255,241,254,207,252,223,253,107,152,224, 87,169, 17,255,120,255,122,180,127, 61,174,239,105,101,197,172,223,
+250,199,127,228, 29, 15,190,241, 85,207, 63,248,226,111,125,229, 51, 94,122,242,177, 77,226,167,239, 35,218, 95, 38,165,185,225,
+ 99, 27,125,164,221,191, 70, 4,251,167,222, 79,219,159, 56,230,135,227,210,159,218,162,127,255,149, 79,107, 86, 73,255,218, 92,
+246, 31,185,130, 14,236,223, 71,199, 62,252,208,241,191,246,143,254,243,221, 26,165,183, 14,198, 78, 55,248, 11,105,213,122,219,
+249,108,178,170,150, 54, 24,186, 55, 53,134,110, 72, 77,174,211,171,182,212,167,109, 44,123,237,217,223, 67,185, 29,230,173,106,
+132,239,129,115, 59, 66,129, 32,190, 95, 29,155,195,151,219,245,234,117,173,139, 58,223,124, 30, 83,225,222, 11,224,174, 31, 81,
+135,201,218,125,222,223,220, 7,107,107,219, 26,207, 99, 23,192, 32,192,235,187,255, 34, 80,222,247,194,249, 12,156,245,155,215,
+116,119, 59,215,103,111,213, 84,246,153,230,146,207,193, 11,228,195,159,207,181,220, 10,243,241,189, 67, 23, 55,138, 86,192, 38,
+ 44,133,231,117,239, 5, 58, 51,150,190, 95, 63,207,178,130,222,185,206,121,230,174,207, 99, 87,140,250, 82, 13,247,182, 26,241,
+162, 63, 59,173,175, 37,157,185,111,249,240,153,199,171,200,111,252,165,159,249,200, 15, 60,227,202,197, 15,254,119, 47,189,250,
+185,167, 30,221,236, 93,131,222,144, 31,232,130,191, 62, 89,112,162,125, 7,206,206, 67, 27, 69,105,250,255,157, 94, 82,237, 29,
+132, 43,158,125, 29,125,224,193,227,143,223,114,215,127,184,235,209, 39,182,222, 5, 78,198, 94,143, 99,106,208,207,123,147, 28,
+140, 0, 8,216, 28,194,141,254,201,158, 8,202,137,190, 69, 35,148, 27,154,200,179, 29,195, 6,120, 11,157, 35, 61,249, 84,190,
+222, 53,227,124,163,178,139, 49, 62, 55,208,206, 83,217,247,156,175,131,163, 17,232,225,139,137,210, 33, 90, 95, 39, 27,123,239,
+121,172,149,163, 20,109,139,223,112,142,251,185,167,142,171,202,209,162,163,105,206,207,173,103,201, 54, 93, 40,242,255,169, 48,
+207,230,241,135,112,148,115,152,209,193, 56, 63,161,155,248,208,126,244,211,253,235,132,254, 92,206,241,217,193,240, 63,250,216,
+201,229, 59,255,204, 61, 31,250, 95,254,217,175,125,234,131, 7,246, 21,218,120,108,139,234,163,189,237, 29, 16,245,122, 20, 30,
+254,227, 53, 47,253,111,116, 31, 54,251,104,254,177,109,226,227,167,233,138, 67,159, 67,239,188,255,209,143,127,205,247, 29,253,
+190,251, 31,122,252, 95,234,185,157,160,189, 67,189, 31,213,205,245, 22,109,196,113, 49,250,223,195,113,110,212,227,237, 36,210,
+191, 87, 55,151, 61,247,214,181, 41,204,141,231,248,174,225, 94,236,248, 30, 60,149,175,247, 18, 15,171,163,238,116,238, 12,247,
+ 97, 40, 7,220,118, 1, 37,129,155,215, 56, 6, 23, 27,225,250,177,207,209, 69,173, 53,164, 99,103, 67, 58, 51,200,111,108,114,
+211,191,239,146,164,164,161,165,234,253,231,156,227,179,186,219, 60, 46,195,193,103, 74, 55, 50,239,138,126,203, 32, 59,119, 80,
+189,221, 47,248,139,175,185,246,187,254,143,175,125,238,159,124,238,213,251, 22,219,167,133,182,135,182,172,125,212,206,139, 50,
+ 69,238, 5,190,115, 56,175, 65, 91,102,187,183,211,167,150,212,109, 85,218,216, 96,122,172,255,217, 15,189,235,145, 95,252,187,
+ 63,119,223,155,182,150,245, 87, 41,168,116,219,201,171, 56, 75, 26,117,151,174,109, 87,134,166,130, 91,239,125, 76,109, 95, 64,
+207,246,221, 60, 47, 75,135,163, 88,199,209, 29,118,131,187,236,174,247, 73,122,238, 55,208, 42, 54, 97,108,250,242, 84,166, 0,
+158, 35, 75,240,118,200,196,220,137,136,123,205, 32, 28,105,158,251,209, 39,171,190,172,233,241,195,205,249, 28,219, 67,160,222,
+133,206,149,217, 82,205,227, 41, 99,212,205,176, 31,232, 95, 3, 87,237,250, 23, 92,179,255,171,110,253,138,107,255,244,183, 31,
+126,230,151, 60,239,170,141,141, 65, 26,118, 56,135,218,127, 95,133,175, 28,100,224, 75,255,115, 86,142,251,167, 78, 45,235,191,
+120,255, 35,191,241,166,247,124,226,231,126,253, 99, 79,252,124,255,211,223,211,204,193,201,214,160, 95, 78, 70,125, 30,243,248,
+172,114, 86,206, 98,212,231, 49, 27,245,121,236,253, 88, 92,130,239, 24,146,231,150,178, 63,245,187,143,156,126,203,223,250,217,
+143,189,251,239,190,227,193, 47,254,146, 23, 61,237, 75,254,236, 43,175,121,245, 43,159,123,240,217,135,246,119, 87, 94,185,224,
+125,139,194,165, 15,206,229,196,178,110, 62,186, 89, 79,124,248, 19, 39, 31,190,247,125,143,252,151, 95,190,255,241, 95,249,131,
+ 79,111, 14, 81,204,192,127, 27,154,169, 15, 53,244, 61,227,164,207, 99, 30,243,152,199, 60,230, 49, 27,245, 51, 56,155,253,107,
+211, 12,251, 96,144, 31,121,124,251, 15,254,237,111,126,250, 93,253,235,154,254,223,215, 29,220, 95,158,113, 96, 81,158,190,209,
+241,190,237, 42,219,167,182,229, 51, 39, 78, 47, 63,213, 59,169,159,160, 41,197,254,152, 58, 7, 79,208,185,129,122,243,152,199,
+ 60,230, 49,143,121,204, 70,125,143, 13,251,200, 97, 87,163, 60, 68,218, 67,250,252,161,254,117,223,137,211,117,209,191, 58,120,
+255, 16,129,111,233,107, 83, 63,179, 61, 27,243,121,204, 99, 30,243,152,199, 60,158,124,163,222, 26,119,163,199, 13, 5,238, 2,
+127,162, 81, 23,248,115, 54,228,243,152,199, 60,230, 49,143,121, 60,197,140,122,107,224,205,112, 19,229,150,169,179, 17,159,199,
+ 60,230, 49,143,121,204, 99, 55,140,250,147,132,184,156, 13,249, 60,230,113,121,143,129,211,110,212,196, 99,243,237,152,199, 60,
+ 46,237,224,153, 46, 49,143,121,204, 99, 30,243,152,199,103,199, 40,243, 45,152,199, 60,230, 49,143,121,204, 99, 54,234,243,152,
+199, 60,230, 49,143,121,204, 99, 54,234,243,152,199, 60,230, 49,143,121,204, 99, 54,234,243,152,199, 60,230, 49,143,121,204, 99,
+ 54,234,243,152,199, 60,230, 49,143,121,204, 70,125, 30,243,152,199, 60,230, 49,143,121, 60,229,199,226,203, 14,127,249,200,105,
+ 43, 92,168, 20,109,137,198, 50,117, 50, 19, 82, 57, 24, 38,251,103, 98,146,247, 63, 44,180, 74, 46,159, 62, 54,124, 70,244,151,
+147,166, 12,235,159,162,159, 24,223, 39,170, 60,195,211,187, 86, 41,118,241,111,118,109, 26, 38,109,196,174,223, 51,117,106,213,
+238,235,227,223,135, 3,251,161,152,244, 61,250, 57,137, 99, 11, 51,173,244,108, 75,215, 56,125,150, 36,206,157,253,251, 89, 15,
+ 39,112,110, 2,239, 43,254, 51,198, 3,234, 29,176,195,142,191, 27,186,213,145,158, 51,199, 59,147, 30,143,255, 78,224,239,249,
+196,135,243,152,158,147, 62, 67,189, 55,178,246,194,252,241,250,119,137,254,127, 60,142,216, 79,194,247, 99,189,108,246,251,171,
+159,100,129, 39, 20,231, 48,252, 87,216,238, 24,143,231, 36, 50, 93,127,149,169,219, 46,235, 9,248,251,196,167, 87,124,111,153,
+158,238, 56,165,244, 30, 72, 29,230,142,244,199,153,186,249,225,147,236,202, 32,194, 80,188, 35, 31, 83,204, 21,210,115, 26,126,
+184,148,144, 51, 28,206,167,235,191,160, 12,191,215,185, 88,117,210, 47,251,239, 26,214, 71,167,247,106, 60,215,113,254, 79,127,
+ 14,223,103,243,143,241, 61,210,222, 99, 34,184, 27, 49, 7,244,190,250,122,211,103, 21,107,134,210, 12, 43, 58,139,134,249, 91,
+116,210, 8, 60,199, 88, 20,250,121,157, 15,130,235, 90, 68,103,230,244, 60,236,190,139, 79, 49,209, 53, 67,240,251,233,220,252,
+189,122,226,211,239,245,189,172,175,161,123,114,149,241, 25, 23,102,159,125, 2,243,186,234, 92, 24, 78,107,252,187,192,115,215,
+ 27, 34,253,131, 30,158,195, 82,127,191,212, 47,175,112, 67, 36,118,133,241,252, 42,254,160,185,119, 62, 31,216,158, 41,251, 92,
+ 37, 61,231,113, 62,226,106,133,133,201,120, 92,125,128,204,120,220,216, 23,200,183, 84,134, 85, 79,249,196,154,231,230,123, 18,
+115, 28,143,113, 71,144,118, 25,251, 94,138,123, 66,177,207, 72,172, 87,189, 52, 95,131,220,236,176,184, 67,216,123,112, 82, 84,
+ 93,215, 85,159,193,248, 30,184,119,176,217,164, 97,251,239,180,119,192, 74,104,182,116,138, 37, 48,205, 77,145,124,203,216,206,
+205,148,203,236,186, 38,225, 81,219,227,237, 90,137, 4,254,148, 52,199,241,185,250,254,232,166,133,253,235,198,115,238,111,230,
+ 48,135,139,206, 73,246,103,100,231,133,119,114,250,158, 56,199, 56,207,241, 29, 85,215, 77,157,238, 93,126, 8,186, 25,136,221,
+ 39,209,121,192,107,182,252,120, 62,248,172, 22,217,160,219,188, 10,227,158, 62, 44, 48,169,117, 75,242, 7, 32,226,155, 51,249,
+ 3,167,213, 9,140, 22, 74, 98,194,227,147, 98,203, 33,152, 97,162,180, 15, 77, 70, 7,118,124, 22, 56, 27,156, 36,246, 75,191,
+239, 18,198, 12, 22,137,200,234,164,105, 23, 77,108,199,240, 5, 18,134,212,222,104,199, 42,110, 26,237,196,107,108,214,112,155,
+216, 38, 4, 79,134,196, 39,173,253,158, 5,254, 14,150,142,153,214,117,144,101, 48, 25,163,115, 6,207,140,209, 56,235,255, 43,
+126,142,115,250,134, 97, 46,136, 59, 38,122, 20,150,244,104,197,157, 13,155,128,146,159, 89, 63,191, 22,220, 56,117,130, 27, 80,
+193,125,107,186, 62, 48,136, 29,199, 38, 87, 56, 12,200,176, 80,151,186,160,211,181,234, 6, 98,198,132,193, 9,173,163, 81, 47,
+212,245, 63,221, 24,223,163,102,102,216,120,185,234,137,137, 26,207,233,186, 55, 96,205,143,139,187,216, 83, 70, 67, 63, 24,137,
+162,198, 32,206,149,196, 54, 88, 74,107,102,188, 36,137,249,128,142, 15,131,249,225,100,138,100,101,126,134,127, 25, 75,191,250,
+ 28, 36, 10,143, 60,230,197,244,243,226,134, 93,124, 74,135, 99, 41,234,216,185,145, 55,195,172,127,247,249, 62, 28,143,197, 55,
+ 85,189,125,227,231, 23,157,206,166,254, 25, 9,108,128,195, 87,143,207,168, 63,203,170,247, 96,116,162, 6, 71,141,101,124, 70,
+230, 12, 87,158, 2, 4,174, 60,254,174,168, 23,180,148, 28,112,132, 67, 16, 78,147, 8,220,107, 14,163,203, 44,104, 83,199,187,
+ 85,235,180, 32, 11,231,109,192,230,115,236, 23, 53,238,171,221, 55,120, 14,196,178,178,229,177,175, 23, 73,235, 88, 56,187,239,
+213,238,107,114,253, 98,111, 98,162, 21, 47, 69, 40,156, 51, 55, 48, 50, 57,172,195, 76, 24,142, 96, 6, 45,246, 58, 48,216,212,
+ 56,119,246,123,137,223, 78,159, 21,253,121,126, 95,118,150, 24,130,152,112, 78, 4,182, 76,105, 54, 86,150, 53, 27,175,128, 50,
+184,196,254, 84, 99,114,170, 67, 79,186, 15,180,198, 62,230,109, 37, 56,239,244, 85,225, 44, 69,112,225,187,185,206, 19,221, 55,
+212,137, 55, 71,190,221,124,195, 33,215,199, 32,211,185, 78,206, 6,249,119,143,115,188,155,246, 42,233,154,128,205,246, 89,136,
+246, 88, 98,175,229,216, 36,146, 61, 30,191,161,214,241,179,195,255, 23,165,176,123,110,165, 20,194,233, 36, 48,111, 71, 47, 75,
+208,224, 83,114,143, 91,131,202,226,211, 12, 2, 76,120,244,104,148,241,115,248,112, 25, 38,134,164,103,176,250,252, 25, 12,141,
+197,101,220, 60, 59,243,192, 56,187,236, 5,139, 17, 16, 9, 90,244, 39,232, 45,226, 82,144,213,240,126,184,159,165,153, 92, 30,
+203,195,198, 43,201,105,178,251,144, 61,229,194,173,115,193,144,113,128,251, 37,152,173,136,239,100,120, 95,225,200, 6, 20,142,
+ 37,183,178,129,241,100, 96,109,153,115,202,100, 72,242, 40, 69,141,123,236,163, 28,243,195, 38,167, 71, 28,156,188,112,187,127,
+ 85,239, 71,129,223,143, 81,121, 19,217,226,121,248, 70, 33,147, 57,234,250,121, 59,254, 93,224, 62, 37, 7, 10,156, 1, 48,172,
+104, 96,109,130,244, 38,218, 55,148, 58,156,221, 16,189,219,247,143,206, 5,251,115,152,238, 95, 68, 83, 5,238,231,104,224, 41,
+126,215,161,163,148,214,141,172,108, 14,204,197, 55, 70, 94,227,107,166,117,169,215, 25,134,135,194,152,233,245,143,191,109,140,
+119, 60, 74, 78,155,161,109, 38, 17, 93,112,108,146, 30,217,135,177, 23, 61,126,181, 89, 55, 94,252,176,153,113, 90, 45,163,203,
+ 10,199, 45,130, 65,206, 52,121,171,125,253,120,191,166,251, 89,221,237,236,157,165,206,162,157,233,147, 27,122,126, 12,207,175,
+ 74, 60,219,149, 4, 87,147, 1,227,198, 73,234,250, 77,118,112, 42, 24,182, 55, 17, 73, 71,178,235, 95,170,186,181, 80, 14, 40,
+ 10,172, 67,139,180,196, 50, 26, 50, 57, 51,147,195,202,227, 60,151, 20,111,209,116, 95, 52,123,217, 58,237,133, 96, 79,173,248,
+123,140,104, 57, 12,182, 25, 60, 48,202,152, 9, 21, 48,238,126, 14, 2, 89, 27,248,157, 88,230, 65,154,125, 15, 51, 22,238, 64,
+163,195,178,154,108, 36,207, 6, 82, 24, 37,145,118,219,247, 8,187,216,252,194, 12,147,228,243,146,106,142, 85, 56, 28, 85,150,
+112,111,117, 13, 23, 78,251, 45, 53, 6, 28,141, 55,169, 3,111,182,132, 57,246, 50,134, 12,182, 69,213,150, 5, 28,231,113,149,
+ 49,163,180,172, 97,228,253,126, 87,113, 7, 58,219, 64, 78,247, 65, 32, 47,199, 12,171,157, 37, 69,230,195,218,174,144,173, 94,
+ 20,184, 64,155, 98,131,199, 26,155,139,110,214, 26, 29, 79, 49, 0,187,193,176, 3, 69,148, 38, 43,233,241, 48,188,106,124,106,
+108,104,110,200,212, 50, 51,230,177, 96, 54, 88,186,145, 53,156, 77, 81, 44,155,183,167,209,135, 26, 20,255, 17,156,207,100,236,
+112, 29,228,236,130, 27, 87, 14, 87, 47,210, 32,182, 65,174,139,226,155,180,182, 70,154, 53, 61, 20,114, 15,159, 5, 82,176, 80,
+218,224,182, 76,193, 28,145,152,196,218,245, 84,144,230, 98,205,185, 19,209, 8,134,241,222,169, 81, 43,156, 50, 20,118,255, 10,
+184,153,204,217, 51,102, 76, 9,193,164, 19,129, 20, 49,135,225,133,105,152,178, 9, 12,199, 23, 72, 7, 23,119, 0, 56, 69,211,
+118,150, 37,127, 90,231,140,221,185, 49,220,155, 54, 45, 48,118,195,117,117,227,247,151, 40, 23, 80, 68,103,113, 68,184, 70,157,
+ 3, 21,114, 23, 67, 44, 95,212,105,233, 10,107, 65,197, 34,115,245,218,213,120,155, 51,103,206,119,193,247,132,233, 12, 67,143,
+ 70, 70, 36,151, 26, 56, 28, 53, 18, 88, 71, 41, 82, 99,207,185,242,184,221, 67,182, 44, 21,120, 24, 28,203, 72,161,231, 8,111,
+250,123, 50,196,162,169, 76,198,247,176, 27,133,136,226, 57,140,187,222,222, 33,115,210,105, 52, 30,145,149, 26,184, 50, 57,114,
+ 34, 77,170, 97,216,140,224, 25, 22,221,123,134, 59, 86,237,169, 12, 14,134,206,245,186,146,200,183, 53, 18,169,119,243,243,151,
+169,252,196, 41, 83, 42, 77,134,119,124,142, 16,118,187,115,100,137,125, 77, 7, 20,219,165,173, 12, 5, 89,168,194,217,144, 77,
+ 27,126,153,230,132, 62, 91, 72,244,249,140, 27,239,183, 6, 22,197,253, 43,105, 2,243,216,127,184,241,179,101,197,218,114,206,
+166,233,125, 19,176,248,246,119, 81, 67,148,162, 74, 8, 59, 43,126, 31, 58,250,220, 62, 69, 74, 6, 93, 56,175,123, 43, 5,180,
+233,228,200,222,197,131,177,223, 47,209,241, 5,135,197, 83,239, 77,246,218, 3, 44, 42,201, 9,182,204, 99,172,165, 40, 7,132,
+ 49,167,100,212,219,247, 82, 74,201,151, 53,251,255, 52,255,134,140, 31, 87,141,200, 9, 50, 57,195, 62, 82,214,167,134, 33, 23,
+ 4, 78, 21,222, 96,142,108, 24,100,112, 45,184, 50,103,103, 81, 56, 71,205,195,173,232, 10,120,168, 66,145,124, 98,140,178,167,
+213,192,201, 0,115, 68,194,196, 43, 81,168,111, 13, 37, 60,101,129, 52,155, 71,200, 77,105,134,121,117, 2,141,229, 2,136, 68,
+ 69, 96,193,106,164, 73,140, 11,162,172,250, 10,152,130, 55,195,194,148,235, 43, 77, 93,179,164,243,136, 40,126, 74, 9,194, 6,
+170,147,175, 27, 83,156,145, 58,182, 7,230, 89, 0, 76,236,149,105, 97,217,121, 12,155,236,184,184,139, 46,190, 66,238, 61, 70,
+202, 95,220,136,216,195,182,148, 19, 75,212,130, 24, 34,127,223,212, 56,188, 1,187,254, 2,179, 54,162,123,115, 64, 20,131, 32,
+225, 32,165,103,228,233,239, 48,190,177, 52, 75, 78, 51,115, 78,151,162,113, 47, 66, 77,153, 71,235,155,120,221,240, 28, 58,153,
+210,178, 4, 53,237, 66, 80,199, 5,231,178,112,202,229,128,179, 18, 89, 7, 75, 51,122, 52, 78,150, 86,159,158,203, 66,207,163,
+ 88,228,174, 24, 20,143,210,201,106,237, 83, 73,165, 88, 20,103,231, 39,120, 78,154, 81,225,108,156,160,162,183,130,239,224,180,
+ 75,114,206,202,123, 61, 55,140,176,173,130, 97,179,169, 44, 9,129, 17, 27,228,228, 26,248,103,224, 24, 44,144, 97,146,168,209,
+143,243, 21,106,197, 98, 62,166,104, 74, 93,166,103, 80, 97,166,216,249, 87,216,200,164,194, 78, 9,207,190, 43,134,193,224, 28,
+129,233,170, 17, 41,250,239, 26, 43,124, 40,171,232, 4, 31, 82,159,246, 92,198, 84,168, 93, 11, 24, 99,150, 92, 59,183, 77,188,
+106,100, 91,154,108,130, 27, 99, 2,195,204,240, 30,116,190, 74,137, 44, 81,137,249, 45,128, 35, 24,174,205,157, 82, 72, 15,139,
+228,148, 62,227,186, 45, 77,101, 94, 34,136, 32, 89, 13,241, 69,247,163, 42, 24,177, 7, 46, 69, 96,191, 10,103,111, 93,109, 28,
+231,169,192,116, 99, 48,226,109,169, 32, 48, 23,246, 63,143,250, 61,211, 35, 9,121,132,206, 73,197, 32, 81, 2,127,226,126, 34,
+ 56,111,145, 89, 44,190,190,132,172,172,201, 41, 34, 71,131,206, 24,136, 17,135,125,210,231, 80, 88, 34, 53,143,129,138,167,221,
+ 4, 12, 46,141,198,188,154, 67,211,133,109,178,183, 21,199, 43,173,150,209, 8,237, 71,141,185,225,115, 79,116,245,212,240,232,
+198, 57, 90, 35,253,185,176,186,164, 27,119,191,200,236,245, 71, 68,139, 73,171,180,203,164,136, 7,103, 29,167, 84, 50,231, 9,
+ 33, 12,222,159,120, 29,220, 38,169,195, 24, 82,109, 87,255,110,168, 41,161,214, 53,246,205, 56,101,142,113,255,147, 12, 80, 41,
+232,105, 83,118, 24, 56, 69, 3,156, 82, 91, 98,233,153, 2, 94,175,166,214, 28,188,149,192, 82, 76, 57, 73,142, 48,186,254,111,
+ 93, 89, 73,191,155,129, 71,224, 70, 74,239,235,239,113,162,238, 91, 83,127, 75,152,142,113,179, 43,185,204,193, 43, 21, 12,207,
+ 42, 88,242,150,225, 89, 89, 68, 94,210,166,214,150, 18,204,104,113,204,129, 38,211,225,155,150,101, 52,244, 2,221, 91,206,110,
+190, 71,236, 29,100, 43,208,147, 22,187,119,220,148, 78, 36, 47,106, 75,253,217,117, 5,234, 64,220,227, 40,234,176, 21, 77,173,
+118, 35,254, 4,140,183, 70,232, 5, 34,242,130, 6, 94,196, 61,127, 78,128,201, 56,134,164,123, 32,107, 82, 64,195, 23, 86,200,
+ 57, 97,210, 87, 50,184,105, 0,255,233,130,239,108,222,168,147,215,217, 17,164,122,164, 84,245, 58, 45,189,105, 78,230,180, 17,
+139, 59,147,211, 86, 2, 53,118,116, 8, 36,167, 91, 69, 8,162,137, 41,242,245,244,169, 58, 13, 83, 54, 76,103, 72, 97,127, 54,
+182, 23, 21, 12, 2,166,208,125,204, 32, 86,157, 79, 2, 37, 34,139,230, 11,236, 87, 34,185, 22,222, 89, 9, 4,162,196, 12,226,
+130,115,119,252,137,228,242, 46,163, 81,194,116,172,174, 9,230,198,191,154,230,135,101,137, 24, 2, 34,204,106,141, 64, 64, 50,
+ 71, 98,114,114,204,249,242, 0,137, 37,213, 87, 5,246,179,182,156,110,166, 16, 83,211, 67,246,164, 86,168,135,235, 69,212, 53,
+233,120, 2,227,215, 64,107, 51,166, 39,239,230,171,165,106, 40, 97, 32,162,164,194,206,103,153, 10,241,107,147, 6, 60,199,105,
+223, 44,238, 32,101, 0,172,225, 86,248, 12,217,193, 48,232, 77,233,146, 41,165,210, 89, 56,239,151, 5,174,219,239, 55, 96,179,
+212,225,173,122, 35,108,189,133, 19, 11, 40, 39,155,231, 16,216,162, 93, 98,205,136, 76, 54,153, 61, 48, 35,116,194, 0,211, 80,
+205,161, 54,160, 98,157,246,232,133, 45,224, 10,105,218,132,210,100, 52, 58,250,160,121,125,238,217,128,104,133, 27,208,157, 80,
+147,122,101, 79,149,121,125,152, 48,221,175,199,226,240,192, 48, 83, 32,224,104, 8, 71,234,150, 97, 2,120,157,147, 17,184, 53,
+149, 22, 4, 82,236, 81,255, 66,116,175,109,100,188,130, 90,143, 8,118,213, 41,102,132,180, 83,142,198,170,192,125, 5,112,160,
+213, 0,171, 4, 80,131,160,254,107, 0,144,194,232,113,138,130,150,166, 25,225, 95,167,145,102,160, 52, 5, 48,214, 96,236,168,
+137,242,192, 89,192,115, 14, 67, 33, 9,215, 16,169,250, 72,162,217,220,169, 2,169, 46,189, 38,195,109, 48, 0,213,108, 99, 55,
+ 99, 92, 32,106,199,249,133, 27,100,199,232, 16,134, 49,181,133, 26,191,159, 28,150,113,126, 49, 32,243, 75,227,161, 67,244, 55,
+ 45, 40,241,164,157,221,139, 14, 54, 47,223, 52,172,102,206, 17,133, 21,221,112,212, 57,247,107, 43, 80, 63, 12, 32, 78, 56, 68,
+ 57, 58,111,192, 30, 88,107,131, 84,162, 88,253, 89,162,230, 61,221, 31, 43, 81, 77,169,116,115, 44,170,103, 16, 74, 68,213,122,
+225,149,197, 29,217,201, 0, 27,128,114, 58,195, 49,186, 67, 99, 37, 16, 69,154,115, 33,158, 75, 25,235,152, 75, 70,244,111, 48,
+ 30,170,215,225,217, 81,230, 14,137,211, 96,128,137, 87,139,224, 86,218, 99,214,182,146, 17, 49,143,251,214,184, 6, 58, 63,199,
+170,207, 61,230, 16, 0,164, 34, 15, 26,224, 47,150, 12,239, 2, 28,209,228,223,135, 67,194,250,240,121, 77, 54,210,192,198,146,
+ 88, 22, 78,223,112, 87, 2, 89, 30,211,181,151,126, 35,214,210,132,197, 41, 77,118, 34,130, 24,210, 50,137, 4, 99, 70,215,168,
+ 95, 15,248,228,213,144,234, 99, 42, 88,178,247,162,142, 30,154,109, 65, 39, 5, 35,113, 48,142,109,128,185, 66, 85, 49, 67, 14,
+243,166,182, 44, 5,110,114,168,186,159,113, 97,207,136,133,227, 16, 14, 83,251,243,246, 41,100, 6, 74, 32,127, 87,210,232, 88,
+246, 77,123,182, 36,188, 74,193,140,100, 19, 37,153,243, 90, 43,172, 75, 4,228, 73,100,118, 45, 96, 41,148,113, 63, 81, 91,103,
+159,135, 35,144,119, 41,144,199, 54,246, 66,102,151,144,165,247, 21, 16, 61,101,197,234,180, 70, 24,162, 18,243,234, 83,106, 2,
+235, 58,176,230, 74,138,122,128,234,226,155,166,214,213,106, 51,217, 24,234,235,162,145, 92,129,135,100, 57, 22, 17,159,172,204,
+145, 38, 36, 72,211, 23, 77,111, 79,105,147,140,128, 23,143,196,162,150, 85, 74,190, 14, 96, 49,120, 58,135, 82, 36, 31,121, 98,
+ 79,183, 11,162,193,201, 35, 4,187,110,105,192,109,136,190,198, 61, 91,180, 6,107, 70,205,162, 97, 1,195, 88, 0,156, 24,115,
+106, 50, 7, 75, 69,225, 70, 93,136, 82, 70,133, 20, 81,206, 45, 32,208, 83, 73,146, 60, 98,191, 38, 48,174,150, 93,106,169,111,
+182, 56, 58, 78, 60, 8,175,235, 14,143,165, 32, 40, 9, 29, 33, 18, 44,222,171,113, 81,195, 84,216,157,163,201, 25, 16, 77,129,
+149,148,150,102,141,190,166, 20, 55, 43,208,211, 12,136,126, 54, 2,110,189,215,172,181,227,233,107,187,142, 61, 90,137, 58,174,
+ 56,192,174, 51, 58,137, 71,225,122, 93, 14,168, 25,230,110, 25, 83,243,108,105, 58, 45, 31, 20, 68, 2,115,170,238,233,253,176,
+147, 43,193,230, 72,204, 14, 52, 48, 2, 78, 36,214,228,217, 61,119,134, 40,121,169, 0,194,194,156, 0, 57, 78, 31, 29,140, 59,
+ 87, 63,230, 18, 92,121, 95, 0,117,186,211, 27, 93, 73,128, 49, 86,131, 63, 45,231,162,231, 84,192,136,151, 49, 59, 49,172,219,
+ 42,144, 92,129, 20,205,144, 22, 23, 71, 37,103,194,103, 98, 85,104, 38,174,232, 92, 90,208, 84,155,246,154, 63, 75,206,192,177,
+213, 95, 99,173, 14,255,218,178,247, 58,118, 96,218,243,138,214,186,209, 73,136, 52,103, 0,181,136,195, 25,163,222,121,136, 4,
+101,206,230,149, 6,123,194, 92,146,129, 64, 50, 85,193, 77, 93,191,179,106, 20, 91,189, 62, 26, 70,219,172,202,132,254,135,122,
+ 42, 82, 14, 57,211,108,199,121, 61,188,106, 85,119, 78, 2,251,144, 64, 29, 88, 54, 5, 70, 79,115,141, 2,120,151,228,112,227,
+121, 50,166,208, 17,225,158,163,215, 64,189,175, 98, 15,176,174,205, 80,214, 96, 94,165,135, 6,131,136, 82, 90, 60,131, 96,129,
+ 58,218,100,140,253, 30, 87,201,199,133,160, 40,147,125,193, 14,217,156, 7, 67, 62,101,253,244, 58, 75,209, 61,196,102,100, 25,
+ 29,110,204,224, 90,109,220, 50, 94, 69,231,231, 82, 51, 99,198, 52, 50,251, 84, 36, 50,216,195, 70, 52, 57, 18,101,220, 79,150,
+106,220, 23,206, 55, 47,211, 54, 84, 74, 84,187, 17,111,236,188, 92,182,104,172, 36, 80,211,116,103, 75, 70,193, 91,148, 89,192,
+235,109, 96,235,211, 67,140,132,162,123,157, 64,235,170,146,211,194, 14,246, 25, 83,106,101, 60,183,174,161,169,173,162,231, 97,
+147, 67,220, 5, 11, 0,187, 32, 85,196,185,110, 59,188,107, 9,165, 4, 75, 93, 91, 68,140,245,241, 66,136, 4,141,122, 76,251,
+221, 9,180, 5,155,142,164,146,129,128,115, 21, 84,175,201,232, 20,224,185, 34, 79, 57, 60,237,194,171,209, 31, 65, 58, 74, 52,
+210, 49, 32, 24,166,171, 45,226,152, 82,203,178,226,157, 91,165,192,241, 18, 2,153, 30,142, 58,120,181,180,235, 0, 30,177, 26,
+ 42,208, 71, 44, 19,192, 80,202, 40,138,226, 52,132,121, 74,201, 26, 56,205,129,106, 80,118,209,235, 93,104, 54,104,201,147, 83,
+233, 53, 84, 7,231,229,224,162,211,141,104,187,143, 52,221,155,214,250,172, 59,176, 84,220,192, 48, 96, 59, 74,131,176, 47, 8,
+212,202,148,144, 84,126, 89, 5,255,181, 78, 83,161,228,158, 10, 37, 13, 4,230,182,166,162,165, 52, 42, 9,217,108,153, 17,187,
+111,162, 40,127, 51,212,200,121,183,243,169, 37, 12,171,165,250, 82, 41, 14, 1, 94, 94,229,230,148,221,234, 40, 64, 76, 86,219,
+180,140,224, 84, 14,224,224,252,121,129,148, 87, 25, 56,138,243,177,103,238,148, 58,168, 55, 10, 56,241, 85,162,238, 94, 45, 82,
+243,140, 92, 73, 96,241, 41,179,210,112,247, 25, 0,173, 16, 20, 84, 10,218, 17, 98, 53, 10,212,117,141,214,104,169,114, 6,140,
+ 3, 97, 68, 13,215, 92,213,168, 12,127, 43, 94,106,171,126, 30, 85, 16, 20, 88,162,254,205,145,186,182,232, 94,146,193, 23, 0,
+164,182, 98, 9, 88, 22,108,172,101,179, 7, 50,101, 70, 68,203,109,183, 52,103, 69, 92,147, 6, 89,142, 45, 18,172,201,115, 42,
+103,250, 61, 46, 37,167,249, 89,146,241, 46,220,102,175, 50,184,140,145,190,138,107,172, 16,148, 59,162,204, 20,249,243, 72,195,
+ 11,170, 41, 88,198, 88, 50,144, 77,212,112, 27,143,158, 69, 60,235,231,193,165,239,207, 60,101, 89, 25,168,192, 33, 78, 18,207,
+207, 74, 33, 85,241, 64,253,255,182,244, 1, 15, 24, 21, 67,188,219,164,173,186, 70,170, 34,236,141, 65, 48,166,223, 59, 46, 30,
+221,224, 70,230,117,118,216, 44, 29,167, 1,209,232,178,165, 68, 73, 54,114,150, 86, 47,224,193, 5,136, 45,170,136,150, 70,116,
+ 47,185,106,109, 26,144,139, 82,193,248, 58, 48,132,129,244, 66,224,148,160, 95,108, 6, 76,143,167,128, 52,140,228, 43,166,215,
+ 37, 3, 34, 8, 0, 19,200,220,183,168,161,168,161,112, 35,168, 27, 46,210, 14,208,235,207,117,166,184, 71,190, 88, 56,248,151,
+ 9,203,156, 22,223, 68, 65,140, 8, 77, 82,221,201,193,118, 21,232, 28,232,125,115, 60,175, 82, 56, 34,121,155, 7, 37, 68, 53,
+204,201, 27, 54,233, 5, 68,187,211, 36,171,186, 97, 14,148, 35, 67,127,199,245,111,203,228,112, 85,219, 14, 52,216,241,114,195,
+ 32, 18,163, 40,245, 2, 78, 72,135,243,173, 4,128,207,178, 27,139,148, 69,178,180, 40, 80,229,120,224,107, 14, 60,244,233,188,
+ 12,180, 85,160,124, 51,206, 49,189, 71,204, 19,168,106,255, 96,236,198,227, 83,166,217,113,160,222, 11, 8,104,148,148,150,151,
+184,255,176,233, 21,230, 44, 90, 4,233, 68,145, 0, 20,226, 94,154, 32,114,236,112,187,241,119,219,117, 9,217,142,225, 25,118,
+206,225,237,156,253,193, 32,104, 36,145,166, 21, 73,184, 16,155,161, 53, 17,226,160, 30, 11,155,152, 25,180, 40, 37, 73,142,108,
+134,181, 40,145, 93,169, 6,230,246,239,116,206, 66,195,243,102,199,208, 36,254,140,129, 64, 97,222, 10,148,153,108, 83, 21, 72,
+ 83, 24,206, 1,179, 23,219, 85,130,255,139, 25, 52,201,130, 17,200,113, 47,137,179, 60,165, 56, 11,148, 80, 70,148,177, 81,239,
+ 10,240, 41,252, 51,211,220, 50,102, 9, 98, 22, 48, 0,112, 62, 51, 79,223, 58,214,190, 53,250, 50,195, 92, 56,156,129, 42, 1,
+182,115,202,154, 70,246,108, 70, 66,163,224,162, 6,166,141,184, 83, 56,209, 96, 49, 37,237, 83,146, 82,179, 83, 68,203, 43,185,
+119,214,115, 95, 4, 43, 24, 64,195,144, 41,229,112,251,152, 57,131,131, 0, 0,202,148, 29,136, 21,173, 19,225,140,225,106,153,
+ 33,190,103, 67,202,190,193, 14, 85,194,108, 76, 56,116,152,129,137, 76, 38, 39,129, 23, 14,175,169,201,200, 67,160,161,108,135,
+209, 30, 89, 54, 25, 84,130, 12,131, 85,212,238, 77,152,144,222, 64,107, 0, 60, 36,210, 22, 60, 57,215, 46,236, 4, 40, 65,172,
+171, 15,118,105,169, 0,161,193,246, 44, 54,186, 46,140, 34, 3,130,123, 48, 88, 30,253,150,100, 28, 25,235,114,190, 89, 51, 76,
+248,168,185, 22,168,247, 86,137,197, 95, 52, 85, 84, 7,210, 60,136,134,116, 86,235,102,106, 12, 91,127,244, 46, 12,169,165, 55,
+208, 11, 54, 49,130,142, 86,244, 97, 48,121,146, 60, 70,219, 46, 13, 53,137, 25,114,100,218, 51, 3,141,143, 37,170,200,238,121,
+ 5, 16,138,129,206, 97,136,211,186, 2, 38,137, 69,195, 14,138, 1,254,120, 42,210, 3,138, 91,116,143, 31,193, 65,154,154,166,
+ 48, 86,163, 66, 22, 77,142,217,152,130,238, 88, 51, 43,150,106,210, 77,171,144, 71,174,104, 68,138, 34,246, 55,116, 46, 44, 13,
+ 61,218,143, 83,189, 49, 57, 53,138,136,104,132, 87,194,145,216,208, 13,142,128,227,239, 17,167, 11,151, 72,176, 20,116, 1, 44,
+ 33,125, 60,156,203, 6,164, 44, 43, 5,122,188,227,136, 12,167,107,159,190,223, 40,103, 38,140, 50,122,205, 69, 28,145,187,232,
+255,190, 49,214, 91, 39,241,155,241, 59,235, 68, 93,219, 26, 22,209, 40,214, 0, 4, 48,141,200,188,102, 95, 48, 91, 65,137,147,
+ 62,166,254,181, 20, 82,184,161,188, 8, 8,232, 64,184,209,150, 87,156,162,196,188, 30,144,132, 42,130,186, 33,109,240,130,194,
+207, 55,148, 54,130, 61, 53,246, 54, 37, 51,243,238,101, 2,101, 97, 42, 19,105,106,184,150, 24,208,241,226,120,117,173,204,179,
+ 4,135, 29,132,122,204, 70,150,138,142,186, 33,172, 45,202, 45,171, 26, 15,156,179, 0, 81,198, 43, 64,173,148, 21,196,167,229,
+182, 44, 19,179,212,181,159,140,130, 12, 37,132, 8, 38, 42, 82,222,120,114, 8,106,230, 19, 58,238,131,146,113, 98, 40,183, 77,
+115, 96, 16,214, 89, 88, 6, 83,168, 1, 70, 33, 70, 37, 11, 74, 5,248,117,226, 50, 91, 38,101,188,140,126, 87, 95, 42,243,127,
+ 73, 1, 30, 52, 44, 64,161, 0, 32, 18,102, 90, 56, 59,144, 1, 12,105,197,184, 40,171,196, 49, 37,128,100,149,200,170, 58, 64,
+214, 49, 4, 37,202, 24,173, 6,146, 3,131, 75,148, 95, 27, 67, 77, 43,101,196,196, 64,139,138, 75,163, 5,194,140,146, 88,224,
+ 57, 52, 92,239,150,190,140,224,103, 2, 26,158,149, 95, 70, 39, 16,116, 15,136,179, 19,224, 41,118, 88,187, 30,171,115,147,208,
+213, 64,208,246, 11,211,116, 41, 37,241,155,140,113, 61,125,157, 57,192,195, 62, 58,130, 25,181,164,168, 89, 26,203, 48, 17,100,
+202, 28,251,160,107,111, 40,255, 77,217,129,234, 2, 74,139, 33,154,145,132,122,167, 0,180, 16,114, 18, 33,205,164,155, 42, 99,
+125,164, 68,234, 83,132, 87, 56,164,164, 27, 51, 65,218,200, 34,212,142,197, 35, 48, 55,192,131, 2,153,184,204,146, 59, 26,152,
+234, 53,144,122, 17,240,204, 26,138, 94, 82,159,227, 21, 66, 99,166, 13,113, 0,189, 36, 69, 81, 25,112,193,171,133,119,247,164,
+ 71, 73, 81,137,180, 74,251,149,104, 72, 45, 77,202, 73,144,129, 27, 89,219, 72,227, 58,242,147, 25, 0, 52,224, 52, 97,234, 54,
+ 30, 86,186,175,120,237,142,204,133,109,107,161,128, 52, 3,127,237,227, 73,166,115,171,223, 57, 7,145,151, 69,255,222,173, 58,
+ 69,232, 83,217,163,172, 56, 30,251, 0, 24,103,124,211,165, 1,165,152, 28,141,188,193,161,110,134,180, 38,214,205,183, 80, 32,
+ 73, 43, 69, 54,161,148, 44, 19,234, 94, 49,141, 28, 77, 53,222,253,185, 90,136,110, 66, 72, 60,100, 14, 2,152, 85, 58, 30,223,
+ 35,181, 38,177, 23,166, 76,181, 43,118, 63, 96,243,198,159,101,208, 96,240, 81, 45, 61, 95, 5,152,222, 40, 26,209, 72,216, 58,
+ 91,192,210, 73,132,140, 59, 67,232,139,211, 15, 71,100, 21,242,124, 37,180, 20,166,107,162, 44, 27,172, 0,177, 42, 13,147, 70,
+203, 43,146, 68,103,106,192,142, 36,202, 77,228,104,223, 41,187, 82,165,137,169, 70,197, 44, 90,225,198, 87,201,226, 83, 85, 40,
+161,168, 5,106,187,220,176, 3, 8, 36, 78, 61, 67, 8,145,147, 69,111, 5,138, 87, 5, 36,121,188, 6,168,179,180, 2, 93, 73,
+ 28,116, 90,147, 81, 22,216, 59, 44,183,192,128, 76, 46,109,125, 22,121,208, 72,197,100,201,249, 54,225, 68, 5,181,210, 77, 85,
+ 33,195,174, 83,236, 67, 85,108, 2,212,246,151, 80,158, 27, 29,171,130, 34, 80, 5, 34,111,110,192, 12,226, 64,181, 40, 1,138,
+ 43,249,185, 90,160,144,227, 33, 66, 22, 27, 0,115, 32,152,211,178,135, 88, 83,220, 92, 64, 70,181, 21,157, 90, 9,167, 37, 9,
+199, 33, 75, 41,105,124,175, 32,243, 36,201, 24,103, 52,136, 64, 89,132, 83,116, 78, 18,216, 16,209,192, 8,245, 18, 86, 20, 80,
+157, 7, 47, 0, 1,130,140, 78,137,108, 78,176, 6, 80,203, 74,180,212, 8,242, 62, 45,149, 77, 69,179, 60,155, 92,131,222, 93,
+ 20, 99, 33,160, 72, 25,138,141, 17, 48, 88, 80, 80, 52, 35,186,224,210,173,168,232, 44, 5, 80,213, 38,126, 1, 8, 62,210,232,
+194, 40,216,148, 36, 46, 56, 16,214, 43, 56,234,156,166,119, 20,162, 84,175, 23, 13,187,102,208,128,244, 86,116,173, 69,142,201,
+197,112,209, 73,130,208,210,255,130, 17, 94,195, 59, 55,113, 25, 51, 18, 54,121,145, 2,209,128,220,164, 1,118, 24,162,124, 76,
+ 75,193, 2, 46,148, 65,115, 40,202,144,167,185,100,212,166, 1, 42, 40,138,116,133, 66, 35, 91, 0,180, 83,146,254, 48,143, 41,
+ 99,198,201,201, 0, 90, 76,245, 49,142,122, 42,164,164,189,122,203,192, 59,230,201, 73, 25,254,126,176, 76,139, 96, 99, 52,232,
+197,235,116, 75,240,248,247,117, 81,107, 55, 14,238, 80,243,217, 2,222, 48, 3, 11,149, 20, 0,181,209,177,215,127, 55, 10,195,
+166, 88, 82, 57,195, 0,150, 62,161, 75,200,201, 46, 0, 40, 57,165, 30, 5, 12,172, 56, 16,199,234,166, 62,129,134, 19,174, 33,
+246,130, 32,157, 66,173,214, 59,164,209, 36,244,195,113, 35,143, 58, 57,235,249, 87, 16,105,162,182, 34,217, 4, 84, 5,194, 39,
+129, 53, 38,206,217, 78, 10, 92, 9,116, 19,231, 72, 14,112, 67,174,114,113, 32,143, 36,225,111,224, 1,155,242, 92,147, 6,197,
+232, 95,198, 52,191, 56, 90, 90,128, 79, 39,133, 18,248, 77, 72, 32,226,111,121,210, 28, 0,193,148, 34,150,140,153,147, 41, 43,
+215, 74,157, 22, 48,204,145,158,111,176,208,133, 60, 69,143,207, 47,107,115,176, 70,199, 89, 48, 37,145,181, 0,232, 91, 97,234,
+ 20,247,191, 80, 51, 34,107, 72, 8, 53,250,226, 20,218,233, 46, 21,172, 72,121,115, 92,170,127,207, 20,201,141,233,254,113,109,
+ 23, 23,183,177, 0,222,128, 85,196,220,100,122,216, 17, 15,168,200,150,203, 43,130, 25,240, 70,201, 44,171, 2, 82,163, 16,137,
+193, 82, 73, 84, 61,206,217, 38,202, 96, 79, 2,177, 29,228,154,155,248, 14, 3,117,176, 21,211, 9, 57,114, 20,169,145,204, 34,
+ 1,229,183,160, 2, 2, 91,200,179, 83, 28,202,115,210,158,103, 56,201,157,123, 96, 5,246,125, 78, 58, 1,228, 24,143,170,223,
+ 81,147, 96,168, 35,223, 9,128,110, 44,192, 10,145, 96, 42, 0,133, 45,148,117, 56,199,165,206,143, 87, 55,111, 25,207,115, 49,
+214,114, 11, 39, 0,200,240,179,106,104, 72, 16,228,168, 28, 41,181,162, 0, 43,134, 72,158, 17,124, 65,109, 58,145,136,207,196,
+ 86,129,136,195, 37, 20,161, 78,198,171, 22,209, 63, 27,224,183,216,240,167, 90,176, 78, 86, 6,217, 68,151,163,148,188,176,129,
+147,139,155, 66,113,222, 34,212, 97, 65, 52, 1, 27,200, 20,206,109, 56,186,204, 58,214,250, 90, 8,155, 80, 1,189, 98,135,227,
+ 71,251, 20, 67,114,199, 4,103,255,126, 75, 98, 90, 67, 20, 73,138,127, 90, 95,113, 17, 20,130, 72, 81,109, 24, 77, 17,182,165,
+163, 59,189, 7, 29, 71, 9,198, 1,100, 83,184, 57,213,124,244,189, 75,125, 62, 54, 17,247, 73,120,198,126,143,244, 81,141, 17,
+121, 25,106,213,177,185,143, 92,111,173, 15, 85, 80,200, 27,126,191, 81,108,193, 85, 55,222, 94,179,132,247, 14,115,182, 43,224,
+120,137, 4,251, 65, 12,172, 36,176,192,139, 99, 16, 88,211,111, 35, 66,123, 76,193,218, 26,152,194,162, 73,118,182,142,127, 31,
+163,241, 98, 72,123, 43, 39, 76,145,236,160, 41, 80, 20,177,159,203,123,202,203,183,101,204, 29,240,114,217,227, 69,211,163,110,
+155,119,184, 12, 76, 2, 45,198, 54, 82, 76, 95, 31,177, 62, 57, 39, 29,141, 91, 60,149,220,121,148, 83, 0, 16, 42,205,122,170,
+ 88,103,166, 86,112,133, 18,238, 69, 26,220, 74, 75,179, 66,223, 77, 32,202,172, 76, 80,210,106,165,164, 81, 1,142, 93, 33,145,
+ 37, 55,157, 41,134,127, 25,217, 53, 12,197, 50, 78, 58, 54,147,209,237, 34,189,109, 37, 65,230,100,188,186,100,192,128, 11, 14,
+217, 12,151,178,165, 53, 74,146,198, 86,193,107,131,136,223,249,196, 73,183,187,186, 35,229,234,149, 78,133, 18,136, 50,217, 51,
+145,194,185,111, 74,213,123, 81,206,212,240, 67, 76,162,152, 39,240,163, 59, 3, 0,128, 92,145,163,110,241,222,156,231, 73, 35,
+149,154, 24, 53, 68,185, 95,135, 68, 23, 5,226,220, 72, 6, 69,116,114,119, 41, 81,130,120, 24, 55, 55,250,141, 2,165,180, 34,
+103, 77,170,189,149, 87,118, 5,186, 26, 40,146,146, 24, 73, 97, 67, 4, 88, 17,230, 48, 10, 38,125,149,185, 85,129,243, 63,237,
+195, 1, 50,119,225,117,100,168, 36, 65, 32,197,119, 41,150,194,215, 84,205,165, 56,201,160, 7, 85,101, 21, 40, 19,133, 61, 92,
+ 44, 37,116,152,145,136, 88, 40, 60,113,227,117,150,148, 40,206, 96, 11,211,212, 45, 58,235,184, 80,211, 95, 64,178,192, 9,208,
+ 47,108,195,198, 19, 76, 92, 81,192,194, 58, 55, 93, 12,240,160,160,150, 2,169,108,221,168, 37, 59, 57,147,193,233,112,193, 86,
+136,174,166,141,180,166,135, 22,228,254,174,148, 4, 26, 49, 48, 97,210,126, 46,228,155, 67,214,234,143,137,108, 64,190, 49,213,
+ 6,212,177,165,160, 64,207, 84,235, 69,154,133,167,223,213,229,171, 64,157,152,140, 35,131, 78,117,174, 91, 21,164,222,105,180,
+178, 80,197,174,253, 67, 74, 93,211,215,251,251,205,111,248,251, 88,227,209,251,177,173, 19,110, 41,197,233,124,251, 53,187, 51,
+130,122,116, 2,119,138, 80,158,234,149,117, 4,115, 89,250,100,152, 67, 11,182,242, 66,113, 99, 55,124,118, 57,162,212,130,225,
+ 16,202,111, 37, 34,102, 75, 63,119,156,144,177, 17, 73, 84, 5, 26,150,209, 97,224,146, 50,104,192, 91,149, 64, 65,107,234,172,
+ 84,243,118,151,238,164,117,150,134,210,140, 4, 47, 34, 21,110, 77,105,202,162,191,226,210, 65, 62,106,181,179, 26, 49,254,172,
+100, 21, 62,233, 18,194,187,112, 86,211, 98, 9,177, 2,177, 77,222, 13, 74, 77,221,192,200,128,167,240,111,225, 0,173, 22,236,
+164,161,153,138,202, 89,179,206,128,100,165,137,204,106,219,139,169, 74,208, 74,155,102, 30,216, 4, 17, 32,118,154,206,205,106,
+116, 85,157,205, 37, 56, 19,222,100, 5,140,253, 98, 40,145, 72,142,138,196, 27,148,212, 70,248, 9, 64,149, 10, 96, 51, 85,186,
+ 2,169,221,156,101,181,245, 55,148,102,100, 85,109, 5, 37, 85, 57,115,143, 49,244, 29,241, 21,165,237,165, 0, 90,233, 2,200,
+ 31, 4, 48,174, 83,121,163,134,209, 2,106,109,168,179, 31,236,163, 18, 64, 47,124, 30, 18,204,146, 10, 44, 7,204, 52, 22,206,
+133, 82, 15,188, 18, 61,150, 82,115, 42,156,223, 45,136, 13,244,113, 34,248,145,140, 89,104,179,135,153, 98, 22, 14, 0,102, 77,
+147, 34,104, 78,140,172,211,234, 78,126,105,164,234,171,179, 47,188, 76, 53, 69, 0, 32, 24,195,169, 12, 16, 21, 10, 73,153, 35,
+210,192, 67,150,168, 67, 47,233, 44,121, 37,139, 77, 30, 89,187,208,208,120, 78,208,151,129,178, 6,132,151, 5, 91,237,126, 4,
+234, 89, 45, 95, 51, 62,139,146, 82, 41,156,210,196,158,190,230,160,168, 20,230,246, 52,115,109,176,152, 2,215, 20,221, 84,104,
+ 32, 50, 44,220,237,193, 92,177,202, 93, 72,166,116,229,180, 68,208,230,152,162,123,155,213,164,195,249,224,212, 93, 39,113,202,
+ 19,121,159,129, 18,146,193, 57,232, 73, 44,146,230, 51, 56, 45,246,123,142,116,147,192,121,145, 58, 24,203,228, 53,199,247, 47,
+ 82,207,133, 44,162, 50, 24,247,109,201, 13, 84, 38, 16, 77,150,224, 36, 0,100,133,112,133, 56,103,155,176,233,136,228, 26,249,
+ 36, 2, 83,146, 76,231,112,158, 91, 18,216,147,229,178,142, 52,178,233, 57, 87,165, 28, 77, 5,168, 97,242,142, 75,130,205, 35,
+229, 49, 82,181,134, 50,195, 23,110,142,167,186,212, 72,168,140, 27,106, 71,236, 93,209, 44, 2,223, 18,241,136,198, 40, 77, 12,
+155, 76,213, 54,167, 5,133, 40, 44,130,177, 58, 22,160, 73, 29,172, 54, 78,157,234,212, 58, 66, 1, 25,142, 8, 31,213,178,106,
+177, 40,160,115,136, 89,124,182, 75, 37, 24,151,231,181,212, 60,126, 15, 53, 82,200,204, 77,177,135, 83,186, 91, 10,138,185,168,
+ 65, 73,155,149, 57,105, 21, 74, 63,213, 65, 50,150, 55, 42,234,204,180,210,198,216,171, 32, 40, 88,193,162,176, 57,180,160, 0,
+ 49, 86,161,212,158, 18,203, 20, 78,137,235,108,110, 69, 36, 47,102,236,133, 0, 37,140,233,119,129,141, 74,175,177,178,131,218,
+ 70,166, 2, 75, 19,245, 69, 93,220,149,198,188,214,104,142,113,201, 28,231, 6,205, 45, 6, 96, 45, 40, 96, 35, 78, 99,179, 53,
+180, 20,216, 56,155, 44,131,165,186, 75,206, 72, 67, 29, 55,158,117, 71, 40,150, 5,116, 59,111, 11,106, 81,121, 77, 77, 73,170,
+ 55,219,145,182,187, 85,224, 8, 64, 93,173,112,219, 14,183,250,196, 17,160,184, 5, 29, 17,106,233,202,251, 95, 1,102, 54,212,
+ 54, 94,215,146,186,181,164,208, 55, 88, 48,130,106,133,224, 11, 16, 57,157,239,159, 69, 65, 60, 10, 47,136,137,144, 53, 25,145,
+120,142,168,161,207, 73, 18, 25,196,208, 82,250, 98, 2,127,187,168,176, 49, 15, 40,132,167,114,230,201,173,105,116,121,171, 32,
+219,106,134,213,166,117,181,198,104,177,199, 58,179, 37,185,122, 21,116, 29, 36,219, 93,137,192, 35,149,138, 21, 71,226,112, 83,
+165,102, 46,200,100,196,101,204, 88,141, 53,117,231, 79, 35, 95, 24,170, 73,157,214, 78, 83, 93, 8,123, 51, 67,106,202,110,120,
+109,248,214, 21, 80,167,236, 26,209,160,150,228, 77, 17,196,105,106,158, 94, 7,163, 60, 81, 85, 86,235, 62,145, 90,175,190,105,
+ 79,233,149,168,111,154, 46,116,161, 16, 9, 17,132,148,147, 25,209, 80,225, 18,232, 30, 38, 98,124, 67, 16,141,209,107, 41,160,
+160, 68, 96, 0,176,110, 86, 97, 14, 23,231,206,178,131, 6, 59, 14, 4,183, 29,107, 97, 96, 58,158,156,133, 14,188,229, 5,179,
+ 59, 56, 29, 35, 55,120,170, 27, 87,104, 57,187,109,105,219,106, 70, 96,122,206, 75, 85, 63,171, 92, 61, 13, 78,218,187, 90,234,
+244,174,174, 96, 10, 22, 80,186,253, 25, 45,164, 52,169,168,152,141,216,202,176,131,150,130,203,218,116, 70,162,136,252, 88, 23,
+134, 71,160,144,147,101, 88,240,236,168,223, 0,171,141,233,240, 36,106, 19,104, 84,140, 90,204, 0,141, 96, 59,225,196, 89,157,
+234,215,177,139,118,194, 64,167,162,164, 84,133,202,138,216,169, 9,219,146, 34, 35, 72,154, 94,156,222,247, 27, 0, 75, 12, 26,
+ 4, 65,163, 9, 93,126, 67,121, 59,109,207,158,174,160, 92,174, 33,221,213, 65,113, 0, 21, 36, 17,125, 29,144, 71, 71,219, 74,
+ 35,173, 90,114, 64, 71,186,112,240,191,163,186,158, 41, 63,214, 84, 73,236, 25, 98,235, 93, 50, 6, 6,123, 77,190,128, 66,113,
+169, 12, 34, 59,156,129,180, 77,100,105, 6,181,195,134, 65,208, 12,138, 25, 49, 4,121,159,153,132,131,216, 55,200,237, 26,200,
+115,195,154, 45,160,105, 70,230,108, 75, 18,173, 79,210,162, 45,190,138,178,114,219,176, 23,213, 20,161, 73, 82,129,116, 31,140,
+115,154, 27,123, 40, 8, 2,104, 87, 20,221, 56,233,209, 51,116,108, 91,145,196,165, 70,145, 13, 91,109,227,117,165,134, 64, 25,
+241, 43, 32,125, 61, 61,207,178, 18, 49,167, 78,139,107, 48, 12,173,138, 93,139,119,162,100,218,129, 27, 33, 77,247, 55, 14,137,
+231,202,171, 29,234, 76,153,212, 28,188, 81, 31, 65, 2,239, 19, 74,161,209, 15,190, 64, 22,197,235,219, 82,147, 16, 87,176, 67,
+ 98, 82, 84,232,153,193,209, 2,199, 5,169, 3, 15, 34,107,202, 3, 72,159,195,246,220, 65, 15, 37,199,110, 5, 46, 10,101,139,
+ 85, 1,122, 10, 60, 93, 61,108, 5, 24,193, 32,247,215,180,206,100,104,114,128, 84, 1,247,170,135,109,191,174,158, 47, 72,140,
+250, 99,243,226, 75,110, 49,135,173,249,218,206, 71,150,178, 43,133, 0, 48, 22, 92,239, 17, 0, 40,226, 66, 29,174,152, 71,209,
+ 77, 75,192, 75, 92,210,100, 68, 77,184, 98, 1,242,150, 73,193,142,178,166,180, 55,237, 40,145,154,234, 40, 64, 26, 2, 29,177,
+ 48,146, 35, 77, 89,219,181,118,170,133,189,148,224, 12, 51, 20, 61,151, 16,109, 21,229,210, 71, 95,108, 67,255,178,223, 39,214,
+ 73, 59, 78,220, 90, 93,200,100, 20,184, 40,152,213,200,207, 71, 84,190,115, 2,142, 21,239, 58,229,114,167,150,165,224, 64,163,
+155, 1,232, 58, 78,212, 13,139, 26,150, 35, 61,167,122,171, 85, 82,164,126, 17,228,181, 6, 93,165, 67,157,229,196, 99,141,198,
+ 47,133,115,141, 41,199, 29,224,168,170,192,145, 95,179,131, 86, 74,146,243,100, 72,243,121,111,112,138,243,228,166,149,239, 10,
+132, 7, 26, 76, 8, 68,227, 24,128,182,109,163,151,169, 37, 35, 37,161,144, 80,219, 42, 32,158,212, 53,145,107, 56,202,212,182,
+ 62, 6,241, 32,172, 56, 23, 94,128,207, 32, 62, 5, 6, 38,194, 36, 83, 90, 35,234, 42, 8,164, 28, 74, 49,213, 29, 71, 1,167,
+145,217,116, 30,130,143,156,219, 45,247, 27,105,101, 55,102,197,219,176, 98, 83, 15, 74,252,219,174,105,227, 57,105, 31,228,172,
+ 90,116, 1,172, 41,171,150, 1, 86,185,161,204, 82, 8, 12,171, 56,245,168, 85,195,172, 43,117,135,216, 11,176,219,152,245,214,
+ 0, 54,122,148,198, 82, 30, 28,128,113,133,163, 99, 26, 33,176, 75,146, 2, 26, 2,222,164,233, 48, 23,181,253, 44,106, 37, 77,
+132, 45, 88, 71, 0,166, 70, 33, 94,225,110, 83,210, 46, 96,175,253, 11, 0,107, 19, 5, 18, 93, 6,206, 20,230,117,252,113,230,
+213,212, 52,202,144, 99,253,158,241,251,219,213, 38,107,174,141, 32,211,139,101, 84,115,138,161,195, 37,182,109,157, 34,237, 58,
+ 81,219, 80, 59, 68,196,245, 75,120, 52,232,156,130, 80,107,175, 61, 5,252, 81, 38, 99, 40,221, 90,149,176,166,242, 4,130, 68,
+ 97, 79,151,220,213,180, 90,137, 76,163,111,111,182, 84,194, 17, 39,136,246, 13,100, 55, 1,134, 75, 60,232, 72,235,173,182,236,
+ 75,209, 21,103,121, 67, 19,171,111,189,194, 86, 33, 75, 0, 13,203, 18, 34, 41,132,244, 45,148,167, 53,144, 12, 71, 83, 5, 1,
+238, 98,210, 46,112,142,189,170, 51, 25, 42, 89,235,158, 21,178, 41,168, 96, 23, 37, 90, 9,234, 0,148, 24,194,176, 75,122,127,
+103, 53,238, 46, 64, 54,219,154, 70, 91,234,166, 84, 56,183,105, 45, 46,104,194, 9, 73, 27,233,221, 50,165,226, 71, 35, 40,208,
+191, 36, 54,156,142, 10,200, 81, 22, 5, 21, 9,229,224,112, 50,122, 11, 7,175,161, 36,171, 0,223, 90, 38,225, 23, 70,196, 62,
+110,102, 83, 19, 8,108,248, 99,226, 48,117,168,153,143,159, 45,227,217, 14,148,183, 33, 69, 95,192,216,111,148,206,107,130, 11,
+192, 14, 44,149,159, 59, 69, 38, 77,177, 66,176,247, 60, 1, 90, 89, 82,127,242, 21,128,141, 88,121, 1,168,111, 94,191,139,187,
+222,149,232, 7,110,247,177,122,235, 94, 44, 69, 69,218, 20, 83,114,130,120, 16,147, 57, 6, 16, 16, 81,150,102, 21, 44,198,154,
+163, 81,161, 11,154,132,252,139,115, 87,205,105,146, 80, 36,115,168,119,202,132, 22,175,241,135,224, 76, 72, 84,146, 43, 1, 70,
+ 25,131,185, 64,195, 38,153,116, 34, 8,149,245,138,235, 71, 48,120,122,131,163,199, 93,201,181, 97,167,193, 41,201,149,179, 96,
+ 72,234,165, 94, 84, 76, 10,234,218,210, 8,162, 72,211,173, 78, 82,203, 92,108, 56, 69,222, 64,195,143,207, 17, 1, 23,108,254,
+ 36,172,206, 61,123, 38,178,211,245, 82,177, 67, 26, 1, 88,182,230,174,104,174, 39, 95, 27, 7, 18,178,187, 85,123,196,123, 94,
+ 70, 80, 78, 59, 59, 47,150,235, 88, 32, 88,143,215,115,219,169,101,180, 36,114, 52, 26, 53, 94,163, 19, 31,153,212, 2,233,125,
+ 44, 1, 54,190,177, 58,107,156,244, 61,180, 90, 0,221,228,115, 54, 1, 21,219, 82,139,224, 70, 85, 49, 3,165, 27, 72,159, 81,
+ 52, 87,154,200,163,231,203, 10,236, 19,200, 12, 71, 6,145, 80,119, 61,112,175,233,217,134,200,211, 16,177, 75,194, 50, 68,177,
+136,147,131, 35,137,201, 64,161,227,143, 14, 31, 6, 71, 41, 18,151, 36,144, 70, 32,154,196, 64,212, 23,160,227, 76,148, 73,141,
+254, 7, 27, 86,141,146,104,229,183,169,173, 43,186, 85, 35,197, 81,109,231,162, 32, 9,135,195,195,192, 39, 16, 31,204,169,111,
+110,184,144, 32, 43,146,196, 50,132,178, 38,187, 3,191,124,130, 77, 2, 18, 46, 54,162, 27,239,178, 74,244, 92, 87,157,237, 9,
+ 4, 36, 41, 59,107, 41, 97, 79, 19, 23,137,118,145,147, 92,152,162, 15, 81,238, 48, 80,225,134, 52,239, 40,119,112, 43,140, 28,
+226, 80, 19,234,138,214,214, 5, 59,152,178, 82, 78, 76,183, 55,106,137, 21,120,215, 76, 33,215, 89,200,142, 53,137,174, 88,204,
+ 33,181, 56,219,192,238,255,190,182,198,165, 72,216, 13,142,122, 82, 89, 83, 39, 67,240,147,219,135, 18,134, 29,145,230, 5,116,
+ 6,204, 73, 40,192, 53, 71,192,163, 40,180,112,164,131, 0,162, 56, 52,225,139,235,181,119,133, 1, 15, 17,247,166,131,180,108,
+150, 60,129, 30,223, 0,244, 51,175,118, 41,153, 6, 24, 70,161,246,142,132, 34,210,181,116,128,141, 19, 92,164,199,203, 76, 19,
+215,119, 91, 40, 37, 27, 13, 80, 40, 0,236,100,104, 41,199,168, 87,192,226, 70, 71, 32,237, 9, 97, 95,234,164,230,115,181,184,
+ 10,134, 58, 76, 93,136,214, 80, 3, 92,149,134, 59, 75, 32, 1,140, 10, 88,133,155,104, 21,120,119,230, 60, 20,201,209, 68,153,
+114, 22,195, 90, 91,202,210,157,144,132,113, 80,214, 31, 3, 12, 94,156,190, 97,199, 5, 96,106,106, 23, 13, 44,148, 0,124,167,
+242, 74, 11,180, 67,234,101,146,238, 68,204, 2, 5,144,169, 16,116, 16,162,192, 5, 24, 67,195, 82,254, 94, 15, 69,122,149, 59,
+244,209,162,213,165,141,189, 67, 86, 24, 4, 84,182, 64,116, 17, 70,184,149,114, 31,137,209, 89, 7, 46,126,112,102, 97, 91,230,
+117, 88,237, 48, 2,222,237, 26,105,194, 14, 76,139,230, 84,137,210,139,209, 50,164,216,145,134,197, 73, 98,139,146, 82,155,117,
+ 83, 19, 72, 95,175,164,217, 81,158, 90,208,108, 4,119,157,192, 33, 8,231,165,172, 66,201, 32, 75,139, 59,188, 0, 93,172,131,
+ 72,123, 98,143,101,167, 59, 26,125,114,104,177,251, 53,130,214,131,228,136, 95,224,134,174, 0,172, 11, 71, 19, 29,202, 45,161,
+ 9,187,176,249,253,196, 8, 20,179,134,184, 61, 76,185,114,203,216, 44,177, 53, 46, 89,183,183, 58,189, 44, 83,103, 64, 60,182,
+190,236,188, 82,176,160,209, 14, 21, 1,160, 26,231,186, 78,225, 85, 90, 7,197, 68,202,160, 14, 73, 30,165, 25,230, 2,147,117,
+ 81, 90, 46, 47, 68, 93, 69, 82,182,106,124, 71,215, 41,103, 30, 34, 32,137,227, 38,110,165,214,130, 67,176, 67, 32,178,175, 14,
+108, 50, 3,110,189,176,215,128,169, 33, 37, 11, 32, 41, 75, 88, 21,168, 37,121,255, 92,136,168,129,135,111,147, 96, 97,218,250,
+ 26, 98, 20, 4, 22,234, 57,110, 37,106, 15,143, 2, 46, 89,194, 16, 1, 78,210,226, 84,166, 5, 4, 29,187, 56,129, 42, 98, 51,
+232, 10,100, 62,192,155, 53,157,121,144, 12, 25, 15,186,237, 28, 90, 6,100,235, 36,227, 26, 40,170,170,188,240, 2,252,108,144,
+ 75, 21,113, 42,157,101, 14,196, 35, 91, 73,148,168, 2,189,202,173,134,187,212, 55,116,154,238,180,186,118, 53, 9, 77, 49,193,
+156, 2, 66, 29, 50,129,177,212, 97, 18, 77,103, 21,137, 29,160,170, 84,108, 81,145,203,220,255, 15,234,231,222, 94,149, 82,183,
+168, 80,186, 2,101, 65,106, 53,141,154, 14, 79, 2,169,213,110, 93,195, 36, 1,145, 18, 74,242,170,104,224, 81,187, 63,201,176,
+242, 42,235, 65,210,102, 4, 70,210, 56,254,134,203,240,106,204, 18,196, 71, 4,132,120, 36,156, 20, 41, 38,152, 63,221,109,228,
+187, 67, 36,110,108, 21,239,198, 88,206,192,137,198,222, 16, 48, 65,167, 84,181,228,180,161, 68, 86,174,242, 36, 38, 99, 6, 27,
+169, 66,172,153, 62,161,232,106,215,162,162,221,217,129,156,118,133,212,172, 52,234,105,222, 16, 6,203,149,188, 42,104,229, 77,
+150,160,127, 66,139, 11, 88,169,170, 74,195,143,163,117,247,138,154,110,115,208,192,138,161, 11, 94,227,222,163,166, 71,166,177,
+ 67,185, 76, 90,144, 32,175, 70,206,222,181,142,179,122, 27, 24, 57,105,168,157, 9,163,208, 84,236,165,161, 55,147,112,171, 16,
+ 0, 12, 10,166, 4,185,178,103, 47,145, 85,242,158, 5, 80, 90,100,130,246,185,148,211,214,152,253,144,198,185, 17, 8,112,124,
+ 95, 40,185,239, 68,248,147,109, 96,178,166,153,151,126,113,213,108,238, 8,108, 27,152, 69, 53, 38, 64, 53, 42, 47, 69, 83,180,
+ 49, 89, 81,170, 73, 97, 65, 43,243, 92,127,183,204,222, 66, 0, 25,200,112, 97,169, 15, 56,120,101, 72,127, 49,133,161,120,160,
+ 42,155, 89,154,102,247,176, 72, 11,151, 38,146,228,240,242,176, 85, 34, 27, 34, 91, 1, 78, 85,141,172, 69, 73,237,108, 47, 74,
+148, 2, 62, 96,226, 75,106,135, 27, 7, 50,112,163, 10, 87, 0,121, 88,176, 71,111, 68, 62, 5, 59,139, 81,164, 6,197,165,252,
+196,121,216,211,241,187,212,122, 80,156, 75, 77,185,169,136,132,188,172,101, 47,140,143,110, 9,224,226,148, 44, 78, 42,221, 12,
+ 97,142, 69,178, 40,241, 57,214, 17,171, 52,237,101, 21,108,228, 29,205, 34, 27,129,205, 75,188, 78,195, 83, 63,230,224,210,150,
+212, 6,215, 42,170, 92,197,107,222, 14, 82, 19,173,227,235, 61,233,188,129, 5,234,242, 7,199,178,170,198,190,101,110,172, 79,
+240,112,239,182,128,170,100, 17,192,112,126,219, 38,162, 83,171,179, 46, 12, 57, 63, 70,246,154, 26, 54,240, 98,167,200,252,225,
+248,131,194, 92,199, 89,239,156, 28,217, 30,101, 13,246, 58, 51,132,152, 92,178, 50, 84,106,231, 40, 77,202, 49,218,118,138, 75,
+ 54,150,201,176, 91,126,147,201,187,134, 57,111,190, 73,189,122, 83, 18,130,182,161,194,216, 76, 44,211,133,188,156, 17,125,140,
+139,172,107,110,161,153,158, 49, 26,152, 80,255,134,158, 52,117, 58,130,250, 53,131, 70, 56, 11,226, 16,194,185,148, 34,161,177,
+190, 86, 81,140,147, 24,147, 36, 30,116, 68,200,149,114, 15,135,160, 67,132,152, 14, 27,173, 19,129,220, 66, 43, 14, 73,106,138,
+195, 33, 60, 19, 25, 94,214, 14,110,154,206, 68, 3,175,215,145,244, 17, 44,170, 47,146, 3, 22,148, 22,110,155,251,172, 68,229,
+133,172, 61,115, 74,185,147,172,148,146, 37,129,207, 74,162, 23, 26,221, 45, 99, 20, 40, 1, 61,169, 97,107,144,164,164, 18,148,
+252, 48,224,105,120,234,112, 94, 35, 65,149,173,177, 81,241, 50,172,173,243,109,194, 52,120,195,142,192, 70,245,168, 14,152,100,
+166, 65,255,128, 25,212,240, 0,128,206,197, 5,125, 4,234,244,222,103, 4,105,158,201, 65,192,206,146,153,255, 79, 77, 95, 47,
+203, 58, 90, 38,185,115, 10, 25, 8,135,149, 16,143, 50,163, 91, 9,208,117, 50,149,104,135,210,214, 64,229,221,238, 15,184, 93,
+ 35,160, 30,245, 49, 40,120,239,185, 61,108,151, 16,241, 5, 0,204, 5,104,169, 35, 93,185, 86,160, 47,180, 93,212, 96, 50,162,
+215,105, 29,207,108,179, 40,156, 25, 17,158,250,195,118,170,165, 75,117,208,176,143, 28,136, 3, 22, 80,151,155,156,134,125,101,
+ 50,129, 82, 48,189,132, 90,221,128,190,205,218,109, 94,227, 52, 69,178,210, 68,226,130, 84,184,149, 8, 55, 54,199, 36, 9,153,
+ 80,198,160, 44,199,185,145,135, 80,116, 84, 74,158,219, 96,156, 70,222,187,138,236,152,124, 46,163, 80, 72, 86,201, 66,193,203,
+138, 81, 58,228, 47,177,189,102, 18, 84, 78, 84,166, 22,104, 40,208,197, 45,138, 42,158,236,146, 73, 5,206, 48, 10, 81, 47,171,
+ 46,158,129, 90, 89, 44, 18,114,149, 46, 11,107, 15,173,134,160,206,106, 7,137,104,136, 0,177,133,101,105, 48,166, 89,140,162,
+ 50,236,168,212,165, 57, 63, 10,134, 43, 50,181, 18, 93, 40, 45,206,232,242, 67, 20, 63,124,182, 27,192,102, 92, 29, 80,212,129,
+ 72,140,213, 98,139, 16,244, 60,199,188, 25, 37,190, 41,185,177, 43,174, 24, 17,189, 9, 36,117, 41, 52,158,209,164,233, 0, 27,
+153,149, 2,180,179, 87,110,252, 66,160, 57,221,110,200,209,236,198, 5,144, 76,170, 25,153, 24, 40,228,212, 58,165, 13, 22, 76,
+ 18,181, 68,180, 44, 86, 27, 62, 76, 83,150,195,156, 98, 74, 73,194,159, 66,171, 88, 27,195,102, 72, 34,187, 68, 17, 23,168, 89,
+193, 60, 23,108,177,211,212,152, 89,233, 73,134,198,158,230,175,149,120,194,104, 72, 34,172,139, 54, 42,194,158,238,213, 51,130,
+210,128, 46,217,231, 73,202,136, 8,172,112,236,163,144,186,188, 97,228, 73,105,223, 49,131,220, 53,251, 47, 74,116, 83,206,161,
+185, 67, 84, 82, 37, 67,168,161,224, 39, 42, 92,170, 12, 81, 99,188, 13,187,176,242, 38,128,144, 40,166,167, 43,185, 41,143, 69,
+175,214,200,201,193, 94,172,117,235,170, 0,197,100,208, 41, 53, 93, 65,218,155,183, 95,133,108,163, 64,214,213,154,127,141,199,
+173,161, 6,186, 68,251, 0,165,130,192,181,240, 90,245, 89, 33, 99, 18, 69,182,217, 21, 37, 57, 24, 32,157, 83,108, 11, 56,107,
+185, 69, 44,246,159,119,230,151,106,125,140, 70, 87,166, 38, 45, 3, 11,104,208,200, 88, 40, 34,191, 74,150,146,141,214,215, 8,
+160,147, 36,108,100,251, 42, 99,249,135,173,245,170, 68, 1,185,180, 20, 8,104,116, 82, 96,227, 27, 35,116, 0, 72,120, 11, 58,
+142,222,232, 29,168, 99, 85,201,185,228,130,145, 50,219,201,169, 60,101, 18, 94,152,248,119,194,171,117, 19,148, 58, 36,240, 54,
+ 61, 21, 99,244, 77, 64,211,231,198,142,171,242, 80,184,248, 34,189, 25,160,157, 86,112,195,143,218,128,124, 24,168, 18,110,144,
+109,114,170,146,154,101, 56,170,222,117, 75,235, 21,161, 68,143, 67,204,124,165, 44,234,211, 10, 78, 20,228,215, 66, 52,134,136,
+217,146,168, 48,208,122,208,145,246,181, 97, 41, 96,159,117,213, 97,183, 90, 99, 67, 97,221,134,244, 17,118,180,196,108, 12, 39,
+ 84,182, 68,244,169, 27,106, 41,173,244, 51, 39,145,148, 37, 68, 23, 24, 17, 59,154,187, 80, 52, 48, 33,107,244,177, 28,189,227,
+197,120,126, 1, 24, 66,137,228,162,253,143,151,112,206,214,226,144,145,235,203,145,159, 96, 45, 63, 88,166, 72, 68, 1,132,144,
+183, 21,108, 29,172,226, 35, 38,149,199,152,130,110,250,131, 71, 36, 28,124,113, 19,219,242,251, 38, 13, 41, 6,154,149, 76,209,
+141,180,157, 10,154,206,154,146,211, 37,158, 62,175, 80,179,148,212,246, 20, 51,196, 34, 88,229,166, 53,180, 0,147, 61,228, 44,
+ 78,226,248, 29,241, 86,197, 29, 2, 87, 27,112,149,107, 15,152,228,174, 62,191,237, 17,160,105,156,224, 10, 37, 29,101,148,100,
+ 72,178,207, 91, 7, 47, 37,252,193, 52, 7, 10,236, 39, 72,113,244, 44, 14,175, 70, 62,133, 51,226, 97,154, 87,225,200,181,185,
+244, 54,165,142, 93, 20, 49, 53,141, 53,105,143, 44,181,156, 81, 97,253, 84,125, 95,215,214,136, 97, 83,240,189,169,172,225,245,
+ 11,229, 61,146, 99,109, 88,175, 6,111,127,140, 11, 92, 23,254, 66, 27, 33, 85,111, 80, 67, 9,161, 77, 10, 36, 12, 5, 69, 2,
+189,137, 36,225,229, 1, 24, 19, 58,245,129,104,168,170,235, 32, 73,167, 80,188,179, 36, 37,165,144, 0,167,226,117, 10,175, 35,
+215, 21,111,225,141, 77,154,202,136,163, 42,222,239,129, 27,213,194,144, 14, 6, 38, 24,208,209,150, 32, 49,222,141, 74,149, 76,
+203, 82, 53, 27,105, 76, 11, 89,209,127, 33, 23, 20, 19, 84, 99, 75, 83,169, 74, 9, 92, 8,143,201,251,161,209,208, 34,131,162,
+ 32,109,195,202,229, 29, 82, 81,157,170,238, 84,220,104, 42, 41, 49, 72,193, 80,197,250,155,175,130,120, 80, 18,181, 0, 2, 61,
+128, 10,170,179,219, 84,130,112,147,118, 58, 0, 10,229, 52,185, 73,228,209,215,210, 70,188,180,162,184,148,116,132,120, 53,114,
+ 41,156, 29,136, 20, 39,224, 66,212,141, 98,105,116, 10,201,177,137, 80,147, 2, 34,123,175,164,126,206, 85,166,122,139, 71,163,
+ 32, 96, 96,155, 92, 5, 84, 42, 55, 81,142,178,181,167, 58, 52, 80,150,108,230, 49,120,229,227,171, 50,232, 18, 67, 37,148,163,
+249, 68,162, 23,130, 64,137, 35, 99,189, 22,142,106, 88,146, 54, 60,214, 20, 83, 65, 93,117,160, 24, 26, 96,145,152,128, 91, 46,
+ 9,164, 71,208, 62,212, 13, 23,182,216,177,250, 48,229,254,235, 5,242,104,213,211,235,226, 14,139,121, 8,131, 55,189,173, 95,
+214,113,208,231,208,185, 73, 14, 91, 5, 81,149,193,184, 88,234, 28, 29, 63, 44, 2, 50, 34,109, 41, 96,214, 94,231,229,169,149,
+109,234,164,144,149,174, 28,224,131,156, 97,219,238,107,220, 27, 97, 80,192, 66, 99, 92,114,196,200,148,213, 57,189, 93,103, 44,
+ 84,172,217, 0, 71,184, 41,129,101,130, 83,220, 41,108, 70,211, 10, 87,181,198, 4, 84, 4, 75, 20, 22,167,141,113,185,212,249,
+ 87,180,135, 0,108,154, 20,125, 17, 10, 40,216, 85,215,238, 14, 26,145,203, 42, 67,230,111,201,128, 29,226,117,173,155,165,117,
+213, 19,160, 44, 90,118, 54,148, 45, 43, 53, 2,115, 70, 24, 58,209,129,119,212,246, 8, 79,165,115,106,154,133,168, 1, 45, 18,
+ 45, 68,195,105,151, 4,218,194,236, 9,234, 58, 24,142,130,104, 21,233, 95, 52,122, 68,224, 43,182,134,118, 0, 58, 69,203, 98,
+111,163, 48, 68,177, 35, 47,191,122, 89,104, 4,184, 57,101,169,120,166,143,147,176, 87,236, 17, 33,218, 67, 46, 77,205,200, 46,
+ 41, 83, 38,110,132,117,118,216,147, 92,220, 9,199, 8,127,156, 55, 29, 37, 69,212,164, 61, 65,148,186, 28, 22,237,217,144,130,
+ 68,205,115, 23, 47, 89,180, 51, 67,188,191, 67,203,162, 42, 82, 97,253, 78, 13,164,198,185,219, 5,106, 31, 57, 40,169, 73,146,
+119, 86,132,210, 5,226, 65, 24,232,150, 26, 64, 47,186, 2,194, 25, 20,139,136,139, 64,255, 98,237, 52,197, 5,184,211, 97, 96,
+205, 51,140, 94,178, 19, 40,206, 38,111,117,106, 24, 2,202,184, 65, 53,115,162, 0, 36,145,143,246,125, 0,162,226, 84,111,226,
+148,121, 46,205,182, 24,218,246, 17,113,181,248, 1,163,122,181,101,136, 2, 94, 67,244,152,143,201,100,237, 16, 37,121,150,226,
+221,118, 4, 55,228, 20, 89,163, 70, 48, 78, 19, 0, 79, 9, 59,141, 2,181, 48,132, 18,134,112,181,226,133, 58,220,166, 2,199,
+156, 54, 46,236, 33, 77,192,199, 22,144, 37,180, 58,173,233,112, 11, 8,112,148,142, 50, 32, 18,121,174,232, 21,115,212, 97, 75,
+163,169, 76, 77, 84, 47, 34,233,126, 13,235,107, 9,233, 49,230, 96, 46,160,132, 38, 67,234,205,235,105,133, 83,201,198, 88, 50,
+ 75,158,122, 86, 23,237,238, 53,234, 29, 44,227,185,142,148, 46, 47, 82,215,116, 79,185,113,126,173,241, 74,245,217, 86, 83, 79,
+ 4, 2,230,132, 52,132, 70,169, 32,100,227,120, 16, 5,232, 16,128,228, 18,178, 17,107,141,168,135, 43, 1, 91,230,108,138,204,
+241, 2, 74,119,142,152,198,103,169,122,249,194,169,116,230,232,208, 42,169,121, 3,227,198,131,224,168,108,233,193, 64,178, 43,
+172,113, 35, 64, 22,192,138,112, 30,173, 3, 32, 42,173,153,225, 48,124,202,254,141, 41,210, 49,202, 15, 74,176, 82, 35,195,106,
+ 27,118,213,118,152,203, 26,130, 38, 53,213, 34,114, 52,100,221,178, 86,145,239,177,103,150,149, 22,160, 77,166,201, 5,122, 50,
+187,168, 45, 35,226,130,182,205,125, 52, 38, 9,231,204,170, 4, 24,229,139,138,117,102,166, 12, 88,213, 70, 70,165, 4,200,202,
+230,118,105, 4,123,176,159,188,172,201, 68, 20, 9,204, 12,129, 70,197, 88,122, 74, 82,175,176,135, 33, 21, 0,155,147,112,133,
+ 78,124, 89,140,135, 41, 99,155,186,146,131,178,101,229, 92, 87, 39, 75,113,103,144, 43,182,218,197,242,104, 41, 37, 57,170, 37,
+250,242,129,126,189,140,148,101,223,247,167,102, 32,163,193, 95,234, 70,104, 17,121,193, 78,134,172,245,113,207, 14,117, 20,205,
+ 94, 38,167,114,185, 12,149, 65,187,103,214, 14,192,203, 72,222,213,177, 11,118, 23,166,186,160, 49, 89,144,241, 6, 54, 85,225,
+116,163,163,175,110,238,148,196, 70, 11,131,154, 92, 65, 35,161, 48,251, 2, 37, 70,102,168,217,214, 16, 55,119,195, 81, 35, 61,
+136,208,139, 17, 78, 14,177, 35, 83, 6, 27, 21,208,123, 94, 74, 54,216,184,139, 8,182,171,163,200,181, 57, 48,146,179,120, 2,
+166,107,144, 7,159, 50,103, 73,180, 38,228, 29,107, 13, 47,156,188,127,185,237,193,210,176, 20, 93,214, 96,154, 24, 6, 16, 67,
+ 58, 18, 56, 13,174, 91,158, 8, 31, 33,167,152, 67,174, 44, 83,153, 35, 15,208,146,135, 90, 89,129, 13,222, 22,121, 69,112, 16,
+227, 70,219, 63,227, 5,173,185,158, 12, 84,113,199, 12, 20,132, 70,158, 58, 25,232, 78, 18, 32,200, 84,161, 10, 33,111, 94,114,
+205,197, 1,117,214, 78, 86,235,165, 28, 45, 77, 69,213, 4,171, 69, 38, 53,250,193, 99,107,225,232, 79, 61,101, 99,120, 57,116,
+135, 83, 97,148, 33,128,238,138, 58, 17,120,255,216,209,233,169, 49, 37, 40,224, 69,239, 0, 40,242, 36, 71, 80,144,139,229,187,
+ 10, 83,164,203, 17, 56,196,141,163,215,182, 29, 97,170, 73,130, 35,187,134, 32,112,161,105,251,226, 81, 56,136, 71,217,230,169,
+ 58,252,102,195, 75, 18,139, 2,186, 43,148,109, 24,248,228,196,180,166, 45, 10, 3, 85, 41,131, 81, 42,228, 89, 36,160, 23, 19,
+ 93,185, 68, 54,102,148, 45, 94, 20,213,125,200,192,193,137,245, 82, 21,241, 62,213, 47,151, 74, 5,170, 80,111, 26,190,125, 0,
+ 69,110,214,234,142,167, 55, 30, 2,213, 67, 95,123, 43, 13,150,101,165,223,124,234,216,215,168,222, 36, 46, 54,231, 29, 78, 56,
+244, 57, 88, 36,255,190, 97, 87,120,205, 25,105,149,144,161, 28,139, 5,106, 80,153, 29,192, 49,237,197,222,200, 40,128,123,157,
+ 81, 15, 57, 82,229,145,201,228,196, 77, 98,192,249,176,107,207,214,152,147, 34, 43,115,125,152, 51, 75,221, 91, 58, 77,246,212,
+ 18,167,236,107, 10, 90, 27, 27, 93,178, 48,238, 25, 48,239, 42, 37,163, 63,238,149,218,164, 71, 85,161, 85,228,165,193,109, 17,
+121,127, 0,107, 72,229,108, 22, 93, 7, 83,214,163, 78,118, 68,215,220, 66, 83,237, 21, 12,168,253,181,106, 0, 55, 4, 51, 3,
+ 13,181, 72,211, 95, 30, 30, 81, 85,103,127,188,107,202,115, 28,230,245, 88, 79,231, 46,130,205, 10,125, 0,148,110, 60, 49,177,
+181,116, 61,178,120,164,225,230,228, 12,173,181,182, 46,163,254,129, 26,200, 14,100,239,152,104,133,182,193,160, 84, 22,117,111,
+114,170, 90, 55, 78, 24,149, 50, 77, 53, 85, 85, 76, 43, 17,197,186,132,104,201,219,148, 72, 76,228, 22, 88, 67, 16,169,213,149,
+205,222,196,108, 98,211, 48,142,165,213, 32,145, 42, 33, 13,219, 30, 15,151, 5,115,128,214,194,171,189,182, 5,234, 38,129,156,
+172,121,251, 5,128,148,241,167, 25,132, 54,180,191,105,162,184, 49,150, 36,214,176, 86,219,127, 5, 72, 13, 41,120,147,129,137,
+ 46,118, 41, 16,138,150,180, 21,138,236, 18,116, 42, 65,165,173, 42, 32,232, 18,123,191,161, 61,173,171,145, 33,134, 49,189, 90,
+ 65, 59,194, 28, 5, 95,184, 46,107, 30, 98, 40, 67, 69,187, 72,167,221,230,196,209,183, 8,216,196, 20, 21, 51, 62, 39,118, 81,
+ 18, 97, 9, 74,202, 64, 88, 51,244,123,210,130,153, 34,244, 14,250,164,103, 48,216,106,212,137, 34, 72,176, 83, 69,175,101,138,
+214,142,147, 94, 2, 62,171, 2,108, 5,101, 90,128,120,144,139, 75,164, 85,193, 9, 28,151,219, 57, 66,166,137, 33,107,197, 4,
+242,169,161,207, 0,162,224,169, 44, 80,106,200,105, 98,153,170, 32,160, 78, 90,158,116, 73, 40,229,172,244, 22,202,114, 81, 75,
+151,164,108, 55,214,188, 93, 59,130, 51, 95, 75,132, 80,115,199, 33,148, 40,245, 11,153, 11, 1, 71, 61, 48, 41,253,198, 60,164,
+102, 75,180,148, 29,230,145,211,106, 17, 97, 46, 77,247, 57,145, 52,199, 16, 12,192,137,248, 72, 73,108,136, 65, 57,134,161, 73,
+ 7, 55,170,110,204,141,219, 35,146,250,103,184,150,126, 67,213, 21,161, 21,131, 59,174,193, 18,234, 32,140,105, 99, 47, 65,169,
+ 51,202, 40,141,154, 53,228, 3,224, 39, 33, 11,174,247,162, 67,134, 7,124,206,155,120, 49,167,242, 84,231,242,246,210, 0,156,
+115, 9, 1,187,216, 37,249,100, 83,115,147,136, 90,189,206, 93,226,250,151, 12, 82,186,146,177, 14,198, 43, 95,104,118,121, 48,
+248, 93, 97,232,190,166,105, 70,197, 39, 24,216,113, 97,237,153, 53, 91,103,142,163, 55, 86, 2, 59, 54,176, 62, 58, 46, 80,187,
+ 0, 92,138,144, 11,200,176,102, 6, 44,154, 46,188, 84, 76,199,164,102, 71, 42,252, 38,203, 26,241,182,237,201,181,132, 50,105,
+195, 68,171, 86,190,131,210, 82,153,106,234,156,228, 77, 9,210, 33, 70,201,240, 72, 24, 38,181, 61,129, 78,117,200, 23,218,188,
+ 3, 65,163, 94,191,164, 72,205,135,186, 85,238,105,158,106,226,196, 77, 59,212, 80, 58,106,133, 85, 4,218, 10,177, 34, 93, 3,
+113,205, 99,154, 53, 35,222, 27,242, 55, 46, 16,247, 74,145, 95,204,141, 32, 66, 24, 4,239, 48, 71,216,221, 10, 10, 78, 65, 0,
+181,130,185,247,117,102,206,230,153, 57, 35,217, 77,201,205, 5, 34,156, 23, 9,168,106, 84,219,146,144,111,172,176, 97, 84, 9,
+198, 2,166,235,163, 6,134,216, 98,114,222,246,164, 67, 80, 67,223,220, 64, 42, 53,234,238,152, 83,102,165,120,121,106, 21,232,
+ 39, 76,156,106,226, 25, 65, 29,124, 88,116, 72, 82,212, 2,217,101,166,232, 33,205,144, 65, 96,124, 14,170, 96,199,168, 88,200,
+ 97,108, 13, 40, 55, 81,219,162, 1, 78, 41,141,162,149,202,139, 57,154,181,132,102, 52,187,241, 9,206,174,155,116, 7, 56,160,
+180, 71,160,186, 27,112,124, 42, 67, 49,104,171,155, 69,205,221,168, 10,208, 74, 57,177, 50, 86,116,182, 89,160, 59,156, 58,197,
+ 5,149, 27, 21,211,128, 89, 54,160, 85,178, 4, 88, 52,116,197, 41, 49, 5,176, 53,104,206,104, 49, 62,224,204, 25,110,106,207,
+210,220,148, 17, 45,172, 88,141,109,125,134, 93,177,150,147,209,157,205,107,147,112,196, 17,161,172, 81, 28, 1,104,107, 82, 16,
+ 43, 74,207,148,136,158, 16,167,161, 80,118,164, 91,186,210, 37,229, 14,115,180,210,137,143,179,229, 2,167, 92,176,222,106,160,
+ 45,239,163, 32,169, 41,202, 74,205, 94, 34,173,202,107,196,100, 24,106,228, 98,152,149, 66, 40,216, 1,221, 14,121,133,213,148,
+192,180, 72,237, 3,133, 77,110, 13, 50, 53,218,238,164, 20, 64,204, 86,105, 84,193,169,117,111,131,127,130, 18,154,239, 81, 85,
+159, 15,212, 57, 22, 5, 36,197,245,199, 75, 0, 64, 58,192,184,145,104, 34,154,122, 26,120,137, 65, 49, 27,197, 51, 69, 19, 68,
+121, 95,183, 1,248, 37,214,227, 87,159, 39, 78,241, 52,135,176, 68,249,215,203, 60,154,117, 93,106,219, 21,103, 16, 85,176, 25,
+218, 80, 75, 0,132, 92,120, 67,131,157, 58,254, 94,170, 50, 78,198,140, 35,141, 89,209, 82,235, 74,194,114, 50, 43, 83,144, 80,
+ 22,170,231,160, 17,212,226, 96,183,152,186,105, 1,197, 98,179, 63,218,233, 90, 93, 72,222, 14,178, 1, 40,120, 51, 22, 11, 16,
+114, 49, 35, 35,156,211,190, 2, 70,145, 81,161,204,249,238, 37, 23,138,147,209, 99, 7,152,213, 6,174,190,148,220,246,142, 90,
+ 46,106, 80,115, 99,115, 84,186, 4,118,146,194,174,108,188, 2,224,149, 84,203,146,198,171, 70, 61,234,180, 72,210, 20, 14,218,
+ 30,183,210, 89,168, 0,149, 56,172, 21,228, 92,155, 58, 30, 99, 95,105, 10,220,130, 68, 63, 97,147, 83,228, 6,216,212,110, 48,
+201, 9, 0,165, 33,119,196, 76, 68, 72, 35,129,165,166,159,178, 67, 22, 78,152,221,255,226, 13, 88, 98,110,121,100,160, 26,247,
+168, 50, 71, 96, 28,185, 81, 22, 99, 88,188,130, 17,131,221, 17,163,134,129, 28,108, 74,237,214, 80,160,116, 54,135, 53,240,209,
+202,208,232, 4, 44, 57,228, 88, 11,234, 53,104, 90, 28,109,178, 44, 19, 80,141,128, 82,200,145,183,116, 67, 88, 41,107, 35, 52,
+ 25,217, 85,154, 19, 5, 56, 52, 53,230, 88, 41, 9, 4,210,157, 53,242,104,121, 59, 65,183,137,210,134, 71,230, 77, 84, 87,152,
+252,254, 24, 74,122,188, 29, 2,152,149,101, 68,237, 77, 46, 28, 34, 69,110,174,137, 83, 74,217, 30,188,224, 42,215,125,161,235,
+247, 36,225,166,111,132,253,179,227,105,147, 29,240, 29,166, 57,111, 25, 50,208, 87, 23, 46, 0, 96, 2, 71, 84, 51, 4,227,251,
+ 59, 74,157,229, 28,124,212,137, 99, 72,242, 26, 33,119,106, 81, 70,181,234,190, 80,185, 6,198, 2,247, 18, 23,208, 18,239,201,
+ 64,112, 63,133,146, 60,188,239,145,200, 71, 55,160, 27,178,148,220, 65, 43, 33,216, 20,125,198, 37,233, 40, 8,100, 29, 13, 95,
+147,226, 63, 33,106, 92, 80,226, 70,227,131, 17,135, 46,200,212, 0,161, 44,211,247, 48, 60, 11,118,238,203, 44,219,132,239, 41,
+ 96, 52, 69, 64,134,185,138,103, 73, 93,179, 31, 16,237, 2, 96,234,208,165, 23, 23,163, 50,199,199, 76,185,173,255,209,160, 43,
+ 87,221,218, 63, 91, 54,199,198,130, 23, 84,155,174,125,100, 98, 88, 0, 90,174,214, 4,107, 64,159,215,105, 30, 14,248,148,225,
+191,141,174, 3, 1,180,162, 1, 76,231,115,170,170,122, 25,171,110,133,116,147,113, 47, 32,238, 53,234,191,155, 44,108,225,160,
+175,154,220,186, 6, 38,131, 35, 50,246, 83,231,241, 31,228, 66, 35,214,237,102,172,109, 22,214, 54,156, 52,166, 49, 22,140,117,
+106,114,125,113,171,157, 99,234,142,215,116,222,169, 18,169,238, 66,232,177, 0,109,133,179,225, 65, 5,187,210,248,249,227,185,
+ 67,123, 88,105, 27, 23,160, 58,156, 79,126,242, 5,133,114,149, 45, 63, 52,137, 36,184,106, 23,121,247, 47,110,144,196,169,219,
+ 83, 42,163, 97,157, 20,144,146,212, 26,118,224,239,179, 62, 96, 75,227,144, 1,145, 25, 91,208, 55,140,120, 74,169,216,208,124,
+ 15, 0, 19,243, 42, 25,143,144, 79,107, 17,145,115,158, 65,192, 71,176, 73, 71,120,247,216,211,219,240, 14, 33,143,153,121,189,
+222,203, 92,123,175, 35,253,174,170,188,110,161,104,104,227,140, 3,134,214,140, 9, 85,205,201,128, 9, 84,252, 12, 16,103,155,
+249,232,132, 26, 47,223,210,214,195, 53, 45,131, 34,132,202, 88, 67,141,189, 26, 85,141,141,105, 32, 78, 49, 73,165, 17, 22,200,
+ 14,129, 51, 34, 2,101, 27,110,161, 15,110,240,130, 81, 22,104,137,146, 54,118,204,200, 0,143,219,192,111, 5, 53,223, 45, 2,
+138,198, 24, 12, 29,171,226,120,144,161, 50, 60,135,176,175,145,209, 1, 16,142,178, 14,168,162,141,249,213,117,142,168, 81, 5,
+155, 78,115,212,118, 85,173, 2,243, 7,157,213,144,193, 19, 53,220,196,185,191,180, 85, 16,198,231, 81, 76, 11, 72, 70, 35, 46,
+ 78,105,139, 66,108,139, 98,151,164,117, 95,189,174,234,211,216, 13, 36, 52, 49,129,246,179,162,160,225,165,119, 93,139,122, 40,
+163,146,139,139,201, 96,102,179,128,210, 90, 86,134, 99,213,199,119,189,127,115, 80, 85, 36,163,104, 10, 74,160,230,222,118, 63,
+115,233,235,134,254, 20,101,120,134, 12, 35, 72,142, 26,155, 9,186,242,149, 38,219, 96, 14, 65, 1, 38, 77,197,138, 11,102,131,
+ 4, 75,121,144, 25,224,226, 45,171,151, 88,238,160,234, 29, 43,161,162, 26,189, 55, 42,121,198, 12, 81,224,225,172, 2, 45,151,
+ 3,212, 37, 16, 40,214, 81,189, 66,139, 20,188,140, 32, 80, 32, 2,132,128, 34, 11,255,152,118, 65, 96, 12, 34,227, 66, 10, 32,
+174,168, 59,220, 59, 10,203,241,175,195,183,110,140, 25,192, 13, 87,140, 51,172, 11,187,182, 69,204, 73,107, 81, 61,150, 61,120,
+ 98, 66, 77,114,176, 58,183,203, 84,143, 47, 26,104,104, 66,159,182, 89,188, 93,247, 2,133,230,163,255,121,240, 70, 55,202,164,
+139,182,175, 76, 27,241,240,229,155,138, 54, 45,154, 98,119, 61, 94,174, 48, 73, 27,115,101, 17, 60, 52,110, 41, 9, 43, 27,170,
+110,164, 19, 60,116, 47,176, 67, 14, 32,254,196, 43,123,154, 61,104,218,159, 66, 29,182,107,194,240,133, 34, 65,151,190, 64,121,
+165,129,131, 57, 57,248,189, 22, 25, 50,131,160,129,131,222,178,146, 93, 80,152, 2, 9,159,227,121,160, 46, 1,167,152, 1,228,
+ 24,181, 36, 94,161, 86,129,103,145,196,153, 86,120,203,173,238, 0,170,143, 1, 2, 63,124, 34,113, 4,182, 72,109,181, 40,160,
+ 69,104,192,218,177, 78,200,130, 45, 49,161,105, 13, 92, 79, 7, 16,176,101,141,244,103, 5,170,210, 20,201,229,150,133,216,248,
+199,187,181,141,180, 37,140, 52, 65,112,200,230,129, 33, 99, 91,153, 76, 59, 47,141,180,184, 70,164, 83,152, 18,176,178,186,112,
+ 57, 65,218, 77, 49, 27, 21,178, 14, 34,148, 10, 85,197, 28,154, 66,168,166,106, 40,229, 2,104, 96,143,222, 68,114,227, 13,137,
+122,233,132,182, 47,193, 48, 16, 40,207, 16, 67,215, 47,120,230, 73, 72,137,147, 86,183, 57, 11, 94,155, 76,148,173, 2,254, 35,
+131,234, 29,112,213, 17,125,137, 92,108, 9,231,117,104,246,195, 13,157, 72,164, 2,255,188, 1,147,182,101, 5, 10,106, 35,215,
+208, 15, 16,138,172,138, 0, 0,175, 37,218,121,159,171,194, 78, 5, 98, 75,171, 18, 74,153, 70,187, 77,103,129,212,182,193,202,
+132, 65, 90, 42, 53, 18, 27,243, 4, 29,218,120, 16,146,158, 1,246, 54, 96,142,190,226,145, 30,182,118,203,236, 89,192,212,121,
+ 77, 26,181, 55, 16,241, 97, 20, 75, 50, 53,202, 74, 73,252,138,214, 96,244,189,205,174,100,106, 27,183,137, 6,162,200, 8, 38,
+197, 66, 0,252, 85,105,217,188,105,174, 47,193,217,168,156,251,142,196,179,215,200, 84,116,205,165,132, 38, 64, 66,177,196, 7,
+236,170, 72,170,201, 74,185,214, 68, 13,164,201,164, 50,176,132, 10,246,158,176,114,162, 40,198,135,162,243,218, 36,222, 53, 49,
+104, 58, 46,186, 63,200, 8,160,139,160,102,234,110, 56,106,111,140,239,208, 96,161,154,126,213, 52, 23,151,154,118, 55, 76,210,
+ 20,117,151,160, 46,171,175,178,220,220,234, 63,183,169,153,176,120, 88, 2,218, 0, 11, 4,112, 25,149, 1, 5, 88,172,135, 56,
+ 1, 18,187, 96, 39,170, 81,112, 68,124,115, 42, 32,251,215,206,161,210,136,137, 88,203, 82, 51,238,214, 56,192,248,165, 27,221,
+ 20, 37,109,169,216,128,165,163,237,223, 85, 36,215,165, 93, 65, 43, 0, 84, 37,101, 14,244,225, 49,224,195,148,175, 41, 85,117,
+197,245,241,142,142, 74, 41,171, 94, 27, 76, 4,108,221, 26,218,233, 28, 53, 85,130,148, 16, 55,186,224,128, 42, 23, 20, 28, 17,
+ 74,245,204, 68, 18,178, 86,165,137,186,215, 50,153, 27,174,253,154,117,156, 69,120,224,218, 42, 53,231,140,206, 11, 52, 72, 76,
+ 17,128, 64, 59, 65, 20,188,201,170,104, 34, 38, 33, 60,165,174, 25, 28, 36,143, 1,172, 21, 38, 10, 70,164,166,191,236, 26, 7,
+168,216,229,206,225,152,201, 50, 90,101,112,240, 59,148,214,116,208, 29,166,203, 53, 58, 17, 0,237, 24,154,148,213,183, 22,110,
+132, 31,132, 64, 88, 47,169, 12,242,202,134,194,160,150,136,148, 27,161,220, 22, 51, 59,185,204, 32, 55, 27,178, 63, 78,173,113,
+131,203,209,211, 32,182, 40,197, 41,128,190,123, 42,223,152,188,172,193, 99, 25,112, 34, 28, 5,140,168,175, 98,253,156, 27, 57,
+209,102,125, 20, 14,232,199, 26, 69, 44, 11,241, 56,251,202,137,170,179,178,226,204,129,231,128,233, 89,100, 43,132, 89,155,112,
+ 70,220, 49,148,232,115, 47,210,106, 84, 8,148, 2,106,112,144, 5,180, 49,212, 56, 11,114, 11,120,133,154,227,128, 96, 84,137,
+227,102,255, 33,220,139, 32,218,110,213,221, 76,179,194, 17,242,212,128, 97,236, 86, 74,198, 0, 69,123,246,234,157,217,170, 83,
+247, 4,245, 98,162,141,171,243,251, 97, 14, 66, 7,206,152,191, 89,228, 3,231,175, 8, 52,240,146, 6,253,111, 96,225, 2,130,
+ 37, 8, 50, 45, 1, 46,100,237,217,204,128,195,144,102, 31,241,100, 72, 93,250,253, 28,211,219,250,172,157,231,205,205,197, 86,
+ 73,148,227, 41, 2, 71,234,176, 36, 64,116, 21, 40, 37, 55,194, 65, 21,210,188,117,140,204,167,142,150,211, 90,156,100, 96, 71,
+233,215, 78,193,120, 91,219, 0,188,155, 64,120,130, 29, 0, 61,144,172,161, 7,211,128,116,151,152,133,193,118,185,218,251,192,
+178, 58,139, 5,151,148, 18, 44,144,234, 49, 3,222, 49,170, 30,105,103, 48, 14, 21,176, 80,136, 3,250, 16, 76,144,138, 34, 0,
+144,186, 20, 77,253, 27, 0,207,110,148,101, 19, 55, 53, 74,219, 22,227,148,162, 90, 82, 86, 45, 34, 64, 69, 38,121, 70, 73,140,
+ 62, 64, 75,162,110,175,228, 70, 4, 77,185, 91,154,110,221, 66,156,208,168,210,164,237,241,255,161, 51,220,240, 88, 11,123,173,
+ 37, 26,127,148, 88, 44, 92, 96, 51, 19,175,159,112,118, 97, 86,106,167,142,210,117,187, 26,189,175, 9, 22,118,110,231, 8,208,
+ 97, 97,192, 9,132,167,143,252, 87, 89,145, 26, 65, 68,177, 36,164, 44,181,202,123,203,172, 49,205,137,249, 75,222,185, 40,241,
+188, 5,202, 40, 5, 0,126, 32,211, 88, 52,123,105,117, 96,211,125,239,152, 67,254, 81,255, 95,188, 77,166,165,157, 17,248, 70,
+222, 43, 25,147, 31, 12, 25, 23,159, 59, 13, 37,146, 87,234,226,145,138, 76, 87, 9,189,150,163,119, 7,190,167,128,118, 2, 55,
+224, 54,113,105, 78,108,223, 40,141, 98, 99, 20,125,129, 62,198,152,169,137,118,160, 94,223,213,212,120,229, 53, 60,107,225,166,
+ 71,182,117,225, 66, 96, 87, 49, 20, 83,158, 25,130, 10,139,113, 61, 81, 55, 5, 70,201, 48,223, 77,151,217,219,191,150,112, 36,
+ 57, 55,143, 74,116, 51,206,174, 42,179, 57,254,156, 5,160,136,114,107,209,180,152, 81, 78, 54,248,191, 75,138, 62, 8,174, 86,
+200,211,142, 55, 64, 25,138, 20,199,223, 84,169, 43, 34, 59, 94,102, 40, 37,107, 52,112,238, 81, 49,149, 41,171,179,121, 68, 50,
+ 83,129, 0, 25, 79,208, 57,206, 24, 42,181, 97, 5, 36, 81, 57, 23,123,178,253, 37,211,236,156,118, 8,172, 75,103, 14, 36,164,
+ 16,234,122, 72,163, 40, 40,144,161, 89,197, 40,105,200, 26,232,110,193, 93, 76,127, 39, 40,151, 26, 29, 16, 29, 96,232,101,168,
+ 12,125,198, 64, 83, 24,136,191, 28,122, 10,149, 90, 45,136,245,250, 2, 2, 25, 22, 33,105, 48, 1,129, 41,218,230,154,101,136,
+137,179,202,233,246,182,107,185, 87, 17, 96, 93,112, 52, 26,170,226, 58, 3, 75, 13,166,170,151,122,154, 70, 59, 72,157,115, 61,
+ 25,189, 75,154,101, 92,152,158, 45, 74,129, 22,239, 70,131,157,118, 40,137,190, 24,205,118, 97,138, 79,102,180,121, 42,185,117,
+132, 32, 43,113,213, 39, 94, 35, 37,136,233,171,228,220, 81,150, 57,205, 41,101,117, 34, 36,154, 72, 76,128, 14, 48,130,204,192,
+ 53, 70, 48, 72,198, 73,250,132,224,213,120, 55,129, 73,160,199, 55,158, 11,178,132,218,137, 44, 89, 26, 42, 69,231, 9, 37,236,
+ 94, 31, 0, 12, 77,176, 95, 74,114,170, 50,207,111, 77,123,101,252,158,166, 20,210,106, 23,184,204,103, 13,137, 80,107, 91,107,
+ 65, 76,213,246,172,246,128, 10,166,120, 65, 13, 7, 37,114,205,232,228,164, 77,205, 39,171,158,122, 7, 72,221, 80,163,131, 6,
+ 39,208, 41, 9, 53,150, 11,234,108, 83,166, 96, 22, 68,189, 66, 67,224,142,214,107,252, 35,159, 90, 32,149,236, 27, 23, 87, 34,
+ 16, 76,106, 83,198,238,168,164, 62,201, 81, 38, 14,141,104, 73,207,159, 83, 87, 67,148, 57, 86,170, 77,137,148,176, 83,203,134,
+ 74,157,148, 70,138,184,205, 32, 65, 29,213, 82,250, 28,117, 71, 99, 82, 50, 56,107, 25,164, 26,198, 4, 42, 77,169,227,197,208,
+ 34, 24,249,241,204,203,204,241,134,190,230,212,162,173, 13, 92,153,218, 82,195, 28,146, 85,209,150,149,210, 82,114, 96, 40,181,
+ 99, 21, 89,181, 40, 34,205,222, 2,206, 98, 22,197,200, 10,144, 85, 69,123,114,135, 53, 78,109, 22, 69,107,191, 86,119, 39, 84,
+ 59,100,202,205,122, 24,130, 3,110, 36, 93, 65,119, 84, 98,145,230, 84,171, 64,241, 14,178, 4,233,162,221, 91, 43,158,157,100,
+ 66,249,224,154, 17, 7,109, 27, 82,160,202, 72, 82,182, 12, 28, 76, 27, 98, 16,167,101,156,240, 36,120,125,134,156, 79,177, 9,
+160, 5, 37,225,172, 4, 91,172,233, 63,107,162,166, 74,205, 40,103,215,240,135,253,215,157, 59, 11,120, 26,200, 7, 85,212,126,
+215, 54,189, 8, 8, 22,192,176, 16, 65,118,132, 67,240,138, 76,155, 62, 48, 65, 21, 5,144,240, 28, 43,116, 51, 20, 45, 75,152,
+242,196,178,186, 3,128, 77,138,176,207, 3,106,206, 35, 49, 92, 70,208, 47,130,192,220,223, 14,122, 75, 86, 52,225, 72,255,233,
+166, 25,109, 13, 67,128, 97, 56,223, 45,173,151,137,228,126,183, 8,117,203, 90,230,156,152, 96, 94, 43, 17, 78, 80,126,130,102,
+247,190, 33, 99, 61,201, 82,179,154, 66, 42, 41,221, 37, 41, 98, 64,129,143,196,164,229,156, 70, 22,252, 94,232, 97,204, 40,244,
+ 1,157,190,218,173, 39,127, 75, 86, 78, 50, 71, 67,160,155, 20, 34,188, 57,137, 26,212, 96, 11,184, 29, 90, 77,189,183,185, 75,
+ 1,202,140, 87, 34,107,171, 83, 28, 79,201,210, 88,172,176,227,188,169, 2, 23, 25,121,226,148,187,154,153, 12, 85,234, 33, 2,
+105,216, 2,200,118,110,244, 74,221,116, 2,192, 16,159, 51, 99,218,221, 34, 79,144,234, 12, 25, 92, 40,201,160,152, 74, 83, 30,
+105,235,184, 83,160, 85,225,235,101,229, 59, 90, 16, 82,145, 12, 70,244,110,127, 46,148, 38,107,106,154,121,205,101, 77, 8,142,
+232,169, 17,130,154,144,248, 53, 9,125, 75, 41,112,221, 93,172, 50,208,151,159, 54,211, 18,209,178,212,166,178,106,209,137, 82,
+ 19, 75, 35, 77, 75,188, 90,108, 5, 73, 71, 1, 36,186,235, 23, 24,195, 5, 56,238, 14,172,172,148, 49, 53,178, 34,171, 49,125,
+183,210,219, 24,128, 73,210,168,151, 9,174, 69, 21, 55, 18,201,162, 82,148,244, 36, 36,177, 14, 64,229,105, 37, 11,197,224,201,
+ 87,104,105,166, 36, 90,143,118,184, 67,157,248, 44,147, 29, 88,160, 0,224,209, 10,123, 0, 50, 92, 18,134,105,154,135, 53,101,
+ 20,184,201,132,228,244, 34, 37,186,174,117, 38, 99,104,127,203, 88, 82,107, 88, 69, 12,169,110,178,242, 43, 0,151, 11,103,176,
+ 39, 65,127, 8, 1,156, 15, 39,217,194,166,190, 77,156, 29, 68, 51,136,235,162,123,161, 76, 59,196,214,151,141, 64, 83,126,110,
+ 1,174, 44,176,199,102,149, 82, 1,208,153,178, 24, 42,116,135,108,130,188, 42,156, 2,136,232, 69, 49,237,169, 53,201,137,115,
+ 0,135, 45, 43,101,133, 52,206, 82, 81, 29,234,181, 12,148,204, 21,241,176,220, 6,183,149, 45,247,253,125, 48,234,214, 11,124,
+234, 61, 93,160,182,216, 0,109, 36, 43,169, 17,133,247,131, 45,245, 88, 48,145,152,251, 17,175,171, 76, 39,204,151,132, 74, 21,
+139,248,137, 22,116,253, 80,104, 3, 61,124, 48, 38,182, 65,150, 96, 73,196,239, 18,135,131,193,176, 73, 35,167,159,141,149,160,
+214,115,165, 44,182, 65,153,162,154, 22,109,154, 62, 89,100, 35,165,152,160,159,121, 43, 89,145, 37, 99,115,253,172, 18, 65,186,
+122,162, 63,132,134,172, 82,182,176,159, 53,110,130, 90, 51, 50, 73,210, 54,115, 16,128,171,136,184,163, 79,122, 32,198,153,179,
+ 10,149,181,240,228, 21,100, 44, 96, 28, 40, 11, 24, 89,216, 88, 48, 67, 34, 17,229,152, 64, 75,138,178,245,253,206,115,199,148,
+ 61,246, 24,214, 86,154,177,185,229, 68, 91,214, 29,104, 12,177, 35,133,195, 81, 40, 66,169,189,111,234, 40, 5,124,122,198, 46,
+132, 46, 69, 25,250, 10, 12, 42,100,165,227,228,248, 88,115, 35, 97, 4,200, 85,167, 84,174,212,104, 75,161,181, 37,110, 80,184,
+ 27,163,143, 82, 35, 2,119,222,191, 68,237, 27,148,249,194,200,114,206,146,152,193, 84,176,158,167, 76,193,105,174, 30,213,168,
+217, 43,220,248,132,209,181, 71, 24,123,113, 79,198, 94,184, 1,218,129, 28,179, 69,174, 2, 53, 80, 65,176, 16,202, 53,167,159,
+ 7, 48,133,219,140, 28,103, 32,223,120,175,189, 28, 27,105,112, 6,161, 33,113,150,138,205,135, 14, 48, 16,141, 60,177, 64,169,
+ 79,162,182, 37,210,228, 86, 32,207,234, 32, 74,110,123,143,131, 42, 70,195, 50,146, 54,122, 39,114,169,106,156,242,220,116, 63,
+100,230,148,210, 15, 3,205,137, 57,225, 29,212, 24, 48, 22, 37,131,230, 36,225, 40,176, 60,199,185,253,172, 97,153, 64,219, 32,
+169, 16,218,125,238, 76,241,208,238, 75,151, 52, 67, 4,180,245, 61,115, 66, 33,157, 75,208, 80,203,156,177,105,223,211,192,147,
+167, 18, 47, 2,234,138,150,146, 58,230, 20,208, 21,204,110, 58, 86, 40,148,146, 4, 65,174, 78,241,100, 7,221,110,209, 4,138,
+ 51, 13,126,107, 53,205, 77, 15, 66, 3,112, 59,222,141,185, 41, 32,145,207,201, 74,193, 68, 24,121,253, 27, 4, 45, 64, 21,136,
+164, 74,131, 80,163,108,160,252,146,181,144, 43,244, 78, 20, 54, 52,188, 81, 86,130,170, 81, 97, 3,207,122,206,188,194, 49,207,
+147, 85,128,110,130,111,229, 84,151,108, 83, 67, 37, 73,118,154,139,186,206,219, 13,220, 64,164, 68, 18, 22, 55, 29, 39, 20,234,
+164, 81,207,192,235,106,140, 40,183,157,153,100, 13,146, 45, 34,134, 42, 17, 9,183,137,125,110,106,251, 72,235, 98,137,200, 28,
+181,151, 25, 55, 23, 80,126,227, 84, 5,226, 84, 15, 23,173, 61, 87, 68, 95,131,138, 81,113, 96,144,248, 4,230, 70,123,153, 37,
+163,111, 11,150, 12, 18, 10,191, 2,144, 77, 64, 3, 26,105,124, 12, 20, 58, 0,192,161,160, 13,161,108,101,179,153,178,172,208,
+ 34,177,176,103, 89,168, 9,208, 39,141, 19,162,142,166,234, 60, 59,183,187,144,211,204, 24,202, 19,228,220,111, 2,245, 45,104,
+144, 83, 96,205,144,104,235, 85,200, 11, 26, 87,149, 57,218, 72, 6, 78, 62,100,156, 11,246, 23,231, 22, 32,157, 90, 18, 39,240,
+ 82, 5, 94,183,160, 0, 73, 6,184,133,194, 87,219, 87, 76, 64, 24, 37, 39, 86, 40, 25, 42,113,231,197,178,121,117,116, 12,150,
+126,238, 44,152, 17,107, 86, 9,164,239, 44,181,137, 34, 0, 73,173, 16, 65,158, 8, 32,101,180,138, 37,240, 4,160, 99,190,162,
+211,136, 13,124, 4,219, 74, 11,160,182,105, 69, 49, 78,132, 65, 31,163,117, 24,155,102,221, 4,209, 51, 7,254, 1, 37,224, 11,
+ 17,232,122,228,178,149, 55, 90,225,160, 24, 11,200,232, 26,115, 36,129,236, 26, 93,123,220,119, 10,101, 26, 43,212,232, 40,218,
+170,106,211,157,130,206,180, 94, 90, 87, 92, 0, 5, 57,234,166, 30,202,146,186, 2,187,238, 0, 26,116,110, 11,163,178,170,210,
+148,202,137,117, 34,194,218,250,114,198,130,213,172, 53,250,159,228,131,101,236, 64, 89,181, 71, 64,213,140,161,205, 29, 11,102,
+ 55,124, 15, 80,138, 45,116,120, 91, 26, 88,153, 20,172, 93, 39,113,156, 65,126,119,104,164, 82,188, 45,237,180,127, 12, 26,241,
+ 75, 9, 22,205, 0,238, 43,141, 0, 89,167, 89,182,165,139, 17,233, 62,100, 58,240,206,226, 97, 16,131, 18, 47,103,154, 32,146,
+ 57,146,139,125,227,164, 40,238, 89,140,252, 97,136,208, 58,120,174,157, 70,201, 99,203, 56, 9,112, 69, 69,177,116,168, 49,132,
+ 10, 83, 81,230,105, 77,188,214, 68, 21, 3,152,161,215, 49, 5,234,123,148,213,213,214,210, 50, 40,211,229, 28,101,143,109,130,
+ 93, 15, 91,214, 85, 70, 35,221,201,171,240, 9, 89,217,115, 86,251,247, 69,172,194, 41, 58, 95, 35,236,154,165, 96,129,160,105,
+205,238, 77,226,181, 80, 89,201, 44, 96,121,160, 98,196,201,161,234, 39,196,169, 46,100,247, 27,251,244, 18, 73,114,100, 18,128,
+206,162,103,224,128, 50, 90, 13,247,180, 5,250,120, 75, 70,152, 51,240,209,165, 81,228, 67,240, 22, 56, 28, 8, 76,243,186, 96,
+ 35,197,202, 13,101,107, 5, 68, 2, 29,227, 16, 43,192,141,142,129, 99, 5, 26, 70,115,177,251, 0,109, 32,167, 62,202, 2,233,
+117,134,212, 36,136, 91, 64,214, 32, 20,179, 74, 40,214, 49,102,127,114, 93, 82, 76,117,112, 18,196, 30, 69, 44, 16,212,129,180,
+ 21,145, 10,206,167,109,182, 28, 32, 76, 3,154, 53,243,203,212, 58, 88, 0,181,236,247, 66, 82,218,148,215,116,180,178,121, 93,
+ 32,165,110,250, 18,168, 26,232, 64,173,138, 50,160, 28,142, 66, 69,192,152,221,200, 66,169,153, 65,106, 0,178, 42,210,106, 94,
+139,165,132,171,149,142, 42,161,242, 20,100,183, 1, 10, 85, 34,192,136,116, 48, 0,143,168, 68,112, 2,206,115, 71,145,234,100,
+206,202,113,227, 60,169,198,157,142, 10, 5,150, 12, 56,245,191,205, 77,143,154,244,138,102, 17, 48,216, 9, 57,218, 82, 64, 53,
+ 17,128, 62, 21,218,203, 34,108,155, 25,203,211,156,106,225, 5,231,111, 89, 93, 79, 4,242,174,214, 36,102,108, 0,132, 89, 89,
+149,133, 85,237,218,118, 65,158, 81,216, 70,132, 87,114,237,190, 47, 22,118,117, 65,193, 18,152, 83,249, 74, 40, 57,130,232,145,
+105, 8,176,138,195, 96, 80,102,171,206,180, 85, 58, 43,215,234,242,236,216, 43, 56,227,254,185, 0, 12,192,126,154,212, 83,139,
+ 26,225,177,157,179, 26,101, 82,167,167,176, 5,102, 66,167,105, 91,117, 25,166,189,114,250, 92, 22,152, 10,100,127, 94,170,157,
+119, 43,100,199,243, 68,223,251,226,141, 38,164,100,113,161, 17,253, 94, 0,225, 96,202, 65,142, 42, 94,169,235,146,183,140,179,
+237,111, 42,250, 11,120,203,121, 98, 74, 18, 8, 73,190,125,243, 48, 57,109,208,236, 53, 94, 10,100, 45,183, 30, 50, 32, 39,177,
+ 38,137,105,115,240,110, 11, 73, 66, 41,123,123, 20, 41,192,209,228,236,168,186,131, 60, 25, 73,108,239, 24,123, 1, 39,138, 88,
+214,196, 78,213,143,104,151,151,186,174,101, 16, 78,180, 75, 12, 97,146,149,205,221,180,150, 89,107, 66, 46,140, 18, 15, 75,123,
+162, 57,179,192,104, 81, 35,162,152,160,113, 78, 43,254, 96,252, 95,129,250, 58, 18, 88, 61,133, 23,116, 40, 54,218, 8, 56, 79,
+ 30, 85, 16, 67, 23, 51, 25,179, 59,163,238,129,162,156, 93, 77, 10, 0, 57,169,166,189,230,185, 99, 7, 98, 2, 76, 8, 3,226,
+ 55,241,139,165, 77,177, 54,202,124, 18,109,129, 71,193, 49, 67,212,139,105, 19,196,179, 29,249,169,192,207,157,228, 57, 83,115,
+ 71,221,252, 48,107,208,112,177, 53,162, 49,102,131,112,168,131, 81, 75,113, 2, 68,183,161,193,144,233,196, 56, 87, 85, 8, 99,
+165,214,234,194, 53, 9,111,156, 80,207,168,184,200, 34,192,150,200,126,101, 97,202, 84, 42,138,190,232, 4,189,237, 37,157, 59,
+224, 19, 82, 35,111,139, 64, 74,126, 62,141,225,193,146,151, 27, 19,230,180, 55,118,196,169, 14,139, 45, 90, 3,255,149,165,205,
+132,172,129, 6, 39,198, 71, 76, 16, 81,135, 20, 17,237,208, 13,206, 28,119,108, 25,224, 10,154,148, 80,212, 94,202,100,228,235,
+ 7, 85, 21,155,255, 16, 58, 29,156,245,231,205,169,228, 38, 11, 52, 70,220, 53,122,173,219,218,149, 38,187,183,154, 41, 51,193,
+169,210,136,135, 73, 40,152, 89,183, 55,239,169, 94,210,126, 32, 69, 92,208, 39, 36,141, 25, 58,124, 81,202,242, 56,216, 2,155,
+ 36,129,218,103,100, 70,200, 65,149, 85, 13,188, 51, 35, 40, 73,241, 5,160, 84,131,136,225,222, 44, 70, 5, 57, 90,173, 71,131,
+131,205,169,245,238,212, 51, 96,136,208,183,209, 41,211,239,217,174, 83,220,188, 53,170, 74,202,164,179,129, 18,226,208,213,178,
+ 66,163, 24,129,118,178,212, 0,116, 85,231, 42,217, 30, 65,124, 13, 98,137,125,175, 48, 65, 37,113, 7,100, 84,199,220, 40,218,
+198, 80,211, 13,150,174,236,152,128,179, 78, 13, 98,179,209,188,237,212,160,151,232, 90,134, 46,135, 20, 64,120,138, 56, 76, 63,
+225,110, 76, 5, 8, 34, 42, 20,204,128,184, 1,218,137,166,198,190,129,221,145, 92,239, 68,148,120, 97,232,102,204, 12,186,229,
+ 0,111, 40, 32,205,169,217, 11,207,192,184,148,169,120,115,137,136, 84, 80,135,190,145,102,132,236,122,105,116,162,155, 46,221,
+ 83,141,164,138, 43,146, 53,156, 13, 93,239,146, 84,222,236,188,144,134, 39,128,202,156,132,226, 10,246,161, 27,255, 93,107,142,
+104, 25,184,252,209, 63,185, 81, 95,114,205,121,201,148, 65, 84,168,176, 72, 72,203, 54,133, 5,218, 28,194,102, 10,186,205,145,
+238, 46, 89,195,154, 32,165,213,144,224,162,219, 85, 28,215, 19,213,188,138,124, 70, 96,151,131,231, 4,174, 99,140,242, 38,185,
+197, 78,130, 65, 49,105,197, 71,157,223,188,254,162, 81, 53,114,207,139, 25, 30,231, 18, 87, 64, 40, 55, 37,133,237,168,233, 82,
+137, 6,158, 92,217,229,126, 11, 99,155, 69,149,222,115,174, 54,118,205,182,110, 59,156, 50, 42,108,245, 52, 87, 80,211, 79, 20,
+187, 83,106, 88,107,133, 82,132,254, 92, 64, 80, 74, 56,117,161, 2, 59,163,224,186,178,166,254, 27,216, 0, 52,139,174,120,199,
+ 37, 0, 88,192, 39,101,206, 29,148,216,121,247, 29,204,181,232,226, 33,224,124, 32,186, 29, 83,222,209,174,152, 3,128, 75,178,
+226, 52,142,173, 89,165, 57, 38,180, 18, 38,200,106, 13,223, 95, 5,122, 55,192,254, 34,107,200,236,220, 80,171, 68, 27, 33,165,
+214,144,212, 86,240, 10, 60,175,112, 76, 77,175,223, 90,171, 70,180,108,160, 45, 84,168, 35,151,176,149,166,165, 88, 7, 17, 58,
+175,192, 57, 67, 24,103,178, 7, 37, 99, 58,254,127,186,222, 44,214,186, 45,187,239, 26, 99,174,189, 79,243,245,183,239,202,213,
+223, 42,199,109, 57,196, 22, 78, 28, 39, 16, 64,142,128, 32,144, 72, 68,128, 72,121, 0, 30,224, 33, 18, 47,188,241,200, 19,111,
+ 72, 72,145,120, 64, 81, 64, 40, 36, 36, 2,146,216,142, 19, 57, 78,202,177,203,198,213, 87,185,110,221,106,110,127,191,251,245,
+237,105,246,154,131, 53,231, 28,205,127,172,125,110, 69, 55,247,250, 59,231, 59,103,239,181,215,154,115,142, 49,254,255,223,191,
+172,100,112, 94,173,115,132, 54,145, 81,209,224, 97, 44,235,226, 60, 19,174,120,221,221, 4,136, 14, 33, 98,154,162, 99,230, 7,
+143, 56, 86,131,133,141, 61,138,149, 32,137,116,160,175,169, 3, 98, 72,231,221,182, 46,181, 42,124, 54, 92,186,192,129,190,117,
+157,203,200, 45,183, 13,186,167,223, 41, 46,214,186, 25, 70, 31,180,187, 97,222, 85, 61, 32,193,225,180, 64, 62, 59, 7,168, 75,
+112,100,210,127, 54, 99, 43, 70,103,245,165, 51, 63, 26, 45,175,214,152,251,111, 58, 0,126, 51,133, 40,193,143,255,197, 23,101,
+ 78,194,174, 0, 82, 84,225,212, 82, 75,243, 97,104,183, 13,180,174, 93,172, 66, 23,177, 89,241, 20,107, 39,254,194, 65,202, 18,
+202,237, 59, 89,101, 40, 36, 21, 32,234,217, 42,249, 38,221, 46, 70, 45,152, 5, 31,109, 42,225,181, 60,174,186,157, 99, 55,175,
+197,125, 57, 27, 24,111, 62,171,224,247, 20,156,208,142,179,118, 80, 18,102,185, 29, 71,194,226, 36, 40, 14,139,205,151, 57, 42,
+242, 12, 11,130,220,110,150, 36,226, 19, 65,161, 69,188,254,162,155,130,115,213, 53, 11, 60, 44, 63, 18, 51, 87,175,170,196,219,
+180,136,148, 44, 41, 17, 44, 87,214,200,174,183,184, 83,171,248, 4, 54,244,194,214, 26, 35, 31, 39,132, 66, 62, 47, 57,188,151,
+156,183,210, 27, 9,173,172,107, 16, 93, 99,251,129,112, 14,172,224, 56, 85,119, 17,139,206,228,138, 30,236, 38, 56, 90, 50, 56,
+ 22, 10, 69, 86,121,216,249, 50,164, 37, 87,161, 86,204,216,255, 49,101,201, 7,199, 2,226, 98, 69,195,145,150,149,159, 47, 85,
+ 95, 37,134, 64,144,177, 59, 42,189, 41, 44,131, 2, 26, 5, 59, 11, 77,188, 2,139, 8, 0,103, 10,168,112,145, 61, 80,247,124,
+148,146,188,233,240,184,116,133,120,241, 62,103,154,161,234,125, 36,171,176,146,117,107,206,132, 71,238,142,100,129,174, 21,123,
+177,161, 39,163,145, 30,168,212, 71, 1,119, 73,160,170, 35, 88, 37, 68, 91, 43,229,186,123,138,141,156, 88,124,145,183, 77,145,
+210,129,135,247, 42,183,228, 61, 53,106, 25,172, 9, 30,133,187, 10,110,103,176, 52, 57,167, 64,120,213, 10,167,236,231, 95, 11,
+213,116, 84,227,220,122,160,190,217,168,181,160,134, 73,194,238,234,218,152, 50,185,208,173, 20, 94, 1, 61,226,253,142, 67, 40,
+152,129,211,189, 47, 73,182, 46, 21,138, 46, 9, 63, 57, 83,104,130, 58,192,165,232,102,220,115,200,197, 69, 97, 6,167,178,140,
+138,105, 50,151,203,152, 33, 23, 5,209,228,252,132, 70,120,155,151, 53,189, 38, 21,252,102, 42, 17,230,178,108, 88,231,187, 97,
+207,108,240,152, 73,195,159, 42, 34,147,109,141,102, 16, 29,167, 28, 8,197, 82,123,228,176,142,212,140, 6,201, 4,222,251,241,
+185,118, 97, 92,143,202, 37,141,102,157, 84, 63, 83,161,101, 47,125, 19,239,238, 20, 41,206,172, 48, 81,105, 71,183,159, 45, 47,
+126,170, 4,153,216,181,207,254, 74, 17, 77,217,137,185,162, 61, 40, 99, 79, 42,160,132, 15,170, 19,144, 22,147,183, 48, 83,163,
+114,235,189, 66,227,186,192, 66,103, 63,111, 45,237,192,244, 52,145,140, 41, 21,225,253,197,189, 70, 53,199,117,109, 59, 11,179,
+174, 92,176, 81, 35,227, 60,158, 73, 12,136, 64,230,111,204, 98, 24, 72, 76,206, 47, 94,249, 40, 61, 70,212,148,190, 41,210,179,
+ 66, 10,156, 68,104, 5,182, 30, 9,105, 71,209,224,199, 25,187,172, 68, 64,169,133,205, 81,129,161,118, 98,108,102, 49, 35,239,
+163, 21, 0,153,176,228, 57,243, 4,162,157,181, 0, 49, 16,167, 2,139, 79,246,137,123,156, 34,132,126, 48,116, 8,216,124,250,
+194,105,195, 68, 53,246,122, 30,137, 26,139,128,191, 72,186, 23, 59,138, 17, 54,233,232, 10, 6,255,157,156,184,104, 98, 21,241,
+185, 91,127,248, 10, 90,124, 24, 70, 28,124,225,103,237,206, 13,220,160, 48,171,184, 96, 75,211, 90,151, 65,180,111, 42,249,132,
+ 60, 88,185, 1,246,181, 6,156,212,205,233,239,112,158,237,241,202, 43,237,109,222,245,115, 37,200, 20, 40,177,241,175,162,130,
+133,131,167, 31,145,172,165, 71, 94,242,138, 82, 73,142, 10,229,252, 81,242,106, 92, 66, 65, 7,131,115,102,182, 77, 57, 94,152,
+ 65,207,202,144, 79,142,118, 57,246, 17, 29, 91,214, 60, 69, 75, 56,130, 52,138, 23, 61,214, 10, 23, 36, 89, 48,226,141, 32, 6,
+ 22,230,222,206,247,119,215,137, 10, 7,107,221, 59,176,150,244, 94,246, 49,181,236,159,119,177,248,157,209, 93, 41,184, 81, 24,
+ 71,124, 30,138,107, 68,169,150,176,133,142, 14,249,212, 53, 24, 24,240,224,179,123, 11, 2, 98,222,131, 18,173, 33, 92, 5, 78,
+105,188, 90, 98, 81,116, 87,244, 52, 84,245, 89,169, 42, 58, 43,233,198, 84,162,167, 89, 20,219, 54, 55, 89, 26,217, 72,228,195,
+112,173, 78,113,211,206,113, 75,228,171, 32,148,181,156, 51,209,207,228,176, 17,131,220,245,131,130,186,218, 27, 97,219,237,134,
+ 14,131,245, 51, 62,187,121, 30, 66,184, 18,203,126,181,144,158,185,134,218, 67, 99, 91,107,157,161,187,200, 48,146,156,149, 80,
+105,126,117,189, 71,218,109, 48,233,209,179,223, 39,243, 0, 17, 53,214, 59,107, 4,107, 87,206, 23,184,254, 3, 83, 91, 58,213,
+171,244,142,200,166,229,204,118, 20,109,251, 69,118,129,170,122, 66, 65,165, 87,152,208, 9,154, 30,108,244, 66,239,113, 28, 62,
+166,114, 90,139,189, 8,126, 7, 39,206,120,158,254, 97, 75, 72, 64, 69, 47,249,238,129, 22, 24, 76, 95,179,150, 47,188,155, 24,
+ 10, 80, 40,169,146,253,198,194,154, 36, 49, 47, 86, 98,185,149, 39, 87,144, 88, 39,146,103,246,130,250,129,252,123, 5,117,220,
+ 16,226,225, 66, 56,178,240, 14, 78,215,107, 61, 59,195,113, 68,220, 6,144,142,133,234,122,184, 4,253, 49, 40, 81,245,120,194,
+ 23, 64, 96,250,169,114,149,200,135, 33, 33,193, 79, 69,238,193, 58,228, 33, 8,103, 6, 6, 50,224, 76,161, 21,181,141, 98,124,
+129,138,244,204, 7,144, 52,168, 9, 29, 6, 71, 7,133,131,220, 86, 72,246, 52,204, 19, 69, 84,176,255, 99,115,100, 85,198, 15,
+ 17, 75,129,168, 88,134, 89,106,241, 3, 4,107,143,223, 99,130,129,233,141,243, 86,194,235,227,137,119,246,164,155,240, 44,207,
+143, 67,205,159,179,179,221, 86,184,182,190,165, 11,159,113, 48,153, 88, 30, 44,120,156,243, 74,114, 24, 92, 12, 51,242,131, 9,
+238,255, 69,219,249, 46, 20, 36,224,129,103, 19, 41,103,158,140,174, 15, 53, 63,107,218, 58,225, 89,226, 62,174, 21,186, 77,146,
+216, 8, 99, 93,130, 7,219,206, 74,109,253, 40, 4, 10,116,208,171,152, 35,163, 68,151, 71, 32, 30, 53, 90,165,209,253, 98,136,
+124, 78,121,230,140,115, 86,128, 43,219, 65, 94, 38,183, 90, 38,140,175,183, 96, 57, 84,252,122,192,115, 14,168, 39,184,169, 48,
+160,224,252, 67,156, 62,207,110,121,140,167,135,205,214,165, 85,103,243, 71,163,168,141, 25, 29, 23, 40,144, 13, 11, 86,255,251,
+ 5, 86,103,140, 90, 5,196,109, 36, 40, 6, 67,161, 29, 34, 10, 5, 95, 97, 83, 48, 60, 10, 97, 51, 5,146,232,150, 77,107,217,
+ 92,173, 93, 62,233,104,201,198, 13,253,159,101,131, 61, 71,207, 59,219,179, 82, 60,214,151, 75,160,107,125,212,162,135,211,131,
+205,198, 51, 18, 4,194, 96,104,154,226,126, 44,131,114, 74,243, 32,186,219,231, 91,107,180,136,139,147, 16,173,195,166,247,120,
+ 29,237,232, 9,174, 91,159,133,175, 51, 25, 38, 21,195,169, 16,111,228,172,107, 46,123, 63, 48,128, 69,115,218,244,244,194,222,
+117, 56,171, 59,141,138,155,180, 98, 42, 90,149,201,126,113,157,224,249,178, 39, 91,146,117, 56, 3,175, 88,197, 28,173,123,230,
+ 21, 29, 14,230, 9,133, 81,173, 78, 78,195, 98,252,123,224,115,174,208,106,226,189, 62, 44,175, 92,103, 24, 7, 75,145,190, 68,
+104, 3,179, 83,105,137,237, 53,107, 49, 50, 23, 25, 83, 11, 72, 86, 52,183,120,144, 9,197, 49, 48, 51, 41,120,136,101, 73,169,
+ 92,177, 17,129,230, 1,206, 85,174,134, 93,161, 71, 11, 3, 94, 80, 71, 25, 5, 46,104,154,227,195,123,114,200, 76, 17,247,112,
+ 26,131, 47, 85, 86, 18,155, 71, 65,150,180,109, 48,201, 85, 0,115,184,238,189,172, 32, 40, 41, 0,242,208,113,131,228,252,103,
+ 94, 29,166,214, 49,180,152,103,189, 39,195, 76, 2,232,232, 28,236,185, 39,152, 33,161, 42,111,228,134, 78,182,174, 66, 88,127,
+236, 84, 77, 57,235, 26, 43,101,251,161,162,248, 99,183, 5, 81,206,183,102, 14, 35,172, 51,241, 67, 32,106,115,201,181,251,195,
+157, 43,133,188,162, 26,123, 39,204,249, 77, 17, 14,158,119, 86, 91,207,120,237, 67, 48,217,219,227, 74, 90,225, 42,201,218,181,
+111, 55,203,120, 55,118, 81,102,102, 82,131,106, 16,190,166, 96,162, 42,161, 76,230,117,116,113,204,181, 25,244, 45,222, 37,235,
+111,114,210,195,218, 80, 53,114,179, 55,105,135, 75,224,103,182,234, 71, 42,175,196,244,251, 40, 32, 73, 66, 84,217, 91, 47,176,
+ 42,101, 71,143, 10,140,215,128, 69,193, 6,224,153,252, 80, 95, 74, 73, 88,218,128,250, 84,181, 11,199,172,223, 64, 83, 99,195,
+ 82, 97,102,111,181,110, 18, 65,179,226, 38,160,226, 87,182,180, 58,209, 54, 46,180,170, 35, 7,221,158,208,105, 56, 44,236,125,
+ 87, 72,155,116,101,126, 70, 54,219,168,178,232,129, 4, 1,118,235, 3,107,191,167,244,112, 95,245, 94,147, 26,148,202, 98,172,
+119, 19,238, 10, 71, 1, 68, 17,172,213,143, 39,203,102,110, 60, 1, 31,159,200,236,247, 9, 10,181, 35, 85, 80, 84, 96,199,157,
+215,209, 59,108, 27, 30,120, 36, 6, 98, 38, 15,213,250,120,206, 99,230,110,255, 27, 44,247,225, 31, 55,110,123,142,243,208, 13,
+ 93,139,173,229,170,118, 85,188,217,233, 80, 87, 72, 16,120,213, 90,242,226,169,130,197,249, 21,182,166, 15, 41, 62,248,170,122,
+232,218,114,200,152,182,174,233, 32,183,161,171,165,109,167,105, 48,214,227, 47,128, 45,180, 52, 26, 20, 37,141,139,143, 92, 93,
+ 16,112,185, 51,141,115,175, 8, 43, 66, 14,110,154,183,174,132, 61,159,189,112, 48,150, 93,121,139, 98, 38, 87, 66, 34, 33,206,
+ 0, 22,171, 86,128,228,121, 51,195, 33,131, 49, 54, 82,162,219,144, 84,222,116,145, 13, 3,225, 55,171,204,104,247,193,218, 98,
+ 20, 1,179, 44, 57, 17, 64, 40,139,248,226,224, 80, 66,161, 11,237,119,179, 59,133,181, 47,128, 12,101,149,141, 45,123, 83, 14,
+ 73, 40,206,125, 55,112, 28,144,152, 43,164, 17,174,125,180,121, 51, 69, 93, 1, 35, 15, 64,225, 38,147,221, 87, 20, 74,106,191,
+ 97, 45, 99,192, 98, 82, 25,233,115,113,176, 9,101, 61,108,192,146,240, 61,126,175,136,195, 65, 96, 40, 45, 43,133,172, 30,164,
+ 11,115,174,235, 57, 70, 4, 49,219,215,120,207, 2, 27,125,137,215, 10,160,214, 85,107,146,163, 42, 5,184, 10, 90,143, 80,108,
+ 52, 44,104, 56,191,102,135, 90,216,251,177, 84, 54,247,166, 11, 92, 31, 0,130, 48,151,232, 40, 24,159, 29,218,195,177, 49, 49,
+216,137,116,206, 93,241,176, 41, 73, 41,207, 32,244,243, 3,184, 7,166, 8,161,147, 62,176,162, 37,162, 83, 91, 11,209,238, 41,
+ 31, 70,151,142, 64, 70, 13, 71, 60,101,213, 57,254, 9,174,194, 98, 77,171, 49,211,108,213,101, 93, 10,145,165, 98,106,243, 79,
+225,228,207, 76,157,137,200,156,128,231,187,112, 28,148,139, 9,121, 65,160, 42,241, 59,157,188, 41, 49, 82,137,240,151, 81,110,
+249,114, 8,194, 50,226,176,167,166, 4,121,208, 36, 21, 24,111,141, 31,184, 89, 5,193,172, 34,165, 77,187, 81,145,116,201, 62,
+178, 41, 53,251,210,201,179,215,193,210,181, 84,164, 67, 43,161, 93,131, 58, 42,208, 30,184,212, 14, 35,109,173,175, 53, 2,169,
+ 84,119,193,166, 79,226, 12,108, 50,222, 73, 98,125, 23, 61, 36,170, 71, 28,163,161,199,172,120,142,231, 64,162,163, 90,171,142,
+129, 39, 53,244,118, 1,158, 10,167, 37,148,228, 99,190, 60,154, 20, 21,220, 64, 78,116, 43,227,254,154,149,113, 96,107, 18,153,
+ 21,183, 12, 95,186,137,247, 88,103,253,162, 57, 19, 54,138,156,108,143,237, 27,104,217,131,178,181,238, 64,209,121,190,135, 40,
+ 25, 29,179, 93, 83,158,253,243,113,122,232,100, 27,177,173,149,250, 28,104, 43, 95, 33, 5, 64,183, 23,237,117,176,119,165, 38,
+129, 41,169, 62,123,155,246, 32,216,188, 40,156, 83, 33, 35,229,181,252, 29,218, 35,200,249,165, 4,217,216,223, 76, 18,206,148,
+ 87,226, 59, 61,245,165,106,138, 57,197,180,230,181, 58,188,240,169, 50,210, 52,110, 66,250,155,219,174,120, 15,193, 30,139,112,
+ 1,216, 62,136,240,100, 69, 42, 2, 42,216, 10, 59,237,162, 39,143, 33, 4, 5, 24,102, 21,251, 34, 40,113,242, 90,171,253, 48,
+ 71, 58,218,158,144,249, 4,152, 78,243, 36, 51,103, 66,148,112,182,239, 8, 99,139, 44,183,170, 19,238,147, 4,236, 46, 12,185,
+ 50,234,219, 46, 25,207,187,230,175,187,112,131, 34,150,114, 4,171, 20,168, 46, 65,181,219, 31,226,178,114, 44, 33,192,166,181,
+165,138,255,185,172, 22, 63, 15,112,112,133,237,120, 24,125,174, 24,153, 67,128, 55,206, 8,122, 36,211, 21, 14, 53,173,207,206,
+117, 3, 41,172, 45, 51, 93, 88, 8, 68, 70,105, 44,194,208,130, 94, 85,228,136,130, 65,103,131, 95,107, 19, 22, 85,107,173,142,
+131, 85, 41, 28,211,185, 18,168,226,190,104,105, 11,178, 47,130,182,193, 79, 37,219,147,170,142, 84,172,253, 42,115, 18, 48,153,
+139,197,253,249, 18, 86, 36,180, 72,114, 5, 50,227, 42, 25, 5, 91,176,204,249,148,153, 83, 89,227,235,108, 86, 80,247, 18,155,
+189,177,116,237, 96,191,191, 83, 2, 24,199,224,214,102,170,237,117,111,178, 72,192, 34,113,221, 21, 82, 16, 98, 50, 54, 43,115,
+ 53,216,134,173, 89,210, 67, 28,201,113,136, 30, 85,152, 85,156, 69,241,161, 35,208, 29, 59, 26, 82, 67,183, 81,194, 90,225,246,
+ 51,177,182, 34,101, 20,171,109, 18,235,145, 38,123,250,150, 85,219,218,230,109,107,182,132,250, 93,210,220,217, 72,145, 72,149,
+ 4, 85,121,153, 96,148, 54,238,155,254,222, 74, 25,221,142,110,107,134,176,159, 50,245,235, 97,243, 92,195,246, 82, 58,220, 75,
+178,234, 22, 66,135, 69,241, 67, 80,209,174,214,192,193, 46,155, 96,221,244,131, 65, 66,206,154,111,192,116, 23,160, 97,154,220,
+ 15,110,215,181,118,241,103,219, 27,183,155,152,233, 8,208, 13,205, 57,210, 54,230,185, 86,239,120,184,224,216,244, 25,100, 97,
+181,227,129,111,135,128,158, 99, 2, 4, 74,209,200,241, 41,109, 72,186,222,110, 38, 24, 63,219, 40,172,120,107,189,234,137,161,
+162, 83,165, 11, 46, 71,198,233,174,171,216, 41, 35,123,157, 33, 49,222, 87, 81,181,187,145,230,250, 87,102,234,127,183,204,154,
+179,190,252,179,105, 39,165,173, 68,102, 55, 99,201,199, 4, 0,126, 73, 1, 18, 34,112,113, 25, 98, 24,247,243, 58, 64, 24,196,
+ 43, 74, 27,120,170,147, 93,163,164, 3, 70, 86, 39, 83, 18,156,212, 68,173,130,164, 40,217, 23,133, 69,170,164, 36, 76,162, 37,
+195,241, 30, 61,180, 36, 37,105, 82,116, 18,166, 23,161,217, 14,135,158, 53, 24,208,166,236,181,121,244,202, 23,158,229,240, 8,
+190,147,125, 81, 83, 74, 27,138, 44,247, 80,201, 67,213, 10,246, 51,145,172, 41,112, 7,113,137, 57, 25, 65,116,109, 20,155,170,
+ 34,109,138, 74, 41,110,140,139, 86, 63, 39,124,118, 84,178,182, 41, 77,250, 48,137,251,186,219,102,185,229,141,218, 5, 45,211,
+ 62,218,188, 19,193,235, 80, 69,168,189,247,153, 48, 25,176,132,117, 12,187, 30, 37,131, 77, 38,136, 80,244, 98, 78,215,221, 9,
+218, 93,198,205,176,205,112,204,215,163,130,159,176, 61,198, 28,233,128,112, 96, 52, 21, 55,113,142,220,148, 21,200, 35,173,137,
+184, 96,241, 16,195,147, 86,184,238, 73, 86,111,188, 3,132,108, 86,186, 81,196,115, 41, 64,186, 43,185,165, 13, 89, 10, 99,163,
+ 44,142, 20,230, 18, 54, 69, 28,171, 57, 56,165,112, 78, 94,235,155,139, 86,246,234,139,118,183, 5,195, 66,142,211,252, 20,213,
+ 10,243,122, 37,144,245,121, 46, 84,195, 12, 76,241,216,140, 89, 91,204, 64, 43, 99,206,132,178, 34,137, 83, 46,188, 26, 25,216,
+179,104, 27,176, 85,225, 41, 60,188,104, 64, 75, 85,130,162,110,222, 22, 39, 7,232, 89, 23,114,129,152,184,106,171,214, 19,231,
+ 4, 84,224, 83, 58, 63,239, 1,161,193,195, 50, 14,161, 38,228, 43, 97,173,100, 61,177,140, 3,171,104,164,167,126,174,150, 11,
+ 80,131,248, 87,109,132,209,227,228,180,131, 0,157, 10, 49, 54, 65,141, 5, 91, 52, 71, 28, 27, 31,130, 23,202,179, 51, 96,205,
+170,146,104,146,177,118,169, 93,179,209,212,220, 30, 88,116,100, 36, 96, 21, 4,171, 52,131, 27,203, 44,117, 94, 24,148, 30, 72,
+211,151,174, 10,192, 35,221,176,163,157, 61,254,172, 91,215,150, 53,104,211,196,128, 14, 12,170,105,212, 16,221, 8,241,156,132,
+ 73, 36, 51,198, 84,127, 81, 64,124, 44, 41,129, 52,214,240,145,138,184,211, 63,153,244,190,157,163, 35,204, 58,116, 1,189,204,
+ 92,119, 3,248,214,186, 52, 64,239, 11, 43,244,120, 63, 83,127,169,147, 54, 28,106, 15,112,177,128,224,246, 27, 55,219,214,155,
+183,129,190,159, 24,225,157, 64,182, 6, 23,129, 25,105, 62, 93, 33, 4,179, 48,170,211,205, 63,184,154, 95, 85,242,182,163,172,
+ 8, 71, 18,103,135,156,114,132, 71, 2,118,135,173, 15,133, 57,250,243, 42,106,169, 41, 76,222, 39, 71,165, 96,174, 96,178,213,
+ 96,254, 53, 39,161, 21, 37, 68, 41, 59, 42,150,147, 37,207, 65, 3,149, 82,100, 36, 6, 44,236,241, 53,132,128,194, 21,215,104,
+ 42, 43,205,130,227, 54,197, 63, 96,194, 32,150, 53, 45,135, 96, 76, 11, 51,162, 10,194,184, 16, 82,114, 98,226,217, 34, 34, 2,
+237, 61,247,232,115, 82,187,218, 24,161,219, 41, 74,113, 17, 93,228,130,143,135,172,128,162,186,120,235,114,188,222, 9,197,120,
+ 20,121,194,133, 11,188,191,226,236,121, 59,169, 22, 10,247, 3, 23,176,202,171,218,183, 43,100, 11,188, 78,244, 42,195,121,146,
+ 41, 19,200, 44,162,149, 33,149,110, 84,236,163, 31,239, 7, 76, 72,183, 16,156,207,195,184, 41,177, 12, 24, 5,148, 28,182, 54,
+166,124,160,166,240,176,150, 77, 25,255,152,144, 73,133, 65,110,109,179,227,144, 14,253,121, 83, 98, 99,181, 86,161, 80, 18, 58,
+150,178,117,177,210, 26,136,227,225, 76, 85, 2,242,214,238,147,106,132, 12,233, 45, 66, 42,144,162,103,207,149,110,234, 81,209,
+ 73, 34,133,249,223,183,215, 63, 1,113, 14, 4,101,118,227, 70,113, 16,252,107,118,212,141,248, 72,195,211,230,170,100,103,173,
+ 68,152, 77,130,221,232, 38,213,239,159, 82,117, 86,201, 29,227, 41,218, 70, 29,243,218,162,130, 58, 1,156,145,120,206, 69,213,
+188, 5, 65,210, 97, 1,104,141,134,235,136, 57, 74, 96,141,234, 22, 67,100,184,231, 48, 4,155, 19, 37, 16, 12,193, 44,216, 54,
+192,162, 60, 83,235, 44,246, 54,245,164, 8,212, 89,163,134,167,113,176, 30, 34,171,113, 8,152,109,243,183, 50,202,172, 81,214,
+ 17,208,245,197,241, 5,181, 4, 8, 7,116, 9,108, 73,159, 69,162,173, 13, 93, 91, 49,111,113, 69, 93, 78, 73,236, 3,175,253,
+203, 56, 20,185, 80,185, 86, 7,207,196,119, 25,179, 93, 93, 90,125,230, 61, 67, 97,192,129, 84, 69,113, 44,140,200, 68,153,253,
+184,238,133,106, 78, 87,160, 54, 30,168, 1,146, 18,181, 6,146, 89, 32,205,117, 37, 43, 33, 33,232, 57,138,118, 34, 45, 39, 37,
+162,123,195, 42, 37,170,205,233, 66, 57,158,188,171,105,239,161,172, 4,102,125, 52, 97, 99, 68, 99, 65,130,213,124, 51,208,176,
+234, 3, 4,156, 35,115, 37, 48, 26, 93,144,239, 41,209,242,134, 57,217, 16, 21,137,191, 41, 36, 24, 37,101,106,145, 12, 55,192,
+246, 50,173, 30, 76,166,149,231,147, 50, 54,114, 21,103, 26,121,224, 54,187,175,177, 25, 11,206,246, 47, 64,181,114,254,125,180,
+ 54,224,229,142, 19,248,176,163, 69,110,194, 37, 65, 13,157, 48,229,165, 95,242,184,161, 64,203, 91, 95, 83, 33,240, 65,162,119,
+214, 1, 43, 10,151,169,197,121,238,158,232, 36,113,115,153,242,178,119, 12,101,176,249,189,161,193, 65, 80, 11,162,159,184, 47,
+154, 36, 35, 49, 81,100,136,235,144,183,170,101,108,232, 83, 41,224, 69,151, 62,247, 52, 8,129,147,200,120,110, 16, 69,221,204,
+ 53, 64, 65, 31,242,201,213,178,113, 66, 53,157,135,171,246, 96,230, 88, 38,125,192, 70,167,144,166,141,181,197, 67,229,111,135,
+166,194, 6, 74, 10, 78,244,216,171, 3, 30, 50, 14, 37,213, 23,213,137, 87, 8, 77,139, 39, 78,149,152,110,250, 34,145,250,180,
+ 82, 14,187, 83,192,218, 1, 4,109, 74,251,172,172, 27,208,174, 97,111,235, 13,168, 76,183,201, 72, 44,194,166, 82,239, 11,246,
+ 52,170, 1,110,223,191,153,124, 35, 20, 16,234, 5, 68,166,117, 93, 38, 53,232,110,128,205, 30,149, 40,233,194,209, 22, 25,163,
+254,117,206,182, 24, 20,105,210,205,177,198,120,195, 54,208, 90,225,160, 75,218, 17, 96,111, 33,251, 67,109, 64, 67,235, 16,110,
+ 96,246,111, 30, 96, 65,158,125, 94,139, 92, 68,104,254,250, 58, 42, 97,193,246,177, 17,198,236,119, 88,241,210, 43,209,141,118,
+ 17,106, 28,238,203, 6,226, 96,135, 42,157, 76,101,223,223,111, 81,187,220,168,220,135,146, 89, 23,214,126,125,244,165,111, 70,
+155,190,139,187, 52,132,100,140,200, 74, 56, 1, 84, 21, 78, 23, 72, 17, 93, 76,232, 2, 99,240, 3, 84,181,218,213,234, 15,200,
+216,215, 11,108,154, 56,198, 20,127,125,237, 90,177, 50,218,135,117, 89, 63, 19, 64,219,117,252,107,173,100,125, 80, 11, 30,153,
+ 28,142,164, 93, 66, 35, 40, 74, 28, 12, 59, 10, 65, 56,119, 69, 76, 24,187, 73,188,160, 81, 69, 55, 32, 75,173,123,129, 88,169,
+133, 9, 93, 71,235, 60,120, 69, 12, 5,206,134, 35,197, 34,241, 10,246,195,176,245,190,209,174,143,222,215,133, 87,208,144,222,
+ 33,172, 96, 17,164, 36, 10, 12,195,129,234, 38,164,250, 30,102,227, 92, 1, 58,102,215, 57,148, 81,149, 79,214,218,169,163, 45,
+215, 69,148, 53, 7, 59,219,148,169, 10,132,141, 73,128,134,184, 39,196, 85, 15,245,178, 77,126, 51,136, 57,187,248,192,156,112,
+196,121,198, 1, 68, 37, 87, 56,154,202, 83,208,167, 25, 81,137,190, 34,155, 45, 33, 69,199, 73,182, 62,129,101, 10, 29, 50, 33,
+ 46,149,149,249, 70, 32, 58, 18, 61,162,232, 27,151,125, 58, 13, 38,186, 73,136,102,152, 5,110, 30, 33,208,205,132, 42,156,130,
+ 77, 30,188, 9,129, 52, 9,113, 27,132,175,217, 37, 44, 87, 34, 16,159, 82,245, 4,108, 66,177, 42, 9,178, 83, 32,235,218,178,
+126,209,191, 28,175,171,230,166, 10,122,147, 45, 24,133,135,106,211,149,245,186,209,250,195,135, 1, 35, 28,124,100,131,151,109,
+240,154,192, 9,146, 33,245,104,130, 81,197,164,222,117, 19,194, 77,173,245,181,101,157, 93,179,251,101,207,197,114,131, 3,126,
+ 49,242, 6, 74,104,115, 39,246,175,123,197, 48,141, 83,243, 72, 20, 12,225,141,161,109, 11,140,116,250,102,167,186, 17, 31,173,
+ 38,247, 66, 84,214,166,254,246,108,115,138, 14, 16, 59,210,122, 26, 21,179, 31,112,234,126, 50, 92,153,252,243,104,129, 21,193,
+115, 82,117,250,102, 2,251, 87,238,172,184, 74,217,231,226,236,126,234,182,216,142,195, 78, 25,129, 96,246,155,167,177, 73,240,
+196,225,247,238,158,213, 18, 54,187,246,222,102,101,190, 79,218,121, 48,118,183,109,124,203,170, 59,155, 87,184, 66, 69,214, 99,
+ 94,167, 62, 70, 97,100,115,167,220,109,248,223, 12, 48,136, 46, 5,102,136, 68,102, 24,127, 48,232,108, 37,229, 19, 16,104, 14,
+172,219,196, 90,201, 56, 8,198, 4,143,122,224,147, 18, 52,163,102,209, 45, 0,248,176,245,168, 87,206,125, 51,154, 92,144,196,
+180,241,251,185,138,164,152,233, 17,123,101,237,218, 26, 22,171,246,185,168, 26, 59,154,123,203,159,237,106,208,212,218,231,101,
+ 66, 41,200, 10, 31, 75,100, 29,179, 89,123,211, 69,215,205, 74, 48, 14, 49,114,160,182,208, 85, 99,208, 15, 47,243, 16,142, 9,
+229,156,119,137,240,239,209, 77, 97,112,207, 79, 54, 26,105, 23, 98,183,234, 42, 69, 7,182, 40, 36,165, 29, 72,250,199, 63, 91,
+ 65, 0,163, 94, 36, 70, 85,242,152,210, 62,162,218, 20,191, 71, 88, 15,186, 21, 32, 28,109,175,153, 13,134,211, 30,149, 57, 8,
+129,110,105,229,188, 79,136, 3,185, 16,246, 34,238, 45,199,130,107,195, 83,210,234,217,120,164,221, 19,166,180,247,226,196,214,
+108, 90,105, 15, 96, 12,210,174,199,160,182,205,161,222,234, 34, 79, 11, 91, 81,154, 28,179,219,216,132, 80,184, 58, 14, 73,181,
+ 91,226,192, 85,208, 59, 64, 37, 70,161,133, 67, 68,169,247,184,232, 13, 81, 96, 51, 12,179,227,114,231,182, 67,185, 2,106,108,
+205,218, 20,157,197,149, 2, 74,237, 85,133,104,235, 95, 89,249,232, 66,113,171,155, 14,135,175, 18, 49,135,196,184, 41,137,163,
+ 35,217,103, 39, 5,132,117,130, 26, 1,232, 28,200,126,126,138,208, 42, 44, 85,128, 96,148, 65, 24, 92, 97,230,231, 34,181,104,
+ 45,167, 8, 65, 66,228,164,172,128, 12,228, 98, 37,111,191,111,178,127,213,216,209, 72, 50, 50,241,150,120, 92, 97,219,236, 70,
+ 69, 93, 18, 33, 13,169, 92,122,128, 2, 17, 80, 1, 45, 66,133, 39, 76,148,123, 93,248, 2,211, 17,250, 75, 33, 0,196, 18,198,
+102,132,151,116,221,237,104,213, 85, 10, 90, 87, 5,209, 32,230, 42, 91,107, 76,199,102, 46, 68,153,216,178,134, 21,145, 88, 71,
+ 71,104, 28, 48,198, 90,176, 85,239, 47,131,152,138, 49, 22, 16, 68, 60,230, 79, 47, 83, 40,120,123,247,118,226, 20,239, 29, 17,
+171,106, 15,153, 20, 43,170,227,158,182, 1, 78, 37, 90,250,120, 10, 31,214, 30,192,211,130, 48,179, 32,151,189,192, 20,180,108,
+178, 13,178,144,143,125, 24,170,173,126, 8, 41, 83,160, 73,173, 45, 94, 86,176,152, 13,199,181,158,192,238,103,155,176,181,183,
+171,129,162,244, 64,214, 46, 76,123,192, 61, 63, 61,178,230,141, 66,199, 90,156,151,173,166, 73, 1, 86,211,159,131,185,134,205,
+ 83, 66,140,233,209,153, 58,107, 22,157, 27,123,137,128,217,236, 74, 31,243, 67, 46,115,130, 1,201, 42,148,199, 62, 55, 89,139,
+ 84,237,189, 56,198,122,242,202,211, 69,147,225,223,140,131,122,149, 32,164,185,112,179,228,188,116, 99,152,218,181,105,247,203,
+188,131,150,126, 89,233,114, 74, 7,255, 52,212,167,141, 50,120, 58,232,215,161,214,221,168,190,218,231, 53, 85, 31,145,141,195,
+189,249,168,171,199,201, 9, 58,121,116,243,240,208, 36,187,157,224,176, 62, 87, 81,255, 51,210, 50,194,234, 88,245,180,107,160,
+156, 22,175, 91, 10,224,139, 11,116, 86,173, 50, 47, 49, 50, 41,171,184, 94,244,181,143, 80,161,113, 32, 68, 16,142,232, 70,236,
+226,191, 73,187,201, 29,173,186,139,214,187,160,233, 70,215,160,246, 12, 86,162,217,100, 99, 16,193,170,177,104,254, 60, 21, 25,
+ 35, 12,140,116,141,235, 27,136,223, 10, 22, 65, 81, 59,160,200, 72, 72, 75, 96,164,222, 21,152,225,217,168,105,108,234, 26, 43,
+ 0,169, 97,174,137, 17,235,108, 77,159,156, 53, 82, 60, 81,177,171,236,193,141, 19,156,164, 28,195, 45,192,151,200,220, 22,232,
+ 46,170,214,198,199,140, 84, 66, 88,137,232,241,202,126, 8,104, 5,212, 80, 21, 50,136, 84, 64, 12,177,206, 67,155, 10,228, 71,
+ 67,123, 51, 80,131,156,196, 93,177,217,129,224,140,101,181,105,235,108,200, 79,217, 0,171,199,116, 34,244, 66,211,138,172,181,
+ 26,216, 51,115, 8,250, 60, 27, 28, 95,107, 68,159, 74,226, 88, 51,102,155,186,194,148,112,106,205, 0,200, 84,170, 83, 18, 2,
+ 79,226, 45,247, 20, 30, 81,130,199, 34,144, 40,132, 74,127,130,179, 26,121,101, 92,114, 30,180,181,122,221, 98,163, 85,105,138,
+102, 29,167,183,170,215,123,226,225,157, 44, 48,179,182,195,219, 70,207,133,197,211,250, 40, 41,188, 5, 41, 89,168, 11, 40,170,
+186,111,115,187,105,156, 82, 45, 39,216,113,241,237,129, 44,195,122,225,116,182, 82,250,125, 36, 43,234,125, 41,188, 90, 92,216,
+ 43, 52,242,123, 79, 64,205,173, 69, 32,103, 50,252,164, 81,140,163,114,155,198,226,166, 11,162, 20,116, 15,228, 57, 38,166, 70,
+ 49,140, 74,236,192,231, 97, 22, 5,114,164, 11,218,167,172,221, 56,173, 56,182, 43, 16,140, 64, 51, 41,197, 0,140,159, 57,233,
+236, 60, 34, 46,241,160, 19, 73,108, 5,137,116, 84, 18,149,207,172,129, 5,162, 91,205, 26,196,189,109,172,115,105,120,239,237,
+115,236, 80, 11, 21, 89,133,152,212, 54,215, 26,156, 9,201, 30, 93,111,107,249,181,138,195,158, 51,174,129,111, 48,236, 82,104,
+ 11, 19,176,171, 86, 8,255, 97,111,175,118,234,153, 29, 95, 11,150, 98, 51,164,122,105,119,130, 15,162,130,229, 21, 43, 28,219,
+217, 2,157, 7, 19, 27, 18,132,126, 56, 47, 93, 97, 39,166,147, 81, 5,252,104,133,235,230,132,243,233, 85, 3,195, 28,130,147,
+241, 6,252, 71,215,100, 57,179, 3,140, 0, 3,191,233, 41,186,167,191, 29, 30,160,155,214,158,151,170,218, 6,210,248, 79, 46,
+145,222, 70, 96, 57, 36,132,103, 21,128,226,208,232,102,249, 28,219, 5,114,195, 19,223,239,207, 89,198,104,196,188,226,192,186,
+247, 81, 99,251,187,187,217, 21,228,165,112,178,252,149, 41,148,252,189,114, 87, 27,151, 29, 72,134, 48, 84,122, 53,236, 24,237,
+136, 86, 28, 29,154, 42, 94, 45,215, 46, 10, 27,115,239, 34, 41,181, 2, 41, 36, 62,122,237,247, 79, 43,160,218,193, 87,176, 90,
+ 94, 29, 50, 25,178, 4, 36,242, 45, 4,245, 30, 8, 86, 50,236,183,123,233, 5,248, 26, 26,197,219,239,231, 26,106,118,102,208,
+109,217,136,165,228, 0, 40, 9, 91,171,104, 7,175, 91, 0,219,215,235,156, 71, 44, 41,161,180, 52,161,220, 52, 78, 46,164, 39,
+ 77,216, 96,121, 5,139,225,146,103,169,198, 9, 39, 1,133, 48,175,178,153,121, 21, 87,178,246, 77, 99, 30,139, 69, 27,226, 66,
+147,124,222, 4,113,172,226, 23,141, 32,141, 45,251, 36, 33,137,141, 87, 57,190,230, 51, 46,241,161,162, 82,143, 25,213,178, 64,
+ 28,130, 74,194, 55, 47,187, 41, 0, 88, 33,104,213, 4,154,151, 0,193,173, 10,136,129,204, 82, 33, 24,252, 97,130,178,200, 24,
+183, 19,105,130,179, 96,147,129,130, 49, 80, 24,208,183,186, 64,215,181, 47,220,207, 85,156,200,118, 5,196, 73, 12,222,232,146,
+218,214,250,145,110, 1,139,105,106,243, 41, 20,241, 27,189, 97,251,173, 45, 2,144,151,162,222,239, 80, 99, 50,228,132,179, 42,
+191,109, 20,130, 91,183, 76,118, 72, 40, 94, 89, 49,102,124, 20, 93, 60,213,223,221,103,125, 46, 61,166,240,139,178, 10, 16, 41,
+ 28, 30,156,170, 60,142, 3,161,109,144, 43,120,137, 43,176,153,221,186,196,171,251, 32, 17, 13, 41,127,191,207, 79, 75,217, 11,
+245, 40,133,247, 20,244,177, 40,112,192,123, 28,172, 98, 85, 6,103,173, 7,175, 96, 61, 98, 89,212,129, 58, 29, 36,201,154, 20,
+217, 30,211,235,227, 50,113, 64,134,111,152,150,238, 70,192,110,199,212, 58,175,250, 96,179,235,237,124, 61, 90, 90, 21, 43, 35,
+235,186,129, 66,138,126,110,197, 90,235, 20,126,105,102,138,148, 68,235, 12, 20, 75, 8,132,244, 47,155,151, 35,147, 66,159, 1,
+239, 94,244, 54,250,168,164, 75,201,160, 29,118, 63, 51, 28,172, 13, 57, 88, 85, 72,216,198,143,106,133, 11, 43,159,185,131, 74,
+172,107, 27, 78, 73,120,163,240,176,241, 68,113,129, 89,239, 22,244,247,184, 9, 5,190, 61,147,117, 3,154, 14, 2,117, 60,193,
+ 33, 80,217,236, 82,125,225,247,208, 17, 21,144,182, 17, 65,239,128, 77,227,123,171, 90,248,108,188, 97, 98,201,177,209,139,175,
+117,193,150,111,221, 30,219,240,107,255, 57,189, 85,207,234,249, 70,134,189,136,195, 87,138,106, 38, 12,100,206,122,128, 21, 61,
+ 52,213,106,144,158, 73, 59, 92,236, 86, 51, 39,168,149,226,221,149,109, 35,241, 89,139, 0, 99,183, 61, 21,110,220,119,243, 60,
+251,236,189, 23, 15,106,247, 20,198, 53, 50, 44,218,209,245, 1,138, 35,141, 3,133, 39,162,217,181, 4,239,211,136,122,229, 0,
+234,232,202,191,105,252,120,189,127,200,177,202,235, 49,180,117, 45,139, 23, 44, 12,227,141, 1,180,153, 18, 70,151, 65,160,205,
+144,109,191,124, 50,179, 87, 67, 67,109, 29, 54, 4,222, 99, 13, 95, 16,123,170, 25,177, 12, 84,155,178,162,170,153, 80,166, 40,
+122, 17, 83,205,176, 90,147,149,193, 3, 45, 93, 9,229, 88, 41, 98,189, 64,221, 24,116,177,125,190, 59,187,175,158, 51,109, 76,
+ 96, 54,158,215,212,120,192,101, 29, 61, 41, 43,239,113,174,214,236,253, 87, 89, 7,215, 0, 35, 27,211,228,160, 46, 55,154, 95,
+202,228, 6,245, 39, 99,148, 44,101,149, 47, 51, 82,213,132,202, 42, 16, 57, 70, 43,182, 32, 86, 13, 76,152, 20,242,176,194,211,
+ 2,197,168,152, 29,103,249,123, 91, 98,183, 8,118, 81, 28,187, 85, 65, 65, 10,236,158, 82,219, 56, 39, 5,176,218,198, 82, 64,
+248, 87,152, 35, 85,205,138, 92,173,198, 10, 84, 26, 49,214,225, 11,194,124,128,206, 86,134, 2,184, 56,253, 42,179,206, 3,185,
+ 72, 30,234,227,134, 69, 6,189, 0, 72,178, 45, 53, 78, 16,251,105,239,133, 35,195,220,148,246, 65,242,131, 17, 3, 28, 10,146,
+143,155, 57,111,240, 12,179, 78,206, 17,141,222, 53, 90,113,184, 25,201,103,253,122, 78,206, 24,231, 74, 43,207,124,176,188, 13,
+ 37, 85,124,174,203, 17, 81, 91,121,173,139,245,247, 37,240, 26, 61, 94,147,141, 55, 1,144, 28,197,198,246,235,147, 2, 83, 56,
+ 58,204,211,228,179,239,238,181, 5, 92,105,242,119, 42,219, 91, 0,254,232,119,184, 68, 62,122,116, 57, 33,174,173,196, 34, 90,
+ 69,128,200, 24,131,178,138,138, 80, 10, 0, 72, 87,120, 84, 84,227,234, 70,118, 62,247,197,184, 56,104,131, 2,137, 26,208,129,
+192,203,212, 89,187, 79,220,231,212, 93, 76,167, 7,143,254,223,162,249,224, 78,206, 28,255,111,204,184, 71,139,187, 32, 7, 68,
+108, 99, 12, 75,154, 37, 60, 26,156,203,121, 34, 46,150,211,119, 59,145, 31,106,194,237, 82,156, 11,192,138,112, 13, 18,221,248,
+125,211,102,138,184,217, 58,174, 67,175,192,219, 38, 63, 71, 80, 85, 31, 35,180,247,185,219,197,117,175,226,218, 4,242, 61,103,
+211,175,199,188,107,239,115,227, 97, 66,189,154,159,107, 28,178,121, 8,218,230,221,232,202,204,117,176,209,217, 58, 27, 38,192,
+174, 17,206,213,219,240, 86,105,206, 58,158,176,131, 26, 87, 63,123,216, 24,162,127,127,141,125,197,227,170,189,193, 91,146,144,
+111,192, 99, 34,227, 99, 3,222,116,209,131, 93,193,160, 31,208,183,136,117, 88,171,145,200, 37, 66, 94, 0,103,222,237,188, 27,
+208, 78,248,215, 57,181,223, 17,187,185, 57,152,134, 29,160,163, 59, 65,136, 52,133, 76, 57,181, 92,189, 85,154,192, 43,213, 79,
+ 54, 12, 98, 16,175, 32, 37, 82,189,176,221,103, 54, 40, 33,220,236, 97, 35, 66, 44, 45,195,129, 3,219,180,107,207, 53,248, 0,
+153,177,222,183, 69, 74, 63,198, 25, 99, 30,117, 49,175,121,118, 30, 31,166,128,106,190,164,153,114, 93, 37,129,197, 7,103,148,
+179,220, 18,247,235,100,166,233,106,204,139,234,179,181,162,176,132,252,230,130, 73, 93, 82, 66, 18,129,186,187, 64, 23, 35,200,
+108,133,203,138, 14,144, 3,119,216,219, 62,197, 59, 3, 56, 49,240,197,161,138,118, 81, 98,129,107, 93, 30,123, 77, 83, 9, 17,
+222, 30,112,196, 14, 42,197, 54, 17,214,141,123, 10, 63,188,182,217,172,250, 44, 37,130, 93,250, 58, 32, 97, 54,231,178,194,148,
+218,198, 65,209,149,240,121, 56,173, 90, 25,156,124,138,107,150,108,188,232,194,169,229,150,224, 48,192,246, 38,244, 74,151, 85,
+186, 88,129,164,172, 18,177,189,172,194,212, 49, 59,215, 3, 18, 8,196,246,137,119,140,142,153, 68,159,227,224,132,166, 40, 34,
+ 23,117, 78,112, 32,237, 65, 22, 48,127,100,196, 55,227,156,151, 2,216, 2,223,231,130,170, 2, 94,125, 86,161, 30,115,142, 74,
+ 53,213,151, 19,184,176,103,175,237,244, 62,156,213,141,175, 78,206, 23,144,181,248, 78,255,142,103, 19,232,245,108,162, 60,145,
+200, 88,112, 68,170,147,237,196, 15, 67, 54,147, 45, 17,100, 49, 14, 92,166,154, 15,116,138, 35, 75, 25,209,178,142, 79,157, 20,
+173, 93,252, 0,154,102,128,160,230, 30, 66, 74, 93,255, 74, 20, 10,237, 71, 84, 9,122, 99, 7,188, 84,157,193,151, 16, 17, 79,
+211, 70,215, 46,113,241, 20, 3,141,206,194, 67, 92,100, 89,204,198,169,218, 7, 61, 57,217,193,181,181,193,121,155, 99, 72,227,
+144, 60, 15,231, 89,149,136,190,182,207,185, 26, 73, 80,220,141, 17,127,215,188,229,170, 20,175, 49,251, 29,191,103,231,163,185,
+121,214,246,191,222, 19,109,254, 30,218,150,226, 45,233,121,183, 11, 78, 2,136, 20,227,128, 57,235, 8,103,214,103,113, 26, 66,
+184, 18,210,105,140,101, 30,215, 21, 68,133, 66,106,251,227,248,204, 44,167,220,242, 27,128,190,105, 33, 77, 62, 86, 50, 81,170,
+217, 51, 57, 88, 43, 67, 72, 41, 41, 58,218,128, 99,166,244, 23,179, 97, 23,139, 37, 96,152,239,107, 50,164,118, 77, 70,245, 62,
+ 43, 55,165,130,230, 77, 53, 7,192, 84,233,154,168,221,233,211,177,157,148,161,172,109, 85,219,164, 15,164,104,110,107,209, 69,
+116, 20, 93,138,195, 75,229,176, 85,143, 53, 87,212, 18,115,227, 52, 43, 54,122, 86, 5,143, 38, 42,145,177,111, 45,136,120,180,
+215, 33,208,178,231,228,255, 75, 84, 60,104, 19,251, 3,205,154,128, 83, 98,145, 17,137,156,107, 15,177, 23,129, 4, 31,222,235,
+ 90,120,107, 73,178,106,158, 1,236, 32, 50, 90, 91, 46,116,130,228, 53,108,237, 7,220,166, 56,226,208, 55, 85,152,255, 9, 48,
+209,109,225, 19,245,169, 34,143,157, 86,249,212,178, 90,172, 99,142, 84,246, 91,206, 24,232, 96,232, 4,102, 16,167, 21,104,125,
+114,228,139, 23, 74,148, 43,219, 40, 39,115,173,235,131, 92, 24,223,190,109, 6,148, 82,246,130,153,110, 39, 87, 21,200,249,230,
+ 98, 63, 39,130, 30,132, 99, 44, 19, 22, 10, 89,229, 67, 91,198,252,190, 95, 81,192,230, 18,237,255, 53, 29,145, 97,190, 14,128,
+ 23,243, 74, 67,197,237,144,162,137,163, 99,161,167, 64, 54,255, 31,144,215, 68,157,215, 92, 70,183,166,216, 38, 70, 32, 54,195,
+136, 93, 75,172,163,224,186, 71,135,133,215,142,204, 24,117, 73,182,115, 98, 65,107, 22, 56,193,138, 85,144,122, 87, 32, 93, 78,
+171, 81,101,231,230,192, 31,155,181,110,247,108, 69, 2,201,128, 99,227, 25,202,225,126, 93, 54, 20,157, 38,206,247, 33,242,210,
+ 49, 19,160,185, 11, 24,146,211, 72, 66,125, 76, 18, 66,193,186,202, 16, 88,139, 50,199,204,187,194,117, 2, 78,134,227,109, 57,
+ 3,163, 55, 67, 65, 79,154,132, 38,110,213,164, 52,178,114,134, 70, 74,125, 24, 84, 63,166, 64, 49, 71,142, 59,104, 32,108,153,
+ 45, 25,112, 53, 14, 67,164,133,128,250,207, 39, 69,123, 75,248,196, 89,225, 53,211,196,201,168, 80, 37,171,230,171, 70,145, 38,
+ 55,175,194,102,252,222,168,112,253,205,217, 84,141,166, 87, 67, 20,216, 90,233, 59,163,223, 53,133,246,214,219,240, 49, 13,148,
+136,109, 22, 19, 27, 71,241,100, 99, 70,171,234, 69,131, 90,236,115, 48,241, 31,219,200,152,198,248, 36,170, 86,241,136,216,208,
+ 82, 76,206,102, 24,211,157, 50, 66, 94, 28, 11, 44,250, 58, 43, 80,254,198,104, 33,242,212, 99,206,221,206, 64, 50,230,148,203,
+ 97,165,186, 3,160,125,161,152,191, 86,175, 73,133,232,219, 93, 75,123,107,123,173, 58,115,108,173,174,186,114, 78,102, 23, 37,
+ 64,210, 54,221, 3,197, 65, 66,141,145, 99,172,160,133, 80, 85,109, 73,247,176, 28, 44, 23,230,244,228,100, 41,243,183, 52, 29,
+180, 63,220,234,102, 20, 22, 35, 43,102, 54, 64,105,196,135, 24,145,178, 73,112,196,200,222,134,120, 77,100, 98, 59, 83, 61,148,
+117,198,175, 22,240,102, 11,168,207,189,101, 14,185,220, 99,167, 38,218,167,182,139,110, 16,161, 14,103,104, 78, 35, 69,203, 69,
+125, 32, 59,155,214,173, 78,184, 49, 83,178,148, 83,153,226, 96, 16, 17,181,240, 19,189, 11,160,167,125, 63, 73, 15,209,226,166,
+132,152,170,192,166, 34,160, 63,168, 66, 73,177,137, 97,107,147,207,154, 9, 98, 13,107,136,181, 68, 18, 80,199, 22, 33, 95, 12,
+146,181,192,132, 89,150,237,108, 76,242, 2,193, 36,121, 3,181, 57,104,241,153,112,129,223,171,200, 83,142,108,110, 46, 96,169,
+ 19, 78,194, 42,187,129, 89,243,136, 17,183, 59,102,247, 37, 54, 35, 51,142, 10,165,202,220, 57,123, 98,240, 14,201, 34, 49, 14,
+240,141, 29,152,188,221,238, 92,133,146,108,151,182,185,247, 91,206,105,112, 81, 17,148,149,216,193, 15,174,137,171, 91,224, 48,
+170,142, 1,237,122, 20,155, 31, 98, 44,105, 90,136, 49,183,158,147, 21, 7,103,221,104, 5, 93, 13,108, 98,148,134,233, 20, 2,
+121,235, 8,203,135, 32, 26, 19,230,133, 14,160,132,210, 31,230,253,200,138,112,229,112, 9, 65, 79,252,187, 4,123, 28, 88, 15,
+118,111, 85, 64,209,146,112,234,212, 21,202,121,234,104,194,193,255,141,104, 76, 73,252,122, 63,128,184,223,186,248,204,116, 8,
+226, 40, 11,126,197, 8,101,213,243,230,101, 50,186,226,198, 91,123,109, 67,179,195,155, 85,231, 14,123, 16,181, 63, 89, 87, 7,
+108, 98,181, 66, 6,129, 77, 28,204,134,101, 29, 22, 63, 92, 79,158, 7,225,132, 50,207, 64, 24, 27,160, 71,211, 82, 68,189,218,
+193, 37,220, 30,209, 21, 48,209, 95,124,150,113, 31, 87,115, 60,184,121,218, 58, 4,165,207,232,197,219,245,250,222, 13, 44,100,
+197,153, 89,234,219,253, 82,213, 78,167, 66, 60,251,157,237,128, 52, 83,248,194,197,146,202, 60,131,161,120, 53, 27,158,253,112,
+ 27,181,107, 52,121, 17, 89,193, 57,162,218, 10, 23,104, 7,219,127,166,217,153,245,165,179, 5,170,119, 35, 68, 0,131,229,235,
+ 3,185, 80,114, 28,102,120,149, 76, 55,121, 46, 60,129, 77,186,127, 94,101,116, 90, 54,205, 49, 99,157, 7,125,175, 21,238, 69,
+195, 39, 91, 21,131, 25,133, 49,138, 84, 59, 93,119,247, 20,119, 84,244,246,187,204,103,221, 86,186, 45,154,201, 42,227,133,110,
+ 45,208,189,187,108,170, 39, 68,111, 96, 99,138,181, 68,246,100,232,222, 74,215,197,172, 48, 39,239,165, 34,170, 32, 16,196, 46,
+ 26,110,222, 89, 76, 96, 11, 69, 1,172, 97,153, 24, 42, 15,108, 27,179,218, 9,106,226,126,115, 58,113,199,129, 66,214, 64, 25,
+ 80,202, 78,133,247,196, 13,198,138, 70,207,187, 9,155, 92, 96, 37, 74, 37,115, 56, 69,180,192,135,112,140,252,228, 91,197, 22,
+147,128, 27, 97,226, 12, 23,180,155, 68,119, 33,113,180, 57,192, 46, 86,185,180, 27, 98, 91,216, 71, 73, 72, 55,235,110,185,169,
+ 68,172,174, 88,123, 47,232, 95,238,245,149, 76,151,139,150,176,105, 0, 52, 53,139, 71, 59,168,207,201, 27, 20,101, 59,249,166,
+205,112, 29,217,152,229, 37,242,145, 93, 92, 86, 2, 33,202,179,138,193,166, 24, 87, 68,224, 11,164, 72,169,223,181, 9,120, 98,
+166,133, 56,109,142,208, 14,157,213,219, 65,207,231,191, 30,166, 2, 92,247,194, 40,155, 6,113,156,182,231,148,170, 86,124,166,
+ 14, 55, 46,248,221,165,144,147,204,144, 19,239, 17,222,118, 61, 11,104, 31,192,195,142, 97, 68,142, 10, 37,132, 41,144,218,105,
+ 80,228,102,135,225,124,175, 39,226, 32,160,125,115, 45, 9,118,142,130,170,133,252, 44,140,205, 75, 23,208, 57, 94,159,216,172,
+ 2,145,205,186,243,120,213,168,237, 97,118,168,136, 17,182,176,186, 42, 49,159,156, 98, 19,100,224,147, 48,166, 11, 10, 60,159,
+ 32,194,156,128,197,143,125, 92, 76,142, 99,160,100,101, 92,109,116,205,236, 65,236,183,162,130,101,172, 18,235, 47,191, 85, 97,
+ 27,179,176,233,166,163,100, 52,211, 1, 76,206,194,210, 53,208,108,122,101,252, 76, 95,234,186, 46,164, 64, 7,146,193,207,173,
+152,108,195,157, 82, 92,144,234,161, 35,129,140,150, 96,189, 66,158,123, 73, 7,248, 10, 44,115,127, 30, 75,241,106,115,144, 4,
+237,115,178, 98,102,118,139,227, 8,103,105, 63, 96,214,129,234,212,175, 71,221,137, 90,239, 70,245, 60, 24, 29, 59,218,157,159,
+249, 1,124, 82,219,106,157,107, 26,213,186, 35,162,134, 8, 41,216, 34,165, 59, 74, 77,145,111, 44,232,241,109,147,190,247,234,
+ 72, 88, 44,178, 48,198,214, 70, 26, 82, 45,104, 72,215,110, 30, 7,143,134,199,222,205, 51, 96,194, 77,128, 57, 14, 24,157,218,
+167,180,200, 30,196, 90, 67, 8, 88,245, 96, 96,201,147,198,232, 16, 40, 52, 12,250, 52,220, 12,179,146,255,180,194, 55, 34,106,
+137,121,123,196,238, 86,255,252,145,187,177,217, 76,227,244, 51, 54,241,229,107,187,185,163, 62, 75,149, 8,222,176,106, 9, 32,
+ 11,224, 54, 72,180, 54,239,204, 20, 83,205,136,183,109, 29,236, 34,120, 90,151,128,173,176,172, 54,207, 64,173, 50,240, 99,125,
+230, 40, 25,214,206,128,121, 53,205,108, 97,251,128,160,229, 45,102,235,128,184, 83,215,186, 25,118,111,240,173, 39,111,223, 72,
+178,229,224,204,207,172,126, 5,218,181, 85, 25,193, 27,171, 84,251,169, 94,252,103, 91, 50,211, 24,165,241, 56, 44, 89, 14, 8,
+180, 71,153, 32,189,147,242, 98, 99,205,158,137, 35,200, 99,163,155,232,176,143, 96, 86,112,120,120,189, 67, 81, 67, 76,199, 94,
+226,143,150, 98,255, 29, 7,218, 15, 61,215,193,127, 59,145,151, 16,252, 52,209, 12,250, 90,141,166, 70,106,195,105, 27,250,116,
+208,248,238, 91, 31,223, 68,155,155, 35,112,194,253,183,186,136, 52, 91, 75,171,118, 54,131,168,230, 80, 34, 67,147,246,170, 69,
+171,160,118,255,130,141,164, 42, 4,194,232,121, 46,156, 51, 70, 60,224, 5,114,107,222,176,171, 5, 14,173,193,212, 23, 56,117,
+135,128, 30, 82, 2, 73,163,113, 81, 57, 47, 33,232,100, 80,155,226,140, 86, 64,100, 87,113,184, 51,129,127,215, 99, 27, 57,111,
+ 62, 20,138,119,139, 10, 70,226, 33,164,202,131,206,130, 87,193, 33, 97, 79, 99,128,191,176,183, 36,203, 74,236, 89,178,184,207,
+227,194,160,219, 70, 16,159, 76,156, 2,215,217,230,251,150,134, 38, 51,152,215, 36,197, 49,143,234,125,142,180, 58, 96,117,123,
+ 60,180, 80,210,217,228,144, 17, 3, 10,173, 56, 20, 73,184, 74,174,178, 31, 11,244,178, 22,110,135, 80,239,252,252,124,180,185,
+ 85, 60, 53,107,207, 53, 70, 98, 1,150, 98, 47, 72,217, 85,250, 93,208,213,212,236, 74,154, 74, 61, 19,216,104,253,120, 81, 60,
+241,152, 44,181, 44, 14, 79, 53,188,238, 90,172, 4,187,220,202,146, 18,213, 53,210,228,156, 79,129,136, 90,197,228, 42,243,192,
+186,139,110, 49, 67,208, 88, 29,228,188, 14,235, 89, 9,147,251, 90, 33,241, 26,139,137, 67,219,255, 59,223,185,248,208, 73,192,
+ 59, 45, 2,250, 70,172,208,177,217,194,106, 44,191, 19,186,190, 85,146,107, 67, 36,208,187,227,106, 71,196,112,115, 14, 24,203,
+140, 74,206, 70, 65, 80, 22,187,143, 6, 36, 75, 37, 11,153,139,229,150,207,102, 71, 51,219,100,113, 71, 77,255,124, 38, 13, 37,
+210, 17, 75, 1,148,119,183, 2, 58,127, 99,210,253,105, 56,128, 68, 15, 56, 77, 20,218, 65, 72,186, 55,246,251, 69, 15,122, 93,
+ 20, 72,102, 57,183,248,102,163, 71,178,119,101,120,149, 3,187,217, 42, 51,180,104, 91, 99,187, 44,162, 27,109,155,216,226, 45,
+142,252, 28, 98,178, 9,222, 20, 49,173, 42,112,142, 42, 93, 2,178, 95,156,165,206,105,222, 78, 54,150,131,121,129,128, 96,194,
+149,153,100, 45,214,129,198, 43, 98,226, 8,241,240, 16,244,102, 38,187, 81,129,195,121,205,214, 26,134, 89,101,234, 52,200, 42,
+ 21, 70,198,124,170, 85, 25,109, 79,153, 97,115, 45, 48,195, 21,244,120, 19,148,196,170,198,110, 85,115,237,109, 42,125, 14,166,
+104, 57, 78,133,227,102,146,136, 28, 45,202, 14,142,170, 75, 32,105,168,120,110, 48,235,105,182, 3, 87,138,244, 13, 81,180, 68,
+183, 7,178, 0,142,212,168, 81, 86,209, 88,123, 91,124, 1, 81, 13,195,193,192,105,210,214, 22,219,201,133,105,237,119,180,205,
+189,199, 56,106,143,175, 45, 12,211,242,127, 75, 1,216, 67,251,203, 29, 99, 26,179,218,241,251,108,254,183,141,141,167, 28,141,
+164, 44,181,221,248,226,189, 29,162,166,142, 65,109,202,227,162,214, 40,163, 97, 44,191,179,244, 69,166, 58,184,133, 20,252, 98,
+201,103,130, 33, 17,232, 23,135,135, 62,216,180, 96,245,171,129, 55, 19,135,198, 96,112,142, 86,253,171,136,210,212,250,113,228,
+103,136,219, 42,192,101, 40,133, 5,141,141, 74, 24, 98, 53, 13, 3, 10,155,250,216,124, 75,168,244, 81, 4, 70,251,176, 38, 76,
+ 77, 75,102, 91,235,184, 9, 70,131, 74,110,220,123,208,135,233, 88,138,219,134, 76, 4, 40,171,204,136, 16,150,141,191, 91, 5,
+168,133,253,209,152,160,203, 63, 42,154,130,228, 50, 10,128, 7, 1, 61,205,143, 43,133, 32,254, 50,108, 79,235,110,156,179, 12,
+ 86,100,179,182, 0,238,118,213,195, 87,218, 56,231,143,190,251, 3,122,240,232, 62,125,246,229,231,232,229,231, 95,238,162,173,
+208,105,140, 92,110, 27, 71,120, 53,174,125, 96, 81,133, 55, 89,100,105,219,104,218,127, 91,156,166, 34, 34,113,198, 47,138, 44,
+166,115,240,199,211,154,172, 25, 21,157,171,138, 44,115,212,217, 63, 59, 63,148,246,223, 23,156,209, 80, 78,187,142,105, 28,206,
+235,249, 78, 15, 20,186, 16,215,209,113,240,106,249,124, 23,157, 2,201,173,190,254,247,105,134, 50,106, 32,129, 43,128,183,132,
+193, 49,178,211,185, 56,205, 14, 23, 34,240,139,147, 10,196, 48,218,201, 33,104,110, 87, 36, 79,213,179, 57,126, 85,132, 50,131,
+ 30, 67,118, 2,202,245,145, 72, 56,212,245,228,157, 69, 23,166, 65,108,108, 63,164, 56,183,161,130, 42,125, 86,255,253,166, 23,
+ 55,136, 73, 23,181,135,118,154, 96, 87,237,239,128, 90,103,248,250,185,191, 12, 31, 45,232,166,207,231, 42,136,155, 54,190, 71,
+ 21,112,177,116,219,103,251,217, 6,203, 89, 54,224,121, 62, 31,212, 62, 27,131,241,112, 2,116, 72, 79,155,169, 31, 40, 97,203,
+ 59,134, 37, 82, 49, 54,118,146,208,141,161,148,216, 36, 45,203,185, 16,167,168, 86,140, 48,213,112, 57,111, 59,184,242,151, 1,
+112,162,162, 0, 66,184, 69,130,176,139,123,154, 45, 93,105,227,190,215, 18, 74,103, 77,246, 26,112,173,104,103,187,117, 78,187,
+ 3,237,115, 45,218,118, 53,113,174,141,150,134,133, 74, 43,136, 58, 54, 46, 3,150, 86, 83, 36,106,133,191, 17, 78, 4, 56,198,
+170,198, 78,254, 72, 83, 52, 11, 80, 19,142, 76,209,117,192,153, 93,181,244, 0, 48,185, 91,235,190,117, 84, 98,166, 12, 51, 39,
+136, 64, 37,137,128,156, 82, 74, 48,130,183,203,191,183,147, 95, 63,116, 4,112, 45,105, 54,219, 95,247,134, 99,150,172,179, 38,
+209, 89, 97,204,150,150,251,230, 96,171, 7,128,221,120, 88, 45, 96, 98,185,103,170, 69,134,182,192,160,205,176,178, 53,219, 11,
+ 1,120,131,116,174,215, 31, 78,107,229,170,197,105, 0, 70,138,122,113,103, 79,242,234,159, 89,171, 8,142,167,209, 26,227,241,
+245, 58, 67, 88, 71,155,213, 41,112,198, 69,125, 76, 96,107,138,249,190, 64,101,105, 45,190,154, 83, 8, 86,217, 5, 53,188,235,
+ 62,247, 69,161, 13,129, 88, 49, 67, 40, 28,185, 74,171,224, 14,165,151,217,188, 52,230, 64,186,192,152,133,147,102,240, 81,136,
+139, 68,209,166, 41, 85, 32,242, 23, 42,216, 74,217,143, 42, 32, 40, 68,236, 17,175, 2, 23, 80, 24,229, 99, 1,152, 49, 26,125,
+ 17, 1, 50, 20, 72, 95,119, 43, 88, 39, 73, 59, 87,179,163, 61,139,182, 72, 85, 49, 61, 21, 23, 51, 89,199,201, 22,252, 2,236,
+125, 11,132,194,131,147,139,147, 84, 64,105,217,238, 78,104,131,206, 94,123,142, 63,188,123,159,126,255, 91,223,163,207,188,112,
+ 68,219,227,171,244,222,221,167,244,244,209, 67,122, 66,199,203, 2,253,128,174, 95, 57,105,178, 38,122,241,185, 87,179,192, 21,
+ 91,224, 19, 32,114,204, 63, 88,129,126,214,123,112,187,241, 62, 76,141,110,254,252,194, 0,232,146,208,201,168,107,102, 56,126,
+204,173, 35,126,175,160,229, 54, 0,227, 54, 75,159, 99,246,123, 30, 81,172,160,150,213,142,196, 14, 85, 21,122,240,208, 79,120,
+ 10,171,155, 56,187, 62, 98,112, 69, 71, 13, 99,108,190,209,100,184, 1,227,153,245,195,137,204,251, 18,151, 95,106, 36, 1,114,
+140,200,236,152, 91, 29,198, 19,213,191, 56,123,190,246, 54,119,183,197, 85, 1,113,159,117,241,102,157,185,131,253,217,252, 7,
+106,147, 27,223,111,154, 8,165, 62,114,245,209, 89,181,231, 39,224,127, 90, 88,149, 14,227, 16, 61,192,197, 8,118, 30, 46, 42,
+ 9, 84,113,191, 20,198, 33,208, 25,123,245,255, 86, 8,143,174, 63, 22,233,204, 46,202,179,176,152,162,162,192,112,193, 12,141,
+130,169,135,237, 80,184,124,159,182,155, 11, 56, 84, 54,219,166, 76,180,135,174, 77,213,251, 41,195, 8, 57,193,152,181,189, 55,
+204,250,213, 55,145, 94, 39,179,141, 35,216, 69,110,123,185,213,100,230,252, 41,103,157, 19,110, 42, 33, 9,183, 83,151,229, 92,
+155,147,163, 0, 88, 35,148,224, 97,189, 27,109,172, 80, 71, 90,203, 49, 34, 66, 99,182, 81, 38, 80,190,235, 34, 54,105,244,101,
+ 81,160,201, 72,228,137,170,210,196, 62, 81, 81,135, 87,185,159, 16,150, 15,100, 8,224, 86,226,138, 50,152,193,172, 66,177,126,
+173,166,173,251, 98,177,189,104,215,165,168, 47,180,170, 7,212, 22, 61,247,124, 42,130,178,147,218,166, 77,175,210, 61, 80,164,
+159, 94, 99, 30,230,152, 83,235, 96,232,134,234, 98,161,102,101, 60, 56,128,212,172, 40,151,250, 3,213,238, 13, 93,249,139,158,
+ 20,219,195, 68,203, 1,104,179,209, 64, 17,245,211,122,199, 85, 15, 35,227,186,232,195,172,243,116,214,216,213, 46,229,152, 59,
+ 55,118, 89, 36,199,162,213,103,108,108, 94,216,241,179,219,175, 26,122,161,210,255,204, 22,152,246,243,203,116, 0, 46,137,156,
+168,231, 15,133,104,139,174, 86, 8,175, 97,221,200, 85,249,158,238,175, 61,241,120, 74, 21, 66, 23, 92, 89,117,122,176, 5, 76,
+ 0, 31,242,140,132, 82, 92, 59, 82, 72, 82,218, 97, 84, 68, 90,133,115, 89, 37, 8,114, 18, 11,162,132,159, 1,148,151,132, 88,
+ 5,103,209,146, 56, 7,225,121,135, 65,187, 37,223,136,138,118, 76, 65, 14,118, 62,180,229, 73,132, 65, 64, 84, 37, 94,147, 81,
+ 85,125,231,221,155,116,239,238, 77,250,233,215, 63, 79,151, 15,143,220, 70, 38,160, 11, 24, 34, 32,142,145,136, 0,230,213,222,
+237,148,125,164,161,128, 47,254,249,159,237,206,233,112,123, 48, 68, 94,160,145,233, 20,197,229,254,249,202,119,191, 79,191,241,
+149,111,209, 79,189, 60,170,184,247,239,111, 59,204,228,231,126,230, 39,233,228,116,166,247,110, 63, 89,254,198,125,122,237,213,
+ 79,199, 33, 4,186,120, 2, 42,115,239, 10,105,151,171,214,201, 67,112, 88,153,235,165,206, 33,202,117,220, 41, 52, 81, 38, 11,
+200,129, 8,101,154,180,171, 5,213,155, 19, 27, 49,204,170,142, 68, 57,232, 64,122,213,171, 17,178,118,176,242,246, 53,216,226,
+ 50,220, 72,156,248,215, 67, 96, 96,173, 37, 12,255,193,160, 36, 11, 28,242,236, 13,241, 88, 88, 78,210, 76, 78, 40,114,123, 29,
+102, 14, 28,135,159,217,187,146,163, 57,177,172, 75,219,209,137, 44,198,242,183,127,236,119, 77,147,187, 81,146, 99, 74,195,152,
+156, 93,223,237,218, 83, 8, 50,167,120, 79, 49,230,161, 64,100,187,183,157, 64, 63,148,129, 45, 62, 38,211,207, 99,171, 89, 12,
+ 70,233,179,231,196,249,255, 74,110,244, 51, 89,173,177,254, 84,107,200,109,156, 27,192,206, 81,209, 4, 76,214,142, 67, 85,216,
+ 15, 33, 41,145, 70,165, 62, 90,219,163, 45, 82, 48, 1, 11, 32, 21,118,122,180, 80, 34,104,142,135,208,196,148,126,194, 32,192,
+ 89, 39,158,141,185,129,139,104,109, 65,229,160, 78,217, 3,108, 31,124,127,101, 32, 68,171, 62, 7,171,206,121,102,224,158,219,
+177,139, 53, 46,210, 1, 25, 18, 57,225,222, 54,173,118,120,169, 49,211, 55, 53,169,222,144, 9,208,175,167,139, 34, 17,164, 49,
+230, 46,166,152, 95,254,217, 78, 30,222,193, 49,216, 94,110,204,105,164,104,153,136,102,249,218,238,252,124,252,206, 77,233,173,
+191, 50, 65,123,124, 86,123,204,114,227,109,143, 54, 81,185, 50,171,160,166,106,174,242,120,111,173, 77, 56, 30,198, 10,150,192,
+200, 7,174, 16,101,232,130,173,182,216,180, 22,118,107,151, 47,215,162,183, 34, 13,156, 50,113,132,213,244,246,220, 54,108, 41,
+214, 57, 49, 59,221,164, 84, 47,101,104, 87,157, 55,245,106,169,125,109, 89, 92,249, 8, 16,140,214,170,109,139, 70,187,134,211,
+120,189,211,225, 70,149,185, 83,136,253,140,219,223, 90,238,140, 21, 77,204,194,139, 70,142, 54, 32, 72,213,232,200,152,215, 3,
+198,181, 61,252,218, 14, 53, 92,112,164, 84, 69,170,157,219,255,192,239,111,213, 78,142,170, 77,235,163, 43,127, 35, 62, 88,220,
+170,215, 99, 34, 85,244,229,225,161,171, 54, 61,118, 95,170,112,230, 27,173, 15, 27, 76, 73,234,205,144,239,190, 10, 1, 76,244,
+ 40, 76,250,179,217, 28,129, 0,141, 96,212,197,104,209,210,138,199,218,206, 52,215, 61,235, 28, 66,142, 25, 21,230,173, 57,188,
+ 60,175, 95,121,227, 45,122,116,255, 67,186,241,204, 33,125,225,213,207, 83,221,205, 0, 77,162,149, 32,145, 29, 0,195, 78,150,
+ 67,161, 43, 96,164, 75,182,137,126,249,187, 63,160, 47,127,229,247,233, 47,253,249, 95,162, 47,126,250,245,254,123, 8,232,132,
+103,203, 75,127,227,253, 15,151,207,254,140,238, 61,105, 59,230,121,191,175, 14, 14, 15,233,236,233, 35,223, 84,249,232,234,114,
+ 95,109,137,155,111, 26, 71, 35,110,155, 19,140,106, 31,167, 78,163,233,245, 27, 85, 97, 45, 27,171,210, 9,218,224,176,185,123,
+220, 40,123, 49,228,163, 48, 75, 79, 3, 76,181,149,248, 3,208, 2, 40, 69, 81,220, 47,180,176,237,103, 20,123, 93,227,212,172,
+133, 77,141, 40, 84, 93, 27,204, 55,222,223, 74,157,252,218,186,250,189, 48, 4,243,136, 51, 57, 74,235, 18, 84, 76,155,139, 14,
+ 86, 21,251,119,204,193, 1, 59,106,242,123,125,102, 84,236, 42, 51, 56,114, 88,237,190,118,113,102,181,137,233,132,161,141,252,
+166,200, 7, 16, 12, 52,240,240, 22, 24,221,152,168, 25,196,156,181, 74,238,188,250,193, 98,224, 95,253, 32,103,118, 78,137,145,
+ 84,220, 10,213, 93, 52,101,142,232, 98, 1, 29,133,219,244,102,113,205, 65,215,173,149,209,111,110,227,152,241,251, 56, 43,248,
+181, 99,220,159,195,205,228, 35, 19, 70, 78, 86, 59, 14, 92, 62, 26,243,210,153,170,138,195, 8, 16,127, 48,219,211,126,196,228,
+ 25,199,150,107, 29, 6, 49,207,173, 22, 16,191,173, 88,224,140, 61,105, 7,121, 12,245, 48, 85, 73, 39, 66,180,197, 69, 7,137,
+179,141,173,196,233,175,183,206,107,228, 11, 23,142, 89, 15,169, 65,223, 85,160,110, 70, 45,177,233, 19, 32, 65, 33,176,196,189,
+159,141,140, 38, 90,189,216,197, 60,159,129,100, 55,247,141,216, 33, 48,253, 96, 81, 59, 94,169, 87,158,237, 97,107,243, 57, 37,
+153,245,107,115, 48,245,141,104,249,255,168, 54, 65,217, 46, 46, 84,191,121,116,238,188, 59, 61,117,205,129, 50, 35,199, 72,164,
+135,120, 76, 99,179,154, 6,175,181, 85,219, 85, 55,174,186, 59, 83,161,142, 93, 87,139,105,229, 8, 60, 41,246, 15,193,226, 98,
+160, 4, 61,173, 91,160, 15, 79, 43,112, 77,240,186,199,233,172, 58, 21, 74,180,203,193,109,214,180, 44,154,178,209,248, 73, 91,
+ 60,122,197, 16,160,142, 14, 18,217, 49,156,208, 75, 82, 51,183,107,215, 59, 3,184, 58,183,138,125,121,111,187, 86,234,159,231,
+ 47, 69,207,188, 14,209,138,109,138, 18, 9, 77,190, 5, 9,199,166, 76,113,146, 30,225, 43, 8,122, 1, 11, 34,220,152,130, 22,
+ 54, 4,184,184,200, 19, 68, 93,100, 81,180,106,163, 66, 84,220, 12, 17,127,194,121,134,156,161,251,208,159,164, 76,169, 35,140,
+248, 3,203, 18, 28, 74, 4,172,152,216, 98,136,184, 82, 9,176,141, 72,246,174,251, 53,139,225,183,227, 99, 49, 4, 1,116, 2,
+237,208,117,255,228,108,249, 12,207,233,228,228,156,158, 44,247,124, 99, 98,204,243, 89,160,119, 5, 48,202,169,235,193,222,174,
+229, 32,122, 56, 34,218,102,185,206, 70, 88,126,215,157,187,247,233,135, 31,220,167, 47,127,245,107,244,137, 23, 63, 65, 87, 14,
+142,104,103,213,246,114,216,188,255,240, 17,125,120,247, 30,157, 46,135,234,167,167,117,249,247,188, 28, 58,216, 91, 0, 71, 71,
+ 91,186,118,165,208,195, 39, 15,188, 59,133, 38, 89, 46,152,189, 29,108,101,214,251,182, 63, 63,165,250,125, 53,153, 58, 94,171,
+ 81, 82,104, 10,225,193, 81, 64,248,230,135,243,154,187, 50,246,236,168, 78,102,116,193,134,189,141, 53, 29,173,175, 39, 2,159,
+145, 91, 95,160,210,178,184,123,181,202,209, 84, 82, 92,107,215,179,216,253,111,105,118,211,228, 35, 51,139,114, 30, 21,106,245,
+159, 49,104,123, 3,154, 66, 38,214,221,205,250,220, 67,114,164,146,180, 88, 21,223,189,128,209,113, 89,108,190,147, 90, 22, 1,
+ 38,196,209,209,236,163,134,174,131, 56, 24,240,180,190,215,108,212, 50, 75,222,133, 28,135,212, 24, 13,141, 91,121,183,220,123,
+162,232,104,118,141, 82,197,243,175,183,190, 85,219, 83,145,143, 18, 9,128,164,113,188,166,140, 21,229,244,219,189,218, 91,233,
+ 10,183,177,192,153,222, 85,237,240,164, 93, 46,156,139, 70,177,110, 89, 11, 15,189,238,101, 51,244, 92, 37, 10,135, 98, 69, 30,
+ 57, 32,116,144,237, 14,151,202,168,189,174,237,206,114,130, 13,241, 7, 98, 27, 81,130,228,148,162,209,180,213,142,179,114,118,
+158,183,171,106, 25, 3,227, 35, 85,201, 3,100,204,207, 57, 34,111,188, 45,236,243, 96, 83,214,234,188,213,173, 64,125, 22, 49,
+249,141, 27, 2,204, 26, 45,124,137,164, 27, 2, 6, 52, 46, 12,197, 4, 62, 48, 15, 76,192, 54,102, 7, 37,184,117,175,128,120,
+ 79,171,226, 34,161,106, 30,170,201,177,217,207,189,170,175, 26,155, 91,124,222, 86,204,159, 59, 27,140,103,130, 36,165,226, 23,
+189, 9,194,236,212, 61,146,182,244,193,150,113,218,238,155,183,161, 24,107,133,133, 93,171,151, 25, 22,200,206,249,215,121,149,
+183,170,230,193, 70,174, 57,235,154, 45, 22, 16,150,252,138, 20, 41, 29, 13,244,223,127, 62, 78,240,197,170,117, 19, 69,237,140,
+ 18,184, 27, 21,194,121,241, 69, 59,102,183, 69, 15, 22, 99, 65,154,207, 78, 52,164, 56, 80,155, 98,185,213,115, 84,231, 3,198,
+161,164, 37, 59,141,207,230, 53,146, 30,115, 88, 44,144,194, 35, 19,117, 35,104, 85,138, 2, 49,250,161,105,217,104, 92,101,110,
+178, 89,187,206,182,219,234, 61,100,164, 49,210, 3, 79, 60,229,106,142,145,108, 87,144, 36,250, 98, 7,223,244,159, 83,128, 82,
+230, 16,165, 1,175, 32,125, 14,168,194,143, 71,200, 17,136, 84, 7,134,185,181,172,107,154,155,122,151,134, 50,148, 40,183, 92,
+ 81, 12, 10,130, 42, 9,181,113, 84, 80,171, 49,132,172,210, 18,253,224,146, 17,187, 22, 55,219,170,231, 15, 62,186, 69, 63,251,
+185, 23,232,163,247,111,210,131, 23, 63, 73,151,182,135, 73, 88,143,208,228,188,177,155,186,133,189, 51,181,215, 4,212,247,209,
+178, 6, 94,255,137, 87,232, 55,182, 91,250,254, 91,183,232, 55,127,247,203,244,239,253,234,175,210,118,187,245,142,217,246,112,
+ 75,199, 71,135, 93,243, 51,151,203,116,249,198,229,174,118,111,207,225,253, 71,143,232,242,241,134, 46, 31, 93,163, 23,158,185,
+ 66,167,187,121, 4, 16, 89,232, 20, 67, 88,201,100,201,140,145,130,230,109,100,155,123,176,137,174,170, 89,213,123,110,123,224,
+154, 37, 70, 16, 18,186,154, 94, 73,207,112,240,242, 3, 55,133,100, 91, 43, 43,111,239,238,106, 32,190,149, 41,111, 93, 41,194,
+113,136,173,143,186, 81,117,175,185,135,176,204, 33,190,235,207,177,196, 44, 92, 40,131,158, 28, 34, 36,174,141, 48,199, 77,255,
+152,206,231, 65,135,235,254,115, 79,192, 24, 99, 9,135,200, 89, 2, 92,245,234,213,215, 71,123, 45, 60, 69,118,187,225,165,203,
+100,102, 72,197, 75,247,132,113,149,173,196, 17,172,173,111, 93,147,177, 57,136,216,106, 27,187,213,243,241,123, 56,192, 94,182,
+134,214, 90,125, 12,218,181,183,108,204, 15, 1,222, 60,119, 9,144, 1,202, 68,157, 50, 82, 38, 87,218,139, 17, 36, 61,111, 61,
+238,243, 77,155,213,215,224,125,226,200,217, 68,185,226,136,117,138,252, 1, 93,230, 39,187, 53,140,247,209, 2, 93,186,232,172,
+221,101,219,104,197, 68,126, 3,206,162,162,161, 99, 98, 49,108, 85,152,125, 98, 50,218, 22, 6,127,152,176, 72,128, 91,174, 54,
+172,182, 40,119, 26, 79,139,140,219, 76, 97,177, 88, 62,204,205,118,163,237,237,240,127,247, 88,187,246,231, 27,173, 44,117,161,
+175,218, 30, 19,157,215,247,153,198,110, 14, 65, 11,136,112, 18,254,147,129, 1, 15, 97, 40, 2, 94,232, 68,106, 75,234,100,157,
+ 25,139, 64, 10, 23,244,226, 10,156,234,168, 96, 76,210,216,107,119,115, 56, 6, 24, 98, 38,155,224,116, 51, 54,100,111,111,105,
+197,108, 94,237,190, 1, 79, 37,241,206,169,148, 32,178,205,122,208,153,200, 57,219,157, 96,165,179,109,177,214, 41, 7, 39, 32,
+ 67, 67, 40,197,146,122,230,139,167, 56, 13,253,133,183, 17,101,234,155,120, 63,228,109, 88,253,253, 83,180,134,129, 89,221, 71,
+ 16,172,120,197,141,162, 98,217,172, 53, 22,206,162, 27,174,135, 40, 88, 30,116, 50,161, 93,136, 85,113, 94,119,179,135,244,123,
+104,211, 81,149,163, 52, 25,124,103, 81, 4,170,156,157,199, 60,119,158, 65, 33,227, 68, 30,181, 7,114, 10,123,232, 99, 7,168,
+ 92,215,130, 51,239,118,149, 96, 32,248,124,206,225,229,197,231,117,209, 9,128,205, 80, 56, 99, 97,215, 34, 73, 65,145, 28,231,
+ 94,187,184,149, 53,172,115,110,196,162,188, 66,136,192,106, 17,202, 94, 23, 46, 66,167,152, 37,147,118,247,208, 54, 46,220,138,
+141,182,157,135,110, 45, 7,191,111,254,248,221,254,156,207,117, 89,120,166, 51,250,241,237,119,233,103, 63,249, 69,154,219, 8,
+170,224, 76, 31, 90,138,171,188,229, 84,125, 98,172,171,132, 88,246,241,242, 57,254,214, 31,124,107,249,185, 59, 58,223, 30,209,
+123,183,111,209,191,250,206,183,233, 75,159,123,189,127,214, 39,119,207,232,107, 63,124,159, 46, 45,139,252, 79,125,230, 53,186,
+245,248,140,206,151,103,226,225,201,174,199,156,190,242,220, 76,219,105,219, 95,231,221, 7, 15,233,219,111,127,141,126,237,151,
+127,145,118,187, 93, 42, 24,162,163, 34,221,126, 41, 18, 90, 36,158,224,254, 81,125,130,119, 10, 1,120, 21, 7, 37,179, 65,213,
+160, 23,182,255,218,110, 64, 72,184, 25,107,178,129, 75, 54,136,178, 86,125,202,134, 93, 64, 60,152, 15,232,184,128, 86,191,169,
+230,149,141, 80, 48,103, 1,117, 83, 53,130, 88,216, 34,165,205, 27, 13,107,178,181,104, 88,149,226,206,162,208,206, 71, 79, 95,
+ 35, 61,156,247,106,127,163,157,221, 9,218,240,162,179,249, 25, 50, 5, 38,178,232,218,113,224, 28, 34,216, 1,101,137,159,103,
+ 32, 27, 18, 74, 25,243, 35,253,113,130,116, 52,208,220,112,216, 59,197, 5,113,170, 95,105,159,231,172,220, 22, 29, 23,155,118,
+ 99,234,251,226, 80,172,147,234,154, 38, 15,222, 34,167, 50, 50,174,125,160, 51, 25,157,154,170, 10,124, 56, 28,177,228, 80, 49,
+ 24, 97,152,226,127, 68,234, 78,193, 75, 48, 14,131,173, 97,205,209,113, 68, 7,253, 67,139, 76, 91,118,129,195,120,191,163,221,
+ 81, 21,142,192,133, 0,161,138,118,215, 16, 26,228,156,228, 16,118,152, 62,206,213,192, 50,218, 63,147,251,107, 85,154, 55,145,
+ 43,107, 11,141,220,221, 38,156,153,218,108,139, 53, 33, 72,171,116,209, 74, 83, 40, 22, 95,131,216,244,217, 54,122, 82,167,178,
+242,181, 3, 20,159,115,114,156,189, 49, 1,148, 39, 65,136, 13,110,122,184, 8,135, 50, 80,237, 87, 54,223,169, 38, 18, 83,232,
+ 1,147, 42,103,161,173, 87, 33, 92,102, 14,133, 45,149, 17, 0,145,144,118, 7,155,184,209,166, 2,209, 56,250,186, 54, 17,144,
+ 51, 14, 5,182,248, 21,135, 43, 68,234, 28,120,124, 9,176,167, 62,179, 12,200,189, 11, 15, 1,176,226,126,219, 73,207,205,224,
+133,247,236,105, 27,227,180,191,189,131,142, 66,235, 68, 20,107, 59, 21, 39,152, 13,139,207,121,124, 22,221,182,144, 19,245,216,
+185,214,208,242, 21, 2,166,244,242,197,211,179,104,181,251,130, 53,167,182,161,117,170,135,128,101,216, 70, 34,116, 68,146,216,
+174,184, 0, 71,114,242, 95,228, 57,230,179, 56,120,151, 4,125,219, 66,222,158,116,119,150,138,153, 68, 5,154,172,228,187,216,
+176,217, 55,136,156, 11, 14,132, 70,204, 29,185, 8,159,158, 54,244,149,173, 13,243, 73, 97,214, 40, 92,124,134,138, 24, 97, 95,
+120, 96, 1, 77,100, 58, 11,141,105, 85,250, 31,126,135,238,221,187,189, 84,192, 87,232,214,253, 19,122,229,122,161,183, 63,184,
+ 73, 63,245,169,207,247,175,135,214, 47, 31,100, 46, 46,219,215,252,251,152, 21,182,194,224,187, 63,120,143,190,254,189, 31, 46,
+143,200, 68,135,203,230,124,114,122, 68,191,247,213, 55,104, 62,188, 66,239,188,127,147,190,253,173, 63,238, 85,227, 65,211,177,
+ 92,189,186,220,102, 79, 6,178,179,117, 44,151,127, 31, 31,110,232,185,171, 7,116,116, 88,250,185,121,226, 33,124,157,168,164,
+160, 25,166, 41, 98,159,196,228,146,106, 85,180,195, 95, 17, 21,191,101, 38, 64,118, 74, 68, 71,112, 56, 65, 86,135, 68, 1,155,
+149,193, 84,112, 46,111,154, 84,188, 71, 92, 36,183, 28,188, 55, 65,127,172,125, 62,140,118,223,162,186, 15, 73,193, 81,189,133,
+108,166,119,142,116, 52,117, 66, 83, 0, 15,199, 97, 96,214, 48,153,254,156,157,171, 78, 66, 9,109, 45, 93,206, 15,186, 22,215,
+ 93,115,172, 45, 67, 11, 73,230,154,194, 83,109, 4,224,196, 70,195,210, 2,115,157, 11,206,185,129,250, 8,106,117, 54,203, 30,
+ 65,119,197,198,156, 86,233, 74, 4,252,116,155,110,109, 26,176,169,183,211,125,223, 43,161,248, 39,173,200,221,169, 34,154,118,
+ 88, 32, 81,206, 90, 56, 48,231,111, 26, 38,239, 70, 19,228, 90,216,111, 55, 8,143,105,151, 10,116, 3,221,111,175, 62,121, 42,
+ 14,115,106, 26,178,205,209,225, 65, 16,177,116,161,243, 86,136,207,206, 52,221, 24,194, 1, 2,251, 26,146,162,204, 45, 22, 31,
+226, 27,148, 99, 0,109,204, 87, 27,145,141, 77, 36,229,191,203, 84,230,101,130, 88, 73,118,181,112, 59,217,181,170,188, 20,139,
+235, 27, 55,121,157,207,244,121,211, 19,148, 30, 16,122, 88,205,102, 26,143, 91,169,106, 81, 3,189,133,205,229, 64, 37, 14, 65,
+ 77, 1,124, 41,146, 90, 87, 46,178,100, 64,152, 32,223,185, 70, 11, 51, 33,163,221, 89, 83, 72,253, 31,158,252,100,128, 19, 73,
+144,234, 18, 7, 46,240,228,242, 57, 8, 64, 82, 88, 73,137, 69,195, 14, 56,224,100,104,191, 84, 60,225, 14,194, 1,106,192,166,
+125,161, 46, 32, 54,177,170,221,176,182,230,209,133, 47, 11, 67, 48, 65,136, 30, 82, 56,201,176,219, 89,226,153,145,222, 56, 63,
+136,102,131, 10, 79,139, 10,245, 12,211, 73, 30,181,137, 94, 93,123, 80,121, 21,204, 34,156,161, 38, 9, 29, 88,199,120, 91, 42,
+ 28,210,172,194,153, 37, 70,216,170, 75, 48, 63, 54, 97,230,115,202, 63,160,148, 80, 8, 59, 99,210,147,120, 58,164, 68, 38,117,
+ 23, 61, 50,136, 68,169,128,109,146,131,104,149, 98,134, 1,211, 12,175,135,177,108, 41,185,155,144,242, 25,136,243,129, 99,149,
+195,200, 53,236,104, 72,147, 19,225, 92, 89, 19,250,233, 1,238, 83, 26,167, 82,232,205, 31,189, 69,103,203, 1,107,183, 59,161,
+151,158, 89, 42,232,101,161,124,252,116,215,219,150, 83,175, 70,227, 26,161,236, 38,151,232, 28,155, 2, 65,228, 40,100, 49,204,
+203,107,253,167,191,247,213,158, 57, 61,109, 14,233,210,229, 3,186,113,149,233,228,108, 75,175,191,246, 28,253,252, 39, 95,163,
+219,183,238,208, 31,125,245,219,244,250,167, 63,217, 23,196,179,179,230,251, 29, 12,135,163,163, 3, 58,220, 22,239, 26, 94,187,
+190,165,131,227,103,250,184, 70, 32,107,219,198, 69,134,231,196, 48,161,192, 86, 87,151,234, 71, 26, 36, 12, 48,146, 70, 72, 55,
+ 9,154, 72, 46,224, 8, 68, 21, 95,160, 27, 36,233,150,246,204, 1,171,196,251,154,190, 13,102,187,229, 64,202,198,163,107,172,
+207, 62, 43,142,182,168,247,185,109, 16, 27, 50,232,142,174,179,179,254, 12,116,137,216, 26,143,208,160,173, 40,128,198,158, 11,
+ 88, 15, 75,140, 44,195,196,141,102, 12,129,209, 86, 8, 33, 61, 85,210, 14,202,150, 25,161,196, 59,107, 61,187,211,161, 14,140,
+234,102, 19,252,125, 17,107,101, 27,100,166,166,104,100,214,206, 86,223,107,106, 8,229, 90,101, 60,169,171,200, 80,159,253, 83,
+153,106,210, 87, 84, 27, 37,251,236, 34, 63, 75, 24,206, 20,122, 28,208, 35, 72, 80, 44, 59,147, 67,233,123,126,159,108, 71,183,
+164, 20,128, 51,225,122, 59,143,207,110,115,216, 68, 85,170, 72,236, 10,100, 71, 7,110,180,163, 50,102,127, 2,129, 45, 6, 39,
+ 72,249,232,107,164,178,245, 12, 10, 98, 45, 1,185, 41,209,138, 86, 3, 65, 90, 0,135,130, 95,227, 55,139, 9, 50, 70, 42,141,
+121, 4, 43,156, 88,219, 33, 96, 94, 30,206,214, 2,238,215, 90, 41,110, 62,175,228, 33,196, 34,159,215,227, 56, 64, 23, 10, 72,
+ 1,243,182,222,154, 35, 15,145,152,200,229, 78, 50, 26,152, 23,227, 92, 19, 3,109, 82,255, 50,183, 8,130,162, 91, 32,219,109,
+ 99, 31,174,184,237,100,140, 13, 74,138, 7, 76,124,122, 70,149,110,141, 87, 48, 83,138,214, 53,149,182,119, 94,173,162,173, 88,
+ 81,216, 15, 85,110, 53, 69, 53,235, 63,171,178,223, 11,182,138, 49,108,111,129, 11, 78,204, 19, 40, 74,128, 55,143,183, 75,213,
+211, 80,209, 42, 91, 8,114,233,115, 20, 45,163, 7, 27,175,179, 67, 36,114,148, 41,115,216,199,250,129,165,192,156,124, 66,113,
+219,228,135, 39,143,203,129,234, 28,176,136,144, 31,128, 85, 3,173,130,115,200,241,155, 25, 9,203, 24, 7,231,184, 87,143,214,
+ 69, 97, 39,182, 67, 86,254,117,127,239, 37, 73, 99, 41, 69,189,153,121, 93,194,111,142, 93, 42,123,110,216,193, 23,148,159, 27,
+ 14,125, 10,102,122, 71,223,125,252,174, 54,134,185,122,237, 42,201,187, 13,110,197,244,240,241, 19,186,241,153,151,232,207,253,
+252, 47,209,225,178,241,246, 69,201,188,186, 16,201, 27, 33, 53,226, 97, 50, 24,116,192,148, 67, 78,108,177,108, 13,176,227,227,
+163,190, 41, 63,122,242,100, 57, 68, 92,163,237,114,112,248,254, 59,119,233,120,121,207,191,246,103,126,137,174, 28, 29,210, 59,
+239,126, 72,187,238,212,168,116,208,184, 11,219, 33,154, 58, 62,222,210,245,203, 91,186,251,224, 81, 95, 7, 63,251,153, 47,118,
+224, 17,179,100, 26,159, 80,178,136, 82, 21,176, 61, 81, 84,242, 80, 0, 5,221, 17, 97, 52, 42, 30,131,141, 92, 4,249, 8,236,
+ 0,149,208, 59,196, 51, 44,208, 73, 26,215,127,194, 25,106,232, 97,132,246, 52, 22, 3, 8,212, 90,202,115,204,241,237,176,162,
+127, 97, 66, 32, 12,122,244, 41, 51, 2, 4,194, 41,152,113, 17, 98,183,225,246,223, 58, 75,192,224,177,243, 9,228, 60,174,179,
+ 67,103, 12,110,132, 26, 28,223,112, 45,207, 67,140, 72, 55,197, 72,168,138,187, 5, 74, 23,212, 42, 78,182,195,105,118, 29,120,
+ 69,232,184,232, 33, 43,163, 96,153, 13, 61,107,156,119,162, 76,114,172,213,125,235,254, 89,149, 26,107, 82,217, 0,117, 20,174,
+139,197,228, 18,176,222, 33,108,202,115, 71,166,226, 32, 41,129, 80, 34,149, 17, 5, 48, 72,196,105,117,166, 11,235,131,141,225,
+111,110,149,227,236,137, 81,235,132,202, 88, 3, 4, 68, 69,235, 89, 23,114,170,101,197, 90, 6,133,135,228,162, 0, 23, 14,100,
+ 85, 91,152, 72,155, 95, 68, 97, 20, 23,213,163, 10, 85,233,189,217,140,157,175,232, 44,222, 42,234,162,127,110,118,142, 68, 70,
+162, 21,190,234,130,224,150,245,130,232,109,105, 70, 1, 15,165, 15,126,237,253, 36, 20,244,113,141,192, 24, 46,233, 1,142,247,
+ 77,171, 64,146, 24, 59,186,184,184, 80, 10,131, 89, 53, 89,221,153,224,170,103,136,125, 18,180,198,164, 87, 41,126,179, 5,125,
+ 75, 82, 88, 8,148,153,177,137,173, 69, 89, 38, 80, 44, 37,243, 8,216,188,200,236, 22,184,240,145,203,170,209,106,220,129,105,
+117, 47,141,147, 56, 94,120,161,149,101,139,202,126,155,153, 71, 43,148, 28,169,201,144, 44,136,253,106,198,160, 55, 56, 48,112,
+218,168, 83,228, 55, 83,138, 29,101, 87,107,115,114, 9,248, 98,186, 98, 6,224,189,226,140,113,134,128, 7,230, 85,212,235,234,
+ 64,152,176,173, 24, 45, 91, 86,213, 56, 6, 47,149,189,153,185, 35,147,129,180,199,246,121,121,117, 17,115,135, 78, 19, 92,254,
+123, 55,199,130,153,175,213,152,155, 30,180,176,168,229,189, 92, 57, 46,116,233,112,162, 39, 75,149,126,165,168, 82, 89, 83,221,
+ 41,209,224,132, 34,210,239,227,201,143,129, 84, 30, 23,163,121,132,255,244,159,252,105,122,251,189,155,116,190, 59,163,167, 39,
+103,116,239,254, 29,250,212,167, 63, 65,191,246,171,127,146,166, 89,186,231,252,213,151,159,163,127,244,219,191, 79,223,253,227,
+ 55,151,253,122,219,215,192,170,222,223,214,154,111,122,158,102, 38,121,255,163, 91,244,242,107,167,116,163,137, 82, 61,222, 82,
+160, 75,192,233,144,147,194,114,148, 23,129,157, 35,118, 96,192,228,238,139,136,186,194, 46,104,133,150,254,224, 77,120, 36,167,
+141,213,116,158, 91,224,232,204,144, 95,128,248,208, 2,109,124,194, 97,157,216,207,139, 64, 16,251,185,236,162, 48, 1,209,164,
+ 10,211,102, 32,116,166,181, 58, 14,126, 30, 25,203,226,235,111, 20, 70, 27,104,149,177, 23, 17, 93, 87,216, 5,117,147, 59, 2,
+156,196, 88,103,255, 61, 13, 63, 61,180, 84,243,176, 72, 11,132, 5, 89,204,173, 61, 99, 42,122,235, 22,184, 70,200,107,227,220,
+ 57,248, 28,189,243,160,220,140,150, 26,216,174,247,220, 17,193,209, 57,116, 34,160, 35,244,213, 81, 35,176,145,171,240, 88,212,
+ 33,228, 69,143,146, 0,251, 65, 78,161, 50,158, 70,216,127,247,148, 70, 46,125,164,220, 88,250,158,132,168, 72,111, 11,181, 41,
+ 88, 36, 26,109,148, 92,143,182,105,213,176, 88,232, 91, 35,126, 89,171,173,228,212, 38,198,185, 33, 72,148, 24,100,242, 12,130,
+ 25, 89, 39, 61,137,228,255, 70,134, 54,164,224, 32, 76,222,209,176,158,138, 19,179,137,128,225, 75, 58,221,246,159,181,153, 52,
+189,198,252,139, 74,135,179,205, 1, 55,229, 10, 24, 66,255, 29, 81,153,134,149,167, 4,150,211, 39,187, 65, 3,203, 85, 60,167,
+215,197, 80, 73, 91,200, 38,167,141, 97, 74,126, 87,193,106, 30, 14, 81,146, 84,122,236,225, 46,209, 32,200, 66,139, 88, 96,166,
+177,199,109,217,197, 40, 93,164, 56, 75, 22,246,217,255, 20, 22,195,235,245, 51, 41,187, 37,192, 11, 50, 90,213,101, 98, 72,232,
+163,148, 17, 62,238,105, 72,123,227, 8,121,113, 8,132, 85, 57,144, 91,108,209,165,126, 93,156,243, 30, 85, 83,133,211,190,243,
+169, 10,167,144, 11,194, 32, 33, 10,106, 84, 59, 81, 67,142,164, 90,141, 48,114,116,117, 79, 50,186, 49,139, 7, 32, 48,160, 90,
+153,147,248, 59,179,228,241,192,192,209,122,231,124, 42,212,235, 83,124,195,231, 2, 63,191,128, 85, 19,132,114, 41,170,104, 21,
+165, 75,123,163,105, 94, 85, 17,112,174,225,240,155,167, 12,116,137, 64, 24,238,203,197,134,190,252,205, 55,232,143,190,241,109,
+250,235,255,225, 95,164,131,237, 54,249,238, 77,140,122,178,220,111,239,127,248, 81, 23, 71, 29, 29,108,163, 90,169, 21,153,102,
+ 49, 70, 88, 85, 11, 54,158,193,131,130, 29, 52,108,211, 44,250,194,219, 2,253,226,115,215,135, 85,106,249,249, 87,142, 46,245,
+236,129,207,125,242,165,222, 49,104,230,221, 63,248,206, 15,233,255,250,251,191,222,223,203,195,167, 79,251,125,114,222, 29, 36,
+ 99,106,126,120, 48,209, 7,183,159,210,147,147, 71,180, 93,190,127,115,112, 56, 44,163, 18,247,167,152, 21,211, 79,126,197,109,
+ 81,158, 98,214, 19,192, 74, 26,199, 48,163, 92, 49,187, 5,170, 4,192, 36,180, 60, 18, 57, 7,162,148, 68,175,180, 75,172,139,
+216,157,178,150, 55,214,211, 18, 97, 79, 62,147, 7, 93,164, 15,118, 56, 16,172,109, 67,159, 61, 57, 15, 99, 83,107,136,194, 10,
+228,128, 72, 20, 14, 86,168,209, 84,210,198,204, 30,251,103,159,247, 52, 26, 11,222, 41,154,180, 99, 12,237,119,107, 83, 79,197,
+197,186,243,185,246,165,107,228,200,207,234, 20, 26, 90, 29, 76, 60,176,188,119, 72, 24,212,215, 37, 69, 29, 83,154, 67, 51,243,
+ 46,136,113,214,225,132, 69, 77,160, 88,237,228, 77,129,220,232,254,217,110, 32, 38,215,158,171,141,231,168,236, 9,107,189, 51,
+ 82,161, 72,198, 8,103, 73,188,151, 36,178,163, 72,148,116,114,228,212,216,239,151,182, 16,235,168,254,238, 18, 11, 2,122, 91,
+177, 3,150,162,224, 32, 29, 44,165, 59,225,106, 80,115,139, 57, 40, 84,217,139,186, 95,112,174,242,202,185,164, 4,172,230, 85,
+236,108,102,142, 83, 25,151,152, 1, 58,243,106,154,116, 46,203,148,131, 87, 25, 32, 22,153,229, 29,213,181,248,141, 79,158,179,
+ 44,206, 12,142, 69,172,236, 45,142,184,169, 8,122,255, 19,238, 44, 73, 66, 86, 0, 4,109, 3, 27, 31, 25,155,213,130, 49,183,
+ 2,150, 20, 1,107, 70,220, 67,226,209,149,218,162,218,176, 43,189,147,190, 64,109,120,216, 2, 38,104,181,251,189, 2,158,206,
+ 33,204,179,138, 0,125,198,197, 49,159, 3, 31,201,190,183,142, 81,128,242, 38,231,213,189,110,173,236,170,122, 3,193,249,109,
+168,228,187, 87, 95, 83,208, 24, 75,215, 2,225, 41,148, 19,188, 74,129,143,198,168,105,149,148, 26,168, 36, 48,155,100,155, 54,
+ 1,102,135,140,175,177, 96,119,131,210,166, 35,171, 10, 61,116, 6,178, 18,121,173,133, 97,156,178,203,211,156,157,163, 2, 71,
+138, 20, 69,239,103,173,136, 3, 1,201,106,108,142, 51,248, 11,254,238, 58,203,156, 48, 16,166,105, 49,183, 7,244,187, 95,255,
+ 38,253,163,223,252,109,250,143,254,237, 63, 71,175,188,240, 44,237,118,115, 2, 71,117, 87,213,246,144, 78, 58,100,105,184, 28,
+166,102, 35,218, 28,211,241,229,203,189,114,241, 72, 98,195, 32,251, 34, 37,217,238,233,138,101, 94,141,218,195, 58,214, 50, 7,
+218,181,105,175, 99,163, 52,198,195,163, 45, 93, 61,190,212, 43,192,179,229,251, 62,186,117,151,142,143, 46,211,221, 71, 15,233,
+188,249,229, 39,246,174,217,249,249, 41,221,186,247,152, 62,253,210, 21,186,117,231, 41, 93,191, 52,209,213, 75,135,206,115,199,
+231, 56,150, 58, 24, 1, 72,248,170,237,144, 34,122,111,176,113,225,105,245,253, 41,232, 69, 18,168, 75, 4,226,110,144, 27,142,
+235,139, 85,207,192, 80, 55, 60,106, 98, 35, 8,174,233,218,149,128,240,120, 1, 72,140,221,223, 19, 67,243,221, 70,116, 12, 7,
+126, 14,113,237,164,133, 71, 21,164, 31,230,238, 69,216,134,178,246,152,112,243,197, 88,233, 42,105, 13,142, 24,106,134, 74, 94,
+203,172, 13, 67, 80, 18,173,248, 10, 49,106,171,112, 72,225,148, 3, 98,215,178,236, 63, 66, 90,213,216, 20, 36,144,211,197, 15,
+ 41, 22, 35, 28,106, 95,120, 50, 57, 8,150,226,149, 59,167,107, 48, 90,238,112,109, 74,113, 96, 81,116,135, 25,128, 86, 74,255,
+ 51,241,224, 60, 14, 89,155,131,229,134,101, 69,114,218,120, 81,128,195,142, 11,153,143,192, 41, 46, 56,167,180,163,180,107,133,
+168, 4, 54,103,236,192,123, 38, 45, 37,119,193,222,134,207,117,109, 25, 11, 59, 79,179, 30,100, 91, 4,124, 66,105, 22,153,219,
+150, 72,176,195,251, 10, 71,254, 81,105,147,179,228,227, 27,196,133, 97, 65,233, 2,174,121, 58, 16,172,129, 29,217, 78, 23,179,
+ 51,137, 69,115, 45, 99, 22, 73,129, 53,178,130,151,250, 76,220,130,112, 64,254,204,251, 71, 49,215, 1,136,134,244,164, 86,107,
+133, 74,159, 17, 89,154,129, 32, 22, 19, 74,235, 25, 50,230,121,176,122,123, 45, 37, 28, 74,210,177, 9, 22,200,181,166,156,199,
+ 13,162, 40,255,112, 74,136,178,200, 55,115, 74, 46, 4, 79,116,194,207, 65,160, 34,182,202, 90,130,158, 71,147, 68,136,137,199,
+177, 98, 27, 57,230,231, 69,192,249, 81,140,109,158,189,214,248, 58, 96, 5, 76, 85,104,114, 85,240,158, 49, 59,121,103, 35, 99,
+ 30, 28, 10, 22,226, 2, 63, 91,128,156, 72,208,250,151, 85, 38, 93, 86,113, 11, 70,186,164,174, 12, 87, 19,111,170, 75, 64,181,
+ 50,125, 94,125,114, 74, 15, 31, 62,162,103,158,187,209, 29, 52,109,147,175,141, 0,132,224,142,166, 26,239,208,160,221,178,201,
+110,251, 66,117,176,149, 14,131, 57, 56, 56, 94, 54,223, 51,165, 23, 78,125,238,205,216,239,147, 81, 41, 86, 32,157,121, 39,145,
+ 66,104,137, 78,128, 39,103, 59,122,225,249,107,244,169, 87,158,165,239,190,249, 22, 93,123,254, 89, 58, 62,216,208,243, 47,191,
+216,245, 5,219,229, 96,241,137, 79,188, 74, 63,248,222,143,123,152,203, 75,207,222,160,119,111,126, 68, 87, 47, 95,233,240,166,
+118,232,104,163,130, 22,216,116,227,234, 49,189,240,236, 49, 29, 29, 40,160,100,171,150, 50,145,125, 24, 13,231,249,126, 42, 10,
+236,178,111, 38, 90,137,104,162, 88,240, 3, 0,134,235,160,223,122, 95,156, 41,144, 61,158,152, 1, 74,251,155, 76, 36, 9, 42,
+113,255, 58,100,150, 39,241, 30,246,212,145, 97, 95, 97,131, 76,217, 28,217, 17, 97, 94,252, 84, 4, 36,241,100, 78,249,139,177,
+ 29, 92,181, 26,150, 63,114, 20,108, 77,137,160,130,246, 70, 2,176,142, 5,195, 24,137,207,191, 49,114, 43,250,112,161, 3,113,
+ 74, 32,188, 19,170, 57, 10, 8,139,205,245, 66,178, 26, 15, 68,237,182,221,245,117,224,152,228, 16,184, 79,241,249,136, 2,100,
+124, 14, 94, 2, 42, 67,145,226,102,201,140,163, 43,167,139,149,222,251,246,220, 69,236,107,220,131,174,166,217,140,107,185,217,
+ 40,127,217,241,146,102,173,160,216,196, 4, 78, 67,102,160, 31,149,106,156,218, 43,177,111, 40, 88,206,176, 64,219, 46, 9,228,
+100, 88,186,112,143, 78, 85, 2, 12, 53,167,236,197, 77, 27,190,182,220,112,142,239, 25,198,148, 23, 55, 81,206,184,181,192,100,
+ 37,204,185, 80,184,133,191, 47,169,133, 56, 81,135,252, 6, 47,241,158,243,184,154,247,186,158,209, 37,143, 7, 31, 35, 87, 81,
+196, 29,142, 35,241,170,108,120,173,245,187, 39, 74,115, 49, 74, 62,204,172, 23, 91, 93,236,189,246,139, 72,228, 80,227,169, 61,
+ 17,204,128,227, 28, 35,214,139,218,164,208, 66,134,185,115,126, 93, 5, 40,130, 5,145, 78,233, 40,226,194,180,245, 44, 25, 30,
+184,124,138,150,172,203, 68, 79,170, 11,196,152,100,125, 25, 38, 21,126, 50,128, 78,224, 96, 89, 60, 87, 57,116,109, 92,240, 48,
+138, 51,237,212,157, 3, 90, 32,125,204,198,158, 91,234,138,101,132,118,127,129, 67,100, 86,165,239, 93, 19,131, 12,121,181, 64,
+ 25, 14,191,234, 72,229, 13, 73,239,245, 42, 62,199,245,241,161, 76,125, 67,252,232,163, 59,244,149,111,124,135,118,231, 39,244,
+119,126,227,159,208,127,241, 87,254, 10, 53, 55, 77,133,141,174,109,214,231, 29,193, 42,116,116,116, 68,135,203,223,187,122,101,
+ 67,207,220, 56, 30, 29,181,205,166,179, 45,110, 63, 62,161,175,252,206, 87,232,236,228,132, 46, 31,115, 7,133, 20,222,210, 79,
+254,228, 79,208, 75,207,189,170,140, 6, 35,104,133, 21, 41,116, 21,227,195,255, 31,255,167,191, 77,167, 15,110,210,151, 62,243,
+ 12,125,238,250,203,116,243, 81,155,225, 47,135,136,235, 55,134,125,118,249,157,143, 31, 63,166, 39, 39, 79,232,209,227, 39,125,
+ 30,123,122,118, 70,151,142, 43,157,205,205,159,222,102,175,115,247,184, 55, 27,211,233,217,121, 99,105, 83,221,218, 60,189, 0,
+118,148, 46, 16, 31,178, 87, 80,251, 51, 15, 73,129, 58,123,154, 97,130,144,161, 10,179,251, 42,105,207,138, 74, 95,214,136,132,
+ 8, 0,170, 48, 42,176,233, 97, 9, 61, 17, 23,116,123,168,211, 3,152,237,232,224, 73, 74,110, 33,112,115,112, 20, 54,190,118,
+ 98, 38, 8, 70, 19,199,152, 2, 93, 77, 73,111, 99,139,207, 36, 14,176, 26,238,130,170,226,191,245,104,137,178, 72, 24, 45,153,
+150, 52,105, 5, 12,224,186,187,197,176,148, 28, 71,156, 56,199, 18,157,162,222,246,159,156,120, 71, 26,114, 54,174,225,228, 56,
+ 71, 63,138,114,232, 84, 24, 58,181,214,125,138, 52, 60, 96,200, 23, 88,227,182,155,212,224,181, 60,123, 19,235,142,251,166, 36,
+194, 36,219,237,223,153, 30,109, 92,116,249, 88, 63,255,234,191,108,220, 71,145,186, 37, 38,152,232,102,255, 2, 16, 14, 73,217,
+ 15,201, 10, 3, 87,154, 87, 82,231, 96, 40,203,234, 52,149,208, 82,116,193, 23, 64, 93,137, 8, 18, 75,122,209,165,112, 35, 97,
+ 55,129,170,103,101, 34,206, 39, 98,168, 74,243,141, 8,108, 13,108,101,113,201,162, 32,180, 77,225,205,135,162,126,194, 77, 73,
+168,174, 4, 97,123,237, 79,206,117,246, 90,210,150,212,180, 43,129, 89,254, 57,251, 67,213,184,161,243, 67,130,149, 71, 14, 46,
+225, 11,132,132,177,161,114, 30,164,130, 88, 46,220, 15, 54, 30,192,121, 19,242,244,169, 68, 75,154,247,126, 31,118, 68, 46,178,
+ 44,175, 43,209,168, 0, 4, 26, 30,204,185, 42,101,160, 17,230, 81, 18,118,124, 99, 97,140,177, 14, 37,255,186,117, 21,156, 39,
+173,177,160,113,125,178, 82, 30,145,156,184,235, 99,104, 75,238, 62,112, 18,204, 9, 4,187,100, 60, 44,224,117, 77, 45,108, 1,
+ 29, 40,185,196,159,143,173,223,245,136,104,138, 57,143,148,184,178,199,151, 46,209,183,126,240, 99,186,125,255, 1, 93, 61,222,
+208,111,127,229,107,244,133,207,127,145,254,210,191,249, 43,116,170,132,195,174,124,111,155,250, 82,209, 63, 93,254,145,101, 67,
+223,220, 56,164,103,174, 31,211,213,171,215,250, 97,189,208, 24,139,189,123,235, 1,125,229,107,111,244,205,246,112, 90,170,250,
+237, 33, 93, 58,186, 74,127,248,198,215,232,191,250,171,255,217, 82, 73, 95, 94,214, 32,142,195,117,178,110,142,195,142, 97, 65,
+231,229,251, 62,184,243,184,183,226, 15, 54,135,157, 44,184, 93, 14, 27, 54,126,107,243,253,247,111,222,161,243,221, 57,157,207,
+ 13, 19,123, 70,135, 7, 79,151, 53,111,162,121,219,236, 75,215,233,164,121,173,151,247,121,255,254, 99, 58, 95,254,235, 64, 3,
+132,136,215,189,175,188,113,249,216, 5,115,211, 9,238, 33,230, 36,248, 12, 72, 9, 0,127,192,142, 74,192, 69, 24, 32, 20,180,
+196,161,224,117,213, 1, 3,245, 59, 70,217,114, 9,164, 49, 79,200,111, 80,250,156,243,233,199,215,125,100,231, 25,241, 4, 58,
+ 0, 87,190,186,107,132,189, 93,159,215,190,128,125,149, 20,167,141, 93,190,174,254,233,148,204,241,179,230, 58, 59,208, 39, 85,
+ 66, 28, 20,208, 21,168, 2,196,102, 99,220, 87, 77,165, 46,162,246, 81,235,218,149,248, 60,121,101,115,205,153,183,227,186,111,
+ 4, 36, 11,188, 23,112, 19,219,136,236,187, 65, 96, 99, 55, 23,140,172,195,167,112,221,179,120,227,137, 19, 92,136, 16,117,171,
+ 51, 94, 86,164, 97, 47,240,106,209,177,216,114,122,174,202,220,245, 77,182,253,112,203,146,213,212,156, 2, 50,126,194,205, 88,
+ 55,118, 63, 85,130, 26,154, 86,202, 79,187, 57, 25,169, 74,190,241,174,163, 32,101,159, 1, 9,232, 87,161,117, 76,229, 42,236,
+161,100,140,228, 5, 14,220, 11, 4, 2, 65, 95, 66,203,154,141, 0,226, 33,202,179,204,164, 94,229,204, 23, 73,107,179, 88,196,
+102, 77,226,123, 75,227,161,148,104,151, 61,240,130, 41, 95, 66, 23,144, 69,120, 79,244,228, 15, 23,103, 88, 80,222,248,179, 80,
+ 34, 41,178,215,115, 75, 36, 29,113,248, 98, 25, 98,114,163,197, 70, 1,174, 48, 61,186,134, 45,112,132, 6,248,169, 61, 40,127,
+ 5,246, 39,190,224,144,178,122, 8,215,221,150,189,235,144, 65, 56,180,106,107,198,161,136,247, 24, 12, 97,215,241,142, 89, 64,
+ 87,176, 53, 95, 64,240, 86,120, 37, 42,229, 61, 85,125, 58,128,128, 96, 52,157, 20, 64,201,171,153,199,112,240,129,209,145, 69,
+ 62,150, 8, 99, 33,212,196,164, 0,154, 53,227, 29, 14,121, 85,194, 14, 39,240,140, 34,124, 7,180, 18,255,231,175,255, 54,125,
+243,205,183,232,223,248,229, 95,162, 47,255,254,239,209,175,253,185, 95,165,167,205, 38,212, 68,170,208, 38,110,237,247,134, 99,
+ 61,106, 65, 41,167,203, 6,122,178,108,164,103, 76,215,158,127,161,199, 1,183,161,251,188,252,206, 7,247, 31,209,213,235, 87,
+168, 44,127,118,126,250,164,127, 4, 31,222,191, 79, 39,239,190,223,231,241,215, 91,204,239, 92,233, 99,112, 58,253,127,103,173,
+245,184,221, 46, 27, 53,211, 71,247, 78,232,218,229, 67,122,249,229,103,250, 90,215,130,147,166,163,229,103,222,186, 75,111,124,
+239, 71,116,184,124,223,211,211,167,116,178, 28, 54, 78,150,215,117,118,184,115, 78,208,157, 7, 39,116,120, 99,162, 23,159,189,
+ 68,119,239, 61,160,221,242,123, 15, 1, 53,157,198, 44, 4,118, 64,194,209, 83,242,206,164,153,178,211, 42, 9, 68, 96,230,132,
+ 41, 81,245, 72, 66,109, 71,144, 12,227,207,149,168,137,145,164,198,176,169, 91,224, 8,175,239,183,110,255,146, 20,195,235, 0,
+ 48,200,200,136,183,189,158,159,234,186, 52,203, 30, 58, 56,141,229, 36, 54,241,243, 10,158,119,137, 14,224,211,243, 74,143,158,
+158,210,157,187,119, 59,162,247,236,108,166, 79,191,250, 34, 93, 62, 58,238,206, 10,134,103,149, 61,107, 60, 51, 71, 72,225, 47,
+253,253,106, 36,170,239, 91, 28,233,135,209, 13,133, 80, 40,134,199, 33,217,153, 74, 36, 43, 82, 78, 68,244,233, 59,163,104, 60,
+132,172,178,130, 49, 17, 38, 28,162,208,220, 53, 62,230,246,217,132, 14,170, 74, 2, 20, 57,115,223,186, 24,144,104, 58,216,251,
+203,193,185, 7,199,151, 26, 62, 64,109,177,119, 2,158, 84, 61, 53,109,148, 20, 86, 29, 17,104,220,118,145,125,129, 7,115,168,
+158,189,213, 94, 87, 26, 23,145,149,133, 67, 86, 12,105, 94, 29,155,246,245,115,148,245,141,224,139,190,232,161,202,178,160,212,
+ 19,197,153, 63,174,191, 96,169,233,130, 73,201, 15,111,138,201,196,223,197,107, 97,136,164,155,129, 61,155, 20,200, 91,186, 88,
+ 39, 48, 5, 90,190,246,150, 48,185, 96, 14,123, 65,229,207,235,249, 41,239, 31, 8,240,107, 56, 91,114, 12, 39,192, 69, 66,241,
+149, 97, 60, 40, 20,147,240, 40,251,254,196, 1,136,112, 40,142, 41,237,173,165, 44,233, 68,179,103,109,219, 19,149, 17,121, 56,
+205,138,146, 0,198, 29, 89,221, 23, 89,148,147, 90,153,156,118,187, 16, 54,231, 51,139,183,197, 25, 59, 42,133, 86,243,114, 74,
+254,245,100,109, 43, 23,139, 66, 93,241,127,209,215,172,181,155,170,132,226, 29, 40, 39, 6, 50,142,168, 2,252,131,152,204, 92,
+ 91,150,252,252,170, 75,129,208, 85,130, 10,106,125, 29, 63,245, 51,175,211,175,252,202,191, 70,255,245,127,247, 63, 44,155,224,
+ 83,218, 30,108,232,147,159,124,141,206,219,235, 59, 56,240,247,208,168,100, 47, 93, 62,166,127,255,223,250,211,244,183,254,206,
+175, 47, 63,238,104, 89,164,183,244,220,179,207, 82,105,182,164,121,100, 4, 60,126,252,132,238, 63,124, 28,136,232,165,202,190,
+255,232, 9,157, 61, 58,163, 31,254,224, 77,122,229,213, 87,104, 87,207,114, 68, 44,229,231,174, 21,177,175,127,230, 51,244,120,
+249, 57,151, 55,143,233,250,229, 3, 58,218,110,232,225, 82,137,223,187,117,139, 94,186,113,131,222,125,231, 61,122,252,224, 81,
+ 31, 31,180,181,237,252,108, 57,100,236,198, 61,114,114,118, 70,219,165,178,159, 20,201,252,194,141,171, 29, 21,122,126,190,139,
+197,148,178,125,209,169,140,123,204,122,254,248, 3,247,158, 90,177, 36,219,104, 95, 35,231, 44, 78,203,234, 24,184, 71,121,125,
+244,133, 1,158, 51,242,167, 56,200,165,130,105, 60,143,130,172,134,240,189, 42, 39, 93, 67, 89, 86,175, 56,158, 54,233,106,117,
+150, 53, 46, 57, 20,231, 70,157,107,122,135, 55,223,187,219,175,215, 15,222,248, 22, 61,121,252,152, 46, 93,185, 68,175,125,242,
+117,186,118,253,153,126,128,250,250,215,191, 69, 55,174, 93,161,205,114,111, 60,184,255, 17,253,236, 79,254, 44, 93,189,114,217,
+ 53, 94,123,191, 3,131,184,236,149,119,132,182,138,255,118,179,207,190, 69, 5,133,102, 83, 21, 11,153,177, 54, 61,142, 56, 75,
+ 30, 53, 50, 35,232, 9,246, 40,198, 17, 23,175,216, 20,112,168,134, 4, 70,147,105, 23, 27,119,115,234, 29,170, 86,201, 14, 67,
+ 74,223,244, 16, 44,141,182,158,113,164, 42,169, 96,216,116,197,157,132,141, 74, 48,202,209,243,121,165,191,113,203,178, 53,226,
+143,101,200,250, 12, 70, 66, 24,199,201, 90, 37,144,127,204,185, 29,141, 85, 63,158, 46,161,253,233,170,243,181, 66, 23,239,176,
+204, 85,196,181,121,111, 1,200, 37, 81,190, 97,237,212,205, 48,156, 21, 4, 94, 0, 74,145,214,179, 32,145, 11, 54, 30,156, 85,
+102, 69,177,251, 74,177,149,147,102,200, 23,139, 81,210,169, 6,111,244,245,104,130, 17,134, 2,116, 50,156,121,163, 38, 46,253,
+130,139, 4, 94, 43,111,123,194,162,174, 14, 18, 28, 80, 30, 20,123,249,140,120, 37, 2,163, 36, 77, 88,189, 14,193, 81,130,100,
+ 77, 0,231, 86,168,111, 89,137, 31,190,158,230, 72, 38,231, 17,222,119,171,200,133,212,165, 30,200, 41,155,207, 49, 58, 20,172,
+115, 33,227,160,194, 5, 20,241,160, 35,240, 84, 37,194, 25,233, 74,175,137, 26,201,117,135,162, 40, 19, 94, 99, 8,121,239,192,
+150,143,128, 94, 21,196,137, 43,117,127, 66, 33, 80, 97, 46,134,151, 29,208,166, 20,106,214,159,251,233, 47,208,223,254,187,255,
+144,254,248,205, 31,209,181,107,215,233, 83,159,253, 36,253,249, 95,249,147,244,228,201, 73, 60, 43,170,238, 61,217,157,209,147,
+147, 19,154,207, 79,250, 38,249,195,119,238,211,215,191,241, 77,250,210, 47,124,137, 46, 93, 58,162, 55,223,250,136,222,251,224,
+118,247,148,183,153,252,211, 93,123,173,203,102,123,222,218,226, 91,250,198, 55,190, 79,127,234, 95,255, 37, 79,202, 66, 86, 56,
+126,190,187,221,192, 10, 31, 45,213,221,243,151,153, 94, 89, 42,237, 7, 39,231,116,122, 86,233,225,221, 91,203, 70,254, 39,232,
+100, 30,126,229,115, 13, 27,106, 85,248,209,246,160,131,103,234,201, 89,255,251,151,143, 11,221,184,188,165, 75,203,107,249,196,
+ 82,233,207, 2,179,110,180, 45, 18,239,165,220,237, 47, 78, 31,211, 89, 48,221,155,128, 8, 84,106,210, 52,240,218, 67,233, 31,
+193, 74,147, 98,141, 33, 89, 73,182, 57,223, 76,107,143,186,113, 38, 47, 28,105, 9,239,235, 59, 88, 86,221, 46, 7, 43,144,192,
+186,234,233,132,192, 64,108, 26,157,135,143,207,251, 40,228,176, 81, 76,203,180,220, 23, 68,135, 75,193,248,242,203, 47,245,238,
+202,193,242,204, 92,187,124,212,231,206, 47, 61,115,153, 30, 45,155,254,233,217, 35,186,177,189,209, 63,219, 52,171,222, 91,103,
+139,191,190,222, 16,213,246,123, 71,213, 54, 78,123,251,220,139,120,122,220,208, 44, 84, 13, 95,177,162, 66, 32, 69, 46, 23, 19,
+226,241,167,160,125,146,154, 14,255, 76,107, 32, 19,132,149,185,144,129,163,155, 71, 53, 20, 62,189, 96,218,168,177, 37, 92, 19,
+ 61,208,166,237,183, 83,129,110, 89, 25,179,119, 13,232, 34,245,203,219,222,188,233,164, 29, 41,238,201, 19,192,224, 57,233,136,
+200, 19,187,252,141, 64, 42, 15,129,213, 34, 61,112, 48,183,244, 83, 37,175, 64, 45, 64,255, 17, 20, 42,172,187,226,107, 85,233,
+133, 93,122, 89,121,182,121,175, 37, 36,180, 2,227, 92, 36,102,185, 64,124, 36, 31,103,243, 77, 2,139,253, 83,186,249,104,241,
+239,239, 65,109, 86,214,166, 14,112, 44, 23,205,140, 87, 64, 26,190,160,106, 95,145,174,210, 92, 29, 42,224, 20,191,153, 42,116,
+206,197, 6,211,254, 41,116, 53, 17, 89,255, 31, 22, 46,131,149, 63,110,234,156, 32, 49, 89, 20,199, 56,211, 79, 53,119,180,201,
+246,230,205,208,230,242, 88, 85, 80, 35,239, 93, 71,145, 11, 23,217,189,247, 2,113,149, 93, 20,163,204,124,127, 13,181,174,218,
+106, 80,153, 23,172,166,246, 11, 52,198,110, 68,244,245,193,162, 5,108, 8,107,199, 50,237,181,222,153,120,111,146,132,108,104,
+180,190,237,155, 74, 57,102,162,254,172, 18, 28,208,135,210, 63,128, 52,177,152,183,168,219,223,252,231,255,138, 62,243,169,215,
+232,222,253, 71, 46, 60,141, 67,203,178, 72, 31,110,233,159,254,139, 63,160,255,245,127,251,135,180, 59,125,180, 84,200, 31,210,
+183,191,119,159,142, 55, 91,250,214,183,191, 71,207,189,248, 18,253,181,191,254, 87,233,254,237,179,190,206, 28, 77, 59,250,224,
+230, 93,186,118,233,128,206,150, 69,248,153, 99,162,211,221, 17,125,243,251,239,210,173, 91,183,233,165, 23,158,239,162,216,205,
+102,202,221, 20, 26, 54,220,135, 79, 79,123,149,254,206,123, 55,233,149,207, 95, 27, 98,243,165, 74,251,224,214,125,250,231,191,
+251,135,116,253,133, 87,122, 54,250,189,187, 15,123,245,119,116,112,188, 84,133,188, 28, 28,218,120,224,136,110,221,125, 76,219,
+165,194,251,228,139, 87,232,241,227,167,203,159,109, 70,186,111, 17, 21,227,194,145,136,193,222,151, 78, 99,124,225,140,118,204,
+113, 37,171,183,245,128,230, 76,111,154, 84, 48, 30,247, 88,133, 78, 38, 11,238,183, 0,209, 18,200,152, 65,225,146,127,230, 97,
+ 9, 53,127,123,192,105,100,101,114, 17,239,180, 9, 0,138,195,127,207,153,215,101, 35,213,181,255, 90,114,151,173,189,143,211,
+211, 93,191,158, 79,159, 60,162,227,131,102,129, 19,122,245,213, 87,251,143, 56,121,186, 92,239,205,142,182,205,205,180, 92,167,
+143,238, 60, 92,238,131, 13,189,243,225, 45,122,225,229, 79,140, 88,217,202,123,197,148,192, 6, 28, 93, 77, 81,242,169, 70,193,
+182, 13,114,170, 35,254,118, 86, 28,119, 49,145, 72,245,107,196,101,117, 32,242, 53,199,114,203, 1,143,110,182,105,231,230,239,
+195,175, 10,146, 69,221, 66, 87,192, 66, 39,121,124,227,200,104, 6,235,116, 27,201,204, 90,185,215, 1,170,209,200,236,113,109,
+ 27,135,126,110,243, 37,125,140, 91,251,189,148,176, 32,184,168, 72, 79, 48, 18, 81,155,142,140,148,162,255, 22, 63,145,161,237,
+129, 96,118,129,169, 86,148, 48,147,242,113,187, 50, 0, 29, 86,253, 79,145,252,181,228, 26,145,124, 64, 16,222,171,202, 86,172,
+167,213,146, 64,121,161, 71, 49, 6,190,248, 84, 77,149,120, 79,178,170,126,214, 89,208, 23,156, 10, 98, 67,149,213,226,204,123,
+ 62, 99, 78,135, 11, 89,105, 2, 56, 55, 64,120, 29,179,201,161,228, 70,218, 31,243,133, 34,189, 4,122,161,181, 40,145,215, 44,
+150,220, 50, 68, 31,245,218,107,127, 81,222,247,202, 14,152, 94, 22,229,175,103, 35,193, 42, 17,239,130,230,250,218, 3,203,232,
+211, 18,120, 19,188, 30, 89,192,207,157,214,155, 47,231,206, 70, 41,116, 17,235,101,128,199, 56, 9,128,208,122, 39,101, 85,141,
+ 51,103,187, 32,173, 52, 19,112,237,214,228, 58, 59,176, 73, 66,152,114,160,154, 85, 16, 36, 31, 99,109,140,131,206,190,124,129,
+221,191, 76,123,182,169,246,245, 75, 71, 71,244, 23,255,194,175,208, 27, 63,120,155,190,255,131,119,130,233,173, 64,140,150,106,
+246,245,111,126,159,158,185,118,131,206, 78,151, 74,120,222,209,217,249, 57, 29, 94,190, 78,175, 62,243, 44,157, 46, 11,236, 31,
+253,225, 31, 47,139,208, 33, 61,121,122, 78,187, 58,104,115,141, 61,241,240,124, 71,207, 95,191, 76, 7,103,103,116,239,209, 73,
+111,147, 31, 44,213,201, 31,124,227,123,244, 7,191,255,213,222, 62,223,148, 56,176,212,166, 74, 94,126,255, 59,239,188, 67,151,
+ 14,132,222,190,117, 66, 31,221, 63,237,231,174, 15,110, 61,165, 55,127,244, 17,253,248,157,191, 77,207, 63,115,157,238, 61,188,
+ 79,207, 92, 30,179,255,166,188,111,182,186, 71,143, 43, 29,110,199, 12,246,230,237, 71,244,232,201, 25,125,255,237, 59,116,124,
+184,252,201,243,167, 52, 29, 61,204,214, 38,184,150, 5, 2,172,220, 61, 4,109,150,205,178, 0,183, 14,196,224,106, 84,255,252,
+170, 38,247,225, 51, 61,218,199,243,114,157,118,189,186,109, 99,136,102,245,107,255,110,154,148, 2, 10, 27, 90,169,223, 5,102,
+233,168,196, 17,141,117, 13,113,184, 64, 97,150,115, 4,218,225,104,222,205, 25,167,236,247,197, 20,250, 68, 60,106,123,100,175,
+170,223,209,105,162, 7,209,147,179,153, 30, 61,122,210, 43,238, 7,247,239,211,135, 31, 45,215,246,248, 18, 29, 28, 93,166,155,
+ 31,221, 94,238,143, 29,221,187,253,126, 23, 47,182, 24,216, 23,111, 28, 47,215,108, 75,223,252,222, 15,233,231,127,238,103,187,
+107,161,106,145, 41,176, 30, 59, 2,156,247,105,148,100,116, 58,245,179,142,247, 84, 65,233,175,127, 95, 56,131,189, 4, 85, 82,
+ 53,158, 28, 31,145,226,186, 86, 18, 56, 41, 82, 41, 75,230,204,120,224,151,228,142,167,107,217,184,119, 14,170, 58,180,200,215,
+ 5,204,116, 80,164,122,211, 37,180,132, 76,220, 3,171,113,241,107,139, 30, 46,251,162, 49, 77, 27, 26,179,136,178,170, 86, 37,
+ 11,183,214,149, 43, 35,223, 56,111,202,185,112, 22,128,162,200, 69, 78,234,253,160,228, 11, 36,224, 97,247,146,253, 3, 65, 10,
+ 78,160,189,214, 62,158,122,121, 15,252,144,173, 73,251,164,174,143, 17,108,173,121, 5,184,203, 8,237,109, 34,178,178, 0,174,
+187, 11, 49, 10,224,253,217, 58, 95,100,241,160,139, 21,233,171, 86, 45,113, 10, 13,202, 55,234,202,105,176, 71, 97, 16,218,183,
+ 46,238, 79,245,179, 85, 11,103,144, 12,115, 68,248,190,194,171, 41, 41,239,201,247, 32,204, 35, 14, 10,124,225, 97, 47,119, 89,
+156, 90,152, 28, 0, 31,231, 62,224,253,195, 21, 95,132, 0,134,153, 60,206, 54,253,253, 2,113,110,223,148,176,122,103, 57,198,
+213, 91,114, 94,145,192, 72,136, 51,161, 78, 56,247,242,121,221,106, 73,201, 3, 53,183, 87,211, 9, 46,206,219,109,163,170,253,
+182, 41, 23,240, 39,184,111, 52,151, 47, 31,211,139, 47, 60, 67,255,238,191,243,103,233,191,252, 27,255, 61,253,229,255,224, 47,
+208,171, 47,191,208,103,208,109,113,223, 76, 27,250, 51,191,248, 51, 52, 63,253, 58,189,247,222, 41, 61, 42, 91,122,112,242,148,
+ 78, 78,239,209, 92,183,116,233,242, 17, 29,109, 15,233,238,195,167,203, 34,127,115, 89,216, 79,187,152,238, 96, 91,122,182,249,
+ 59, 55, 79,233,149,103,142,232,120,217,192,191,241,199, 63,162, 79,124,226,101,250,202,215,190, 75,127,247,239,255, 22, 61,247,
+236,141,158,194, 38,189,237, 62, 47, 7,130,121,249, 89, 19, 93,185,116,212, 63,231,247, 62,122,208,127,198,118,185,254, 79,151,
+159,217, 84,248,111,191,125,107,249,231,131,206,245,254,254,242,239,134,184,237, 29,203, 22,209,187,124,223,225,193,209,178,241,
+236,232,203, 95, 63,233,223,255,245, 55, 63,234, 26,197,233,215,191,213, 55,148,131,178,113, 75,210, 78, 31,209,243,211,167,244,
+ 83,175,127,113,249,189, 87,150,141,248,140,182, 7, 91,122,239,157,183,233,206,189,187,253, 51,105,170,249,205,242,103,207, 61,
+119,195,243,178,219,120,160,181,160,107, 29, 9,147,117,174,190, 62, 22, 93,143,219, 34,221,174,113,179, 1, 54,142,253,193,193,
+ 65, 63, 28, 88,140,245, 84, 70,199,162,253,249,209,209, 97,199,218, 54,194,223,164,246,222, 30,165,218,190,103,249, 59,135, 71,
+203,247, 28, 28,182,156,237,158, 41,191, 81,127,244, 65,107,131, 55, 45, 66, 67,231,206, 99,246,124,247,206, 61,122,249,149,151,
+ 50, 0, 75, 52, 19, 28,153, 27,222, 61, 50, 5,189,249,180, 55,201, 91, 55,124,225, 68, 31,125,116,159,238,222,190,219,175,227,
+ 7, 55,111,210,219, 55, 63,162,207,125,250,117,186,123,247, 65,191,110, 13, 2,244,227,183,111,246,123,230,210,242,126,238, 60,
+ 60,165,203,243,134,158, 44,135,171,183,222,125,159, 62,255,185,207, 82,237, 0,163,200,128,247,241, 18,199,243,141, 46,130,116,
+104,175, 54, 94,154, 52, 9,145,226,251, 58, 53, 78, 71,202,202, 93,119, 75,155, 89,233,192,182, 43,156,164, 55, 99, 93, 17, 48,
+132, 22, 14,237, 17,174, 21,133,129,239, 34, 9,169, 27,217, 40, 22,118,165, 90,161, 26,123, 84,252,255,117,100, 1,224,118, 85,
+ 12,167, 54,181,140,246,141,147,112,198, 7, 87,221,143, 46, 51,108,118, 53,250, 60, 9,235, 8,115, 85,155,199, 23, 20,112,240,
+190,175, 48,237,180,146, 33, 33, 73, 85, 41, 31, 51, 15, 93,109, 31, 57,201, 7, 78,178, 34,251,149,242,218,254,192, 89,201, 41,
+178, 47,192, 73, 89,207,120, 22,244,238, 27,239,149,136,123,254, 71, 22, 40, 62,121,127,110, 6,106,117,111, 79, 95,208,149,200,
+109,115,216,232, 80,100,101,155, 87, 89,205, 86, 87,251,181,251,156, 45,125, 15,132,116,188,231,204, 99,204,155, 80, 33, 95,201,
+109, 95,145, 61,251,153,248,189, 81,192,178,177,190, 39,246,161, 29, 12,247,134,164, 22,117,113,182,179,232, 61,187, 47,144,231,
+236,157,167,152,139,229, 72,199,117,139,156,211,161,149, 25,233,116,208,214,118,198,245,190,237, 48,125,214,240, 32, 95,164,133,
+240,177,146,185, 68,164,238, 5, 5,165,131, 16,175,157, 9,188,234,184,200,197,214,198,212, 49, 42,217,175,135, 47, 78, 91,130,
+187,185,137,198, 78,123,117,121,231,238, 61, 50, 74,188,125, 26, 13,183,122,251,206, 93,250,157,127,245,255,209, 47,255,226,207,
+210, 51,215,175,210,147,147, 83,250,218,183,191, 71,207, 46,155,237,102, 89, 20,143, 14, 14,250,235,252,210,207,127,129,190,254,
+181, 55,169,158, 61, 71,245,228, 46,157,237,174,208,116,112,101,217,244, 30, 44, 21,248, 67,186,255,160, 45,234,203, 90,179, 59,
+165,159,255,252,179,244,198,219, 19,221, 91,254,172,109,106,103,203,207,220, 46,149,220,235,203,134,248,255,252,131,223,164,223,
+248,245,127,186,108,186, 39,244,236,149,131,101,179,222, 45, 27,212, 65,143, 74,125,240,240,241, 96,203, 47,255,253,232,201,152,
+197,183,138,103,211, 66,158, 58, 46, 86,150,247,115,222, 25,239,219,101,115,107, 11,252,233,178,209,119,147,110,203,187,104, 1,
+ 30,210,254,217,116,204, 39,107,219,187,129,111,120,249, 59, 77, 81,223,214,249,147,147,221,114,128, 24,185, 13,237,107, 39,109,
+ 6, 95,207,150,205,242,168,255,189,210,137,120, 76, 79, 78,155,183,253,168,199,145,158, 44, 39,163,233, 76,232,221,247,111,211,
+229, 43, 87,232,234,242, 79,131,217,220,189,115,191,191,134,218,187, 5, 67,208,184,217, 76,254,145,180,247,178, 59,111,213,237,
+211,190,233,155, 0,172,106, 62,248,166,104,178,166, 87,149,181,135,211,152, 0,203,221, 86, 45,173,172,141,150,151, 13,125,179,
+ 28,150,218,161,163, 93,179,135, 15, 31,210,127,242,159,254,199,244,197, 47,124,142,222,191,121,151,254,241,255,253, 79,232,241,
+227, 71,116,255,254, 29,250, 27,255,237,127, 3, 17,172, 21,170,121, 93,159,214,114, 30, 94,187,152,212,141,164, 29,181,179,229,
+125,124,123, 57,148,189,255,254,251,203,189,114,157,222,253,224,102,183, 56, 62, 88,222,219, 76, 55, 71,103, 96,249,219,143,158,
+158,117, 61, 67,187,194, 45,193,111,179, 61,167, 43, 71,155,229, 16,120,218,121, 7,197, 28, 89, 37,235, 94, 92,151, 27,210, 88,
+ 15,223,233,175, 93, 59, 86, 99,238,108,161, 77,250,117, 27,137,136, 50,246, 77, 91,102,143,138, 68, 76,180,172, 54,105, 70,247,
+136, 9, 96, 11, 88, 21,106, 46,232,132, 32, 49,206, 50, 68,234, 10, 60,100,154,137,186, 31,176,148,118,165,214,134,151, 10, 26,
+ 19, 29, 63, 76, 77, 40,183,124,200,137, 23, 44,150, 67,137,137, 61,181,203,237, 92, 87,153, 20, 11, 80,201,172,171,154,117,165,
+ 74,208, 34, 94,111,172,169,165, 27,185,238,235, 18, 34,227,252, 64, 24,183, 54,172,185,106, 23, 83,193,194,174, 33,235, 48,151,
+213,108, 94,146,141,135,147,227,110,127,182, 13,158,227,149,223,248, 99,148, 0, 32, 4,148, 80,142, 75,158,217,237, 85,226, 96,
+ 77,227, 85, 89,184,167,188, 93,133, 95, 4,225,117,149, 65,173, 55,136,199,190,238,217,244, 50,111,158,147, 18, 61, 35, 70,243,
+ 6,107,167, 85,216,212, 36,195, 22, 62, 6, 74,158,213,232, 43, 41,185,181,170, 99, 46,159,146,111,232,116, 89, 64, 90,165,103,
+139, 73,155,209,209, 90,184,185,246,131, 67,134,242, 58,147,128, 10, 37,150,187,251,251,203,170, 29,143, 39,117,230, 61, 43,229,
+ 69,214, 13, 94,145, 3,246,187, 25, 89,117,139, 78, 4,111,126, 10,175,102,230,146, 15,187,208,201,216, 27, 82,168,160, 20, 59,
+ 87,173, 29,125,231,254, 35,250,155,255,243,255, 65,255,249, 95,251,203,244,247,254,214,255,190,108,214, 63,232,173,210,221,242,
+166, 47, 31, 30,209,233,201, 19,186,189,108,200, 87,150,251,230, 55,255,241,239,208, 63,251,173,223, 91,254,123,166,127,240,247,
+126,131,254,223,127,240, 79,232,213,215, 94,161, 87, 94,126,126,100,119, 47,191,224, 95,254,139,175, 44,155,212, 97,159,111, 95,
+186,124,173,231, 70,157,158,159,208, 82,123,210,195, 71, 79,250,230,215, 42,204,155,183, 31,244,248,137, 6,168,105,214,179,246,
+247, 63,186,243,136, 14,249, 50, 93, 62,216,208,135, 31,222,166,179,179,167, 42, 32,162,190,193,182,234,244,188,169,214, 15,134,
+ 93,106, 55,139, 46,138,181,131,101,158, 46,255,180,205,177,173,105,143,207, 39, 58, 95, 42,241, 67,174, 75, 53,184,237,155,163,
+ 28,110,250,207, 41,203,230,187, 45, 35, 16,166,119, 64,151,159,115,186, 28,108, 58,163, 99,158, 59,215,190, 89,174, 78,207,199,
+120,237,228,228,100, 57,136,156,121, 87,161,211,224,101,180,203,219,106,222,243,177,150,205,170, 5,142,156,215, 29, 93,127,230,
+ 89,122,237,211,159,163,199, 79, 78,233, 51,159,188,188, 44,188, 51,125,231,251,143,250,220,255,242,241, 97,255,252, 90,181,221,
+236,117,237,230,106,213,116,107, 73, 47, 63, 97, 84,215,205,243,191,124,243, 89,175, 86, 75,215, 43,180, 67,192, 80,239,239,150,
+235,119,176, 84,255,203, 65, 98, 87,251,161,170,232, 33,245,124,217, 8,251,251,224, 97,119,122,248,240,108, 57, 88,237,186,197,
+239,215,127,235, 95, 44,159,237,247,151, 10,250, 14,221,126,239,195,254, 26,127,250,139,159,161,183,126,240, 38, 61,247,242,171,
+253, 48,113,245,218, 53, 79,194, 76,150,185,181, 72,151, 8,194,146,116,251,151,113,208, 57, 91,222,243,251, 31,126,216,221, 83,
+143,159, 60, 93,106,201,218,175,117, 27,167,180,247,217,174,101,235, 8, 93, 59,100,122,225,153, 75,253,176,118,239,209,233,242,
+218,199,181,158, 45,184,107,226, 68, 28, 68,129,238, 74,222,170,139,221,172, 85, 48, 3, 34, 91, 34, 32, 78,224, 33,239,223,176,
+113,141, 64, 28, 98,167,213, 26, 6,207,207,116,129, 6, 18,132,169,130, 57, 84, 28,137,160, 6, 14, 72,118, 90,152,177,167, 2,
+213,197, 45, 88,163, 26, 63,160,197, 3, 87, 71,239,218, 62,180, 41,135, 91,207,146,238, 21,131,190,233,145, 89,171,148, 46,225,
+228,205,147, 85,197, 45,123,120,189, 85,197, 69, 23,204,100, 1, 92, 18, 21,241,199, 88,147, 68, 82, 7,223, 46,119,145,180, 5,
+ 96, 49,188,226, 7,160,144,143,181,242,200, 29, 1,150,248,122, 84, 80,235,145,188, 16, 75,110,197, 59,124,136,202, 5, 44, 99,
+242, 13, 91, 96,110,153,196,196,118, 83, 10, 42,147,247,197, 93,152,187,194,107, 67,251,234,180,193,144,109,110,176, 21,113,255,
+ 50, 68, 39,154,110,128, 24, 80,182, 14,102, 79, 94,107,230, 61, 5, 76,106,116, 72, 98,244,243, 5,240, 24, 74, 52,187,189, 46,
+198, 42,115, 56,251,227, 25, 36, 13,156, 5,193, 72,209,108, 1, 29,203, 2,242,220,141,109, 87, 74, 63,188,127, 74, 55,174, 77,
+125,145,203,116, 97,206,116, 1,150, 4, 75,221,239, 6,201,190,173,238,130,176, 22, 12, 55,194,201, 5, 95,116,162, 91,109,194,
+128, 2, 10, 1, 91, 66,189,194,134,254, 49, 80, 32,204,235,202,115,160, 60, 58, 65, 85,174, 84, 76, 80,148,174, 78,126,235,199,
+239,209,195, 7,103,244,191,252,205,191,183,108, 22, 87,232, 11,127,226, 23,186,101,237,244,108,238,145, 39,143, 78,238,211,195,
+119,222,161, 47,188,244, 9,122,251,253,155, 75,245,117,141, 14, 46,189,178, 84,149, 66,239,221,190, 69, 63,124,231,193,178,169,
+125,111,217, 24, 43,221,184,113,131,222,250,224, 33,125,234,149,163,101, 3,175,116,237, 90,237, 30,241,246, 65,180, 42,253, 59,
+111,188,177,108, 86, 91,186,126,137,233,222, 82,173,223, 91,190,231,168,101,155, 47, 47,249,241,242,251,238,221, 95, 54,253,221,
+125,250,236,203,215,232,167, 63,247, 34,253,195,223,254, 70,135, 75,181, 78, 2,181, 57,123,111, 75, 47,155,224,178, 24,236, 58,
+142,118, 4,116,156, 45, 95, 63,175,197,253,209,237, 57,109,155,111, 59, 40, 92,125,230,152, 90,193,221, 20,240, 71,199,219,238,
+139,238, 72,218,222,138,158,187, 34,190, 35,109,151,119,187, 91,170,236,221, 84,151, 13,102,183,124,255,220, 55,159,161,155, 18,
+ 58,147,168, 6,219,193,228,232,104,211, 43,236, 39, 79,207, 70,171,123,217,116, 31, 60,126,184,220,147, 79,232,202,178, 97,190,
+245,214, 59,244, 96,185, 63, 31,220,157,232,234, 1,117, 92,238,182,243,190,169,103,186, 91, 22,120, 19,119,157,212,209, 17,104,
+ 45,248,254, 25,109,198,250, 50,129,203,162, 46,155,222,184,183,199, 88,133, 33, 66,183,125,182, 35, 57,175,234, 6, 47, 99, 44,
+162,243,254,105,217, 56,191,253,173, 55,232,171,127,244,205,229,215,157,209,103,126,226, 39,232,210,114,184,248,218, 27, 55,151,
+107,203,244,193,205,127, 78,247,238,220,166, 95,253,213, 95,166, 63,245,203,191,188,108,206, 7,253,119, 12, 62, 25,216,102,250,
+235,157, 35,216, 4, 45, 53,250,127, 54, 42,223,141,203,151,186, 78,160,165,225, 53, 69,119, 59, 80, 93,189,122,165,183,219,219,
+ 65,164,117, 70,118,202, 65,105, 29,135,246, 57,180,141,169,137, 21, 27,187, 63, 44,159,146,236,165, 4, 72,108, 73, 17,150,193,
+ 41,170,171,145,160,152,213, 79, 71, 7, 98,194,192,148, 18, 41, 52,113,140,135, 75,194, 58,228, 88, 96,244,225,175,208, 86,121,
+ 20, 9,137,165,162,158,250,236, 18, 91,205, 17, 49,101,178, 29, 52,100, 95, 71, 65,188,209,176,187,232,250,110,188, 2,156, 50,
+230,178,171,125,123,235, 97, 84,239, 2,252,114, 3, 1, 8, 90,131,176,114,221,107, 49,230, 83, 29,175,100, 28,100, 98, 7, 89,
+183, 82, 97,126, 65,185,117,205, 73, 8, 23, 30, 93,230,253,170,132,149,151,139, 57,234, 68,129, 91,117,229,177,240,126,246,185,
+ 91, 18, 1,169,133,103, 20,137,185,238, 30,212, 38, 89,212, 34,252, 3, 67, 96, 8, 65, 43, 32,188, 91,123,200, 3,244,195,169,
+173, 29,101,152,236, 29,156,236,132, 88, 36,110, 42,113,200, 10, 93, 0,163, 97, 96, 78,227,195, 32,132,129, 5,213,218, 91,190,
+217, 21, 79, 32, 74, 57,203, 89, 24,176,254, 80, 50, 97, 19, 59, 14, 43,184, 15,182,184, 19, 36, 2,189,223,203,123,188,119,239,
+ 9,221,249,232, 54, 61,123,253,181,126,191, 62, 90, 54,141,211,147, 45,189,242,234,115, 61,180, 35,108,167,188, 55,255, 31, 15,
+ 46,195, 8, 70, 98,195, 95,189,118, 89, 41, 58,121,213,221,241,249,162,228,171,177, 54, 66, 38,123,101,178, 54,238,207,195, 97,
+154,230, 65, 16, 81, 57,160,128,113,237,211, 31,157,199,105,115,224,207, 70,251, 25,173,186,125,244,248, 41, 93,189,124,220, 55,
+ 70,195,150, 30, 28, 76,189, 74, 45,220,172, 71, 83, 95,252, 91, 43, 93,150,106,115,123,220, 4, 79, 59,250,234, 82,185, 63,122,
+244,136,110,223,125, 66, 39, 79, 30,247,150,248,227,167, 79,233,242, 39, 94,233,228,183,221, 82,205,190,244,226,243,203,231,241,
+ 33, 61,120,112,107,169,202,118,244,214,123,111,247,150,113,171,160, 95,123,245,213, 94,157,141, 42,114, 89,240,143,143,151,127,
+239,232,248,240, 26,125,242,165,101,131,110, 73, 89, 13, 72,179, 84,241, 31,222,185,211,175,227,219,183, 30,245,141,188,209,223,
+234,211, 29,221,188,247,112,204,184,121,180,161,219,107,110,193, 93,231, 75, 37,127,184,108,128,191,240,243, 95,234,239,251,246,
+114,200,104, 27,198, 7, 75,149,223, 42,231, 86, 61,190,243,244, 4, 18,242,150,141,113, 89, 5,127,242, 11, 95,236, 21,241, 59,
+173,162, 92,158,243,243,167, 79,250, 38,180, 57,156,244,217, 92,238,251,214,214,111, 27,229,178,137,189,250,226, 75,244,116,121,
+ 61, 79, 78,158,210,189, 7,247,232,206,237,123,116, 89,253,212,247,239,221,235,175,127,183, 92,179,251,143, 31,208,181, 27,207,
+116, 15, 62,151,179, 14,226,105,246,170,119,223,127,220, 15, 1,237, 62, 61, 63, 63,233,237,229, 70,201,217,148, 49, 15,111,250,
+128,198, 16, 57, 83,159,124,175,198, 21,109,218, 34,101,219,243,119,233,248,210,114,247,140,170,123,154,150,226,140,134, 31,187,
+117, 91,100,211, 80,187,203,247,159,143,141,184,109,148,231,149,123, 23,228,160,141, 23,150,215,112,233,248,184,127,182,231,103,
+143,150,131,199,227,229, 96,113, 70,175,127,234, 21,154,187,168,172,208,167,126,226, 53,250,221,223,249, 29, 58,186,116, 68,191,
+248,167,255, 44, 61, 93,222,107,235,132, 28,245, 89, 60,247, 67,155, 9,180,216, 45, 91, 18,163, 43,221,128,239,221,125,208, 63,
+167,131,131,237,242,254, 91, 55,225, 76,199, 16,135,203,207, 60, 89,254,236, 96,169,224, 31,233,232,231,156, 14,151,131, 74, 59,
+104, 29, 46,207,236,251,119,118,244,225,173,123,244, 83,248,108,248,198,142,186, 36, 78,112,184,170,161, 47,232,254, 25,237,110,
+118,208, 26,195,211,104,196,185, 53,223,187,240, 69,238,252,125, 33,153,128,186,157,247, 2,147, 50, 45, 46,160, 49,242,177,156,
+145,108,229,197, 2,116, 21, 3,189,231,237, 94,238,161,118,186,245, 20, 27,159, 39, 8,120, 85, 69, 85,135, 43,203,148,165,197,
+128,172,127,108, 74,217, 74, 36, 56,131,151,149,178,154,176,114,196,247, 97,179, 17, 73,118,141,212,226,149, 11, 72, 52,235, 57,
+252,122,166,184, 22,170,165,185,208,170, 97, 46, 25,235, 28,194,144, 28,148,177, 63,208,229,100,178,231, 11,196, 72,123,172,111,
+216, 24,188, 43,194, 43,196, 67,201,219, 1,175,171, 72,202,176, 30,217,155, 86,135,205, 73, 96,195, 39, 0, 31, 8, 84,206, 73,
+ 64, 71,195, 42, 65,200,211,167,140, 74, 20,255,108,101, 79, 57,203,171, 49, 13,102,159,227, 44, 63,226, 34, 57,133,117, 68, 46,
+ 68, 22,172,161,200,173, 85, 94, 77,140,115,178, 44,198,223, 94, 54,157,174,104,237, 28,228, 3,122,241,165,103,199,188, 82,246,
+106,239,116,157,115, 74,182, 0,159,128,178,229, 11,179, 4, 86,206, 98,230, 60,106, 16,168, 92, 82,182,246, 62, 89,198,105,134,
+185,145,200,123,174,143, 20,246,177,103, 9,145, 36, 60,109, 98,169, 15, 62,186, 71, 95,251,195,175,209,201,227,199,125,209, 57,
+ 90,170,166,135,143,206,232, 95,254,254,215,232, 19,175, 62, 67,175,188,240,124,223, 56,218,134,213, 90,168,239,190,247, 17, 93,
+186,116, 76,239,125,112,179,115,209, 79, 78,159,118,213,120,155,129,222,184,126,157,238,220,186,221, 85,202, 79, 31,223,239,139,
+200,249,252,168, 1, 47,232,123,111,254,104, 57, 4,108,232, 75, 63,243, 69,122,231,253,119,232,253, 15, 63, 88, 42, 81,238,139,
+247,203,207, 94,239,149,229, 11, 47, 63,223, 55,248,183,223,123,151,126,225,231,126,142,126,250,139,175,119,123,217,251,239,189,
+ 55, 4, 83, 77,179,214, 54,163,229,243,188,251,100, 71, 15,159,158,211, 75,207, 11,189,250,220, 33,221,186,119,178,188,142, 43,
+203,207,254,112,217, 56, 31, 46, 27, 95,219, 32, 78,151,138,121,211,159,143,207,127,242, 83,244,133,207,126,169, 87,189,215,151,
+ 42,240,199,111,253,136,110, 45,135,130,151, 94,122,137, 62,243,217, 47,208,131,135, 79,250,239,232,155, 92, 79,147, 35,135,145,
+ 92,191,122,157,222,251,255, 9,123,179, 38, 73,210,235, 74,236,126, 30,251, 30, 25,185,103, 86,214,218, 59, 26, 4, 64,144, 32,
+169,225,112, 25,206, 72, 38, 13,231,113,100, 50, 45, 35, 51,201,140,210,131, 30,244, 54,166, 23,189,201,244, 19,180,189,137, 47,
+ 35,211, 66,210, 40,137, 59,129, 33, 0, 98,237, 70,119, 87, 87,119,237, 85, 89,185, 47, 17,145,177,175,238,159,238, 57,159, 71,
+132,123,100,246, 8, 48, 88, 55,170, 50, 35,220,191,229, 46,231,158,123,238,249,185,156,158,158, 17,254,157, 34, 66, 80,135,105,
+187, 66, 4, 96, 48,236,234, 90,166, 89, 3, 47, 22, 75, 82,211,247,185,108, 52, 9, 43,255,244,231, 63,103, 32,147, 8, 57, 38,
+248,253,177, 58, 74,100,252,107,187, 91, 82, 42, 87, 53, 0,106,104, 54,159, 32,163, 63,107, 83,114,112,112, 68,231,203, 90, 49,
+ 38,215, 37, 28, 65, 11,217,225,175,127,231,215, 72,166, 59, 62,121, 67,116, 97,164,235, 63,232,143, 53, 48,211,191,247, 2,214,
+255, 1, 73,116,154, 86,110,237,221,147,219,123, 15,244, 89,234, 82,191, 60, 97, 50,214,188,106, 17,185,192,153,203,233,179,122,
+ 73,144,229,242,178, 90, 42,115, 47,128, 56, 28, 29,237,147,237,191,178,190, 45, 7, 71,111,228,178, 61,145, 15,179,105, 30, 37,
+244,135,175,174, 84,229,221, 7,219,186,159,154,189,127,242,133,220,125,235, 93, 68,134,242,211,191,251,129,174,229,109, 25,233,
+242,221,210,236,190,166,231, 2, 1,195,252, 62, 68,208, 83, 56,196,225, 72,157,242,153,190,187,158, 23,112, 19,134, 26, 80,161,
+158,190,190,182, 33,206,247,184, 76,190,211,237,177,246,127,213, 25,170,243, 15,164, 92,204, 51, 40,203,105, 32,112,248,230,208,
+237,155, 68,148,212,194,118, 54, 99, 23, 18,212,179,160,119, 62, 41, 47, 34, 49,107,231,193, 70, 84,147,194,198, 5,165,140, 93,
+ 76,131,156, 79, 66, 91, 30, 24, 19, 23,172,242,150,201,210,198,196,128, 83, 27, 75, 24, 35, 73,217, 53, 49,161,235,200,160,141,
+114,100,226,240,110,124,216, 79,116, 26, 37,224,247,241,104,200,131,186,104, 77, 11,135, 86, 24, 19,155,245,234,121,179,254,208,
+104,221,194, 44,209,205,111,168,179,219,155,250,170,227,206,102, 89,195, 97,121, 66,154, 21,145,175, 68, 70,191,226,207,230,186,
+222,230,122, 77, 94,174,129,220,246,218,144,183, 27,131,167,165,218,172, 89,106, 89,139,101,150, 75, 10, 9,209, 26,184,149,175,
+ 16,123,137, 69,116, 17,150,183, 68,231,119, 71,199, 54,134, 71,115, 57,184,176, 81,206, 65,132, 40,102, 34, 76,203,232, 48,134,
+249, 1,154,237,136,183, 56,116,158,131,219,162,140,111,179, 52, 72,196,196, 68,139,108, 28,142, 54,114, 19, 47, 62,148,152,149,
+ 69,144, 16,157,116, 55,131,155, 35, 80,130,245,150, 49,239,101, 10,129,231,234, 88,250,207,218,218, 26,179,141,250,217, 69,136,
+ 94,121, 52,156, 54,146,200,122,203,207, 52,191,208, 54,242, 51, 17, 90,157, 89, 18,192,185,214,219, 23,137,233,140,137,193,131,
+113, 0,199, 92,171,172, 72, 92, 52, 50, 18, 32,197,175, 87,172,154, 30, 11, 80,227, 82,159, 51,131,133, 26, 44,152,209,231, 23,
+ 93,249,232,167,143,229,249,147,135,146, 47,173, 73,185, 82,150,106,109, 77, 58,237,190,252,235,151, 7, 98,224,160,187,109, 66,
+198,125,205, 40,239,221,187, 39,153,234,134, 60,121,181, 79,180,163,217,188,144,175,189,247,158,188,251,246, 3,121,113,112, 34,
+165,106, 69, 6,154,153,163,182, 62, 25,251,180, 31, 67,140,199,213,204,244,119,191,243,235,242,197,179,167,234,120, 79, 73, 50,
+203,167,147, 82, 82,199,208, 83, 47,176,183,179, 75,146,212,199, 15, 31,178,126,140,204,176,221,238,168,211, 26,201,235,227,115,
+117, 58, 25,201, 21, 50, 26, 60,128, 11, 97,228,221,189, 21, 25,108,149,208,130, 43, 63,126,116, 44,187,107, 5,249,119,255,225,
+183,228,187, 63,253, 76, 14, 27,109,205, 70, 49,104, 37, 45,255,206,239,254, 3, 73, 77, 64,146, 27,240,157,171, 26,144, 32, 27,
+172,119, 58, 34, 80,136,211,231, 64,159,252, 74, 41,173,153,190, 71,167,150,201,120, 50, 38, 49, 42, 33, 43,229, 50, 17,132,215,
+251,251, 50, 28, 78, 92, 54,170,235,150,201,228, 36,173,118, 47, 87, 72,203, 63,251,167,255,190,188,247,245, 15,120, 46,191,124,
+250, 70,254,252,143,255, 70,222, 28, 29,232,179,247,229,247,126,231,119,164,154, 75,203,133, 58, 97, 56,213,115, 13,162,126,249,
+ 55,126, 87,108,166, 36, 63,251,232,115,233,168,147,204, 36, 69, 54, 87, 43,178, 89, 83,231, 90,201,138, 76, 6,154,189, 15,184,
+ 70, 96,241,187, 64,163, 47,197,210,138,100,210, 57, 57, 56,124, 35, 71, 7,207,100,125,243,182,172,175,174,201, 40, 7,146, 97,
+ 64,187,236,147, 68,149,102,253,126,125,117,131,142,243,226,252, 68,166,227,190,108,109,172,106,224,144,162, 45,207,103, 82, 82,
+219,124, 75,131,179, 11, 89,169,173, 48, 24,129, 56,208,241,241,190,244, 58, 23,178,182,126, 91, 86, 86,106,114,170,129,137, 32,
+120,211,117,246,213, 31,160,238, 95, 42,174,200, 15, 63,125,163, 78,213,211, 32,161, 43,127,248,191,252,207,242,246,187,239, 75,
+160, 14,248,163,159,125, 74,114,227,223,125,247, 7,242, 47,254,179,255, 68,138,156, 31,226,207,237,199,108,252, 50,238,248, 72,
+ 29, 56, 8,114,173, 78,155,129, 86, 79,207,140,155,114,150,208,239,233, 75,187, 7, 94, 65, 90,179,254,137, 35, 88,234, 58, 93,
+105,240, 8, 88, 25,157, 12, 43,165,172,164, 83,110,236,173,245, 76,188,252,107, 35,200, 87,100,110, 67,164,224, 40,193,141,178,
+ 34,225,125, 15, 36,150, 76, 93,155,193, 21,227,116,153,235, 26,244, 98, 98, 82,173,215,145, 56,115, 93,119,195, 44, 75, 92,221,
+208, 69, 21,245,153,243,182,113,137,145,158,173,216,165,166,176,197, 26, 36,207, 78,143, 23,234, 94, 33, 11, 19, 14,220,245,217,
+133,109,244,225, 88, 68,127,154,116,145, 37, 91, 37,146, 75,128,162,145, 27,208,139,152,251, 52,215,214,199,124,133, 0,147,141,
+ 57,192,121,239,119, 32, 55, 19,207,162,179, 91,205,130,153, 24, 53,174, 54, 10,148, 88, 27, 79,246,151,159, 39, 38,120, 18, 37,
+212, 45, 88,253,102, 25,113,136,136,237,199, 29,246, 13, 80,188,185, 46,173,227, 6,217,135, 25,221,156,160,101,226, 34, 58, 51,
+246,119, 68,106,119, 14, 69, 93,235,187,151,216, 76, 97, 99,108,204,113,198,213,217,162, 34, 14,241, 89,233,114,147, 51, 55, 94,
+188, 63,117, 9,197, 95, 60,245, 13,107, 16,209,138,240, 98, 51,198, 23,178,175,139,222,250, 40,177,237,250,208,155, 57, 92, 6,
+248, 53, 28,215, 88,170,150,229,214,157, 77, 18,112, 82,169,132,212,207, 47, 9,189,139,231,221,208,204, 22,159, 82,230, 45, 15,
+128,155,115, 43,174, 19, 17, 99,164,150,235,230, 32, 22,240,154,101,217,208,229,224,126,110,152,100, 49,168, 33, 10,163,219,155,
+244, 29,162,229,170,104,159,172, 35,187, 1,106,253,249,199,207,229, 82, 51,178, 47,158, 31,200,203, 87,175,229,214,253,247, 36,
+165, 25,219,139, 55,199,114,220,120, 69,193, 15,163, 25, 80, 81, 51,247,213, 21,205,160,213,145,252,210,183,126, 89, 68,157,202,
+163,167,251,172, 15, 39, 51, 25,121,112,255,190,124,240,254,187,242,250,232, 84,141,242,136,182, 32,145, 46,177, 37,203, 51, 32,
+ 94, 25,169,150,242,242,107,223,252,186,124,252,232, 11,205,196, 79,165,148, 47,170, 3,197,207,102,229,188,217,145,175,191,251,
+150,124,249, 98, 95, 94,189,121,195,119, 68,118,134,182, 46, 24,245,130,159,146,146,102,103, 59,234,180,225, 80,251, 19, 95,131,
+128,169,220,201,150,100,163, 86,150,241,112,160,137,105, 85,190,120,117, 46,207, 15,206, 52,107,157,202,239,255,246,175,202,127,
+244,159,255, 7,172, 73,223,219,221,148,239,254,221,103,242,191,254,225,159,202,231,207, 94,200,183, 63,120,143, 48, 51,236, 84,
+194, 3,219,123, 34, 85,111, 34,255,252, 15,254, 99,249,225,247, 62,149,191,249,235,191,149,111,125,251, 61,249,111,254,229, 31,
+ 72, 46,151,145, 63,255,219, 79,228, 7,127,253, 19,214,212, 7, 26, 65,220, 86,199,248,214, 78, 69,188, 73, 75,254,211,255,242,
+ 15,228,155,223,252,144,142,203,157, 53, 79, 62,253,249, 99, 41,228,242,146,202,100,101, 28,140,229,228,232, 88,250,233,137, 58,
+103, 13,138, 90, 77,249,167,255,236,247, 52, 3, 94,151, 31,252,252,137, 6, 40, 61,214,214,173, 58,177, 92, 14,165,142,130,108,
+175, 23,165,172, 65,192, 79, 63,126, 41,101, 93, 55,148, 7,138,185,172, 58,245,172, 84,215,246,152,225, 67,147, 94,188,140, 20,
+203, 21, 61,203, 70,122, 26, 4,140, 39, 46, 56,197,244, 56,212,159,215, 86, 87,117,125, 51, 68, 35, 70,186, 70, 64, 60, 74,185,
+ 4,185, 2,153,148, 58,200,242, 22, 51,223, 78,251, 82,106,171, 85,102,198,200,148,207, 78, 94,107, 64,144, 86,135,190,174, 54,
+125, 42,171, 53, 93,231,181,164,124,249,124, 95,110,109,175, 75, 33,155,146,253,227,134, 84, 53,248, 43,106,252,241,206, 47,127,
+ 77,158, 60,125, 42, 95,124,241, 84, 3,131, 60,127,239,193, 78, 77, 3,132,142,180,154,117,253,255,247,244,115, 12,203, 0, 86,
+108,108,160, 13, 2, 45,148,122,128, 56,160,220,211, 31,244,244,188,248, 14,134, 71,134, 15,127, 45,250,119,253, 17,147,199,172,
+174, 21,130,188, 41, 74, 50,104, 69,212,231,156,132, 74,129,198,198,233, 34,230,134,201,151,118,121,198,122, 56, 87,222, 51, 18,
+ 87, 44,181, 81,229,184,232, 32, 39, 27,243, 49,102,169,149,218, 46,161,171,230, 26, 89,220, 92,215,151, 88,190,242, 54, 42,217,
+188, 44, 75, 17, 77, 62,227,227,202,103,153, 89,204, 28, 92,107, 34, 66,166, 62, 30, 47,122,245,193,176,156, 59,243,197, 76,114,
+180,176, 76,216, 35,233,156, 61, 34,196, 52,251, 30,157,147, 95,212,148, 23,144,129, 93, 86,172,136,150,145, 35, 53,101, 27,113,
+198, 70,226,227, 8,227,140,226,184,195, 16, 43,215, 20,140, 76, 44,229, 95,146,156,141,214, 48,163,189,244, 38, 46, 3,187,236,
+237,141, 68, 32, 25, 19, 87, 67,179, 18, 37, 49, 73, 68,135, 91,174,215,144, 99,125,199, 54, 46,191, 40, 17, 34,162, 23,129,169,
+195, 89,217,203,237,243,113, 52,192,222,172, 74, 25,229, 31, 44, 75,188, 70,179,108, 47, 30,118,153,175, 32,166, 95,139, 44,163,
+250,254, 75,145,173,137,136,113,196,231, 25,152,101,221,153, 69,251, 89, 12,174, 50,243,174,128, 88,223,120,116,180,162, 89, 76,
+ 28, 3,195,246,178,209,145,177, 58,169, 91,239,220,118,228, 34,253,171,141,205, 21,185, 56,173,203,145, 26,168, 7,111,239,198,
+ 37, 70,227,177,218, 13,101, 13,145,165,193,106,241,181,184,198,122,188,169,228,179, 20,244, 93, 35, 7, 46,144, 33, 19,205, 62,
+150, 2, 92,123,131,246,129, 93,122,143, 89, 75, 41,136, 96, 24,154, 50,213, 12,116,255,205,185,124,247,207,190, 71,173,141,149,
+213,117,205, 62, 11,116,166, 3,205, 28,253,241,136,144,104,161, 80,148,180, 58,238,163,227, 3,121,239,237,183,100,108, 82,234,
+164, 78, 56,255,188,217,110,201,131,219,183,228,238,157, 29,121,121,124, 66,242,153, 64, 64, 70,191,163, 86, 46,200, 64, 29, 71,
+187, 51,162, 67,255,198,123,111,203,207, 63,127, 36, 23,151,151,178,177,178,194,108,178,221,237, 74, 71, 51,180, 7,119,110,201,
+195,167,207,229,228,226, 82,157,125,142,207,142, 22,184,190,102,106,111,223,189, 45, 21,205,206,211,126, 87, 29,149,145,102, 7,
+ 45,107, 73, 73,150, 83,114,217, 65,107, 88, 6,124, 56, 34, 49,107,165,164,116,250, 86, 86, 87,107,114,117,213,150, 63,250, 87,
+255, 15,121, 16, 96,115, 55, 52,155,172, 22,213,129,123, 37, 41, 39,187, 82, 46,175,203,239,253,131, 95,149, 71,234,228,225, 36,
+199,154, 53,255,223,127,242, 55,210,110,245,229,157,119,238, 73, 71,127,255,191,251,239,255, 39,121,247,254, 45,117, 88, 7,114,
+161,129,135,151, 12, 52,139,206,129, 30, 39,199, 23, 45, 73, 39,124,249,219,239,254, 88,254,254, 39,159, 57,242, 28,225,113, 35,
+ 31,255,226, 75, 66,224,158, 9,164,156, 47, 73,165, 86, 85,103,148, 86,199,184, 34,231,103, 39,242,242,240, 92,170,221,169,124,
+249,228, 53,217,233, 8, 46, 54,170, 26, 4,120,190,188, 58,189,146,213,178,187,212,105, 13, 12,144,169, 3,237,104, 15,221,188,
+249,158,254,211,239, 95,176, 60,144,212,128,232, 74, 29,246, 91,223,249, 80,118,238,238,200,163,207,158,168,227, 28,177, 52, 2,
+162,217,218,214,109,174, 33,160,248, 84, 38,199,224,234,188,209,147,156, 6, 75, 22,153,124,144,150,250,229, 17,255,190,213,108,
+170, 99, 79,147,164,150, 74,231,230, 25, 31, 74, 42, 23,141,190,220,221,219,146, 42, 28,179, 6, 4,155,187, 85,169,148, 39,188,
+ 87,103,151,109,169,150,115,242,222,251, 31,202, 71, 15, 95,168, 35,238, 72, 38,105,245,188, 28,201,246,214,134, 52, 79,143,228,
+243,135, 95,202,206,222,109,249,198,135,239,209, 81,219,176, 77, 15, 65, 33,178,126,140,177, 69, 90, 12,135,142,192,194,231, 25,
+ 29,178, 54, 79, 88, 93,127, 22,200,143,135,224,101,104,200,122,207,166, 12, 9,135, 94, 90,253,203,116,192,103,193,218, 79, 35,
+ 42,143,241,196,217,198, 80, 86,160,180, 65, 68,136, 39, 62,163,196, 46,181, 56, 75, 92, 52,109,222,102,101, 35,131, 11, 99,194,
+ 38, 17,229,231,153,239, 10, 34,227,194, 35,137, 78,196, 7, 45, 90, 87,157,194, 94,212, 68, 4,145, 18,244,130,246, 21, 23,218,
+152, 39,159,209, 97, 82,126,164,165, 46, 44,113, 39,167,236,211,156, 13, 21, 9,199, 52, 70,190, 12, 16,164, 31,178, 17,103, 25,
+253, 84, 23,120, 52, 26,210,217,131,204, 1,200, 11, 27, 56,251,159, 55, 15, 12,140,196,249,242, 17, 98,145,141, 8,139,217, 72,
+173,124,137,102,183, 76,251,137, 18,192,254,127, 53,150,111, 16,162,153,123, 26, 99,150, 21,104,150, 48,133,165,249,210, 75, 98,
+ 2,118,201,217,216,136,230,175,124, 21, 7, 98, 30,252,120,145,182,189,133,131,182, 17, 88,216, 70,130,158,121, 59, 90,140,214,
+111,174,179,237, 99, 58,146, 81, 56,223,187,214,199, 45, 17,102,121, 44, 68, 49,215, 58,226,231,109, 5, 54, 22,176,152,235, 45,
+140,246,134, 82,177,141,194,207, 33,153,198, 91,230, 28, 92, 39,195,221, 12, 91,219,121,191,251,252,239,244,172,129,176, 3,152,
+ 15, 1, 10,234,118,179,254, 64,176,170, 49,151,187,223,237, 57, 34, 86, 54, 53,111,205,145,165, 18,207, 77,209,140,141,144,210,
+ 36,130,106,152,104,255,135,185,169, 6,100,174,195,250,198, 46, 77, 22, 12, 37,103,103, 60,145,217, 12,234, 25, 87,101, 41, 51,
+143,149,170,110, 4,171, 2, 58,184,222, 96, 34,127,252,167,223,151, 71,143, 30, 74,183,217,160,147,255, 64, 13,242,235,227, 11,
+205,114, 15, 41,224,225,251, 99, 53,174,234,140, 43,171,124,151,227,227, 67,205,198,223,146,214,200,215,224,232,132,153, 62,218,
+160, 62,124,231,129, 20, 75, 5,205,244,247,201,126, 55, 28,200,101,165,209,184,148,245,114,150, 68,183,141,245,154,188,255,224,
+182,124,242,229,151,210,104,247, 36,157, 74,107,144,144,101,134,134,108,108,123,125, 69, 51,252, 99, 57,175, 55,200,122,199,223,
+ 99,191, 18,154, 61,183, 59, 93,217,215, 0, 2,245,211, 86,179, 47,201,246,132,109,111,141, 43,119,102,191,118,127, 83, 78,175,
+ 70,242,248,229,165, 60,216,204, 74,187,121, 41,173,110,160, 65,198, 29,102,173, 72,224,166,154,148, 60,127,245, 82,131,132,177,
+236,221,186, 37,157, 86, 67, 86,239,175,202,202,230,150,156,171,227, 6,249, 13, 33, 78, 95, 51,255,230,235, 35,201,169, 67,204,
+164,211,236,197,175, 31,156,203,211,199,251,146, 72, 3,150, 31,186,204, 80,109, 27,216,234,151, 19,167, 17,255,248,255,248, 11,
+246,184,227,229,225,132, 18, 6,245,233, 44,167,206, 13,135,125,125,246,162,102,191, 99,201,175,228,164, 92, 91,149,166,158,181,
+239,253,240, 99,169, 86,215,244, 44,166,153, 61,119,116, 45, 46,154,154, 89,151,243,132,157,209,181,134,172,117, 99,173, 34,143,
+ 95, 53, 66,144,216, 74, 65,159,173,217, 62,209,191,119, 44,113, 64,249,141, 86, 71,126,248,175,127,164,251, 0,198,126,146,103,
+123,162,255,212,147, 45,135,251,175,185,150,133,124, 94, 42,186,134,189,254, 80,122, 35, 43, 67,181,213,222,160, 47,167,141,103,
+ 46, 16,209,192,225,252,178, 33,117, 93, 88,212,191,141,201,161,139,149, 61,233,112,178,229, 98,142, 78, 53,147,178,122,143, 58,
+242,248,197,144,235,239, 50, 92, 43,159,127,121, 37,187,187,187,122,119, 38,146,205, 23,229,248,188, 33,181, 90, 77, 6, 99,253,
+153,230, 80,142, 14, 78,101,216,214,204, 94,223,111,181,182,226, 38,221,105,144,116,118, 81,151,195,163, 83,185,212,128, 2,240,
+124, 89,159, 19, 65, 94, 90,147,193,130,102,226, 8,250, 70,163,177,107, 75,156,232,119,250,234,192,115,154, 40,234,207, 54,175,
+122,114,107, 43,163, 63,103,228,213,209, 72,131,197,134,174,101,158,201,164,137, 36, 51, 86,150,120, 75,243,254,244,104,139,112,
+ 76,168,126,225,116,130,200, 64,176,232, 52,199,153,173, 15, 34,156, 47, 27, 29,134, 20, 78,117,179,145, 14,167,120,223,235,130,
+ 79, 99,151, 84, 27,109,212,122,216,200,148,204, 37,253,244, 40, 76, 31,229,205,121, 70,226,179, 43,162,101,106,167,219,145, 68,
+ 95, 36,198,222,161,149,197,243, 82, 98,130, 81, 76,202,174, 92, 72, 19,202,154,147,167, 96, 62, 38,174, 33,127,162,255,141, 66,
+ 0,136, 30, 19,212,102, 78, 81,228, 96,230,228,147,252,103, 50,140, 71, 34, 6,202,198,179,141, 32,214,187, 46, 49,102,115,212,
+248,218,232,232, 81, 27,255, 57,187, 60,215,125, 94, 35, 53,241, 61,149,101,131, 25,231, 50, 71, 7,207, 44, 19,186, 36, 54,211,
+122,161,167, 28,155,206,102,174, 15,108,177, 49,118,122,124, 80,130,141,169,163,153,101,233,249,249,204,110,123, 83,157,126,246,
+ 14,161,232,204,172, 46,190, 60,179,219,218,101,152, 40,194,120,143,126, 97, 76,123,220,196,107,229,178, 52,109,196, 46,177,254,
+103,251,224,153,235,227,110,205,114, 79,187,137,197, 87,209,210,198, 60,144, 51, 81,185,152,184, 96, 44, 30,225,244,232, 82, 46,
+207, 26,110,152,199,108,102,248, 92,192,195,211, 12, 38, 37,163,158, 26, 42,205, 50, 54,182, 87,101,123,119,237,218, 56, 95,115,
+ 3,148, 21, 15, 50,204, 66,244,194, 68, 46,230,146,144,208, 87, 49,100, 77,172,151, 63, 74,220, 48, 75,162,137, 38,222, 85, 18,
+ 69,170,230, 80,156,229,216,202,185,154, 94,152, 45,192, 56, 67,134,179,219, 27, 74,179,126, 41,141,179, 11,169,170,147, 41, 21,
+ 75, 84, 84,235,116,122,210, 83, 35, 26,248,174,247,186, 82,174, 74,167,219, 18,171, 78,254,193,131,119,228, 74, 51, 42, 24,126,
+ 60, 87, 95,157,202,189,189,109, 66,173,111, 78,206, 8,209, 6,225, 36,171, 64, 51,197, 82, 78, 51,251,243, 75,169, 85, 74,178,
+177, 90,149, 31,127,242,144, 65, 83, 90,237, 4,122,165,209, 75, 93,200,166,101,119,163, 38, 79, 94,190, 86,199,212, 34,108, 12,
+167,136, 25,217,200,210,240,186,103,154,213,131,209, 14, 39, 11,114, 86, 33, 87, 32,243, 59,175,206, 16,250,223, 63,250,172,163,
+ 89,103, 70, 29,142, 47, 31, 63,111, 73,175, 53,144,245,234, 72, 51,251,156, 60,125,217,213,224,161,197,218,121, 58, 87,212,119,
+ 45,200,169, 58,145, 98,169, 42,173,160, 44,231,175,223,144,189,158, 85, 59,132, 62,245,161, 58, 15,236, 31, 2, 22,124, 63,254,
+147,162,131,240,248,188,200,110, 39, 65,142, 25, 50,251,230,141,165,195,244,244, 89,138,250, 25,200,196,224,164,241,119, 35, 72,
+153, 6,174,131,192, 22, 93,141, 27, 90,241,231,167,231, 82,215,224, 5,136, 72,166, 80, 96, 79,118,253,234, 74,250,189, 62, 97,
+242, 23, 89, 16,213,140,252,240,179,182,252,250,135,219,178,165,129,192,103, 79, 78,232,120, 77,210, 48,120,152,241,184,160,172,
+ 71, 51,173,166,119,164,206, 78, 63,145, 89, 58,187,151,244,189, 70,158,107,209,131, 93, 77,169,189,237, 99,112,141,102,189,105,
+194,215, 67,238, 23,222, 13,106,114,236, 87, 7, 41,109,198,149, 98,189, 59, 65,201, 84,212,178,217, 2, 72, 2,161, 67,238,146,
+211,128,200, 4,146,185,169,239, 50,233,137,245,184, 94, 31,126,240,129,116, 7, 67,146, 17,225, 55,158, 60,219,151, 96,116, 37,
+223,120,247, 3,121,242,217, 39,116,244,253,137,165,254,126, 87, 51,243,164,190, 16,156, 58,191,115,109,157, 8, 17,122,212,193,
+242,135, 14, 59, 8,154, 40, 3, 37,197,215,181,183,148,232,205,166,145, 52,122, 26, 8,245,116,109,167,146, 73,164,229, 47,254,
+242, 71,114,120,240, 82,126,255,247,255,109,249,230, 47,125,192,119,159, 13, 97,185, 94,146, 90,192,129,158,141, 56, 80,107,174,
+ 35,105,145, 17,116, 38, 50, 64, 44, 94, 93, 51,215,147,162, 89,201, 90,174, 11, 65,153,175, 34,194,134, 53, 71,151,211, 4, 17,
+ 62,153, 9,187,176,108,124,100,243, 77, 0,224, 76,147, 37, 6, 83,204, 62,193, 61,116,242,184, 62,148,169, 77, 74, 57,231,200,
+ 41,122,203,195, 94, 70,247, 43, 16,240,128, 99, 47,230,210, 17,118,178, 51, 36, 65, 8, 35,216,185,222,115,192,218, 10,234, 65,
+ 94,120,129, 88,215,130,244, 95,161,200,154,146,241, 34,181,195,101,237,171,101,253,247, 89, 38, 27,165, 22,196,224,145, 37,177,
+172,165,249,237,203, 60,132, 57,195,221,204,154,245, 69,162,131, 18,174,183, 41,221,212,158,102,226,179,201, 67, 41,208,184, 50,
+156, 68,250,186, 35, 99, 55,231, 61,225, 86,226,168,251,162, 53,227, 90, 11,115,116,230,134, 72, 92,241, 40, 70,108,140,210,220,
+100, 62,153,205, 70, 24,251,198,196,213,200, 22, 67, 24, 76, 44,136, 49, 17,249, 81,179,220, 55, 41, 18, 83, 82,138,139,157,216,
+107,226, 67, 49, 50,219,146,196,238, 98,156,168,204, 5, 31,174,105, 26, 24, 19,227,109, 44,184, 19, 16,253, 8,228,236,244, 74,
+ 38,106,196, 16, 53, 67,246, 50,151,207,204,215, 19,231,185,172,217,195,153,102, 7, 48, 66,111, 94,157,232, 57, 68, 77,176,232,
+ 70, 10, 71, 51, 95,179, 68,102,177, 18, 31,210, 18, 27, 77,187, 20,252,197,198,187,154,136,190,129,137,147, 61, 35,229,165,232,
+144, 26,107,151,137,114,222, 53,102,253,172,237, 14,117,108, 55, 99,217,204,207, 51, 12,196,161,174,195, 31,255,159,127, 38,159,
+ 62,121, 42,208, 69, 3,187,184,186, 82,147,231,111,142,212, 25, 76,217, 11,108, 53, 96,119,130, 34, 85, 57, 63, 59,101, 70,244,
+246,123,239,203,241, 69, 67, 51,244, 22,159, 21,114,171,183,119,182,164, 80,200,200,243,253, 3,231, 68,130,128,193,249,122,165,
+ 34,154,126,211,168,227,144,173, 84, 75,242,179, 79, 31, 50, 67,192, 93, 71,240,142,224,106,119,125, 93, 42,154,225,255,228,211,
+207,228,170,213,166, 13,240,194, 30, 99,144,163, 40,107, 74, 61,244,140,254,121,130, 89,118,119, 4,145,150,161, 6, 6, 89,125,
+211,169,212,242, 9, 25,168,145, 31, 34,131,211,140, 9, 26,225,235,111,125, 67, 63,123, 67,146,133, 18,225,224,122,179, 37,117,
+ 13, 98, 90,157,145, 58,159,190, 58,214, 43,249,231,255,222, 63,150,131,147, 35, 61, 78, 62,153,222, 11, 68,199,253, 43, 50,114,
+ 8,222,192, 62,161, 46,142,118,170,124,214,233,171, 63,200,173,202,155,211, 38,237,215, 72,157, 96, 86, 29, 77,187, 63, 33, 90,
+ 9,135, 51, 26, 76,136,254,128, 39, 0,111, 59, 85, 7,181,170,107, 2, 97,152,253,227, 51, 57,189,172,235,179,106,112,163,142,
+184,221,233,104,160,210,231,120,209,218,202, 10, 71,128,154,144,151, 82,206, 4,242,139,135,207,229,131,183,110,107,208,149,145,
+ 82, 33,203, 59,139, 30,246, 36,209,166, 44,185, 2,208,195,199, 48, 25,216, 96,148, 74, 32,164, 52, 13, 66,142, 7,108, 43,136,
+203, 12,146,250, 76,168, 16,188,120,214,141,200, 70, 82,149,207,166,217, 18,135,179,158, 6,210, 2, 46,131,174,115, 54,227, 8,
+183, 94,200,222,166, 86, 15, 90,245,216,114,232, 81,240, 6,117,109,204,155, 71,134,141, 99,134, 32,240,190, 6,122, 64,112,158,
+190, 58,146,170, 6,116,251,111,222,200,197,197, 41, 17,136,102,227, 82,146,217,170,180, 71,129,236, 31,236, 83,177, 14,107, 58,
+214,231, 70,173, 29,223, 3,165, 64,180, 64,102, 52,208, 6,124,223, 1,178,160,123,143,224, 1, 45,124,183, 55,171, 68,127,218,
+186,167,121, 13,126,140, 6, 20,245,203,145,108,110,237, 74, 93,207, 17,214, 99, 4, 30,200, 44,231,182,139,123, 17, 11,178,109,
+228, 46,205,147, 63, 47, 54,166,116,230,135,162,217,110,172, 54,111,108,204,134,199,234,223, 49,187,126,173,118,184,164,177,177,
+228,164,231, 8,113, 50,142, 60, 47,203,128,207,109,255, 66,167, 63, 76,213, 23, 3, 96,230,188,168, 8, 53, 0,240,251,209,113,
+ 93, 70, 26,229,237,108,228,101,119,173, 40,187, 43,249, 80, 26,208, 25, 32, 79, 13,227, 4,103, 7, 12,120,254,119, 33, 54, 67,
+ 41, 69, 40, 47,169,209, 24,104,164,142, 99, 50, 24, 56, 37, 32,136, 6,224,162,215,202, 16, 29,232,201,235,131, 19,141,254,183,
+ 52,146, 46,107,246,148, 9,167, 30, 69,154,135,236, 66,101,199,216, 27,152,128, 17,184,220,204,152,100, 75, 13,233,139, 31,241,
+ 34,180,123, 19,135,172, 99, 53,143, 5,219, 57,214, 30,110, 23,144,104, 20, 94,181, 33, 27, 60,174,231,110, 99,146,159,241, 58,
+121, 20,241, 55,203,177,193, 82, 43,194,117,137,117, 19, 21,127, 89,250, 76, 79,194, 6,228, 57, 20,180,232,127, 95,232,249, 47,
+186, 24,226, 12, 76,115, 3, 35,115, 65, 58,139,214,169, 34,243,190, 34,202,124,215,152,113,115,245, 50,185,137,200, 25,229, 66,
+196, 26, 6,194,183, 90,238,219,151,197, 60,128,197, 16, 4, 19,249,243,197,243,227, 28, 1, 82, 93,219, 92,151,186, 58, 39,100,
+139,179,178, 89, 2,189,186, 26, 80, 22,213,240,194,200, 53,245,239,125,223, 70, 56, 35,145, 0, 99,233, 82,222,164, 3, 49,159,
+133,108,150,186, 50,204,114,171,166, 93,136, 38, 93, 51, 5,178, 52,115,218,196,196, 95, 36,210,142,102,101, 65, 6,196,123,251,
+204, 34,253, 24, 70, 7,131,136, 76,240,203, 39, 47,229,232, 76, 13,171, 73,170, 67, 95,227,251, 94,129, 89,206,150, 52,205, 40,
+199,200, 70, 53,227,171,148,101,208,107,147,108,117,235,246, 93, 57,209, 53,105,181, 91,106,120,135,116,248, 27,235,171,180,150,
+227, 65,155,131, 81, 32,221, 89, 43, 1,178, 46,211,240,247,244,126, 3,133, 1, 44, 11,200, 29,223, 3, 8, 21, 70, 10,246, 96,
+ 71,157, 46,148,194,126,242,217, 67,246,174,103, 56,200,100,241, 14, 78,212,101,241, 6,168,211,227,247, 80, 87,223, 92,169,200,
+ 69, 11,253,235,234,156,240,125,125, 16,168,134,142,201,237, 37,165,117,212,166,242, 91, 75, 51, 96, 32, 5,200,242,178,250, 78,
+104, 93, 68, 6,120,119,103, 91,186,157, 46, 33,249, 32, 92, 39, 86, 59,195, 54, 40, 16,174,124,181,117, 24, 3, 59, 35, 74,165,
+203,101, 41,228,139, 44,209,116, 52,161,129,243,192,122, 33, 51,205,160,158,107, 18,116,170,227,177,207,127,166,117, 77,210,168,
+131,251, 83, 6, 58, 19,205,158,143, 47, 47,228, 84, 51,116,216,221,181,106, 89,182, 43,105,169,135, 50,180,101,180,148,233,207,
+165,147,174, 71, 25, 9,102, 50, 83,144,175,191,187, 37,231,141, 46,161,232,161, 58,218,141,114,214, 57, 86,168,174,233,119,221,
+218, 41, 75, 51, 57, 82, 71, 54, 98, 54,125,118,217, 33, 19, 28, 25,247, 84,215,162,170,129,192, 72, 29,104, 62, 99, 24,188,118,
+213, 57,226,172,151, 10, 73, 6, 32, 40,137,126,237, 94, 77, 62,127,113,166,201, 84,146,237,129,107,149,162,180,100, 36,197,108,
+ 66,127,126,162,193, 80,159, 65, 13,216,243,176,219,216,171,213,114, 78,234,237,174, 58,214,190,238,163,161,182, 0,246,252,214,
+ 70, 85, 51,234,158, 92,234, 57,233,107, 80,119,120,240, 74,131,159, 30,215,113, 56, 77,202,227,163,169,126,127, 93, 26,205, 58,
+207,150, 23,102,209,224, 20, 32,160,198, 21, 25,235, 90,161,214,238,143,172, 52,187, 39,243,249, 56, 40, 1, 15, 70, 9,150,206,
+ 64, 24, 36,207, 32, 88, 12,150, 57, 62, 63,229,218, 83,162,215,134,243,210,131, 96,110, 59,131, 57,243,221,196, 21, 41,237,130,
+224, 59,183, 81,222,178,136,178,157, 75,102, 71, 37,156,226,156, 48,115, 77, 93,194, 68,178,108, 99,150, 6, 77, 89,185, 54, 53,
+ 51, 78,220,137,139,210,152,229,244, 54, 54, 42,197,206,125,129,137,176,230,226,195,187,236, 92,128,134,225, 66,185,148,145, 51,
+141, 16,155,237,145, 84,114,186,152, 26, 57,218, 32,162,193, 99,160, 55,172,135,145, 76, 87,215,166,128, 40,119, 74, 61, 94, 68,
+117, 70, 94, 29,183,168, 26,181,174,135, 25,209,213,120, 98, 53, 75, 40,241, 96,181,122, 99, 6, 2, 3, 61, 36,235,149, 46, 97,
+ 34,202, 30,166,211,142, 69,143,141, 44,230,231, 6,155,253,154, 34,139,103,136,189,224,117, 65,116,207,139, 72, 7, 70,250,237,
+131,185,252,171,137,181,244,137,231,197, 51, 70,107,151,178, 81, 27, 19,244, 88, 16,235, 77,248, 93,203,142,224, 58, 41,202,222,
+160, 79, 16,151,215, 93,160, 6,178,188,161,179,119,136, 72,160,206,160,251,107, 53,116, 27, 33,120,136, 89,192,195,178, 32,217,
+205, 9, 90, 70,150,102,144,219,216,129,189,198,223, 54,209, 97, 37,113, 31,110,151,132, 19, 76, 52,142, 50,203,164,112, 19,231,
+ 53,152,104,163,216, 82, 75,225,146,114, 94,172,247,213, 68,153,228,113,230, 32,206,202, 4, 82,152,225,159, 31, 30, 94,170,145,
+ 26,203,131,251,155, 92, 59,127, 50,150,112, 82, 97, 4, 50,243,174,139,208, 68, 35,238, 37, 2,157,141,114, 41,110,234, 40,187,
+ 6,184, 71, 9,145, 17,114,142, 93, 38,178,219,136, 0, 70, 84,237,104, 86,250, 11,194, 12, 61, 32,175,133,122,228,225,254,249,
+212,212,126, 33,127,244,103,223,147,227,227, 19,169, 22,139,242,246,253,123,242,250, 84,223, 95,179, 88,232,177, 2,197, 8, 8,
+113,231, 53, 43, 26,202,201,201, 51,249,250, 7,111,203,239,254,198, 7, 78,234,148, 89, 89,149,142, 17, 70, 29, 48,254,179,195,
+166,102, 90, 67,117,244, 99,231,168, 52, 43,107,245, 92,246,183, 81,204,202,147,215,175, 9,169, 22, 10,121,214,147,241,244,190,
+ 62,231,253,237, 45, 62,215,167,143,159,168,163, 24,134,164, 91,143, 48,184, 27,169, 9, 81,145, 52,181,188, 17,240,127,248,214,
+ 3,181, 17, 73,117, 18, 3,218,149,124,218,163, 54, 56,136, 92,152,210,245,209,163,215, 92, 27, 56, 62, 24,245,171,171, 43, 73,
+238,237,241,231, 49,132, 37,167, 25,223,253, 91, 27,114,158, 77, 73,181, 84,146,142, 6, 43,207, 94,239,171, 99,203,144,228,135,
+113,170,176, 53, 92,171, 16, 98,198,191, 19, 81,208,181, 1, 89,111, 50,105, 18, 85, 40,169, 51,251,217,231, 47, 37, 97, 33,210,
+226, 18, 23,204, 97,135,235, 64,105, 21,239,142,243,133,236,115, 66, 78,194, 68,202,133, 20, 19, 26,144,210,138,172,179,167, 24,
+ 56,164, 83, 57,185, 85, 72,203,243,243,128,228, 46,236, 95,161,128,122,124, 64,117,180, 82, 54,144, 33,164,109, 33,219,170,159,
+117,103,171,172,239, 91,144, 47,223, 76,229,170, 55,160, 72,203, 89,179,207, 0, 53, 77,101,186, 36, 3, 13,148, 81, 16, 28, 76,
+ 32,192,147, 49,204,222,207,186, 3,214,211,103,195,105, 0,162, 0, 90, 47,171,179,174,104, 48,118,121, 53,210, 44,120, 76,123,
+139, 64,167, 8,117, 54,207,146, 63, 0, 22, 58,202, 12, 8, 10, 81,126, 5,138,113, 92, 31, 49, 80, 73, 39, 52,176, 27, 59,157,
+249, 4,101,113,123, 50,208,224,226,178,121, 37,151,231, 39,115,165, 58, 79,131,180,108,190,172, 1, 10, 36,124,251, 82,211,192,
+ 97, 56,180, 92, 95,212,239,209,206,215,215,207,245, 66,206, 8,214, 30,173,209, 51,233, 89,227, 57, 17, 27,152,123,100,238,126,
+176,232,192,129, 56,142, 21, 39,217, 75,145, 83, 59,165,252, 46,101,203,225,212,141, 44,228,193,131, 69,249,206, 70, 4,160,162,
+109,193,146,136, 50,232,237, 92,155,222, 44,235,151,196,164,190,151, 96,111, 51, 67,165,189, 5, 4, 63,155,186, 23, 44,117,200,
+ 68, 66,129,217,200,242, 27,122,113,111, 16,228,138,232,150, 92,135,175,227, 54,210,218, 88, 2,138, 63, 75, 82,142, 79, 15,205,
+206,206,186,164,245,194, 29, 15, 19, 97,155,148, 99,194,219,233, 76, 62,210, 39,115, 18,211,137, 90, 87,109,201,165,172,148,171,
+ 85, 70,247,136,174,222,191,155, 37, 84, 36,226,178,119, 56, 65, 58,245,142,131,134, 86, 86,170,100,179, 66, 2, 81,164,175, 7,
+197,155, 19,131,208,122,132,199,193,197, 45,104, 96,241,238,123,119, 57,217,200, 70,178, 23,137, 79,115,117, 78, 31,144, 78,119,
+ 20,146,164, 16, 37, 23,121,176, 47, 27,109, 94, 48, 92, 86, 42,133,133,172,253,216,226,205, 6,134,216,185, 78, 87, 12,254,141,
+ 41,199,187, 78,150,185, 60, 35,178, 95,160, 17,254,212, 50,154,191,222,119, 30,201,242,141,189,217,195, 71,235,168,177, 49,171,
+139, 14,129,107,213,218,112, 95,230,168,192, 12, 38,143,138, 7,217,168,115, 55,241,105,105, 75,255,238,130,129, 96, 81,203, 55,
+ 18,147,208,141,176,248, 34,232,145,137,193,193,177, 72,115,185,231,222, 51,215,234, 65, 50,143,138, 35,171,102,151,138, 49, 65,
+ 84, 84,201, 44,101,202,203, 19,240, 12, 13,212,201,209, 57, 21,189, 48, 8,162,113,121,197,121,195,103,103, 87,204,146, 6,172,
+ 1,142,231, 68,207, 40,233, 49,122,245,108,140,109,191, 24, 31, 57, 47,175,124, 69, 59,165, 93,194, 91,108, 76,199, 93, 34,138,
+135, 11,184,221, 70,172,143,177,241,233,108,243,154,251,108,150, 18, 6,121, 16, 61, 11,230,165,175, 39,207, 15, 40,194,242,248,
+241, 51, 57,215, 12,189, 90,174, 74,173,182, 42, 67,117, 92,179,169, 83,147,177, 58,109, 53,196,165, 66, 89, 26,234, 16,155,245,
+ 11,146,141,238,221, 90,147,223,250,246, 30,131,116, 39, 56,227,130, 45,126,143,254,255,225,247,190,144,143, 47,213, 24,171, 83,
+171, 85, 87, 53,112, 71,166, 62,145, 85,189, 95, 31,171,195, 70,175,121,173, 90,209,207,159, 50,176, 71,253,117, 85, 51, 94, 12,
+ 82,249,226,249, 75,214,165,103,211,198,176,222, 57,206, 37,247,232,156,225,196, 71,236,184, 49,108,121, 75, 91, 48,161,199, 68,
+ 5, 82, 89,205, 56, 53, 99,214, 28, 89,218,221,138, 38, 6, 85, 89, 79,128, 84,149,165, 3,235,214, 52,211,108,181,228, 92,179,
+193,157,205, 77,121,247,222, 30,245,222, 3,117, 72,232, 61, 7,108,158,201, 58,238, 14, 50,233, 97,167, 67, 50,111, 6,117,117,
+223,159,151, 89,224,232, 81, 18, 68,224, 1,136, 28, 89,255,154, 62,255,173,141, 18,107,251,147,238,132,157, 61,201, 80,194,213,
+ 17,251,140,244,122,158, 58,168, 49,207, 22, 68,117, 96,131, 64,246,202,100, 74,180,113,105,253,249,149, 66, 65, 14,235,125,117,
+180,250, 62, 24, 40,131,245,165,188,106,142,182, 13,236,254, 15,238,108,144,217,141,117, 67,246, 89,111, 13,229,183,190,117,135,
+173,127, 54, 72,211,153,161,167,254,229, 81, 75,159,213,147,247,238,174,202,197, 85, 31, 85,125,126,111, 70,207,120, 49,151, 36,
+162,241,214,173,117,221,219, 33,133, 97,214, 52, 48,232, 14, 38,106, 19, 39,234,200,147,178,181, 86,144,251,187, 85,253,255, 99,
+182,206,109,212,114,186,230, 26,188,233,223,109,106,208,244,233,147, 83,233,168,253,196,249, 27,163,182,238,163, 78,142,251, 63,
+ 17,200,229,239,172, 87,100,107, 37, 47,141,246, 64,206, 53, 56, 56,175,159,200,229,133,115,232,197, 98, 69, 10,229, 85,138, 82,
+189, 57,120,163,201,153,238,115, 54,199,247,233,246,251, 92, 51, 48,243,193, 95, 24,105,166, 63,183,141, 28, 32,102, 41, 68, 4,
+255, 0, 84,103, 74,197,188,137,158, 85, 39,126, 4,219, 10,149, 63,182,102, 2,157, 10,249, 92,174,191, 61, 96,201,129, 78,210,
+206, 38, 47, 46, 4,195,108, 68,105,110, 89,179,197, 68,101, 89,151,134,112,153,101,141, 50,123,179, 84,201, 44,177,192,140, 9,
+ 4,150,253,254,128,207,214,235,247,216, 98, 24,229, 90, 73, 4,161, 69,201,105,166, 8, 40,255, 38,146,247, 13,237,179,215,219,
+ 97,227,227,144, 77, 68, 78, 22,170,130, 73,212, 97, 32, 48,144, 73,134,230,205,247,195,204,192,202, 68,100,222,175,158,152, 15,
+ 58, 8,248,119, 38,153,209, 72,207,145,118, 16, 49,115,132, 95,164, 9, 30, 27,131,200, 24,181,120,252, 46,184, 61,254, 36,152,
+ 59, 13,141,229, 66, 38,159, 97,180,235, 50, 18, 97,205,205,255,226,181,172,212,202,161, 66,147,157,219,120, 60, 52, 46, 66,161,
+144,149,170, 30,224, 94,111, 36, 31,127,242,132,198,168, 84,204, 73,123,165, 36, 37, 61,188, 47, 95,189,145,221,237, 13, 13, 36,
+ 42,252,187,145,126,175, 31,140,213,184,229,231, 78,177,209, 2,115, 53, 29,155,252, 53,159,108,108,100, 62,187,152, 65, 1, 24,
+255,250,189,111,246,207,248,207,189,221,117,214,126,174,244, 18,238,238,110, 92,203,212, 61,207,187, 94, 20,191, 73, 14,112, 57,
+221, 91,154, 29, 30,223,228,136, 35,138,212, 91,230, 26,238,198,196,148,222, 22,162, 48,209, 78, 3,123, 13, 82,166,254,183,137,
+215,200,109,108,200,205, 12,246,241, 98,179, 90,237,117,149,246,165,122,184,137,207,152,183,209, 49,179,230, 90,196, 26,109,233,
+178,177,126, 56,187,120,159,249,120, 71,135,184, 12,251, 26,208, 13,134, 33,184, 97, 72, 92,122,243,234,136,151, 45,229,121,172,
+229, 13,250,221, 57, 28, 15, 24,182,167,153,205,106,173, 60,215, 74,158,243, 48, 99,188,135,136, 54,194, 87, 92,236, 88,184,108,
+227, 64,203,140,193, 62, 47,202,216, 56,226,190,220,105, 97, 77,176,136,180,131,120, 27,205,140,179,130,255,114, 88,137, 56,130,
+209,195, 47, 94,201, 95,252,229, 95,209, 65,109,109,108,170,129,173,168,115,186,160,163, 69,102, 28, 76,135,204,142, 83,233,146,
+ 52,175,154,210,106, 54,100,173,182, 34,169, 66,133,181,223, 94,111,151,243, 40,152,113, 37,146,132,223,103,181, 21,100,176,198,
+142,229,131,187,123,242,100, 31,243,201, 83,122, 87, 10,242,209,151, 79,244,119, 47,245,142,149, 92,150,167,107,140,250,244,214,
+ 90,141, 80,244,195, 39, 79,195, 81,166, 1,101,102,103,193, 14,209, 82,100,185, 9,103, 63, 60, 23, 33, 19,198,165, 77,161,212,
+168, 39, 95,187,183, 41, 95, 30,156,202,183,191,118, 79, 63, 63, 39,223,255,236,204,177,176,245,247, 71,106,107,122, 26,188,245,
+212, 25, 6,158, 35,223, 66,222,182,221,106, 19,166,237, 7,125,238,111,210, 75,209,217, 57,200,124, 68, 2,159,155, 69,238,130,
+ 12, 40,148,161, 65, 2, 83,221,144, 73, 6,234,116,142,142, 79,165,152,201,104, 80, 88,146, 21, 13,122,250,227,134, 35, 90,134,
+ 89, 97,187, 59,228, 89, 32, 89, 48, 28, 90,130,145,177, 83, 13, 10,234,245,186,220,217,203,200,174, 6, 25,200,172, 91,157,150,
+ 36,130,145,180,122,122, 68,211, 5,126,191,193,124,248,222, 80, 51,218,156, 62,127, 87,142, 27, 85,169,104, 0,243,230,164, 37,
+133,188,218, 25,117, 82,251,167, 29,253,124, 13,124,244, 59,161,174,214, 84,219,210,104, 15, 89, 55,175,150,178, 92,203, 11,205,
+146, 87,139, 89, 25,107, 16, 84, 31,234,154,121,104,241,243,213, 97,231,104,111,223, 92,116, 49, 99, 78,214, 42,154,161,183, 6,
+242,247,159, 28,200,157,237,138,180,159, 57,254,196,116,236,179, 92, 83,215, 64,102,165,148,145,141,181, 34,187, 2,224,106, 90,
+250,157,248,140,132, 9, 97,110,193,216,211,145,188, 26, 5, 82,173, 84,229,217,203,215,154,209,183,184,207,168,247, 23,242, 21,
+ 78,163,171, 55,142, 72,116, 76,168, 63, 64,189,189,221, 13, 8,183,131,244,135,117,131, 32, 17,157,177,103, 40, 49,140,254,250,
+188, 56,228, 41,109, 50, 76,164,240,153, 54, 28, 55, 59,147, 14, 54, 38, 19,202,123, 11, 17, 6, 44,253,196, 15,141, 3,248, 9,
+ 72, 70,141, 89, 86,145,186, 65,109,244,122,255,184, 93,146,211,142,106,139, 88,185, 46, 50, 54, 23,214,178, 11,210,242,120, 58,
+150,166,158,189, 11, 77, 32, 39, 67,180,237,233,254,106,160,100, 82, 94, 88, 34, 8,207,190,174,249,160, 61,145, 91,187, 80,231,
+ 75, 44,148, 73,151, 9, 97, 95, 49, 70,219, 44, 32,233, 24,146, 96, 35, 8,243, 66, 11,211, 77,212, 75,146, 69, 8,199,165, 70,
+ 96,181, 48, 91, 35, 7,167,121,179,246,163, 80,180,127,160,155,125, 53,156,146,144, 4, 77,104,127,234, 50, 92, 59, 93,140,200,
+244, 28,180,207,205, 27,170,131,134, 11,199,160, 0,177, 11,162, 83, 16,146,123, 76,224,241, 34, 98,193,209, 82, 1, 65, 6,140,
+ 49, 68,187, 7,140,175,120,222, 66,211, 61,180,243,120,174,131,195, 58,165, 63, 69, 47,207,152, 98, 6,206, 48,224,127,199,103,
+ 77,194, 73,155, 27,129,164,244, 57, 33,190,240,230,240,146,178,137,189,242,132, 53, 36,212,165, 90,122,235,218,173, 69,160, 48,
+229,164, 35,111,238,192, 65,176,218, 85,231, 61,251,238, 47, 63,127, 45, 47, 94, 30,235, 5, 94,147,195,163, 11,110, 44, 38, 48,
+237,239,159,204,197, 83,102, 9,214,157, 59,155,140,134,173,253,138, 30,242,101, 6,121,204,129,199,137,102,209, 49,171, 86,162,
+195, 1, 34,172,121,107,150,209,245, 5, 49, 46, 50, 45,205, 44, 53,137, 71,107, 58,241, 32, 99, 73,162, 48,142,105,197, 53,203,
+163,242, 66, 81, 65,249, 88,155, 98,156,133, 31,111, 2, 95,234,255, 51, 86,110, 84,223,181, 38,142,232,163,183,117,228, 84,204,
+102, 45,148, 48,238,109,205, 72,179,154,217,193, 24, 94, 92,180,113, 56,217,142, 53,251,138, 78, 71,157,188,217,226,223,207, 32,
+192,248,140,244,133, 94, 66,172,197,208, 46, 41,199, 68,200, 53,177,234, 66, 76, 98,121, 25,159,183,145, 14,151,133,212,165,157,
+149,136,194,139,106,194,126,243,152, 30, 65,128,250,243, 84,157,249, 51, 57, 57,189,144,163,195, 55, 82, 81, 99, 91, 2, 81, 75,
+ 13,106, 71,207, 60, 51,109,102, 48,122, 71,211, 89,174, 73,171,221, 97,182,190,183,183, 45, 94, 42,203,172,116,111, 67,239,238,
+196,245, 33,227, 63,147,209,104,142,104, 97, 13, 49, 3,252,238,102,153,179,210,247, 53, 43, 71, 6,254,217,243, 19,117, 50,112,
+ 66, 89, 6, 23, 56,242,128,209,119,214,215,104,116, 31, 61,127, 65, 29,113,102, 35,129, 11, 66,238,108,109,145,241,254,226,224,
+ 80,239, 67,154,164,169, 76, 90,157,103, 54,199, 80, 29, 78, 21,159, 3,118,253, 84, 51, 84,192,198,119,182, 87,137,178,129, 16,
+ 6,152, 61,233, 37,169,130,214,133,238,248,196,169,150, 65,146, 54,151,201,242,110,172,104,128,145, 83, 67,250, 98,255,141, 52,
+219, 93,218, 30, 40,227, 5,190,204,225,208, 22,246, 92,255,137, 30,121,172,175, 38,142,180, 73,198, 58, 49, 23,100,137,245, 86,
+ 75,157, 99, 81,166,186,102, 59,171, 85,121,125,222, 33, 76, 12, 18, 26, 83,144,233, 98, 56, 10,178,180,209,176, 43, 9,235,166,
+194, 65, 28, 6, 12,116, 56,183, 98,118,160,129, 38, 52,242, 53, 99, 50,110,130, 26,130, 25,172, 21,100,110,119,213,200, 62, 59,
+184,148,111,222,171, 49, 1, 41,229,211, 18,232,239, 23,192, 91,208,164,163,217, 25,177, 29, 16,240,254,230,138,218,194,113, 64,
+231, 95,201,123,146,212,239,235,168, 93, 76, 38, 29,123,124,164,142,229,170,163, 25,241, 8,202,125, 9,118, 50,116,193, 38,199,
+224, 26, 61, 83, 95,236, 55,100,167,173, 1,130,254, 15, 89,120, 83,207, 2, 84,230, 14, 47, 59,236, 3,207,235,222, 64,244,165,
+ 55, 30,206,135,189,120, 33, 50,130,217,246, 40,131,100,114, 5, 77,146,158,179,125, 15,237,136,107,107, 91, 84,166, 67,231,194,
+101,189,193,150, 61,160, 30,224, 85, 36, 67,153, 91,236, 39, 80,147,182,218,113,148,120,136,116,192, 17,250, 78, 17,175,233,185,
+121,240,213,162, 37,153,111, 26,254, 57,124, 6, 2, 74, 55,212,197, 13,214,113, 53,119, 87,122, 2, 97,251,214,206,102, 56, 98,
+ 54, 8,199,192, 46, 74,122,179, 65, 84,179, 33, 86, 51,231, 53, 75, 52,231, 29, 72,102,121,126, 72, 4,142, 23,179,108,222, 34,
+253,231,139,174,166,114, 33, 39,181,138, 38, 7,114, 32,195, 30, 74, 8,105,185,255,246,186,120,153, 68, 12,145,156, 14,244,172,
+ 52,204,124,178, 96,156,214,228,197,179,241,175,152,129,229,236,166, 23,111, 83,142,149, 48,163, 19,221,146,146, 44,105,228,119,
+120, 12, 69,162,156,100, 43, 9, 70,204, 94, 56,228,221, 80,153,202,103, 36,133,218, 14, 46, 47, 34,116,168, 21,169, 55,149, 96,
+ 62,143, 62,136, 25,108, 63, 28,223, 10,120, 15, 3, 24,178,186,113, 9, 73,196,134,116,204,106,154,190,239,218, 71,112, 88, 61,
+ 31,117,170, 73,136, 10, 24, 58,105, 28, 20, 64, 78,184,124,136, 41,201, 4, 69,180,169,135,170, 92,192,208,137, 36,167, 29,129,
+252,210,214, 15, 47,228, 51,100,168,226,123,241,243,104,187,192,112,134,164, 30,212,171,102, 75,186,250,119, 38,156,116, 4,209,
+ 7, 9,167, 23, 5, 24,146,128, 72, 74, 13, 11, 32,200,179,211, 62,163,236, 74, 21, 36,154,161,156, 93, 92, 73, 38,159,119, 4,
+ 64, 72, 98,226, 50, 99,157,208, 74, 21,238, 0, 2, 73, 7, 37,249,132, 91,102, 48,137, 49, 54, 62,131,126,169, 14,111, 99, 83,
+190,162,179, 89,162,117,123,115, 3,106, 51,107,217, 88,130,215, 99, 78,202,139, 8,230,132,115,205,163,196, 63,137, 79,157,155,
+205,142,191, 62,113,111,137,146,191, 16,100,143,212,200,189,120,176, 98,150,116,240,231,173,117,161, 80,195,108, 30,180, 93,240,
+ 84,162,164,194,216,168,193,144,240,226, 25,215,145,129, 78,139,148,103,231,147,155,156, 83, 82,227,138,218, 33, 38,114,105,180,
+127,113,126, 37,107,171,121, 55,231, 58,194, 52,197, 30,225,115,231,170,136, 54, 26,180,196,251,216,237,141, 19,219,100,105,220,
+128,141, 13, 9,138, 50,219,163,226, 23,179, 79,247,162,159, 28,138,105,152,104,177, 62,116,238,214,193, 11,116,146,208, 34, 7,
+ 67,253,103, 31, 61,148,159,127,250, 80,110,109,238,200,238,246,174,212,213, 97,157,212,207, 93,221, 24, 78, 82,215,160, 84, 40,
+114,208, 72, 11,164,175, 97, 79,214,107, 53, 18,191, 14,224,160,213,224,130,217,140,207, 4, 9,118, 20, 6,245, 51, 36, 12, 66,
+ 46,165,156,102,126,131,169, 60, 63, 56,146,213,106,133,217, 58,140,109, 49,235,132, 99, 16, 60, 32, 8,222, 89, 91,165,163,126,
+166, 14,213,132, 58,243,128,215,177, 71,187, 27,107,250,187,101,190, 41, 2, 92,160,121, 62,121, 57,152,149,221,155,215, 91, 55,
+106, 43, 36, 98, 5,182, 68,155,241,246,222, 6,137,120,245,171,190,164, 0,221,103, 83,250,239, 45,169,149, 80, 90, 25,202, 85,
+171, 67,187,130, 47,172,228,112,158, 82,114, 54,246,216,206,133,255,160,141, 44,151,118,210,176, 25,116,224, 36,167,180, 79,176,
+ 15,248,254,137,239,132, 78, 0,189, 99,248, 12,178,125,200,145, 54,244, 59,240,187,128,234, 43, 26, 40,108,215, 50, 20,186,169,
+234,207,116,200, 14, 31,145, 92,134,179,155,162, 67,117, 83,209,192,224,135, 6,124, 38, 93,228,188,242, 46, 62,123,224, 70,157,
+ 14,135, 30, 33,102, 12, 96,153,248,234,184,141,144, 83, 80,211,172,174,170,206,112,162,217,118, 91, 19, 31, 40,206, 13, 53, 83,
+ 78,123, 83, 14,177,153,176,164,153,166, 29,201,167, 60,182,117, 53,219, 99,217,168,130,252,168,118,105,106,136,178,160, 20, 74,
+ 2,153, 26,158,157,181,138, 62,107, 74, 51,244,190,116,212,137,239,109,175, 72, 94, 3,134, 87, 7,199,114,222,236, 73, 95,179,
+200, 84, 42, 47,109, 13,112, 11,105, 67,153,215,147, 78, 67,159,219, 99,128,135,214,102,188, 23,190, 23, 76,169,141,173, 93,182,
+141,189,126,253,132,115,233, 49,122,182, 88, 40,107, 32,162, 1,207,209, 1, 5,140,128,222, 32,241, 66, 57, 5, 78, 23,237,135,
+ 8,188,160,104, 87,212,239,232,170,221, 30,235, 58,244, 56,194, 86,120, 15,189, 16,210,197,253, 69,217,204,141,142,245, 67,219,
+144, 96,112,226, 38,215, 25,126, 46,246, 3, 35, 70, 49,187, 30,147,252,170,229, 82, 56, 84,199,196,245, 60,108,180, 76,182,140,
+140,218, 56, 44, 62,211,136,240, 34, 51, 38,196, 92,235,242,137,183,176, 93,103, 64, 1, 69, 67,160, 13, 73,219,177, 63,224,119,
+ 32,209,139, 14,186, 68,187,163,111, 37, 54, 20,202, 26,185, 38, 45,123, 61,113,139,203,138,155,136,210,231,204,118,219,144,115,
+179,144, 4,119,118, 46,137, 26, 5, 28, 39,160,202,122, 87,163,201,222,148, 15,139,195,132,108,252,180, 53,224, 2,239,213, 52,
+170,204,185,105, 77, 57,195, 95,116, 99, 90, 77, 98,193,250, 54,174,141,173,169,145,117,103,132,133, 79,242, 48,128,132,129, 77,
+152, 43,252,132,227, 90, 73,138,163,244,104, 64, 53,176,171, 0, 6, 24, 25, 54,106, 71, 73, 14, 56,240,209,247, 30,104,164,222,
+109,169, 99,206,169, 65,209,131,151, 79, 16,170, 9,104,240,220, 48,129, 92, 6, 44,205, 62, 47,212,202, 74, 73, 51,148,190,252,
+232, 71,159,234,101, 55,178,154, 25,139,237,118,121,121, 74,217, 42, 73, 47, 12, 62,188, 41, 15, 11,140, 78, 74, 35,247,156, 23,
+112,113,187,250, 59,117,189, 56,152, 46,212,105,117, 24, 85,110,174,151,216,122, 35,120,127, 24,169,108,130,151,192, 70,216,249,
+ 35, 64,253, 54,203,236, 4,181, 92,108,120, 10,253, 45,179,177,174,193,178,195, 8, 35,174,104,155, 89,180, 94, 30,137, 44,151,
+199,180,152,200,140,117, 27,149, 34, 53,179,129,229,241, 62,250,184, 92,161,137,147,222, 98,114,175, 75,125,250, 17,146,198, 53,
+216,202, 46, 8, 32,174, 47,221,198, 52,254,231,239, 97,231,183, 96,161,232, 52,155,137,104,163, 35,225, 76, 76,109, 47,170,246,
+196, 72, 94, 29, 8, 50,244, 55,175, 14, 53,168,107,176, 46,135, 31, 69,107, 27,158, 14,181, 91, 33, 12,143, 22,174, 33, 51, 54,
+150, 23,172, 27,179,137, 79, 29,170,225,126,244,233, 99, 70, 17,247,238,223,161,168, 71,194,187, 89,143,125, 62,177,205, 68,155,
+210,110,170,183,153,249,197,154, 59, 99,179,188,110, 54,146,224,219, 88,171, 5,156, 67, 32,145,187, 49,107, 19, 13,107,220,205,
+ 78, 79,158, 60,127, 41,159, 62,124, 44,199,199,199,178,171, 14, 29,242,173, 29,214, 44, 7,100, 27,131, 89,140, 59,153, 77, 57,
+ 81,143, 78,175, 43,211,209, 64, 29,250,170, 12,245,221,143, 47,206, 28, 3, 28,189,205, 24, 32,130,222, 99,127, 26, 27, 12, 49,
+ 11,206,159, 31,157,203, 90, 70,239,161, 58,198, 95, 60,217,159,171,126, 1, 22,245,195, 64, 21,164,184,102,167, 35, 47, 15,143,
+233,224,209,174,138,146, 21,248, 11,123,234,208, 79, 46,234, 82,111, 94, 81, 49, 14,246, 3, 91,191,161,193, 5, 2,117,100,197,
+200, 6,161,124, 7,225, 20,216, 16, 4,238, 80,115, 91,173, 22,244,121,125, 57, 62,221,151,237,245,138,102,178, 5,121,245,226,
+133,124,231,195,119, 53,243,235,201,243, 55, 66, 70,246,101,179, 33,159,126, 94,167,125,185,119,255,125, 89,201,170,179,242,198,
+242,224,237,175,201,163, 47, 31, 75,255,234, 74,126,247,183,127,147,109, 89,135,103,167,210,235,245,249,238,232,101, 95,175, 85,
+244,121,179,234,252,211, 52,131,231,234,208, 97, 27, 32,136,130,254,122,100,154,191,241,222,134,124,242,234, 74,179, 94,203,174,
+129,158, 6, 1,190,113,228,193, 2,230,126, 87,179,225,190, 99,109,175,228,155,171,101,169,106, 0, 4,100,228,249,171, 14,231,
+157, 55, 7, 19,202,203,118,244, 25, 18, 26, 16,109,175,100,168,176,246,245,183, 54,228,238, 78,133,109,119,191,241,205, 93,217,
+ 63,186,144,239,253,252,137,124,253,222,170,148,179,129,124,231,151,238,145,117,127, 82,239,200,211,215,151,212,139, 71,208,243,
+238,253, 85, 25,232,239,163,190, 14,221,253,163,147, 75,217,219, 44, 72,123, 96,101,165,130,224, 36,173,207,150, 32, 28,127,217,
+ 26, 49, 16,217,212,231,220,168,100,229,214, 70, 69,250,186,221,159,191,106,200, 84, 29,251,118, 45, 39, 67, 77,204, 32, 34,100,
+ 36, 35, 71,141,126, 56,124, 39, 45,165,202, 26, 75, 54,151, 23,167, 60,147,153,108,145,100, 56,112, 9, 94,237,191, 34,191, 1,
+234,121,216, 87,236,183,245, 32,239,154,100, 80,131,172, 26,189,242,176,195,255,228,155, 59,178,165,207,245,175,126,112, 32,125,
+ 13, 36,209,222,136,191, 7, 90,179,185,190,206,128,174,213,109, 59,114,151,254,126,150, 2, 71, 62, 81, 17, 12,216, 41,106,112,
+ 74, 93,129, 96,192,231, 40,151,215, 92, 11, 94, 52,129,177,145,182,228,136, 32,215,141,202,152, 75, 35,148,237,172, 76,102, 22,
+ 9,137, 89,230, 16,221, 84, 90,156,143,165,118,115,239,173,254,111,164,107, 25,181,143, 51,155, 26, 83, 3,137,240,111,230, 45,
+171,198,196,135,141,155, 40,243,254, 26, 22, 26,231,108,217,229, 18,160,243, 49,201,110,187, 69, 66, 67,171,171, 81, 80, 33,173,
+ 14,121, 76,226, 74, 90, 55,106,165, 82,100,212,152,176,110,228, 34,234, 61,200, 76, 17,229,181, 39, 14,158,247, 18, 83,126,102,
+127,236,115,193,203,185, 20, 51, 88, 68,126, 40, 74,225,128,193, 88, 4, 97, 61,221, 70, 12, 29,231, 3, 39, 92,127,229,192, 79,
+ 75, 54,167,145,125, 94, 55, 82, 55, 61, 16,167, 94,149,148,137, 60,184,157,144,195,195,177, 28,235, 51,230, 52,170, 46,151,146,
+ 46, 3,245, 22,132, 57,212, 83, 81, 34, 0,204,212,239, 97,154, 84, 94,146,128, 94,213,127,107, 12,202,140, 4,181,156, 85, 76,
+ 57,210,200,113,140, 58,157, 26,190,188,102, 2, 65, 10, 4, 24, 95, 90,228, 23, 36, 57,241,139, 65, 75, 98, 33,224, 2,227, 90,
+ 72, 25,102, 56, 45,189,172,122,183,164,168, 23, 8, 63, 59, 82,231,130,127, 71,112,132,136, 21,204,235,179,243, 22,219, 68,138,
+124,127,145,180, 30,130, 74, 49,171,193, 67, 33, 60,152, 54,174,148,182,172, 77,234, 69,218, 35, 66,104,214, 46, 59,244,136, 3,
+193, 72,193,216, 28, 99, 49,145,233,236,230,186,182,254,204,127, 90, 23, 28,129,108,152, 43,100,221,140,223,101,213,178, 25, 33,
+ 46,114,250, 2,187,136,120,249, 28,190,107, 29,138, 77, 34, 9,159, 25,107,130, 0,142,117,236, 16, 70,138, 30,220, 40,211, 61,
+ 58,211,216, 70,234,212, 80, 43, 59, 57,185,160, 3, 65,205, 54,160,131,242, 73,178, 4,137,169,223,159,178, 23, 55, 5,102,103,
+ 56, 14, 50, 8,131,142,217,229, 66,143, 46,249, 29, 28,228,224,203,203, 23,175,249, 93,119,238,221,162, 54, 54,201,148, 54,218,
+194, 98,227,115,237,162,206,120,121,152, 66,164, 7,214, 70,144, 25,187,204,137,159, 5, 65, 17, 45,129, 5, 68, 24,132,235,230,
+ 70, 90,162,230, 60, 30,141,229,203,167,251,242,127,253,233, 95,145,140,115,231,214,109, 42,154, 61,126,245,134,140,117, 8,167,
+248,193,100, 78,242, 4,196, 10, 78, 1,132, 74, 42,149,178,116, 71, 35,194,215,236, 81,214,115,143,225, 37, 24,255,137,223, 75,
+167, 18,139,185, 13,225, 90, 1,246,188,191,187, 33, 91,234,152,255,199,255,237, 47,233,120, 65,102, 66, 16,128, 44, 30,251,243,
+206,222,174,156,104,118, 10, 7, 57,101,109,221,213, 10, 1,151, 3,210,197, 20, 46, 50,158,189,188, 58,161,161,203, 2,209,127,
+238, 37,230,229, 46, 87, 94, 8,244, 51, 46, 25, 0,151,242, 21, 6,255, 84, 86,227, 40, 78, 95, 30, 61,254, 92,126,235, 55,255,
+ 45,102,170, 7, 71,135, 82, 93, 89, 35,225,113, 74,190,132, 6, 51,186,159,121, 93,139,149, 86,131, 14,245,241,227,231,178, 59,
+184, 79,134, 58,116,201, 49,206, 19, 25,123,202, 75, 73,185, 80, 98, 16, 4,196,227,224,164,206, 41,107, 91,186,231,174,190,111,
+152, 89,163, 55,189,144, 44,176,198,125,222,158,200,239,124,109, 93,254,135,255,247,139, 80,218,214,184,102, 39, 12, 34, 25, 91,
+ 14,168, 73, 37, 72, 50,114, 25,219,212,113, 25,128,132, 96,178, 92, 90,239, 67, 38, 83,228,160, 98, 4, 69, 96,202,111,130,116,
+214,156,104,182, 61,146, 67,175, 35,207, 14, 91,242, 23, 63,121,193,132,101,160,153,250, 71,159,237,171,237, 12,228,211,151,117,
+121,239,254, 45,217, 88,201,169,131,180,242,247,159,190,228,204,250,131,243, 54,137,111,245,206, 88, 78,207,235, 44, 51, 54, 58,
+ 35,194,218, 15,159, 31,202,222,214,170,126,247, 88,186, 3,159,123,182,183, 81,166,227,218,191,232,203, 71, 47,234, 68, 88, 1,
+247,247,134,174,134,142,123,254,232,176,173, 54, 47,193, 18, 65,181, 88, 85,251, 90,150,102,253, 76,154, 26,120,161,204,128,131,
+177, 94,168,134, 78,249, 76,223, 41, 67,210, 51,126,121,200, 44,213,205, 1, 65, 89, 19,182,113, 66,229,184,130, 6, 74, 61,185,
+236,106, 50,165,123,250,254,253,187,114,126,121, 41,221, 78,147,172,250, 15,223,185, 39,111,221,127, 79, 3,166,190, 6, 64, 3,
+153, 0,138, 71, 25, 73,239,228,149,238, 37,208,215,245,218, 29,217,220,218, 97,208,138, 63, 67,208,250,107,191,242, 77, 58,127,
+172,115,172,220, 53,183,151,222,156, 16,103, 77, 92, 33,222,218, 40,207,103, 73,206, 91,188, 88,223,185, 89, 78,104,110, 84,238,
+116, 63,131,210, 75, 64, 50,104, 58, 14,154,135,207,224,134,198, 44, 79,151, 52, 95, 49, 10, 34, 62,161,211, 68, 71,110,135,195,
+ 79,230, 36,250,104,146, 16,101,201,227,153, 96,224,144,185,130,200,129,168,181,168, 17,166, 7, 21, 31,245,134,165,148, 71,225,
+127,102,194,186,235, 32, 70,192,201, 79,130,132,188,185,104,211, 72,230, 52, 66,174,170,243,111,247, 28,252,133,190,210,205,149,
+ 34, 97, 22, 76, 43,202,231, 51,172,223, 64,249, 41, 74, 67,162,208,133,157,240,114,183, 90,122,217, 2,143, 4, 17,252,103,152,
+157,208,112, 99, 46,242,175,189,149,146,149, 53, 79, 15,210,170, 84, 14,166,242,250, 74, 23, 80,163, 95,182,165,232,101,177,225,
+ 32, 26,147,208, 40,218,104,180, 14, 88,214,128,121, 26,112,226, 79, 73,131, 0, 61,227,146, 72,229,245, 82,143,101,191, 49, 36,
+188, 83,215,239, 68, 0,240,222,158,102, 6,122,209, 59,163, 64, 6,234,233,135,212,120, 54, 52, 30, 24,161,136, 90, 25,135, 48,
+162,198, 7,134, 99,209,177, 24, 47, 59, 67,205, 2,146,252,110, 12,159,152,228,146,236,231, 5,145,103,255,211,231, 78,205, 73,
+ 15,103, 67,179,125,212,153,238,173,166,169,211,219,186,210, 0, 67, 63, 16,151, 46,157,116, 61,213,211, 32, 8,245, 84,220, 65,
+ 75,120,238,112, 78,125,103,224, 89,254, 72, 37,231, 92, 9, 39,141,234, 28, 20, 29,156, 56, 70, 47,202, 5,126, 96,230,228, 70,
+182, 28, 34,114, 11,191, 39, 42,129, 56,107,237, 2,148,138,118, 25, 64, 97,133, 98,142,234,129, 32,202,112,156,169, 15,195,149,
+ 8,201, 78,193, 28,234, 70,182,229,121, 94,132, 17,238,218,253, 90,189, 17,191,143,229,155,192,213,133, 29,193,203, 25,254, 57,
+194,111, 28,151,194,134,159, 51,239,200,243, 28, 3,219, 51,241,161, 56, 36,109,194,224,234,122, 90,244, 14,123,102,254, 60, 40,
+ 7, 65,148, 98, 38,208, 80, 43,166,165,161, 78,110,224, 59,193,149,153,178,214,236,217,177,166,181, 74,142, 89, 1,107,191, 32,
+207, 53, 26, 50, 80, 35,150, 47, 21, 25,152,205,222, 55,166,128,103,221,243,217,144,137,238,234,128, 94,184, 22, 11,236, 44,176,
+193, 82,123, 74, 68, 99, 62,176,225,251, 58,226,207,156,126, 16,216,249,122,216,240, 44,160,142,253,147,143, 31,202,207, 62,250,
+ 5,201,163,169,116, 65, 86,107,235,108, 9, 5,148,156,240,156, 2, 25, 36, 95,177, 71, 35, 14, 65,113, 72, 18,222, 19,173, 97,
+ 29, 4, 5,250, 57,112, 86,248,157, 77,205,148,241, 44,109, 61,199, 18, 50,223, 57,202, 50,132,237,112,214,144,169, 65, 16,228,
+201,211, 23, 52, 21,172, 79, 19,114, 78,146,189,190,187,190, 42,231,186, 94,205,171, 54,127, 30, 1, 2, 69, 93,134, 67,190, 27,
+ 32,237,102,187, 61, 47, 33,160,150, 60, 0,140,170,207,218,247,134,116,128, 56,223, 65,216,166,135,191, 7,241,110, 50,117, 1,
+ 13,222,107, 69, 3,114, 4,219, 9,111,196,103, 67,191,116, 91, 13, 59, 68, 72,132,103,222,104,162, 49,226, 72, 82,220,131,118,
+187,231,186,103,198, 19,102,167, 57,117, 42,157, 94, 71, 94,189,126, 35,247,238,190, 69,113, 26, 32,121,157, 30, 90,251,178, 12,
+246, 97,107,208, 18, 88,171,150, 88, 43, 6,227, 59,229, 57, 43, 12, 2, 90,189,111, 24,248,127,251, 94, 89,126,248,184,161, 1,
+121,129, 48,244, 88,127, 46, 0, 83, 91,223,161, 6, 54, 59, 50,226,112,124, 40, 85,235,194,129, 75,184,171, 32, 42, 66,165,207,
+122, 78, 16, 9,123,129,243, 2, 7,120, 9, 54, 59,148,247,114, 57,205,166,171,228,161, 2, 73,112,136,146,149,134, 58, 69,128,
+124,216, 11, 55,227,126,172,137, 70, 74, 14,207, 59,242,141,251, 43, 18, 12,147,242,253, 87, 77,169, 20,242, 82, 43,231,116,189,
+138,154, 88, 9,145,129,169,102,182, 40, 63,226, 93, 64,128, 78, 27, 61, 39, 6,226, 65, 25,214,236, 65, 36, 68,219, 28, 80,142,
+ 44,208, 44,253,239,237,237,109,117,244, 3,121,179,255, 76,247, 69,223,207,100,165, 84, 46, 81,145,240,162, 89,151,118,167,165,
+107, 80,230, 0, 28, 6, 48,227, 73, 88,242, 74,208,142, 13,212, 6,142,135,125, 41,230,243, 12,222, 32, 30,115,114,209,146,119,
+190,241, 43,146,104,141,229,224,248,140, 1,249,215,222,126, 71,254,219,127,249, 95,201, 31,255,229,143,229,226,197, 57,231,204,
+ 67,243,189, 90,204, 75, 87,247,172,165,123,249, 95,255, 23,255, 66,110,221,190, 35,127,250,231,127,207, 82, 9,234,247, 27,171,
+ 21,185,125,239,182,171,179,207, 21, 47, 29,100,191, 12,173, 71,239,222,156,241,238, 45,156, 58,248, 6, 94, 12,117,244,226, 42,
+155,209,233,144,215,185,176,243,182,101,218, 37,125, 28,216, 18, 79,207, 92, 92,152,195, 57,221, 41, 64, 6,207,139, 12,139,138,
+182, 74,155, 27,218, 99,163,156,162, 72,170, 23, 97,219, 70, 21, 48,231, 5, 67,187, 64,114,147, 59,219, 59,114, 75, 47,107,167,
+117, 37,232,140,128,204, 99,169, 92,113,189,222,232,107, 4,148, 12,225,127,117, 86,245,246, 0,179,249, 36,227,217,121,182,137,
+168,137, 19,133,172,157,143,185,116,189,135, 62,179,191, 65, 95,163,247,146, 58, 66,153, 25,241, 80, 25,203, 15,230,147,215,134,
+ 26,113, 62,127,209,145,188, 70,179, 43, 26, 65, 59,109,102,212,179, 60,201,127,107,155,108, 87,172,251,246, 94, 94,142, 59,174,
+150,239,135,125,138, 41,246,103,186,232, 10, 53, 86, 56, 97, 56,109,148, 14, 70, 80,237,153, 36, 53,179,201,176, 79,179,232,101,
+230, 89,110,217,100,164,161,135, 5,223,211,212,247,186,226,231, 26,233,144,124,147,167, 35,192, 1,178,118, 26,206, 60,134,160,
+ 78, 78,134, 96, 23, 90,143,117, 75,212,131,144,129, 67,227, 26,141,208, 93, 40,236,106, 96, 1, 59,215, 31, 78,165,152,182,156,
+206, 4, 71, 81,170,160,103, 86,191,187,133, 94,207,161,171, 21,205, 54, 56,176,115,136,121,198, 30,134,163,135,118,192,118, 45,
+205, 11, 9,105, 76, 32, 20,248,115,182,129, 80,143,223, 57, 83,143, 25,208,148,217, 39,222, 7, 4, 68, 56,246,148, 73,134, 2,
+ 14,206,144, 98, 79,156,248,135, 13, 37,121,221,104, 68, 64,104, 88,151, 78, 71,191, 55,147, 33,235, 23,198, 28, 37, 25, 60, 16,
+ 50, 97, 63,100, 20,131, 17,139,125,135,206,243,130, 43,102,121,112,129,150,192,185,164,216, 7, 28,204,161,121,252, 59,227,225,
+ 25,100,133, 58,227,196,149,121, 16,156, 97,224, 4,214,158,207, 24,170,151,113, 61, 66,168,140,228, 39,212,217,248, 28, 66, 4,
+197,134,235,229,186, 49, 28,169, 6, 65, 38, 68,182,144,121, 32, 99, 97, 80, 17, 58, 15, 56, 81,188, 67, 94,247, 16, 81,117, 74,
+131, 63, 12,207,192,247,228,114, 30,141, 84,235,178,206,231, 33,164,207, 86, 36,215,201,128,160, 4,223, 5, 77,133,153,144, 6,
+213,190,244,222,248,126, 16, 81,119,114, 23,221, 44, 17, 0,231, 36, 52,124,142,231,184, 34,206,145, 91,135, 84,205,100, 88,233,
+ 28, 70, 92, 27,236, 73, 3,138,105,154, 13,215,214, 55,100,109,117,141,146,163,251, 7,111, 88,246,154,114, 22,131,199,224, 27,
+ 40, 20,126,158,129,158,113, 18,176,221,161,203,208,113, 78, 96,224,183,215,214, 8, 91,159,170,147,185,189,145,115,103, 46,225,
+ 36, 78, 41, 22,162,207,133, 51, 9,196, 7,223, 83, 78,185,154, 35,214, 21,225,216,189, 59,219, 92,255, 87, 71, 39,148, 33,117,
+123,232,133,100,178, 17,223, 15, 89, 51, 74, 96,168,133, 98,143,208, 95, 13, 7, 64,146, 19,116,187, 83, 32,174,118,249,236, 73,
+246, 94,143,168,234, 86, 0,233, 45, 20,188,130,131, 40,105, 34, 0,110, 35,166,132,225,172,229, 53,152,203,161,198, 28,158, 71,
+172, 47, 62,171, 63,238,234,154,141, 72,238,234,247,186,148, 49, 5, 11,219,234,159,165,117,159,161,204,134,128, 36,147, 54,236,
+193,207,101, 11, 28, 89, 26, 76,251,172,235,131, 15,208,233, 13, 36,171,209, 63,156, 33, 96,119, 64,196, 67,245,230,111,223, 43,
+200,243,179, 49,207, 74, 41, 11, 36,168,205,192,148,221, 52,161,176, 76, 55,225,218,178,128, 76,162,142,141,150, 46, 42, 25,122,
+ 38,218, 24,202, 90,126, 41,159,160,218, 28, 72,192,131, 98, 95,142,207, 7, 36,146, 97, 32, 12,158, 13,109,108,232, 67, 7, 23,
+ 34,173,137, 20, 16, 40, 48,254,145,112,149, 10,105,158,123,148,255, 96, 67,176,159, 69,125,102,116, 45,161, 36, 53, 28,161,247,
+ 92, 19, 8,116, 2, 52,156,204, 45,158,227, 92, 19,138,146,254, 92, 70, 19,156,222, 4,101,143, 30,207, 27,201,130, 67, 39,241,
+141, 50, 72,185, 92,147,163,179, 11,125,135, 6,237, 39,130,213,205,141, 13,206, 77,248,242,201, 19, 18,239,118,214,107,212,244,
+199,249, 31,133, 53,114,236, 33,212,225, 74,165,130, 92, 93, 53,201,223, 0, 9,178, 11,142,132, 62,240,189,237,162,148, 50, 9,
+ 57,215,243, 80, 0,177,172, 88,212, 36, 47,207,238, 37, 4, 70,232,122,130,133,200,132,179, 67, 96,187, 16,104,228,178,121,183,
+ 31, 32,252, 5,238,156, 67, 64,106, 93, 3, 48,236,209,172,251, 37,202,211,137, 13,139,186, 54,174,195, 44, 77,201,180, 50,211,
+175, 52,177,142,156,165, 30,247, 57,183,199,196,100,221,103,208, 58,108, 40,202,188,201, 90,145,220,132,155,219,101, 92,146, 21,
+ 19,208,138,242,110,110, 8, 26,162, 66,159,241, 46,163,235,172,248, 64, 36, 38,187,205, 41,109,249, 82,133, 47, 9,242, 12, 90,
+ 70,178,136, 10,199,129,187, 64,112, 24, 24,110,159,112,112, 58, 88,182,232, 11,197,248,197,146,102,166, 57, 68,129,154,205, 23,
+244,224, 96,131, 17,161,101, 83,110,154, 27, 28, 97, 64, 77,228, 33,127,118, 4,197,163,165,218,101, 34,112,112, 45,156,199,148,
+ 80,106,129,237, 58,208,169,166,212,161,100, 56,118, 49,149, 71, 93, 62, 45, 9,125, 54, 48,155,209,107, 73, 71,149, 74,203,204,
+234,231,245,192,129, 17, 11, 86, 51,178, 86, 56, 20, 56, 52, 47,225,160,122, 40, 70, 77,194,137,116,200,130,144, 81, 31, 28, 53,
+244,192,251,148,124, 68, 61, 22, 61,158, 1,201,117,234,144,225,153, 81,199,133, 65,246, 93,223,111, 86,223,117, 20, 24, 42, 54,
+ 37,209,122, 50, 24,211,145,108,111, 86,248,123, 29,141, 86,225, 44, 40,207, 56,181, 33,121,200, 93,240,193, 16,106, 81, 30, 7,
+ 46, 64, 67,122,193, 31, 91,192,233, 54, 12,164, 32, 76,145,228,123,120,243,104, 14,138,125,121,223,149, 28,240, 94,168, 39,159,
+ 94,118,157,222,118, 42,233, 74, 16, 96,137,134,159,137,231,193,197,200,146,141, 25,132, 36,138,144,168, 21, 18, 20,135,106,128,
+ 77,224,179,191,214, 61, 66,160, 65, 88,159,129, 8, 8,148,128,215, 58,122, 65,161, 50, 5, 24, 17, 66, 35,128, 91,199, 36,131,
+244,245, 32, 39,169,173,141,142, 4,100, 61,100, 5,235,239, 96,128, 6,156, 29,116,159,225,100, 26,152,182,229, 9,141,144, 46,
+ 23,231, 66, 23,210,174,164,131,200, 63,163, 1,201, 32,156, 54, 68,189,246,148,211, 8, 55, 97, 48, 98,216, 91,148,152, 11, 85,
+224,124,206, 90, 44, 19, 32, 63,141,156,227, 65, 16, 5, 18, 92, 65,207,101, 73,143,198,180,144,118,194, 40,190, 11, 97,200,162,
+213,239,196, 89, 60,211, 8,140, 14, 36,141, 50,204,128, 90, 13, 54, 36,191, 56, 84, 33,152,247,155, 7,243,113,141,193, 92,161,
+106,166,197, 15, 71,135,115, 62, 47,169,204, 80, 16,207, 17, 75, 19, 9, 23, 20,204, 90, 97,130,208,193, 51,172,194,249, 52, 73,
+ 58, 63,234,111, 35, 96, 64, 48,167,153,240, 15,126,250, 51, 78,208,170,174,109,161,249, 83,206,235, 77,117, 56, 87,122, 15, 7,
+116, 84, 21,102,183,150, 78, 9,159, 53, 30, 15,217, 23, 93,212,251,220, 66,175, 53,246, 9, 26,225, 19, 16,172, 86,248,108, 16,
+ 14,129, 12,236,132,142,118,170,123,147,156, 51,105,145,133,194,116, 12, 39, 35,162, 82,224,162, 96,129,241,153, 16,137,201,171,
+ 33,254,252,233,179,208,200, 58,148, 0,247, 12, 40,194, 36,100,181, 51,128, 11, 73, 79,201,112,238, 3, 36,101,103,240, 39,156,
+ 17, 8,106, 12,144,188,217, 76, 8, 23,228,160, 22,140,253, 70, 96, 1, 82, 29, 50,220,118,183,205, 18, 86, 96, 71, 36, 97, 17,
+ 9, 9, 92, 15, 51,148,243, 86,202, 43,174, 83,135, 34, 38,194,207,100,214, 60, 26,115, 38, 57,157, 60, 4,174, 66, 9, 91,220,
+ 3,118,185,192,150,104,246, 26,152, 41,251,206,135,112, 46, 40,161, 21,178,212, 58, 31,233, 90, 2,149,203,165,171,114,217,179,
+178,189, 90,148, 43,181, 99,103,205, 65, 72, 26,203,240,231, 16, 20,150,209,146, 22,102,122, 8,122,113,243, 70, 40, 73,232,174,
+105, 92, 65,118,248,233,197,133,156,158, 39,228,157, 77,117,108,154,224,116,187, 99,105, 35,224,154, 90,158,243,188,102,121, 40,
+ 25, 20, 75, 69,169, 55, 52,163, 31, 77,153, 73,195,166, 6, 83,189,199,153, 33,247, 4,159, 15,148,119,255,188, 43,191,253,193,
+182,156, 92,246,229,176,222, 19,147,116,236,115, 6,135,214,208, 9, 99, 13, 17,240, 37,210,152,221, 14, 7, 62, 36, 33, 49, 27,
+ 42,252, 1,165, 4,185, 15,250, 6,103,103, 7, 26,164, 66,214, 85, 19, 7,117,158,119,118,119,165,163,239,255,229,211,199, 60,
+ 63, 59,235,171, 28,207, 11,103, 13, 50, 33,206, 18,130, 42, 4,181,120,198,162, 6, 38, 77, 77,144,130,208,254,160,190, 62,156,
+ 36,228,217,233, 64, 38, 15,159,177, 75,165,195, 89,247, 41, 38, 11, 64, 46,211, 9, 19,106,158, 59,160, 25,252, 35, 4,128, 44,
+193,128,151,133,105,117, 83,151, 40, 78,244, 89,239,238,109,186,164, 39, 98, 43,189, 88,181,217,178,155, 33, 90,182,115,165,173,
+248,204, 13, 89,146,170,182,177, 14,219,229, 9,155,230,198,137,149,115,190, 19,236, 88, 46, 65,159,149, 45, 59, 30, 21, 74, 69,
+198,154, 57,252, 30,213,197, 88, 16,161,205, 53,226,109,236,209,172,137,200,151,199,133,176,110,228, 45,199,106,246,128,223, 13,
+178,244, 22,157, 19,178,116,192, 25,112,100, 84, 42,246,173, 99,122,178,191,209,177,112, 1,175, 19, 58,214, 75,102, 19, 62,157,
+ 15,198, 60, 90,155,112,109, 43,132, 14, 97,244, 82,161, 49,116, 25, 12, 24,160,136,216, 17,149,166,230,227, 90,221,214,128, 65,
+ 26, 4,125,105,183,134,122,136, 3,119,241, 1, 57,163,254, 61,130,113, 79,134, 61,127, 99, 66,170,144,181, 69,240,227,217,197,
+184,187,164,231,152,166, 28,184, 16, 26, 28,163, 7,121, 45,167,207, 17, 12,244,162,117,244, 98, 76,168, 50,213,154,142,164,173,
+ 70,109,107,187, 38,190, 6, 42, 89,205, 22, 2,189,164, 89,113,146,144, 48,176, 48, 70, 46, 67, 13,168, 33,237,132, 58,198,122,
+ 73,114, 52,138,147,176,133, 14,231,134,189,176, 9, 7,113,155, 84,154,235, 93, 43,103, 99,100,184,211,166,139,140, 17,157, 22,
+ 53, 11, 2,148, 28,132, 61,240,179,249,170, 88,147,174,239,207,219, 21,170,197,180, 27,241, 24,138, 48, 92, 52, 71,115,152, 57,
+159, 69, 43,142,240, 2,219, 96, 76,168, 14, 8,166, 73, 56, 6, 63, 28, 39,178,201,157,205, 42,133, 46, 50,105,223,193,246,193,
+196,161, 27,200,140,194,201,123,161,254,158, 83,191,210,247,236,233,103,118,250, 30, 91,112, 80,178,200, 34,120, 83,199,139,245,
+ 71, 31, 53, 84, 9,124, 13, 2, 91,122, 22, 70, 84, 8,155,200,121,203,101,233, 80,188,242,168, 43,173,235, 91,206,208,152, 35,
+208, 73,232, 97,239,245,133,245, 62,100,162,126,218,233, 15,224, 25,166,186,207,137,116,158,203,128,103,240, 49, 40, 35,140, 66,
+ 41, 82, 17,184, 94,225,179,198, 64,179,150,148,220, 95,203,177, 6, 10,131,118,119, 53, 35,107,197, 4,127,120,194,189,215, 64,
+ 65,143,203, 70, 33,201,178, 79,123,236,211,169,130, 7,146, 8,209, 2,124, 86, 30,196,172,156, 67,143, 16, 84, 6, 62,212, 46,
+ 82, 68, 28,230,218, 47,179, 22, 51,252, 30,122,101,167,250,121,157, 33,203, 42,108,235, 10, 38,174, 69, 19, 16,182,103,231,189,
+169,194,144, 42,225,216,222, 97, 73,193, 36, 22, 98,133,248, 60, 4, 82,252, 67,232, 53, 34,120,212,127, 2, 45, 67,192,214,210,
+172, 7,132,170,237,245, 77, 62,251,235,163, 67,205,240, 70,212,118,192,119,149, 10, 37, 50,193, 49,188, 37, 77, 68,101,204,243,
+143,246, 35,244, 50,187, 1, 29,174, 75,100, 93, 29, 58, 6,144,116,123, 93, 26,124, 24,126, 4, 88, 52,192,198,159,139,177, 32,
+ 59,131, 1, 7,252,187,138,246,170, 4,218,228,158,201,238,230, 46, 59, 74, 30, 62,123, 65, 71,142,239, 7, 42,128, 59,140, 12,
+ 29,119, 33, 25, 6, 37,168,167, 95, 77, 38,172,177, 2, 61, 66,230,142,231, 65, 79,184,131,104,157,227,169,148,203,116, 56, 67,
+168,149,205,214,199,120,132,171, 51,212, 40, 23, 57,169,107,214,105, 83, 60, 19,229, 92,222,217,136, 80,213, 11,118,198,248, 19,
+215, 54,150, 48, 68, 1,177,206, 25,205, 18,113,126, 18, 80,175, 75, 26,158,115,252,147, 11,239, 57,116,106,202,193, 38, 1,123,
+139,211, 96,249,235, 30, 98,141,219,189, 17,109, 78, 33,151, 33, 87,225,162,217,100,253, 24,207, 57, 24, 38,229,221,157,117,249,
+214,189,169,124,246,170, 33, 13, 13, 8,193, 51, 98,137, 42,112,164, 79,135,156, 77,195,114,134, 80, 60, 11,129, 78,187, 61,164,
+ 3, 4, 34,129, 30,246, 85, 64,218,250,189, 79,222, 92,209,193, 90, 34,125, 25,102,176,104,113, 67,208,130,210, 6,218,196, 16,
+ 16,100,210, 21, 57, 24,105,240,174,123, 95,202, 78,165, 53,152,242, 78, 29, 95,246,164, 51, 28,115, 47,129,120,240, 76, 97, 77,
+213, 17, 66,184, 6, 44,255,205, 90,153, 51,223, 79,234,199,220,111,112, 78, 92,251,160,200,230,218, 58,131,174,179,211, 35,162,
+ 43, 9, 47, 73,244, 17,200, 45,130,169,167, 47, 94, 16,221, 90, 93, 89,209,204,186, 64, 20, 1,178,191,184, 47, 32, 1,102, 72,
+ 50, 12,164,172,123,156, 73,101,233,144,225, 27,114,121,140, 84,205,203,106,165, 40,199, 23,231,114,244,209, 35, 61,199,235,206,
+222, 4, 96,197, 39, 52, 24,210, 44,125,234, 18, 30,153,245,255,139,235, 38, 66, 59, 35,202,134, 64,123,146,122,207,208,121, 52,
+ 30,246,100,115,198,121,137,138,103, 69,230, 98,184,228,103,241,103, 49,205,142, 40,137,120, 70,144,155, 65,223,179, 49,210,214,
+ 68,100, 87,227, 48,185, 92, 19, 23, 91,136,119, 97, 47, 16, 60,123,201,188, 35,214, 70,116, 69, 88,219,143, 78,183,140,229,234,
+ 38,214,120, 99,150, 71, 48,203,210, 92,146,152,191,183,215, 40,116,118, 78, 24,212,117,244,199, 67, 58, 71, 56,231, 49,157,230,
+ 52,148,163,180, 60,104,148,121, 4,123, 19,211,128, 0, 99,129, 41,158,205,179,190, 22,104,150, 59,132,225,210, 13, 34,103,100,
+ 20, 80,179, 23,170, 86, 25,221,128,219,123, 27,132,145, 16,121, 50,138, 14, 13,244,112,226, 28, 12,224, 76,206, 99, 23,151, 85,
+ 79,167, 9,102, 31, 8, 8,242, 20,180, 81,131, 5, 50,134,102,236,193, 8,179,156,245,208,246,135,108, 15,201, 97,168,130,117,
+145, 46,235,188,168,179, 33, 51, 74,186,236, 3,194, 19, 56, 16, 27,106,240, 3, 13, 18, 48, 88,129,211,134, 60, 76,117, 42,136,
+209, 72,116,164,134, 19,207,214,108, 13,121, 33, 65,124,169,104, 36, 61, 26, 14, 41, 44, 83, 40,149, 37, 95,204, 49, 91, 77,154,
+128, 19,236, 74,201, 52,107,110,224, 8,180,174,220,112, 2, 48,232, 57,150, 17, 9,165,239, 72, 28, 94, 56, 76, 37,218,159,237,
+135,173, 64,253,192, 18,209,192,243,143,194,231, 79,133,181, 45, 24, 85, 27,238, 18, 53,173, 97,244,199,129,203, 70, 66,137, 69,
+252, 92,167,235, 51,144, 64,229, 3, 34, 60,183,214, 80, 43, 52, 36, 23, 18,194, 54, 14, 29,216, 63,190,226,230,195,192, 33,163,
+ 46,103, 61, 70,204,142,167,228, 46, 56,146,121, 67, 57, 72,159,127, 6, 77,233,163,186, 58,237,238,152,237, 45,126, 73,141, 99,
+198,163, 1,133, 19,113,235,238, 90, 1, 53,206, 17,127, 8, 35,103,165,204,159, 1,236, 55,144,250,101, 75,210,183,203, 12, 14,
+ 51, 97,151, 3,102,101,226,215,203, 5, 35, 7,103, 61,214, 22, 83, 41,117, 18,186,197, 57, 61, 75,158,158, 45,156, 17, 14, 16,
+ 65, 80, 22, 26, 2, 31,208,188, 46,225,230, 74,129, 98, 50,237,142, 58,190, 81, 66, 51,160,158,108,151, 86, 52, 8, 53,114, 90,
+ 31,202, 74,165, 32, 0, 94,178, 9, 97,112, 1,150,110,175, 63, 38,116, 9,126, 70,165,148,148,129, 58,130,130, 38,125, 59,165,
+148,131,230,245,185,128, 32,140,245,123,219, 64,140, 80,190,240, 64, 10,213, 44,120, 8, 84, 98, 72,242, 39, 50,250, 58, 52,193,
+145,138, 0,186,212,247, 42,102, 53,251,132, 75, 9,203, 11,172,175,195, 57,133,253,186,184, 35,108,157, 75, 38, 72,158, 2,215,
+ 99, 93, 35,250,214,144,106, 44,110,255, 38,142,119, 48,232, 79,228,240,240,165,252,252,209,107,221, 43, 53,225, 65,130,243,199,
+ 1,199,194,200,195,112, 0,149, 65,169, 7, 25, 55, 32,112,161,160,147,208,121,230,114, 69,182,183,249,190, 43,137, 33,176,218,
+221,216, 32,220,141,172,203,134,123,134,224, 6, 60, 24, 47, 52, 96, 51,174,195, 36,236, 44, 0,107,254, 31,253,202,251, 82,219,
+221,150, 63,249,254, 39, 68, 82, 30, 62,123, 54, 71,122, 0,233,207,234,242,142,181,236,202, 7, 8, 12,134,212, 92,119, 14, 22,
+ 65, 6,200,120,168,181,151,212,142,224,236,193,240,163,172, 1,166, 60,117, 48, 18, 18, 34, 82,174, 71, 29,250, 23,168, 79, 54,
+187, 3, 66,205,197,130, 19,147, 74,171,189, 65,217,136,208,172,254, 12,178,216,169,174,215, 88,157, 93,207, 79,200, 3,117, 48,
+248,110, 4,117,105,117,144,112,166, 16, 31,242,194,105, 96,179, 86,163,126,167,175,206,188, 79, 52, 15,247, 21,123,159, 73,162,
+117,172,175,235,216,214, 12, 26, 83,201, 10,174,164,226,143,228,162, 81,215,128, 54, 35,183, 86,203,242,245, 7,106, 11, 18, 64,
+236, 38,242, 55,159, 0,162,183, 60, 99,176, 89, 44,127,133,112, 59,214,223,233, 38,184, 54, 44,232,170,131,131,132,233,108,185,
+100,160,142,209, 17,236,198, 64, 34, 97, 59, 89, 30,112,193, 11,238, 21, 56, 13, 21,117,252, 14, 97, 78, 18,210,135, 77,133,224,
+ 10,120, 66, 87,186, 54,224, 44, 33,241,186,189, 81,150,135,175, 46,201, 67,192,175, 67, 67, 96,183, 8, 94,143, 38, 62,234,212,
+129,186,246,135, 78,255,159, 45,133,211,128,200,210,246,230, 22,229,131, 27, 23,135,156, 30, 87, 41, 85,153,161,231,212, 46,190,
+120,253,138, 65, 34,150, 0,246, 25, 8, 2, 52, 16,122,236,157,159, 50, 41, 75, 18,162, 71,194,213,215,239,188,197,225, 46, 18,
+246,240, 27,227,120, 60,176,103,224, 52, 77,113,191,244,187,209, 6,124,133,128,116,165,194,182, 68, 71, 6,157, 48, 48, 64,185,
+161,144, 47,144,220,137,224, 5, 42,157, 44,251,120,174,157,143,173,167,158,171,139, 91,207, 44,134, 39,205, 68,183,102,245,242,
+232, 96, 42, 19, 87,211,156,253,187,179,205,102, 73,166, 53, 18, 32, 68, 6,111,153,136,110,199,181, 49,211, 33, 71, 7,162,103,
+173,246, 64, 3,234,180, 44, 88,108,209,177,215,209,225, 85,215, 70, 96, 45,120,102,118, 38,179, 38, 55, 72,104,199,149, 52,231,
+ 29,180,145,209,225, 38, 50,251, 61,217, 56, 63,102,228, 13, 3,131,195, 60, 33,169, 6, 34,252, 1, 35, 38,168,174,193,209,163,
+102,131, 11,136, 75,229,249, 99, 18, 55,216, 46,132, 62,109,182,187,168,209,107,250,236,229,206,103, 22, 35, 88, 97, 36,175,134,
+104,205,209,207,202,163,151, 83, 8,129, 34,114,151,112,102,112, 69,163,176,223,248,213, 34, 13, 3,106, 72, 56, 20,232, 83,189,
+188,108,235, 38, 38, 66, 85, 41,205, 54,218,150,132, 62, 10,254, 35, 35,128,225, 7, 12, 59,117, 83,140,212, 43,176, 53, 14,151,
+ 22,193, 7,122,223,127,241,172, 45,171,250, 14,117,205,176, 42,106,237,199,157,177, 84,171, 73, 66,246,156,220,117,112,161,145,
+ 41,144, 9,144,139, 82,242,181,183, 86, 24,100,212, 86,242, 60,200,157,182, 26,193, 66,158,223, 11, 15,150,207,105,198,148, 72,
+147,244, 82,111,244,165,170,217,168,225, 36,186,132,232,254,202, 90, 46, 36,101,153, 48, 11,159,117,167,137,101, 93,171,165, 27,
+208,155,104, 22,220,243, 67,141,122,247,115,222,212,132,210,135, 46, 51,196, 5, 34, 4, 45, 51, 34, 85,136,207, 32,186, 15, 33,
+220, 20, 9, 62,200,126,117,207,198, 78, 4, 35, 65, 41, 78, 23, 33, 2,210,228, 57, 15,215,176, 63, 10, 88,167, 2, 68,202,131,
+ 22, 76, 73, 18, 12,144,225,240,222,120, 66,191, 30, 56,206, 3,156, 72,128, 73, 89, 40,189,120, 97,253,216,250, 60,188,157,161,
+ 35,244, 36, 45, 58, 6,220,155,160,173, 67, 8, 23,122,114, 60,242,229,188,209,147, 59,235,121, 13, 98, 82,106,168,199, 82,208,
+115, 95, 43,232,119,249, 3,121, 11,253,200, 33,243,219, 69,230, 19, 26, 5, 4,237, 8, 36,132,117,242,153, 68,177, 9,251,159,
+125, 57,208,236,252,240,120,172, 70, 43, 77,195,113,209,153,106,240,233, 90,161, 32,159,128, 44,191, 62,113,142,117, 20,120,204,
+ 12,240,116,229,124,138,231,252,234, 74, 51,178,114, 78,130,130, 83,168, 98,192, 5,146, 38,166, 11, 34, 56, 53, 35, 26,209, 41,
+ 74, 31,186,134,103,231,106,236,213, 58, 5,181,188, 12, 52,155, 71,173,121,168,191, 87, 2, 99,216, 56,227,137, 53,154, 96, 58,
+ 87,218, 57,120,114, 48,172, 93,160,120,128,221,129,122,233, 58, 21,117,157,123,250,193, 96, 44,247, 70,208,165, 31,201,103,143,
+ 31,137,209,224,225,170,141,154,100,150,136,217,241,217, 57, 25,200,184,230, 40,137, 20, 53, 91,194,179,158,156, 93, 56, 12,131,
+227, 86, 39,122,102,171,172, 35, 55,218,109, 58, 81,231,252, 83,114,119,103, 75,206, 26, 13, 50,190, 17,132, 90,158, 37,127,209,
+211, 31,146, 47,103,119,158, 2, 84,226, 72, 63,127,250,119,159,200,221,237,115,217,221,222,148, 35,205,182, 2, 58,170,192,245,
+247,227,121,198, 35, 7, 27,235,115, 34, 8, 32,124,174,142, 90,194, 17,176,156,128,150,205,242,123, 88,131, 77, 77,185,191,112,
+240,169,164, 67,244, 0,169,186,254,251, 41,201,184,224, 65, 84,113,129,244, 27,216, 58, 74,194,104,210,245,123,143,134,148, 45,
+197, 80, 26, 19, 78,131,132,154, 27, 74, 71, 99,189,163,184, 67, 73, 12,242, 1, 18, 7,135, 63, 69, 7,204, 40,108,131,156, 58,
+190, 5,116, 53,166,122,119,245,127,126, 34,195,210, 3, 96,211,124, 49, 35, 93,189,139, 19, 59,150, 65,167, 78, 88,122, 98, 29,
+ 76,140,121,239,227,244,216, 73, 13,251, 25,181, 49, 3,181, 9,129,252,242,131, 77,121,113,218,210,204,123,200,119, 0,178,143,
+255,161, 62,141,245, 6,138, 1,164,100,107, 3, 2, 51,101,249,252,241, 99,215,102,233, 39, 24,196,190, 57,107, 73, 10,168, 75,
+224,133, 19,213,210,108,177,203,102,179, 68, 76, 75, 32, 30,163, 31,223,115,165,133, 66, 38, 39,103,154, 61,231, 18,150,157, 13,
+ 64, 21,158, 31, 91, 89,211, 4, 4,182,118, 24,142, 65, 77,232, 63,119,115, 53, 66,255, 32,242,130,100,135,137,103, 64, 28,113,
+111,225, 56, 55,214,183,228,226,252, 72, 46, 53, 96, 41,230, 93, 59,231,218,218, 26,145,192, 71, 79,159,240,192, 22, 50,233,185,
+238, 0,208, 24,148,102, 73,154,213,125,202,232,179,228, 51, 25,233,117, 91,186, 7, 80, 5, 77, 59, 29,253,193,152,229, 52, 4,
+109, 62, 53, 19,124,150,115, 17,176,192, 41,143,237,136, 73, 73,128, 86,189,139, 58, 19, 72,112, 57, 28,137,214, 77,201, 67, 66,
+ 55,133, 38, 94, 50,197,243,202, 50,170,204,164, 96, 77, 76, 58, 59, 38, 24,199, 22,105,111, 33,102, 53,159,209,225,205,117, 55,
+102,243, 48,100, 89,157,243, 6,177, 23,107,174, 87,175,237, 13, 53,109, 74, 42, 79,220,160, 32, 8, 2, 45, 79,176,180, 54, 58,
+175, 66, 98,127, 22, 27,250,100, 34, 99,199,151,213,202,162, 29, 80,215, 52,226, 35, 1,194, 44, 17,164, 22,160, 30,114, 13,164,
+152,137, 7, 26, 73,162, 6, 11,193, 7, 74, 6,122, 46, 51,155, 76,156,214, 57,224,179, 53,181, 74,187,181, 52, 47, 4, 72, 91,
+ 70,163, 80,108,228,105,103, 36,167,151,125,217,168,169,129,152, 36, 66, 65, 17,143,151,227,139,167,103,136,199,228,183,126,253,
+ 29, 26, 18,235,245, 9, 23, 35, 2,199, 10, 78,116,227, 87,215, 82, 97, 93, 50,193,108,117,168, 25,202, 17, 33,196,128, 81, 30,
+ 14,196,233,229,144,189,150, 89,227, 19,206, 15,194, 44,119,134, 91,248,250,124,233,140, 19,125, 1,179, 20, 4, 62,100,165,168,
+131, 83,139, 88,109, 69,181, 92,212,204,119, 72,214,103, 85, 51, 59,200, 44, 30, 99, 6,114, 38, 41, 59,155, 5,102,154,132,247,
+144, 97,161, 30,220,234,107, 6, 55,101, 45,223,183,105,167,130, 37, 46, 3,184,179,183,226,212,242,194,225, 41,154, 59,139, 38,
+140,204,234, 81,171,199, 93, 66,171, 31,178,231, 74, 46, 77, 71,131,212,170,128, 90,162,102,130,221,145,171, 13,227, 75, 89,119,
+181,118, 46,151, 30, 24, 55, 97,204, 15, 29, 48, 97,220,144,216,134,195,132,192,133,156, 1,117,216, 5, 64,241,192,226, 3, 39,
+216,192, 76, 9,196, 19, 68,207, 36, 25,186, 76, 31,151, 31, 57, 38, 56, 14, 48,116,168,229, 50,155,132, 60,227,200, 15,153,231,
+128, 46, 51,178,189,230,133, 53, 76, 55,234,179, 3,163,161,151,175,215,110,170, 49, 27,176, 39,118, 37,159,112, 1, 32,164,123,
+117, 67, 51,198, 57,183,148, 6, 63,247,110,149, 88, 55, 67, 75,209, 68, 29,102,202,239,202,121, 93,200,174, 79, 99,188, 47,186,
+ 42,230,252, 0, 87, 15,189,184,130, 30,193, 64,222,221,205, 81,213,236,106,226, 8,114,112, 55,129,239,120, 30, 48, 30,191,248,
+242, 66,106,213,162,220,191, 91,115,193,104, 72,158,225, 88, 74, 73, 80, 22,248,224,188,199,232,245,157,237, 28,207, 92, 7,142,
+222, 80, 62, 77, 51, 60, 32, 2, 78, 17, 17,123,211,211,165,235,219, 44, 89,233,154,148,235,251,164,165,175, 6, 24,226, 38,216,
+231,151, 7,109,201,171, 83,221, 44, 76, 73,140, 68,112,214,209,140, 11,235,104, 39,104, 59,115,252,113,116,112,128,220,196, 90,
+ 52, 28,123, 56,122, 24,231, 26, 19,182,112,159, 32,239,137,125, 84,187,172,103, 4,227, 61,251,242,226,233, 23,114,166,239, 94,
+ 40,148,233,252,186,189,115,105, 52,155,236,203, 70, 28,181,181,182,170, 1,106,151,176, 40,235,164,200,130,213,169,161, 77, 11,
+122,224,103,141,166,147,174,132, 46,130,126,239,198, 74,149,237,102, 24,208,225,148,246, 28, 17, 15,217,236, 76,169, 43, 21,150,
+170, 38,126, 72, 94,149,153, 88, 70, 64, 57, 89, 24,169, 35, 13, 44, 2,113,202,123,211,145,107,159,195,103, 82, 99, 93,179, 97,
+252,251,152, 51,189, 93,107, 28, 32, 90,103,128,157, 45,130, 96, 77, 32,174,211, 3,255,153,137,137,224, 89, 8,191,163, 47,154,
+153, 95,146,200, 85, 65,207, 20,202, 83,245,171, 46,137, 92,169, 4,132, 92,134,204,122, 17,184, 77, 67,253,123,156,133, 49,103,
+154, 27,214,152, 45,187, 52,220, 29, 71, 59, 46,230,202, 15,212, 62,180, 59,186,126, 22,130, 46, 61, 55,107, 2, 65,152, 6, 1,
+233, 76, 81,157,140,171, 43, 15,198, 41,218,169, 66,113, 69,207, 87, 70, 38,253, 22,154,255,244,158, 20,244, 76,184,128,178, 63,
+232,202,143,191, 56,146,111, 60,216,150, 15,223,189,171,217,189, 47,247,183,234,242, 87, 31,189,148,122, 87, 29, 87,210,241,116,
+112,119, 74, 44, 21,232,174,250, 16, 1,202,201,254,233, 5, 3, 50,181,253,180, 5, 89, 48,239,123, 19, 87, 75, 14,220,187, 80,
+ 58,215, 56,248, 28,118, 14,179,212,209,174, 89,208, 53,174,104, 22,220,174,150,228,178, 30,206, 93,247,220,157,188,184, 66,144,
+130,154,190, 35,255,162,180, 24,168, 45,110,107,128,210, 27,246,157,224,205, 52,173,246,109,202,242, 89,161, 84, 35, 1,237,249,
+139, 39, 50,213, 0, 39,151,175, 18,113,221, 8,209,156,243,139, 51,106,180, 35,184,160, 58, 39, 2, 50,104, 32,248, 46,192,198,
+ 62,129,172,251,224,222, 91, 50, 29,246,228,104,208, 97,245,200,159, 76, 89, 42,162, 94, 6, 7, 43, 77,184,103, 96,173, 3, 45,
+157, 53, 48, 19,105,212,119,223,217, 94,167,222, 62, 8,137, 77, 13, 92, 70, 68,199, 2,138, 0,193,130, 98, 54, 1,184, 5,199,
+167, 87,124, 14, 92, 0,216, 17,218,191, 80, 74,124,238, 16,231,147, 46, 77,100,214,198,140,227,118,125, 88,138, 44,143,160, 88,
+250, 17,187, 84,235,182,209,214,178,153, 83, 13,230, 19, 80,169,198,231,207,180, 30,102,179, 57, 34, 84,246, 96,140, 86,223, 84,
+ 68,225, 46, 70,145, 91,234, 48, 54,215,100,183,173,216,155,132,230,228, 90,218, 62,215, 30,113,227,116,147, 88,108, 24, 67,176,
+101,133, 80,137,199, 94,237, 12,153,201, 30,179, 22,212,202,198,232, 55, 29, 3, 2,118,209,179, 13,135,220, 35, 66,236,141,157,
+220, 35,220, 78,187,221, 1,150,202,108, 15,159, 11, 88,252,240,168, 37, 37, 61,152,193, 8,135,205,147, 6,218, 97,208, 51,190,
+226, 28, 23, 46, 37, 14,135,203,210,199,252,255,235,213,188,164,223,246,228,188,173,198,103, 63,208,172, 33, 73, 22,106,227,178,
+ 37,187, 59, 85, 70,163,189, 78,139,136, 71, 50,149,156,183, 56, 77, 39, 14,166, 27,243,176,120,132,127, 26,237, 49, 71, 34,226,
+125,144,209, 17,214, 70, 43, 93,119, 72,149,162, 59,187, 69,185,181, 85, 20,148,193,177,224,168,177,206, 88,142, 16,186, 1,132,
+219,237, 88,169,173,150,244,253,211, 76, 39, 1,239,229, 74,185,176,165,194,177,152,199,250,174,232, 97,133, 52, 34, 46,206,134,
+190, 67,179, 55, 97,166, 60, 64,139, 94,202,208,232,103,211, 66,146,141, 31, 18, 67, 80,207,153,132, 82,138,126, 88, 87,129, 51,
+182,161,192, 15,102, 78,207,100, 68,109, 8,227, 67,115,199, 15, 97, 95,192,186,189,222,152,153, 58, 39,201, 97,144,132,117,226,
+ 62, 1,161,176, 4, 47, 26,190, 27, 44,226, 68, 48,118, 36,192, 16, 46,157, 13,187, 97,237, 30,149,231, 68,154,168, 76,116, 86,
+ 42,141,183,126, 89,179, 53, 96,157,127,109,165,196,190,210,158, 26, 51,156, 1,244,203,154,176,133,134,165, 7, 24,134, 84, 86,
+ 46, 71,105,169, 38,199,146, 93,205,235,115, 76,228,224,228, 74,238,110,230,152, 65, 57,205,243,192,189,159,254,255,118,167,175,
+127,223,147,119,183,211,156,161, 13, 87,137,207, 2, 63, 96, 38, 92,180,161,123,112,103,119, 36,103, 26,224, 65,213,202,159,234,
+185,178, 41,174,157, 13,137,105,142, 7,162,217, 74,115, 32,149,244,148,132,195,100,182,168,199,210,147, 91,181,172,180,199, 14,
+125,152,134, 23,178, 51,242,228,228,234,138, 4,166,189,141,172,228,203, 73,142,218, 28,170,161,172,148,243, 52,126, 53, 61,211,
+ 5,111,194,243,129,118, 29,148,122,154,122,169, 87,178, 26,160,165,212,144, 77,157, 60,234, 80, 51, 35, 4, 42,169,144,209,139,
+ 0, 25,155,148,152,250, 51,181, 87,102, 41,199,199, 71,114,112,116,198,115, 34, 94, 94, 86,202, 5,102,168, 47,247, 95, 19, 81,
+ 64, 0,134,115,140,214,180,203,250, 5, 13, 33,157, 57,219,203, 18,122,119,106, 12, 86,207,155,173, 80,192, 72,232, 48,171, 48,
+136, 23,151,115,189,192,153,234, 20,178, 9, 71, 18,195,222,213,220, 52, 44, 19, 25,104, 17,182, 9,229, 52, 19,171,150,212,233,
+232, 25, 33,217,211,115, 51,220,145,205,163,118,139,192,193,112,150,253,132,226, 53,179,217, 8,188,123,190, 63,135,244, 1,185,
+163, 76,128,239, 70,166, 6,116, 8,159, 1,117, 73, 24,103, 4,136,248, 61, 60, 51,218, 72, 49, 59, 29,176, 58, 62,231,172,222,
+101, 0,130, 6, 17, 56,137,132,113, 1, 18,101,169, 17,176,195,210, 4, 99, 66,179,120,207, 73, 24,240, 97, 36,170, 27,229, 42,
+204,226,249, 25, 99,200,167, 14,136,174,193, 94,121,185,156, 6,165, 87, 68, 36, 88,114, 68,199, 15, 96,125,160, 22,169,146,116,
+160, 59,209,191,146,228,164,171, 54,174,204, 86, 93, 36, 25, 32,212,253,189, 58,189, 95,123,127, 79, 62,184, 85,148, 86,243, 82,
+246,214, 74,186,119,125,135,126,232, 90,128, 64, 12, 69, 57,148,114,160,115,209,235,117,228,238,214,138,188,183,183, 42, 71,199,
+135,178,127,214,147,219,219,121,217,219,173,241,119,192,237, 72,176,172,144,112,200,173,113,173,160,125,142,155,117,214, 28,229,
+ 61,212,228,241,127,152, 9,235,122,108, 84,242,210, 86,103,141, 51,130,250, 52, 7,227,164, 50, 84,198,235,143, 58, 28,151,139,
+251,112,214,112, 76,254,221,157, 29,182,142, 61,125,242,133, 6, 52, 73, 34,124,171, 43, 21,201,228, 75,242,250,240,141,180,218,
+109,174,125, 16,118,197,224, 94,224,140,246,250, 14, 89,193, 20, 56,140, 96, 15, 64,144, 46, 84,212, 38, 55,121,144,129,224,224,
+153, 18,105, 55, 84,107, 54,167,128,164, 61,223, 57, 96, 23,140,187,137,109, 64,123,159,191, 60,213,128,216,181, 7, 99,106, 32,
+206, 19,203, 96,214, 33, 65, 25, 13,214,129, 6,116, 58,135,161,244,247, 84, 3,106,136,208,164,216, 50,200, 0, 40, 17,182,166,
+145,185, 34, 33,252, 30,159, 91,101,163,208,181,185,145, 91, 22, 78, 56, 51, 49, 77,231, 25,236, 62, 27,146, 18,109, 25,155, 3,
+230,161, 88,205,100, 50, 9, 17, 12,143, 9,213,178,218,228, 92,214,194,216,175, 16,178,137,100,222,118,166,140, 97,151,134,193,
+176,224, 31,239,203,143,185,241,200,159,132, 66,100,201,169,157,145, 61,194,154,175,134,148, 1, 72, 87, 32, 15, 37, 93, 91, 69,
+ 48, 52,236, 63,221, 66, 97, 81, 13,213,121,223,213,109, 65,144, 71,237,111, 56, 10,168,244, 6,184, 41,201,204, 4,178,175, 29,
+169, 55,186,114,116, 62,116,132,171,161,102,243,103, 23,114,111,187,202, 75,146,211, 3, 53, 13, 12,225, 36, 56, 73,144,220, 0,
+231, 56, 66,133,107,121, 89,171,230,228,178,231,201, 89, 91, 55, 94,179,191,157,213,140,116, 53,115, 30,214, 10,146,201, 25,146,
+175, 96,196,225,224,167,214,193, 56,104,237,154, 12, 93, 77,241,236,178,175, 78,117,170,135, 82,141,157, 30, 98, 8, 64, 32,107,
+ 72,166,243, 28, 71,201,118, 10, 77,153,198,195,182, 46,106,150, 25,165,111, 82,234, 36,125,182, 92, 0,146, 10,208,162, 86,200,
+203,184,221,211,231, 83, 7,134, 78, 1,100, 17,104, 67, 73,250,148, 92,108,235,165,202,103,115, 28, 22, 65,195,109, 92, 45, 28,
+239,145,101, 95,117,154, 61,175,144,165, 77,234,229, 27,232,191,247,209,119,157,205, 18,178,197,214, 36, 66,178,159, 63,107,247,
+ 19, 19,246,103, 35, 96, 8,187, 4,124,151,137,121,172,213,154,185,113,101, 16, 2, 34,163,231, 4,115,112,153,219,189,169, 51,
+242,229,180, 6, 43,142,133, 62, 25,250, 52,236, 99,136,180,120, 83,102,161, 65,216,247,233,133, 68, 37,200,137,166,192, 52,179,
+161, 80,140, 93,204,176, 7,211, 26,151, 15,240, 58, 10,162, 36,193,235,250,156,214,251,204, 62,186,253, 49,215, 12,217,212, 74,
+ 49, 45,155, 91, 25, 89,205,107, 86, 23,244,213,112,102,228,238,122,158,209,109,107, 0,166,241,156,130,198, 44, 10,169,203,134,
+ 58,254,139,122,143, 93, 8, 83,253,142, 84,216,118,146,154, 17,248,117,167,183,212,169,175,215,138, 26, 92,244,217,121,129,242,
+ 14,244,220,215, 75, 8,250, 82, 44, 61,180, 53,115, 46,102,245, 28,174, 87,168,115,237,107, 70,249,222,219, 25,185,210, 12, 46,
+ 49, 29, 74,144, 42, 58,110,128, 26,145,177, 77,200, 73, 3,193, 70,155,202,116, 9, 13,107, 86,245, 76,175,169, 99, 7, 25, 80,
+115, 75,221,195,172, 28,169,163,185, 80, 99,184,149, 83, 35,147,112, 76,100,171, 6,233,164,111, 41,109,185,146,135,179,204, 72,
+ 61,103,229,209,241,128,243, 8, 80, 27,220,170,229, 29, 58, 21, 18,178,120, 64,116,205, 47,207,206,228,251, 63,254,148, 26, 15,
+ 61, 4, 87, 83, 55,119, 26, 50,161, 56, 75, 80, 90,195,143, 15, 72, 98, 74,168,193,198, 4, 66,159, 83,196,242,106,212, 81, 54,
+185,210,236,157,245, 79,240, 25, 80,246,210,204,238, 88, 51,116, 19,246,151, 3,190,132, 67,238,135,250,219, 56, 59,187, 91,155,
+ 97,118,228,218,235,172, 31,204, 21, 9, 29, 71, 99, 36,223,255,228, 75,189, 3, 30,247,113, 50, 14, 66,114,220,128,231, 12,159,
+ 1,103, 73,231, 26,248, 97, 43,171,117,162, 48, 83,167,195,143,231,133, 97, 31,133, 89, 60, 78,208,120,226, 72,118, 89, 56,168,
+144, 20, 74, 62, 12, 52,217,115, 25,217, 89,175, 18,125, 25, 65, 65,175, 61,144,119,238,222,146,111,191,127, 95, 46,251,137,249,
+116, 58, 54, 17,169, 29, 8, 52,251,129,182,125,127,210,225,144, 40,148,249,250,131, 30,109,211,140, 32,152, 72, 39,230,242,194,
+ 88, 7,144, 71, 38,128,255,217, 72,145, 32,212,141,125, 1,211, 29,236,236, 62,207, 54,156, 6,178,244, 36, 53,159, 77,183, 73,
+254,205,112,132, 78,141, 33,247,231,103,143, 53, 32, 31,109,202,118,101, 67,138,197,129, 36, 53, 99, 70, 9, 6,223, 5,244,224,
+205,233, 25,229,111, 17, 60, 1, 85,202,231, 82, 26, 0, 92,241,238,162, 21,236,229,193, 25,235,230, 41,174,139,149,205,181,154,
+252,202,215, 63,100,208,245,252,197, 11,218, 70,244,131, 59, 14, 83,134,118, 44,145, 64, 32,148, 32,193, 15,107,129,214, 98, 40,
+110, 2, 37, 75,178, 68, 90, 36,162, 2, 56, 27,252, 24,232, 76, 4,122, 97,135, 19, 79,118, 54,183, 56,176,230,252,252, 88, 74,
+ 80,105, 43,173,240,231,209,226,251,226,229, 11, 71, 74,134,230,193,192, 17,160, 97,143, 1, 41,227,255,131, 28, 90,204, 23,216,
+229,228,233,218, 84,202, 53, 38, 0,224,115, 96, 47,146,105,143, 42,114, 16, 24,194,179,145,195,144, 76,206,213,210,188, 80,227,
+221, 75,184, 78, 16,148, 70, 64,248,244, 79,155,124,198,153, 42, 40, 72,119,176, 95, 88,163,161,222,253,239,255,232,177,180, 91,
+117,151, 84,194, 6,235,185,127,248,229, 27, 13, 96,167,174,174,159,118,112, 61,234,251,236,181,207,165, 29, 1, 59,157,114,154,
+ 30, 8,132, 80,247, 71,146,147,112,147,242,108,152, 40,197,187, 77,163,202,156, 50, 79,156,162,140,249,248,132,118, 27,203,232,
+177, 86,105, 36, 16,122,183, 51,185, 68, 76,212,107, 62,123,195,134, 83, 24,205,191,105,232,140, 93,140,144,157, 73,221,154,136,
+108,103,108,222, 68, 68,117,211, 46, 16, 11,107, 23, 79,155,132, 80, 3, 25,192,190,211,168, 77, 38, 28,100,238, 37,179,132,148,
+174, 52,123, 90, 93, 95,151, 36,136,107,161,145,247, 67,125,119,107,176,112, 96,111, 58, 77,118, 2,196, 94, 98,174,115,221,211,
+104,242,226,106,196,168, 50,165,118,224,251,159,156,201,163, 87,154,105,111,215,100, 15,164, 37, 50,205, 45, 97,207,132, 31,246,
+ 82, 7, 97,180,111, 93, 47,111, 50, 53, 97, 70,248,147, 79, 46, 88,147,221,170,130,173,115, 37,173,190, 51, 42,200, 72,243, 56,
+164,201, 36, 47, 4, 72, 23, 9, 24,123, 53, 50,141,102, 79,170,122,105,222,121,123, 75, 90,234,232, 1, 49,253,230, 7, 27,242,
+228,196,167, 19, 51,137,172, 26, 98, 44, 98,211,137,175, 96,224,131,113,245, 80,120, 25, 48,148, 81,227,193,225, 64, 22,140,250,
+ 82,183,211,101, 68,186,178,186,162,198, 56,144,173, 66,146, 70,200,215, 67,253, 96,115, 77,141,208, 68, 58,186, 6,187, 8, 34,
+244, 66,163, 92,112,210,241, 9, 29,226,162, 34,120, 65,130,138,250, 91,161,152,117, 7,206, 10,117,174,173, 31,204,135, 15, 16,
+246, 18,119,168,251,157, 54, 29, 89, 79, 29, 60,158, 13,181,114,212,198,199,168, 17,250, 14,161, 72,231,178,244,124, 64, 32, 78,
+ 47,250,154, 37,141,212,128, 23,213,248, 88, 18,232, 0,111,215, 10, 9, 53, 8,234, 52, 39,105, 74, 95,162,118,157, 52, 14, 98,
+ 22,182,139, 7,140,136,131,208,232, 99, 23,113,225, 92,187,142,149,231,251, 77,117,210,129,236,173,164,244,243,123, 12, 88,192,
+120,191,108,140,194,203,231, 0, 32,100, 84, 48, 40,149, 66, 86,214,213,169,103,189,156, 67, 3,160, 86,182,145,151,207,246,219,
+188, 24,197, 98,142, 53,224,153,102,121, 78,247,240,150,102,202, 56, 73, 83,187,208,107,103,137,194,179,225,196,166, 41,247,110,
+123,189,196, 11, 12, 3,247,236,245,149,148, 31,148,100, 71, 29,113, 71, 13,247,225,105, 95,179,143,177, 6,114,154,105,233,158,
+213,138, 8, 24, 71, 44, 27, 76,135,125, 18,225, 78, 19, 67,150, 66,122,166,160, 25, 63,136,148, 67,125, 30,140,153,156, 72,173,
+ 60, 80, 87,158,145,177,238,249,177,190,219,116,220, 97, 16, 87,206,142,228,243,179,174,188,179, 91, 37,243, 31, 76,107, 72,169,
+122, 84,213,242,228,170, 55,113, 98, 41, 97,237,179,164, 65, 31,148,197, 70, 19, 39, 62,129, 12,252,135,159, 61,162, 40, 7,224,
+ 71, 56, 16,177, 5, 57, 61, 63, 39,188,190,183,181,195, 32,233,184,238, 68, 69,210, 97, 15,120, 81,179,203,225,196,193,222, 80,
+102, 67,134, 2,231, 11,199,208, 33,251,220,205,188, 62,173,215,195,182, 60,189,199, 54,201,214, 67, 39,184, 3,103,154,146,123,
+123,187,234,116, 46,244,115,202,226, 52,118,194,122,158, 62,107,171,231, 83,114, 25,142, 7, 42,118,112,174, 24, 43,137,207, 64,
+118, 56, 13, 91, 12,135,193,104,214, 33,201,179, 54, 51, 57,126,216,103, 78,109,116,148,141, 66, 82,104, 50,225, 58, 45,240, 30,
+ 9,207, 11, 69,146,198, 60,231, 24, 6,243,173,183,118,228,222,206, 42,201,168,133,188,102,204, 70,215,185,154,151,127,244,155,
+239,201,127,248, 59,223,144, 63,252,235, 87,242,240,243, 17, 3, 10,148, 38,136, 54, 76,199,116,194,200,236, 18, 9,199,118, 71,
+112, 58, 28,104,144, 3,216,189,221,144,222,192, 57,124,160,102,112, 66,104,185,236,247,154, 84,157, 76,120, 5,233,250, 3,182,
+123,141,186, 93,102, 56,104, 5, 76,121, 89, 62,111,189,217,209,247,244,152, 33, 7,211, 1,245,227,213,124,235, 59, 4,210,214,
+187,248,108, 95,239,180,102,197,247,183, 86,101,255,164, 33,251,234,164, 18,155,154,132, 96,162, 90,185,236,218, 45,197,241, 94,
+ 96, 67, 51, 80,217, 12,146,156,210, 85,214, 51, 15,233, 91,168, 78,130, 99,128,201,109,144,240,125,185,127,202,192,105, 99,181,
+ 42, 27,107,107,204, 96, 81, 10,157,181, 99, 66, 68,171,219,115,153, 42, 68,158, 54, 42, 9,218,207,146,102,222, 29, 50,211,123,
+180,189, 43,133, 12, 3,200, 98,165, 70,190,197,225,241,190,116,219, 93,118,240, 0, 90,223,217,218,230,144,154,131,195,125, 6,
+ 98,176,107, 54,228,103,160,196,129, 97, 54,135,231, 13,201,176, 36,146,145,180,245,217,178,230,153, 60, 21, 10,209,117,131, 86,
+217,209, 80,239,169,174, 55, 18,145,166, 38,112,126, 40,172,196,119, 14, 7,176,192,137,130, 40,237,135,211,237, 16,204,136,175,
+ 65,245, 40,193,115, 53,155,237, 1,254,211, 8,226, 53, 35,167,173, 63, 98,151,133, 67, 34,129, 0,160,132,130,243,145,209, 64,
+158,181,248,208,153,129,199, 65, 97, 36,142,210, 53,124, 63,114, 2, 52,192,197, 16, 39, 34, 65,128, 69,197,206,121, 66, 9,138,
+120, 57,247, 7, 30, 6, 73,138, 33,191,196,145, 90,147,204,252, 17,152, 38, 34,138,162, 30,147, 24, 71,218,163,156, 50,128,238,
+192, 5,198,220,239, 96, 38, 91, 27, 72,204,135,123,145,222,246,155,243,244, 69, 73,193, 44,164,182,103,217,253, 60,123, 15,229,
+164,109,100,158,156,141, 76,139,164,100,123, 88, 67,211,128, 45,195, 31,193,166,218, 57, 12, 16,246,145,131,252,133,113,165,212,
+248,237, 59,117,181, 16, 10, 38, 41, 38,188,212, 80, 49,179,198,101, 77,128,148, 81, 83,214,144, 64,141,164,102,103,123,105,217,
+216,244,121,209,135, 35, 95, 94, 30,117,229,222,157, 77, 94,182, 68, 34, 57, 39,131, 0,102, 65,198,198, 17,141, 41,231,160,241,
+208, 1, 24, 50,129,203, 16,235,237, 17,165,106,251,221,129, 19,121,208, 75,148,175,172, 73,169,182, 78, 3, 71, 72,112,226,178,
+104, 68,242,247,238,104, 86,185,186, 74,167,220,190, 26, 74, 73, 95,110, 75, 47,195,211,134,149,150, 58,169,247, 55,212,248,168,
+161,223,222,210,104, 52,227,156, 27, 5,241,211,249,249, 0,122,182,175,193,144, 36, 19,161,232,138, 83,200, 35, 64,175, 27,253,
+236,162, 71, 70, 49, 18, 16, 63,108,105,130, 60,226, 0,208,191, 30,240,103,175, 47,229,232,188,195,136, 29,207,136, 67, 94, 44,
+229,101,125,163, 66,132,194, 11,213,203, 92, 59,148, 43,121,224,192, 76,216,214,229,145, 97,155,128,174, 54,167, 39, 45, 6,206,
+ 88,146,177, 38,100,105,207,178,118, 36,221, 83, 93,199,170, 26, 69,192,190,119, 55,146,108,239,226, 16, 76,100,249,122, 96, 55,
+ 43, 25, 57,109, 14,164, 51, 73, 56, 40, 20,123, 96,166,100,225,226, 38, 81, 77,206, 75,211,121,162, 85,200,103,111,124,210,205,
+ 49, 54,174, 29,197,132,157, 12, 24,106,209,188,234,146,224,149, 74,186,115,193, 73,119,104,103,210,247, 45, 39, 80, 91,155,200,
+ 16, 65, 71,194,245,104, 35, 8,216,172,104,246,130,190, 85, 68,238,104,209,225, 57,114,172,233, 9, 4,128,134, 66, 3,223,167,
+200,135, 94,240,176,205,204, 11,123,169, 61,227,180,220,177,100, 24, 64,129, 33, 25,216, 3,180,251, 92, 1, 5,200,167,101, 85,
+179, 89,167,132, 88,117, 25, 61,152,197,154,117, 77,212, 80,193, 9,118, 45, 32,207, 4,117,210,167, 96, 90,235, 89, 93,219, 90,
+225,180,194,173, 66,192, 41,126,251, 23, 35,105,246, 12, 85, 17,239,149,245,140,246, 27,242,242,205, 21,131,155,119,239,148,168,
+109,144,207,105,166, 2, 78, 9,122,157,195,251,144, 8,134,116, 60,102,232,233, 26, 7,114,222,118,206, 21, 48,231,203,253, 55,
+ 26,116,212,165, 84,172,176,206,250,234,232,136,236,118,212, 64, 81, 39, 7, 41, 9,114,171, 16,228,216, 94,219,145, 79, 30, 63,
+149, 23, 71,199,204, 72,112,183, 42, 26,192,238,110,110,240,172,160,173, 13,107,129,169, 94,248,189,170, 26,101, 84,236,177,207,
+ 8, 26, 97, 92,207,175, 58, 82,213,223,193,120, 84, 12, 70,129, 81,124,173,142,232,211,167,199,242,193,189, 77,194,208, 63,124,
+120, 44,127,244,253, 47,164,144, 10,228, 31,254,210, 45, 57,107,180, 72, 2, 68,246, 8,148, 98,166,244, 56, 27,133,137,189,194,
+254,207, 36,125,157,212,243,148,142, 63, 17,102, 18,184,135,179, 33, 31,201, 80, 96,199,114,223,156,156,234,230, 74, 78,238,108,
+169,227, 41,229, 24, 76,129, 28, 85, 46,107,144, 7,148, 78,207,206, 6, 16, 61,253,156,127,242,157, 45,249,147, 63, 11,136, 88,
+ 77, 38, 33,113,210, 0,113, 88, 85,219, 48, 38,178,129, 82, 9,136,171, 72, 78, 96, 87,134,152,240,232,187,206, 24, 58,207, 65,
+155,129,102,189,175,129, 5,248, 31,134, 45, 3, 68,144, 80, 46,193,121,158,234, 93, 64,137, 16, 93, 28, 32,141,162,141,106,164,
+206,103,164,182,168,144, 97, 39,181,248,169, 2,219,232, 32,197,219, 87,123,120,114, 17,200,206,198,154, 60,184,255, 22,187, 42,
+142,207, 78,101,107,125,147,114,208,128,156, 49,154, 19,104,100, 54, 91, 12,249, 4, 5, 61, 47,200,146,179, 82, 74,105,144, 49,
+186,144,114,169, 38,199,167, 13, 13, 58,251,154, 96, 20,156, 19, 4,113, 81,223,179,219, 25,184, 14, 7, 31, 45,172,186,142,234,
+ 88,241,221,224, 3, 13,201, 95, 48,122,143, 70, 46, 67, 78,184, 14,134, 86, 55,144,149,149,117,218,145,231, 47,190,100,119, 79,
+185,186, 74,101,184,187,119,246, 56, 8,235, 82,159, 51, 49,203, 63,131, 89, 6, 26, 48,160, 11, 76, 78,238,110,175, 83,119, 62,
+175,119, 37,147, 24,203,189,183,191, 73,206,209,133, 6,141,208,131,255,213,175,239,201,255,254, 93,135,108,116,245,108,160, 85,
+ 15,122, 2,150,156,159,177,107, 13, 37,100,237, 80, 19,240,125,240,217, 8,130, 49,100, 40, 55, 9,216,117,195,132, 38,112,124,
+ 46,170, 44,218,177,147,217,213, 59, 9, 13,120, 24,225,161,254, 30, 74,166,249, 76, 49,108, 33,246,200, 1,154, 65,227, 64, 1,
+ 38, 68,129, 18,146,156,186, 36, 17,237,209,240, 85,176,133,116,210, 18,146,127, 67,177, 43,190,173, 31,132,186, 18, 78,244,138,
+106,158,198,241, 63, 12,215,211, 35,143,138, 50,212, 16, 86,130,134, 1,202, 3,233,244,156, 71,210,208,224, 27,140,125,188,195,
+ 68,131,252, 32, 64,103,152,126, 94, 38, 25,198,203,174,160,225,148, 63, 23,207,187,144,162,142, 12,188, 12,179,127,179, 68,147,
+183, 17, 18,128, 93, 30, 51, 21, 33,209,205, 90,243,168,253,222, 31, 47, 10,253,174,113,222,101,219,248, 79, 74,179, 3,144, 43,
+218, 26,137, 13,123, 45, 89,215,204,199,203, 84, 66,118,161,147,234,156, 73,156, 82,111, 59,225, 96, 70,100,147,233,108, 86, 13,
+137,209,131, 84, 34,233, 6,117, 28,244, 77,191, 57,185, 34,147,189,213, 26,205,123, 30,177,169, 20,134, 9,117,186,193,171,249,
+250,157,178, 60, 63,215, 72, 40, 3,135,226, 83, 15,222,179, 78,161,202, 98,212, 33,234, 80, 32,177, 76,213,208,131,180,148,119,
+ 25, 7,140, 7, 28, 15,216,210,155, 59,107,154,113, 56, 2, 13,218, 75,208,206,146, 12,220,212,247,141, 98, 74,222,174,234,103,
+105,228,140,122,217,213,196,145,213, 0,225,152, 16, 66,194,198, 67, 40,134, 35, 96, 65,238,130, 19,166,196,160,139,214, 38, 67,
+244,109, 59,105,200,182, 70,241,143,206, 93,107, 28,106,145,234,194,229,229,197, 64, 62,126,114,169, 89,118, 65,246,110,131,144,
+ 50,150,253,253,134, 20,122,152,201,174,153,129,153, 50, 16, 42, 21,146,172,173, 35, 19, 34, 65, 69, 13,145, 81,167, 60,214,108,
+181,167,159,219,133,160,196, 52,212,186,159, 78, 92,240, 96,237, 92,222,211,145,109,156,210, 25,106,104, 80,227,218,222, 72, 17,
+225, 32,195, 86, 92,171, 27, 46, 61, 34, 90, 76,115,106,118,144,237, 4,122, 88,115, 36, 14, 34,160, 33, 91, 24,239, 23,104, 80,
+228,249,106, 60,176,183, 41,183, 79,122, 24,239,221, 42,203,160,235, 49,176,131,227,152,134, 4,159,213,106,158, 78, 29, 78, 30,
+194, 64,248, 70, 72,255,142,212,169, 1,225,129,176,204,110,222,137,187, 92,249, 73,201, 20,211,178,157,247,229,181, 6, 68,175,
+ 53,200,115,162, 29, 78,121, 11,235,113,123,187, 68,185, 87,150, 37, 66,201, 91,142,116, 12, 28, 26,128, 59,157, 74,186, 81,171,
+248,187, 91, 36, 56,170,145, 84, 47,137, 96, 10,207, 50,235,127,165,152, 82,216, 83, 10,246, 55,137, 90,112,132, 99, 75, 67,208,
+132, 48,142,160,214, 91, 96,246,119,127,213, 35,177,232,103, 95, 52,229,209,203,150,220,189,191, 37,123,107,105,201,219,174, 52,
+ 80,247,213,247,134,246, 54,122,230,119,214, 10,186, 46, 99, 71,132, 97,180, 46,204,158, 38, 67, 53, 74,255, 31, 87,239, 21,100,
+ 75,118, 93,137,237,204,235,189, 43,111,159, 55,237,209,104,120, 16, 32, 9, 18, 36,130,193,209, 80,102, 66,154, 80,140, 38,164,
+ 95,125,234, 75, 63, 19,250,213,191, 20,138,152, 96, 40,244,163, 24,141,134, 49, 65, 98,104, 68, 82, 3, 96, 64, 52,218,160, 13,
+250,181,121,254,189,122,229,235,222,186,117,189,203,155,153,218,107,237,115, 11, 61,234,142,138,126, 93,239,154,204,147,231,108,
+187,246, 90,250,223,246, 64, 3, 12, 53,222,159, 61,218,151, 79, 30, 62, 35,187,226, 96, 98, 68, 52, 24, 85,195, 44, 52, 50, 57,
+148,128,235,229,170,205, 42,107,224,209, 81,231,239,147,171,222,104,119,241,157,112,142, 83,119,156, 97, 36,224,248, 33,140, 2,
+ 4, 58, 12, 17, 12, 13,248,214,119,214, 86, 56, 66, 4,174,110, 56, 89,252,185, 94, 46,202,254,233, 25,203,161, 48, 86,159, 61,
+ 59, 35, 48,237, 31,125,251,101,217, 63,239,201,223,188,251, 80, 3,207, 54, 25, 25,235, 37, 13,184,250, 35,142, 35,213, 10,101,
+ 58, 17,138, 37,199,222,111,180,221,227,136,215,100, 24, 14,235,119, 3, 36,199, 61,233,144,158,152,141, 15,157,102,192,130, 46,
+ 24,239, 69,118,138,123,233,141, 35,121,184,223,228, 24, 22, 8,137, 10, 32,168,210, 63,220,123,124, 44, 99,205, 68,115,106,148,
+ 81,113, 66,112,250,159,254,232, 59, 28,231, 58,210,224, 56,157,188,202,178,243,247, 94,191, 37, 75,101,163,134,197,185,122,167,
+ 23,200, 49, 29,127,204,202, 2,198, 50,105,236, 33,118, 51,113,204,144,168, 60, 65, 81,203,163,140,159, 58,188,136,188, 4,200,
+190,192,171, 63, 13,155,146, 79,168, 99, 67, 31,223,233,215, 15,230,232, 21,231,168, 72,182, 32, 18,154,169,241,246,116,239, 97,
+ 58,166,221,133,140,105,139,213, 2, 0,198,150,212,169, 47, 85,235,198,131, 62, 51, 58, 89, 10, 72,207, 35,130, 70,201, 76, 48,
+ 15,216, 82,170,149, 10, 50, 29,142,228,228,160, 37,255,244, 63,255, 79,164,211, 58,146, 71,154,177, 23,244,187, 80,149, 33,240,
+111,100, 96, 71, 4,128, 96,157, 3,157, 42, 2, 99,216,218, 76, 2,128, 75,159,247, 8, 39,134, 64, 54, 95, 94,209,245,235,202,
+233,233, 49,207, 14, 2,247,157,237,109,202,244,158, 28, 60, 35,177,151,239,250,175,224,153, 55,172,133, 48, 80, 66,133, 9,207,
+112,117,101, 67, 78, 78, 62,213,100, 66, 19, 34,175, 67,250,215,121,144,228,179,235,245,251,242, 79,254,240,150,124,231,244, 92,
+254,234, 63, 28, 75, 81,131, 27, 4,163,179,208,174,193,156,144, 1,153,201,188, 7,251, 19,154,182, 61,124, 75,174, 80, 20,159,
+ 78,126,206,223, 1, 67, 69,202,227, 9,196,184,198,172, 86,180, 47,218,146, 87, 35, 6,249,215,112,110, 83, 18,168, 4,166,194,
+ 69, 53,200,252, 28,112, 26, 54, 82,105,213,206,121,210, 50,231,128, 21, 28,171,114, 0,195,185,160, 36,102,165,207, 95, 40, 25,
+199, 14, 8,108,201, 35, 42,159, 36, 95,154, 4,174, 18,128,224,113, 96, 90, 17, 97,200,117,100, 11,139, 45,155, 25,247,253,168,
+223,214,189,131,106, 67, 70, 70,231, 29, 61, 67, 51, 89, 89,206,200,250,149, 42, 63, 99,255,177, 6, 65,221,136,204,136,226, 91,
+ 96, 1, 64, 32, 41,188,161, 40, 73,177, 51,207,164,204, 9,172,181, 74,135, 1,249,189,255, 8,244, 23,127, 89,183, 53,254,255,
+227,241,191, 68, 75,131, 51, 94, 83,219,249,248,164, 39,229, 74,233, 18,212,224,233,195, 70,175, 32, 29,146,104, 85,122, 93,227,
+ 96,158, 32,192, 77,171, 35,156, 59,234, 75,160,210, 99, 67, 71, 39,156,166, 30, 30,156,169,149, 37, 29,251, 25,162, 71, 56, 19,
+ 27,173,104, 84,210,140,106,209,191,197,184, 92,210,105,152, 7, 24,141,152, 7, 44,211,101,245,198, 54,106, 25, 57,237,140,200,
+238, 54,195,194,250, 89,205,202, 83, 44, 27,178,140,131,168, 79, 13,195,113,107, 40,171,137, 33, 29,212,106, 57,146,107,235,101,
+121,112,168, 14,107,230,145,205, 14,125,205,136,155, 13,122,190,161, 60, 61, 25, 72, 48,205,202,221, 53,147,134,245,213,161, 94,
+ 91,201,201, 39, 71, 83,150,107, 29,115, 45,175, 21,221,250,193,196, 4, 68,224,116,179,122, 15,187, 43,101,205,206,231,226, 72,
+206, 52,155, 72,243,115, 96,168, 70,152, 73, 13,140,220,197, 11,103,100, 77,123,235,141,109,169, 87,205, 32, 20,203, 5, 41, 20,
+ 50,156, 93, 69,196,143, 94, 12, 12, 31,198, 82,146,212, 7,159, 25,171,152,126,111,129,253, 45, 24,246,145, 94, 47, 36,105,210,
+ 98, 84,240,214,118, 64,139,132,101,179,192,250,228, 28,163, 66, 48,198,138, 71,200,140, 27, 69, 78,244,227, 50, 40, 89,199, 38,
+ 60, 49, 10,244,217,165,178,122, 29,122, 56,134,122,240,212,152, 65,171,121,145, 1,199,142,123, 29,129,209, 68,159,111,163, 38,
+151, 35,114, 0,139,205,146, 57, 18, 71, 96, 98, 2,243,231,217,165,178,172, 55,132,229,174,163,214, 88,238, 61,186,224,104, 28,
+ 28, 8,156, 77, 94,215, 32,235, 16,212, 56, 28,197,164, 59,144, 40,231, 63,105,169,179, 25, 93,162,196, 69,140,149,107,181,158,
+163,116, 45, 68, 51, 18, 41, 55, 21, 17,217, 56,221,130, 40, 42,118, 7, 3,255,223,208, 12, 7, 6,160, 55,154,177,108,111,212,
+140,118,152, 61,199, 4, 23,147,111, 94, 88,249,193, 62,128, 33,192,167, 13, 70,129, 20,146,115, 34,156,199,193, 80,110,173, 44,
+ 75,115,146,210,128, 99, 42,245,149,138,220,209,160,180, 16,106, 68,238,231,165,162,207,239, 43,101, 99, 61,140, 28,187, 25,246,
+ 55,141, 68,232, 84,248,116,109,122,227, 57, 57, 16,112,240, 14, 47,132,220,227, 47,142, 78, 52, 43,171,178,234,112,222, 25,234,
+115,238,176,231,140,253, 2, 80, 25, 24,226,144,117,214,202, 21, 58, 14, 32,166,129, 30,199,189,195,225,207, 28,179, 23,246,254,
+212,105, 48, 28,183,206, 73, 92, 66,131,174,239,199,153,130,118,246, 92, 51,118, 84, 47, 86,107, 21,249,228,217, 1,185,216, 55,
+117,111,183, 52, 75,234,234,243, 94,169, 86,229,191,255,147, 31,201,211,227,190,252,248,237, 79,228,168,217,101, 27, 6,129,192,
+179, 35, 83,191,171,215,171,242,202,107,119,229,172,221,145, 81,111, 32,253,206,128, 21, 1,236, 81,172,107, 49,151,189,156,113,
+ 63,212,140,133,204,113,151,212,190, 30, 29,128,217, 24,163,224,101,146,160,129, 64,163,106, 34, 42, 47, 78,206, 72, 40,115,231,
+122,157,122,239,152, 56,121,164,193, 70, 71,215,234,206,230,170,124,248,171, 71,146,187,106,253,242,173,186, 47, 39,167,231,156,
+108, 0, 85,105, 95, 29,221,137,102,146,215,116,227,133,217, 4, 71, 39,129,171,129, 99,128,137, 30, 33, 99,247, 44,195, 13,166,
+ 67, 6, 37, 57,224,105, 90,194, 18, 56,246,121, 50,157,100,230, 8,105,233, 80,207, 34,236, 14,234,116,197,114,137,140,117, 30,
+185,232, 35,242,173,147, 65, 79, 29, 87, 42,132, 17,118,154, 2,186,238, 84,158, 36,102, 97,126, 73, 50,244,244,217, 19,249,253,
+239,255, 46,199,109, 87,150,234,148, 62,133,147, 10,103,186,246,154,129,230,242, 21,217, 2,246, 8, 36, 95,186,126,125,117, 12,
+211,105,143,251,233,218,141,151,228,248,236,194, 90, 95,177,173, 23,174, 1,213, 20,128,148,179, 57, 79,202,249, 28,249,198,209,
+ 87, 78,171, 67,233, 30, 25, 69,119,165, 92,147,245,141,109, 57, 61,120,168,207,234, 92,182,214,174,106, 98,149,150, 90, 99,137,
+147, 68,123, 79,238,179,124,140,247, 33, 24, 15, 64,247, 28,206,233, 52, 16,176,231,115,105, 50,114,122,115, 13,110,130, 21,249,
+250, 27, 47,203,177,174,107,214,175, 82, 59, 62,140, 82,210,108, 94,200,137,238,185,127,243,227,148,238,133,145, 12,251, 29,241,
+ 55, 54,216, 15, 79,120,158,163,114,246,137,181, 33, 89, 25,238, 33,229,179,162,133,202, 90,194,177,170,161, 90,100, 68, 68, 38,
+122, 15, 91,106,114,192, 88,219,169, 52, 91,167,178,210, 88,230,115, 49,241, 38, 43,213, 7,243,224, 55,122, 17,226, 95,242,192,
+ 91,171,208, 72, 96, 72,132, 20, 27, 95, 9,103,221, 67,167,171, 16,187,170,132, 38,103,216,183, 11,252,135, 1,133, 45,240, 76,
+ 56, 77,137,197, 24, 93,232,218,161,196, 9,129,239, 2, 73, 71, 96,215,145,116,114,223, 32, 43, 82,171, 37,205,246, 76,206, 58,
+ 19, 6,156,128,112, 20,171, 89,121,240,196, 68,113,154,205,129, 77,109,144, 15,198, 18,198, 5,127, 5,169,145, 57,246,103, 28,
+ 36, 9,242, 54,168,221,212, 96,215, 24,251,140,155, 2,173,130,148,155,124,241,190,100, 47,191,156,241,199,174,101,145,172, 37,
+ 71, 82,206,152,243,157,184,158, 6, 74, 28,112,134, 40,249,129, 57, 13,219, 27,229, 27,225,120,146,149,138,233,194, 99, 19,183,
+160, 98,214,220, 74, 2, 32,110, 49,229, 52, 95, 74,122,224,162, 73, 87,114,169,130,100, 48, 79,169,239,197,204,250, 72,179,149,
+181,122,202,202, 94, 97,124,201,111, 59,210, 44,115, 48,213, 27,203, 22,229,103, 79, 32,221,154,151,185,238,186, 70, 30, 89,117,
+ 36,173,190, 30, 62, 4, 20,136,190, 53,210, 67,143,171, 10, 9, 68,144,123,104,198,245,230,205,140, 70,165,158, 60,218, 15, 41,
+159,154,136, 48,183,155, 97,166, 10, 54,165,243,142,102, 41,231,190,188,177,161, 81,114,106,162, 6,222, 39,169,195, 79, 62, 62,
+ 83,103,149,149,171, 27, 53,211,246,141, 77,204, 4, 27,116,164,166,255,137, 90,230,230,249, 72,182,116, 9,190,117,179, 33, 15,
+ 79,213,129,104,132,141,251, 6, 38, 1, 32,184,179,238, 80,138,217,148,149,207,232,156,230,140,192,234,101,115,250,150,213, 68,
+178,177, 90,228,218, 97, 29,131,153,199,210,119,103, 8, 70,184, 41,163,197,179,110,192, 17,193,245,114,138, 6, 12,127,158,131,
+ 15,156,133, 85,155, 3,166, 19,153,219,252,117, 48, 11, 46,251, 87, 62, 40, 54,213, 1, 15,177, 81,208,134, 38,240,205,156, 97,
+188,144, 87, 69,212,138,153,254,164, 16, 52, 52,199,251,231,134,208, 78, 17,208, 34, 6,164,138, 60, 2,134, 48,134,147, 8,205,
+ 80,135, 96, 46, 3, 47, 63,179,194, 49,213,194, 44,108, 6,121,144,199,210, 25,248,202, 83,137, 52, 3,190, 96, 94, 0, 34, 65,
+ 51,159, 17, 9,119,196,145,146, 96, 99, 94, 0,157,126, 62,100, 75, 6,134, 6,251, 8, 27, 18, 7,113,238,212,192, 46, 41, 87,
+ 9,164, 51, 74, 73, 70,185, 98, 64,205, 69,127, 41,114, 35, 90,227,153,207, 32, 7,217, 98,114,209, 38,114,125,169,200, 81,192,
+162,101, 52,231,120, 35, 50,173, 64, 90,106,184,164, 4,176, 75,130,215, 50,212,108,253,160, 53, 81,131,152,148,151,175, 85,164,
+ 24,117, 56,102,213, 87,163,131, 89,106, 0,192,252, 56,116,200,148,196,101, 87, 11,231, 4,223,136,235,168, 21,242,114,162, 25,
+199, 79, 62,252,140, 4, 38,208, 3, 0,225, 82,145,172,122, 35, 43,151, 67, 48, 72,159, 89, 85,157, 49, 12,100,200, 49,173, 80,
+250,154,101,161,212,186,177,186, 42,159, 63,122,196,125, 56, 84,163,140,158,248,214,218,154, 3, 72, 89,153,222, 42, 24,214,219,
+203, 80, 67,220,151, 71, 47,246,136,159,128,222, 65,206,149, 10,183, 52,123,255,206, 87, 94,227,244, 5,198, 67,127,247,141,187,
+ 50,212,235,249,159,254,244,223,170,163, 31,187,209,160,152,217, 97, 62,211,144,111,191,254,154,220,127,178, 71, 67,210,168,150,
+ 72,251,153,230,100, 76,154,253,206, 96, 30, 94,246,211, 81, 45,233,141,199,102, 28,225,184,211, 9,167,232, 22,240, 90,147,139,
+204, 6, 83, 9, 9,147, 97,246,196,158, 23,232,148, 67,221, 27, 99,128, 44,179, 5,121,113,124, 33, 25, 53,146, 40, 47,195, 1,
+126,114,127, 79,214,150, 74,116,194, 24,119, 60, 82,167, 28,196, 83, 78,199,128,230, 25, 34, 34,155, 26,100, 63,120,214, 36,184,
+ 50,229,148, 0, 25,132, 59,246, 64,246, 85,243, 73, 82, 92,195,233,164,242, 9, 78,142,248,169,156,196, 36,240,177,210,125,210,
+ 1,170, 38,179, 62,121, 21, 64,158,149, 70,212,142, 10,140, 31,113,116, 16,206, 47,226,126, 11,169,160, 71,157, 1,144,195,128,
+ 90, 23,227,165, 34, 4, 57, 86, 43, 53,102,238, 9,175,194,214, 20,170, 49, 50, 31, 73,183,115,162,103, 40, 43, 95,187,187,198,
+ 74,217,115, 77, 48,122,186,231,118,214,182,228,226,228,153,120,209,182, 92,191,113,157,148,208, 54, 81,227, 17, 99,129,189,134,
+ 74, 8, 70,206,242,137, 57, 3, 98,236,193,147,222,136, 45,178,107, 87,111, 16, 68,122,170,153, 56, 0,177,235,203,107, 82, 91,
+ 89,146,108,169, 38, 23,237, 35, 57, 62,216, 35,144,153,242,168, 44,211,179,201,168, 1, 76,153, 25,115, 81, 19,141, 90,181, 46,
+104,197,102,217,167, 86, 91, 28,102,228,214,213,170,140, 70,192, 41,152,253,156,207,243, 2, 31, 6,219,133,207,185,123,109, 69,
+202, 5,216, 94,223,245,150,147,151, 65, 52, 19, 15, 4,246,228, 42,137,156,224,143,163,125,197,249,198,121,159, 99,180,111,198,
+236, 56,214, 96, 98, 62, 27,210,102, 12, 90, 45,201,232,243, 74,179,109, 19,112,198, 31, 65, 64, 86, 29,233, 69,171,205,192, 44,
+225, 24, 75,243,122,214,112, 45,115, 74, 46, 39, 73,194,196,182,196,196,184, 20,112, 14, 22, 14, 29,118,198,215,235, 9,125,187,
+134, 36,177, 31, 22, 16, 24,171,157, 92, 10, 42, 49,195, 71,192,231,219, 84, 75,180,232,113, 47,202,221, 81,236, 42, 18, 17,171,
+145,231, 61, 59, 23,189, 81, 36,103,103, 67,105,181, 38,191,225,193, 96,240,103, 0, 59,252,119,238,116, 37,224,251, 96,235,166,
+174, 90,190, 72, 66, 76,253,205,218, 0,214,146, 77, 48, 24,128,179, 39, 0, 22,108,133, 0, 6,130,243, 97, 49, 18,154, 77, 27,
+163, 42,156,250,238, 86,154,101,164,195,254,156,101, 47,148,211, 65, 74,224,115,222, 59, 98, 41, 29,116,137,136, 26,176,161, 17,
+192, 70,209,111,244,211,113,124, 22,243,163,198,254,101,162, 28,236, 69, 0,140, 18,106, 68,167, 27, 42, 89, 88,210,236, 53, 36,
+ 21, 37,102,145,227, 82,196, 89, 81,207,137,114,192, 80, 15,135,224,208,173, 75,182,144, 35,192, 12,139,218,200,123,178,147,211,
+205,172,239,171, 64, 65, 44, 76,112,222,188,169,175,157,233,231, 38, 66,139,148, 49, 18, 53, 31, 4,114,126, 18, 73,115,160, 63,
+205, 83,249,147,175, 86,229, 72,207,237,243,238,156, 44, 90, 59, 87,182,100,171,145,148,213,124,192,209, 58,248,187, 79,247, 59,
+242,151,239, 28,114,211,174,213,178,178,189, 82,112, 35, 84,214,139,134, 28,237,206, 90, 73, 62,121,112, 38, 21,144, 86, 36,192,
+ 5, 63, 34,202, 30,216,132,233,168,207, 82, 24,254,229,193,163,202,155,190, 63, 99,165,216,245,106,134,165,100,180, 37,108, 67,
+ 24, 56, 36,165,145,113, 87, 55,192,121,199,198,140, 82,217,153, 92,223,206,105,224,227, 73,179, 59,209,195,174,107, 17, 78, 88,
+ 57,161,232,134, 68,108, 81,160,175,227,115,206,221, 74, 79, 36,108, 65,201,137,211, 1,117,121,120,172,238, 31,138,122,186,225,
+ 86,179,158,172,150,146,114,216,117, 36, 47,152,199,189, 84, 12,178, 22, 74,187, 63,145,193,204, 35,203, 21, 42, 11, 69,125,214,
+ 31,126,126, 40,119,175, 55, 88,242,135,225,100,194,224, 54, 38, 52,103, 9,174,137,108, 66, 0,129,193, 32,176,181,130,241, 26,
+ 65,213, 70,230, 60,192,200, 40,163, 82,138,227, 74,236,155,169,129,234,161,218,147,140,136, 71,216,220,170, 74, 67,157,235, 82,
+201,170, 12, 8,218,154,173,161, 58,148, 54,199,114,190,249,234,154,148, 50, 37, 86, 29,184,114, 14, 89,159,116,188,239,204,214,
+ 49, 7, 13,167, 26,218,250,160,220, 23,198,114, 9, 86, 90,144,173,120,151,236,126,134,253,152, 76, 48, 30, 20,211, 88,131,139,
+ 0,212,184,208,188, 70,123,163,158,143,101, 31, 0,156,160, 39, 19,253,239,217, 64,157,136, 6, 86,245, 74,222,130, 42, 71, 17,
+204,202,136, 19,156,161, 81,136,128, 78,239,233,115,119,101, 97, 53,232, 8,114,234,200, 58,244,123,143,245,207, 99,231,144,129,
+ 86, 47,171, 67, 7,107, 28,208,210,113,116, 44, 75,245,134,171,164, 37,216, 75,140, 98,251, 30,244,209,107, 26, 84, 31,106,118,
+139, 64,120,185, 94,167, 24,136,105, 2,204,232,204,216, 63,198,136, 16,218, 79,154,237, 36,213, 8,110,174, 46,201,119, 95,191,
+205,107, 67,239, 30,165,120,148, 38, 79,218, 61,217, 89,173,201,159,124,231, 43,242,158, 58,206,191,255,248, 1,101, 60,191,167,
+175,253,209,239,126, 67,207, 79, 32, 75,106, 88,201,186, 54,155, 59,198, 73, 3, 3,194,130, 38,124, 39,118, 4,167,174,191,219,
+108,212,104,168, 56,103,173,215, 14,188, 4,108, 4,128, 85, 16,248,192,250, 3,184,151, 39, 51, 28,176, 53, 35, 3, 40, 81,178,
+ 53,228, 56, 22, 28,112,235,188, 39,235, 43, 21,121,250,180, 35,141, 90, 81, 86,234,101,130, 45, 15, 79,219, 36, 92,249,226,225,
+115,205, 60,215, 41, 54,130,231,120,128, 32, 64, 63,167, 86,206, 49, 16,197,184, 41,159,121, 50,226,158, 48,176,105,104, 60, 7,
+ 32, 58, 1,209, 82, 63,228,159, 3,111,198,246, 4,106,120,137,216, 16,227,216,147,222,112, 74,146, 44,246, 99,129,162,206, 37,
+200, 82,136,253,197, 6, 18, 9,123,226, 75,160,224, 20,117,241,200,218,143, 8,100,150, 27, 13, 94, 19,250,194, 36,229,209, 51,
+184,189, 92,144,167,195,148, 85,137, 18, 3,121,126,220,149, 98,177, 32,181, 82, 70,230,227,132,188,244,242, 43, 82,173,229, 57,
+217,176,190,181, 43,205,211, 35, 61,119,214, 14, 69,229, 10,235, 93, 66, 96,162, 54, 4,180,179, 88,227,153, 38, 36, 0, 40,215,
+107,187,250,220, 81,165,184,144, 55,191,250, 10, 9,165, 34,181,193,153, 66, 93,206,154, 39, 50, 30,245, 25,160, 99, 41,102,142,
+179, 12,109,128, 76, 26, 18,210, 83,125, 93, 89,202,245,101, 89, 94, 42,147,150, 23,142,162,164,246,163, 59, 0,182, 67,215, 34,
+167,201,144,218,163, 79, 30,189, 96,101, 5,130, 56,143,143, 58,242, 95,255,240,170,126,198,166,252,217,255,251, 88,157,239,220,
+152,244, 60, 59,151, 28,185,117, 26, 1, 36, 38,115,124, 35,115,167,110, 8, 63, 18,184,177, 57, 95,131, 52,156,197,233,164,175,
+231, 81,147, 23, 61, 27, 83,245, 11,157, 78,135,129, 44,168,152,225,128, 59,160,206,141, 50, 12,188, 19,180, 39, 33, 19,199, 84,
+ 26, 85,160, 20, 91, 91, 9,183, 55, 71,131,174,156,158, 60,103,159, 62,233, 0,112,158, 94,247, 82,189, 40,245,245,151, 28, 26,
+ 63,102, 27,216,254,153, 95,250,180,200,113, 7,100, 93, 9,220,216, 85, 35,135, 35,138,216, 10,102,251, 47,229, 49, 65,129, 94,
+ 0, 90, 83,253,145,141,187, 98, 29,158, 31, 15, 25,200, 47,148, 30,237, 28,135,174,140,110, 32, 66, 92,167,241,120, 69,108,145,
+ 46, 84,216, 22,224,246,144, 85,112, 27,113,132, 15, 64,133,200, 19,239,146,122,218,254, 60, 55,217, 99,207,198,186,147,174,178,
+147,140,138,158,220,122,185, 44,185,167, 67, 2, 35,122,179,136, 76, 64, 8, 98, 33,122, 48,131,226,151,103,243,159,139,204,228,
+203, 34, 36, 17,153,177,244,128,140,251,242,237,235,121,121,118,145,208, 0, 1, 8,216, 57,231, 76,171, 85,148, 47, 49, 95,171,
+198,187,160, 7, 91, 29,227,195,233,144,229, 82,244,167,193, 37,238,163,111,173,198,187,154,207,208, 80, 32, 82, 69,169,102, 71,
+ 51,227,219, 53, 53,170,205,174,252,217,135, 39,236,215,162,219, 5,210,152,215,119, 42,236,187, 36,226,185, 17,154,232,218, 78,
+ 91,158,156,118, 52, 99, 95, 74,201,187, 29,163, 56,125,115,195,151,191,123,251,137, 58,158,152,194, 43,215,151,214,228,163,227,
+ 41,123, 85,234, 79,228,167,239, 31,179, 66, 1, 17,134,191,253,229,115,249,199,191,115,131, 64, 43, 3, 99,133,140,150,214,235,
+121,121,243,238,138, 92,128,143,218,131,128, 77,134, 45,132, 70, 37, 75, 57, 67,148,244, 39,250,160,174,175,151, 76, 34, 21,229,
+ 44,189,249,191,126,255,133,116,218,105,249,254, 87,243,204,230, 13,105, 26, 90,118, 60,155, 80, 99,254,228,124, 32,109,189,214,
+155,155,105,185,117,189, 40,216, 35,147,105,210, 70,221,244,181, 85, 61,204, 65,202,232,225, 39, 94,142, 15, 87,196, 69,157,112,
+106, 25, 95,131,128,169, 20,138,190,108,109,136,220, 63,136,136,220,157,234,193, 94, 85,107,213,211,131, 83, 45,101,137, 94,231,
+ 70,250,210, 44, 5,174, 21,109, 0,148,228,209,215, 7,167, 57, 56, 10,160, 89,207,153, 80, 16,185, 76,125,246,185, 16, 37,154,
+108,161, 26,170, 82,142,189,247,141,138, 26,177,106, 78, 62,122, 50, 34,114,149,125, 48,189, 39, 4,110,120, 38, 40,201,205,117,
+239,244, 96, 4, 57,128,111,228, 54, 23, 99,140,255,232,186,174,151,233, 8,111,173,169,105, 85, 67, 51, 85,163,242,206, 7,135,
+154,161,105,182,124, 52,148,240,182, 26, 29, 15,142,214, 64, 80, 9,167, 93,157,242,211,172, 38, 5,212,242, 54,128, 35, 12,116,
+129,108,111,142,146,119, 62,115, 56,145,200, 1,101,204, 9, 65,199, 96, 52, 2,158, 96,198,234, 75, 87, 51,213,245,122,130,213,
+ 7,140, 47, 1,151,121,112,218,147,243,243,177,204, 86,117,239, 66, 25,207, 79, 17, 49, 31,187, 8,123, 58, 55, 7, 78, 42,106,
+142, 84, 58,166,122, 16,230,244,251,242,151,191,252,216, 0,163, 32, 87,201,229,120,144, 81,222,133,161,131,243,169, 87,202, 28,
+241,131, 67, 7,138, 29,253,180, 86,231,130,189,116,148,109,171, 24, 61, 42, 96, 68, 50, 43, 75,149,170,241,138,187,209,180,154,
+102,129,120, 54,152, 77, 70,201, 26,227,101,224, 70, 71, 86, 14,208, 31,162,122,202, 95,114, 6, 60, 45,121,125,253, 82,185, 32,
+112,119,141,162, 26,109,117,230,231, 26, 28,252,249, 79,127, 37,167,221,129, 20,212, 80,255,163,111,188, 42,119,174,108,200, 55,
+127,235,171,242, 98, 56,145,243,123, 15, 73,199, 11, 33,159, 12,133,232,103, 18,129,158,153,170, 41, 41,222,111, 14,149, 16,135,
+170,173,151, 75,134,175, 88,244,211, 89,233, 89,101, 2, 16, 80,244, 66,237, 10,131, 65,115, 26,211,169,169,172, 5, 28,229,131,
+170,161,190, 31, 1,178,174, 81,251,188,203,242, 38, 40,129,203, 5,168,151, 25,122, 26,146,156,232,185,162, 45, 3, 70,202,144,
+244,186, 25,106,132,175, 47,151,169,150,133,224, 6, 61,203, 68,228, 57,164,125,146,149,140, 20,201, 97,192, 21,156, 33, 65, 11,
+ 72, 83, 48,251,158,211, 12, 28,108,211,193, 80, 40,125, 26, 39, 98, 42,187, 77, 28,234, 58,197, 64, 60, 71,144, 39,104,166, 83,
+ 73, 4, 37, 17, 41, 65, 11,154,229, 6,243,169,209, 10, 75, 78,131, 27,107, 69,148, 53,248,130,128, 11,197,131, 80,185,210, 0,
+ 42,151, 52, 5,197,104, 2,204,199, 68,158,159,118, 37, 15,240,164,190,127,125,117,131,213,190,195,230, 80,191,115, 44,149,250,
+140, 1, 41, 4,122,194,216, 50,200,136, 65,188, 85,252,150,151, 54,244,239,198,156,238, 41, 53,174,243,249,215,235, 53,125,206,
+183, 37, 87, 66, 10,218,147,253,115,117, 82,195, 83,158,155,116,190,164,193,201, 72, 70,157, 46,131,108, 4, 80,100,223, 99,181,
+ 4,207, 35, 67,161, 38,172,251,149,141,134, 92,221,200,203, 69,103, 44,167, 77, 61,243,201, 18,215,187,168,193, 71,175,255, 88,
+247,231,136,163,115,216,143,255,234,111, 62, 37, 94,229,160, 61, 33,241, 20,213,243, 28, 86,155, 65, 55,156, 97,104, 85, 79,164,
+126,176, 87, 28,109,228,125, 37, 89, 29, 49,153, 98, 8,105,169, 63, 24,163,162,129, 64, 53,144, 98,182, 34, 37, 13, 6,123,234,
+156,251,131,115,182, 17,170,249, 80, 42, 57, 77, 72,226, 20,155, 58, 64,203, 35, 99, 95,224,204,176,199, 32,197, 59,209, 32, 6,
+184, 38, 40,242,193,167,130,140,172, 90,173,176, 42,128,140,254,162,125,166,223,145, 34, 43, 41,170, 66,105,125,222, 28, 1, 68,
+229, 41, 90, 32,217,231,156,252,192,216, 40, 41,140,163,145, 28, 31, 93, 48, 8, 97,114,171,207,165, 92,174,104, 18, 58, 98,162,
+130,117, 76,164, 50,180,203,228,125,153, 91, 34, 20, 57,109, 13,207, 85, 19, 57, 1,228,156, 58, 43,166,177,189, 38,118,127,127,
+ 89, 87,244,253, 47,143,206,155,120, 89,210,210,176, 48,252,146, 4,118,104, 99, 40, 11, 41,104, 40, 22, 18, 12,136, 12, 23, 51,
+213,235,187, 89,201, 23,102,242,226, 36,148,158,110,190,147,238, 76, 55,163,149, 86,187,211,190,147,244, 12, 47, 75,160,151,227,
+125,164, 98, 12,229,180,213,147, 63,186,147,149,168,234,201, 23, 7, 93, 82,113,214, 82, 86, 6,173,232,115, 72,231,113, 49,234,
+ 60,117, 97,159, 39,141,175, 23, 96, 29,140,133,245,103, 89,246,244,210, 14,232, 80,203,121,242,242,146,200,114, 89,183,144,102,
+172,109, 53,192,127,245,225,169, 62,248, 57,213,195,126,244,221,146,108,169, 3,133,243, 4,184,204, 7,215, 51,156, 41, 22, 7,
+101, 10, 93,148,183, 94, 47,203, 92, 51,230,147,139,145, 60,217, 59,101,214,137,135,253, 83,189, 6, 80, 48,162,223,142,205,117,
+214, 26,177,119, 5,123,245,120,255, 66,254,246,221, 23,242,163,111, 93,225,198, 36, 1,220,220,122, 46,175, 92, 91,146, 51,205,
+ 58, 65, 65, 15,150,167, 61,125,223,118, 38,150, 91,119,234,106,108, 35,249,249, 23,109,205,234,115,242,242,110,158,179,253, 40,
+239,126,250,240, 84, 55, 91, 74,190,114,123,149, 61, 43,244,207,169,222,133,185,114, 32,139, 51,160,243, 44,201,217,249,137, 12,
+ 70, 62, 51,254,181,106, 74,114, 60,112, 30,169,119, 1,192,163,216,169, 62,179,141,122,206, 84,138, 34,131,200,145,172,198, 79,
+202,103, 7, 19,121,171,174,209,124, 70,179,186,130,102,137, 35,145,171, 75,190,188,180, 26,201,253, 61,141,236,211,136,234,244,
+ 32, 77,130,255,136,195, 24,217,246,170, 58,229,238,196,103,239, 11,165,156, 72,141,226,171, 55,235, 22,185, 70, 86,225, 8,157,
+200, 12,199,149,244, 53, 69, 53,180,221,161,209,142,230,171,232,231, 38,165, 51,156,235,225, 79,202, 31,253,246,174,113,183, 35,
+138,173, 22, 13, 60, 41, 19, 39,159,154,112,224, 54,227, 95, 70, 9,245,228, 76,179,198, 90, 77, 80,101, 12,144,161, 78, 3,215,
+143,247,152,173, 67, 60, 3,198, 14, 7, 73,146, 89,215,239,119, 2, 76,177,127,217,195, 53, 3,104, 64,201,134,222, 19,184, 10,
+ 80,186,155,133,129, 27,217, 9, 57,143, 12,206,132,182,254,156,169, 49,106,233, 51, 4,174, 67,252,162,190,223, 14, 26,132, 50,
+ 48, 18,231,187, 81,150, 3,189,190,227,246,140,184, 2,181, 49,140,156,205, 65,199, 78,227,222,215,251, 8, 76,148, 5,243,231,
+ 23, 23,100, 42,131,128, 7,162,123,100,173,195, 89,207,230,117, 33,243,154,201, 49,171, 61, 62,111, 89,133,202, 55, 32, 17, 12,
+ 3,250,212, 4,196,169,193,107,182,154, 6,220,116, 6,184,221,239, 90, 6, 4, 6,188,241,136,226, 26, 13, 53, 44, 8, 48,209,
+230, 1, 37, 40, 84,180,170,197, 10,199,170,186,195,129, 58,219, 10,217,213,128,143, 64,182,211,235, 13,168, 75,253,218,213, 13,
+249,234,173, 29,130,227, 64, 30,210, 40,231, 41,155,249,191,252,203,255, 75,154,234, 60, 49,198, 58, 81, 35, 91,252,245, 67,205,
+226,170, 82, 84,131, 12, 73,228,186, 26,199,216,113,254, 27, 71,190, 71,133,179,135,251,103,228,241, 71, 32,135, 89,100,100,116,
+168,118, 1, 60, 53,119,202,125,111,222,220,150, 43,215,175,203, 63,188,243, 62, 73,153,224,220, 81,206, 46, 23, 50,186, 62, 41,
+ 53,226,190,174,243, 68, 30,105, 48, 7, 80, 26, 72, 84,230,243, 14,129,114, 32,106,154,103,234,242,210,171, 85, 58, 37,100, 67,
+231,195, 64, 38,135, 26,128,117, 78,164,221, 27, 75,161,177, 67,163,141,128,107, 87,179, 93, 60,251,148,238,221,241, 40,203, 74,
+ 81, 82,109,196,206,181,149, 75, 41, 97,216,139,180,152, 30, 66,120,153, 73, 89, 53, 2,229,222,197,168, 18,144,234, 72,162,138,
+211,192, 18,155,200,248,190,109,124,212, 35,255, 57, 20,219,170,186,214,155,155,187,114,116,214,148,251,143, 31,202,238,238, 45,
+126, 22, 8,104, 78, 33, 91,221,238,144, 94, 56,157,246, 57,171, 61,132,118, 67, 18,137, 70, 74, 78,143, 79, 57,150,219,237,118,
+229,249,139, 3,185,113,125, 87,159,199, 9, 19, 7, 42,155, 37, 76,172, 6, 28, 29, 51,150,176, 53,155,174, 46,201,206,213, 77,
+181,111, 67,125,174, 35,105,237,239,203,175, 63,216,151,171, 87,182,217, 90, 40,104, 38,222, 30,154,172, 50,166, 11,234,213,154,
+140,251, 67, 35,179,242, 77,137, 48,153, 45,235,107,243,178,181, 82,213,235, 25,113, 52, 53, 10,219, 70, 84,133, 22,192, 48, 38,
+247,125, 81,247, 50, 24,251,154, 26, 4,190,180,187, 34,107,203, 43, 12,114, 30, 30,180, 40,207, 10, 76, 6,218,132, 8,198,216,
+ 6, 68, 21, 47,178,254, 55,218,177, 99,240, 52,120, 78,129, 18,109, 44, 36, 77,129, 1,191,208, 10, 56,239,156,115,228, 52, 26,
+163,196,214,148,157, 43,250,252, 66, 76, 92, 13, 56,166, 56, 82, 71,221, 62, 59,214,164,115, 87,118,182,150,164,167, 89,124,186,
+ 81,226,200, 39,167,109,212, 65,223,127,122, 34,251,135, 7,172,204,208,201, 82, 48,201,132, 98,192, 40, 56, 30,119,168, 35, 2,
+219,116,245,234, 21,233, 77, 51,210, 88, 94, 39, 89, 86,183,115,170,191,159, 50,211, 53,187,239, 81, 36,107, 56,177,245, 7,127,
+ 20,130, 2,210,114, 19,155,131,164,119,104,246, 23,149,177,129,238,191,114,226,114,238, 62, 94,160,237, 29, 40, 27,149, 91, 27,
+249,156, 75, 74,236,119,147, 32,188,212,208, 72, 56,189,139, 47,243,198, 47,250,237,172,134, 71,214,139,183, 62, 63,112, 7, 9,
+ 75, 92, 66,219, 67,216,187,148, 5,142, 77, 24, 41,249,228,185,241, 6,167,220, 70, 47,100, 66, 57,106,235, 70,153, 8, 9, 58,
+ 22, 89, 57,126,126,239,149, 53,142, 7,193, 57,101, 19, 80,150, 50, 22, 50,148, 9, 48, 47,140,153, 89,148,255, 48, 38,210, 1,
+152, 70,163, 75,244,129,112,157,141,186, 79,128, 7,140,223,148,116,150,186, 56,249, 20,153,158, 78, 52,114,109,158,247, 89,123,
+192, 33, 6, 58,251,149,223, 91,147,164,102,143,147, 81,200,190,147,135,114,179,166, 13,141, 90, 78, 62,123,218,150,245,149,162,
+ 92, 89, 43, 49, 82, 73,194,233, 76, 34, 55, 87, 24, 90,246, 4,227, 15, 64,189, 46,227,171,183,150,229,189, 79,154, 28,239,120,
+182,223,213, 77, 49, 98,207, 43,156, 59, 81, 12, 44,154, 46,198, 87, 95, 90,211, 13,156, 34, 83,211,114, 37,119,169,194, 68,130,
+ 7,252,228, 26,210,156,248, 28,127,187,182,189,164,175,211, 72, 77, 55,227, 64, 63, 23, 37, 23,148,226,128, 4, 71, 78,248,193,
+ 3,112,202,207,184,105, 63,124,112, 44, 95,127,117,147,235,148,240, 13,111,144,200,230,121, 13, 85,253,255,171,235, 5,110, 14,
+ 68,183, 52,152,158,245,166,218,122, 79,111,223, 59,145, 38,144,214, 43, 21,249,254, 27, 89,102,127,145,219, 52, 67,253,222,211,
+ 81, 68,212, 55, 21,214, 0,160,209,107, 91,207, 38,228,206,154,176, 85,112, 99,171, 44,159,237,245, 56,226, 7, 81, 28, 56,167,
+219, 59, 21,215, 67,207,112,102, 87,156, 38, 59, 28, 25,214,168, 63,178, 40,158, 34, 27,236,203,134, 54, 95,239, 16,165,126, 4,
+173,120, 83, 83, 27,183,166, 12,206, 50,154, 37, 99,146, 97, 55,155, 52,234, 6,207,152,237,224,144, 72,136,129,117,196,134, 78,
+ 90,233, 62,147,245,228,206, 78, 89,114,250,190, 49,178, 46, 80,153, 38,230,100, 85,195,252, 54,198,148,198,227, 57, 55, 61,156,
+ 18, 56, 17, 24,204, 88, 84, 73, 3, 30,185, 49,192,216,177, 70, 1,193, 75,242, 25, 53,248,208,113,134, 84,238, 60,101, 25, 2,
+ 50,181,124, 58, 36,133,231,246,154, 47,191,126, 8, 54,183, 88,174,172,164,245, 39,111, 4, 48,250,194,199,135, 3, 13,148, 82,
+204,132, 80,114,197,115,253,240,139,115,249,230, 43, 53,106, 6, 32,170,247, 83,161,171,116,136,225, 39,116,139, 63, 84,131,242,
+233,243,167,116,178,112, 88, 73,210,176,138, 99,173,179,214, 7, 50,107,128,223,144,113, 19, 88,231, 16,188,216,183,229, 74,129,
+127,191,220,168,201,222,177, 58,170,126,207, 80,189,142,178, 51,114,138,132,198,199, 61,166,193,232, 14,251,166,128,150,206,176,
+ 2,131,239, 42, 21,234,164,111, 69,159,119,109,169, 66,156, 7,190, 51,237, 27,137,203,139,195, 51, 10, 24, 61,222,123, 78,212,
+ 61, 28,243, 71, 79, 94,112,223, 49, 40, 70, 57, 60,157, 35,173,237, 47,127,253,148,165,100, 4,189, 96,188, 67,198,191,181,218,
+144,205, 90, 73,106,234, 40, 48, 47,221,236,104, 70, 95, 49,128, 26,218, 79, 23,104,191, 16,196, 40,204,146,231,228, 47, 0,173,
+238, 68,142,143,247,228,197,209,129,102, 91,115, 13,202, 55,229,141,151,110, 81,205,176,165,198, 6,218, 5, 51,253, 57, 87,103,
+135,169,240,195,179, 11,150,220,225,196, 61,210, 85,155, 20,113, 15, 66, 46,112, 56,112,186, 61, 35, 96, 33,170, 25,165, 92,150,
+ 32,167,226,101,244,108,165, 66, 50,188,129, 47, 65,156,102, 55, 0, 93,168, 40,161,162,146,156, 69,214, 94,144,216,181,180, 60,
+158, 23, 76, 21,128,196, 10,140,134, 8, 38, 11,200,202, 10, 37,102,133,195,161,241, 71, 0, 20, 8,231,132,105,155, 4,207,236,
+ 76,188,138, 39, 5,125, 93,251, 2,128, 56, 19, 64, 65, 32,213,237,117,152,120,116,251, 3,233,232, 86, 88, 66,155,113, 52, 97,
+191, 57,239,101, 13,220,120,142, 25,245, 50,247,250,105,179, 37,119,110,223,144, 91, 55,118, 53,187,222, 55,110, 11,189,215,219,
+187,187,106, 91,183,109,116,115, 52,151, 23,167,125, 61,207, 77, 89,203,233,147, 31, 33, 49, 82,167,164, 1,227, 89, 39,144,171,
+155, 5, 26,251,221,181,154, 60, 7,211, 29,122,239,250, 76, 94,122,233,154, 62,215,162,141,204, 57,241, 21,100,159,104,135,164,
+ 19, 1,193,134,199,167, 99, 13,204,212, 39,140, 52,184,235, 37,164,213,156,104,144,113,131, 21, 57,156,241,157,181,170,100,115,
+ 37,182, 93,215,151,133,189,110,204,202, 35,107, 7, 19,220, 92, 50,172,180,142,135, 41,130,118, 48,146,219, 40,229,245, 53,171,
+ 70,118,229,103, 88,165,227,136, 27,170, 41, 25, 35, 15, 91, 94,169, 73, 49,179, 34,149,146, 94, 59,159, 95, 66, 6,253,164, 84,
+138,117,218, 11,236, 97, 84,104,193,156, 9, 60, 67, 78,215, 58, 32,150,198, 39,231, 6,130, 39,112,243,115,130,199,139, 24, 84,
+146,242, 94,131,139,233,160,101,115,235,234,143,176,207, 65,164,150,215, 96,114, 78,173,132, 64,191,167,173,182,123, 74,159,228,
+ 57, 86, 63,180, 66, 32,143, 59,209,253,187,218, 88,150, 90,181, 42, 75,249,162, 94, 67, 69,191, 91,215,249,228, 72,186,154,245,
+131,223, 96, 58,106,203, 69,251,132,159,133,107,109,172, 92,231, 90, 44,170,162, 1,171,171,134, 57, 42, 37, 3, 6, 10,240,175,
+ 70, 19, 28,186,236, 63,186,100,103, 68,224,158, 78,186,177,192, 75,167, 30,153, 63,154,155,144,215, 98, 90, 8,206, 62,116,224,
+102, 2,241,176,183,127,252,110,151,233, 63, 22, 7,206,182,145, 30,202,141, 70, 86,238, 55,133,165, 72,147, 21, 68,233, 46,163,
+206,160, 68, 66, 25,100,241,236, 63,197, 38, 76, 17, 83,147,219,147,227,177, 71,238, 97,148,111,107, 75,203,226,169,115,153,128,
+ 14, 81, 15,231,113, 43,164,200,194,193, 97,155,172,106,232, 7, 53,251,145, 46, 86, 65,157,120, 82,127,143,197,157, 88, 73, 85,
+157,195,253,107, 89,153,119, 53, 10,188,152,200, 65,123, 32,121, 28,234, 92, 70,163,182, 41, 75,166,127,245,243,103,242,219, 95,
+223,150,173,229,146,222,212,148,189, 27, 0,115, 80,202, 36, 98, 26, 84,169, 36, 11,240,229, 43,175,108, 17, 32,241,236,104,100,
+ 40,199,228, 98,222, 57,162, 67,195,189,131,148,224,250,118, 85,190,121,103,153,193, 7,122,125,144,129,197,107, 9,114, 99, 63,
+ 54,102, 32, 3, 98, 28,244,201,231, 81, 74,141,143,103, 76,116,200, 30,212,192,205,134, 61, 18,221,252,234,211, 67,246, 33, 17,
+ 25,191,255,217,145,172, 47,149,101,173,158,163,177,131,145, 52, 80,152,245,197,119,214,202, 26,252, 76,100,222,155,169,241,139,
+164, 51,134,150,188, 81,240,130,173,239,188, 61,102,192,243,162, 85,214,181,202,112,243, 96,237, 47,244,215,195, 57, 39,221,165,
+175, 75, 48,238,219,184,212,205, 21, 84, 70,132,196, 57, 40, 47, 98,166,250,241,193, 80,178, 26, 33,163,204,247,106, 54, 65,244,
+122,180,208,223, 69,100, 10,253,237, 9,116,143, 99,130, 78,240,255, 66, 28,161,149, 1,123, 26,165,151, 48, 7, 29,155,163,193,
+122,122,234, 32, 91, 35,220,119, 79, 52,246,146, 84, 96, 1, 85,232,202, 78,152,203,135, 51, 71,214,103,228, 37, 54,146, 5,206,
+106,100,202, 24, 29,171,107, 0,215,239,142,200, 86,135,204,247,218, 82, 36,155,165,172,201,176,206,251,114,114, 48,190, 36,133,
+ 24,207, 46,100, 48,115, 37,170,132, 33, 67, 47,153,155,220, 97, 36, 75,154,254, 57,187, 94,231,124, 57, 14, 67, 76, 5, 43, 35,
+ 40, 89,114, 37, 98, 72,184, 6,175, 70, 12, 92,241, 83, 91,139, 53,218,239,200,233, 73, 71,215, 41,197,192,196, 72, 83,230,228,
+ 33,135, 49,141,216,195, 70,230, 25, 51,184,213,144,149,242,175, 8, 68, 6,147, 1,175, 25,178,168, 64,103, 95,160,231,205, 30,
+219,156,251, 18, 8,119, 80,136,162,116,158, 36, 5,176,207, 67,142,234, 72, 78,157, 50, 28,253,238,198,134,236,157,156,169, 65,
+ 25,235,186, 7,174,188, 22, 25,192, 38, 54,240, 23,104, 61,193, 89, 80, 68,171, 96,110, 72, 94,144,110, 44,122,117,221, 65, 95,
+ 86,234, 13,102,187,126, 50,199,209, 49,202,184,170, 35,126,105,107,153,164, 57,121,125,239,179,125, 51, 22, 0, 53, 66,168, 3,
+ 21, 53,163, 36,213,172, 89, 63,239,188,215,151, 27,155,203,234,164, 39,106,220,198, 68,213,163,132,254, 72,179, 51, 60,139, 43,
+235, 75,106,208,199,106,248, 7,188,135,208,105, 4, 64,218,119,228,232, 60, 23,153, 8,158,125,187,215,149,240, 81, 72, 14,125,
+202,153,234,254,122,231,211, 7, 84, 99,220, 90, 91, 85, 71,180, 42,123,154, 41, 2,253,206,182,137, 26,104,240,236, 39,196,112,
+ 18,208, 30,143, 72,120,101, 1,131,105,178,199, 6,146,194,120, 84,128,202, 98,130,107, 68,118, 74, 13, 20, 61, 93, 87, 4,165,
+ 48,228,158,239,148,232, 76,174,219, 72, 70,225, 88,213,129,132, 25, 99,166, 4,174, 6, 68, 53,104,181,162,181,144, 77, 26,144,
+ 10,200,119, 50,117,161,218, 2,193, 36,223,168,136,187, 23, 23,108,145,225,249,161,236,142,140, 22, 78, 24, 64, 71,203, 32,145,
+217, 37, 77,145, 78, 51,222,130, 63, 48,133, 68,117, 32,161,126, 78,167,121, 42,157,206,166, 38, 60, 85,125,110, 99,102,132,231,
+231,231,242,254,251,239,203,239,255,240, 7, 38,192, 52, 55, 53, 67,104, 76,132,115,219,203, 19,181, 49,185, 88,215,190,217,151,
+205,141, 85, 13,220,179, 26,124,249,106,223, 2,105,157,238,107,130,131, 10,135, 71, 44, 20,196,150,158,156,181,228,250,238,134,
+ 60,122,246,152,235,178, 92, 95,210,128, 38,199, 22, 79,181,156,101, 85, 16,179,245,213,114, 68, 1, 24, 84,155, 80, 53,109,235,
+153,223, 80, 95,112,126,246, 66,131,221,150,172,168,173, 6,152,249,184,211,227, 94,155,134, 73,102,161,144,136, 94, 93,170,114,
+143, 52,193,133,160, 14,120,185, 86,117,142,212,215,189, 61, 34,129, 18,176, 64, 8,154,174,172,148,101, 4,249, 93,223, 90, 74,
+ 80,227,195, 28,188,239, 36,168,193,234,136,118,210,234,114, 85,162,122,129,231,228,230,181,107,114,113,113,206, 96, 99,107,107,
+ 75,175,233,152, 0,204,134,238,245, 86,123, 78,132, 61,132,144,172,114,108,160, 53, 0,102,203,165, 26, 69,108,166,154,241,195,
+249,163, 53,133, 96,119, 78,100,187, 41,228,101,147,117,121,122,216, 52,194, 32,253,119, 28,204, 24,180,225,218, 1,230, 4,231,
+195, 69,183, 67,219, 87, 44, 22,137, 17,128, 92,121, 20,218,108,191,199, 25,255, 57, 91, 2, 17, 81,248,216,171, 38,229,123, 57,
+ 99, 14,113,199,241, 72,175,215, 99,130, 49, 28,196,142, 92, 50, 36, 88, 16,175, 93, 72,113, 91,160,105,253,248, 5, 38, 40,225,
+ 91,245,200, 64,209,190,163,101,118, 10,118,174,248,138, 0, 1,227,185,201,246,112,100, 72, 59,125,209,193,241,185,188,181,225,
+203,119,191,177,166,206, 98, 44,123,157,144, 6, 15, 14,235,229,109, 93,120,125,128,233, 98, 66, 31, 42, 30,236,196,136, 83, 22,
+232, 98, 32, 28,167,115, 26,156,107, 91, 75,234,208,139,220,192, 38,244, 59, 53, 61,238, 76, 36, 23,173,136, 52,170,232,169, 65,
+222,180,141,113, 26,141,144, 87, 52, 97, 92,133, 64, 70,148, 32, 8,225,193,211, 83,141,234, 83, 28,107,194,168,148, 41, 24,205,
+153,225,192, 9, 29,159,245,229,175,127,254, 84,190,241,198,166,102,236, 21, 19,168, 72, 88,118,154, 97,249, 34,102,127, 56, 73,
+ 71,239,201,239,125,125, 71, 13, 82, 79,126,161,153, 47, 22,101, 58, 49, 78,112, 56,235, 82, 57,207,178,240,255,243,139, 39,236,
+225, 93, 93, 43, 91,169, 19,200,115,140,171,184,204,159,100,173,190,201,198, 70, 14, 48, 56,214, 47,157,129,157, 14, 40,218,137,
+110,210,193, 64,238,191, 24, 73,175, 15,233, 72,147, 18, 29,169,227,251,232,193,169,252,225,183,174,152, 40, 11,178,241,121,116,
+201,150, 6,170, 69,108,234, 71,135,106, 64,245, 51,250,250,157,181,140, 70,237,167, 93,205,172,186,252, 30,244,189,158, 31,116,
+229,230,149, 26, 75, 85, 19, 61, 80,227, 40, 99,147, 8, 16,207,208,117,122,160,135,122, 89, 15, 88,173, 20,147,238,149, 85, 8,
+112,149,151,211,114,109, 35,214,207, 31,107,148,153,145,243,254, 92,131,146,228, 37,216, 12,115,219,211,153,174,233, 69,168, 70,
+124,238,202, 80, 32, 1, 66,118, 29,145, 32, 38, 28,171, 33, 73,175,144,238, 55, 8, 13,184, 97, 12,128,154,133, 12, 39, 6,244,
+ 72,218,204,242, 2, 96, 50,163, 74, 41,230,182,199,220,248, 28, 1, 35,194, 88,175,245,177,222,203, 86, 65,174, 52, 74,156, 48,
+ 8, 1,128,241, 52,100, 74, 67, 84, 37,114,115,162,234,220,166, 49,179, 52,176,205,161,231,159, 79, 8,177, 16, 45,141,216, 35,
+ 94,103, 98,161,122,233, 84,241,124, 25,128,201, 16, 61,188, 40,127,169,129,108,204,133,241,101,159, 29,192, 48,140,146,168,221,
+ 20, 76, 95,193,193, 85, 42,121, 89, 90,173, 73, 87,141, 22,214,248,193, 19,125,142, 26,104, 37, 22,124,251,177,149,119,135, 12,
+126, 52, 40, 43, 68,242,201,147,231,114,166,217, 25, 14, 62,169, 90,213, 73,193, 48, 46,120,161, 11, 28,253, 74,234, 62, 30,113,
+173, 50,110,124, 5, 78, 15,172,113, 64,188, 99, 94,253,181,155, 55,165,165,134, 2,232,120, 56,215,105,127,122,169,210,231, 45,
+116,149,245, 58,214,170, 37,222, 15,166, 45, 80, 81,162, 40, 15,152,229,128,140,206,229, 24,245, 99, 94,253,182, 26, 65,124, 54,
+ 0, 71,152, 59, 71, 9,187,161,153,118,134,194, 39,125,170,137, 97, 57,208,155,199,141,173, 47, 55,248,249, 48,148, 51,182, 42,
+230,114,222,237,169,193, 46,208,209, 33,251, 47, 36, 76, 50, 21,103,231,201, 81,147,192,188,206,160,167,217, 85,145,231, 47,162,
+158,125, 96,165, 68,183,214,145,147,163, 4,184, 11, 97, 73,119,136, 76, 48,188,236, 21, 34,107, 4,191, 58,152,212,188, 75, 82,
+ 13, 97,160, 1, 37, 55,244,231, 49,197,129,146, 46,218, 39, 83,199, 64, 24, 57,106,105,244,236,145,109, 34, 11, 15, 98,204,107,
+152,162, 31,198,179, 16, 84,227,245,104, 3, 88,164,238, 93,114,106, 47,228, 82, 57,210,230,120,202, 17,164, 0,252, 25,134, 86,
+ 58,165,242, 87,140,207,152,240,236,135,129, 17, 4, 33,211, 7,231, 5,198, 65,209,127,133,202, 90, 93, 29,217,208, 77, 1,192,
+238, 97, 26, 1, 83, 13, 51,135,196,135, 1,206,229,241,236,179,180, 31,243,217, 64, 63,123,164, 54,176,201,146,124,185,178, 34,
+249,212,148, 45,164,230,241, 19,121,254,228,166, 58,218,134, 60,248,228,125,125,134, 23, 12, 20, 38,110,150, 58,212,251, 68, 21,
+235,238,173,107, 26, 36,149,105, 3,174,109,168,243,210,108,122, 48, 90,210,164,103,192, 76, 23,192, 67, 84, 87,118, 55, 55,212,
+169,205, 53,105,217, 32, 16, 23, 10,117, 80,225,220, 63,236,200,195, 39, 67, 57, 59,126,196, 49, 90, 76, 55, 97,220, 19,215,140,
+ 61, 92,214,231, 26,168,141,185,166,137,211,126,171, 79, 76,213,186, 58,196, 9, 48, 68,144,149,197,108,185, 58,181,241,112, 78,
+178, 26,244,234, 87,116,127,218, 51, 76, 72, 83,131,245, 10,144,245,152,199,215,245,223, 59, 57,151, 52,116,219,139, 33,147,173,
+171, 27,117, 62,139, 86, 31, 34, 62,125,217, 88, 90,146,161, 62, 47,180,123, 39,103,231,204,156,235,181,186, 52,245, 62,244,106,
+245,190, 46,100,103,115, 75, 30,237,157,202,222,254,190, 38,132, 53,121,244,162,165, 54,163, 76, 10,112,156,127, 84,132, 80,201,
+ 66,213, 46,138, 38, 26,120,157,203,254,254,158, 44,175, 93,213,207,170, 81,175,225,180,123,100,147, 26,152,192,208, 51,131,140,
+125, 14, 9,242,132, 85, 35,137,127, 16,227, 86,193, 20, 19,125, 15, 71,149, 83,196, 53, 0, 79, 19,204,198, 82, 42, 53,200,111,
+129,172,186, 84, 14,140, 31,160, 57,160,112, 13, 41,167,195,240,114,244,149,213, 36,128,108,231, 8, 0, 18, 84, 6, 76, 39, 92,
+ 79, 28, 32, 15,200, 99,198,151, 12,179, 86,113,118,106,108,240, 95,160, 65,247, 92, 54,110, 42,157, 86,158, 7,242,105, 33,104,
+134,214, 99, 30, 54,123,189,156,160,145,204, 35, 82,154,107, 38,167, 27, 2, 44, 76,119, 86, 83,114,208,153, 73,187, 51,150,122,
+ 41, 35,215,171, 26, 61, 12,251,252,130,205, 92,164, 81,225,144, 55, 78,173, 92, 82, 65, 26,141, 36, 16,147, 56, 84,249, 57,192,
+ 98,198, 70, 87, 80,103, 14,246,167, 88,157,220,119,190,178,101, 3,254,122, 96, 78,154,161,252,244,221,167, 44,211,254,209,119,
+175,202,213,213,178,101, 92, 60, 4, 14,159,173,239, 95, 93,157,202, 82,107, 36,207,213,193,157,158,143, 88,118,249,238,155,155,
+ 4,128,161, 44,116,109, 5, 98, 44, 73, 10, 35,224,253, 86, 86,243,100,239,180,163,155, 58,205,153,123, 82,157,130, 3, 59,242,
+ 77,205,198,183, 12, 53,149,181,172, 12, 76, 84, 88,176, 15,239,159,208,201,102, 18,254, 37, 24, 33,225, 80,156, 36, 7,112,140,
+ 68,134, 60,247, 57,179,140, 17,131, 55, 95, 90,150, 79,213,113, 63, 57,155, 48,155, 95,169,103,245,144,207,201,143,140,123,217,
+ 63,234,106, 36, 59,213,195, 87,102, 20, 57,152, 79,216,167, 1, 1, 10, 38, 6,240, 15, 42, 26, 23,106,224, 80,238,158, 13, 99,
+210,159,130,176, 7,125, 85, 24, 54,244,152, 83, 48, 92, 26,129,247,167,105,110, 22,236,135,138,174, 67, 71,215,119, 73,163,202,
+237,101,104, 24, 59, 72,246, 66,150, 16, 61,193, 74, 70,174,234,181, 62, 57,153, 80,112,130,226, 60, 95, 34, 48, 56,185,152,200,
+126,115, 34, 94, 10,101,213,132, 99,212,139,212,152, 36,165,154, 84,131,176, 94,148, 56, 17,202, 11,240, 78,167, 12,196,103, 6,
+ 76,215, 93,179,157,166, 58, 25, 15, 44, 34, 98,253, 31, 89,232,201,131, 57, 42,145,227, 78,197,136, 97,189,192,165,212,107,208,
+251, 81,103, 3,105,221,187, 55,235,242,206,175, 15,228,222,131,115, 39, 5, 26,186,210,186,153,121, 32,127,183,214,242, 68, 57,
+ 35,200,131,200, 16,250,234,200, 0, 43,154,105,248,145,121, 2, 24,121, 56,244,214,185, 58,184,212, 80, 42, 57,187,119, 60, 39,
+140,156,205, 40,239,106,207, 21, 10, 84,179,137,103,179,169, 49, 70, 16,213,168,135, 37,130, 0,219,237, 46, 9,136,170, 21,244,
+170,109, 76,237,172, 13, 17,153, 33, 29, 75, 50, 3,112, 40,208,186, 19,102,170,200, 66,208,199, 6,183,252,177,190,151,101, 56,
+ 0, 10, 65, 91,169,215, 53,134,106, 8,123,107, 41, 82,251,162,132, 6, 37,181,139,254, 64,142, 91, 45,185,115,245, 10, 29, 15,
+148,213, 18, 9,223,245,172,141,127,128,242,168,145,149,223, 65,248,114,117,107, 91, 86, 53, 99,138,212,168,124,248,248,133,116,
+103, 17, 51,201,102,251, 66, 26,250,153, 75,106,184, 78,154, 45,199, 72, 54,100,214, 15,112, 38, 12,221,145, 3,229, 29, 53,155,
+ 44,149,227,249,129,196,101,187, 94,146,207,247, 91,242,233,222, 17, 3, 14, 16,199, 84, 80,202,209,117,122,113,122,110,142, 52,
+142, 28, 1,144,245,249,102,142,220, 5,224,181, 28, 36,147, 11, 57,210,125, 38,124, 27, 13, 91, 16,213,248,142,196,197, 74,173,
+ 41,102,133,152,187, 69, 38,132,128, 2,202,121,107,141, 37,210, 59, 95,221, 68, 37,161, 73,164, 54,238, 31,210,167,168, 12, 82,
+218, 56,109,138,130, 99,182, 47, 70, 26, 96,230,196,131, 50, 33, 65, 67,190, 17, 10,233,249, 33, 10,152,164, 86, 57,142,123,246,
+251,125,219,123, 9,163,178, 30,113,194,103, 78, 58, 89, 4,110,184, 55, 4, 69,105,178,135,165, 47, 51,114,142,225,121, 70,235,
+204,204, 26, 14, 61, 50,249,216,192,233, 94, 47, 38, 47, 18,163,177,244,212,153,228,213,137,179, 20,239, 91,203,130, 51,201,236,
+193,198,108, 67, 66, 24, 74,211,104,147,140, 70,239, 83,237, 99,167,221,146,208,207,203,107, 27, 87, 57, 77,179,186, 92,147,228,
+198, 58, 1, 93,149,242, 85, 89, 89,223,150, 15, 62,249,152,152, 18, 82, 41,187, 17, 38, 84,182, 66,112,201, 63,121,194,192, 28,
+213,198,136,116,208,226,216, 56,201,118, 34,247, 91, 39,108, 45,224, 60,126,246, 96,200,214, 5, 5, 91, 52,200, 44,106,208, 16,
+121, 25,102,166, 64, 96,103, 53,187, 7,113,214, 48,240, 68,227, 86,217, 41,102,100,115,169, 76,176,244, 55,238,110,201,207,239,
+ 29,201,175, 30,180, 72, 38,134, 25,247,158,222, 47,167, 65,146, 33,129,209,153,100, 78,238,239, 55,153, 8,226, 58,208,175,198,
+126, 58,237,154,112, 22,224, 43, 32,198,250,226,217, 1,247,243, 21,117,208, 0, 49,118, 53, 11,158,143,250,186,222, 21,205,186,
+155,114,170,206, 31,108,153,229,234,138,180, 53,176,132,192,206,193,241, 51, 13, 46, 99,150,195, 17,180,228,139, 85, 73,100, 96,
+159,117, 45, 53, 24, 59,238,157, 48,161, 35,167, 60, 71,172, 53,224,152,160,138, 84, 34, 97, 79,189,146, 99,197, 21,215,132, 48,
+139, 68, 86,250, 95,168, 37, 18, 60,169,215, 75, 98, 30,236,241,249,148,192, 68, 96,163,226,216,144,250, 40,221,183,218, 29, 38,
+115,208,157,247,213,166,165,210,166,230, 9,176, 92,160,201,221, 36,232,179,253,121,117, 69,237,228,241,153, 76, 70,106,163,147,
+ 21, 6,201,248, 94, 80,108,163,101,147,195,168,177, 62, 59, 95, 38,196, 85, 5,250,252, 75,121,147,146,206, 36, 13, 24,138,150,
+ 38,170, 15,168, 40, 60, 63, 27, 27, 3, 94,108,202,113, 36, 41,243, 28, 96,206, 1,128,241,119, 0,247, 53, 26,186,239,222,218,
+ 84, 67,163, 7, 21, 64,174,249,198,138,236,181,242,106,212, 6, 82,203,171,179, 92, 74,202,187,173,182,252,250,176, 41,191,255,
+122, 81, 26, 26,149,204,125,116,169, 19,178,170,198, 20,229,136, 36,147,163,152,132, 3, 0, 85,165,139, 49,191, 52,149,130,227,
+234,203, 16,139, 30,219,184, 19,140, 8,202, 97, 56,120, 48,206, 64, 31,238,238, 44,203,193,217, 72, 62,122,214,215, 7, 85, 32,
+226,150,237,198,132,245, 28,176,138, 37,221, 92, 95,169, 23,229,245,155,171,234, 40,167,114,160,209,208,173,173,154,252,206,171,
+235,234,128,102, 20,212, 0,241, 11, 2, 19,234,249, 98, 14, 91,159,210,146,110,164,237, 98,204,114, 39, 15,145,222,124, 29,189,
+161, 90, 70,142,206, 0,192, 8, 36,147, 55,250,215,140, 94, 59,168, 73, 97,180,142,154, 61,249,238, 77,141, 72,245, 65, 93, 76,
+172,138,129, 40, 16,101,176, 56, 54, 16, 24, 74,117,139, 17,138, 72,131,161,109,117,226,232, 71,223, 88,131, 30,182,209, 56, 62,
+216,159,115,222,149,109, 10,189,223,119,239, 29,202,245,149, 12, 91, 9,227,104,198, 7, 59,119, 61, 19,100, 7,199,221,169, 70,
+173,232, 7,251, 28,223,106,143, 80,238,201,146,109, 11,115,211, 24,163,203, 69, 83,121, 12,145, 11, 32,117,147,118,208, 49, 86,
+177,170,209,240,213,122,104, 74, 61,115, 87,239, 89,140,105, 56, 86, 66,140, 7,109, 55, 60,233,232,117, 46, 85,224,140,173,144,
+146,210, 23, 60,254,232, 84,246,187, 9, 89,219,172, 26,213,169,219, 92,203,185, 80, 78,213,176, 95,173,215,165,228, 7,146, 77,
+ 88,239, 28, 25, 86, 10,220,208, 73,163,133, 61, 31, 76,120, 72,176,201, 3,150,138, 13,236,161,119, 70, 92, 1,106, 34,147,225,
+ 64,247, 75, 90,150, 43, 89, 41,230,103,204,208, 64, 15,186,113,165, 36,217,199, 25,105,247, 67, 43,147,163, 50, 17,196,228, 54,
+192,218, 87,107, 57, 89,215,245,197,168, 24,202,152, 47,239,174,219,104,101,236, 84,172,146,110,172, 3,115,218, 7, 23,234,212,
+ 79,197,153,181, 75, 97, 9, 84, 7, 48, 61,145, 74,154, 83,170,148,139,156,233,181, 41, 14,159,114,170, 15,239, 95, 80, 65, 10,
+ 37, 84, 83, 44,131,241, 84,231,131,232, 58,128,193,240, 47,231, 84, 15, 90, 71, 4,189,129, 70, 25, 89, 37,140, 91, 23,220, 5,
+ 81,232,102,176,115, 28, 55, 67,144, 66, 61,130,164,105,154,163,172,152, 87,167,118,210,110,243,245, 55,119,118,164, 81,173,200,
+103,143,159,241,250,103, 84,180,210, 61,160,159, 11,131, 54,119,104, 87, 60, 20,100,159, 0,182, 61,213, 96, 21,173,139,175,221,
+190, 42, 15, 52, 99,126,164, 63,216, 7, 64,161,191, 56, 58,166,252,103,191,223,227,186,195, 9, 2,215,128,253, 10,231,143,254,
+ 59, 74,134,148, 78, 86, 3, 3,131,123,239,233,145, 94,107,224,128,127, 9, 6,238, 32,125,234, 12, 71, 98, 83, 92, 41,246, 49,
+167, 65,232, 42, 34, 78, 90, 18,170,107,250,252,251,154, 65, 5,147, 30, 91, 50,168,237,140, 92,233,146,253, 61,100, 62, 46, 3,
+ 65,105,127, 58,183,241, 33, 74,108,102, 17,144, 77, 89, 18,157, 73, 86, 3,177,148,108,175, 5,242,225, 39, 15, 72,235,139, 42,
+ 81,181,148,103,251, 7,101,111,204, 28,163,164,140,192, 44,151,207,144,156, 9,229,219,180,107,243,192, 24, 93,142,249,136,169,
+186, 97, 62, 27, 4, 54, 36, 86,145,169,120, 57,107,215,180,212,153, 14,167, 67,102,116,249,108, 73,114,197, 34,249,209, 81,189,
+ 51,114, 36,187,206, 78,183, 69,176, 25, 2,220,116, 62, 43,229, 4,168,141, 7, 50,165, 83, 16, 6,240, 25, 80,220, 22,138, 4,
+ 8,226, 58,209, 95,206,229,236,249,219,248,145, 81,105, 15,208,237, 27, 14, 9, 92, 35,191,197, 64, 3,177, 70, 67,239,111,102,
+124, 19,234, 28,114, 9,208, 92,231,137,123,192,154,223,188,253,138, 28,237, 63,148,211,179, 51, 93,179, 34,219, 64,108, 39,105,
+ 16,133,241,181,243,139, 22,245,237,177,199, 76, 33, 45,224,119, 81,154, 57, 48, 86, 58,207, 17, 85, 49,184,157, 27, 15, 4,212,
+ 1,215,147, 37,142,224, 21,179, 87,117,191, 45, 88,205,132, 56,147,132,218,246,159,106,160,253,183,191,188,167,123,116, 85,202,
+ 78,167,130,136,110, 16,187, 68, 30,199,182, 16, 20,111, 55, 52,233, 91, 43, 26, 96, 77,179,255, 86,119,198,177, 57,180,241,186,
+122,191, 47,239,212,101, 0,233, 94,182,105, 68, 19,173,156, 6,192,234,136,207, 78, 25, 92,194, 14,190,122,109, 83,247,211, 80,
+134,224,226,215,245, 24,206, 52, 57,155,246, 56, 10, 89,169, 20,117,141,211, 26,212,151,244,187,115,106, 11,107,186,190,121,210,
+184, 98, 60, 20,250,240,160,147, 6,194, 62, 12,163, 75, 14,118, 58,224, 66, 69, 50,165,186, 6,208,224,255,239,115,170, 8, 4,
+ 78, 20,176, 82,187, 26,105,144,133,228,107,230,248, 62,122,147, 17,239,169, 0, 14,133,249,156, 36, 80,240,164,104, 25,145,179,
+ 1,231, 90,147,171, 88,157, 60,180, 3,176,183,176, 11, 38,234,115, 10,229, 37, 89, 93,223,148,238,164, 47, 23,163, 88, 86,243,
+ 99,181,181, 57, 86,112,215,170,154, 8,116, 6,146, 46,129,135, 33,148,106, 26,211, 58, 9,217,210,181,219,235,137,252,241, 31,
+108, 75, 2, 34, 84, 8,152, 2, 11,134,147, 41, 35,242,233,254,187, 61,217,215,100,145,237, 92,151,202,131,243,196,212,237, 98,
+195,194,144, 8, 75,179,127,244,213, 81,226,192,193, 8,152,113, 65,164,160, 34,232, 6, 34, 67, 41,233, 6,251,193, 75,117,249,
+179, 95,236,177, 60,178, 83,139,120,144, 80, 41,216, 74, 5,116, 32,145,110,254,179, 97,168, 70,106, 34, 95,187, 90,151,205,170,
+ 26,184,241,132, 11,244,174, 70, 24, 93, 47,103,100, 13,147,153, 19,139, 49,201, 64,244, 38, 49,255, 8, 70,172,151,174,100, 88,
+ 10,237, 14,230,234,156, 96, 40, 18,164, 26, 69,128,153,246,109, 60, 37,155, 50, 75,146,171,231,165,160,134,249,237,251,103,186,
+145, 74,124, 0,250, 76,104, 4, 80,138, 96, 86, 97,172,150, 82,213,131,117, 49, 7, 85,105,150,135,235,219,111, 20,228, 91,186,
+ 40, 16, 74,248,248,201,185,124,166, 63, 24, 79, 1, 79, 57,250, 45, 57,205,170,113, 0, 48,183,188,186,146,227, 65, 57, 57,155,
+184,113, 37, 91,112,176,234, 65,106, 22, 24, 2,245, 53,194, 42, 30,118,207, 72, 35,241, 97,160,206, 33, 69,249, 90,246, 58, 33,
+ 38,128, 3,230, 8,247, 1,120,195,195,202,113, 42,192,168, 15,159, 3,240, 18,186,241, 40,221,104, 21,125, 88, 62,244,199,245,
+239,191,255, 74,141,189, 81, 24, 26,150,216,129,216, 7,153, 72,102,164,193,210, 68, 78,186, 80,163, 74,107,228,151,147,205, 70,
+ 65,146, 57,255, 75,132, 7, 84,245,112, 37, 29,115, 10, 40, 82,212,150,245, 32, 94, 76, 73,115,105,243,219, 49, 75,173,160, 87,
+205,151,235, 4,101, 45,178,215,155, 26,128,188,190, 58,149, 79, 38, 9,249,251,143, 79,228,123, 47,175, 18, 73,122, 37, 19, 81,
+ 57,174,144,182, 44, 18, 20,213, 48, 74,155,203, 21, 89,169,102, 93,201,213,163, 97, 96, 63, 8,224, 62,204,177,198,121,246,220,
+177, 57, 55,151,203,122, 16, 98,185,232,141,164,173,187,250,218,106, 69,222,120,101,198,246,197, 82,125,137,100, 33,224, 99, 71,
+164, 12,148,116, 41,159,226, 88,224,113, 7,204,106, 21, 58,181,133,219,190,164, 80,134,190,115, 92, 83,163,152, 33,209, 10,231,
+178, 73,238, 48, 34,208,165, 88,182, 62,249,217,121, 71,154, 61,200, 72,102,165, 86, 72,153,210,153, 30, 74,128,122,128,155, 64,
+ 6,132,136,122,239,160,207,178,174,144,117, 11, 83, 22, 35, 57,215,204,124,112,214, 55,212,120, 53,199,253,214,209,231, 2, 71,
+ 76, 89,214,140,113,203,247,221,172,118,134, 52,195, 30, 3, 59,244,186,225,228, 30,237,239, 83, 10,179, 81, 41,203,237,171,187,
+242,232,197, 62,191,215,218, 50,230,208,241,165,200,104, 81,194, 93,168,154,161, 2, 69, 18, 23,144,107,104,128,244,201,179, 61,
+ 74,134, 34,123, 68, 59, 11,135, 26,165,114, 80,199,162,119,143, 41, 16,112, 83,227,124, 3,248,131, 86, 84,189,154,162, 1,155,
+ 71, 54,127,219,213, 76,118, 48,153, 56,164,109,194, 69,255,226,244, 24, 98,206,153, 35, 40,246,139, 9, 67,251, 2, 24,166, 7,
+ 12, 78,178,167, 14, 47,135, 17,169, 82,133,149, 56, 4,212,200,134,232,196,231, 38, 98, 4, 7, 82, 45,230, 88,205,225,124,117,
+207,212,245, 82,169,156, 84, 48,171, 93,222,148,173,141, 13,222,227,254, 89,143,211, 34,127,248,189, 55,228,233,193,169, 60,219,
+ 63,230, 24, 21,212,202,230, 51,195,191, 16, 40,202, 76,219, 2,112, 78, 20,168,131, 7,169, 13,120,199,209,102, 64, 54,170, 17,
+ 40,123,198, 84, 21,155, 4,116,118,243,216,148,234,176,134,141,218,146, 6,118,186,143,178,121,130,157,112, 95,105,182,143,172,
+205, 50, 15,172,172, 14,133, 70,210,245, 58,234, 81,124, 95, 97,216,147,206,197,133, 6, 36, 17, 83, 79, 16, 50,193,142, 97,114,
+ 1,163,114,225,130, 87, 33,142, 72,232,131,172, 21, 78,126,213,143, 73,215, 90,212, 32, 2, 92,242, 1,201,101, 64, 86,114, 34,
+229,147,186,172,111,236,168, 99,207,209,153,204,117,207, 62,123,113,168,246,169, 40,175,188,242, 85, 25,189,247, 75, 6, 42, 41,
+180, 64,211,158,244, 7,168,146,169,173,213,196,165,144,199,222, 48,237,135, 16, 51,220,172,132, 69, 44,169, 91,245, 82, 88, 97,
+ 34,208, 52,153,160,228, 41,198,125, 49,239,159,209,251, 15,230,186,143, 53,201, 56, 59,122,202,201,139,217,184, 34,255,252,135,
+175,201,206,106, 89,254,197,255,241,182,156,156,107,208, 22, 86,140, 31,208,139,157, 78, 5, 0,132, 5,174,213,218,170,218,159,
+205, 10,229,178,183,182, 86,228,157, 79, 14,104,235, 11,122,190, 58, 26, 20,163, 90,129, 41,147,174, 38, 81,214, 62, 69, 85, 32,
+166, 79,192, 25, 69, 48,213, 27, 11,255,123,147, 68, 58, 70,100, 83,171, 22, 77,225,208,245,154,137,163, 72,193,198,121,108, 63,
+158,171,163,110,106,112, 77,233, 43,125,254,228,158, 8,167, 78,172, 37, 37,249,124,137, 60, 35,217,148,161,194, 71, 17,152,237,
+132,232,127,218, 5, 93,171, 1,117, 1, 66, 86,153,112, 6,141,102, 86,207, 70,214,103, 22,141, 64, 52, 67, 60, 79, 36, 70,128,
+231,241,187, 76, 10,217,179, 42, 72,104,154, 37,172, 82,105, 40,122,164, 73,231,222,209,185,124,243,155, 27,146, 47,148,100, 2,
+230, 77,111,172, 79,188, 40,229, 82, 78,131, 87, 95,122, 31,159,201,225, 81,155, 35,203,143, 30,159,202,225,193,146,220,122,169,
+193,179,229, 37,205, 94, 83,176, 72,247,215, 43,183,202,250,121, 3,182, 82, 81, 49,194, 30,128, 60,246, 60,166,243,177,192, 95,
+191,123,103, 57,171,219, 81,157,255,148, 34, 32,145,113, 86,199, 83,202,139, 10, 50, 11,117,178,200, 0,103, 26,133,143,212,176,
+116,206, 7, 50,131, 81, 68, 6,166, 25,118,181,174, 81, 57,162,123, 63, 37,149, 70, 89,118,118, 83,178, 82, 74,144,132,229, 31,
+ 30, 15,228,241, 94, 83,142,123, 51,102,198,155,154, 25,207,213,242, 3, 68, 3, 33,146,222, 88, 13,151,102,158, 75, 26, 29,232,
+113,209,108, 48,201,158,242,171, 80, 58, 82,163,147,128, 10, 9, 12, 12, 16,169,242, 27, 46, 92,206,180,235, 3,254,187,147, 30,
+ 23,238,157,135, 77,185,189, 93, 85,103, 12, 38, 58,124,102,218,148,223,156, 56,137,198,100, 18,161, 92,229,199,116,218,233,228,
+130,192,223,147, 55,111, 52,228,218, 70,145,155, 7, 70, 75, 56,194, 98, 51,206,159, 61,111, 73, 87,141,254,246, 86, 70, 15, 90,
+210,104, 65, 13,130,163, 14, 34, 37, 73,221,156, 37,141,184, 32,238,194,242,110, 56, 99,255, 15, 89,235,147,163,145,236, 37,132,
+234,116, 0, 59,208, 88, 66,173, 40,105, 25,203, 12, 58,234,250,223,243,254, 84, 14,213,201,255,242,139,182,102,131, 51,185,123,
+165, 44,255,236, 15,111,146,226, 21,135, 6, 37,125,246, 18, 49, 39,233, 91,185, 27,117, 73, 16,159, 96,180,239,195,189,174,156,
+183, 65, 67,168,206,126, 84,148, 91,155,105,169, 54,114,236, 29,198,174,167,137,245, 34,105,180,211,245,193,102,159, 83,252, 34,
+208,172,221,184,213, 57, 41,128,153,243,205, 13, 57,234, 89,217, 62,208,247,174, 85, 19,114,187,110, 37,218,151,110,172,200, 36,
+110,202,187, 15,207,229,213,235, 75, 4,230,132, 14, 8,134,114, 87,167, 61,144, 23,135, 3,246,108, 87,170, 25,102, 77,112,242,
+ 73, 7,140, 99,224,133, 30, 15,118, 71,210, 99,249, 31,207, 1,100, 55,201, 90, 81,218,211, 57, 3,160, 55, 95, 41, 80, 99, 26,
+ 35, 72, 16,106,193,220, 59,245, 0, 34, 35,205, 72, 3,136,166,219,179,165, 22,192, 79,130,121, 47, 77, 10, 77,182, 25,124,143,
+142,244,176,217,129,233,163, 42,215, 52,200,176,100, 11, 7,136, 17, 25, 0,173,250, 32,213,128, 42, 27, 24,201, 70, 51,153,140,
+ 82, 60,196, 32,143,128,236, 99, 56,179, 82,241,121,183, 41,131, 94, 87, 86, 42,107, 24,124,210,191, 31,202, 88,215,224,188, 59,
+ 36, 25,204,122,166,198,246, 77,127,110,186,221, 40,233, 86,160,120, 40, 98, 37,111, 17,151, 29,154, 74,217, 82,189,204,202,214,
+195, 23, 7,116,178, 48, 30,171,154, 37,237,159,158,178, 92,142, 62, 56,156,115,133,217,152, 81,104, 18,221,154, 88,168, 67,249,
+236,189,163, 23, 94, 45,150,120, 61, 0,222,141,124, 35,123, 66, 80, 12,166, 58,148,173,151,235, 85,142,189,117, 53, 91,231,239,
+192,122,165, 70,107,185, 86,103,240, 1,192,216, 98,132,230,224,180,105,217,180, 27,207,241, 61, 43, 46, 51,160,198, 56, 79, 58,
+125,137,194, 77,179,242,162,247, 37,166,250, 23, 0, 67,160,182,160,162, 78, 17,215,107,132, 50,190,156,180, 58,236, 61, 39,147,
+ 70,109,140, 76, 11, 21, 2,159, 84,208, 98,186,236,106,176,218,189, 33, 65,123,168,208,129, 63, 32,163,127,190,255,236, 41,247,
+ 37,170, 83, 94, 18,217,248, 72, 32,194,155, 76,154, 18, 23,122,216, 48,190,188, 22,180,112, 28,130, 25, 45,161,172, 94,143, 36,
+ 60, 71,246, 97, 60,244,172, 60,164,173,141,134, 12,136,140, 91, 26, 44,165, 98, 35, 97, 65, 41, 21,246, 5,118, 47,153,204,243,
+239, 35,183,223, 60,150,241, 51,196, 73, 68,177, 81,194, 98, 54, 25, 12,107, 0, 24, 38,178,122,191,200,202, 19, 66,206,126, 4,
+ 97,177,235,125,130,145,147, 19, 37, 98, 10,104,105, 4, 49,149, 26,157, 63,236,192, 88,131, 44,140, 62,182, 47, 58,250,153, 93,
+121,246,240, 51,205,218,151, 53,112, 69, 96,107, 70,122,160,207,248,226,162, 45, 27,107,203, 28, 87,124,252,228,177,148,202, 53,
+ 18, 79, 97, 13, 0,200,130,147,219, 90,174,179, 18, 4,185, 92,201,198, 4, 21,122,161,141, 81, 97,172, 11, 9, 79, 33,159, 96,
+ 53,112, 74, 6,201, 9,193,196, 71, 71, 7,108, 7,229, 11,203,116,140,192,115, 0, 27,244,179,247,191,144,119,239,237,203,191,
+248,111,127, 87, 94,189,177, 45,167,157,161,188,104,246, 41,217, 74,118, 76, 18,239,128, 61, 47, 69, 7, 61, 24, 71,114,210, 9,
+165, 94,207,106,160,154,146, 55,239,172,203, 3,181,161,219, 43, 69, 89,153,231, 9,248,187,185, 89,147,138, 62, 83,144, 93,193,
+ 60,247,199, 25, 25, 5, 9, 6,154,152, 49, 47,228,139, 4,226, 82,248, 42,105,213, 20, 86,173,230, 22, 24,245,199, 54,215,142,
+231, 3,249,230,201,116,172,159, 53, 32,158,194, 64,179, 62,131,243,153,163,146,205,235,243,201, 23,235,156,142,152, 5, 61, 86,
+ 47, 18,108, 95, 36,245, 89,155,142, 59, 58, 51,216,131,120,218,248,110,236, 25,156, 61,146,236, 48,128, 74,242,121,163,234,198,
+233, 29,189,215, 73, 98,198,223,199, 14, 39, 49,232,180,116,127,229, 77,217, 20, 21,160,214, 57, 3,229, 50,248, 21, 52, 67,191,
+251,237,134,204,117,255, 32,200,165, 90, 61,121, 45, 60,121, 75,253,219,231,143,155,242,246,103, 39,106, 83,102,242,243, 95, 60,
+151,107,215, 42,172, 54, 33,122,136, 29,251, 39, 56, 77,118,119,139,178,161,254,118,255,108,196, 4,165,224,107, 64,145, 41, 73,
+148, 40,176, 90,134,107,219,105,232,254,159,247,200,247,144,236,233, 98,245,212,225,130,208, 51,147,200,106,166, 57, 37, 5, 97,
+ 14, 81,160, 70, 36,231,186,240,119, 55, 74,140, 48,194, 74, 69,102,195, 33, 75,159, 47, 14, 70,100,125,219, 92,209,131, 93,202,
+114, 84,232,176,213,151, 11, 93,132, 73, 58, 39, 91,119,111,200,241,189, 3, 57,104,245,100, 87,175, 21,188,214,148, 99,140,140,
+166,176, 59,152, 25, 11, 29,165, 33, 67,217,110,248, 82, 43,249, 68, 83,250, 78,191, 27, 81,149, 1,111,140,169,135,154,226,186,
+113,187,179,152,155,107, 10,129,150,185,169,204, 9,213,195,244,144,198,214, 43,135,180,122, 22, 32, 40,141,232,154,154, 1,172,
+ 84, 10, 36,145, 9, 93,249, 16,209, 35, 50, 8, 56, 5,124,223, 36,180,145, 56, 4, 42,175,238,214,185, 6,179, 81,204,236, 60,
+136, 18, 44, 37,101,138, 64,237,199,146, 45,235,102,206,167, 37, 64,217,166, 63,165,145, 44,234, 33,126, 69,131,128,193, 56,228,
+142,191,122,187,172, 7,206, 14,119, 65,163,177,227,214, 84,126,193,158, 86,200,223,245,157,170, 24,192,127,220,120, 0, 8, 46,
+101,141,240, 34, 52,178, 10,112, 98,199, 0, 76,128,108,197,201,222,198,250,124, 18, 32, 28,137,103,114,122,220,149,214, 16, 14,
+ 39,148,206,173,154,108,172,102,184,121,120,160,167, 96, 55, 11,140,114,210, 9,240, 36, 34, 59,240, 83,244,136,150, 50,140,234,
+135,253,185,236,247, 19,210,153,185, 44, 21,212,139,234, 61, 95, 91,143,244,126,225,206,178,140, 28,191,246,198,186,196, 31, 29,
+203,227,163,190, 92,191, 2,254,238,128,107,152,208,160,105, 89,191,247,142, 30,210,179,206, 72, 29,110,129, 25, 47, 34, 78, 4,
+ 48,214, 11,246, 47,233, 84,129, 44,102, 79,214,201,238, 34,147,128,191,135, 94, 64, 22, 18,152,149, 20,199, 81, 0, 76, 73, 35,
+ 80,130, 16,107,108,180,162, 24,187,236,123, 19,153, 14, 35,217, 92,210,168, 87,175,163,188,190,196, 81, 64, 0,169,246, 31,236,
+201,209,225, 72,159, 71, 82, 66, 56, 0,140, 21,129, 38, 82, 63,235, 69,179, 41, 15,247, 6, 12,182,190,247,214,166,102,205,154,
+161, 64, 98, 20, 83, 7,200,210, 64,183,185,154, 96,196,126, 79, 95,247,217,222,177,108,150,202,146,206,234,122,230,155,210, 28,
+153,188,172,205,144,166, 53, 40,211,200, 89,179, 16, 24, 17,220, 89, 93, 95, 11, 71,128, 89,112, 68,236,105,150,128,125,222, 95,
+ 77,157, 30,198,156, 48,107, 14,135,142,133,120,245,230,117,174,195,163,189, 23, 4, 88, 17, 5,172, 78, 9,215,194, 57,120,119,
+ 46,108,230,223, 64,104,115, 7, 28, 91, 16, 92,192, 49,226, 51,144, 49, 45,233,217,108,247,122, 44, 3,227, 92, 29,156, 53,217,
+243, 70,169, 29, 76,110,100,201, 2, 22, 67, 29,197,130,192, 34,225,200, 38,108, 36,198,231, 15, 1,129, 46,235,136,196,128,141,
+168, 32, 88,155, 39,111, 99,106,145, 77,188, 0, 0,136, 62, 52,248,246, 81, 2, 6,113, 75, 46,109,253, 98,244,180, 1, 66,194,
+105,198,100,201,156,212,197,160,175, 45, 58, 99, 61,215, 64, 17, 51,190, 67,146,208,128,246,179,171,127,190,232, 15, 53,216, 89,
+226,190,185,182,213,144, 85,205,214,246, 79, 90,226,165,140,107, 32,164,104,147, 85,185, 16,244, 39,153,201,249,142,255,219,128,
+155,172,225, 56,238,110, 84, 46,210,122,255,249, 60,198, 99,199,124, 63, 71,185,240,253, 19, 50,108,137, 55,242, 56, 18,149, 43,
+ 6,151, 25,102,134,244,166,115, 43,207,231, 11,124,237,136,253,253, 36, 3,238,105, 0,227, 59, 22, 47, 93, 54, 94, 37, 56, 12,
+ 80,220,106,240, 2,125, 7,112,249,247,135, 19,150,123,103,200, 72,179,106, 7,178, 73,182,161,230,108,189,141, 89,224,195,156,
+119, 18,153,223,160, 35,135,199, 39,186, 70, 1,171, 7, 16,104, 42,148,235,242,193, 7,239, 73,254,219,223,145, 31,253,193, 31,
+200, 95,252,133,238,159,241,156,153, 34, 74,198,121, 86, 2, 99,185,112, 0, 75,156, 93, 84,108, 0, 74,163,141,115,130, 38, 32,
+250,154,204,198, 92,179, 66, 78,175,107,208,187,164,117,133, 61,222,205, 55,164,170,251,183,148, 89,145,157,173,101, 13,248,115,
+242,235, 7, 7,242,191,254,249, 71, 20,180, 10,102,145,211,246, 88, 40,157,249, 70, 96, 19, 27,171, 90,165,224, 83, 72,231,131,
+ 47, 78,216,143,190,179, 85,149,151,174,173, 72,179, 59,166,195,105,247,103,108,139, 33,216, 61,105, 13,168, 75, 0,210,155,106,
+ 1,193, 72, 86,215, 37,193, 32, 30, 24,139,246, 89,151,120, 6, 4,180, 16,248,161,254,129,111, 32,101,236,127,113, 60, 17,179,
+201,128,193,188,189,118, 78, 96, 34, 39, 77, 64,149,173,193, 21, 70, 57,161, 96, 9,224,118,228,168,206,209,126, 3,161, 12,199,
+ 32,163, 41,167, 84,208,167, 7, 40,231,236,252,130, 36, 78,217,140,238, 5, 84,203,138, 53, 6,187, 88,111,124, 17,136,109, 80,
+117,131,111, 73,178,114,234, 51, 16, 5,168, 23, 52,222,233, 92,145, 99,139, 47,246,247,200,239,178,209, 40, 73, 39,244,136,213,
+193,204, 59,218,169, 11, 35, 8,159,183,170, 1,208,183, 94, 91,151,255,251,111, 62,151,164,218,208,251, 79,207,229,201,253,115,
+185,249, 82,221, 56,241, 19, 38,197,205,228, 84, 3,145, 55,238, 86,136, 41, 67, 83,227,119, 94,171,202,113, 55, 41, 31, 62, 51,
+189,133, 74,206,147,170,104, 96,120,114,193,145,195, 36,178, 68, 48,138, 13,219,125, 41, 6,172, 99, 72, 0, 26,215,216,103,249,
+ 9, 99, 81,119,174,175,105,132,145,151,251,207, 71,172,113,162,196,136,114,189,238,124, 57,155, 37,101,118,208,213, 27, 30,179,
+236,169,183, 42, 91,122,193, 94, 90, 15,248, 27, 27,114,255, 9,230,193, 71,178, 12,198, 50,221,212,201,216, 40,100,179,122, 24,
+171, 26,185,157,104,230,116,187, 81, 32, 83, 27, 70,200,166,122, 16, 82, 62, 80,162,105,150, 90,247,206,135,178,219, 40, 24,223,
+180,126,247,190,102,133,199,205, 62, 9, 34, 0,136, 89,205, 27, 96, 37,161,107,143, 4, 31, 27, 26,155, 16,165,149,211,206, 68,
+178,185, 64,222,121, 98,132, 22,255,229, 15,110, 57,135,110,139,155,112,114,165, 48, 94,248,124, 26, 10,124, 22, 74, 48, 81, 82,
+142,218,234,172,189,128, 51,212,199,122,160,119,119, 1, 28, 75,176,167,132, 25,243, 11, 93,179,147,189, 22, 65, 49,190, 58,137,
+111,236,230,196,207,250,198, 52,142,202, 2, 74,175, 36,251,181, 64,101,240, 73, 71,158,235,253, 20,208, 7,234, 78,228,188, 51,
+177, 49,149,200,227,216, 84,172,191,195, 6, 67, 89, 15,228, 52, 80,250, 98,166, 46, 51,147,160, 5,175, 57,208,192,136, 68,209,
+106, 0,242, 20,224,145, 9,230, 74,167, 18,107,100, 56,135,212,169, 58, 83,148,166,246,207,134, 26, 5,142,221, 92,183,199,185,
+109, 16,156, 84,212,105, 39,230, 17, 1, 73,207,219, 34, 79, 59,145, 43,185, 10, 71, 99,190,186,173, 1, 79, 65, 29, 74, 34,195,
+ 2,129,165,157, 9,249,198, 91,235,242, 15,239, 28,201,223,191,115, 40, 63,248,234, 54,203,128,160,168,109,104,112,244, 61,205,
+184,255,245,223, 63,214,141,149, 37,176,114,238,128, 29, 4,234,137, 9, 84,112,132, 35,118,253,126, 87,121, 1,191, 0, 52, 1,
+ 42,186, 84, 75,121,107, 21, 32,168,152, 38, 12, 39, 49,199,136,162,151, 36,160,110, 68, 2,170, 12,203,161,224,250,174, 38, 76,
+ 45,142,162, 42,112,120,234,164,251,250,156, 16,168, 33,130,197, 56, 26, 72,113,102,122,128, 63,125,208,151,211,243, 25, 17,244,
+ 48,186,213,130,174,155, 31,184, 42, 70,130, 32, 54,252,124,240,232,185,188,251,217,231,178, 84,218,149,215,238,236,202,193, 73,
+147,134, 3,100, 50, 57,135,176,135,147, 51, 97, 19, 3, 81, 34,146,167,122, 83, 48,119,215, 3, 37,175, 72,215,161,164, 25,122,
+ 85,246,142, 78, 89, 45, 88,140, 98,221,190,178,205, 12,229,222,195, 71, 52,100,200, 92, 65,205,140,160, 18,134, 47, 8, 67, 71,
+ 18, 20, 19,132,135, 82, 33,193, 51,201, 12,153,232, 72, 72,131,135,231, 74,146,236,253, 14, 6, 44,213,223,218,217,150, 23, 39,
+167,204,250, 19,204,174,147,198, 9,129, 22, 66, 18, 12,116, 29,226, 90, 34,231,252, 12, 53, 27,177,212,151,116,165,105,236,215,
+164,227,227,199,152, 80,236,153,146,150,105, 22, 4, 14, 34,102, 35, 97, 5,119,239,147,177,137, 59,229,211, 57,155,152,137, 77,
+ 77,206, 3,185,106, 12,231, 17,144,218, 19, 12,123,112,150, 32, 20, 17,223,160,154,173, 86, 83,202,149, 42,159, 95,224,250,246,
+232, 29, 39,147, 37,217,217,110,104,192,231,235,179,187,160, 88,148,177,198,165,120,157,112,162,184, 23, 4,252, 54,254,231, 57,
+146, 35, 39,122,201,241,213,180, 1, 77,245,222, 48,106,107,168, 97,207,102,204,145,216,102, 51, 36,200, 89,224, 99, 8,148, 3,
+160,209, 73,199, 34,107, 52, 61,110, 99,151, 68,144,166, 15, 5, 69, 79,158,191,164,163, 35, 62,106,158, 73,111, 52,144,222,176,
+167,235, 85,150,195,211, 19,185,232,116, 25,248,100,114, 57, 27,161, 77, 36,169, 85, 79,180, 53,214, 3, 35, 93,250,188, 71, 35,
+171,200,160,119,159, 40,228,136, 33,224,200,210,116,160,153,124, 75,238,125,250,161,252,246,247,127, 87,126,240,253,223,150,119,
+223,255,152,129, 76,202, 73,138,242,128,170, 29,107,169, 45, 10, 99, 13, 12,179, 25, 50,180,177,122,147, 50,201,102,206,245, 99,
+ 68,118, 98,213,196,173,245,117,174,223, 44, 48,234, 86,224, 75,138,197,178,238,159,156,180,187, 26, 16,158,188, 32, 25, 17, 21,
+ 46, 53,240,194, 92, 62,152,228, 48,170, 8, 78,126, 4, 46,139, 48, 29, 76,156, 15,246, 7,154, 48,105, 96, 89,203,235, 35, 69,
+ 18,144,144,183,174,213,229, 79,255,242, 83,181,225, 35,253, 14,245, 10,141,162, 52,212, 46,108, 44, 27, 19, 36,100,149,135, 26,
+192, 21, 11,118,223,109, 77, 44, 71,227, 62, 71,150,125,142, 87, 38, 89, 57, 66,112, 99,242,176,160,127, 29,178,218,133,252,134,
+ 83, 13, 80,121, 3,160,148, 18,187, 54,103, 78,178, 30,205, 98,177,134, 0,177,162,213, 67, 60, 84,198,246, 54,130, 57, 4, 57,
+ 8, 30,193, 8, 8, 27,113, 99,123, 85,166, 25,159, 58, 3,245, 74,145, 65, 19, 2,193, 64, 50,122,174,250, 78,190,213,124, 5,
+213,231, 22, 35,115,145,201, 81,163, 42,217,234,158, 75,179,121, 76,209, 43, 4, 74,211,185,167,182,126, 44,207, 30, 30,202,213,
+187,155,108,223,138, 19,180,121,241,197, 25,136, 51,228,173,175,174,203,175, 52, 83,127,164,254, 19,149,160, 95,188,175,175,189,
+ 89,229,124,255,162, 58,134,246, 31,194,213, 43, 55,203,178,246, 81, 70, 30, 61, 71, 43, 36, 35, 91,181,140,212,107,101, 62,131,
+114, 90, 3, 94,189,206,114, 97, 89, 26,213,172, 38,156,229,178,140,102, 23,210,239, 15,104,108, 87,214, 86, 37, 95,171, 74,175,
+123, 65,102,141,156, 31, 82, 99,216,167, 30,122, 96,146,163,193,128,209, 43,206, 0, 64, 14,144, 89,205, 16,209, 26, 72, 77, 52,
+162, 41, 53, 8, 46, 66, 95,243,213,235, 43,178,145, 10,228,164, 63,162,246,175,177, 0,233,193,130,195,211, 67, 89, 43, 70,210,
+ 68,230,134, 69,211,247,172,151, 99,210, 81, 34,163,197, 56,212, 72, 23,236,168, 59,182,204, 79, 23, 11, 20,182,168,184,130,245,
+232,217,113, 71,254, 92, 35,113, 42,244,204,197, 64,107,142, 18, 20,189,180,114, 9,232,229,190, 60, 60,192,225,235,201,205,237,
+170,188,126,115,133,229,101, 44, 27, 12, 31, 94, 15,142, 97,242, 88,199,182,232,228, 48, 31,155,228,225, 64,179,199, 93, 4, 14,
+ 36,108,208, 67, 94, 72, 19, 87, 32, 32,169, 16,171, 60, 96,225,193,140,135,222,100, 15,204, 83,122,221, 48,134,129, 30,178, 73,
+ 96,114,162, 39, 23, 83,150, 20,247,154, 67,145, 54,144,255, 3,170,119, 69, 62,212,151,124,174,213,130, 65, 40, 70,192, 4,195,
+142,186, 30,192, 75, 36,224, 16, 26, 91,100,226, 9, 93,147, 66, 52, 50, 14, 99, 9, 77, 4, 69,215,203, 3, 59,223, 32,144, 51,
+117,232,224,151,134,246,247,225,153,245, 75,243,186,105, 87,212,107, 94,217,196, 96, 47, 12,134,102,247,186, 57, 90, 32,232,137,
+ 77, 80,128, 51,253,250,247,155,213,136, 76,117,200,196, 61,189, 46,100,254,177,235, 19,126,231,181,101,249,217,135, 39,242, 55,
+239, 60,147,223,255,250, 22, 91, 26,129, 3,224, 12, 70, 51, 53,102, 61, 41,100, 26, 54, 87,237,251,142,254,208,168, 92, 67, 55,
+218,129, 63,139,155, 39,135,225, 69,111, 30,193,193,254,248, 55,134, 19, 89,121,172,209,123,228,123, 78,137, 9,232,244, 88,114,
+250, 76,115,115, 32,174,125,208, 33, 74, 60,236, 82, 70,211,119, 82,171,152, 16, 0, 69,100,103, 48,151, 23,199, 19, 93,187,148,
+220,190,217,144, 98,169, 37, 7, 77,205,100, 48,118,133,121,113,223, 16,214, 4,130, 37,192, 53,221,151,159,222,123, 34, 15,143,
+142,229, 90,253,154,116,131,169,252,135,123,239, 19, 25,155,210, 12,148,153,114,100,207, 24, 78, 27, 37, 85, 4,183, 41,102, 70,
+154,225, 97,158, 50, 54,241, 25, 16, 94,172, 47, 47, 19,212,245,244,232,132, 61,108,162,216,213,145,220,220,217, 98,134,253,112,
+239,128, 25,186,233,108,167,233,116,208, 7, 15, 66, 3,104,225, 89, 84, 52,235, 70,169, 15,223,153,112,172, 82,112, 66, 96,109,
+ 67, 96,147,143, 93,239, 48,107,200,243, 42,192,117,125, 56,150, 33, 3, 86, 42,249, 69,145, 35,165, 41, 26, 63,186, 39, 44,147,
+ 51, 27,112,146,148, 54, 30,108, 70, 58,141,114, 40,178, 76, 53,160,232, 39, 22,212, 33,193,137, 78,156,234, 90,200,137, 7,223,
+218, 98, 9,219,179,192,200,224, 39,153,212,160, 74, 29, 7,214, 28,107,131, 44, 5,149, 40,227,137,143,152,173,226,140, 86,213,
+129,163,167, 27, 76,109,244, 47,229,104, 69,225, 60, 80,209,152,239, 31, 72, 33, 95,224,245, 1,172, 55,211, 44, 9, 85, 43, 84,
+ 2, 18,201,156, 6,218, 70, 2,196, 0, 96,161, 41, 29,123,116, 0,160, 7,134, 35, 53,250, 77,161,208, 69, 30, 99,133,104, 49,
+120, 25,158,123, 16,141,232,223,104,118, 46, 12,246,217,238, 74,121,172,100,152, 10,150, 58,144, 30, 88, 5, 83, 68, 36, 19,215,
+145,198, 60,119, 72,253,112,140,151, 34,104, 36, 32,151,186, 15,106, 35, 54,215,121,159, 77, 78, 48,120,116,124,100,253,114, 90,
+193,176,255,200, 18, 65,147, 26,135,234,116,145,249,229,138,180, 31, 51,200, 58,251,105, 86,125,130,192, 38, 62,160, 8, 56,159,
+ 14, 73,198,117,218,106,201, 23,159,223,147,157,205, 85, 57,189,232, 48, 51, 71,192,148, 77,162,229, 50,160, 83, 92,106, 84,228,
+238,181, 43, 12,184, 32, 50, 3,142,244,124, 62, 69, 71, 14,135,100, 36, 45,194, 4,194, 79,197, 78,237,204, 35,247,125,191,167,
+ 1, 73,231, 76,207, 86, 29,164,227,114,116,114,172,203,153, 32, 16, 14,179,247,109,104,206, 35, 59, 7, 29,179, 62,175,243,126,
+223,102,203,211, 38,206,131,137, 29, 84, 29,243,154,176, 32, 25,188,163, 54,127,117,185, 46,223,188,179, 34,255,251,223,221,167,
+239,120,122,210,209,128, 63, 65,223, 38,142,127, 62,244,244,249,115,204, 51, 47,105, 40,251, 97,122,134,240,238,144,188, 9, 8,
+ 44,103, 51,207,233,177,143, 76,201,205,105,146, 47, 90, 44, 11, 89, 39, 4,150, 40,161,115,222,190,100,107,207,170, 48,250,227,
+ 84,167,156, 51, 48,197,212, 67, 75,125, 91, 95,247, 25,206,225,203, 55,111,203,203, 87,151,229,107,119, 26,122,125, 67,130,252,
+176, 46,133,156,174, 75, 16,179,175,206,210,122,210,112, 74,163,241,136,252, 3, 12, 38,244, 92,165,211,106,107, 46, 78,216, 10,
+ 5,198,171,144,207,200,227,195,158, 44, 85,242,124, 70,159,238,117,101,101,167, 42,133, 98, 81,237,243, 92, 3,153,169,188,125,
+239, 72, 74,154,225,175,174,150,229,159,254,209, 29,249,223,254,245, 39,114,210, 30,201,189, 71,103,242,228,233,150,220,126,117,
+201,170,130,151,178,171, 26,144, 23,211,242,234,203, 85,249,213, 39, 79,229,215,247, 35,249,173, 55,138,242,242,203, 53,137, 80,
+ 13, 5,206, 65,202,154, 32,169,127, 78, 98,164,173, 94,148,165, 2, 64, 54, 13,246,209,160,155,131,210,117, 89, 13, 42, 34,227,
+116,202,122, 51,153, 8,163, 28, 86,210, 1,192, 1,142, 43,229,132, 53, 80,242, 0, 5, 41, 28,240,175, 30,237,203,234,102, 44,
+ 47,223,218,225, 56, 84,178,144,149, 41,178, 25,189,249, 84, 89, 99,159,164, 25,250,200,169, 34,229, 83, 54,227,222,233,142,228,
+139, 62,196, 81,150,165,221,235, 48, 2, 68, 41, 9,175, 71,180, 71,157,110, 32,106, 53, 40,128,212, 38,128, 39,213, 82,138,217,
+ 98, 65,127, 70,129,177, 11,193,251,229, 82,166,141, 14, 30,248,135, 7, 19,142,217, 33, 27,251,235,183,159,233,251, 82,100,139,
+ 91, 72,129,162,204,143, 18,139,129, 13,140,189, 56, 8,156,196,159,110,154,158,151, 96,121,187,170,239, 27,244, 76,175, 28, 56,
+ 5,102,215, 65, 90,202,171,171, 52, 48,109,189,222,125,117, 34,143, 95, 52,217, 35,218,220, 76,202,118, 61, 39,195,238,132, 70,
+244,214,102, 85,238,236, 52, 40,204,194, 82,231,110,142,189,126,244,137,145, 73,244,213,185, 6,164,106,117, 98, 43,153, 2,103,
+ 38, 9,184, 1,195, 28,214, 58,201, 26,148,224, 2,146, 5,128, 79,242,114,164,206, 8, 7, 25, 18,177,205,246, 80,238, 31,245,
+228,176,217,151, 19,205,210, 49,254,135,209, 35,234, 21,235,245,182,218, 99, 58, 11, 80, 53,163,231,220,213,140, 2,146,183,140,
+ 76,245,151,119, 86, 18,178, 83,152, 81,232, 68, 32,111, 59,231, 17, 98,159,153,114,135,234,116,224,224,161, 84,247,211, 79, 79,
+228, 39,191, 58,144,111,188,188,193, 81, 18,206, 16,207, 1,188,154, 16, 40,136,209, 96,128, 72, 34,151, 81, 68, 14,141, 79,201,
+ 69,232,103,103, 45, 19, 76,249, 11,213, 39,159, 6,210, 50,121, 75,230, 41, 47,184, 80,106,211,107,206,235,107,250,152,103, 7,
+159,122,218,148,240,192,252, 70, 67,224,219,216, 33,222,248,112,239, 66,142, 91, 19, 96, 23,229,214,237,154,124,116,255,133,236,
+181,206,213, 8, 54,164,166,123,230,238,149, 21, 42,174, 17,124,166,247,249,240,197,145,252,248,167,239,202,241, 69, 95, 86, 26,
+ 13, 41, 55, 10,210,109,246,216,154, 0,146, 25,165,188,128,128,184,177, 6,149, 83,126, 21,192,104, 64, 58,163,159,110,216, 2,
+ 19,222,129, 65,216,212,192, 24,251,105, 79, 51,230,216,141,253,161, 84,186, 92,173,144,159,125, 79, 29, 61, 50, 63,148,160,221,
+ 16, 55, 29,250,194,104,161,154, 82,131,166,182,254, 14,189,118,211,120,241, 25, 16,147, 93,107, 60,231,247,162,207, 92, 45, 21,
+153,245, 99,230, 29, 37,252,131,102,155,215,134, 99,142,215,152,130,157, 80, 33, 13,125, 72, 98, 20,220, 68, 64,232,246,124,130,
+ 35, 97, 86, 90,197,154,108, 44, 53,228,179,158, 6,103,169,188, 62,167,172, 85, 25, 18, 54, 13,129,178, 60, 28, 22,164,106, 99,
+226, 67,109,253,125,114,241,199,210,236, 12, 13,177,168,251, 10, 83, 32,233,140,149,196, 47, 52,147, 41,149, 83, 6, 84, 3,233,
+139,102,205,125, 53,176,129, 24, 40, 15,250, 2,112, 64,181, 98, 82,191,191, 66, 80, 21,168,130,241,153,183,174,110,115,178,230,
+201,126, 75, 3,213, 22,219, 11,160,121, 6, 62, 7,129, 7, 80,215,212, 2, 64,118, 77,102, 66,143,182,204, 28,185, 71, 28, 78,
+146,146,205,224, 28,159,146, 4,196,192,163,145,181,110,146, 6,108, 69,208,131,253,144,136,173,213,135,253,235,185,249, 95,100,
+238,200, 12,145, 45,162,237, 55,163, 28,169,190, 42, 35,142,233, 47, 65,213, 61,244,194, 51,169,148,179, 35, 33, 43,138,148,203,
+157, 67,161, 5,128,187, 46,193,139,169,116, 73,247,112, 94,186,231, 45,153,133, 30,117, 48,176,159,131,192, 70, 58, 81,209, 0,
+170,191, 90, 42,112,180, 11, 35,108,145,102,193,223,254,218,215,229,175,254,254,111,137,101, 66,216, 2,241, 25, 96, 57, 16,166,
+124,246,232, 57,103,159,209, 14, 1,109, 48,140, 27,166, 77, 64,129,156,228,184,167,177, 63,226, 57,206,166,125,102,135,149,114,
+201, 33,110, 98, 89,207,213, 40, 81,187,181,186, 70,116, 61,130,200,111,222, 89,147, 31,191,253, 72,246,206,250, 60, 91,163,137,
+157, 1, 84,224, 18,197, 18,133,160, 50, 41, 19, 81,234, 15, 3,182,206,254,231,255,243, 3, 61,131, 87,229,251,175,173,200,141,
+173,186,252,237,175,158,211, 38, 18, 23, 1, 7, 9,159,145,141,201,200, 88,128,204,116,214,103, 53, 33, 0,157, 49, 42, 12,160,
+ 62, 37, 31, 68,192,128,216, 2,168,153, 97,171,196,218,174,161,171,180,144, 22, 44, 54, 28, 68, 38, 87,166,205, 4,193, 13,130,
+232,116,210,250,184, 0,166,145,254, 87,237,206,177,218,167,139,238,128,109,221,107, 91, 59,186,126, 89, 57, 59, 63,151, 7,251,
+ 73,181,243, 51, 89,107,148,200,112,137, 41,171,163,211, 14,217,239,206, 48, 34, 10,128,164, 6, 56,160, 93,142,196, 68,117, 0,
+190, 76,165,115,234,192, 83,228,171,191,185, 13, 54,200, 30,193,121,183,118, 27, 92,231,189,163,174, 60,126,222,150,151,111,123,
+114,250,188, 47, 23,189,185, 52,244,239,191,251, 70,149, 19, 77,235,234, 35,254,155, 63,126, 89,254,244,223,222,211,115, 22,200,
+251,239, 31,201,245, 43,122, 31,200,214,125, 27, 93,226,232,102,218,231,180, 14,206,127, 94, 3,244,171,215, 86,216,250,229,152,
+ 27,180,176, 83,174, 92, 15, 91, 26,141,186,164,251,228, 24, 79, 34, 73,181,155,207,159,189,144, 87,119, 43, 82,241,161,194,165,
+134, 26,212,157,122,104, 58, 19,155,145,195,166, 79, 3, 2, 31,154, 81, 42, 20, 51,228,107,255,248,168, 37,255,230,157, 23,122,
+152, 79,228, 31,255,214, 64,190,253,149, 27,174,108,231,244,214, 51, 70,249, 24,133,147, 75,242,135,133, 97,131,129, 57,191,232,
+201,105,189,170, 15, 54,197, 18,247, 8,163, 4, 26,249, 52,178, 14, 1,159,180,172, 45, 5,246, 32, 50,240,120, 68,180, 94,116,
+135,114,180,215,162, 35, 0,187,213, 16,115,146,152,157,213, 5,191,115, 5, 6, 50,173,198,186, 68,201,215,191,252,217, 35,249,
+189,111,236, 18, 77,237,197, 11, 29,120, 71,205,167,239, 9,157, 50, 29, 12,177,112,172, 6,200,231, 52,233,109,207, 52,173, 85,
+251,161, 7,206,102,193, 96, 56,105,164, 56,122, 55,151,114,173, 34,167,247,207,101,211,159,171,243, 72,200, 43,175, 52,244,160,
+214,196,134,166, 76, 98,214,207,100,221, 60,144, 41,142, 9,169, 99, 69,154, 71, 35, 70,185,158, 83, 16, 2,168,136,235,203, 18,
+143,190,115, 70,129,104,126, 18,252,200, 36,246, 13, 57,170,135,181,158,157,203,254,254, 57,208, 55, 4,234,172,100, 60, 89,219,
+ 41, 73,230, 90, 69, 80, 45, 92,232, 28, 99,237,147, 78,158,239,115,205,226,223,191,191, 47, 80,106,223,185,178, 44,119,175, 54,
+100,163, 84,162,195,109,117,212,105,232,125,173, 46,137, 6, 72,194,140,140, 89,112,152,146,230, 64,100, 85, 3,138,239,189,190,
+ 41,231, 3, 4,105, 1,193, 39,158, 26,172, 92, 38,150,122, 30,178,182,122, 56, 19,230,168, 73, 35,227, 50,114, 84, 51, 38, 4,
+234, 69,114,181, 96,252, 1,120, 69, 52,141,229,172,175, 89,107,156,227,136,219,151,231,166,216,247,117, 35, 84,120,109, 62, 69,
+176,169,238, 13,117,182,145,141, 10, 17,217,143,224, 72,159,253, 13,189,239,118, 15,122,241, 99,185,178,179, 44,239, 63,120, 76,
+225,148,134, 58,191,255,234, 79,222,148,179,206,152, 35,156, 89,181, 16, 48,242,255,254,131, 15,228,131,251,207,184,150, 66, 25,
+ 96, 79,238,239, 63, 99,118,142, 96, 7,198, 99,255,172,107,104,240,208,178, 90,148,177, 49,154, 21,163,167, 45,198, 62, 54,211,
+115, 83,206, 22,100, 99,165, 33,205,110,159,253, 53,150, 84, 81, 69,208,181,219,221,221,150,195,211, 83, 57,109,183,233,248, 23,
+ 96,186, 4,229, 37,221, 94,208,123, 93,173,213,100,181, 90,149,246,160, 47,125, 10,233,164,104,228,145, 65, 99,127,178,210, 65,
+221,229, 20,193,106,232,167,195,241,130, 28,230,249,209,177, 81, 74, 38,172,122,224,197,191,233, 47,147, 42,119,110,253,122,234,
+ 82,133,191, 33,128,137,157, 19, 11,157,210, 26, 90, 2,248, 28,148,254,241,185, 8, 80, 16, 20,160,167,153,244,173,210, 6, 99,
+ 11,231,101, 84, 4, 30, 29,107,204,121,240,132, 58,239, 50, 51, 60, 56, 38, 56, 42,100,253,163,177,141, 30,198,226,185, 76,168,
+168,219,117, 64,114, 28,216,128,118,183, 67,101,179,171,235,117,246,152, 51,196, 90,204,105, 60,143, 90, 93, 55, 29, 51,146,126,
+255,130,253,119,140, 83, 26,229,176, 93,183, 23, 58,158,238,132,209,201,130,235, 29,109, 41, 0,197, 96,196,145,141, 3, 28, 6,
+ 91, 55, 2, 17,208,220,248,240, 97, 67, 56, 26, 21,204,105, 48, 13,101, 29, 93,182, 54,102,174,205,226, 47,244, 46,112,255,250,
+249,137, 49,202,215, 99,117,218,105,117,206,105, 58, 59,140, 54,198,100, 2, 12,156,234, 86, 40, 81,128,125, 61,231, 89, 30, 7,
+154,229, 15,141, 43,190, 6, 22,185,222,128, 99,176, 60, 31,177,199,103,214, 27,132, 28, 47, 44,149,171,196, 34, 52,212,142, 96,
+ 66,231,180,217, 81,251,216,145,205,237,171,242,214,107,175,115,188, 21,211, 16,212, 90,159,134, 54,254,164,103,235,232,172,165,
+153,253, 41,113, 45,188, 30,117,234, 83,202,150, 38, 37, 91,207, 51,192, 51,179, 93,114, 88,155, 4,157, 50,156, 51,170, 64, 32,
+ 84,201, 47,175, 81, 92,101,164, 25,252, 95,252,226, 11, 86, 97,192, 76, 7,209, 37, 6,230,122,157, 0,131,161, 5, 0, 77,248,
+209,100, 65,138, 99, 58,239, 72, 82,254,236, 39,143, 24,176,255,225, 55,111,201,243,147,190,102,192, 35,246,171,141, 60,197, 20,
+202, 56, 41,158, 77, 92,246,235,243, 89,143,108,141,168,116, 64, 11, 36,156, 25,200, 19, 61,105,171,122, 4, 78,152,201,145, 83,
+249, 54,167,141,228,175,162,107,180, 84,206, 16,195, 65,213, 78,253, 59,208, 15, 95,244,250,198, 96, 8,177, 23, 76, 49, 68, 38,
+174, 4, 62,135,117, 13, 94,227,160,167,235,156,213, 61,214,227, 90, 54, 47,134, 44,107,131,132, 8,120,155, 97, 96,218,237, 4,
+228,138,181,177, 80, 77, 67, 27, 3, 84,192, 8, 68, 49,227,143,253,249, 80,157, 55, 2,173,149, 70,142, 90, 40, 70,174, 52,147,
+183, 63,236,200,222,225,128,100, 69,103, 23, 35,201,233,186,188,247,233, 76,190,254,122, 81,178,154,152, 93,209, 76,254,127,248,
+231,111,201,120, 48,101,208, 19,163, 5, 1,172,136,235,195,123, 60,183,145,252,252,221, 67,174,223,195,253,182, 52,155, 99, 77,
+ 18, 82,148, 38,151,132, 56,186,108,211, 78, 73,222,168,105,198, 51,156, 75,170, 82, 34, 59,218,190,110,200,186, 46, 78, 41,107,
+ 7,196,159, 77,164,170, 17,197,100, 62,144,173,122, 29,192,120, 82,140,150,234, 21, 58, 32, 31,125,178, 74, 81, 74,154, 89,188,
+191,215,214, 5, 46,178, 39,242,147,143, 14,137,140,125,105,119,153,243,165, 48,214,200,244, 64,249, 8,201, 84, 95, 23, 3,102,
+ 5, 96,165, 20,145,189, 67,121,239,241,185, 60, 60, 11,168, 50,246,237, 87, 55,101,123,181,204,191,203, 71,150, 69, 36, 28, 91,
+ 25, 75,138,238,208,193,112,149,139, 57,141,230,215, 52, 98, 77,179,252,129,217,229,172,187,126, 70,236,250,190,140,102, 74, 24,
+255, 65,100,254,222,167, 7,242,163,239,220,224, 70,128, 65,129, 99,206, 81,245, 76, 56,159, 11,193, 4, 32, 95, 49, 7,154,244,
+ 76, 92, 5, 78,177, 57,113,180,145,227,177,147, 24,180, 89, 85, 40, 58,249,177,205,154,127,253,238,146,188, 56,189,144,243, 30,
+200, 45, 2,178,172,129, 1,106,238, 88,171,188,177,161,225, 57,118, 22,153,188, 30, 62,123, 58, 14,196,239,129, 28, 37, 67,245,
+ 54,193, 96, 33,145,180,134, 0,103,140,234,104, 3, 7,122,120, 33,186, 1,195, 10, 35, 57, 82, 47,119, 54,138,229, 43,155, 75,
+242,242,110,193,120,197,209, 35,136, 12,113,185,160, 41, 98,133, 64,255, 61,237, 76,165,255,172, 39,103,221, 9,121,214,161, 73,
+223,237,235,225, 15,243, 84,107, 75, 4, 9,234,139, 35, 81,247, 25,219, 36, 32,158,196, 18, 84,152, 64,156, 26,145,215, 96, 5,
+ 89,120,194,136, 81,144, 73,189,245,202, 26, 75,149,141, 90,222,218, 5,151, 67,242,238,186,131,152,207, 7, 11, 81,213,172,205,
+ 35,154, 63,102,166, 68,109, 97, 61,224,169,130, 33, 89, 41,186, 65, 46,102, 35,216,193, 72, 32,153,234,134, 26,253,158, 6, 54,
+182,136,127,177, 7,112, 29, 26, 48,134, 36,138,240,229,141, 27, 75,210, 26,198,242,222,163, 3,105,182,187,172,136,108, 47,233,
+ 94,242, 1, 2, 4,175,243,132,145,248, 47,126,253,133, 26,203, 99, 13,242,190, 38,159, 63, 63,144,139, 97, 68,132, 60, 20,156,
+218,106,180,178, 40,113,170, 99, 26,142,219, 76, 62,139,217, 28,203,235, 40, 19,135,228, 89, 78,154, 18,157,166, 0,200,152, 43,
+165,188, 6, 0,231, 52, 30,169,148, 9,225, 0,213,127,125,115, 83,141, 70, 83, 94, 28, 31,153, 58,153, 26, 69,128,200,168,163,
+190,200,126,245,250, 43,234,160,225,212,145,157, 19,167,193, 25,103, 27,219,202,146,137,206, 70, 8,129, 36,207, 59,213, 60,124,
+ 30,202,128, 32,187, 48,129, 7,223, 62, 55, 54, 29,102,161,108,170,245,148,219,221,174,113,209, 47, 36, 38, 99, 11,210,141, 33,
+209,198, 15,113, 31,157,254,192, 57, 49,155, 40, 64, 25, 17,224,206, 81,111,172, 65,118,154,206, 29, 85, 4, 48,142,129,202, 24,
+207, 26, 78, 31,153, 24,130, 2, 92, 83, 68,190,243, 33, 41,108,209,107, 55,125,104,159, 35,153,192,189,160,122, 5, 64, 90, 87,
+141, 46,250,217,213, 60,184, 50,202, 12,162,234,229,156,188, 56,187,112,123, 62, 45, 41, 0,241,244,140,125,227,149, 93,185,190,
+177, 36,159, 63, 61,209,247, 25,179, 27,198,219,144,229, 49, 32,246, 3,155, 20, 73,103,201, 24, 56, 1,217, 11, 81,253,150, 1,
+ 34,232, 3, 40,111, 52,236,243, 28, 96,111, 99,118, 31,193, 14, 74,242, 73, 39,186,131, 17, 58,150,171,243,110,164, 18,193, 11,
+108, 14,190,135,224,179, 52,229,141,137, 97, 1,241,191, 11, 64,187,189,158, 38, 69, 61,241, 53, 40,131, 35, 65, 64, 48, 82, 67,
+142,177,177, 24, 1, 64, 48,176,192, 65,192,247,126, 46,105,205,176, 11,149, 42,249,225, 1, 83, 48,142,141,153, 52,207, 78,101,
+101,105, 69,150, 26, 13, 73, 23, 42,156, 8,193,244,198,253,199,207,100,105,233,235,178,179,123, 85,126,252,215,255,206, 20, 22,
+ 39, 1, 37,129,177, 95,176, 14,101,205,236,239,222,188,166, 1,210,132,253,100,162,221, 29,235,100,146, 85,150, 36, 71,114, 57,
+203, 15,162, 39,138, 6, 25,128,175, 63,236,202,249,180, 35,195, 66,131, 66, 44,209,188, 39, 27,141,138,238,135,161,180,240, 44,
+245,158, 1,254, 5, 11, 31,184, 8,206, 59, 23,154,157,110,202,237,171,235,242,244,240,156, 1,224, 20,156,250, 8,122, 52, 3,
+253,155,119,247,228,206,181,101,249,227,111,223,148,127,249,231,239, 73, 79, 3, 92,112, 52,228, 11,232,245,103, 9, 56, 37, 55,
+ 0,112, 40, 32,104,130,224, 9, 70, 71,117,191,233,210, 82,240,137, 99,156,144,224,228,136,101,196,128, 28, 9, 23,147, 20, 88,
+ 63,221,206,208,130,207, 80,113,210,218, 92,160,219,197,216,215,241,160,199,224,131, 65,168, 3,123,146,117, 77, 3,206, 43, 27,
+155,250,124,134,210, 40,198, 20, 24, 2,171,219,136,140,133, 83,169, 85, 34,158, 55,144, 94, 13, 58, 49,251,245,164,132, 29, 91,
+102, 76,157, 4,207,103,251, 22,109,224, 96, 52, 35,110, 8, 2, 48,168, 10,163, 5,138, 80, 23,159,129,132, 7, 62,232,139, 39,
+ 77,217, 82,127,134,202, 8,198, 52,223,121,120, 38,231,195,153,174,221,170,220,218, 90,146,106, 61, 43,229,114,154,254, 9, 97,
+ 11, 21, 33,225, 63, 82, 70, 99,253,158,174,229, 7,159, 29,169, 35,135,128, 78, 95,126,246,235, 19,249, 39, 63,184, 66, 27,138,
+ 0, 38,230,172,158, 57,247,100,102,185, 38,105,205, 48, 3,208,197,234,162, 67, 78,244, 37, 61,148,156, 95,199,240, 61,184,129,
+193,237, 14,118,160,181, 50,133,236, 9,146,201, 27,177, 4, 54,182,232, 69,254, 74,191,228, 95,253,221, 35, 3,219,160,220, 59,
+245,229, 47,223,126, 70, 7,124,117,169, 72, 84,108, 58,155, 97,249, 43, 5,131, 3, 24, 52, 56,213,243, 32,173, 17,121,228,135,
+114,120, 30, 72, 71, 35, 42, 4, 11,127,251,238,115,249,174,102,131, 55,183,106,156, 83, 54, 36,176,161, 45,173, 95, 98, 15,159,
+ 68, 20,200, 92,138, 9,150, 74, 81,214, 5, 57,138,239, 52,159,103,145, 57,196,145, 70,124, 99, 61,104, 95,191,187, 34,217,199,
+ 77, 73,171, 51,203,131,203, 61,158, 73,168, 14,245,209,241, 68, 31,112,150,142,240,139,131,142,124, 95, 95, 87, 79,199, 44,193,
+ 65,119,184, 31,100, 53, 0,137, 44,210, 4, 91,215,116,206,108, 13, 78, 7,193, 67, 31, 35, 49,106, 79, 86, 17, 16,229,151,184,
+249, 40,161,170, 27,205,155,153,128, 7,123,230,208,124, 70,251,129,204, 91, 8, 54, 82, 18, 97, 62, 30,181, 40,140,206,100, 77,
+ 8,129,189,104,148,198,147, 78,119, 21,237, 0,244,205, 17, 12,169, 97,234,107,102, 11,144,227,140, 8,221,152, 4, 61, 41,189,
+255,132, 26, 93, 8,183, 68,211,144, 51,176,204,244, 99, 19, 81, 33,152, 72,151, 29,173,142,126,119,168, 81,232,140,153, 46,230,
+123, 29, 46, 67,163,113,143,130, 53, 43, 48, 0, 9,235,185,218,172,118,204,195,178, 89,246, 57,255, 76, 46,244, 0,100, 7,174,
+183, 74,109,227,148, 1, 15,125, 3, 11, 98, 18, 0,180,178, 0, 46,213,213, 89, 23,210, 54,198, 38,190, 85, 70,192,235,239, 1,
+132,134,185, 90,125,199,170,110, 88,191,148,228, 38,245,156,112,139,137,202,197, 86,173, 64,207, 90, 29,111, 0,192, 12,203,250,
+121, 73,228,242,172, 48,225,185, 65, 78, 34, 23, 15,101,214,107,201,211,211, 80, 62,125,188, 39, 53,117,180,199,157,166, 92, 95,
+174,200, 68,179, 60,140,248, 61, 57,238,200,223,125,248, 49,121,164,255,199,127,246, 95,112,222,251,167, 31,125, 78,162, 9, 24,
+ 55, 56, 35, 56,145,188, 6,186, 61,162,111, 69, 10,153, 44,157,224,132,104, 91, 83, 75, 35,117,163,238, 65,240, 92,147,102,185,
+121,238,156,180, 71,103,177, 82,175,201,245,237, 45,249,252,201, 51,205,210,207, 12,181,203,153,216,148,101,134,177,101,234, 32,
+ 97, 1, 41, 13, 62,243,241,225, 33,203,244,236,183, 7, 1,117, 5,216,250,136,141,188, 5,149,151, 82, 1, 98, 17, 9,226, 53,
+128, 7,192,172, 63, 70,113, 76,109,208, 24,233, 16,181,103,128, 5, 72,250, 68,196,123,139, 72,126, 33,153, 76,237, 3, 91,227,
+ 40, 54, 80, 25,178, 44, 92, 59,228, 99, 17,116,132, 60,247, 73,150,111, 23, 0, 82,244,125,147,177, 41, 66, 1, 61,140, 32, 7,
+217,116,190, 92, 32,176,118,145,241, 19,231, 17,196, 78,214, 18, 83,178, 41, 87,177,243,137,104,198,251,179,233, 28,105,107,201,
+104,153,207, 73, 53, 25, 75,123,144,100, 32,128,201,148,179,139, 1,251,240, 81,100,193,244,253, 61, 93,195,153, 79, 84,249, 96,
+112, 33, 89,117,120,172,247,121, 17, 43, 53,184, 63, 80,122,194, 17, 76, 7, 99,142, 34,194,152,227,188,226,119, 56, 31, 8, 62,
+ 18, 94,193,177, 49,122,204, 78, 9,168, 11,173,186,151, 97,255,203,212,255, 18, 46,176,193,232, 25, 2,119,236,201,178, 58, 0,
+ 61,164, 68, 86, 79,136,120, 55, 14, 12, 84, 8, 89, 13,240, 13, 24, 10,103, 50,101,255,220,206, 32, 85, 0, 1, 59, 46,234,217,
+ 81, 19,138,209,202, 13, 13,224,128,189, 25,143,186,166, 76,152, 68, 53, 50, 43, 39,122,175, 39,167, 39,196, 2,124,252,217, 33,
+193,137,133,188, 6,165,153,156,236, 29, 28,201, 43,183,110,200,214,230,182,124,252,233,167,156,229, 70, 32,144,242, 12,233, 62,
+212,160,226,237,247, 14, 57,223,156, 72,100, 88,141,192,135,227,153,224, 90, 50, 12,126, 67,182, 41,210, 78,120, 40,118,147, 63,
+ 8, 10,146,254, 92,118,119,114,116, 68,168, 86, 65,125,174, 94, 45,105,144, 17,200,137, 38, 3,157,193,148, 54, 35,149,156, 19,
+251,242,244,232, 76,207, 77, 81, 94,187,179, 45,239,220,123,206,164, 47, 92, 96,131,244, 67,126,242,209,145,252,240,205,117,249,
+254,155,183,228,139, 23, 23,116,188, 40, 18, 33,233,130,253,107,247,109,154, 10,242, 96,125, 2,249,128,249,153,176,186, 48,159,
+245,101, 24,217,152, 34, 18, 28,150,226, 25,124,122,151,147, 51, 16, 80, 90,214, 32,176,133,178,250, 48, 48, 76, 11, 91,170, 99,
+142,127, 2, 21,143,224, 6, 65,228, 80, 29, 48,136,158,110, 95,217,181, 73,162, 89, 79,118, 87, 86, 56, 25,129,246, 45, 4,138,
+ 74,165, 28, 65,167,208,183, 95, 95, 47,145, 61, 16,128, 72,236,215,225,200,232,119, 17, 40, 15,134, 8,208,114,100, 41, 5,158,
+ 75,205,175, 6, 91, 85,121,118,116, 65, 26,105, 84, 80,129, 1,170,235,190,190,162,193, 97, 77,215, 13, 98, 71,235,203, 37, 61,
+143,250,140, 59, 73, 13,114,124,249,201,199, 7, 26,144,119,229, 71,223,186, 69, 14, 1, 84,158, 60,246, 32,141,142,124,166,201,
+225, 64,109,198,230, 82, 94,237,177,222,215, 96, 76, 48,225, 79,222,127, 38,223,188, 85,151,173,149, 60, 19,162,120, 20,152,157,
+ 68,203,123, 22, 38, 53,114,152,201,217, 97, 79,182,151,179, 82,210, 72,172,171,209,239,139,206,140,220,189,145, 46,238, 76, 15,
+241,141,141,138,108,248,106, 60, 70, 19, 58,234, 17,230,190,245, 0,141,250, 6, 24, 59, 60,234, 74, 29,236, 72,129, 33,138, 1,
+ 36, 66,148,255, 11,205,138,223,252,225, 45,169,175,169, 65,210, 40, 18,168,207,136, 20,163,154,185,131,223, 83, 31,216,176, 27,
+200, 23,123,122, 72,243, 57, 50, 95,225, 88, 32, 99,254,217,199, 7,140, 68,239,238,212,105,188,216,123,156, 71,206,144, 88,223,
+149,108, 98, 40,249,160,127,134, 57,210,113,192, 69,206, 58, 49, 1, 70, 46,144,121, 69, 63,158, 68, 21,105,249,254, 87,182, 37,
+159, 0, 18, 58, 38, 83,209,103,143,187,242,217,243,174,252,119, 63,188, 65, 29,237,141, 90, 78,179, 38,204, 51,206, 37,163,155,
+231,222,254, 64, 62,111,247,229, 63,251,246,182,140,184,241, 61,169, 2,153,158, 72,176, 55,152,102, 22,212,211, 12,184,175,247,
+228, 75, 77,191, 99, 6, 3,125, 50,144,205, 34,128, 93,122,233,216, 12, 57,225,248, 69, 52,140,136,146,135, 3, 8,209,106,208,
+181, 76,229, 49,243,106,243,143,230, 68, 81,133,240, 57,219,205,100, 91, 45, 95,255,188, 39, 23,157,145,236,235,207, 97,107, 68,
+ 48, 33,156,127,235,124,200, 40,241,171,215, 74,154,237,235,198,208,236, 71,230, 70,205, 2, 7,207,210, 53,231,122,141, 56,162,
+166,225,109, 42, 4, 85, 79,200,235,157,145, 79, 59,114, 72,252, 36,133, 22,208,177,139, 52,136, 25,143, 93,175,213,113, 16,103,
+153,153,138,245, 10, 61, 99,139,235, 67,120, 2,179,247,189,169,149,212, 81, 37,160,250, 81, 32, 23,224,138, 7, 80, 47,145, 87,
+199,104,173, 5, 35, 87,240,228,201, 65, 91, 18,122, 56,118, 26, 5, 25,106, 0,179,190,148, 99, 6,129, 96, 4, 14, 52,156,196,
+156, 9,198,135,171,173,147, 4,180,175,245,153,148,188, 57,163, 89, 28, 28,150, 84,199, 67,141,216,167,122,221, 49, 53, 6, 6,
+122, 61,239,222,127,206, 49, 56,232, 43,163, 56, 80,129,250,158, 30,234,247,238,171, 3,191,247, 88,166,106,168,111,108,109,200,
+191,255,232,190, 28,156,119,168, 76,134,160, 17, 35,131, 32,150,128, 0, 11,100, 83, 23, 35,104, 0,104,114,214,217,209,231, 70,
+228, 18, 72,200, 90,163,206,114, 41, 40, 95, 61,167, 90,136,245, 44, 23, 32,105,185, 34,251, 39,103,236,163, 3, 96, 20, 56,240,
+ 86,232,102,196,225,104,140,223,217, 90, 51,200,144, 19, 14, 48,135,207,136, 28,144,173,140,185,234, 36, 74,237, 6,136, 67, 41,
+ 49, 71,109,240, 57,199,216, 16, 48, 4,156, 19, 55,174,234, 5,202,118, 33,227,104, 44,114, 51,163, 39, 93, 0, 73, 61, 71, 59,
+137,243, 65,101,171,144, 61,195, 37, 53,122, 80,137,179,207,183, 82, 40,250,183, 4, 61, 50, 40, 72,179, 58, 4,185,215,241,196,
+168, 84,113,102, 89,241,162,174,180,157, 77,140,255, 4, 30, 50, 31, 83,206,130, 34, 32,250,210, 24,244,203,146,130,214, 42, 87,
+120,126,112,152, 81, 42,148, 90,185, 72, 14,123,244,102,151, 52,219,197,251, 32,171, 10,144, 20,198, 85, 59,253, 25,105,149,191,
+114,103, 75,205,198,166, 60, 59,233,105, 16, 48,209, 19, 98, 20,175, 36,135,113,253,241,104,102,122,219,181, 66,157,104,113, 56,
+ 51,204, 49, 3,240, 55, 47,150,232, 52, 80,126,174,148,202,172, 20,224,255,197, 41,221,245,136, 83,209,231,152, 12,248,140,113,
+198,194,197,136, 97, 96, 6, 30,217, 42,206,120,214, 79,178,226, 80,208,231,109,193, 75, 78,109, 66,222, 5, 98, 96, 95, 76, 50,
+ 33, 74, 80, 88, 70, 13,112, 48,225,184,106,210, 51, 18, 19, 56,166, 4, 65,108,105,221,167,105, 13,214,187,108, 61, 32, 83,107,
+183, 59,178, 92, 47,209, 25,161,101, 25,133, 41,249,248,222, 39,114,101,107, 93,190,254,181,111,178, 53,102,193,132, 9,143,132,
+196, 9,121,116,236, 7, 39, 39,186,142,234,212, 0, 72, 99, 16,106, 64, 64, 56,113,154,104,215, 91,247, 33,156,232,167, 88,158,
+ 23,180, 53, 98, 19, 71, 41,150,235,252,236,137,222,235,217,241, 1,159,221,132,237,166,196,255,199,212,123,254, 90,150, 95, 87,
+ 98,251,132,155,243,189, 47,135,170, 87,169, 67,117,179,187,153,196, 36, 74,163,209,104, 52,158,209,140,173, 15, 6, 12, 3, 3,
+219,128, 63,216,255,145,253,197,134, 1,195,134, 61,176, 5,141, 32,105,100,137, 10, 20,169,110,146,106,178,115,229,240, 94,189,
+120,115,206,231, 28,239,181,246,239, 21, 69,161,213, 93, 85,175,238, 61,231, 23,118, 92,123, 45,238, 55,146, 6,204,206, 3,152,
+250,233,163,103,122, 54,223,149,157,122, 81, 30,159,116, 9,250,133, 93, 44,235,119,252,226,193,165, 58,221,148,124,231,253,219,
+242,245,251, 49, 49, 23,173,222,140,216,164,233, 34, 33,179,232,124,109, 68, 43,104, 97,162,114,185, 34,178,221,168,149, 23,179,
+161,218,168, 20,219, 83, 56, 99,201,181,212,178,218,132, 98,169, 68, 86, 71,168, 85, 22, 48,213,146, 9, 24, 76,162, 10,215, 35,
+126, 36, 97,165,108,229,212, 67, 17, 20,127,243,254,155,108, 53,119, 90,167,250, 28, 99,182, 4, 97, 41,183,235,121,121,235,238,
+ 62, 91,107,143, 79, 58, 28,243,134,111, 41, 23, 43,234,236,109,146, 3, 2, 53,195,201,216, 90,193,152, 12, 67,128,171,193,194,
+254,238,142,188,123,148,229, 8, 30,178,247,109,144, 99,233, 90, 0, 97,127,252,248, 74, 30,105, 48,243,214,173,170,250,154, 5,
+ 1,211,245,221,154, 28,212, 27,114,123,107,131,182,251,147,207, 94,200,163,211,150,188,247,198, 1,109,132,196,102,167, 65, 32,
+244,224, 85, 95, 62,121,116, 46,191,251,221, 35,249,221,223, 56,148,191,248,233, 19,195,127,168,205,249,227, 15,143,229,191,255,
+253,123, 26, 32,233,221,212,195, 0,191,140,123, 31,198, 24,165,210, 69, 60, 30, 44,213,169,231,101,164, 81,255,137, 58,140,167,
+ 87, 19,233,247,103, 50, 27,205, 88, 46,199,194,157,117, 71,214,227, 96,204, 57,161,218, 26, 24,156, 80,234, 65, 84, 89,171,129,
+ 66, 47,116, 95,186, 96,207, 11, 11,200,139,166,158, 45,134, 44,162, 24, 95, 58,208,149,248, 7,190,250,227,207,206,228,243,147,
+ 49, 75,124, 24, 15, 48, 3,130,121,234, 88,254,254,211, 87, 84,153,250,254,219, 59, 54,154,226,217, 28, 53, 14, 14,192, 4,184,
+ 52,136,250,194, 44,196,236,125, 25, 15, 87, 44,227, 20,192,163,155,182,145,153,192, 3, 3,150, 70,163,250,119,210,208,103, 94,
+121,210,153,251,178,145, 11,245, 34,169, 83, 82,231,241, 8, 61, 15, 93,148,173, 58,212,129, 52,211, 86,195,242,162, 59, 39,193,
+195,159,126,218,150,179,206, 84,222,185, 81,150, 55, 15,107, 36, 99,168,105, 38,145, 56, 49,147, 20,231,112, 61,205,150, 75,114,
+114,213, 38,105,202,138,101,238,145,116, 53, 80,185,211,200, 75, 85,159,129,138,239, 41, 48,254,170, 1,149,216,241, 53, 99,254,
+ 65, 51,239,222, 84,157,177, 58,215, 82,198,113,145, 71,204, 64,215,145,205,122,206, 53,152,186,128, 28,229,116, 77, 37, 43,176,
+239,197,164,171,245, 8,194,153,247, 49, 38, 4, 41,205,178,120,216, 96,204,129,131,221, 10,128, 11,199,211,201,105,117,208,141,
+170, 35,206, 22,178,102,246, 97,160,214,168, 42,172,201, 51,159,128,148,198, 11, 44, 32,138, 93,105,149, 50,182,234,116,128, 6,
+213, 64,172,145,247,173, 52,164,134, 19, 0,188,201,218,104, 41,113,208,168,195, 60,205,154, 52,168, 70,207, 64, 73,175, 92, 95,
+221,115,192, 35,204,203,163,108, 4, 56, 17, 90, 9,184, 48,160,248,125,165, 65,144,215,179, 18,215,222, 65, 94, 46,207,231,210,
+157, 39, 60, 47,219,213,148,236,222, 46,112,170, 2, 24, 15,204,247,226,125,115,163,190,172,103, 38,196,177,212,128,164, 57,205,
+200, 39, 79, 90,210,215, 32,107,123,163, 46,151, 23, 87,242,181, 3, 13, 72, 55,107,242, 39, 63,249, 72,154,221,150,220,211, 8,
+252,184, 61, 35,112,230,199,159, 61,228,190, 33, 48, 93,234,231, 0,141, 91,161,158,247,210,245,167, 3,235, 67, 39, 17,251,219,
+145,155,149, 6, 17, 7, 50,106, 80,189,130,243,221, 28,165,199,245,220,213,224,246, 96,123,139,206, 17,156,236, 19,142, 24, 69,
+ 12, 20,192,230,133,146, 55, 50,135,136,189,106,163, 33, 94,185,217,252, 34,196, 66,162,245,235,140,223,181,218,201, 21,143,245,
+ 45, 20, 10,114,124,114, 38,219, 26, 76, 84,245, 25,142, 47, 46, 94, 11,187,224,239,129, 17, 44,116,149, 45,102,220,217,172,107,
+ 21, 57, 38, 48,170, 57,197,175, 3, 6,195, 4, 88,123, 4,239,189,112, 65, 57, 1,126, 41, 43, 71,163,164, 79,134, 59,100, 61,
+153, 12,251,199,137,155,183,197, 7,164,217, 71, 77,241, 44,231,211, 89, 50, 54,198,145,145, 64,225,185,192,200,181,244, 77, 36,
+ 35,164,179,243, 89, 6,247, 29,115, 36, 16,242, 8,140, 38,101, 33,139, 25,148,234, 80,234,191,177, 93,101, 5,226,170, 55, 38,
+ 41, 78, 54, 93,160, 3,238,141, 35,181, 55, 33,171,134,131, 78, 79,179,170, 13, 2, 38, 35, 32,209,193,215,237, 90, 31,232, 25,
+ 77,166,198, 53,207,242,185,227,211,135,252, 42,214, 18, 61,107, 56,171, 12,176, 0, 36, 47,177, 76,207, 39,112,113,161,123,119,
+101, 44,123,168, 44,173, 77,219,194, 11, 12, 44,188, 82,231, 12,238,255, 88,255, 9,130, 77, 18,164,128, 8,229,218,233,155, 22,
+129, 1,248,162,100,198,234, 82,228,175,141,215, 30,247, 15,103, 65,131,189,203, 86,211,225, 1, 34,138,169, 0,133,143, 74, 21,
+ 42, 14,117, 13,108,224,220, 74, 8, 60,196, 90,120,144,174,253,228,211,143,229,157,119,222,167, 30,248, 79,127,254, 51, 77, 64,
+ 74, 44, 85,123,158,101,251,216, 67, 76, 39,125, 77,157, 4,236,164, 49, 21, 26, 67, 32, 37,102,125,159,206, 14, 21, 52,180,109,
+121,118, 48,209, 1,182,192,101, 76,155, 58,155,105, 86,189, 40,176,196,126,122,254, 92, 29,175,105,121,239,237,108, 73, 81,239,
+203,106, 29,176,117,135,131,208,236, 15,228,171,231,167,242,157,247,238, 17,191,244,139, 47, 79,213, 59,120, 82,244,178,228, 60,
+255,232,139, 51,117,160, 11,217,108,148,173,213,184,140,168, 74, 23,144,128, 74, 3, 9, 61, 27, 93,128, 23,213, 81,207,212,150,
+ 65,204, 4, 85, 23, 84,133,226,200,192,158, 56, 59,107,215, 73, 4,235, 32, 2,159,106, 49,203, 57,247,132, 19, 13, 49, 37,109,
+ 49, 45,176,140,108, 31, 1,139, 90, 57, 62, 7,100,249, 95,187,119,151,237,153,110,191,205,123, 9, 25,213,131,141, 50,209,251,
+ 45,245,127,179,135,151,242,193,155, 55, 25, 68,117,151, 49,171,138,105,253,174,149,158, 23, 63,147,102,208,139, 9, 47, 84,135,
+ 17,240, 12,134, 3, 98,103,106,149,172,252,245, 47, 78, 88,133, 11,245,156,126,248,229,133, 6, 5, 83,138, 98, 65, 32, 12,237,
+147,127,248,101,135, 82,174, 8,148,209,226,186,177,187, 33, 93,181,111, 27,181,130,236,239,212,152,173,191,117,176,109,213, 86,
+221,195,135,175, 38,242,147, 47,218,114,114,118,169, 65,239, 88, 68, 63,255,214,222,142,236,238,108,232, 25,232,114,148, 19, 52,
+196,159,188,232,200, 78,217, 2,183,196, 85, 85,195, 72, 23, 51,175,135, 8, 78, 25,179,226, 0, 62, 64,156,227,244,106,164, 15,
+ 19,203,112,104, 99, 95,189, 69, 83,191, 80, 35,154,106,134,138, 64, 15, 79,128, 48,158,145,195, 25,198,251,237,219, 59,250,242,
+145,116,218,166, 42,134, 67,233, 37, 41,106, 91, 63,111, 77,244,160,160,164, 58,166,179, 72,229, 1,127, 77,115, 92, 11,134, 97,
+119,191, 38,183,142, 22,140,162, 9, 70,114,192, 9,207,166,184,232, 80, 55, 42,129, 52, 32, 42,194, 30,170, 57, 29,223, 73,111,
+250, 41,251, 53,102,213,171,152,183,197,104, 78, 90, 47, 72,218, 70,140, 16,100,248, 41, 3,232,128,158,213,119,142,172,213, 83,
+ 99, 50, 13,116,161,118,229,119,190,153,146,174, 6, 51,149,173, 44,203,218, 79,174,166,242,171,167, 45,121,124, 62,147,231,231,
+150,105,253,199,159, 62,147,255,230, 95,127,141, 81,255,169, 6, 56,232,209,195,137,161,191,140,172,121,193, 44, 73,215, 79,215,
+ 12, 63,147,213,160, 7, 88, 1,244,112,191,126,163, 38,197, 57,196, 77,244,114, 4,105, 25,130, 71, 28, 99, 27,154,193, 14,198,
+234, 84,189, 60, 9, 28,158,104,100, 75,229,173,116, 72,108, 0,169, 8, 29,130,119,179, 92,208,104, 56,164,163,245,249,142, 26,
+169, 67, 62, 80, 98, 86, 40,218,152, 59, 69,246,167,209, 43, 75,240,145,209,248,114,179, 57,131,111,253, 83, 92, 78,124,182,239,
+244,136, 72,196, 1,205,250,192, 88,252,124,162,162, 19,155, 8, 64,197, 65, 15,220, 44, 41,202,229, 92,163,225, 48,150,163,170,
+ 58, 59,221,152,146,111,232,245, 70,214, 74,155, 47,212,113,161, 52, 10, 31, 0, 4,174,149, 86, 99, 41,166, 76,130, 16, 19, 12,
+192, 42,196, 24,141, 92,153,176, 65,164,231,167,173, 65, 22, 8, 58, 80,197, 64, 84,142,125,111,108, 56,249, 74,223,216,181, 98,
+107, 23,241,153, 56, 27,172, 63,244, 92,207, 96, 42,175,187,173, 70,223,155, 71,108,211, 76,245, 51,158,158, 94,178,196, 61, 25,
+245, 8,232,108,232,229,253, 95,254,226,103,100, 51,251,183,223,127, 79,254,234,203,166,158,147, 1,199, 36,145, 89, 65,102,116,
+ 91, 13, 68, 10,151, 86,207, 5,212,210,140,216,197,190, 52, 32,168, 51,113,128,189, 68, 29,108,141,251,251,170,217,182,121, 82,
+ 55,123, 15, 99,126, 83,141, 30,178,221,135, 47, 94,168, 65, 52,113, 23,124, 14,202,217,200,150,175,121,220,109,174, 90, 28, 56,
+ 45, 67,199,236, 57, 64, 27,128,106, 64, 78,195,120,228, 11, 89,210,201,226, 25, 27,213, 50,165, 85,111, 31,236,177,157,117,209,
+238,145, 49,142, 78, 8, 18,144,158, 57,176,152, 35,119, 51,126, 54,214, 1,231,169, 55, 52,185,204,235,224,195,119, 1, 3,115,
+117,247, 44,149, 98,158, 58,238,200,230, 80,150,198,250,224,174, 20, 52,235, 66, 9, 90, 92, 37,130, 98, 44,115, 76,117,100,153,
+177, 0, 59, 83, 2,150, 37,155, 97,182,105,172,201, 84,202,160, 64, 5, 38, 88, 50, 41, 7, 23,213,141, 67,134, 71,141, 0, 2,
+ 0, 51,204,120, 16,152,126,245,236, 76,142,118,171,114, 67,237, 75, 87,239, 80, 54, 95,146,223,250,246, 22, 81,251,200,240,128,
+240,255,201,167, 39,250,223, 67,217, 9,139,114,231,198,182, 52,202, 25,205,126,244,220,141,230,180, 3,104,203,100,200,144, 23,
+147,206,154, 61,110,167, 26,136,233, 2,220,207, 56,249,181,146, 32, 16,204,190,195,184,192, 96, 91,249,157,132,168, 82, 42, 55,
+ 56,109, 18, 65, 29,210, 91,146, 8, 42, 12,108,196,104,190, 24,232, 89, 89,243,206,231, 38, 83,138,129,196, 28,179,139, 89, 77,
+242, 74,158,137, 25, 1,145,175,193,199, 92,157, 90, 88, 12, 88,181,170, 52,182, 41,225, 57, 30, 26, 56, 11,149, 41,156,241,161,
+254, 26, 36, 56,176,163,236,175,171, 99,235,232,239,125,227,230, 13,222,169, 78,251, 82,222,188,185, 75, 20,254,124, 4,221,245,
+183,229,227, 79, 63,101,208,147, 77,251,188,239, 40,197, 98, 55, 7,163,174,140,245,252, 71, 14,166, 75, 58,209,216, 70,236,128,
+113, 72,135,150, 56, 17,112,198, 23, 54, 54,201, 41,122,231,104, 67, 5,144, 59,125,159,247, 27, 9, 12, 16,250,224,254, 7,144,
+250, 7, 31,188, 77, 46,248, 63,250,187, 79, 40,197, 10, 27,126,213, 27,176, 39,253,205,119,110,203, 63, 62,186,164,205,195, 90,
+109,212, 75,210,211,189,251,232,171, 11,125,159, 11, 61,183,198, 84, 24,177,202,106,184, 15, 76,226, 44,117,141,168,177, 30, 4,
+214,146,132, 51, 39,152, 59,176,178,178,155,140, 23,202,216,166,165, 82, 46, 27,240, 50, 89,234,153,211,117, 85,123, 85, 4, 57,
+140,254, 94,167, 55,151,106,185,196,242, 59, 70,147,177,150,183,247,247, 89,169, 0, 93,178,198,244,210,110,167, 24, 20,192, 86,
+163,165,134,115,124,222, 28,200,254,214,136,213, 97,128, 50, 23, 41,181,113,108,253,100,105,255, 81, 81,186,230, 48,200, 9,146,
+198,156, 58,239,145, 6, 19, 37, 38,163, 16, 44,202, 4,208,222,152,107, 96, 95,144,134,218, 9, 4,163, 39,151,125, 6,237,155,
+181, 10,171, 41,183,246,245,254,234,189,190,189, 95,163,125,255,232,147,182,156, 46, 52,208,253,197,149,108, 86, 50,234,244,211,
+ 84,236,196,153, 71,160, 0,223,246, 66,109,240, 56,169,203,254,225, 46,231,236,155,125, 93,171, 84, 78,126,241,180, 39, 11, 0,
+164, 87,115, 50,123,225, 60,134,145, 26,209, 78,207, 32,254, 66,146,123, 67, 32, 67,117, 70, 3, 11,205, 94,145,133,234, 15,143,
+214, 4,102,160,124,246, 95,253,176,174,155, 29,202,103,207,142,245, 96,155, 10,212,104, 50, 68, 97, 70, 14,182,202, 68,119, 66,
+ 48, 5, 35,103,232,137,189,104, 79,120,216,240, 66, 40, 31,110,235,131,151,202, 75, 73,235, 97,105,105,118,214,105, 45, 28,150,
+203, 0, 82,134, 65,182, 94, 34, 14, 43, 54, 18, 36, 36,126, 62,227, 70,158, 44,154, 77,156,250, 18, 34, 79,254, 59,186,206, 46,
+ 28,138, 92,108,124, 2, 68, 19,126, 98,104, 75,168,219, 64,249,201, 79,172,140, 52, 91, 89, 38,242,141,219, 27,188, 56, 47,245,
+242, 61, 56,214,204, 92, 23,237,145, 46,236,201,229,212,141,236, 4,242,228, 69, 87,254,232,199, 79,228, 95,124,235, 38, 51,105,
+ 16,160, 0,176, 52, 4, 59, 30,122,228, 40,121, 3, 33,170, 6, 0,139, 59, 37, 48,208, 48,107,151,163, 68, 10,145,141,220,137,
+147,253, 3,100, 41,140, 76,234, 20,189,185, 20, 60, 85,166, 64,163,249,189,251, 13, 34,119,113, 31,193, 56,228, 57, 61,119, 18,
+203, 57, 70, 47, 2,200,176, 6, 40, 69, 55, 71,178,236,171, 99,132, 99, 71,105,115,157,184,108,202, 70, 6,113, 97, 99, 42,206,
+233, 26,168, 3, 93, 56,161,143,107, 13,227, 5, 65, 64,145,149,150,161,119, 14,226, 31, 13,198, 48, 31,141,203,252,246,173,138,
+ 60,125, 18,203, 72,191,239, 98,160,239,162,207,116,191,238,203,205,186,207, 64, 37, 84,167,142, 74,203,197,124, 45, 95,157, 15,
+165, 51, 94,216,168, 26, 13,186,207,145, 28,124, 14, 28,125, 22,239, 36,134, 12, 45,104,176,119,114, 53,160,128,195,141,237,130,
+219, 63,143,132, 21, 8,196,130,217, 66,174, 5,131, 89, 30, 23,113, 34, 44, 49,179,185,243,151, 61,217, 84, 67, 81,212,247,120,
+ 49,241,164, 51, 75,120,200,179,169,178,102,235, 3, 41,135, 57,249,211,159,127,165,235, 50,151,255,225, 15,255,157, 92,245,175,
+228,227, 71,199,156,157, 69,192, 8,167,136,181,156,233,250,119,213,113, 46, 29,133, 42, 12, 12,156, 33, 28, 22, 12, 53,213,168,
+244, 91,247, 54, 55, 56,175,126,169,145, 62, 75,206,169,192, 33,114, 69,142,246,118,213,185,101,229,217,233,153,116, 6,125, 71,
+ 0,146,226, 58,143,103, 78, 28, 37, 8, 28, 50,218, 28, 42,246, 51, 96,102,189,126, 29,200,226,127,139,245,146,234,101,247,110,
+ 28,202, 11,253,188,150,190, 11, 12, 21,250,227, 8, 16,208,167, 7, 77, 44,245,181,213, 40,225, 44, 3,113,142, 95, 15,102, 51,
+119,198, 66,169,107, 64,131, 18,239,252, 58,160,112, 4, 45,226, 90, 9,107,167,123,142, 51,136,123, 3, 60, 1,180,218, 49,251,
+126, 61,106,135, 53,138,184, 38,198,239, 14, 39,235,191, 70,206,199,172,146, 0,245, 13,188,194,218, 91,179,231,218, 40,166,175,
+133, 2,137, 53, 1, 42,109,197, 53, 76,216, 78,233, 33, 8, 6,231, 60,174,132,102, 84, 63,120,247,142,102, 62, 29, 93,215,161,
+252,233,143,159, 19, 64,133, 32, 1,153, 23, 46, 16,170, 85,213, 66,134, 37,231,158, 26, 47,232, 51,228, 50, 85,217,216, 62,144,
+209,226, 66,206,206,206,165,164,239,202,118, 6, 46,198, 98,202,145,183, 24, 4, 37,225,220,218,125,232, 10,169,189,154,207,214,
+146,206,103, 56,207, 14,113, 14, 98, 7, 82, 70,135,203,253,130,147, 15,132, 18,206, 17, 4,172, 0,176, 3,149,195,218,221, 63,
+ 77,252, 83,147, 52,223, 27,255,131, 19,162, 12, 49,122,213,224, 30,247,109,132,106,134, 9, 6,205,208, 33, 97,188, 68,182,191,
+244, 25, 8,108,111,231, 73,129,155, 45,213,104, 59, 3,180,140,212,126,118,186, 87,220,151, 16, 68, 92, 0, 35,206,231,204, 26,
+ 81, 70, 47,151, 74,122, 30,202,100, 54,171,109,237, 73,182, 80,149,157,189, 3,249,214,215,191, 33,207,159, 61,210, 63,171,218,
+160,140,190, 3,176, 80,120,215, 9,208,214, 26, 88,118,251,227, 95,143,134,186, 73, 31,236,254,108,178,208,224,205,116,204,129,
+157,192, 58,227,136, 88,219, 88,247, 75,247,168, 82,169,203,173,195, 29, 86, 72, 58,253,174,145,221, 36, 17, 43,123,223,184,123,
+ 32,103,173,142, 6,193,122,223, 50,208,166, 24,235,175, 11,242,237,251, 71,242,247,159, 60,123,125,198, 65,252, 50, 95,121,108,
+137, 36,107, 72, 61,175, 89,217, 97, 74,225,132,115, 56,234,182,178, 86, 31,218, 36,240, 23, 75, 55,171, 45, 14, 16,141,170,111,
+ 65, 29, 51, 52, 27, 2, 76, 63,128,215, 95,239,230,120,188,102,249,222,196, 56,151, 86, 37,246, 45, 72,195,221,172,130, 4, 74,
+ 29, 44,245, 14,160, 64,216, 72,203,237,221, 26, 1,119,147, 57, 0,127, 51,249,224,141,186,102,210,154,177,247, 70,108, 69, 68,
+ 89, 96,168,198, 26, 20, 76,100, 5,169,218, 21,240,151, 75, 7, 42, 53,210,157,180, 38, 51,248, 14, 36, 68,248,158, 90, 49, 67,
+ 34, 33,250, 43,125, 7,236,253, 13,205,194, 27, 21, 76, 56,164, 88,201,233,107,208,140,192, 28, 2, 55,160, 31, 70, 53,121,178,
+212,179,160,119,247, 88,147,202, 23,237,153,195,114,216,122,162, 2, 21,196,198, 17,129, 59, 86,200, 69,178,221,200, 74,146, 42,
+232,155,102,232,131,162,168, 40,253,161,190,243,108,168,223, 57,147,176, 80, 72,203, 64, 51,209,247, 15,202, 28,153,106, 95,105,
+ 84, 1, 98,124, 93,164,158, 26, 34,244,142,152,133,176,212,226,203, 89, 87,179,248,139,158,220,221, 72,203, 15,223,219, 98,169,
+ 6,253, 32,108, 92,150,210,138, 6,162,249, 44,244,164,217,153,200,237,157, 2,185,145,191, 56,155,176, 36,225,147, 86, 48,208,
+140, 63, 47,119,119,202,114,161, 11,218,159, 39,116, 50,232,107, 93, 75,101,154,117,139, 24,185, 5, 78,139,155, 99,112,137,201,
+177, 34,194,193,220, 30,101, 55, 49, 71,157, 65,185,203, 99,212,199, 46, 9,122, 32,234, 54, 81,146, 27,232,142, 12,128, 76,212,
+ 67,138, 42, 4, 68, 23,168,186, 83, 41, 18,221,140, 82, 20, 14, 13,216,133, 16,205, 46,117, 3, 30,158,116,164, 63,139, 89,157,
+240, 9,246, 9,152,193, 62,124,218, 38,152,240,219,111,237, 25, 5, 39,128, 50, 80,163, 66, 73, 43, 40,144, 44, 35, 89, 47,172,
+127,168, 14, 10,217, 15, 80,163, 27, 5, 61, 24, 8,126,230, 22, 21, 2, 37,154, 78, 27,250, 62,113, 8,100, 92,184, 27,251,117,
+ 9,227,165, 6, 87, 6, 62, 51, 52, 83,228,198, 94, 18, 27,115, 32,248, 77,163,251,181,161, 90,123, 28,131, 9,165, 81, 79, 75,
+212,159, 26, 48, 7,227, 58, 8,110, 34,199, 1,143, 61, 92, 27,121, 80, 12,174,117,125, 47,204,106, 79,214, 38,151, 10,240, 69,
+127, 4, 49, 16, 79,158, 93,140,228,151,143,218,242,197,211, 14,185,251,255,187, 63,120, 83,141,134, 47,141,179, 72, 46, 39, 49,
+ 75,106, 95,219, 18,121,124,124,165, 14, 4, 34, 46,105, 74,220,146,207, 61, 27,242,207, 95, 93,244,213, 8,167,212, 41,109,106,
+ 4,109,185,194,140,140,107,129,148, 65,232,160,198,178,175,223,185,208,231,219,172, 22, 40, 40, 3, 49, 29,140,239, 16, 49,170,
+107,135,242,151,143,249, 76,148, 35, 51, 30, 65,120, 64, 3,161, 45, 3, 42,221, 13,181, 36,145, 58,226,142,126,214,149, 6,148,
+255,225,147, 51,142,168,160,119,140, 89,252,214, 84, 3,198,169, 70,184,139,137,102, 56,135,242,151, 31,127, 73, 61,101, 8,120,
+160, 98, 0, 28, 4,214,177, 86, 42, 50,251, 3,128,139,125,120,135, 67,240, 56, 62,104,224, 72, 56,247,173,106, 85,157,245, 72,
+ 6,211,169, 1,169,184,103,134,208,191,127,235, 38,123,202, 47,206, 78, 57,158,117, 61,122,150,196, 46, 96,138,205,121,179, 10,
+ 3,101,179,169, 41,153,145,101, 47, 50, 54,195,235,209, 51, 6,165,214,168, 34, 82,190,173,207, 25,184,108, 18,127,231,217,171,
+ 51,102,246, 9,193,152, 11, 67,252,166, 51,116,184,211,107, 77,111, 48, 63,102,179,100, 84,235,233, 51,147, 30,213,157,177,107,
+141,115, 78, 67,208, 72,197,236,161,227, 51, 65,213,186, 89,173, 25,208,109,109, 28,227, 41,246, 97,245, 78,177,148,159, 56,205,
+117,253, 60,253,238,169,222,175,148,102, 63, 40,211, 18, 36,235, 25,151, 4, 74,140, 75,130, 61, 83, 36,119,178,119, 52,146, 26,
+220,101,206, 18,227,120, 39, 11,102,127,173, 17,130,219,162, 58,189, 9,103,154,135,106,156, 38,243, 41,251,246,173,254,216, 40,
+ 66, 81,122, 5, 48, 10,227, 96,227,128, 10, 96,155,245, 58,149,226, 14,246,160,196, 5,134,177,180,218,132,181,221, 25, 65,245,
+ 49,101,193, 7,185,208, 45,107,101,203, 46, 99,252, 12, 0,154,130,243, 31,107, 77, 29, 4, 71,247, 58,137,167,172, 70, 96,125,
+ 32,230,147,246,245,110,133,118,119, 64,149, 13,231,106,106, 6,232, 50,166,164,144,207, 57,251, 21,112,164, 13,193,225,124, 62,
+114,234,148, 52, 81,212, 10,199, 83,161,165,128,214, 90, 18, 91,203, 5, 21, 63, 56,202, 58,168,184, 33, 59,140, 4,104, 53,103,
+ 43, 5,247,184,217,106,145,176,103,161, 65,193, 86,189, 66, 60,195,163,167, 79,229,157,251,111,202,111,255,240,183,100, 62, 29,
+ 74,179,217,113,244,189,107, 35,188, 17,107,233, 84,138, 85,182,131, 16, 28,145, 7,135,130, 60,230,224,177,175, 57,130,138, 61,
+142,185,225,189, 57,114,248,154, 62,216, 99,208, 1,110,119, 32,227, 47, 46, 31,211, 7,188, 56,121,161, 1,195,138,130, 57,152,
+233,134,253,188,175,118, 11,120,128,167, 47, 87,114,231,198,134,212,203, 89,238, 93,110, 29, 82,252, 72,156, 74, 31,180,198, 23,
+228, 1, 89,211,246,101, 48, 73, 13, 16,101, 18, 90, 48,230,197,166, 17,176,178,150, 22,246,200, 40, 46, 18,174, 83, 77, 3, 93,
+172,155,134,228, 84, 57, 67,146, 0, 26,237,116,152,165,156,116,107, 56,101,213,195, 42, 48, 62,137,109,238, 29, 30,210,161, 35,
+179,111,245,218,114,146,173,202,237,237,178,156,180,166,228, 99,105,235,239, 67,155, 33,167,255,221, 82,127, 4,112, 45,101,135,
+123, 75, 57, 44,131,167, 35,114, 72,253,128,115,248,190,103, 4,113, 56,239,208,149, 71, 66, 28,146,213,111,162, 89,120,133,213,
+ 32,147,199,157,203,121,123,196,201, 15,180, 54,128,237, 64,240,120,217, 30,200,150, 6, 22,231,151,109, 93,227, 52,167, 35,208,
+174, 68,224, 20, 50,224,183,246, 24,166, 73,108, 72, 42, 98,219, 6,147, 1,105, 13,136,138,165,178, 84, 3,107, 49, 25,162, 63,
+145,161,218,156,177,218,137,169, 6, 38,225,131,103, 87,210,111, 13, 37, 30, 0, 92,144,200,227,211,174, 60,191,152,201,243, 54,
+148,192, 64, 86,144,167,218, 25,196, 19, 98,142, 56,169,195, 59, 31,201, 15, 52,178,121,247, 86, 93, 15,106, 66, 84, 31, 90,172,
+152,201, 5,227, 18, 50,110,246,247, 98, 67, 34,190,125,163, 42,127,253, 39, 79, 52,226,159,243, 82,110, 55,114,252,121, 12,125,
+ 15,244,239, 78,150,145, 93,122,134,195, 30, 81,156, 38, 20,239, 83,214, 21, 96, 6,136,111,224,236, 19,204, 9, 62,105, 68, 51,
+232, 1,131,123, 93, 15, 95,166,158, 19, 15,227, 88,129,101,242, 33, 23,222,122, 96,125,253,185,143,143, 17,129, 37, 4,120,145,
+181,106,141,136,167, 42,141,114, 81, 29, 87,153, 81,211,245,248,199,150,110,240, 27, 71,107,249,219,143, 95,105, 36,191, 34, 48,
+ 14,129, 68, 42, 19,112,225, 31,188,232,201,123,183,183,228,222, 78,133,198, 14, 17, 58, 25,178,214,115,153,142, 7,114,124,209,
+150,141,124,192,185,201, 70,104,224,178,168, 55,145,158,167,155,231,167, 88, 78,130,228, 32,213,131,144, 13,166, 19, 30,252,165,
+110, 94,185,148,161,216,202,130,218,208,190,147,129, 99,189,214, 8,113,200,159,110, 4, 34, 48,188, 40,227, 30, 95,205,165,190,
+ 95,146,218, 13,117,142, 87, 26, 84,160,175,157, 4,100,109, 74, 16,232, 68, 54, 58, 23,230, 74,220,143,108,201,151, 63,216, 57,
+212, 11,114, 38,255,243,159,125, 66, 17,156,145,190,231,179,211,190,238,125, 79, 30,156,206,168, 80,182,142, 33,214,179,201, 18,
+ 42, 8, 74, 2,215, 23,125,179,225,201,221,162, 58,199,189,130,252,232,113, 75,215,102, 75, 14,170, 25,217,197, 72,198, 50,205,
+210, 48,162,105, 4, 68,192, 13, 0,125, 74,162,153,216,231,186,159,144, 51,125, 77,214, 51, 56, 26,136, 56, 64,102,243,160,150,
+149, 80,215, 12, 32,194, 53,103,148,213,217,148,178, 14,150, 31, 25, 25, 8, 25,204, 34,182, 59, 80, 9,162,208,134,254,241,143,
+ 53, 8,249,213,195,231,242,253,183,183,184, 95,152,217,222,200,248,188,180,254, 32,210, 51,170, 81,240,101, 71, 42,234,176,160,
+116,132, 40, 24,213, 22,244,185,135,179, 5, 29, 21,242, 23, 56,113,207,129,113, 44,177, 77,244,140,148,136, 80,191,100,127,124,
+206,103,198,243,145,120, 73,215,230,221,123,119,233,140, 31, 31,159,176,207, 70, 0, 39,129, 81, 70, 18, 3,167,203, 12,100,109,
+218,221, 4,122,186,192,148, 78,146,227, 54,190, 11, 84, 61,246,151, 99,210,119, 86, 72,249, 10, 7,177,191,185,201,125,124,248,
+226, 37,141, 53,254, 28,162, 45, 48, 44, 64,248, 26,151,249,194,168, 89,157,238, 57, 75,241,152,203,117, 32, 57,150,217,173,200,
+225,136,216,126,173, 38, 6, 39,119, 13, 10,132, 81, 71,185, 30, 14, 26,191, 15, 35, 51, 95,206,165, 86, 49,208,217,112, 60,180,
+158,180,177,226,144, 32, 5,235, 88, 82, 99,136,190,102,127,104, 52,165,101,246, 55,133,217, 17, 13,184,102, 87, 70,181,105,153,
+ 13,165, 90,167, 40, 51,142,228,205,120,205,179,130,241,192,187, 55,246, 72,124,133, 64, 25, 45,128,167,231, 61,162,141,199,234,
+ 88, 80, 44,222,223,172,170, 45,137,152, 81,159, 94, 54,229,107,183, 14,153, 77, 62,126,121, 65,253, 9, 84,170,176,183, 24,147,
+ 98,175,209,179, 10, 8,123,206,153,180,225,124, 2, 35,154,130, 4,213,218,179,128, 3,220,112,235,181, 49,133,225,110,177,189,
+183,142,185,254, 72, 40,192,217,190,140,244,156, 44, 71,204,108,235, 32,179,209, 0, 47,133,241, 89,144, 17, 37,125, 6, 20, 12,
+206,144, 12, 1,123, 22,226,133,141, 71,255,154,148, 24, 89, 40,200, 38,216, 70,194, 40, 44, 66, 13,181,179,243,113,215, 81,146,
+ 10, 3,138,104, 49, 85,231,152,151,135,143, 30,145, 97, 15,163, 88,181, 90, 93,206,244,156, 29,159,158,201,159,253, 85, 73,126,
+247,183,190,167, 25,251, 45,249,251,159,255,138, 65, 60,108,158, 79, 6, 57, 35,202,130, 19, 41, 3, 41, 74, 96,164,199,222,242,
+140, 44,134, 41,179,147,161,181, 97,200,146,231,219, 36, 81,196,145,181,169,218,234, 20, 73,113,246,246,238, 81, 47,130,102,104,
+101, 36, 99, 8, 24, 89,165, 8,124, 86,118, 48, 98,204, 81,200,137,105, 41,252,222,183,111,203, 95,255,227, 19,102,194, 40, 93,
+115,114, 41,176, 86, 76,188,178, 89,126,159, 64, 77, 33, 35, 30,158, 99,181, 28,115, 58,104, 9,123,121, 77, 37,141,196, 13,216,
+ 43,226,110, 82,100,246,163, 62,130,238,211,176,191, 50,141,116,135, 72,239, 12,198,212,186,224,116,212,218, 18,136,155,123,187,
+172,180, 44, 25, 68,170,141,217, 44,211, 62, 29,221,220,212, 4,245,148,212,229,168, 14,131,254, 59, 8,242,210,214,164,104, 48,
+158, 59, 62,138,128,152, 23,124,246, 10,192, 59,175,194, 0, 6,237, 15, 86, 22, 80,201,194,251, 81, 7, 33,197,137,149,195, 27,
+219,250,125,207,196,102, 32, 98,167,182,152, 33,150, 6,210,200,168, 92, 15, 71, 19,125,182, 88,238,223,222, 85,155, 59,160,196,
+118,224,139,227, 45, 17, 86,176,150, 26, 16,214, 53,144,131,172,183,122, 62, 77,118, 2, 41,132,115, 42,212, 77, 34,181,145, 65,
+242, 58, 25,196,247,223, 59,172,203,230, 27, 53, 27, 93,252,149,102,158,239,223,174, 51,226,233,158,118, 88, 30,130, 31, 73, 65,
+ 68, 68, 23,254,205,131, 13,185,173, 15, 10,128, 26, 88,138, 16, 49, 12,244,113, 63,186, 8, 56,178,128, 49, 8, 76, 68, 33,146,
+198, 69, 74,146, 20, 47, 44, 72, 20, 18,189, 0, 55, 54, 11,114,115, 75, 29,167, 58,170,203,206,132, 37, 23, 80,120, 2,128,134,
+190, 43, 68, 71, 80,150, 69,116,234,137,137, 69,112,224, 6, 27, 74, 30,116, 11, 12,168, 32,165,134,125,213,154,147, 3,123,137,
+ 69, 5,106, 92, 23,185,112, 93,180,228,101,178,190, 31,140,113, 4, 54,168,249,130, 64, 39, 48,251, 64, 72,160, 94, 52,157,231,
+193,100, 38, 79, 78,155,210,175,204,164, 51,156,242,144,103,152,241,164, 52, 34, 76,201,173,157,162, 36, 31,236,202,143,126,126,
+162,155,176,224,172,122, 72, 14,105,145,183,246, 66,185, 89, 5,179,220,136,179,207, 48, 64, 36, 17,137, 87,146, 42,165,165,139,
+254, 98,106, 45,239,221,169,115, 28, 16,139,127,124,137,178,156,149,159,115, 32,223, 80,167,159,215,108, 28, 45,188, 66, 25,234,
+105,158, 81,146, 2,117, 15,212,240,113, 71,130, 74, 81, 51,134,144,179,211,148,107, 37, 89,181,245,234,146,149,101, 82,112,240,
+200,172,135,122, 81,110, 53,124,142, 89,224,130, 45, 33, 4,179, 54,176,213,194, 69,116, 33,132, 47,220, 60,125, 70,215,231,131,
+ 59,155,242,135,223,191,199, 8,122,119,163, 32,155,181, 52, 53,238, 63,184,159, 97,150,254,243,135, 61,117,130,101,150,205, 80,
+ 1,193, 76,242, 97, 37,148,183, 54,212, 72,235, 89,223,210, 64,226,135,250, 62, 63,126,208,146, 29,117,198,251,123,121,185,234,
+142,229, 89,107, 44, 57,240, 99,171, 99,121,124, 62, 32, 0, 15,193,214,120,178,100,105, 15, 50,134, 40,173, 34,130,133, 97, 46,
+229, 87,204, 82,190, 60,155, 73,216, 92,200, 7,239,212,216, 2, 66,219, 4, 80, 93, 3,250,197,100,157, 73, 22,154, 53,204,215,
+ 50, 94,169,177, 9,115,116, 18, 39,189,161,252,221,103, 79, 53, 24,202,200,121,103, 44, 79, 94, 62,151,239,190,115, 91,141, 63,
+176, 31,109,105, 4,104,219,168, 65,209,179, 52,159, 78, 72, 73, 89, 41,107, 54,170, 89,254,104,106,189,103,150,196,157,179, 99,
+ 97, 35,182, 30,249,126,125,131,123,123,222,238,240, 28,121,190,245,196,225,176,113,102,222,190,117,196,128,224,201,201, 41, 81,
+238, 24, 11, 3,242,123, 73,245,164,136, 14, 29, 25, 61, 12,216, 20,134,188, 80,208, 32,117,201,239,227, 44, 58,140,125,114, 29,
+ 68,120,228,149,102, 25, 30, 89,185,254, 23,158,239,112,123, 91, 13,115, 65,154,189,158,129,126, 40,212, 98,165, 64, 60, 15,122,
+240,214, 10, 8, 93,223,220,218, 92,161, 99,109,132,168, 9,219, 7,158,141,106, 93, 99, 5, 12, 56,103,237,170,189,141, 13,189,
+159, 29,167,180, 22, 80,241, 43,157, 54,148,250,124, 62, 35,130,254,154, 40, 7,217, 29, 3, 76, 84,143, 48, 82,154,133, 98, 97,
+193, 88, 28,187, 35, 18,195,100, 82, 57, 35,115,138, 23,198, 71, 17, 9, 13, 40,130,189, 87, 23,175,140,219,156,114,173,122,215,
+ 39, 83,150, 46,231,179, 9, 71,105, 81,218,197,244, 9,130, 55, 60,111,173,152,231,251, 90,160,100,179,217,168,156,228,193,115,
+174, 25,227,151,199,103, 18, 5,123, 6,109,136,241,174,186, 14,106, 8, 99, 49,110,126,210,228,199, 54,207, 75,205, 7, 63,180,
+ 89,103,227, 94,150, 36,101,148,186, 28,211,155,140, 88, 53,132, 19,220,174, 85, 8,194, 29, 12, 38,156,123,247,215,172,207,168,
+ 99,207, 74, 53, 95,100,101,100, 76,197,185,136, 14,237,178,211, 38, 87,186,144,220, 48, 32,232,204,211,237, 68,134,191, 92, 91,
+115,197,127, 61,125,240,107,201, 96, 4, 30, 24, 31,155,122, 41, 58, 84, 84,254, 72,203,132, 81, 53,205, 64, 33,214,210,234,116,
+229,221,183, 54,229,217,139,167,210,233, 52, 37,204, 20,229,252,170, 37, 95, 60,124, 34,119,239,190, 33,119,142, 14,229,236,236,
+146, 68, 58, 21, 93, 99,244,180,243,233,152, 24, 25, 76,115,140,231, 54, 58,134, 49, 67,216,176, 96,145, 98, 22,140,188,129, 45,
+107,204,194,172, 64,204, 34, 20, 59,193,115, 78, 56,218,183, 38, 62,162, 86, 65, 2,116, 71,182, 53,160, 50, 41,104, 35,157, 1,
+ 38, 0,248, 41, 80,215,250,222,132,235, 13,154, 89, 76, 74,212,212,230, 31, 79,250,172, 96,225, 92,131,238,119,189,210, 32, 32,
+155, 54, 17, 30,221,255,225,100,233,104,138, 13,141, 31,250, 86,101,140, 18,107,194,174,156,172,104, 67,207, 39,184,227, 1,126,
+196, 52, 1, 0,108,112,232, 56, 87,232,235, 67, 5,114,182, 50,161,138,104,109, 66, 71, 36,165, 41, 1,133, 62,226, 89, 69,191,
+219,243, 82,196,127, 32,226,218,221, 40,201, 69,103,198,231, 3,178,253,198, 94, 85, 19,131, 83, 78, 68, 85, 74,105,211,132, 7,
+152, 53, 29, 16,217, 14,222, 3,223,166, 54, 93,107, 46,207, 42, 10,222,227, 72,157,106,175,175, 9,110,111,194,202,227, 85,103,
+192, 86, 27,206, 43,238, 84,179, 7, 14,121, 96,173, 2, 86, 56,222, 80,159,122,160, 73, 33, 64,230,173,145,129,239, 98, 23, 80,
+ 98, 28, 22,156, 8, 45,253,108, 36, 45, 8, 68,125,150,227,167, 12,142, 38,145,113,157,152,221,138,101, 60,236,171,227, 95,202,
+187,187, 13,171, 8,180, 53, 74,158, 45,138, 50, 82, 67, 97,242,118,198,215, 12,231,190,169,153,194,205,253, 77, 19,144, 0,125,
+101,193,202,104, 48, 42, 44,153, 47,198, 44, 13,192,144,225,139, 65,178,194,190, 97, 58, 39,221,225, 88, 23,108, 40,189,174, 70,
+215,211, 2,123, 7, 24,245, 64, 68, 54, 68,102,191,128, 70,173, 16,241,105, 66, 18,215,243,178, 86,238,103, 38, 35,246,224,216,
+108, 92,116, 92,120,140, 45,112,244,107,109,253,201,208,110, 5,127, 14, 62, 15,153, 17,208,182, 64,153,123,137,129, 59, 40,214,
+162,207,252,143,207, 58, 82,211,108, 18,253, 97, 24, 94,148,135, 94,156,183,100,187,190,100, 52,139,121, 99,144, 7,160,124, 8,
+ 30,225,119,143, 26,212, 41, 71, 31,253,149, 58, 78,163,145, 77,164, 28,104,196,183,161, 7, 53,107, 0, 48,207,205,113,167,244,
+192,174,250,107,121,227,118, 67,198,107,189, 68,144, 16, 76, 2, 39, 82,178,150,141,195,162, 20,182,179,122,209, 19, 89,106,246,
+152,206,169, 97,193,139,228,116, 13, 48, 2, 56, 89, 16, 85,235,101, 66,146, 85,164,245,226,204,215, 41,153, 38,105, 30, 60, 42,
+ 35,233,161, 7,229, 12, 17,153,196, 40,120, 20, 17,120,248,114, 32,135,181,178,212, 74,105,246,123,168,136,231,248,142, 99,135,
+126,142,221, 8,147, 17,105, 4,204, 28,254,179,111,223,212, 76, 75, 51,137,192, 33,118,213,112,162, 11,156,142,203,242,133,174,
+215,213, 85, 87,198, 7, 21,249,248, 49, 74, 69, 69,249,246,190, 26,252, 76, 76,113, 29,208,113, 30,236,151,229, 59,122,224, 63,
+252,234, 66,222,190,179, 33,139,216, 35, 58,181, 6,150, 57, 49,148, 59, 88,179, 50,105,251,117,127,154,200,131,102,194, 57,208,
+ 61, 93, 91, 98,117, 72, 74, 2,242,126,205,194,245,231,159,188, 88, 48,227, 64,187, 0, 75,187,112, 61,109, 0, 93, 16, 32, 84,
+ 27, 13, 25,181, 39,164,140, 69, 86,251,231, 63,123, 40,179,113, 31,115,140,242,201, 73,147,172,115,153, 76, 65,226,176, 32,207,
+ 79, 63,103,128,128, 30, 58,200, 87,112, 94,106,165,146,244,219, 45, 10,198,192, 8,205, 33,146,131,202, 78,104,100, 50,236,107,
+130,238,117,107,147,229,226,174,102,232,214,119, 14,104,108,128, 77, 64,219,229,254,209, 77,233,246,251,122,134, 46,120,238, 48,
+107,158,214,128, 19, 17,187, 56,210, 35,156,237, 70,177,192,145, 55,170,166, 33,211, 97,207, 91,207,166,183,160, 50,219,220, 33,
+237, 1, 32, 74, 92, 16,152, 35,167,195,146,173, 1, 48,198, 1,188,135,239, 64, 95, 26,160,184,192,183,224,212, 90, 5, 54,174,
+228, 59, 98, 38,232, 48,160,197, 83, 42, 20,120,249,113,254,175, 41, 83,177,206, 12,146,172, 20, 70,167,205,150,136, 58,206,103,
+167,167, 20,104,193, 25,193,204, 62,177, 22,148, 80,181,242, 50,178, 71,128,143,234,249, 52,191, 23, 21,141, 44, 17,236, 66,250,
+ 95,140, 21,149,243, 41, 86, 5, 74,197, 44,179,203,153, 6, 67,153, 16,101,212,140,147,146, 77,145, 55, 28,164, 44,144,191, 69,
+ 31,179,158,153,201,120, 12, 26,213, 37, 3,148, 98,198,200, 80,192,179, 13,223, 7, 32, 20,238,231, 98,137,145,189, 57, 91, 23,
+ 16,192,193,251,191,113,180, 37, 47, 94, 53,229,229,233,149,124, 79, 3,185, 55,143,118,228,244,106, 40,143,199, 70, 0, 4,135,
+136,245,181,145, 76,171, 98, 64,102, 21, 34, 43, 88,135, 56, 50, 73, 85, 4,189,112, 60, 41, 86, 76,108, 82, 36,112,189,102,172,
+231,116, 60,101, 16,132, 83, 28,148,171, 38,144,162,107, 51,117, 60, 24, 56, 63,176, 25,195,192, 52, 40,112,223, 80,197, 11, 98,
+195,135,196, 94,236,184, 32, 18, 27,189, 67, 21,194,241,242,227,179,208, 99,207,105,116,191,156,246,245,220,155,204, 39,238, 0,
+136,132,224,188,176, 15,253, 65,143,229,124,140,155,177, 18,160,123,247,163, 31,255,131,252,187,223,255, 23,242,123,191,243,123,
+242,226,241, 39,150, 77,187,158, 47, 90, 92, 24, 57, 3,217, 9, 38, 33,144,124,120,204,122, 77, 85, 14,227,129,104,117, 49, 19,
+213, 51, 13,214, 66, 8,169, 96,191,209, 82, 53,136,141, 6, 70,233, 50,109, 55,130,172,158, 58,160,227,147,199, 12,176,169, 37,
+ 46,190, 99,215, 84, 27,173,151,245,221,219,135, 92,151,120, 57,227,123, 82, 89, 17, 78, 85,207, 33, 70,189,200,173, 1,160,223,
+100,168,247, 15,120, 44,211, 63,159,205,210,164,155, 70, 11, 4,114,163,168,152, 1,228,135,231, 64,165,176,170,142, 16,179,228,
+116,244,100, 2, 92,177,133,136, 51,218, 30,140,232,124, 81, 89, 24,141,151,252, 46,216,188,163,189, 29,254, 44,241, 31,235, 5,
+ 65,201,104, 23,224,158,195,182, 85,244,172,110, 85,145,100, 84,244,108, 71, 4,117,167,200,184,185,102,112,147,207,167,185, 95,
+ 49,239, 91,218,206, 8, 2,232, 85,196, 51,149,211, 53,137, 24,244, 46, 73, 37,142, 26, 9, 70,225, 14,182, 43,122, 6,123,198,
+ 82,233,148,228, 82,250,119, 81,209,222,203, 22,245,243,151,210, 27,206,212, 15,230,229,237,187, 91,114,210, 58, 37,159,135,127,
+141,123,208, 61, 26,106,176,186, 70, 48, 85, 45, 82,191, 96,205,177,217, 57, 1,172,168, 14,192,158,177,186,168,207,122,118,217,
+ 70, 86, 40,223,187, 87, 55, 21,185, 90,189, 36,103,253,153, 9,114,168, 83,210,253,208,191,164,209,184,110,198,123,111, 28, 50,
+242,195,133, 5,104, 3, 17, 22,202, 67,113, 96, 23, 14, 99, 41,197,162,177, 25,193, 48,131, 76,223,184,148, 81,246,216,144,205,
+ 74, 86, 15,174,113,125, 99, 84,229, 69,107, 73,142,113,100,164,216, 4, 24, 85,102, 62,234,168, 64,104, 33,174,119, 34, 14, 76,
+ 67,246, 85,106,220, 70, 12, 52,112,136,168,200,230,217,197, 35,129,128,190,140,207,204,202,122,249, 32,192, 96,196, 51, 91, 50,
+ 16,129, 90,219,106,105, 8,112, 68,229,207, 78, 38, 4,132,220,191, 93,151,173,205,188,116,199, 19,102, 85,155,165,154,108,151,
+179, 44, 15,161, 60, 31,234,161, 89, 78,112,248,150, 84,230, 33,211,207,218, 74,189, 3,104,113,163,167,169,153,118, 52,141,101,
+ 50, 52,198,170,198, 70, 94, 74,117,205, 44,212,192,226, 93,155,151, 99,153,143,150, 50,208,103,175,105,102,145,193,200, 11,190,
+190, 53,215,239,141,165, 92,208,108, 29, 35, 12,179, 64,198, 32,118, 24, 45,200,189,156,206, 5,100,179,131,116,232, 92, 35,185,
+ 69,166,100,116,180,193,154,153, 62, 56,177, 83,174, 81,157,210, 67,119, 53,137,229,162,187,144, 63,251,248, 66,126,255, 91,135,
+172,170,120,174,143, 24, 51,154,181, 82,205,194,177,218,145, 32,100,177,226, 69,238,142, 49,167, 30, 74,173,158,181,113, 39, 61,
+160, 96,146,131,113,190,127, 84,145,159,124,118, 41,159,157,104,240, 80,170,203, 15,239,166, 36,175,209,230,122, 97, 20,152,248,
+ 44,204,234,222,218, 44,112,198,253,103, 15,175,228,235,247,118,228,173, 91, 5, 61, 3,198, 15, 48, 31,204,228,195,207, 91,114,
+191,166,142,105,149,147, 39,151, 11,185,232, 3, 40, 50,214,103,143,136,172,190,118,234, 36,200,137,133,128, 53,207,149, 42,225,
+144, 96,212,200,215, 77,177,147,152, 37, 48,244, 65, 95,234, 69,125,218, 28,202,201,197, 21,123,126,237,238,146,165,222,125,205,
+108, 47, 53,179,121,121,209, 36,154, 30,189,184,179,118,151,199,170, 86, 41, 19,247, 48, 95, 69,175, 21,215,174, 41, 64,169,189,
+ 29,248, 68,246,150,245,194,142, 28, 80, 41,113, 35, 96,190, 19,180,192, 40,217, 27, 55,111, 82,104,227,172,213,100, 0, 5, 29,
+116,232,167,227,174,160,188,139, 76, 5, 25, 97, 78, 3, 59, 56,160, 86,127,192, 17, 56, 43,175,122, 86,146,143, 77, 87,225, 26,
+ 9, 15,231,130, 63, 95,172,192,226, 88,100, 95, 28, 99, 49,232, 29,227,243,172, 63,107,122,221,136,200,249,247,136, 99,176,172,
+ 56,235,132, 90,124,170,242, 89, 41, 25, 35, 82, 84,123, 98, 48, 18, 57,142,136,107,159,110, 72,238, 98, 46, 67, 60, 1,217,234,
+220,115, 37,177, 97, 9,240,222, 8, 24,178,152, 7,158, 13, 24,152, 76, 23, 62, 25, 24,129, 81, 65,255, 27,159,133, 96,165, 86,
+206,201,193, 86, 77,239,136,102, 62, 25, 91,195,213,106, 65, 28, 2,140, 51, 2, 27, 92, 32,204, 2, 79,189,169,147, 75, 21,150,
+ 70,161,107,189,171,103, 48,100,175,215,231, 68, 73,106,226, 51, 24,196, 8, 57, 70,249,144, 25,211, 64,134,230, 52,225, 60, 27,
+149,156,148,114,187,242,119,255,248, 76, 62,252,226,165,236,108, 52,164,211,237,232,207, 78,245,115,125,187,187,113, 68,253,115,
+ 24,141, 53,219, 56, 41, 58, 15,100,109, 8, 18,136,137,129,167,139, 45,112, 67,162,129, 42, 8,146, 25, 67,252,251,175, 57,199,
+169,221, 77,130,147, 37,114,118, 18,130,160, 69, 81,212, 0,166,133,117, 75, 2,206,204, 39,142,195, 60,206, 10, 1,180,161,235,
+242,139, 27, 35, 53, 94, 8,227, 53, 79,160,134,232, 88,247, 4,188,253,110,166, 26,207, 57, 7,225, 73, 96,108,112,144,175,246,
+213,158,110,109,239,203,108,212,145,153, 58,198,126,247, 82, 30, 61,126, 32, 95,127,239, 3, 89,121, 89,249,171,159,124,200, 96,
+134,137,152,225, 99,121,198,170,165,156,174,111,133,227,100,200,212,209, 2, 64,108,135,243, 28, 57, 0, 29,122,179,190,191,166,
+130,218, 24,128,171,148,129,194,214,131, 33, 91, 25,181,250, 14, 38,236,173,165, 20,100, 89, 96,102,235, 49,177, 96, 9,146,173,
+155,245, 2,181, 31,160,218,246,139,167, 3,217,171, 23,101,168,119,160, 51, 90, 57,210, 26, 95, 29,248,154, 78, 17, 99,115,148,
+128,213,123,178,134, 42, 31,218, 53,107,171, 6,195,125, 99, 29, 75,106,151,183,106, 5,226,115,216,118,130, 22,253, 34, 38,168,
+ 25,156, 37, 67,140, 84, 79, 87,100,177, 3, 25, 18,170,201, 56,211, 32,153,201,240,204, 77,136, 7,203,234, 94,128,207,126, 57,
+ 66,160,156,227, 8, 32,122,232,181,114, 94,198, 75,180,121, 66,181, 25, 83,249,214,253, 27,242,197,227,115,222,179, 75, 77, 74,
+203,185, 20, 65,150,126, 88,228,250,131, 46, 28,119, 20, 9, 97, 56, 52,172, 10, 28, 61,198, 56,111,238,212,229,228,114, 36, 91,
+149, 44,201,132, 48,182, 87,204, 39,166, 61, 66,157,154, 21, 3, 0,140,184, 97,146,163,221,159,200,119,190,121, 75,174, 90, 35,
+249,201,151, 67,182, 1, 96,231, 16,192,173,160, 49,129,150, 15,124,159, 88, 75,161,171,217,126, 46,191, 34,167,198, 10,220, 14,
+208,154, 87,223,214,236, 13,164,148, 1, 62,196, 36,201,195,135,175,218, 36,250, 39,194, 27, 68, 18,122,192, 16,129,212, 54,115,
+ 20, 63, 33,171, 21, 65, 51, 43, 19, 85, 89,217,161, 13, 88, 66,206, 82, 95,120, 60, 71,132,171, 95,166,145,141,159,178, 81,137,
+146,158,246,253, 98, 70,158,191, 26, 9,186, 85,223,121,163, 65, 6,177, 23,103, 61,246,210,169, 51, 12,121,220,149, 49,197, 65,
+217,132, 61, 98, 61, 88,140,106,197, 24,162, 96,216,144,165,131, 5, 13,254,159, 64, 18, 61,216, 81,104,186,198, 1,148, 61, 0,
+230,201, 24,138,155, 90,221,145,147, 93,116,227, 91,208, 81, 6, 93,104, 87, 35, 86, 56, 10,144, 31, 60, 63,235,203,191,253,238,
+ 29, 2, 38, 78,219, 3,130,185, 94,188, 58,151,231,231, 3,121,247, 32, 47, 13,221,112,128,190,254,254, 81, 83,190,122,222,149,
+170, 26,102, 32,112, 17,161, 0, 3, 0, 3,227,235,225,159,170,131,158,232,129,189,152,169,147,206,251,156,202, 6, 23, 48, 70,
+129, 24, 33, 95,245,101,172,191, 14,183, 27,210, 88, 98,214, 52, 96, 20, 61, 38, 48, 77, 47,144,190,255,121,123, 46,199, 77,104,
+ 73, 47, 9, 28, 41, 21, 67, 57, 44,135,242,253,187,117,114, 15, 67, 19, 30, 70,116, 62, 67,166,101,104,246, 8,228, 26,250,222,
+ 95,156, 78,228,151,207,245, 64,104, 16,242,197,147, 75, 53,114, 25,121,235,176,202,172, 2, 81, 36,130, 33,155,121,246,109, 30,
+250,159, 40,166,112,100,137, 66, 22, 17, 13,126, 38,151, 50,242,182,192,176, 9,135,122, 6,234,181,156, 52, 23, 25,249, 87,247,
+178, 82, 33,249, 80,194, 61,194, 1,140,157, 44, 32,136,111,142, 26, 89, 86, 6,190, 58,110,243,249,161, 11, 15, 46,234, 53, 12,
+188,102, 32, 35,140,236,177,232, 53,151,142,102,201,149,219, 71, 50,143,115,146, 69,164, 59,157, 26,119, 52,165, 22,141, 49,138,
+ 53, 5,199,130,199,200, 88, 29,108, 71, 29,245,117,111,116, 62,133,138, 93, 70, 30,183,250, 4,137, 32, 64, 44,193, 17,228,243,
+ 44,163,191, 56,107, 82,151, 26, 68, 64, 0,196,161,122, 3,103, 11, 64, 28,137, 44, 34, 43,205,162,236,150, 56,134, 56, 56,172,
+157,250,134,108, 84,107,156, 92,240,245,114,161, 95, 87,202, 25,155, 28,136, 94, 48,206,118,239,198, 13, 57,111,181, 25, 56,144,
+196, 9, 61, 20, 32,199,199, 99, 62, 47,254, 15,206,137,142, 79,159, 27, 65, 10,121,186,213, 80,183,244, 89, 60,199,145, 46,174,
+159,158, 36,177, 3,204, 57, 64,168,126, 22,156, 4,246, 97, 58, 53, 37, 55,100,237,158,111,202, 92,226, 45,152,209,146, 76,132,
+217, 80, 32,135,219,155, 44,245, 93,104,102,140,108, 3,159, 7,230,185,142,126, 31,185,203,157, 51,185,254, 31, 29, 58,214, 60,
+ 54, 42,219,171, 78,135,235,129,115,130,202, 5,218,105, 36,216, 9, 67, 58, 27,140,161, 45,121,247,214, 50,208, 51, 0,172, 2,
+206, 0,130,160,200,225, 60,158,159,117,101,167, 90, 32, 31, 4,116,210, 65,147, 10,196,239,130, 0,154,148,203,154, 86,204,214,
+175, 29,101, 30,255, 95,207, 74,179, 59,100, 95, 19,129,123, 83,141, 29, 24,230,200,253,160,246,132, 25, 74, 58,203,185,111,188,
+ 27,130, 23,100,176, 5,142,221,121, 26,132,101,228, 27,111,238,202,227, 87, 45,234,197,127,247,107,119,245, 59,167,242,211, 79,
+159,200,133,222,103, 47, 76, 19,239,146, 19,195, 54,132,164, 38, 77, 49,120,165,252,111,144,176,108,110,211,248, 6, 54,131, 77,
+130,237, 89, 18,124, 56,167, 45,226,122,129, 67, 0,179,233, 94, 68, 66, 24, 47, 54,204, 10,158, 9, 9, 10,240, 26, 32, 1, 66,
+118, 5,181, 58, 4,213, 64,205,175,255,137,228,112,226,184,247,163,245,218,245, 81,237,179, 17, 80, 20,114, 53,117,212,109, 78,
+ 11,180, 53,235, 68,233, 63, 89, 37,175,153, 8, 59,186, 78, 69,117,100,144, 6, 77,102, 99,221,227,140,156,158,157,106, 22,188,
+ 37,111,220,123, 75,126,245,217, 47,165,221, 27, 66,171,205,250,174,177, 9, 38, 93,181,167,234, 60, 90, 12, 58, 2,158,143,196,
+ 84, 41, 93,153,155,172,124,128, 1,132, 30, 91, 55, 56,183, 8,166, 61,114,161,172,169, 80, 7,180, 62,214,124,127,179, 33,197,
+ 66,214,200,118, 16, 16,165,211,172,138, 86, 52, 96,174, 1,112,150, 49, 42, 90,180,111,206, 90, 93,182,249,186, 26,240,163,186,
+ 8,124, 2,168,117, 45,219, 14,205, 20,129, 0, 11,124, 5,184,211,154,161,161, 34,137,160,134,114,169,122, 23, 90,195,133, 12,
+103,134,195, 0, 24, 27, 19, 26,245,130,209,167,226,158, 28,110,111,201, 87,207,158,242,156,121, 28, 19,246, 89, 89,234,235,189,
+ 67, 48, 11,177,160,134,166,228, 41,170,231,165, 52,145, 89,114, 4,248,222,205, 77,150,242,219,253, 5, 91,179,120, 39, 80,128,
+223, 62,104,232,153,155, 73,127, 12,238,249, 57, 91,204,241,194,231,122, 64,250,185,164,201, 88,218, 23, 39,199,107,248,154,174,
+ 62,227,102,173,200, 73, 19, 76, 84,160,133,131,138, 20,129,169,113,236, 4,132, 18, 50,113, 66, 25, 16,247,255,147, 39, 29, 57,
+216,191,148,175,191,179, 43,159, 63, 27, 8, 0,236, 8, 16, 6,154,244, 44, 57,226, 26,177, 74,149, 80,193, 52,162, 77, 71,128,
+128, 68,118,170,190, 56,147, 45, 83, 94, 22,118, 55, 67,226, 38,253, 59, 89,125,206, 5,162,118,206,251, 69,178, 81, 43, 73,163,
+ 94, 39, 1,199, 54,140,249,200,122, 65,232,231,166, 52, 10, 92, 57,164,118, 28, 25, 17,199,117, 43, 59, 29, 88, 25, 15,135,231,
+154,222,243,104, 51, 43,221,171, 46,169,247,240,121,144, 26,252,198,141,140, 46, 70, 81, 62,125,218,165,129, 71, 9,204,128, 35,
+ 96, 76, 51, 66,136,245,234, 26,168,100,209, 90,224,219,248, 15, 8,237,241,155,153,173, 2,196,142, 36,128,202, 22, 48, 60, 25,
+223,245, 67, 19,150, 32,230,208, 83,212,211,218, 85, 35, 95,213,159, 25, 12,198,140,142,128, 76,236,235,130,228, 81,154,209,139,
+248,221,155, 91, 82, 88, 14,185,224, 27, 50,147, 88, 55, 17,218,174, 65,180,148,155,229,154,189, 23, 64, 14,129, 33,139,208,223,
+141,125,171, 6,140,161, 82,135,146, 50, 74, 85,122,200,170,122,144, 46,198,125, 6, 62,233,180, 85, 25, 66,208,168, 38, 54,138,
+ 3,167,138,181,251,217, 23, 77, 57,233,204,229,162, 53, 38,171, 19, 34,185,206,200, 72,251,183, 26,121,150,197,183, 53, 91,129,
+ 49,121,209,154, 74,123,184,228,129, 15, 52, 19, 59,208,131,214, 40,231,184,214,152,137,132,193,124,213, 91,203, 63, 60,232,179,
+116,153,214,205, 7,219,220,143,126,246, 92,183,226, 80,157, 83,193,122,195, 81,228,232, 72,173,119,122, 45, 28, 2,163,142,170,
+196,245, 8,203, 4,143, 1, 71, 70,164,212,138, 14,251,139, 23, 45,169,214, 26,242,205,163,146,228,215, 35,185,232, 37,191, 70,
+124, 83, 61,206, 35,152, 4, 12,133,254, 92,244,128,214, 36,187,149,200,147,179,145,148,209, 59,159, 47,217,163,135, 18, 18,130,
+ 9,244,179, 39,147,177, 92,106,214,220, 31,206,101,118,123, 67,110,110,103,168,184,133, 67,139,254, 29, 71,245,208, 71, 19,155,
+ 60, 64,121, 23,102,240,248,105,139, 65,101, 54, 99, 61,106,100, 37,199,221,158, 6, 98,207,216,211, 75,123, 5,217,218, 40,240,
+252, 64,160, 33,165,251,211, 80, 99, 15, 84, 55,192, 53,152, 41, 7,173,111, 64,242, 11,107, 75, 16,141,235,123,220, 11, 56, 97,
+140, 5, 29,237,237,233,158, 96, 52,167,197,153,214,224, 90, 9, 76,247, 4, 4, 48,219,122, 63, 94,158,159,203, 69,179,197, 50,
+ 56,169, 91,161,228,167, 14, 61,113,229, 85, 24, 95, 68,226,173, 94,207,128,120,147, 41,159,131, 26,236,228,112, 72, 27,107,148,
+ 88, 41, 31,255, 32,155,167, 62,183,190,239,150,126, 7, 2,178,238,208,230,229,241,191, 98, 30,154,215,154, 13,170,243, 37,199,
+119,161, 72,128, 28,170,101,213, 98,137, 36, 24, 96,210,226,120,150, 4,174, 55,183,100,185,252,186,183, 30, 93,243,189, 59,228,
+251,245,127, 99, 20,174,163,223, 69, 45,117,151,229,175, 92,127,210,119,227,151,232,237, 65, 78, 53, 94, 27,248,172,144, 54, 62,
+121,223,201,232, 98, 29, 48,222, 51,152,174, 41, 91,137, 61,137,214, 22, 76,226,140,112,230, 62,155,229,251, 65, 66,181, 24, 21,
+140, 85, 78,207, 71, 75, 51,107,128,165,224,228, 80,194,190,234,244, 25,244,194,176, 6,137, 1,104,183,213,158, 20,114, 32,174,
+154,179,114,231,185,128,132, 92, 3,161, 57, 48,204, 29,247, 71, 61,249,242, 24,137, 73,145, 37,211,149,254,124, 26,196, 79, 36,
+145, 49, 29,112,172, 7,238, 35, 26, 7,198,177,228, 17,185,142, 44, 39,195, 50,171,245,215,225,208,113,158,150, 40, 95,162, 66,
+233,136,147,168,193, 14, 45,110,189, 52, 25, 76,102,104,208, 64,135, 30, 25, 14, 3,129, 12,210,225, 48,171,239,168,142,101, 30,
+207, 77,218,214,141,152,190,110,168, 95, 87, 75, 98, 91,231,128, 12,149,154, 17,234, 94,160, 85,132,239, 7, 16, 13,204,157, 8,
+160,240, 67, 75,202, 66,207, 36, 91,171, 72, 61,165,201, 83, 78, 3,232,124, 77,186,237, 51,169,148,223,146,239,124,235,187,210,
+186,122,165, 25,104,133,246, 20, 54, 8,159, 15, 94, 14,208,156,162, 44, 60, 69,197, 65, 12,132,136,111, 14, 2,195, 25, 0, 93,
+140, 17, 55,100,211,104,223,224,223, 36,253, 68, 96,167,255,129,179, 92,209,160, 54,137,235, 84,131,155, 78, 7, 68,132,163, 37,
+134,243,214,159,180,229,225,243, 51,178, 8,222,185,113,160, 65,222, 37,131,134, 87, 24,211, 2,166, 70,239, 63,156,213,104, 8,
+ 91, 57,117, 99,123,168, 86,133, 70,120, 5,178, 50,220,123, 61, 43,245,122, 77,237, 93, 65, 42,197,220,107, 54, 75, 96,113,128,
+ 62,135,189, 63,237,154, 90, 98, 20, 79,245,157,154,118,126,220,250,238,104,208,177,114,247, 6,146,211,161,218,159, 66, 54,253,
+154, 10, 25, 99, 96,184,255, 72,224,142,118,244, 78,171,237,237, 77, 99,121,247,222,166, 60,120,214,212,187, 63,212,179,150, 53,
+236,136, 62, 90, 77,157,248, 88,207, 43,192,144,168, 14,112, 28, 89, 3,191, 60, 84, 12,245,188, 66,181, 20, 99,175,237,206,216,
+116, 4,212,161, 99,218, 0,213,146, 27,187, 13,210,109, 55,213,255, 64, 80, 12,123,143, 86, 23, 41,147,245,188,253,244,227,151,
+210,189, 85,151, 55, 14,114,242,241,179, 41,219, 28, 61,205,188,197,141,116, 7, 78, 9, 21,129,202,214, 86,141,154, 31,144,141,
+ 69, 27, 48, 95,180,177, 96,128,189,193, 59,210,213,187,151, 7, 17,219,221, 27,135, 26,205, 15, 24,129, 97,254, 21, 61, 68, 24,
+251, 67, 32,145,195, 88,142,219, 11,150,171, 51,129,149, 13,113, 41, 99,246,130, 18, 70, 74, 81,226, 27, 53, 40, 34,150,196,250,
+182,149, 84, 36,225,114,192,210, 23,118, 4,224, 37, 44, 54,162,164, 15,110, 55,216,147,251,155, 95, 93, 50, 42, 66,112,176, 94,
+ 7,148,142, 67, 6,200,209, 30, 49,244, 6,217,199, 80, 43,242, 76,163, 43, 65, 73, 29,176, 78,202,116, 26,227, 25,169, 5,145,
+189, 80,193, 71,100, 52,152, 73, 17,114,143,186,200, 83,117,178,195,153,141, 54,208,176,160,191,232,216,187,246, 10,161,188,185,
+ 1,226,145,153, 76, 52,155,236,130,163, 92, 23,230, 61, 93, 96,176,156, 33,131,110,228, 83,178, 89, 72, 49,136, 89, 70, 70,152,
+143, 0,132,252,223, 96,105, 2, 15,187, 58, 15,208, 90, 98,141, 98,112, 46,166, 83, 4,182,161,132, 27,215, 52,211,209, 83,145,
+192, 72, 2, 12,181, 76,228,173,163, 42, 47, 2,136, 94, 62,127,218,145,177, 30,160,183,110,150,168,117,222,210,104, 26,206, 25,
+181,165, 98, 33,100,148, 54, 91, 38,140,222, 46, 46, 58,210,106,250, 12,178, 96,212,176,206,157,137, 71, 20, 56,178, 27, 24, 84,
+ 68,217, 48,248, 95, 61,111,105, 38,133,254,102,218,102,102, 29,210, 26, 11, 9, 52,103,226, 89,155,131,118,194,247,152, 89, 23,
+ 82,108, 60, 57, 6,185, 68, 62,127,222,147,159,125,126, 37,247,238,132,210,168,106,230,239, 21, 37, 66,148, 8, 71,228, 57,161,
+ 17,240,120, 35,122, 4,102, 97,162,142, 56,147,200, 94, 61,148,217, 72,164, 55, 48, 52,179,207,145,161,185,172,169, 54,166,239,
+ 50, 25,201,189,253, 2, 69, 9,186, 87,115,249, 55,119, 14,100,169,241, 76, 6, 20,163,190, 5,142,164, 4, 14,140,165, 14, 78,
+161, 61, 90,202, 31,255,205, 75,185,108,173,212,176,164,109, 54,188,160,153,114,251, 84, 10,133,138,236,111,239,240, 2,158, 65,
+234, 20,239, 23, 45, 56,219,139, 94, 30,203,177,106, 88,103,212,237,182,236,152,253,103,223,115,228, 70, 49,209,247,111, 29, 29,
+ 81,135,250,164,217, 36, 40,169, 55, 48,178, 22,207, 33, 92, 81,150, 46,233, 29,233,141,134,204,178, 80,218, 3, 2, 22, 89,220,
+242,154,133, 13,107,131,214,143,254, 29,100,237, 75,167, 64,232,185, 18,238,144, 10, 93,166,174,133, 71,129,163,131,225, 54, 0,
+154,241, 21,236, 52, 54, 13,221, 75,161,145, 53, 17,238, 8, 8,242, 46,243, 64,143, 24,226, 73,156, 72, 70,255,220,245,237, 86,
+235, 95,151,229,209,251,206, 81,185,109,193,222,181,209,252,218, 4, 7, 71, 28,157, 48, 18,201, 97,210, 41,162,215, 47, 58,109,
+ 93,219,162, 1,109,124, 19,204, 64, 86, 26, 59,214, 8,107,219,216,157,196, 81, 66, 39,152,104,117, 56, 85, 40,125,105,150,125,
+184, 89, 32,109, 39,148,168,140,115, 34, 49,110, 1, 76, 3,100,224,176, 74, 78,138,192,231, 28,252, 2,202,102,186,174,205, 94,
+135,107,131,182, 23,170,127,144,108, 6,159, 2, 70,213, 80, 10, 6,112, 9,125,213,114,174,160,235,184, 43, 77,221, 31, 84,160,
+132,184,130,152,147, 52,187,155, 27,210,209,160, 22, 6,238,201,201, 43,217,223,218,147,223,248,218, 29,121,227,104, 91, 30,189,
+120, 37,131,246, 88,159, 33,207,145, 72,140,110, 33,209, 72,216,207,182, 32, 50, 6,224, 21,170,124, 24,229,237,247,201,201,126,
+173,202,135,251, 19,129, 10,153,164, 47,154, 8,104, 70,154,201,133, 12,204,160, 45, 81, 82,199,131,108,105, 21, 45, 41, 62,194,
+106, 35,202,214,156, 58, 64,219,109,197,214,215,117, 16,133, 4, 33, 76,165, 41,221,139,158,187,239, 20, 39,249,231,158,222,197,
+ 98, 85,150,234,120,225,208,108, 76, 16,230,109, 73,130, 38, 56,124, 4, 44,224, 44, 88,130,115, 95,183,127,119,111, 95,190,122,
+248,149,148,234, 19,169,109, 30,106,230,254, 74,254,241,203, 39,172,188, 70,201,146, 96,178,241,100,193, 61,189,185, 93,147,183,
+111,239, 25,177, 20, 1,140, 49,237,184,171,223,177,154,132,179, 14, 59,131,243, 7, 39, 97,106,133, 49,149, 5,251,221, 83,253,
+117,142, 14,246,228,244, 5, 51,103, 50,213,129,189, 50, 66,155, 22, 25,186, 47, 71,135, 71,154,108,140, 73,247,219,234, 2,201,
+ 93,148,231,167, 45, 93,155, 57, 27, 17,148,133, 37,196, 60,101, 60, 16, 0, 11,134,198,180,152, 99,235, 32,214, 32, 65,237,183,
+ 58,125,240, 92, 32, 35,141, 92,235, 13,103,219, 15, 48, 83,222,231, 68, 21, 85, 40,157,118, 61, 89, 27,167, 83, 58,224, 2,100,
+105,179,137, 99,227,139,104, 75,139,249, 80,125,196,146,206, 18, 6, 29, 25,251,139,243, 33,121, 66, 62,121,116, 69, 45, 1, 56,
+126,180, 85,138,156, 8,137,248,142, 94,172,231,178, 84,150,244,114, 97,182,195, 33,243, 1,214, 52,225,166, 44,197, 96,128, 39,
+ 74,171,237,126, 43,218,211, 51, 61,103, 18,134,254,249,146, 76,148, 9,207, 9,237, 74, 44,172, 18,192,150,127,245,162, 47,135,
+ 91,186,215,201, 80,174,122, 19,115,226, 41, 67,229,179,253,172, 63, 95,210, 0, 7, 84,182, 59,141,162, 77,142,136,241,190,236,
+215,193,172, 89,227,153, 74, 81,128, 73,253, 0, 80,164,158, 84,204,248, 35,235, 72, 18,102,132,107, 61, 84, 5,253,161, 42, 22,
+ 97,106, 81,126,226, 24,176, 56, 55,156, 10, 92, 41,201,132, 34,140, 28,132,133, 2,217,200, 89, 20,120,227, 96, 79,142,142, 76,
+214, 13,198,185, 30, 26,125, 36,102, 88, 11,106,152,158,156,246,116,227, 34, 57,215,168, 11,217, 39,122,223, 40, 71,166,105, 84,
+ 28,176,197, 25,197,193,116, 41,139,206, 68,179,164, 33,137,240,223,122,111,159, 58,188,177, 99,220,193,232, 22, 46, 41,144,153,
+ 88, 20,168,191, 97, 14, 59, 79,177,145,132,179,166, 0,138,148, 16, 0,232,165,123,214,157,107, 68, 87,146, 23,186,193,173,241,
+210,241,101,175, 4,114, 53,207,154, 43,178, 18, 65,128, 36, 68, 9,210,154,246,140,192, 17, 13, 78,231, 41,234, 79, 99,174,154,
+120, 0,117,230, 7,181,148, 76, 52, 11,239,183,230,102, 92,151,160,109, 93,179, 10,114,169,153,244,127,250,232, 92,254,203,223,
+188,161, 14,188,162,206,105, 68,170,217,166, 58,241, 3,221,204, 98, 78,157,128, 6, 35, 39,151, 99,246, 41,203, 0, 36,206,231,
+166,111, 15, 39,158, 88, 73,137, 14, 3,165,105, 72,210,166,140,139,120,177, 10, 88, 2,199,218, 33,171,131, 1,236, 79,150, 84,
+ 20,170, 84, 66, 35, 73,192, 88, 89,224,177, 76,106,108,116, 98,127, 31, 78, 19, 2, 0,122, 9,215,154, 21, 37, 12,168,208, 59,
+ 92,169, 99,158, 72, 38, 94,200,151,143, 79,229,135, 95,171, 75, 57, 20, 70,136, 57, 31,104,109,113, 20,167,190,123,198,136,107,
+181,128,248, 0, 10,236, 26, 77,246,122, 75, 50,188,193,184,151,213,208,174,151,115, 25,169,177, 4, 27,221, 91, 91, 5, 25, 28,
+ 21,164, 59,194, 60,126,154, 25, 19,130, 37,148,236,112, 57, 18,160,174,225, 4,213,112, 23,169, 69, 46,114,176,173, 7,122, 11,
+ 19, 10,137,124,250, 66, 29,252,217, 21, 63, 31,239,113,213,106, 74, 85, 13, 45,180, 3,218, 26,229, 54,187, 3,150, 16,145,253,
+158, 34, 67,119, 78, 55, 98,159, 52,116, 12,113,102,180,208,231,190,127,251,166,174,217, 92, 30,188, 60,182, 81, 76,204,157, 66,
+234, 52, 12, 45, 16, 10, 3, 35, 39, 65, 43,104,105,156,236, 8,128, 61,182, 55,150, 68,185,179, 90, 20, 89,255,223,227, 44,178,
+101, 3, 32,157, 1,106, 27,193,240, 58,138, 94, 35,207,241,231, 24,233,202,248, 86, 45,128,204, 41,100, 84, 81,246,132,160, 4,
+245,187, 87, 70,255,138,231,185,106,183,120,191, 80,110, 68, 64, 1, 38,171,144,168, 88,235,157,195, 35,224,243,241,204, 73,108,
+ 18,170, 48, 36,137, 67,209, 91,201, 63, 36,223, 63, 91, 13,174, 39, 15,209, 25,150,131,215,145, 27,115,138, 29,138, 60, 38,152,
+212, 15,108, 28, 17,193, 62, 42, 23,179,133,141, 98,225, 30,160, 18, 2, 78,124,182,163,193, 38, 56,211,128, 69,173, 33,250,155,
+195,217,210,164, 75,215, 9, 65,115, 64,145, 19, 12,168, 1, 55, 0, 67,177, 35,124,241,125, 43, 73,207, 64,133,233,111, 19, 32,
+ 24,247,108,196, 51,199,113,186,136,255,189, 90, 91,150, 19, 19, 20, 8,135, 59,101,128,138,172,231,198,222,134, 58,250, 1,223,
+171, 86,200,202, 13,205,104,206, 59,231,250,103,161,163,136,245,101,164, 1, 68, 9,179,198,168, 54, 68, 1,141, 42, 42, 3, 1,
+ 2, 14, 13, 81, 22,137,101, 69,172, 67,173, 1,180, 21,158,227, 4,149,157,233, 66, 29, 84,135, 36, 58, 1, 41,113,211,220,147,
+ 57, 42, 5,250,247,135,227, 17,171, 82,208, 3,247,215, 54,111,204, 16,111, 1,213,176,200, 70,174, 76,181,196,141, 49,218,188,
+ 56, 24, 20, 67,226,145, 2, 71, 12, 99,218,237,105, 13,140,192,166, 7,158,120, 86,147, 32,237,187,156, 16,148,137,132,226,244,
+244, 84, 14,118,247,100,182,246, 53,115,110,144,251, 31, 1,223,133, 6,164,251, 59,123, 26,136,191, 33,159,126,245, 72,239,190,
+ 81,190,130, 27,126,234, 56, 64,230,106,215, 95, 34,131,118,201,146,149,134,125, 71,220, 2, 75,130,185,240, 53,131, 27, 99,180,
+ 20,171, 8,173,156,226,156,254,222,222,246,129,148, 74, 27, 12,254, 67, 74,177, 8, 91,181,144,252,141,242, 8, 90, 13, 84,135,
+182, 10,193,156,160, 0, 86,103,255,193,155,251,242,217,195, 99, 13,240, 49,205, 48, 99, 51, 46,134,131, 12,204, 38,193,193, 21,
+ 53,192,172,213,138,178, 85, 41, 50,184,192, 57, 67,101, 20, 84,203,160, 89, 69, 48,120,184,147,215,123, 62,226, 30,160, 10,200,
+187, 28, 89, 85,119,187, 94, 38,142,134, 98, 94, 0,116,147, 58,117,201, 96,134,242,226,160,120, 5,173,119,156, 80,112,170,152,
+139,233,136, 1,190, 28, 14, 81,141,203,147,234, 22, 32, 78, 4,219, 24,223, 99,112, 83, 44,137,227,213,230,247, 38,154,172,161,
+ 20,190, 90,175,220,180, 86, 66, 44, 9,248,228,191,253,238, 46, 81,237,224,180,199,125,193, 25,102, 21, 6,213, 2,142, 91,174,
+141,147, 3,165,127,245, 61,155,234, 59, 46,213,119, 64,251,224,170, 51,226,185, 64,144,129,106, 44,170,138,176,113, 24, 79,196,
+217, 97, 82,134,113,102, 4, 9, 43,151,153,179, 74,180,226,116, 14, 1,146,136,154, 57,123, 10,125,231,185,193,251, 43, 25,205,
+222, 52, 75, 15,245, 7, 39,122,232,158,117,134,140, 0, 16, 89, 32, 74, 73,133, 54, 92, 79,109,115, 23, 37,161, 23, 2,186,216,
+145, 94,252, 90,182, 33,111, 31, 52,104, 24,113,100,214,113,226,120,172, 45, 90, 69, 9,227,206, 97, 93,238,222,216,144,185,222,
+138,231,231,125,150,233, 81,182, 24,168, 67,122,248,188,229, 52,119, 81, 55, 54, 13,113, 8, 61, 64, 96,165,221,234,203, 71,143,
+123,114,251,205, 77,117, 36,233,215,217,123,164,155, 2,186,197,161, 94,172,173, 98, 74, 54, 74,105, 65, 37,124,174, 78, 15,186,
+179,200, 90, 53,254,100,176, 65, 89, 72, 53,226,232,151, 95,244,209,159, 76,216, 51,132,228, 37,162,108,140,219, 37,122,136,247,
+ 54, 10,114, 84,203, 26,131,208,210,104, 86,145, 21,119,245, 61, 63,253,244, 82,246, 53, 51,185,208,117,217,170, 22, 56, 64, 15,
+132, 34,178, 72, 0, 4,161, 19,156, 97,245, 66,164,130, 77, 4,237,106, 12, 21, 41,203,252, 0,168,192, 18,190,123,167,194, 64,
+166, 61,176, 49,167,139,230, 72, 78, 34, 27,203, 32,208, 37, 48,176, 80,226,250,225,158,111,104, 83,184, 27,240,219,131,218,148,
+170,116,112,218,107,176,229, 45,229,187,119,203,242,155,111, 87, 40,253, 26,163,116, 12,231,125,205,196,134,125, 88,187,222, 42,
+ 62, 11, 37,195,217,154,151, 28,120, 8,240,244, 67,164,224,125,125,254, 15, 31,117,229, 92,179,233, 88,159,119, 18,131,131, 96,
+142, 70,133,140, 22,110,102, 21,223,167,255, 61,152,173,168,236,134, 10,207,237,173, 18,199, 6,163,154, 25,112, 4, 60,169,112,
+196,113,191, 92, 54, 33,197, 35, 64, 84,155,171,172, 60, 63,155, 50, 48, 65,145,224,225,213, 72, 30, 95,140,228,159,127,112, 72,
+240,224, 74,247, 31,250,196, 85, 13, 56,110,215, 50, 82, 87, 99,221,153,205,228,203,179,151,178,208,231,134,250,217,210, 73,152,
+206,214, 70,143,137,106, 3, 40, 20, 81,250, 6,112,113, 60, 51,240,215,122,109,253,225,146,254, 62, 22,143,200, 85,189, 96,135,
+ 91, 27, 68,177,195, 49,161,164,206,114,165, 26, 91,160,205, 1, 76, 66,255, 15, 78, 50,159,113,179,177,160,100,165,147, 51,114,
+ 38, 48, 67,197,145,149, 3,141,241,202,103,208, 68,192,102, 16, 58,153,198,149,181, 63, 60, 42,199,211,168,176,141, 21, 27,147,
+ 27,254,141,242, 57, 8, 95, 64, 54, 2, 89, 87, 18,151,128,230,215,210, 99, 67, 74,235,249,203,103,243, 44,107, 47,255, 9, 96,
+206,181,105,237, 76,160,191,158, 49,148,121,158,136,121,155, 53,103,102, 77,144,225,202,145,219,136,203,188,133,107,130, 74, 29,
+241, 22, 43, 19, 43, 2,189, 50, 42, 16,232,229, 91, 0, 83,224,103, 98, 29, 25, 56, 6, 41, 35,203, 0,147,160,103,189,103, 96,
+246,224,204,171, 69,148,106,243,186, 39, 99,146, 57, 97,125, 80, 1,193,158, 66,189, 10,115,235, 25,170,185,133, 92,167,129, 58,
+ 42,148,142,192, 39,143,158,232,108, 97, 36, 57,112, 30, 84,123,195,172,181,126,207,100, 2, 16,105, 72, 76,138,199,217,248,188,
+126, 22,102,164,179, 54, 97, 80,202,209,129,143,244,185, 55,170, 69, 6,103,159, 63,121, 73,142,252,251,247, 14,212,112,135, 36,
+ 68, 90,172, 60, 58,106,148,213, 57, 11, 29, 67,100,102,205,115, 9,212,249,108,101,237, 51,156,167, 49,128,146, 40, 25, 79, 52,
+ 84,117,148,166,126,169,170,159,189,210,179,111,224,167, 44,180,182,213,137,225,110, 35,147,102, 53, 83,215, 99, 60, 2, 0,119,
+170, 65, 3,104, 72,253,215,116,194,158,155, 58,120, 45, 14,100, 53, 23, 87,121,177, 74, 8,206, 32,144,240,139, 9,181,244,216,
+ 22, 88,195,117, 70,115, 58,135, 65,191, 71, 36,252, 70, 13, 14, 44,171,217,243,149,209, 94,119,186, 44,223,223,218,187, 41,111,
+106,160,122,222,236,208,145,160,101,133,115, 0, 39,143,253, 0, 19, 33, 90, 53, 8, 68, 72,153,235, 27,209, 18, 91,198,161,157,
+109, 27,253,142, 88,117, 28,143,134,124,126, 56, 23,159, 92, 19,186,254,229,154,212,107, 31,176,229, 1, 48,103, 64, 6, 79,103,
+227,245, 44, 64, 57,240,104,119,155,153, 46,200, 92,114,104,181,122,168, 30,134,250,221, 35, 86, 39,112, 55, 96,138, 86,228, 50,
+ 48,146, 45,188,251,112, 22, 75,107,208,226,125, 64,197, 6,107, 11, 31,128,160, 23, 65, 78,179,219, 53,125, 3,117, 96, 83,170,
+253,101, 94,227, 68, 16, 60,100,210, 70,128,132, 51,219, 25, 76,217,206,218, 84,103, 79,178, 47,216,214, 56, 32, 14,104,237, 48,
+ 1,104, 97,224, 92,227,187,200,213, 64,158,128, 21, 71, 32,241,231,219,154, 29, 3,179,131,150, 16,137,155, 32,156,131,128, 21,
+ 24, 1, 40,248,105,246,222,238,245,164,174,231, 14, 65,217,171,203,129,241,232,175,108,138, 44,142, 12, 25,143, 96, 28,109, 0,
+187, 47, 86, 3, 75, 97,108,155, 21,110, 79,114,106,107, 14,119, 54,244,227, 91, 4,135,226,120, 34,145,242,202, 37,153,140, 80,
+ 17, 44,112, 44,148, 60, 12,160, 36, 38, 7,131,188,246,177,216, 72,180,211,195,103,207,206,229,230,173, 93, 26, 11,148,237,138,
+ 26,181,108,100, 35, 70,156,121, 93,156,134, 30,250, 77,141,102, 62,125,116, 73,133,178, 76, 96,241, 28, 50, 48,244, 62, 34, 55,
+ 83, 91, 84,131, 67,231,163,159,253, 55,159, 94,232,229,138,228,253,219, 13, 87,150, 52,169,199,235, 17,159, 84, 24,184,126, 7,
+ 74, 45,177,188,115,163,202,108,255, 85,115, 32, 39,205,177, 0,168, 58, 26, 45, 76,109, 9, 99,109,122,137, 59,122,169, 81, 90,
+239,106,148, 95, 84,135,179,238, 14,101,182, 76,203,104,184,144, 13,125, 19,136,210, 80,122, 16,209,177,102,191,121,221, 60,148,
+216, 66,140, 97, 76,150, 36, 37, 0, 0,134,209,190,158,145, 95, 60,106,115,206, 30,224, 42, 68, 85,119,118, 75,154, 65,150,165,
+ 94,202,208,105,129, 45, 11,128, 62, 40,100, 69, 81,207, 46,165,216,252,242,123, 7, 5, 57,172, 4,242,236,233,153,116,226, 80,
+190,190,173,139, 13,164,157,151,161,243,101,230,204,190,163, 69,132,130,241, 30, 53,106, 24,153,248,249,151, 80,237, 25,105,102,
+ 49,230,225,255, 88,127, 61,154, 26,189, 45, 42, 11,181, 74,158,242,142,160,196,220, 44,101,137,168,223,221, 46,201,195,167, 29,
+249,159,254,228, 51, 94, 6,182,229, 18,187, 64,149,180, 73, 25,194, 17, 39, 78, 63, 29, 96, 59,144, 28,160,108,131,178,127,188,
+ 52, 3,198, 32,201,183,192,204,179,241, 1,161,183, 79, 99,254, 59, 81,195,185, 54,230, 46, 16, 74, 0,252, 66,227,183,150,191,
+251,226,156, 64,197,110,111, 66,212,233, 42,178, 54, 11, 21,242,244,179,182, 43, 41,249,205,187, 53, 57,208,103,205,229,245,247,
+212,121,215, 3, 35, 68, 33,127,129, 23,154, 48, 59, 64, 70,224,157, 7, 51,144, 26,207,230,149,174,107,197, 42, 8, 0,215, 64,
+ 62,118,229,192,146, 24, 49,153,106,166,132,249,121,148,250, 30,159,159, 74, 91,159, 47,201, 84,212,120, 78,104,252, 81,178,203,
+133, 86,174,243,215,160,188, 44,234, 5,108,200,177,102, 46,192, 81,144,209,141,122,228,158,126, 78,149, 17, 63,163,238, 12,232,
+140, 55,245,140,170,113,211,136, 31,125, 42,155,107, 13,153,117,176,247,237,136,125, 48,195,140,247,160,254,120,108,227,139,200,
+ 26,135,116,232,145,107, 99,120,172, 0, 92, 27, 22, 2,222, 32, 0,195, 94,100, 64,132,240,100, 62,163, 17,186,158,245,230,119,
+173,141,151, 30, 61,109,244, 80,225, 68, 22,139,197,235, 12,253, 58,131,134, 3, 69, 9, 30, 70,149,200, 88,150,111, 67,167,196,
+ 38, 36, 19, 73,156,248, 12, 28,175,184, 50,252,106,109, 65,202,250,218,131, 59,238,118,246,206, 99,227,180,199, 26, 53, 81,110,
+ 6,184, 43,147,162, 81, 50,164,255, 53,193,142,129,195,174,217,236,112,135, 64,249,153,139, 82,166, 36, 21, 67,124,208,132,108,
+ 72,187, 12,177, 20,125, 4,156,253, 41, 18,133,196, 90, 66,195,200,128, 89, 32,168, 42,229,209,159,196, 25,202, 74,175,103, 40,
+123,180, 10,200,205, 14, 49, 38,205,214, 49,191, 12, 20,181, 5, 46,107,142,219, 22, 75, 69,169,151,245,126,106,160, 56, 70,169,
+ 62,103, 10,104,232,167,162, 7,140, 76, 7,142, 13,198, 20, 72,108,217, 4, 39,121, 79,174, 52,243,106,108,237,115,156,178,167,
+191, 70,240,142, 25,112,136,170, 92,131,227,192,149, 63, 27,155,246, 0, 42, 40,112, 36, 41,188,147, 79,201, 57,102, 69, 16, 16,
+210,215, 34, 55, 6,170, 95, 97,206,227,116, 13, 70,225, 24, 52, 1,192,137, 51,227,216,160, 97, 79, 67,252, 58,254,245,250,227,
+172,176,236,140, 96, 43,176, 41, 32, 10, 28,133,215, 10,127, 38,237, 11, 12, 5,106,112, 64,191, 3, 88,136,210,106, 49,159,229,
+148, 0,158, 24,198,190, 68,140, 69,219,170,121,186,184,120,190,103,207,159,200,155,183, 14,229,131,247, 62,144,226,211, 7,180,
+ 49, 43,167,251, 80,133,216, 11,170, 55, 18,144,247,160,168,182, 15,225, 61,222,133, 85,183,192,120, 15,144,217, 35,176, 42, 21,
+210, 4,118, 33, 57,195,249, 0,219, 38, 90, 85, 32, 90, 97, 27,112,237,203,171,171,161,156,159, 62,116, 12,242, 30,251,239, 49,
+177, 43, 33,239,109,185, 90,102,182,143,190,244, 69,111, 46, 71, 55,111,200,169, 6, 27, 9, 94,216,179, 41, 26, 60, 68, 99,163,
+206,170,203, 97,189,192,207,128, 12,247,213,220,232, 91, 88,233,208, 37,171,171, 77,204, 23, 43,114,213,237,179,106, 68, 27,132,
+ 89,251, 48,164,252, 53, 90, 63,192, 59, 0, 20,187,165,159,135,159,219,213,123, 94,202, 5,188,111,168, 68,111, 84, 51,114,229,
+129, 28, 9,114,182, 25,167,190,103,129,113,187, 55,149,138,218,220, 40,241,152,120,164, 83, 83,181,171, 89,142,151, 53, 52,232,
+ 30, 44, 83,100,187,131,200, 14, 40,177,161,248, 25, 79,117,223,245,179,219,221, 46,207,110, 53,103,163,212, 69,253,236, 17,250,
+223,176, 99, 4,240,121,108,183,160,221, 92, 76,219,184, 54,198,246,200,226, 56,153,202,102,163,196, 30, 59,110,244,193, 78, 67,
+147,169,142,244,251,166,130,151,202,172,120,102,215,235, 42,103,231, 81,120,196, 94,165,201,235, 98, 20,207, 72, 84, 2,177,113,
+202,240,219,183, 50,242, 98, 52,224, 1,199,124,226, 54, 80,133,106,218,112, 56, 89, 46,212,127,191,127,160,153,207,122, 91,254,
+ 28, 52,156,177,113,168,147, 75, 93, 55,171,168, 78,240,238,225,182,209,165, 58,131,134,236,232,162,191,146,114,123, 33,239, 28,
+148,169,196,196, 75,159, 9, 89, 38, 38,112, 5, 78, 6,217,177,110, 78,196,104, 62, 37,227,110, 79,254,236,103,167, 52, 66, 41,
+207,162,219, 0, 7, 82, 15, 26,184,195,145, 93,223,222,169,200,126, 35,146,230,197, 64,166,197,156,188,106,143,229,121,210,227,
+188, 43,110,232, 69,103, 42, 39,154,249, 35, 3, 71,111, 28,165,104,160,202,209,247, 54,218, 77,115,246, 95,191,189, 41,239,236,
+230,100,184, 76,228, 69,123, 42,111,239, 20,229,168,154,230,216,222,217, 88, 15, 84, 47, 16, 13, 43,248, 25,185,140,144, 96, 39,
+ 38,232,205,151,155, 85,148,248,242,114,118, 57,148, 66,108, 78, 18,250,233,204,131,116,129,241, 44,109,136,140,164, 50, 44,151,
+195,193,231,243, 41,121,120, 57,150,229,241, 90, 46,218, 19,182, 47,192, 25,253,252,124,206,114,251,127,253,111,222,145,239,188,
+179, 73, 14,117, 24, 71, 0,123,172, 36, 38,204,194, 43,234,180,255,207, 31, 61,144, 46,102,116,211, 57,130,179,212,210,240,194,
+ 38,174,159, 68, 68, 62, 74,153, 24,197, 27, 44, 36,201,249, 92, 63,168, 81, 37,112, 18,240,254,145,165,106,200,200, 25,224,144,
+130, 72,141,139,102,235,195,169,101, 31,195, 69, 36,207, 53,226,237,234,154, 53,234, 57,217,221, 44,106,208, 83,148,225, 96, 36,
+ 25,223, 42,137, 20,233, 64,207, 28,180,154,250,204,141,172,207,131, 30,106, 36, 30, 99,174,146,242,161,115,151,197, 90,216,201,
+226, 38,184, 9,244,144,159,158,119,229, 92,247,176,179,157, 99,139, 34,163,217,220, 61,221, 3, 0,105,154,250,189, 64,144,222,
+110,228, 36, 10,115,242, 31,126,246, 64, 62,124,252, 84,254,224,183,191, 39,125,125,206,157, 58,156,224,136,109,130,203, 78,159,
+104, 80, 24, 30,176, 27, 94,232,229, 90, 57, 18, 7,180, 75, 88,246, 86, 35, 83,211,104,183,144, 91,169,227, 92,200, 86,173, 46,
+ 39,173, 22, 1, 46, 91,181, 10,179, 22, 82,154,138, 33,207, 77, 15, 60,122,221,183,158, 46, 44, 3, 3,154, 23,159,139, 57,244,
+107, 89,223,120, 29,189, 6, 33,226,223, 43,114, 3, 24,253, 42,223, 25,253,193,196,230,219,209, 6, 8, 72,247, 27, 17, 13,206,
+177, 27,100, 30,234,104, 18,202,102, 70, 12, 58,178,169, 52,141, 62,126, 29,234,157, 65,191,140,207,137, 25,217,165,205, 41,249,
+158,205,235,218,232,154,105,134, 35, 51,225, 12, 61,152,228,156,140,104,114, 77,202,148, 68,110,124,200,119, 10, 86, 22,196, 32,
+ 67, 1, 11,220,118,221, 38, 38,108, 92,212,103, 70,180,114,216,129, 48,180,242, 48,148, 11,151, 36,159, 49,214, 64,156, 75, 19,
+112,177, 22,220, 64, 3,249, 90,209, 99,112,194,121, 89, 63,224,108, 49,230,109,171,144, 38, 69,119, 19,217,127, 38, 54, 14,109,
+226,114,210,226, 4,222,173, 79,184, 54,178,145,156,102,127, 83, 61,199, 25,178,163, 4,156, 2, 0,141,241,209,126,133, 88, 28,
+148, 27,163, 56,195,241, 38,140, 79,166,244, 30,238,109, 86,104, 12,163,148,137, 43,161,253,130, 32,241, 4, 76,130,165, 88,142,
+246,170,250, 28,161,126,206, 4,108, 19,252, 30, 47, 54,182, 51, 26,114,117,114,148, 5,142,141,205, 18, 37, 95,216, 44, 6,235,
+ 80,154,116,180,191,104,187, 76,198,115,142,184,142,168,218,146, 16,232, 57, 30,142,157,242,156, 37, 50, 21,181,141, 43,104, 30,
+ 68,222,107, 78,127, 82,228, 46, 76,124, 7, 14, 8,235,189, 32,162,126, 65,204, 7,241, 58,145,129,107, 81,153, 25, 99,190, 28,
+163,137,190,169,172, 1,219,179,138,197,137,248,172,100,216,107, 74,181,182, 69, 6, 57, 56,155, 87,103, 77,249,234,209, 99,121,
+235,141,187,242,171, 47, 30,202,175, 30, 60,118, 19, 35, 78, 66,217, 51, 18, 28, 4, 61,158, 87, 52,230, 60,119, 38, 35, 10, 67,
+ 90, 43,204,115,186, 16, 70, 95, 44,220, 55, 11,124, 83,154, 36, 68, 12, 44, 75,165,146,236,239,223, 98, 5,192,115,194, 71,171,
+165,205,144,227, 92, 98,220,113,119,179,206,214,219,116, 58,148, 77,189,131,115, 93,179,219, 55, 15,200,136, 71, 22, 59,140,195,
+ 65,131, 30,119, 78,247,225, 37,112, 69, 8, 12,208,114,228,247,175, 88, 93,193, 36, 7,138, 40, 0,159, 34,176, 68,155, 11, 76,
+143,176,125, 8,232,208,202, 1, 47, 3,238, 57,219, 36,108,215,235,239, 99, 98,196,143, 88,177, 80,179,230, 42, 69, 41, 10,126,
+129,228,229, 12,228, 78, 32, 71, 11, 13, 97,158, 87,103,252,224,229, 21, 3, 89,140, 24, 99,252, 44,209,247,185,117,176, 43,131,
+110,194, 42,167, 85, 91,124, 91, 27,223,118,118, 65,145,163,149,236, 53,202, 82, 41,231,101, 49,141, 89, 9,129,195,196,179,226,
+158,173, 92, 48,159,224, 76,233, 33, 41,107,208,212,166, 2, 97, 76,170, 36, 48,111,238,214, 51,154,184,174,228,254,221,125,253,
+123, 23,242,226, 85,155,123,196,115, 97, 69,130,215,147, 93, 25,205,126,231, 56, 15, 43,211, 26, 1,109,110,136, 73,171,111,220,
+217, 22,239,114, 73, 93,219, 18,184,117,211, 66,121, 85,139,220, 2,114,110, 83,165, 77, 95, 46,149, 24,149, 37,168, 46,175, 57,
+130, 1,112, 2,173, 30,184,204, 81, 18,129,225, 3,172, 31,209, 67,111,172, 81, 57,198, 67,145,167,235, 70, 4,145,193,244, 67,
+117, 98, 21,141,178,193, 93, 62, 83, 99,142,254, 27,178,241,186,102,106,136,132,113,106,115, 40,127,114, 4,199, 55, 89,204,133,
+ 47,191,122,102, 47,216, 81, 39,253,236,106,234,120,186, 87,100, 2,218,174,230,100,167,150, 51,222,118,253, 51,108, 16,122, 35,
+ 27,165,130,220,122,127, 91,254,246,243,166,252,229,151,109,253, 92,161, 58,218,118, 37, 39, 55, 55, 52, 3,190, 28,145,196, 0,
+243,142,159, 55, 1,250,153,201,101,127, 70,212,100,115,234,201,103,207, 71,242,254,126, 94,126,241,114,202, 82, 58,140, 47, 8,
+ 20, 48,211,216,138, 80,170, 14,229,103,175,134,166,112,135, 50,123, 16,208,240,145, 14, 20, 82,153,106, 40,160,100, 87,175, 21,
+229,205,205,156,220,218,205,202,255,254, 23, 51,121,121, 53,165, 54, 53, 56,200, 49,222,135,131, 11, 7,186,192, 65, 7,240, 76,
+220,236, 22,130, 31, 93,143,173, 74, 65,126,235,253, 67,249,191,126,252,144,146,177,216, 7,160,206,217,159,129, 83, 73,252,215,
+217,192,105,111, 41,127,254, 96, 70,192, 29,122,225,133,236, 76, 13,140,111,160, 29,253,200,114, 10,147, 25, 78,253, 13,152,138,
+148,141,107,224, 80,128, 36, 33,196,236,180, 26,232,163,221,178, 6, 61, 34, 71,219,101,205,136, 99,233,165, 9, 86, 32,208,144,
+213, 23,189,112, 25, 10,138,232, 62,104,100, 11, 20,126, 5, 85,148,120, 38,171, 33,196, 70, 82,220,191,238,213,149, 94, 46,141,
+ 56, 53,210,126,245,114, 65,158,247,166, 30, 92,240, 34,119, 70, 21,153, 1, 97,155, 89,202,225,110,157,231, 12,241, 70, 67, 35,
+230, 79,159,190,146,255,227, 39, 95,201, 89,179,203, 11,126,218,236,147,156, 39,165,103,198, 67,143, 91, 47,209,112, 52, 38,106,
+ 29, 0,163,227,243,115,147,173, 5,221,175, 99,209,131, 81,192, 89, 64, 36, 11, 50, 25, 80,189,126,249,252, 37,199,182, 0, 0,
+ 76,115, 46,124,205,159, 67, 32, 2,222, 5, 2, 43, 93,153,252, 26,228,150, 39,240,108,206,242, 28, 5, 88,120, 71, 2, 61, 95,
+101,150, 51,177, 87,232,215,178,151,141, 80, 26, 21, 18,156,219,200, 62, 3,103, 2,206, 26,119, 4,119, 29, 66, 43, 54, 6, 55,
+225,153, 90,187, 64, 34, 69, 1, 24,235,221, 81,177, 10, 4, 42,227,133, 83,111, 91,154, 84, 46,176, 35, 65,240,107, 1, 18,142,
+ 37,197, 12, 16, 80,190,135, 83, 69,166, 9,106,219, 90,177,104,179,224, 80, 19, 3,224, 71,140,108,167,166,207,141, 7,155, 18,
+144,183,226,136, 24,122,167,232, 89, 26, 82,222,112, 52, 40,203,194,192, 17, 1, 31,173,152,117, 21,179, 33,239, 63,202,223, 11,
+ 87, 66,237, 3,147,161, 63,251,213,120,102,189,114, 24,245,162,102, 59,145,209, 25,175,146,136, 32,172, 21, 20,181,214,118,230,
+ 73,179,155,182,108,209,119,202,132, 0, 50,173,245,115,231,228,225, 79,140,212, 7,229,127,117,240,101,205,184,218,253,185,227,
+112,247,184,206,227,233,146,136,121,200, 51, 99, 47,129,215, 65,195,220, 64,157, 30, 91, 37,168,146, 33, 16, 27,133, 69, 41, 85,
+106,210,210,228, 96, 14, 16, 83, 58,199, 36,197,198,247,212, 17,165, 86,122, 78,243, 20,226, 32,240, 75,207, 26,218, 95, 49,171,
+ 51,192,253,232,103,162, 69, 39,226, 64,111,190, 37, 56,105,219,243,241,114,206, 86, 1,214, 31,116,217, 24,109, 77,163, 29,129,
+192,123,101, 44,151,104,101,195, 54, 96, 18, 3, 12,132, 12,202, 29, 70,131, 66, 70, 4,101,166,249,103,216,219, 12,122,171, 24,
+249,212,189, 57,189,234,202,104, 48,225, 30,226, 28,110,248, 85,169,213, 26,236,229, 66,130,212,143, 23,172, 92, 60,215,108, 29,
+192,202,163,195,155,242,242,244, 21,233, 83, 33, 82,130, 51, 66, 54, 73,189,239,208,122,120,226,206, 30, 81,228,200, 71, 60, 83,
+ 63,148,196, 80,226, 8, 4, 0,124, 67,124, 10, 59,134,246, 34,206, 56,117, 37,192,158,153,201,115, 34,101,187,222,208,204,184,
+170,239,150,166,132,114, 46,103,227,163, 24, 89,198,120, 52,132,149,230,139, 9, 63,179,219,214, 96,253,198,129,188,127,255, 29,
+249,223,254,159, 63,166,188,108, 5, 66, 69,122,166, 80,161, 33,157, 46,108, 60,193,101, 66, 31,194,241,231,245,148,147, 21,224,
+ 84,184, 38,105, 9, 2, 27,247, 34, 48, 89,207, 51,206, 1,167,113,116,239,207, 59, 77, 42,225,197,250,247, 52, 51,208,115, 51,
+163,143,139,163,129, 84,138, 41,151,213, 38,178,189, 89, 96, 59, 21,127,142,115, 14,105, 97,140,188,129,131,226,159,125,227, 77,
+249,252,233, 41, 71,222, 30,159, 52, 53,224,171, 48,112,201,208, 73, 25,206,106, 50,157,189,190,175,184,159,231,154,100,246,198,
+107,217, 85, 95,116,176,183,197,170, 5,146, 6,115,198,198,124, 23,145,241, 49, 77, 81,151, 90,165,200,128,224,178, 59,150,247,
+239,212, 56, 78,187,187,219,144,151,154,152,238,168,127,218, 80, 59, 56, 80, 67,127,124,182,230, 30, 33,249, 64,133,210,227,184,
+169,207,179, 52,157,172,141, 44, 9, 65, 39, 90,104,187,239, 28,201,243,241,169, 46,208,146,145, 69,115, 6, 9, 59, 95, 74, 97,
+ 36, 85,100, 95,232,103,205,151, 4, 14,196,142, 28,198, 75,124, 87,102,212,200,169, 59,209,172,105,198,168, 60,185,102, 44,195,
+ 12,164, 94,150,131, 70, 94,254,253,183,203,106,160, 81, 40, 72, 89, 89, 16,148,126,208, 19, 14, 18, 42,164,129,122, 20,253,129,
+201, 42, 98,148,152, 71, 25,121,237,187,160, 1, 57,254,154,189,241,233, 52,145,159, 61,235,171, 83, 44,203,238, 78, 77,238, 30,
+110,144, 35,247,227,103, 29,249,111,255,240,109,217,212,141,242,170, 41, 89,192,249, 58, 42,205,172, 26, 1, 31,253, 94, 61,144,
+191,122,218, 97,153,176, 24, 90,239,231,231,207, 7,228, 22, 7, 55, 49,230, 17,177,169,136,202,193,213,113,166,209, 34,144,231,
+208, 93,111,163,228, 63,240, 89,198, 98, 4,238,155, 6,248,151, 23,112,154, 41,102,185,216, 36, 48,213,101,160,110,149,179,160,
+ 38, 15, 41, 79,176,107,165,205, 65,252,226,193, 21, 75,238,232,223,125,117, 60,164, 30,122,118, 98,165, 71,204, 96,254,244,139,
+ 43,249,141,119, 54, 52,154, 77, 91,153,220,101,137, 72,234,230,154,141,204,213,240,254,240,107,135,242,227, 79, 79, 57,183, 15,
+227,129,192,235, 26,152, 5, 7, 68,154, 69, 53, 70,179, 32, 43,207, 58,214,147,197, 97, 58,191,184,146,251,187, 25,217,216,220,
+150,147,238,138,229,121, 36, 64, 37,125,214,127,246, 1, 56,172, 53,216,194, 92,165,183,178, 64, 77, 23,188,176,145,147,227,129,
+ 6, 47,167, 99,102,188,185,192,104, 59, 65, 61,139, 50, 54, 48, 14,148, 76, 68, 38,166, 79,112, 12,212,188,222,254,195, 78, 73,
+110,236,131,218, 50,146, 22,212,249,244,185,193, 46,184,183,149,211,139, 71,244,163, 68, 96,244, 74,217, 72, 18,160, 91,199,221,
+153, 58,234, 44, 25,167,142, 91, 99,206,128,158,235,159,253,223, 63,254, 92,131,167,149,188,121,116,160, 78,176, 68, 7, 48, 79,
+202, 26,225,230,101,208,239,200,243,211, 33,199,204,144,113,183, 53, 99, 97,121,152,188,221,145,101,155,212, 44, 95,203,102,165,
+ 42, 91,141, 6, 13,157,215,237,168, 51, 47, 17,112, 6,100,238, 84, 13, 49, 68,101, 6,154, 17,193,193,153, 74,155, 56, 48, 10,
+ 64,115, 86,222, 67, 89, 20,151, 47, 74,140, 77, 14,180,162,104, 57,161,127, 15,227, 11,112, 27, 28, 71,206,113,139, 79, 41,211,
+104,178,191, 75,167, 68,133,123, 1,178, 30, 56,116,252,204,112, 58, 49,196,124,108,189,119,106, 29, 92,207,174,187,241,155,208,
+ 55, 77,110, 0,102, 76,186,213, 12,136, 41,217, 25, 95,130, 24, 53, 62,207, 12,202,244, 4,233,233,231,111,234,247, 80,126,114,
+ 97,202, 97,212,156,158, 79,121, 78, 16, 76,192, 1,238,171, 49,254,222, 27,106, 3,174,154,242,224,228,202,196, 40, 2,143,189,
+242,208, 55,206,137,213,210, 20,228,214, 68,243,123,164,119,134,161, 5,128, 13,253,222,217,108, 65,135,239,179,140,190,210,253,
+201, 88,223, 15, 85,133,196,231,184, 29,149, 8,171,150,149,195, 33, 33,120,237,245,250,106,228, 70,226, 72, 41,232, 4,166,203,
+132, 66, 62, 1, 74,163,177,174,171, 58,164,128, 99,135,234, 52,103,106,176,210, 30,197,122,240,189, 5, 13, 82,144, 65,130,107,
+158,204,137,234, 68, 15,183, 27,108,171,224, 86,160,189, 7,231,115,124,118,165, 6,190, 74,195, 89, 92,105,160,163,246,224, 92,
+191, 27,194, 60, 20,140, 66, 43, 49,155, 98,249, 22,227, 98,227,225, 72, 50,234,140, 60, 76, 98,128, 17, 30,153,163, 62,203,124,
+222,103,123,102,238,217,249, 0, 98,136,193, 55,199,213,144,121,251,166,203, 64,156,129, 16,240,228,167,203,178,242,134, 98,243,
+ 2,194,125,192,222, 32,112,102, 27, 38,116,109, 27,176, 8,102, 50,238, 12,196,220,111, 60, 75, 33, 87,226, 92, 55,208,223,224,
+115,192,189, 65,233, 26,251,222,211,223,107,247,186,178,183,179, 79, 22, 79,128,130,129,239,129,245,120,250,236,137,108, 54, 54,
+228,251, 31,220,151,209,176, 75, 9, 83,102,232,249,148,171,234, 36, 2, 54, 81, 32,211, 65, 10,116,221, 78, 11, 83,198, 85,193,
+170, 27, 2,208,172, 1,109,171,197, 28,167,151,150,145, 77, 82,160, 36,142,201,147,122,163,166,182,167,194, 94,245,108,218, 33,
+ 56, 56, 59, 75,113, 42,103,190, 90, 48,112,237, 15,103, 4,163,213, 53,160,106,118, 58,108, 19,188,121, 36,164, 83, 21,194,122,
+244,103,212,239, 64, 64, 12,237,162, 70, 57,203,145,185,157,106, 40,239,223,220,151,203,161, 6, 73,139,152, 65, 39,236, 96, 49,
+107, 56,167,229,218,248, 29,192,139, 64,143, 1, 93, 8,112, 53,128, 1, 82,127, 31,193,126, 52,235,114,210, 0, 9,217,209,118,
+ 81,142, 47,187,114,222, 50, 90,112,208,197,162,231, 95,209,100,242, 18,206, 88,207, 81, 38,181,100, 16, 8,103,249,242,188, 67,
+159,196,233, 15, 4,208, 64,171, 67,208, 5, 26,237,122,206, 75, 26,140, 16,112,152, 88,101,144,140,139,222, 82,253,166, 39, 79,
+213,198,103,243, 89, 77, 20,102,188, 83,160, 25,111,246, 38,132, 21, 14,103,134,190, 7,230, 68,136,207, 89,177,130,240,244,248,
+ 88,126,247,123,111,113,162,226, 74,125,197,163, 23, 45, 13,218, 42,178,240,198,108,153,173, 29,153, 16, 2,122, 88, 93,128,248,
+172,226,106,224, 63, 84,185,112,103,195, 16,169,107,108,228, 7, 0, 45, 33, 3,233, 47,192, 20, 20,242,225, 96,252, 49, 90, 2,
+ 34, 13,223,209,164,174, 92, 89, 15,133,166,208, 51,167, 98,180,202,110,102, 60,177,242, 17, 74,141, 80,221,194, 67, 68,235,216,
+233, 44, 27,241,202,216,247, 13,213,136,249,201,149, 71,138, 84,104,143,103, 32,238,154, 18, 2,175, 56,211,137, 93, 7, 18, 89,
+ 15,236,191,255,157,187,242,222,253, 77,241,212,129,175,212,217,188, 56,109,203, 71,143,141,123,119,210,215,195, 20, 68,154,205,
+ 13,153, 45,182, 53,250,234,158,173,228,209,201,144, 34, 48,159,104, 64,176, 36,194, 58,162, 38, 60, 20,116,126,245, 88,141,139,
+126, 7,144,245,147,217,218,141, 4,217,164,220,173,189,130,188,115,179,194,217,236,171, 97, 4,177, 41,117, 54, 1, 91, 3, 64,
+244,254,240,251,135,178,198,184, 7, 64, 63,122,145, 79, 94,244, 52,178, 42,200,211,115, 53,162,203,169,124,239,187,121, 73, 66,
+172, 75, 68,145,135,145, 94, 64, 40,158,109,233,119,255,243,111, 31,202, 23, 47,123,242,226,114,202, 44,181,160,139,124,222, 26,
+200, 95,252,195,177,252, 23,223,185,193, 62, 37,122, 95,152,133,159,171,129, 71,208,209, 28, 78,104, 4,182, 42,161,254,189, 1,
+157, 11, 28, 70,130,108,105,109, 37,245, 5, 81,154,101,142, 23,205, 22, 83,163, 60, 5,216, 66, 47, 81, 42, 72,201,173,122, 34,
+ 95,158,205,101,230, 91, 48,144,215,253,253,171,143, 94,200,119,222,216,148,157, 90,150, 7, 31,170,104,168,141, 44, 23, 30,199,
+242,238, 28,132,108, 19,128, 28,168,167,193,199, 79,126,121,202,231, 0, 70,129, 61,102,253, 14, 4, 52, 95, 63, 44,200, 13,117,
+218, 91, 37, 53,117,171,177,204, 70, 0, 14,234, 1,212,131,157,165,209,211, 95,107, 84,139,222, 32,140,109,162,251, 0,154,216,
+ 25,100, 58, 75, 25, 78, 67,192, 48,222,127,243,150,252,229, 71,159,201,147,135, 15,228, 7,111,191, 45,159,158,234,218, 45, 94,
+201, 85, 95,215, 79,141, 20,140, 67, 70, 86, 4,151,221,216,222,214,189, 3, 42,214, 72,133, 80,134, 2, 11, 23, 46, 31,179, 95,
+ 53, 0, 0,189,229,242, 38,171, 26,114,110,116, 87,202, 32,175,168,213,105,200,142,159, 92,154,176, 8, 29,171, 83,142, 74,155,
+209,128,145, 71, 96,128, 44, 21, 35,114, 38,236, 97,115,250, 32,164, 65,230,141,225,146,122,181, 98,253,206,209,200,178,113,128,
+ 77,139, 17, 63,139, 37,201,200,241,181,235, 63,232,159, 3,255, 0, 71, 71,142, 67,142, 66,153, 20,101,224, 20,211, 88, 65, 9,
+172,100, 59,113,148,178, 0,146, 69,174, 37, 16,248,215, 90,216, 30, 13,201,181, 83, 12, 66,155, 71, 7,221,108,189, 92,102, 31,
+ 31,243,231, 36,200,224,168,160,245, 70,141, 41,216,170, 2,125, 61,251, 47,154, 61, 57,220,216,228,216,234, 89,111,164,239, 49,
+209,224, 58, 77, 36,250, 42,178, 17,156,245,116, 73,135, 13, 7,135, 62, 30, 0, 73,224,103, 71,208, 63, 5,119, 66,224,179, 26,
+129, 18,234, 28,129,222, 74,127,102, 60,118,163, 70,194, 12, 17,165,198, 14,196, 44,116,143, 64,187,218,105, 93, 80,161,203,116,
+229, 77, 84, 6,217,112,127,145, 16,219, 3,123,130,128,105,171, 94,144,179,102,155,129, 3, 4,206,224,216,225, 92, 16, 64, 93,
+ 99, 19,166, 4,158, 5,228,168,159,118,135, 44, 81, 39, 65,138, 42, 93,104, 33,156, 53,175,168, 99, 29,120,154, 69,109,111,233,
+ 63,219,242,248,233, 75,105,119,122,164, 70,166,158,130,205,122,178, 42, 4, 83,206,249,254,216,145, 99,121, 8, 40,192, 89, 44,
+ 68,124, 99,140, 47,246,141, 83,222, 90, 37, 0,156, 26,142, 34,142,140,162,153, 21, 5,204,234,187, 49, 64, 86, 14, 18,195, 59,
+ 0,233, 77, 33, 16, 16,126, 97,140, 11,207,192,185,235,136,147, 16, 8,252,224,176,151, 41, 0, 75,115, 82,208,224,164, 94,169,
+ 27,210,155,170, 96,198,184, 9,198, 67, 4,155, 41,189,247,192,110,224,222,215, 27,219, 18, 70, 96,205, 75, 73,109,235,150, 28,
+159, 95,169,125,185, 98,192, 0,242, 85,216, 98,238,137,126,192, 86,173, 36, 63, 0, 89, 15,202,183,100, 79, 19, 38, 25,184, 43,
+121,170, 41, 10, 29, 25,233,100,197, 48, 4,164, 6,231, 4,192, 90,206,207, 94,240,247,189, 84, 69,158,191,124,174,239, 54,215,
+224,189, 98,189,223,165,141, 17,130, 22,188,176,183, 65, 52, 56,152, 72,113, 71, 48,210,250,205,119,223,148, 14,164, 78,211, 41,
+150,240,241, 76,125,253,217, 11, 13,242, 1,242,156,169, 67,236, 77, 34,170,105,150, 11,158,222,225, 25,127, 14,193, 52,206,122,
+ 38,136, 25, 32,129,204, 5,193, 72,127, 50,147,225,100, 66,162,170,183,239,221, 22, 47,154,202,109, 77, 2,175,134,107, 77,204,
+230, 44,219,195, 87, 93,180,186,172,110,220, 57,104, 80,156, 8,108,144,247,110, 52,244, 78,166,229,233,171, 54,219, 68, 76, 76,
+213,102,221, 62,168,203,121,179,171, 1,225, 68, 14,118,170, 4,131,162,122,132,160, 21,125,244, 98,161,200,117, 32,153,144, 6,
+202,133, 84,158,247, 3, 78,188, 15,226, 32, 96, 80, 64,214,101, 92,181, 76,226, 16, 60,225,222, 98,236,120,185, 54,192,104,180,
+ 4,201, 84, 74,126,244,209, 67,121,251,104, 75,190,173,123,114,115,231,158, 60, 84,199,254,242,124,110,163,223, 24,131, 67, 59,
+ 15, 88, 30,207, 24, 88,215, 28, 23,181,169, 21, 4, 68,105,226,100,194,152,200, 84,150, 49,112, 80, 57,230,129,210,214, 66,141,
+105, 66,117, 46,100,211,233,192,105,241,190,134,140, 9,251, 25, 44, 65,197, 54,144, 79, 70, 55,131,227,232,130,163,204, 6,126,
+227,144,134, 31, 7,253,114,162,135, 96,176, 96,127, 8,125,173, 11, 93,168,103, 23,200, 90,151, 28, 41, 0,130, 19, 82,175,232,
+231, 47,192,158, 6, 56,129,103, 66,101,165, 84, 66,112, 20,244, 98,167, 26, 93,118,155,154, 85,193, 9,220,168, 73,216, 91, 72,
+ 71, 23,237,102, 33, 32,139,217,127,252,170, 45,127,249,203, 51, 25,205, 13, 28, 6, 3, 80, 82,103,165,190,135,151, 21,194, 48,
+163,113, 44, 47,213,193,213,106, 57, 41,105,132,221, 40,103, 88,150, 73,133, 22,209,238,109,228,165,154,207, 82,252,131, 68, 21,
+ 40, 95,121, 22,172,160,140, 89,216, 77,203, 12,191,183,136,232,188,126,245, 98, 40,223,215,133,255, 76,157,196,165, 70,130, 63,
+248, 78,131, 66, 42, 28,175, 91,130,196, 38,150,169, 26,134,122, 35,148,173, 2,110,248,130,132, 37,200,118,230,115, 11, 96,126,
+254,213, 90, 29,175,199,222, 10,103,148,213, 25, 3, 71, 0, 99,218, 26, 89, 31,119, 50,159, 80, 24, 38, 2,253,238, 10,142,204,
+115,253, 93, 83, 91,106,104,100, 7,185, 77, 68,226, 9, 17,154, 75,206,237,223,219,173,200,118, 41, 37,223,191, 83, 98,134, 14,
+131,236, 69, 75,249,201, 23, 45,205, 90,166,250,174, 25,121,126, 49,150, 93,144,220,212,242, 12,170,190,165, 81, 56, 15, 99,180,
+226, 51,165,101, 67, 94, 28, 55, 29, 89,133,239, 52,222,133, 64,148, 45, 93,191,148, 30,218, 76,162,217, 36,100,120, 61, 61,180,
+229,138,228,183, 26, 82,214,236,176, 11, 53, 61,125,159,197,122, 66,231, 81,217,170,106,164, 62,103,192,134, 42, 11,200, 38, 80,
+198,254, 79, 31,254,131,252,244,147, 71,242, 63,254,231,191, 37, 47,175,150,178,187,171, 89,253,168,193, 86, 3,232, 70,123,237,
+ 38,201,101, 48,171, 59,132,214, 49,180,151, 29,152,140,239, 12,152, 34, 24,193,162,196, 88,220,244,159, 78,127, 32,185,237, 28,
+ 51, 27,100,249,112,248,221, 94, 79, 29,222, 80, 51,149, 30, 9, 31,216,198,240, 76,150,212, 4, 20, 44, 64, 13, 66, 35, 88, 33,
+235, 27, 71,226, 82, 36, 97,169, 0,100, 21,248,175,251,164, 53,104,121,235, 65,133, 0, 11,126,174,166,134,134,153,190,174,127,
+214, 79,211,248,162,196,138,125, 5, 15, 55,155, 74,209,202,209,157, 26,135, 66,228, 36,115,137, 58, 6,178, 58,132,225,212,117,
+212, 0, 6,162, 20, 84,219,243, 12, 36,131,118, 2,123,178, 40, 67,163,180,143, 50,182,211, 60, 15,117, 63, 64, 92, 51,161,250,
+220,154, 61,113, 26,100, 13, 42,210, 73,138, 25,152,105,171, 27,127,124, 87,141, 97, 91,239,227,118,185, 32,191,113,247, 64,142,
+ 91, 61, 57, 86, 67,182,118,179,239,112, 72, 28,143,115,200, 95,246,148,245, 76, 86, 11, 89,226, 41,200, 96,183, 12, 72,157,140,
+245, 93,128,106,216, 33,173, 17,254, 99, 61,161,233, 29,120, 19,171, 26,132, 86, 66, 45,106, 70,143,234,214,184,101,244,171,200,
+ 54,146,245,220,198, 48, 83, 30,157, 16, 0, 77, 28,159, 68,208,186,132,176, 72,154,149, 21, 48,204,225,220, 83, 93,206,113, 52,
+ 64,184,100, 56, 90,147,228, 4,224, 65,144,198, 32,160,221,169, 87, 88, 1,244, 64,253,172,207,248,248, 84,179, 44,148,187,129,
+ 49, 8,109, 50, 32,212, 76,124, 65,102, 67,107, 61,198,250,119,131, 12,250,206,154, 29, 70, 11,153, 13,251, 4,216,130,105, 31,
+255,100,120, 47,204, 22,146,183, 3,109, 8, 40,164,133,242,122,140, 11,198, 63,140, 92,197,205,141,172,249,215, 19, 11,192,162,
+164,114, 12,246, 16,132,161,140, 59,158,142, 95, 51, 29, 30,238,237,201,166, 6,158, 96, 49,220,209,128,171, 27,205, 29,243, 96,
+ 64, 91,180,152,143,165,134,246,145, 62,199, 85,243,130,236,101,126, 70, 29, 12,192,137,126, 86, 6,157, 22, 75,248,213,202, 61,
+217,209, 76, 30,130, 67,203,181,241,212,227,204,133,174,125,243,234,178, 35, 23,144,109,101, 75, 36,101, 8,125, 63,126, 93, 82,
+230, 12, 56,230,212, 99, 66,212,185,247, 0, 10,162,109,152, 77,219,184, 37,122,217, 7,251, 85,117,230,152, 32, 8,152,197,147,
+160,197,207,145,245, 19, 89,111,173, 92,213,164, 96, 69,199,134,247,192,121,200,110,149,197,211,160,235, 92,157, 31, 50,115, 36,
+142,135, 27,160,204,205,202, 85,209,151,171,158,181,162, 46, 53, 24,132,236,232, 65,163,204, 49, 62,113, 98, 67, 40,219, 35, 8,
+193,196, 22,170, 63,152, 70,193,125,171, 86, 74, 28,221, 43,230,125,121,213,153, 19,161,143, 54,199,137,218,183,186, 62, 35,236,
+200,214,230,182, 36,169,186,252,242,193, 39,250, 46, 39,114,247, 96, 91,246, 54,171,108,197,204,116, 13, 91,189, 33,253,141,137,
+131,121,172, 86, 35, 64, 70,201,187,161,239,130,128,108, 78,181, 57,203,180, 49,225,129,245,158, 46, 66,182,162,129,209,216, 86,
+ 59,138,224, 8,162, 49, 4, 96,235,249,106,104, 82,247,248,101,155, 45, 3, 76,120,129, 70, 25,247, 31, 85, 26, 50,177,170, 93,
+ 67,213,224,241,139, 51,249,215, 63,124, 79,247,167,207,209,209, 94,127,105, 8,125,216, 34,216,138,181, 71, 31,139,170, 1,148,
+ 63, 25,124, 45,150, 54,193, 18, 36, 75, 26,236,158, 30,170, 52,138, 73, 75, 99,118, 66,121,104,164,206,104, 30, 90, 36, 89,202,
+132,215, 99,122, 98,180, 5,198,158, 68,157,111, 39, 3,106, 92,195,158, 67, 20,198, 18,130,227,119,109,124,227, 24, 55,123,120,
+214,147, 31,125,114, 33,165, 98,154,131,249,158,103, 32, 24,100,166,251, 59,101,205,180, 61,249,240, 97, 95,166,177,199,121,104,
+ 74,189,250,134,171, 68,132,248,224, 98,160, 89,184, 79, 62,222,246,120, 46,247, 54, 11,210,174, 47,228,217,213, 72,158,183, 38,
+242,139, 47, 69,141,209, 76, 62,125, 53,166,178, 26,250, 72, 0,190,228,232,168, 99, 62, 55,178,117,208,191, 34, 19, 15,189,170,
+ 20, 10, 41,102,237,200, 60,112,232,219,186,120,125, 13, 62,158,157, 77,100,175,158, 99,100, 15,254,110,162,200, 73,216, 0, 13,
+114,159, 8,224, 24,229, 54,125, 62,160,177, 91, 87,125,249, 74,150,242,248,217, 57, 51,145, 7,191,124,197,153,121,164,254, 32,
+160, 9,245,253,187,147,133, 52, 39, 75,206, 77,178,239,167, 70,166,154, 55,118, 34, 68,160,190, 6, 64,207, 78, 95,177,188, 11,
+205,113,244, 30, 23, 14,137, 13, 80,218,213,112,161, 7,119,197,246, 71, 42,204, 91, 0,229,153,246, 19,128, 41,200, 2,111,239,
+111, 80,241,170,150, 11,216,131, 76,235,243,149, 50,219,178, 81,205,115, 44, 35,159, 82, 67,163,251,188, 89,200,201,231, 39, 99,
+246,239,191,113, 35, 79, 76,193,243,166,102, 81,154,117,110,108,133, 20,131, 72,174,245,219,217,191,132, 96, 69, 74,126,251,157,
+109,130, 22, 65,206,129,108, 10,135, 30,145, 54,126,222,211,195,253,226,178, 39, 57,189, 0, 55,223, 58,148, 48, 95, 53,213,188,
+160, 46,157, 47, 47,244, 34, 67, 97, 47, 75,149, 50,240, 22,167,144, 17, 3,186,171,217,202,147,243,150,252,191,127,251,145,124,
+249,188,169,153,123, 81,158, 93, 78,228,239, 63,127, 72, 99,224,171,225,190,106,119,232,192,239, 30,236,145,252,230,188,213,100,
+208, 67, 69, 45, 26, 31, 11, 30,209, 42,128,147,173, 96,222,181, 82, 33,219, 20, 70, 90, 48,221,209,108,183, 56, 42, 6,231,129,
+222, 20,148,181,112, 81,124,244,160,209, 47,118,216,132,208,141,163,161,135, 78,134, 54,224, 36, 86, 6,254, 9,152,237,134,172,
+106,113,142,219,201,242,162, 99, 2, 66, 16, 24, 15,100,215,248,249,140,235,143, 99, 60, 44,235,120,225, 39, 64,169,130,235,218,
+ 73,183, 82, 61,207,129,221, 12,232, 22,145, 19, 92, 28,208,238,218,176,198,137,161,219,241, 93,190, 53,250,201,249,110,146,177,
+150, 1,176,140, 28, 90,175,186,217,237,211, 24,209, 33,175,174,193, 61, 40,111, 47,152,121, 19,216, 26, 88,224, 98, 99,170,105,
+185, 24, 76,137,109,217,214, 51,112,103,119, 83,131,170, 46,121,250,215, 78,131,253, 90,219, 25,173,136, 53,104,123, 3,124,143,
+ 16,197,205, 59,191, 64,245,102,202,128, 74,156, 40,140, 79, 64,152, 6, 66,121, 19,160, 40,100,209,215,157, 19, 3,177,244, 67,
+ 58,106,114,226,171,131, 91,160,164, 58, 51, 37,188,203, 86,135, 99,164,139,121,143,233, 70,188,154,208,176, 53, 42,144,130, 14,
+229, 81, 91,131, 93, 61,154,251, 98, 32,190,237,141, 50,123,209, 72, 14,246,182,107,236,181, 99,153,224,236, 47,154, 61,221,179,
+ 17,199,102,215,106, 68,231,122, 95,129,126,191,127,235, 64, 6,219,155,204,216, 59,157, 75,117,212,186,167,133, 50,133, 68,128,
+133,128, 40, 9, 90, 62, 75,218,196,152, 4, 56,168, 76,166, 89, 93, 49,166, 73,160, 20,200,246,134, 44, 27, 76,133,153,156, 1,
+ 53,173, 87, 73, 66, 26, 92, 33,223,217,204,208,183, 36,136,125, 81,240,102,228, 13,195, 0,117, 56,142,149,185,170,202,179, 87,
+167, 82,200,191,193, 50, 49,214, 54,157,213,179, 53,179,137, 25, 22,108,244, 14,247, 7,125, 6,131,195, 65, 79, 70,163,190, 58,
+179, 3, 13, 56,247, 72,139,218,234, 52, 37, 9,139, 26, 44,247,212,129,237,147, 74,245,236,170, 77,240, 90,236, 36, 87,129, 18,
+ 95,113,158,123, 73, 76,130,237,177,247,186, 2,103,247,126, 77, 16, 29, 57,254, 97,206,116,253, 64,237, 13,123, 58,157,199, 28,
+ 21, 6, 8, 13, 21,160, 27,251,247,244,222,229,101,127,203, 72,140, 80,209,196,231, 35,187, 69,102,186,210,224, 1,228, 48, 8,
+ 90,225,236,174, 52,169,123,247,246, 22,171, 14, 0,233,194,231,143, 23, 9,207, 68,119, 48,166,253, 51,194, 35, 84,101,242,106,
+ 55,124,142,165, 33,208, 70, 5,233,188,217,166,222, 2, 42, 99, 8,228, 80,185, 49,249,110, 97,245, 54,159,175,240,204,158, 54,
+ 7,114,176, 81,118,194, 64,105, 13,242, 74,122,110,123,114,231,214, 61,169,215, 26, 36, 73, 59,105,246,213,198, 12, 77,139, 4,
+205, 98,181,225,129,222,133,171,246,132,223,141,139,180,169,137, 7,190,183,162,137, 83, 73, 19,190, 78, 31,228, 55, 51, 86,180,
+ 96, 3,123,106, 67,224,215,174, 53, 19,112,175,170, 69,176, 53,226,125, 38,220,219,225, 8, 84,212, 69, 6,197, 0,225,193, 79,
+ 98, 77, 16, 8,181,122, 3, 86, 4, 81,121,248,249,231,199, 12,154,238,222,220,103,219,182, 90,152, 88,146,128, 4, 27, 18, 1,
+161, 9, 53, 81, 9, 14,118,218, 51,162, 46, 15,182, 56,165,134,191,223,235,202,223,125,252, 82,254,229,123, 59, 4, 97,117,198,
+ 9, 81,183,136,222,102,208, 51, 62,237,203,153, 70, 15, 37,180,144, 33, 72,225,128, 10, 86, 54, 67,249, 92,216,159, 6,173,231,
+ 70, 1,243,191,121, 58,206, 15,159,245, 53, 67,155,201, 13,188, 4,192, 7,163, 5, 47, 86,173, 20,202,219,251, 69,217,214, 11,
+138,114,246,112,156,149,131,205, 10,203, 38, 47,213,152,143, 47,103,236, 25, 71,177,217, 54,128,235,176, 64,152, 45,252,226,164,
+ 71,152,255, 75,141,238,255, 63, 61,156,205,238,156, 8,115, 68, 71, 99,117, 76,184,124, 40,167,122, 44,149, 27, 27, 20,128,241,
+ 41, 39,211,199,102, 1,100, 48,245,103, 47, 16,253,204, 13, 41, 11, 49,131, 44,104, 73,117,227,161,116,246,131,175,237,200,119,
+239,212,229,127,253,235, 99,121,217,233,233,119,175,232, 12, 36, 76,228, 74, 29,235,233,243, 49,245,213,209, 99,238,119,166,108,
+ 37,124,113, 60, 35,235,210,222,225,134,252,209,207, 39,146, 15,141, 96,191,170,107, 50,146, 28, 1, 28,199, 23, 83,121,210,154,
+203,121,123, 74, 84,243, 4,253,211,181,176, 23,116,149,142,164, 63, 76, 88, 41,233,232, 67,159,244, 23, 12, 38,202,105,143,154,
+240, 39, 77,144,253,139,211,208, 53,101, 58,163, 80, 4, 85,164, 71, 85,161, 15, 14,210,114,111,175,226,230, 8,141,197,200,115,
+156,249,184, 96,143, 47,135,242,213,203,174,252,203,111,220,144, 51,244,109,206, 53, 3,204,168,177, 31,206,229, 98,184,150,225,
+ 23, 23,114,239, 70, 69, 47,158,181, 90,196,205, 97, 83, 59, 68, 47,251,206,118, 93,182, 40,170, 17, 32, 52,116,128, 17, 93,119,
+ 56,192,249,140,217,248,120,166, 78,241, 97, 79,138,155, 25,233,235,190,247,103,109,105, 53, 91, 4, 32, 65,130, 16,229,162,154,
+158, 5,100, 80,155,106,236, 63,252,234,153, 60, 60,237,104,228,153,145,131,221, 29,206,106, 62, 60,109,106, 22, 87,228, 5,190,
+188,188,100,255,111,127,103, 75,142,213, 48,225,221, 65, 57,187, 92, 25, 38, 33, 96,159,210, 99,121, 42, 96, 86,144,103,102,249,
+234,234,138,134,245,112,119,143,207, 91,200,229,109,254, 59, 50,244,110,167,219, 51, 0, 26,156,186,211,248, 6,162,151, 32, 49,
+160,208,211,166, 43,144,120,226, 68, 95, 60,235,103,185, 82, 85,114, 61,101,236,120,246,193,196, 6,205,100, 48, 75, 97,245,208,
+179, 3, 48, 6, 70, 7,165,251, 5, 81,250,134,112,166,244,106, 42,124, 13,248,178,209, 29, 53, 78,200, 16,125,115,146,200, 54,
+141, 9,206, 24,216, 80,218, 69,159,213,140, 70,108,189,184,149,201, 54, 26,243, 98, 98,156,230, 14,156,151, 88, 74,200,181,177,
+227, 16,185, 56,193,128, 58,190, 24,181, 41,195,244,148, 79,195,130,209,177,171, 46,132, 56, 42,242,238,209,190,188,173,223,243,
+232,172, 45, 39, 26, 28,161, 11, 3,178, 27,112,100, 7,124,215, 28,199,112, 80, 86, 64, 57, 16, 45, 8,224, 27, 80, 90, 70, 80,
+133,117,165,164,178, 7, 13,244, 13,210,147,146,107, 94,141,100,165, 84,102,214,179, 90, 91,165, 2,122, 14,200,182, 34, 71, 69,
+141,190,121, 70,207,134, 30,121,210, 10, 99, 60, 46, 90,247,164, 89,170, 75,189, 90,210,179,184,228, 8, 90, 83,108,250, 2,153,
+ 95, 1,207, 21, 6,212,118,184,174, 94,121, 43,136, 6,229,121, 23,200,171, 49, 15,220,122,121,242,229,241, 5, 75,235,214,174,
+ 17,174,103,128,128, 67, 82,164,167, 69,149,146, 35,104, 26,172,103,212, 56,131,211, 3,109, 16,244,212,151,137,177, 5,162,148,
+ 10,103,130,192, 28, 25, 48,132, 99,124,238,133,137,233, 32,126,143,200,157, 29,179, 87,237, 51,208, 8,216, 26,241, 24, 76,169,
+ 51, 24,118, 13, 85,239, 39,175,249,225, 81,214, 63, 57, 59,151, 55,110, 31,201, 0,218, 1,186,255,226,207, 56, 98,183, 38,217,
+ 72, 68,230, 68,220, 61,112,131, 64,196,102,179, 86,102, 69, 21,103, 29,107,178, 0, 62,232,242, 74, 54,106,111,202,119,191,241,
+129,180, 47,143,245,108,218,169, 69, 91, 15, 54,218,168,125, 23,255, 63, 87,239,213, 36, 73,122,101,137, 93,119, 15,173,101,234,
+202,146,173,209,221, 64, 15,196, 8,195,112,150, 67,109, 70,154,113,249, 66,163,241,145, 63,132,191,131, 47,251, 68,227, 3,141,
+182,251,192,217,181,221,177,177,217,153, 33, 22,104,108,163, 27, 64,235,210, 85,169, 51, 50, 67,107, 15,119,231, 61,231,126, 30,
+213,100,183, 21,186, 80,149,153, 17,225,254,249,149, 71,208,170,181,158,170, 53,138, 77, 73,192,208,217, 68, 30,155, 19,138, 47,
+233,191, 77,152,118,121,233,100,201,252, 3,208, 60, 1, 98,140,103,174, 55, 88,202,183,207, 94,232,231,158,242,236,226,254,226,
+227,131, 62,188,100,140,205, 81,227, 31, 19,135, 86,173, 32,167,151,125,233,214,180,155,215,235,133,198, 13,107, 61, 48,148,204,
+228,200, 20,253, 48,177,232,104,242,197, 53,198,115,212,210,247, 0,245, 65,172,106,224,115, 62,157, 77,153, 88,177,126,192, 84,
+ 8,137,123,183, 6,122,113, 86, 27, 4,128, 2, 51,114,126, 59, 99,124,199,196, 16,249, 3,128, 63, 0, 68,241,153,254,236, 79,
+126, 70,208,108,255,234,185, 92, 92,158,177, 64,175, 76,243, 4,127,130, 46, 84,112, 50,209,248, 7,215, 17,120, 25,136,124,149,
+ 43, 38,233,139, 2,148,128,206, 66,145, 0, 81,115,253,203,240,181, 18, 90, 7,103,229,245,100,198,166,104, 6,171,113, 8,196,
+ 56, 21,191, 2,177, 41, 75, 22,119, 80, 16, 68, 49, 8, 84, 62,112, 6,191,253,234, 68,223, 87,133,247,228,254,113,135,212,107,
+172, 20,185,246,115, 34, 89,226, 24, 82,180, 44, 7,166, 8, 13,185,175,149, 3,232, 35, 56, 79, 72, 90, 24,169, 77, 53,209,125,
+241,106, 40,231,253,185,140, 38, 33, 23,250, 0, 78, 28,119,115,206, 44,194,186, 19, 4,168,119,247, 42, 20,122,105,215,114, 20,
+ 8,129, 83, 19, 80,220,151,227, 72,126,251,226,119, 50,199,174, 9, 64, 1,189, 40,191,184,171, 29, 64, 61, 75, 32, 66, 41,139,
+ 1,164, 38,116, 13,122,175, 49,234, 7,201,222,115, 59, 3, 86,140,190,201, 64,122,198,243, 68,252,251,221,119, 61, 6,174,170,
+190, 6, 70,100, 56, 92,213,122,145,213, 11, 28,204,128, 60,159,205, 67, 38,194, 12,187, 33,171,136,241,128, 3,241, 9, 19,134,
+128,226, 49,107,154,152, 96, 2,113,180, 83,226, 52, 0, 99, 25,252,249,127,241,241,190, 60, 58,172, 74,253,110, 67,230,231, 11,
+ 6,173, 61,253,220,232,230, 39, 80,181,219,100, 56, 82,124,252,125,143, 5, 4,236,254, 16, 32, 80,168,124,250, 93, 95,246,203,
+190, 60,172,197,242,245, 68,175, 35,140, 52, 60,104, 13,179,151,102,135,249, 15, 95, 99, 55,155,147,102,167,107, 52,179,196,230,
+ 30,195,185, 37,154,107, 77,228, 64,194, 67, 68,231, 15, 47, 71,242,243,183,219, 68,149, 62, 61, 31,200,205,104,197, 7,201, 40,
+ 36, 54, 18,198,193,192, 94,177, 88,244,229,197,233,133,252,237,103,177,116,255,234, 29, 86,244,248,172,182, 23, 52, 67, 1,220,
+187,119, 15,106,242,173, 22, 70,255,250,179,215, 68,175,159, 93, 79,228, 90,239, 53,133, 65, 66,227,113, 63,123, 57,144,123,251,
+117, 78, 80,136,116,133,122, 81,226,248,182,232, 28, 49,130, 69,199,183, 70,213,190,178, 81, 53,186, 55,237, 66,239, 29,118,228,
+139,231, 87,242,221,139,177, 92,255, 81, 59,160, 53, 20,196,244, 97,208,207,241, 95,253,201,161,252,139,191,249, 66, 94,106, 85,
+252,218,143,229, 91,125, 88, 46, 17,140,189,137,252, 15,191,252,185,188,232,141,229,201, 23,207, 9, 2, 2,178, 22,163, 69, 80,
+135, 80, 13, 35,169,210,188,128, 42,110, 75, 78, 48,178, 14, 77, 14, 64, 18, 80,186,168,150,193,221,157, 57,144, 26, 10, 25, 56,
+182, 1, 60, 55,154, 79,249,231, 0,181,128,246,210,215, 46,103,130,253, 94, 46,111, 10,106, 73,226,240, 32, 49,139, 75,116, 30,
+ 41,165, 71, 2,167,198, 22, 27, 66,221,116,155, 45,177,195,160, 5, 95,111,234, 92,198,239, 46,114, 71,154,165,182, 63,222, 15,
+ 64, 68, 61, 26,171,152, 13, 35, 2, 50, 94,215,119, 32, 58,186,163,145, 85,226,241,179,155,173,170, 89,213,226, 61, 65, 28,134,
+147, 48, 36,243,216,208,239,129, 3,166,110,117,104, 19,163,180,177, 72,216, 56, 79,239,173,119,186,188,153,178,197,214,141, 49,
+249, 59, 81,158,212,246, 24, 35, 64,114,210,245,223, 75,237,148, 6,223,188,148,187,157,186,180, 33, 89,124,212, 97, 97, 12,196,
+ 46,186,252, 74, 33,111,162, 56, 40,134, 40, 0, 98, 35, 87, 0,181, 56,190,246,192, 89, 47, 18, 67, 65,103, 61,109, 18,110,199,
+ 5, 57,232,214,168, 43,112, 59, 89,176,144,190,152, 76,100,186,201,202, 39,247, 75,242,239,126,245, 21,189, 6,200,127,215, 78,
+ 20,235,155, 76,182,196,247, 3, 4,252,235,179, 91,217, 89,205,244, 28,232,251,152,106, 87, 21,228, 12,148, 90,234,202,122, 54,
+226, 74, 10, 81,197,231, 52, 37,203, 66,201,180,179, 99,142, 59,163,216,246,240, 16, 53, 41,208,108,103,195, 2,228, 23, 31,191,
+ 79, 89,224, 63,126,251,132, 66, 51,217,114,149, 13, 1, 38,112, 88, 93,122, 27,224, 5, 86, 18,228,108,213, 17, 57,190, 57,158,
+ 42, 76,234, 88,224, 69,214,253, 2,177, 79,237, 2, 95, 19, 85, 9,227,226, 25,239, 75,146,174, 38,157, 35, 32,176, 30, 17,193,
+129,230, 44, 24,184, 34, 36,118, 35,122,174,114,244,218,128,218,105, 26,247, 48,158, 41, 82,204, 41,165,105,178, 17,232, 79, 24,
+ 39,113,142, 96, 86,180,135, 53, 22,174,173, 67, 79,246,110,122,114,113, 85,147,119, 31, 62,144, 47,190,121, 44,127,248,254,169,
+209,210, 18,227,175, 99,108,139,107,132,110, 27,102, 50,152, 54, 80,136, 72,255,110,226,196,114, 88, 68,146,170,236,201, 11, 90,
+199, 10, 77,150,144, 47,208, 69,131,143, 13, 12, 65, 77, 99,113,190,112,160,207,230,130,255, 31,231,131,162, 88,230, 89,163, 63,
+123,205,209, 61, 68,189,190, 63, 25,201, 91,119,154,218,237, 78,217,209, 79, 17,243,102,104, 8,140, 17, 0, 32, 38, 10,206,154,
+222,139,110,171, 35,123,157, 22, 61, 19,128,228,199,245,187, 83,109,202, 79,234,101,218,250,246, 71, 3,138,167,129,190,140,152,
+142, 98, 5,178,180,144,153,253, 99,111, 68, 36,250, 39,251, 53, 57,233,205,153,112, 89,192,233, 57,127,117,118,198,189,248, 87,
+223,125, 47, 63,122,231,109,121,248,246,143,101,119,119, 71,134, 55,167,196,133,164,114,220,120, 94, 49,126, 63,191,185,145,127,
+252,245,167,178,187,179, 67,229,190, 86,167,109,197,169,158,183,211,203,107, 83, 76,132, 16, 14,204,156,242, 89,190, 31, 24,238,
+ 16,187,208, 42,179, 96,110, 84, 77, 40,231,249, 69,159,113, 1,251,113,172,136, 80,200,128,219,142, 2, 11, 46,114, 99,231, 36,
+249,217, 55,167,178,175, 77,113, 17, 46,140,173, 42,129,163,243,101, 66, 99, 39, 78,117, 98,195,179, 49, 30,120,144, 20,215,242,
+ 42,188,158,240,128,255,103,127,114,204,113, 51, 14,211,237,116, 40,255,244, 77,207,237,202, 81,233,104, 55,180,136,220,232,207,
+120,217,232,182,234,250,226,159,188,127, 40,111,237, 98, 60,145,144,143, 11,211, 19, 72,185,147,148, 5,144,214, 88,187,183,165,
+153, 55, 52,180,179,221,228,205,213,169, 55, 51, 14, 31, 70,237, 11,253,190,211,235, 41,191, 22,102,244, 62,231,124, 24,123,219,
+232,221,140, 15,124,114, 64, 57, 26,213, 67,178,166,246,184, 29, 22,116, 60,235,149,185,150, 53,181,234,155, 47, 34,163, 28, 65,
+230, 53, 48,112,199, 91,135, 5, 61,112,121, 77,148, 51,169,215, 2,249,159,255,242, 72,222,189, 83, 23, 95, 63,227,191,248,251,
+231, 60, 80,255,244,221,149, 30,146, 68,238,239, 62,210,206,213, 42,193, 82, 49, 35,245,186, 22, 43,141, 28, 1, 31,154, 87,216,
+ 29, 93,205, 76, 45, 11, 99,138,254, 96,108, 72,249,105, 44, 11,253, 57,239, 62, 48,240, 6,222,156,183,245,173,198,195,106, 94,
+184, 0,238,160, 74,196,248, 9,163,148, 31, 29, 55,164, 92,181,113,251,165, 38,193, 41,198,146, 40, 34, 22,154,228,181,131,126,
+231,168,170, 1, 70,175,213, 34, 54, 75,197,200,156,224, 80,237,146, 22, 4, 46,179,222,220,177,190,185,127,255,197, 90,223,127,
+ 77,126,250,176, 77, 78, 61,246,141,248, 59, 32,133, 9, 20,107,151,228,175, 63, 62,148,127,249,171,231,114,174, 93, 59,130, 16,
+176, 19, 80,193,171,103, 53,121,232, 97,185, 28,204,244,243, 22, 13, 4,132, 7, 26, 92,108,116, 46,177,209, 22,163, 92, 81,131,
+205,148, 10, 96,112,160,194,200,103,137, 42,125,180,150,153, 38,203, 72,147,237, 77,127, 42, 95,193, 53,107, 1,173,228,186, 44,
+162,150, 12,245, 50, 20, 65,115, 90, 1,248, 53,150,175,159,157,114,250,242,223,253,233,251,242,239,190, 62,151,193, 12,215, 91,
+ 59, 34, 20,100, 90,189, 82, 17, 45, 8, 28,239, 92,147,237,120,204, 96, 70,116,183,103, 84,163,149, 11,146,221,102,131, 93, 19,
+156,211,144,180,177,211,132,212, 34,254,238,242,214,198,238, 20,109,209,159,125,126,221,163, 18,217,190, 62,148,248, 58, 76,115,
+104,222,177, 49, 9,100,220, 43, 36,169, 34, 45, 77,115,166,165,158,201,186,157,183,105,163,163,176,234, 15,110,168,241,142, 14,
+207,119,220,238, 52, 81, 3,213,140,103, 9, 0, 61,116, 82, 68, 7,175, 76, 30, 21, 63, 23, 69, 2, 62,215,154,123, 57,140,146,
+ 50, 28, 29,199,206, 23, 21, 73,222, 20,237,178,220, 3,155,148,234,146,255, 31,247, 53, 45,214,236, 25,205,152,162, 23,231,188,
+214,245,166, 46,112, 17,119, 98,190,243, 79,176,177, 56,157,181, 2,127, 43, 52,147,131, 21,169,231,219,181, 48, 51,113,219,135,
+107, 17,252,205,201,133,190,254,156, 1, 28,200,105, 76, 67,146,129,237,135,113,141, 64,245,195,164, 14, 40, 98,184,106, 1, 41,
+125,127,183,161, 49, 36,100,146,106,176,171, 79,184, 79,197,218,226, 68,207,188,231,100,103, 33, 48,132,130,218,139, 81,252, 52,
+245,108,116,245,237,107,208,131,107,218,218,232,138, 48, 51,129, 29,101, 85,131,123, 94,139, 14,116,150,195,201,173,158,245,129,
+222, 79,179,113,222,211,128,141,130,254,234,226,140,159, 3,147, 59, 88,183,226,217,155,174, 19, 2,190,176,179,229,245,242,204,
+118, 20,147, 40, 88,242,130,231,254,233,215, 39,212,155,231,116, 15,194,109,122, 31, 82,204, 51,118,247,113,160, 93,164,198,166,
+ 98,166, 36,121, 77,151, 69, 26,108,104,108,139,173, 19,197,168, 55,140, 86, 84, 23, 51,156,133, 71, 67, 28,160,214,227,196,115,
+ 76, 30,103, 21,237,138, 43,196, 80,116,123, 70,167,139,183, 99,121,252,125,214, 1, 38, 67,189,119, 3, 45,232, 58,205,186, 21,
+123, 89, 72,122,175,184, 75,221,128,253,146, 0, 3,164, 77,194,218,138, 5,224,141,250,253, 27,169,148,107,182, 18, 19, 83, 72,
+251,246,241,119,122,230, 74,114,247,232,142,140, 70,125,121,113,217, 23, 51,236, 51, 17, 42, 20,170, 72,138,159, 63,153,110, 21,
+ 8,113,126,144,176,141, 58,233,140,103,156, 32, 83,165,100,141,140, 33,230, 77, 71, 1, 56,150,217, 44,145, 78,167,164, 29, 39,
+192,176,230,109,128,216, 12,236, 7,154, 40, 36,105, 76, 82, 90, 21,195,252, 20, 53, 62, 63, 58,106,203,127,124,124, 67,171, 86,
+116,207,163, 19,195, 25,225,204,119, 91, 13, 45, 2,119, 9, 70, 67, 1,116,173, 5, 76,232,112, 37,160,158, 93, 79,245,188,111,
+ 38, 90, 56,134,252,188, 57,189,215,173, 90, 89,127, 86,141, 83, 1, 2,211,244,235, 65,133, 59,232,248, 68,185,159, 92,245, 57,
+153,169,151,235,242,206,219,239,242, 94,188, 58, 59,101,161,135,233,201,207, 62,252, 64,218,205,150, 60,125,246, 13,189,222,129,
+131, 65,177, 10,208,240, 97,127, 68,253,250,111,191,255,206, 80,232, 26,119, 1, 40, 61,190,123,172,141,102, 67, 94,190,126,205,
+100, 12, 61,133, 54, 40,157, 48,252, 2,202, 29, 98,102,158, 80,103,126,170,207,197,209, 78,149,212, 63, 0,160, 49,217, 5,230,
+ 2, 88,156,150, 22, 69,226, 76,138, 16, 7, 97, 31,124,113, 51, 37,235,232,193,126,139,226,111,112,196, 91,204,103, 90,120,102,
+173,168,194, 42,196, 51, 81, 44,195, 74,192,165, 77, 3, 65, 69, 95, 0,224, 70, 4, 35, 84,172, 55, 80, 43, 42,162,195,138,152,
+249, 61, 7, 6, 10,220, 94, 46,165,213,208, 91, 92, 43,154,201,198,246,235, 1,170, 81, 63,182,132,234, 99,151,226, 73,175,167,
+ 65,109,175, 68,254,241, 40, 4, 90, 47, 67, 17,126, 40,195, 33,192, 92,246, 23,114,126, 59,215, 10,204,198, 34,129, 6,198,102,
+ 57, 67,244, 32, 31, 8,140, 50,192,127,207,250,238, 97, 52,139, 68,140, 53, 81,169,160,131, 39, 47, 94, 31,178, 90,187,192, 78,
+157,149,101,156,161, 94, 46,196, 14, 32,166,130,106,235,237,227, 29, 41, 53, 1, 90,211, 74,105,146,145,254, 43, 13,154,152,137,
+149,154,228,181, 62, 60,212,196,184,201,203,211,222, 70, 30, 21,128, 82,213,235, 82,210,234,120, 97,149, 87, 54, 3,158,102, 72,
+100,239,231, 79,199,220,183, 97,207,139, 93,124,163,213,149,119, 30,234,207, 9,245, 70,108, 42, 76,150, 24,215,113, 71, 3, 41,
+ 70,231, 5,143,221, 46,254,201,231, 87,230, 54,166,223,223, 41,106,146,155, 66,246, 79, 3,134,126,206,146, 6,145,253,110, 81,
+171,186, 44,247, 60, 39,231,125,118,163, 4, 13,173,220,238, 11, 70, 49,137, 57, 52,163, 43,186,186,233,219, 24, 87, 59,216,191,
+249,244,177, 52, 75,239,208,252, 4, 40,109,236,195, 24,172, 17,228,245, 30, 63,218, 43,203, 79, 30,181,245,231, 14,200,129,135,
+222, 60,186,253,191,120,171, 33,255,234,119,151,178,234,106,101,184,158,153,220, 41, 14, 78, 22,251,242, 13,119,183,120,221,225,
+108, 66,227, 20, 36,205,133,118, 19,162, 65, 63,212,255, 62,121,126, 42,159,157,143,101,103,167,195,241,108,167,211,144, 42,164,
+ 54,245,215,245,237,141,252,203,191,237,113,221, 2,224,209,119,175,123, 44, 56, 48,142,123,118, 51,147,167,103, 87, 68,204,226,
+112,225,115, 64,233,175, 86,169,232,185,153, 17, 96, 98,168,115, 59,119, 8, 36, 20,120,161,142, 66,142, 73, 13,157, 25,166, 12,
+245, 74,217,130, 77, 46,195, 4, 60,209, 14,157,158, 5, 27, 19, 35,193,232, 23, 29, 39,228, 67,239, 28,236,234,121,183,206, 0,
+ 99,109, 4, 85, 60, 3,232,116,145,232,118, 26, 45, 58,163, 1, 60, 26,242,217, 24, 89,114,213,247, 7, 21,182,169, 51,104,161,
+ 40, 71,198,144,229, 8,122,232,176, 74,174, 83,156,187,169, 2,246,243, 4, 65, 97, 85, 16,174,153, 84, 54, 4,244,133,164, 91,
+ 0, 64,182,113,106,119,164, 89, 65,145, 75,191, 7,252,228,180, 91, 74,210,150, 91, 76, 88, 35,149,144,245,157,173, 46,170,118,
+ 79, 34,199,140,240,217,241,114, 53, 16,111,182,211, 8, 78, 9, 96, 21, 43,246,123,179, 95,141,233,146, 24,120,102,191, 28, 59,
+ 43, 90,216,110, 66, 65, 50, 7,205,106,116,111,113,192,107,141,228,141, 53, 28, 10,171,150,118, 75,158,118, 91,160,188,242,121,
+209,164,254, 88,207, 64,134, 43,131, 12, 17,201, 72,112, 8,108,228, 93,231, 44,208,209, 86, 51, 48,103,199,157, 70, 65,218,218,
+225,111, 60, 43, 78,176,238,128, 49, 26, 84,195,154,218,213,161,219,235,105,178,194,217,187, 29, 12,244, 61, 20, 40,237, 28,232,
+ 53,232,118, 15, 89, 32,227,189, 53,155, 53,218,243, 98, 55,139,251,128, 51,141,243, 50,213, 2,188, 81, 43, 56, 26,174, 25,212,
+116,219, 53, 27,121,247,198,220,109,162,248,255,249,143,223,211,115, 58,144,215, 26,184,151,115,104,235, 23,152,232, 67,237,216,
+193, 60, 91, 96, 58,229,134, 35,228, 12, 39,166,230,133, 98,121, 65,149, 58,161,122,222,100, 54,229, 52, 41,138, 86, 68,228, 91,
+ 41,101,197, 39,174, 53,176, 21, 72,230,141,106,198, 64,184, 94,226,236,128,140,218,150,202, 64, 3,175, 4,189,245,194,222, 14,
+159,107,222,147,108,129,190,246,137,159, 99,151,137,253,121, 18,191, 81, 11, 68,167, 72, 96,112,190, 42,101, 95,255,174,145,231,
+ 68,102, 54, 29,210, 31,225,103, 31, 60,210,184,252,146,104,241, 92, 38,112,124,123,179, 9,198,115,118,118, 61, 52,133,188, 88,
+ 28, 11,192,240, 34,136,127,169, 18, 6,238, 33, 38, 85, 88,107,224,122,150, 11,166,107, 14,224, 87, 83,207, 67,226,213,157, 17,
+140,158,175,205,148,244,182,181,243,166,192,179,253,244,245,156, 73, 30,137,109,163, 13, 29, 40, 94,136, 17,143,142,186,242,204,
+179,209, 59, 38, 92, 48,229,129, 7, 58,102, 78,227,201,156,178,207, 80,129,171,209,119, 65,139,170, 25,124,222, 65,107, 45,114,
+ 68,142, 22,240,189,187, 29,198,165,223,124,121,174,159,123,109,244, 65, 61, 83,175,175, 38,244,100,199,185,228, 42,118, 13,243,
+ 21, 83,160,163,212,180, 94,199,239,159, 62,147,149,254,247,163, 15, 62,144,163,227, 31,201,248,246, 53, 1,205,192, 97,161, 70,
+248,228,253,135,242,209,163, 99,249,254,229,133,124,249,252, 66,190,254,102, 38,247,142,239, 72,101,133, 17,121, 94,238,104,209,
+ 4,249,222,172,103, 34, 80, 24,105, 60, 59, 31,113, 21, 66, 55, 0,205,101,192,137,188,212,184,139,220,136,185, 12,166, 59,184,
+219,104, 60,193, 71, 7,214, 7,212,114,104,218,211,131, 66,243,200,112,106,180,219,138,230,164, 30,132, 67,168,161, 97, 76, 20,
+ 76, 90, 54,137,221, 35, 60,191,112,245,204, 12, 7,154, 80,103, 16,213, 8,165, 83,210,138, 68, 15,226, 74, 59, 93,160, 72, 97,
+ 86, 18,248,182,175, 38, 79, 53,178,189, 34,190, 25, 93, 13,172,242, 80,109, 64,174, 53,142, 13,168,227, 17,176, 99,154,214, 0,
+152, 65, 42, 16,251,246,193,114, 35,159,191,234,115,239,134, 68, 14,103, 28, 28,226,208,129, 46,176, 99, 56,208,100,178,210, 96,
+ 55, 89,197, 20,132,201,186, 81, 60, 14, 4, 92,153, 16,244, 54, 14, 28,134, 74,220,164, 50,225,165,174, 29, 4,198,215,122, 64,
+178, 5,159,194, 36, 8,226, 59, 45, 19,246,127,221, 91,112,228,255, 78, 75, 11,138,141,199,160,119,163, 95,223, 95,154,232, 69,
+185, 90,229,126,100,103,167,197, 78,231,243,203,141,124,121, 53, 52,228,103,161, 46,119,247,171,252,115,188, 95,112,196, 1,122,
+ 64, 48, 42,104,178, 44, 96, 15, 21, 24, 98, 29,202, 54, 65,208,208,164,176,166,205, 97, 28,121, 12,168,226,212,159,208, 93,139,
+ 88,101, 60,210,174,122,181,132,156, 98, 76,106,198,113, 3,135,219,227, 14, 30, 15, 51, 64, 67, 24, 83,238,106,240,185, 93, 9,
+121,252,131,197,210,164,118,185,163, 75,131,176, 79,192, 24,130, 42, 3,188,254, 25,174,237, 23,207, 7,242,223,252,236, 30, 53,
+180,201,133, 69,229, 31, 26,122,127,174,215,230,163,227,186,188,210, 34,228, 83,237,144, 71,227,153, 12,170, 80, 39,210,206,170,
+150,151,191,253,244,185, 70,212, 6,173, 24,241,158, 71,250, 64, 97,108, 12, 96, 13, 40,129, 8,130, 89,253,236,111,239,215, 9,
+252, 58,106, 67,243,216,163, 2, 31,124,158,111, 7, 99,238, 86,241,192,180,170,101, 9,245,140, 60,191,188,165,226, 27, 2, 49,
+254,174,209,110, 75,199,183,132, 50,212,195, 12, 90,152, 80,192, 39,100, 0, 17, 26, 57,152,169, 13, 17,213, 64, 9,103,205,135,
+ 59,181, 85,196,249, 96,135,138,192,173, 15, 35,181,185, 93,103,111,231, 38,228,232,146, 70, 14,238, 28, 45, 86, 3,125, 96,170,
+250, 16, 3, 0, 83, 51,227, 18,152, 4,150, 75,230, 81,158,133,156,111, 44,117, 61, 19,121, 45,226, 90, 69, 61, 43, 99,125, 79,
+ 25,237, 68, 50, 49,133,137,176, 51,183, 0,101, 74,118,158,115, 41,180,241,124,194,241, 40,222,111,184, 49,170, 11,238, 17, 58,
+ 62, 67,184,198, 68,174,195, 42,116, 67, 93,120, 83,164,219, 56,131,149,200, 9,203,136,111,186, 3, 75, 38,128,141,227, 62,219,
+115, 23, 59,177, 26, 67, 82, 39, 78, 17, 44,113,137,122,179,221,241,155,190,188,141,115,227, 55,100,118,227,221,211,148,194,240,
+ 2,145, 83, 29, 76,205,102,136,246,119, 58,228,107, 26, 86,216,103,136, 52, 72, 67, 2, 51,220,216,206, 31,154,223, 72,214, 88,
+ 51,224,153,183,228,132, 61,179,117,158,220,221,174,157, 79, 57,141, 48,214,148,107,193,255,194, 84, 69, 92, 7, 75,208,211,213,
+ 64,187,172, 18, 17,235, 70,157,213, 0,166, 9,118,185,198, 40, 58,148, 91, 45,148, 54, 0, 81,109, 70, 90, 48, 21,232,121,176,
+223,106,106,225,216, 52,229, 64,253,158, 82,107,159, 9,170, 63,156, 24,159, 62,222,240,249,175,149, 11, 90,236,149,120, 93,175,
+110, 71,140, 57, 93, 45,152,231, 26,103,176,135,206,100,114, 4,170, 61,189, 24,108, 69,125, 54, 4, 72,150,169, 92,183, 94,174,
+104,224,132, 51,149,119, 60,117, 4,121, 0,177,145,124,139,133,138,222,223,146,156, 0,136, 85,171, 16, 79, 48, 30,223,106,242,
+ 43, 82,141, 44, 99,114,242, 38, 19,235,128,165, 16,216,217,142,182,113,143, 18,195,223,184, 25,189,108, 60, 11,210, 96,158,224,
+ 92,246,181,217,162, 24, 17, 60, 2,244, 57, 29,220,246,120,118, 0, 66,148, 56,227, 44,172, 99,122,141, 31, 64,182,186, 80,212,
+247, 29, 82, 19, 95, 60, 3, 84, 94, 13,166,114,160,205,199,225,238, 88, 46,181, 89,128, 5,105,106,108, 52,114,206,141, 48, 9,
+122,239,254,190, 21,216, 98,212, 66,113,130,196, 56, 67, 40,158,193,212, 65,195,210,128,161,207, 34,116,235,191, 60,207, 26,176,
+ 47, 80,122,140, 55,101,130,209,206, 46,158,147, 5,133,130, 23, 0, 56,120,219,167,152,148,213,186, 77,192, 49, 48, 3, 0,188,
+ 65,115, 0,221, 39,100,132,239, 29, 30, 48,126,248,100,122,108,216,201, 34,119,176, 59,245,109, 77,133,189,125, 37,111,254,239,
+188,174,160, 46,222, 34, 22,142,101,191,153,213,231, 88, 99,252,116,195,243,142,175, 95,109,204,173,147,140, 3,104, 76, 84, 43,
+ 91, 13,132,131,238, 14,239,251, 96, 52,145,127,252,245,111,100,111,119, 79,126,244,206, 35,241,214,125,189,214, 23,140, 57,207,
+ 78,174, 40, 55,253,222,195, 59,218, 16,236,200,111,191,122, 46,215,215, 23,178,105,116,168, 29,176,211,237,104,145,185,203,132,
+ 61, 25,221,210,133, 16,231,178,204,174,220, 60, 32, 48, 98,199, 51,133,198,160,228,116, 52,104,136, 5,141,254, 28, 48, 14,248,
+218, 57,115, 39, 44,207,241, 89,161, 73, 15,113,168, 76, 57,207,117, 12,245, 71, 72, 51, 44,112,154,146,174,116,108, 28,175,249,
+225,233,229, 68,190, 57, 27,211,154, 15, 55,249,229,197, 72, 31, 24,189, 73, 37,216,139,195,202,109, 35,203, 36,118,227, 35, 33,
+133,198, 20, 3,224,248,131, 10, 80,147,250, 44,207, 27, 21,100,236,111, 51, 94,226,172, 83,141, 78,182,113,114,171,183,227,165,
+124,253,106,100,157,136,190,129,221, 86,142,187,110,211, 19,143,137, 18, 61,189, 93,179, 48,192,131, 23, 50,240,196,206, 79,214,
+179,189,152,254, 42, 85,138, 6, 96,113,149, 10, 42,229,130, 38,197, 70,189,196,139, 15,116, 40,104, 53,216, 87,132,113, 94, 31,
+130,169,244, 38,161, 22, 6,115,189,144, 21,153,132, 1, 1,113,230,214,101, 99, 81,218, 67,130,190,148, 88, 33,195,196, 10, 64,
+ 81,146, 56, 9,196,196, 76, 79,180, 3, 93, 44, 61, 6, 98,112, 46, 65,217,240,253, 44, 17,206,136,144, 64, 69, 35, 57,225, 32,
+154,151,180, 29, 64,160,195,169, 48,230,130,178, 79,217, 70,159,129,170,172,135,177, 94,172,104,208, 92, 19,176, 2,142,237,114,
+ 97,116, 39,220, 44, 76, 37, 0,254,186,130, 42,146, 30,252,208,139,221,146, 84,171,101,152,141, 44, 93, 21,159, 10, 97,232,239,
+126,245,245,165,252,226,157, 61,217,173, 27, 72, 10, 63, 75, 95,138,187,161,207, 94,141, 73, 13,105, 54, 27,242,163,183, 3,121,
+ 53, 6,203, 97, 77, 26, 6,174, 75,171,148,149, 75,200,204,198, 33,213, 2,121,141,214, 17, 87, 49, 48,173, 48,175,232, 60, 57,
+230,103,250,158, 14, 15,247,244, 26,207,165, 55,223,176, 2, 71,149, 73,110,189, 6,234,139,193,140,159,135, 73, 73,175,111,129,
+ 92,203, 44, 19, 48,222,103,206, 51,231,191, 36,113, 70, 53,156, 40,164, 32, 47, 91,247,224,207, 33, 11,107, 9, 58,224,244, 32,
+237, 78,241,115,242, 20,237, 48,135, 43,142, 50,201,215, 54, 64, 18,186, 77,252, 44,228, 55, 8,174,224,225,169,228, 49,166,195,
+ 56, 25, 26,229, 69, 38, 91,236, 90,145,164,241,131, 80,180, 60, 61,159,240,115, 67, 90,178,169, 29,251,235,171, 43,121,113,213,
+ 39, 69, 12, 15, 63,198,249,124, 15,190,191, 85,132,131, 33, 67,183, 89, 32,104,114,186, 12,137,154,230, 32, 72, 59,154, 90, 33,
+239,206,154,227,122, 71, 80, 58,203, 82, 85,144,128, 29,172, 6, 28,215, 27,211, 51,236,135,177,247,166,253, 41,246,224, 0, 85,
+249, 57,183,155,181,118,125, 19,185, 22,205, 77, 55, 48, 77, 75, 77, 96,248,153, 37,237, 0,253,109, 39,104,226, 66,121,155,180,
+ 37,206,100, 36, 99, 20, 43, 90,104,198,118,142,178, 14,105, 63,115,158, 9,232,206,168, 93,237,144,225, 89, 90, 63, 6,250,247,
+161,185,146,209,225, 47,118,180,183,128,252,125,236,204, 81,240,162,211,174,105,119, 61, 89,198, 68,172,119,170, 89, 22,250,171,
+181, 1,134,122,218, 88, 96,194,134,115,115, 50, 30,233,217, 95, 81,196,233, 14,152, 14,250, 90,141,186, 22,128,205,166,153,109,
+248,121,201,151, 26,188,238, 53,120, 89, 79,134,116,208,202,211,171, 32, 35,157,238,129, 94,251,103,212,189,240,197,217,153,250,
+214,136,160,200,153,205, 22,188, 22,232,120,112,249, 22,203, 5, 39,125,192,187, 0,215,179,215,110,202,159,127,242,177, 60, 61,
+ 61,145,193, 0,171,149, 57,185,221,160,173,194, 82, 55, 6, 62,135,241, 48,145, 66, 98,150,193, 40, 96,192,120,128,176, 22, 86,
+ 43, 72,218, 20,145,161, 25, 75,198,165,195,132,147, 27,188,199,140, 99, 54, 96,154,149, 68,111,192,113, 28,125,195, 54, 46, 50,
+143, 9, 26,241,172,215,116,223,194,125,194,153,195, 42,167,162, 69, 68,174,157,240,167,198, 78,223, 31, 13, 24,198,196,123,205,
+138, 12,134, 3,217,219,233,202,112,134,120,182,226,115, 93,209,231,122,208,191,145, 7,119,238, 73,189,181,144,127,248,226, 49,
+229,178, 83,215, 56,243,121, 79,216,245, 39,110, 45, 67, 49,171,192,166, 27,107, 74,162,218,122, 37, 93,235,160, 27,165, 83, 38,
+165,178,197,177,131, 52,102,234,107, 29, 30, 60,164,255, 66,172,239,191,144, 45,112,197,132,201, 13,139,238,212, 7, 64,155,154,
+121,228,243, 30, 96,194,246,250,122, 34,199,187,109, 45,152,242,244,221, 48,221, 5, 19, 55,194, 61,130,170, 93,198,233,229,195,
+104,103, 49, 7, 53,180, 32,133,101,200, 6, 47, 19,228,153, 59,126,242,118, 71,126,243,213,169, 12,199,115, 54, 69,104, 74,233,
+107,146, 15,248, 76,224, 89,169, 84,179,196,194, 64, 64, 11,215, 23,177,252,163,247,222, 37,253, 21,244,211,215, 24,201,175, 23,
+242,246,163,135,210,236,222,149, 81,255,148,207,238,139,243, 27,205, 91,117,190,223, 63,255,248, 29, 45,248, 39, 26, 27, 17,118,
+139,150, 96,177,222,210, 2,175,214,220,211,115, 60,145,156, 44, 12, 32,167,231, 3, 35,124,196,175,154, 95,226,152,126, 78,185,
+233, 12,227, 4,132,139, 80, 20,195,127, 1,107,236, 5,153, 3, 66, 37, 86,100,221,235,254, 88,239, 61,118,238, 17,159, 13, 76,
+ 9, 11,185, 13,175, 37,114,140, 21, 39,218,104,196,122, 30,255,143, 95,189,228,248, 27, 15,227,157,110, 73,254,250,189,150, 86,
+ 49,121,249, 63, 63, 61,147,243,193,146, 55, 49, 22, 75,172,158,243, 85,222, 36, 90,125, 3, 48, 68, 73,196, 13, 1, 39,168, 56,
+205,255, 58, 48,215, 30,183, 11,199, 78, 24,218,217, 64,197,127,124, 79, 43,235,234,140,163, 6,136,208,224, 26, 92,245,151,164,
+ 90,193, 5, 14,187, 3,208, 14, 80, 1,118, 91, 37,118, 46, 39,253, 37,171, 67, 54, 47,250, 63,184,193,136,251, 85,103, 66,143,
+132,128, 81, 61, 30, 80, 40, 95,185, 56,197,155, 15, 97,139, 82,190, 46,187, 90,173, 69, 65, 36,159, 93,233,135, 47, 24,173,196,
+248,199,214,229, 97, 36, 14, 96,135, 56,159,220,180,251, 75, 34,227,205,115,108,185,241,248, 30,128,148,199,251,128,215,110,234,
+ 45, 13,196,102, 33, 99,210,129, 1,247,179, 49, 53,228, 41,255,138, 17,138, 24,168, 15,215,164,144, 53, 16, 96,165, 24, 72,187,
+ 81,208,130,104,194,135,217,139,173,144, 25,206, 87,236, 92, 23,110, 92,101, 29,142, 1,160, 80, 53,211, 92, 36, 49,250, 32, 70,
+196,192,233,172, 28,130,152, 32, 33,207, 18, 30, 84,254,254,237,239, 94,201,255,244,203, 71, 50, 36,176, 46,210, 36, 86,144,145,
+254,254, 98,176, 70,239,197,157,232,193, 94, 91,198, 80,236, 27,106,210,211,110, 96, 55,187,144,238,209, 30,187, 41,140,168,164,
+188, 16,125,155,226,205, 67,106, 20,239,239,102,165, 69, 62,127, 78, 15,244,140, 9, 17,138, 93, 19,237, 16,166,250,158,145,204,
+ 70,240, 84, 46,233,117,175,231, 77, 59,125, 97,227,115,116, 11, 75, 22, 80, 9,171,103,118, 46,220,221,165, 26,247,129, 51, 67,
+ 73,182, 32,176,196,233, 85,151,233,147, 60,227,247,249,142, 98,133, 32,131,132,158,161, 56,204,140,255,197, 88,145,150,154, 64,
+136, 2,136,180, 54,170,218,146,139, 71,145,163,157,142,252,229,199,135,114,255,104, 71, 26, 90, 40, 97,223,138,159,143,241, 33,
+185,220,250,153,207, 46, 7,210,159, 60,151,229,124, 44, 43,232,236, 23,106,242,234,188,199,135,157,227,115,152, 93,128,134,146,
+203,185, 14,201,118,232,213,114, 69,238,119, 43, 20,111,249,234,245, 13,147, 50,126, 54,237, 68, 99,147,148,220,176, 50,143,165,
+169,221, 92,234,254,150,139,115, 28,155, 82,158, 53, 50, 20, 62,118,124,120,255,152,240,120,105,113, 35,102,251, 88, 68,197,237,
+174, 13,174, 43,212, 28,151,161,125, 29, 13, 93, 82,224,159, 3,197,165,191,143, 28, 38, 34,240, 45, 80,111, 76,228,123, 11, 42,
+ 12, 2, 83,137,163,252, 36,239,143,141, 42,215,122, 43,106, 90, 72, 35, 81,167,239, 37,195,142, 39, 34,189,209, 24, 22, 38, 58,
+ 3,170, 38, 10, 0, 4,118,156, 77,120, 34,228,253,128,230, 43,133, 66, 66,153, 87,179,111,181,207,131,243, 12,212, 55, 70,191,
+185,108, 66,197,180,197,194,232,123,247,247, 90,228, 20, 31,116,155, 44,180,166,224, 13,235,153,135, 70, 1,199,141, 72,148,209,
+ 82,187,251,172,148,161, 45,143,169,139, 94,155,163,253,125,249,250,251, 39, 60, 27,129,163,162, 14,198, 99, 7,124,138,185,134,
+233,207, 35,202, 79,227,122, 66,172,169,211,168,106,193,159,161, 30, 0, 10,114, 80, 70,215,235, 91, 82,236, 16,207,252,141,111,
+212, 90,167, 44,185, 70, 33, 5,121, 87,174, 74, 2,222, 43, 12,226, 40,115, 26,218,132, 8,254,236, 30,171, 74, 49, 71, 56,119,
+206,241,252,135, 49, 56,236, 6,146, 52, 77,126,182, 14,250,251,152, 83,181, 32,237,212, 19,187, 79,180,229,213,179, 57,211,103,
+ 9,202,136,144,133, 13, 93, 97,201,162, 88, 19, 80, 20, 22, 72,111,186,190,190,150, 7,199,199, 84,153,195,228, 99, 79,207, 60,
+168,176,183,125,237, 58,181,104,130,183,220, 3, 45,196, 31,191, 58, 99, 49, 13,122, 84,156,130,248, 48,125,157, 25,195,130, 35,
+125,196, 38,207,254, 11,116, 57, 11,107,223,149,138, 0,102,133,198,136,162,128, 10,174, 7,166, 16, 96,101,104, 34,109, 55,218,
+242,240,120, 95,187,219, 10,239, 55,146, 49, 98, 0,174, 15, 38, 80, 60,231,122, 95,105,216, 66, 59, 96,155, 6,239,117,107,114,
+ 51, 9,249,156, 35,222,162, 72,234, 52,202,156,138,141,157, 24, 83, 89,166, 84,236, 92,108,108,250,132,226, 10,197,112, 85,223,
+235,207,126,122, 44, 95,124,115, 66,128, 28, 96,173,154,122,244,218,248,122,111, 87, 26, 67,245,217,213,226, 2, 13, 30,116, 66,
+128,111, 66, 51,208,215,100,142,213, 14,174,231,221,131, 61,121,126,114, 34, 35,189, 86,191,255,234, 43,237,232,235,242,238,189,
+ 67,201, 44,110,100,168, 49, 18,211, 30, 76, 70,155,245,170,220,221,235,112,237,133,248, 62,214,183,246,252,244,134,133, 2,232,
+156,141,214,174, 94,139,153,220,220, 94, 82, 63,101,161,141, 26,168,157, 4,164,235,243,143,127,208,201,195,119, 30, 77, 33,158,
+ 57, 76,128,154,213, 10, 39,125,208, 19,129, 12, 47,166,135,165,156, 41, 61,194,204, 12,107,213, 57, 76,114, 42, 21,107,180,176,
+107,215,103,232, 70,243,220,253,195, 7,146,185, 30,173,229,157,227,154,188,187, 95,149,125, 56,212,104, 64,190, 90, 24,255,173,
+158,207,216,126, 46,178,153, 61,111,174,235, 6,109,173, 30,147,162,134, 93, 7, 69, 41, 60,179,188,203, 17, 48,131, 49,147,167,
+157,247, 76,254,248,122,192, 49, 60,146, 21,192, 93,251,181,156, 60,191,156,200,179,235,185, 86,219, 1,229,100,247, 31, 21, 52,
+248,101,228,112,175,194,132,141,145,206, 87,207, 7,114,187,236,201,145, 6, 74, 8, 91,224, 85, 39,129,237, 9, 49,194,205,108,
+ 50, 78,169, 46, 36, 26,147, 72, 94,103, 84,130, 36,189,187,219,145,134, 94,152, 31,191,119,199, 30, 38, 10, 41,216, 94, 50, 77,
+ 28,180,176,100,135,157, 53,245, 43, 0,177,144, 88,194, 37,215, 17, 87, 51, 39,180,194,234,212,124,164, 51,220,165, 71, 68,190,
+ 99,109,193, 68,228,124,161,233,191,227,219,184, 19,213, 33,104, 21,139,141, 33,199,161,163,143,247,135,110, 22, 7,169, 91,133,
+121, 76,196, 32, 3,205,241,177, 86,173, 19,189,249,122,246,136,180,167,144, 9, 85,181,204, 78, 19, 19,129, 14, 20,116,244,129,
+186,209, 96, 87,202, 23,185,175,245,161,253,236,155, 35,152,239,140,112, 0,182,249,213, 87, 23,242,193,113, 91, 62,121,180, 67,
+190,249, 92, 19,197,171,193,130,236, 0, 60, 71,120,223, 72, 30, 25,238,254,109,172,134, 29,127,134, 58,208, 27,125,240, 43,154,
+208,235, 4, 42,125,113,185,148,145,182,250, 55,250,230,178, 64, 70, 69, 48,227,153,234,223,193, 90,114,197,194, 45,212,130, 34,
+ 91,172,114, 76, 79, 47,100,151,156, 8,218,114,255, 32, 0, 97, 92,154, 26, 33,144,229,192, 66, 49, 33, 56,142,254,209, 98,170,
+ 91,236,250, 92, 87,138,213, 14,120,217,126, 58,234,142, 98,103,128, 18,110,247,195,158,216, 62,142,220,113, 6,124,195, 99, 16,
+ 77, 15, 3, 26, 77,156,237,102,141,123, 63,140,186,204,223,192, 88, 1,161,243,187, 6,162,190, 80, 44,218, 30, 31, 10,114, 26,
+200,254,240,221, 99,142,239,107,213,170, 41,142,225,103,130, 58, 9,165, 17,207,204, 35,224, 44,133,194, 1, 43,134,131,110, 91,
+ 46,135,115,242,224,205,182,119,195,192, 12,225, 26, 32,101,155,181,188,188,127,255, 62,131,219,204, 89,173,206,180,242,158,173,
+ 22,188,159,192, 28,144,230,197, 29,123,214, 25, 92, 88,183,132,192,201,207,149, 49, 22, 6, 10, 59,147, 72, 53,128, 93,106,246,
+ 16, 37,198,144,224,245, 21, 27,179, 27,187, 36,107, 29,186, 3,112,226,252,155,181,165, 37, 30, 74,195, 98,124, 31, 25, 62, 6,
+223,139, 66,138, 62, 11,235,152,123, 74,195,176,228,244,253,216,248, 28, 22,149,152,112,197,206,157, 12,247, 13,231, 27, 26,241,
+153,196, 1,192, 98,155, 23,148,181,152,165, 15, 61,180,232, 65,231, 89,154,166,117, 46,103, 46,133,237, 90,145, 69, 57,138,251,
+251, 7,117, 22,100, 21, 76, 14,181, 59,245,245,236,174,169,129,178,230,120, 25, 19, 27,128,212, 96, 73, 58,215,235,135, 36,142,
+ 88,176,187,187, 39,215,131,161,204,167, 19,198, 5,248,112, 23,194, 60,215, 8,104, 16,104, 72, 3,224, 40,180, 35,198,176, 72,
+ 93,242,103,129, 42, 7,177, 31, 40,185,129, 66,248,209,123, 15,228,213,201,185,156,157, 92,176,207,134,132, 52, 78, 50,252,176,
+ 86, 94,188,229, 53, 18, 3,128,162,113, 99,226, 48, 72,104, 72,214,177,187,174,137,188,193, 41, 18,128,152,196, 46,246, 88,199,
+235,113,194,233,177,176,242, 99,113,104,102, 99,255, 36,212, 20, 40,178,104,202,103,243,198, 12,208, 88,216,105,212,245, 30, 93,
+219, 52, 68, 19, 90, 76,176,212,138, 32, 83,196,138,211,139,115, 57,220,191, 35, 65,177,166,223,155,149, 23, 47,191,148,200,203,
+147,226,246,238,195,123,212,133, 63,208,164, 7,186,101,134,205,152,219,201, 98,125,161, 69,233,201,213,112, 43,118, 66, 70, 18,
+142, 23,252, 33,242, 89,167,155, 96,184, 8,240,198,193,108, 0,218,159,205, 23, 29, 32, 51,154,188,170, 84,109,195,250,228, 84,
+155, 70,216,195, 34,113, 45,214,230, 66,199,137, 84,104,235, 17,174, 64, 2, 51,213,129, 44,119,165, 52,213,179, 80, 50, 63,120,
+253,153, 48, 51,194, 20,245,226,182,207, 66, 62,155, 44,100, 6,237,249, 76,158, 73, 29,102, 47,184,212,104, 66,158,143, 55,242,
+191,255,171, 47,228,151,191,184, 43,143, 31,247,100, 48, 79,168,255, 95,171,228,228,244,106, 44,189, 1, 36,175, 3, 82, 71,209,
+ 32, 82, 46, 86,147, 35, 26, 59, 80, 92, 75, 90,128, 3,105, 14, 0, 28, 30, 17, 36,254,211,179, 11,121,121,114, 38,127,250,227,
+247,181, 25,168,106,242,191,101,220, 25, 79,103,230,126,167,201, 29, 52,234, 98, 30, 66,110, 45, 57,237, 45,100, 60, 25,145, 98,
+ 89,107,117, 8,220, 93, 77,111,229,201,243, 19,230, 22,207, 81,193,151, 90, 45,131,199, 62,155, 21, 41,165,141,226, 40,235, 28,
+ 22, 17,159,214,108, 68, 98,238,212, 17,158,160,170,135,189,252, 77,127,201,149,226,209, 91, 29,217,237,180,184,190, 0, 99,237,
+238,189, 2, 5,157, 50,255,252, 79, 15, 52, 81, 20,181, 2, 89,209, 98, 14, 86,113,127, 60, 31, 82, 87,182,219,204,201,173, 6,
+113, 80, 14, 18,183,239, 33,229,194,224,144,252,179, 57,198, 23,161,141, 93,240, 43, 67,218,106,204, 47,132, 72,204,151,154,208,
+255,183,191,123,197,132,241,222,113, 83,254,151,127,254, 30, 19,249,135, 26,244,166, 51,236, 82, 97,129,166,193, 83,171,244,213,
+ 76, 43,142,122,142, 95,187,153,194,236, 61,166,143, 52, 60,178,209,173,130, 90,179,134, 99,219,114, 99,212,181,112,177,165, 17,
+161, 59,128, 85, 32,129, 56, 24,199,131, 15, 21, 36,148,139, 37,176,128, 34, 46,209, 86, 5,205,248,239, 6, 94,203, 18,136,103,
+ 50,184,230, 11,172,157,235,100, 32,181,182, 86,240,197, 22,119,218,212,182,231, 5,199,235,198,110,220,100,232,112, 32,107,195,
+200,161,134, 19,211,240,166, 55, 55,199,166, 33, 19, 44,222, 83, 46,103,154,224, 40, 80,240,247, 77,141, 18, 95, 13,128,240, 61,
+166,180,109, 93,139,132,123, 59, 77, 34,137,135,121,120,211, 11,247,183, 36, 39,121,105,215,106,128,177, 74,161,200, 0,145, 13,
+178, 46,184,152, 53,104,226, 57,126,174,103,254,234,255,215,255,243, 84,238,116, 74,180,113, 69,213,119,126, 59,213,107,161,221,
+ 97, 49,103, 65,125, 35, 78, 9, 43, 35,215,183, 67, 57, 25,222, 72,112,154,112,202,176,247,243, 3, 73,138,121,121,185, 46, 73,
+185,221,146,205,176,175, 7,122,101,171, 5, 61,196, 99,173,126,111,180, 60,197,195,129,162, 8, 59, 47, 36, 0,140,140,231,110,
+ 20, 14,101,167,124,190,184,213, 53, 64, 98, 77,220,232, 46,227,190,214,119,172, 10,115, 56, 11, 56, 90,181, 61,176,239, 64, 91,
+ 6, 2, 2, 7,152, 78, 98,164, 41,109,182,116, 45,252, 6, 65,152,227, 67,131, 36, 57,250,151,105,223, 35,176,123,190,241,249,
+ 95,159, 95,202,243,114, 40, 21,253,124,213,138,129,167,182, 90,137,137, 1,207,176, 23,197,142,255,242,124,198,174,210, 84,226,
+ 60, 78,150, 40,192, 65, 90, 89,196,100, 22, 56, 16, 84,232, 70,143,135,237,188,236,182,202, 90,249, 87,229,115, 45,188,232,169,
+238, 68, 34,210,137, 16, 12, 48,176, 35, 27,234,223,219, 72,217,212,160, 80, 28,161,147,247, 29,101, 20,220, 94, 34,255,169,211,
+224,191,145,169,117,130, 55,190,103, 5, 9,121,245,145, 37,252,196,237,104, 19,151,228, 29, 68,203,117, 91,182,178, 50,213,169,
+ 96,123,166,112,125,224, 14,200,235,229,191,209,114, 32,187, 32, 52, 19,141,217, 98, 77,244, 51,138, 23, 80,155,140, 22,107,197,
+ 46,180,218,231,107,167, 76,233, 40,108, 25,135, 35,201, 56, 80, 35,245, 44, 22,107, 22,193,216,237,115, 90, 19, 24,198,128, 66,
+ 37,152,248,105,194,192,179,129, 41, 21,192, 66, 0,219,130, 23,141,247, 80,167,176,143, 48,120, 17,196,149, 49,140, 11, 30,196,
+201,124,198,226,168,214,232,104, 66,169,176,171, 63, 62, 60,148,167, 79,159,154, 24, 72,108,153, 23,147, 61, 36,116,220,104,116,
+ 63,199,221,186, 38,145, 25,187, 37,208,110, 1, 32, 44,107,129, 13, 32, 47,174,245,203,171,145,100, 10,101,129, 23, 11,226,154,
+161, 3, 76,112, 11, 83, 60,150, 60, 16, 38,210,247, 11,165,199, 13, 39, 15,250,153,181,232,136, 66,120, 35, 44, 56, 74, 77,125,
+239,125,135, 34, 39,155,193,233, 27,136,163,220, 58,173, 23,113, 3, 78, 43,150, 76,181,102,235,176,134,120, 91, 41,151,120,118,
+218,205, 6,169,123,128,235,195,225, 50,212,235,143,251, 84,175,215,229,228,236,156, 52, 57,236,111, 87, 90,144,191, 60,121, 77,
+253,243, 92, 80,144,139,155, 27, 38,161,195,189, 59,242,205,183, 55,114,118,122,193, 36, 61,231,170,211,222, 19,139, 50,125, 31,
+ 63,121,120,192,194, 12,111, 14,252,246, 66, 46,179,181,245,245,157,164, 54,238,177,233, 12,192,160,102,227,240, 33,177, 60,127,
+125,110,170,115, 0,163,149, 27,114,114,121,201,134,135,146,201, 16, 90,114,103, 12,152,140,227,189,150,180, 52, 62,189,188,154,
+114, 90,131, 66,235,238, 94,193,237,192, 51,140, 7,151,131,145,233, 80,232, 85,159, 76,135,108, 66,186, 90,148,148, 53, 6,161,
+ 97, 4,150,160,204,102, 50,144,138, 62,148,151, 23, 19, 59,171,155, 5,119,212,148, 92,158,207,248,124,173,146,165,212, 27, 59,
+ 44, 46, 66,106, 42, 84,120,239,121,230,245,179, 63,126,249, 82, 58,205, 22, 25, 76, 76,192,144,234, 30, 15,228,215, 95,252, 81,
+206,245, 92,253,232,126, 87,175,251,140,159,163, 63,153,115, 66, 85,215,107, 74, 60,128, 38,213, 15,170, 69, 57,239, 77,121,221,
+ 59,221,174,116,245,121, 23,205, 35,237,189, 68, 6,183, 55, 92,231,224,140, 83, 77, 82,239,225,219,247,246,229,249,217, 13, 99,
+ 23,168,176,188, 23,177,207,162,198,214, 32, 9,233,184, 96, 18, 97, 95, 15,108, 20, 80,254, 95, 61,121, 37,207, 78, 46, 37, 92,
+ 78, 36, 95,110, 75,167,189,171,205,149, 62,227,127,249,168, 43, 79,123, 51,121,113, 61,162,215,113,167, 81, 51,177,127,125, 24,
+134,115,227, 77,162, 10,244,157,168,125,186,235, 20,215,233, 2,249, 77, 48, 76,108,227,119, 90,121,106, 5,146,209, 27, 95,201,
+122,206,182,209, 30,106,140,174, 4,122,183,122, 54, 10,154,104,242, 37,125,112, 94, 64,124,160, 36,137, 62,212,183, 90,137, 7,
+250, 11,240,183,127,255,237, 21, 59, 62, 4, 65,104, 70, 99,103,178,210,206, 63,175, 9,232,124,182,226, 3,218,108, 86,141,250,
+177, 49,180, 47,246,217,184,145,236,154, 0, 10,211,247, 17,229,172,123,193, 5, 34, 39, 56, 50,100, 34, 59,155, 31,252,147,152,
+213,184, 27, 5,235,197,142, 23,114, 80,174,201,163,118, 44,191,250,190,207,106, 20,251, 14, 96, 0,240, 47,246, 35,188,232,224,
+ 38, 34, 41,162, 83, 14,156,190, 51,105, 70, 89, 62, 88,182,217,132, 63,121,134, 59, 72, 92, 7, 36,190, 78,181, 36, 7,213,144,
+137,104,166,215,122,183,136, 57,254, 76, 11, 38, 61,172, 85, 13,118, 81,137, 69, 3,170,180,112, 99, 72,127,223, 61,249,232, 90,
+ 9,226,163,221, 98,100, 0, 69,223,130, 35,167, 40, 12, 34, 17,121,207,151, 55, 19,249, 71,237,216,255,251,159, 31,147, 3,121,
+ 59,117, 90,222,155,128,157, 35, 45, 91, 55, 27,114,225,123,183, 51,233,221,192, 89,110,194,113,210,255,253,233,169,188,253,238,
+158,228,181,218,191,185,121, 45,125,237,126, 38,240, 17, 23,235, 84, 61, 7,161, 65,193,146,238, 9,217, 49, 51,232,153, 48, 14,
+ 69, 51,156,192, 10,170,236,192,249, 72,207, 52, 48, 21,176, 2,208,135, 94,220,168,189, 90,201, 56,119, 53,235, 82,124, 71,243,
+ 73, 91,157,244, 30,197,137,169, 78, 17, 24,231,232, 63,236, 6,157,234, 89, 42, 60,130, 81,188, 32,200,102,205,195,156,174, 99,
+232,248,203, 69, 43,226, 88,212, 64,215, 63,107, 62,245,177, 57,163,101, 3, 59, 16, 24,231, 1,149,139, 81, 97, 42, 53, 35,219,
+245,142,233,131, 27,226,220,219,106,177, 3,253,141,196,254,105,108,212, 55,252,105,173, 92,113, 43,156, 88,142,247,187,196,165,
+ 12, 39, 99,227, 64,251,214,229,193,104,133, 43, 2,207,174, 41,186,188,208,225, 47, 80,144,226,253,226,154,227, 92,209,107, 29,
+188,114,120, 71,235,185, 26,106,165,158, 56,134,138,231,146,170,108,173, 62,237,247,145,243,119,224,222,214,247, 28,167,221, 64,
+125,246,153,146,237,136,223,243, 29,215, 29,139,183,200, 38, 3,152, 54,249,206, 18, 25,171, 10,116,173, 40,222, 41,160,161,207,
+196,112, 22,211,217, 12,227, 99, 4,234,213, 90,139,212,146,105,199, 67, 61,174,234, 71,252,156,208,138, 88,227,218, 64,221,110,
+185, 50, 69, 51,125,173, 35, 13,208, 16,170, 66, 44,193,231,198, 84,224,242,118,198, 17,239,100, 22, 51, 89, 84,203,144,251, 92,
+ 72,206,131,203,217,138,103, 20, 69, 44,220, 7,151,139,169, 62, 62, 99, 67,171,103, 67,118,222,245, 90, 67, 99,202,200,105, 85,
+192,193, 42,225,152, 54,230,216,211, 62, 7, 24, 54, 11,208,222,138,198,253,118, 83,114,238, 55,129, 98, 71,162,252,232,131,183,
+180,243,237,201,116, 48, 54,182,141,216, 56, 30, 9, 0, 0, 92, 58,154, 73,134, 32, 94, 22,161,232, 68,193,166,160, 71,106, 22,
+ 27,121,119, 95, 83, 28,188, 77,172, 98,223, 40,169,129,187,231,156,162, 80, 77, 80,220,125, 48,107,218,216,105, 21, 96, 69, 83,
+172,213,217, 53, 67,121, 12,138,105,144,110,205,208, 40, 72,248,124, 79, 86,125,247,252,123,188,222,152, 22, 34,238,193,197, 12,
+ 76,134,235, 73, 40,143,159,126, 39,143,238,252,181, 28,223,125, 75,147,194,153,254,236,153,197, 77,171, 58,220,164, 6, 84,191,
+103, 46,214,155,106, 30,113,123,145,137,201,164,222,240,190,251,122,160,184,241,108,102,124, 3,250, 1,253, 15,122,112,167,115,
+ 40,123,133, 38, 53, 39, 64,216,136,162,128, 46,133,121,174,164,244,235,155, 1,197, 84, 48, 94,199, 10,182,156,247, 8,186,123,
+118,214,147, 59,251,187,100, 24, 65,254, 21,207, 6,206,238,120,216,231,168, 25, 6, 51,235, 56, 67,154, 26,138,184, 5, 38, 94,
+ 97,150,211, 35,116,179,175,207, 7, 50, 94, 38,252,236,208,185,192,123,234, 54, 74,156, 66,140,250, 83, 41,150, 59, 98, 82, 40,
+214, 0, 96, 90,137,226,144,207,165,216, 52,240, 6, 76, 11,210, 30,215,108, 26,128,140,255,250,241, 99,210, 56, 31, 30,182,165,
+158,159,217,228, 12, 19,107,128,253,244,107,176,146,171,104,129,114,247,176,193, 93,250, 89,111, 46,207, 95,206,244, 58, 32,233,
+118, 53,246, 84,244,245,175, 73, 33,172,149, 12,200,125, 53, 88,240,108,224,158, 70,174, 73,197,231, 13, 35,243,155,231,228,114,
+ 99,147,232,141, 3,108, 3,183,131, 34,231,237,227, 93,185, 25,250,196, 60,129, 41,129, 98, 62,243,244,108, 32, 47, 70,144, 92,
+ 12, 73,107, 64,194,131,168, 62,110, 16, 70,101, 24,167,192, 81,204,226,174, 73,183, 58,242, 5,119, 84,208, 38,223,104, 39, 7,
+ 30,115, 12,154,149, 73,143,177,226,242,196, 0, 68, 68,195, 3,164, 5,223,234,101,104,230, 5,250, 0, 45,198,107,249,244,171,
+ 43,121,247,110, 91, 10,250, 61, 55, 83,243, 79,134,185,202,231, 47, 71, 60, 48,141, 74,150,163, 19, 80,159,170,160, 78,212,178,
+146,228,114, 68, 93,226, 1,206,145,130, 19,114,132, 23, 69, 6,246, 9,152, 88, 12, 29, 13, 26, 10,170, 76,116,251,116, 50,139,
+140,114,183,213, 3, 35,216,202,185,206, 37,206, 8,100,173,149, 92, 33,145,111, 78,135,242,241, 49,196, 55, 2,121,126,179,148,
+187, 59,120, 15, 57, 55,102,183, 46,135,206, 70,126,224, 16,153, 70,185,163,119,117, 98, 11,180, 48,118,210,157, 12,154, 49, 63,
+ 7, 14,201, 65,197, 39, 61, 13,171,136,139,254, 68,222,213, 67,112,111,191, 41,191, 59,157,176,226,131,224, 0, 14, 11,246, 77,
+ 87,131, 25, 63, 91, 18,155, 14,189,117,108,218,105, 66, 69,137,227,188,144,234, 91, 28,137,194, 81, 43,137,156, 70,184,167,197,
+ 68, 78,254,254, 15,167,114,212, 46,112,140, 9, 58, 6,198, 77,102, 7,152,112,100,153, 35,175, 28,168,209, 80, 43,216, 58, 17,
+251,173, 90, 94,142,238,237, 74,165,214,182, 93, 28,252,203, 97, 41,234,219,222, 30,238,106, 75,103, 57, 90, 46,150,173,168,194,
+232,220,237,112,211,105, 65,194,251,178,217,162,174,125,215,137,115,133, 1,117,164,196,170, 85,187,160, 30,185,161,134, 10,150,
+ 45,142, 3,149,173,183, 45, 86, 28,168,200, 55, 20, 43,246,216, 28,231, 33, 97,164, 29, 62, 11,189,136,187,124,130,242,208,157,
+106,245,139,209, 55,184,175,199,119,246,165,213,174,243,108,179,235,119, 62,234, 4,139, 69, 27,135, 46,143,105,148,209,143,237,
+172,164, 96,184, 92,198,198,183, 84,212, 66, 96, 78, 76,172,133, 90,218,137, 21, 18,165,114,153, 15, 62,206, 83, 77,187, 0, 0,
+229,128,132, 69, 20,203, 57,144,156,231,180,250,197, 51, 97,155,130,147, 23,205, 58, 32, 96,134,114,161,230, 92,136, 73, 18, 19,
+160, 27,225,211,189,208, 21,213,246,186, 22, 8, 88,160,120,118,197,210, 21, 83,250,117, 54,133, 72,149, 32,237,226, 18,233,157,
+ 56, 53,170, 20,120,199,238, 95,152, 44,225, 39,142,157,112,146,100,236,158,107,144, 70, 34, 4,128,118, 53, 11,249,117, 68,108,
+139,105, 79,155,153, 76,134,193,202,246,210, 66, 1, 35, 72, 68,103, 28,239,121,200,239, 51, 42, 24,206,147,137,123,196,124,182,
+ 47,110, 87, 50, 94,152, 35, 28,112, 34, 79,110, 34,249,232, 80,159,111,141, 63,163,201,194,188,221, 3,113,235, 22,232,207,235,
+107,232,249, 69,247,138,187,184,208,110, 25, 69, 65,171,213, 97,241,214,104, 54,101, 79, 63,195,139,179, 51, 34,133, 3,135,180,
+ 7, 67, 1,138,106,167,253,165, 91,211, 0,168,152,103, 96,207,225, 94, 96,244,138,209, 55,232, 98,116,205,195,139,230, 88,160,
+123,252, 60, 14,196,198,238,219,196,109, 54,209,138,116, 84,244,146, 27,174, 52, 98, 91,105,121,206,111, 34, 77,130,190, 1, 7,
+ 65,152,231,115,224,164,122, 17,176,115, 57, 3,254,154,116, 50,232,107, 49,187,113,104,255,167, 58, 10, 80, 29,132,252, 49,116,
+198,203,197,174, 38,146,130, 51, 10, 17,198, 67,172,229,182,231, 74, 12,239,131,102, 2, 46,109,197, 76,196,162,202, 11,231,210,
+191, 57,211, 55, 84,149, 71,119,239,202,228,155,239,201,146, 65,161,106, 12, 6,159,231, 27,187,241, 57,100,151,193,154,136, 61,
+183,247,182,164, 13,109,126, 83, 3,180, 9, 72,192, 9,196,138, 22,187, 48, 72, 33, 43, 40, 11, 35,174, 60, 19,221,219,111,125,
+ 32,205,106,129, 35,123, 92,111, 76, 42,129,191,201,195,249, 76, 11,143,254,112, 70, 67,153, 7, 7, 77,114,214, 71,139,107, 41,
+ 5, 27,105,148,214,242,251, 87, 19,138, 53,197, 27, 45, 20,244,207,128,254, 71,119, 12,199, 54,143, 83, 41, 80, 89,225, 5,144,
+215, 2, 87,147,114, 57, 39,154,145,228,118, 50,226,115,215,170,102,101, 26,198,204, 17, 59, 13, 80,253,214, 28,131,207,181,177,
+ 72,216,173,235,243, 88,177,216,138,157, 57, 41,159, 88,183,105,241, 15,218,109, 26, 67,160,113, 15, 57,218,223,126,254,133, 44,
+151,239,202,253,195, 29,109,192,132, 0, 91, 38, 94,172, 46,245,254,105,216, 97, 49,130, 81,248, 59,250,235,234,102, 42,253,241,
+ 80,194, 66,137, 19,205,253,195, 99,109,102, 42,210,187,190,164,199,202,116, 17,145, 29, 83,211,247,135,201,146, 97, 52, 76,112,
+136,192, 64, 42,208, 89,241, 1, 69, 81,159, 14,111, 38,131,252,228,213,153,228,242,101,105,105, 67,180,187,147,231, 73,203,188,
+208,132,209,155,174,233, 25, 59,210, 7,110,180,184,213,139,181,161,159,120, 76,148,111, 68, 17,132, 20, 36, 39,110,192,233, 39,
+246, 16, 3, 29,125, 49,152,243,200,131, 99, 14, 66, 39, 68, 15,176,195, 68,231,254,240,192,136,246, 56,116, 13, 77,206,207, 95,
+ 12,136,120,245, 16, 52,103,145, 28,236,183,164,191, 48,194,253,120,169, 15,221, 36,228, 72,228,222, 65, 75,122, 35,243,122, 30,
+ 77,150, 50,242, 86, 18,233,247, 87,154,101,233, 13,215,212,229, 53,132,189,176, 26,198, 46, 2,114,134,157,122,158,224,190, 8,
+242,172,122,163,159, 93,173,120,227,124,253, 59,128,217,146,216,198,178,180, 44,117, 84,160,254,120,197, 7, 29, 93, 23,192, 99,
+111,233,123,254,249, 59, 59,242,245,171,158,124,123,218, 23, 63,246, 13,196, 54,158,203, 8, 86,144,129,239, 64,118,166, 7,141,
+ 34, 37, 74, 82, 58, 80, 10, 94,242, 77,214, 48,140,216,225,103, 51, 21,118, 95,216,167,195, 0, 37,136,215,242,182, 86,123,127,
+ 56,155,218,200, 89,111, 98, 11,186,214,131,144, 85, 88, 16,228,152, 68,206,122, 67, 45,178, 38,250, 80,229,184,119, 78, 53,184,
+119, 43,101,178, 15, 24,224, 56,204, 50,167, 30, 82,232, 16,130,130, 28,163, 56,120,214, 55,183, 35,249,155,223, 62, 99,176,233,
+141,180,211,233,143,185, 59, 70, 50,207, 56,221,111,136,247, 80, 62, 87, 79,100,163,145,151, 59,247, 26,156,124, 64, 44, 7, 9,
+ 29, 9,212,243,205,130,118, 29, 46,200,235,204,102,179,142, 51,238,220,251, 66, 3,165, 17,133,237,184,209,158, 67,102,211, 28,
+ 4,213,188,159, 88, 21, 15,243, 14,135,116,143, 93,226,244, 28,128,145,206, 99,219,132,101, 0,186, 20,237,158, 34,191,253,146,
+249,124, 39, 14,216, 72, 23, 35,140, 34, 53, 57, 34,105,162,130, 6,184,142, 35, 62,173,226,171,154, 92,161,221,140, 7,179,232,
+246,212,220, 37,186,100,108,210,177,166,214,133, 36, 10,121,198,239, 53,128,149, 52, 64,100,244, 65,194,231, 5,245, 9, 96, 29,
+234, 77, 59,218,100, 54, 12,183,232,244, 12, 86, 33, 65, 81,114,229, 42, 71,237,229, 18, 20, 22, 43,110, 7, 31,200,110,173, 70,
+ 44, 72, 81, 19, 35,198,123, 64,218,214,232,242,180,214,115, 91,149, 37,168, 80, 90,173, 35, 72,162,136,145,124, 66, 93,106,156,
+ 3, 36,192, 12, 65,168,129,123, 2,133,103, 1, 99,231,196, 21, 76,203,112,237, 84,241, 76, 74,216, 51,223, 68,135,135,241,204,
+231,220, 25, 20,121, 84, 24,244,157,250,153,255,255, 81,213, 35,158, 33,182,169, 11,186, 59,156, 97, 78, 38,178, 70, 93,221,184,
+105,138, 83,169,148,153,191,118,218,243, 30,207,110, 1, 84, 72, 13,220,207,207,151,114,176, 83,227,251, 6,213,200,168,118, 32,
+253, 10, 71,235,233, 42, 12,231,231, 85,111,194,245, 16,254,108, 78,219, 81, 61,119, 26,143, 38,171,188,220,237, 22,228, 15, 47,
+ 70,124,255, 13,125,254, 7,195,169, 94,175,178,182,166, 43,114,221,177, 80,221,237,182,228,228,226,146,123,101, 20,207,136, 5,
+152,165, 20,202, 77,189,198, 19, 94, 83, 76,181,204, 23, 29,224,205,162,232, 37,167, 62, 71, 20, 26,215, 26,199, 16,248, 22,236,
+126, 97,138,132,253,106, 79, 11,218,225,116, 40, 77,136, 21,117, 31,200,217,249,149,204, 16, 7, 28,154,253,174,158,183,253, 78,
+ 87, 46,175,175, 40, 0, 66,209, 23,116,239,197,146,158,199, 21, 45, 87,163,136,254,162,140,167, 88, 63,145,122, 20, 69, 91, 35,
+ 44,220, 99,143,148,172, 60,187,101, 60, 31,104, 12, 32,203, 12,170,108,214,241,237,113,223,242,100,142,100,216, 81, 94,235,123,
+219,209,152,145,132,218,161,105, 66,187, 29,106, 71,171, 73, 12,207, 3,238, 29,132,143, 0,116, 92,129,110, 8,107,214, 82, 36,
+ 15, 52,201, 76,244,179,207,166,125,201, 85,139,114,247,248, 1, 1,173,160,117, 46, 66,243,185, 48, 55, 54,179,134, 61,187, 25,
+235,231,159, 17,248,139,184,141,243,135, 49,188, 73, 15,155, 62, 4, 70,198,141,106,137,215, 3, 9,183, 89, 41,177,145,202,210,
+216,197, 48, 28, 3,141,177,232, 72, 79,207, 78,201, 47,199, 20, 2,120, 0,176,163, 16,251, 81,100,117,244, 89,217,109, 2,239,
+210,148,146,118,235,191,253,238, 84,254,217,199,199,218,244,237,211,225,237,195,125,125,222,163,166,124,167,205, 22, 94, 15, 50,
+209,165,156, 25,142, 29,237,182,228,195,183,118,181,190,209,164,251,245,149,220,251,197, 3,153,252,221,151,114,255, 81, 91,246,
+ 52,150, 79, 53, 79,157,126,215,147,243,155,137,124,252,225, 67, 57,189, 50,107,106, 2,117, 89, 84, 89,225,153,117,204, 28, 0,
+ 78, 67, 61,195, 40,168, 80, 56,193, 85, 17, 64, 58,200,185, 30,236,116,229,249,171,215,242,252,245,169,252,242,231,159,200, 97,
+179, 68,192,166,239, 25,165,116,185,140,141,226,156,216, 40,238,104, 87, 27,195,102, 40,167,151, 83,125, 6, 50, 60,231,173,238,
+142,118,244, 21,185,189, 58,167,158, 62,223, 71, 37,207, 34, 26,130, 92,112, 63, 4,203,164, 81, 45,144, 85,130,247,132,184, 10,
+172, 21,116, 71, 2,103,187, 13,236, 73,189, 14, 19,152, 27,217,217,211,248, 86,210, 24,241,235,167,125, 57,189,153,155,110,110,
+ 22, 26,205, 85,126,200,239,207, 71, 28, 31,101,221, 88,197, 22,155, 34,222,246, 95, 7,156,211, 64,246,100,176, 97,151,159,112,
+204,100, 50,124,120, 80,209,209,188,125,152,231, 13,226,200, 84,131,195, 55,250,112, 50,134,235,255,212, 43, 57,142, 64,168,202,
+228,198,152,141,114,158,135,106, 71,127,118, 67, 15, 93, 79, 19, 16, 16,211,120, 45,160,228,241, 97, 58,141,162, 73,113,102,131,
+173, 8,137,217,221, 37,220,205, 80, 70,149,129, 54,144, 71, 59,182,207, 93, 97,231,137, 93, 90,198,219, 78, 82,151, 20,205,217,
+200,239,159,220,202,229, 96, 45, 31, 62,104,105, 50,239,202,113,167,204, 4,216,173, 21,244,225,153,203, 42,179,144,111, 46,110,
+228, 12, 43,138,217,194,228,103, 37, 29,113, 38,219,125, 49,186, 3, 88,223,197,146,202,116,190, 81,195,203, 6,182, 55,195, 56,
+173,160, 5,211,116, 55, 35,159, 52,187,146,209,235,174,103,128,239,255,245,235, 43,249,242,105,143, 52, 12,140, 34,191,121,213,
+151, 23, 23, 19,162,108, 61, 89,184,125,185,207, 17, 54, 18,101, 24,135,236, 60,168,203,204,138,149,150, 16,100, 39, 80,172, 6,
+163, 69, 77,210,155,120,169, 15,231,140, 29,126, 64, 16, 91,222,186,226,216,140,106,150,235, 5, 17,192,185,130, 22, 1,122, 77,
+ 43,149,128, 35, 93, 84,138,133,194,202,129,209,132, 2, 11,129,111, 0, 14, 8, 55,172,156,134,185,117,172,150,212, 17,152,124,
+223,246,106,168, 96,211,206,153,158, 1,190,117, 39, 5,231, 27,157, 26, 31, 32, 40, 19,164, 24,134, 78, 72, 38,207,247,237,101,
+ 50, 91,134,194,154, 94,226,222,150,139, 79,180,173,211,159, 76,187, 79, 27, 15,134,219,162,202,246,202,150,120,144, 88, 16,100,
+ 0,250,193,244, 35, 33, 79, 86,139,185, 32, 96,247,157,210, 44,197, 81,160,144, 56, 13,153, 31,240, 65,142, 35, 3,198,177, 8,
+ 28,141,182, 96,190,148, 31,142,235,128, 0, 32,169,227, 90,100,120,144, 85,104, 2, 65,240,116,135, 39, 60,146, 21, 58,224, 74,
+ 41,195,228, 14, 58, 77, 54, 99,232,233, 70,181,198,235, 52,154,153, 15, 61, 65, 85,145, 77,102, 18,135, 70,198, 53,207,113,132,
+108,211, 5,140,237,205, 80, 37,230,103,220,196,230,121,206, 66, 67,146, 45, 27,132, 35,101,255,141,171, 92,146,250, 54,254, 0,
+ 69, 31,184, 51,154,114,235,137, 87,113, 88, 16,138, 16,185,207,204,233, 80,152,184,110,212,144,203, 72,162,136, 21, 68,152,163,
+ 8,214,179, 85,173, 20, 41, 40,133,201, 20,146, 6, 2, 51, 18, 18,144,195,166,143,237,118,184,144, 73,158,134, 12, 49, 88,231,
+133,107, 3, 80, 97,172,255,170, 31,202, 97, 77,139,121, 61,155, 0, 19, 53, 26,101, 50, 46, 64, 7,106, 86,243,236,232,103,235,
+165,204,230, 30,119,160, 64, 18,175, 22, 35,199,128, 40,112, 37, 0,211,142,197, 66, 19,158,196,156,136, 68,241,146,207,143,112,
+ 21, 83,102,252, 65, 55,182,138, 98,231,152, 85,100,129, 87,213,251,129,107,211, 27, 12, 37,163, 49, 12,170, 97,181,137,249,183,
+199,182, 94, 55, 15, 6, 49, 29,126, 20, 2,185,172,137, 75,121,177,209,195, 34,142, 77,197, 9,207, 8,187,194,152,138,133, 38,
+254, 2,224, 95,194,249,123,192, 68,137,194,168,161,201, 45, 21, 90, 98,115,228, 10, 89, 20,187, 0, 82,226, 68,161,248, 64,183,
+ 11,109,137, 74,161, 44,235,225,165,198, 30,125,255,122,166, 80, 24,228,179, 38, 53, 11, 97, 49,196, 79,198, 8,189,151,213, 60,
+158,201,181, 12, 48, 21,141,110,181,240,212, 88,231,151,228,159, 62,251, 29,175, 61, 98,103,198,201, 6, 71, 27,211,204,248,240,
+222,142, 54, 34,121,202,113,227,223,136, 43, 19, 33,232, 13, 64, 54, 76, 4, 46,110, 7, 91, 64,104, 1, 0,107, 3,118,176,123,
+ 39, 19, 64,191,234,206,209, 59,124,230,128, 35, 9, 92,145, 46,206,159,195, 76, 62, 77,151,225, 59,109,116,206,123,150, 64,175,
+167,162,223,167, 49, 93,147,234, 31, 95,222, 72,187, 86, 38,133,113,230,214, 51, 56,143,135,187,109,121,125,179,146, 47, 95,124,
+ 35, 87,250, 62,120, 95, 40,114, 54,151,191,255,162, 47,209,103,175,184,190, 58,222,175,209,206,245,239,254,233,177, 22, 93,187,
+114,247, 65,199, 10, 87, 8, 69, 69,198, 82,168,150,141,117, 5,154,115,190,144,179,201,104,184,161, 89, 83, 68, 27, 98,211,158,
+192, 36, 14,113,224,223,252,195,175,228,207, 62,249,177,188,119,167,169,133,106, 72, 44, 18, 10,250,192,129,112,113, 77, 96,146,
+132,220,243,224,168,206,132,125,174,177,120, 8, 22, 75, 65, 11,136, 98, 93,222,125,164,175,169,133, 25,206,116,171, 94,224, 84,
+ 10,236, 48, 95,207, 59,168,230,134,217, 89, 19, 7,130,107, 52, 1, 85, 80, 63, 35, 44,204, 75,133,137,188,117, 71,244,140, 78,
+229, 31, 62,123, 45, 69,208,254, 78,123,115,237, 38, 48,186, 45,240,166,129, 35, 89, 43, 25,221,136,123,104,176, 94, 18, 11,114,
+ 94,226,198,148, 78, 77, 26,227, 59, 4, 72, 28, 28,113,138, 86,220,199,232, 77,172,229, 77,148, 5, 15, 46,213,132,162,136, 35,
+ 19,112, 6, 17, 92,241, 26,168, 50, 38, 24,163,123,198, 83,111,233,159, 1, 84, 70,244,121,226, 49,105,239,119,235,116, 80, 67,
+130, 12, 87, 51, 46, 85, 1, 76, 3, 69, 11, 7, 30,192, 1, 20, 29,171,200,222,213, 88, 47, 66,224, 70,234,126, 98, 29, 57,146,
+ 83,144,152, 14,188,201,171,218,152, 30, 23,229, 86,171,110,216,144,254,215, 63,187, 43,247,118, 43, 12, 50,155,208,186, 76, 32,
+213, 59,205, 42,187, 54, 32,243,255,238,243,115, 25, 14,237,230,199, 14, 56,136,160,139, 98, 7, 32,161,221,122, 78,139,131, 57,
+145,224, 4,239, 33, 33,121,166,207, 43, 73,236,212,162, 60, 42,199,237,228,106, 26,176,202,180, 29, 44,105, 0,252,246, 60,171,
+ 5,204, 68,138, 65, 68, 29,107,128, 8, 57,126,213,239, 47, 6,121, 75,210,110,167,139,251, 81,209,131,237,107, 64, 47,102, 3,
+183,175,141,222,112,152, 19,227,108,227, 96,141,103,176,115,180, 17, 26,254, 22, 69, 69, 64,170,141,191, 13,210,160, 93,192,185,
+ 8,107, 13, 28,222,219,225,128,122,196, 51, 7, 16, 51, 89, 83, 19,132, 33,146, 60,151,227,123,195,168, 60,116,201, 7, 32, 47,
+207,153,158,224,158,167,212, 53, 80, 59, 76,222, 52, 96,224, 75, 53,161,127,104, 10,196, 42,212, 21, 73,248,121,184,159,232, 72,
+ 8,108,244, 34, 87, 24, 37, 28,135,227,189, 36,110,193,110,167, 50,213, 50, 55, 53,178,208, 1,244,216,141,122,254,150, 34,134,
+ 2,163, 63, 28,179, 96,179,137,132,241,147,125, 87, 92, 96,172, 74,238,188,103, 99,104, 32,142,247,181,184,154,107, 96, 91,206,
+215, 54, 77, 33,187,195,151,209,114,206,175, 65,160, 12, 28, 29, 12, 15, 57,164, 29, 13,175,145, 56, 96,219,134, 6, 32,165, 92,
+149,202,126, 80, 29,195,117,162, 46,130,196,212,255, 54,228,234,146,239,179, 92,200,111,109, 82, 55,110,220,138, 60, 92,212, 34,
+103, 69,176,210,210,121,180,219,200, 54,244, 76,178, 24,252,120,115,107, 75, 51,184,237,193,211,169, 90, 90,196,122, 14, 57,111,
+ 48, 5, 75,202, 28,245,255,128,157,128,169, 6,198,165,182, 47,143,217,141,153, 96, 82, 66,144,104,193, 41,145, 65,174,213,167,
+ 5,166,237,250, 49,141,130,127, 0,129,100,216,127,107, 66,199, 71, 25, 77, 86, 68, 88,227, 89,170, 21,124,118,100, 8,250,158,
+103, 8,123, 60,247, 17,153, 37, 9, 59,232,200,204,205,184,198,128,224,202,124, 81,144,203, 78, 65,142,187,101,237,208,198, 20,
+ 54,162,243,213,112, 41,199,229, 2,169,115, 64,172, 3,185,140, 96, 10, 99,145, 21,193, 91, 11, 9,137,117, 8,244,190,148,153,
+232,198,243,107, 77, 82, 54,173, 88,235, 61,108,150, 3,185, 25,218,168, 31,170, 92, 9, 1,158, 38, 86, 67,191,113, 56,225,149,
+107,134,121,208,103,225,201,104, 34,237,122, 81,142,239, 30,200,203,139,107, 6,108, 92, 27, 76, 14,112,198, 3,119, 30, 55, 24,
+245,110,214,236,192,137,132,119,142, 93, 91,103, 75,234, 86, 4,188,102,139, 69, 68, 74, 48,134,156,212,216, 32, 89, 33,195,251,
+142,239, 47, 38,121,247,121,130,109, 97,139,243,134,152, 10,106, 27, 40,110,224,106,163,123,227,132,210,197, 95,172, 16,215,122,
+246,226,124,137,207,115,177, 4,132,118, 73, 19, 66,200,181, 89,187,123,196,117, 4,158,155,189,157,251,210,121,241, 66, 30,191,
+ 60, 49, 48,154,211, 17,247,221, 26,236,243, 39,167,140,169, 44,202,233,113, 96,152,146, 84,247, 0, 49, 5,197, 52,133, 86,138,
+ 89,118,184,152,126, 48,105, 5,174, 1, 76,150,142, 78, 88,144,142,198, 73, 78,248, 96,126,226, 88,252,169,250, 31, 10, 98,208,
+164, 81,212, 31,236,236, 82, 18, 57, 89,143,101, 49,185,229,202, 21,114,193, 40,134,177,238,184,187, 91, 35, 72, 14, 19, 50,116,
+201, 40,182,224,206,183,163,247,232,242,118, 44,247,119,202,210,187,157, 24, 11, 71, 95,251,236,242, 86,110,111, 46,228,250,122,
+ 41,149,246, 74, 58,179, 57,167, 42,216,225, 19,199,177, 50,223,114,140,183, 41,118,133, 51, 61,159,241, 57,199,251,197,164, 15,
+133, 2,158, 61,232, 93, 0,155,131,132,255, 68,175, 29,138,245,247,239,117,164,169,137,157,234,122,177,173, 62,170,213, 34, 11,
+107,112,246,113, 94,176,230,184,191, 95,146,158,158,223,193, 20,116,202,146,230, 46,248,179,195,133,115, 33,151, 87, 3, 51, 51,
+202,219,202,139, 22,219,110,229, 26,109,140, 85, 20,174,140,230, 7, 32, 36, 26,130,222,104, 69,206,253,127,250,163,251,108,124,
+ 51,119,245, 5,142,119,106,244, 30,191,236,141,152,104, 47, 6, 38, 48,143,125, 54, 14, 10,140, 68,114,174,155,216, 56, 72,126,
+146,152,168,188,239, 56,154, 84,135,242,189, 31, 84,189, 9, 93,169, 8,120,114,200, 91,227, 61, 26,160, 38,166, 50, 85,236,168,
+ 50, 27,238,185,177,111, 51,177, 25,143,149,102,129,188, 43,143,102, 50,144,118, 61, 27,111,184,227,192,216, 38, 97, 85,239,211,
+ 2,145,128, 86, 3,220,179,106,244,201,159,143, 52,225, 69,172,146, 8,162,114, 93,213, 20,220, 90, 61, 52,192, 13, 96,236,142,
+230,183,173,213,209,112, 14,254,172,209, 24, 0, 14,242,217,201,199,102,164,161,255, 30, 52,114,242,159,127,178, 43,191,249, 86,
+228,110,183, 70,206,227,103, 79, 47,245, 96, 85,228, 78,171, 36,119,219,101,106, 99, 63,185, 26,203,111,159, 92,203,120,106, 18,
+168, 8, 90,177, 30,192,152, 99,242,205, 54,241,222,206,214,242,247,143,175,229, 84, 19,121,137, 34, 13,115,130,114,124,125, 32,
+ 96, 4, 0, 93,227,200,153,178,172,162,144, 96, 35,140,232,211,206, 21, 9, 66,123, 35,189, 30,115,183, 19, 14, 28, 58,222, 20,
+231, 18, 47,113,200,107,147,163,205,122, 57, 11,112,185,138, 9,117,248,102,165, 11, 3,133, 36,209,206,187,156,151, 98,189, 77,
+189,109,113, 28,118, 20, 44,205,106,147,157, 51,198,205,161,171,186,121,173, 29, 93,135, 69, 66, 62,112, 59,217,141, 3,171,101,
+ 44,193,185, 85, 7, 0, 62,216,105, 71,206, 37,204,254,155,108, 53, 1, 54,206,196, 36,237, 22,233, 61,237,118,167,129,227,174,
+ 39, 78, 25,142,130, 60,190,117, 64, 76,124,145, 33,185, 3, 71,145, 51, 48,100,108, 94,214,238, 90,121,129, 41,121, 71,148,128,
+ 53, 19, 13,168, 52,101,188, 2,247,245, 52,214,225,104,197,146, 13,121,182,171,144,133, 9, 36,116, 97, 38, 50,139, 22, 44, 56,
+144, 32, 72, 47,202, 23,232,250, 70, 93, 2, 72, 45,235,239, 1,132, 51, 23, 53, 67,232,103, 64,147,212, 87,168,107,245, 63,158,
+ 47, 28,248,205,128, 96,112, 44,243, 27,190, 22,173,109, 57,185,190,214,215,244, 25,228,219,141, 26,159, 11,200,149,226,245,240,
+ 57, 12,208,232, 76,142, 28,232,144,146,180, 14,148,197,145, 56,249,222,126,154,211, 37, 29,174,165, 40,120,155,140, 8, 59,122,
+223,209,214, 18, 49, 29,244,237,164, 35, 49,209, 40,223,233,194, 59, 86,245, 22,149, 77,113,145,108,242, 6,243,224,138, 76, 76,
+181,184,211,197,181,211, 99,129,253, 94, 76, 90,165,169,216, 1,216,132, 46,144, 22, 78, 78,223,220, 19, 51, 20, 33,189, 51, 54,
+ 26, 34,247,255, 78,112, 41, 71,255,243,132, 46, 88,167,195,186,252,197,195,146,212,251,115,125,174, 22, 92,121, 97,125, 3,190,
+240,209, 30,198,235,121,142,236, 73,149,212,179,199,162, 26,116,191, 28, 64, 87, 53, 34,219,197, 43,107, 23,212,144,201,100,202,
+215, 0,229,232, 26,210,202, 88, 82,234, 25, 56,191,234, 81,253,205,207,228,165,177,219,177,107, 0, 35, 32, 61,183,245, 74,157,
+215,171, 88,175, 16,188,219,213,206, 63,210, 4,243,253,117,143,193,151,170,141,180,136,182,251, 64,208, 89, 96, 8,121, 59,175,
+158,139,129,226,134,246,166,253, 97,138,131,177,211,199,144,109, 2, 68, 0, 71,195, 52,157,206, 36,209,194, 99,207,169,253,133,
+ 44,192, 77, 93, 16,186, 12,192, 91,224, 44,220,232,231, 5, 96, 15, 19, 8,241,124,215, 37,107,172,156,143, 9, 36,155, 78, 39,
+ 90, 60, 14, 89,104, 1,139, 89,201,231,165,213,104,200,243, 87,175, 36, 76,102,242,193,187,111,203, 79,127,252, 19,138,214,224,
+254,225, 51, 17,104,234,155, 90, 27, 52, 16, 48,177,132, 88, 76,146,106,197,226, 30, 57, 67, 17,106, 49,228,179, 76,252, 96, 6,
+161, 32,175,213,138, 54,133,133,112,150, 94, 55,216, 69,195,144,229,184,124,204,100,137,117, 7,224, 73,129, 31,115,140,142, 29,
+ 49, 18, 38,216, 8,139,245,152,175,237, 37,166,118,247,248,245, 64,222, 58,170,106,172,218,104,220, 93,203, 55,175,110,121, 6,
+246,218, 85, 98, 32,158,157,244,172, 96,214,196, 6,129, 61, 56,184,213, 27, 5, 9,115, 40, 42, 39,250, 30,221,212,171, 44,244,
+155,135,144, 94, 37, 48,219, 95, 15, 13, 83,148,188, 17, 42,114, 98,184,108, 16,244, 98, 33,142,225,122, 87, 74, 37, 98, 55, 48,
+121, 64,193,129,164,191,116, 42,151,211,155,133, 60,126,254, 76,174,122, 55,114,239,160, 35, 15,247, 23, 90, 0, 84, 56, 41,185,
+188, 94,240,107,112,158, 51, 78,150, 23, 53, 52,140,196,106, 26,231, 47, 7, 43, 45, 70, 86,114,231,160, 45,123,123, 29,249,254,
+113, 94, 94,157,156,114,202,109,242,214,161,204,227,132,122,251,184, 55,166, 57,159,211,115,157,101, 12, 5,165, 28,138,159, 48,
+ 82, 2, 29, 25,128,236,204,253,110,149,180,181,254, 36,212, 23, 88,112, 63, 14, 32,199,126,199, 4, 46,154,122, 16,194,112, 44,
+237, 90,158,106,100,175,110,231,146,115,220, 98,112,104,131,192,119, 65,195,158,124, 36,231,181,115, 17,131, 60, 94, 41,235, 17,
+252,134,221, 9,154, 7,240, 28,189,192,120,198,243,117, 26, 88, 98,118,134, 8, 48,216,229,119,245, 32,194,182,112,133,238,126,
+ 21,187,234,116, 67, 16,193, 96, 94,162, 16, 76, 41,107,110,138,155,196, 80,186,164, 85, 32,152,138, 73,172,162,168,240,157,149,
+ 22,113, 1,168,116, 32,181, 58,223,176, 74, 2, 22, 0, 34, 55, 77, 13, 8,232,216, 63,253,238,146,128,180,143,238,183,137, 26,
+ 95,174,204,218, 46,114,194, 17,152, 98, 32,161,253,228, 81, 75,106,197,156,188,119, 92,151,227,221, 34,105, 20,224,221, 98, 20,
+117,165, 1, 7, 84,186, 63,125,255, 64,190,126,121, 43,131,177, 81,222, 60, 7,146, 35,234,149,106, 84,208,163, 15,229, 98,234,
+203, 16,227, 88,125,157, 82, 16,203,133, 30,104,188, 71, 32,127, 23, 27, 51,124, 0,240, 98, 29, 5, 78,157, 10,192,163, 5, 19,
+220, 96,188, 33, 55, 52,162,158,190,141, 50,115,126,206, 80,226, 38, 73, 69, 94,107,193, 43,187, 85, 9, 84,253, 22,122,157, 33,
+174, 97,251,116, 36, 11, 42, 91,233, 51, 60,132, 5,109, 50, 98,162,228,174,134,220, 88, 59, 84, 11,140,157, 52, 48, 32,105, 32,
+ 57, 99,239, 78,237, 97,250,139, 7,124, 32, 50,110, 71, 77,222,191,211, 48,224,239,221,184, 28, 95,199,209,163,187, 87,158,235,
+179, 35,167,106,133,135, 15, 50,143, 40, 0, 40, 7, 11,254,181,254, 66,194, 34,216, 40, 48, 30, 34,249,191,161, 25, 53, 16,219,
+128, 74,222,141,109, 61,215,101, 99, 34,128,247,176,114, 30,232,248, 90, 76, 71,170,250,160,133,206, 74,118,187, 50,113,188,247,
+ 20, 45,146, 50, 12,166,243,169, 6,197, 37, 87, 0, 27, 39,204,130,247,149,170, 64, 81, 64, 4, 1, 54,103,210,181,137,251, 89,
+ 8, 78,177,163,252, 96,202, 2,113, 15, 58,187,185,235,226, 59,196, 48, 6, 60,176, 20,133,251,212, 17, 18,187, 38, 21, 36, 14,
+ 40,231,149, 93, 32, 65,241, 3, 33, 10,186, 20,162, 72,208,159,127, 59,153, 83,134, 56, 73,156,245,174, 67,202, 50,233, 39,242,
+230,250, 59, 80,235, 27,106,135,188, 49,100, 10, 12, 55, 16,186, 81, 98,224,248,246,158, 43, 14, 77,196,102, 99,222,221,144,182,
+212, 98, 19, 88, 0, 92,165, 13,145,117,209,214, 47, 26,227, 72,156, 78,154, 80,232,179, 48,154, 69, 90,176,134, 76,232, 11, 63,
+161, 99, 22,144,185,126, 28,113,236,142, 36,142, 73, 15, 28,168,214, 97,188, 45,194,184,234, 16,103, 3,235,238, 13,240, 21, 90,
+111,202,227,147,115, 45,156,143,229,195,187, 77,249,234,116,198, 0,222,174,215,169, 37, 48,210,226,188,168,103, 21,218, 22, 80,
+172,204, 96, 85,128,110, 29, 3, 30, 88,224,250, 83, 41, 84,154, 60,235, 60, 47, 92,129,141,181, 33,169, 16,148,231,235,253,105,
+148,203,164,178,133,235,153, 38,187, 38,127, 30,186,247, 92,144,200, 94, 35,199,174,122,178, 4,237,202,116,196,127,251,135,103,
+ 18,128, 18,183,211, 54,223,117,136,178,160, 99,132,234, 89,169,224, 28, 38, 19, 3,113,137, 89,187,114, 50, 21, 27,122, 60,227,
+ 58,228,116,245,192, 34,153, 98, 64,166,134,185, 14,151, 12,234,113,148,184,130,118,195, 34, 22, 49,112, 10,241, 25, 61, 31, 69,
+125,182,119,219, 29, 94,139,147,139, 11,125,118, 42,108, 2,176, 2,201, 19,147, 33,156, 70, 96,117,128,123,117,165,133, 99,167,
+213, 98, 33, 85, 40, 85, 40,165,187,210, 36,120,163,241,240,155, 39,207,228, 39,239,189, 45,179,225, 5, 17,222, 57,218,129, 90,
+ 1,138, 6, 11,113,191, 93,171, 50, 89,194, 11, 60,159, 53,197, 60,130,222,168, 66,153,165,232,204, 84,175, 1,164, 93,129, 76,
+ 71, 1,142, 98, 7,211, 28, 36, 99,202, 21,235, 53,129,217,201,109,127, 42,223,143,134,210,191, 57, 33, 37,186,200,149,129,158,
+137,141,169, 90,226, 92, 67, 99,157, 96,188,245,146, 44,148,171, 1,238, 31,116, 20, 98, 57,108,224,181, 60,230, 26, 76,239,110,
+244, 51, 70,161,177,132, 86,129, 53, 6, 23, 23,125,185, 13, 34,153,106,193, 3,137,103,240,205, 87,107,189,230,107,143,211, 96,
+136,126, 45, 32, 6, 5, 35, 26, 8,191,228,178,108, 48,113, 15, 87, 52, 27,210,102, 8,178,180,185, 44,159, 73, 20,218,221,102,
+147,133, 9,206, 7,238, 1, 20,230,150,122,198, 62,124,251, 29,185,232,245,228,244,242,146,147,185,179,171,162,252,236,221,125,
+ 57,212,102, 25,193,107, 14,187,213,181, 9, 36, 97, 60, 78, 47, 4, 90,121, 7,242,246,157,138, 92, 22, 52,254, 65,124,105,147,
+147, 15,222,123,139,224,200,254,237,181,116,235,101, 98,184, 74,244,178,215,124,154, 74, 96,139,197, 60,124,126, 46, 18,245,186,
+ 2, 83, 64, 67, 23, 76,222,126,253,221,181,220,210, 92, 69,228, 94,183, 44,191,252, 96, 79,190, 61,153,104,130, 50,241,125,152,
+215, 55,234, 69, 38,180, 3,189,161,253,217,134, 31, 6, 65, 25,104, 84,142,178, 28,159, 14, 29, 53,198, 3, 72,128, 24,177,213,
+202, 89, 6, 42, 36, 82, 11, 74,198, 1,143, 54,102,165, 10,237,229,196,141, 81, 9,216, 10, 76,237, 7,193,232,106,188,102,229,
+103, 90,231, 30, 47, 52, 2,192,112,190, 38,112, 33,114, 35,116,163,213,153,107, 18,237, 4,157,251, 16,169, 50,161,240,189,192,
+ 11,157,210,157,211,181,204, 86, 17,187,133, 74, 25,187,219,132, 70,247,179,249,154,193, 11, 96,136, 75,237,156, 31, 30,212,201,
+143,197,235, 97,132, 98, 10, 95, 70,189,193,239, 47,111, 70, 28,195, 98,204, 50, 93,217,144,114, 5,177,102, 47,195,128,123,220,
+213, 27,213,155,200,105,111, 32,230, 39, 23,255,128, 54,100,192,176,192, 55, 74, 20,222, 43,228, 51,159,107, 69,135,157, 30,118,
+ 87,247,186, 53,251, 28,250,217, 78, 6,161,117,174,137,121,244,154,142,150,117,123, 24,213, 29,180,154,122,243,181,107, 25,206,
+228, 76, 59, 25, 0, 8, 75,154, 24,145,208, 27,205,154, 76,199, 48, 66,152,105,240,193,142,220,153,138, 68, 26,168, 54,250, 96,
+174, 80,149, 91, 18,131,162, 82,177, 96,212, 41, 92, 95,220,183, 5,198,251,142,146,182,226,200,216,246,208, 8, 54,129,181,210,
+142, 94,102,116, 19, 80,184, 34,131, 88, 51, 16, 66,215,126,219,157,111,156,202, 86, 74,200, 69, 66,216,132,252,249, 20, 93, 0,
+ 71,221,243,221, 72,219,216, 4,137, 27, 99,123,206, 96,132,231,215,117,143,236, 90, 54, 27,231,130,231, 84,188,104, 80,146,108,
+147,116, 58,118, 39, 16,173,217,146,162, 6,238, 23,167,167,250,210,199, 78,164, 71,152,208, 98, 71,155, 35, 22,132, 96, 37, 75,
+ 42,157, 86, 77,131, 78, 34, 55,183, 51,174, 60,128, 69,128,224, 68,165, 84,117,227,104,147, 17, 6, 77, 10, 69, 78, 10, 10,138,
+162,216,209,220,156,150, 59,169,158, 98, 70, 30,155,141,147, 97,205,208,236,229,197,233,185,180,106, 21, 94,239,225,100,230,118,
+246, 83, 19,208,129,252, 40, 36, 66,157,234, 24,238, 75, 45, 66,183, 98,118,184,232, 36,145,172,150,161, 83, 82,116,166, 47,233,
+174, 82, 82, 19,152,237, 62,221,123,163,227,237, 84,253, 40, 58,226, 91, 87,154, 56,251, 88, 83,245,139,157,160,148, 9, 79,165,
+ 64, 51,242,170,131, 96,187,119,165,133,113,198,119, 5,132,161,167, 1,230, 1,154,125, 64, 84,175, 48, 32, 82,130,217,141, 90,
+ 23,107, 19, 30, 33, 77,155, 44, 17,223,117, 48,193, 22,200,135, 4,134, 55, 4,118,195,112, 52,146,175, 95, 15,101,255, 71, 29,
+142,225, 95,247,102, 44, 91,154,213,146,118,118,115, 38, 16,140,125, 41, 4,165,175,128,164,146, 42, 50,102, 35,125,182, 87,115,
+201,106,199, 14, 28, 72,183,117, 71, 3,102, 95,174,135,102, 52,178, 3,111, 5, 45,242, 91,173,134,126,125,137,215,226,232, 96,
+ 87,206,175, 7,220,207,131,122,137,226, 25,147,173, 88,139,240, 74, 41, 39,117, 77,166, 97,156,149,186, 22,201, 49, 28,251,112,
+143,244,172, 3,155,154,205, 5,156, 86,130,203,143, 56, 71, 32, 32,186,103,199, 25, 18,174, 44, 76,168, 37,113, 90,240,129, 59,
+195,184,246, 44,180,128,195,200, 26,226,153,107, 68,223, 40,142, 52,128,138, 76,166, 24, 90,253,203,165,137,126, 97,106,131,241,
+175, 15, 96, 22, 25, 33, 5,222, 23, 20,157,124, 94, 33, 59, 29,175,233, 55, 65,197, 62,141, 55,231, 87,151, 82,171,212, 41, 5,
+125,122,113,169,207, 71, 67,150,218, 0,252,250,155,111,205, 81, 45, 54, 87, 53, 82,112,179,166, 75, 0, 52,120,183,174,221,225,
+218,226, 8,206, 0,166,172,214,225,218, 10, 37, 75,245,198,141,201,205, 38,118, 15,203,229, 44,215, 5,184,167,200, 0,229,218,
+129,105,211,135,240, 12,208, 14, 84,255, 46, 87,196,190, 63,224,228, 21,150,213,116, 27, 11, 34, 78,191,138, 4, 44,194,143,220,
+231,245,189,211,209,100,119, 54,150,179,235, 62,113, 23,154,222,169,111,192,149, 88,146,145,166,230, 16, 72,206, 62,216, 45, 81,
+222, 59,166, 29,177, 41,130, 82,154, 27, 69,149, 62, 63, 55, 55,151,244, 9,105,106,178,198,243, 56, 90, 78,182, 10,125, 56,126,
+ 20,203, 89, 94,179, 96,198,115,139,102, 6,221,250,209,238, 46, 11, 31, 28,104, 76,232,192, 54,185,179,191,199,213, 37, 30, 46,
+ 0, 54,255,241,203,215,242,241,131, 93,121,116, 88,147, 82,169, 98,182,199,250, 51, 86,243,132,204, 0, 36,244,200, 61,107,187,
+109,189,174,250,247,151,253,144, 93,251, 78,183,203,226, 6, 92,120,207,225,124,194,208, 84, 69, 49, 57,129,223, 70,184,145,173,
+132, 47,158, 33, 56,216, 97,154, 0,107,228, 12, 42,165,183, 14, 42,178, 83, 43, 19, 76,213, 46, 3,232, 49,230, 8,203,115, 70,
+ 14, 89,242,134, 3,154,207,223,223,173,107, 85,177,102,165,205, 10,194, 19,238,202, 17, 7, 11, 94,198,141, 98, 50,220, 49,227,
+134, 12,230,182, 7, 42,100,109, 79, 79,193,249,192,248,213,184, 17,232,204, 57,162, 74,156, 78,180,222, 80, 84,118,232,174,171,
+197, 12, 77, 81,144,236, 98,236, 59,114, 70,167, 1,175, 34,140, 87, 76, 6, 20,140,217, 24,193,156, 38, 30, 81,188,229,197, 47,
+ 89, 17,153,116, 41, 42, 35, 88,133, 6,180,221,211,167, 79, 15,121,175,191,176, 0,230,192, 67,235,201,154, 85, 27, 30,248,253,
+118, 69, 58,181,130, 3, 6, 89,196,167, 73, 71,100,194, 35, 57, 61, 33,224,133, 6,110,100,220, 42,102, 73,105,105,214,114,154,
+132,214, 68, 75,175, 52,137,102,169,210,180, 97, 55, 45, 70, 22,225,251,131, 95,245,237, 52,224,255, 7,122,190, 94, 14,164,169,
+159, 55, 10,242,236,134, 86, 27, 19, 98,129,245, 43, 94,199,119,187,172,192,207, 75, 89,175,229,209, 78, 67, 62,124,176,175,223,
+ 87,144,247,247, 43,146,211,215,249, 15, 79, 46,229,119,207,110, 73, 13,138,220,232, 15,251,154,217,122, 98,224, 61,177, 42,143,
+193, 26,116,145,122,133,247,183,172,135, 14,157, 57,146, 6, 45, 33,105,113,105,252,236,114,185, 74,132, 54,146, 35, 14, 57, 19,
+ 96,198,146,118, 24,133,110, 36,236, 60,160, 61,163,234,144, 55,190, 29,223, 90,176, 66,122,129, 34, 27,128, 62,137, 75, 42,230,
+ 82, 23, 18,177,235, 57,173, 88, 60, 60, 43,154,122,248, 28,127,231,115, 70, 39, 17,151, 32, 19,139, 32,252,115,140, 91,145, 76,
+145, 28,193,117, 77, 25, 9,169,188,101,198, 81,232,240,126,128, 88,125,165, 9,189,152, 53,151, 55, 27,245,155, 1,140, 56,157,
+107,140,175,152, 8,181, 96,193, 57,232,107, 17,152,211,194, 21,202,121,161,190, 70,174, 80,230, 3,180,211, 40,201, 59,251, 85,
+249,246,114, 78,110, 45, 39, 20, 97,226,244,219,109, 31,206,253, 35,174, 63,248,231,203,229, 86,133,125,229, 36, 50, 49, 94, 69,
+ 55,134,194,233,188,119,163,137,168,202,247,196,226, 55, 8,152,128,124,103, 34,130,247,226, 72,148,236, 40,113,141, 64, 37, 77,
+199,160,158, 39,219, 49,185,239,240, 6,233,117,240,222, 48,236, 89,204,130,161, 98,232,119, 19,125,207,184,206, 38,138,173, 8,
+ 50, 51, 21,217,162,235,109,165,230,166, 77,129,141,235, 1,175,128,146, 24, 69, 93, 36,222,222,171, 36, 50,128, 36,182, 49,164,
+223,101,196,249,192, 39, 44,170,201, 21,119,235, 3,118,160,142, 81,227,180,172,248, 25,249,124,225,123,243, 1,215, 87,184,183,
+ 72, 38, 23, 55, 67,121,118, 93,146,159, 63,172,235,121, 78, 72,241,219,209,162, 43,151,213,100, 5, 92, 74, 41, 79, 19, 40, 40,
+170,225,243,228,156, 56, 13, 98, 71, 94,219,253,217,100, 36,123,135,135, 26, 88, 87, 82,173,183,181,171,159,209,222,185, 91,203,
+203,203,211, 11, 77,236, 69, 78,100,102, 90,216,147, 42,139,201, 76,174, 64,191, 0,178, 81,124, 4,220, 5,147, 74,181, 4,145,
+151,178, 60,127,121, 43,135,187,123, 60,123,217, 92, 68,208, 29,158, 37, 88, 49,163,139, 10,157, 12,231,198,141,224, 3,242,248,
+ 83,191,130,220, 22,113, 45, 57, 83,119,196,202,140, 60,239,140, 81,221,214, 0, 35,130,230, 68, 25,209,133, 43,162, 77,119, 30,
+221,255,138,110,127, 9,159, 69, 92, 39,160,245, 87,115,125, 70, 39,115, 43, 6,244, 25,120,180,223,145,215, 23,215, 44, 60, 1,
+134,198,250, 66,143, 28,197,163,150,203, 49, 11,241,254, 96, 32,167,231, 23,114,180,119, 71, 30, 29, 95,201,239,191,127,234,220,
+253, 28, 37,210, 77,195,128,130,255,143,143,141, 50, 23, 80,111,220,214, 56, 24,133,163, 40,201, 18,180,252,198,187, 33,235,172,
+178,163,217,130,211, 76,232,216,147,117,145, 95,107, 44,168,107, 34,188, 35, 7,187, 77, 78, 99,187, 26,111,197, 51, 38, 10, 58,
+116,147, 12,247,181,208, 93,105,178,155,201,159,125,116, 87,254,240,244, 86, 11,150,172,198, 55,237,106, 51, 9, 99,204,130,114,
+217,246,204,213,203,121, 78,143,177,190,196,117,223,223,209,103,244,197,153, 54,130, 11, 54, 6,240,188, 71,117,189,142,225,148,
+184, 33,104, 18,248, 15,216,184, 2, 75,226,109,121,247, 17,229,106, 19,230,191,212,222, 56,203, 73, 11,157, 26,197, 12,159, 76,
+113,207,192,179, 88,133,192,136,166,221,172,211,114,247,251,151,175,100,176, 60,144, 11,253,242,189,120, 72,149, 80,174,204, 48,
+217,128,106, 93,161,192,132,141,105, 7, 42,107,224, 48,238,238,234,121,211,166,249,180,167,197,130,254,252,219,126, 34,237,238,
+158,220,246, 46, 77,251, 31,231, 80,115, 48, 62, 35,196,216,192, 66,192,243,142, 41, 26,154,239, 39, 39, 87,250, 26, 90,200,252,
+229,253,206,255,250,231,143,186,172, 32,191,191, 24,179,234, 58,131, 8, 12,101, 94, 3,202,229, 33,208, 96,151, 4,133,184,144,
+149,151, 86, 22,205, 42,111, 38, 70,193, 84, 72,130,233, 67,198,223, 6, 15,207,117,165, 52, 55, 32,197,202, 64, 59, 0,183,101,
+157,118, 48,149,220,128,212,196,207, 7,253,193,183, 61, 54, 18, 60, 10,131, 48,178, 93, 28, 85,219,192,197,244, 77,166,149,251,
+145,141,201, 91,178,170,194,152,126,109,251, 71,116, 67,184,216,232,112,208, 93, 66, 34, 18,230, 14,182,235,138, 41,136, 16,186,
+238,141,202, 70,113,178, 21, 49, 9,156,189, 39, 10, 0, 0,232, 80, 12,176,139,116,159,139, 59, 73,162, 14, 23, 91,215,169,150,
+118, 5,248, 12, 7, 68,232,102,184, 95,189,210,142,249, 28,146,150,120,157,200, 52,185, 99,121, 99,196,145,213,196,140,105,114,
+ 49, 19,115,164, 84, 41,230,228, 78, 83,111, 6,208,232,188, 86,216,243,151,229,110,167, 42, 31, 30,212,120,205,225,251,188, 91,
+ 47,201, 95,125,116, 95,254,217, 79,238,203, 71,247,119,104,123, 57, 91,107,151, 61, 93, 82,188,227,173, 59, 59,242,254,113, 91,
+ 15, 92,158, 32, 71, 60, 20,197,188,207, 61, 19,168, 73,101,112, 39,181,154,107, 54,234,236, 70, 90, 90,161,114, 76,230, 70, 79,
+ 24,113,219,181, 48,138, 23, 14, 61, 70,226, 16,156,153,207, 23,219,113, 47, 69, 58, 36,113,166, 21,182,223,230,152,221,137,105,
+ 64, 4, 1,149,126, 1,123,103, 45, 10, 64,153,219, 86,192,113,180, 21, 64, 9, 24,104,108, 82, 3,208, 15, 68, 68,114, 57,243,
+ 36, 71,194, 37,248,203, 33,177, 19, 55,149,137,221,216,217, 68, 35,140,126,181,116,133, 2, 10,132, 10,181,224, 51,230, 93,238,
+116,227,179, 78, 15, 30, 94,235, 16,185,248, 79,254,228, 33, 71, 97,120,152,125, 39,164,132,207,139,253,170,173, 14, 60,249,205,
+151, 47,229,162, 55,162,206, 1,212,170,226,213,130,232,230,108,161, 36,159,188,181, 47, 31, 60,232, 82, 99, 0,137, 14, 58,213,
+ 24, 65, 2, 12, 10,213, 67,236, 11, 95,158,247,229,228,122, 72, 67,146,192,105,132,110,156, 23,180,200, 27, 20,127,226, 56,215,
+177,243, 69,199,207,201, 56, 39, 41,200,226,210, 97,106,179,217,250, 10,120, 41,178,221, 51,174,117,170,149,159,142, 26, 18,199,
+ 77,223,142,222,205,126,201,116,234,221,144, 36,114, 56, 17, 47,245, 72,112, 58, 13, 28,197, 7,142,162,232,206,109, 22,214,175,
+ 98, 1, 52,231,232,126,185, 92,214,145,229,196,241,252,205,114,212,115,234,126,190,163,202, 81,204,201,183, 93, 37,215, 89,156,
+ 46, 24,206, 34, 37,143,252, 80,231, 63,149,251, 37,130, 90,223, 47, 10,155,144,138,105,121,126,207,149,118,212,247,119, 74,178,
+175, 69,213, 89,127,198,216,128, 14,107,130,128,172, 55,162, 94, 45,114, 69,130,184, 69, 15,138,140,201,152,130, 82, 11,237,121,
+ 96, 74,192,241,198,185,163,181, 71, 18,178,112,255,238,213, 13, 99, 23, 94,239,246,182, 71,112, 20,196, 65, 96,170,132,181, 32,
+ 60,175,233,136,149,216,228, 14,147,179,187,123, 53,142,161,167, 90,144,142, 70,183, 4,196,101,243,101,202,246,142,102, 19,142,
+187,195, 40,118, 66, 74,111, 60,115,253,140, 97, 68,112, 70, 1, 58,132,153,137, 73,235, 70,182, 71, 37,144, 49, 50, 58,233,106,
+227,240, 44, 89, 78, 13,166, 48,141,114, 73,135, 69,148, 88,209,151,210,141,215,161,249, 66, 0, 84,139,215,221,235,180, 89,160,
+158, 94,246, 88, 68, 84, 74,101,254,127,232,193,151, 52,169, 98, 85,232, 57, 10,236,213,213,185,180,218, 59, 90,220, 23, 36, 90,
+141, 53,214, 23,216, 48,160,160, 66,140,131, 87, 1,180, 51,214, 78,142, 59,165, 4, 51, 52, 38, 54, 25,202,229,140, 33, 33,108,
+226,178, 4,130, 98, 10, 85,226, 14,189,164,191,175,106, 18,239,202,193,222,158, 84, 42,117, 26,245,148, 43, 13,185,179,219, 32,
+168, 14,171, 7, 76,125, 96,106, 53,214,152,115,222, 27, 50,158,255,183,127,245,161,252,226,147,119,248,252,189,210,231, 10,182,
+224, 23,183,147,173,149, 43,206, 75,200,231, 39,103, 14,137, 0,168,105,195,137,159, 11,193, 44,176, 77, 74,133,141,225, 26, 48,
+222,215, 38,176, 92, 41,201,241,241, 93, 9,244,250,250,226,111,177, 83, 22, 83,204, 81,109,229, 12,197,168,189,160, 95, 95,160,
+159,135,173, 4,111, 71, 99,210,118,169,206,168,213, 43,146,125, 69,175,217,154,140, 0,107,118,207,174,174,248,249,112,198, 52,
+115, 18, 59,130,154,199, 38, 0,107,227,200,235,123, 45,151,236,140, 98,149, 4,167,210, 78,187, 12,151, 16,222, 71,155, 18,121,
+148,103,198, 36, 0, 69, 53,186,118,147,228, 13,232, 65, 65,234,174, 99,252,144, 83,255,224,176, 37,191, 63,153,106, 21, 60, 98,
+146,123,124, 13, 5, 38,251, 2, 84,185,139,120,185,221,123,178, 66,228, 27, 54, 57, 62, 34,228, 67,140,101,204,236, 32,147,250,
+ 58, 19,168, 20,210,189,135,181, 60, 22,136, 81,192,234, 36, 16, 51, 95, 97, 0, 2,143, 27, 64, 42, 84,174, 57,187,169,222,198,
+ 56,126,208,129, 62,133,163, 18, 21,172,124, 86, 78,216,147, 3, 88, 17,185,174, 48,198,152,203,183,215, 53,217,194,100,107, 94,
+129,155,129,113,137,135,145,148,192,166,206,246,127,144, 72,149,212,155,251, 7,255, 48,188,122, 41,170, 58,230,232,236,250,102,
+162, 5,193,146,201,179, 85,201,209,240, 97,166,157,225, 96,186, 48,153, 74,125,239,123,149, 37,193, 29,227, 33,246,228, 27,142,
+221, 32,239,248,168,145,147,142, 30,228,255,240,186,255,198, 57,203,189, 22,166, 12, 24, 83, 2,155,144, 1,189, 43, 83,144, 23,
+195,141, 38,219,174,236, 84,244,218, 77,135, 68,238,163,171,173, 65, 3,187, 33,242,104,167, 37,123,221,182,236,239,237,152, 70,
+ 52, 36, 41,225,120,165,137,229,122,184,150,223,188,188,225,195, 52,156,152,221, 31,237, 98, 41,138,161,135,101, 2,245,174, 60,
+253,161,225,150,103, 30,218, 9, 15, 36, 80,219, 16,163, 49,105,219,149,243,234,141,196, 8,121,166, 91,206,164,153,200,182, 40,
+ 89,187, 93,181,239, 7,206, 69,205, 44, 84, 37, 69,146, 59,244, 54,193, 89,145,117,192, 40,176,226, 45, 32,202, 12,105,144,152,
+172,227, 78, 56,217,200,147, 14, 39,214, 93, 39,230,120, 5,185,205, 84, 61,142,162, 12, 14,217,142, 7, 14, 93, 58,146, 85, 33,
+151,219,142,152,233,133, 7,128, 99,232, 36, 43, 97, 50,161,159,241,242,230,150, 73,159, 14,101,238, 33, 6, 5, 50,118,252, 95,
+ 32,133,113, 93,209,153,227,190,130, 58,243, 37,196,107,244,103, 55,235, 26,192, 91, 77, 6,161,154, 6,183,150, 38,143, 91, 34,
+ 78,215, 82,205,250, 20, 1,130, 15,250,158, 86,233,245,122,129, 19,165,102,173, 46,111, 29,113,217,196, 14,202,115,178,169, 40,
+ 24, 32,234, 4, 48, 82, 41,111,221, 46, 86, 64, 55,195, 1, 19,230,138,178,180,115,126, 46,140, 87,241, 53, 8, 40,232,204, 73,
+ 73,244, 18, 82,183,104,194,130, 81,252,204, 5,247,237, 96, 61,249,255,157,235, 55,166, 57, 4, 78, 70, 54, 86,183, 47,139,216,
+129,224,185,199,103, 70,240,202, 82, 27,222, 58, 20, 43, 60,173, 96, 0, 16, 13,171, 25,142, 93, 19,243, 94,136,220, 8, 54, 33,
+ 48, 48, 75, 27,208, 77, 90,208,115,239,231, 17,216,186,118,163,246, 55, 15,129,117,174,166,144, 99,123, 65,156, 39, 17,139, 5,
+ 0,227,225, 28,152,121,136,231,220, 10, 19,242,174,255,205,239, 78,229,127,252,139, 99,249,209,189,174, 60,191, 28,233,189,200,
+147, 30, 8,132,125,171, 94,209,103,115,206,241, 55,198,148, 16, 56, 90, 65, 6,153,236,132,172, 94,215, 41,209,244,208,225,200,
+151,170, 82,213,243,112,222, 95,145,243,172,229,184,158,153, 5, 19, 0,194,123, 9,157,233, 98,200,113, 45, 26, 4,140,113,113,
+205, 17, 27,241,124,116, 42, 25,142, 96,161,115,222, 31,244, 53,233, 85, 57, 37,124,242,226, 37,113, 51, 37,226, 67,132, 99,123,
+ 4, 95,210, 40, 61,135, 33, 0,141,116,101,186,222, 24,155,167,244,215,148, 26,202,201, 22,198,222,129,121,151,131,234,185,118,
+197, 91,106, 29,234, 59, 42, 33,208,239, 40,196, 64, 41, 68, 2, 12,168,218, 24,177,152,190, 28, 76,164,215, 63, 37,203, 35,165,
+ 67,194, 83, 61, 91,201,147, 94, 88,215,175, 57,108,109,228,235, 23,215, 92,133,129, 77,156,203,117,228,207, 62,126, 95, 70,195,
+ 1,159, 85,168, 3,146,186, 25, 39,196, 76, 28,118,234,242,226,114,192, 85, 44,166,166,187, 53,163,111, 97,109, 14, 58, 49, 62,
+231, 58,242,137,151,218,197,254, 29,137, 30,200,253,141, 77,121,104,126,149,245, 89, 68,223, 96,101,120,165,221,255, 31, 95,209,
+169, 12,160, 91,161,192,138,198,125, 8,105,233,217, 0,170, 31, 77,196, 68, 99, 46, 40,134, 47, 95,107, 27,123,212,150,110,171,
+ 35,215,215, 87,204, 31, 89,228,149, 76,222,226,116,213, 18, 63,197,159,226,140,198,204, 29,160,120,152,131,226, 24,184,144,141,
+212, 98, 77,134,173, 29,201, 97, 50, 25,197,204, 75,211, 25, 10,185,132, 49,133,120, 35,125, 22,160, 25, 49,165,229,107,137, 52,
+220, 40,213,222, 16,143,207, 52, 98, 95, 31,216, 0, 36,244, 82,137,197, 22, 24, 76, 52, 70,210,123,177,215,237, 80,131,191, 86,
+186, 47, 71,117,205,127,176, 80,117, 83, 58, 78,111, 35,147, 55, 7,198, 96,175, 83, 38,109,243, 82,243,111,171, 89,214,184, 14,
+ 15,249, 2,115,162,120,123,164, 30,222,244,251, 90,184,162, 0,240, 52,254, 44,164,222,104,243,125,162, 9, 70, 83,181, 38,168,
+ 86, 11,155,127,253,251, 51,138, 2, 64, 65, 12,143,226,106,153,200,100,105,212, 25,208,184,208,169,161, 34,181,128,224,105,199,
+ 44, 4,190,145,240, 66, 96,134,255, 70, 50,208,247,157, 16, 9,130,129, 73,137,146,143,154,202, 96,112,199,153,144,230,133,206,
+ 30,221,100, 64,250,141,105, 13,251,174,163, 9, 28,248,103,236, 56,225,201, 38,203, 46,158, 0,170, 31,120, 16,167,241,203, 12,
+ 60,196, 33,244, 3, 38,229,249,108, 67, 16, 91,222, 1, 82,240, 0,114,160,224,198,177,169, 22,118,236,132, 57, 76,180,195,194,
+163, 79,187, 72, 67, 99, 35,121, 19,160,167, 1, 5, 85, 43,186, 48,186,188,113,133,238,113,172, 4, 52, 61,138,161,102, 41, 43,
+ 71,122,209,235,218, 29, 39,155, 37,199,175,111,184,195,118, 24,160,213,142,253, 37, 38, 24,197,122,147, 78, 74,228, 27, 67, 86,
+ 82,255,252,249,249,128,211,132,185,126, 63,170,183,198, 29, 77,244,218,157,224, 97, 41,104, 37,136,131,134,135,188,232, 30, 22,
+184,255,172, 22,144,135, 92, 83, 91, 27, 83,137,216,129,179, 82, 32, 20, 46,119,177, 92,145,172,254,154, 79, 46,152,216, 42,168,
+162, 27, 77,142,134, 67, 87,225,147, 74,197,202,215,198, 74,236,194, 35,147,216, 76,105, 21,169, 54,117, 74, 21, 75,221,210,108,
+204,109,174, 81,121,253,217,115,208,226, 48,182,102,242, 93,147,227,238, 57,223,223, 31,114,212,233, 90,134, 32,229,153,202, 24,
+ 45, 77, 61,211,209, 71, 98,206, 58,153,225,196, 21,139,177,115,115,131,138, 32,164, 27, 73,165,115,217, 11,239, 33,116, 93, 30,
+206, 45,215, 61, 76, 88,177,163,124, 9,149,155,224, 63,143,206, 37, 5,212, 89, 33,231, 59, 65, 13, 11,126,252,204, 8,100, 20,
+ 53,202, 81,209,106,175,211,145, 59, 59, 69,185,211,206,202,201,213,132,133,231, 58,244,100,159,118,171, 62, 1,110, 59,173,178,
+220, 57,218,149,219, 49,206,112,138, 90, 23, 83,121,155, 45, 28,213,206,185, 51,105,242,206,102,108,189,192,253,218,102,197,224,
+209,134, 16, 13,130,169,126,239, 84, 19,202,110,187,206,164,116,163, 65,122,229,212, 4, 57, 34,134,186, 88,197,119,184,150,141,
+147,212,117,123,240,216,166, 89,169, 15, 59, 71,133, 40,140,210,209, 60,243,186, 61,103,248,204, 20, 53,201, 4,118, 94, 92,145,
+ 64,163, 14, 4,141,216,156,162, 48,193, 2,195,227,160,153,215,224,156, 97,144,198, 53,192, 14,246,108,176, 50,189,118,112,173,
+ 33, 46, 21,216, 8,149,171, 43, 36,154, 84, 68,200,137, 19, 37, 78, 73, 48,181, 54, 54,206,191,129, 82,241, 47, 10, 8,220, 71,
+156, 57, 43, 62,139,188, 70,207,245,186,255,230,241,181,252,151, 63,125,160,113,203,119,114,200,190, 12,181,147,205,218,154,211,
+ 94,211,211,243, 58,139,104, 97,137,130, 3,227, 74,140,108,135,131,158,230,139, 10,239,193,209,193,129, 38,134, 75,118,137,152,
+170,133,203,185,113, 84, 54, 88,237, 85, 12,116,138, 56, 5,122,216, 38, 71,101, 61,116,144,152, 28,156,244, 18,118,176,120,197,
+ 74, 77,159, 99, 96,136,224, 63, 1, 81,168, 5, 10,216, 58,215, 83,184,135, 57, 71, 25,140,220,232,220,166,139,102,178,131,206,
+ 52,240, 13,159, 68,157,115,184, 63, 58, 63,138,106,177,161, 29,117, 75,206,110, 6,148,131, 21, 39,252, 51,209, 46, 49,175,231,
+ 24, 92,117,138,217, 4, 14,128, 23, 4,174,208,246, 41,148,130,115,143,233, 42, 65,180,154, 48,219,141, 58,207,244,203,139,158,
+158,211,182, 12, 53, 86,228,181, 0, 56,212,206,112,174,143,246,179,151,175, 52, 81,116,244,117,171,242,248,236,137, 60, 59,189,
+ 34,226, 58,227, 98, 57,183, 96, 40, 74,181, 99,197, 42, 22, 84, 99,196, 35,208, 27, 3, 39,233, 76,106, 45,167,120,193, 27, 31,
+ 3,253,255,240,234,192, 58, 53,200,198,164,235, 34, 89, 3, 32,119,247,206,123,146,113, 13, 21, 88, 66, 96,216, 0,236, 23,100,
+244,217,212,103, 11, 86,192, 79, 95,158,179,185,184,153, 21,120,127, 32, 27,252,214,110, 77,118, 26, 6,124,165, 32, 78,222,112,
+ 10, 88, 25,183,235, 29, 98, 14, 96,245, 90,169,212,228,206,225, 29, 78, 91,208, 33, 91, 30, 91, 91,204, 91,244, 41,181,155,104,
+178,175,104,108,135,126, 59,166, 33,145,158,133,145,158,167,173, 57,148, 47,148,144,197,179,202, 34, 51,177,169,154,157, 99,111,
+ 43,246, 67,133,199,140, 93,127, 92,143,107,109, 36,186, 90,232,127,254,205,119,210,219,219,149, 31,223, 45, 81, 65,143, 56, 20,
+114,227,109,210, 80, 45, 21,244,217, 94,208,187, 4,207,207, 84, 11,152,114,165, 32,221,122,150,134, 71,185, 6,254,188, 41, 29,
+ 24,219,120,107, 98,185,142,192, 2,211,226, 4,147,232,235,219,177, 25, 92,177,225,153, 73, 6, 34, 17,224,187, 97,215, 13,160,
+201, 98,177,225,206,108,175, 93,100, 18,215, 91, 74,241,120,227,189,190, 41,182, 41, 82, 64,228,139,191,213, 2,198,141,143,156,
+181, 99, 74,149,193,195,201,145, 6, 5, 1, 98, 55, 12,180, 74, 52,135, 61,140, 62,216,137, 3,202,164,198, 30, 57,223, 1,179,
+176, 59, 28, 47,244,198,154,171, 18, 60,192, 77,202,211,116,177, 35,103,134,192,241,172, 3,162, 25,101, 42,230,148,225,163, 59,
+134,252,190,157,139,227, 65,122, 20,249, 73,169, 64,244,135, 15,222, 0,238, 56, 6,139,147,109,130,139,157,237,161,185, 24,249,
+ 84, 86,211, 80, 67, 76, 0,119,159, 25,227,161,231, 25,204, 53,184, 87,179,220,189,246, 0, 86,240,204, 74,241,142, 86,171,216,
+255,225, 97,194, 72, 8, 2, 36,144,104, 69,145,210,159,207,121,136,160, 84, 6,149,161,193,120, 46, 21, 45, 8,238, 63,216,211,
+228,209, 50,131, 6,189,185,160,171, 12,180,176, 64,119,138, 84,181, 4,151,126,190,162,231,240, 42,220,184,134,199,204, 17, 22,
+161,137,255, 35, 57,178,120,208,135,186, 2, 6, 3, 70, 70,250,160, 47,136,222,246,185,223,186,133,185,128,155, 34,144,170,150,
+200,214, 80,101,181,154,153,218,154,200, 86, 4, 37,245,125, 78,145,226,169, 85, 40,196,116, 16, 92,185,139,218, 24,130,156,175,
+ 17,174, 13, 40,230, 38, 49,248,103, 78, 1,141,165, 62, 68, 21,179, 86,116,194, 66, 81, 98, 66, 13,158,147,242, 76,213,179,208,
+ 9,129, 66, 2,173,237,172,115, 43, 19, 42,207,153,131, 32, 58,188, 76,222,120,219, 76,218,232, 54, 3,179, 34, 69,162, 67, 5,
+141,235,134,207,132, 53, 15, 20,194,150,174,163,161,195, 26, 18, 29,118,236, 65,198,117, 72,154, 8,244,190, 32,225,227, 94, 33,
+ 48, 94,244,135,210,109,180,236,220, 45,103,122, 46, 43, 26, 32, 81,104, 9,121,236, 90,199, 11, 36, 65,144,196,112,253,177, 79,
+ 29,107,229,223,211, 14, 28, 5, 66, 38,101, 97, 44, 87,188, 70,105, 49,100,130, 50, 9, 71,215, 16,155, 1,215, 25,103, 19, 35,
+ 75, 8,172,192,216, 98,170,247,235,213,101, 79,238,237,182, 9, 62, 29,105,161, 52,221, 24, 66, 28,221,105,222,141,250,240,153,
+230,110,125,176,113, 1,134,133, 17,206,202,182,195,144,237,138, 41,213, 32,127,211, 57, 27,214, 99,169,247, 29,227,107,156, 79,
+ 24,181,224,245,233,139,237,144,218, 43, 77,110, 40, 98,237, 30, 11, 71,146,166,149, 30, 83,222,153, 24,133,212,155, 32, 48,164,
+253,198,113,209,185,138, 72,220,179, 26,219, 57, 49,212,190,183,149,206,141,156,142,255, 15, 93,252,138,197, 12,199,218,133, 28,
+ 38, 11,107,249,238,116,162, 73,221,147, 35, 45,160,158, 95,141,229,160, 93,211,235,151, 37,163,165, 94, 46, 58,115, 20, 43, 28,
+141, 2,102, 70, 34,164, 43,105, 0, 95,175,124, 57,216,223,231,235,236,237,180, 53,201, 93,114,234,133,113, 52,154, 2,116,103,
+133,226,194,108, 97, 25, 83, 12,231, 17,210, 53,109,173,113, 96,197, 14,107, 85, 64, 96, 54,235,217, 17,252,224,139,117, 34,150,
+125, 23,228,241,156, 35,182, 96, 7,143,105, 14,186,233,193,120,170, 49,109,206, 73, 13,126,254,129,118,101, 72, 10, 0,253,225,
+249, 13,156, 22,130, 61, 75, 90,176, 71, 62,165, 89, 55, 97,180,101, 23,250, 44,136, 12,235,208,215,226, 25,147,156,120,123, 61,
+ 35,234,170,175,245, 62,146, 34,235, 7,206,108, 43,166,221,104, 93, 27, 9,176,119, 48,197, 4, 45,115,164, 77, 92,129, 52,206,
+181,118,131, 7,148,132,246,186,251,242,240,222,125,121,125,121,237,116, 31,132,147,138, 53,141,187,124, 54, 57,191,253,246,132,
+159,193, 40,192, 92, 11, 91, 44,246,157,239,131,231,176, 3, 80,159,131, 47, 69,184,148,165, 54, 10,225,108, 99,178,225,146,221,
+138,216, 28,116,118,164, 81,207,235,231,200,243,204, 64, 31, 29, 53, 48,146, 62, 48, 13, 88,241, 2, 53,255,237,243, 51, 22,151,
+ 72,174,208, 13, 56, 62,216,225,136, 63,113, 30, 5, 84, 94,212,100,215,108,230,216,108,226,247,192, 12,212,171, 38,244, 52,157,
+ 21, 76,180, 11, 88, 43, 96,180, 50,121, 42, 18, 98, 50,133, 53, 40,124, 11,178,165, 12,253,209, 65,111,174,148,189,173,223,124,
+ 10,190, 69,172, 40,105,145, 15,163, 45, 54, 16, 14, 88, 11,189,135,212, 41,146,114,224,121,172, 0,109,181, 5,172,193,149, 22,
+102, 79,244,188,124,124,140,243,105,203, 88, 26,228,136,177,120, 54, 14,140, 13, 41,239,241,204,138,142, 78, 21,190, 24,121,185,
+153,218,185,169,148, 27,178, 91,197,245, 93,104,131, 81,163,241,144,166, 7,141,107, 17, 71,247,184, 38,240,100,200, 96,193, 78,
+ 14, 53, 4, 36,178,102,194,192,138, 93, 47, 54, 42,177, 74,201,132, 83, 50, 78, 20,102,229,248,176,166, 56,133, 31,152, 48,129,
+109,156,134,116, 22,157,183,255,198, 84, 2,193, 51, 74, 77, 11, 2,223,121,228, 58,241,133,172, 9, 91,172,163,196,249, 6,248,
+220, 81, 2,100, 87,243,179,114,158, 15,101,132,177,156, 22, 28, 16,143,121,118, 54, 48,148,172,231,100, 53, 82,112, 86,242,102,
+162,104,174, 79, 9,229,245, 80, 1,130,195,218,156, 65,120, 98,237, 30, 6,163, 6, 37,190,241,215, 17,228,114, 14, 24,156,120,
+182,247,180, 49,190,184,177,147,237,170, 48,110,123,183, 91,225, 23,126,121,177, 36,226,146, 14, 85,122, 83,119, 59, 13, 57,216,
+109,177, 18, 28,205,178, 76, 44,160,173,128,230,241,176,108,174, 79,196, 34, 20,172,115, 43,229, 76,120, 1, 81, 17,104, 69, 32,
+120,123,253,185,118, 27, 48,246, 88,240,154,212,202, 57,118,243, 64,238, 99,239, 21, 91,175,199, 4, 80, 43,228,104, 88,211, 27,
+205, 24,172,240,179,168, 59, 30,216, 4, 1, 9, 34,163, 31,170, 94,170,146,154, 5,241, 9, 60,240, 72, 20,148, 24,116, 15, 56,
+ 19,120, 96,201, 18,166, 16,240, 42,174,148,107, 6, 10, 17,227, 31, 35,208,226,224,198, 73,142, 99,244, 48,140,182, 34, 39,182,
+ 83,205,144,122,100,227,117, 83,126, 75, 45, 83,209,221,134, 78,138, 55,112, 98, 44, 20,155,209, 34, 38,113, 9,213,243, 83,117,
+ 66,243,189,246, 29,184,198,138, 68,251,250,208,241,178,205, 57, 44, 54,164,185,211, 71,160,120, 10,247,206,161,117,169,110,170,
+176,164,235,217,218,130,235,124,201,251,219,168,213,205, 57, 78,171,246,177,118, 59,101, 61,235,152,220,140, 70, 61,130,156,104,
+176, 33, 38,111,137,160,135,207,132,179, 82,228, 56,189,194,125,252, 91,119,139, 16,231,150,171, 87, 55,228, 72,183,155, 77,185,
+126, 61,101, 18,132, 5,241,124,145,227,248,112, 4, 3, 14,189, 25,133,146,169, 41, 78, 52, 56,153,244,173,118,167,244, 73, 94,
+ 80,123, 26, 29, 34, 65,115,250, 52, 98,251,129, 98,236,102,104,221, 29,174, 15, 4,105,208, 13,125,249,114, 65,234, 85,202,123,
+198,207,162, 1, 8, 60,196,179, 86,200,228,156,127, 59,158, 81,124,118,154,131, 80,201,204, 64, 79, 27, 87,164,110,213, 32, 61,
+113,123, 62, 71,207, 19, 83,124, 35, 88,109,101,231, 10, 93,240,194,217,205, 98, 21,129,253, 46, 24,231,232,166, 76, 90,217,220,
+245,176,223,142,220,253, 1,117, 9, 6, 35, 25, 9, 92,233,224, 59,252, 69,226,158, 95, 32,144,157,232, 12, 65,178,111, 12,104,
+ 2,183,135, 55,246, 66,196, 93,183,159,154, 53,133, 25,211,205,152,172,228,201,197, 84,126,249,163, 67,153,172,180,243, 91, 39,
+ 44,254, 34,160,130,245,243,160,131, 35,189, 13, 83,158, 68,139,157,217,204,126, 38,214,134,192,143,120, 43,233,247,111,197, 7,
+229, 83, 63,199,225, 78, 87,190,121,118,194,241, 59,146, 1,216, 61, 24,107,163, 72,203, 58,110, 49,138, 52,202,236, 38, 17, 93,
+ 9,251,195, 12, 1, 81, 88, 13, 46, 19, 99, 4,157, 15,134,148,122,174,233, 61,199,153,203,162,147, 79, 92, 76, 2,230,200,207,
+146,226,167,119,155,159,141,222, 13, 64, 66, 99, 34,130,145,110, 46, 75, 28, 17,126,150, 93, 91, 97,108,196,125, 92, 83,189,207,
+ 49,136,220,116, 17,241, 9,211, 30, 88,143,162, 88, 78, 25, 13,144,164,206,228,138, 76, 92,197,130,231, 92,242,180, 0, 24,220,
+ 18,231,130,238, 29,251,234,123, 71, 71,134,135,152, 27, 40,173,219,110,107, 87,252, 82,191,183, 44, 59,205,150, 28,239,238,144,
+237, 17,184,100,157, 2,125, 17,155,128, 57, 66,151,136,226, 57,155,243,183,103,138,197, 28, 88, 80,129, 9,146, 33,113, 97,154,
+147,105, 52, 12,196,169,127, 86, 43,151,248,245,245, 90,141,211, 71, 9, 74,164,146,193,143, 33,220, 44,157,239,194, 82, 6,147,
+ 25,175, 59,228,185, 23,208,101,215, 6,239,120,239, 64, 11,128,146, 28,237,192,203, 92,187,108, 47,195, 24,137, 56, 77,111,134,
+ 92,214, 77,129,108, 50,132,115,129,149, 22, 18,183,169, 90, 6, 92,139, 20,181,216, 39, 94,138,120, 34,155,158,210,187, 32,107,
+ 13,202, 81, 43,207,231, 0,114,183, 0, 92, 83,214, 90, 98, 78, 67,193, 95,207,240, 1,218,176,225,146,196,132,158, 86,243, 33,
+155, 79,208,164, 79,174, 39, 60,215, 56, 7,136,187,216,193, 35, 7, 93, 79,107,178, 87, 5, 75,195,176, 41, 40, 18,240,254, 58,
+221, 38,241, 10,104, 0, 11,249,128, 5,222,100,162,247, 86,175,237, 13, 86,144,139, 21, 65,182,211,169, 94,215,213, 64, 6,218,
+ 48,128, 66,232,103,160,218,218,144,159,190,127,151,141,225, 88, 27,129, 76,106,226,128,209, 50,110,128,209,194,188,173,158, 53,
+146, 0, 21,161,144, 64,157,129,131, 9,206,167, 40, 28,127, 75, 47, 99, 23,109, 53, 0, 35, 6,144,194, 27,103,196, 97,226, 11,
+129,187,224, 1, 31,190,112, 97,178,165, 25,118, 96, 49, 71,181, 72, 52, 0,156,181,243,101,233,205, 55,124,176,144,115, 65,117,
+107,151,178, 20, 3,225,200,223, 79,182,202, 93, 38,139,105,137, 29, 55, 98,145,216, 88,227,114,170, 21,148, 38,210,124,102,101,
+ 93,104,198, 70,149, 25,215,129,162,144, 73, 60, 19, 89, 72,182,158,211,241,118,148, 68, 74, 20, 65,120, 27,138, 39, 28,214,180,
+123,154,135, 28, 73,117,234, 69,118,159, 80,177,194, 67, 28, 56, 52, 53,130,191,233, 73,196, 20,159,192,193,194, 78, 86, 76,107,
+139, 43,130, 18, 1, 21, 17,171,178,210,218,232, 62, 1,246,143,203, 88,134, 27,171,208,113, 45,240, 38,231,161,185, 92, 45,230,
+107, 62,224, 5, 4, 29, 13, 16,184,161, 72,100, 86, 73, 39,182,203,210, 3,230,107,254,170,107, 23, 89, 44,149,153, 48,134,227,
+145, 1, 22,183,202, 97, 78, 21,208,115, 54,153,148,207,181,224,159,101,183, 42,230,129,238,155,160, 75,226, 92,220, 82,151, 49,
+217,118,232,241, 22,212, 70, 37, 44,124, 99,108,244,154,181, 75,166,171,181,117,234,161, 43, 4,169, 20, 6,153,218,156,157, 47,
+128,127, 2, 63,216,122,164,227,156,225,253, 96,220,201,207,229, 64, 84, 91, 25, 92,151,252,145,108, 80,140,148, 50, 69, 6, 3,
+ 58,171, 69, 57, 51, 86,208,159,213,213,128, 4, 16, 25,144,222,212,250,215,239,108, 87,235,212,125,175, 23,181, 96,172,149,236,
+245,156,126, 59, 69,105,128, 36, 38, 80,173,160, 65, 41,239, 86, 1,107, 57,234,212,165,172, 21,115,183,221,210,226,106, 41,119,
+238,220,149,207,255,240,148,201,167,175,193, 6,238,100,179,121,188,237, 76,184, 70, 32, 16, 80, 52, 40,193,229,171, 72,206,107,
+226,192,129,192, 7, 96,101,128, 98, 4,129, 5,220,212,136, 99, 56, 61, 83, 90, 32, 32, 33,155, 10,163, 41,116, 1,248, 23, 80,
+225,106,195, 78, 28, 96, 28, 76,157, 98,103,148,147,215,207, 64,149, 43,253, 23, 84,166,162,179,144, 68, 82, 71,209,176,116, 12,
+ 1, 92, 60, 80,201, 22, 78,242, 23,239,181,136,128, 23,218,148, 32,117,119, 67,242,165,148, 50, 40, 61,171,112, 59,190, 39, 30,
+198,169,128,177, 72,208,167, 18,206,102,120, 20,209,145,226, 57, 77, 77, 99,196, 1, 0,215, 75,135,197,112,128,202,116,250,197,
+169, 78, 20, 59,136,125,188, 53,254, 97, 35,237,214, 7,214,181,219,116,176,129, 49,179,222, 23,116, 43, 4,114,105,199,254,111,
+ 63,123, 33,239, 29, 86,229,253,187, 29,249,195,243, 27,238,119,193,139, 6,181, 7,207, 39, 64, 91, 48, 51,202,106,156,184, 25,
+204,137,199,201,102,141,130, 5,196,241,108,216,147, 82,173,173,247,171, 40, 59,221, 29,162,235, 47,175,175, 9,122, 2,117, 20,
+ 5, 26,130, 44,148,210,214,238,124,235,119,179,180,198,185,192, 26,228,188,151,144, 74,151,207,216, 78,255,186,191,148,111,130,
+172,220,223,109,243, 92, 25,157, 50,100,119,139, 2,210,174, 81, 66, 64, 87,137, 22,154,182, 90, 24,143,214, 44,158,120,159,215,
+ 17, 39,109,155,208,237,178,161,244,185, 10,183, 46,132,224,109, 71,137,237,184, 87, 78,181,209,212, 29, 99,118,243, 57,174, 74,
+241,108, 22,201,251,198,212, 40, 91,200, 56, 74, 99,204, 73,197,130, 56,153,133,254,154,203,254,206,158, 12, 52, 94, 54, 53, 81,
+123,155,185,180, 43,192,224,140, 89,228,238,107, 2,253, 73,217, 24, 51,136,131,136, 61, 88,239, 1,204, 92,175,150,121,174,233,
+126, 86, 47, 50, 89, 46, 92, 17,180,219, 42, 82, 22, 22,211, 47,124, 47, 0,140, 65,198,128,138,147, 89,200,184,153,207, 91,241,
+132, 70, 1, 19,226,149,254,250,237,151,125,121,125,113,102,241, 61, 73, 39,177, 1,155,153,209,116, 33, 71,221,154,158,127,159,
+171,168,151,151,115,105,180, 54,242,214,189,174,100,181,185,193,217, 5,206, 99,179,201,188, 1,163,234,119,150, 74, 9, 19, 43,
+129,148,117, 83, 58,164, 17,217,196,214, 6, 17,139,168, 57,147,191,230,111,141, 73, 43, 62,123,112,189, 36,232, 87, 27, 29,240,
+243, 25,151,240, 12, 98,218,198, 41,155,239,228,164,109,234,100,190, 6, 9, 49, 57,120,255, 0,145,151, 75,218, 32,101, 55,156,
+ 86,224, 92, 63,126,254,130,159,167,244,160, 45,251, 13,159, 42,168,104,136, 64,229, 3, 72,183,187,211,214, 98,115,194,231, 58,
+227, 71,156,220, 77,103, 80, 90, 13,228,250, 6,218,242, 53,253, 44, 43,105, 53,118,164,166,159,119,120,209,211,164,159,149,167,
+167,125, 45,160, 67,121,248,255,114,245,166, 61,150,156, 89,122,216,137,237,238, 75,238, 89, 89, 43,139, 69, 54,217,139,186,135,
+ 99,201,146,109, 9,146,160, 15,134, 62,250, 15,248,183,248, 63, 25, 48, 96, 88, 48,100, 96, 6,150,212,203, 76,207,116,179,185,
+ 21,139, 85,149,149,123,222,125,143,205,231,121,206,137,200, 26,247,128,195, 98, 86,230,205,123, 35,222, 56,235,179,188,120, 42,
+ 47,158,157, 72,188, 35,106,189,193, 32, 1,201,214,200,165, 31,177,151,141,189,139,203, 93,170,173,246, 96, 70,159,234,156, 99,
+ 36,217,216, 57,181,133,143,134, 82,167,186, 80, 6,144,159, 58,103, 18,177, 66,192,212,148,216, 9, 34,233, 67, 54, 52, 10,107,
+ 58, 11, 14, 5,132, 88,110,181,123,133, 8, 77,169,213,237,155,171, 57, 65, 26,160,172, 80,154,210,119,250, 60,232,238, 75, 76,
+ 5,168,210,249,183,250, 94,208,149, 53,186, 7,178,141,244, 64, 53,240,112,106, 5, 40, 17, 71,231, 91, 31,129,138, 3,198, 10,
+231,130,150, 62, 89, 48,197,173,156, 35, 37,140,194,146,194,144,227,175, 78,247,100,113, 62,227, 13,125,114,114, 32,135,154,192,
+ 83,242, 40,141,115,138,239,195, 67, 31,148,166,170,132, 25, 8,138, 28,136,240, 96,116,133,199,170, 65,126, 41,156,134,128,154,
+172,236, 68,173, 91, 69, 0,106, 65,114, 81,191,115,157, 19, 74,225,182,162,122,243,225, 91,168, 29,226, 50,181,215,103, 48,118,
+ 30, 50,186,117,200, 37, 46, 49,162,131, 95, 57,168, 30, 90,233,210,133,136,251, 57,179,248, 3,250,191, 2, 36, 33,185,132, 46,
+ 55,154, 87,110, 93,164,235, 45, 77, 38,178,116,145,152, 64,106, 78, 55,129, 75, 72,160, 88,174,137,119,209,187,173,239,213, 67,
+ 71,105, 26, 98,180,178, 68, 53, 0, 85,219, 30, 80, 31,243,226, 28, 65, 36, 4,129,105,137, 14,168,209,240,189,124,240,209,110,
+ 40, 35,245, 3,247, 51,230, 84,197, 10,181,106, 95,140, 17, 99, 19,232,104,140,248, 83, 11,122, 8,182, 40, 40, 90,238,170, 84,
+ 82, 86, 51,228, 14, 20, 73,169, 73,135,188, 53,167, 35,237,118,201, 74, 24,215,114, 52,158,202,253,197,157, 38,243,142,188,122,
+124, 32,211,251, 59,114,153, 65,217,124,245,226,153, 44,180, 96,128,253, 41, 42,234,183,111,111, 72, 83, 60,222,239,201, 45, 53,
+154, 31, 76, 73,240,121, 33,106, 81,164,123, 28,161,127,255,126,172,137,127,230,150,184, 38,190,129,103,129,215,215,249,222, 29,
+ 45,190,112,241,209,141,115,154,160,137, 30,106, 97,177, 83, 64, 49,150, 29,148, 29, 6, 19,188, 6, 2, 4, 21,170,124,188, 13,
+ 65, 23, 3, 79,101, 12, 38, 60, 71,177,143,253, 0,160,210,128, 5, 30, 53,166, 72,152, 38,160, 19,220, 34,209,186, 5,177,173,
+ 73,204, 29, 14,247, 14, 0,171, 66,131, 59, 21,197, 34, 43,254,114, 87,165, 99,194,117,243,139, 93,102, 78,128,199, 61, 19,103,
+ 41, 93,240, 51,247, 34,138, 54,145, 78,107, 44, 93,107,158,171, 14,160,166,161, 38,169,201, 50,202,140,250, 87,134,230,116, 22,
+137,157,195,202, 92,188,160, 21,174,121,186, 67, 99, 1,207, 98, 43,106,139,113, 73, 34,185,154,103,242,111, 94,244,184,103,207,
+151, 59, 77,204, 11,118,142,227,247, 55, 28, 79,246, 58,134, 76,222,215,164,115, 59,209,251,190, 92,112,202,128, 81, 61, 34,200,
+118, 57, 99, 17,183,205, 99,249,252,213, 43,238, 64, 25,100,123, 37, 71,171,141, 4,204,158,136,142,147,232,206, 64, 39, 68,167,
+188,166,225,146, 21,199,157, 78,139, 83,149,210, 87, 65, 71,253,166,141,170,233, 74,153,213,147, 20, 98,137,202,140, 93, 33, 64,
+135,248,152, 61,141, 27, 29,200,233, 82,162, 84,187,176,109,106,130, 51, 26, 95,102,208,204, 7,247,188,145, 51,102,112, 26,165,
+103, 29,133,146,169,251,153,113, 72,238,236, 35,250, 32,136,120, 82, 15,120, 6, 50,122, 60,236, 76,118, 25,103, 36, 35, 68,214,
+108, 89,245,154, 66, 1, 13,227,248, 97,175, 43,167, 71,135,122,109, 51,249,217,231, 63,151,255,246,151, 31,169, 64,247,228,228,
+137, 22, 58, 63,201,127,251,211, 55, 6,112,135, 38, 8, 98, 76,105,244, 70, 28,139,151, 39,123,230,169,238,156,117,196,144, 55,
+151,134,225,168,146, 43, 37, 78,211,146, 56, 11,112,210,177,147,223, 82,188, 74,216,188,224, 25,253,236,147, 47,245, 28,232,107,
+172, 70, 18,182, 58,198,219,231, 53,109, 83, 72,167, 21, 97, 37,188, 39,195,110, 66,139, 82,128, 50, 55,235,165,252,239,255,247,
+239,220,140, 74,152,119,182,219,140,160,187,141,107,241,179,136,212,223, 53, 26,207, 89,172,131,186,219,108,132,116,111, 3,202,
+125,167,241, 0,197, 7,214,129,184, 87,179,249,138,133, 8,168,139, 4, 0, 19,151,148,217,138,204,139, 76,107, 82, 75, 95, 36,
+139,209,229, 62,214, 28,192, 89,142, 90,204,127,160,163,174, 54, 70,125, 70,211, 0,161, 32, 20,168,185,158,193,103,199, 45, 27,
+253,195, 93,111, 52, 49,163,167,195,158, 92, 93,221, 83,193, 79,124,146,133,236,242,252,180, 41,119, 51,205, 99,122,209,198,218,
+141, 15,122,199,250, 53,196,176, 57,159,251,183, 23, 83, 22,244,143,142, 51, 60, 39, 49,107, 26, 42,114,121, 96,134,235, 77,150,
+ 89, 39,105,168, 89,203,234,150, 48,163, 90,224,163,112,201, 88,122,192, 74,225, 50,136,110, 16,225,213,119,104, 66,156,210,136,
+197,253,177,141,139,201, 11,215,178, 81,107,224, 58,212, 8,186,224,122, 95,141, 22,178, 7,247, 25, 32, 25,239,167,236,186, 26,
+218,149, 33,240, 64,219,182,146, 48, 68, 18,192,206,240, 96,208,208,174, 40,101,128, 89,109, 66, 89,234, 5,123,249,244,140,191,
+ 15,213, 91,179, 61,148,199,167,129,220,142,166,236, 62,182,105,101, 37, 27,200,139,211, 33, 95, 23,238, 61, 53,202, 31,187, 66,
+125,195,199,131, 54,249,175,236,194, 32,148,160,127,241,135,159, 38,124,207,232, 30, 2,223, 91, 98, 45, 81, 73, 42,226,147,193,
+ 16, 5,113, 60,103, 25, 97, 99, 70,116, 17, 8, 20, 41,249,171,133, 59,153,149, 53,213, 5, 62,244,214,205, 89, 64, 78, 29,253,
+138,221, 32,167, 21,161, 85,203,182,223,204,157,175,106,129,118,186, 46,100,190,179, 64,139,177, 33,170, 79,136, 36, 0,161, 9,
+154, 76,228,251, 98, 36,114,152, 92,240,193, 39, 32,241, 65,222,213, 18,185, 81,151,240,174, 72, 75, 11, 13, 29,109,210,175, 15,
+ 86,170,214,241,123, 39, 69,113, 13, 87,136, 35, 80, 4, 91,127,239, 6, 99, 83,148, 74, 60,129,155, 11, 90,204,157,219,218,187,
+ 12, 19,183, 49,106, 14, 84,229, 0,136,130,199,122, 27,163,230,188,160,196, 37, 84,155,250,189, 1,223, 91,197,191, 46,125, 31,
+207, 29,172,211,128,118, 89, 86,143, 36, 35,167,229, 85, 52, 31,120, 50,175, 40, 35, 25,202,223,125,119, 37,191,126,165,213,174,
+ 6,100, 4,214,255,244,247, 63,201,239,126,184,149,159,107, 96, 63,191,221, 74,103,119,195,209, 39, 44, 83, 49,218,108,105, 55,
+247,211, 79,111, 36,229,126, 50, 35,122,253, 94, 43,234,181, 22,193,227,121, 78,173,234, 14,169,104, 13, 6,186,181,118, 58, 64,
+ 15, 35,240,194, 10, 18,221,122, 24,197,142, 76,214,206,101,208, 55, 49, 19,119, 59, 35,127, 53, 55,233, 95,232,188,163,208,189,
+155, 78, 13,229,143,209,156,118,240,248, 58,232,117,247,232, 86,105,253,106,200,241,109,106, 90,240,116,150, 34,215, 62,151,102,
+ 97,193,151,158, 3,149,101,170, 94,230,133, 6,195,134, 53, 65, 28,197,195, 8, 5,207, 51,180, 33, 0,152,196,185, 71, 23,117,
+ 61,221,176,192,132,170, 31,206, 56, 18, 20,198,144, 16,107,170, 4, 99, 32,126,131,137,216, 40, 48,124, 3, 70,154,235,170,139,
+201, 74, 95,133, 84, 50,179,214,201, 24,150,198,185,243,120, 77,200, 33, 6, 15, 30,239,153, 3,147, 66, 79,242, 59, 34,145, 99,
+ 2,200, 82, 38,199,134,221,103,253,108, 3, 45,154,222,142, 50,249, 95,134,134,183,217, 17,225,110,231, 25,102, 79, 64,124,195,
+ 24, 3, 99,236,110,183,197,130,134, 19,166,194, 88, 17,161,190, 38,246,206, 2, 95, 4,189, 70, 40, 60,127,245,249, 75,153, 76,
+ 38,178,131,169, 7,138, 19,231,204,179, 32, 69, 98,228, 20, 68, 88, 56, 26,102, 32,150,195, 97,143,187,107,210,204, 48, 93,137,
+140,206, 5,188, 5,215, 33, 16, 16,210, 4,205,231, 42, 55,109,248,194, 39,138, 80, 31,227,202, 50, 10,141,250, 27,154,254,185,
+121,202,219, 42,105,163, 93,230,106, 49,229, 56,154,190, 17,206, 6, 68,103, 87, 56,134, 8, 56,139,194,169,185,120, 38,184,146,
+162, 67, 88, 66,208, 95,165,154, 72, 62,251, 6,236,138, 45, 19,251, 90,223, 23,164,114,159,106, 1,244,225,250,134,210,185, 17,
+ 93,216,154, 76,102, 16,228,145,226,177, 38,225, 55,154, 80,150, 94,204,155,186, 99,225,130, 80, 63, 92,220,154,107,103,173,204,
+104,137,205, 86,110, 22, 71, 13,111, 99,137, 16,184,133, 84, 11, 13, 20,104,208, 34,137,108, 92,195,132, 14,176,219,111,190,252,
+140, 66, 56, 0,167,246,124, 2,138,114, 15,160,109, 60, 23,208,180,128, 30, 58,242, 17,227,162,158,193,223,127,253,150, 9, 81,
+156, 54,140, 56,105, 76,187, 53,241, 12,248, 25, 60, 75, 0,161,165,219,146,210,181,196, 40, 20, 33, 63, 43, 27, 10,178,102,182,
+ 90,160,105,193,143, 66,173, 97,247, 26,194, 93, 77,125, 14, 74,183, 21,166,109,183, 99,134,122,237,164, 6,108, 83, 50, 54,182,
+ 85, 36, 48, 3,153, 79, 55, 83, 22,219, 49,155, 78,228,141,123,109, 32,118,233, 15, 50, 95, 60,210,216,115,172, 57, 14,247,193,
+ 20, 63,111,239,103, 82,237, 49,108, 82,184,113,115, 35,232, 86, 52,228,116, 88,202,197,164,208,216, 96,224,230,179,163, 83,105,
+134, 59, 78,124,214,250,144,190, 62,159,202,104,194,213,128,113, 57,197, 65, 22, 8,130, 6, 22, 19,186, 21, 33, 1, 36,212,158,
+137,235,100, 82, 41, 8,113,164,238,230, 28,161,239,168,237,107,230,186,134, 96,129,221,117, 76,250,133,240,193,163,188,168, 87,
+226, 81, 96,133, 66,189,107, 69,231,162, 15,227,177, 86,106,157,134,118,199,250,139,177, 75,135,158, 48, 42, 88,160,238, 81, 17,
+ 66,185,206,204, 4, 52,249,232,131, 68,173,233, 34, 96,225,208,219,107, 75,217, 62,229,104, 25, 32, 52, 28,138,133, 86,180, 61,
+125,104,250,221,166,204, 96, 50, 66, 69,159,152, 59,238,175, 62, 61, 33,231,254,106,190,165, 9, 3, 80,251,240,134, 71,124,216,
+235,119, 37, 2,232, 68,127,217,235, 55,151, 12, 20, 8,202,216,163,231,142,112, 36,181, 12, 35,174,118,117, 0, 75,238, 32, 41,
+191,138,253,142, 87,119, 38, 90,227,118, 77,110,142,128, 74,222, 64, 18, 86,212, 84, 73,137,221,121,110,160,194,202, 11,155,197,
+ 12, 42, 87,234,187, 4,220,109, 45,244,107,171, 34,150,233, 54,115,129, 18,219,169, 97,133,144,101,121,173,207, 30,227,129,143,
+ 19, 71, 77, 7, 46,225, 90,214,157, 90,165,209, 46,254,187,170,196,153, 17, 12,105, 83, 16, 28,214, 32, 15,106,250, 20,195, 83,
+ 97,180, 53, 78,112,228, 1,236, 68, 94,184,171,170, 97, 84,184,173, 12, 81, 40, 51,107, 35, 59, 34,182, 25,128, 18, 23,232, 40,
+124,119, 95, 80,186,211,120,242,160,145,180, 89,205,227,123, 49,206,196,123,133,240, 3, 58, 93,152,213,228, 44, 20,108,151,156,
+126,228,228,134,117,131, 73,162,134,156, 84, 72,105,180, 57, 32,103,255,207,255,250, 45, 31,246, 95,189,108,202,187,235,145,188,
+131, 8, 17,130,156, 38,165,203,187,169, 60,214,162,172,215, 31,202,124, 59, 54,207,249, 8,197,212, 82, 26,195, 33, 31,238,237,
+214,244, 13,238,167,154, 20, 34,208,118, 2,114,176, 97, 39, 73, 94, 55,172,108, 51,163, 99,157, 29,238, 51,217,183,156,115, 78,
+227, 22, 10,200,236,216,113, 32, 81, 96,111,142,194, 18,207, 15,237, 90,251, 93, 22,100,176, 83,196,184, 29, 35,192, 28,221, 30,
+ 70,231, 94,156,129, 66,133, 68,128, 4,128, 49,255,106,187,115,249, 91,128,124,130, 90, 81,207,170,125, 75,196, 0,181,161,238,
+108,106, 48,133, 67,225, 18, 69, 18,192, 65,212,215,213,123,209,104, 49,112, 10, 16,246,137,211, 68, 11, 23,133,114,168,157, 33,
+183, 29,104, 26, 4,220,103, 18, 17, 76, 41, 93,179, 24,165,131, 33,181, 79, 3, 82,209, 2,151,160,173,236, 71, 75, 71,184,187,
+137,179, 5,224,178,116, 32,159, 1, 23, 93,239,216,148,246,124, 77,195, 29, 60, 2,187,254,243,244, 81,155,157,203,155,243,123,
+217,239,128,237,209,160, 40, 16,236,154,145,180, 48,246, 6, 74,248,237,245,148,190, 14,160, 1, 2, 45, 62, 70, 39,230,192,216,
+ 45, 89, 23, 5, 85, 32, 39, 26,248, 17, 7,146,210,212, 26,151, 24, 13,239, 92,167,127,107,157, 40,167,136, 4,188, 13,121, 47,
+177,118, 0, 38, 9,248,150,166,163,245,241, 76,204,215,150, 52, 75, 23, 6,232,208,168,167,237,133,181,117,213,181, 65, 74,104,
+105,141, 44,132,220,146, 27,198,255,232, 40, 81,204, 82,250, 85,239, 11,232,119,166, 41,150,179,224, 42,252, 57, 52, 63,118,139,
+187,152,180,128,113,130,248, 88,144,167,223,192, 0,218,176, 41,136, 71, 88,187,233,107,175, 54,115, 62, 39, 48, 50,193, 57,254,
+246,221, 7, 9, 50,237, 88,181,224,223,235, 64,222,181,207, 17,252,235, 55,175,217, 16,189,122,254, 76, 86,223,253,192,231, 17,
+172, 27, 36,117,238,255, 51,155,168,221, 77, 23,198, 95, 7,248,185,233,147, 83, 49,138, 36, 87,139, 97,131, 73, 20,212, 67, 60,
+151,237,106,133, 84,152,144, 15,242,195,254,209,158,222,195,196,214,108, 97,131,157, 50,214,119,152, 46, 66,124,167,244, 51,133,
+194, 31,160,176,179,147, 83,106,159,252,242,243,103, 50,154,239,228,234,126, 98,184, 47, 76, 8, 60,223, 64,184, 11,147,173,110,
+210,150, 37, 87,107,214,116,161,121, 74,195,128,180, 55,116,223,104,124,128,163,233, 52, 7,204, 27, 13, 78,244,118, 60,251, 40,
+224, 81, 40,195, 27,189,210, 80,232,107,254, 0, 94, 6, 96,241,210, 89, 91, 69,209,224,179,136, 9,218,116,189,227, 20, 0,205,
+ 5, 39,182, 96,232,132, 77,190, 38,226, 37,238,253, 79,231, 23,244,132,248,171,151,208, 2, 41,217,108,204, 87,107, 45, 42, 67,
+ 22,161,112, 40,157,122, 62, 54, 59,215,146,177,225,233, 65, 32, 55, 55, 43,125,207,251, 50,154,109,228,104,239,169, 4,227,119,
+156,120, 2,231,160, 89, 78, 98, 84, 0,168, 40,113,192, 3, 19, 33,230,168, 24, 20,139,163, 97,167,182, 12,205,139, 7,201,201,
+202,214,145,136, 88,215,184, 46,188,107,101,183, 22, 85,244,160,178,222,201, 25,146, 60,245, 4,103, 35,135,140,187, 42,169,209,
+231, 52,121,225,232, 58,164, 65, 2,170,188, 78, 35,244, 20, 98, 10, 69,160,165,132, 46,230,130,135, 6, 32, 12,116,181, 39,123,
+118,128, 80,157, 74, 43,102, 59,210,103,145, 80, 58,165,164,144,253,179, 35, 75,204,168,230,225, 20,215,109, 26,183, 94, 51,229,
+ 95,125,118,194,106,154,149, 17, 68,251,193,117,198,248, 74,204,206, 19, 35, 35, 8,242, 0,232, 2, 63, 38, 9,163,127,226, 23,
+ 30,110,179, 26, 45,110,160,163,130, 64, 29,155, 98,216,168,138,188,241,194,170, 87,114,237,221, 57,206,146,108, 97, 93,109,108,
+ 9, 9, 63,191,118, 39,172, 32, 46,153, 36, 66,239, 72, 97,203, 55, 7,202, 58,106,218, 56,177,176,241, 14,130, 4, 58, 91,240,
+ 38,171, 93, 52, 18, 32,173, 23, 27,182,187, 45, 89,117, 69,110,167, 26, 24,135, 87, 3, 8,139, 53, 87, 66,195,231, 49, 46,172,
+ 43,180, 33, 64,165, 22,196,185,123,166, 8, 79, 86,139,142, 66, 73, 77,124, 39, 91, 97, 38, 76,135,125,199, 63,227, 76,209, 57,
+170, 48,247,179, 74, 78, 21,157, 48, 43,104,116, 54, 12,102, 6,114,139,221, 60,136,129,167,217, 50, 31,250,205,214,193, 53, 67,
+227,124,163,115, 17, 71,128, 55,155, 60, 91, 72, 6, 64,202, 47,214, 72,226, 45,126,230, 20,136,242,204,126,127,165,122, 7,148,
+232, 31,190,121, 71,149,177, 15, 55, 19,121,119, 53, 38, 24,110,181, 94,146,194,212, 78,186,146,104, 65,251,179,231, 45, 98, 19,
+222, 92,220,115,186, 4, 80,216,253,100,101,202,132,120,191, 96, 31,108, 77, 61, 15,215,110, 91, 66,240, 40,228, 26,128,166, 50,
+122,221,247, 14,134, 44, 46,241,126, 65,119, 2,181,111,189,219,112, 47,216,218, 5, 44, 22,160, 42, 87, 77, 93, 54,233,198,215,
+ 73,134,121, 64,251,252,248,120,224,118,157, 13,125, 47, 55,188,198,247,211,185,252,252,147,167,178, 63,140,249,153,110,180,195,
+ 4, 66, 28,222, 10, 8, 4,192,175,228, 94,188,149, 13,116, 37, 45,189, 54, 75, 13,220,218,197, 14,204, 90, 55,194,200, 87,239,
+ 43, 38, 16,205,200,112, 36,224,235, 86, 3, 36,179,154, 20,231, 26,219,154,136, 42,105,149, 74, 59, 49, 45, 37, 39, 85, 68,220,
+187,240, 84, 88, 26,155,161, 42, 18, 43,241, 37,128,197,136, 55, 0,100, 10,157,139, 41, 87, 27, 82, 61,207, 30,208,221,254,255,
+209, 80,160, 0,194,115,143,194, 5,159,139,142,117,154, 24, 33, 16, 3, 36,254,111,191,191,151, 95, 60,237,201,165,199, 39, 88,
+ 55, 35,246, 96,103,138, 87,195,250, 2, 93, 47,186,105, 4,115,116, 84, 8,158,143,251,135, 92, 1,252,248,238,173, 28, 29, 63,
+ 33,255,124,166,239,121,111,111, 72,150,203, 48,214,228,189,159, 48,144,239, 56,254,207, 57,181,192,212, 11, 93, 20, 10, 27,136,
+126,224,189, 99, 2,178,195, 61,239,152, 34, 35,232,160,152, 22,132,252,125, 54, 62,167,186, 26,227, 87,224,234,136, 54,253, 66,
+ 33, 15,124, 13,186,252,208,129,186,187,118,155,198, 33, 81, 84, 57,196, 65,165,174,237,238,126,230,222, 70,217,236,157, 97, 92,
+ 50,198, 97,187, 47,120, 31, 88, 35,224, 10,130,219, 60, 24,236,177, 24,164, 20,183, 62, 39, 24,235,163,160,228,212,212, 53, 61,
+226, 48, 33, 43, 8,130, 48, 81,164,215,118, 49,209,124, 16,201,187,243,115,249,213,207,247,229,217,147, 23, 4,142,181, 8, 42,
+ 11, 9,116, 70,220,197,202, 0,103,246,237,205,148,187, 94,116,214, 7,189,150, 43, 20,218,164, 7,177, 28, 13, 33, 18,232,254,
+160, 77,221, 0,128, 9,169,135,145, 27,162,158, 29,241,202,118,217,179,197, 74,174,111, 87,242,195,251,239, 89, 4,150, 44,210,
+ 17,155,244,218,181, 91,110,175, 92,200,207, 95, 82,241,132, 20,177,255,241,215,159,200,239,255,252,142,135, 7, 30, 28,152,102,
+ 18,244, 73,229,200,146,247,163,215,107,153,241, 81, 94,210,199, 4,184, 11,116,218,192, 78, 32, 66,127,246,108, 95,230,187,150,
+139,117,133,114,121,125, 35,231, 90, 16,246,245,231,110,119,107,121,113,186, 71,169,238,203,209,154,158,229,157,184,164,105, 24,
+166,116,200,119,104, 24, 81, 48,226,254, 97, 77, 12,243,129,201,116,172,241,119,200,162, 14,247,133, 94, 16,100, 17,164,124, 47,
+223,254,244, 78,243,201, 75,121,126,144,106, 19,209, 37, 29, 22,128,105, 19, 29, 50, 16, 95, 4, 17,181,141, 97, 98,118,243, 53,
+243,208,171,199,109,234, 43, 52,123, 29, 89,193,208,108,240, 84,138,209,159,157, 22,172,255,244,219, 6,130, 59, 26,116,233, 4,
+ 3, 64,194,249,237,146, 9,172,225,182,166, 69,109,115,233, 18,163,174,174,246,192, 87, 46,107,165,163,210, 29,219,108,108, 31,
+212,106, 81,245, 94,174, 48, 30, 48,119,110, 14,172, 50,100,161,209, 52, 90, 90,165,133,253, 6, 43,248,210, 59, 72, 92, 16, 19,
+ 63,136,101,180, 72,229,248,160, 75, 11, 63, 36, 19,173, 1,165,223, 52,208, 19,128, 66, 56, 4, 24, 91,147, 83, 88, 66,190,115,
+103,198, 10, 26,164, 3,252, 46, 4, 75,125, 56, 90,145,153,196,112,159, 12,159,227,209, 84, 59,218,140, 84, 56, 0,192,176,135,
+ 77,177,150,128,240, 73, 28,242,192, 2,153,137, 67,221,208,191, 67, 85, 29,186,184, 9,198, 70,181, 98,148, 24,104,173, 44, 35,
+ 15,138, 5, 21,182,104,214,224,244, 33, 36, 7,113, 10,159, 25,140,184, 96,139,107,124, 3,157,218,242,215,142, 35,219,117, 99,
+ 98, 1, 16,213, 84,187,251,109,168,221,171,126, 29, 85, 57,198,166,248,205, 8,114, 0,237, 25,230, 32, 97, 66,135, 66, 22,174,
+ 57,146,201,142, 65, 32,119, 49,146,144, 85,114, 69,189, 17,169, 36, 82, 75,202,188,150,185,141,140, 48, 30,196,251,233, 55,237,
+126, 0, 73,143,100,142,142, 56,243,100, 44, 78,161,194, 24,157, 98, 49, 31, 57,176, 85, 86,170, 68,193,122,226,173, 76, 84, 32,
+ 16,211,160, 91,156,141,111, 11,231,146,227,194,180,162, 38, 71,229, 89,190,178,206, 95,239,101,151,212,159,200,167, 24, 57,119,
+228,125, 77,240, 24,133, 46,224,196,228,122,225,149, 56, 13,198,200,116,217,154,167,182, 86,112, 64, 22, 36, 61, 3,125,223, 31,
+110,231,212, 30,128, 38,244,129,118,224, 48,107,192,131,132,113,245, 20,218, 23,177, 94,171, 86,168, 73,124,202,221, 99, 11,163,
+203,157, 81,248,224,128,133,103, 1,251,218,197,120,237,226, 30,166, 71, 15,233, 99, 88, 68, 98,148,190,212,115,118, 59,157,201,
+139,147, 3,249,241,242,158, 10,118,112,207,217, 2,208,147, 54,140,206,153,153,217,197, 82,207, 25,238, 1, 10, 83, 24, 70,160,
+ 16,130, 90,148,185, 96,161, 0,214,224,163,127,247, 2,222,209, 55,119, 28, 61,254,229,237,133,188,122,114, 34, 63,251,228, 76,
+228,167,146,138,121, 40,186, 80,160, 32,129,226, 30,182,121, 54,109, 71, 92,169,137, 97,135,221,238, 1, 56,182,150, 22,168,148,
+176,186,212,196,135,117, 4, 58, 34,170,115,101,152,178,108,121, 86, 67,159, 64, 1,241, 78,119, 63,132,129,192, 18,123,133,158,
+ 55,197, 64, 83, 25, 12, 49,124, 41,204,146,182,210,103,224,244, 5, 90,224,161, 49, 92, 24, 81,130, 7, 53,250,130,158,211, 62,
+234, 46,139, 90,251, 30,255,152,138, 23,152, 38, 38,173,137,241,242, 68,239,249,163,227, 99,249,233,126, 39,191,121, 17,152,136,
+139,152,154, 29, 58,114,116,142, 56,206, 79, 79,135,114, 51, 90,242, 57,220,223, 51,128,228,252,221, 53,193, 89,112,220,203,178,
+153,220,220, 94,201,193,225,153, 22,114, 61,233,104, 16,199,234,138,214,153,228, 38, 55,109, 42,232,227, 86, 76,222, 70,179,181,
+ 77,180,244,235,143,246,160,222,216,115,186,165, 57,172, 1,236,134,102, 8, 74, 97,102, 40,149,106, 17,102,210,173, 41,214, 97,
+113, 76,250, 29, 58, 55, 36, 49, 76,126, 54, 59, 19,163,161, 73,137,158, 33, 20,130,161,131,119, 73,253, 2, 87,222, 69,160, 50,
+ 41,125, 10, 83,212,107, 68, 50,146, 28, 88,138,215,192,151,247, 57, 90, 14,233, 70,136,142,247,226,110,204,107,108,128,199,146,
+207, 32, 98,236,233,193, 64,222, 93, 94,105,156,232, 83, 35, 3, 83, 27,154, 6,233,223,221,220,156,203,201,201, 83,217,106, 81,
+248, 55,191,255,218,252,238, 51,211, 80, 0, 78, 0, 19,119, 82,243,180,120,133, 76,235,229,104,198,164,143,107,128,142,158,205,
+136,235, 83,112, 58,151,226,191, 81,148,161,105,179,255, 94,232,231, 69,140,193,179,140,228,248,228,233,151,250,140, 44,232,234,
+135,107,166,209,220, 76, 95,144,164,193,238,208,115,116, 55, 94,200, 45,228,188,143, 23, 44,192,143,246, 90,188, 94, 89, 22, 9,
+224, 41,184,134,120, 6, 32, 97,142, 88,222,235, 53,181,155,221,200, 54,200, 9,196,158,107, 28, 61,212,159, 65,129, 3,166, 4,
+252, 22,110,225,127,161,207,222, 39, 79,246,228,228,104, 32, 23, 90,172, 96, 50,215,109,196, 68,150,179, 48,210,247,115, 51, 89,
+203,176, 21,146,137,129,179,139, 38, 11,247, 3,236,177,121,110, 77, 80,204, 85, 68, 70,244, 62,206, 43, 70,228,184, 8,116,175,
+212,251,118,116,176,207,179,254,253,185, 54, 12,193,190,188,136,215, 52,123, 25, 14, 90, 50,154,216,249,138, 19,123,174,232,130,
+ 8,164, 59, 56,236,204,153,161,236,247,180,104,160,106,170,222, 11, 45,118,158,124,250, 11,145, 55,223,200,120,169, 63,135, 68,
+ 9, 37, 27,140,201, 90, 45,204,238, 7, 12,158,179,197,206,248,114,121, 81,143,103, 11, 7,162, 25,218, 82,106, 73,202,176, 18,
+ 6, 41, 77,144, 70, 28,196,198, 19,233, 59,119,147, 32, 48,109,118,140, 0, 63, 59, 27,202,253, 61,192, 47, 59, 57, 24,180, 9,
+ 54,107, 17,226, 31, 17, 89,140, 17,219,219,169, 38,162,184, 33, 47,158, 28,200, 78, 35,197,190, 6,246,102,127, 32, 95, 60, 30,
+202, 73,191,193,177,236,118,181,226,200,124, 85, 88,160,233,234, 7,196,232, 9,157, 14,118, 41,115, 40,188, 33, 72,233, 67,146,
+233, 69, 0,154,120,208, 52, 17, 1,242, 78, 17,140, 1,174, 10,205,128, 32,119,185, 69,113,203, 80, 72, 74,162,150,217,211,130,
+ 97,167,209,254, 87, 47,246,229, 31,207,151,124, 0,113,112,241, 48,205,181,130, 26, 12,250, 76,188,184,233,168,216,154,238,222,
+133,138, 98, 73,237,246,192,124,149, 3,211,240, 69, 66,229, 56, 20, 9, 54,119,139,208,208,162,220,181,118, 10,179,117,226, 96,
+161,130, 15, 9,168, 94, 1,198,163,154,208, 33,164,128, 98,195, 36, 18,211, 7,199,177,192, 14,193, 80,175, 17, 11,133,122, 63,
+ 41,236,144,243,220,187,235, 32,228, 67, 91,184, 3, 30,186, 72,142, 35, 49, 14,135, 24, 10,128,102, 46, 20,130,175, 3,184, 5,
+ 64, 17,208,218, 27,237,132,147,174, 77,119,170, 32, 54, 76,140,234,132,202, 24, 15, 38, 80,155, 21, 45,174, 25,218,239,173, 86,
+ 60, 85,241,131,135,135,224,146,157,141,212,147,102, 82, 99, 49,240, 45,144,113, 21,183,105,173, 58,127,252, 5,222,107,133,210,
+ 6, 85, 9,197,204,100, 58,225,239,174,146, 11, 10,130,165,235,212,103,206,153, 53,116,125,204,194, 7, 15, 57,254,119, 53, 30,
+179,251,125,116,212,231, 12,109, 71, 19, 32,163,250, 13,122, 9, 63, 71,166,193, 37,211, 98,110,239,176, 79,254,118,186,217,114,
+220,126, 9, 53,172,251, 29, 59, 16,186, 98, 81,184, 39,231,148, 7,149, 54,248,183,216, 1,227,253,191,185,188, 33,205, 17, 5,
+215,209,112,143,184, 7, 51,167, 49,110, 52,174,123, 88, 26, 72,148,188, 91,174,136,218,236,254,167, 26,161,126,252,112, 33,123,
+253,158, 25, 74,232,249,238,193, 13,109,177, 99,209,245,221, 59,160,176, 71, 60, 11, 13,202,227,106,145,147,175, 57,170, 35, 59,
+130,120, 9, 3,132,226, 44,246, 6, 29, 83, 12, 68,119, 23,195, 62, 51,151, 67,237,228, 71,115,163,215,133,153,117,206, 0,177,
+198,185, 21,243,248,126, 27,155, 35,185,239,124, 58,149,213,210,202, 89,240,208,125,150,206,130, 41,217,149, 4,116,212,203, 3,
+115, 44, 11, 93,208, 2, 73, 39,112,155,209, 10, 41,159,196, 21, 8, 22, 99,208,166, 61, 31,240,140,214,115, 2,191,121,250,212,
+ 71, 5,105,170,232,124,209,193,227,119,254,112, 3, 42,104, 87,246,219,129, 92,205,114, 58,138, 97, 18,134,174,232, 78, 63,211,
+217,241,144,197, 26, 76,102, 48, 9,196, 84,231,116,127, 79,238,102, 11,121,220, 59,214, 4,222,149, 27, 45,134,154,177,225,116,
+114, 7, 35, 2, 83,130,129,220,120,185, 34, 21,105,183,219,186, 65,144, 38,148,201,194,180, 28,168, 16, 88, 61,187,166,121, 94,
+ 33,229,109,245, 19, 80,244,138,248,131,157, 61,107,164,156, 37,177, 79, 41, 77, 32,106,231, 32, 72,210,231,244,250,225, 62,231,
+ 14, 54, 54,189, 1,195, 49,225,130,165, 78, 21, 54,175,132,240,193,194,216,117, 3,240,189,213,138, 3, 77, 82, 76,127, 37, 60,
+151,250, 12,199,166,158,134, 61,114, 20, 74,237, 88,200,149, 16, 88, 78, 96,208, 96, 23, 28, 32, 39,148, 92, 41, 65,167,160, 57,
+189,231, 20, 13,154, 15,175, 63, 92, 25,155,161,180, 2,142,189, 26,204, 72,198, 90,252,142, 38, 54,189,113,224, 51,229,110, 19,
+147,142, 37,189, 80, 76, 17, 52, 14, 76,212, 11,188,108, 90,103, 99,162,177,217,113,181, 88,210,193,174, 33, 47,159,190,148,103,
+143, 76,175, 1, 69, 45, 19,115,183,237,142,110,161,188,213,247,241,231,215, 31,228, 31,126,184,214, 14,119, 40, 95,125,254, 72,
+102,155, 66, 30, 29,118, 56,165, 29,207,215, 46, 93, 29,208, 24, 7,166, 93,152,160, 78,180,105, 53, 1, 32,125,255, 69, 91,254,
+217,203, 61,249, 79,191,123, 39,179,121, 68,147,148,116,145,201,251,203,130, 70, 44,135,251, 29,142,184, 49, 97, 72, 83,211,161,
+160, 80, 17,158, 31,106,248,155,181, 48, 26,115, 18, 70,242,210, 29, 41, 67,250, 19,240,217, 40,205,167,192, 86, 48,145,199,179,
+144,227,242, 61,109, 38,110, 71,119,242, 90,175,251,147,211, 79, 52,158,105,108,165,165,115,194, 98,190, 65, 15, 8, 51,215,162,
+ 80, 22,239, 85,198,251,119, 56,196,107, 45,100,178,106, 8, 52, 16,123,189, 67, 57, 62,123,161,177,112,142,115, 12, 23, 51,243,
+ 13,199,193, 3, 48, 8, 47,138, 7,230,110,178,146,202, 22,130,180, 37, 15,144,165,139,199, 16,238, 22, 62,136, 83, 86,201,133,
+162, 46,238,137, 93,120, 48,169,116,158, 65,139,160,184,136, 86,158,167,123, 13, 58,148, 25, 71,208,118,138,107,253, 61,227, 77,
+201,110,231, 98, 27, 19,225,124,130,221, 42, 70,168,250,158,160,137, 94,148,102,225,154,226,112,232,107,131,246,197,209, 47,144,
+221, 20,199, 79,153, 92, 17,176,223,222,204, 24, 56,158,104, 65, 16,248, 36, 1, 29, 38, 68, 36,240, 25, 40,147,170, 15, 49, 2,
+115, 22, 52,184,183, 2,186,176, 73,141,115,227, 19,182, 1,208,211,215,255,230,122,198, 29, 29,164, 13, 81,133, 87,157,246,135,
+139,145, 60,123,146,178, 43,194, 53,120,243,254, 86,142, 15, 7,244, 13,166, 78,240,120,206, 42, 14,116, 10, 90, 88,162, 27,239,
+118, 41,124, 0, 65,146, 21,124,138,245,112, 32, 88,167,122,160, 97, 88, 96,102, 15,194, 10, 17, 99,179, 39,143, 79,184,107, 3,
+144, 39,171,105, 73, 40,198, 18,215,185,182, 81, 33, 36, 74,113, 27,176,135, 53, 64, 79, 92,131,220,176, 99,163, 90,159, 38, 70,
+ 32,144,145, 76, 64,175, 98,162,107,182, 13,148,135,107,231, 99,114,116, 50, 20, 85,240, 29, 63,237, 62, 17,124, 40,251,232, 12,
+ 2,218,144, 91, 37,138,209,109,229,104,148,249, 58,129, 69, 12, 36, 32, 73, 55,139,120,111,184, 11,132,187, 24, 42, 77, 80,116,
+124,116,203,226, 49,207,107,135, 51,226, 2, 42,109,107,167,210,213,232, 83, 15,162,188, 14, 20, 56,210,159,143,109,111, 79,240,
+ 16, 52,181,193,149,111,185, 21,166, 75,145,162,203, 1,231,151,187, 52,236,212,244,253,188,191,186,182,238,197, 87, 42, 79,142,
+ 14, 13, 39,160,157, 42,184,178, 48, 14,121,118, 58,224, 94, 31,221, 1,246,111,175, 47, 39, 66, 41, 32,156,117,105, 16,188, 6,
+ 96, 36, 18, 17,208,209,184,167, 88,241, 96,255, 54, 89, 88,151,182, 90, 78,229,253,197,214,109, 75,237, 25,225,115,135,235,144,
+ 90,242, 93, 83,225, 47, 53,164,120, 8,230, 66, 41, 51, 82, 19,103, 12, 10,183,147, 25,207,126, 51, 49, 64, 37, 65, 97,177,241,
+217, 49,194, 37,152,116,183,101,193,153,101,150,120,141, 70,217,116, 25, 93, 43,178,147,196, 64, 89, 24, 65, 3,192,117,216,239,
+ 19,149,189,112,192, 28, 39, 74,110, 29, 42,116, 6,195,212, 46, 55,134, 11,217, 26, 6,114, 34,197,213, 1, 82, 45, 10,112, 20,
+ 12,196,148,178, 13,205,181,177,146,146, 37,149,180,180,251, 75, 28, 65,252, 0,138,195, 89, 97,209, 11,145, 39,189,230,248,167,
+164,182,182, 22, 86, 24, 59, 23,112, 47, 43,165,223,234,144, 59,141,110, 17,251, 88,116,155,223, 93,173,229,171, 23,125, 57,215,
+238,205,232,124, 41,213,196,150,215, 91,185,209,175, 13,251,224,173,155, 23,195,222, 96,192,169, 21,104, 99, 40,246,247, 7,125,
+ 19, 55, 25,223,201,147, 94,143, 29,242,189,158,157, 63,125,247, 3,159, 95,142, 74, 51,163,121,218, 52,200,166, 9, 85,113, 26,
+121, 49, 66,133, 24,183, 18,206, 61,177, 85,184, 0,196, 78,230,100,158,175,156, 19, 51,160,169,119, 52, 46, 10,248,251,203, 90,
+186,215,116,253,169,142, 7,137,217,216,238, 89,138, 2,156, 96, 56, 3,239, 69,142,119,160,165,174, 88,130, 9,157,169, 82, 41,
+ 11, 90,231,107, 14,128,244, 13,207, 86, 38, 22,213,136, 29,171,147, 83,191, 28, 24,132,251,241,132,202,120, 72,222, 48,237,140,
+192, 78,208,223,125,118,124, 66,189,146, 56, 74,228,197,211,167,154,132, 76, 62, 22, 32,183,134,187,114,182, 19, 19,130,186,215,
+ 66, 23, 17, 19, 35,119, 54,114, 14,130, 54,192,180, 1,164, 33,219,141,157, 58,254,220, 32, 21,208, 48, 70,224,240, 15,123, 29,
+202,195,158, 30,246, 36,215,248,137,156,121,112,208,163, 73, 22, 26, 46, 24,191,224,217,185, 67, 59,170,159,231, 12,178,217, 71,
+169,252,226,197, 33,233, 97,112,253,180,130,218, 16,250,121,110,211, 96,156, 7,179, 5,183, 56,139,188,134, 28,247, 15, 63,222,
+202,211,131, 14, 57,250,152,164, 96,229, 76,179,173,251,153,198,128,142,124,174,205,227,223,142, 22,204,133,152, 98,239,245, 26,
+244, 31,216,239,183,244, 57,212,164,172,159,163, 73,145, 25,104,205, 39,156, 58,164, 28,191, 59,158, 71,182, 50,219,218,243,130,
+235, 4,211, 24,196, 25,200, 25,111,118, 38, 54, 5, 65,162,119, 31,206,229,183,122,214, 94, 30,199,114,122,144,114, 69,199, 41,
+166,254,220,158, 22,225, 40, 54, 73,215,115,250, 41,226, 34,174,217,177,190,119,109,249,228, 70,155,205, 27, 25,113,194, 90, 22,
+ 9,158, 59,227,132, 10,145,228,150, 68, 16, 92, 48,194, 29,116,140,124,134, 63, 35,208,108,217, 25,218,161,123, 48,150, 8,220,
+ 0,164,172,157,182,170, 52, 31,184,139, 79,154,229, 14,184, 49,190, 49,116,135,247,218, 49,141,228,255,241,221,130,128, 11, 84,
+184,120,232,119,216,135,109, 2,238, 60, 2,143,218,149,132, 43,165, 91,245,123, 64,119,251,252,168, 77,148, 97,168, 31,254,240,
+ 96,159,238, 74, 48, 95, 24, 45,119,172,246, 90,218,129,160, 66,190, 24,105,101, 86,166,242, 92,187, 49,236, 19, 67, 84,198,219,
+ 45,147,127,195,245,237, 58, 80, 62,210, 10, 48,163,222,239,218, 0, 30, 24,185,236, 50,242,122,187,154, 12,135, 0, 71,128,254,
+146,141,101,208,119, 52,115, 12,222,229,220,128, 53,235,148, 97, 14,251, 53, 28,110,112,202,209, 25, 54, 67, 83,138, 3,176, 2,
+250,226,248, 58,170,245, 12, 40,246, 81, 73,151, 47, 28, 10, 24,104, 76,119, 1,105, 25,144,155, 5,167, 54,208, 68,253,248,228,
+148, 21, 32, 14,234,202,233, 81,232,154, 43,133,183,176,120,208,149, 39, 96, 76,140, 87, 78,110,183, 43,196,240, 16,136, 89,159,
+174, 22, 27,183,184,180,196, 90,106, 96,193, 97,195,247, 24, 58,216,246,116,105,106, 43,143,134,139, 51,160,187,172,214, 46,161,
+ 99, 44, 2,115,162,208, 42,120,225,129,171,168, 21,234, 8, 86,211,224,142, 51, 67, 37, 57, 45, 50, 10, 79,248,182,171,183,110,
+162,114, 75, 51,209, 26,219,199,215, 19, 32, 20, 45,165,121,177,227,127,232, 20, 40,116, 3,211,132,164, 81, 11,223, 4,190,223,
+181,233, 68,104,247,215, 11, 1, 32,233, 77,186,210, 11, 0, 71,240,102,169,241,251,243,210, 70,144, 97,225,114,190, 65,192,189,
+ 28,222, 39,197,125,244, 12,156, 30, 70,242,238,118, 78,129, 24, 76,131,176,151,100,224,128,118,188, 96,103,170,193,103,208,210,
+135, 52,164,221, 44, 30,106, 36, 44,140,215,251,122,174,144,132,239, 53, 73,189, 58, 59, 32,136,166,116,119, 58,225,106, 33,224,
+116,140, 86,151, 89,254, 96,174, 67,192, 78,194,207,126,184,183, 52, 93,231,134,217, 26,227,193, 62, 4, 93,134, 69,209,142,251,
+102, 74,231, 2,197,206, 66, 14,215,115, 93,187,128,237,114, 96, 85,114, 13, 74, 29,195, 75,100,166,188,101,187,226,204,118,178,
+133,173,147, 48, 9,192,239,231, 42,194, 21,232,216, 25,235,215,219, 30,104,172, 27,177,247,135, 9, 11,120,218,160,252,225,239,
+ 99,215, 43,159, 46, 77, 27,194,228, 52,115,226, 67,182,254,153,241,191,117,106, 46,120,140, 62,129, 33,189, 9, 78,131,206,247,
+210,188,177,165,156,203,246,221, 5,187, 72,176, 34,208, 57, 94,222,143,173, 96,116,119, 68,172, 3,254,203,183, 59,249,245,147,
+ 6,153, 38, 71, 26,112, 47, 52, 16,115,234,161,239, 13, 99,249,147,195,125, 54, 43,152,200, 81, 58,180,219,148, 71, 39,251,250,
+119,122, 29,247, 7, 76, 78,151, 87,247,102,243,172,231,234,179, 79, 62, 33,253,237,126, 58,102,145,132,147, 52, 91,216, 20, 34,
+106,132, 76,200,150,124, 33,196,210,242,206,220,238,105, 76,230, 65, 73,127,119,196, 86, 36,231,116,147,179,249, 0,134,166, 11,
+ 76,197, 70,203, 65, 76, 29,218, 13,158, 21,130, 13, 93,150,186, 65,142,115,248, 32,153, 75,126,180,237, 84, 89, 40, 64,221, 45,
+122, 88,137, 38,145, 81, 15,205, 13, 47,112,218, 85,192,228,181, 89,105,115,160,221, 32,148, 26, 7, 90,176,108,146, 37, 39, 57,
+ 85, 7,205,184,145,173,165,167,215,224,234,182,144,235,155, 43,121,116,250,152,113, 44,210, 88,141,207, 6, 19,152,191,124,255,
+123,249,242,139,223,200,112,255,137,252,235,223,164, 26,159,244, 25, 44, 2, 38, 50,252,110, 80,118, 1,212, 28,107, 53,240,225,
+118,194,201,226, 97,207,140,104,240,140, 97, 44,143, 4,143,123,130,243,128,251,137,152,130, 85, 20, 18, 57,169,205,121, 96,138,
+123,211, 13,187, 95,188,207, 15,218, 68,189,191, 30,201,205,237,165, 89, 57,107, 28,134,196, 43, 38, 15, 0, 96, 35, 49, 62, 58,
+104,201, 63,195,231,215, 63, 3,136,135,247,178,221,217,245,195,243,140,123, 51, 95,249,232, 60, 52, 17, 21,188, 79, 92, 67, 48,
+ 86, 46,238,231,108, 36,128,187, 0, 93, 14, 59,106, 92,230, 27, 77,252, 63,123,220, 39,125,122,172,221, 58,148, 61, 3,247, 6,
+ 65, 12, 7,184, 14,239, 27,121, 97,177, 78,249,181,200,141,201,114, 49, 80, 37,108,110, 27,152, 68,184, 32, 14,157, 32,180,224,
+190,186,189,103,156, 58,218, 79,228,209,209, 49,159,217,191,251,250, 91,185, 63, 59,145,127,247,155,199, 50, 4,216,110,158, 9,
+ 32, 27,189,168, 85, 55,210,100,168, 57,200, 24,247, 27,221,255, 97,223,124, 48, 32,110,131, 98,137,192,116,210, 31, 34, 83,124,
+ 66, 18, 3,127,186, 29,154, 65, 64,167, 48, 23, 45, 28,122,123,171, 17,201, 74,165,187, 66, 21,229,195,174,164,136,196,171, 63,
+ 27,179,147,219,236,212,173, 74,255,215,132, 64,132, 31, 8, 78, 75, 64,161,163, 72, 96,199,139, 42, 39,201,217,177, 67, 8, 97,
+138,202,116,101,213,125,238, 5, 68,200, 61,239, 78,230,122, 83, 18,210,122,180,179,208, 32, 9,209, 59,184, 47, 45, 52, 65,254,
+164,157, 57,192, 63,144,173,132,186,221, 55,231, 99,249, 15, 95,238, 75, 43,200, 40, 29, 65,215, 46, 4, 39,114, 71,119,236,212,
+ 6,120,239,206,117, 6, 96, 40,195,174, 25,193,111,109, 94,196,171,160, 32,117,133, 0, 53,253, 29,133,150, 3,175, 47, 38, 4,
+249,173,160, 20,166,255,251, 81,127,207, 22, 14, 64,122,232,240, 67,243,187, 37,147,242,163, 30, 44,249, 18, 19,208,105,219, 78,
+ 40,246, 64,129,247, 30,107, 5, 10,149, 42, 38,115, 61, 4, 23,139,157,209,144, 52, 25, 65, 21, 10, 14, 97, 51, 13,218,224,108,
+ 71,238, 76,182,170,209,241, 54,150,193,227,141,224, 15, 97, 14, 51, 59,121, 48, 64,161, 32, 11,233, 95,153,117,218,220,225,134,
+188,249, 8,114,195,126,199, 53, 2,244,125, 0, 75, 0,218, 14, 14, 80,106, 18,171,120,125,188, 7,252,110, 38,213,208,204, 40,
+232,130, 86,100,156,134, 16, 15, 1, 91,201,192, 20,155, 10,223,121,131, 26, 66,164, 47, 57,208,185,139,251, 4, 44,154, 42,227,
+ 10, 36, 6, 36,154,202,137,203,246,223, 25,199, 72, 17,247,167, 13,159, 12, 21, 28,185, 98,111,141, 2,162, 18,221, 9,189,136,
+ 73,233,167,156, 25, 82,220, 77, 75, 2, 55, 24, 42,220,129, 9,239,131,148, 58,167,227,112, 95,203,245, 74, 80, 79, 29, 80,156,
+162,115,130,143,182, 21, 32, 37, 59,134,233,106,237, 0, 76,183, 17,141, 12,120,133,207, 66, 89, 87,210,154, 68, 70,154, 8, 16,
+ 60, 76, 79, 61,244,221, 99,206, 68,245,225,126, 42,159, 60, 62, 35, 0,102, 50, 91,178,152, 53, 59,213, 38,113, 27,115,136, 92,
+ 20, 37,187,197,204, 19, 60,138, 56,140,239,240, 12, 29,232, 53,133, 51,242,205,253, 82, 38,219, 5,117, 10,242,194, 4,141, 50,
+ 95, 83,224,126, 68, 78,175, 52,202, 97, 80,235,244,207,192,144, 64,231, 7,163, 22, 45, 76, 59, 62, 42, 70,178,100, 12,112,199,
+184,166,139,219,176, 40, 74, 98, 55, 12,177, 41,198,114,179,173, 41,105, 81,184, 49,160, 39, 49, 29, 54, 25,225,154, 40, 52, 75,
+225,212,117,247,177, 6, 48,251,221,160,150, 92,174,196,166,204,155,221,172,157,169, 65, 0,193,148,188,116, 95,247, 92,158,159,
+ 30,201, 94,191, 47,175, 47,111, 13,232, 73, 19,169,148,120, 3,254,183, 94,195,171, 89, 41,231,163,157,188, 58,237,202,205,178,
+100, 98, 4, 66, 26, 99, 83, 90,212,150,144,222,237,176,240,158,105, 81,139,100,222,114,244,246,205,104, 70, 80, 31, 10,166, 82,
+127,119, 16, 55, 25, 3,191,120,245,169,124,251,253, 55,134,102,214,103, 60,209,235,181,110,152, 91, 37, 80,239, 81,100, 40,230,
+164, 97,192,196, 6, 85, 21, 67,126,214, 45, 65,149,176, 20, 54,175,121, 48, 32,224, 67,129, 36,244,237,133,141,250, 81, 0, 33,
+105,154, 6,132, 81,117, 43,139,103,226, 79, 10, 75,108,133,203,101, 22,110,110,131,228, 22,115, 87, 93,178,160,106, 37, 46,148,
+181, 53, 81,172,208,133,143,128,124,195, 14, 30, 5, 59,174, 23, 40,181,143, 30,157,201,213,229, 7,142,160,193,176, 16,174, 82,
+ 55, 82,164, 43,222,239,155,187, 91,189, 63, 45,130, 81,227,176, 41, 39, 39,135, 4, 18,226,251, 62,220,220, 26,128, 76,207,240,
+159,222, 24,133, 14,184,171,130, 82,175, 54, 61,216, 16,160, 25,202, 95,191,122,164, 73,188, 82, 19, 44,185,142,132, 6,202,102,
+103,106,131,252, 25,207, 13,200, 45,165,251, 20,108,179,173,153,116,229, 1,215, 88,103,103, 79,181, 40,223, 35,131, 38,208, 34,
+ 2,188,116,200, 80, 39, 13,123, 86, 1,154, 68,215,139,216,241,238,122,174,231, 58,161,146, 40, 86, 47, 80,237,196,164,137,182,
+185,129, 37,115,196, 91, 20,144,221,102,160,215, 96,195,251, 7,218,246, 94, 71,187,229,187, 53,241,100,152,246, 14,186,136, 9,
+ 45,174, 50, 62, 61,219,147,191,188, 29,249,121,205,157, 45,100,157, 55,128,126, 16,142,129, 14, 62, 46,249,108,157,153,210,226,
+206, 49, 33, 98, 94,239, 43,151,237,174, 84,182,161, 26,202, 63,235,107, 61, 57, 59,245,201, 82, 83,238, 38,115,249,219, 63, 93,
+201,127,248,234, 49, 27, 2,208,102,145, 31, 91, 13, 51, 15,163,191, 3, 39, 45,137, 79, 98, 82, 22, 73,175, 30,235,153,252,238,
+ 94,198, 99, 61,215, 88,163, 64,104,159, 10, 62,129,211, 73, 92, 86, 18,135, 17, 99, 26,210,173,252, 6, 4,110,157,154, 57,215,
+250,193, 71,219,245,123,156, 82, 67,123,184, 34,175,125,179,115,215,141,198,215, 80, 36, 0, 81,136, 32, 8,195, 8, 84, 90,163,
+101, 78,176, 25,133, 77, 26,166,211,123,163, 29,115, 20,132, 21,241, 93, 43,221,152,182,121,179,245,150, 59,173, 20,135, 24, 15,
+184,222,180,139,197,141,220,105, 53,117,183, 76,229,141,222, 28,248,239,194,117, 8, 72, 76, 42, 26,117,204,106,145, 8,107, 72,
+ 2,162,224,162,202,150, 5,255,251,149, 94, 44, 45, 32,154,250,158, 80,133,227, 38, 32,149,224, 97, 31, 83,144,167, 37, 77,112,
+ 6,181,155,126,123, 55,165, 48, 79, 69, 87,225, 78, 27, 99, 53,208, 29, 56, 27, 46,137, 60,166,246,187, 94,163,203,113,166,191,
+ 63,118, 22, 65,201,209, 13, 2,120,158,219, 30, 17, 46, 83,131,142,141, 57,145, 12, 30, 61, 26, 74,222,234,242,192, 20,212, 77,
+ 15,245,160, 30,114, 60,139, 49, 23,169, 75,133, 39, 44,253,191, 25,165,101, 53, 57, 99,116,230,123,144,160, 17,209,208, 36, 36,
+104,176,252, 72,235, 62,116, 83, 2, 91,129, 64,233,169,194, 68,160,144, 51, 78,112, 66, 0, 25,238, 77,187,105,218,196,232,188,
+ 80, 48,128,158, 97, 8,220,130, 29,194, 18, 74,123,173,196,169, 36,230,251,221,215,202,251,232,192,208,218, 89,106, 59,221,124,
+ 99, 66, 54,166,132,102,187,217, 40, 48, 32, 8, 0, 64,248, 57,224, 31,108, 39,153,114, 44,159,249,249,170, 60,207, 81, 92,220,
+141, 39,206,237, 55, 92,135, 41,221, 21,222,153,148,206,147, 55,116,114, 53, 5,168,236, 72,141, 30, 85, 88, 55,197, 42,218, 59,
+125, 23, 14, 41,220, 59,186, 73,135,192, 22,247,242, 88, 77, 64,146, 23, 99, 55, 0,154, 42,158, 49,133,132, 52,248,129, 78,137,
+251,253,238,250, 78, 78,246,135,164, 80, 1,112,134, 32,103, 52, 25,227,181,174,211, 45, 21,184, 48, 82,195, 78, 14,221,182,137,
+ 81, 8,207,105,170,127,223, 8, 53,232, 30, 14, 89, 20, 47,150,115,118, 87,120,159,120,223,189,246, 1,197,118,240,126,222,126,
+184, 53, 97, 39,130,214, 18,118,134, 72, 82,120,184, 73,151, 98,167,184,227, 53, 32,152,176,221, 33, 96, 15,157, 54, 7,114, 8,
+ 6,129, 81, 41,209, 97,228,222,225,113,242, 16, 88,177, 72,122, 82,105, 5, 17, 18, 97, 89,123, 26,218,153, 39,144, 46,180,149,
+ 14,112, 33,166,109, 31,114, 85,133, 46,138,247, 76,204,195,129, 20, 57,224, 70, 50,115, 90, 11, 99,163, 21, 21,169,185,250,113,
+205,128,198,194, 29,255, 54, 20,238, 48, 30, 54, 58, 83,168,151,125,247,254,146,201, 18,214,157,118,126, 10,114,193,209, 17, 2,
+ 13,140,245,219,111, 95,143,228,127,254,170, 35, 63, 93,141, 56,218,133, 96,211,201, 97,159, 19, 3, 60, 31,152,230, 73,104, 5,
+ 3,176, 50,212,201, 14, 77,155, 30, 35,225, 78,167, 39,203,197, 76,131,148,233, 27, 60,215, 96, 11,228,252,100,182, 96,231,134,
+ 53, 10,128,114, 72,190,175,142,247,152, 60, 48,121,131,190, 69, 73,203, 80,128, 1,161, 61, 96,113, 5, 77, 10,206,245, 54,138,
+201,224,192,201,233,192,100, 4,122, 6,129,233,116,224, 33,217,149, 69,205, 52,192, 88,190,108,234, 53, 1,219, 0,212, 89, 22,
+233, 57, 11,116, 22, 15, 76, 12, 5, 1,192, 0, 35, 86,113, 27,140,156,194,215,147,156,254,132, 65, 13, 76, 6,173, 10,224, 44,
+124, 94, 24,130, 28, 29, 28,202,245,237, 53, 85, 48, 11,177,142, 22, 83, 32,115,221,243,179, 67, 41,109,224,133, 48, 10, 63,208,
+ 7,121, 65, 97,171,217,116, 68,243,147,243,155,177,203, 15, 23,174,240,232,110, 2,133,197,251,191,253,211,143,174,160,105, 83,
+ 91, 92, 63,226, 44,242,143,104,176,174,186, 70,113, 47, 20,154, 16, 69,130,222, 3, 18, 42,155,197,156, 83,142, 40,200, 8, 84,
+ 51,211, 20, 46,124,228,112,191, 77, 63, 11, 48, 83,142,247,244,190,165,154, 28,143,186,212, 87, 0,215,123,165,197, 20,240, 97,
+211,229,174,166, 4, 71, 46,164,134,235,135,215,205, 10,139,139, 43, 77,192, 95, 60, 30,200,253,220,244, 75,218, 13, 91, 69, 95,
+107, 66, 61, 25, 4, 4, 95,191,124,212,103,194,254,226,233,158,124,255, 97, 70,173,128, 10,251,243,244,168,207,233, 29,158, 87,
+120, 34, 32,238,106, 47,195, 34, 6,231,155, 5, 53, 89, 64,161, 51,141, 90, 22,127, 51, 83,140,123,127,113,201, 51,102,107,173,
+ 82,243,216, 90,190,187,202,228, 23,207, 18,226, 15, 86,244, 6,233, 50, 89,103,212,247, 48,220, 6,138,105,196, 79,172, 5, 64,
+249,254,226,229,158, 22,168,185,188,189,209,134,238,110,178,241, 11, 27, 17,149, 88,205,255,185, 63, 47, 13,141, 9,125, 94,202,
+113,162, 10,201,140,220, 95,129,146, 42, 42, 14, 65, 32,190,223, 65,167,149,149,185, 35,224,165, 14,176,232,108, 40,182,160, 31,
+225,221,253, 90, 30,107,101,117,210,143, 41,158,130,155,110,226, 6,161, 38, 82, 92,160,156,251, 79, 4, 54, 76, 16,112,224, 81,
+ 72,128, 34, 2,173,116, 84, 96, 5, 76, 81,150, 43, 94,160,119, 55, 19,121, 63, 90,105,130,182,253, 3, 58,210,185, 86,102,159,
+ 63,217,151,253,253, 65, 77,149,107,235, 1, 47, 29,181,159,109, 82,154, 33,224,207,144,160,220, 96, 12,180,221, 58,136, 14, 9,
+125, 43,151,192, 21,148,102,247, 10, 77,251, 62, 40, 50,121,233, 35, 74, 67,127,175,119,166,142,132,239,195,152,145,174, 65,250,
+119, 38,177, 27,251, 72, 27,197,179,190,174, 86,225,105,203, 76, 56,130,180,201,155,137,145, 39,128, 77, 0,212,173,244,125,228,
+187, 53,255, 30, 99, 56, 22, 84,250,249,218,180,122, 77,109, 4,236, 6, 3, 72,240,160,234,208,122,148,210,184,153,211,192, 34,
+118,209,219,202, 57, 8,163,193,194,228, 39, 75, 49,133,182,125,173,112, 43, 41, 84, 67,203,219,216,123, 60,155,249,200, 53,161,
+177, 5,253,172,219,134,162, 5,250,158, 43, 24,125, 79, 0, 24,165, 44,248, 74,126, 29,227,240, 86, 59,100,209,196,196,198,206,
+249, 65,185, 15, 99,233, 93,110, 73,216,146, 73, 94,131,248,192,128, 72,243,220,199,199, 41, 59,186,150, 62,176,212,183,118,163,
+ 19, 83,167,139,124,135,174, 29, 74,187, 83,115,207, 43, 3,147,216,205, 89, 76,244, 97,247,255, 75,242,149,167,185,241,218,195,
+ 26, 8, 88,212,197, 39,254,129, 46, 53,181,227,105,174, 98,160,150,160, 2,129,185,222, 57,166, 11,103, 71, 7,230,164, 5,183,
+ 42, 61, 39,135,123, 3,238,145,151, 26, 36,254,250,139, 99,253,183, 89, 97,126,184, 50,175,110,123, 31, 33, 37, 39,225,188,102,
+224, 51,151,152,220,106, 97, 57,135,178,149,153,232,160,240,128,133,174,177, 67, 98, 47,194, 10,238,182,161,183,141,123,213,107,
+119,153,140,133,194, 64, 13,126,174,189,190,237,139, 65, 87,131,210, 25,146, 2, 87, 64, 40, 24,147,150,107, 14,104, 50,112,247,
+ 68,128, 21, 17,144, 87,180,215, 44, 93, 21,175,116,125,131,192,133,133, 2, 83,128, 44,141, 66, 74,243, 14,104,178, 55, 13, 8,
+ 73,230, 7,190,136, 85, 78,165,253, 29, 24,235, 1,159, 53,227,125,174, 86,116,118, 15,233,203,142, 51,214,132,217, 80,199, 48,
+ 33, 62, 66,166,118,189, 94, 55, 4, 71,211,239, 55, 9, 99, 92,115, 8,239, 4, 65,233, 59, 69,243,189, 14,130, 54,147,248, 31,
+223, 78,229, 63,254,213, 99,130,150,144,172,182,188,134, 27,217, 27,246,105,186,196, 49,113,167,105,224, 86,111, 50,112,198, 77,
+242,181,100, 51,129, 73,207,226,254, 70,239,245,161, 92,234,251,252,244,233,137,252,237,239,110,249,243,196, 36,136,173, 9, 0,
+ 98,228,100,172,101,158, 9,180, 11,221,229,230,227,190, 53,180,242,134, 40,239,216,141,131, 48,170,110,179,104,218,239,194, 70,
+119, 77, 80, 45,121,234, 0,239,233, 51,189, 10,205,138, 24,175,139, 85, 14, 70,196,181,173,109,104,247, 55,161,106,219,206, 76,
+147, 74,169,177, 74,182, 88,143,120,206,120,158, 29,176,140,230, 2,159, 15, 5, 11,174, 33,246,225,207, 78,143,228,226,246,134,
+ 93, 31, 10, 91,188,183,203,241,146,113,153,157,115,210,224,239, 56, 59,218, 35, 56,240, 82, 59,116,236,170, 51, 45,136, 46, 70,
+153,118,243, 75, 82,204, 80, 52, 81,172,139,163, 90,241,127, 7,188,183,160, 0,219,223,185,169,181,195,170,200,186,113,118, 18,
+254,140,248, 12,253, 16,125, 57, 58,148,181,241, 92, 55, 35, 22, 73,189,238, 80,206,180,120,130,242,228,217,241, 83, 61,239, 13,
+ 83,154,212,235,138,166,144,107, 19,178,125, 74,153,233,179,210,209,120,148,105, 78,129,166,196,138,170,123, 85,113,106, 9,248,
+112,208,230,154, 51,164,133,239, 74, 11,237, 29,227, 12, 10,140,187,217, 78, 78,247, 90,242, 97,180, 98, 2, 46, 9,248, 93,107,
+129, 88,106,210,238, 16,179,243, 92,127,126,160,191,119,216,219,202,190,187,119,226, 58,221,106, 35,121,118,208,145, 63,189,185,
+213,226, 31, 40,253,136,143, 3,155, 14, 42,137,134, 50,219,218,116,162,240,123, 67,209, 45,205, 3, 0,191, 54, 88,124,183,249,
+ 53,200, 88,131, 53,243,247,223,189,211,231,227,153, 22, 19,109, 78, 52, 86,250,204,227,121,232,235,217, 73,226, 45, 49, 16, 90,
+235,200,116,190, 97, 35, 17,121,129,253,248, 24,211, 62,205, 63, 84, 23,242, 26,188, 10,248,116, 52,195,120, 3,149,128,190,201,
+ 70, 51,175, 85,197,140,207, 92, 24, 29,167, 22,141,176,196,158, 59, 90, 57,247, 0, 41, 78,121, 17,119, 78,171, 16,184, 99,173,
+160,154,139, 72, 22, 24, 53, 81,209, 46,101,165, 19, 58,207,251,205,205, 70, 38,203,140, 99, 65,154,130,228,166,235,203,189, 85,
+ 46,164, 22,221, 46,177,231, 48,205,225,157,118, 58,120,178,161,254, 54, 71, 48,167,225, 68, 71, 31,108, 4,230,141,252,225,253,
+ 76,246,225,148,212, 95,201, 94,144,240, 96,160,162, 67,208,109,183,141,146,132,209,203,116,121,175, 93,210,198, 58,215,182, 9,
+204, 0,196, 52,203,245, 65,189, 93,202,104,186,148,253,195, 30,253,151, 57, 86,142, 35, 38,226,163,164,199, 17, 44,130, 24,119,
+242,122, 56,113,160, 17, 68, 48, 54,191, 31,207,216, 69,153,188,166, 30,248, 21, 4, 21,214,236, 32,142,181,171,197,117, 61,191,
+190, 55,177,151,216,168,124, 76,218,133,141, 67, 49,250,132,250, 19,246,130, 38,179, 26,202, 72, 95, 19,192, 14, 20, 22,171,205,
+ 74,182,203,172,222,199, 34,201, 64,239, 24, 9,217, 0, 87,190, 99,170,246,249,250,231,145, 30, 8, 90, 91, 34, 33,174,211, 90,
+ 13, 10, 93,116, 18, 38, 4,230, 48,105, 72, 76,110,169,136, 37,206,172, 52, 91,205,197,198, 76, 39,112,224, 35,183, 67, 77, 34,
+147,122, 37,238, 2, 35, 96, 40, 49,137, 41,134,129, 71,139, 73, 75, 25,152,235, 27, 36, 27, 43,228, 51,237,118,245,154,101,169,
+241,242,195, 36,226,103,163,178, 94,106,110,106,120,248, 42,172, 6, 58,222,204, 1, 75,221, 94,175,182, 80, 13,125, 31,159,127,
+228, 40, 24, 85, 82,184,133, 9, 24,197,222,157, 71,222,197, 87,154,231, 24, 51, 83, 25, 12,137,115,110, 64, 69, 92,207, 65, 59,
+ 34,133, 9,193,198, 10,184,140,216,147, 31,223, 95,214,215, 31, 29,217,238,205, 37,247,144,143, 53,104,254,112,113, 47,127,120,
+125,195, 21,142,141,216,133,223, 75,140, 64,181,199,151,200,249,228, 30,236, 42, 83,162, 42, 40,151, 86,228, 70,190, 70,105,181,
+160, 60,101, 20, 80,224, 61, 98,142,230, 75,242,200,231,171, 57, 87, 65,248, 85, 24, 23,115, 79,201,226, 69, 72,217, 65,223,140,
+ 73, 8,166, 48,232, 96, 90, 4, 4,149, 76, 2,208,170, 30,166,169,191, 86,101,221,106, 32, 35,158,223,134, 41, 33, 86, 96, 75,
+ 36, 75,128,145, 48,190,197,247,225,217,204, 83,211,171, 7,130,126,201, 98,200, 58, 79,156,101,128,212,240,188, 85,234,114,152,
+244,124,250,236,177,124,246,248, 80,158,106,208,254,179, 94,183,255,252,199,215, 82,225, 30,171,181, 82, 89, 88,242,142, 18,163,
+226,113, 21, 19,155, 60,106,226, 76, 7,179,114, 78,201, 23, 71, 17,244,230,102, 46,159,158,246,136,136,199, 44, 13,207, 55, 92,
+236,198,227, 57, 1,177, 79, 78, 15,105, 14, 2,100, 52, 62,223, 18,120, 25, 36,122,128,232,182, 38, 87,154,132, 41,207,231, 4,
+ 0,201,195,167,181, 34,227,158, 6, 84,196,130, 16,216,162, 29,132,170, 34, 57,217,239,232,207, 47, 25,147, 48,157, 33,199, 92,
+ 95, 23, 50,208,101, 22, 16, 92, 22,250, 20,235,219,247, 87,114,180,215,231, 20, 2,251,110,220,183, 13,159,247,196, 58,244,210,
+ 44,159, 81, 4, 64,204,198,124, 23, 10, 78, 60,194, 88,220, 20, 39,150,161, 22, 14,243,197,206,101,122,141, 77, 64, 70, 81, 98,
+170,160,161,216,228, 9,212,212, 40, 49,157, 12,224, 46, 48, 65, 91,130, 79,207,110,177,199,162,107,208,209,207,171,197,223, 89,
+167, 47,247,208,182,112,186, 41,174,233,219, 15, 23, 50,108,183,248, 30,169,148, 9, 58,237,220,180,228, 63,123,124,166,159,165,
+163,215,164, 97,152, 3,168, 36,118, 27, 46, 47, 46, 4,162,189,187, 30,115,236, 14,121,111, 76, 83,208,208, 65,189,145, 38, 65,
+137, 81, 45,193, 44,178,105, 89, 44, 71,251,125,198,202, 38,169,109, 37, 93, 16,119,153,237,139, 1,140, 67, 1,215,114, 45, 5,
+ 20, 80,140,103,122,150,254,242,246, 78,207,123, 79,190,250,229, 11,237,122,199,140,175, 40, 48, 32,174,148,251,218, 2, 29,126,
+ 68,185,239,152, 59,242,207,135, 45,249,230,221,216, 37,168, 69,155, 55, 45, 20,146, 82, 11,140,144, 30,244, 71,199,160, 58,174,
+245,253,135,242,244,160,205,124, 0, 93,251,249,237,130,241,106,178, 50,164, 62, 10,206,230, 97, 87,250,195, 14, 11, 40,136,153,
+129,183, 94,122,177,187,216,154, 31, 60,220, 56, 59, 45,109, 6, 65, 29,221,108,221, 34,215,168,221, 16,214,233, 65,154, 25,247,
+ 73,243, 24,166,107, 80,247,251,227,107,224, 21, 78,228,197,163,129, 91, 84,231,100,133,180, 3,163, 72, 98,186, 85,192, 18,124,
+190,213,162,167,207,252,133, 41,224,191,250,245, 35,137,255,205,191,255,119, 52,155,159,140,199,178,152, 47,136,140, 94,145,102,
+ 36, 52,153, 72, 34,173, 80,119, 38,182, 97,227, 81,179,223,171,188,173,221,142,218, 92,160, 10, 3,147, 20,206, 93,230, 80, 62,
+ 52, 33, 26,243,245, 46, 56,126, 0,248, 98, 56,232,114,196,137, 10,127,160,213,244,104, 50,210, 15, 41, 4, 66, 36, 90,153, 46,
+ 32,244,175,193,114,190, 94,154,210,152, 6,144,190,254, 12, 30,178,151, 47,246,229,157, 30,236, 3,253,190,177,190,199,185, 86,
+ 67, 59,173, 48,207,158, 12, 37,108, 77, 24,136,142, 14,246, 56,214, 96,128,208,255,190,212,164, 56,214, 55,118,187,153,146,147,
+136,206, 28,129,252,137, 94,196, 31, 53, 8, 99,199,137,207,136,196, 57,154,204,165,175, 55,242,236,100,143, 10, 70,215,163,148,
+128, 27, 36, 83,236, 62, 64, 41,131,128, 5, 14, 33, 30, 58,136, 65, 96,119,133, 36,133,195,137,192, 59,157, 47,120, 93,238, 52,
+249,162,227,205, 40,222, 31,203,122, 97, 46,102, 72, 14,120, 45,140, 55,175, 71, 11,187,217,250,247,120,223, 8,216,224,202, 98,
+124,115, 9,251, 67,136,117,235,125, 24,175, 50,142,116,105,203, 8,223,248, 2,116, 25,253,119,220, 38,191,212,228,101, 11,160,
+193,244, 71,115, 86,185, 9,165, 90,237, 62, 53,124,175, 92,113,135, 57,242,193,234, 32, 8,125,133, 98,218, 2,185,119,106, 85,
+161, 23,184, 10, 94, 89, 88, 2, 10, 92, 7, 62,240,229,106,101,192, 81,233,231,147,201, 39,161, 3,244,132, 69, 0, 2, 84, 30,
+184,161,145,112, 19, 96, 20, 59, 31,223,185,198,160, 1, 54, 97,132, 1, 32, 86,108, 94,208, 72,196, 12,246, 46,176, 1, 99,153,
+170,104,172,220, 0, 81,236, 80,213, 44, 54,133, 68, 42,144,229,153,163,225,125, 4,239, 21,109,141,237,112, 85, 47,113, 52,250,
+ 76,239, 53, 18, 52,238, 95,159, 9,205,246,125,216, 65, 98, 12, 7, 20, 42,192, 92,176,158,156,234,195, 52,208,243,168, 89,204,
+197, 36,244,122, 39,133,158,173,185, 60, 29,244, 41, 99, 9,195,147,162, 52,163, 23,128,239,232, 54,200,168, 94, 80,141,138, 99,
+200, 36,114,103,168,192,247,207, 70,117,226,138, 69,108,191,223,106, 27,158,162, 9, 29, 6, 20, 50,218,181,236, 13,186, 92,123,
+192,253,109,208, 60, 96, 17, 25, 69, 54,213, 58, 61, 48,193, 17, 4, 30, 20, 29,216, 43, 3,109,142,247,107, 8, 96, 76,219, 82,
+ 1,179,142,118,201, 84,241, 51,153, 93, 22, 33,218, 81, 66, 69, 13,180, 71,172,224,224, 48, 24,250,216, 13,114,165,112, 13,252,
+105, 54, 98, 87,134, 61,234, 64,131,210,179,231,159, 75,212, 90,202,242,252,156,184, 18,172, 24,128,188, 70, 18,199, 78, 26, 34,
+ 28, 60, 31,165, 9, 6,125,127,113,199,110,105, 10,250, 22,232,149,149, 81,143, 79,249, 13, 61,110, 96, 46,232, 45, 24,200,210,
+ 0,101,230,230,102,147,179,156,235, 7, 67,145,127,127,189,145,255,248,213,158,188,190, 93,115, 90, 5, 64, 99,228, 46, 93,151,
+ 55, 35, 50, 80,208,217, 28,238,117,201, 19,126,127,121,207,238, 23,234, 93, 8,218,180, 24,109, 20,150,132,146, 22, 81,200,175,
+ 94,125, 38, 55,151,231,236,250,112, 14, 2, 46, 25, 76,246,121,155,153,209, 13, 24,105,237,166,197, 65, 24,150, 68, 97, 83, 54,
+224,248,239, 54,188, 71,164, 66,102, 70, 71,194,100, 39,170,124, 38,130,210,113, 12, 25,175, 61,214,141, 77,186,126,153,243,101,
+ 14, 1, 33,224,126,124,111,205,103,208, 5,190,114,215,180,192,215, 64,125,130,138, 95,152, 91, 51,197, 66,218,233,168,144,196,
+ 0,114,127, 16,216,132,242,118, 60,161,232,211,108,114, 39,207,206, 6, 92, 91,126,119,241,182,198, 54, 85,160, 83, 20,110,221,
+ 22, 40,140, 49, 65,187,237, 70,206,207, 6,191,139, 0, 60,251, 13,146,189,126,159, 54,100,152, 2,254,120, 61,241,226,207,208,
+254, 24, 63,159, 12,219,242,155, 79, 79, 93,104,198,158,211, 37, 80,243, 80, 99, 3, 50, 93,139,163, 70,162, 73,123,186,150,119,
+151, 55,250,223,121,237, 68,153, 99, 42,217,110, 24, 83, 64,207,199,191,254,231,191, 97, 82, 35,131, 74,223, 23,244,211, 33,128,
+243,249,179, 19, 54,147, 27,109, 20,127,249,233,177,252,225,235,115,189,207,230,200, 7, 92,213, 60, 79,121,237, 83,151, 83,198,
+225, 58,208,102,240,104,184, 38, 62, 10,109, 36, 41,138,189, 38,217, 42, 39, 3,211,200,128,169, 17,148,237, 0,152, 3, 6, 2,
+206,161, 90, 87,107, 92,134, 7,199,154, 94, 2, 88,211,190,215,207, 61, 25, 15, 5,109,197,253,194,100,130, 99, 2, 36, 97,116,
+211,144,247,183, 91, 90, 24,211,247, 61,118, 42,163,211,218,208,140,228,238, 10,138,107,254,228,244,148,241, 31, 19,148,119,151,
+151,242,205,121,139,249,232,104,175, 89,123, 40, 32, 94,163,187,199,121,129, 85, 45,128,237,163,241,130,207, 41, 10,211, 45,164,
+215, 31, 63,127, 46, 79, 95,188,160,192, 61, 40, 78, 91,253, 64,119, 55, 55,114,119,119, 39,155,133,129,126,200,103, 20, 3,137,
+112, 98, 19,229,236,110,205,236,197, 14, 82, 90,209,103, 0,221,199, 14, 15, 85, 87,163,193, 61, 5, 42,118,140,151,167,154, 72,
+177, 27, 66, 39, 49, 39,205,103,103,188, 96, 77, 88,135, 7, 93,163,242, 96, 76,167,215,254,112,223, 60,171, 77, 16, 31,128,174,
+ 22,255, 27,157,168,137, 94,148,114,171,137, 24, 73, 51,241,253,255,245,221,200, 52,148,245, 97,249,160,201,208, 28,217, 66,185,
+223,108,249, 61, 27,125,173,155, 44,171,101, 26, 1, 0,203,139,178, 78,114, 48,171,199, 3, 68,138, 87,187, 35,183, 35,173,194,
+ 11,179,142,133,208, 9,171, 98, 31,141,162, 43,108,134, 77,162,224, 1,108,194, 4, 3, 29,250,221, 28,149, 26,198,183,122,131,
+147,146,130, 7, 72, 74,236,212,245,115,244,188, 98, 14, 49, 82,211, 7, 6, 93, 33,110,210,222,222, 1,175, 33,170,244, 46,174,
+ 33, 12,158, 37, 39,122,123,231,194, 5, 1,157,207,172,155,109,185,176, 68,228,149, 50, 1, 72,250, 58,160,149, 97, 44,188,241,
+ 34,140,148, 17,223, 57,135, 94,100,133,193, 3,115,161, 2, 71, 81,145, 46, 50,104,135,129,219,130,218,196,163,162,143, 81, 60,
+ 4, 99, 53, 71,206,214,244,178, 40,170,145,246,226, 19, 27,142,155, 65, 53,203, 75, 31, 51,218,125, 43, 67,215,172,207, 77, 8,
+ 39,228,248,210,222, 99,232, 5, 3,222, 91,149,152,109,104,158,186,160, 76,195,141, 99, 66,186,218,145,198,232, 83,141,138,230,
+ 86,153,212, 24,175,215, 41, 83,133, 65,134,201,198,112,115,149,162,118, 7, 43,204,204, 36,205,120, 31, 73,131,195,217,246, 66,
+ 99,162, 5,220,201,192, 44, 52, 49,190, 67,225,106, 64, 41,179, 6,197,219, 71,224, 37, 58,191,223,148,103,135, 3,142,214, 18,
+114, 76, 19, 26,174, 0, 96, 4,168, 41, 48, 9, 8,124, 44,140, 67,206, 35, 57,133, 57,213, 66, 16, 85,191,121,215,231, 52,121,
+ 24,207,108,130,132,177, 51,186, 29, 60,155, 64,210,231,121,147, 69,193,114,177,116,255,133,140, 66, 44,144, 52,134, 28, 46,146,
+249,221,116,198,202, 29,107,139,210,141, 39,240,189,167,123,109, 25,104, 53, 15, 84, 63, 36, 37, 65,243,178,174, 58,101, 48, 70,
+ 87,129, 98,163,218,251,110,215, 43,118,254,160, 11, 81,172,145,206,131,166, 85,142,239,139,244,251, 3, 22, 29, 61, 89,173, 16,
+ 63,114,114,140, 1, 86, 68,241,142, 10, 14, 63,215,162, 43,151, 25,113,208,175, 30,172, 18,125,237,187, 36,100, 80, 50,113,142,
+226, 35,207,136,210,216, 29,236,220, 75,247, 22, 55,111,115,196, 3, 60,103,220, 41,122,130, 55,102, 68, 75,206, 39,185,189,119,
+ 20,130,216,181, 67,229, 49,180, 4,140,245, 1,238, 27,169,171, 24,101, 39, 66, 22, 11,216, 13, 24,153, 34,174,205, 52,200, 55,
+ 91, 38,179, 60,212,228,117,117,123, 39,191,252,226, 75,153,142,111,232,211,142, 38, 1, 83, 3, 40,165, 1,115,128, 24, 1,131,
+146,155,251, 29,237, 71,145,100, 48,201,216,106, 81, 3, 17, 28,152,180, 3,204,104,128,166,200, 18,145, 54, 37,251,253, 84, 62,
+220, 78,249,172, 13, 7, 13,222,103,172,120,160,178,135,181,225,116,147,185, 1, 75,225,174,126, 41, 11,106, 80,113,147,200,170,
+239,176, 6, 44, 23,156,164, 65, 94, 27, 52, 51,210, 20, 83, 3, 72, 86,128, 70,188, 38,204, 97,144, 92, 1, 64,133,247, 0,166,
+144, 23,183,247,122, 22, 22,188,142, 16,100,169, 25, 41,206,104,122,243,225, 92,142, 15,143,245,245, 49, 5, 13,104, 86, 67,199,
+ 54, 76,102, 26, 3,201,130, 88,254,246,239,254,145, 24,139,202, 88, 11,242,174,120,111,232,166,175, 70,161,188,134, 54,188,203,
+253,102,214,253,113,109,135, 66, 33,118,208, 44, 45,175, 29, 51,100, 77,139,203,218, 38, 77,118,210, 0,215, 97,162,254,248,180,
+103, 62, 7,236,244, 13, 88,137,162, 10,160, 60,184, 86,246,250,125,130,205, 14,181,120,165, 82, 28,215, 85, 91, 82, 53,113,158,
+176,202, 90,172, 51,121,125,110, 19,177,212, 45, 69,113,237, 63,232,243,117, 56,104,233,117,212,123,176,210,231, 38,233, 48,145,
+195, 7,229, 66,243, 10,138, 99, 40,209,161, 72, 71,167,140, 9,103,165,185,130,238,254,236,176,175,177, 98,107, 19, 24, 92,247,
+166,197, 89, 8,137,129,105,114, 57,173,116, 51, 10, 2,142,113, 13,119, 4,138,154, 36,240,209,254,128,160,101,172,204,174,245,
+253,128,242, 12,147,151,243,187, 3, 2,202,187,157,160,102,247,116, 96, 93,171,207, 24,138,217,161, 38,246,219,209,130,207,239,
+233, 97, 87,243,201, 70,162,227,110,252,191,141,174,207,181, 26,253, 73,130,221, 76,210,245, 68, 47,252,138, 38, 41, 0,134, 96,
+ 15,138,238, 7,173, 61,126, 41,110, 0,254,217,211, 67, 47, 20,107, 40, 88, 81, 81, 80, 63,176,189, 50, 30, 48,116, 32, 43, 84,
+245,238,169,139,177, 15, 18, 43,118,216, 72,196,169,251,215, 94,221, 77, 76, 3, 59,142, 56,190, 94, 59,178, 26,123, 4,240,197,
+121, 83, 96, 60, 48,154,241,134, 1,197,141,215,188,155, 44,217,113, 27,117, 41,144,107,173, 86,104,237,170, 71,234,118,188, 52,
+ 78,116, 17,112, 28, 2,215, 35,136, 28,160, 50,131,173,108,172,135, 37,215, 36, 3,255,114,220, 8,104,117, 3,245,186,220,106,
+135, 2, 55, 37, 77,182,115,120,211,174,118, 28,105,130, 54,147,139,129,137,118,133,249,129, 3,108, 99,250, 58, 33,147, 28, 42,
+ 40,180,123,230,197,110, 50,159,120,111, 52,235,128, 27,217,106, 41,253,254,160,198, 34,224,144,216, 78,210,204, 3, 96,117,136,
+ 61,110,133, 71, 66, 1,130,100, 78,235, 83,142,105, 3,222,252,116,103, 95, 51,111, 96, 83,170, 43,107, 52,178, 37, 52, 0, 95,
+ 82,231,133,135,245,195, 93,184,243, 86,228,251,210,202,160,197, 3,169, 11, 86,184, 13, 95, 45, 92, 83,141, 93,171,215,168,190,
+143,192,201,160,172,133, 96,170, 98,161,146, 10,174,132, 70,170, 32,109,244,177,220, 85, 2, 11, 38,174,192, 19,186, 57,209,229,
+ 14, 42, 49,192, 79, 28, 85,142, 93,238,208, 9,165,191,102,195,101,120, 83,119,131, 43,235,213, 81, 94,161,215, 93,113,174, 44,
+203,135,196,237,246,177,213, 10, 50,175, 58,119, 31,247,130, 99,142,128,140,250,142, 26,222, 73,228, 60,106, 14, 51,217,201,113,
+205, 1, 85,190,212, 48, 1,212,193,134, 45, 42,246,229, 97,204,196, 5,148,246,191,255,231,159,201,179,147, 1,169, 50, 61, 40,
+ 15,130, 43, 65,151, 45, 19,158, 64,145,112,180, 55,148, 95,190, 60,147,127,249,203,151,236,196,191,125,119,169,103,115,197,174,
+ 27, 32,197,171,209, 84,198,154,152,215, 90,104, 35,145,220,234,195,141,191,187,163,197,100,198,251,123,171,207,205,189, 62, 15,
+192, 82, 32,225, 83,116, 6,103,102,151,113, 74,132,215, 59, 28,182, 88,188, 94,232,247, 34, 25,222,235,243, 2, 64,151,157, 17,
+224, 86,182, 60,211, 8,146, 7, 26, 8, 15,244,217,196,123,165,148,111,100,252,232,174,118, 38, 8,190,236, 48, 3, 83,106, 68,
+ 44,204, 60, 80, 67,151,188,211, 59,224,158, 79,220,162, 21,216, 15, 16, 5, 50,231,183,211,226, 22,207,192,198, 86, 91, 47, 30,
+ 63, 34, 5,135,248, 1, 8,156,108,118,166, 79,238,224,207,210,207,154, 77, 82,194,218,190, 55,119, 49,161,210,119,226,161,251,
+ 47,224,123,176,143,132,104,202,151,143,123, 68, 32,175,178,144,157, 48,138,150,134,251,104,227,247, 33,248,226,190,130,149,150,
+115,218,104,159, 19,162, 52, 52,222, 0,118,100,179,212,228,222,225,152,254,232,112,159,215,100,138, 73, 98,106,190,233,216,105,
+ 71,206, 67, 7, 51, 5,193, 25,159,125, 69, 15,134, 45, 71,197, 69, 85, 28,251,179,142,194,254, 96,216,231, 51,141, 36,138,159,
+ 51,197,221,144, 5, 20,214,118,134,107,138,152,228,209,200,208,203,192,117,204,209, 92,153, 52,109,131,247,212, 18,183, 77,206,
+132,123,106,179, 50,141,220, 71,193,152, 36, 22, 29,173, 48,143, 28,163,146,185,158, 72, 64,233,229,147, 97,151,215,131, 83,200,
+ 70,236,182,145, 13, 90, 93,111,169, 97,209, 37, 16, 44,160,150,123,192,177, 61,168,189, 63,127,249, 68, 11, 3, 43, 34, 71, 19,
+179,119,174, 56,233,164,254,133, 78,165, 45,109,151,108,171, 29, 91,255,179, 48, 41,109,197,224,157, 0,167, 67, 68,249,103, 59,
+ 49,129, 19,237,140,201,157,205, 57, 89,200,165,171,207,198,150, 74,128, 20, 40,210,130, 18,186, 31,192,120,129,162, 72,231, 63,
+253,153,167,103,135,252,187,145,118,255, 0, 82,110, 82,195, 34,224,172, 0, 76,135,243,131, 41, 18,138,191,176,150,182, 22, 78,
+ 83, 38,218,237,159,143, 12,243, 18, 38,125,206, 50,103,243, 9,127,166,223,110, 80,124,230,122,178,230,125, 24,182, 99, 47, 56,
+109,221, 7, 96,249,206, 87, 88,244,139,160,247, 68,169, 9,127,101,207,101,110,224,104,179,215,205, 24,255, 12,243, 19, 49,110,
+ 96,237,128,226, 21,128,220, 57,157, 43, 19,118,252, 28,171,119,135, 90,248, 55, 57, 69,195, 37,233,180,205,132,102,227,254, 4,
+116,140,188,159,249,125,212, 78,125,183,153,242,128,224, 80,220,143, 70,126, 8, 99,106, 73, 47, 8,202,137,105,120, 63,209, 67,
+200,174, 56, 49, 93,227, 15, 55, 35,247,224, 54, 69, 44,202, 55, 58,103, 24, 29, 48,170,203, 22,119,142, 33, 5, 59, 34, 62,120,
+109,238,165,205, 37,200,140, 97, 96, 41,138, 35,115, 55, 95,219, 40,144, 85,121,193, 7, 44,245,253, 89,198, 17,133,158, 7,109,
+225, 49,130, 94,164, 75,219,183,161,179,131,141, 97,105,158,197,168, 62, 1,186, 8,128, 76, 78,139,218, 2,180,204,197,209,189,
+ 54, 38, 94,110, 77,232,131,123,150,208,164, 74, 1, 40, 9,221, 29, 39,229, 62, 48,169, 59, 1,124, 14, 19,180, 49,254,177,161,
+222, 51, 71,128, 90,117, 92,169,191, 85,251,218, 42,145,177, 58, 75, 83, 98, 16,136, 6,223,153, 71,112, 73,121, 77, 83,129, 66,
+254,131,138,148, 85,169, 5, 3, 76, 26,166,172, 94, 83,138, 13,100, 62,238, 54, 69, 44,142,177,180, 82,163,236, 40, 52,212, 97,
+236,129,174, 12,234, 70,250,231, 60, 51, 63,238,118,215, 84,222, 8, 64, 12,170,135,205, 0, 65,220,115, 6, 15,166, 31, 18, 4,
+181, 35, 95, 97,174, 46,181, 14, 59, 62,221,134, 96,181,178,238,206, 99, 55,221,136, 42,176, 89,105,154,242,156,247,249, 14,136,
+ 66, 24,121,230,142, 77,198, 43, 46,189,128,128, 63, 61,158,112, 80,160, 66,215, 51, 96,225, 17, 24,216,174,210, 63,112,113,112,
+130,227,232,173, 92,100, 46,191,155,179,243,169, 40,106,161, 35,220, 3,167,112,145,133,225,154,239,164,209,209,117,169,176, 17,
+189,143,170, 77,203, 60,231,125, 29,205,103,172,158, 59, 84, 27,140, 89,136,162,184, 60, 25,116,184,107, 71,113,135,145, 60,138,
+196, 23,103, 71,164, 41, 29,105, 64,196, 68, 9, 93, 57, 42,100,116,190,112,128, 59,232,153,188, 44, 59, 23,125,223,171, 98,199,
+179,142, 7, 22, 69,193, 20,171, 28, 8,119, 52, 3,178, 63,254,248, 61,198,178,109, 38, 31, 88,176, 82,112, 7, 92, 98, 4,192,
+ 36,230,200,187,153,180,181, 40,236, 49, 81,193,106,178,219, 53, 73, 94,116,173, 40, 82, 19, 94,250,136,201, 26,215, 9, 88,141,
+ 87, 79,143, 24,184,209, 13,220,141,205,245,237,237,221,156,187, 77, 20, 1,248,125, 39,123, 93, 94,243, 71, 7, 67, 2, 73,113,
+110,247,181, 35,123,245,168, 43,223,157,143,120,191,231,203,157, 3,138, 76,109, 79,203, 10,201,209,133, 34,216,105,162, 2,127,
+184, 13,164,238,102, 69, 37, 54,236,163, 1, 56,138,157, 66,152, 58, 45, 15, 19,191, 32,142,124, 85, 19,241,154,154,130,155, 94,
+ 35,143, 9, 80, 15,139,253, 76, 84,133, 91,241,209, 84,136,147,186,170, 16,204,173,243,193,168, 22, 83, 9,112,177,255,114,189,
+147,127,241,178, 47,175,175,181,187,214,230,130,142,143,123, 45,130,221, 80, 12, 65, 54,244, 64,239, 89, 27, 69,190,126,174,249,
+ 58,103,178,166, 80, 75,175,239, 40,100, 45,148, 86,240, 79,104,200,219,243,107,242,220, 87,155, 31, 25, 7,113,102, 9,100,156,
+153, 91,220,153,190, 54,208,224,152, 4, 32, 41,216,152,220, 68,118,232, 52,167,207,251, 54, 50,148, 58,238, 1,186, 46,156, 49,
+196,205, 92, 11,178,213,106, 65,233, 98, 40,220,192, 11, 28,216, 13,172,229,160,247,141,231,166, 11,252, 3,102,251, 52,138, 89,
+187,235, 87,200, 70,170,154,164,113,178, 81,152, 62,194,122,155,126,180, 86, 42,220, 3, 77,106, 38, 9, 42, 91,178, 6,218, 13,
+ 2,145, 67, 98,167,124, 50,200,103, 71,139, 51,208, 10,245,158, 2, 49,223,106,111,165,167,215, 21,155,144,221,214,132, 88,158,
+ 62,121,162, 95,239,202, 63,252,240, 53, 63,243,175, 63, 61,179, 9,237,174, 36, 6, 11, 77, 16, 62,231, 80,155,194,107, 45, 80,
+191,126,123,195,162,206,156, 12, 13,123, 83, 82,221, 47,145,227, 97,139,197,111,155,232,238,128,205, 34,158,169, 13,135, 95,145,
+173,194,122, 45, 38, 84,208, 17,161, 1,242,205, 79, 35, 77,228,154,192,242, 5,139, 33,124, 38,122,163, 35, 54,148, 49, 13,188,
+ 14,250, 93, 77,118,109,121,118,156,200, 13,155,188,144, 88,172, 61, 45, 4,210,108, 69,113, 40, 76, 85, 42,225,163, 74,176,134,
+102, 99, 90, 64,205, 23, 11,189,150,218,216, 38, 38, 42, 70,112,155, 62,100,147, 18, 84, 90,125, 22, 38,118,158, 81,171,108, 40,
+ 80,164,197,134,126,238,217,214,138,207,153, 22,254, 71,189,132, 92,126, 78,244, 8, 12, 76, 77,140, 75,227, 1, 26, 1, 43,226,
+132,194, 82,216,175,159,157, 28,146,225,129,117, 85, 19, 88, 11,125, 47,227,233, 84,254,254,155, 55,122, 70, 62,149,207,159,118,
+201,153,199,125, 58,165, 82, 98, 36, 87,215, 35, 3,201,106, 81,126,113, 51,147,207,159, 31, 74, 60,153, 46, 25,108,121, 24,144,
+192,244, 2, 79,199,115,118,205, 45,138, 77, 68, 90,209,219,142,140,221,151,254,247,116,181, 99, 32,224, 78,205,171, 49, 36,200,
+ 77,230, 0,134, 12, 7, 77,111,114, 42, 68, 96, 27, 2,177,148,149, 86, 45, 91,119,210,194,205, 2,119, 15,224,143,130, 92,227,
+ 74,199,216, 70,201, 52,155, 47, 27, 30,232, 45, 8, 96,180,135, 29, 89, 37, 82, 98,227, 87, 19,173, 33,200, 6, 85,104, 98,212,
+ 56, 72,195, 1,120,194,164, 78, 0,160,237,162, 57,242,160,150,117, 88,243,101, 43,225, 21, 9, 13, 40,134,192,143,132,154, 36,
+ 73,173,103,143, 27,152, 1,149,139,238,171, 40, 93,235,218,172, 73,173,203,180, 14, 49,118, 10,150, 41, 26,165, 53, 71, 56,119,
+119,173,202,169, 11, 29,141,209,247,218,236,200,118,149,247, 55, 31,224,146, 5, 0, 70,154,248,190, 60,180, 68,136,239, 99,247,
+137,107, 65, 26,144, 33, 92,225,124, 6,109,112, 36, 60, 80,106,240, 90, 24,203,110,129, 12, 39, 15,216,198,184, 52,124, 40, 82,
+163,151,136, 1, 30,113, 61,152,116, 35, 3,142, 85,180, 68,118,244,192, 80, 64,113,204, 71,120,226,172, 1, 80, 73,192,136, 40,
+168, 4,231,155,247,210,247,113,161,129,156,240, 79, 46,185, 11,209, 88,130,174,198,221,182, 55,141,124, 47,238,163,247,144,224,
+110, 55, 11, 18,151,162, 12,106, 97,157,200,175, 55,174, 53, 16,186,105,104, 35, 58,140,131,113,223, 40,195,235,171,149,106,207,
+142,215,223,239,117,169, 49, 0, 12,197,205,100,198,110, 61, 8,221, 39,217,187,189,172, 40,235,157,159, 56,238, 0, 29, 23, 42,
+124, 4, 34,250,149,107, 16, 0,248, 6, 20, 31,172, 6, 14,246,247, 56,126, 93,107, 1,245,221,249, 29,185,170,208, 74,248,175,
+223,156,203, 31,126,152,203,163,129, 38, 78, 77, 84,107,136,101, 68,230,244,135,127,195, 97,139, 90, 3,250,240, 99,210,132,142,
+ 17,162, 48,216,251, 81,198,150, 54,181, 13,158, 63,236,127, 99,119,188,195,158, 23,197, 54, 62, 35,155,183,204, 58, 29, 0,189,
+ 48,205, 2, 88, 40,136, 26,236,144,224, 22, 5,180, 48,209, 47,250,204, 60, 62,220, 35,225,236, 94,139,107, 0, 28,199,243, 13,
+139, 83,184, 68, 81,121, 17,197,119,108, 52, 67,140, 21,207,239,166, 92, 25, 16,112,170,215,253,179,199, 29,185, 30, 3, 4,106,
+ 70, 70, 40,144,118,243, 45,129,129,141,166, 57,206,225,108, 79,103, 83,153,104, 16,194, 78, 18,137, 62, 73, 0,132, 45,235, 98,
+177, 90,255, 96, 26, 97, 70, 79,166,251, 15, 68, 47,123,102, 13,150, 65, 98, 9,169,178,113,226,254,177,158, 0, 73, 45, 61, 93,
+230, 85, 7,152,115, 92, 94, 89, 22,255,241,205,173,252,155, 47, 95,145,194,186,216,154,191,247, 98,187, 99,145,142,250,251,187,
+183,215,242, 11,189,166, 67, 45, 70, 32,131, 77, 28, 3, 59,112,189,222, 61,179,175, 93,104,162,135,250, 95,111,248, 72,102,122,
+110,158, 63,121,204,221,250, 55,127,249, 90,131,116,139,103, 21,244, 86, 20, 18,147,121, 70, 49, 25,116,231,136,153,200,141, 91,
+223,149,238, 56, 29,178,157, 63,186, 43, 76, 28, 49,241,192,132,231, 68,239,201,173,198, 89, 74,194,186,239, 60,240, 76,232,216,
+114,184,149,133,102,179,138,233, 6, 98, 33, 10, 48, 36, 82,200, 52, 35, 86, 35, 78,133,110,154,197,149, 33,184,239, 45, 91,247,
+ 68,129,139,127,113, 74, 21,184,146,166, 61, 23,166, 62, 25,146,227, 61,207, 74, 22,130,173,196, 86,119, 68,108,227,185, 72, 53,
+206, 56, 27, 0, 88,167, 46, 84,233, 36, 54,147,158, 40,145,207, 62,121, 41,111,127,250,158,197, 27,206,206, 95,125,254, 88,159,
+179,182, 92,106, 23,139,117,203,110,103,234,122, 0, 2,159, 30, 14,121, 22, 94,156, 12,228,104,208, 54,207, 16,120,210,235,247,
+220,207,119, 90, 0, 55,205, 85, 78,140, 37,208, 72,226, 90, 0,139,171,165,233, 76, 46,175, 51,211,134,208, 51, 60,215,196,126,
+122,248, 88, 94,191,127, 43,179,233,152,197, 98, 94, 24,179,129,122, 19,146,200,225,222, 80,139,212,174,209, 1,155,177, 22, 29,
+ 71,242, 15, 63,194,163,220, 24, 5, 80,144, 91,192,144,170,180,162,144, 42,147,222,216,238,107, 35, 52,131,255,185,211, 59,243,
+208, 38, 78,171,141, 94, 95, 40,189,197, 6, 72,220,239, 54,217, 28,146,217, 32, 77, 34, 45,160, 59,192,235,169,215, 14, 62, 10,
+ 5,217, 35, 34,251,250,124,126,184,155,113, 21,132,230, 17, 50,101, 88,207,174,221,153, 20,177, 14,246,202, 57,139, 95, 51,116,
+226,181,136, 19,198,127,120,219,255,241,251, 11,125,166, 95,104, 35,145, 48,102,175, 52, 7,159,158, 30,210,135,228,126, 52,211,
+152, 28,202, 99, 76,120,244,119,197,147, 85, 90, 11, 84,224,134, 47, 93,182, 19, 68, 72,120, 40, 35,168, 91,160,141,152, 8, 17,
+140, 2,223,127,110,119, 38, 44,129, 32,213, 10,194, 26,141, 73,235,196,218,161, 73,136,190, 53, 71,162, 93,157, 48,162,218,127,
+215, 69, 65,202,168, 6, 52, 21,238, 30, 68,209,146,220, 5,104,130,194,199, 71,185,255, 76, 88, 43,154, 21,238, 46, 19,184,141,
+168,184,125,168,129,178,124, 87,139, 0,194, 4,227, 86,168,153,121,170,115,199,138,253, 47,199,210,101, 13,238,170,148,236,170,
+157,117,179,209,168,125,171,183,217,174,182,138, 68, 23, 69,197,188,204,246, 54, 15,197, 64, 81,119,244, 91,234,180,103,230,113,
+ 92, 86, 5,129, 38, 95, 0,174,244,208, 34, 81, 21,158,252, 67,167, 75,108, 41, 31,187, 33,125, 38,203, 11,199, 47,216, 97,199,
+131, 84, 4, 25,129, 43,230, 71,109,159, 93, 88,140,152,233, 3,138, 15,147,143,180,194, 5,186,194,165,139,239,196,142, 82,183,
+226,202,196, 95,170,228, 89,169,144,149, 62,234,196, 97,167,161, 70,105, 59,228,194, 71,217,229,250, 97, 85, 64,225, 25, 58,241,
+ 85, 4, 27,192,137, 30,238,145, 89,246,154,162, 22, 71,244, 98,239,169, 26,239, 87,171, 1,169,198,173, 16,170, 65,199,227, 9,
+161, 26,105, 85,187,125,238, 45, 97,202,131,238, 27,245, 91,234, 70, 32, 34, 15,160, 56, 79,234,152, 48, 44, 64, 5, 2, 42, 59,
+181,233, 74,229,247, 93,213, 20,101,238,251, 45,160,185, 83, 3,250, 44,244, 31, 4, 6,130,220, 52,136,222,206,180, 50, 15, 52,
+ 81,161,219,203,182,114, 53, 75, 73, 43, 3,119,126, 52,190,151, 79, 30, 29,200,191,252,213,207,228,211,179,125, 6,215,127,251,
+235,231,242,187,175,127,146, 31, 47, 70, 28, 41, 86, 54,141,232,224,224,143,204,202, 31,170,198, 80, 56,211, 4, 60, 94,108, 24,
+196, 50,223,187,137,235, 96, 11,117,224, 77,181, 12, 39,180, 65, 93,243,128,251,111, 0, 54, 7,221,182, 33, 66, 0, 94,210, 32,
+219,213, 66, 3, 34, 27,120,207, 95,244, 91, 82,162, 16,166,159,249,144,201,135, 29,114,110,128, 60, 76,220,142,181, 83, 55,219,
+223,156, 50,176, 40, 36, 32, 82,131, 14, 23, 5,207, 76,147,200,116,149,144,173,129,251,139,226,168, 20, 43,132,112, 46, 0, 36,
+ 69,199,133, 64, 4, 42,157,241,106,109, 66, 4,144, 24, 37,105,189,176, 12, 98,147, 61, 5, 88,139,192, 67, 45,208,185,222,139,
+ 66, 7, 49,201,195,122,167,186,135,192,100,196, 98, 20, 46,151,173,165,172, 42, 89, 22, 68,215, 48,240,145,193,160,207,197,213,
+221, 90,206,239,183,242,215,159, 29,202,223,124, 51,162,221, 38,116,223,159,156,180, 53,201,216,235, 2,228,186,203, 77,119, 60,
+142,141, 51, 93,174,114, 2,133, 65,147, 74,200, 45,215, 68,170,133,227, 86,155,147,219,209, 72,126,245,233, 51, 25, 93,191,167,
+ 1, 16, 80,229,148,178,157, 45,201,133,142,163,148,242,189,121, 17,213,235, 44,202,164,126,164,124,199,201, 35,132,105,210,130,
+247, 18, 5, 61,117,226,203,144, 8,253,174, 22, 72, 40, 18, 34, 95, 75,237,107,161,135, 61,121,234, 70, 69, 89,189,102, 50, 96,
+221, 98,177,117,103, 76, 75,224, 75,160,200, 67, 8,184,164,156,222, 84, 94, 19,134,156, 46,164, 81, 25,113,145,162,218, 99, 60,
+ 27,107, 17,146,106, 66, 12,125, 77,208,136,109, 77,153,103, 27, 61, 27, 3,222, 51,152, 37,109,182,218, 92, 52,250, 90,244,236,
+243, 93,160,217,192,250, 19,187,246, 40,202,229,255,253,230,138, 19, 38,160,183, 57, 57,113, 9,105, 38, 76,208, 31,245,179,223,
+ 79, 15,120,160,113, 46, 55,100,171,152,224, 85, 94,152,127,124,236, 62, 2, 97,100,136,244, 6, 71,230,145,197, 38, 20,108, 97,
+ 68,147,151, 78, 91,223, 71,255, 84,223,155, 57, 4, 50,134, 68, 37,239, 51,138,180,151, 79, 14,249,249,113,207,177, 82, 3,115,
+229,160,175,133,237, 81,151,207, 5, 58,116, 72,175, 14,245,252,225, 94,224,119, 75, 69,179, 11,108,218,124,136,120,171,215,103,
+127,208, 99,195, 9,234, 26, 93, 15,161,142,215, 79, 92,119,165,132,239, 13,159, 41,198, 68,253,188,231, 90,248,150,174,139,223,
+110, 53, 93, 40, 41,167,182,255,102,107, 57, 0, 77, 45,112, 81,169,179, 60,160, 97, 48,164,248, 26,176, 90,198,192, 0, 30, 5,
+103,161, 67,147,172, 22,129,158, 99, 45,174,190,121,183, 39,191,252,100, 95,246,186, 1, 49,105, 40,100,176,130,192, 36,225,254,
+126, 74,198,215,106,181, 50,120,105,145,219, 94,148, 99,191, 32,172, 59,163,202,159,217,246,162,166, 46, 16, 6, 21,240,170,168,
+109, 19,209, 45, 87, 1,190,210,233,182,255, 40,255,201,131, 10,183, 48, 82, 18,182, 91,119,228,178, 42,121,187,179,196,221,240,
+ 46, 27,127, 7,180,112, 21,244,173, 75,211,195, 18,153,120, 72,181,111,171,128, 98,244,124, 79, 18,175,238,242, 90,127,222, 52,
+203,119, 15,227, 95,242,190,243,122, 12,155, 59, 55,186, 2, 83,217,174,215,129, 92, 46,202,192, 41, 6,248,218,164, 39,217, 30,
+ 43,244,241, 22,165, 14,189,171,172, 16,203, 91,119, 82,162,112,136,152,212,105, 71, 59,219,142,239,155, 26, 13, 27, 45,239,220,
+169,174,112,139,212, 44,180, 85, 3, 93,199, 22, 75, 86,116,232, 6,249,222,205, 13,131, 32,138,200,147, 62,130,123,218,176,164,
+ 94, 58, 48, 45,240,164,102, 65, 53, 50,196,167, 7, 76, 60,156,224,160, 75,181,227,246,189, 55,187,128,134,169,200,161,160,169,
+ 58, 30, 30,244, 88, 8, 32, 66,177, 66, 58, 26,222,127, 98, 6, 56, 54, 90,119, 3,220,208, 70,190,230, 92, 23,121,145, 8,119,
+ 4,191,247,133, 37,248, 26,121, 31,250,123,142, 92,164,168,168,186,185,178, 66,246, 24, 16, 42,118,113, 18, 23, 49,137, 67,163,
+198,101,101,138,190,193,164, 54, 33, 36, 1, 0, 95, 92, 77, 12,220,131,160,172,198,142, 25, 71,235,228,255,238,245, 44, 40,114,
+ 44, 95,214,206,112, 88,101, 80,248, 40,180,100,153,249,185, 31,182,219,218, 77,108, 40,178, 83, 70,109, 13,248,218, 69, 99, 66,
+164,255,125, 55,154,202,166, 3, 5,172,173,116,181,242, 71,160, 3, 58,250,103,159,127, 34, 95, 98, 44,221,180, 98,152,251,231,
+212, 58, 70,124,110, 92, 75, 4, 18, 4,152,229, 54,177, 0, 12,240, 75,211,104,144, 97, 41,245, 62, 20,197, 74,151,134, 22,161,
+143,114, 83,219,167, 5,230,169,205,137,130, 62, 70, 24,189, 97, 12, 74, 65, 32, 76,103,128, 66,214, 11, 3, 59, 75,128, 62,241,
+218,235, 36,166,212,101, 49, 95,155,140,235,194,238,221, 49,168, 67, 41, 4,114, 42,241,158,144,162, 43, 24, 27,118, 27,240, 40,
+239,115, 93,150,119, 76,162, 57, 74, 90,242,230,242,150, 65,103, 8, 87, 47,125, 45, 20, 76,163,137,173, 47, 64, 49,172,120,231,
+ 16,213,193, 51,130, 36,185, 17, 51,238,137, 52,137, 64,173, 15, 24,156,237,206,145,254, 46, 39, 91, 81,170, 42,108, 70,238,163,
+208,208,181,251, 43, 0,100,165, 70,152, 18,224,103, 0,175, 60, 55, 5, 54,252,220,111, 95, 79,228,127,253,183,207,229,247, 63,
+106, 7, 3, 36,241,205,132,197,110, 28, 53,136,179, 65,241,115, 72,237, 2,195,151, 0,108,180,163,108, 48,146,141,137, 6,229,
+ 89,204, 98, 12,214,165, 8,148,187, 34,150,163,227, 67,138,146,152, 80, 78, 76,250, 24,186,101, 36,136,203,187,185,219,241, 98,
+188,108,155,122, 26,135,224, 12, 64, 96, 40,107,240,154, 80,240, 68, 27, 1, 80,228,192,114,105,235,191, 81, 20,247,244, 53,224,
+135, 1,230,205,237,253,136,215, 7, 1,125, 77,230, 81,200,150, 10,157, 59, 86,152,187,212,186,106,140,163, 51,106, 41,192, 56,
+ 39,229,180,136, 54,182,165,155,187,124, 84,196, 99,149, 81,184, 92, 41, 87, 84, 14, 50,133, 96, 74,119,104, 56,136,146, 52, 84,
+243,224,160, 66, 30,156,238, 88,232,110,245,245, 6,180, 11, 62, 61, 58,145,205,226, 94,142,250,198, 71, 71,172,153, 3, 7,197,
+137,159,212,147, 73,252, 28,214, 4, 1, 17,249,185,124,253,211,149,137, 97, 57,205, 46,118,171,232,208,159,251,128, 8,121, 61,
+183, 96,182, 64, 38,183, 72,184,195,111, 82,137, 47,163, 88, 88, 0,165,204,238, 1,207,205,147,227, 71,242, 63,125,245, 75, 57,
+ 58,232,107, 12,179,123,129, 78, 27, 90,236,112,112,195,234, 24,184, 14, 20,171,152, 24,236,135, 0,129, 78, 36,214, 80, 49,217,
+228, 92,215, 98, 28,206, 78, 63,179,124,130,201, 34,138, 72,250,156,184,198, 69, 37,124, 69,237,202,160,226,255, 7,126, 13, 93,
+130,172, 90, 21,154, 63, 17,147,178, 21, 11,150, 91,197, 77, 94,162, 60,224,125,229,228,210, 87,192,208,182, 0,136,113, 26, 47,
+ 88,148, 2,224, 13, 32, 35,113, 47,233,142,120, 2, 54,143,250,231,209,116, 34,111,110,154,242,234, 68,159,205, 86, 38,151,151,
+119,114,124,178,111, 83,219,164,193,107,185,167,207,107, 76,115, 19, 71, 3, 87, 34, 30, 31,235, 71, 85,162,217,129, 75,148, 86,
+158,225,236,150, 81,245, 67,117, 42,221,177, 10,229,222,179, 2, 72, 69,102,179, 90, 21, 10,161,171,232, 32,136,218, 65,207,106,
+ 58, 92,181, 47, 75,185,195,141,153, 8,163, 60,244,189,172, 37, 8,115, 17,123, 80, 15,171,108, 61, 89,241, 57,106,190, 86, 15,
+ 50, 78,149,163,137, 11, 87,203, 11, 93,185,201,248,157, 21,194, 51, 20, 7,155,149,133,235,215, 11,209,247,246,158,131, 90,186,
+ 52,112, 43, 61,220,240, 94,183, 71,160,148,145, 71, 44,193,151,197, 67, 1, 19,186,177,141, 37, 46, 3,124,101, 20,104,177,113,
+ 74,149,212,215,236,106,108,170,209,239,116,107,244, 55,147, 32, 68, 67, 16,208,195, 7,155, 86,142,247,227,200,197,129, 76, 8,
+ 35,118,126, 55, 10, 1, 27, 43,219,136,141, 60,113,128, 45,196,238, 47, 16,199, 32,188,182,180,250,171, 56,233,213,106,130, 70,
+ 38, 44,110,138,154, 38, 70, 86,128, 23,110, 68,161,151,142, 82,247, 29,124, 24, 58, 40,166,114,215, 46, 50, 51, 41,113,208, 90,
+ 35,242,107,135, 7,184, 17,125,164,233,110, 69, 83,165,238,196,131, 31,120,226,143, 35,167,135,153,106, 94, 35,106, 17,101, 78,
+155,215,216,168,111,228,242,131, 38,212,109,215, 69,130, 89,184, 62, 92, 39, 3,145,236, 40,218,195, 98,177, 25,177, 43, 20,158,
+ 49, 67,172,210,254, 23,103,161,217,244,130,196,148, 21, 49,242, 2,248,167,135,135, 79,127, 22, 35, 70, 33,223, 94, 95,155, 56,
+142,152,138,119, 52, 31,210,251,215,107,130,242,101,246,187, 47, 95,156,105, 50,215,174,105, 27,243, 82,141,151,230,115, 31,233,
+239,223, 81,162, 50,226,103,179,142, 75, 72,137,234,104,242, 4, 37, 41,141, 10,242, 92,209,241, 96, 55,106,250,253,246,158, 89,
+ 24,122, 18, 68, 34, 35,205, 73, 19, 18,144,233, 96, 59,192, 90, 30,251, 66,219,161, 70, 76,162,232, 56, 80, 56, 0,236,121, 52,
+104,241, 58, 12,160,235,206,181, 74, 64, 96, 95, 43,177, 73, 88,139,250,227, 27,130,138, 0, 30,197,117,197,207, 96, 20, 15,244,
+ 46, 58, 92,236, 93, 65,173,195,200, 30, 69,232,143, 23,215, 44, 22,128,228,197,174, 56,241,179,109,234,133, 25,117, 21, 76,153,
+172,105,207, 31, 38, 77,216,195, 23,118,255,204, 47, 97,109,246,191,133, 1,134,114, 71,180,155,187, 22, 45,120, 30,156,221,114,
+123,221,242,163,231,177,146,251,141, 2,163, 97,206,244, 94,225,185,189,156, 90, 49,245,244, 88,223,219,116, 75,144,211, 92,239,
+197,254, 80, 11,216, 32, 38,143,156,227,214,216,248,204,180, 41,214,247, 14, 96, 92, 23,207, 14,238,119, 16,155,139, 98, 12, 62,
+121, 38, 23,183, 51,105,244, 31,201,135, 63,255,168,239, 41,225,239,154,234,181, 7,221, 47,219, 45,184,246, 10,160, 42, 71, 65,
+109,211, 12,224,253,194, 40,187, 12,248, 59,180, 15,212,162, 17,211,157, 17, 49, 45, 56,159, 80,200,172, 4, 91,104,105,154, 27,
+ 79, 28,120,142,198,106, 91,239,204, 49,186,133,224, 75,179,209,116,145, 24, 20, 93, 91, 61, 99, 5,197,115,112,254,231, 62,122,
+ 47, 2,195, 38,136, 56,183, 63, 52,139,211,212,253, 14,128,119,162, 21, 47, 88, 20, 90,140,150,251, 90,136,153, 30, 38,209,235,
+141, 2,247,189,225,116, 82,155,178,208,203, 30,185, 34, 91, 18, 19,178, 74,129,216, 71,177, 31,217,122,168,233,122, 6,104, 4,
+ 80,164,182, 18,247,136, 8, 88,248, 97,117,120,113, 63,179, 24,235,250,229,196, 21,128, 7, 15,157,126, 40,220,241,108, 68, 44,
+172, 17,187,112, 70, 33,248,130, 2, 10,198, 59, 40,149, 90,212,183, 72,104, 66,246,211, 5, 28,244, 74,121,118, 54,212,207,102,
+147, 19,188, 79, 76,149, 64, 51,190,158,108,185, 30,195, 52, 21, 5, 31, 19, 56,193,145,102,161,202,198,148,147,224,192, 20, 72,
+181, 56, 62, 61,232,243,253, 53,184,126, 40,229, 26,160,110,136,139,121, 94,138,195,192,233,150, 6,248, 35, 2,191, 97,241, 97,
+179, 51, 6, 24,227, 19,144,252,177, 57,249,133,205,152,120,137, 44, 53,255,141,178, 93, 61,203, 54,197, 64,211,103,236, 49,163,
+126, 99,133,101,177, 16,174,114,115, 57, 62,216,103,227,139,102, 10,140,140, 80, 14,228,241, 80, 24, 15,129, 73,122,246,228, 88,
+207, 42,174, 49, 86,174, 26,243,176,143,133, 58, 23,114,108,228, 65,188,116, 68,104, 81, 86,123,116,169, 59,210,170, 26, 9,252,
+223,185, 83,147,232, 56, 83,123,231, 58,237,194,187,253,143,147,118, 81,187, 17,149,245, 40,157, 64, 5,236,182,144,180,224,245,
+140,224,227,244,134, 40,180, 64,143,241, 69, 35,137,235, 7, 58, 10,196,149,175,196, 19,186,185,133,129, 91, 26, 84,124, 75, 71,
+ 64, 87, 85, 20, 71,152, 81, 81, 39,219,143, 71,248, 21, 80,172,168,249,245, 65,141,174,174,118,205,184, 41,168,156, 42,176, 90,
+ 53,234, 13, 29, 7, 80,217,132, 34,129,208, 73,201,223,131,201,118, 70, 30,184,242, 26, 40, 84,217,128,154,139, 82,165, 58, 6,
+189,189, 13,169,108, 85, 87, 95,129,200, 48,225,176, 29,120, 65,193, 13, 6,129,249,210,189,156,181,232,209, 0,110,187, 49, 3,
+ 41,226, 0,167,187, 85,173,144,134,174, 28,139, 69,118, 17,161,105, 87,199,137,237,162,179,220,104, 55, 52,128, 65,231, 91,154,
+207, 58, 13, 10,160, 16, 87,166,172,184, 49,227,198,131, 70,144, 78, 20,124,116,125, 75,239,222,245,245,125,245, 16,187,131, 85,
+238, 72,121,203,102, 54,205,201, 42, 77,248, 60,247,157,190,117, 6, 41,233, 94, 49,223, 35,244,173, 3,138,252,196, 38, 65,233,
+192,170, 48,182,170, 30,134, 16,177, 99, 20,234,226,144, 6,212, 66,145,156, 77,106,102, 57, 97,248, 64,125, 42,189,155,207, 29,
+ 77, 93, 5, 24,170,156,197, 81, 29, 68,177, 59,181, 49,120, 68, 77,105,162,168, 49, 38,197, 40, 28, 30,208,235, 21, 65, 77,232,
+ 12,242,188, 65,117,168,219,187,169,196, 39,251,188, 70,183,107,147,248,196,165, 65, 34, 11, 92, 8,131,197,133,211,171,230, 43,
+237,254,246,186, 4, 45, 33,184,211, 98, 87,207, 69, 91, 59,255,201,210, 28,192, 40, 93, 11,222, 43, 62, 67, 28,145, 63,142, 99,
+143, 2, 12, 65,186,201,130, 38, 54, 21, 71, 47,136, 64,135, 65,219,180, 92,239, 56,142, 69,130,200,179,178,134, 76, 49,193,119,
+140, 42, 25,196,230, 25, 0, 86, 10,156,167,174, 70, 25,129, 99,183,211,181,252,171, 95,124, 66,199, 42,156,247,126, 55, 49, 92,
+135,254,126, 76, 38,158, 28, 13,249,231,209,232,142, 65,123,231, 78,137, 40,230, 74,140,155, 53,153, 91,199,146,242,158,114, 2,
+ 20,151,245,186, 37,142, 34,159, 84,229, 53, 45, 18,231, 20, 34, 68, 37, 41,144, 66,138, 94,225, 19, 10,106, 96,248,100,173, 98,
+100,132, 62,173,163, 34, 34,138, 96,200,240, 54, 91, 68, 72,255,233,253, 76,126,249,108, 32,255,215,253,181, 28, 12,187,214, 97,
+ 47,215,124,174,144, 56, 48,125,107, 12, 7,238, 88,102,138,113,232, 54,209,175, 1, 24,137, 34,153,239,113,183,164,106,221,108,
+ 62,147,159,127,254, 41,149, 20,199,211,133,116,186, 77, 82, 86,223,124,184,149,126,175, 33,209,186,107, 19, 64,178, 43, 34,238,
+249, 35,218, 19,115,228,194,231,186,167,113, 22, 96,100,128,159, 8, 56, 59, 61,146,183,151,183, 6,212,211, 24,129, 66, 20, 73,
+176, 3, 91,217, 92,147,208,106,206, 73, 20,176, 68, 48,204,217,232,243, 61,247, 69,104,106,162,122, 70, 87, 20,155,240,180,252,
+188, 84, 9,162,194,166, 32, 57,114, 61, 21, 89,241,128,228,211,112,103, 67, 40,152, 77,231, 43, 45, 78,237,233, 64,162, 2,112,
+111,177,173, 44,143, 75, 82, 49,193,190,184, 13, 83, 82,190,210,178, 33,235,229, 92, 26,250, 75, 7, 45, 80,239, 76,135, 1, 10,
+123,143,142,159, 81, 59, 29,187,233,227,190,241,202, 65, 13, 67, 44,186,215,164,139, 53, 5,246,205, 72,170, 13,118,237,134,224,
+ 7,120,147,188,255,182,249,166, 83,161,146, 49,204,148,255,160, 62, 8, 60, 8,158, 39, 40,200, 5,193, 90, 70,155,149,252,240,
+118, 41,127,243,219, 63,232,251,155,178,179,207, 74, 99, 60,160,116,216, 63,126,194,226, 6,207, 21, 5,175, 24, 26, 60,187,249,
+227, 64, 78,185, 94,183, 23, 39, 39,218,253,239, 81, 26,119,199,130, 90,200,138, 1, 85, 20,107, 37,168,113, 54,146, 38,167, 47,
+213, 4,185, 6, 47, 39,198,202,233, 52, 66, 2, 49,205, 4, 43,230,211,118,120,220,165,247, 7,158, 21,152, 66,225,140,157,246,
+ 0,150, 12,228,207,239, 70, 50, 89,109,244,153,142,229,236,232,144,207, 2,206,194,179,211, 83,198, 46,184, 17, 66, 52, 9,147,
+ 37,226,193, 92,248,136,147,132,108, 95, 94, 28, 55, 57,149,192,115,118,124, 52,208,207,179,146, 27,253,222, 24,240,249,204, 71,
+145,181,156,171,239,168, 43,192, 81, 21, 20, 57, 90,247,224, 76,128, 89,186,169, 71,219, 68,190, 7, 15,227,242,170,187,175,254,
+199, 7, 22, 29,132,171,210, 5,164,123,153,231, 46, 30,178,212, 71,162, 1,105, 42, 54, 22,171,166, 3,120, 88,235,142, 12,197,
+ 1,188,141,243,204, 3, 69, 82,255, 94,241, 11, 77, 39,163,208,185,211,213,176,161, 44,235,110, 58,240, 17,132,141,123,139,250,
+239,153,212,221,254,144, 57, 45, 48,122, 13,187,109,114,200, 51, 25, 52,219, 15,147, 12,252,222, 80,234,245, 0, 2, 27,122, 99,
+242, 78, 37,231,104, 57,168, 68, 53,244, 27,217,153, 56, 13,173,114, 93, 66,199, 56,159, 47, 40, 54, 67,111,118,160, 46, 1,172,
+209,131,143,145, 19,146, 62,138, 31, 19,216,176,177,126, 3,158,233,237, 88,198,147, 21, 85,195,176, 75,131, 40, 66,209,107, 80,
+200, 4,239, 5, 73,106,162, 15, 43,245,213,245,195, 28, 28,245, 12,225, 41, 86,245,211,192, 5,188,227,204,174, 11, 30, 8,238,
+196, 50, 91, 65, 84, 93, 47, 42, 74,210, 51,114, 3, 17, 82, 93,105,147, 18,208, 83,186,104, 75,232,215,222,124,210, 27, 46, 57,
+106,123, 68,116,189,184, 79,184,183,216, 1,115,191,231,235,146,204, 11,194, 70, 98, 32, 62,161,179, 89, 66, 74,155,141, 84, 11,
+ 38,115, 60,216,244,158, 78,179,122,245,131,233, 13,222, 91, 41,129, 39,245,226,193,209,175,118,246,243,151,117,233,216, 74,154,
+ 54, 12,130,154,246,198,115,230, 78,133,145,163,240, 43,169,100, 32,110,209,201, 85, 5,100,187,213, 33, 16,101, 78,196,109, 65,
+125, 5, 72,126,162,146,191,209,138,190, 55, 88,200,227,211,125,222,207, 34,221,154, 73, 17, 85,198,114,158, 87,151,147,225, 94,
+ 22, 43,128,235,251,137, 38,245, 30, 11, 3,172, 28, 38,155,221, 3, 85,144,206, 81, 5, 87, 47,116, 49,140,109,146, 70,123, 83,
+189,167,240, 95, 15, 82,179, 99, 12, 57,214,206, 40,224, 2,233,224, 56,210,231,163, 29,216,142,212,149,199,240, 26,237,134, 77,
+ 71,160,227,141,207, 4,128, 29, 70,184,163,201, 66,207,102,166,193,161, 33, 83,118,135, 70,219,251,246,221, 45, 3,113,147, 12,
+148, 37, 95,107,197,117,197,206,113, 44, 33,247,211, 40,190,123,205, 22, 71,171,232, 88,193, 81,222,184, 33, 9, 58, 94,168,157,
+101,164,180, 26, 59,102,183,203,234,130,185,210,231,143, 92, 38,118,235, 99, 75,169, 40,148,149,252, 65,181, 26,115,142, 99, 25,
+ 88, 23,137,137,153, 57,142, 25, 35, 3,241, 9, 59,208,175,223, 47,228, 95,124, 58, 96,193, 4,212,242,180,185,181, 85,162,115,
+187, 49,229,195,125, 6,101,111,190, 41,121,206, 64,229, 3, 67, 97,127,223, 10, 51,220,251, 56,220, 73,210,108,154, 8,138, 94,
+183,175,190,250,107,249,253,111,255,139, 44,183, 37, 57,235, 24,159, 34,137,205, 23,118,175,241, 58,120,110, 26,154,236,150,117,
+ 83,225,241, 1,166, 39,219, 37, 11,168, 22,187, 59, 99, 47, 32,137, 32, 98,146,155,142,123,227,157,100, 16,251,232, 54,128, 56,
+205, 74,224, 41,180,240, 36,142, 28, 12,141, 21, 60,239,173,200,236,150, 41, 23, 90, 90, 17,109, 19, 75, 51,208, 1,198, 3,205,
+ 37,158,254,144,156,125, 91,121, 81,109, 13, 88, 8, 77, 30,219, 93,196,238, 28,251,118, 72, 22,127,255,245,107,222, 75,196,168,
+149,155,248,140,151,177,188, 72,250,210, 41, 39,114,175, 63, 7,198, 18,215, 86, 26, 19,167,218, 81,182,244,249, 24, 96, 79, 61,
+215,231, 97,186,147, 63,165,119,178, 94,140, 93,182,217,226,231,201,254, 64,254,187,207,123, 4,190, 1,104, 6,124, 12,172, 93,
+ 1, 93,222,236,242, 90,174,153,224, 99, 7, 70,166, 16, 48,130, 49, 79,192,200, 76,165, 83, 40,149,157,156, 60,147,225,193, 35,
+106, 1,244,244, 62, 48, 86,185, 94, 7,138,152, 1,169, 95,200, 23, 90,188, 68, 37, 21,175, 82,199, 76, 65, 80,198,148, 29,173,
+179,142, 19, 0,253, 54, 76,148, 33,109,135, 99, 54, 47,207,207,246,245,122,157,200,215,111,174,152, 43,160,101, 0, 90,225,151,
+207,246,104,210,244,246,122,206,251,103,190, 17,109, 38,227, 22,101,183,109,189,176,243, 73, 0, 26, 28,208, 4,225,200, 7,218,
+220,241, 32, 33, 72, 16,185,119,193,125,250,156, 34, 75,167,122,246,112,166,215,110,214, 98,147,170,162, 94,233,110,233, 64, 41,
+ 90,124,155, 55,199,163, 97, 36,183, 26, 71, 6,253, 38,207,114, 99,174,205,227, 0,122,209, 89, 90,119,213,148,244, 12,139,250,
+129,171,118,148, 81, 24, 61,112,128,171,132, 40,129,115, 64,131,154, 50, 17,125, 36, 4,242, 79,180,110, 1,102, 41,173, 59,103,
+133,233, 28,234,204, 17,207,248,208, 65, 42,110,106, 31,219,142, 21,221,153,249, 20,241, 3,178,114,174, 58,245,184,109,154,103,
+193,131, 29,104,224, 10,105, 65,189,167,121,224, 98, 87,125, 90,165,124,102,104,245,162,150,225, 52, 4,124, 86, 27,219, 84, 93,
+ 93,236, 92,218,138, 31, 78,125,114, 26, 43,148,181, 91, 93,101, 99,200,241, 22,253,169, 83,167,223, 88,231, 10, 91, 64,116,226,
+176, 99,228,136, 52,177,131,212,240, 14,103, 15,224, 15,176, 14,102, 11, 57,208,202,174,217,220,103, 36, 67,112, 98,178,209, 68,
+ 23, 31,180,184, 27, 50, 14, 36,170,126,125, 88,227, 1, 19, 6, 71,100,137,141,201, 24,212,125, 63,137,196, 75,186, 5, 68, 39,
+150, 91,222, 19,142,132,188,123,197,125, 55,163, 25, 27, 75, 27, 0, 18,123,181,134,155,175,136, 83, 10,115,118, 15, 38,101,232,
+110,118,116,103, 11,234, 36,157,121, 64,219,229,230, 38, 68, 62,102,110, 35,195,128,210,134,153, 57, 44, 37, 45,138,174,164,165,
+ 49, 41, 16, 52, 50,175,188, 42,160, 93,154, 61,128,165, 72,137,219,149,190,123,245, 42,249, 35, 57, 81, 59,123,133,216, 26,169,
+240,196, 29,177, 19,199,217,193, 78, 55,240, 53, 10, 30, 10, 90,174,122,193, 25, 20, 14,164, 12, 2, 55,195, 48, 37, 68, 8, 91,
+ 32,137,192, 24, 2,212,154,184, 72,121,143,103,179,153, 77,140,208,249,228, 21,197,202,236, 61,239, 38, 83,249,252,165, 80,111,
+ 28, 8, 26,240, 75,161,157, 77,141,132, 44,243, 9,147,163,149, 51,123, 15,120, 79,247,211,165,254,124,230,224,208,146,227, 72,
+ 24,192,112,242,178, 53,236, 2,186,215,152, 59,242, 53,147, 26,229, 91,161,181,224,194, 62, 72,146,152,186, 44,189,112,230,153,
+ 14,204,209,107,187,115,107, 85,223,119, 10,129, 63, 86,108, 66,179, 31,103,106,201, 41, 65,193, 49,243,198, 53,251, 9, 66,164,
+236,172, 49, 1,208,105,136, 23,112, 45, 22, 60, 26,140,129,251, 24,116,121,175, 91,141, 22, 87, 14,107, 36, 72, 20, 69, 26,232,
+ 37,180, 36, 69,181,201,220, 21,189, 2, 83, 86,180,103,222, 86, 5,187,108,107, 52, 39, 23,119, 10, 29,180, 90, 53, 26,156,148,
+229, 69, 93, 4,150, 98, 54,206, 40,242,187, 45, 83,217, 43, 41, 80,178,149, 94,212, 38,223,250,187,203,149,204, 53,254, 61, 61,
+208,231,106, 93,114,223,140,123, 50,232,134,126,246, 75,142,104,227, 29,220,204,114,118,116, 65,240, 48,209, 3, 72, 9, 59,111,
+ 88,121,238, 54, 27,130,194, 70,227,177,188,120,254, 68, 6,223, 14,100,124,113,197,103, 6, 12,161,217,210,146, 9, 95, 3,247,
+141,210,192, 33,247,228, 4, 72,209,254,115, 77,202, 92,117,198, 48, 77, 64, 39, 8,249,214,205, 10, 9, 43,103, 87, 8,127,248,
+ 13,177, 45, 13,217, 63, 57,179,179,141,137, 87,120,230,109, 85,200, 98,163, 71, 65,159,152,211, 62, 92, 55,136,173,224, 90, 67,
+153, 82, 92,213,177,198,113,232,153, 95, 70, 72,140, 43,211,107,192, 55,108,133,224, 46,220, 79,188,183,147,189, 19,210,209,176,
+130,184, 25,141, 57,209,107,184,189,110,225, 30, 15,135,253, 80,238, 70,247,114,126,123,207,162,245,213,227, 3, 22,124, 91,202,
+218, 38,210,239, 15, 25, 71, 17, 25,224, 43,112,117,125, 46, 11, 77,246, 16,121,161,197,172,198,128,197,234, 86,126,186,184,101,
+ 60, 44, 29,112, 86, 1, 96, 67,131,104,213, 57, 36,142,108, 34,107,141,149,139,213, 36,198,159, 7, 88,177, 9,127,131, 78, 44,
+143, 15,246,244,223,250,251,187, 48, 61, 42, 41,112,246,232,176, 79,188,201,235,119, 87,242,244,172,167, 73,244,128,116,211,197,
+218, 44,134,177,154,249,249,147,161,124,127, 49,149,247,183, 43,130, 3,239,151, 5, 57,229, 63,127,126,204, 21, 4,228,110, 79,
+ 15, 7, 28,185,127,250, 4, 83,149, 59,198,127, 20,173, 48,120, 57,222,211, 66,224,126,201, 85,131,121,169,151,242,234,108,160,
+ 9,217,214, 63,152,166,160,208,155, 46, 83, 38,121,124, 95, 18,110,121,223,166,171,204, 38,213, 4, 87,151,122,134,150,206,236,
+ 73, 8,182,163,138,106,105,152, 31,203,195, 33,139, 78,196,225,233,116,206, 60,115, 61, 94,235,245,111,201, 73, 18,210,209, 13,
+211, 66, 76, 18,227,134,155,146, 84,238, 43, 12, 44,222,185, 87,137,144, 99,178,252, 65,154, 51,240, 81,117,189,120,175, 69, 75,
+202,154, 35, 12, 46,223, 3, 32,203,196,254,139, 74,185, 76,194,154, 51,206, 7,169, 2,229,201, 67, 50, 38, 93,165, 40,106, 61,
+108,234,190,103,214,157,135, 97,236,175, 91, 37,131,178,246,221,102, 85, 92,228,181,153, 72,197, 71,102,114,205,210,186, 64, 40,
+ 29,205,141,164, 65,113, 16,188, 47,159, 58, 12,250, 45, 22, 30,120, 15, 20,213,209, 63, 79,103, 5,119,188,131,142, 1,249, 66,
+ 71,157, 98,244,129,125, 42,222, 23,110, 62, 30,144, 78,179,225, 24, 2,240,204,245,125,245, 27, 68, 86,226, 90,227,245, 42, 32,
+ 6, 57,233,110,105,105,116, 66,211, 18,175, 40,134,252,156,190,185,159,111, 82, 30, 28, 10,248, 39,166,153,188,171,165, 70, 99,
+247, 83, 46,184, 19, 14,106, 46,184,249,176, 71, 73, 72,189, 0, 76, 16, 48,122,195,184,176, 66, 88,163,168,224, 58, 33,176, 9,
+ 66,225,102, 49,133,239,125, 1, 38, 74, 75, 13,246, 48, 37, 32, 54,192, 2,117,176, 77,125, 53, 19, 16, 9, 95,153,204, 84,247,
+143,232,117, 92,207,216, 84,220, 82,118,198,230, 71,142,159, 7, 62,129, 93,116,153,240, 33, 43,242,226, 65, 48, 38, 50, 47,242,
+106,245, 64,209, 17, 87,109,171, 58,112,124, 62, 20, 90,221, 78,191,166, 51, 34,103,225,176,211,109,144, 59,220,173, 79,110, 2,
+ 47,248,130,154, 10,105, 64,206,130, 69, 41, 9,142, 97, 92, 75,220,226,251, 16,244, 49, 74, 67,226, 36,200,168,208,135,173,219,
+228,116, 3, 29,208,150, 86,153,137, 77, 54,240,115, 5,184,173,115, 89, 77, 67,118,187, 0, 61, 33,201, 72,220,169, 45, 73,105,
+ 34,162,201,200, 92,237,114, 57,210, 74, 29,154,236,116,219,242,137,146,157,125,195, 28, 4,101, 94,227, 92, 40,179,139, 49, 34,
+254, 79, 19, 76, 25,149,164,146, 5, 68,144,195, 35,122, 77,155,218, 36, 46,233,175,222,207,219,146,179,144, 14,184,207, 71, 80,
+220, 22,166,158, 23,186,241,138, 80,128,105,195, 36, 13, 17, 27, 88, 70,226,166,227, 94, 96, 63,139,130,113, 4,138,218,214,138,
+ 38, 96, 9,140,179,107,247,145, 98, 25,203, 29, 3,205,122,183, 54, 33,155,200, 60, 24,240,140, 99,100, 73, 11, 91,167, 25,150,
+ 46,152,100,207,101, 40,207,143,247,229,114,188, 96,241,130,169,194, 99, 13,160, 31,110,166,152,113,213, 38, 32,213,243, 95,197,
+ 40, 22, 69,184, 14,137,153, 6, 73,207,138, 19, 32,184, 97,104,131,221, 43, 58, 75, 40,230,253,249,221, 92,190,122, 57,148,255,
+231,235,145, 28, 31,244,185,138,200,248, 30, 77,140,101, 1, 68, 63,246,180, 40,144,196,156,251,176,202, 64,177, 29,106,130, 93,
+208, 63,161,224,124, 37, 42,181,155,154, 46,228,115,253,222,159,125,249, 11,249,199,111,190,213,231, 66,159,167, 53,144,245, 7,
+ 50,214,247,188,210,107,137, 29,115,133, 77,233, 52,180, 48, 56, 50,170, 26,238,225, 9,124, 30,134,141,122,101,112,124,184,199,
+224,189,253, 52,245,245, 92,204,105,137,201,198, 22, 76,252,152,212,225, 12,162, 16, 35,180,165, 48,195, 42,172, 84,176,242,156,
+110, 77, 31,157,150,178,250,223, 80,171, 20, 7,201, 21, 62,241, 50,234,175,129,192,178,204,206, 16, 14, 27, 86, 21,216,221,226,
+253, 21, 52,161, 17,233, 38,185,188, 60, 25,176,104,195,180, 47, 14, 13,240, 92,134,166, 87,126,169, 93, 33,232, 89,192,146,124,
+254,120,159,137,107,168,247, 96,127,208,145,156,160,197, 6, 87,131,224,187,195,129, 49,244, 21, 45,244,215,135,250,217, 48,166,
+183,120, 45,254,218, 15,103,191,162,225,225, 89,197, 61, 70,192,193,142,158,166, 39, 77,172,224,172,120, 60, 26, 14,217,124,192,
+213, 16, 13,194,147,167,207, 73, 99,123,245,108,200,238,218,216, 90,122, 54,103, 75,125,159,129,124,247,238,134,235, 68, 28,249,
+ 94,211,248,234,183,147,141,217, 12,107,199, 62,104,233, 89,213,243,139,215, 6,213,239,221,229,189,158,151,161,196,249, 78,222,
+124, 24,201,231,207, 14, 25, 35,143,247,205,155, 30,231, 31,118,172,189, 47, 30,201,167,143, 6,242,211,237, 82, 59,236,142,140,
+180,138,188,184, 95,211,156, 70,202,194,133,143, 66, 62,123,235,109,230,118,171, 1, 53, 87,118,153, 77,135,132,197, 55,114, 85,
+ 76,174,253,205,104,196, 88,137, 24,132,245, 3, 77,135,118,169,131, 29,181,240, 27, 14,248,188,160,176,193, 57,122,123,147,233,
+245, 63,100, 76, 66, 51,133,230, 48,206, 50, 83,107,146,143,212,185,138,143,236, 42, 31,244, 64,141,211, 91,229,242,162, 2, 82,
+249, 27, 19, 34,125,203, 26, 96,198,142, 9,187, 53,239,132, 43,197, 47, 86,219,174,242,149,123,181,110,178,143, 57,237, 79,145,
+ 4,114,175,208,171,159,139, 2,235,210,179,220,132, 23, 50,223,209, 33, 65, 82,132,134, 74, 86,166,143,205, 68, 10,225,153,196,
+ 56,191,177, 7,177,220,197, 94,240,143,201,206,154,228, 44, 64, 62, 24, 47,163,243,196, 97, 56,220,235, 81,202,117, 75,110,126,
+198,206, 9,221,111,214,194,254,179,109, 94,182, 24, 69,105,181,132, 61, 25,110, 62, 59,116,223,101, 65, 2, 23,175,131, 27, 68,
+ 4,164,152,188, 35,146, 52, 28,182, 58, 20,137,182,224,189,221,165,110,120, 18, 48,121, 39,190, 51, 5,215,180, 2,186,161,224,
+128, 46, 61,190,207,192,121, 33,199, 85,203,141,141,167, 80,132,140, 57, 14,246,110,212, 71,145, 72,164, 24,119,115,229,209,176,
+117,198,108,147,242,154,110,138,162, 30, 67, 33, 80,183, 82,155,142,248,214,197,212,142, 10,115,204, 98,128,114,225,154, 74, 49,
+ 42,242,132, 91,186, 13,166,237,188, 31,240, 11,244, 33, 15,108,106,178,115, 64, 26,169, 41, 30,100, 66, 55,247,168, 14, 86,144,
+ 7,174,158,101, 21,122,130, 39,217, 19, 7,249,228,238,157, 46,206,138,175, 0,148, 9, 59,102,235,204,171, 42, 51,112,197, 62,
+163,198,101,181,169, 75, 37, 86, 82,123,169,251,239,166,237,163, 3,143,200,217, 78,140, 45,144, 58,114, 29, 65, 15,200,127,112,
+139, 33,146, 1, 4, 49,196, 33, 16, 4,177, 18,201, 8, 92,179,233,197,120, 50,151, 73, 39,148,243, 17,168,136, 77,114,196,161,
+191,143,125,183,237,190,133,146,145, 81,108, 19, 48, 84,213,133,235, 44, 0, 36,151,106,199, 10,132, 61,216, 36,129,243,143, 81,
+244, 65,194,211,192, 68, 45,190, 95, 84,252,184, 78,189,126,200,238, 32, 43, 33,156,210, 51,225, 30, 41,232, 52,183,166,133,176,
+ 41, 58, 2, 95, 0,129,162,202, 86,185,178, 66,198,117, 67, 39,209,236,152,168,146,129, 21, 67,217,215,223,117, 51, 94,201,104,
+ 54,147,117,106,134, 42,226,220, 98,128, 51, 13, 19, 81, 82, 13, 17,197, 16,118,234, 0, 41, 21,165, 21,251,227,233,202,117,228,
+253,252, 99,210,212, 52,156, 9,117, 5, 74,251,121,188,119, 36, 39, 19, 37, 10,205,238,213, 99, 71,181,250,170,213, 12, 43, 99,
+160,210,246,234,120, 45, 60, 87, 59,103,165, 52,249,103, 99, 50, 96,162,129, 11,252,167,243,165,252,247,159,246,104,189, 76,124,
+134,254, 31,104, 92,120,249,147,163,129,141,120,233, 86,150,152, 71, 54, 24, 35,113,193, 93,230,254,176,239,107,201,156,133, 19,
+204, 68,208,121,223,222,143,165,221,221,151,255,225,175,255, 74, 59,166, 41,175, 37, 98,207,225,175, 95,241, 61, 98,106,131, 66,
+ 15, 43, 26,196, 16,136,163, 76,200,102,217,178, 72, 19,109, 12,240, 53, 48, 56,166,219,156,192, 55,170, 83,106, 18, 66,161, 88,
+ 56, 71, 89,124,119, 28,251,138,110, 7, 10, 41,146, 68, 11, 69, 71,139, 5, 83,225,215, 23,199, 31, 6, 78,248,252, 20,244,170,
+168,191,166,185,108, 84, 79,182,192, 90,156, 5, 6, 96, 51,195,159,144, 49,140, 30,241,250, 94,127,188,156,107,146, 26, 82,160,
+ 69, 60,214, 67,207, 34, 40, 32, 66, 54,160, 20, 43, 48, 22, 80,187,108,197,125,249,242,229, 19,126,199,197,221,130,138,119, 32,
+160, 44,118,250, 12,245,251,122,205, 15,229, 19,237,134,227,210,104,110,120,230, 49,110,190,213,179,113,165, 93,229,205,253,148,
+ 49,159,163,112, 61,155,125,202,212, 6,156,136, 65,174, 27, 95,195,148, 11,241, 15, 5, 3,117, 61,146, 6, 81,222,128,227, 30,
+ 12,219, 44, 50,238,166, 27,198,152,243,235,137,118,210, 35,217,174, 71, 90,236, 44,217,113, 3,163,128, 41, 73,191,221,213,215,
+223, 51, 31, 1, 40,229,233,181,129, 30, 59,198,248, 31,238, 23,210, 12,172, 65,216,176,232, 41,101,175, 85,178,187, 30,118, 33,
+187,189,213, 34, 61, 37, 70, 32,215, 66,249,101,116, 32,151,119, 51, 62,239,231, 55, 19, 74, 47,163,224, 0, 40, 22,207, 18, 85,
+236, 38, 96, 55, 52,249,236,146,133,164,247,109, 95,139, 13,224, 84,192,213,199,212,180,153, 24,152, 23,141,193, 64,139,204,201,
+198,128,112,149,183,193,158, 62,207,160, 78, 67,244, 13, 56, 28,196, 80, 52,125, 56,143, 88,115, 97, 84, 79, 1, 41,248,154, 76,
+ 50, 45,112,208, 8,101, 92,177, 16,175, 25,212, 82,158, 54,190,172,187,223,138, 3, 29,132,181,154, 88, 69, 47,201, 61,128, 91,
+110,119,227, 14,243, 18,225,168,128, 84,138,208,193, 16, 12,194, 8, 24, 15, 35,159,168, 17,214,223, 7, 99, 0,188,241,245, 2,
+160,138, 64,244, 25,212, 27,219,225,161,171,100,252,136,142,100,183,109, 15, 53,110,252,146, 22,123, 49, 31,182, 22,221,202,240,
+ 80,235,247,184,211, 28,209,183,238, 99,139,194, 15,193, 26,114,153, 24, 5,133,129,125, 70, 72, 55,226, 33,196, 67,247,244,236,
+136,227, 77, 0,158,240,217,240,250, 0,108, 32,224,163,202, 70,240,154,235,195, 99,134, 46, 91, 57, 58,104,209,137,168,201,145,
+ 80,198, 46,166,178, 38,197,129, 44, 3,123, 31, 64,167,102,148,170, 13,169, 96, 85,249,211,103,100, 1,152,158, 47, 2, 84,154,
+110,248,243,149, 98,219, 2, 50,128,217,166,230, 61,110,150, 89,125,221,171,149, 8, 42,208,178, 34, 17,226, 97, 45,115, 71,179,
+219, 23,240,224, 96,173, 33, 78, 65,163,113, 67,244,145, 70,186,119,129, 85, 65,199,157, 51,194,147,137,125, 27,216, 38, 12, 93,
+154, 53,247, 49,184, 83, 64, 62,114,239, 42, 93,171, 54,115, 73,219, 74, 97,175,162,124,208,137,204, 65, 49,245, 57,178, 1, 78,
+ 61, 90, 71,128, 77,220,246,183,112, 63,232,192,187,202, 0,235, 0,167,135,132,145,117, 66,134, 96,183,235,199,205, 83, 32, 44,
+124, 42,234, 1,170,235,204,247, 93, 53,250, 30,175,233,244, 69,220, 79,118, 11, 40, 16,169,177,222,208, 46,160, 69,196, 56,118,
+120,122, 23,184,211, 70, 49,137, 98,173,162,228, 80,254, 85,223, 51, 18,119,160,157,201,146,221,127, 78,218,201,155,155, 37,119,
+160,211,133, 81, 38,231,147, 41,223, 51,170,235,128, 18,164, 91, 68, 22,237,162,155, 76, 8, 80,165,163, 75,223,165,117, 92, 37,
+165,151,115,147,195,213,247,190,218,206, 61,113, 52,216,149, 96,212, 11,207, 0,112,112,209,198, 0, 95,130,206, 52, 36,159,189,
+ 77,222, 49, 56,239, 16, 57,105, 5,166,218,134,238, 15,215, 99,101, 50, 93, 92,185, 20,181, 84,127,193,226, 9, 93,170,129,221,
+ 50, 82,220,176,130,128,253, 39, 10,100,227,234,102, 92,229, 84, 2, 33,212, 78, 72,154,228,168,227,218,238, 13,250,236, 38, 41,
+ 13,155,151,228,245, 30,239, 15,216, 69, 87,114,200,247,227,177,111,132,109,138,115, 53, 89, 16,113, 95, 21, 93, 0,103,113, 29,
+147, 85, 69, 87,233,241,165,244,174,179,112,193,167, 88,139,239, 62,157,226, 96, 91,140,142, 58,140,108, 90,182,208, 78, 21,157,
+ 13,120,230,163, 69, 65,206, 58,132, 68, 16,112,247, 53,169, 76, 53, 81,194,161, 16,122,224,232,244, 18,160,169, 67, 3,147, 97,
+202, 3, 80,215,118, 27,177,248, 26,232,103,194,253,218,110, 77,244, 9,126,230,215,183,247,114,118,124, 40,191,248,226, 19,249,
+ 63,254,243,239, 88,116,254,249,199,107, 98, 87,108, 10,149,113, 98,129,142, 26,168,107,220,119, 48, 26,112, 79,169,231,224,116,
+ 50,158, 89,189,133, 24,243,195, 82,147,116, 46, 96, 86, 66, 19, 21, 66, 35,129,216,182, 3, 69, 49, 93,201,227,227, 99,249,242,
+211,231,114,160,113, 40,164,123,228, 70,254,254,155,159,104,167, 74,100, 60,234,118,172,183,160, 86,135,198, 40,249, 88, 42, 89,
+106,109, 14,220,205, 40, 48,111,242,210,233, 89, 80, 95,155,175,150, 60, 83, 0, 2,134,174, 9, 82,184,220, 44, 68, 95,218,237,
+146,202,132,136,159, 6,218,202,228,251,243,145, 60,215, 78,181,165, 69, 38, 52,240, 55,152,132,166, 91,130, 39,183,155,190, 60,
+121,116,166, 69, 66, 79,222,159,191,151,168, 92,107, 2,157,115,130,194, 81,190, 54, 79,135,218, 88,225,252, 83,252, 70, 43,206,
+235,233,154,137,154,171, 52, 40, 11,114,146,152,179, 72,132,223, 6,124, 44,128,231, 64,243, 3, 6, 3,138, 38, 52, 32,152, 88,
+ 73, 60,208,179,174, 9,238,234,156,215,149, 56,150, 50, 34,127, 29,236, 7,172, 39, 96, 48,115, 51, 53,167, 58, 80, 85, 83, 87,
+ 47,157,211,172, 75, 8, 72,197,234, 99,182,210, 51,187, 25, 75,191,255, 66,207, 17,164,204, 23,122,166,255, 63,170,222,179, 73,
+182,235,202, 18,219,215,165,207,242,254,121, 88, 2, 4, 57,109,200,142, 80,171, 99,102, 66, 49, 17,250, 32,125, 29,253, 30,253,
+ 42, 73,161, 24, 69,168,165,142, 25,170,155,100,179, 73,130, 32,240,240,124,121,159, 89, 89,233,174,211, 94,107,239,115,235, 17,
+221, 32,128,122, 85,149,215,156,115,182, 91,166, 77, 48, 95, 93,117,164,223, 71,161, 49,150, 51,189,159, 44,182, 4, 10, 2, 63,
+147,169,141,177,241, 46,239,244, 62,218, 37,198,102, 21, 99,224,246, 74,199,198, 74,121,238,214,171, 41,239, 21, 96, 91, 20,113,
+121,148, 56,126, 41,227,123, 66, 82,140,117,141,189, 49,157,207,248,117,156,173, 73, 63,102,135, 5,103, 57, 94, 43,228,212, 71,
+186, 79,191, 63,154,200,215, 79, 6, 76, 14, 83,148,241,129,206,198,131, 9, 85,233, 71,214,149,134, 82, 76, 57,159, 3, 71,178,
+118, 29, 95,218,223, 85, 53, 51,101,180, 71, 0,254,192,197, 66, 72, 35,146,168,113,145,193, 33,142,138, 6,242,127,179,249,146,
+237, 91,108, 56,204,233, 66, 11, 29,106, 89,200,112, 54,245, 5, 83,193,139,243,218,146,180, 24,102, 37,250,231, 81,109, 7, 65,
+168,184,241,146, 98, 15, 22,216,232, 80,129, 66, 53,140,246, 3,218,225,116, 10,186,159,113, 12, 64,149, 37,240,102,165,116,157,
+115, 33, 56, 8, 70, 0,221,182,169,214, 33,192,190, 63,190,226, 53,206,168, 28,215,226, 33,136, 32, 3,126,184,129,163,108,145,
+ 33,195,194, 27,153, 95, 90, 5,157, 56,246, 32,246, 57, 81, 25,176, 9, 28, 63, 20, 31, 33,229,171, 70, 58, 54,114,169,210, 0,
+ 10,128, 90,157,129,181,146,134,123,110,188,240,244, 97,131,213,214, 98, 71, 27, 42,200,179, 62, 84, 50, 53, 43,104,147,174, 45,
+ 26, 1, 8,202,162,118, 83, 55, 10,241,241, 72,105, 63, 35,174,172,150,231,198,159, 14,188,245, 96,113, 19, 52,225,113, 88,148,
+142,192,143,228, 1, 76,105,109,110,251,119,204, 29, 37, 14, 93,154,186,153, 79,134,201, 14, 81,223,105,212, 80, 11, 73,253, 72,
+ 82, 7, 66,105,128,237, 56,250,217,231,236,145,207,206, 57, 71, 79,109,230,198,182,175, 4, 53,193,210, 51,216,192, 95,143,131,
+127,112,131,229, 96, 37,142, 10,110,185,124, 72, 96,220, 42,152,186,252,174, 37,128, 67, 2, 65, 27,246,145, 63,121,186,197,182,
+238,255,247,231, 99,125,143, 54,167,159,235, 33, 55,160,220,163,233,199,111, 12,219, 60, 0,177,246,233, 39,206, 68,170,205,170,
+ 7,116,168,101,110,218,255,176,222,172,171,133, 81,156, 72,203,203,154, 36,249,222, 77, 58, 80, 33, 94,223,153,177, 74,236,218,
+223,120, 6,101,189, 36, 8, 52,109,168,161,250, 94, 97, 36, 1,185,213, 86, 76,164, 45,158, 65, 75,147,224,173,172,207,117,181,
+167, 65, 20,239,224,245,241, 37, 43,104,142, 27,144,252, 96, 70, 43, 17, 15, 18,170, 17,198,198,223,173,107, 75,176, 48,135,173,
+216,173,138,153,152, 34, 81, 21,151,163, 53, 32,105,212, 0, 67,177,134, 16, 84,113,219,148,238,188, 55,164, 53, 59, 17,222, 21,
+129, 66, 24,130, 62, 14, 96, 84,206, 6,138,180, 78, 22, 91,230, 14, 6,236,131,214,166, 85, 53, 36,111, 99,151,156, 38, 40,147,
+ 58,227, 41,247, 57,214,255,210, 29,182, 10,175, 76,209, 6,197,185,128, 4, 27, 58,249, 86,249,207,152,176, 97,198,142,243,198,
+ 64,154,149,252,112, 58,145,191,253,114, 67,254,219,159,174,229,249,206,138, 30,208,119,124,231, 48,157, 89, 46,187, 76,138,208,
+105, 33, 18, 26, 40,255,161,205, 45, 47,181,146,132, 38, 67,202,247, 42, 68, 48,143,198,119,154,236, 45,116, 45,116,101,115,101,
+133,221,137,249,162, 50,245,188, 22,196, 79, 38,188,214,136,213,103,151, 28,250,162,130, 68,246,140,134, 70, 97,158, 30,244,216,
+ 43,253, 89, 60,247,187,201,152, 85, 58,133,133, 92,222,181,114, 71, 46,208, 16,251,155,123, 60, 23,223,159, 93,201,229,120, 38,
+219, 27, 3, 6,238, 23, 79,118, 40, 30, 4,133, 62,136, 16, 81,223, 3,107, 36,207,233,176, 73, 0, 30,206,137,178,108, 70,153,
+ 68,107,195, 96,107, 0,250,228,130,120, 27,116,158,128, 47,192,247,188, 63,187,150,103,219,107,124, 15, 75, 87,104, 68, 77,144,
+106,245,219, 74,156,254,137, 36,179,101,182,211, 39,122, 6, 30,108,175,208, 9,115,190,208,130,104,150,211,211, 28,149, 56, 20,
+246,126,120, 45,242,253, 15,127,212, 63,155,178,253,143, 4, 62,113,125,145,157,245,117,130, 40, 49,102, 8,138,142,181,143, 93,
+ 77,232, 42,110, 64,163, 88, 32, 24, 19,181, 8,182, 52,132,123,196, 78,155, 1, 31,119,119,122, 76,124,129, 57, 5,232, 19, 22,
+195, 66,143,241, 53,202, 59, 47, 40, 1,157,154,248,140,190,203,227,155,153, 6,249,142, 84,173,154, 60,113, 99, 38, 45,152,208,
+194,205, 48,169,205,147,253,174,104,201,160,154,202,219,227,185,124,245, 98,135,239, 97,123,181,103, 50,206,122,158,193,143, 1,
+ 49, 2,251, 29, 22,168,192, 13,220,107, 81, 64,179,152,165,129, 93,177,135, 7,109, 51,137,186,229, 84,193, 4,184,208, 61,130,
+ 12, 48,126,231,248,244,142, 24, 42, 4,111, 22, 0, 16,161,209,132, 15,227, 43, 33,131,202,218,247,232, 74, 97,188, 49,153, 78,
+205,171, 66,175,251, 78,215, 29,238,117, 99,117, 32, 95, 62,214,245,122,176,222,101,245,140,172, 7,243,224, 68, 15, 25,180,174,
+ 19, 63,148,179,212,208,220, 8,108,109, 23, 47, 64, 38,156,197, 22, 96,251, 45, 3,202,117,188, 50,198, 13, 34, 0,178,245,173,
+ 47,143,254,226,105, 74,160, 20, 2, 34,140, 50,114, 15, 48, 8, 34,168,192, 17, 36,129, 10,196,194,228,188,217, 53,157,113, 56,
+175,232,230,192,107,163,158,180,183,186, 22,185, 37, 29, 68, 29,150,198,111,198,207, 32, 75, 71,235,220,204,230,151,228,146,150,
+ 4,231,125,220,250,143, 29, 20, 87, 53,221,136,194,169,116, 81,240,217,214, 7, 62,154,207,220, 89,101, 73,123, 66,163,234, 57,
+ 8, 16, 96, 47,231,126,227,160, 14,129,166, 40, 31,212,236, 42,169, 26,204, 64, 19,140,235, 7, 26, 30,238,147,252,122,231, 90,
+ 7,225,138,202, 71, 26, 38, 94, 35, 78,223,179,182, 94,230,148,183, 32, 18, 66,222,117, 94,184,254,188, 80, 47,216, 28,225,172,
+ 13,135,182, 94,212, 73,154, 25,102,205, 46,140,101,235, 70,159,115, 37, 61,199, 69,196, 62,111, 14, 12,134, 58, 28,231,252,111,
+225, 24,196,100, 96, 43, 90,167,214,110,181,107, 84,197,202, 11, 48, 11,153,137, 59,183, 25,154, 59,114,224, 75,210,180,190,203,
+162,108,220, 90, 62,182,112, 69,181,219,142, 91,156,201,199,174,109,157, 80,241,225, 97, 94,111,244,185,132, 85, 13, 42,170,216,
+159,161, 56,199,159,207,252, 35,189,240,240, 25, 78,139, 55,158, 42, 92,179, 64,235,169, 12, 20,182,173,149, 67,175,147, 16,140,
+242,108,111,131, 62,197,175,207,205, 31, 28, 20, 28, 28, 36,216, 3, 89,100, 0,189,161,102,253,173,164, 71,124,195, 98,217, 53,
+ 51, 13, 61,220,119, 54,134, 68,197,178,154,208, 10, 47,102, 7,166,228,124, 29,129, 21,213, 30, 42,252,159,127,118,160,149,206,
+185,124,247,190, 32,192,231, 31,190,249, 68,254,143,127,254, 65,139,239,216,156,174, 98, 91, 55, 72, 82, 41,145,156,197,174,163,
+ 96,224, 84,236,165, 37,223,103,196,196,130, 84, 55,104, 69,107,160,153,232, 97, 90, 83, 86, 57,179,118,117,232,122,224,186,251,
+ 61,119,212, 51,118, 65,228, 29,146, 49,112, 34,179, 7,128,232,114, 97, 24, 14, 92, 43,194, 16, 80,225,225,224,133,245, 44,102,
+133,156,251, 83,151, 31,250,244, 33,216,155, 33, 76,236, 34, 50, 43,189, 61, 6, 96,188,175, 13, 13,152,120, 38,184, 70,232,180,
+ 19,229, 11, 42,108,150, 56,167,187,148,139,209,221,131,205,174,235,254,207,150, 30,168, 28,177,142,202, 23, 93,131,201,108, 70,
+112, 26, 48, 15, 84,174,211,196, 98,137,162,132,162, 66, 48, 26,185,149, 95,253,208,146,255,225,111,246,136, 40, 71,251,115, 69,
+ 19,183,171,177,121,202, 67,213,110,103,125, 32, 27, 26, 24,113, 15, 55,154,160,224,190,123,248,250,206, 58,145,206, 96, 56,128,
+145, 66, 51,142, 8, 21, 56, 18,149,169,236,239,239,200,139,167, 79,229, 87,191,253,189,172,174,172, 57,232, 47,246, 53,102,193,
+ 6,231,225,253,100,233,103,165,143, 27,163, 32,123, 45,252,204,204, 41, 82, 53,248,228,208,221, 72,204,158, 22, 99, 75,156, 93,
+ 64,137,163,203, 7,140, 67, 81,229,242,233,163,182,126, 94,143,221, 23,152,144,188, 63,188,144,163,243, 75,126, 38, 52,211,225,
+238,151,143,150, 76, 90,106,253,189, 56,111,193,119, 3,155, 33,136,119, 32,193,186, 95,132, 46,155,225,156, 46,110,108,100,130,
+ 14,228,227,173, 53,170,146, 65,171, 97, 4,131,170,202,146,254,209,245, 21,207, 44, 26,249,232,239,236,179,240, 41,184,222,215,
+245,221, 34,177,133,158, 62,206,119,116, 80,176,207,222,252,248,157,116,234, 57,113, 22, 4, 72, 58,246,233, 90,207,212,247,103,
+151,236,244,196, 14,118,230,217, 92,186,231, 68, 98, 9, 93, 44, 15, 66, 47,117, 29,196,124,150, 68,160, 79,177, 14, 53,113,206,
+ 36,161,134, 9,146,210,191,249,217,207,116, 15,106,130, 62, 48, 37, 69,252,117,124, 57,146, 63,190, 58,150,108,173,195, 46,109,
+ 43, 53,221,133, 43, 32, 41, 33,227,186, 98,170,157, 56,103,218,117, 74,172, 4, 20,253,128,232,159, 94, 22,242,120,103, 85,214,
+187,177,188, 58,186,145,167, 59, 3,158,155, 27,107, 67,222,231, 87,219, 3,253,249,190,124,184, 52,197,197,199,154,224,188, 60,
+188, 49, 63,138,200,128,196, 19, 13,242,175,207,198,178,183,210,161,114,221, 88,147, 11,224,117, 62,217,239,112, 93, 35,169,217,
+129, 35,233, 34,116, 85, 42,121,119,124,196,209, 12,149,233,216,105,140,200,144, 34,215, 29,109,125, 20, 80,109, 3,139, 98, 31,
+ 32, 28,156, 92,163,107,204,115,214,209,230, 52,140, 55, 39, 50, 60,192, 54,205, 69, 12,142, 31, 16,161,179,133,121,251,146,186,
+164, 31,134,118, 31, 22, 2, 77,219,227,200, 57,217, 5, 3, 53, 54, 1,218, 26,248,105,220,252,146,115, 47,243, 95, 70,149,110,
+115, 80,145,187,235,137,161,203,225,214, 4,170, 12,231,114, 75, 30,202, 8,102, 87,227, 43, 46,110,100,248, 84,223,162, 93,235,
+162,169,120, 77,145, 45,107,178,224,241, 98, 34,177,222, 92,228,146,174,104, 25, 85, 81,233, 51,125,171,230,176,153,226,180,106,
+ 0, 87, 9,103,107, 38,213,154,250,188, 24,115,155,112, 24,198, 33,152,251,207,135,150,114,229,165, 33,238, 21,109,186, 42,168,
+ 16, 57,242,223, 12, 98, 18,175, 50,189,114,116,173,120,252,110,102,120, 78,177, 74, 28, 40, 67, 78,185, 30,252,152,125,165,174,
+206, 86,184,164, 45, 54,133,113, 71, 31,252,146, 19, 95, 60,134,250, 55, 41,206,152,124, 97, 3, 13,102, 89,171,209,108,199,243,
+ 41, 97,188,160,135, 82,236,212, 65, 80,128, 76, 25,206,102,229,228,201, 87, 62,167, 22,123,238, 38, 25, 91,124, 36,193, 91,123,
+146, 35, 14, 82,115,227,141,210, 36,114, 27,203,211,128,118, 18,115,247, 74,189,165, 79, 20,253, 98, 78,116,120,248,126,252, 34,
+ 50, 12, 60,200,132, 57,121,234,247, 65, 35, 24,118, 61,106, 71,199,198, 46,106,210,250, 8, 21, 15,219, 94, 23,223,137,226,134,
+ 54, 21, 70, 71,165,203,220,226,235,171,154,237,130,198,215, 74,187, 46, 0, 84,105, 96, 95,145,141,149, 30,103,199, 53,147,164,
+ 88, 46,231,200,232,183,109, 94, 8,148,176,102,233,248, 30, 58, 96, 38,230,248,135,164,116,109,213, 18,224,149, 65,151, 6, 20,
+104,241,159,104, 16, 57, 27,221,152,203, 86, 98, 35,159, 34,143,184,254,239,245, 29,255,228,241, 42, 5, 57, 86, 53,168,191, 59,
+191, 53,197, 49,159, 57, 67,209, 13,109,195, 27, 40,197, 57, 69, 38,105,121, 27, 21, 1, 14,158,222, 45, 3,234, 45,233, 28, 86,
+ 49, 8,227, 21,229, 14,238, 99,210, 75, 65, 15,241,118,190, 9,212,148,165, 5, 25,241, 68, 21,123, 29,200,103,236, 99,180, 43,
+183,214, 76, 41,110, 85,239,101,103,189, 79, 87, 57,204,233,239,220, 59, 30, 65,103, 21,173,111,221,255, 72, 58,176,183,241,236,
+ 81,156,148, 52,132,233,178, 2, 7, 19, 98,164,213,244,187,163, 11, 38, 61, 24, 39, 77, 53,248, 67,153,250,250,236,134, 73,130,
+ 33,239,243, 70,195,194, 42,180,178,209,191, 14, 8,120, 36,226, 7, 91,230,152,118,168, 65, 12,231, 12, 53,249,139, 69,192, 90,
+113, 20, 51,119, 85,196, 44,179,253, 51,209,115,251,237,225, 72,182,134,177,188, 60,185,151,237,149, 22,233,108,216,159,215,154,
+ 92,172,233, 59,143,245,190,128, 98,231, 88, 46, 53,135,196, 76,139, 9,208,135,122,253,204,204, 88,174,110,101, 13, 29, 26,253,
+207,171,107, 48, 29, 42,249,143,255,254,191,147,171,203, 83,172, 72, 30,186,169, 96, 20, 80, 55, 50,203, 84,131, 75,173,251,133,
+179,175, 69, 60, 80, 78,245, 63,176, 85, 64,125,194,154, 2,205, 45,236,105,125,177, 28, 35,101, 48,252,208,247, 59, 33,221, 76,
+247, 85,187,197,119,131, 25,235,209,201,141,108,111, 14,100, 79,171,208,191,254,233, 83,185,208,235,249,243,235, 15, 90,157,174,
+ 82, 95,129,216, 2,232,209, 87,181,203, 59, 71,126,141, 65, 61,212, 18, 46,179, 76, 53,204, 64, 20, 27,218, 28,107, 1, 84, 88,
+ 4,225, 53, 77,110, 54,134, 29, 3, 77,234,117,111,233,186, 7,133,115,161,207, 14, 34, 45,167, 55, 35,122,156,143,238,140, 33,
+132,132,246,209,206,138,124, 56,187,147, 46, 70, 30,117, 91,190,249,250,103,162,191,130,122,235,253,110, 74, 60, 20,139, 58, 88,
+ 4,223,142,229, 79,111,143,249, 30,130,229, 51, 94, 37, 42, 87,172, 63, 2,139,233,118,102,231, 40,198, 99,192, 66,225, 37, 33,
+209,198, 94,235, 80,113, 17, 82,206, 53,181,221,199,247,186,166,230,119,186, 7,245,250, 7, 96, 54,204,229, 86, 19, 82,236,215,
+ 99,141, 53,176, 79,125,125,114,203,119,176,149,117, 13,244,170,235, 20,186,237, 67,189,198,104,164,107,168,138, 25,187, 38,243,
+137,236,238,236,235,154,138,228, 79,239, 78,229,147,189, 53,221,167, 8,220, 3,174,195, 45, 93, 59,185, 38, 90, 80,166,163,170,
+164, 38, 56, 71,103, 35,182,242,177, 95,231,110, 42,134,113, 30,214,241,167,219, 61,185,190, 47,201,237,135,121,210,238,106,151,
+166, 65,135,151,119,236, 60,175, 14,250,116, 44, 77,211,146,157,159, 33,227,171,157, 89,112,245, 59,187,186,226, 58, 77,152,240,
+104,177,176, 52, 43,238,245,225,138,131,186,245, 28,185,152,153,184, 38, 14, 9,182, 91,150, 54, 15,198, 3,196, 12, 13, 63, 92,
+151, 49,219, 2,226,244, 37,108, 90, 84, 10,176,238,157,232, 98,228, 1,142, 22,222,114, 97,114,143,244, 70,118,254,240, 71,115,
+247, 32,132,192,223, 61, 95, 52,200,248,165,131,140, 82,151,227,203, 60, 64, 83, 84,164, 50,209, 0,206, 88,128, 46,214, 27, 70,
+102,146,187,190, 49,190, 7, 55,181, 32,192, 32,117,186, 26,218, 22, 61,215, 91,215, 3,177,206,154,106, 56, 4,182, 32, 56, 18,
+ 84,200,164,142, 28, 85, 31,125,132,196, 20,151, 74,181,205,197, 10,192,221,219, 34, 15,194, 12,152,148, 81,204,205,175,183,221,
+110,130,122,237,227,130,198, 23,213,149,218, 36,254, 75, 33,159, 96,247, 88,123,245,206, 0, 94, 57, 61, 46,169, 27,103, 54, 19,
+142, 40,221,157, 78, 19,128,202,158, 23, 43,249,196,164, 70, 9, 54, 92,212,158,104,148,142, 72,183,119, 65,192,143,223, 25, 2,
+ 12,233,124,169, 81,190,146, 36,232, 18, 24, 88,195,208,232,133, 43,194,185,203, 25, 90,168, 78,205,138,189,205,250, 80, 29, 99,
+ 86,191,112,240, 77,202,174, 0,174, 57,140,117,130,180, 47, 70, 54,105,154, 53, 52,192,197,188, 16,121,208, 34,106,172, 95, 3,
+146,158, 93, 11, 13, 86,185,211, 12, 77,245,175, 34, 47, 53, 14, 74,125,224,106,139,169,130,217,232, 3,169, 86,238,221,137,212,
+186, 5,110, 60,211,161, 40, 68,226,109,205,148,224, 28,172, 39,124,125,216, 75,117,195,247,216, 17,121,127,122, 45,215,211, 37,
+133, 57, 48,107, 71, 37, 9,112, 90,167,114, 17,141, 59,173,248,244,208, 99, 59,178,142, 93,206,194, 36, 32,233,241, 96,243, 5,
+ 25, 80, 19,189,242, 61,225, 66, 73, 62,114,192, 65, 60,211, 8,113, 61,158,112, 13, 35,161,160, 6,252,221,140,135, 48,116,196,
+209,242, 47,110,167,114,231, 84,179,132,179,223,164, 1,152,150, 60,108,151,110,227,107,157,155,207,159, 29,200,167, 79,247,184,
+ 94,209, 18,127,126,176,197,185,101,225, 73,123, 27,215,221,237, 11,154,152,120,237,168,182, 8, 32,210, 67,242,187, 87, 71,250,
+ 60, 98, 25,141,167, 60,232, 87,183, 6,124, 39,179,241,130,173,218, 82,127,224,244,106,194,238,200,244,232, 86, 19,147,156,244,
+173,241,248,142,216, 16, 24,126, 32,209,193,202,192,140, 57, 32,230,209,185,107,116, 42,107,113, 75,225,170,145,209, 44,202,162,
+145,128,109,246,205, 71,178,211, 28, 7,214, 21, 65,117,103, 87, 55, 92,203,104,129, 47,220,140,168,223,234, 54, 35, 67,252, 55,
+186,134,133,211, 42,241,215, 31, 14,103,242, 15, 95,244,228,251,163, 59, 38, 36, 0, 75,161,203,134,174, 9, 52,180,161, 21, 0,
+117, 52, 80, 11,209,130,205,218, 64,111,207, 56,186,184, 27,143, 25,140,150,115, 83,223,235, 38, 37, 5,157,222, 29,157,200, 79,
+ 62,123, 38, 7,251, 7,242,227,235, 87,141,120, 78, 69,108, 67,155,126, 2, 80, 81,131,234, 95,153,154, 78, 3, 18, 23,204, 96,
+209,186,198, 30, 12, 12, 29, 50, 63,160,254,150,216,248,170,198,153,168,123,179,227,157,179,235,241,173, 60,218,221,225,222, 68,
+ 87, 6, 86,167,184, 38,180,191,145, 64,125,245,201, 1, 89, 10,183,183,119,210,134,160, 85, 91,131, 93,199, 12,103, 48,130,232,
+105, 50, 49,115, 27,228,194,147, 37,195, 17,153, 57, 16, 3,242,250, 42,129,145,216,243, 39,215, 99,217,172, 86,248,174, 32,161,
+139,231,133,231, 79, 37,203,194, 80,228, 72,248,206,142,174,169,177, 14, 68, 59,228,132, 49,218, 1,128,237,241,238,144,193,141,
+ 46,133,189,117,233,173,173,201,225,233,137,172,107,144,115, 86, 47, 41,112,159, 60, 57,144, 47,159,239,107, 18,112, 67,186, 33,
+ 76, 82, 0, 24, 69, 64, 92,194,177, 77,171,241,201,210, 10, 45,130,206,116, 61,153,243,103,198,209, 84, 97,146, 36,156, 41,175,
+173, 38, 84, 12,196, 88,245,106,188,148,223,126,119, 46,167,199,175,101, 14, 32,104,219,172,191,159,238,237,200, 47, 62,223,145,
+173,123, 67,200, 79,230, 37,249,230, 72,128,240,251,209,233,250,234,160, 35,135,247, 61,189,198,182,140, 39, 71, 46,238,163,239,
+ 78,218, 76, 62, 14,118, 52,185,157, 85,178, 57, 76, 41, 82,116,125, 87,104,114, 51, 99, 71, 12, 35,148,171,145, 38,130, 0,102,
+ 10,102,245,133, 38, 70, 45, 77, 22, 18,142,109,254,245,205,149,252, 76, 63,239, 28,186,253,122, 95,199,215,247,148,178, 69,165,
+ 62,165,108,108,171, 49,173,170,131, 98,106,100,234,118,212, 62,240,216,136,142, 52,253, 4, 90,152,243,247,101,119,107, 75,175,
+117, 66,172, 4,177,104, 31, 46, 39,110, 87, 57,243, 42, 29,217,197,178,161,146,132, 54, 53, 43, 59, 7, 88, 45, 89, 29,250,124,
+ 59, 73,188,125,234,122,205,203,202, 3,150, 9,193,160, 5, 28, 28,205,146, 64,167,113,245, 53,108,255,174,171,138, 73,168,254,
+ 28, 52, 99,179,252,140, 7, 50, 22,106, 70,195,138,177,101,109, 62,139, 78,211,172,161, 85,113,230, 86, 22,141,101, 99,176,222,
+108,183,218,174, 14, 23, 27,160,195,171, 74, 86, 78,164, 22,229, 68,248,253,133,111,184,207,129,209, 50, 12, 28,116, 6, 40,136,
+129,128,195,239, 34, 37,224,150, 82, 44,135, 46,104, 45,107,187, 59, 56, 44, 14,178,180, 14,138,137,216, 65,174, 93,212,197, 0,
+130, 76,160,120, 64,155,242, 84,252,145, 69,226,199,109,112, 0, 65, 76,188,195,130,177,221,179, 57, 92,133,231, 85, 57,242, 41,
+ 77, 12,213, 28,116,251,173, 82, 45,154,175,197,141,212,175, 85, 52, 6, 34, 75, 93, 18,215,228,123,255,162,205, 29,187,110,180,
+139,104,176,186,171,235,198,128, 70, 92, 32, 40,112,160, 13, 69, 95,217, 28,219,169,102,185, 3,218,204, 17,175,104,168,110,193,
+219,153,243, 67,231, 41, 99, 68, 80, 39, 38,178,192,132, 7, 45,100,239,108, 24, 53,198, 0, 64,137,235,221, 3,245,205,214,236,
+194,112, 19,214, 85, 17,119,202, 11,237,248,152,235, 14,137,198,138, 6, 3,180,252, 86, 59, 86,153,232,145,161, 75,183,226,218,
+120,127,122, 67, 0,206,149,131,169, 74,189,110,184,188, 33, 48,157, 46, 76, 91,189,240,206,200,141,174,171,221, 77, 61,176,186,
+149,124, 56, 57,215,131,101, 34,159,233, 33,181,186,210,231, 76, 13, 30,236,120,163,161,251, 16,128, 74,192,137,180, 50, 99, 94,
+ 80,144, 66,131,105,143,222,201,150,224, 33,192,100,196, 21,212, 90,245,172,203, 87,207, 31,243,190,128,152, 93, 27,154, 14,244,
+254,214,154,236,109,174,176,163, 96,157, 14,145,179,203, 91, 38, 54, 27,250,103,122,218,200,248,232, 92,127,102,206, 22,243,205,
+245,157,140,230, 57, 17,211, 8, 76,232,122,140,198,247,228,212, 99,102, 57,163,146,153,153,223, 32,129, 65,187, 48,114,149,189,
+218,215, 5,173,122,147,136,115,118,226, 12,230,182,199,112, 31,133,169,132, 24,211,162,182,228, 50,117, 53,196,208,213, 67,119,
+ 64, 28,101,140,245,148,147,162,104, 99,148, 90, 28,252, 89, 27, 30, 37,120, 3,132, 22,190, 4, 99, 37, 84,224,100, 60,152,198,
+ 66,232,220, 88, 81,144, 62,112,219,163,218,218,191,150, 91,201,225, 45, 62,107, 40,192, 22,162,165,190,162,193, 3,109,102, 96,
+ 11,238, 70, 99, 57,130,218, 27,248,189, 56,216,121,253, 9,171, 65,116,249,114,125, 95,253,205,190,172,233,249,118,167, 9, 24,
+ 90,191,235, 43,107,114,122,118, 65, 93,254, 71,143, 30,203,119, 63,252,153,221, 62,220, 63, 62, 23, 64, 65,240,199,251, 61,116,
+ 32, 38, 50,243,226, 5,114,173,149, 59, 22,146, 47, 30,155,154,159, 89,167, 26,189,139,142,129, 38, 98,192,132, 21, 10,112,216,
+107,247,148,148,182,106,182, 75,181, 67,147, 9, 29, 77,230,242,228,209,150,124,121,251, 88,254,233,215,223, 74,189,180, 14, 6,
+175, 3,137, 52,193,167,117, 67, 77,166,253, 45,138, 56, 87, 80, 4,200,114,107,125,141,103, 42,230,185,226, 45,255,195,139,107,
+ 13,176,123,156, 9,227,154,219,157, 33,247, 69,233,122, 3, 65,163, 3,221,134,204, 5,192,110, 53, 25, 4,158, 2,149,246,250,
+106, 79,110, 70, 51, 57,185,184,212, 0,127,174,123,226, 78,174,122, 3,235,128,234,130,157, 76, 52, 9,185, 57,227,218,199,122,
+248,226,201,174,116, 32,209, 26,213,172,124,161,189,112,113, 51, 49,192,160,143,139,192,196, 64, 70,112, 63, 51, 87, 60,172, 41,
+236, 33,140,236,128, 19,194,152, 1,239,231,209,163,175, 77,119, 62,137, 88,209, 35,177,169,168, 21,176,148,221,181, 62,215,189,
+ 49, 27,108,141,125,178, 59,224,249, 0,188, 2,198,197, 16, 18,130,143,195,103,187, 90,137, 35, 89,215,179,125, 79,147,158, 87,
+135, 39,114,176, 93,202,135,227,115,217,254,234,169, 60,210,202,187,164,243,103, 33,199,154,236, 98, 61,181, 29,239,114,118, 61,
+227, 26, 62,191,157,177,229,222,114,154,242, 63,126,123, 66, 16, 43,158, 61,156,245,238,167, 37,147, 43,226, 77,114, 77, 80,181,
+ 58, 7, 38,228,234,230,150, 9, 76,167,101,127, 35,177, 31,221, 77,200,158,218, 94, 95,215, 64,190,201,119,135,239, 71,140,218,
+209,255,238,245,123, 90,209,223, 73,138,121, 13,173, 68,163,212,221,184, 92, 48, 38,112,213,179, 7,208,147, 89,247,197, 13, 95,
+ 61,245,214, 49,199,150, 13, 77,201, 54,183,209,154,162, 70, 76, 6, 85, 67,233,186,225,248,247,194, 93,225,184,216, 17, 32, 92,
+ 51, 61,246,182,121, 16,132,161,187,147,183, 78,241, 53,131,253, 7,207,229,136, 25, 95, 16,187, 9,194,250, 4,124,165,102, 81,
+215,136,225, 68, 15,115,196, 16,192, 88,121, 74, 48,172,241, 3,161, 9,232,122,111,153, 31,202,129, 63, 31, 42, 9,228,110, 64,
+ 78, 58,104,200, 42,104, 75, 40,240, 51,214,250,125,168, 64,177, 98,178, 44,107, 2, 82,237,246,131, 69, 94, 60,252,172,207,160,
+241,125, 1, 20,196, 68,161,178, 86,170, 51,173,205, 78, 54, 88,205, 58,205,204, 20,236, 93,154,221, 91,152,141,211, 85,240, 53,
+119,214, 64,232, 69, 32,120, 46,102, 83,111, 99, 71,141,112, 75, 64,178, 67, 35,222,186, 27, 69, 83,145, 7,250,152,153,254,216,
+156,219,196,136, 12, 36, 88,184,170,158, 17,144,236,185, 33,184,227,239, 44,171,154, 81, 3,159, 65,110, 24,131, 5, 3, 74,217,
+100, 82,181,143, 48,248,185, 14, 96, 12,193, 63, 36, 38,129, 82,105,137,162, 37,103,176,130,173, 67,114,227, 7,125,112,127, 11,
+110,128,198,156,168, 73, 45,130,148,231, 6, 0, 52,160, 85,105, 48, 43,242,150,188, 61,189, 37,218,123,186,116, 65,159,212,148,
+247,230, 26, 80,177,193, 34,215,183, 14,244, 74, 32,143,137, 74,175, 52, 80,116, 50, 42,119, 1,127,210,209,131,227,209,206,170,
+ 12,134,125,162,200,241,239,231, 87,119,100, 90, 0, 92,115,117,115, 47, 95,188,216,149,231,251, 27,108, 11, 66,151, 92, 28, 57,
+125,161, 85, 18, 2, 14, 14, 54,180,109, 23,250,172,175,111,239,153, 12,124,184,154,242, 30,127,243,234,212,128,115,206,160,152,
+207,204, 5, 14, 73, 7, 85,232, 4,247,144, 59,152,200, 25,192, 81,236, 58,222, 70,217,163,138, 86,106, 98, 68, 20, 17, 98, 34,
+103, 45,120,160,207,161, 80,136,217,254,146,170,106, 9,187, 44, 73,233, 35, 58, 51,206,226,186,195, 94,238, 68, 22,108,240,140,
+ 80,249,227,105, 15,134, 61, 38, 79,211,123, 83, 81,180, 64,100,135, 50,168,127,149, 43, 52,226, 72, 0,152,142,142, 93,101,201,
+209, 83,225,154, 5, 92,227,245,131,162, 37,246, 26, 80,244,116, 59, 91, 24, 71, 31,104,107,116,234,128,139, 48,127,235,210,157,
+252, 12,231, 1, 23, 43,204,202,191, 63, 28,177, 42, 2, 64, 10,106,140,144, 28,221, 44, 77,167, 98,230,160, 35, 84, 94, 61,208,
+ 89, 11,211,218,168, 75,211, 45,191, 27,221,113,239, 21, 14,210, 69, 85, 31,213, 41, 15,217, 3,173,254,158, 61,121, 42,111,223,
+189,166,182, 66,193, 0, 60,149, 94,110,118,169,232,190,128,163, 28, 76,132,112,141, 25,217, 43,214,187, 0,131,160,128, 30, 83,
+ 21,132,186, 44, 97,175,124,172, 89,185,105, 72, 26, 39,238,197, 81,105,213,190,203,181,135,160,105,186,236, 41, 65,198,159, 63,
+123, 42, 63, 30,158,185,244, 41, 76, 63,186,146,107,178,137,164, 11,107,131,163,202, 52,118,154,163, 57,139,161,144,187,212,251,
+219, 28, 14,228,201,246,134,254,251, 88,206,244,253,224, 26, 64, 69,196,126, 93,148,169, 6,230, 75,153, 78,239, 13, 8, 91, 27,
+ 29,183, 11,108, 7, 76,112,162, 22, 71,174,215, 26,212,137,241,209, 51, 12,162, 45, 24, 27,244,245,221,124,251,195, 75,189,159,
+ 57, 43,102,204,231,145, 44,129,155, 13,180, 6,132,119,240,236,127,120,127, 42,127,120,117,232,254, 28,149, 87,170, 21,247, 11,
+ 71,169, 20, 43, 51,160, 29,146, 15,128, 73, 89,248, 85,236, 27,154,180,117, 17,170,250,140,221,131, 71,187,219,188,111, 36,170,
+ 16,186,194,189,254,227,183,167,242,159,255,225, 83,249,215, 31, 79,228,205,201, 72,206,175, 39,250,129, 93,158, 15,216,115,232,
+ 74,215,148, 93,134, 67, 33,180,236,239, 57, 46,128, 32, 15, 92,219,238, 22,153,236,239,180, 25,172,191,250,108, 95,254, 22,193,
+ 84,131,248, 63,254,203,119,242, 70,131,125, 53,183,132, 23, 29, 53, 36,194, 56, 75, 32,206, 67,199, 72,125, 79,127,255,249, 38,
+ 43,243, 87,151, 83,185,173,108, 63,161, 77, 31, 80,239,121,148,186, 19,159,190,151,235, 91, 77,142, 86, 26,209, 54, 2,147, 99,
+123,246, 0, 33, 34,153, 1,160,155,241, 82,227,225,217,249,133,225,164,130,246, 56, 15,231,170,126, 56, 24,163,143, 90,195,174,
+108, 19,130,146, 29,206,241, 67,117, 27, 63,180,214, 66, 48, 11,190,231,212, 42,119,224, 23,126, 55,245,166,189, 77, 86,122, 43,
+156, 21,185, 75,199, 6,165,161,202, 13, 7,240, 50, 24, 76,196, 4, 74,130, 10, 92,246,209,124, 57,240,190,131, 38,123, 80,148,
+ 99,171,127, 97,217, 76,152, 77, 91,112,170,233, 60, 82,123, 21, 16,125,100,192, 18, 0,109, 81, 92, 55, 85,125, 72,104,194,223,
+108, 87,135, 96, 17,168,101,206,163,181,196,160,106,108, 78,115,167, 48,196,141,232,137,115,111,107,105,208,221,101,211,162, 54,
+ 87,183,194,171,149, 9,231, 43, 73,211,141, 64,171, 21, 23,183,168, 23,110, 18, 99,237,119, 28,172, 31,107,213, 71,141,159,178,
+153, 94, 68, 46, 68, 81,123,101,141, 31, 6,127, 58,114,147,234,194,187, 40, 13,255,188, 44,254, 66, 99, 59, 0, 4, 43,239,149,
+187,126,160,148,249,162, 1, 2,154,134,190,225, 18, 72, 73,115, 13,253,210,129,129,102,202,243,240, 12,108,189, 85, 77, 82, 21,
+ 40,103,248, 63, 28, 30, 97,100,144,186, 19, 94,176,180,148,232, 33,121, 12,129, 62,246,107,144,143,196,139, 2, 79,190,116, 33,
+ 7, 50, 53,138,188,145,155,157,235,245,143,116,195, 63,217, 89,145,193, 78, 87,222,159, 89,235, 17, 89,111, 71,175, 19,238, 79,
+109, 71,219,226,251, 17,172,247, 33,118, 1,208,152, 30, 68,143,119,215,137, 54,141,226,196, 19,175, 74,214,215,135, 4,149,193,
+243,121,161, 7, 93,162,135,216,218,154, 86, 65,173,158, 86, 25,247,114,161,149, 0,144,230,224,250,190,190,184,105,192,149,152,
+167, 17,171, 82, 5,148,107,101,109, 82, 87,217, 43,104, 52, 95,123,119,202,158, 19,174,135,135,149,247,119,130,209, 18, 16,219,
+243,133,127,111, 98,233, 85,234,248, 4,128, 87, 31,164,141,141,165, 32, 28,153, 37,244,125, 0, 29,178,163, 7,121, 59,169, 56,
+ 94,232, 67,108, 71, 12,136,135, 42, 3,215, 65,150, 11,128, 86,179,185,131,155, 76,247,129, 8, 93,253, 58,102,236, 8,142, 52,
+ 64, 2,130,183,109, 70, 41,119,179, 9,159,253,124, 97, 76, 4,122,143,187, 75, 91, 73, 28, 69,206,132,157,186, 7, 1, 71,225,
+ 65,140,234, 92,208, 49,208,253,128,170,133,212,198,192, 97,240,185, 59, 18,199,210,253, 14, 30,192,151,194, 14, 14, 90,238,223,
+ 30,149,242,211,253,182,188, 60,157,176,194,134, 82,220,140, 52,212, 54,217, 34,248,190, 25, 10, 16,206,213,219,174,147, 95,154,
+169, 78,110, 18, 80, 45,111,143,223, 79, 64,197,211,243, 68,147,180,110,191, 47, 63,255,233, 87,114,120,244,206, 70, 65,100,133,
+ 8,157,218,102,121, 76, 42, 45,175, 7,103, 86, 36,126, 6, 90,226, 11,230,130, 21, 61,102,202,100,231,152, 37,246, 72,137,131,
+154, 88,228,194, 93,208,100,191,209, 74, 12, 63, 3, 39,175,151,111,143,101,216,127,161,251, 37,162, 40,213,227,189, 13, 57, 60,
+191,177,159, 75, 76,164, 11,235,164,246, 46, 27,192,208,185,143,239, 58, 45,151, 68,246, 32,177, 64, 32, 5, 37,112, 94,184,225,
+146,217,203, 46,139,148, 10,125,195,118, 36,235, 90,173, 15,122, 25,117, 19,200, 56,209,213,177,181,106,116, 60,188, 79,124, 13,
+ 64, 61,188,127, 40,166, 33, 1,219,219,212,228,224,203,231, 4, 87, 34, 25, 66,139, 31,230, 47, 72,200,164, 50,117,204,247,151,
+ 55, 52, 97, 49,231, 75,171,244,113, 38,101, 73,244,224, 52, 23,151, 68,166, 7,154,109, 66,236, 76,237,172, 9,216,209, 36, 4,
+175, 37, 73, 75,159, 5, 82,217,158,244,182,215,100,103,173, 43,143,119,250,250,238,204,157,241,183, 47, 79,229,255,252,221,177,
+244, 50,195, 27,128,171,254,227,201,173,157, 65,144,192,206, 97, 95,123, 37,173,238, 58,229,148,251,113, 65, 28, 1, 24, 2,219,
+107,171,242,225,252, 90,214,135, 59,242,249,147, 85,121,125, 50,215,223,175,235,101,181, 45, 95,125,250,132,207,242,119,223, 31,
+178, 74,223, 24,152,202, 38, 18,108,140, 19,160, 50, 7, 90,222,165, 62,151,207, 14, 86,228,215,175,175, 1,142,231,108,125, 9,
+ 75,215,110,198,206, 75,143,200,246, 25,227, 27,192,142, 89,226,157, 98, 98,124,240,220,211, 70,136, 13,186,240,247,250,220, 95,
+ 77,223,106,114,185,203,255,102, 80,143,154,202, 84, 55,121,244, 32,125, 42, 78, 31,170, 93, 48,196,164, 71,235, 38,112, 87, 94,
+185, 62,112, 47,173, 66,140, 35,115, 25, 10,134, 13, 20, 1, 41,139,230,160,109, 92,192,106,227, 75, 70, 31, 5,163,196,147,133,
+ 58,182, 15,137, 60, 80, 62, 80,168, 98, 63,252, 31, 68,108,236,107,166,245, 91,133, 74, 51, 4, 1, 8,102,204, 12, 4, 99,162,
+ 36,137,207,174,115,167, 50,101,244,120, 15,173,238, 16,212, 57,142,168,165, 81,199,171, 67,245, 43,150,148,224,144,167, 59, 79,
+167,211,152,152,240, 62,113, 13,121,213,108, 22,180,224,172,178, 40,216,110,108,121, 54,102,210,159, 41, 1,123,105,112,189,115,
+ 61,125,203,186, 82,191,223, 7,174,118,211, 18,103, 43,191,114,225, 9,235, 20,196, 31,217,154, 6,241,138,186, 52,100, 58, 99,
+173,131,213,226,244, 65, 52, 70, 92,130, 53, 36, 67,145, 39, 36,214,166,139,220,118, 54,117,176, 96,217,152,165,112, 30, 42, 15,
+129, 57,241,251, 14,129,124,233,210,143,174,226,218, 24,120, 84,101,244,145, 84,169,251,174,199,166, 42, 88,125, 20,220, 9, 84,
+252,200,103, 61,106,106,205, 70,224,176,233,200, 68, 62,198, 48, 97, 28,115,146, 35,114,214,141,128, 2, 64,174, 73, 36, 0,208,
+ 3,246,131, 72,230, 22,173, 73, 47,110,238,228,237,162, 36,152,197, 93, 10,152,132, 34,208,162,189,149, 59, 74, 31,213,197,120,
+ 97,250,223,152, 47,255,128,131, 0, 99,147,210, 68, 98,106,177, 14, 84, 64,232,194,234,175, 36, 55,124, 65, 74,205,140,154,205,
+ 21,231,110,148, 87,110,199,158, 84, 25, 26,191,114,199, 40,171,214,224, 53,189,244,123,181,196,140,220,245,202,148, 26, 43,126,
+ 31,238,177,195,175, 83, 62,179,101, 89, 60,164, 61, 97, 25,139, 96, 79, 71, 65,253,108,162,224,201, 88,136, 88, 57,182,124,180,
+133,123, 65, 37,138, 22,231,197, 13,132,102, 42,182,120,241,140, 46,175,167, 90,137,218, 44, 50,118,111, 7,250,183,107, 80,199,
+125, 66,114, 20,149, 61,237,106, 89, 45,164,102, 91,171,215,120, 77,227,142, 17, 21,219,210,212,116, 30,152, 12,187,149, 37,233,
+ 58,189,129,190,167,194,218,204,101,174,251,180,118, 73,228,216,185,199,165,107, 24, 72,163,102, 25, 18, 2, 36,183, 72, 8, 90,
+156,173,154, 79,121,213, 8, 86, 89,151,206,164, 77,109,172, 7,193,146,227,219, 66,254,251, 47, 87,137, 50, 70, 5, 5,212,251,
+213,120,206, 67,188,156, 46, 40, 51, 10,207,241,138,180, 74, 84,160, 37, 57,196,156, 42,210,203,123, 41,237,110,135,138,109,232,
+112, 64,159,101, 52, 30,177, 13, 63,213, 3,255,139,167,219,242,237,155, 11,158,105,248,153,235,201,130, 84, 56,160,207, 23,222,
+125,136, 92, 89, 51,118,122, 89, 81, 58,229, 53, 50,206,184,177, 93, 18,158,224,156,185,203,194, 37,134, 35, 34,156, 99,120, 35,
+232, 59, 7,242,252,120, 60,225, 33, 14,186, 46,186, 65, 56,159,119,182,134,242,217,147, 77,121,245,193,208,240,101,108, 94,237,
+192, 10, 64,162,154, 73, 84,100,236, 34,240,192, 19,247, 48,199,249, 96, 5, 67, 37, 27,240, 16,119, 59,220, 41,174, 91, 19,158,
+167, 91,187,242, 72,127,119,192, 33, 5,100, 58,188, 34,118,215,183,229,213,201, 21,169,133,171,253, 1, 55, 40, 52, 30,182,215,
+ 18, 57,189,157,145,209,116,240,228,153,236,227,158,139, 5,247, 22, 64,101, 96,154,176,107,167,239,232,153, 38,185, 71,231, 87,
+114,118,117,205, 46,128, 81,230, 44, 33, 33, 69, 18, 90, 8, 16, 57,202, 98,182,174,103,185, 1,153,177,198,159,237,175, 73,187,
+211,230,125,130, 17,112, 61, 46,100,115,181,101,123,244,237,133,188, 62,186,145, 51,221,227,139,249, 29,223, 3,252, 14, 48, 63,
+ 31, 3,132, 61, 89, 18, 32, 26,187,191,199,250,160, 37,103,108,151, 87,210, 7,181, 17, 82,183,167,135,186, 22, 18,253,157, 43,
+154,228, 14,164,219, 45,244,123, 52,105, 47,175,228, 39, 79,106,249,243,187, 74, 94,236, 26,163,100,127,123,139,156,250,124,113,
+198,181, 8,167,195, 39,155, 93,254,126,186,222,233, 37,119, 6, 3,121,250,120, 85,254,147, 6,247,181,213, 46,247,213, 59, 45,
+ 40,222,158,142, 40, 58, 5, 44, 91,135,250, 26, 88,243, 0,155,186,126,133,152,192, 80,143,244,234, 9, 13,165,246,119,182,117,
+221,246,153, 8, 38,206, 20,194,121,147, 50, 96,250, 60, 52, 28,150,117, 29, 53, 2, 33, 65, 24,132, 45, 71,182,160, 10,210,107,
+ 2,223,155, 90,205, 69,228,136,231,168, 49, 95,168, 99,147, 69,101,123, 29, 1,169,140, 73,246,111,212,233, 36,110, 42,124,114,
+182,131, 71,123, 29, 53,149,109, 8, 0, 1, 84, 99, 49, 45,242,121,121,222, 24,112, 44,242,162, 57, 76, 17, 88,104, 24,146,154,
+ 69, 38,230,201,227,201,157,183,141, 35,159, 49,151,110,229,186,116,176, 78, 64,163,103,110,206, 82,154, 8, 68, 18,187, 38,183,
+ 85, 6, 65,212, 37,224, 8, 82,231,144,227, 16,104,197, 15, 26,243,193,169, 14,135, 81, 75, 95, 80,226, 32, 51, 86,213,112, 74,
+147, 48,191,143,154,251,105,132, 34,236,201, 72,220,202,152, 8,192,167, 59, 73,147,191,176,156,125,144,234, 53,218, 89, 81,154,
+160, 77, 67, 21,243, 54,124, 48,141,249, 88,132, 34, 10, 13,248, 48, 66, 73, 31,232, 96, 54,146, 48,244,113, 89, 60,184,155,133,
+145, 65, 0,194,133,113, 72,112,186, 99, 85,204, 4, 47,109, 50,235,134, 38,208,232,129,153, 0, 78,210,110, 53, 96, 68,235, 2,
+ 89, 7, 34,140, 92, 2,138, 61, 24,244, 4,109,130, 40,204, 23,156, 62, 24,127, 20,248, 99,247, 37,160,122, 29,212,198, 96,187,
+154,166, 13, 35,162,114, 9, 93, 42,197, 97, 78, 89,216,154,154, 37, 70,253, 57,190,157,155, 40,146, 68, 13,151,221, 52,175, 77,
+ 94,179, 69,213,175,204, 13, 21,150, 54, 6,137,205,168, 39, 40,239, 5, 69,186, 96,149, 26, 57,120,174,114,133, 67,218,236, 66,
+220, 98,186,224,122, 0, 39,144,137, 45, 48, 11,149, 41,173, 37,137,189, 29, 4,157,192, 58,105,123, 53, 14,109, 2,218, 69,138,
+233,177, 63,222, 89, 99,181,147, 18,155, 96,206, 80,179,185,117,112,192, 71,103,178, 0, 33, 21,206,234,204,173, 14, 21,233,164,
+101, 18,203,152,163, 47,151, 54,218, 24,235, 51,192, 51,122,178,187, 97,239, 67, 19, 93, 92,195,217,245, 45, 15, 24, 28,168,221,
+174,177, 34,224,155, 14,181,171, 46,187, 67, 86,177,165,250,114, 22,154, 4,245,233,147, 91,201, 68, 3, 78, 62,159, 51,144,192,
+225, 14,201,164,120,133, 10, 29, 8,142, 76, 82, 79, 86,216,114,207,173, 10,115,115,159,197,178,114,235,217,164,209,161, 8,103,
+ 81, 85, 37,134,232,174,141,182, 70,192,102, 29,125,132,211,137,136,166, 79, 83, 19,202,193,191,119, 49,106,210, 36,232,110, 25,
+203, 23,122,160,254,250,135, 43,217, 92,233,176,221,138,179, 99, 78,220,131, 41,245,205,150,250, 94,193, 45,110,119,137, 49, 72,
+178,146,140,156,149, 97,159, 35,136,110,183,205,206, 70, 39, 3,181, 46,151,147,211, 51,206,175,163,214,134,126,254, 25,189,189,
+ 97,254,178,191, 49,208,223, 11, 65, 29, 3,193, 5, 39, 64,234,226, 39,137,119, 96, 32, 74, 21,188,228,173, 99,199,113, 83,110,
+ 32,101,218, 87, 47,157, 99,131,132, 63,109,203,249,104, 44,255,246,242, 61,117,214,193,175,191,161,169, 74,205,247, 5,252,196,
+179, 71, 59,114,121, 11, 27,210,169,143,161, 34, 79,206,151, 60, 71,122, 89,151,247,140,253,179, 62,236, 17,168,217,139, 77,114,
+ 21,237,114,128, 70, 23,190,254,104, 9,171, 63,255,254,114, 36, 7,235,125, 6,114, 92,215, 4,226, 44,209, 76,158,110, 15,169,
+ 62,247,201,193,150,124,184,184,145, 59, 93,127,144,130, 61,187,158,200,222,122,143,227,142, 83,173, 90,223,157, 93,201,232,230,
+156,179,148,255,252, 63,255, 79,178,178,210,149,187,241, 13, 71, 39,131,142,198, 9, 77, 78,126,242,124,151, 63,119, 51,158,208,
+145,112,111,189, 75,249, 99, 3, 0, 11, 65,109,155, 90,253, 2,100,120,126,103,192, 54,182,162,225, 46, 26,215, 12,116,227, 73,
+205,107, 63, 61,159, 49,113,154,221,223,107,110,221,163,134,251,155, 15, 31, 8,254,189,215,119,243,203, 47, 14,168, 13,127,120,
+ 57, 97,144, 39, 59, 56,174,216, 77,193, 61,110, 15, 53,209,173, 22,250,174, 55,201, 32, 65, 33,245,120,111, 71,142, 47, 46,201,
+104, 64, 18,249,119, 63,251, 70, 62, 64, 18,182, 85,105,144,111,105,178,152,112, 54,254,245,167,143,229,115,173,196,255,237,229,
+ 9, 29, 24,209, 33,160, 62, 11,168,151,121, 45,223,255,120, 46,135, 23, 19, 77, 14,103,114,120,125, 47, 59,186, 78,166, 75, 19,
+ 4,219, 95,107,203,209,104,201,196,153, 14,156,238,232, 25,180, 53, 88, 84,210,177,176, 36,182,228, 94,239,111, 99,117, 77,158,
+ 30,236, 49,193, 2,118,128,198, 47,177, 7, 70, 30, 40, 12,170, 15,138, 94,129,198, 20,230,207,102,202,144,122, 33,111,129, 2,
+ 8, 97,234,248,178, 58, 50,238,106,226,194, 33, 56, 80, 23,148,129, 76,154,196,192, 54, 93,225,135,225, 3, 93,206, 12, 30, 82,
+190,160,160, 45, 31, 52,219,165,126,240, 80,110,145,162, 85, 55, 96,188,202, 43,195, 48,235, 95, 58,129, 31, 73, 65,191,223,103,
+219, 46,184,232, 36,222,170,251, 72,180,222, 66,168,203,209,214,174,215, 27, 0,115,165,107, 86,219,140,188,106,146,158, 7,110,
+247, 67, 48,180,118,122,212,124,157,223,155,198,206,235,172, 26,241,152, 86,154,121, 98,240, 0,112, 51,111, 95, 11, 90,168,188,
+192,193,141,168,199,108, 63,183,152, 46, 31, 42,105,231,116, 7, 5,184,210,179,234, 80,169,164, 31,185,229, 89, 64,126, 64,251,
+ 55,127,187,104, 62, 2,138, 1,202,236, 64,161,114,155,187, 35,209,166,213, 63,165,116,237,118, 19, 0,170, 62, 26, 9, 72, 3,
+ 12, 76,146, 32,136, 83, 55,115, 64,241,119, 24,244, 0,106,247,251, 14, 0,190,196, 93,151,240,207,132, 22,143,201, 71, 50,178,
+246, 23,178,211, 40, 10, 10,135,113, 67,113, 91, 16,244, 85, 52, 12,133,208, 13,169,156, 59,159,250,179,170,235,135, 68, 38,118,
+ 21,186,212, 1,135,219, 43,109,174,141, 52, 54,121, 71,113,108, 8, 49, 14,133,143, 26, 98,163,210, 65, 60,100,161,149,250, 66,
+ 15,250, 74, 30,172, 63, 17, 40,241, 44,144, 65,163,186, 26,246, 58,205,245, 32,216,193, 21, 11,150,152,121,106, 21, 78,218, 51,
+153, 74, 84,184, 61,180,247,105, 57,107, 93,163,216,125,198,103,145,173, 19, 0,183, 34, 10, 78, 44,153, 36, 23,156, 39,182,244,
+176,203, 53,179,191, 98,176, 14, 65,175, 77,249,226,152, 65,140,168,227, 52,166,176,210,130,166, 61,198, 72, 0,226, 30, 45,248,
+ 78,203,120,238,157,142,183,153,171,130,243, 75,200,153, 66,221,107,233,170,128,137, 4,127,132, 74, 43,254, 84,238,139,220, 81,
+219, 57,219,145, 64, 35,247,244,122,174, 23, 51, 77, 90,244,103,199, 29, 23,166,202,249,103,250,191, 90, 69,101,141, 67, 25, 58,
+ 64, 85,105,243, 27,178, 26, 2,219, 6,107, 48,203,140,113, 26,155, 84,104,171, 72,154,238,147,177, 30, 35, 7,192, 6,207,136,
+184,209, 80, 8, 52, 75, 36, 53,248,207, 97,217, 39, 98, 24,201, 2,102,216,134, 21, 18,249,213,183, 39,242,191,252,253, 99,121,
+167, 1, 7, 56, 10, 72, 2,227,175,141,245, 21,233,106,197, 3,144, 35, 2,197,198,218,128, 2, 31, 16,170,129, 95, 58,246, 9,
+232,100, 64,155,211,178, 20,123, 82,223,217,134, 38, 6,151,247, 21,207,190,189,253, 39,242,230,240,216,198, 76,250, 72,129,124,
+ 70, 81,161,217, 1, 19,251, 5, 53,215, 77,188,138,163,205,196, 84, 1,115, 90, 0, 11,241, 24,211, 25, 18, 82,147, 88, 14, 93,
+201,152,231,114, 68, 85,188,131,173, 53,189,166, 11,153,220,223,177, 75, 8,112, 29,152, 7,168,124,209,226,133, 2, 25,214,193,
+254,246, 58,219,221,212, 33,240,209, 16,174, 25,247,155, 87, 54, 87,103,119,173,138,217,101, 65,144,194,117, 93, 79,230,242,205,
+139, 3,178,140,222, 95, 0, 47, 98,222, 8,240, 7,192,247,173, 96,100, 80, 39, 92,199, 72, 72, 22,148,229,157, 83,127, 0, 2,
+ 74,243,209,189,158,121, 29,118,165, 32, 5, 11, 43, 86, 48, 36, 94,190,122, 43,197, 92, 3,253,222, 99,173,156, 47,228,211,206,
+ 39, 18,119,183,228,191,252,183,255, 75,247,212,152, 52, 55,210,240,208,205,210,228,234,111,191,120,172, 63,127,107,166, 52,240,
+ 71,159,218, 25,142, 17,208,194,129,167,236, 24,196,134, 67,129,250, 46,246, 53, 70, 79, 0,139,129, 6, 8,214, 10,246,233,215,
+ 95,252, 84,159,233,140,221, 13, 40, 49,118,178,154, 70, 68, 95, 62, 90,147,223,191,186, 32,197,237, 96,189, 67,209, 37,232, 21,
+240,204,213,107,249,112,189,212,231, 49,146,245,126, 75,159,115, 44,111,143,144,176,117, 32, 25, 35,109, 93,150, 71,167, 39,242,
+221, 52,215,107,221,209,235, 25,201,105,213,149, 71, 91, 61,226,101,186,173, 14, 19,172, 87,199,215,178,187,214,161,165,241,249,
+248,146,192,214,181, 46, 70, 50,185, 60,223, 91,145,127,250,215,247,242,254,252,142,221, 25,176, 2,206,224, 69,144,232,254,174,
+139,102,244, 73,121, 97, 8, 46,109,174,203,230,218, 26, 99,234, 68, 19,152,142,254,115,127,107,139,239, 18,255,189, 44,172,120,
+ 70, 1,146, 46, 92,155,155,116, 53,183,176, 12, 62,211, 1, 94, 31, 90,173, 70, 12, 54, 23,173,212,157,150, 66,208,106, 73, 64,
+160, 90, 37,155, 23, 15,173,221,194,165,103, 35,135,117, 89,123,187,126,176,221, 68,240,135,243, 14, 42,217, 78,183,153,165,133,
+182, 58,109, 18, 63,106,169,219, 56, 32,120, 4, 71, 13, 85, 13,115, 41, 30,168, 64,193,151,105,227,220, 21,180,236,107,121, 56,
+224, 3, 32, 48, 74,196, 3,151,205, 50,141,226,101, 34, 8,102, 77, 88,122,149,254,160,132, 38,101,160,113, 21, 86,125,122, 43,
+184, 44,130,153, 77,237,130, 50, 6,126,139,189,162, 6,159,152,103,168,207,177, 43, 87,122, 50,234, 77,212, 4,192,202, 21,149,
+196,199, 30,180,114,141, 12,193, 31,178,182,248,227, 46, 71, 18, 55,250,232,129,219, 78,116,181,119, 26,154,228, 67, 76,108,164,
+145, 93, 23,167,211,132,246,116, 97,154,227, 89,150, 52,137, 0,178, 67,208,149,168,190, 86,155,228, 33,178,249,224,131,110,215,
+ 45,141, 9, 80,234,188,210,134, 21,209,216,102,214,141, 89, 77,225,220, 75, 19,192,137, 57,147, 69,183, 8, 7,167,205,137,173,
+ 74, 39,104, 42,149, 70, 93,206,204, 93,114, 74, 82, 26,151,217,170,244,229,194, 84,205,146, 40,114, 42,101, 97,128,163, 58,106,
+104, 78,102,255,155, 51,201, 65,230, 15,250,208,152,130, 30,246,120,250,157,132,179, 57, 60,231,101,102,130, 63,145,163,175,201,
+ 49,206, 32,221, 9,233,238, 22,131, 41,190,150,145, 74,214,225,218, 65,139,112,221,185,219,184, 6, 28, 62, 97, 46, 28, 92,253,
+ 0,144, 49, 0,163,217, 76,222,207, 77,100, 9,213, 46,184,234,232,226, 68,174,122,136,119,195,229,229, 20,175, 96,131, 89,148,
+ 75,182,130,209, 26,165,209, 13,245,225,225,154,150,176,213,139,235,194,254, 68,135,234,102,188, 32, 2, 28,127,158,248, 53,209,
+207, 89,131, 86,233,215,128,165,103,250, 17, 57,131,208,176, 59, 32,248, 20,193, 16, 72, 91,172, 12, 80,126,176,150,169,246, 22,
+197,142,117, 48, 37,178,251,104, 42,119, 19, 61,128,209, 70,174,214, 36,105, 25,133,180,211, 25, 74,135,104,231,152, 82,176,244,
+185,199,122, 6, 7, 25, 51, 85, 49,217, 81, 22, 12,149,225,108,210,204,186, 62, 75,247, 75,192,222,166,148,105,150, 52, 6, 74,
+ 12,116,110,227, 74, 91, 89,215, 39,135, 76, 44,186, 40, 29, 82, 94, 11, 38,247,139,165,209,101,241, 79,180,170,207, 38, 34, 23,
+163,185,124,241,104, 67,126,163,149,148,237,107,219, 43,151, 26,132,240,220,224,154, 86,148, 35, 89, 91,228,156, 97,210,152,102,
+ 81,203,217,249, 53,147,186,210, 29,195,194,232, 11,124,114,160,149,183, 52, 49,216,214, 67,246,195,225, 33,207, 4,156, 89,104,
+139,223,145, 53,145, 50,129,194, 45,244,176, 30,124, 60,105,123, 59, 38,130, 28,154,232,216, 7, 65, 6,151,242,214,185,173, 67,
+128, 28, 77,122,214,188,238,171,187,137,108,109,108,217,125,105, 0, 57,190, 24,105, 64,209,196,164,147,114,189,108,109,172,104,
+117, 58,145,119,199, 87,134,173,192,248,160, 50,183, 54, 36,116,139,218,228,165, 17, 8,104, 92,165,207, 24,227, 20,156,223, 48,
+ 3, 2,118,100,140,185,174,123,141, 15,178, 54,177, 1,183,148, 31,110,243,119, 80,248, 74,175,233,228,242, 70,206, 95,159,202,
+ 47,191,122,174, 1,114, 32,135, 87,115, 58,254,157,107,112,131, 16, 11,146,245,207,159, 61,150, 97, 7,218,249,171,242,250,253,
+137,188,213,228,231,102,116, 45, 99,173,222, 35,199, 90, 5, 77, 16, 36,140,191,250,246, 71,106, 45, 80,155,162,122,112,111, 11,
+198, 97, 38,253,237, 44, 35,158, 53, 17,217, 34,120,158,243,233, 84,255, 29, 38, 86, 29,254, 44,216, 1,113,148,201,215,159, 60,
+101,117,110, 85,185,144, 14,182,171,255,125,171,129,249,118, 17,201,181, 38, 68,192,144,108, 15, 82,249,253,137, 86,210,122, 84,
+239,239, 62,147,225,147,117, 89,137,103,242,231,179, 82, 46,199,247,146, 97,196, 84, 68,242,242,221, 7, 2, 19,255,244,238, 86,
+254,195,191,123, 68,214,132,190, 66,242,227,111,199, 90,193,175,172, 73,165, 21,249,100, 97,133,214, 16,231, 75,100,246,199,149,
+190,135,213,213, 46, 43,250, 75,221,163,119, 40, 22,234,132,207,250,226,110,106,254, 15,181,157,155, 97,228,196,249,186,119, 31,
+ 91,100,107,244, 24,175,142,207,207,120,223,144,142,133,196, 47, 70, 98,105,225,182,171,185,103,253,129, 63,205, 10,140, 74,113,
+109,206,208, 76,185,204, 2,108,149,151, 30, 4, 3, 61, 45,242, 96,152, 52,149, 93,104,161,227,119, 39,117,240,124,121,240, 46,
+ 79, 92, 82, 52, 10,150,169, 81,176, 92,141, 26,205,103,163, 49, 21, 86,233,251,124,152,198, 41,224,113,122, 59,187,174,235, 38,
+105, 48,169, 83,184, 82, 57, 58,214,103,182,225,126, 66, 59,217, 92,146,210,166, 26, 92,186,222,122,104, 49, 23,141, 16,198,131,
+249, 71,237, 15, 52, 77,237,192,181, 3, 59,106, 58, 4,145,107,144,211, 90, 53, 10,129,219, 43, 11,215,115, 70, 0,133,224, 74,
+228,106, 89, 56, 28, 89,173, 56, 40, 17,115,246, 78,234, 46,116,149, 37, 11,193, 26, 54,115,181,185,162, 40, 29,140, 88,123, 43,
+220,120,188,117,101,127,179,181,201, 64,148, 58, 88, 44,110,102,210, 46,250,218,120, 88, 7, 92, 66, 28,103, 46,222, 97,243,211,
+ 86, 26,208,245, 54, 67,238,104, 5, 99, 76,132,136,146,158,104, 55,134, 36, 34,242,207, 8,156,244,208,229, 64,181, 21, 64,128,
+181,107,190,227,153,179,162, 22, 3, 4, 54,207, 9,186, 3,168, 92,219,177, 91, 49, 10,181,161,175,110,160,169,156,218,207,229,
+ 46, 32, 36,102, 18, 84,127, 52, 98,160, 94, 62,219, 84, 86,101, 66,158, 85, 28,159,145,151, 38,108,196,132, 42, 10, 84, 70, 59,
+ 8,114,247, 78,239,100, 73,115, 31,248, 51,160,126,235, 70,210, 83, 26,122, 96, 76,183, 42,123,231, 56, 80, 35,183,240,229,168,
+ 69, 43,191, 88,172, 51, 69, 81,152,210, 18, 28, 92, 34, 64, 64,120,247,232,106,165,222,181, 2, 58, 23,130, 46,109, 31,225,100,
+158,128,197, 46,125,135, 42,179,246,160, 3,222,117, 78,224,156,205,121,147,110,203, 90,230,222,237, 2, 16, 20,237,116, 36,208,
+ 56,112,105, 44,164,135,239, 41,230,228,243,188,161,129,118, 59, 38, 86,131, 68, 8,102, 21,101,109,247,219,239,164,222,210,142,
+168,164,183, 6,151,194,210,236,117, 23,236,100, 24,117,138, 2, 43, 14,238,195, 33,223,235,246, 92, 89, 46, 97, 53,132,177,194,
+112,184,198,170,191,173,135, 14, 48, 37, 24,106,148,122,200, 98, 62,140,100, 43,176,100, 80, 61, 51,217,197, 60,119, 41,206,222,
+ 48,108, 66,176, 83,102,242, 28, 4,132,188, 3,132,119, 89,126,212, 53,195,187, 88, 82, 75,187,197,164, 62, 36,127, 6,236, 53,
+161, 19,188,171, 85, 24,222,232,123,253, 48,170,228,211,189,154,207,233,118, 4, 85,180,136,106,124,180,156,189,185,101, 5,143,
+191, 70,195,129,236,110,175, 9, 26, 32,192, 41,204,107,155,225,131, 78, 85,242, 21, 21, 84,154, 67,113,113,119,223,102, 66,186,
+185,190,169, 65,253,152, 18,158,164, 80,106, 32, 91,146, 91,110, 21,177,117,133,132,124,228,176,191,112, 78,213,174,237,223,154,
+ 38,206, 38, 49,148,125, 37,214,162, 79,147,138,180, 86, 4,106,236, 3,208, 44, 49,251, 62,186, 56,212,247,104,109,110, 32,225,
+119,183,182,185,199,209,246,135, 15,248,155,163, 43,238, 19, 22, 55,250, 48,209,174,135,171, 30,133,174, 80, 5, 51,152,218,179,
+157,234, 53,119, 59, 93,182,224, 35,125, 54, 24,177,224,185, 60,217, 30,104, 98,152,104,213,121, 33,143, 54,134, 76,124,232, 84,
+152,216,187,201,157,246,121,126, 61,150,147,155, 25,241, 11, 56,247, 81,149, 66,231, 29, 73, 86,175,187,102, 96,187,110, 34, 31,
+ 46,238,229,250,118, 42, 21, 68,131,162, 82,171,222,148,123, 21,137, 0, 10,134, 89, 89,187, 65, 79,194, 53, 86, 65,113, 47,170,
+ 63, 2, 36, 11,187, 92,153,119,155,128, 25, 49,253,134, 22, 85,230,208,121,109,195, 71, 93,171,114,104, 47,116,187,125, 57, 60,
+187,211,107, 43, 53,233, 2,104,110, 69, 54,134, 25,223,243,151, 79,183,229,191,254,233,131,252,120,124,107, 2, 67,119,115, 26,
+189, 32, 17,129,227,218,213,236,181,100,237,190,180,234,185, 92, 77, 76, 30,248,217,206, 58,113, 28, 72,174, 78,206,207,233,234,
+247,225,250, 64,254,238,203,158,188, 57,190,145, 23, 7,235,178,183,221, 34, 29,239,231,159, 61,145,223,253,240,158,248, 28,184,
+197, 33, 73,154,210, 85,175,144,169,254,190,105, 94,177, 3, 19,105,156,152,150, 9,181,231,147,186, 36, 27,164, 42, 31, 76,191,
+112,136,224, 29,158,156, 95,176, 67,211,110,153,176, 18,236, 90, 87,250,182, 22, 80, 48,128,171, 30, 65, 93,206,120,146, 38,118,
+ 18,140, 66,192, 3, 69,203, 49,115,106, 4, 51, 94, 71, 72, 51,120, 71, 70,239,160, 97, 10, 14, 82,201, 27,221,231,160,224,197,
+128, 30, 89,155,167,153, 25, 59, 8, 47,180, 46,107,167, 25,133,214,124, 77,206,223,162,145, 23,173,252, 48,109,212,193,234, 7,
+ 75, 88, 84, 32,152,219,225,107,144,135, 12, 50,164, 54,127,181, 10, 57,105, 18,148,218, 61,157,243,102,142,108,148,199,186,177,
+225,172,157,127, 86,186, 3, 88, 99,213,217,204, 52,106,231,114,166,110, 52, 99,200, 75,106, 12,187, 60,105,227,197,238,238,105,
+166, 5, 95, 53,243,126, 6,138,162,116,244,171,112,134,139,128,142, 13, 13,158, 44, 42, 96,252, 77,197, 37, 7,219, 81,217,204,
+181,133, 13,193, 94, 55,222,219,161, 69, 19,158,113,145,152,210,151, 85,124,102,153,136, 39,128, 86, 58,145,248, 69,249,128,155,
+240,223,191,204,205,215,183,229,168,106,114,238, 51,195, 14,152,122,152,209,206,208, 73,196, 97, 79,217, 96,253,222, 42,117,250,
+ 32,218,191,238,100, 87, 22,134, 63, 48, 81,159,146, 93,129, 44,141, 92,225,205,146, 46,243, 26,168,217,182, 77,220,114,245,241,
+166, 41,152,129,158,129,235,194, 76, 9,155, 21,182,136,199, 85,193,106,122, 1,233, 73,221,180, 16,189,192,247,226,176, 11,250,
+246,216, 52, 88, 35, 45,247,249, 14,129,128,124, 96,250, 28, 87,114,159,152,133, 99,144,235, 12,216, 7,235,178, 68,141,202, 26,
+ 37, 75, 11,123, 38,129, 51, 13,240,163,141,144, 74,173,102,151, 46,168, 20,214,138,248,122, 77,220, 36,197,102,247,240,147,238,
+ 59, 56, 9, 45,103,180, 95,131, 65, 81, 43,117,101, 66,253,124,236, 63, 36,118, 64, 12, 35,169,163, 33, 14,248,211,147, 5,145,
+244, 28,167, 64, 44,167,159,153,163, 89,100,188,239,153, 62, 35, 84,118,120,254,112,177,218,136, 7, 84,126, 3,178, 24, 14,130,
+ 0, 20, 97, 6,220,201, 10, 86,231,216, 35,155, 88, 91,203,185,117,190, 98,136,234, 88, 2,141,209,195, 0,190, 14,149, 37,136,
+152,181,219,181,250,188,183,109, 90,237, 24, 21, 8,103,232, 86, 69, 33,160,225,160,139, 53, 0,162, 13, 44,156,149, 3,157,190,
+180,121, 49,115,237,146,235, 23,215, 12,245, 56,156, 51,137, 31,208, 0,109,133,209, 24,192,113,226,251, 27,129,208,180, 17,234,
+ 70, 86,153, 34, 85,126, 6, 5,128,102, 96,133,136,143,202, 24,236, 1,142,133,232, 75,102, 9, 12,217, 20,122, 78, 92,143,198,
+ 76, 48,222, 94,204,229,155,231,235,178,185, 58,160,118, 60,110, 18,137, 15, 3, 10, 59, 42, 38, 34,132,164, 11, 92,254,237,141,
+ 20, 74, 6,122,112, 66,221,203,104,168, 81,106, 85, 52,168,127, 61, 56,122,141,238,245,243,251,122,152,111,200,179, 39, 79,228,
+183,127,248, 3,147, 90, 88,153, 66,128,104,225,213,119,226, 12,156,188,176,245, 7, 83, 25, 28,240, 19, 26,121,152,197,115,150,
+218,104,175,250, 8, 56, 92,145,171, 94,104, 80,191, 37,175, 31, 35,149,247, 39,231,178,181,186, 34,207, 30,237,203,205,237, 21,
+ 71, 72, 72,238, 86, 6, 45,206,118, 81,245,125,254,100, 75,254,248,242,144,154, 1,122,234,105,160, 6,237,204,146,227, 69,176,
+195,117,113,172,200, 11, 31,147,223, 93,200,254,214, 6, 41,135,216,139,151,163,137,117, 88,201,142,169, 41, 79,220,131, 38, 65,
+106, 54,204,157, 88,175,109, 92,153,166,185,203, 92, 71,109,211, 2, 0, 90, 27, 9,201,235,195, 11, 38,205,187, 27,171,242,244,
+201, 83,142,107,138,217,141,124,254,104,149,252,236, 1,109,141, 99,118,142, 94,125, 56,147, 15,167,151,220,103,104,225, 99,111,
+226,103,129,180,159,107, 85,187,234,231, 80, 68,131,153,146,116,186,205,181, 30, 13, 92, 56,158,165, 31,121, 70, 11,212,203,155,
+123,121,182,191, 65, 71,181, 31, 62,220, 80, 77,238,126,114,165,251,235,158,103, 31, 52, 11,160,175, 31, 10,196,235,137, 9,101,
+225,108, 89,213, 53,177,177,177, 41,111,222,126,207,206, 31,233,114, 29, 13,222, 39, 23,122, 86,245,228,243,199, 43,212,126,128,
+ 9, 16, 70, 59,207,182, 51,121,119, 58,209,100, 97, 69,175,181, 43, 23,250,140,191,122,113, 32,255,252,199, 31,245,126,198,198,
+ 50,161, 19,100, 42,191,127,125, 37,191,248,108, 93,254,159,223,126,208,234, 61,150, 59,173,216,103,181,233,216, 99,140, 24,233,
+254, 4, 48, 21,197,235, 84,223,247,245,205,200, 70,200,238, 8, 26,209,165,180,205,223, 5, 49, 34,116,189, 16,240, 65,131, 78,
+ 67,240,180,128,217,216,219, 54,155, 39,167, 7,113,193,189,131,185, 71, 64,163,199, 77,221,103,213,164, 68, 15,252,245,208,221,
+157,206,141, 87,139, 3, 14, 63, 97,102, 37, 22,144, 66, 43, 60, 84, 72, 68,215,215,134,171, 14, 29,227,166,237,250,177, 25, 71,
+252, 48, 75, 75,146,170, 1,209,240, 96, 46, 74,111,197,155, 82, 89, 30,236, 56, 37,204, 96,140,219,222, 40,199, 1,236,214,178,
+224, 18, 84,172,194,129, 31,185,153, 13, 14,118,204,117,113, 16, 67,227,215,126,222,187, 12, 28, 31,180,152,113,227, 26,144, 61,
+ 38,206,153,175,220,148, 33,112, 14, 3,168, 7, 7, 28,218,164, 5, 71, 23, 6, 88, 65, 22,191, 54, 52,183,174,220, 85,227,236,
+160,178, 11,225,172,155,170,110, 73,163,139,143,121,125,233, 98, 55, 20,125,161,205,109,139,139, 34,241,185, 36,130, 5,173,109,
+ 83,107,223, 85, 14,126,203,221, 5,139,115,207,133,181,252,150,243,154, 7, 12,252,136,165,178, 76,176,118,128,153,205,103,187,
+246,220, 29, 7,128, 13,141, 57, 20,208,154,144,225,133,131, 17,104, 66, 65, 96,168, 49,114,201,210, 6,225,142,236, 22, 27,105,
+208,181,185, 46,174, 34,163,112, 79,218,116, 79, 98,119, 61,194,156,113, 95, 15, 73,188, 51, 8, 65, 0, 69, 75,101,180,202, 18,
+ 65,104,178,195,113, 43,113, 29,132,144, 52, 26, 56,179, 96, 50, 19,236,126,131,154, 97, 96, 16, 4,140, 68,240, 5, 8, 88,131,
+ 86, 22, 68,141, 98,179,221, 45, 13,145, 94, 37,118,120,145,163, 75,241, 25, 3,233,132,125,210,166,189,170,238,143, 74, 15, 30,
+173, 94,193, 25,134, 88, 30,120,219,112, 6, 3,117, 10,159,133, 86,173, 85,169,169,179, 43,172,117,142,125, 85, 64,239, 59, 50,
+106, 82, 74,190,185, 81, 61, 97, 66, 97,200,239,220,196, 65,144,144, 57,141, 71, 92, 7,222, 44, 37,219,102,102,164, 63,159, 45,
+ 12,204,138,138, 34,243,118, 63,219,168,154, 56, 76,167,137, 85,210,173,132, 54,164,238,157,204, 63,207, 92,249, 12, 73, 64, 90,
+196,166,217, 30, 27, 34, 29,159,215, 78,117, 47,184,204, 39,214,211,128,239,206,168, 77, 45,221,227,152,231, 81,143,162,142,156,
+205, 80,176,117,140,238,197,220,165,160,241, 57, 24,143, 1,181, 13, 31,239, 25, 43, 85,195,155, 88, 7, 79,184,174,197,229,130,
+131,181,111,208, 87, 32, 18,159, 74,129,149, 43, 30,214,141,167, 0, 61,194, 59,157, 70, 91, 33,114,206,243, 4, 21,117,108, 78,
+114,103,119, 37,117,199, 55, 53, 64, 28, 93, 36,108,175, 19,231, 34,134, 77, 64,146,145, 21,176, 2,142,205,195, 66,159, 41, 42,
+ 62,140, 2,232,196, 72,175, 10,215, 96,192,123, 43, 52, 88,246, 68, 46,174,110,101,253,249, 35,121,250,248, 64,126,124,243,150,
+192, 37, 52,136, 17, 96,123,154, 96, 21,142,204,159, 57,131,130,216,137,101,193,245,204,132, 36,243,209, 91, 93, 57,163,166,250,
+ 8, 28,107,214,196, 0, 91,238,239,238,234, 97,127,175,129, 13, 46, 94,183, 12,238,159, 61,217,214,231, 57,145,239, 94,159,201,
+ 79, 63,217,225,250, 66,151,225,103, 63, 17,249,254,221, 49,199, 42, 49, 11, 52, 61,103,122,122,255,247,115,163,123,214,117,147,
+ 40,181,108,105,153,195,157,190,195,115, 13,228, 28,145,192, 2, 86,131, 60,196, 87,144,120,172, 14, 76,197, 19,127,144,212, 86,
+ 48,213,154,116,244,181, 26, 47,103,166,238, 73, 65,174, 50,225, 89, 13, 32, 26,206, 6, 88,186, 30, 94,142,229,229,251, 19,217,
+ 95,164,242,233,243,199,178,243,233, 39,178,191,217,150,186,208,235,169,230,114,121,121, 37,175,143,175,152,128,238,239,110,179,
+ 35,240, 83,173,166, 57, 10, 21,147, 44, 7, 56, 17,230, 58, 0,159, 65,191, 30, 35, 14, 36,218,167,151, 37,101,159, 49,227,135,
+206, 61,206,100, 60,235,155,219,137,222,159,113,219, 87, 86,118,229, 74,147, 59, 96, 31,144, 0,225,236, 66, 59,124,123, 53,145,
+ 75, 13,230, 24, 19,173,245,108,228, 82, 98,127,220,221, 73,212, 26,235,250,235, 72,181,156, 49,168,143, 64,243,211,123,252,234,
+233,129,252,241,205, 7,249,230,197, 19, 57,187, 56,165,202,220,176,187, 37,122,185,242,207,223, 30,202, 47,191,218, 99,247,102,
+ 89,116,228, 23, 95, 61,147,255,242,171,111, 77, 21,143, 82,188,145,156, 95,223,235,191,111, 17, 43, 3,212,254, 96, 89, 49,201,
+131, 83, 95,233, 66, 69,137,251,126, 44, 26, 81,184,154, 10,136,144,240,197,217, 0,111, 19,244,115,202,202, 48, 56, 88, 51,159,
+110,111, 97,173,167,252, 37,160, 94,133, 74, 80, 18,249, 11,111,245,204,209,219, 4,142,161,133,217,232,160,219,188, 24, 6, 28,
+209, 71,128, 40,105,170,164,220, 53,220, 99,111, 77,155, 96, 5,254, 63,117,245, 47, 86, 6,249,178,113, 16, 10,106,107, 15, 51,
+248,160,235,109, 24,234,200,171,167,200,145,209, 1,169,108, 25,176,201, 79,182, 28,209,141,131, 8, 52,155,196,197, 71, 8, 86,
+ 41,171,230,231,217, 38,118,208, 87,202,172,115,201, 22, 46, 15, 91, 71, 63, 47,125,236,144,101,137,115,233,147,166,117,159,250,
+ 33, 88, 16,168,100, 34,251, 12, 40,113,213,180, 0,131,116,110, 48,185, 15, 85, 94,213,104,233,151, 4,184,208,190,207,233, 97,
+ 4,157,197,174, 39,237,207,141,250,191,147, 57, 15,253,110,219,228, 4, 91, 46,242,131, 67, 26,247,137,175,227, 26,103,164, 53,
+ 68, 77, 91,138, 10,112, 64,152,235, 13, 99,230,107,188,207,136,244,135,198,255,125,185,244, 89,186,139,236,232,155,131, 65, 4,
+ 52,188, 81,129, 96, 49, 21,142,188, 12, 86,176,104,195,247,187,165,235,149,187,243,148,183, 73,227,248, 97,206,143,182,239,132,
+ 85,145,241, 82,145,149,147, 58,227, 99, 24,182,146,166, 51, 79,142, 18,163, 25,214, 48,238, 17, 51, 19,234,119, 40,129, 25,249,
+220,252,242,122, 76, 94, 44,238,123,119,107,141, 89,123,225,221,141,196,129,130, 86,117,185, 36,110,149,187,174,186,139,207,184,
+132, 49, 71, 23, 1,232,231, 51,194, 16, 12,130,236,104,220, 88,214, 22, 38, 81,153,165,205,129, 75, 33, 35, 71, 9,167,177,109,
+ 62,104, 77,107,186, 67, 13,110, 4, 35,172,117, 84,133,121, 49,102,160,142, 35,163,192, 81,202, 84,147, 82,136, 84, 44,150, 38,
+191,153,167,137, 95,155, 37, 92, 88,131,150,104,120, 87, 64, 15,101,220, 31, 42, 41, 92, 11,218,163, 76, 50, 29, 17, 24,176,155,
+164,150,149, 57,147, 29,116, 80,170, 32,191,171,223,129,106, 13,179,209, 52,174, 27,243,162,136, 18,183, 25,131,177,209,135,162,
+ 6,152,200,241, 77, 98,123,238,114, 52,101,203, 30,107, 16, 8,239,123, 89, 56, 24,205,130,107, 71, 15,167,182,158, 35, 19, 10,
+ 99, 20, 12,136, 25, 43,224,146, 93, 3, 92, 29,214, 13,101,136, 61, 17, 54, 64,173,129,114, 3,107,162,240, 25,107,176,249,205,
+ 93,188,133,162, 83,113,226, 46,142,214, 50,206,157,195, 31,244,220,137, 18, 79, 44,240,176, 42,106,155,232, 19, 90,226,180,140,
+213,123, 60,186, 25,202,215, 47, 6,220, 99, 88,247, 27,171,109,174, 37, 88,174,226, 61, 99,126, 25,146, 66, 10,160,232,187, 96,
+231,101, 56,228,125,223,142,140, 77,131,251, 64,155,121,103,163, 35,197, 36, 34, 90, 27,231,232,103, 26,220,255,237,207, 63,242,
+220,195,129, 13,237,244,249,210,140,173,208,181, 1, 74, 25, 29, 28,211,226,143,154,238, 91,163,193,128, 46, 25, 76,108,138,224,
+172, 88, 24,213, 83,255, 96,117, 56,208,251, 30,203,185, 6,192, 95,254,236,107,234,134,207,242, 29,218,126,162,203,121,122, 61,
+145, 71,187,107,252,253, 40, 66,126,249,245,115,249,253,183, 63,234,181, 15,220,198,185,144,161, 75,125,227, 8,135,147, 94, 94,
+152, 14,200,189, 6,150,174,159,109,232,206, 65,139, 28,232,248, 79, 31,237,147,162,120, 1,209,160, 90,147,235,126,139, 66, 50,
+152,223,231,238,222,184,156,143,117,189,245, 89,209,210,165, 17,231,118,214,213, 68, 54,231, 58, 5,192, 26,106,137,159, 29,172,
+201, 15,199,183,242,199,239,103,242,236,209,174,110,188,103,178,208,119,243,187,223,252, 87, 61,223, 70,148, 92,229,136, 5,154,
+ 7,186,142,199,119, 83, 82, 79,231,212, 49, 40,201,160,194,251, 4,206, 35,141,221,127, 3,231,114, 93,241,115,210,216, 58,155,
+ 92, 23,104,197, 67,185, 77,147,205,145, 76,101,176,122,224,231,102,194,142, 87,234,166, 57,227,121,193,179, 24,235,248,108, 84,
+104,113, 98,157, 69, 36, 56,211,197,145,108,111,108,144,142,119, 7,109,134,114, 65,170,219, 31,222, 28,233, 62,235,201,135,203,
+ 91,118,119,112, 94,156,220, 76,249,236, 1, 92, 60,187,205,229,197,254,138,198,192, 27,217, 90,217,148,191,255,249,115,249,167,
+ 63,188,211, 4,194,146, 9,124,198,187,139,169, 60,222,234,201,159,222,223,114,236,122,175,215, 1,149,185,170,156,115,204,195,
+ 36,187, 54,172,193,157, 38,114, 16, 19, 98,119, 21, 54,183, 89,206,243, 27,251,220, 40,112, 53, 41,182,156,169, 39,222, 38,103,
+ 21,142, 23, 18, 85,141, 14,119,228,142, 96, 1,108,148,184,122, 88,144, 5, 12,173,244, 80, 57,199,222,130, 14, 85, 56,121,224,
+185,123,125,121,123,155,230, 25, 46,134,130, 0, 65,216,190, 87, 78, 46,148,222,100, 20,117,211,170,183, 54, 27,231,248,206,135,
+ 10,200,244, 0,226,227,156,189,172,124, 35,183,205,172, 3,217,153,102,217,137, 27,101, 76,102,243, 70,174, 51, 76,152,153,105,
+ 70,168, 98,171,166,115, 80, 4,190, 31, 2,177,235,210,195,210, 49,241,170, 18, 73,132, 56,104, 47,119, 58, 86, 64,251, 51, 73,
+161,162,144,105, 20,151, 30, 52,250,208,241, 46,140,210,130, 3,121, 62, 95,186, 8, 68,198,195, 6,135,119, 65, 5,165,148, 7,
+ 43,146,131,118,102,193,138,153,177,216, 12, 12,246,183, 56,180, 57,123,243,249, 43,244,142,225,190,133, 23, 14, 74, 72, 96, 13,
+ 12,252,123, 47, 97,188,224,230, 27, 65, 21, 16, 93, 2, 84, 77, 1, 25,156, 38, 54,191,193,225,120,117, 51,230,215,240,236, 64,
+123,137, 56,179,204,168, 97, 29,148,243, 8,120,171,172,170,192, 6,103,119,129,252,249,210, 16,189,101,222, 36, 48,104,187,178,
+229, 71,106,213,130,153,118,236, 24, 3, 28,220, 56,248,241, 57, 97,188,146,166,118,125, 52, 42,193, 6, 70,144,208,195,247,228,
+226,214,244,241, 61,224, 66,106,118,198, 25,182,190, 23, 61,100,145,120,220,142,151,205,172, 27,135, 2,127, 39, 15,173,154,238,
+ 86,165,171,222,133,121, 98, 86,197,205,232, 69,124, 68,129,123, 98,130,228, 9, 86, 21,214,155, 35,255,115,199,112,224,152,165,
+ 31,179,115,220, 43, 90,222, 86,114, 57, 6, 8, 71,159, 9,172, 73, 23, 5,131, 22,171,139,133,249, 40, 4, 61,248,202,231,101,
+148,148, 45, 2, 69, 48,162, 42, 85, 84,219,236, 18, 51,202, 44, 72,181, 82, 94, 45,162, 96, 74,226,221,151,224,216,135,119,130,
+ 96,143,223, 11, 51,152,249,204,254, 12,215,134,177, 86,187,229,150,159, 18,177, 83,146,210,211,160,101, 65, 29,227,130, 22, 58,
+ 34,166,223, 15, 4,255,210,189,209,115,111, 23,145,190, 23,133,214, 55,232,173, 17,147, 60, 94, 11, 0,131,208,125,143, 51,182,
+ 39, 73, 28,152,207,205, 52,166,212,235,237, 98,190, 94, 53,138,132, 84, 71,203,132,129,214, 90,237, 37,219,239, 28,117, 84,226,
+ 74,143, 1,224,106,193, 21, 29,159,118,214,230, 63,177,175,195, 56,171,246, 36,179,176, 94,191,143, 22, 18, 90, 90, 6, 81, 13,
+130,113, 35,227,185, 3, 29,253,250, 98, 33,127,245, 89,204, 10, 28,136,106,236, 23,172,239,235,234,142,109, 92,164, 73, 24, 97,
+ 44, 32,179, 59,128,118,184,141, 18, 48,166,192, 45, 97, 30,203,247, 84, 71, 78,135, 45,100,109,109,131,123, 26,215,247,197, 39,
+ 47,228,251,215,239,141, 81, 18, 91,119, 11,225,103,198, 10,191,110,146,123, 4,125,112,207, 65, 9,246,129, 16, 27, 39,208,233,
+136,189,179, 88, 2, 95, 3,126, 55,254, 44,170,104,198, 52, 35, 0, 48,146,151, 31, 78, 53,177,104,113,175,237,108,111,203,233,
+217,145, 6,198,165,108,175,229, 90, 81, 78,137,192,127,246,120,151,227,156,243,171,177, 92,141, 81, 0, 85,114,116,117,175,207,
+164,242, 81,159, 21, 59,196,107,100,102,236, 2,241,151, 1,220,193,244,185,192, 12,229,183, 47,223,112,207,236,108,172,145, 83,
+159, 3,244,138,238, 1, 71, 44,186,175,250, 6,124,156, 64, 45,175,219, 49,249, 86, 92, 59,198, 88, 73,212, 8,122,161, 91,131,
+164,231,235, 39, 67,249,254,172,166,136,205,191,253,254, 15, 50, 31, 29,233,235, 65, 18, 35,172,150,137,122, 7,229, 88,207,139,
+223,189, 60,228, 62, 40,157,238,140,115,202, 52, 52,133, 9, 90, 24, 63,146,241,145,233, 57, 15, 15,123,125, 30, 3, 77,104,176,
+116,201,204,138,161, 93,209,225,158,122,188,179, 46, 63,255,116,151,156,119, 8,240,172,116, 0,152, 45,228,199,195, 43, 57,209,
+132, 8, 50,177, 40,126,114, 58,209,197,156,211, 35,161, 74,251,125,254,217,139,157, 29,121,171,207, 15,231, 42,206,234,189,173,
+ 77,198,144, 15,167,231,156,121,255, 70,223,215,179,157,190,140,110,111,229, 40, 41, 8,198,187,214,100,248,249,193, 14,187, 22,
+183,122, 62,159, 76,112, 6,198,114,125,191, 32,122,254,215,127, 62,147, 74,147,106,250,199,243, 28, 45, 26, 21, 76, 90, 68,235,
+123,129, 32, 13,192,158,145,171,116, 70,220,139, 54,182,187,212,243,154,163,113, 61, 43, 96, 15,156, 6,183,179,198, 67,193, 3,
+130, 61, 44, 83,153, 99,224,151,168,225, 3,199,113,220, 4,226, 0,218, 98, 11, 51, 88, 96,122, 75, 61,242,246, 89, 0,103,133,
+ 23,144, 59,165, 45,204, 21,195,161,106, 42,105, 6,192, 11,109, 83, 86, 10,177,233, 69, 86,238, 73, 30,248,230,129, 10, 55, 39,
+253,203, 90, 87, 0,215,228, 14,182, 64, 32,142,189,210,197,127,195,213,135, 51,216,123,171,174,113, 32,209, 74, 86, 3, 3,179,
+ 64, 7, 70, 49,200, 38,214, 74,198,103, 62,218,221, 98,198, 45, 94,161, 6, 16, 21, 22,186,161,181,197,192, 11,174,114, 71, 84,
+172, 3,213, 16, 20,136, 34,102, 22,159, 49,243, 68,144, 67,181,179,185, 62, 52, 33, 27, 87,117,226, 4, 48, 50,137, 75,113, 22,
+ 2,130, 8, 36, 54,151, 75,171,188, 48, 31, 95, 93, 29, 90, 98,130,214,216,120,226, 92,117,104, 42,153, 31, 54,238, 9,128, 54,
+ 75,186,140,222,196, 22,190,155,122,224,154,208, 78,135,105,129, 33,162, 77, 47,250,158, 74, 70, 54, 83, 71, 27, 19,179,197,155,
+209, 61,171, 11,163, 8, 45,104, 63, 90,123, 98,196, 36, 1,155,121, 6,153,213,146,137, 16,231,201, 56, 20,122, 45,107, 83,226,
+ 16, 92, 88, 53,128,224,182,161,155, 13,207, 10,198, 41,104,181,146,163,188, 92, 50,136, 6,229,183, 96, 28,131,247,136, 10, 31,
+223,219,120,227,224, 0,238,162,253,132,108,125, 73,161, 11,106, 93,107, 85,129, 63,195,181, 4, 15,238,194,241, 17, 12,160, 64,
+205, 23,126, 40,235,245,176,211, 48,236,152,116,103,110, 85, 19, 54, 20, 44, 82, 33,206, 2,121, 81, 45, 81,141,181,144,151,158,
+ 8, 10,219,117,164, 36,210, 67, 60,243, 36, 80, 15,126,125,239,243,210, 90,222,104,119,190, 63,187, 53,218, 90,167, 75,140, 3,
+ 1,129, 30,128,136,234,119,124, 3,116,182,215,225, 54,213,141, 41, 89, 59,209,207, 2,127, 58, 14,207, 81,239, 21, 30,205, 27,
+171,125, 86,240,120,102,104, 47,226,231,233, 22,231,186, 10,180, 26,214,103, 5, 28, 12,100,106, 43, 31, 85, 1, 4,135,185, 35,
+ 90,199,248,153,245,181, 46, 52,174, 88, 57, 7, 3,161, 89, 94, 83,125, 14, 7, 52,245,224,227,121, 83, 49,206,137, 34, 47, 56,
+ 98, 0,152, 15,114,180,151,247, 54,147, 39,168,176,211,163,240, 7,174, 11,115,240,233,124,198,207,193,225,109,128, 89,173, 44,
+ 52, 8, 46, 40,237,154, 55, 26,237,216,150,216,111, 49,149,214, 34, 2, 67,107,135,116,134, 89, 63, 71, 54, 11, 75,154, 51,183,
+ 10,230, 22,119,117, 61,124,198,162, 54, 65,161,216,233,142, 38, 65, 93,187, 86,133,153, 30, 49, 8,195, 65, 79, 15,102, 84,179,
+239, 79,111,245, 0,223,144,189,157, 13,226, 18, 80, 21,173,173, 12,100,125,125, 85,147,161, 25,185,197,120,199,196, 16,136,119,
+223,240,126, 53,192,161, 98, 71,151, 1,207,175,160, 35,158, 41,177,245,250,185, 28,106, 80,253,119, 63,253, 82,215,254,154, 6,
+217, 45, 13,178,103, 76,126,104,217, 75, 89,220,146, 73, 31,196,192,177,175,193, 40, 92,208,120,166,114,255,248, 68, 38,112, 47,
+119,255,130,168, 29, 83, 55, 28, 78, 94, 8,230,115,184, 43,234,131, 3,149,169,204,151, 84, 52, 92,230, 17,157,212, 46,110,167,
+ 84, 83, 3, 40,243,242, 42,213,251,105, 17,168,134, 66, 8, 9, 1,198, 85,169, 22, 47, 51,125,206, 49,207, 64,173,126,151,173,
+ 6, 72,139, 74, 15,231, 40, 90,218,229, 80, 63, 67, 3,248,217,245,141,108,234,126, 5,144,116, 52, 53,211, 22,180,144,209,121,
+186,188,185,225,117, 98,252,130, 78, 12,248,230,109,173,202,139,184, 71,209, 29,130,110, 49, 90, 64,229,168, 39, 19,214, 48,170,
+230,227,235, 57,169,164,127,243,147,167,242,226,233, 99,253,224,223,200, 31, 79,167, 76, 36, 80,152, 28, 68, 54,234, 10, 64, 60,
+128, 31, 33,181, 26,187, 37, 48, 52,114, 58,236, 38, 89,231,182, 71, 74, 94,205,241, 19,186, 77,248, 62, 36,201,144,223, 5, 69,
+ 17, 96, 84, 19, 78, 67, 66, 93,107,193, 50,145,211,155,156,251,253,103,159,172,211,102, 21,180,182,246,243, 68,131,241,138, 62,
+219,150,252,111,191,122,163,123, 76,223, 57,129,174,133,169,185,101, 48, 95, 58,149, 36,123,170,159, 85,201,150,174,149,215, 71,
+199, 44,152,112,221,192, 31,100,250,254,158,237,109,145, 34,141,103,133,100,167,136, 82,217,218, 72,228,228,116, 46, 7, 91,171,
+ 60, 19,240,187,113,253, 39,231, 26,140, 95,172,241,243, 47,238,150, 28, 83, 32,121,198,216, 39,176, 18, 82,183, 3,159, 85,118,
+206, 98, 12,105, 35, 96,196,169, 54, 11, 81,140, 69,168,116,168, 63,135,164, 33,109,185, 59, 91,224, 17, 7, 78,121,229,102, 45,
+117,224,141, 59, 82, 61, 84,246,213, 71, 58, 95, 1,157, 26,137, 5,217,216,171,234, 0, 66, 11, 84, 57, 34,212,189,125,242, 96,
+222, 82, 62,136,141,200, 95,206,243, 65,185,192, 5, 7, 79,108, 67, 6, 39,141,164, 44, 51,240,172,245, 0, 32,171, 42,111,141,
+ 10, 41, 46,104, 23,226,176,203,220,182,207, 84,168, 28, 21, 9, 41,194,194,228, 13, 73,159, 90,154,202, 28, 50, 84,250, 28,235,
+223,216,240, 56,184, 87,117,145, 4,161,149, 0,238, 50,132,166,181,213, 17, 24, 81, 5,116,124,236, 64, 60,129,190, 0,124, 29,
+159, 7, 47,106,203,182,160,112,183,176, 5, 0, 37, 47, 88,208,234,239,203,231, 57, 69, 61, 2,112,170, 96,139,200, 42, 9, 48,
+ 11,240, 79,163, 29, 70, 4,212,225,144, 65, 32,132,186, 21, 2, 4, 5, 74,124, 22, 7, 32,153, 45, 98, 3,190, 96, 4,177,169,
+ 11, 12, 47, 92,146,184, 65, 16,207, 22, 70,151,194,108,202,128,141,102,187, 59,163,148,164, 6, 41,253,217,171, 91, 67, 79, 99,
+133,181,171,140,207, 59,128, 30,131,228, 47,223,169,254, 28, 90,115,188,102,108,164, 97,159,223, 3, 43,221,218, 13,104,160,216,
+149, 46,173, 10, 20,151,203,196,102,180,153,116,219, 4,118, 42,147,231,109,145, 19, 60,215,223, 57,225,181,208, 74, 51, 53,220,
+ 68,226,250,253, 56, 20, 97, 17, 58, 37,119,181,144,241,233,149,108,111,172,104, 38,190,209,160,236,111,239,238,153,200,193, 8,
+ 5, 75,241,236,242,134, 64, 47, 84,204, 1,173,143, 74, 27,193,197, 0,118,210,128, 69,151,185,185,124,149,254,188,136,251,136,
+ 31, 16,215, 45,162,214, 45,233,108, 71, 22, 60, 87,122,134,164, 46, 64, 25,210,103,211,194, 33, 19,215,180,236, 44,181, 52,205,
+244,158,102,243,186,209, 76, 96, 18, 25, 89,130, 9,159,239,151,103,247, 20, 64,225,239,111, 25,159, 29,159, 13,100,107, 26,181,
+108,148,197, 96,109, 92, 91, 38,204,250, 81,119, 83,179,217,164,129,196,104, 46, 90,172,241, 48,188,155,131,123,188,100,213, 93,
+235,123,189,158, 85,114,122, 87,176,146, 66,117, 89,148,161,109,109, 29, 21, 4,220,124,225,114,197,169, 9,166,148, 62,207, 35,
+ 58, 60,180,229,171,208,233, 64,112,155, 91,231, 78, 12,159, 80,214,166,127, 64, 74,164,171, 63,218,231,213, 78, 3,179,103,103,
+246,190, 86,125, 99, 86, 44,153, 56, 38,166,160, 10, 29, 41,125,172,236, 11, 51,191,128,180,107,111,192,142, 77,144,243,101,130,
+164, 73,132,189,136,218,153, 32,174, 66,136,214,112, 33,238, 98,104,218, 25,224, 85,175, 13, 87,216,254, 60,190, 41,228,139, 39,
+125,121,151, 24,239,159,110,130, 75,204, 96,167,228, 75, 67,232, 5, 29, 13, 60, 87,118,140,106, 27,137,193, 27, 5,215,114, 63,
+ 27, 81, 88,103,122, 15, 1,171,133, 6,144, 37, 1,132,176,200,156, 79,239,229,233,193, 35,185,184,188,176,115, 39, 55,243,150,
+118, 59,114,198, 75,105,163, 64, 80,212,150, 53,245,245, 77,118, 35,162,220,105, 93, 61, 40,118,150,110, 74, 4, 16, 98, 78,165,
+195,123,121,118,176, 79,157,111, 0, 49,183,233, 7, 63,144,255,247,119,127,150,190, 91,232,190, 62, 46,229,151,235,123,148, 72,
+ 69,149,184,161,235,255,101, 9,140, 64, 46,187,235,125, 41,150,125, 57,190, 28,155, 3,163, 7,199,202,245,242,159,104,176,186,
+156,220,243,153,219,185,159,200,158, 38, 40,245,197, 5,139, 26,208,186,206,198, 51,217,233, 71,174,120,153,112,109, 16,120,153,
+160, 83, 53,167,203, 93, 94,216,216,135,178, 4,122, 70, 3, 65,142, 61, 7, 96,217,245,164,144, 71,213,149, 44,170,132,180,199,
+255,248,119,127, 69,166, 4, 18,237,181, 65,135, 22,170,189, 14, 60,222,103,242,250,195,169,158,113, 51,214,230, 89,106,184, 23,
+210, 73,211,184,241,161,192,251, 5, 70,103,158,215, 76,222,128,115,194, 62,130,248, 11,206,239,121, 81,211,231, 29,123, 13, 1,
+255, 86,171,217, 63,190, 58,151,255,251,119,239, 52, 81, 26,177, 10, 38,238, 73,239,255,169, 6,118,140,152, 18,103,192,192, 34,
+186,213, 45,104,213,250,100,107, 69,214, 86,215,101, 86,198, 60,115,118,215, 55,184,166,126,252,112,204, 51,255,241,206, 22, 93,
+ 4, 91,173,142,238,237,174, 60,173,161,137,209,149,237,213,140,128,191,243,139,130,221,211,205,149,185,188, 59, 31,201,163,205,
+129,220, 78, 11,249,247,223, 28,200,255,254,155, 67, 38,192,100, 46,181, 0, 62, 70, 52,181, 81, 47,214, 52, 44,110,113,157,176,
+140, 6,157, 13,200,119, 60, 47,104,210,227,158, 81,120, 98, 63, 1, 24,156,236,239,238,253,175,161, 50,162,176,132,219, 34, 18,
+ 16,151, 88, 27, 52,108,146,208,110,109,230,217,141,218, 88,237,206, 77,115,167,131, 85, 13,106, 53,245, 12, 52, 73,157,134, 4,
+218, 85, 28, 53,243,186,192,101, 7,146, 54,203, 82, 55,107, 49, 35, 1, 90, 21,102, 45, 63, 60,157,171,237,255, 78,190, 34, 90,
+199,165,169,241,216,220,223,149,226,150,139, 70,125, 11,135,108,176,120,109,185, 85,171,153,165,164,244,135, 70, 75,165,114, 3,
+137,144, 80,164, 78, 87,163,141, 34, 21,164,210, 70,115, 91,124,182, 31,126, 15, 15, 25,127, 6,161, 85, 14,254,238,245,232,142,
+ 25, 87,184,142,216, 91,222,184, 70, 84,222,136,108, 8, 92, 1, 64,199, 64,133,197, 9,190,243,202,192,109, 37,133,149, 7, 81,
+144, 94,181,155,228,102,201,138,162, 36,162,218, 0,109,225,122,144,100,116,218,173,134, 61, 0, 52,124, 72,151,128,220,165, 34,
+ 22, 54,172,119, 2, 80, 41,131, 31, 28,240, 5,248, 27,200,243, 65,191,195,207, 66,133, 22,128,131,129, 95,110,215,251, 48, 59,
+ 55, 92,130,153,137,176, 77, 77, 90, 77,193, 36, 10, 85,106,230,212, 46,227,255, 91, 66,199, 57,106, 64,152, 75,160,147,197,141,
+ 95, 64,224,103,162,130,223,213, 96, 13,138, 27,222, 5, 90,132,224,131, 99,108, 48, 71,130,180,204, 77,240, 37, 65,203,116,194,
+231,135,192,139,128,142, 77,242,116,127,155,215,132, 4, 13, 7, 20,170,123, 4,201,156, 1,211, 3,186,183,200, 73,191, 1,208,
+172,149, 54, 14,132,179,185,233,111,119, 90,230,164,135, 32, 79, 11,202,218,180, 22, 76, 60,197, 14, 69,220, 31, 84,212,144, 88,
+173,246, 59, 6,158, 3,255, 62,179, 68,240,222, 15, 15, 92, 51,218,119, 4, 25, 58, 26, 31, 7, 55,156,225,240,123,112,141,160,
+ 17,233,202,224,129,143,202,253, 78,191, 54,209,138,232,126,137, 25, 96,201,170,239, 12,202, 97,147,133, 68, 26,128, 48, 42,163,
+242,214,162, 36,189, 8, 14,109,198,193, 55,158, 51, 2,111, 69,181, 58, 91,171, 11,223,243,102, 7, 16,121, 85,180,228,122,102,
+219,221,141,120, 16,244,197,129,107, 68,229,122,226, 26, 92,243,208,102,165,222, 64,102,190,214, 91,235,219, 76,210, 72,211,195,
+232, 32, 53,229,185,118,171,195,117,139,125,218,239, 14,204,218,151,104,245,148,221,145,218,117, 35,140,139,107,250, 23,166,129,
+ 81,242,124,192,172,158,246,186,181,153,122, 4, 81,170,208,190,199,158,221, 88, 93,117, 12, 69,225, 14, 94,166,151,145,186, 5,
+111, 95,171,108, 10,173, 80,144,170,150,131,149, 72,190,125,123, 41,231, 55,119,236,174, 28, 95,140,137, 71,185,153,204,137,220,
+ 30,209, 63, 30, 7,250,140,123,181, 36,186, 59, 98,235,118,101, 96, 2, 55,176, 0,109,235,154, 41,200,113, 31, 16, 19,210,233,
+ 89, 98,141,234,250,232,226,198,193,141, 70, 33, 68, 11,118,186, 40, 89, 57, 46,156,189, 17, 40, 75, 16,169, 49,222,117,236,251,
+176,199,110, 88, 80,245,196, 62,159,211,141, 48,163, 8, 13,102,168,159, 62,222,147,161, 6,237,227,211, 27,118,181, 40, 12,165,
+207, 15,157,157, 96,153,138,231,136, 57, 62, 70, 10,149, 75, 53, 79, 73,249, 43, 92,213, 79,154, 46, 9,214,102,228, 45, 95, 2,
+120, 53,200,222, 99,157,234,181,127,243,124,151,137, 6,206, 84,220, 43,146, 59,235,158,153,172,120,175,157,152, 50, 96,218,105,
+222, 19,238,111,208, 31,240,153,213,197,210, 59, 66,122, 45,154,108,246, 50,116, 71, 35,249,244, 96, 77,131,210, 6, 71,139, 28,
+ 7, 69,226,222, 1,134,241, 64, 82, 14,139,217,159, 60,219,229, 58,195,140, 28,251, 20, 35, 45,235,154, 89,226,141, 53,132, 98,
+ 10,158,243,231, 87, 87,242,254,248, 66,254,244,234, 72,190,251,241,181,188,124,253, 78,254,240,231, 87,242,195,155,183,114,122,
+126,174,215,191,202,202,119, 54,187,115,247, 66,155, 93, 99, 63, 33, 96,227, 76, 1, 72, 22, 35, 45,234,124,234, 30, 91,235,197,
+164,170, 29,107,113,176,210,210,243,161,213,167, 92,107,225, 35, 59, 38,143, 76,132, 68, 43,248, 59,121,249,225, 82,118, 6, 34,
+135, 23, 51,118, 34,186,169,129,145,159,236,174,243,172,126,115,118,199,125,242, 98,111,168,191,115, 74,173,249,160, 40, 73, 89,
+115,221, 59, 56,203,151, 84, 87, 76, 57, 87, 15,194,108, 44, 60, 80,204, 76, 38, 26, 47, 86, 12,219,226,194, 70,233,176,223, 39,
+240, 4,139, 26, 89, 47,162,126, 23,122,205, 45,211, 79,238,117,202,198,107,123,238, 42,103,145, 7, 92, 6, 89, 7, 74, 4,101,
+186,216,171,234,196,131,112, 99,186,130,214,137, 7,162,150, 59,182, 5,199,181, 48, 27,231,129,207,122, 63,119, 87,166,204, 91,
+200, 73, 83,189,211,198,213,221,213,152,193,198, 15,130, 50,104, 25, 91, 38, 31, 20,234, 50,115, 97,130,150, 96,199, 20,134,186,
+108,211,180,216, 78, 41,220, 89, 10,213, 46,117,117,193, 21,205,140,246,132, 86, 46, 42,193, 53,221, 28,180, 96, 77,147,134,170,
+ 7,138,140, 46,183,134, 6, 24,170, 16,220,198,197,245, 45, 95,232,250,234,128,136,118,124, 30, 4, 45,112,133,231,186, 24,192,
+161, 12, 92,101,180,229,205,195,190,148, 85,253,126, 44, 14,204,190,145,164,172,174,174, 88,117,177, 88, 54,115, 68,124, 6,144,
+175,236,162, 68,210, 80,207,202,216, 56,237, 22,164, 23,188,214,225,112, 96,248,129, 60,111,124,155, 49,127, 94, 54,214,170,210,
+128,212,194, 8, 6, 7, 2, 50,219,218, 81,225,248, 58, 14,174,202, 3,145, 57, 5,197, 30,240,221, 29, 77,223,229,148, 0, 18,
+231,218, 38,238, 62, 87, 24,128,142, 99, 16,204,217,170, 37,127,231,194, 91,221,120,103,115,175,186,224, 64,214,110, 45, 77, 70,
+ 85, 23,103,150, 5,139, 89, 51, 33,225, 59,175,236, 48, 65,231, 96,145,207, 8,158, 89, 56,186, 31, 96, 37,108, 62,252, 51,154,
+186, 9, 6, 64,101,122, 31,135,151, 35,182,164,130,220,237, 50, 55,125,229, 56,122, 0,102,210, 34,152,180,171,204,245, 18,226,
+ 38,152,207,231, 49, 59, 53, 72, 36,113,104,210,216,163,165,107, 26, 2, 47,192,105, 64,110,181, 48,244,127,228,215,187,160, 60,
+104,161,193,120,193, 54, 39, 91,163,186, 22,239, 93, 92, 4,173,219,126,175,160,213, 25, 18, 97, 84, 76, 39,169, 57,255,165,101,
+204,235,203,138,153,180,128,136,117, 67, 14, 38, 98, 49,170,215,185,161,222, 33,136,195,182,119, 66,253,103,116,192,144,172,152,
+206,120, 97,179,102,253,190,161, 6, 31, 45, 39, 25,172, 56,102,200,243, 70,176, 40,165,227,150,113,255,105, 66, 2, 14,117, 43,
+118,111, 7,179,170, 13,146,199,144,158,197,124, 24,123, 50,107, 27, 61,109, 4,252,134,126,254,176, 63,212, 31,208, 0,154, 22,
+238,141, 46,164,216, 96,102,190,170, 7, 78,161,213,219,104, 50, 38,181, 9, 13,163,251,217,196, 20, 24, 93,106, 23, 10,105, 45,
+ 58,176,181, 93,216, 70,247,122, 98,106,135,173, 84, 43,147,110,143,215, 9,211, 23, 4,239,168,101, 32, 66, 28,114, 28,253, 37,
+145, 35,221, 75,247, 37,136,154,174, 29,147,148,180, 98,177, 82,122,210,139,245,247, 70, 3,210,191, 84, 55,242, 78, 15,214,142,
+ 6, 79,204, 37,113, 48,115, 20,167,223,135,179,100,174, 73, 22,218,235,253,110,159, 29,191, 52, 93, 88,194, 95, 46,185, 79, 17,
+172,230,169, 37,198,168, 84, 49,154, 72, 32,162,117, 31,203,222,206,182,124,243,213, 55,242,230,195,137,172,247, 51, 25,205, 35,
+202,132,214,165, 49, 49, 40, 64,180, 48, 9, 95, 4,143, 56,213, 53,232, 76, 25,122, 50,196,145,203,178, 66, 94,116,206, 36,104,
+ 74,214, 81, 77,101, 59, 60,227,147,139, 43, 93,219,247, 50,154, 29,202, 55, 95, 60,149, 75, 61, 95,144, 56, 22,249, 84,190,125,
+117, 34, 63,255,116,139,207, 5,120, 9, 84,235,135,122,214,193,157,238,175, 94,108,201,201,229,101, 99, 79,141,206, 79,229,163,
+ 82, 36, 28, 40, 36,134, 76, 84,192,218,104,241,156,220, 89, 31,202, 8,163, 48, 93,155, 63,127,190, 39, 55,250, 34,111,166, 53,
+ 5, 85,184,134, 18,163,183,130,224,188,152,107,240, 73, 90, 46,190,101,239, 70,243, 82,206,187,137,129,210,125,187,255,104,159,
+ 78,144, 87,183,119,242,234,162, 43,191,254,227,111,136,153,129, 2, 29,222, 85,225,227,138,152,123,182,146,237,141,129, 38,140,
+ 67, 50, 94,112,190, 76, 11,115,245, 91,186,126, 69,226, 18,216,208,237, 67,103,133, 38, 94,149, 21, 42,109, 42, 7, 62,116, 22,
+201,184,161,169,143,158,135,211, 72,250,160, 18,183, 51,151,164,181,115,134, 29,149,194,232,167,149,174,219,221,141, 39,178,152,
+ 94,115,255,237,110,172,203,245,237,185,124,250,108, 40,154, 63, 55,174,128,143,245,204,197,186,124,253,193, 64,116,155, 27, 27,
+114, 87,116,101,216,154,203,213,125, 45, 79, 54, 86,249,185, 72,202,159, 60,122, 36, 87,119, 5,147,191,133, 86,229,240,173,159,
+ 59, 62,135,227, 73, 77, 40,231,149, 89, 17, 35,177,195,120, 19, 94,233,184,135, 69, 30,216, 32, 17, 1,136,151,183, 35,121,126,
+176,207,253, 93, 81, 31, 3,178,114, 16,141, 24, 12,120, 48,143,239, 39,132,199,103,110,194, 96,243, 63,243,123,237, 68, 93,115,
+108, 99, 75, 59,227, 75, 20, 23,160, 73,220,155,187,246,224, 96, 46, 81,102, 90,130,175,221, 83,144, 33,230, 65, 81,213,117,131,
+214, 13, 82,167,193,180,161,242,170,193,170,185,146, 0, 21,100,232,248,247,176, 41, 37,232,206, 47, 23,214, 49, 96,133, 23, 59,
+ 87,185,101,202, 91,204,110, 90,108,235, 36,238,217, 14,245,160,253,158, 25, 82, 32, 91,183, 89,120,202, 96,135,249, 54,102, 84,
+108,229,234,130, 93, 95, 29, 82, 37, 10,243, 18, 86, 36,104,247,234, 75,202, 29,169, 91, 7, 75, 84,199, 32,156, 94, 92,210, 79,
+ 24,224, 35, 32,204, 31,239,111,145, 26,130,141, 9, 20,176, 73,232,198,204,166, 10,167, 39, 12,251, 70, 99,227, 44, 27,242,156,
+186,152, 80, 37,219,102,171,216,118,159,187, 48, 74,139, 90,240, 57, 53,192,153, 85,214,102, 33, 91,186,102,120, 92,154, 53,107,
+234,213, 48,229, 76, 93,114,181, 40, 12,192, 71,218, 97, 48,186, 32,178,219,146,169, 64,163, 43,203,170,233,158,240, 80,204, 43,
+ 62,143,202, 69,104, 10,103, 14,160, 18, 71, 82,132,224,119, 75, 14,171, 93, 31,241, 6,117,216, 60, 86,213,226,208, 49, 80, 99,
+253, 23,198, 47,152, 97,154, 19,209,220,225,145, 60,229, 89,245, 96, 99, 95,107, 98, 4,215,165, 26,159, 91, 47,154,214,221,210,
+ 29,179,224,230,135,181,133,113, 4,178,218,173,158, 85, 7, 8,198,244, 35,240,132,114, 78,153,226,248,129,246,228, 52,161,210,
+169,128, 52, 37,138, 45, 72,198,110,170, 83, 20, 15,188, 93,155, 93,165, 46, 15, 28, 59,223, 31,116, 34,107,161,146, 11, 29,153,
+197, 34,102,164,183,115,107, 13, 91,235, 82, 19,162, 40,211,117, 87,186, 41,142, 39,193,152,255,102, 6,122,185, 43, 38, 4, 41,
+209,184, 68, 63,175,237,223, 67, 65, 65,180,185, 11, 75,140, 96,132, 86, 85,210, 0, 47, 67,182,206,192, 5,172, 3,214, 41, 40,
+ 86, 75,211,252,230, 33, 87,106,130,167,193,118,161,255,108, 69,133, 62,243,142, 6,126,171,200,192, 47,199,225,129, 68, 5, 79,
+ 2, 7, 7, 57,210, 98,163, 9, 40,140,225,175,149,193, 10,207, 4,172,143,254,160,227,244,186, 5,233, 52,148,101,133,196,101,
+103, 97,173,123,120, 21,204, 10, 23, 69, 50,209, 32,208,122,146,184, 77,228,117,201,145, 82,183,121, 55, 56,212,145,212, 0,101,
+ 13, 16, 16, 28,170, 94,190,121,195,118,124,227,252, 72, 32,159,174, 19, 77, 10,240,189, 68,207,123, 98,143,223,191, 50, 24, 56,
+ 98,125,202,231,139,179, 9, 69, 3, 19,124, 23,149, 10,133,200, 45,188,166,105, 63,107,116,202,243, 73, 44,207,182,135,242, 47,
+ 47, 79,181,122,218,166, 19,217, 91,124, 79, 10, 78,183, 86,186,187,125, 89,209,235,101,194,236, 34, 93,137, 62,199, 39, 59,155,
+242,233,167,207,153,232,128, 57, 4, 65, 17, 0, 26, 87, 86,134,178,127,176,199,207,184, 29,141, 25, 48,158,106,240, 26,143, 47,
+245,185,181, 88, 81,102, 96,174, 44,204, 20,138, 21,121,157,234,215, 98, 34,170, 99,151,188, 5,138, 30,104, 67, 0,243,134, 89,
+151,103, 24,236, 92,113, 95,250,129, 76, 62,199,247, 6, 6, 68,176, 71, 49,130,125, 7, 77,245, 79,158,238,201,209,201,169,252,
+240,250,131,220,237, 14,100,119,179, 39,239, 79,239,249,110, 54, 53,176,143, 39, 87,114, 62, 42, 40, 90, 51, 97,199,106,238, 50,
+195, 54,238, 1, 96, 17,204, 13, 36,164, 93, 50, 23,114,202,109,163, 3,132,196,230, 63,252,252, 83,249,195,219, 19,210, 75,209,
+ 57,187,210,138,184, 21, 37,126,142, 90, 98, 16,149, 19,221,199, 91, 28, 23,226,217,195,191, 98,163, 7, 42,163, 38,131,243, 25,
+231,221,160, 23,190, 63, 58,148, 86,103, 32,173,238,134, 22,247, 87,242,238,228, 59,202,239,162, 24, 91,237,181, 8,118,198, 94,
+129,212,237,197,205,173, 28,158, 93, 88, 33,226, 86,170,140, 19, 14,255,196, 8,137,227, 50,170, 7,102, 4,185, 97,138,147,231,
+ 11,125,119,214,125, 69, 91, 59,170, 34,138, 38,161,133,223,211,100,237,147, 39, 95,203,254,134,158,253, 67, 99, 20,161, 91,133,
+130, 1, 14,117,223,189,187, 98, 37, 62, 91, 76, 73, 67, 59,120,242, 68,254,233,183,191,147, 95,236, 63,146, 15, 71, 26,248, 23,
+ 35,125,166,125,226,175,144,228, 98,126,143, 22,121,197,142,193, 76,190,212,253,118,114,165, 69,216,106, 42,155,253, 92, 70,139,
+129,124,254,116, 67, 11,191, 59, 89, 93,216, 51,127,127,114, 38,239,175,231,242,201,254,154,220,106, 1, 48, 66,119, 21, 20, 72,
+208, 4,179, 21,118,124,113,135, 56,163,183, 53,153, 64,187, 29,206,135, 38, 12, 86, 52,160,232, 33, 40,122, 5,218,251, 61, 73,
+ 17,100,113,104, 48,120, 85, 38,106, 79, 51, 21, 84,226, 56, 72,111,111,200, 11,133, 22,242,221,228,142,129,223, 14,184,172, 1,
+186,153,226, 91,101,186,200,142, 10,167,210, 19, 44,253,150,115,175,198,205,207,219, 40, 56,210, 28,228,116, 76, 43,108,102, 31,
+102,113,141,152,140, 75,154,210, 59,215,145,215,193, 17, 45,200, 70,150, 46,181, 26, 44, 71,225,216,131, 69,200, 13, 14,125,231,
+174, 1,118,168,228,166, 9, 12,230,141,147,169,102,229,117,206,140, 24,109,150,221,205,181,134,127, 78,158, 42, 37, 86, 19,130,
+205,140,223,158,202,141, 46,170,136, 92,116, 67,171, 39,240,249,141,210, 6, 48, 71,145, 24,221,100, 43, 3, 67, 56, 32,155,236,
+233, 11, 95, 95, 91, 97, 59,114, 56,236,243,154, 97,167, 10,174, 35,232, 56,152,169,161, 77,140,209, 4,102,237,120, 49, 70,210,
+136, 72, 57,170, 43,147, 78, 13,138,120, 61, 2,230, 80,237, 45,172, 30, 97,203, 7,227,200,204,101, 36, 75,206, 73, 17, 64, 80,
+ 89, 35, 35, 93, 58,213, 11,200, 92,115,138, 18,175, 86, 10, 30, 48, 68,194, 79, 75,231, 40,219,117,183,169,246,101,160,180, 32,
+179,139,196,129,112, 5,231, 6,219,200,198, 64,128,160,156,197,242, 96,116, 51, 95,232,239,132, 64,140, 6, 36,116, 58, 8, 66,
+227,102,107, 55,162, 54, 8, 58,157, 94,198, 86, 41,192, 61, 0, 45,165,212,175, 94,176,202,253,216, 42, 55, 0, 22,209, 85,129,
+199, 57,186, 74,168,204, 3,127, 63,136,208,240,218,219,102,172, 18,164, 39,215,145, 24,232,245, 94, 94,141, 72,239,194,189, 61,
+218,221, 36,158,225,226,102,196,159, 69,242,132,131, 36, 74,109,166,140,231, 10,187, 69,182, 35,117,243,229,183, 38,209, 8, 64,
+ 85,192,154, 32, 57, 51,230, 68,144, 47, 78, 92, 59,222,198, 71,156, 77,139,110, 76, 13, 58,232,174, 68, 82, 55,162, 67, 8, 42,
+ 64,132, 47, 22, 51,190, 51, 84, 17, 29,112,211, 49, 2,139, 76,128, 2, 97,177,163,149, 57, 40, 71, 72, 34,145,104, 99,244,208,
+233,181,136,209,192,103,110, 2, 28, 40, 54,159,111,105,197,216, 95,235, 18, 84, 5, 22, 0, 19,194,188, 98,245,189,161,107, 15,
+ 92,127,182, 0,161,138, 54,183, 68, 10, 73, 18,222, 49, 42,238,220,253,199,201,121,205, 50,118, 81,114, 23, 71, 33,247, 56,182,
+ 54, 39,110,184, 98, 43,187,205,228,149, 93, 45,204,102, 57,199,236,178,106, 35,123, 64,255, 29,174, 86,251, 59,187,186,222, 71,
+154,160,109, 48, 57, 64,242,142,117, 57,158,140, 41, 18,195,118,118,171, 67,189,241,219,241, 88,191,111,141,137,222,181,158, 59,
+184,158, 62,171,147, 5, 91,248, 9, 15,207,121, 99,252, 18, 45,221,118, 53, 55, 94,114,199,101,136,185,198,208, 5,140, 13,121,
+111,218, 12,133, 73, 4, 59, 30, 3,235,227,228,118,206,128,244,243, 71,235,122, 6,244,245,172,232,202, 79, 14, 54, 53, 56, 14,
+ 24, 4, 48,242,233,234,231,227,111, 38,198, 26,216, 47,175,117,205, 68,102,139, 89,150, 25, 41,138, 87,183,122, 95,145,105,235,
+255,240,225, 92,134, 26,176,162, 66,215,140,204,244, 29, 69,154,240,235,218,133, 16, 81,206,148, 73,127,110,201,164, 13,221, 16,
+204, 95, 81, 84, 45, 22, 53, 59,148, 64, 93, 47,124,100,152,101,160,229, 45, 77,113, 15,129, 19,149,246,157, 85,177,107,232,176,
+198,160,185,222,243,186, 79, 47, 71, 76,150, 95,233,231,239,108,172,104,208,236,202,143,199, 35,217, 90,105,201,129, 6,118, 24,
+188,192, 41, 12,115,120,188,227, 77,253,243,241, 44,183,181,202,206,103,108,173,241,194,246, 59,232, 91,253,206, 80,126,241,249,
+ 83,249,238,232,146,231, 22,196, 95,254,244,246, 84, 43,195, 59, 82,223,240, 14,204,169,208,186,182,198,208, 75,224,110,174,247,
+110,140, 0, 24,173, 96, 63, 78,230,112,196,195, 56, 70,100,117, 56,212,103, 54,146,179,139, 51,121,250, 20, 24,156,158,204,167,
+155,250,251,215,228,236,234, 86,207,125,235,189, 66, 61, 17, 96,230,193,118,135,133,207,225,249, 21,247,119,160,154, 6,122, 42,
+ 60, 5, 58,236,190, 34, 49, 31,104,178,211,213,223,217, 33,168, 24, 96, 50,104,111,116, 0, 12,118,240,105,226,254, 35,135,103,
+ 99,185,208, 53,112, 53,186,210,160, 58,148,189,141, 30, 65,133, 0,207,165, 25,140,106, 54,229,248, 42,150, 15,103, 55, 76,166,
+244,102, 9,128,163, 84,175,238,243,127,123,117, 41, 95, 62, 79,101, 4,219,216, 8,157,147,115,125,103, 29, 90,180,158, 95, 93,
+235, 51, 31,107, 33,184, 46, 55,179, 90,239,173, 77, 16,235,197,184,144, 95,252,252,133,252,240,230,148, 2, 81,200, 79,254,244,
+250, 88,250,186, 14, 96,142,195,243, 38,183,142,212, 82,215,191,141,116,240, 94,238,204, 28,141, 98, 73,115,147,168,230,136, 43,
+ 99,135,116, 81, 44,169,155,143,228, 39,197,193,194,195,169,238,112,214, 11, 41, 75, 4, 64, 28,118,247, 26,196,145,125, 12, 7,
+ 67, 82,222, 58,173,117, 86,220, 12,174, 14,148,193, 67, 37, 55, 87, 55, 42, 56,148, 73,108, 25,187,233, 93, 87,141,233, 7,125,
+170,157,171,205, 64,221,137,121, 88, 4,247,179,212, 59, 3,156,173,147, 14,214, 54, 80, 29,102,244,110, 88,129,239, 91,186,177,
+ 76,203, 53,198,113,192,143,198,214, 58,179, 42,113, 41,245,164,230, 12, 14, 0,139, 96,111, 26,121,231,160,224,131,137,104, 34,
+208, 75, 77,188, 3, 97,116,119,107,147, 27, 53,213,195,126, 67, 95, 10, 22, 83, 43,179,234, 19,207,162,214,195, 6,217, 82, 59,
+106, 91, 16,167,246,187,127,158, 25, 38,243,144, 66, 27, 39,213, 23, 15,176, 24, 50, 74,180, 63,215,181,226, 79,221, 95, 30, 40,
+224, 78,142,141,164,139, 65,171,220,227,139,107, 86,155,224,148, 50,232, 96,230,168,255,141,159, 99,146,210, 50,195, 5,108, 42,
+ 32,188,219,173, 53, 86, 50, 88,228,248, 51,116, 1,240,103,153, 38, 7, 68, 62,186, 54, 59,170,186,153, 3, 32,131,236,109,167,
+213,114, 9, 94,211, 23, 8,192, 65,128, 55,176,177,239,167,134,137,200, 25,216,141,131,159,248,156, 27, 7, 13, 91,144, 64,243,
+ 87, 25, 93,205,112, 32, 97,108, 0, 12, 64,237,134, 26,168,148,208,122,133, 98, 28,222, 27,158,255, 84, 3, 53, 18,195,121,110,
+146,152,200, 13,110,238,166,182, 17,245, 57,103,144,233, 4, 56,169, 64,155,112, 64,212,251,237,232,158,207,183,211, 49, 29,236,
+ 41, 17,250,152, 89,149, 78,117, 20, 38, 93,156, 53, 45,103,114,113, 49,230,218, 66,114,138,174, 1,146,187,152,154,230, 49,105,
+ 76, 21, 90,167,122,212,140, 33, 90,115, 58,114,251,220,140,127,150,116,173, 26,130,202, 20, 84,198, 16,188, 96, 80, 81,187,115,
+ 95, 49, 3,200, 38,247,121,109,217, 48, 58,152,150, 86, 15, 74,135, 28, 35, 85, 70, 99, 58,120,180,195,153, 54,214,212,164, 92,
+152,250, 32, 90,121,165, 5,159,150,204, 53,120,104, 82, 85, 14,217,158,238, 68,246,243,160,135, 77,151, 70,207, 44,131,238,130,
+ 30, 6, 43,200,222, 49,159,108, 67,105,202, 0, 76, 33,137,194, 38, 71,150,143,164,135, 99,162,218,198, 95, 61,138, 95, 0,117,
+ 28, 19,116,122, 51, 94,178,123,197,153,126, 39, 53, 13,131, 8,212,197,109,206,230,176,119, 35, 6,228,182,241,219, 43,105, 40,
+143, 24, 31,236,107,242,139,206,222,185, 6,175, 13, 61,172,230,250, 92, 46,174,175,189,221,205,255,101,155,176, 40, 23, 60, 39,
+ 46,245, 96,187,231,243,180, 52,190,204, 75, 6,219, 89,101,216,146,136, 10, 91, 70,223,196,251,159,233,126,221,213,247,176,185,
+185,169,135,254,141, 51, 62, 58,236, 94, 89,167, 79,207,138, 60,229,152,208, 52, 32,140,245,129,195,174,203, 22,106, 91,146,194,
+ 88, 15, 53,215,123,187, 1,223,190,120,116,192, 36,225,248,236,220, 37,143, 99,158, 57, 55,211,165,236,174,164,178,181,181, 65,
+ 44, 66,172, 95,123,212,170,229, 15,239,206,233, 60, 54,151, 54,103,155,239, 1,196, 28,232,245,102, 61, 3, 22, 70, 87,236,232,
+129, 13,129, 34,232,145, 38,165,120,254,147,229, 84, 86,239, 11,154,123, 64,151,125,111,163, 47, 31,206,187,156, 29,147, 87, 92,
+185, 42, 30,206,193, 18, 70,191,133,225,133,240,140, 42, 59, 11,109,236,104,237,100, 51,189,177, 46, 86, 44,198,182, 65,114, 60,
+236,111,104,130,113,109,251, 81,215,239,114, 98,128, 65,152,185,108,104, 16,203,167, 35, 13, 44, 35, 57,185,238,203,179,189, 33,
+ 13, 68,128,250,223, 66, 48,167, 65, 84,106,197,149,239,113,124,102, 89, 23,164, 45, 87, 76,144, 44,225, 31, 77, 23, 46,144,149,
+ 49, 72,253,249,253,189,252,245, 39,251,242,116,111,155,213,252, 83, 61, 39,222, 31,159,106,113, 50,109,176, 53, 96, 13, 76,167,
+ 24,107,172, 24,104, 45, 43,229,100, 26,177,189, 12,183,178, 71,195, 13,141, 45, 99,121,250,232, 5, 85,251,190,127,253, 86, 34,
+ 77,184,254,250,103, 95,115,238,142, 66, 1,179,124,156, 13, 8, 88,244,196,208,235, 60,210,119,119,161,239,200,100, 49, 44,177,
+ 52, 77, 20,188, 23, 36, 47,125, 2, 19,245, 9,179,115, 6, 86, 9,226, 14,217, 71,145,141,181,196, 89, 82, 56,167, 54, 32, 64,
+116, 14, 1,159, 91,249,221,235, 75,185,253,205, 57,231,241,148, 76,166,137,149,117,188, 0,174, 59, 58, 62,100, 2,131,245,255,
+157, 94,239,198,218,150, 22,141, 83,130,137,123, 90,197, 31,105,181,253,211,207,158, 51,177,187, 71,247,164,219, 33,247, 31,123,
+ 96,164,123,243,248, 52,145,255,241, 23,143,229,234,122, 33,111, 15, 83, 26,103, 97, 47,236,111,173,176,186, 71,130, 6,134,213,
+202, 80,207,243,137,185, 40, 98, 60,157,118,250,214,217, 92, 29,242,251,128,186,199,103, 14,168, 57,210,147,237,245,117,158,131,
+120, 62,123,219,155,220,231,255,191, 0, 3, 0, 4, 77, 15, 40,213, 32,193, 90, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
+ 0};
+
diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c
new file mode 100644
index 00000000000..f34cf16430b
--- /dev/null
+++ b/source/blender/editors/datafiles/startup.blend.c
@@ -0,0 +1,7537 @@
+/* DataToC output of file <startup_blend> */
+
+int datatoc_startup_blend_size= 240980;
+char datatoc_startup_blend[]= {
+ 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 53, 50, 82, 69, 78, 68, 32, 0, 0, 0,
+144,181, 39,248,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, 24, 1, 0, 0,144,180, 39,248,255,127, 0, 0,
+201, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 53, 5, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1,200,187, 85, 3, 0, 0, 0, 0,
+120,159, 89, 3, 0, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 47,104,111,109,101, 47, 98,114,101, 99,104,116, 47, 46, 98,108,
+101,110,100,101,114, 47, 50, 46, 53, 50, 47, 99,111,110,102,105,103, 47,115,116, 97,114,116,117,112, 46, 98,108,101,110,100, 0,
+ 61,117,232, 0, 0, 0, 0, 0, 40, 0, 0, 0, 48, 0, 0, 0,208,181, 39,248, 32, 0, 0, 0,144,181, 39,248,255,127, 0, 0,
+ 40,102,128, 4, 0, 0, 0, 0, 64,181, 39,248,255,127, 0, 0,104, 14,145, 4, 0, 0, 0, 0,112,181, 39,248,255,127, 0, 0,
+133,119,232, 0, 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0,144,181, 39,248,255,127, 0, 0, 32, 0, 0, 0, 82, 69, 78, 68,
+ 40,102,128, 4, 0, 0, 0, 0, 82, 69, 78, 68, 32, 0, 0, 0,144,181, 39,248,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+152,212, 83, 3, 0, 0, 0, 0,192,181, 39,248,255,127, 0, 0, 67,126,232, 0, 0, 0, 0, 0,104,209, 83, 3, 0, 0, 0, 0,
+ 40,102,128, 4, 0, 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,
+ 87, 77, 0, 0, 24, 1, 0, 0,152,212, 83, 3, 0, 0, 0, 0,111, 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, 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,213, 83, 3, 0, 0, 0, 0,248,213, 83, 3, 0, 0, 0, 0,248,213, 83, 3, 0, 0, 0, 0,248,213, 83, 3, 0, 0, 0, 0,
+ 3, 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, 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, 0, 0, 0, 0, 0, 0, 0, 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,173, 70, 3, 0, 0, 0, 0, 88,173, 70, 3, 0, 0, 0, 0, 88,173, 70, 3, 0, 0, 0, 0, 88,225, 90, 3, 0, 0, 0, 0,
+ 88,225, 90, 3, 0, 0, 0, 0, 88,225, 90, 3, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,248,213, 83, 3, 0, 0, 0, 0,
+112, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,174, 70, 3, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0,200,187, 85, 3, 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, 5, 0, 30, 0,118, 7, 97, 4,
+ 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 1, 0, 0, 0, 0, 0,248, 1, 94, 3, 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,136, 21, 55, 3, 0, 0, 0, 0,104,177,126, 4, 0, 0, 0, 0,
+104,177,126, 4, 0, 0, 0, 0, 88, 3, 94, 3, 0, 0, 0, 0,232, 4, 94, 3, 0, 0, 0, 0,120, 6, 94, 3, 0, 0, 0, 0,
+120, 6, 94, 3, 0, 0, 0, 0, 72, 7, 94, 3, 0, 0, 0, 0,120, 76, 94, 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,208, 0, 0, 0, 40,215, 83, 3, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+200,234, 84, 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,
+ 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,216, 83, 3, 0, 0, 0, 0,184,223, 83, 3, 0, 0, 0, 0, 40,224, 83, 3, 0, 0, 0, 0,
+104,236, 83, 3, 0, 0, 0, 0,216,236, 83, 3, 0, 0, 0, 0, 72,215, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,120,159, 89, 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, 68, 65, 84, 65, 32, 0, 0, 0, 72,216, 83, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,184,216, 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, 68, 65, 84, 65, 32, 0, 0, 0,184,216, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 40,217, 83, 3, 0, 0, 0, 0, 72,216, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 40,217, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,152,217, 83, 3, 0, 0, 0, 0,
+184,216, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+152,217, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0, 40,217, 83, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,120,218, 83, 3, 0, 0, 0, 0,152,217, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,218, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+232,218, 83, 3, 0, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,232,218, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88,219, 83, 3, 0, 0, 0, 0,
+120,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 88,219, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200,219, 83, 3, 0, 0, 0, 0,232,218, 83, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 32, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,219, 83, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0, 56,220, 83, 3, 0, 0, 0, 0, 88,219, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 4, 52, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,220, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+168,220, 83, 3, 0, 0, 0, 0,200,219, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 52, 1, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,168,220, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24,221, 83, 3, 0, 0, 0, 0,
+ 56,220, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 24,221, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0,168,220, 83, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 32, 4, 84, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,248,221, 83, 3, 0, 0, 0, 0, 24,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+192, 1, 84, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,221, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+104,222, 83, 3, 0, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1,187, 2, 1, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,104,222, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,222, 83, 3, 0, 0, 0, 0,
+248,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+216,222, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72,223, 83, 3, 0, 0, 0, 0,104,222, 83, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 0, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,223, 83, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,184,223, 83, 3, 0, 0, 0, 0,216,222, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 4, 48, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,223, 83, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 72,223, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 48, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40,224, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152,224, 83, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,184,216, 83, 3, 0, 0, 0, 0, 40,217, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152,224, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8,225, 83, 3, 0, 0, 0, 0,
+ 40,224, 83, 3, 0, 0, 0, 0,184,216, 83, 3, 0, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8,225, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,120,225, 83, 3, 0, 0, 0, 0,
+152,224, 83, 3, 0, 0, 0, 0, 40,217, 83, 3, 0, 0, 0, 0,120,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120,225, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232,225, 83, 3, 0, 0, 0, 0,
+ 8,225, 83, 3, 0, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0,120,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232,225, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 88,226, 83, 3, 0, 0, 0, 0,
+120,225, 83, 3, 0, 0, 0, 0, 72,216, 83, 3, 0, 0, 0, 0,232,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88,226, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,200,226, 83, 3, 0, 0, 0, 0,
+232,225, 83, 3, 0, 0, 0, 0,152,217, 83, 3, 0, 0, 0, 0,232,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200,226, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 56,227, 83, 3, 0, 0, 0, 0,
+ 88,226, 83, 3, 0, 0, 0, 0,120,218, 83, 3, 0, 0, 0, 0, 88,219, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 56,227, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,227, 83, 3, 0, 0, 0, 0,
+200,226, 83, 3, 0, 0, 0, 0,232,218, 83, 3, 0, 0, 0, 0,200,219, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,168,227, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 24,228, 83, 3, 0, 0, 0, 0,
+ 56,227, 83, 3, 0, 0, 0, 0,152,217, 83, 3, 0, 0, 0, 0, 56,220, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 24,228, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,136,228, 83, 3, 0, 0, 0, 0,
+168,227, 83, 3, 0, 0, 0, 0,200,219, 83, 3, 0, 0, 0, 0, 56,220, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,136,228, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248,228, 83, 3, 0, 0, 0, 0,
+ 24,228, 83, 3, 0, 0, 0, 0, 72,216, 83, 3, 0, 0, 0, 0,168,220, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,248,228, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,229, 83, 3, 0, 0, 0, 0,
+136,228, 83, 3, 0, 0, 0, 0, 88,219, 83, 3, 0, 0, 0, 0, 24,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,229, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216,229, 83, 3, 0, 0, 0, 0,
+248,228, 83, 3, 0, 0, 0, 0,232,218, 83, 3, 0, 0, 0, 0, 24,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216,229, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72,230, 83, 3, 0, 0, 0, 0,
+104,229, 83, 3, 0, 0, 0, 0,168,220, 83, 3, 0, 0, 0, 0, 24,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72,230, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,230, 83, 3, 0, 0, 0, 0,
+216,229, 83, 3, 0, 0, 0, 0,168,220, 83, 3, 0, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184,230, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 40,231, 83, 3, 0, 0, 0, 0,
+ 72,230, 83, 3, 0, 0, 0, 0, 24,221, 83, 3, 0, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40,231, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152,231, 83, 3, 0, 0, 0, 0,
+184,230, 83, 3, 0, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0,248,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152,231, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8,232, 83, 3, 0, 0, 0, 0,
+ 40,231, 83, 3, 0, 0, 0, 0, 88,219, 83, 3, 0, 0, 0, 0,248,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8,232, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,120,232, 83, 3, 0, 0, 0, 0,
+152,231, 83, 3, 0, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0,248,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120,232, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232,232, 83, 3, 0, 0, 0, 0,
+ 8,232, 83, 3, 0, 0, 0, 0,168,220, 83, 3, 0, 0, 0, 0,104,222, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232,232, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 88,233, 83, 3, 0, 0, 0, 0,
+120,232, 83, 3, 0, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0,216,222, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88,233, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,200,233, 83, 3, 0, 0, 0, 0,
+232,232, 83, 3, 0, 0, 0, 0,104,222, 83, 3, 0, 0, 0, 0,216,222, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200,233, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 56,234, 83, 3, 0, 0, 0, 0,
+ 88,233, 83, 3, 0, 0, 0, 0,200,219, 83, 3, 0, 0, 0, 0, 72,223, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 56,234, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,234, 83, 3, 0, 0, 0, 0,
+200,233, 83, 3, 0, 0, 0, 0, 88,219, 83, 3, 0, 0, 0, 0, 72,223, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,168,234, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 24,235, 83, 3, 0, 0, 0, 0,
+ 56,234, 83, 3, 0, 0, 0, 0,120,218, 83, 3, 0, 0, 0, 0,184,223, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 24,235, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,136,235, 83, 3, 0, 0, 0, 0,
+168,234, 83, 3, 0, 0, 0, 0, 56,220, 83, 3, 0, 0, 0, 0,184,223, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,136,235, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248,235, 83, 3, 0, 0, 0, 0,
+ 24,235, 83, 3, 0, 0, 0, 0, 72,223, 83, 3, 0, 0, 0, 0,184,223, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,248,235, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,236, 83, 3, 0, 0, 0, 0,
+136,235, 83, 3, 0, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0,104,222, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,236, 83, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+248,235, 83, 3, 0, 0, 0, 0,248,221, 83, 3, 0, 0, 0, 0,216,222, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0,216,236, 83, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,168,240, 83, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0,184,216, 83, 3, 0, 0, 0, 0, 40,217, 83, 3, 0, 0, 0, 0,
+120,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0,
+ 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,234, 84, 3, 0, 0, 0, 0,
+ 56,234, 84, 3, 0, 0, 0, 0,200,237, 83, 3, 0, 0, 0, 0, 56,239, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+200,237, 83, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 56,239, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,239, 83, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,237, 83, 3, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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,214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,240, 83, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,200, 23, 84, 3, 0, 0, 0, 0,216,236, 83, 3, 0, 0, 0, 0,
+232,218, 83, 3, 0, 0, 0, 0,200,219, 83, 3, 0, 0, 0, 0, 56,220, 83, 3, 0, 0, 0, 0,152,217, 83, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 51, 1, 0, 0, 4, 4,222, 0, 52, 1, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 14, 84, 3, 0, 0, 0, 0, 72, 22, 84, 3, 0, 0, 0, 0,
+152,241, 83, 3, 0, 0, 0, 0, 8,243, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,241, 83, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 8,243, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 55, 0, 0, 94, 67, 0, 0, 0, 0, 0, 0,248, 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,221, 0, 0, 0,
+ 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,222, 0, 31, 0,222, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 21, 1, 0, 0, 51, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,222, 0, 31, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,243, 83, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,241, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 67,
+ 0, 64, 80,196, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 77, 67, 1,128,138,195, 0, 0, 0, 0,205, 0, 0, 0,222, 0, 0, 0,
+ 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,204, 0, 0, 0,
+ 0, 0, 0, 0, 20, 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,222, 0, 21, 1,205, 0, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,222, 0, 21, 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, 68, 65, 84, 65,248, 0, 0, 0,120, 14, 84, 3, 0, 0, 0, 0,
+165, 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, 0, 0, 0, 0, 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,200, 23, 84, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,200, 36, 84, 3, 0, 0, 0, 0,
+168,240, 83, 3, 0, 0, 0, 0, 72,216, 83, 3, 0, 0, 0, 0,168,220, 83, 3, 0, 0, 0, 0, 24,221, 83, 3, 0, 0, 0, 0,
+232,218, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 4, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0,
+ 15, 15, 32, 4, 84, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 27, 84, 3, 0, 0, 0, 0,
+ 72, 35, 84, 3, 0, 0, 0, 0,184, 24, 84, 3, 0, 0, 0, 0, 40, 26, 84, 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, 40, 1, 0, 0,
+184, 24, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 40, 26, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,128,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,132, 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, 31, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 32, 4, 26, 0, 32, 4, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 4, 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, 32, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 26, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 24, 84, 3, 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, 31, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0, 31, 4, 0, 0, 18, 0, 0, 0, 57, 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, 32, 4, 58, 0, 0, 0, 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, 4, 0, 0, 26, 0, 0, 0, 83, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 4, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+152, 27, 84, 3, 0, 0, 0, 0,176, 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,200, 36, 84, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+184, 55, 84, 3, 0, 0, 0, 0,200, 23, 84, 3, 0, 0, 0, 0,200,219, 83, 3, 0, 0, 0, 0, 72,223, 83, 3, 0, 0, 0, 0,
+184,223, 83, 3, 0, 0, 0, 0, 56,220, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0,
+ 53, 1, 0, 0, 47, 2, 0, 0, 3, 3,222, 0,251, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+152, 40, 84, 3, 0, 0, 0, 0, 56, 54, 84, 3, 0, 0, 0, 0,184, 37, 84, 3, 0, 0, 0, 0, 40, 39, 84, 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, 40, 1, 0, 0,184, 37, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 40, 39, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 94, 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,221, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 66, 67, 0, 0,200, 65,
+ 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,222, 0,
+ 26, 0,222, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0,
+ 22, 2, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 39, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+184, 37, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0,100, 66, 0, 0,131, 67,
+ 0, 0, 79,195, 0, 0, 0, 0,205, 0, 0, 0,222, 0, 0, 0, 18, 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0,204, 0, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,204, 0, 0, 0, 18, 0, 0, 0,224, 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, 18, 2, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,222, 0,
+225, 0,205, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0,
+ 53, 1, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 0,225, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0,152, 40, 84, 3, 0, 0, 0, 0,169, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 42, 84, 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, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,
+ 8, 42, 84, 3, 0, 0, 0, 0,223, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,104, 42, 84, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65,208, 0, 0, 0,104, 42, 84, 3, 0, 0, 0, 0,222, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+120,159, 89, 3, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,
+120,159, 89, 3, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+104,181, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,189, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 72,129, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,200, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+200,110, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200,195, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+232,176, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,184, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 24,176, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184, 55, 84, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+104, 84, 84, 3, 0, 0, 0, 0,200, 36, 84, 3, 0, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0,248,221, 83, 3, 0, 0, 0, 0,
+ 88,219, 83, 3, 0, 0, 0, 0, 24,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 31, 4, 0, 0,
+ 85, 0, 0, 0,186, 2, 0, 0, 1, 1, 95, 2,102, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+232, 78, 84, 3, 0, 0, 0, 0, 72, 83, 84, 3, 0, 0, 0, 0,168, 56, 84, 3, 0, 0, 0, 0,200, 73, 84, 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, 40, 1, 0, 0,168, 56, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 24, 58, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 23, 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, 94, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65,
+ 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 95, 2,
+ 26, 0, 95, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 31, 4, 0, 0,
+ 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 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, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 58, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,136, 59, 84, 3, 0, 0, 0, 0,
+168, 56, 84, 3, 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,193, 1, 0, 0,193, 1, 0, 0,
+111, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 76, 2, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 59, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,248, 60, 84, 3, 0, 0, 0, 0,
+ 24, 58, 84, 3, 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,193, 1, 0, 0, 31, 4, 0, 0,
+111, 0, 0, 0,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 60, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,200, 73, 84, 3, 0, 0, 0, 0,
+136, 59, 84, 3, 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, 31, 4, 0, 0, 31, 4, 0, 0,
+111, 0, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 73, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+248, 60, 84, 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,193, 1, 0, 0, 31, 4, 0, 0,
+111, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 2, 76, 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, 56, 75, 84, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65,104, 3, 0, 0, 56, 75, 84, 3, 0, 0, 0, 0,159, 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, 25,134,144, 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,215, 62,232,190,
+ 48,180, 81,191,184,158, 81,191,117, 90,127, 63,158,227, 95, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,243, 90,129, 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, 99,240,191, 62,110,116, 85, 63,
+ 80,185, 70,188, 0, 0, 82,180,206, 44,182,190,198,158, 47, 62, 36,239, 74, 63, 0, 0, 8,179, 67,108,117,194,183,204,216, 65,
+104,156, 5,194,212,247,159,192,235, 62,114, 66, 59,254,213,193,157,225, 3, 66, 55, 8,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,215, 62,232,190,
+ 48,180, 81,191,184,158, 81,191,117, 90,127, 63,158,227, 95, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,243, 90,129, 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,255,189, 88, 64, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,189, 88, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+255,189, 88, 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,234,108, 69, 59, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 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, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0,
+ 68, 65, 84, 65, 48, 1, 0, 0,232, 78, 84, 3, 0, 0, 0, 0,160, 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, 8,184, 89, 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,
+ 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 84, 84, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+ 8,147, 84, 3, 0, 0, 0, 0,184, 55, 84, 3, 0, 0, 0, 0,168,220, 83, 3, 0, 0, 0, 0,104,222, 83, 3, 0, 0, 0, 0,
+216,222, 83, 3, 0, 0, 0, 0,136,221, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
+ 85, 0, 0, 0,255, 0, 0, 0, 2, 2,192, 1,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 24, 91, 84, 3, 0, 0, 0, 0,232,145, 84, 3, 0, 0, 0, 0, 88, 85, 84, 3, 0, 0, 0, 0,168, 89, 84, 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, 40, 1, 0, 0, 88, 85, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,200, 86, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 93, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 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,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65,
+ 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,192, 1,
+ 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
+ 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 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, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 86, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 56, 88, 84, 3, 0, 0, 0, 0,
+ 88, 85, 84, 3, 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,254,194, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,144, 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,144, 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,
+145, 0,200, 0,127, 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,
+111, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,145, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 88, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,168, 89, 84, 3, 0, 0, 0, 0,
+200, 86, 84, 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,191, 1, 0, 0,191, 1, 0, 0,
+111, 0, 0, 0,255, 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, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 89, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 88, 84, 3, 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,144, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,144, 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,231, 0,
+145, 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,191, 1, 0, 0,
+111, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 0,145, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 24, 91, 84, 3, 0, 0, 0, 0,164, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 92, 84, 3, 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, 40, 0, 0, 0, 88, 92, 84, 3, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0,
+120,159, 89, 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,160, 0, 0, 0, 8,147, 84, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+ 72,215, 84, 3, 0, 0, 0, 0,104, 84, 84, 3, 0, 0, 0, 0,104,222, 83, 3, 0, 0, 0, 0, 8,218, 83, 3, 0, 0, 0, 0,
+248,221, 83, 3, 0, 0, 0, 0,216,222, 83, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
+ 1, 1, 0, 0,186, 2, 0, 0, 12, 12,192, 1,186, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72,152, 84, 3, 0, 0, 0, 0, 40,214, 84, 3, 0, 0, 0, 0,248,147, 84, 3, 0, 0, 0, 0,216,150, 84, 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, 40, 1, 0, 0,248,147, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,104,149, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 98, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 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,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65,
+ 0,192,103, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,192, 1,
+ 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
+ 1, 1, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 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, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,104,149, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,216,150, 84, 3, 0, 0, 0, 0,
+248,147, 84, 3, 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, 0,199,195, 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,159, 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, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,
+160, 1,200, 0,142, 1, 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,
+ 27, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,160, 1, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,216,150, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+104,149, 84, 3, 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, 0,199,195, 0, 0, 0, 0,231, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,159, 1, 0, 0, 0, 0, 0, 0,230, 0, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,159, 1, 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,248, 0,
+160, 1, 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,191, 1, 0, 0,
+ 27, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 0,160, 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,
+ 68, 65, 84, 65, 0, 1, 0, 0, 72,152, 84, 3, 0, 0, 0, 0, 25, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,120,159, 89, 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, 3, 2, 0, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+ 72,215, 84, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,147, 84, 3, 0, 0, 0, 0,
+ 72,223, 83, 3, 0, 0, 0, 0, 88,219, 83, 3, 0, 0, 0, 0,120,218, 83, 3, 0, 0, 0, 0,184,223, 83, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 49, 2, 0, 0,186, 2, 0, 0, 1, 1,222, 0,138, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222, 84, 3, 0, 0, 0, 0,248,232, 84, 3, 0, 0, 0, 0,
+ 56,216, 84, 3, 0, 0, 0, 0,168,217, 84, 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, 40, 1, 0, 0, 56,216, 84, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,168,217, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 68,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,194, 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,131, 1, 0, 0,
+ 0, 0, 0, 0, 23, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 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,132, 1, 24, 0,132, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 4, 0, 0,254, 4, 0, 0, 49, 2, 0, 0, 49, 2, 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, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,217, 84, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,216, 84, 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, 33, 4, 0, 0,254, 4, 0, 0, 49, 2, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,222, 0,138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,219, 84, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0, 24,219, 84, 3, 0, 0, 0, 0,
+159, 0, 0, 0, 1, 0, 0, 0, 23,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,109,100, 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, 2,201,194, 63, 61,254,144,191,244,250, 39,191, 8,165, 39,191,142,164,206, 63,250,192,142, 63,
+180,164, 28, 63,149, 84, 28, 63,177,153,196,188,189,133, 76, 64, 8,108,228,190, 50,247,227,190, 81, 21, 64,191,119, 24,172,191,
+216, 49, 49, 65,152, 9, 52, 65,231, 70,158, 62, 24,234,167, 62,160,206,159,187, 0, 0,170,180,243, 26,182,189,252, 74,179, 61,
+195,111,128, 62, 0, 0,124, 51,211,120, 21,194,144, 5, 2, 66, 10,136,213,193,193,214,159,192,219, 38, 19, 66,196,173,255,193,
+158,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, 2,201,194, 63, 61,254,144,191,244,250, 39,191, 8,165, 39,191,142,164,206, 63,250,192,142, 63,
+180,164, 28, 63,149, 84, 28, 63,177,153,196,188,189,133, 76, 64, 8,108,228,190, 50,247,227,190, 81, 21, 64,191,119, 24,172,191,
+216, 49, 49, 65,152, 9, 52, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 2, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,240, 13,133, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,200,222, 84, 3, 0, 0, 0, 0,
+160, 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,
+ 8,184, 89, 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, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 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, 16, 0, 0, 0, 7, 0, 10, 0,
+ 0, 0, 0, 0, 1, 0, 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,
+ 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,208, 0, 0, 0,
+200,234, 84, 3, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,187, 85, 3, 0, 0, 0, 0, 40,215, 83, 3, 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,232,235, 84, 3, 0, 0, 0, 0,
+152,241, 84, 3, 0, 0, 0, 0, 8,242, 84, 3, 0, 0, 0, 0, 56,251, 84, 3, 0, 0, 0, 0,168,251, 84, 3, 0, 0, 0, 0,
+184,120, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,159, 89, 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,
+ 68, 65, 84, 65, 32, 0, 0, 0,232,235, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88,236, 84, 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, 68, 65, 84, 65, 32, 0, 0, 0,
+ 88,236, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200,236, 84, 3, 0, 0, 0, 0,232,235, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,236, 84, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0, 56,237, 84, 3, 0, 0, 0, 0, 88,236, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,237, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+168,237, 84, 3, 0, 0, 0, 0,200,236, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,168,237, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24,238, 84, 3, 0, 0, 0, 0,
+ 56,237, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 24,238, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,136,238, 84, 3, 0, 0, 0, 0,168,237, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,238, 84, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,248,238, 84, 3, 0, 0, 0, 0, 24,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 20, 4, 64, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,238, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+104,239, 84, 3, 0, 0, 0, 0,136,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 64, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,104,239, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,239, 84, 3, 0, 0, 0, 0,
+248,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+216,239, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72,240, 84, 3, 0, 0, 0, 0,104,239, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,240, 84, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,184,240, 84, 3, 0, 0, 0, 0,216,239, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 20, 4, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,240, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 40,241, 84, 3, 0, 0, 0, 0, 72,240, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20, 1, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 40,241, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,152,241, 84, 3, 0, 0, 0, 0,
+184,240, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+152,241, 84, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,241, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,242, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,120,242, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,236, 84, 3, 0, 0, 0, 0,
+200,236, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,242, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,232,242, 84, 3, 0, 0, 0, 0, 8,242, 84, 3, 0, 0, 0, 0, 88,236, 84, 3, 0, 0, 0, 0,
+168,237, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,242, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 88,243, 84, 3, 0, 0, 0, 0,120,242, 84, 3, 0, 0, 0, 0,200,236, 84, 3, 0, 0, 0, 0,
+ 24,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,243, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,200,243, 84, 3, 0, 0, 0, 0,232,242, 84, 3, 0, 0, 0, 0,168,237, 84, 3, 0, 0, 0, 0,
+ 24,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,243, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 56,244, 84, 3, 0, 0, 0, 0, 88,243, 84, 3, 0, 0, 0, 0, 56,237, 84, 3, 0, 0, 0, 0,
+248,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,244, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,168,244, 84, 3, 0, 0, 0, 0,200,243, 84, 3, 0, 0, 0, 0,136,238, 84, 3, 0, 0, 0, 0,
+248,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,244, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 24,245, 84, 3, 0, 0, 0, 0, 56,244, 84, 3, 0, 0, 0, 0, 24,238, 84, 3, 0, 0, 0, 0,
+104,239, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,245, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,136,245, 84, 3, 0, 0, 0, 0,168,244, 84, 3, 0, 0, 0, 0,168,237, 84, 3, 0, 0, 0, 0,
+104,239, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,245, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,248,245, 84, 3, 0, 0, 0, 0, 24,245, 84, 3, 0, 0, 0, 0,136,238, 84, 3, 0, 0, 0, 0,
+104,239, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,245, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,104,246, 84, 3, 0, 0, 0, 0,136,245, 84, 3, 0, 0, 0, 0, 24,238, 84, 3, 0, 0, 0, 0,
+248,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,246, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,216,246, 84, 3, 0, 0, 0, 0,248,245, 84, 3, 0, 0, 0, 0,168,237, 84, 3, 0, 0, 0, 0,
+216,239, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,246, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 72,247, 84, 3, 0, 0, 0, 0,104,246, 84, 3, 0, 0, 0, 0,104,239, 84, 3, 0, 0, 0, 0,
+ 72,240, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,247, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,184,247, 84, 3, 0, 0, 0, 0,216,246, 84, 3, 0, 0, 0, 0,216,239, 84, 3, 0, 0, 0, 0,
+ 72,240, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,247, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 40,248, 84, 3, 0, 0, 0, 0, 72,247, 84, 3, 0, 0, 0, 0,216,239, 84, 3, 0, 0, 0, 0,
+184,240, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,248, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,152,248, 84, 3, 0, 0, 0, 0,184,247, 84, 3, 0, 0, 0, 0, 72,240, 84, 3, 0, 0, 0, 0,
+184,240, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,248, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 8,249, 84, 3, 0, 0, 0, 0, 40,248, 84, 3, 0, 0, 0, 0,232,235, 84, 3, 0, 0, 0, 0,
+ 40,241, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,249, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,120,249, 84, 3, 0, 0, 0, 0,152,248, 84, 3, 0, 0, 0, 0, 40,241, 84, 3, 0, 0, 0, 0,
+152,241, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,249, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,232,249, 84, 3, 0, 0, 0, 0, 8,249, 84, 3, 0, 0, 0, 0, 56,237, 84, 3, 0, 0, 0, 0,
+152,241, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,249, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 88,250, 84, 3, 0, 0, 0, 0,120,249, 84, 3, 0, 0, 0, 0,136,238, 84, 3, 0, 0, 0, 0,
+152,241, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,250, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0,200,250, 84, 3, 0, 0, 0, 0,232,249, 84, 3, 0, 0, 0, 0,184,240, 84, 3, 0, 0, 0, 0,
+ 40,241, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,250, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 56,251, 84, 3, 0, 0, 0, 0, 88,250, 84, 3, 0, 0, 0, 0, 72,240, 84, 3, 0, 0, 0, 0,
+152,241, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,251, 84, 3, 0, 0, 0, 0,
+197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,250, 84, 3, 0, 0, 0, 0,232,235, 84, 3, 0, 0, 0, 0,
+216,239, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,251, 84, 3, 0, 0, 0, 0,
+199, 0, 0, 0, 1, 0, 0, 0,120,255, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,237, 84, 3, 0, 0, 0, 0,
+ 88,236, 84, 3, 0, 0, 0, 0,200,236, 84, 3, 0, 0, 0, 0, 24,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0, 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56,187, 85, 3, 0, 0, 0, 0, 56,187, 85, 3, 0, 0, 0, 0,152,252, 84, 3, 0, 0, 0, 0,
+ 8,254, 84, 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, 40, 1, 0, 0,152,252, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 8,254, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+255, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,254, 84, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,152,252, 84, 3, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
+ 18, 0, 0, 4, 6, 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,214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,120,255, 84, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+120, 12, 85, 3, 0, 0, 0, 0,168,251, 84, 3, 0, 0, 0, 0,152,241, 84, 3, 0, 0, 0, 0,136,238, 84, 3, 0, 0, 0, 0,
+248,238, 84, 3, 0, 0, 0, 0, 56,237, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,254, 4, 0, 0,
+ 0, 0, 0, 0, 63, 0, 0, 0, 15, 15,234, 0, 64, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72, 3, 85, 3, 0, 0, 0, 0,248, 10, 85, 3, 0, 0, 0, 0,104, 0, 85, 3, 0, 0, 0, 0,216, 1, 85, 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, 40, 1, 0, 0,104, 0, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,216, 1, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,116, 68, 0, 0, 0, 0, 0, 0,208, 65, 0,128,190, 67, 0,192, 25, 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,233, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65,
+ 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,234, 0,
+ 26, 0,234, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,254, 4, 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,234, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,216, 1, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+104, 0, 85, 3, 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,233, 0, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,233, 0, 0, 0, 18, 0, 0, 0, 37, 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,234, 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, 21, 4, 0, 0,254, 4, 0, 0,
+ 26, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 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,
+ 68, 65, 84, 65,216, 0, 0, 0, 72, 3, 85, 3, 0, 0, 0, 0,176, 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,120, 12, 85, 3, 0, 0, 0, 0,
+199, 0, 0, 0, 1, 0, 0, 0, 24, 52, 85, 3, 0, 0, 0, 0,120,255, 84, 3, 0, 0, 0, 0,136,238, 84, 3, 0, 0, 0, 0,
+104,239, 84, 3, 0, 0, 0, 0, 24,238, 84, 3, 0, 0, 0, 0,248,238, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 4, 0, 0,254, 4, 0, 0, 65, 0, 0, 0,186, 2, 0, 0, 4, 4,234, 0,122, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200, 35, 85, 3, 0, 0, 0, 0,152, 50, 85, 3, 0, 0, 0, 0,104, 13, 85, 3, 0, 0, 0, 0,
+216, 14, 85, 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, 40, 1, 0, 0,104, 13, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+216, 14, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 55, 0, 0,106, 67, 0, 0, 0, 0, 0, 0,248, 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,233, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0,
+ 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 4, 10, 0,234, 0, 31, 0,234, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 4, 0, 0,254, 4, 0, 0,156, 2, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+234, 0, 31, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216, 14, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,104, 13, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 67, 0, 64, 80,196, 0, 0, 0, 0,
+ 0, 0, 0, 0,255,255, 88, 67, 0,192, 22,196, 0, 0, 0, 0,217, 0, 0, 0,234, 0, 0, 0, 0, 0, 0, 0, 90, 2, 0, 0,
+ 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 90, 2, 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,234, 0, 91, 2,217, 0, 91, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 4, 0, 0,254, 4, 0, 0, 65, 0, 0, 0,155, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+234, 0, 91, 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, 68, 65, 84, 65,248, 0, 0, 0,200, 35, 85, 3, 0, 0, 0, 0,165, 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,
+ 0, 0, 0, 0, 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,
+ 24, 52, 85, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 24, 92, 85, 3, 0, 0, 0, 0,120, 12, 85, 3, 0, 0, 0, 0,
+ 40,241, 84, 3, 0, 0, 0, 0,184,240, 84, 3, 0, 0, 0, 0, 72,240, 84, 3, 0, 0, 0, 0,152,241, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 1, 1, 19, 2, 20, 1, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 75, 85, 3, 0, 0, 0, 0,248, 90, 85, 3, 0, 0, 0, 0,
+ 8, 53, 85, 3, 0, 0, 0, 0, 40, 70, 85, 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, 40, 1, 0, 0, 8, 53, 85, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,120, 54, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 4, 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, 18, 2, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 19, 2, 26, 0, 19, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 19, 4, 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, 19, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,120, 54, 85, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,232, 55, 85, 3, 0, 0, 0, 0, 8, 53, 85, 3, 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, 1, 2, 0, 0, 1, 2, 0, 0, 26, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,250, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,232, 55, 85, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 88, 57, 85, 3, 0, 0, 0, 0,120, 54, 85, 3, 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, 1, 2, 0, 0, 19, 4, 0, 0, 26, 0, 0, 0, 26, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88, 57, 85, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 40, 70, 85, 3, 0, 0, 0, 0,232, 55, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
+ 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0,
+ 18, 0, 0, 0,129, 1, 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,129, 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, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 19, 4, 0, 0, 26, 0, 0, 0, 19, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 70, 85, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 57, 85, 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, 1, 2, 0, 0, 19, 4, 0, 0, 26, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 19, 2,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 71, 85, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,152, 71, 85, 3, 0, 0, 0, 0,
+159, 0, 0, 0, 1, 0, 0, 0, 37,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,173,116, 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, 4, 6,158, 63,214, 78,155,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,203,232,152, 63,
+180,164, 28, 63,149, 84, 28, 63, 1,127,159,188,123, 18, 91, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,168, 86,184,191,
+216, 49, 49, 65,152, 9, 52, 65, 80, 25,195, 62,218,249,206, 62, 0,237,196,187, 0, 0, 96,179,234, 2,170,189,191, 98,167, 61,
+ 1,208,111, 62, 0, 0,224, 49,254,120, 21,194,182, 5, 2, 66, 70,136,213,193,239,214,159,192, 5, 39, 19, 66, 15,174,255,193,
+217,101,210, 65,219, 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, 4, 6,158, 63,214, 78,155,191,244,250, 39,191, 8,165, 39,191,170,164,167, 63,203,232,152, 63,
+180,164, 28, 63,149, 84, 28, 63, 1,127,159,188,123, 18, 91, 64, 8,108,228,190, 50,247,227,190,222,212, 27,191,168, 86,184,191,
+216, 49, 49, 65,152, 9, 52, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 2, 35,171,190,214,211,111, 65,214,211,111, 65,
+ 0, 0, 0, 0, 0, 0, 0, 0,223, 34, 9, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0, 72, 75, 85, 3, 0, 0, 0, 0,
+160, 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,
+ 8,184, 89, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0,
+ 0, 0, 0, 0, 1, 0, 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,
+ 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,
+ 24, 92, 85, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,184,120, 85, 3, 0, 0, 0, 0, 24, 52, 85, 3, 0, 0, 0, 0,
+216,239, 84, 3, 0, 0, 0, 0,168,237, 84, 3, 0, 0, 0, 0,104,239, 84, 3, 0, 0, 0, 0, 72,240, 84, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 21, 1, 0, 0,186, 2, 0, 0, 16, 16, 20, 4,166, 1, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 95, 85, 3, 0, 0, 0, 0,152,119, 85, 3, 0, 0, 0, 0,
+ 8, 93, 85, 3, 0, 0, 0, 0,120, 94, 85, 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, 40, 1, 0, 0, 8, 93, 85, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,120, 94, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 37, 68,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,130, 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, 19, 4, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 4, 26, 0, 20, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 21, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,120, 94, 85, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 93, 85, 3, 0, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68,
+ 0, 0, 32,193, 0, 0, 0, 68,110,142,241,195, 55,199,120, 68,240, 80,128,193,136, 2, 4, 68, 3, 4, 0, 0, 20, 4, 0, 0,
+ 18, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0,
+ 18, 0, 0, 0,139, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,236, 81,184, 61, 10,215, 19, 64,
+ 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 20, 4,140, 1, 3, 4,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 20, 4,140, 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, 68, 65, 84, 65, 32, 1, 0, 0,232, 95, 85, 3, 0, 0, 0, 0,
+177, 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, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,215, 19, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,159, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 6, 61,181, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,120, 85, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 24, 92, 85, 3, 0, 0, 0, 0,232,235, 84, 3, 0, 0, 0, 0,216,239, 84, 3, 0, 0, 0, 0,
+184,240, 84, 3, 0, 0, 0, 0, 40,241, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 0, 0,
+ 0, 0, 0, 0, 19, 1, 0, 0, 6, 6, 0, 2, 20, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+248,125, 85, 3, 0, 0, 0, 0, 24,186, 85, 3, 0, 0, 0, 0,168,121, 85, 3, 0, 0, 0, 0,136,124, 85, 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, 40, 1, 0, 0,168,121, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 24,123, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 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,255, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65,
+ 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 0, 2,
+ 26, 0, 0, 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,255, 1, 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, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,123, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,136,124, 85, 3, 0, 0, 0, 0,
+168,121, 85, 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,
+ 26, 0, 0, 0, 19, 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,
+ 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,124, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 24,123, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0,191, 0, 0,192, 63,
+ 0, 0, 64, 60, 0, 0,125, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 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, 1, 0, 0,
+ 26, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,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, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 33, 0, 0,248,125, 85, 3, 0, 0, 0, 0,170, 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, 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,100, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62,
+ 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,100, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,208, 0, 0, 0,200,187, 85, 3, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,202, 86, 3, 0, 0, 0, 0,
+200,234, 84, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,
+116, 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,
+232,188, 85, 3, 0, 0, 0, 0,184,193, 85, 3, 0, 0, 0, 0, 40,194, 85, 3, 0, 0, 0, 0,152,201, 85, 3, 0, 0, 0, 0,
+ 8,202, 85, 3, 0, 0, 0, 0,152,126, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+120,159, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,100,177, 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,232,188, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 88,189, 85, 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,
+ 68, 65, 84, 65, 32, 0, 0, 0, 88,189, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200,189, 85, 3, 0, 0, 0, 0,
+232,188, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+200,189, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 56,190, 85, 3, 0, 0, 0, 0, 88,189, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,190, 85, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,168,190, 85, 3, 0, 0, 0, 0,200,189, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,190, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 24,191, 85, 3, 0, 0, 0, 0, 56,190, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 24,191, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,136,191, 85, 3, 0, 0, 0, 0,
+168,190, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+136,191, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248,191, 85, 3, 0, 0, 0, 0, 24,191, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,191, 85, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,104,192, 85, 3, 0, 0, 0, 0,136,191, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 6, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,192, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+216,192, 85, 3, 0, 0, 0, 0,248,191, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6,116, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,216,192, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72,193, 85, 3, 0, 0, 0, 0,
+104,192, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,116, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 72,193, 85, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184,193, 85, 3, 0, 0, 0, 0,216,192, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,193, 85, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,193, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,194, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+152,194, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,189, 85, 3, 0, 0, 0, 0,200,189, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,194, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 8,195, 85, 3, 0, 0, 0, 0, 40,194, 85, 3, 0, 0, 0, 0, 88,189, 85, 3, 0, 0, 0, 0,168,190, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,195, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+120,195, 85, 3, 0, 0, 0, 0,152,194, 85, 3, 0, 0, 0, 0,200,189, 85, 3, 0, 0, 0, 0, 24,191, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,195, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+232,195, 85, 3, 0, 0, 0, 0, 8,195, 85, 3, 0, 0, 0, 0,168,190, 85, 3, 0, 0, 0, 0, 24,191, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,195, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 88,196, 85, 3, 0, 0, 0, 0,120,195, 85, 3, 0, 0, 0, 0,232,188, 85, 3, 0, 0, 0, 0,136,191, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,196, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+200,196, 85, 3, 0, 0, 0, 0,232,195, 85, 3, 0, 0, 0, 0, 56,190, 85, 3, 0, 0, 0, 0,136,191, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,196, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 56,197, 85, 3, 0, 0, 0, 0, 88,196, 85, 3, 0, 0, 0, 0,168,190, 85, 3, 0, 0, 0, 0,248,191, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,197, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+168,197, 85, 3, 0, 0, 0, 0,200,196, 85, 3, 0, 0, 0, 0, 24,191, 85, 3, 0, 0, 0, 0,248,191, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,197, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 24,198, 85, 3, 0, 0, 0, 0, 56,197, 85, 3, 0, 0, 0, 0,136,191, 85, 3, 0, 0, 0, 0,104,192, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,198, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+136,198, 85, 3, 0, 0, 0, 0,168,197, 85, 3, 0, 0, 0, 0,248,191, 85, 3, 0, 0, 0, 0,104,192, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,198, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+248,198, 85, 3, 0, 0, 0, 0, 24,198, 85, 3, 0, 0, 0, 0, 24,191, 85, 3, 0, 0, 0, 0,216,192, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,198, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+104,199, 85, 3, 0, 0, 0, 0,136,198, 85, 3, 0, 0, 0, 0, 56,190, 85, 3, 0, 0, 0, 0,216,192, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,199, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+216,199, 85, 3, 0, 0, 0, 0,248,198, 85, 3, 0, 0, 0, 0,104,192, 85, 3, 0, 0, 0, 0,216,192, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,199, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 72,200, 85, 3, 0, 0, 0, 0,104,199, 85, 3, 0, 0, 0, 0,232,188, 85, 3, 0, 0, 0, 0, 72,193, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,200, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+184,200, 85, 3, 0, 0, 0, 0,216,199, 85, 3, 0, 0, 0, 0,168,190, 85, 3, 0, 0, 0, 0, 72,193, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,200, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 40,201, 85, 3, 0, 0, 0, 0, 72,200, 85, 3, 0, 0, 0, 0,248,191, 85, 3, 0, 0, 0, 0,184,193, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,201, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+152,201, 85, 3, 0, 0, 0, 0,184,200, 85, 3, 0, 0, 0, 0,136,191, 85, 3, 0, 0, 0, 0,184,193, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,201, 85, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 40,201, 85, 3, 0, 0, 0, 0, 72,193, 85, 3, 0, 0, 0, 0,184,193, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,202, 85, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+216,205, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,190, 85, 3, 0, 0, 0, 0, 88,189, 85, 3, 0, 0, 0, 0,
+200,189, 85, 3, 0, 0, 0, 0, 24,191, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0,
+ 71, 4, 0, 0, 97, 4, 0, 0, 7, 7,119, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 40,193, 55, 3, 0, 0, 0, 0,
+152,201, 86, 3, 0, 0, 0, 0,152,201, 86, 3, 0, 0, 0, 0,248,202, 85, 3, 0, 0, 0, 0,104,204, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,104, 96, 3, 0, 0, 0, 0, 72, 22, 94, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0,248,202, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,104,204, 85, 3, 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,238, 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,118, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65,
+ 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,119, 7,
+ 26, 0,119, 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,118, 7, 0, 0,
+ 71, 4, 0, 0, 96, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 7, 26, 0, 2, 0, 1, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,195, 55, 3, 0, 0, 0, 0,
+120, 77,142, 4, 0, 0, 0, 0,120, 77,142, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 24, 94, 3, 0, 0, 0, 0,232, 28, 94, 3, 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,104,204, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+248,202, 85, 3, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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,
+ 97, 4, 0, 0, 97, 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, 72,194, 55, 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,
+ 68, 65, 84, 65,160, 0, 0, 0,216,205, 85, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,152, 94, 86, 3, 0, 0, 0, 0,
+ 8,202, 85, 3, 0, 0, 0, 0,136,191, 85, 3, 0, 0, 0, 0,104,192, 85, 3, 0, 0, 0, 0,216,192, 85, 3, 0, 0, 0, 0,
+ 56,190, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,115, 3, 0, 0,
+ 4, 4, 70, 1,116, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,188, 55, 3, 0, 0, 0, 0, 72, 85, 86, 3, 0, 0, 0, 0,
+ 24, 93, 86, 3, 0, 0, 0, 0,200,206, 85, 3, 0, 0, 0, 0, 56,208, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200, 22, 94, 3, 0, 0, 0, 0,184, 29, 94, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+200,206, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 56,208, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,163, 67, 0, 0, 0, 0, 0, 0,248, 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, 69, 1, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 70, 1, 31, 0, 70, 1, 31, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,118, 7, 0, 0, 85, 3, 0, 0,115, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 1, 31, 0, 3, 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, 56,192, 55, 3, 0, 0, 0, 0,248, 24,142, 4, 0, 0, 0, 0,
+248, 24,142, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 31, 94, 3, 0, 0, 0, 0,
+ 24, 34, 94, 3, 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,208, 85, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,206, 85, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,163, 67, 0, 64, 85,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,154, 67, 0, 64, 85,196, 0, 0, 0, 0,
+ 53, 1, 0, 0, 70, 1, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 84, 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, 70, 1, 85, 3, 53, 1, 85, 3, 0, 0,
+104, 88,127, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 49, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 84, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 1, 85, 3, 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,232,189, 55, 3, 0, 0, 0, 0,152, 68,129, 4, 0, 0, 0, 0,
+ 40, 15, 54, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 35, 94, 3, 0, 0, 0, 0,
+ 72, 39, 94, 3, 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,
+ 72, 85, 86, 3, 0, 0, 0, 0,165, 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,184,172,127, 4, 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,152, 94, 86, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+152,107, 86, 3, 0, 0, 0, 0,216,205, 85, 3, 0, 0, 0, 0,232,188, 85, 3, 0, 0, 0, 0, 72,193, 85, 3, 0, 0, 0, 0,
+184,193, 85, 3, 0, 0, 0, 0,136,191, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0,
+ 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 48, 6, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,147, 55, 3, 0, 0, 0, 0,
+104, 98, 86, 3, 0, 0, 0, 0, 24,106, 86, 3, 0, 0, 0, 0,136, 95, 86, 3, 0, 0, 0, 0,248, 96, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 30, 94, 3, 0, 0, 0, 0, 24, 40, 94, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0,136, 95, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,248, 96, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,137, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,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, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65,
+ 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6,
+ 26, 0, 48, 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, 47, 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, 48, 6, 26, 0, 5, 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,104,149, 55, 3, 0, 0, 0, 0,
+200,111,129, 4, 0, 0, 0, 0,200,111,129, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 42, 94, 3, 0, 0, 0, 0,120, 44, 94, 3, 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, 96, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+136, 95, 86, 3, 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, 47, 6, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 47, 6, 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, 48, 6,
+ 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, 47, 6, 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, 48, 6, 66, 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,120,148, 55, 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,
+184, 45, 94, 3, 0, 0, 0, 0, 56, 51, 94, 3, 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,104, 98, 86, 3, 0, 0, 0, 0,176, 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,152,107, 86, 3, 0, 0, 0, 0,
+199, 0, 0, 0, 1, 0, 0, 0,152,126, 86, 3, 0, 0, 0, 0,152, 94, 86, 3, 0, 0, 0, 0,104,192, 85, 3, 0, 0, 0, 0,
+248,191, 85, 3, 0, 0, 0, 0, 24,191, 85, 3, 0, 0, 0, 0,216,192, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 49, 6, 0, 0,118, 7, 0, 0,117, 3, 0, 0, 69, 4, 0, 0, 3, 3, 70, 1,209, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88,144, 55, 3, 0, 0, 0, 0,104,111, 86, 3, 0, 0, 0, 0, 24,125, 86, 3, 0, 0, 0, 0,136,108, 86, 3, 0, 0, 0, 0,
+248,109, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 40, 94, 3, 0, 0, 0, 0,
+ 8, 52, 94, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,108, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+248,109, 86, 3, 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,163, 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, 69, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0, 0, 66, 67, 0, 0,200, 65, 0, 0, 66, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 4, 10, 0, 70, 1, 26, 0, 70, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 49, 6, 0, 0,118, 7, 0, 0, 44, 4, 0, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 70, 1, 26, 0, 7, 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,
+104,146, 55, 3, 0, 0, 0, 0, 56,223,128, 4, 0, 0, 0, 0, 56,223,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,248, 53, 94, 3, 0, 0, 0, 0,104, 56, 94, 3, 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,109, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,136,108, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,128,154, 67, 0, 0, 37,195, 0, 0, 0, 0, 53, 1, 0, 0, 70, 1, 0, 0, 18, 0, 0, 0,182, 0, 0, 0,
+ 0, 0, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 52, 1, 0, 0, 18, 0, 0, 0,182, 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, 18, 6, 0, 0, 2, 0, 3, 3,
+ 0, 0, 0, 4, 6, 0, 70, 1,183, 0, 53, 1,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 49, 6, 0, 0,118, 7, 0, 0,117, 3, 0, 0, 43, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 70, 1,183, 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,
+120,145, 55, 3, 0, 0, 0, 0,184, 89,128, 4, 0, 0, 0, 0,184, 89,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,168, 57, 94, 3, 0, 0, 0, 0, 8, 60, 94, 3, 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, 1, 0, 0,104,111, 86, 3, 0, 0, 0, 0,169, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 87,141, 4, 0, 0, 0, 0,248, 87,141, 4, 0, 0, 0, 0,216,112, 86, 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, 1, 0, 0, 0,
+ 68, 65, 84, 65, 16, 0, 0, 0,216,112, 86, 3, 0, 0, 0, 0,223, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,
+ 56,113, 86, 3, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, 56,113, 86, 3, 0, 0, 0, 0,222, 0, 0, 0, 14, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0,
+ 20, 0, 0, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,120,159, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,104,181, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,189, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 72,129, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,200, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,200,110, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200,195, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,232,176, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,184, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 24,176, 89, 3, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0,152,126, 86, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+152,107, 86, 3, 0, 0, 0, 0, 72,193, 85, 3, 0, 0, 0, 0,168,190, 85, 3, 0, 0, 0, 0,248,191, 85, 3, 0, 0, 0, 0,
+184,193, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 93, 0, 0, 0, 69, 4, 0, 0,
+ 1, 1, 48, 6,233, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 88,150, 55, 3, 0, 0, 0, 0,232,183, 86, 3, 0, 0, 0, 0,
+120,200, 86, 3, 0, 0, 0, 0,136,127, 86, 3, 0, 0, 0, 0,200,178, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,136, 52, 94, 3, 0, 0, 0, 0, 8, 21, 55, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+136,127, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,248,128, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64,123, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,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, 47, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 48, 6, 26, 0, 48, 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, 47, 6, 0, 0, 93, 0, 0, 0,118, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 26, 0, 9, 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,160, 55, 3, 0, 0, 0, 0,152, 81,128, 4, 0, 0, 0, 0,
+152, 81,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 64, 94, 3, 0, 0, 0, 0,
+ 72, 68, 94, 3, 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,128, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,200,154, 86, 3, 0, 0, 0, 0,136,127, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 32, 67, 0,192, 37,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0,192, 37,196, 0, 0, 0, 0,
+143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,150, 2, 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, 0, 0, 0, 0,150, 2, 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,160, 0,151, 2,143, 0,151, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,175, 1, 0, 0, 69, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,151, 2, 10, 0, 5, 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,120,157, 55, 3, 0, 0, 0, 0,136, 13,129, 4, 0, 0, 0, 0,
+136, 13,129, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 69, 94, 3, 0, 0, 0, 0,
+248, 71, 94, 3, 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,154, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,216,157, 86, 3, 0, 0, 0, 0,248,128, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 33, 67, 0,128,157,195, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67,136,135,157,195, 0, 0, 0, 0,
+143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 55, 1, 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, 0, 0, 0, 0, 55, 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, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 56, 1,143, 0, 56, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,119, 0, 0, 0,174, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 56, 1, 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,158, 55, 3, 0, 0, 0, 0,248, 8, 54, 3, 0, 0, 0, 0,
+248, 8, 54, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 73, 94, 3, 0, 0, 0, 0,
+168, 75, 94, 3, 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,
+216,157, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,200,178, 86, 3, 0, 0, 0, 0,200,154, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 52, 67, 0,192,115,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,115,196, 0, 0, 0, 0,
+163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,206, 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, 0, 0, 0, 0,206, 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, 0, 6, 0,180, 0,207, 3,163, 0,207, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 6, 0, 0, 47, 6, 0, 0,119, 0, 0, 0, 69, 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, 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,104,152, 55, 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, 68, 65, 84, 65, 40, 1, 0, 0,
+200,178, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,157, 86, 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,160, 0, 0, 0, 47, 6, 0, 0,119, 0, 0, 0, 69, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 5,207, 3, 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,120,151, 55, 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,168,106, 94, 3, 0, 0, 0, 0,
+216,105, 94, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,180, 86, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,
+ 56,180, 86, 3, 0, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,200,120,204, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
+ 0, 0, 0, 0, 0, 0, 0, 0,218,205, 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,177,157,229, 62, 64, 74, 36,191,222,160, 81,191,184,158, 81,191,
+115, 90,127, 63,248, 96,158, 62, 9, 46,185, 62, 35, 44,185, 62,143,180,109,188,235, 2,183, 63,129, 63,228,190, 42, 61,228,190,
+ 0, 0, 0, 0, 0, 0, 0, 0, 21,163,108, 65,214,211,111, 65, 39,240,191, 62,125,116, 85, 63, 96,189, 70,188, 0, 0,186,180,
+ 34,195,128,190, 66, 66,248, 61,254,111, 15, 63, 0, 0,150, 52, 61,119,117,194,106,214,216, 65, 98,162, 5,194,251,254,159,192,
+ 72, 51,114, 66,244,243,213,193, 71,219, 3, 66,160, 0,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,177,157,229, 62, 64, 74, 36,191,222,160, 81,191,184,158, 81,191,
+115, 90,127, 63,248, 96,158, 62, 9, 46,185, 62, 35, 44,185, 62,143,180,109,188,235, 2,183, 63,129, 63,228,190, 42, 61,228,190,
+ 0, 0, 0, 0, 0, 0, 0, 0, 21,163,108, 65,214,211,111, 65, 97,199,184, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 97,199,184, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,199,184, 63, 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,142, 79,168, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,255,255, 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, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,
+232,183, 86, 3, 0, 0, 0, 0,160, 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, 8,184, 89, 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, 1, 0, 0, 0, 1, 0, 0, 0,
+ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 24, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+205,204,204, 61, 0, 64,156, 69, 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, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0,255,255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,208, 0, 0, 0, 40,202, 86, 3, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184,185, 87, 3, 0, 0, 0, 0,
+200,187, 85, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,
+111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72,203, 86, 3, 0, 0, 0, 0,248,208, 86, 3, 0, 0, 0, 0,104,209, 86, 3, 0, 0, 0, 0, 40,218, 86, 3, 0, 0, 0, 0,
+152,218, 86, 3, 0, 0, 0, 0,184,150, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+120,159, 89, 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, 68, 65, 84, 65, 32, 0, 0, 0, 72,203, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+184,203, 86, 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,
+ 68, 65, 84, 65, 32, 0, 0, 0,184,203, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 40,204, 86, 3, 0, 0, 0, 0,
+ 72,203, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 40,204, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,152,204, 86, 3, 0, 0, 0, 0,184,203, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,204, 86, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0, 8,205, 86, 3, 0, 0, 0, 0, 40,204, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,205, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+120,205, 86, 3, 0, 0, 0, 0,152,204, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 2, 1, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,120,205, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,232,205, 86, 3, 0, 0, 0, 0,
+ 8,205, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+232,205, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88,206, 86, 3, 0, 0, 0, 0,120,205, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,206, 86, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,200,206, 86, 3, 0, 0, 0, 0,232,205, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 20, 4, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,206, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 56,207, 86, 3, 0, 0, 0, 0, 88,206, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 56,207, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,168,207, 86, 3, 0, 0, 0, 0,
+200,206, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+168,207, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24,208, 86, 3, 0, 0, 0, 0, 56,207, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,124, 3, 20, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,208, 86, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,136,208, 86, 3, 0, 0, 0, 0,168,207, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+124, 3,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,208, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+248,208, 86, 3, 0, 0, 0, 0, 24,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 0, 20, 1, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,248,208, 86, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+136,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+104,209, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216,209, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+184,203, 86, 3, 0, 0, 0, 0, 40,204, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+216,209, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72,210, 86, 3, 0, 0, 0, 0,104,209, 86, 3, 0, 0, 0, 0,
+184,203, 86, 3, 0, 0, 0, 0, 8,205, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 72,210, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,210, 86, 3, 0, 0, 0, 0,216,209, 86, 3, 0, 0, 0, 0,
+ 40,204, 86, 3, 0, 0, 0, 0,120,205, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+184,210, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 40,211, 86, 3, 0, 0, 0, 0, 72,210, 86, 3, 0, 0, 0, 0,
+ 8,205, 86, 3, 0, 0, 0, 0,120,205, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 40,211, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152,211, 86, 3, 0, 0, 0, 0,184,210, 86, 3, 0, 0, 0, 0,
+ 8,205, 86, 3, 0, 0, 0, 0,232,205, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+152,211, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8,212, 86, 3, 0, 0, 0, 0, 40,211, 86, 3, 0, 0, 0, 0,
+232,205, 86, 3, 0, 0, 0, 0, 88,206, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 8,212, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,120,212, 86, 3, 0, 0, 0, 0,152,211, 86, 3, 0, 0, 0, 0,
+152,204, 86, 3, 0, 0, 0, 0,200,206, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+120,212, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232,212, 86, 3, 0, 0, 0, 0, 8,212, 86, 3, 0, 0, 0, 0,
+ 88,206, 86, 3, 0, 0, 0, 0,200,206, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+232,212, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 88,213, 86, 3, 0, 0, 0, 0,120,212, 86, 3, 0, 0, 0, 0,
+ 72,203, 86, 3, 0, 0, 0, 0,232,205, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 88,213, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,200,213, 86, 3, 0, 0, 0, 0,232,212, 86, 3, 0, 0, 0, 0,
+ 72,203, 86, 3, 0, 0, 0, 0,200,206, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+200,213, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 56,214, 86, 3, 0, 0, 0, 0, 88,213, 86, 3, 0, 0, 0, 0,
+120,205, 86, 3, 0, 0, 0, 0, 56,207, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 56,214, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,214, 86, 3, 0, 0, 0, 0,200,213, 86, 3, 0, 0, 0, 0,
+152,204, 86, 3, 0, 0, 0, 0, 56,207, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+168,214, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 24,215, 86, 3, 0, 0, 0, 0, 56,214, 86, 3, 0, 0, 0, 0,
+ 88,206, 86, 3, 0, 0, 0, 0, 56,207, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 24,215, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,136,215, 86, 3, 0, 0, 0, 0,168,214, 86, 3, 0, 0, 0, 0,
+168,207, 86, 3, 0, 0, 0, 0, 24,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+136,215, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248,215, 86, 3, 0, 0, 0, 0, 24,215, 86, 3, 0, 0, 0, 0,
+120,205, 86, 3, 0, 0, 0, 0, 24,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+248,215, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,216, 86, 3, 0, 0, 0, 0,136,215, 86, 3, 0, 0, 0, 0,
+ 56,207, 86, 3, 0, 0, 0, 0,168,207, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+104,216, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216,216, 86, 3, 0, 0, 0, 0,248,215, 86, 3, 0, 0, 0, 0,
+232,205, 86, 3, 0, 0, 0, 0,136,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+216,216, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72,217, 86, 3, 0, 0, 0, 0,104,216, 86, 3, 0, 0, 0, 0,
+168,207, 86, 3, 0, 0, 0, 0,136,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 72,217, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,217, 86, 3, 0, 0, 0, 0,216,216, 86, 3, 0, 0, 0, 0,
+ 8,205, 86, 3, 0, 0, 0, 0,248,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+184,217, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 40,218, 86, 3, 0, 0, 0, 0, 72,217, 86, 3, 0, 0, 0, 0,
+ 24,208, 86, 3, 0, 0, 0, 0,248,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 40,218, 86, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217, 86, 3, 0, 0, 0, 0,
+136,208, 86, 3, 0, 0, 0, 0,248,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+152,218, 86, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,104,222, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8,205, 86, 3, 0, 0, 0, 0,184,203, 86, 3, 0, 0, 0, 0, 40,204, 86, 3, 0, 0, 0, 0,120,205, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0, 7, 7,255, 4, 27, 0, 1, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,185, 87, 3, 0, 0, 0, 0, 40,185, 87, 3, 0, 0, 0, 0,
+136,219, 86, 3, 0, 0, 0, 0,248,220, 86, 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, 40, 1, 0, 0,136,219, 86, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,248,220, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,220, 86, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,219, 86, 3, 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, 0, 63, 0, 0, 0, 64,
+ 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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,214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,222, 86, 3, 0, 0, 0, 0,
+199, 0, 0, 0, 1, 0, 0, 0, 8, 6, 87, 3, 0, 0, 0, 0,152,218, 86, 3, 0, 0, 0, 0,200,206, 86, 3, 0, 0, 0, 0,
+ 88,206, 86, 3, 0, 0, 0, 0, 56,207, 86, 3, 0, 0, 0, 0,152,204, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 4, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 4, 4,234, 0, 20, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,184,245, 86, 3, 0, 0, 0, 0,136, 4, 87, 3, 0, 0, 0, 0, 88,223, 86, 3, 0, 0, 0, 0,
+200,224, 86, 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, 40, 1, 0, 0, 88,223, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+200,224, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 55, 0, 0,106, 67, 0, 0, 0, 0, 0, 0,248, 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,233, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0,
+ 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 4, 10, 0,234, 0, 31, 0,234, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 4, 0, 0,254, 4, 0, 0,245, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+234, 0, 31, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,224, 86, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 88,223, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 67, 0, 64, 80,196, 0, 0, 0, 0,
+ 0, 0, 0, 0,254,255, 88, 67,254,255,116,195, 0, 0, 0, 0,217, 0, 0, 0,234, 0, 0, 0, 0, 0, 0, 0,244, 0, 0, 0,
+ 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0,244, 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, 1, 0, 0, 1, 0, 7, 0,
+ 18, 0, 0, 4, 6, 0,234, 0,245, 0,217, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 21, 4, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+234, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,184,245, 86, 3, 0, 0, 0, 0,165, 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,
+ 0, 0, 0, 0, 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,
+ 8, 6, 87, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 8, 79, 87, 3, 0, 0, 0, 0,104,222, 86, 3, 0, 0, 0, 0,
+ 72,203, 86, 3, 0, 0, 0, 0,232,205, 86, 3, 0, 0, 0, 0, 88,206, 86, 3, 0, 0, 0, 0,200,206, 86, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 19, 1, 0, 0, 17, 17, 20, 4, 20, 1, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 12, 87, 3, 0, 0, 0, 0,232, 77, 87, 3, 0, 0, 0, 0,
+248, 6, 87, 3, 0, 0, 0, 0,120, 11, 87, 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, 40, 1, 0, 0,248, 6, 87, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,104, 8, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 67,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,130, 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, 19, 4, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 63, 68, 0, 0,200, 65, 0,192, 63, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 20, 4, 26, 0, 20, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 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, 20, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104, 8, 87, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,120, 11, 87, 3, 0, 0, 0, 0,248, 6, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67,
+ 0, 0,122,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,122,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0,
+ 0, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0,
+ 0, 0, 0, 0,249, 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, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,250, 0,203, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,220, 0,250, 0, 0, 0, 4, 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, 68, 65, 84, 65, 40, 1, 0, 0,120, 11, 87, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 8, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68,
+ 0, 0, 0, 0, 0, 0,112, 67, 4, 0, 39,195, 0,224,180, 68, 1, 0,224,194, 0, 0,176, 67, 39, 3, 0, 0, 56, 3, 0, 0,
+ 18, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 0, 38, 3, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 38, 3, 0, 0,
+ 18, 0, 0, 0,249, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63,
+ 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 56, 3,250, 0, 39, 3,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 19, 4, 0, 0, 26, 0, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56, 3,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 0, 0, 0,232, 12, 87, 3, 0, 0, 0, 0,
+178, 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, 17, 0, 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, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8, 79, 87, 3, 0, 0, 0, 0,
+199, 0, 0, 0, 1, 0, 0, 0,184,110, 87, 3, 0, 0, 0, 0, 8, 6, 87, 3, 0, 0, 0, 0,168,207, 86, 3, 0, 0, 0, 0,
+ 24,208, 86, 3, 0, 0, 0, 0,120,205, 86, 3, 0, 0, 0, 0, 56,207, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+125, 3, 0, 0,254, 4, 0, 0, 21, 1, 0, 0,186, 2, 0, 0, 9, 9,130, 1,166, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,216, 82, 87, 3, 0, 0, 0, 0, 56,109, 87, 3, 0, 0, 0, 0,248, 79, 87, 3, 0, 0, 0, 0,
+104, 81, 87, 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, 40, 1, 0, 0,248, 79, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+104, 81, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 67, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 0, 0, 0,193, 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,129, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0,128,181, 67, 0, 0,200, 65, 0,128,181, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 4, 10, 0,130, 1, 26, 0,130, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+125, 3, 0, 0,254, 4, 0, 0, 21, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+130, 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,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104, 81, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,248, 79, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67,
+ 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0,126, 86, 5, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,139, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0,
+ 0, 0, 0, 4, 10, 0,130, 1,140, 1,130, 1,140, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+125, 3, 0, 0,254, 4, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+130, 1,140, 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, 68, 65, 84, 65,144, 2, 0, 0,216, 82, 87, 3, 0, 0, 0, 0,172, 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,
+ 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, 12, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,110, 87, 3, 0, 0, 0, 0,
+199, 0, 0, 0, 1, 0, 0, 0,184,150, 87, 3, 0, 0, 0, 0, 8, 79, 87, 3, 0, 0, 0, 0,136,208, 86, 3, 0, 0, 0, 0,
+248,208, 86, 3, 0, 0, 0, 0, 24,208, 86, 3, 0, 0, 0, 0,168,207, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+213, 0, 0, 0,123, 3, 0, 0, 21, 1, 0, 0,186, 2, 0, 0, 1, 1,167, 2,166, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,232,133, 87, 3, 0, 0, 0, 0,152,149, 87, 3, 0, 0, 0, 0,168,111, 87, 3, 0, 0, 0, 0,
+200,128, 87, 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, 40, 1, 0, 0,168,111, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 24,113, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 56, 0,192, 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,166, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 4, 10, 0,167, 2, 26, 0,167, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+213, 0, 0, 0,123, 3, 0, 0, 21, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+167, 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,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,113, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+136,114, 87, 3, 0, 0, 0, 0,168,111, 87, 3, 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,
+213, 0, 0, 0,213, 0, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0,140, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,114, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+248,115, 87, 3, 0, 0, 0, 0, 24,113, 87, 3, 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,
+213, 0, 0, 0,123, 3, 0, 0, 47, 1, 0, 0, 47, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,115, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+200,128, 87, 3, 0, 0, 0, 0,136,114, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 23,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,111, 2, 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,111, 2, 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,112, 2,163, 0, 94, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+123, 3, 0, 0,123, 3, 0, 0, 47, 1, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,248,115, 87, 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,
+213, 0, 0, 0,123, 3, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+167, 2,140, 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,
+ 56,130, 87, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0, 56,130, 87, 3, 0, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0,
+190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167,147,135, 61, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167,147,135, 61, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126,177,113, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,255,255,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167,147,135, 61, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,111, 18,131,187, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 63,156, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,232,133, 87, 3, 0, 0, 0, 0,160, 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, 8,184, 89, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0,
+ 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 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,150, 87, 3, 0, 0, 0, 0,
+199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,110, 87, 3, 0, 0, 0, 0,232,205, 86, 3, 0, 0, 0, 0,
+ 8,205, 86, 3, 0, 0, 0, 0,248,208, 86, 3, 0, 0, 0, 0,136,208, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,211, 0, 0, 0, 21, 1, 0, 0,186, 2, 0, 0, 3, 3,212, 0,166, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,136,154, 87, 3, 0, 0, 0, 0, 8,184, 87, 3, 0, 0, 0, 0,168,151, 87, 3, 0, 0, 0, 0,
+ 24,153, 87, 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, 40, 1, 0, 0,168,151, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 24,153, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 0, 0, 0, 84, 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,211, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
+ 0, 0, 83, 67, 0, 0,200, 65, 0, 0, 83, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
+ 4, 0, 12, 4, 10, 0,212, 0, 26, 0,212, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,211, 0, 0, 0, 21, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+212, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,168,151, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0,
+ 0, 0, 80, 66, 0, 0,119, 67, 0, 0,189,195, 0, 0, 0, 0,195, 0, 0, 0,212, 0, 0, 0, 18, 0, 0, 0,139, 1, 0, 0,
+ 0, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,194, 0, 0, 0, 18, 0, 0, 0,139, 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, 2, 0, 0, 2, 0, 3, 3,
+ 0, 0, 0, 4, 6, 0,212, 0,140, 1,195, 0,122, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,211, 0, 0, 0, 47, 1, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+212, 0,140, 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, 68, 65, 84, 65, 32, 1, 0, 0,136,154, 87, 3, 0, 0, 0, 0,169, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,155, 87, 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, 1, 0, 0, 0,
+ 68, 65, 84, 65, 16, 0, 0, 0,248,155, 87, 3, 0, 0, 0, 0,223, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0,
+ 88,156, 87, 3, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 88,156, 87, 3, 0, 0, 0, 0,222, 0, 0, 0, 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0,
+ 20, 0, 0, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,104,181, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,189, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 72,129, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,200, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,200,110, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200,195, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,232,176, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,184, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 24,176, 89, 3, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,184,185, 87, 3, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,104,164, 88, 3, 0, 0, 0, 0, 40,202, 86, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,186, 87, 3, 0, 0, 0, 0,248,192, 87, 3, 0, 0, 0, 0,
+104,193, 87, 3, 0, 0, 0, 0, 8,203, 87, 3, 0, 0, 0, 0,120,203, 87, 3, 0, 0, 0, 0,120,129, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,159, 89, 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, 68, 65, 84, 65, 32, 0, 0, 0,
+216,186, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72,187, 87, 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, 68, 65, 84, 65, 32, 0, 0, 0, 72,187, 87, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,184,187, 87, 3, 0, 0, 0, 0,216,186, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,187, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 40,188, 87, 3, 0, 0, 0, 0, 72,187, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 40,188, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,152,188, 87, 3, 0, 0, 0, 0,
+184,187, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+152,188, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8,189, 87, 3, 0, 0, 0, 0, 40,188, 87, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,189, 87, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,120,189, 87, 3, 0, 0, 0, 0,152,188, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+254, 4,187, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,189, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+232,189, 87, 3, 0, 0, 0, 0, 8,189, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244, 3,187, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,232,189, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88,190, 87, 3, 0, 0, 0, 0,
+120,189, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 88,190, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,200,190, 87, 3, 0, 0, 0, 0,232,189, 87, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,190, 87, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0, 56,191, 87, 3, 0, 0, 0, 0, 88,190, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+244, 3, 28, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,191, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+168,191, 87, 3, 0, 0, 0, 0,200,190, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 1, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24,192, 87, 3, 0, 0, 0, 0,
+ 56,191, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 1, 28, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 24,192, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,136,192, 87, 3, 0, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,244, 3, 12, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,192, 87, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,248,192, 87, 3, 0, 0, 0, 0, 24,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+254, 4, 12, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,192, 87, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,136,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 1,187, 2, 1, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,193, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216,193, 87, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 72,187, 87, 3, 0, 0, 0, 0,184,187, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216,193, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72,194, 87, 3, 0, 0, 0, 0,
+104,193, 87, 3, 0, 0, 0, 0, 72,187, 87, 3, 0, 0, 0, 0,152,188, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72,194, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,194, 87, 3, 0, 0, 0, 0,
+216,193, 87, 3, 0, 0, 0, 0,184,187, 87, 3, 0, 0, 0, 0, 8,189, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184,194, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 40,195, 87, 3, 0, 0, 0, 0,
+ 72,194, 87, 3, 0, 0, 0, 0,152,188, 87, 3, 0, 0, 0, 0, 8,189, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40,195, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152,195, 87, 3, 0, 0, 0, 0,
+184,194, 87, 3, 0, 0, 0, 0, 8,189, 87, 3, 0, 0, 0, 0,120,189, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152,195, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8,196, 87, 3, 0, 0, 0, 0,
+ 40,195, 87, 3, 0, 0, 0, 0, 40,188, 87, 3, 0, 0, 0, 0,232,189, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8,196, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,120,196, 87, 3, 0, 0, 0, 0,
+152,195, 87, 3, 0, 0, 0, 0,216,186, 87, 3, 0, 0, 0, 0, 88,190, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120,196, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232,196, 87, 3, 0, 0, 0, 0,
+ 8,196, 87, 3, 0, 0, 0, 0,152,188, 87, 3, 0, 0, 0, 0, 88,190, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232,196, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 88,197, 87, 3, 0, 0, 0, 0,
+120,196, 87, 3, 0, 0, 0, 0,120,189, 87, 3, 0, 0, 0, 0,200,190, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88,197, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,200,197, 87, 3, 0, 0, 0, 0,
+232,196, 87, 3, 0, 0, 0, 0,232,189, 87, 3, 0, 0, 0, 0,200,190, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200,197, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 56,198, 87, 3, 0, 0, 0, 0,
+ 88,197, 87, 3, 0, 0, 0, 0,216,186, 87, 3, 0, 0, 0, 0, 56,191, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 56,198, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168,198, 87, 3, 0, 0, 0, 0,
+200,197, 87, 3, 0, 0, 0, 0,232,189, 87, 3, 0, 0, 0, 0, 56,191, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,168,198, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 24,199, 87, 3, 0, 0, 0, 0,
+ 56,198, 87, 3, 0, 0, 0, 0, 88,190, 87, 3, 0, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 24,199, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,136,199, 87, 3, 0, 0, 0, 0,
+168,198, 87, 3, 0, 0, 0, 0,200,190, 87, 3, 0, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,136,199, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248,199, 87, 3, 0, 0, 0, 0,
+ 24,199, 87, 3, 0, 0, 0, 0, 56,191, 87, 3, 0, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,248,199, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104,200, 87, 3, 0, 0, 0, 0,
+136,199, 87, 3, 0, 0, 0, 0,232,189, 87, 3, 0, 0, 0, 0, 24,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,200, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216,200, 87, 3, 0, 0, 0, 0,
+248,199, 87, 3, 0, 0, 0, 0,120,189, 87, 3, 0, 0, 0, 0, 24,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216,200, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72,201, 87, 3, 0, 0, 0, 0,
+104,200, 87, 3, 0, 0, 0, 0, 8,189, 87, 3, 0, 0, 0, 0,136,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72,201, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184,201, 87, 3, 0, 0, 0, 0,
+216,200, 87, 3, 0, 0, 0, 0, 40,188, 87, 3, 0, 0, 0, 0,136,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184,201, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 40,202, 87, 3, 0, 0, 0, 0,
+ 72,201, 87, 3, 0, 0, 0, 0, 24,192, 87, 3, 0, 0, 0, 0,136,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40,202, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152,202, 87, 3, 0, 0, 0, 0,
+184,201, 87, 3, 0, 0, 0, 0,152,188, 87, 3, 0, 0, 0, 0,248,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152,202, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8,203, 87, 3, 0, 0, 0, 0,
+ 40,202, 87, 3, 0, 0, 0, 0,120,189, 87, 3, 0, 0, 0, 0,248,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8,203, 87, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+152,202, 87, 3, 0, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0,248,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0,120,203, 87, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 72,207, 87, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,152,188, 87, 3, 0, 0, 0, 0, 72,187, 87, 3, 0, 0, 0, 0,184,187, 87, 3, 0, 0, 0, 0,
+ 8,189, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0,
+ 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,163, 88, 3, 0, 0, 0, 0,
+216,163, 88, 3, 0, 0, 0, 0,104,204, 87, 3, 0, 0, 0, 0,216,205, 87, 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, 40, 1, 0, 0,
+104,204, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,216,205, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+216,205, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,204, 87, 3, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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,214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+ 72,207, 87, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,232,246, 87, 3, 0, 0, 0, 0,120,203, 87, 3, 0, 0, 0, 0,
+232,189, 87, 3, 0, 0, 0, 0, 24,192, 87, 3, 0, 0, 0, 0,136,192, 87, 3, 0, 0, 0, 0, 40,188, 87, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 4, 4, 10, 1, 12, 2, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,230, 87, 3, 0, 0, 0, 0,104,245, 87, 3, 0, 0, 0, 0,
+ 56,208, 87, 3, 0, 0, 0, 0,168,209, 87, 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, 40, 1, 0, 0, 56,208, 87, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,168,209, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 67,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,133, 67, 0, 0, 0, 0, 0, 0,248, 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, 9, 1, 0, 0,
+ 0, 0, 0, 0, 30, 0, 0, 0, 0,128,137, 67, 0, 0,200, 65, 0,128,137, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 10, 1, 31, 0, 10, 1, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0,237, 1, 0, 0, 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 31, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,209, 87, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,208, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,132, 67,
+ 0, 64, 80,196, 0, 0, 0, 0, 0, 0, 0, 0,255,255,120, 67,255,127,246,195, 0, 0, 0, 0,249, 0, 0, 0, 10, 1, 0, 0,
+ 0, 0, 0, 0,236, 1, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,248, 0, 0, 0,
+ 0, 0, 0, 0,236, 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, 10, 1,237, 1,249, 0,237, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,236, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 10, 1,237, 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, 68, 65, 84, 65,248, 0, 0, 0,152,230, 87, 3, 0, 0, 0, 0,
+165, 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, 0, 0, 0, 0, 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,232,246, 87, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 8, 30, 88, 3, 0, 0, 0, 0,
+ 72,207, 87, 3, 0, 0, 0, 0, 56,191, 87, 3, 0, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0,200,190, 87, 3, 0, 0, 0, 0,
+232,189, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0,
+ 18, 18,251, 1, 28, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,250, 87, 3, 0, 0, 0, 0,
+232, 28, 88, 3, 0, 0, 0, 0,216,247, 87, 3, 0, 0, 0, 0, 72,249, 87, 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, 40, 1, 0, 0,
+216,247, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 72,249, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 76, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,253, 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,250, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 1, 26, 0,251, 1, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 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,251, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+ 72,249, 87, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,247, 87, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,253, 67, 0, 0, 0, 0, 0, 0, 48, 65, 0, 0, 0, 0, 0, 0,245, 67, 0, 0, 0, 0, 0, 0,129, 67,
+234, 1, 0, 0,251, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,233, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,251, 1, 2, 1,234, 1, 2, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 26, 0, 0, 0, 27, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 1, 2, 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, 68, 65, 84, 65,144, 1, 0, 0,
+184,250, 87, 3, 0, 0, 0, 0,181, 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, 18, 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, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 8, 30, 88, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,104, 64, 88, 3, 0, 0, 0, 0,
+232,246, 87, 3, 0, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0,248,192, 87, 3, 0, 0, 0, 0,120,189, 87, 3, 0, 0, 0, 0,
+200,190, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 29, 1, 0, 0,186, 2, 0, 0,
+ 1, 1,251, 1,158, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 41, 88, 3, 0, 0, 0, 0,
+ 72, 63, 88, 3, 0, 0, 0, 0,248, 30, 88, 3, 0, 0, 0, 0,184, 36, 88, 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, 40, 1, 0, 0,
+248, 30, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,104, 32, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,128,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,253, 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,250, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,251, 1, 26, 0,251, 1, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,243, 3, 0, 0, 29, 1, 0, 0, 54, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+104, 32, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,216, 33, 88, 3, 0, 0, 0, 0,248, 30, 88, 3, 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,249, 1, 0, 0,249, 1, 0, 0, 55, 1, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,132, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+216, 33, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 72, 35, 88, 3, 0, 0, 0, 0,104, 32, 88, 3, 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,249, 1, 0, 0,243, 3, 0, 0, 55, 1, 0, 0, 55, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+ 72, 35, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,184, 36, 88, 3, 0, 0, 0, 0,216, 33, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,
+163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 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,121, 2, 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,122, 2,163, 0,104, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 3, 0, 0,243, 3, 0, 0, 55, 1, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 36, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 35, 88, 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,249, 1, 0, 0,243, 3, 0, 0, 55, 1, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 1,132, 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, 40, 38, 88, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,
+ 40, 38, 88, 3, 0, 0, 0, 0,159, 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, 42,240,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
+ 0, 0, 0, 0, 0, 0, 0, 0,225,215,163,188, 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,242,252, 18,191,222,160, 81,191,184,158, 81,191,
+117, 90,127, 63, 8,179,141, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,225,188,163, 63,129, 63,228,190, 42, 61,228,190,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63, 0,247, 70,188, 0,192, 32,182,
+ 15,232,143,190,210,186, 10, 62, 44, 83, 32, 63, 0,192, 24, 54,215,104, 25,196,133,132,135, 67, 37, 9,167,195,136,252, 71,194,
+ 3, 54, 25, 68,158, 87,135,195,205,209,166, 67,151,254, 71, 66, 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,242,252, 18,191,222,160, 81,191,184,158, 81,191,
+117, 90,127, 63, 8,179,141, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,225,188,163, 63,129, 63,228,190, 42, 61,228,190,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,138, 93,108, 59, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,
+216, 41, 88, 3, 0, 0, 0, 0,160, 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, 8,184, 89, 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, 1, 0, 0, 0, 1, 0, 0, 0,
+ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 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,
+ 16, 0, 0, 0, 7, 0, 10, 0, 0, 0, 0, 0, 1, 0, 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, 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, 64, 88, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,136,103, 88, 3, 0, 0, 0, 0,
+ 8, 30, 88, 3, 0, 0, 0, 0,216,186, 87, 3, 0, 0, 0, 0, 88,190, 87, 3, 0, 0, 0, 0,168,191, 87, 3, 0, 0, 0, 0,
+ 56,191, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0,
+ 18, 18,248, 1, 28, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 68, 88, 3, 0, 0, 0, 0,
+104,102, 88, 3, 0, 0, 0, 0, 88, 65, 88, 3, 0, 0, 0, 0,200, 66, 88, 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, 40, 1, 0, 0,
+ 88, 65, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,200, 66, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,128,231, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,252, 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,247, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,248, 1, 26, 0,248, 1, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 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,248, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 66, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 65, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,128,251, 67, 0, 0, 0, 0, 0, 0, 65, 67, 0, 0, 0, 0, 0,128,243, 67, 0, 0, 0, 0, 0, 0,129, 67,
+231, 1, 0, 0,248, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,230, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,248, 1, 2, 1,231, 1, 2, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 26, 0, 0, 0, 27, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 1, 2, 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, 68, 65, 84, 65,144, 1, 0, 0,
+ 56, 68, 88, 3, 0, 0, 0, 0,181, 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, 18, 0, 0, 0, 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, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,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, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0,136,103, 88, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,120,129, 88, 3, 0, 0, 0, 0,
+104, 64, 88, 3, 0, 0, 0, 0, 24,192, 87, 3, 0, 0, 0, 0,120,189, 87, 3, 0, 0, 0, 0, 8,189, 87, 3, 0, 0, 0, 0,
+136,192, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 13, 2, 0, 0,186, 2, 0, 0,
+ 3, 3, 10, 1,174, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,107, 88, 3, 0, 0, 0, 0,
+248,127, 88, 3, 0, 0, 0, 0,120,104, 88, 3, 0, 0, 0, 0,232,105, 88, 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, 40, 1, 0, 0,
+120,104, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,232,105, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,128,163, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,133, 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, 9, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,149, 67, 0, 0,200, 65, 0,128,149, 67, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 10, 1, 26, 0, 10, 1, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 13, 2, 0, 0, 38, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+232,105, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,104, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,121, 67, 0, 0, 2,195, 0, 0, 0, 0,
+249, 0, 0, 0, 10, 1, 0, 0, 18, 0, 0, 0,147, 0, 0, 0, 0, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,147, 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, 18, 2, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0, 10, 1,148, 0,249, 0,130, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 3, 0, 0,254, 4, 0, 0, 39, 2, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 1, 0, 0,
+ 88,107, 88, 3, 0, 0, 0, 0,169, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,108, 88, 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, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,200,108, 88, 3, 0, 0, 0, 0,
+223, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 40,109, 88, 3, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,
+ 40,109, 88, 3, 0, 0, 0, 0,222, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0,
+ 19, 0, 0, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0,
+ 21, 0, 1, 0, 1, 0, 1, 0,120,159, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104,181, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 40,189, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,129, 90, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,232,200, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200,110, 90, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,200,195, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,176, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 8,184, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,176, 89, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0,120,129, 88, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+136,103, 88, 3, 0, 0, 0, 0, 88,190, 87, 3, 0, 0, 0, 0,152,188, 87, 3, 0, 0, 0, 0,248,192, 87, 3, 0, 0, 0, 0,
+168,191, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 29, 1, 0, 0,186, 2, 0, 0,
+ 9, 9,248, 1,158, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,133, 88, 3, 0, 0, 0, 0,
+184,162, 88, 3, 0, 0, 0, 0,104,130, 88, 3, 0, 0, 0, 0,216,131, 88, 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, 40, 1, 0, 0,
+104,130, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,216,131, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64, 73, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,252, 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,247, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,248, 1, 26, 0,248, 1, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 29, 1, 0, 0, 54, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+216,131, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,130, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,236,140, 21, 68, 20, 51,102, 68,120, 83, 49, 67, 68,214,212, 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, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,247, 1, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 1,132, 1,248, 1,132, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 1, 0, 0, 55, 1, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 1,132, 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, 68, 65, 84, 65,144, 2, 0, 0,
+ 72,133, 88, 3, 0, 0, 0, 0,172, 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, 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, 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,
+122, 1, 0, 0,124, 1, 0, 0,231, 1, 0, 0,243, 1, 0, 0, 4, 0, 0, 0,124, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,208, 0, 0, 0,104,164, 88, 3, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248, 10, 89, 3, 0, 0, 0, 0,
+184,185, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,
+116,105,110,103, 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,
+136,165, 88, 3, 0, 0, 0, 0,152,168, 88, 3, 0, 0, 0, 0, 8,169, 88, 3, 0, 0, 0, 0,104,173, 88, 3, 0, 0, 0, 0,
+216,173, 88, 3, 0, 0, 0, 0,120,234, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+120,159, 89, 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, 68, 65, 84, 65, 32, 0, 0, 0,136,165, 88, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+248,165, 88, 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,
+ 68, 65, 84, 65, 32, 0, 0, 0,248,165, 88, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,104,166, 88, 3, 0, 0, 0, 0,
+136,165, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+104,166, 88, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,166, 88, 3, 0, 0, 0, 0,248,165, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,166, 88, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0, 72,167, 88, 3, 0, 0, 0, 0,104,166, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+254, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,167, 88, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+184,167, 88, 3, 0, 0, 0, 0,216,166, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 2, 1, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,184,167, 88, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 40,168, 88, 3, 0, 0, 0, 0,
+ 72,167, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 40,168, 88, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,152,168, 88, 3, 0, 0, 0, 0,184,167, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,132, 2,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,168, 88, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,168, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+132, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,169, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+120,169, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,165, 88, 3, 0, 0, 0, 0,104,166, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,169, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+232,169, 88, 3, 0, 0, 0, 0, 8,169, 88, 3, 0, 0, 0, 0,248,165, 88, 3, 0, 0, 0, 0, 72,167, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,169, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 88,170, 88, 3, 0, 0, 0, 0,120,169, 88, 3, 0, 0, 0, 0,104,166, 88, 3, 0, 0, 0, 0,184,167, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,170, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+200,170, 88, 3, 0, 0, 0, 0,232,169, 88, 3, 0, 0, 0, 0, 72,167, 88, 3, 0, 0, 0, 0,184,167, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,170, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 56,171, 88, 3, 0, 0, 0, 0, 88,170, 88, 3, 0, 0, 0, 0, 72,167, 88, 3, 0, 0, 0, 0, 40,168, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,171, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+168,171, 88, 3, 0, 0, 0, 0,200,170, 88, 3, 0, 0, 0, 0,136,165, 88, 3, 0, 0, 0, 0,152,168, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,171, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 24,172, 88, 3, 0, 0, 0, 0, 56,171, 88, 3, 0, 0, 0, 0,136,165, 88, 3, 0, 0, 0, 0, 72,167, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,172, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+136,172, 88, 3, 0, 0, 0, 0,168,171, 88, 3, 0, 0, 0, 0, 40,168, 88, 3, 0, 0, 0, 0,152,168, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,172, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+248,172, 88, 3, 0, 0, 0, 0, 24,172, 88, 3, 0, 0, 0, 0,184,167, 88, 3, 0, 0, 0, 0, 40,168, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,172, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+104,173, 88, 3, 0, 0, 0, 0,136,172, 88, 3, 0, 0, 0, 0,216,166, 88, 3, 0, 0, 0, 0,152,168, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,173, 88, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,248,172, 88, 3, 0, 0, 0, 0,216,166, 88, 3, 0, 0, 0, 0,184,167, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216,173, 88, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,
+168,177, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,167, 88, 3, 0, 0, 0, 0,248,165, 88, 3, 0, 0, 0, 0,
+104,166, 88, 3, 0, 0, 0, 0,184,167, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,
+188, 2, 0, 0,214, 2, 0, 0, 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+104, 10, 89, 3, 0, 0, 0, 0,104, 10, 89, 3, 0, 0, 0, 0,200,174, 88, 3, 0, 0, 0, 0, 56,176, 88, 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, 40, 1, 0, 0,200,174, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 56,176, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65,
+ 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4,
+ 26, 0,255, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,
+188, 2, 0, 0,213, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,176, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+200,174, 88, 3, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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,
+214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,177, 88, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,120,234, 88, 3, 0, 0, 0, 0,
+216,173, 88, 3, 0, 0, 0, 0,136,165, 88, 3, 0, 0, 0, 0, 72,167, 88, 3, 0, 0, 0, 0, 40,168, 88, 3, 0, 0, 0, 0,
+152,168, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131, 2, 0, 0, 0, 0, 0, 0,186, 2, 0, 0,
+ 6, 6,132, 2,187, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,184, 88, 3, 0, 0, 0, 0,
+ 88,233, 88, 3, 0, 0, 0, 0,152,178, 88, 3, 0, 0, 0, 0, 24,183, 88, 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, 40, 1, 0, 0,
+152,178, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 8,180, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,202, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 33, 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,131, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 41, 68, 0, 0,200, 65, 0,192, 41, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,132, 2, 26, 0,132, 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,131, 2, 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,132, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,180, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 24,183, 88, 3, 0, 0, 0, 0,152,178, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 91, 67, 0, 0, 40,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,254, 63, 40,196, 0, 0, 0, 0,
+203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,160, 2, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,160, 2, 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,220, 0,161, 2,203, 0,161, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,161, 2, 0, 0, 4, 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, 68, 65, 84, 65, 40, 1, 0, 0,
+ 24,183, 88, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,180, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,102,102, 38,190,205,204,148, 63, 51, 51, 13,191,154,153,198, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0,161, 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,220, 0, 0, 0,131, 2, 0, 0, 26, 0, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 1,161, 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, 68, 65, 84, 65, 72, 33, 0, 0,
+136,184, 88, 3, 0, 0, 0, 0,170, 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, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 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, 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,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,
+154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+120,234, 88, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,177, 88, 3, 0, 0, 0, 0,
+152,168, 88, 3, 0, 0, 0, 0, 40,168, 88, 3, 0, 0, 0, 0,184,167, 88, 3, 0, 0, 0, 0,216,166, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,133, 2, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,186, 2, 0, 0, 1, 1,122, 2,187, 2, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 4, 89, 3, 0, 0, 0, 0, 72, 9, 89, 3, 0, 0, 0, 0,
+104,235, 88, 3, 0, 0, 0, 0,200,255, 88, 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, 40, 1, 0, 0,104,235, 88, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,216,236, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,102, 68,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 30, 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,121, 2, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,122, 2, 26, 0,122, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,133, 2, 0, 0,254, 4, 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,122, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,216,236, 88, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,136,241, 88, 3, 0, 0, 0, 0,104,235, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67,
+ 0, 64, 10,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 10,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
+ 0, 0, 0, 0, 40, 2, 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,
+ 0, 0, 0, 0, 40, 2, 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,160, 0, 41, 2,143, 0, 41, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,133, 2, 0, 0, 36, 3, 0, 0,146, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 41, 2, 0, 0, 5, 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, 68, 65, 84, 65, 40, 1, 0, 0,136,241, 88, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,152,244, 88, 3, 0, 0, 0, 0,216,236, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67,
+ 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
+ 0, 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,
+ 0, 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, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,133, 2, 0, 0, 36, 3, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152,244, 88, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,200,255, 88, 3, 0, 0, 0, 0,136,241, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
+ 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0,
+ 18, 0, 0, 0, 12, 4, 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, 12, 4, 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, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,254, 4, 0, 0, 26, 0, 0, 0,186, 2, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,255, 88, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,244, 88, 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, 37, 3, 0, 0,254, 4, 0, 0, 26, 0, 0, 0,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,218, 1,161, 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, 56, 1, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0, 56, 1, 89, 3, 0, 0, 0, 0,
+159, 0, 0, 0, 1, 0, 0, 0,193,198,198, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 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,
+ 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,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,188,173, 54, 64,136, 95,161,191,
+147,231,198, 63, 0, 0,128, 63, 12, 2, 35, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,130, 71,181, 63,140,225, 88, 62,
+ 26, 63,185, 62, 35, 44,185, 62, 49,192,168,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,
+101, 98, 82, 64, 0, 25, 95, 64,101, 47,135, 62,134, 86, 22, 63, 32,243, 11,188, 0, 0,160,179,195, 15,188,190,132, 75, 53, 62,
+216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64,181,148,248,192,202,247,159,192,233, 74, 87, 65,247, 46,190,192,
+ 88,106,234, 64, 44, 8,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,
+ 0, 25, 95,192, 0, 0,128, 63, 12, 2, 35, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,130, 71,181, 63,140,225, 88, 62,
+ 26, 63,185, 62, 35, 44,185, 62, 49,192,168,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,
+101, 98, 82, 64, 0, 25, 95, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64,
+ 0, 0, 0, 0, 0, 0, 0, 0,116, 16, 50, 59, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,232, 4, 89, 3, 0, 0, 0, 0,
+160, 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,
+ 8,184, 89, 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, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 12, 66, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,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, 16, 0, 0, 0, 7, 0, 10, 0,
+ 0, 0, 0, 0, 1, 0, 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,
+ 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,208, 0, 0, 0,
+248, 10, 89, 3, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,164, 88, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 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, 24, 12, 89, 3, 0, 0, 0, 0,
+232, 16, 89, 3, 0, 0, 0, 0, 88, 17, 89, 3, 0, 0, 0, 0,200, 24, 89, 3, 0, 0, 0, 0, 56, 25, 89, 3, 0, 0, 0, 0,
+152,134, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,159, 89, 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,
+ 68, 65, 84, 65, 32, 0, 0, 0, 24, 12, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,136, 12, 89, 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, 68, 65, 84, 65, 32, 0, 0, 0,
+136, 12, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,248, 12, 89, 3, 0, 0, 0, 0, 24, 12, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 12, 89, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,104, 13, 89, 3, 0, 0, 0, 0,136, 12, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+254, 4,214, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 13, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+216, 13, 89, 3, 0, 0, 0, 0,248, 12, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,216, 13, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 72, 14, 89, 3, 0, 0, 0, 0,
+104, 13, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 72, 14, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184, 14, 89, 3, 0, 0, 0, 0,216, 13, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,254, 4,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 14, 89, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0, 40, 15, 89, 3, 0, 0, 0, 0, 72, 14, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+254, 4, 84, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 15, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+152, 15, 89, 3, 0, 0, 0, 0,184, 14, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,152, 15, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 8, 16, 89, 3, 0, 0, 0, 0,
+ 40, 15, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 2,187, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 8, 16, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,120, 16, 89, 3, 0, 0, 0, 0,152, 15, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 16, 89, 3, 0, 0, 0, 0,
+196, 0, 0, 0, 1, 0, 0, 0,232, 16, 89, 3, 0, 0, 0, 0, 8, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 52, 2, 84, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 16, 89, 3, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,120, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 64, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88, 17, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,200, 17, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,136, 12, 89, 3, 0, 0, 0, 0,248, 12, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200, 17, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 56, 18, 89, 3, 0, 0, 0, 0,
+ 88, 17, 89, 3, 0, 0, 0, 0,136, 12, 89, 3, 0, 0, 0, 0,216, 13, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 56, 18, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,168, 18, 89, 3, 0, 0, 0, 0,
+200, 17, 89, 3, 0, 0, 0, 0,248, 12, 89, 3, 0, 0, 0, 0, 72, 14, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,168, 18, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 24, 19, 89, 3, 0, 0, 0, 0,
+ 56, 18, 89, 3, 0, 0, 0, 0,216, 13, 89, 3, 0, 0, 0, 0, 72, 14, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 24, 19, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,136, 19, 89, 3, 0, 0, 0, 0,
+168, 18, 89, 3, 0, 0, 0, 0, 72, 14, 89, 3, 0, 0, 0, 0,184, 14, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,136, 19, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,248, 19, 89, 3, 0, 0, 0, 0,
+ 24, 19, 89, 3, 0, 0, 0, 0, 24, 12, 89, 3, 0, 0, 0, 0, 40, 15, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,248, 19, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,104, 20, 89, 3, 0, 0, 0, 0,
+136, 19, 89, 3, 0, 0, 0, 0,216, 13, 89, 3, 0, 0, 0, 0,152, 15, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104, 20, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,216, 20, 89, 3, 0, 0, 0, 0,
+248, 19, 89, 3, 0, 0, 0, 0, 40, 15, 89, 3, 0, 0, 0, 0, 8, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216, 20, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 72, 21, 89, 3, 0, 0, 0, 0,
+104, 20, 89, 3, 0, 0, 0, 0, 8, 16, 89, 3, 0, 0, 0, 0,120, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72, 21, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,184, 21, 89, 3, 0, 0, 0, 0,
+216, 20, 89, 3, 0, 0, 0, 0,152, 15, 89, 3, 0, 0, 0, 0,120, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184, 21, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 40, 22, 89, 3, 0, 0, 0, 0,
+ 72, 21, 89, 3, 0, 0, 0, 0,184, 14, 89, 3, 0, 0, 0, 0,232, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40, 22, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,152, 22, 89, 3, 0, 0, 0, 0,
+184, 21, 89, 3, 0, 0, 0, 0,104, 13, 89, 3, 0, 0, 0, 0,232, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152, 22, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 8, 23, 89, 3, 0, 0, 0, 0,
+ 40, 22, 89, 3, 0, 0, 0, 0, 40, 15, 89, 3, 0, 0, 0, 0,232, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8, 23, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,120, 23, 89, 3, 0, 0, 0, 0,
+152, 22, 89, 3, 0, 0, 0, 0, 24, 12, 89, 3, 0, 0, 0, 0,104, 13, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120, 23, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,232, 23, 89, 3, 0, 0, 0, 0,
+ 8, 23, 89, 3, 0, 0, 0, 0, 72, 14, 89, 3, 0, 0, 0, 0,152, 15, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232, 23, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 88, 24, 89, 3, 0, 0, 0, 0,
+120, 23, 89, 3, 0, 0, 0, 0,184, 14, 89, 3, 0, 0, 0, 0,120, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88, 24, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0,200, 24, 89, 3, 0, 0, 0, 0,
+232, 23, 89, 3, 0, 0, 0, 0,216, 13, 89, 3, 0, 0, 0, 0, 8, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200, 24, 89, 3, 0, 0, 0, 0,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88, 24, 89, 3, 0, 0, 0, 0,184, 14, 89, 3, 0, 0, 0, 0, 8, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0, 56, 25, 89, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 8, 29, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,216, 13, 89, 3, 0, 0, 0, 0,136, 12, 89, 3, 0, 0, 0, 0,248, 12, 89, 3, 0, 0, 0, 0,
+ 72, 14, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,214, 2, 0, 0,
+ 7, 7,255, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,158, 89, 3, 0, 0, 0, 0,
+232,158, 89, 3, 0, 0, 0, 0, 40, 26, 89, 3, 0, 0, 0, 0,152, 27, 89, 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, 40, 1, 0, 0,
+ 40, 26, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,152, 27, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,224,162, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,237, 68, 0, 0,200, 65, 0,128,237, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,188, 2, 0, 0,213, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+152, 27, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 26, 89, 3, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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,214, 2, 0, 0,214, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+ 8, 29, 89, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 8, 42, 89, 3, 0, 0, 0, 0, 56, 25, 89, 3, 0, 0, 0, 0,
+ 24, 12, 89, 3, 0, 0, 0, 0, 40, 15, 89, 3, 0, 0, 0, 0,232, 16, 89, 3, 0, 0, 0, 0,104, 13, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 15, 15,255, 4, 64, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 32, 89, 3, 0, 0, 0, 0,136, 40, 89, 3, 0, 0, 0, 0,
+248, 29, 89, 3, 0, 0, 0, 0,104, 31, 89, 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, 40, 1, 0, 0,248, 29, 89, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0,104, 31, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,140, 68,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0,
+ 0, 0, 0, 0, 25, 0, 0, 0, 0,224,202, 68, 0, 0,200, 65, 0,224,202, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 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,255, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104, 31, 89, 3, 0, 0, 0, 0,
+200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 29, 89, 3, 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,254, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0,
+ 18, 0, 0, 0, 37, 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,255, 4, 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,254, 4, 0, 0, 26, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 68, 65, 84, 65,216, 0, 0, 0,216, 32, 89, 3, 0, 0, 0, 0,
+176, 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, 8, 42, 89, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 88, 66, 89, 3, 0, 0, 0, 0,
+ 8, 29, 89, 3, 0, 0, 0, 0, 40, 15, 89, 3, 0, 0, 0, 0, 8, 16, 89, 3, 0, 0, 0, 0,184, 14, 89, 3, 0, 0, 0, 0,
+232, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 65, 0, 0, 0, 83, 1, 0, 0,
+ 8, 8,255, 4, 19, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 48, 89, 3, 0, 0, 0, 0,
+ 56, 65, 89, 3, 0, 0, 0, 0,248, 42, 89, 3, 0, 0, 0, 0, 72, 47, 89, 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, 40, 1, 0, 0,
+248, 42, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,104, 44, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64, 39, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,159, 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,254, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,191, 68, 0, 0,200, 65, 0, 96,191, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,255, 4, 26, 0,255, 4, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 4, 0, 0, 65, 0, 0, 0, 90, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+104, 44, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,216, 45, 89, 3, 0, 0, 0, 0,248, 42, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,121,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,121,195, 0, 0, 0, 0,
+203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,248, 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, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,249, 0,203, 0,249, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4, 0, 0,254, 4, 0, 0, 91, 0, 0, 0, 83, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,249, 0, 0, 0, 4, 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, 68, 65, 84, 65, 40, 1, 0, 0,
+216, 45, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 72, 47, 89, 3, 0, 0, 0, 0,104, 44, 89, 3, 0, 0, 0, 0,
+ 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 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, 59, 70, 0,128, 59, 70,
+172,197, 39, 55, 0, 80,195, 71, 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, 34, 4, 0, 0, 83, 1, 0, 0, 83, 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, 7, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+ 72, 47, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 45, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
+ 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0, 34, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 18, 0, 0, 0, 34, 4, 0, 0, 18, 0, 0, 0,248, 0, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66,
+ 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 35, 4,249, 0, 0, 0, 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, 4, 0, 0, 91, 0, 0, 0, 83, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 4,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+184, 48, 89, 3, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0, 88, 66, 89, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0,152,134, 89, 3, 0, 0, 0, 0,
+ 8, 42, 89, 3, 0, 0, 0, 0, 8, 16, 89, 3, 0, 0, 0, 0,216, 13, 89, 3, 0, 0, 0, 0,152, 15, 89, 3, 0, 0, 0, 0,
+120, 16, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 2, 0, 0, 85, 1, 0, 0,186, 2, 0, 0,
+ 2, 2, 52, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 73, 89, 3, 0, 0, 0, 0,
+120,133, 89, 3, 0, 0, 0, 0, 72, 67, 89, 3, 0, 0, 0, 0,152, 71, 89, 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, 40, 1, 0, 0,
+ 72, 67, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,184, 68, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64, 93, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 13, 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, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,103, 68, 0, 0,200, 65, 0,192,103, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0, 52, 2, 26, 0, 52, 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, 51, 2, 0, 0, 85, 1, 0, 0,110, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 68, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 40, 70, 89, 3, 0, 0, 0, 0, 72, 67, 89, 3, 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,157,195, 0, 0, 0, 0,
+200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 75, 1, 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, 75, 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, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, 76, 1,200, 0, 58, 1, 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,111, 1, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 76, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 70, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,152, 71, 89, 3, 0, 0, 0, 0,184, 68, 89, 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, 51, 2, 0, 0, 51, 2, 0, 0,111, 1, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+152, 71, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 70, 89, 3, 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, 75, 1, 0, 0, 18, 0, 0, 0, 90, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 18, 0, 0, 0, 90, 1, 0, 0, 18, 0, 0, 0, 75, 1, 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, 91, 1, 76, 1, 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, 51, 2, 0, 0,111, 1, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 1, 76, 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, 68, 65, 84, 65,240, 0, 0, 0,
+ 8, 73, 89, 3, 0, 0, 0, 0,164, 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, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 74, 89, 3, 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, 40, 0, 0, 0, 72, 74, 89, 3, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0,120,159, 89, 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,160, 0, 0, 0,152,134, 89, 3, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88, 66, 89, 3, 0, 0, 0, 0,120, 16, 89, 3, 0, 0, 0, 0,152, 15, 89, 3, 0, 0, 0, 0, 72, 14, 89, 3, 0, 0, 0, 0,
+184, 14, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0,254, 4, 0, 0, 85, 1, 0, 0,186, 2, 0, 0,
+ 8, 8,202, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,141, 89, 3, 0, 0, 0, 0,
+200,157, 89, 3, 0, 0, 0, 0,136,135, 89, 3, 0, 0, 0, 0,216,139, 89, 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, 40, 1, 0, 0,
+136,135, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,248,136, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,192, 15, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 50, 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,201, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 50, 68, 0, 0,200, 65, 0, 64, 50, 68, 0, 0,200, 65,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 4, 10, 0,202, 2, 26, 0,202, 2, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0,254, 4, 0, 0, 85, 1, 0, 0,110, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,136, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,104,138, 89, 3, 0, 0, 0, 0,136,135, 89, 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,254, 4, 0, 0,254, 4, 0, 0,111, 1, 0, 0,186, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+104,138, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0,216,139, 89, 3, 0, 0, 0, 0,248,136, 89, 3, 0, 0, 0, 0,
+ 0, 0,112,195, 0, 0,112, 67, 0, 0, 7,195, 0, 0, 7, 67,105, 42,145,196,105, 42,145, 68, 0, 0, 7,196, 0, 0, 7, 68,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,
+172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0,202, 2, 76, 1,202, 2, 76, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0,254, 4, 0, 0,111, 1, 0, 0,186, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 2, 76, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+216,139, 89, 3, 0, 0, 0, 0,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,138, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65,
+ 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
+ 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0,128, 64, 0,124,146, 72, 0, 0, 0, 66,
+ 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, 76, 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, 1, 0, 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, 68, 65, 84, 65,240, 0, 0, 0,
+ 72,141, 89, 3, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 83, 67, 0, 0, 8, 6, 0, 0,120,159, 89, 3, 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, 83, 67, 83, 99,101,110,101, 0,
+116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,200,165, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8,184, 89, 3, 0, 0, 0, 0,104,181, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56,168, 89, 3, 0, 0, 0, 0, 24,169, 89, 3, 0, 0, 0, 0, 56,168, 89, 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, 1, 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,136,169, 89, 3, 0, 0, 0, 0,
+184, 55,127, 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, 68,172, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 1, 0,
+ 1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 1, 0,
+ 0, 0, 0, 0, 81, 0, 0, 0, 23, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,175, 89, 3, 0, 0, 0, 0, 40,175, 89, 3, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 47, 47, 98, 97, 99,107, 98,117,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 5, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,
+173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 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,
+144,175, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,141, 90, 3, 0, 0, 0, 0,
+ 1, 0, 0, 0, 1, 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,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 32, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0,128, 0, 5, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,128, 7, 56, 4,205,204,204, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 96, 0, 0, 0,200,165, 89, 3, 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,120,166, 89, 3, 0, 0, 0, 0,
+120,166, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
+120,166, 89, 3, 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6, 0, 0, 0,110,101,116,119,111,114,107, 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, 40,167, 89, 3, 0, 0, 0, 0, 40,167, 89, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 40,167, 89, 3, 0, 0, 0, 0,
+ 16, 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,115,101,114,118,
+101,114, 95, 97,100,100,114,101,115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+216,167, 89, 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,
+ 10, 0, 0, 0, 10, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,216,167, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 91,100,101,102, 97,117,108,116, 93, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,168, 89, 3, 0, 0, 0, 0,133, 0, 0, 0,
+ 1, 0, 0, 0,168,168, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+200, 2,231, 1, 40,189, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,168, 89, 3, 0, 0, 0, 0,133, 0, 0, 0,
+ 1, 0, 0, 0, 24,169, 89, 3, 0, 0, 0, 0, 56,168, 89, 3, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0,
+152, 3, 37, 3,200,195, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,169, 89, 3, 0, 0, 0, 0,133, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,168, 89, 3, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,
+157, 0, 72, 2, 8,184, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65,184, 1, 0, 0,136,169, 89, 3, 0, 0, 0, 0,153, 0, 0, 0,
+ 1, 0, 0, 0,136,171, 89, 3, 0, 0, 0, 0,152,172, 89, 3, 0, 0, 0, 0,168,173, 89, 3, 0, 0, 0, 0, 0, 0,128, 63,
+ 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0,
+ 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0,184,174, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128,
+ 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0,
+ 5, 0,255,255, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,200, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62,
+ 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,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,
+205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 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, 68, 65, 84, 65,
+ 64, 0, 0, 0,136,171, 89, 3, 0, 0, 0, 0,152, 0, 0, 0, 1, 0, 0, 0, 24,172, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 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, 56, 0, 0, 0, 24,172, 89, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,184,184, 90, 3, 0, 0, 0, 0, 88,139, 90, 3, 0, 0, 0, 0,184,208, 90, 3,
+ 0, 0, 0, 0,184,188, 90, 3, 0, 0, 0, 0,184,144, 90, 3, 0, 0, 0, 0,184,180, 90, 3, 0, 0, 0, 0,184,156, 90, 3,
+ 0, 0, 0, 0, 68, 65, 84, 65, 64, 0, 0, 0,152,172, 89, 3, 0, 0, 0, 0,152, 0, 0, 0, 1, 0, 0, 0, 40,173, 89, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,200,255,128, 1, 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, 68, 65, 84, 65,
+ 56, 0, 0, 0, 40,173, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,184,184, 90, 3, 0, 0, 0, 0, 88,139, 90, 3,
+ 0, 0, 0, 0,184,208, 90, 3, 0, 0, 0, 0,184,188, 90, 3, 0, 0, 0, 0,184,144, 90, 3, 0, 0, 0, 0,184,180, 90, 3,
+ 0, 0, 0, 0,184,156, 90, 3, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,168,173, 89, 3, 0, 0, 0, 0,151, 0, 0, 0,
+ 1, 0, 0, 0, 40,174, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128,
+ 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, 68, 65, 84, 65,
+ 64, 0, 0, 0, 40,174, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,184,160, 90, 3, 0, 0, 0, 0,184,200, 90, 3,
+ 0, 0, 0, 0,184,192, 90, 3, 0, 0, 0, 0,184,172, 90, 3, 0, 0, 0, 0,184,168, 90, 3, 0, 0, 0, 0,184,176, 90, 3,
+ 0, 0, 0, 0,184,164, 90, 3, 0, 0, 0, 0,184,148, 90, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,174, 89, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,184,160, 90, 3, 0, 0, 0, 0,184,204, 90, 3, 0, 0, 0, 0,184,152, 90, 3,
+ 0, 0, 0, 0,184,196, 90, 3, 0, 0, 0, 0, 68, 65, 84, 65, 88, 0, 0, 0, 40,175, 89, 3, 0, 0, 0, 0,139, 0, 0, 0,
+ 1, 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, 76, 97,121,101,114, 0,
+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,255,255, 15, 0, 0, 0, 0, 0,255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,
+136, 0, 0, 0, 24,176, 89, 3, 0, 0, 0, 0, 29, 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, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,
+114, 97, 46, 48, 48, 49, 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, 4, 0, 0, 0, 0, 63,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63,
+ 0, 0, 0, 0, 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, 65, 0, 0,
+216, 1, 0, 0,232,176, 89, 3, 0, 0, 0, 0, 41, 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, 76, 65, 76, 97,109,112, 0, 0, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 8,179, 89, 3, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65,
+ 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0,
+ 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,180, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8,179, 89, 3, 0, 0, 0, 0, 83, 1, 0, 0,
+ 1, 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, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0,
+ 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,152,180, 89, 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,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152,180, 89, 3, 0, 0, 0, 0, 81, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,180, 89, 3,
+ 0, 0, 0, 0, 19, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,232, 1, 0, 0,104,181, 89, 3,
+ 0, 0, 0, 0,132, 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, 87, 79, 87,111,114,108,100, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61, 0, 0, 0, 0,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60,
+ 0, 0, 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0,200, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,
+ 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 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,152,183, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,183, 89, 3,
+ 0, 0, 0, 0, 19, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,208, 4, 0, 0, 8,184, 89, 3,
+ 0, 0, 0, 0,121, 0, 0, 0, 1, 0, 0, 0, 40,189, 89, 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, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0,
+ 0, 0, 0, 0, 1, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,176, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
+250, 0, 0, 0, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,
+222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191,
+ 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 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, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51,
+ 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167,
+ 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63, 0, 0,128, 63,157,190,215, 49,
+167,170, 4, 52, 0, 0, 0,128,129,116,157,178, 1, 0,128, 63, 33, 69, 15, 51, 0, 0, 0,128, 73,254, 67, 51,243, 97,106, 49,
+ 0, 0,128, 63, 0, 0, 0,128, 3, 0, 64, 52,183,164,157, 39, 0, 0,128, 53, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0,
+ 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63,
+ 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 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, 66, 0, 0,
+208, 4, 0, 0, 40,189, 89, 3, 0, 0, 0, 0,121, 0, 0, 0, 1, 0, 0, 0,200,195, 89, 3, 0, 0, 0, 0, 8,184, 89, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 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, 56, 40, 54, 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, 72,129, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 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, 0, 0, 0, 72,194, 89, 3, 0, 0, 0, 0,152,194, 89, 3,
+ 0, 0, 0, 0, 1, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 0, 0, 0, 0,128, 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, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 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, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, 0, 0, 0,128, 86,126,162,190,227,251,159, 62, 56, 53,101, 63, 0, 0, 0,128,
+ 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, 0, 0, 0,128,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63,
+ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,
+205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,
+ 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 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, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,194, 89, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,181,126, 4,
+ 0, 0, 0, 0,184,189,126, 4, 0, 0, 0, 0, 25, 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, 68, 65, 84, 65, 8, 0, 0, 0, 72,194, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,152,194, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,152, 0, 0, 0,232,194, 89, 3, 0, 0, 0, 0,124, 0, 0, 0, 1, 0, 0, 0, 0,192, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 79, 66, 0, 0,208, 4, 0, 0,200,195, 89, 3, 0, 0, 0, 0,
+121, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,189, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 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,
+ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,176, 89, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
+ 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
+ 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+154,112,130, 64,183,178,128, 63,112,236,188, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63,
+ 87, 43, 98, 61,229,229,238, 63, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189,
+ 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63,
+ 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 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, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179,
+ 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 53,236,148,190,222,102, 69,191, 37,255, 16, 63,
+ 0, 0, 0,128, 24,134,116, 63, 57,174, 76,190,240,161, 95, 62, 0, 0, 0,128,235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63,
+ 0, 0, 0,128,208, 19, 13, 63,234, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
+ 5, 0, 1, 0, 0, 0, 68, 0, 79, 66, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0,
+ 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,
+143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 64, 1, 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, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0, 32, 3, 0, 0,
+232,200, 89, 3, 0, 0, 0, 0, 44, 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, 77, 65, 77, 97,116,101,114,105, 97,108, 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, 1, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0,
+ 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,160, 63,
+ 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63,
+ 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 64, 3,
+ 67, 0, 64, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 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, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,
+205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 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,128, 63, 88,204, 89, 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,
+184,205, 89, 3, 0, 0, 0, 0, 0, 0, 0, 63, 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,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,
+102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 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, 68, 65, 84, 65, 16, 1, 0, 0, 88,204, 89, 3, 0, 0, 0, 0,
+ 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,110, 90, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+144, 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,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0,
+184,205, 89, 3, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0, 0, 0, 40,206, 89, 3, 0, 0, 0, 0,120,222, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,
+ 40,206, 89, 3, 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, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,144, 0, 0,120,222, 89, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,112, 1, 0, 0,200,110, 90, 3, 0, 0, 0, 0, 39, 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,
+ 84, 69, 84,101,120, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64,
+ 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 2, 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,136,112, 90, 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, 68, 65, 84, 65, 40, 0, 0, 0,136,112, 90, 3, 0, 0, 0, 0,
+ 19, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+248,112, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,248,112, 90, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
+ 0, 0, 0,255, 0, 0, 0,255, 77, 69, 0, 0,176, 1, 0, 0, 72,129, 90, 3, 0, 0, 0, 0, 54, 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,
+ 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 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, 72,131, 90, 3, 0, 0, 0, 0,
+152,138, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,133, 90, 3, 0, 0, 0, 0,
+ 8,136, 90, 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,152,131, 90, 3, 0, 0, 0, 0,
+ 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88,134, 90, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 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,232,136, 90, 3, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 6, 0, 1, 0, 1, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 72,131, 90, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0,232,200, 89, 3, 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,152,131, 90, 3, 0, 0, 0, 0,
+ 88, 1, 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, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 72,133, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,192, 0, 0, 0, 72,133, 90, 3, 0, 0, 0, 0,
+ 60, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255,127, 1, 0, 0, 0, 1, 0,128,191,253,255,127,191,
+ 0, 0,128,191, 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73,
+ 26,182,255,127, 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0,
+245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, 1, 0, 0, 0, 3, 0,128,191,250,255,127,191,
+ 0, 0,128, 63, 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,
+230, 73,255,127, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0, 88,134, 90, 3, 0, 0, 0, 0, 88, 1, 0, 0, 5, 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,
+ 8,136, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,144, 0, 0, 0, 8,136, 90, 3, 0, 0, 0, 0, 57, 0, 0, 0, 12, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0,
+ 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0,
+ 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0,
+ 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0,232,136, 90, 3, 0, 0, 0, 0,
+ 88, 1, 0, 0, 5, 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,152,138, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,120, 0, 0, 0,152,138, 90, 3, 0, 0, 0, 0,
+ 56, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0,
+ 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0,
+ 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2,
+ 66, 82, 0, 0,168, 1, 0, 0, 88,139, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,144, 90, 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, 66, 82, 65,100,100, 0,104, 46,
+ 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,168,142, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 1, 0, 0,
+ 68, 65, 84, 65, 16, 1, 0, 0,192,139, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,142, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
+ 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,144, 90, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 48, 0, 0, 0, 56,144, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,144, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,
+184,148, 90, 3, 0, 0, 0, 0, 88,139, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 66,108,117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,
+168,146, 90, 3, 0, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 1, 4, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,145, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,146, 90, 3, 0, 0, 0, 0,
+ 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
+ 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,148, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,148, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,148, 90, 3, 0, 0, 0, 0,
+ 87, 1, 0, 0, 1, 0, 0, 0,184,152, 90, 3, 0, 0, 0, 0,184,144, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 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, 63, 0, 0, 0, 0,168,150, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 8, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,149, 90, 3, 0, 0, 0, 0,
+ 32, 0, 0, 0, 1, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
+168,150, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
+ 56,152, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,152, 90, 3, 0, 0, 0, 0,
+ 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
+ 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,
+184,152, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,156, 90, 3, 0, 0, 0, 0,184,148, 90, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,168,154, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 3, 0, 68, 65, 84, 65, 16, 1, 0, 0,
+ 32,153, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 68, 65, 84, 65, 64, 1, 0, 0,168,154, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
+ 14,215,126,191, 46,189,194, 61, 56,156, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
+ 56,156, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
+ 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 0, 0,168, 1, 0, 0,184,156, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,160, 90, 3, 0, 0, 0, 0,
+184,152, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97,114,107,101,110,
+ 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,168,158, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 6, 0, 0,
+ 68, 65, 84, 65, 16, 1, 0, 0, 32,157, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,158, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
+ 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,160, 90, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 48, 0, 0, 0, 56,160, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,160, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,
+184,164, 90, 3, 0, 0, 0, 0,184,156, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,
+168,162, 90, 3, 0, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 1, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,161, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,162, 90, 3, 0, 0, 0, 0,
+ 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
+ 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,164, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,164, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,164, 90, 3, 0, 0, 0, 0,
+ 87, 1, 0, 0, 1, 0, 0, 0,184,168, 90, 3, 0, 0, 0, 0,184,160, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, 97,116,116,101,110, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 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, 63, 0, 0, 0, 0,168,166, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 7, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,165, 90, 3, 0, 0, 0, 0,
+ 32, 0, 0, 0, 1, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
+168,166, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
+ 56,168, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,168, 90, 3, 0, 0, 0, 0,
+ 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
+ 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,
+184,168, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,172, 90, 3, 0, 0, 0, 0,184,164, 90, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,168,170, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 5, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,
+ 32,169, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 68, 65, 84, 65, 64, 1, 0, 0,168,170, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
+ 14,215,126,191, 46,189,194, 61, 56,172, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
+ 56,172, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
+ 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 0, 0,168, 1, 0, 0,184,172, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,176, 90, 3, 0, 0, 0, 0,
+184,168, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116,
+101, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,168,174, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 4, 0, 0, 0,
+ 68, 65, 84, 65, 16, 1, 0, 0, 32,173, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,174, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
+ 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,176, 90, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 48, 0, 0, 0, 56,176, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,176, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,
+184,180, 90, 3, 0, 0, 0, 0,184,172, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,
+168,178, 90, 3, 0, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 6, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,177, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,178, 90, 3, 0, 0, 0, 0,
+ 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
+ 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,180, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,180, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,180, 90, 3, 0, 0, 0, 0,
+ 87, 1, 0, 0, 1, 0, 0, 0,184,184, 90, 3, 0, 0, 0, 0,184,176, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 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, 63, 0, 0, 0, 0,168,182, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 5, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,181, 90, 3, 0, 0, 0, 0,
+ 32, 0, 0, 0, 1, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
+168,182, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
+ 56,184, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,184, 90, 3, 0, 0, 0, 0,
+ 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
+ 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,
+184,184, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,188, 90, 3, 0, 0, 0, 0,184,180, 90, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105,120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,168,186, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,
+ 32,185, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 68, 65, 84, 65, 64, 1, 0, 0,168,186, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
+ 14,215,126,191, 46,189,194, 61, 56,188, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
+ 56,188, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
+ 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 0, 0,168, 1, 0, 0,184,188, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,192, 90, 3, 0, 0, 0, 0,
+184,184, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,
+108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,168,190, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 3, 0, 0,
+ 68, 65, 84, 65, 16, 1, 0, 0, 32,189, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,190, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
+ 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,192, 90, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 48, 0, 0, 0, 56,192, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,192, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,
+184,196, 90, 3, 0, 0, 0, 0,184,188, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 80,105,110, 99,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,
+168,194, 90, 3, 0, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 3, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,193, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,194, 90, 3, 0, 0, 0, 0,
+ 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
+ 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,196, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,196, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,196, 90, 3, 0, 0, 0, 0,
+ 87, 1, 0, 0, 1, 0, 0, 0,184,200, 90, 3, 0, 0, 0, 0,184,192, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 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, 63, 0, 0, 0, 0,168,198, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 2, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,197, 90, 3, 0, 0, 0, 0,
+ 32, 0, 0, 0, 1, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
+168,198, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
+ 56,200, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,200, 90, 3, 0, 0, 0, 0,
+ 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
+ 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,
+184,200, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,204, 90, 3, 0, 0, 0, 0,184,196, 90, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,111,111,116,104, 0, 48, 49, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,168,202, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,
+205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 2, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,
+ 32,201, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 68, 65, 84, 65, 64, 1, 0, 0,168,202, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
+ 14,215,126,191, 46,189,194, 61, 56,204, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
+ 56,204, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
+ 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 0, 0,168, 1, 0, 0,184,204, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,184,208, 90, 3, 0, 0, 0, 0,
+184,200, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110,
+ 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 63, 0, 0, 0, 0,168,206, 90, 3, 0, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 64,
+ 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 1, 0, 1, 0,
+ 68, 65, 84, 65, 16, 1, 0, 0, 32,205, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,206, 90, 3, 0, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
+ 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,208, 90, 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, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 48, 0, 0, 0, 56,208, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0,168, 1, 0, 0,184,208, 90, 3, 0, 0, 0, 0, 87, 1, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,184,204, 90, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 82, 83,117, 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 63, 0, 0, 0, 0,
+168,210, 90, 3, 0, 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,
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 4, 0, 0, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 96, 64, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+205,204, 76, 62, 1, 2, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 32,209, 90, 3, 0, 0, 0, 0, 32, 0, 0, 0, 1, 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, 1, 2, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,210, 90, 3, 0, 0, 0, 0,
+ 83, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
+ 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 56,212, 90, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,212, 90, 3, 0, 0, 0, 0, 81, 1, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
+ 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82, 8, 13, 0, 0, 96,119,163, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0, 33, 8, 17, 1, 63, 2, 0, 0, 5, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110,
+ 47, 68,101,115,107,116,111,112, 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,
+112,112, 47, 67,111,110,116,101,110,116,115, 47, 82,101,115,111,117,114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 0, 0, 2, 0, 94, 1,
+ 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 1, 0, 0, 0, 0, 2, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, 68,172, 0, 0,
+ 36, 0, 0, 0, 2, 0, 0, 0,128, 0, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0, 8,226, 90, 3, 0, 0, 0, 0,
+ 8,226, 90, 3, 0, 0, 0, 0,120,107, 94, 3, 0, 0, 0, 0,120,107, 94, 3, 0, 0, 0, 0,152,219, 94, 3, 0, 0, 0, 0,
+152,219, 94, 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, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 1, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 30, 90,100,191,154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31,250,254, 62, 9, 0, 0, 63,
+156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63, 44,135, 22, 63, 32,133,235, 62,
+184,243,125, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190, 24, 47, 93,190, 0, 0, 0, 0,
+ 14, 0, 0, 0, 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,144, 31, 15, 0, 6, 0, 25, 0,
+ 8, 0, 10, 0,200, 0, 0, 0,100, 0,100, 0, 0, 0, 0, 0, 2, 0, 1, 0, 10, 0, 50, 0,200, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 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, 2, 0, 0, 0, 8, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
+ 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 29, 0, 0, 8,226, 90, 3, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,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, 25, 25, 25,255,153,153,153,255,
+100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,
+100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,
+153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255,
+ 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255,
+ 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,
+100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,
+153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,
+153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255,
+ 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255,
+ 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230,
+ 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0,
+ 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 0, 0, 38, 0, 0, 0, 0, 0, 25, 25, 25,255,128,128,128,255,
+100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,
+100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255,190,190,190,255,
+100,100,100,180, 68, 68, 68,255, 0, 0, 0,255,255,255,255,255, 0, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0,
+ 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,
+240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
+ 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,
+255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
+ 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
+240,144,160,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,
+200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,
+240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,
+240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 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, 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,
+255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,
+250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255,
+ 0, 0, 0, 40,130,130,130,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
+255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255,
+ 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,
+128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,
+128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255,250,250,250,255,250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255,
+ 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,
+255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,
+255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,
+124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
+ 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,
+255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
+ 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
+240,144,160,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,
+200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,
+240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,
+240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 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, 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,
+255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255,
+ 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
+255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255,
+ 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255,
+128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,
+128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255,
+ 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,
+255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,
+255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 82, 96,110,255,
+124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
+ 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,
+255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
+ 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
+240,144,160,255, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,109, 88,129,255,
+ 78,152, 62,255, 46,143,143,255,169, 84,124,255,126,126, 80,255,162, 95,111,255,109,145,131,255,255,255,255,128, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,255,255,255, 10,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,
+200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,
+240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,
+240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 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, 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,
+255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255,110,110,110,255, 0, 0, 0, 0,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,132,132,132,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255, 94, 94, 94,255,172,172,172,255, 17, 27, 60,100, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255,
+ 0, 0, 0, 40,195,195,195,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
+255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255,
+ 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,
+128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,
+128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255,
+ 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,
+255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,
+255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
+ 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, 4, 0, 0,100, 0, 0,255,
+ 0, 0,200,255,128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 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,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
+ 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,
+255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
+ 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
+240,144,160,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,
+200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,
+240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,
+240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 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, 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,
+255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
+ 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,
+255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255,
+ 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,
+128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,
+128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 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, 4, 0, 0,155,155,155,160,100,100,100,255,108,105,111,255,
+104,106,117,255,105,117,110,255, 0, 0, 0, 0, 0, 0, 0, 0, 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,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255,
+ 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,
+255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,
+255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
+ 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, 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,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
+ 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,
+255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255,
+ 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255,
+ 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
+240,144,160,255, 0, 0, 0, 0, 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, 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,255,255,255,128, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
+114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
+160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,255,140, 25,255,
+ 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,
+200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,
+240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,255,
+240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, 0,170, 0,255,
+220, 96, 96,255,220, 96, 96,255, 3, 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,
+255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,
+247, 10, 10,255, 0, 0, 0, 0,247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,
+131,239, 29,255, 0, 0, 0, 0, 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,
+240, 93,145,255, 0, 0, 0, 0, 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,
+111,182,171,255, 0, 0, 0, 0, 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,
+243,255, 0,255, 0, 0, 0, 0, 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,
+211, 48,214,255, 0, 0, 0, 0,108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,
+222,222,222,255, 0, 0, 0, 0,131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255,
+ 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 0, 0, 0, 0,
+ 68, 78, 65, 49,112,224, 0, 0,200,207,143, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69,
+179, 11, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,
+115,116, 0,120, 0,121, 0,122, 0,119, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,
+112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,
+121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 51, 50, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110,
+ 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 50, 52, 93, 0,117,
+115, 0,105, 99,111,110, 95,105,100, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,
+107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 50, 52, 48, 93, 0,102,105,108,101,112, 97,116,104, 91, 50,
+ 52, 48, 93, 0,116,111,116, 0,112, 97,100, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91, 50, 93, 0, 99,104,
+ 97,110,103,101,100, 91, 50, 93, 0,112, 97,100, 48, 0,112, 97,100, 49, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0,
+ 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0,
+ 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,
+101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,
+109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,
+118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,114,101,108, 97,116,
+105,118,101, 0,116,111,116,101,108,101,109, 0,112, 97,100, 50, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112,
+ 91, 51, 50, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114,
+101,102,107,101,121, 0,101,108,101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107,
+ 0, 42,105,112,111, 0, 42,102,114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 42,108,105,110,101, 0,
+ 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,102,108,
+ 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,108,105,110,101,115,
+ 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108, 99, 0,109, 97,114,
+107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,111, 95,108,101,110,
+ 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,112, 97,115,115,101,
+112, 97,114,116, 97,108,112,104, 97, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,101,110,100, 0,108,101,110,115, 0,111,
+114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,104,105,102,116,120, 0,115,104,105,102,116,
+121, 0, 89, 70, 95,100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, 0,102,114, 97,109,101,110,114, 0,102,114, 97,
+109,101,115, 0,111,102,102,115,101,116, 0,115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,
+109,117,108,116,105, 95,105,110,100,101,120, 0,108, 97,121,101,114, 0,112, 97,115,115, 0,109,101,110,117,110,114, 0, 42,115,
+ 99,101,110,101, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,105,109, 0, 42,114,114,
+ 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,114, 95,115,108,111,116, 0,108, 97,115,116, 95,114,101,
+110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101, 0,116,112, 97,103,101,
+102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,116, 97, 0,116,119,101,
+110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,101,100,102,105,108,101,
+ 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,115,101,100, 0, 97,110,
+105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,112,101, 0, 97,115,112,
+120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,
+100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,120, 0,117,118,110, 97,109,101, 91, 51, 50, 93, 0,112,114,
+111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,
+105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109,
+ 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104,
+ 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112, 95,109,111,100,101, 0,112, 97,100, 91, 55, 93, 0,114, 0,
+103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,102, 97, 99, 0,110,111,114,102,
+ 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,101, 99,102, 97, 99, 0,109,105,
+114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,112,101, 99,102, 97, 99, 0,101,
+109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97, 99, 0,116,114, 97,110,115,108,
+102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,108,114,101,102,108,102, 97, 99,
+ 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,116,116,101,114,102, 97, 99, 0,
+114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102, 97, 99, 0, 99,108,117,109,112,102,
+ 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103,104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,108,105,
+102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,112,118,101,108,102, 97, 99, 0,115,104,
+ 97,100,111,119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,
+100,102, 97, 99, 0,110, 97,109,101, 91, 49, 54, 48, 93, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,
+116,110, 97,109,101,115, 0,115,116,121,112,101,115, 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,
+108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,
+115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40, 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,
+115,105,111,110, 0, 97, 0,105,112,111,116,121,112,101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,
+116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115,
+ 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99,
+ 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,
+111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,
+111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,
+101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,
+105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,
+110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,
+100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0, 42, 99,111, 98,
+ 97, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109,
+ 97,116, 0,101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,101, 0,105,110,116, 95,109,117,108,116,105,112,
+108,105,101,114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 50, 52, 48,
+ 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97,109,101, 0,110,111,105,115,101,115,105,122,101,
+ 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,115, 97,116,117,114, 97,116,105,
+111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95,
+ 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,
+102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115,
+ 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,
+109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,
+112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,
+115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,
+114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,120,
+ 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97, 98,
+108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118, 0,
+ 42,112,100, 0, 42,118,100, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,
+109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,
+101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,
+114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,
+116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,
+115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0,112, 97,
+100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,116,101,
+114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, 0,114,
+ 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,112,101,
+ 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,101,121,
+ 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, 97,109,
+112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115,117,110,
+ 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,112,101, 0,104,111,114,105,122,111,
+110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116,110,101,
+115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104,116, 0,
+115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,
+105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,
+111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,
+121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,115,107,121, 95, 99,111,108,111,114,
+115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,101,120,116,117,
+114,101, 0,112, 97,100, 54, 91, 54, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,115, 99, 97,116,
+116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51,
+ 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,116,105,111,110,
+ 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95, 99,117,116,111,
+102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,104, 97,100,101,
+102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,111,108,117,116,
+105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,110,115,105,116,
+121, 0,109,115, 95,115,112,114,101, 97,100, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114, 0,
+115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114, 0,
+ 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,114,
+ 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0, 97,
+100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,102,114,101,115,110,101,108, 95,109,105,114, 0,
+102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,102,114,101,115,110,101,
+108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116,120, 95,102, 97,108,108,111,
+102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, 97, 0,104, 97,114, 0,115,
+101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115,115, 95,116,114, 97, 0,115,
+ 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,114, 97, 0, 97,100, 97,
+112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,116,114, 97, 0, 97,
+110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,100,101,116,111, 95,109,
+105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114,101, 99, 0,115,116, 97,114,
+ 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,115,105,122,101, 0,115,
+117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95,115,116, 97, 0,115,116,114,
+ 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110,100, 95,115,117,114,102,110,
+111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116,104,102, 97,100,101, 0,115,
+116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 51, 50, 93, 0,115, 98,105, 97,115, 0,108, 98,105, 97,115, 0,115,104, 97,
+100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,121,112,101, 0,112,114,
+ 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102,102, 95,115,104, 97,100,101,
+114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114,101,102,114, 97, 99, 0,112,
+ 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109,112, 95, 99,111,108, 0, 42,
+114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,110, 95,115,112,101, 99,
+ 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,112,101, 99, 0,114, 97,
+109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114, 97,109,112,102, 97, 99,
+ 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,114,101,102,108,101, 99,116,
+ 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,115,115, 95,114, 97,100,
+105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,114, 0,115,115,115, 95,
+115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,115,115, 95,116,101,120,
+102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115, 95,102,108, 97,103, 0,
+115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, 0,112, 97,100, 52, 0,103,
+112,117,109, 97,116,101,114,105, 97,108, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, 42, 98, 98, 0,105, 49, 0,106, 49, 0,107,
+ 49, 0,105, 50, 0,106, 50, 0,107, 50, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91,
+ 52, 93, 0,101,120,112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,
+116, 0, 42,105,109, 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,
+109, 97,116, 0,102,108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,
+115,105,122,101, 0,116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0,
+ 97,108,102, 97, 0,119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,
+118,101, 99, 91, 52, 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117,
+ 0,114,101,115,111,108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,
+118, 0, 42,107,110,111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,
+100,105,117,115, 95,105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,104, 0,110,117,114, 98, 0,
+ 42,101,100,105,116,110,117,114, 98, 0, 42, 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,
+116,111,110, 99,117,114,118,101, 0, 42,112, 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103,
+ 0,116,119,105,115,116, 95,109,111,100,101, 0,112, 97,100, 91, 50, 93, 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,
+112, 97,116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50,
+ 0,114,101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,
+115,116,115,101,108, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116,
+ 0,115,104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,
+101,105,103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,
+108, 98,111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,
+110,116, 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,
+104, 97,114, 0, 99,116,105,109,101, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,
+116, 97,114,116, 0,115,101,108,101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0,101,102,102,
+101, 99,116, 0, 42,109,102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116,
+ 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,
+101,120, 99,111,109,101,115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95,109,101,115,104, 0,118,100, 97,
+116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,
+111,116,115,101,108,101, 99,116, 0, 97, 99,116, 95,102, 97, 99,101, 0,101,100,105,116,102,108, 97,103, 0, 99,117, 98,101,109,
+ 97,112,115,105,122,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114,
+ 0,115,117, 98,115,117,114,102,116,121,112,101, 0, 42,109,114, 0, 42,112,118, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52,
+ 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118,
+ 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116,
+ 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51,
+ 93, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,105,110,100,101,120, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,
+111,116,100,105,115,112, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0,118, 91, 52, 93, 0,109,105,100, 0,118, 91, 50, 93, 0,
+ 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,
+101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108,
+ 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,
+108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0, 42,118,101,114,
+116, 95,109, 97,112, 0, 42,101,100,103,101, 95,109, 97,112, 0, 42,111,108,100, 95,102, 97, 99,101,115, 0, 42,111,108,100, 95,
+101,100,103,101,115, 0,115,116, 97, 99,107,105,110,100,101,120, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114,
+ 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,
+101, 0, 42,109, 67, 97, 99,104,101, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,
+114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,
+112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,
+111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,
+116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,
+108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118,
+ 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,
+108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 51, 50, 93,
+ 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0, 42,116,101,120,116,117,
+114,101, 0,115,116,114,101,110,103,116,104, 0,100,105,114,101, 99,116,105,111,110, 0,109,105,100,108,101,118,101,108, 0,116,
+101,120,109, 97,112,112,105,110,103, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,
+109,101, 91, 51, 50, 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49,
+ 48, 93, 0, 42,105,109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120,
+ 0, 97,115,112,101, 99,116,121, 0,115, 99, 97,108,101,120, 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102,
+ 97, 99,101, 67,111,117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,
+114, 0,115,116, 97,114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,
+101,101,100, 0,100, 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,
+109,101, 0,100,101,102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,
+116, 97,114,103,101,116, 91, 51, 50, 93, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91,
+ 51, 93, 0, 42,105,110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,
+104, 79, 98,106,101, 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,
+112,111,105,110,116, 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,
+111,108,100, 0, 42, 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,
+114,114,101,110,116, 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,
+115, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,114, 97,116,105,111,110,
+ 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,105,122,101, 0, 42, 98,
+105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116,115, 0, 42, 98,105,110,100,
+ 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,105,100, 0, 42,100,121,
+110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100, 50, 0,100,121,110,103,
+114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,101,108,108,119,105,100,
+116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105,103,104,116,115, 0, 42, 98,
+105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115, 0,116,111,116,100,109,
+118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,111,115,105,116,105,111,
+110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,118,103,114,111,117,112,
+ 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116,108,118,108, 0,115,105,
+109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,101,116, 0,118,103,114,
+111,117,112, 95,110, 97,109,101, 91, 51, 50, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,110,107, 84,121,112,101,
+ 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,114,102, 76,101,118,101,
+108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93, 0,111,114,105,103,105,
+110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0, 99,114,101, 97,115,101, 95,105,110,110,101,114, 0, 99,114,
+101, 97,115,101, 95,111,117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,
+116,101,112,115, 0,114,101,110,100,101,114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115,
+ 0, 97,110,103,108,101, 0,112,110,116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,
+119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,
+100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52,
+ 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116,
+ 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,
+114, 91, 51, 50, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112,
+ 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,
+111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104,
+ 97,110,110,101,108,115, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101,
+ 95,109,111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,
+105,103, 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93, 0,
+114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101, 0,
+100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91, 52,
+ 93, 91, 52, 93, 0,108, 97,121, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101,
+ 99,116,102,108, 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,
+105,112,111,102,108, 97,103, 0,105,112,111,119,105,110, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,
+103, 0, 98,111,117,110,100,116,121,112,101, 0,100,117,112,111,110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,
+100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,
+111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,
+108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,
+101,115,104,111,108,100, 0,114,111,116,109,111,100,101, 0,100,116, 0,100,116,120, 0,101,109,112,116,121, 95,100,114, 97,119,
+116,121,112,101, 0,112, 97,100, 49, 91, 51, 93, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102,
+ 97, 99,101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0,
+ 97, 99,116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,
+108, 97,103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,
+105,115,111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115,
+ 0,110,108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0,
+ 42,115,111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0,102,108,117,105,100,115,105,109, 70,108, 97,103, 0,114,101,
+115,116,114,105, 99,116,102,108, 97,103, 0,115,104, 97,112,101,110,114, 0,115,104, 97,112,101,102,108, 97,103, 0,114,101, 99,
+ 97,108, 99,111, 0, 98,111,100,121, 95,116,121,112,101, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115,
+ 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,
+115,116, 68, 97,116, 97, 77, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,108,
+ 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0, 99,117,114,105,110,100,101,120, 0, 97,
+ 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,111,
+109, 97,116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,
+105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,
+105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119,
+ 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,
+102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,
+112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,
+116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0,112,100,101,102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,
+111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,
+100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,
+110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101,
+ 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,
+104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,121, 0,114,116, 91, 51, 93, 0,102,114, 97,109,
+101, 0,116,111,116,112,111,105,110,116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,105,110,100,101,120, 95, 97,114,114,
+ 97,121, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,
+101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,
+108, 97,115,116, 95,101,120, 97, 99,116, 0,110, 97,109,101, 91, 54, 52, 93, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52,
+ 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 50, 52, 48, 93, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,
+101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103,
+ 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,
+105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82,
+ 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84,
+ 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70,
+ 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72,
+ 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,
+110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,
+115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107,
+ 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115,
+ 91, 51, 50, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,
+115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,
+109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,
+112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,108, 91, 51, 50, 93, 0,102,117,122,122,121,110,101,115,115,
+ 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103,
+ 95, 75, 91, 51, 50, 93, 0,101,102,114, 97, 0,105,110,116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,
+114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,
+115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,
+102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,
+108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,
+114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,
+105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,
+103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51,
+ 93, 91, 51, 93, 0,112, 97,100, 52, 91, 52, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,
+112,116,105,111,110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,
+121,122, 0,114,101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,
+114, 68,105,115,112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,
+111,115,105,116,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118,
+120, 0,103,114, 97,118,121, 0,103,114, 97,118,122, 0, 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0,
+ 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101, 69,110,100, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,
+101, 0,105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,
+115,104, 0, 42,109,101,115,104, 83,117,114,102, 97, 99,101, 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97,
+ 80, 97,116,104, 91, 50, 52, 48, 93, 0, 98, 98, 83,116, 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,
+121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,
+105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97,
+ 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,
+111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,
+110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100,
+ 83,105,122,101, 0, 42,109,101,115,104, 83,117,114,102, 78,111,114,109, 97,108,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,
+114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,
+102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115,
+ 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,
+111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,100,102,114, 97,109,101, 0,109,105,115,116,121,112,101,
+ 0,104,111,114,114, 0,104,111,114,103, 0,104,111,114, 98, 0,104,111,114,107, 0,122,101,110,114, 0,122,101,110,103, 0,122,
+101,110, 98, 0,122,101,110,107, 0, 97,109, 98,107, 0,102, 97,115,116, 99,111,108, 0,101,120,112,111,115,117,114,101, 0,101,
+120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,114, 97,118,105,116,121, 0, 97,
+ 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101, 0,111, 99, 99,108,117,115,105,
+111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114, 97,116,101, 0,109, 97,120,108,
+111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,104,121,115,116,101,112, 0,109,
+105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,116,104,105, 0,115,116, 97,114,
+114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,115,105,122,101, 0,115,116, 97,
+114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,108,110,111,105,115,101, 0,100,
+111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109, 97,120, 0, 97,111,100,105,115,
+116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,105, 97,115, 0, 97,111,109,111,
+100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0, 97,111, 95, 97,100, 97,112,116,
+ 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102, 97, 99, 0, 97,111, 95, 97,112,
+112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,114,101, 99,116,105,111,110, 0,
+ 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,101,110,118, 95,101,110,101,114,103,121,
+ 0, 97,111, 95,112, 97,100, 50, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,110, 99,101,115, 0, 97,111, 95,
+112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,116,104,101,114, 95,109,101,116,
+104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,115,112,104,101,114,101, 0, 42,
+ 97,111,116, 97, 98,108,101,115, 0,112, 97,100, 91, 51, 93, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,112,
+ 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,115,
+ 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,118,
+101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,100,
+119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,101,
+ 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101, 0,
+113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101, 99,
+ 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115, 0,
+ 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121, 0,
+109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117, 97,
+108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 99,
+111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111, 83, 97,109,112,108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,105,
+116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 67,111,100,101, 99, 70,
+108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,105,
+100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95,
+109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99,
+ 95,109,105,110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,
+115,105,122,101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,
+120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,
+114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,
+114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,
+108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0, 42, 97,118,105, 99,111,
+100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,
+105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,
+112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114,
+ 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66,
+ 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121,
+ 0, 97,116,116,114,105, 98, 0,114,116, 50, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114,101,111,109,111,100,
+101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,
+104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,119,105,110,112,111,115, 0,112,108, 97,110,
+101,115, 0,105,109,116,121,112,101, 0,115,117, 98,105,109,116,121,112,101, 0,113,117, 97,108,105,116,121, 0,100,105,115,112,
+108, 97,121,109,111,100,101, 0,114,112, 97,100, 49, 0,114,112, 97,100, 50, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,
+114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,
+114,101,110,100,101,114,101,114, 0,111, 99,114,101,115, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115,
+ 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,
+101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,
+120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,
+111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,
+115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0,
+ 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0,
+ 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,
+116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,
+101, 95,112, 97,100, 0, 98, 97, 99,107, 98,117,102, 91, 49, 54, 48, 93, 0,112,105, 99, 91, 49, 54, 48, 93, 0,115,116, 97,109,
+112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 49, 54, 48, 93,
+ 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,
+118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,
+100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,
+115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,
+108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,
+110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109,
+ 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,
+101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116,
+ 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93,
+ 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,
+117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,
+102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0,109, 97,116,109,111,100,101, 0,102,114, 97,109,105,
+110,103, 0,114,116, 49, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,
+116,105,111,110, 0, 42, 99, 97,109,101,114, 97, 0, 42, 42, 98,114,117,115,104,101,115, 0, 97, 99,116,105,118,101, 95, 98,114,
+117,115,104, 95,105,110,100,101,120, 0, 98,114,117,115,104, 95, 99,111,117,110,116, 0, 42,112, 97,105,110,116, 95, 99,117,114,
+115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101,
+ 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97,
+ 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,
+116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104,
+ 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,
+121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,110, 97,109,101, 91, 51,
+ 54, 93, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,112,105,118,111,116, 91, 51, 93, 0,116, 97, 98,108,101,116, 95,115,105,122,
+101, 0,116, 97, 98,108,101,116, 95,115,116,114,101,110,103,116,104, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,
+119,112, 97,105,110,116, 95,112,114,101,118, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0,118,103,114,111,
+117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103,
+ 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,
+115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101,
+ 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,
+101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101,
+ 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99,
+ 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103,
+ 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,112, 97,100, 91, 50, 93, 0, 97,117,116,111,105,107, 95,
+ 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,
+114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110,
+ 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,
+103, 0,114,101,116,111,112,111, 95,109,111,100,101, 0,114,101,116,111,112,111, 95,112, 97,105,110,116, 95,116,111,111,108, 0,
+108,105,110,101, 95,100,105,118, 0,101,108,108,105,112,115,101, 95,100,105,118, 0,114,101,116,111,112,111, 95,104,111,116,115,
+112,111,116, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0,115,107,103,101,110, 95,114,
+101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110,
+ 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,
+110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,
+116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108,
+ 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116,
+ 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,
+101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,
+114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,
+112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,
+114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,
+115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,
+101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95,
+ 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114,
+ 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,
+116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93,
+ 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,115,
+110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,
+114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0, 97,117,116,111, 95,110,111,114,109, 97,
+108,105,122,101, 0,105,110,116,112, 97,100, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,
+106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,
+101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121,115,116,101,109, 0,103,114, 97,118,105,116,121, 91, 51, 93,
+ 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,
+115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,
+101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,
+ 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,
+114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,
+117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68,
+ 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0,106,117,109,112,102,114, 97,109,101,
+ 0,112, 97,100, 53, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101,116,
+115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 98,108,101,110,100,
+ 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93,
+ 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,
+115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109,
+ 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91,
+ 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,
+111,111,109, 0,118,105,101,119, 98,117,116, 0,116,119,100,114, 97,119,102,108, 97,103, 0,114,102,108, 97,103, 0,118,105,101,
+119,108,111, 99,107, 0,112,101,114,115,112, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,
+108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,114,101,
+116,111,112,111, 95,118,105,101,119, 95,100, 97,116, 97, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,
+111,116,104, 95,116,105,109,101,114, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,
+105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,112, 97,100,102, 0,114,101,103,
+105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111,
+ 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101,
+ 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101,
+ 91, 51, 50, 93, 0,100,114, 97,119,116,121,112,101, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,112,
+105,118,111,116, 95,108, 97,115,116, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,103,114,105,100,108,105,110,101,
+115, 0,103,114,105,100,102,108, 97,103, 0,103,114,105,100,115,117, 98,100,105,118, 0,109,111,100,101,115,101,108,101, 99,116,
+ 0,107,101,121,102,108, 97,103,115, 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0, 99,
+117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 97,102,116,101,114,100,114, 97,119, 0,122, 98,117,102, 0,120,114,
+ 97,121, 0,110,100,111,102,109,111,100,101, 0,110,100,111,102,102,105,108,116,101,114, 0, 42,112,114,111,112,101,114,116,105,
+101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,
+109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,
+114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111,102,115,
+ 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105,110,121,
+ 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0, 42,115, 99,
+114,101,101,110, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110,
+ 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,
+115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,
+116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,
+111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 50, 52, 93, 0,100,105,114, 91, 50, 52, 48,
+ 93, 0,102,105,108,101, 91, 56, 48, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 56, 48, 93, 0,115,111,114,116, 0,100,
+105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,111,107,109, 97,114,107, 0, 97, 99,116,105,118,101, 95,102,105,
+108,101, 0,115,101,108,115,116, 97,116,101, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, 93, 0,115, 99,114,111,108,
+108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115,
+ 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,115,109,111,111,116,104,115,
+ 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111,
+107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101,
+ 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,115,101,
+ 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,
+108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114, 0, 99,117,114,116,105,108,101, 0,105,109,116,121,112,101,110,
+114, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,
+101,116, 99,104, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0,115, 99,111,112,101,
+115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,
+119,108,105,110,101,115, 0,108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,
+116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,
+119,115,121,110,116, 97,120, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,
+112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114,
+ 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,
+101,115,116,114, 91, 50, 53, 54, 93, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121,
+ 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,
+103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91,
+ 50, 53, 54, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116,
+ 95,114,101,102,115, 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,
+121, 0,114,101,100,114, 97,119,115, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, 42, 99,117,114,102,111,110,116, 0,109,120,
+ 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,109,
+101,110,117, 0,110,117,109,116,105,108,101,115,120, 0,110,117,109,116,105,108,101,115,121, 0,118,105,101,119,114,101, 99,116,
+ 0, 98,111,111,107,109, 97,114,107,114,101, 99,116, 0,115, 99,114,111,108,108,112,111,115, 0,115, 99,114,111,108,108,104,101,
+105,103,104,116, 0,115, 99,114,111,108,108, 97,114,101, 97, 0,114,101,116,118, 97,108, 0,112,114,118, 95,119, 0,112,114,118,
+ 95,104, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95,
+101,118,101,110,116, 41, 40, 41, 0, 40, 42,114,101,116,117,114,110,102,117,110, 99, 95, 97,114,103,115, 41, 40, 41, 0, 42, 97,
+114,103, 49, 0, 42, 97,114,103, 50, 0, 42,109,101,110,117,112, 0, 42,112,117,112,109,101,110,117, 0, 42,105,109,103, 0,108,
+101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,114,112,116, 95,109, 97,115,107, 0,115, 99,114,111,108,108, 98,
+ 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101,
+ 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52,
+ 93, 0,102,105,108,101,110, 97,109,101, 91, 50, 53, 54, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100,
+ 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,
+108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104,
+ 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97,
+ 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109,
+ 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,
+108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101,
+ 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,
+115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,112, 97,100, 91, 49, 93, 0,111,117,116,108,105,110,101, 91,
+ 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93,
+ 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,
+101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114,
+ 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114,
+ 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,
+114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,119, 99,111,
+108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,
+111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101,
+ 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,
+110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,
+119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,
+111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109,
+ 0,119, 99,111,108, 95,115,116, 97,116,101, 0,105, 99,111,110,102,105,108,101, 91, 56, 48, 93, 0, 98, 97, 99,107, 91, 52, 93,
+ 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,104,
+101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101,
+ 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110,
+ 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,
+116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93,
+ 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,
+110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116,
+ 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,
+104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91,
+ 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,
+114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,
+109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,
+101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109,
+ 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52,
+ 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,
+108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101,
+114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,
+101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91,
+ 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,
+118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,
+117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115,116,115,
+101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,
+101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,
+ 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,
+108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, 91, 52,
+ 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108,
+ 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116,
+112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,
+105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101,
+ 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,102, 97, 99,101,100,111,116, 95,115,
+105,122,101, 0, 98,112, 97,100, 91, 50, 93, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52,
+ 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91,
+ 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,
+100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,
+105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101,
+ 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,
+101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,
+104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93,
+ 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111,
+ 0,116,115,110,100, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,105,109, 97,115,101,
+108, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,
+116,117,115,101,114,112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,
+118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93,
+ 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 49, 54, 48, 93, 0,102,
+111,110,116,100,105,114, 91, 49, 54, 48, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 54, 48, 93, 0,116,101,120,116,117,
+100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 49, 54, 48, 93, 0,112,108,117,103,115,101,113,
+100,105,114, 91, 49, 54, 48, 93, 0,112,121,116,104,111,110,100,105,114, 91, 49, 54, 48, 93, 0,115,111,117,110,100,100,105,114,
+ 91, 49, 54, 48, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,
+121,101,114, 91, 50, 52, 48, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,
+109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,
+105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,
+101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,
+101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,
+100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,
+105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,
+115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,
+116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0,
+ 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,
+115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112,
+ 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,
+105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,
+108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104,
+ 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120,
+ 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0,119,109,112, 97,100, 0,109,
+101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,
+101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,
+101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,
+102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0,110,
+100,111,102, 95,112, 97,110, 0,110,100,111,102, 95,114,111,116, 97,116,101, 0, 99,117,114,115,115,105,122,101, 0, 99,111,108,
+111,114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110,100,108,101,
+115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0,112,114,111,
+112,119,105,100,116,104, 0,118,101,114,115,101,109, 97,115,116,101,114, 91, 49, 54, 48, 93, 0,118,101,114,115,101,117,115,101,
+114, 91, 49, 54, 48, 93, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,118,
+101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,
+101,110,101, 0,102,117,108,108, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,
+104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,
+117,114,115,111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,
+115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116,
+ 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,
+121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114,
+ 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121,
+ 0,108, 97, 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,
+110, 97,112, 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100,
+ 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108,
+ 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114,
+ 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,
+101, 0,104,101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0,
+ 97, 99,116,105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,
+100, 0,114,101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,
+118,101,114,108, 97,121, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,
+114, 0, 42,114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,
+105,111,110, 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,
+110, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115,
+ 0,103,108,111, 98, 97,108,102, 0,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, 56, 48, 93, 0,
+ 42,105, 98,117,102, 0, 42,105, 98,117,102, 95, 99,111,109,112, 0, 42,115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,
+110,114, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51,
+ 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114, 91, 49, 54, 48, 93, 0,100,111,110,101,
+ 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0,
+111,114,120, 0,111,114,121, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95,
+ 98, 97,108, 97,110, 99,101, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,
+115,116, 97,114,116,115,116,105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116,105,108,108, 0,
+ 42,105, 98,117,102, 95,115,116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116,105,108,108, 0,
+ 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116,
+ 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,
+102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,109,117,108,
+ 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0, 42,115,116,114,105,112, 0, 42,115,
+ 99,101,110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102,
+ 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,
+115,111,117,110,100, 0, 42,115, 99,101,110,101, 95,115,111,117,110,100, 0,108,101,118,101,108, 0,112, 97,110, 0,115, 99,101,
+110,101,110,114, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 0,115,116,114,111, 98,101, 0, 42,101,102,102,
+101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,
+115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98,
+ 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107,
+ 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 50, 53, 54, 93, 0, 97, 99,116, 95,
+115,111,117,110,100,100,105,114, 91, 50, 53, 54, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99,102,114, 97,
+ 0,111,118,101,114, 95,102,108, 97,103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105,100,116,104,
+ 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102,
+ 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,
+108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0, 83, 99, 97,108,101,120, 70,105,110, 0, 83, 99, 97,108,101,
+121, 70,105,110, 0,120, 73,110,105, 0,120, 70,105,110, 0,121, 73,110,105, 0,121, 70,105,110, 0,114,111,116, 73,110,105, 0,
+114,111,116, 70,105,110, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,
+108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,
+105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112,
+ 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99,
+ 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,
+101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,
+108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,
+105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,
+103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 51, 50, 93,
+ 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 51, 50, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,117,
+115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,
+116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,
+109,101, 91, 51, 50, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 51, 50, 93, 0,118, 97,108,117,101, 91, 51, 50, 93, 0,
+109, 97,120,118, 97,108,117,101, 91, 51, 50, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,
+114,105, 97,108, 78, 97,109,101, 91, 51, 50, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91,
+ 51, 50, 93, 0,109, 97,116,110, 97,109,101, 91, 51, 50, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,
+110,110,101,108, 91, 51, 50, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 51, 50, 93, 0, 42,102,114,111,109, 79, 98,106,
+101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 51, 50, 93, 0, 98,111,100,121, 91, 51, 50, 93, 0,111,116,121,112,101, 0,112,
+117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,
+111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110,
+ 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0, 42,109,121,
+110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,
+108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 51, 50, 93,
+ 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,
+100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,115,110,100,110,114, 0,112, 97,100, 51, 91, 50,
+ 93, 0,112,105,116, 99,104, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,
+101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,
+108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,
+114, 99,101,114,111,116, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,
+108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,
+120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,
+110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 51, 50, 93, 0, 98,117,
+116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103,
+ 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,
+114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 51, 50, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,
+100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91,
+ 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0, 42,115,117, 98,116, 97,114,103,101,116,
+ 0,103,111, 0, 97, 99, 99,101,108,108,101,114, 97,116,105,111,110, 0,109, 97,120,115,112,101,101,100, 0,109, 97,120,114,111,
+116,115,112,101,101,100, 0,109, 97,120,116,105,108,116,115,112,101,101,100, 0,116,105,108,116,100, 97,109,112, 0,115,112,101,
+101,100,100, 97,109,112, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110,
+ 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102,
+ 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,
+116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0, 42,110,101,119,112, 97,
+ 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99,
+ 97, 99,104,101, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42, 97,114,101, 97, 0, 42,108, 97,109,
+112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0,
+ 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,
+111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,
+105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,120,119,105,100,116,104, 0,122,119,105,100,116,
+104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0,
+ 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,
+110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,108, 97,121,101,114, 95,112,114,111,
+116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,
+112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,
+115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,
+115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,
+104,111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,
+116,121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,
+116,121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,
+104, 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95,
+ 98, 99, 0,112, 97,116,104, 95, 97, 99, 0, 99,111,110,115,116,102,108, 97,103, 0,105,107,102,108, 97,103, 0,115,101,108,101,
+ 99,116,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100, 0,105,
+107,116,114,101,101, 0, 42, 98, 95, 98,111,110,101, 95,109, 97,116,115, 0, 42,100,117, 97,108, 95,113,117, 97,116, 0, 42, 98,
+ 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116,115, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116,
+ 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91,
+ 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,
+116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,
+107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 42, 99,117,115,116,111,109, 0, 42,
+ 99,117,115,116,111,109, 95,116,120, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111,
+120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99,
+ 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,
+105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95,
+ 97, 99,116, 95, 98,111,110,101, 91, 51, 50, 93, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110,
+115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120,
+118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115,
+116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109,
+ 97,114,107,101,114, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,102,105,108,116,101,114,
+102,108, 97,103, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,116,101,109,112, 0,110, 97,109,
+101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101, 0,
+104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116, 97,
+114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116, 97,
+114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,101,
+ 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116, 97,
+114,103,101,116, 91, 51, 50, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116, 0,
+103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,110,
+ 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100, 50,
+ 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,102,
+108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,103,
+108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88, 0,
+ 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93, 0,
+101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,112,
+ 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51, 93,
+ 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,105,
+110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116,
+ 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,
+116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0,115, 99, 97,108,101,
+ 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115,
+ 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116,
+ 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, 0, 42,110,101,119, 95,115,111, 99,107, 0,110,115, 0,108,105,
+109,105,116, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,105,110,116,101,114,110, 0,115,116, 97, 99,107, 95,105,110,100,
+101,120, 95,101,120,116, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,
+100,101,120, 0, 42,116,111,115,111, 99,107, 0, 42,108,105,110,107, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,
+121, 0,111,117,116,112,117,116,115, 0, 42,115,116,111,114, 97,103,101, 0,109,105,110,105,119,105,100,116,104, 0, 99,117,115,
+116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,
+100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,
+114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,
+101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0,
+ 42,115,116, 97, 99,107, 0, 42,116,104,114,101, 97,100,115,116, 97, 99,107, 0,105,110,105,116, 0,115,116, 97, 99,107,115,105,
+122,101, 0, 99,117,114, 95,105,110,100,101,120, 0, 97,108,108,116,121,112,101,115, 0, 42,111,119,110,116,121,112,101, 0,112,
+ 97,100, 50, 91, 50, 93, 0, 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,
+119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,112,114,104, 0, 42,
+115,100,104, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109,105,110,115,112,101,101,
+100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, 0,
+ 99,117,114,118,101,100, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,
+101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97,
+112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0,115, 97,
+116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91,
+ 52, 93, 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50,
+ 0, 99,111,108,110, 97,109,101, 91, 51, 50, 93, 0, 98,107,116,121,112,101, 0,114,111,116, 97,116,105,111,110, 0,103, 97,109,
+ 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104,
+ 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0, 99,111,108,109,111,100, 0,109,105,
+120, 0,116,104,114,101,115,104,111,108,100, 0,102, 97,100,101, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,
+116, 0,115,108,111,112,101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,
+108,105,109, 99,104, 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,115, 99, 97,108,101, 0,117,115,112,105,108,108,114,
+ 0,117,115,112,105,108,108,103, 0,117,115,112,105,108,108, 98, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101,
+ 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42,
+ 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101,115,101,116,
+ 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101,
+ 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101,115,111,108,117,116,
+105,111,110, 0,100, 97,116, 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, 0,100, 97,116, 97,
+ 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112,108,101, 95,102,117,
+108,108, 0,115, 97,109,112,108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97,118,101,102,114,109,
+ 95,109,111,100,101, 0,119, 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114,109, 95,121,102, 97, 99,
+ 0,119, 97,118,101,102,114,109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97,108,112,104, 97, 0,118,
+101, 99,115, 99,111,112,101, 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, 0,104,105,115,116,
+ 0, 42,119, 97,118,101,102,111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42,119, 97,118,101,102,111,
+114,109, 95, 51, 0, 42,118,101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111,116, 0,111,102,102,115,
+101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,109,116,101,120, 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,
+116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,
+114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,118,101,114,116,101,120,
+112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108, 0, 97, 99,116,105,118,
+101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0, 42,
+108, 97,121,101,114,115, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101,
+ 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,118,101,108, 91, 51, 93, 0,114,111,116, 91, 52, 93, 0, 97,
+118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,110,117,109, 0,112, 97,114,101,
+110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,114,116, 91,
+ 50, 93, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,111,105,100, 0,100,105,101,116,105,109,
+101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,101,120, 0, 97,108,105,118,101, 0,115,
+112,114,105,110,103, 95,107, 0,114,101,115,116, 95,108,101,110,103,116,104, 0,118,105,115, 99,111,115,105,116,121, 95,111,109,
+101,103, 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102,110,101,115,115, 95,107, 0,115,
+116,105,102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115,105,116,121, 0, 98,117,111,121,
+ 97,110, 99,121, 0, 42, 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,
+101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,
+115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,112,101, 0,114,101,110, 95, 97,115, 0,115,117, 98,
+102,114, 97,109,101,115, 0,114,101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,
+116,101,112, 0, 97,100, 97,112,116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,
+109, 0,105,110,116,101,103,114, 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,
+116, 0, 98, 98, 95, 97,110,105,109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,
+116, 0, 98, 98, 95,114, 97,110,100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0,115,105,109,112,
+108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,101, 0,115,105,109,112,108,
+105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,105,101,119,112,111,114,116,
+ 0,116,105,109,101,116,119,101, 97,107, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,
+114,101,115, 0,112, 97,114,116,102, 97, 99, 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,
+116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114,
+ 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0,
+114,101, 97, 99,116,115,104, 97,112,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97, 99, 0, 98,114,111,119,110,102,
+ 97, 99, 0,100, 97,109,112,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,
+114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0,
+ 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116,
+ 0, 99,108,117,109,112,112,111,119, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,
+103,104, 50, 0,114,111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,
+103,104, 95,101,110,100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,
+108,101,110,103,116,104, 95,116,104,114,101,115, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,
+105,110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108,
+ 95, 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0,
+ 42,101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,
+112, 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,
+105,108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,
+101, 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,
+116, 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114,
+ 97,109,101, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100, 99,
+ 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,112,
+ 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 51, 50, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93, 0,
+118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,114,
+115, 0, 42,116,114,101,101, 0, 42,112,100,100, 0, 42,102,114, 97,110,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,114,
+117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,114,
+117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,109,
+101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100, 95,
+115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,111,
+116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116,105,111,110, 0,115,116,101,112,115, 80,101,114, 70,114, 97,
+109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114,105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,
+121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118,103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,
+117,112, 95,115,116,114,117, 99,116, 0,115,104, 97,112,101,107,101,121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, 0,
+114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,
+108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,105,108,111,110, 0,115,101,108,102, 95,108,111,111,
+112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,117,114,101, 0,116,104,105, 99,
+107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42, 97, 99,116,102,114, 97,109,101,
+ 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114, 95,115,105,122,101, 0,115, 98,
+117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0, 42,116,121,112,101,115,116,114, 0, 42,109,
+101,115,115, 97,103,101, 0,108,105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,
+108, 0, 42,114,101,112,111,114,116,116,105,109,101,114, 0,103,114,101,121,115, 99, 97,108,101, 0,119,105,100,116,104,102, 97,
+ 99, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105,110,100,111,119,
+115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112, 95,117,110,100,111,
+ 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,115, 0,106,
+111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99,111,110,102,105,103,
+115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,
+105,109,101,114, 0, 42,103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,110,101,119,115, 99,
+114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 51, 50, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,
+110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0, 97,100,100,
+109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,
+116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100,
+ 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,
+116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0,
+ 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,
+112,101, 0, 42,112,116,114, 0,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,
+109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,
+101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0,
+ 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109,
+ 0, 42,101,100, 97,116, 97, 0,105,110,102,108,117,101,110, 99,101, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0,
+ 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,
+104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,
+117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,
+101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,
+101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101,112, 95,
+115,105,122,101, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,116,114,
+ 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,116, 97,
+114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0,
+ 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,110,100,
+101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93,
+ 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,
+102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,
+101,110,100,109,111,100,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101,121,105,
+110,103,102,108, 97,103, 0,112, 97,116,104,115, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105,118,101,
+ 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,
+105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,
+100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,
+114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,
+105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101,
+ 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,
+116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,
+117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,
+115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,
+105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114,
+ 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,
+118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,
+115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99,
+ 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97,
+ 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0,
+ 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,
+120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112,
+ 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51,
+ 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,
+105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,
+119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97,
+ 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116,
+ 99, 97, 99,104,101,115, 91, 50, 93, 0,118,101,108,111, 99,105,116,121, 91, 51, 93, 0,118,103,114,112, 95,104,101, 97,116, 95,
+115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,
+105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108,
+ 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0, 0, 84, 89, 80, 69,212, 1, 0, 0, 99,104, 97,114, 0,117, 99,104,
+ 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,
+108,111, 97,116, 0,100,111,117, 98,108,101, 0,118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,
+105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102, 0,118,101, 99, 50,105, 0,118,101, 99, 50,100, 0,
+118,101, 99, 51,105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,100, 0,118,101, 99, 52,105, 0,118,101, 99, 52,102, 0,118,101,
+ 99, 52,100, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,
+114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,
+105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,
+118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107,
+ 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,
+114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,
+101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,
+101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67,
+ 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,
+110,116, 68,101,110,115,105,116,121, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,
+120, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 87, 97,118,101, 0,
+ 86,111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,
+111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0,
+ 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 67,
+117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77,
+ 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,
+101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 69,
+100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 80, 97,114,116,
+105, 97,108, 86,105,115,105, 98,105,108,105,116,121, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 84,101,120,
+ 80,111,108,121, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70,108,111, 97,116, 80,114,111,112,
+101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,
+121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,
+111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0,
+ 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77,111,100,105,102,
+105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,
+105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116,
+ 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114,
+ 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,
+105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0,
+ 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68,
+ 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,
+110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,
+101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,
+116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,
+101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97,
+ 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,
+116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,
+102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,
+111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,
+116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97,
+ 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,
+101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,
+104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,
+114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,
+104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,
+101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,
+114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,
+100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68,
+ 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,
+109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97,
+ 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,
+101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68,
+ 97,116, 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,
+101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110,
+ 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0,
+ 98, 77,111,116,105,111,110, 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,
+101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101,
+ 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 77,101,
+109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,110,116,
+ 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 87,111,114,108,100, 0, 66, 97,115,101,
+ 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97,
+ 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,
+100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,
+101,114, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101,
+ 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,
+114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,
+110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,
+105,116, 83,101,116,116,105,110,103,115, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0,
+ 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,
+115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,
+100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 66, 71,112,105,
+ 99, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,116,111,112,111,
+ 86,105,101,119, 68, 97,116, 97, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,
+111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,
+119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 98, 83, 99,114,101,101,110, 0, 83,112, 97, 99,101, 73,112,111, 0, 98,
+ 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,
+101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116,
+ 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115,
+ 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109,
+ 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112,
+ 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101,
+ 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112,
+ 97, 99,101, 76,111,103,105, 99, 0, 83,112, 97, 99,101, 73,109, 97, 83,101,108, 0, 67,111,110,115,111,108,101, 76,105,110,101,
+ 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0,117,105, 70,111,
+110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,
+111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85,
+ 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,
+109,101, 0, 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 83, 99,114,
+ 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105, 76,
+ 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0,
+ 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109,
+ 0, 84, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,
+102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,
+121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111,117,110,
+100, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114,
+ 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100,
+ 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116,
+ 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98,
+ 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,
+110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,
+110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,
+114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0,
+ 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,
+114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0,
+ 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,
+114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,
+114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117,
+ 97,116,111,114, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 69,100,105,
+116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98,
+ 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114,
+ 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,
+111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114,
+ 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,
+114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,
+116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65,
+ 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101,
+ 65, 99,116,117, 97,116,111,114, 0, 70,114,101,101, 67, 97,109,101,114, 97, 0, 83,112, 97, 99,101, 83,111,117,110,100, 0, 71,
+114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,
+110, 80, 97,116,104, 86,101,114,116, 0, 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 71, 72, 97,115,104, 0, 98, 73, 75,
+ 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65,
+ 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116,
+ 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84,
+ 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,
+105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116,
+ 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,
+111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0,
+ 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83, 97,109,101, 86,111,108,117,109,101, 67,
+111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98,
+ 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,
+110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97,
+ 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,
+110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,
+100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114,
+ 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,
+114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,
+111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,
+114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116,
+ 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,
+114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,
+105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,
+105,110,107, 0, 98, 78,111,100,101, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0,117,105, 66,108,111, 99,107, 0, 98,
+ 78,111,100,101, 84,121,112,101, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68,
+ 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,
+108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101,
+ 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,
+111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0,
+ 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,
+108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,101,110,115, 68,105,115,116, 0, 78,111,
+100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100,101, 67,111,108,111,114,115,112,105,108,108, 0, 84,101,
+120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77,
+ 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,
+115,116,111,109, 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,
+101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 67,104,105,108,100,
+ 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101,
+ 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 83, 80, 72, 70,108,117,105,
+100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,
+101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0,
+ 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,
+111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,
+121,101,114, 0, 82,101,112,111,114,116, 0, 82,101,112,111,114,116, 76,105,115,116, 0, 82,101,112,111,114,116, 84,105,109,101,
+114, 73,110,102,111, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,
+109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,
+109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65,
+ 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,105,102,105,
+101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,111,110, 71,
+101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,
+110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,111,110, 0,
+ 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, 83,116,101,112,
+112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0, 67,104, 97,110,110,
+101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,
+105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0,
+ 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,
+100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101, 71,111,
+ 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110, 0, 66,
+111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118,101,114,
+ 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101,
+ 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 0, 0, 84, 76, 69, 78, 1, 0, 1, 0,
+ 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 8, 0, 16, 0, 12, 0,
+ 12, 0, 24, 0, 16, 0, 16, 0, 32, 0, 16, 0, 16, 0, 32, 0, 96, 0, 72, 0, 72, 2, 0, 0, 40, 0,144, 0,208, 4,112, 0,
+ 36, 0, 56, 0,112, 0,128, 0,168, 0, 96, 0, 40, 0, 48, 0,176, 0, 16, 0,136, 0, 40, 0, 8, 6,240, 1, 0, 0, 0, 0,
+ 0, 0, 16, 1,112, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0, 88, 0, 40, 1,240, 0,136, 0,216, 1, 64, 1, 80, 0, 88, 0,
+ 32, 3,104, 0, 88, 1, 0, 0,128, 0,104, 0,208, 0, 80, 0, 8, 0, 16, 0,216, 1, 0, 0, 0, 0, 0, 0,176, 1, 20, 0,
+ 48, 0, 64, 0, 24, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0, 40, 0,128, 0, 48, 0, 8, 0, 16, 0, 8, 0, 8, 0,
+ 4, 0, 4, 0, 0, 1, 32, 0, 16, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 80, 0,104, 0,120, 0,128, 0, 96, 0,128, 0,
+160, 0, 96, 0, 88, 0,136, 0, 88, 0,112, 0, 0, 1, 56, 0,192, 0,184, 0,232, 0, 88, 0,120, 0,136, 0,224, 0,136, 0,
+248, 0, 80, 0,136, 0, 0, 0,152, 0, 40, 0, 8, 2,160, 0, 0, 0,120, 0, 0, 0, 0, 0, 96, 0, 8, 0, 8, 0, 48, 1,
+112, 0,240, 1,104, 0, 96, 0, 88, 0, 96, 0,200, 1,144, 0,136, 0, 80, 0,136, 0,112, 0, 8, 1, 48, 0, 0, 0,144, 0,
+176, 0,104, 0, 48, 0, 24, 0,120, 0,152, 0,120, 1,224, 0,192, 0, 0, 0, 72, 0,168, 0, 0, 0, 16, 0, 0, 0, 0, 0,
+ 0, 0,232, 1, 40, 0,184, 0,152, 0, 64, 0, 64, 0, 24, 0, 88, 0, 0, 4, 64, 0, 24, 0, 16, 0,104, 0, 96, 0, 32, 0,
+168, 1, 56, 0, 16, 0,168, 0, 88, 0, 56, 0, 64, 0,184, 1, 32, 0, 8, 0, 24, 0, 80, 2, 0, 0, 0, 0, 88, 0,104, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 1, 56, 0,144, 0, 72, 0,208, 0,240, 0, 40, 0,248, 0,240, 0,200, 1,104, 0,
+ 0, 0,168, 0, 0, 0, 32, 1, 16, 0, 16, 0, 72, 33,128, 16, 24, 16,216, 0,144, 2,120, 2, 64, 0, 48, 0,216, 0, 32, 1,
+ 72, 0,200, 2, 40, 0,144, 1,104, 0, 24, 1, 32, 0,232, 0, 32, 0, 32, 0,112, 2,104, 1, 16, 0, 56, 29, 80, 0, 56, 0,
+ 8, 13, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 24, 1, 80, 0, 48, 0, 16, 0, 8, 0, 44, 0,
+ 0, 1, 32, 1,200, 1, 24, 1,136, 1, 32, 0, 12, 0, 24, 0, 52, 0, 16, 0, 24, 0, 24, 0, 32, 0, 72, 1, 0, 0, 64, 0,
+ 64, 0, 48, 0, 8, 0, 48, 0, 72, 0,104, 0, 40, 0, 8, 0, 72, 0, 44, 0, 40, 0,108, 0, 72, 0, 72, 0, 96, 0,104, 0,
+ 60, 0,128, 0, 80, 0, 80, 0, 16, 0, 96, 0, 72, 0, 32, 0, 88, 0, 24, 0, 80, 0,112, 0, 84, 0, 32, 0, 96, 0, 56, 0,
+ 56, 0,112, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0, 88, 0, 40, 0,216, 0, 40, 0, 40, 1,200, 0, 16, 0, 16, 2, 0, 0,
+ 4, 0, 40, 0,120, 0, 0, 1, 88, 0, 56, 0, 88, 0,128, 0, 80, 0,120, 0, 24, 0, 56, 0, 48, 0, 48, 0, 48, 0, 8, 0,
+ 40, 0, 72, 0, 72, 0, 48, 0, 48, 0, 24, 0, 56, 0,104, 0, 16, 0,112, 0, 96, 0, 56, 0, 28, 0, 28, 0, 28, 0, 56, 0,
+ 24, 0, 72, 0,168, 0, 40, 0,144, 0, 56, 0,232, 0, 0, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 16, 1,
+ 44, 0, 8, 0, 8, 0, 64, 0, 32, 0, 24, 0, 16, 0, 24, 0, 32, 0, 8, 0, 84, 0, 20, 0, 32, 0, 12, 0, 56, 0, 24, 0,
+ 72, 0,240, 0, 24, 0, 56, 0, 56, 0, 20, 0, 64, 0, 40, 0, 32, 0,192, 0, 36, 0, 16, 2,104, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 40, 0, 20, 0, 24, 1,224, 0,168, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,
+120, 0, 0, 0,104, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1, 16, 0,
+104, 0, 0, 1, 40, 0,200, 0,104, 0,112, 0,168, 0, 32, 0, 80, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0,
+ 0, 0, 0, 0, 83, 84, 82, 67,153, 1, 0, 0, 10, 0, 2, 0, 10, 0, 0, 0, 10, 0, 1, 0, 11, 0, 3, 0, 11, 0, 0, 0,
+ 11, 0, 1, 0, 9, 0, 2, 0, 12, 0, 2, 0, 9, 0, 3, 0, 9, 0, 4, 0, 13, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0,
+ 14, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 15, 0, 2, 0, 4, 0, 5, 0, 4, 0, 6, 0, 16, 0, 2, 0, 8, 0, 5, 0,
+ 8, 0, 6, 0, 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 18, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0,
+ 7, 0, 7, 0, 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 20, 0, 4, 0, 4, 0, 5, 0, 4, 0, 6, 0,
+ 4, 0, 7, 0, 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 8, 0, 22, 0, 4, 0,
+ 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0,
+ 4, 0, 12, 0, 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 25, 0, 4, 0, 9, 0, 13, 0,
+ 12, 0, 14, 0, 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, 26, 0, 1, 0, 0, 0, 17, 0, 0, 0, 18, 0,
+ 2, 0, 19, 0, 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, 4, 0, 24, 0, 27, 0, 9, 0, 9, 0, 0, 0,
+ 9, 0, 1, 0, 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, 2, 0, 19, 0, 4, 0, 29, 0, 26, 0, 30, 0,
+ 28, 0, 8, 0, 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 4, 0, 36, 0, 4, 0, 37, 0,
+ 28, 0, 38, 0, 30, 0, 6, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0, 2, 0, 43, 0, 4, 0, 44, 0,
+ 31, 0, 6, 0, 32, 0, 45, 0, 2, 0, 46, 0, 2, 0, 47, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 48, 0, 33, 0, 21, 0,
+ 33, 0, 0, 0, 33, 0, 1, 0, 34, 0, 49, 0, 35, 0, 50, 0, 24, 0, 51, 0, 24, 0, 52, 0, 2, 0, 46, 0, 2, 0, 47, 0,
+ 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 56, 0, 2, 0, 19, 0, 2, 0, 57, 0, 7, 0, 11, 0, 7, 0, 12, 0,
+ 4, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 7, 0, 61, 0, 31, 0, 62, 0, 36, 0, 7, 0, 27, 0, 31, 0, 12, 0, 63, 0,
+ 24, 0, 64, 0, 2, 0, 46, 0, 2, 0, 65, 0, 2, 0, 66, 0, 2, 0, 37, 0, 37, 0, 16, 0, 37, 0, 0, 0, 37, 0, 1, 0,
+ 7, 0, 67, 0, 7, 0, 61, 0, 2, 0, 17, 0, 2, 0, 47, 0, 2, 0, 68, 0, 2, 0, 19, 0, 4, 0, 69, 0, 4, 0, 70, 0,
+ 9, 0, 2, 0, 7, 0, 71, 0, 0, 0, 20, 0, 0, 0, 72, 0, 7, 0, 73, 0, 7, 0, 74, 0, 38, 0, 13, 0, 27, 0, 31, 0,
+ 39, 0, 75, 0, 37, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 7, 0, 61, 0, 12, 0, 79, 0, 36, 0, 80, 0, 27, 0, 81, 0,
+ 2, 0, 17, 0, 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 19, 0, 40, 0, 6, 0, 40, 0, 0, 0, 40, 0, 1, 0, 0, 0, 84, 0,
+ 0, 0, 85, 0, 4, 0, 23, 0, 4, 0, 86, 0, 41, 0, 10, 0, 41, 0, 0, 0, 41, 0, 1, 0, 4, 0, 87, 0, 4, 0, 88, 0,
+ 4, 0, 89, 0, 4, 0, 43, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 42, 0, 15, 0, 27, 0, 31, 0,
+ 0, 0, 93, 0, 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, 40, 0, 97, 0, 4, 0, 98, 0, 4, 0, 99, 0,
+ 12, 0,100, 0, 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, 8, 0,105, 0, 43, 0, 3, 0, 4, 0,106, 0,
+ 4, 0,107, 0, 9, 0, 2, 0, 44, 0, 15, 0, 27, 0, 31, 0, 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0,108, 0,
+ 7, 0,109, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0,
+ 36, 0, 80, 0, 32, 0,117, 0, 45, 0, 13, 0, 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 2, 0,122, 0,
+ 2, 0,123, 0, 2, 0, 19, 0, 2, 0,124, 0, 2, 0,125, 0, 2, 0,126, 0, 2, 0,127, 0, 2, 0,128, 0, 46, 0,129, 0,
+ 47, 0, 32, 0, 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,130, 0, 48, 0,131, 0, 49, 0,132, 0, 50, 0,133, 0, 50, 0,134, 0,
+ 2, 0,135, 0, 2, 0,136, 0, 2, 0,124, 0, 2, 0, 19, 0, 2, 0,137, 0, 2, 0, 17, 0, 4, 0,138, 0, 2, 0,139, 0,
+ 2, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,143, 0, 2, 0,144, 0, 4, 0,145, 0, 4, 0,146, 0, 43, 0,147, 0,
+ 30, 0,148, 0, 7, 0,149, 0, 4, 0,150, 0, 2, 0,151, 0, 2, 0,152, 0, 2, 0,153, 0, 2, 0,154, 0, 7, 0,155, 0,
+ 7, 0,156, 0, 51, 0, 63, 0, 2, 0,157, 0, 2, 0,158, 0, 2, 0,159, 0, 2, 0,160, 0, 32, 0,161, 0, 52, 0,162, 0,
+ 0, 0,163, 0, 0, 0,164, 0, 0, 0,165, 0, 0, 0,166, 0, 0, 0,167, 0, 7, 0,168, 0, 7, 0,169, 0, 7, 0,170, 0,
+ 2, 0,171, 0, 2, 0,172, 0, 2, 0,173, 0, 2, 0,174, 0, 2, 0,175, 0, 2, 0,176, 0, 0, 0,177, 0, 0, 0,178, 0,
+ 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0, 57, 0, 7, 0,184, 0, 7, 0,185, 0,
+ 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0,
+ 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0,
+ 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0,
+ 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0,
+ 7, 0,218, 0, 53, 0, 15, 0, 0, 0,219, 0, 9, 0,220, 0, 0, 0,221, 0, 0, 0,222, 0, 4, 0,223, 0, 4, 0,224, 0,
+ 9, 0,225, 0, 7, 0,226, 0, 7, 0,227, 0, 7, 0,228, 0, 4, 0,229, 0, 9, 0,230, 0, 9, 0,231, 0, 4, 0,232, 0,
+ 4, 0, 37, 0, 54, 0, 6, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0,233, 0, 7, 0, 67, 0, 4, 0, 64, 0,
+ 55, 0, 5, 0, 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 64, 0, 2, 0,234, 0, 54, 0,228, 0, 56, 0, 17, 0, 32, 0,161, 0,
+ 47, 0,235, 0, 57, 0,236, 0, 7, 0,237, 0, 7, 0,238, 0, 2, 0, 17, 0, 2, 0,239, 0, 7, 0,109, 0, 7, 0,110, 0,
+ 7, 0,240, 0, 4, 0,241, 0, 2, 0,242, 0, 2, 0,243, 0, 4, 0,124, 0, 4, 0,138, 0, 2, 0,244, 0, 2, 0,245, 0,
+ 58, 0, 22, 0, 2, 0, 19, 0, 2, 0,246, 0, 7, 0,247, 0, 7, 0,248, 0, 2, 0,137, 0, 2, 0,249, 0, 4, 0,250, 0,
+ 4, 0,251, 0, 32, 0,161, 0, 4, 0,252, 0, 2, 0,253, 0, 2, 0,254, 0, 9, 0,255, 0, 7, 0, 0, 1, 7, 0, 1, 1,
+ 2, 0, 2, 1, 2, 0, 3, 1, 2, 0, 4, 1, 2, 0, 5, 1, 7, 0, 6, 1, 7, 0, 7, 1, 55, 0, 8, 1, 59, 0, 13, 0,
+ 4, 0, 9, 1, 4, 0, 10, 1, 2, 0, 11, 1, 2, 0, 19, 0, 2, 0, 12, 1, 2, 0, 13, 1, 32, 0,161, 0, 7, 0, 14, 1,
+ 4, 0, 15, 1, 0, 0, 16, 1, 7, 0, 17, 1, 4, 0, 18, 1, 4, 0,124, 0, 52, 0, 63, 0, 27, 0, 31, 0, 39, 0, 75, 0,
+ 7, 0, 19, 1, 7, 0, 20, 1, 7, 0, 21, 1, 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1,
+ 7, 0, 27, 1, 7, 0, 70, 0, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1,
+ 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 2, 0, 40, 1, 2, 0, 41, 1,
+ 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,239, 0,
+ 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 4, 0, 51, 1, 4, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1,
+ 2, 0, 12, 1, 2, 0,122, 0, 4, 0, 23, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 7, 0, 55, 1, 7, 0, 56, 1,
+ 7, 0, 43, 0, 45, 0, 57, 1, 60, 0, 58, 1, 36, 0, 80, 0, 47, 0,235, 0, 53, 0, 59, 1, 55, 0, 8, 1, 56, 0, 60, 1,
+ 30, 0,148, 0, 58, 0, 61, 1, 59, 0, 62, 1, 0, 0, 63, 1, 0, 0,178, 0, 61, 0, 8, 0, 7, 0, 64, 1, 7, 0, 65, 1,
+ 7, 0,169, 0, 4, 0, 19, 0, 7, 0, 66, 1, 7, 0, 67, 1, 7, 0, 68, 1, 32, 0, 45, 0, 62, 0, 72, 0, 27, 0, 31, 0,
+ 39, 0, 75, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 69, 1, 2, 0,172, 0, 2, 0, 70, 1, 7, 0,179, 0, 7, 0,180, 0,
+ 7, 0,181, 0, 7, 0,182, 0, 7, 0, 71, 1, 7, 0, 72, 1, 7, 0, 73, 1, 7, 0, 74, 1, 7, 0, 75, 1, 7, 0, 76, 1,
+ 7, 0, 77, 1, 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 63, 0, 82, 1, 2, 0,246, 0, 2, 0, 70, 0,
+ 7, 0,109, 0, 7, 0,110, 0, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1, 7, 0, 86, 1, 7, 0, 87, 1, 2, 0, 88, 1,
+ 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 0, 0, 92, 1, 0, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1,
+ 2, 0, 97, 1, 2, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, 7, 0,102, 1, 2, 0,103, 1, 2, 0, 43, 0,
+ 2, 0,104, 1, 2, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, 7, 0,108, 1, 7, 0,109, 1, 7, 0,110, 1, 7, 0,111, 1,
+ 7, 0,112, 1, 7, 0,113, 1, 7, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1,
+ 2, 0,120, 1, 0, 0,121, 1, 36, 0, 80, 0, 51, 0,122, 1, 2, 0,123, 1, 0, 0,124, 1, 30, 0,148, 0, 64, 0, 2, 0,
+ 27, 0, 31, 0, 36, 0, 80, 0, 65, 0, 18, 0, 7, 0,125, 1, 7, 0,126, 1, 7, 0,127, 1, 7, 0,128, 1, 7, 0,129, 1,
+ 7, 0,130, 1, 7, 0,131, 1, 7, 0,132, 1, 7, 0,133, 1, 7, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, 2, 0,137, 1,
+ 2, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1, 7, 0,141, 1, 7, 0,142, 1, 66, 0,124, 0, 27, 0, 31, 0, 39, 0, 75, 0,
+ 2, 0,143, 1, 2, 0, 19, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1,
+ 7, 0,147, 1, 7, 0,148, 1, 7, 0,149, 1, 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 7, 0,154, 1,
+ 7, 0,155, 1, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1,
+ 7, 0,163, 1, 65, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1,
+ 7, 0,171, 1, 2, 0,172, 1, 2, 0,173, 1, 2, 0,174, 1, 0, 0,175, 1, 0, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1,
+ 2, 0,179, 1, 2, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 7, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1,
+ 4, 0, 69, 1, 4, 0,187, 1, 2, 0,188, 1, 2, 0,189, 1, 2, 0,190, 1, 2, 0,191, 1, 7, 0,192, 1, 7, 0,193, 1,
+ 7, 0,194, 1, 7, 0,195, 1, 7, 0,196, 1, 7, 0,197, 1, 7, 0,198, 1, 7, 0,199, 1, 7, 0,200, 1, 7, 0,201, 1,
+ 0, 0,202, 1, 7, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, 4, 0,206, 1, 0, 0,207, 1, 0, 0,104, 1, 0, 0,208, 1,
+ 0, 0, 63, 1, 2, 0,209, 1, 2, 0,210, 1, 2, 0,123, 1, 2, 0,211, 1, 2, 0,212, 1, 2, 0,213, 1, 7, 0,214, 1,
+ 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1, 2, 0,157, 0, 2, 0,158, 0, 55, 0,219, 1, 55, 0,220, 1,
+ 0, 0,221, 1, 0, 0,222, 1, 0, 0,223, 1, 0, 0,224, 1, 2, 0,225, 1, 2, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1,
+ 51, 0,122, 1, 60, 0, 58, 1, 36, 0, 80, 0, 67, 0,229, 1, 30, 0,148, 0, 7, 0,230, 1, 7, 0,231, 1, 7, 0,232, 1,
+ 7, 0,233, 1, 7, 0,234, 1, 2, 0,235, 1, 2, 0, 70, 0, 7, 0,236, 1, 7, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1,
+ 7, 0,240, 1, 7, 0,241, 1, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, 2, 0,245, 1, 2, 0,246, 1, 4, 0,247, 1,
+ 4, 0,248, 1, 12, 0,249, 1, 68, 0, 4, 0, 27, 0, 31, 0, 0, 0,250, 1, 69, 0, 2, 0, 43, 0,147, 0, 70, 0, 26, 0,
+ 70, 0, 0, 0, 70, 0, 1, 0, 71, 0,251, 1, 4, 0,252, 1, 4, 0,253, 1, 4, 0,254, 1, 4, 0,255, 1, 4, 0, 0, 2,
+ 4, 0, 1, 2, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 2, 2, 2, 0, 3, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0,
+ 7, 0, 4, 2, 7, 0, 5, 2, 7, 0, 6, 2, 7, 0, 7, 2, 7, 0, 8, 2, 7, 0, 9, 2, 7, 0, 10, 2, 7, 0, 23, 0,
+ 7, 0, 11, 2, 7, 0, 12, 2, 72, 0, 20, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0,251, 1, 12, 0, 13, 2, 12, 0, 14, 2,
+ 12, 0, 15, 2, 36, 0, 80, 0, 66, 0, 16, 2, 0, 0, 19, 0, 0, 0, 17, 2, 2, 0, 18, 2, 2, 0,171, 0, 2, 0, 37, 0,
+ 7, 0, 64, 1, 7, 0,169, 0, 7, 0, 65, 1, 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 70, 0, 22, 2, 35, 0, 11, 0,
+ 7, 0, 23, 2, 7, 0, 24, 2, 7, 0, 25, 2, 7, 0,248, 0, 2, 0, 55, 0, 0, 0, 26, 2, 0, 0, 27, 2, 0, 0, 28, 2,
+ 0, 0, 29, 2, 0, 0, 30, 2, 0, 0, 31, 2, 34, 0, 7, 0, 7, 0, 32, 2, 7, 0, 24, 2, 7, 0, 25, 2, 2, 0, 28, 2,
+ 2, 0, 31, 2, 7, 0,248, 0, 7, 0, 37, 0, 73, 0, 21, 0, 73, 0, 0, 0, 73, 0, 1, 0, 2, 0, 17, 0, 2, 0, 33, 2,
+ 2, 0, 31, 2, 2, 0, 19, 0, 2, 0, 34, 2, 2, 0, 35, 2, 2, 0, 36, 2, 2, 0, 37, 2, 2, 0, 38, 2, 2, 0, 39, 2,
+ 2, 0, 40, 2, 2, 0, 41, 2, 7, 0, 42, 2, 7, 0, 43, 2, 34, 0, 49, 0, 35, 0, 50, 0, 2, 0, 44, 2, 2, 0, 45, 2,
+ 4, 0, 46, 2, 74, 0, 5, 0, 2, 0, 47, 2, 2, 0, 33, 2, 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 70, 0, 75, 0, 4, 0,
+ 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 8, 0, 7, 0, 48, 2, 76, 0, 68, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0,251, 1,
+ 12, 0, 49, 2, 12, 0, 14, 2, 12, 0, 50, 2, 32, 0, 51, 2, 32, 0, 52, 2, 32, 0, 53, 2, 36, 0, 80, 0, 77, 0, 54, 2,
+ 38, 0, 55, 2, 66, 0, 16, 2, 12, 0, 56, 2, 7, 0, 64, 1, 7, 0,169, 0, 7, 0, 65, 1, 2, 0,171, 0, 2, 0, 43, 0,
+ 2, 0, 57, 2, 2, 0, 58, 2, 2, 0, 59, 2, 7, 0, 60, 2, 7, 0, 70, 0, 2, 0, 61, 2, 2, 0, 18, 2, 2, 0, 19, 0,
+ 2, 0, 62, 2, 7, 0, 63, 2, 7, 0, 64, 2, 7, 0, 65, 2, 2, 0, 36, 2, 2, 0, 37, 2, 2, 0, 66, 2, 2, 0, 67, 2,
+ 4, 0, 68, 2, 9, 0, 69, 2, 2, 0, 23, 0, 2, 0, 95, 0, 2, 0, 67, 0, 2, 0, 70, 2, 7, 0, 71, 2, 7, 0, 72, 2,
+ 7, 0, 73, 2, 7, 0, 74, 2, 7, 0, 75, 2, 7, 0, 76, 2, 7, 0, 77, 2, 7, 0, 78, 2, 7, 0, 79, 2, 7, 0, 80, 2,
+ 0, 0, 81, 2, 78, 0, 82, 2, 79, 0, 83, 2, 0, 0, 84, 2, 68, 0, 85, 2, 68, 0, 86, 2, 68, 0, 87, 2, 68, 0, 88, 2,
+ 4, 0, 89, 2, 7, 0, 90, 2, 4, 0, 91, 2, 4, 0, 92, 2, 75, 0, 93, 2, 4, 0, 94, 2, 4, 0, 95, 2, 74, 0, 96, 2,
+ 74, 0, 97, 2, 80, 0, 41, 0, 27, 0, 31, 0, 39, 0, 75, 0, 71, 0,251, 1, 12, 0, 98, 2, 36, 0, 80, 0, 38, 0, 55, 2,
+ 66, 0, 16, 2, 81, 0, 99, 2, 82, 0,100, 2, 83, 0,101, 2, 84, 0,102, 2, 85, 0,103, 2, 86, 0,104, 2, 87, 0,105, 2,
+ 88, 0,106, 2, 80, 0,107, 2, 89, 0,108, 2, 90, 0,109, 2, 91, 0,110, 2, 91, 0,111, 2, 91, 0,112, 2, 4, 0, 54, 0,
+ 4, 0,113, 2, 4, 0,114, 2, 4, 0,115, 2, 4, 0,116, 2, 2, 0,171, 0, 2, 0,117, 2, 7, 0, 64, 1, 7, 0,169, 0,
+ 7, 0, 65, 1, 7, 0,118, 2, 4, 0, 57, 2, 2, 0,119, 2, 2, 0, 19, 0, 2, 0,120, 2, 2, 0,121, 2, 2, 0, 18, 2,
+ 2, 0,122, 2, 92, 0,123, 2, 93, 0,124, 2, 83, 0, 8, 0, 9, 0,125, 2, 7, 0,126, 2, 4, 0,127, 2, 0, 0, 19, 0,
+ 0, 0,128, 2, 2, 0, 69, 1, 2, 0,129, 2, 2, 0,130, 2, 81, 0, 7, 0, 4, 0,131, 2, 4, 0,132, 2, 4, 0,133, 2,
+ 4, 0,134, 2, 2, 0, 33, 2, 0, 0,135, 2, 0, 0, 19, 0, 85, 0, 5, 0, 4, 0,131, 2, 4, 0,132, 2, 0, 0,136, 2,
+ 0, 0,137, 2, 2, 0, 19, 0, 94, 0, 2, 0, 4, 0,138, 2, 7, 0, 25, 2, 86, 0, 3, 0, 94, 0,139, 2, 4, 0,140, 2,
+ 4, 0, 19, 0, 84, 0, 6, 0, 7, 0,141, 2, 2, 0,142, 2, 2, 0, 33, 2, 0, 0, 19, 0, 0, 0,137, 2, 0, 0, 59, 2,
+ 87, 0, 4, 0, 0, 0,233, 0, 0, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 95, 0, 6, 0, 47, 0,125, 2, 0, 0, 19, 0,
+ 0, 0,128, 2, 2, 0, 69, 1, 2, 0,129, 2, 2, 0,130, 2, 96, 0, 1, 0, 7, 0,143, 2, 97, 0, 5, 0, 0, 0,233, 0,
+ 0, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 4, 0, 37, 0, 88, 0, 1, 0, 7, 0,144, 2, 89, 0, 2, 0, 4, 0,145, 2,
+ 4, 0, 17, 0, 82, 0, 7, 0, 7, 0,126, 2, 47, 0,125, 2, 0, 0, 19, 0, 0, 0,128, 2, 2, 0, 69, 1, 2, 0,129, 2,
+ 2, 0,130, 2, 98, 0, 1, 0, 7, 0,146, 2, 99, 0, 1, 0, 4, 0,147, 2,100, 0, 1, 0, 0, 0,148, 2,101, 0, 1, 0,
+ 7, 0,126, 2,102, 0, 3, 0, 4, 0,149, 2, 0, 0, 92, 0, 7, 0,150, 2,103, 0, 4, 0, 7, 0,233, 0, 7, 0,179, 0,
+ 7, 0,180, 0, 7, 0,181, 0,104, 0, 1, 0,103, 0,127, 2,105, 0, 5, 0, 4, 0,151, 2, 4, 0,152, 2, 0, 0, 19, 0,
+ 0, 0, 33, 2, 0, 0, 59, 2,106, 0, 2, 0, 4, 0,153, 2, 4, 0,152, 2,107, 0, 10, 0,107, 0, 0, 0,107, 0, 1, 0,
+105, 0,154, 2,104, 0,155, 2,106, 0,156, 2, 4, 0, 54, 0, 4, 0,114, 2, 4, 0,113, 2, 4, 0, 37, 0, 84, 0,157, 2,
+ 92, 0, 14, 0, 12, 0,158, 2, 84, 0,157, 2, 0, 0,159, 2, 0, 0,160, 2, 0, 0,161, 2, 0, 0,162, 2, 0, 0,163, 2,
+ 0, 0,164, 2, 0, 0,165, 2, 0, 0, 19, 0, 91, 0,110, 2, 91, 0,112, 2, 2, 0,166, 2, 0, 0,167, 2, 93, 0, 8, 0,
+ 4, 0,168, 2, 4, 0,169, 2, 81, 0,170, 2, 85, 0,171, 2, 4, 0,114, 2, 4, 0,113, 2, 4, 0, 54, 0, 4, 0, 37, 0,
+108, 0, 9, 0,108, 0, 0, 0,108, 0, 1, 0, 4, 0, 17, 0, 4, 0, 69, 1, 4, 0,172, 2, 4, 0, 37, 0, 0, 0, 20, 0,
+ 46, 0,129, 0, 0, 0,173, 2,109, 0, 7, 0,108, 0,174, 2, 2, 0,175, 2, 2, 0,158, 2, 2, 0,176, 2, 2, 0, 90, 0,
+ 9, 0,177, 2, 9, 0,178, 2,110, 0, 3, 0,108, 0,174, 2, 32, 0,161, 0, 0, 0, 20, 0,111, 0, 5, 0,108, 0,174, 2,
+ 32, 0,161, 0, 0, 0, 20, 0, 2, 0,179, 2, 0, 0,180, 2,112, 0, 5, 0,108, 0,174, 2, 7, 0, 88, 0, 7, 0,181, 2,
+ 4, 0,182, 2, 4, 0,183, 2,113, 0, 5, 0,108, 0,174, 2, 32, 0,184, 2, 0, 0, 72, 0, 4, 0, 69, 1, 4, 0, 19, 0,
+114, 0, 13, 0,108, 0,174, 2, 32, 0,185, 2, 32, 0,186, 2, 32, 0,187, 2, 32, 0,188, 2, 7, 0,189, 2, 7, 0,190, 2,
+ 7, 0,181, 2, 7, 0,191, 2, 4, 0,192, 2, 4, 0,193, 2, 4, 0, 90, 0, 4, 0,194, 2,115, 0, 5, 0,108, 0,174, 2,
+ 2, 0,195, 2, 2, 0, 19, 0, 7, 0,196, 2, 32, 0,197, 2,116, 0, 3, 0,108, 0,174, 2, 7, 0,198, 2, 4, 0, 90, 0,
+117, 0, 10, 0,108, 0,174, 2, 7, 0,199, 2, 4, 0,200, 2, 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,201, 2, 2, 0,202, 2,
+ 2, 0,203, 2, 7, 0,204, 2, 0, 0,205, 2,118, 0, 3, 0,108, 0,174, 2, 7, 0, 37, 0, 4, 0, 17, 0,119, 0, 6, 0,
+108, 0,174, 2,120, 0,206, 2,121, 0,207, 2,122, 0,208, 2, 7, 0,209, 2, 4, 0, 17, 0,123, 0, 11, 0,108, 0,174, 2,
+ 52, 0,210, 2, 7, 0,211, 2, 4, 0,212, 2, 0, 0,205, 2, 7, 0,213, 2, 4, 0,214, 2, 32, 0,215, 2, 0, 0,216, 2,
+ 4, 0,217, 2, 4, 0, 37, 0,124, 0, 12, 0,108, 0,174, 2, 32, 0,218, 2, 47, 0,219, 2, 4, 0, 90, 0, 4, 0,220, 2,
+ 7, 0,221, 2, 7, 0,222, 2, 7, 0,223, 2, 7, 0,224, 2, 0, 0,216, 2, 4, 0,217, 2, 4, 0, 37, 0,125, 0, 3, 0,
+108, 0,174, 2, 7, 0,225, 2, 4, 0,226, 2,126, 0, 5, 0,108, 0,174, 2, 7, 0,227, 2, 0, 0,205, 2, 2, 0, 19, 0,
+ 2, 0,228, 2,127, 0, 8, 0,108, 0,174, 2, 32, 0,161, 0, 7, 0,227, 2, 7, 0,248, 0, 7, 0,106, 0, 0, 0,205, 2,
+ 2, 0, 19, 0, 2, 0, 17, 0,128, 0, 21, 0,108, 0,174, 2, 32, 0,229, 2, 0, 0,205, 2, 52, 0,210, 2, 32, 0,215, 2,
+ 2, 0, 19, 0, 2, 0, 37, 0, 7, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 7, 0, 63, 2, 7, 0,233, 2, 7, 0,234, 2,
+ 7, 0,235, 2, 7, 0,236, 2, 4, 0,214, 2, 4, 0,217, 2, 0, 0,216, 2, 7, 0,237, 2, 7, 0,238, 2, 7, 0, 43, 0,
+129, 0, 7, 0,108, 0,174, 2, 2, 0,239, 2, 2, 0,240, 2, 4, 0, 70, 0, 32, 0,161, 0, 7, 0,241, 2, 0, 0,205, 2,
+130, 0, 10, 0,108, 0,174, 2, 32, 0,161, 0, 0, 0,242, 2, 7, 0,243, 2, 7, 0,244, 2, 7, 0,236, 2, 4, 0,245, 2,
+ 4, 0,246, 2, 7, 0,247, 2, 0, 0, 20, 0,131, 0, 1, 0,108, 0,174, 2,132, 0, 7, 0,108, 0,174, 2, 46, 0,129, 0,
+133, 0,248, 2,134, 0,249, 2,135, 0,250, 2,136, 0,251, 2, 12, 0,252, 2,137, 0, 13, 0,108, 0,174, 2, 84, 0,253, 2,
+ 84, 0,254, 2, 84, 0,255, 2, 84, 0, 0, 3, 84, 0, 1, 3, 84, 0, 2, 3, 81, 0, 3, 3, 4, 0, 4, 3, 4, 0, 5, 3,
+ 7, 0,209, 2, 7, 0, 37, 0,138, 0, 6, 3,139, 0, 7, 0,108, 0,174, 2, 84, 0,253, 2, 84, 0, 7, 3,140, 0, 8, 3,
+141, 0, 6, 3, 4, 0, 9, 3, 4, 0, 4, 3,142, 0, 4, 0,108, 0,174, 2, 32, 0,161, 0, 4, 0, 10, 3, 4, 0, 37, 0,
+143, 0, 2, 0, 4, 0, 11, 3, 7, 0, 25, 2,144, 0, 2, 0, 4, 0,120, 0, 4, 0, 12, 3,145, 0, 24, 0,108, 0,174, 2,
+ 32, 0,161, 0, 0, 0,205, 2, 2, 0, 13, 3, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 37, 0,143, 0, 14, 3, 4, 0, 15, 3,
+ 7, 0, 16, 3, 4, 0, 54, 0, 4, 0, 17, 3,144, 0, 18, 3,143, 0, 19, 3, 4, 0, 20, 3, 4, 0, 21, 3, 4, 0, 22, 3,
+ 4, 0, 12, 3, 7, 0, 23, 3, 7, 0, 24, 3, 7, 0, 25, 3, 7, 0, 26, 3, 7, 0, 27, 3, 9, 0, 28, 3,146, 0, 8, 0,
+108, 0,174, 2,147, 0, 29, 3,140, 0, 8, 3, 4, 0, 30, 3, 4, 0, 31, 3, 4, 0, 32, 3, 2, 0, 19, 0, 2, 0, 57, 0,
+148, 0, 8, 0,108, 0,174, 2, 32, 0, 45, 0, 2, 0,252, 0, 2, 0, 19, 0, 2, 0,195, 2, 2, 0, 57, 0, 7, 0, 33, 3,
+ 7, 0, 34, 3,149, 0, 5, 0,108, 0,174, 2, 4, 0, 35, 3, 2, 0, 19, 0, 2, 0, 36, 3, 7, 0, 37, 3,150, 0, 8, 0,
+108, 0,174, 2, 0, 0, 38, 3, 0, 0, 39, 3, 0, 0,164, 2, 0, 0, 40, 3, 0, 0, 41, 3, 0, 0, 90, 0, 0, 0, 59, 2,
+151, 0, 3, 0,108, 0,174, 2,152, 0, 42, 3,136, 0,251, 2,153, 0, 10, 0,108, 0,174, 2, 32, 0, 43, 3, 32, 0, 44, 3,
+ 0, 0, 45, 3, 7, 0, 46, 3, 2, 0, 47, 3, 2, 0, 48, 3, 0, 0, 49, 3, 0, 0, 50, 3, 0, 0,180, 2,154, 0, 9, 0,
+108, 0,174, 2, 32, 0, 51, 3, 0, 0, 45, 3, 7, 0, 52, 3, 7, 0, 53, 3, 0, 0, 69, 1, 0, 0,195, 2, 0, 0, 54, 3,
+ 0, 0, 37, 0,155, 0, 1, 0,108, 0,174, 2,156, 0, 8, 0,108, 0,174, 2, 0, 0,205, 2, 7, 0,120, 0, 7, 0, 55, 3,
+ 7, 0, 56, 3, 7, 0, 57, 3, 7, 0, 58, 3, 4, 0, 19, 0,157, 0, 9, 0,108, 0,174, 2, 32, 0, 59, 3, 4, 0, 60, 3,
+ 4, 0, 61, 3, 4, 0, 62, 3, 7, 0, 63, 3, 7, 0, 64, 3, 2, 0,195, 2, 2, 0, 19, 0,158, 0, 28, 0, 27, 0, 31, 0,
+ 2, 0, 34, 2, 2, 0, 35, 2, 2, 0, 65, 3, 2, 0, 19, 0, 2, 0, 66, 3, 2, 0, 67, 3, 2, 0, 68, 3, 2, 0, 70, 0,
+ 0, 0, 69, 3, 0, 0, 70, 3, 0, 0, 71, 3, 0, 0, 17, 0, 4, 0, 37, 0, 7, 0, 72, 3, 7, 0, 73, 3, 7, 0, 74, 3,
+ 7, 0, 75, 3, 7, 0, 76, 3, 7, 0, 77, 3, 34, 0, 78, 3, 36, 0, 80, 0, 38, 0, 55, 2, 86, 0,104, 2, 0, 0, 72, 0,
+ 7, 0, 79, 3, 7, 0, 80, 3,158, 0, 81, 3,159, 0, 3, 0,159, 0, 0, 0,159, 0, 1, 0, 0, 0, 20, 0, 71, 0, 3, 0,
+ 7, 0, 82, 3, 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,126, 0, 27, 0, 31, 0, 39, 0, 75, 0,160, 0, 83, 3, 2, 0, 17, 0,
+ 2, 0, 84, 3, 4, 0, 85, 3, 4, 0, 86, 3, 4, 0, 87, 3, 0, 0, 88, 3, 32, 0, 38, 0, 32, 0, 89, 3, 32, 0, 90, 3,
+ 32, 0, 91, 3, 32, 0, 92, 3, 36, 0, 80, 0, 77, 0, 54, 2, 71, 0,251, 1,161, 0, 93, 3,161, 0, 94, 3,162, 0, 95, 3,
+ 9, 0, 2, 0,163, 0, 96, 3,164, 0, 97, 3,165, 0, 98, 3, 12, 0, 99, 3, 12, 0, 98, 2, 12, 0, 14, 2, 12, 0,100, 3,
+ 12, 0,101, 3, 4, 0, 69, 1, 4, 0,102, 3, 66, 0, 16, 2, 0, 0,103, 3, 4, 0, 18, 2, 4, 0,104, 3, 7, 0, 64, 1,
+ 7, 0,105, 3, 7, 0,106, 3, 7, 0,169, 0, 7, 0,107, 3, 7, 0, 65, 1, 7, 0,108, 3, 7, 0, 4, 2, 7, 0,109, 3,
+ 7, 0,110, 3, 7, 0,111, 3, 7, 0,112, 3, 7, 0,113, 3, 7, 0,114, 3, 7, 0,243, 2, 7, 0,115, 3, 7, 0,237, 0,
+ 4, 0,116, 3, 2, 0, 19, 0, 2, 0,117, 3, 2, 0,118, 3, 2, 0,119, 3, 2, 0,120, 3, 2, 0,121, 3, 2, 0,122, 3,
+ 2, 0,123, 3, 2, 0,124, 3, 2, 0,125, 3, 2, 0,126, 3, 2, 0,127, 3, 4, 0,128, 3, 4, 0,129, 3, 4, 0,130, 3,
+ 4, 0,131, 3, 7, 0,132, 3, 7, 0, 90, 2, 7, 0,133, 3, 7, 0,134, 3, 7, 0,135, 3, 7, 0,136, 3, 7, 0,137, 3,
+ 7, 0,212, 0, 7, 0,138, 3, 7, 0,139, 3, 7, 0,140, 3, 7, 0,141, 3, 2, 0,142, 3, 0, 0,143, 3, 0, 0,144, 3,
+ 0, 0,145, 3, 0, 0,146, 3, 7, 0,147, 3, 7, 0,148, 3, 12, 0,149, 3, 12, 0,150, 3, 12, 0,151, 3, 12, 0,152, 3,
+ 7, 0,153, 3, 2, 0,145, 2, 2, 0,154, 3, 7, 0,127, 2, 4, 0,155, 3, 4, 0,156, 3,166, 0,157, 3, 2, 0,158, 3,
+ 2, 0,244, 0, 7, 0,159, 3, 12, 0,160, 3, 12, 0,161, 3, 12, 0,162, 3, 12, 0,163, 3,167, 0, 61, 1,168, 0,164, 3,
+ 67, 0,165, 3, 2, 0,166, 3, 2, 0,167, 3, 2, 0,168, 3, 2, 0,169, 3, 7, 0,119, 2, 2, 0,170, 3, 2, 0,171, 3,
+152, 0,172, 3,140, 0,173, 3,140, 0,174, 3, 4, 0,175, 3, 4, 0,176, 3, 4, 0,177, 3, 4, 0, 70, 0, 12, 0,178, 3,
+ 12, 0,179, 3, 12, 0,180, 3,169, 0, 14, 0,169, 0, 0, 0,169, 0, 1, 0, 32, 0, 38, 0, 7, 0,243, 2, 7, 0, 66, 1,
+ 7, 0,244, 2, 7, 0,236, 2, 0, 0, 20, 0, 4, 0,245, 2, 4, 0,246, 2, 4, 0,181, 3, 2, 0, 17, 0, 2, 0,182, 3,
+ 7, 0,247, 2,170, 0, 12, 0,170, 0, 0, 0,170, 0, 1, 0, 32, 0, 45, 0, 4, 0,183, 3, 4, 0,145, 2, 4, 0,184, 3,
+ 4, 0, 17, 0, 4, 0,185, 3, 7, 0, 66, 1, 7, 0,186, 3, 7, 0,187, 3, 7, 0,143, 2,167, 0, 40, 0, 4, 0, 19, 0,
+ 2, 0,188, 3, 2, 0,189, 3, 2, 0,236, 2, 2, 0,190, 3, 2, 0,191, 3, 2, 0,192, 3, 2, 0,193, 3, 2, 0,194, 3,
+ 7, 0,195, 3, 7, 0,196, 3, 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3,
+ 7, 0,203, 3, 7, 0,204, 3, 7, 0,205, 3, 7, 0,206, 3, 7, 0,207, 3, 7, 0,208, 3, 7, 0,209, 3, 7, 0,210, 3,
+ 7, 0,211, 3, 7, 0,212, 3, 7, 0,213, 3, 7, 0,214, 3, 7, 0,215, 3, 7, 0,216, 3, 7, 0,217, 3, 7, 0,218, 3,
+ 7, 0,219, 3, 7, 0,220, 3, 7, 0,221, 3, 52, 0,162, 0,171, 0,222, 3, 7, 0,223, 3, 4, 0,183, 2,172, 0, 5, 0,
+ 67, 0,229, 1, 7, 0,224, 3, 7, 0,225, 3, 2, 0, 19, 0, 2, 0,226, 3,173, 0, 9, 0,173, 0, 0, 0,173, 0, 1, 0,
+ 4, 0,227, 3, 4, 0,228, 3, 4, 0,229, 3, 4, 0, 19, 0, 4, 0,230, 3, 9, 0,231, 3, 9, 0,232, 3,136, 0, 19, 0,
+136, 0, 0, 0,136, 0, 1, 0, 4, 0, 19, 0, 4, 0,233, 3, 4, 0,234, 3, 4, 0,235, 3, 4, 0,236, 3, 4, 0,237, 3,
+ 4, 0,238, 3, 4, 0,228, 3, 4, 0,145, 2, 4, 0, 57, 0, 0, 0,239, 3, 0, 0,240, 3, 0, 0,241, 3, 0, 0,242, 3,
+ 12, 0,243, 3,174, 0,244, 3, 9, 0,245, 3,175, 0, 1, 0, 7, 0, 32, 2,166, 0, 30, 0, 4, 0, 19, 0, 7, 0,246, 3,
+ 7, 0,247, 3, 7, 0,248, 3, 4, 0,249, 3, 4, 0,250, 3, 4, 0,251, 3, 4, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3,
+ 7, 0,255, 3, 7, 0, 0, 4, 7, 0, 1, 4, 7, 0, 2, 4, 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4,
+ 7, 0, 7, 4, 7, 0, 8, 4, 7, 0, 9, 4, 7, 0, 10, 4, 7, 0, 11, 4, 7, 0, 12, 4, 7, 0, 13, 4, 7, 0, 14, 4,
+ 4, 0, 15, 4, 4, 0, 16, 4, 7, 0, 17, 4, 7, 0,138, 3,168, 0, 54, 0, 4, 0,228, 3, 4, 0, 18, 4,176, 0, 19, 4,
+177, 0, 20, 4, 0, 0, 37, 0, 0, 0, 21, 4, 2, 0, 22, 4, 7, 0, 23, 4, 0, 0, 24, 4, 7, 0, 25, 4, 7, 0, 26, 4,
+ 7, 0, 27, 4, 7, 0, 28, 4, 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 2, 0, 34, 4,
+ 0, 0, 35, 4, 2, 0, 36, 4, 7, 0, 37, 4, 7, 0, 38, 4, 0, 0, 39, 4, 4, 0,121, 0, 4, 0, 40, 4, 4, 0, 41, 4,
+ 2, 0, 42, 4, 2, 0, 43, 4,175, 0, 44, 4, 4, 0, 45, 4, 4, 0, 82, 0, 7, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4,
+ 7, 0, 49, 4, 2, 0, 50, 4, 2, 0, 51, 4, 2, 0, 52, 4, 2, 0, 53, 4, 2, 0, 54, 4, 2, 0, 55, 4, 2, 0, 56, 4,
+ 2, 0, 57, 4,178, 0, 58, 4, 7, 0, 59, 4, 7, 0, 60, 4,136, 0, 61, 4, 12, 0,252, 2,172, 0, 62, 4, 7, 0, 63, 4,
+ 7, 0, 64, 4, 7, 0, 65, 4, 0, 0, 66, 4,152, 0, 51, 0,151, 0, 67, 4, 2, 0, 17, 0, 2, 0, 68, 4, 2, 0, 69, 4,
+ 2, 0, 70, 4, 7, 0, 71, 4, 2, 0, 72, 4, 2, 0, 73, 4, 7, 0, 74, 4, 2, 0, 75, 4, 2, 0, 76, 4, 7, 0, 77, 4,
+ 7, 0, 78, 4, 7, 0, 79, 4, 7, 0, 80, 4, 7, 0, 81, 4, 4, 0, 82, 4, 4, 0, 83, 4, 7, 0, 84, 4, 4, 0, 85, 4,
+ 7, 0, 86, 4, 7, 0, 87, 4, 7, 0, 88, 4, 80, 0, 89, 4, 80, 0, 90, 4, 80, 0, 91, 4, 0, 0, 92, 4, 7, 0, 93, 4,
+ 7, 0, 94, 4, 36, 0, 80, 0, 2, 0, 95, 4, 0, 0, 96, 4, 0, 0, 97, 4, 7, 0, 98, 4, 4, 0, 99, 4, 7, 0,100, 4,
+ 7, 0,101, 4, 4, 0,102, 4, 4, 0, 19, 0, 7, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 84, 0,106, 4, 7, 0,107, 4,
+ 7, 0,108, 4, 7, 0,109, 4, 7, 0,110, 4, 7, 0,111, 4, 7, 0,112, 4, 7, 0,113, 4, 4, 0,114, 4,179, 0, 78, 0,
+ 27, 0, 31, 0, 39, 0, 75, 0, 2, 0,172, 0, 2, 0, 70, 1, 2, 0,104, 1, 2, 0,115, 4, 7, 0,116, 4, 7, 0,117, 4,
+ 7, 0,118, 4, 7, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,150, 1, 7, 0,152, 1,
+ 7, 0,151, 1, 7, 0,124, 4, 4, 0,125, 4, 7, 0,126, 4, 7, 0,127, 4, 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4,
+ 7, 0,131, 4, 7, 0,132, 4, 2, 0,133, 4, 2, 0, 69, 1, 2, 0,134, 4, 2, 0,135, 4, 2, 0,136, 4, 2, 0,137, 4,
+ 2, 0,138, 4, 2, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 7, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4,
+ 7, 0,146, 4, 7, 0,147, 4, 7, 0,148, 4, 7, 0,149, 4, 7, 0,150, 4, 7, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4,
+ 2, 0,154, 4, 2, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, 7, 0,159, 4, 2, 0,160, 4, 2, 0,161, 4,
+ 2, 0,162, 4, 2, 0,163, 4, 7, 0,164, 4, 7, 0,165, 4, 7, 0,166, 4, 7, 0,167, 4, 7, 0,168, 4, 7, 0,169, 4,
+ 7, 0,170, 4, 2, 0,171, 4, 2, 0,172, 4, 2, 0,173, 4, 2, 0,174, 4, 2, 0,175, 4, 2, 0, 19, 0, 7, 0,176, 4,
+ 7, 0,177, 4, 36, 0, 80, 0, 51, 0,122, 1, 2, 0,123, 1, 2, 0,178, 4, 30, 0,148, 0,180, 0, 8, 0,180, 0, 0, 0,
+180, 0, 1, 0, 4, 0,116, 3, 4, 0,179, 4, 4, 0, 19, 0, 2, 0,180, 4, 2, 0,181, 4, 32, 0,161, 0,181, 0, 13, 0,
+ 9, 0,182, 4, 9, 0,183, 4, 4, 0,184, 4, 4, 0,185, 4, 4, 0,186, 4, 4, 0,187, 4, 4, 0,188, 4, 4, 0,189, 4,
+ 4, 0,190, 4, 4, 0,191, 4, 4, 0,192, 4, 4, 0, 37, 0, 0, 0,193, 4,182, 0, 5, 0, 9, 0,194, 4, 9, 0,195, 4,
+ 4, 0,196, 4, 4, 0, 70, 0, 0, 0,197, 4,183, 0, 17, 0, 4, 0,198, 4, 4, 0,199, 4, 4, 0,200, 4, 4, 0,201, 4,
+ 4, 0,202, 4, 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, 4, 0,208, 4, 4, 0,209, 4,
+ 2, 0,210, 4, 2, 0,211, 4, 4, 0,212, 4, 4, 0,213, 4, 4, 0, 43, 0,184, 0, 15, 0, 4, 0, 17, 0, 4, 0,200, 4,
+ 4, 0,214, 4, 4, 0,215, 4, 4, 0,216, 4, 4, 0,217, 4, 7, 0,218, 4, 4, 0,219, 4, 4, 0, 90, 0, 4, 0,220, 4,
+ 4, 0,221, 4, 4, 0,222, 4, 4, 0,223, 4, 4, 0,224, 4, 26, 0, 30, 0,185, 0, 7, 0, 4, 0,225, 4, 7, 0,226, 4,
+ 7, 0,227, 4, 7, 0,228, 4, 4, 0,229, 4, 2, 0, 19, 0, 2, 0, 37, 0,186, 0, 11, 0,186, 0, 0, 0,186, 0, 1, 0,
+ 0, 0, 20, 0, 66, 0,230, 4, 67, 0,231, 4, 4, 0,116, 3, 4, 0,232, 4, 4, 0,233, 4, 4, 0, 37, 0, 4, 0,234, 4,
+ 4, 0,235, 4,187, 0,111, 0,181, 0,236, 4,182, 0,237, 4,183, 0,238, 4,184, 0,239, 4, 4, 0, 9, 3, 4, 0,121, 0,
+ 4, 0, 40, 4, 7, 0,240, 4, 4, 0,241, 4, 4, 0,242, 4, 4, 0,243, 4, 4, 0,244, 4, 2, 0, 19, 0, 2, 0,245, 4,
+ 7, 0,246, 4, 7, 0,247, 4, 7, 0,248, 4, 7, 0,249, 4, 7, 0,250, 4, 2, 0,251, 4, 2, 0,252, 4, 2, 0,253, 4,
+ 2, 0,254, 4, 2, 0,243, 0, 2, 0,255, 4, 2, 0, 0, 5, 2, 0, 1, 5, 2, 0, 2, 5, 2, 0, 3, 5, 2, 0, 91, 1,
+ 2, 0,106, 0, 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 2, 0, 8, 5, 2, 0, 9, 5, 2, 0, 10, 5,
+ 2, 0, 11, 5, 2, 0, 12, 5, 2, 0, 92, 1, 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, 2, 0, 16, 5, 4, 0, 17, 5,
+ 4, 0, 69, 1, 4, 0, 18, 5, 2, 0, 19, 5, 2, 0, 20, 5, 2, 0, 21, 5, 2, 0,248, 1, 2, 0, 22, 5, 2, 0, 23, 5,
+ 2, 0, 24, 5, 2, 0, 25, 5, 24, 0, 26, 5, 24, 0, 27, 5, 23, 0, 28, 5, 12, 0, 29, 5, 2, 0, 30, 5, 2, 0, 31, 5,
+ 7, 0, 32, 5, 7, 0, 33, 5, 7, 0, 34, 5, 7, 0, 35, 5, 4, 0, 36, 5, 7, 0, 37, 5, 7, 0, 38, 5, 7, 0, 39, 5,
+ 7, 0, 40, 5, 2, 0, 41, 5, 2, 0, 42, 5, 2, 0, 43, 5, 2, 0, 44, 5, 2, 0, 45, 5, 2, 0, 46, 5, 7, 0, 47, 5,
+ 7, 0, 48, 5, 7, 0, 49, 5, 0, 0, 50, 5, 0, 0, 51, 5, 4, 0, 52, 5, 2, 0, 53, 5, 2, 0,226, 1, 0, 0, 54, 5,
+ 7, 0, 55, 5, 7, 0, 56, 5, 0, 0, 57, 5, 0, 0, 58, 5, 0, 0, 59, 5, 0, 0, 60, 5, 4, 0, 61, 5, 2, 0, 62, 5,
+ 2, 0, 63, 5, 7, 0, 64, 5, 7, 0, 65, 5, 2, 0, 66, 5, 2, 0, 67, 5, 7, 0, 68, 5, 2, 0, 69, 5, 2, 0, 70, 5,
+ 4, 0, 71, 5, 2, 0, 72, 5, 2, 0, 73, 5, 2, 0, 74, 5, 2, 0, 75, 5, 7, 0, 76, 5, 7, 0, 70, 0, 42, 0, 77, 5,
+ 0, 0, 78, 5,188, 0, 9, 0,188, 0, 0, 0,188, 0, 1, 0, 0, 0, 20, 0, 2, 0, 79, 5, 2, 0, 80, 5, 2, 0, 81, 5,
+ 2, 0, 43, 0, 7, 0, 82, 5, 7, 0, 70, 0,189, 0, 7, 0, 2, 0,200, 2, 2, 0, 69, 1, 2, 0, 64, 3, 2, 0, 83, 5,
+ 7, 0, 84, 5, 7, 0, 70, 0, 42, 0, 85, 5,190, 0, 5, 0, 7, 0, 86, 5, 0, 0, 17, 0, 0, 0, 43, 0, 0, 0, 70, 0,
+ 0, 0,226, 1,191, 0, 28, 0, 7, 0,131, 4, 7, 0,132, 4, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0, 87, 5, 2, 0,178, 4,
+ 2, 0,134, 4, 2, 0,135, 4, 2, 0,136, 4, 2, 0,137, 4, 2, 0,138, 4, 2, 0,139, 4,190, 0, 88, 5, 2, 0,251, 4,
+ 2, 0,252, 4, 2, 0,253, 4, 2, 0,254, 4, 2, 0,243, 0, 2, 0,255, 4, 2, 0, 89, 5, 2, 0, 0, 5,189, 0, 90, 5,
+ 2, 0, 91, 5, 2, 0, 2, 5, 2, 0, 5, 5, 2, 0, 6, 5, 7, 0, 92, 5, 7, 0, 43, 0,192, 0, 6, 0,192, 0, 0, 0,
+192, 0, 1, 0, 4, 0,227, 3, 0, 0,239, 3, 4, 0, 19, 0, 32, 0, 93, 5,193, 0, 6, 0,194, 0, 94, 5, 4, 0, 95, 5,
+ 4, 0, 96, 5, 9, 0, 97, 5, 0, 0, 98, 5, 4, 0, 90, 0,195, 0, 8, 0,193, 0, 99, 5, 2, 0, 19, 0, 2, 0, 37, 0,
+ 2, 0,100, 5, 2, 0,101, 5, 2, 0,102, 5, 4, 0, 43, 0, 9, 0,103, 5,196, 0, 6, 0, 2, 0,106, 0, 2, 0,233, 3,
+ 2, 0,104, 5, 2, 0,194, 2, 4, 0, 19, 0, 7, 0,211, 2,197, 0, 14, 0, 2, 0, 19, 0, 2, 0,105, 5, 2, 0,106, 5,
+ 2, 0,107, 5,196, 0,108, 5, 9, 0,103, 5, 7, 0,109, 5, 7, 0, 57, 0, 4, 0,110, 5, 4, 0,111, 5, 4, 0,112, 5,
+ 4, 0,113, 5, 46, 0,129, 0, 32, 0,161, 0,198, 0, 4, 0,198, 0, 0, 0,198, 0, 1, 0, 0, 0,114, 5, 7, 0,115, 5,
+199, 0, 6, 0,193, 0, 99, 5, 7, 0,116, 5, 4, 0, 90, 0, 0, 0,117, 5, 0, 0,118, 5, 0, 0,180, 2,200, 0, 7, 0,
+193, 0, 99, 5, 2, 0, 19, 0, 2, 0, 37, 0, 4, 0, 36, 0, 4, 0,119, 5, 86, 0,120, 5, 9, 0,103, 5,201, 0, 74, 0,
+200, 0,121, 5,200, 0,122, 5,199, 0, 83, 3, 7, 0,123, 5, 2, 0,124, 5, 2, 0,125, 5, 7, 0,126, 5, 7, 0,127, 5,
+ 2, 0,233, 3, 2, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, 7, 0,131, 5, 2, 0,132, 5, 2, 0,110, 5, 2, 0,133, 5,
+ 2, 0,134, 5, 2, 0,135, 5, 2, 0,136, 5, 7, 0,137, 5, 7, 0,138, 5, 7, 0,139, 5, 2, 0,140, 5, 2, 0,141, 5,
+ 2, 0,142, 5, 2, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5, 2, 0,146, 5,195, 0,147, 5,197, 0,148, 5, 7, 0,149, 5,
+ 7, 0,150, 5, 7, 0,151, 5, 2, 0,152, 5, 2, 0,153, 5, 0, 0,154, 5, 0, 0,155, 5, 0, 0,156, 5, 0, 0,157, 5,
+ 0, 0,158, 5, 0, 0,159, 5, 2, 0,160, 5, 7, 0,161, 5, 7, 0,162, 5, 7, 0,163, 5, 7, 0,164, 5, 7, 0,165, 5,
+ 7, 0,166, 5, 7, 0,167, 5, 7, 0,168, 5, 7, 0,169, 5, 7, 0,170, 5, 2, 0,171, 5, 0, 0,172, 5, 0, 0,173, 5,
+ 0, 0,174, 5, 0, 0,175, 5, 32, 0,176, 5, 0, 0,177, 5, 0, 0,178, 5, 0, 0,179, 5, 0, 0,180, 5, 0, 0,181, 5,
+ 0, 0,182, 5, 0, 0,183, 5, 0, 0,184, 5, 2, 0,185, 5, 2, 0,186, 5, 2, 0,187, 5, 2, 0,188, 5, 2, 0,189, 5,
+ 4, 0,190, 5, 4, 0,191, 5,202, 0, 8, 0, 4, 0,192, 5, 4, 0,193, 5, 4, 0,194, 5, 4, 0,195, 5, 4, 0,196, 5,
+ 4, 0,197, 5, 4, 0, 54, 0, 4, 0,114, 2,203, 0, 3, 0, 7, 0,198, 5, 2, 0,199, 5, 2, 0, 19, 0,204, 0, 4, 0,
+ 7, 0,200, 5, 4, 0, 19, 0, 4, 0,201, 5, 4, 0, 57, 0, 46, 0, 42, 0, 27, 0, 31, 0, 39, 0, 75, 0, 32, 0, 93, 5,
+179, 0,202, 5, 46, 0,203, 5, 47, 0,235, 0, 12, 0,204, 5,180, 0,205, 5, 32, 0,206, 5, 7, 0,207, 5, 7, 0,208, 5,
+ 7, 0,209, 5, 7, 0,210, 5, 4, 0,116, 3, 4, 0,211, 5, 4, 0, 43, 0, 2, 0, 19, 0, 2, 0, 63, 1, 60, 0, 58, 1,
+205, 0,212, 5,201, 0,213, 5,206, 0,214, 5,187, 0,179, 0,185, 0,215, 5, 12, 0,100, 0, 12, 0,216, 5, 9, 0,217, 5,
+ 9, 0,218, 5, 9, 0,219, 5,207, 0,220, 5, 2, 0,221, 5, 2, 0,222, 5, 2, 0,244, 0, 2, 0,223, 5, 4, 0,224, 5,
+ 4, 0,225, 5, 12, 0,226, 5,190, 0, 88, 5,191, 0,227, 5,203, 0,228, 5,163, 0, 96, 3,204, 0,229, 5,208, 0, 11, 0,
+208, 0, 0, 0,208, 0, 1, 0, 47, 0,235, 0, 45, 0, 57, 1, 7, 0, 78, 2, 7, 0, 79, 2, 7, 0,106, 0, 7, 0,230, 5,
+ 2, 0,231, 5, 2, 0, 19, 0, 7, 0, 70, 0,209, 0, 39, 0, 7, 0,232, 5, 7, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5,
+ 7, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, 7, 0,239, 5, 7, 0,240, 5, 7, 0, 76, 1, 7, 0,241, 5, 7, 0,242, 5,
+ 7, 0,243, 5, 7, 0,244, 5, 7, 0,168, 0, 2, 0,245, 5, 2, 0,246, 5, 2, 0,247, 5, 2, 0, 37, 0, 2, 0,248, 5,
+ 2, 0,249, 5, 2, 0,250, 5, 2, 0,231, 5, 7, 0,251, 5, 7, 0,252, 5, 71, 0,253, 5,163, 0, 96, 3,209, 0,254, 5,
+210, 0,255, 5,211, 0, 0, 6,212, 0, 1, 6,213, 0, 2, 6,214, 0, 3, 6, 7, 0, 4, 6, 2, 0, 5, 6, 2, 0, 6, 6,
+ 7, 0, 7, 6, 7, 0, 8, 6, 7, 0, 9, 6,215, 0, 55, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6,
+ 7, 0, 12, 6, 2, 0, 13, 6, 7, 0,240, 5, 7, 0, 76, 1, 7, 0, 43, 0, 4, 0, 14, 6, 2, 0,250, 5, 2, 0,231, 5,
+ 32, 0, 93, 5, 32, 0, 15, 6, 12, 0, 16, 6,208, 0, 17, 6,215, 0,254, 5, 0, 0, 18, 6, 4, 0,116, 3, 4, 0,211, 5,
+ 2, 0, 19, 6, 2, 0, 70, 0, 2, 0, 20, 6, 2, 0, 21, 6, 2, 0,226, 1, 2, 0, 19, 0, 2, 0, 17, 2, 2, 0, 22, 6,
+ 7, 0,111, 0, 7, 0, 23, 6, 7, 0, 7, 6, 7, 0, 9, 6, 7, 0, 24, 6, 7, 0, 25, 6, 7, 0,168, 0, 7, 0,207, 5,
+ 2, 0, 26, 6, 2, 0,248, 1, 2, 0, 27, 6, 2, 0, 28, 6, 2, 0, 29, 6, 2, 0, 30, 6, 2, 0, 31, 6, 2, 0, 32, 6,
+ 2, 0, 33, 6, 2, 0,247, 5, 4, 0, 34, 6, 12, 0, 35, 6, 2, 0, 36, 6, 2, 0,128, 2, 2, 0, 37, 6, 0, 0, 38, 6,
+ 0, 0, 39, 6, 9, 0, 40, 6,163, 0, 96, 3,217, 0, 24, 0, 24, 0, 36, 0, 24, 0, 64, 0, 23, 0, 41, 6, 23, 0, 42, 6,
+ 23, 0, 43, 6, 7, 0, 44, 6, 7, 0, 45, 6, 7, 0, 46, 6, 7, 0, 47, 6, 2, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6,
+ 2, 0, 51, 6, 2, 0, 52, 6, 2, 0, 19, 0, 2, 0, 53, 6, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0, 56, 6, 2, 0, 57, 6,
+ 2, 0, 21, 6, 7, 0, 58, 6, 4, 0, 59, 6, 4, 0, 60, 6,216, 0, 6, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6,
+ 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6,218, 0, 8, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6,
+ 7, 0, 12, 6, 2, 0, 13, 6,219, 0, 61, 6, 46, 0,129, 0,220, 0, 14, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6,
+ 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6,217, 0, 62, 6,221, 0, 63, 6, 12, 0, 64, 6, 2, 0, 69, 1, 2, 0, 65, 6,
+ 4, 0, 19, 0, 7, 0, 66, 6, 4, 0, 21, 6,222, 0, 20, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6,
+ 7, 0, 12, 6, 2, 0, 13, 6,210, 0,255, 5,217, 0, 62, 6, 2, 0, 67, 6, 2, 0, 68, 6, 2, 0, 69, 6, 2, 0, 70, 6,
+ 2, 0, 53, 6, 2, 0, 71, 6, 0, 0, 19, 0, 0, 0,178, 4, 9, 0, 54, 2, 4, 0, 72, 6, 4, 0, 73, 6, 27, 0, 74, 6,
+223, 0, 18, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6,217, 0, 62, 6,
+ 7, 0, 78, 2, 7, 0, 79, 2, 2, 0, 67, 6, 2, 0, 75, 6, 2, 0, 76, 6, 2, 0, 77, 6, 4, 0, 19, 0, 7, 0, 78, 6,
+ 4, 0,231, 5, 4, 0, 37, 0,163, 0, 96, 3,224, 0, 15, 0, 0, 0, 79, 6, 0, 0, 80, 6, 0, 0, 81, 6, 0, 0, 82, 6,
+ 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 83, 6, 2, 0, 84, 6, 2, 0,169, 1, 2, 0, 85, 6, 4, 0, 86, 6, 4, 0, 87, 6,
+ 2, 0, 88, 6, 2, 0, 37, 0, 0, 0, 89, 6,225, 0, 16, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6,
+ 4, 0, 90, 6,224, 0, 91, 6,226, 0, 92, 6, 12, 0, 93, 6, 12, 0, 94, 6,227, 0, 95, 6,214, 0, 96, 6,228, 0, 97, 6,
+ 2, 0, 98, 6, 2, 0, 99, 6, 2, 0,100, 6, 2, 0, 70, 0,229, 0, 17, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6,
+ 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6,217, 0, 62, 6, 12, 0,101, 6,230, 0,102, 6, 0, 0,103, 6,231, 0,104, 6,
+ 4, 0,105, 6, 4, 0,106, 6, 2, 0, 19, 0, 2, 0,107, 6, 2, 0,108, 6, 2, 0, 37, 0,232, 0, 32, 0,216, 0, 0, 0,
+216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6, 47, 0,219, 2, 45, 0, 57, 1, 63, 0,109, 6,
+ 2, 0,128, 0, 2, 0,110, 6, 2, 0, 70, 0, 2, 0,111, 6, 4, 0, 19, 0, 2, 0,112, 6, 2, 0,113, 6, 2, 0,114, 6,
+ 2, 0,226, 1, 0, 0,115, 6, 0, 0,116, 6, 0, 0,117, 6, 0, 0, 21, 6, 7, 0,118, 6, 7, 0, 78, 2, 7, 0, 79, 2,
+ 7, 0, 78, 6, 7, 0,248, 1, 7, 0,119, 6, 7, 0,120, 6,163, 0, 96, 3,233, 0,121, 6,234, 0,122, 6,235, 0, 11, 0,
+216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6, 2, 0, 65, 6, 2, 0, 19, 0,
+ 4, 0, 37, 0,221, 0, 63, 6,217, 0, 62, 6,236, 0, 27, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6,
+ 7, 0, 12, 6, 2, 0, 13, 6, 42, 0,123, 6, 4, 0,124, 6, 4, 0,125, 6, 2, 0, 90, 0, 2, 0,128, 0, 2, 0,126, 6,
+ 0, 0,127, 6, 0, 0,128, 6, 4, 0,129, 6, 4, 0,130, 6, 4, 0,131, 6, 4, 0,132, 6, 2, 0,133, 6, 2, 0,134, 6,
+ 7, 0,135, 6, 23, 0,136, 6, 23, 0,137, 6, 4, 0,138, 6, 4, 0,139, 6, 0, 0,140, 6, 0, 0,141, 6,237, 0, 10, 0,
+ 27, 0, 31, 0, 9, 0,142, 6, 9, 0,143, 6, 9, 0,144, 6, 9, 0,145, 6, 9, 0,146, 6, 4, 0, 90, 0, 4, 0,147, 6,
+ 0, 0,148, 6, 0, 0,149, 6,238, 0, 10, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6,
+237, 0,150, 6, 2, 0, 90, 0, 2, 0,128, 0, 4, 0, 43, 0, 9, 0,151, 6,239, 0, 9, 0,239, 0, 0, 0,239, 0, 1, 0,
+ 4, 0, 17, 0, 4, 0, 19, 0, 7, 0,152, 6, 4, 0, 23, 0, 4, 0,235, 3, 4, 0,236, 3, 4, 0,124, 0,240, 0, 11, 0,
+216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6,217, 0, 62, 6, 12, 0,153, 6, 4, 0,154, 6,
+ 4, 0, 37, 0, 4, 0, 19, 0, 4, 0,155, 6,241, 0, 25, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6,
+ 7, 0, 12, 6, 2, 0, 13, 6,217, 0, 62, 6, 27, 0,156, 6, 27, 0, 81, 0, 2, 0, 19, 0, 2, 0,128, 0, 7, 0,157, 6,
+ 9, 0,158, 6, 7, 0, 78, 2, 7, 0, 79, 2, 7, 0, 78, 6, 7, 0, 9, 6, 7, 0,159, 6, 7, 0,160, 6, 60, 0, 58, 1,
+ 60, 0,161, 6, 4, 0,162, 6, 2, 0,163, 6, 2, 0, 37, 0,163, 0, 96, 3,242, 0, 10, 0,216, 0, 0, 0,216, 0, 1, 0,
+ 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6, 2, 0, 19, 0, 2, 0,125, 3, 4, 0, 37, 0,163, 0, 96, 3,
+243, 0, 42, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6,217, 0, 62, 6,
+226, 0, 92, 6, 0, 0, 79, 6, 0, 0, 80, 6, 0, 0, 81, 6, 2, 0, 17, 0, 2, 0,164, 6, 2, 0, 19, 0, 2, 0, 83, 6,
+ 9, 0,158, 6, 4, 0, 86, 6, 4, 0,165, 6, 4, 0,166, 6, 4, 0, 87, 6, 23, 0,167, 6, 23, 0,168, 6, 7, 0,169, 6,
+ 7, 0,170, 6, 7, 0,171, 6, 7, 0,157, 6, 2, 0,172, 6, 2, 0,234, 0, 2, 0,169, 1, 2, 0, 85, 6, 2, 0, 37, 0,
+ 2, 0, 43, 0, 2, 0,173, 6, 2, 0,174, 6, 9, 0,175, 6, 9, 0,176, 6, 9, 0,177, 6, 9, 0,178, 6, 9, 0,179, 6,
+ 2, 0,180, 6, 0, 0,181, 6, 57, 0,182, 6,244, 0, 7, 0,244, 0, 0, 0,244, 0, 1, 0, 4, 0,183, 6, 4, 0, 23, 0,
+ 0, 0, 84, 0, 4, 0,184, 6, 4, 0, 17, 0,245, 0, 16, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6,
+ 7, 0, 12, 6, 2, 0, 13, 6, 4, 0, 17, 0, 4, 0,185, 6, 4, 0, 19, 0, 4, 0,126, 6, 12, 0,186, 6, 12, 0,187, 6,
+ 0, 0,188, 6, 0, 0,189, 6, 4, 0,190, 6, 4, 0,191, 6,246, 0, 6, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6,
+ 4, 0, 11, 6, 4, 0, 37, 0, 0, 0,192, 6,247, 0, 7, 0,247, 0, 0, 0,247, 0, 1, 0, 0, 0,193, 6, 2, 0,194, 6,
+ 2, 0,195, 6, 2, 0,196, 6, 2, 0, 37, 0,248, 0, 12, 0, 2, 0,195, 6, 2, 0,197, 6, 2, 0,198, 6, 0, 0,180, 2,
+ 2, 0,199, 6, 2, 0,200, 6, 2, 0,201, 6, 2, 0,202, 6, 2, 0,203, 6, 2, 0, 53, 6, 7, 0,204, 6, 7, 0,205, 6,
+249, 0, 18, 0,249, 0, 0, 0,249, 0, 1, 0, 0, 0,239, 3,248, 0,206, 6,248, 0,207, 6,248, 0,208, 6,248, 0,209, 6,
+ 7, 0,210, 6, 2, 0,211, 6, 2, 0,212, 6, 2, 0,213, 6, 2, 0,214, 6, 2, 0,215, 6, 2, 0,216, 6, 2, 0,217, 6,
+ 2, 0,218, 6, 2, 0,219, 6, 2, 0,220, 6,250, 0, 10, 0, 0, 0,221, 6, 0, 0,222, 6, 0, 0,223, 6, 0, 0,224, 6,
+ 0, 0,225, 6, 0, 0,226, 6, 2, 0,227, 6, 2, 0,228, 6, 2, 0,229, 6, 2, 0,230, 6,251, 0, 8, 0, 0, 0,231, 6,
+ 0, 0,232, 6, 0, 0,233, 6, 0, 0,234, 6, 0, 0,235, 6, 0, 0,236, 6, 7, 0,230, 5, 7, 0, 37, 0,252, 0, 18, 0,
+250, 0,237, 6,250, 0,238, 6,250, 0,239, 6,250, 0,240, 6,250, 0,241, 6,250, 0,242, 6,250, 0,243, 6,250, 0,244, 6,
+250, 0,245, 6,250, 0,246, 6,250, 0,247, 6,250, 0,248, 6,250, 0,249, 6,250, 0,250, 6,250, 0,251, 6,250, 0,252, 6,
+251, 0,253, 6, 0, 0,254, 6,253, 0, 92, 0, 0, 0,255, 6, 0, 0, 0, 7, 0, 0,225, 6, 0, 0, 1, 7, 0, 0, 2, 7,
+ 0, 0, 3, 7, 0, 0, 4, 7, 0, 0, 5, 7, 0, 0, 6, 7, 0, 0, 7, 7, 0, 0, 8, 7, 0, 0, 9, 7, 0, 0, 10, 7,
+ 0, 0, 11, 7, 0, 0, 12, 7, 0, 0, 13, 7, 0, 0, 14, 7, 0, 0, 15, 7, 0, 0, 16, 7, 0, 0, 17, 7, 0, 0, 18, 7,
+ 0, 0, 19, 7, 0, 0, 20, 7, 0, 0, 21, 7, 0, 0, 22, 7, 0, 0, 23, 7, 0, 0, 24, 7, 0, 0, 25, 7, 0, 0, 26, 7,
+ 0, 0, 27, 7, 0, 0, 28, 7, 0, 0, 29, 7, 0, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7, 0, 0, 33, 7, 0, 0, 34, 7,
+ 0, 0, 35, 7, 0, 0, 36, 7, 0, 0, 37, 7, 0, 0, 38, 7, 0, 0, 39, 7, 0, 0, 40, 7, 0, 0, 41, 7, 0, 0, 42, 7,
+ 0, 0, 43, 7, 0, 0, 44, 7, 0, 0, 45, 7, 0, 0, 46, 7, 0, 0, 47, 7, 0, 0, 48, 7, 0, 0, 49, 7, 0, 0, 50, 7,
+ 0, 0, 51, 7, 0, 0, 52, 7, 0, 0, 53, 7, 0, 0, 54, 7, 0, 0, 55, 7, 0, 0, 56, 7, 0, 0, 57, 7, 0, 0, 58, 7,
+ 0, 0, 59, 7, 0, 0, 60, 7, 0, 0, 61, 7, 0, 0, 62, 7, 0, 0, 63, 7, 0, 0, 64, 7, 0, 0, 65, 7, 0, 0, 66, 7,
+ 0, 0, 67, 7, 0, 0, 68, 7, 0, 0, 69, 7, 0, 0, 70, 7, 0, 0, 71, 7, 0, 0, 72, 7, 0, 0, 73, 7, 0, 0, 74, 7,
+ 0, 0, 75, 7, 0, 0, 76, 7, 0, 0, 77, 7, 0, 0, 78, 7, 0, 0, 79, 7, 0, 0, 80, 7, 0, 0, 81, 7, 0, 0, 82, 7,
+ 0, 0, 83, 7, 0, 0, 84, 7, 0, 0, 85, 7, 0, 0, 86, 7, 0, 0, 87, 7, 0, 0, 88, 7, 0, 0, 89, 7,254, 0, 5, 0,
+ 0, 0, 90, 7, 0, 0, 23, 7, 0, 0, 25, 7, 2, 0, 19, 0, 2, 0, 37, 0,255, 0, 25, 0,255, 0, 0, 0,255, 0, 1, 0,
+ 0, 0, 20, 0,252, 0, 91, 7,253, 0, 92, 7,253, 0, 93, 7,253, 0, 94, 7,253, 0, 95, 7,253, 0, 96, 7,253, 0, 97, 7,
+253, 0, 98, 7,253, 0, 99, 7,253, 0,100, 7,253, 0,101, 7,253, 0,102, 7,253, 0,103, 7,253, 0,104, 7,253, 0,105, 7,
+253, 0,106, 7,253, 0,107, 7,253, 0,108, 7,253, 0,109, 7,254, 0,110, 7, 4, 0,111, 7, 4, 0, 37, 0, 0, 1, 3, 0,
+ 0, 1, 0, 0, 0, 1, 1, 0, 0, 0,112, 7, 1, 1, 5, 0, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,127, 2, 7, 0,113, 7,
+ 7, 0, 32, 2, 2, 1, 84, 0, 4, 0, 19, 0, 4, 0,114, 7, 4, 0,115, 7, 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7,
+ 0, 0,119, 7, 0, 0,120, 7, 0, 0,121, 7, 0, 0,122, 7, 0, 0,123, 7, 0, 0,124, 7, 0, 0,125, 7, 4, 0,126, 7,
+ 2, 0,127, 7, 2, 0,128, 7, 2, 0,129, 7, 2, 0,130, 7, 4, 0,131, 7, 4, 0,132, 7, 4, 0,133, 7, 4, 0,134, 7,
+ 2, 0,135, 7, 2, 0,136, 7, 4, 0,137, 7, 4, 0,138, 7, 4, 0,139, 7, 4, 0,140, 7, 4, 0,141, 7, 4, 0,186, 6,
+ 4, 0,142, 7, 2, 0,143, 7, 2, 0,144, 7, 2, 0,145, 7, 2, 0,146, 7, 12, 0,147, 7, 12, 0,148, 7, 12, 0,149, 7,
+ 12, 0,150, 7, 12, 0,151, 7, 0, 0,152, 7, 2, 0,153, 7, 2, 0,154, 7, 2, 0,155, 7, 2, 0,156, 7, 2, 0,157, 7,
+ 2, 0,158, 7, 2, 0,159, 7, 2, 0,160, 7, 1, 1,161, 7, 2, 0,162, 7, 2, 0,163, 7, 2, 0,164, 7, 2, 0,165, 7,
+ 2, 0,166, 7, 2, 0,167, 7, 2, 0,168, 7, 2, 0,169, 7, 4, 0,170, 7, 4, 0,171, 7, 2, 0,172, 7, 2, 0,173, 7,
+ 2, 0,174, 7, 2, 0,175, 7, 2, 0,176, 7, 2, 0,177, 7, 2, 0,178, 7, 2, 0,179, 7, 2, 0,180, 7, 2, 0,181, 7,
+ 2, 0,182, 7, 2, 0,183, 7, 2, 0,184, 7, 2, 0,185, 7, 2, 0,186, 7, 2, 0,187, 7, 2, 0,188, 7, 2, 0,178, 4,
+ 0, 0,189, 7, 0, 0,190, 7, 7, 0,191, 7, 2, 0,152, 5, 2, 0,153, 5, 55, 0,192, 7,219, 0, 21, 0, 27, 0, 31, 0,
+ 12, 0,193, 7, 12, 0,194, 7, 12, 0,195, 7, 12, 0, 10, 6, 46, 0,129, 0, 46, 0,196, 7, 2, 0,197, 7, 2, 0,198, 7,
+ 2, 0,199, 7, 2, 0,200, 7, 2, 0,201, 7, 2, 0,202, 7, 2, 0,203, 7, 2, 0,204, 7, 2, 0,205, 7, 2, 0,206, 7,
+ 4, 0, 70, 0,214, 0,207, 7, 9, 0,208, 7, 2, 0,209, 7, 3, 1, 5, 0, 3, 1, 0, 0, 3, 1, 1, 0, 3, 1,210, 7,
+ 13, 0,211, 7, 4, 0, 19, 0, 4, 1, 7, 0, 4, 1, 0, 0, 4, 1, 1, 0, 3, 1,212, 7, 3, 1,213, 7, 2, 0, 27, 5,
+ 2, 0, 19, 0, 4, 0, 37, 0, 5, 1, 25, 0, 5, 1, 0, 0, 5, 1, 1, 0, 6, 1,214, 7, 7, 1, 97, 6, 0, 0,215, 7,
+ 0, 0,216, 7, 0, 0,217, 7, 2, 0,218, 7, 2, 0,219, 7, 2, 0,220, 7, 2, 0,221, 7, 2, 0,222, 7, 2, 0, 37, 0,
+ 2, 0, 19, 0, 2, 0,223, 7, 2, 0,224, 7, 2, 0,225, 7, 4, 0,226, 7, 5, 1,227, 7, 9, 0,228, 7, 4, 0,229, 7,
+ 4, 0,230, 7, 4, 0,231, 7, 4, 0,232, 7, 0, 0,233, 7, 8, 1, 22, 0, 8, 1, 0, 0, 8, 1, 1, 0, 3, 1,212, 7,
+ 3, 1,213, 7, 3, 1,234, 7, 3, 1,235, 7,219, 0,236, 7, 23, 0, 52, 0, 0, 0, 11, 6, 0, 0,237, 7, 2, 0, 54, 6,
+ 2, 0, 55, 6, 2, 0,238, 7, 2, 0, 37, 0, 2, 0,200, 7, 2, 0,184, 6, 2, 0, 19, 0, 9, 1,214, 7, 12, 0,239, 7,
+ 12, 0, 10, 6, 12, 0,240, 7, 12, 0,241, 7, 10, 1, 24, 0, 10, 1, 0, 0, 10, 1, 1, 0,217, 0, 62, 6, 23, 0,242, 7,
+ 23, 0,243, 7, 2, 0, 54, 6, 2, 0, 55, 6, 2, 0,244, 7, 2, 0,245, 7, 2, 0,246, 7, 2, 0, 19, 0, 7, 0, 74, 2,
+ 2, 0,220, 7, 2, 0,221, 7, 2, 0,199, 7, 2, 0,247, 7, 2, 0,204, 7, 2, 0,178, 4, 11, 1,214, 7, 12, 0,248, 7,
+ 12, 0,249, 7, 12, 0,240, 7, 0, 0,250, 7, 9, 0,251, 7, 12, 1, 12, 0, 0, 0,252, 7, 2, 0,253, 7, 2, 0,254, 7,
+ 2, 0,255, 7, 2, 0, 0, 8, 2, 0, 14, 5, 2, 0, 9, 5,219, 0, 1, 8, 46, 0, 2, 8, 4, 0, 3, 8, 4, 0, 4, 8,
+ 0, 0, 5, 8, 13, 1, 1, 0, 0, 0, 6, 8, 14, 1, 8, 0, 57, 0, 7, 8, 57, 0, 8, 8, 14, 1, 9, 8, 14, 1, 10, 8,
+ 14, 1, 11, 8, 2, 0,124, 0, 2, 0, 19, 0, 4, 0, 12, 8, 15, 1, 4, 0, 4, 0,124, 6, 4, 0, 13, 8, 4, 0,129, 6,
+ 4, 0, 14, 8, 16, 1, 2, 0, 4, 0, 15, 8, 4, 0, 16, 8, 17, 1, 5, 0, 7, 0, 17, 8, 7, 0, 18, 8, 7, 0, 19, 8,
+ 4, 0, 19, 0, 4, 0, 37, 0, 18, 1, 6, 0, 0, 0, 20, 8, 0, 0, 81, 6, 49, 0,132, 0, 2, 0,106, 0, 2, 0, 13, 5,
+ 4, 0, 37, 0, 19, 1, 21, 0, 19, 1, 0, 0, 19, 1, 1, 0, 4, 0, 57, 0, 4, 0, 23, 0, 4, 0, 28, 0, 4, 0, 21, 8,
+ 4, 0, 22, 8, 4, 0, 23, 8, 13, 1, 24, 8, 0, 0, 20, 8, 4, 0, 25, 8, 4, 0, 26, 8, 18, 1, 90, 3, 15, 1, 27, 8,
+ 16, 1, 28, 8, 17, 1, 29, 8, 14, 1, 30, 8, 14, 1, 31, 8, 14, 1, 32, 8, 57, 0, 33, 8, 57, 0, 34, 8, 20, 1, 12, 0,
+ 0, 0,250, 1, 9, 0,220, 0, 0, 0,221, 0, 4, 0,224, 0, 4, 0,232, 0, 9, 0,225, 0, 7, 0,227, 0, 7, 0,228, 0,
+ 9, 0, 35, 8, 9, 0, 36, 8, 9, 0,229, 0, 9, 0,231, 0, 21, 1, 46, 0, 21, 1, 0, 0, 21, 1, 1, 0, 9, 0, 37, 8,
+ 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0, 4, 0, 17, 0, 4, 0, 23, 0, 4, 0, 88, 0, 4, 0, 38, 8, 4, 0, 39, 8,
+ 4, 0, 22, 8, 4, 0, 23, 8, 4, 0, 40, 8, 4, 0,243, 0, 4, 0, 41, 8, 4, 0, 42, 8, 7, 0, 43, 8, 7, 0, 44, 8,
+ 4, 0,121, 0, 4, 0, 45, 8, 19, 1, 46, 8, 36, 0, 80, 0, 46, 0,129, 0, 32, 0, 47, 8, 49, 0,132, 0, 7, 0, 48, 8,
+ 7, 0, 49, 8, 20, 1, 59, 1, 21, 1, 50, 8, 21, 1, 51, 8, 21, 1, 52, 8, 12, 0, 53, 8, 22, 1, 54, 8, 9, 0, 55, 8,
+ 7, 0,248, 3, 7, 0, 56, 8, 7, 0, 57, 8, 4, 0, 58, 8, 4, 0, 59, 8, 7, 0, 60, 8, 9, 0, 61, 8, 4, 0, 62, 8,
+ 4, 0, 63, 8, 4, 0, 64, 8, 7, 0, 65, 8, 23, 1, 4, 0, 23, 1, 0, 0, 23, 1, 1, 0, 12, 0, 66, 8, 21, 1, 67, 8,
+205, 0, 11, 0, 12, 0, 68, 8, 12, 0, 53, 8, 12, 0, 69, 8, 21, 1, 70, 8, 0, 0, 71, 8, 0, 0, 72, 8, 4, 0, 73, 8,
+ 4, 0, 74, 8, 4, 0, 75, 8, 4, 0, 37, 0, 24, 0, 76, 8, 24, 1, 4, 0, 7, 0, 77, 8, 7, 0, 64, 3, 2, 0, 78, 8,
+ 2, 0, 79, 8, 25, 1, 6, 0, 7, 0, 80, 8, 7, 0, 81, 8, 7, 0, 82, 8, 7, 0, 83, 8, 4, 0, 84, 8, 4, 0, 85, 8,
+ 26, 1, 13, 0, 7, 0, 86, 8, 7, 0, 87, 8, 7, 0, 88, 8, 7, 0, 89, 8, 7, 0, 90, 8, 7, 0, 91, 8, 7, 0, 92, 8,
+ 7, 0, 93, 8, 7, 0, 94, 8, 7, 0, 95, 8, 4, 0,225, 2, 4, 0, 96, 8, 4, 0, 97, 8, 27, 1, 2, 0, 7, 0, 86, 5,
+ 7, 0, 37, 0, 28, 1, 5, 0, 7, 0, 98, 8, 7, 0, 99, 8, 4, 0, 90, 0, 4, 0,181, 2, 4, 0,100, 8, 29, 1, 6, 0,
+ 29, 1, 0, 0, 29, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,101, 8, 2, 0, 57, 0, 30, 1, 8, 0, 30, 1, 0, 0,
+ 30, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,101, 8, 2, 0, 57, 0, 7, 0, 23, 0, 7, 0,121, 0, 31, 1, 45, 0,
+ 31, 1, 0, 0, 31, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,101, 8, 2, 0,239, 0, 2, 0, 34, 4, 2, 0,102, 8,
+ 7, 0,103, 8, 7, 0, 89, 0, 7, 0,238, 2, 4, 0,104, 8, 4, 0, 82, 0, 4, 0,183, 2, 7, 0,105, 8, 7, 0,106, 8,
+ 7, 0,107, 8, 7, 0,108, 8, 7, 0,109, 8, 7, 0,110, 8, 7, 0,235, 2, 7, 0, 56, 1, 7, 0,111, 8, 7, 0,112, 8,
+ 7, 0, 37, 0, 7, 0,113, 8, 7, 0,114, 8, 7, 0,115, 8, 2, 0,116, 8, 2, 0,117, 8, 2, 0,118, 8, 2, 0,119, 8,
+ 2, 0,120, 8, 2, 0,121, 8, 2, 0,122, 8, 2, 0,123, 8, 2, 0, 17, 2, 2, 0,124, 8, 2, 0, 14, 2, 2, 0,125, 8,
+ 0, 0,126, 8, 0, 0,127, 8, 7, 0,237, 0, 32, 1,128, 8, 67, 0,229, 1, 33, 1, 16, 0, 33, 1, 0, 0, 33, 1, 1, 0,
+ 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,101, 8, 2, 0,239, 0, 7, 0,230, 2, 7, 0,231, 2, 7, 0,232, 2, 7, 0, 63, 2,
+ 7, 0,233, 2, 7, 0,234, 2, 7, 0,129, 8, 7, 0,235, 2, 7, 0,237, 2, 7, 0,238, 2,231, 0, 5, 0, 2, 0, 17, 0,
+ 2, 0, 12, 8, 2, 0, 19, 0, 2, 0,130, 8, 27, 0,156, 6,230, 0, 3, 0, 4, 0, 69, 0, 4, 0,131, 8,231, 0, 2, 0,
+ 34, 1, 7, 0, 34, 1, 0, 0, 34, 1, 1, 0, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, 9, 0,132, 8,
+ 35, 1, 5, 0, 0, 0, 20, 0, 7, 0, 76, 1, 7, 0,133, 8, 4, 0,134, 8, 4, 0, 37, 0, 36, 1, 4, 0, 2, 0, 17, 0,
+ 2, 0, 19, 0, 2, 0, 43, 0, 2, 0, 70, 0, 37, 1, 4, 0, 0, 0, 20, 0, 66, 0,135, 8, 7, 0, 76, 1, 7, 0, 37, 0,
+ 38, 1, 6, 0, 2, 0,136, 8, 2, 0,137, 8, 2, 0, 17, 0, 2, 0,138, 8, 0, 0,139, 8, 0, 0,140, 8, 39, 1, 5, 0,
+ 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0, 0, 0,141, 8, 0, 0,142, 8, 40, 1, 3, 0, 4, 0, 17, 0, 4, 0, 37, 0,
+ 0, 0, 20, 0, 41, 1, 4, 0, 2, 0,143, 8, 2, 0,144, 8, 2, 0, 19, 0, 2, 0, 37, 0, 42, 1, 6, 0, 0, 0, 20, 0,
+ 0, 0,145, 8, 2, 0,146, 8, 2, 0,235, 2, 2, 0, 69, 1, 2, 0, 70, 0, 43, 1, 5, 0, 0, 0, 20, 0, 7, 0, 64, 3,
+ 7, 0,128, 4, 2, 0, 19, 0, 2, 0,195, 2, 44, 1, 3, 0, 0, 0, 20, 0, 4, 0,183, 2, 4, 0,143, 8, 45, 1, 7, 0,
+ 0, 0, 20, 0, 7, 0,128, 4, 0, 0,147, 8, 0, 0,148, 8, 2, 0, 69, 1, 2, 0, 43, 0, 4, 0,149, 8, 46, 1, 4, 0,
+ 0, 0,150, 8, 0, 0,151, 8, 4, 0, 17, 0, 7, 0,199, 2, 47, 1, 3, 0, 32, 0,152, 8, 0, 0,153, 8, 0, 0,154, 8,
+ 48, 1, 18, 0, 48, 1, 0, 0, 48, 1, 1, 0, 2, 0, 17, 0, 2, 0,155, 8, 2, 0, 19, 0, 2, 0,156, 8, 2, 0,157, 8,
+ 2, 0,158, 8, 2, 0, 43, 0, 2, 0, 70, 0, 0, 0, 20, 0, 9, 0, 2, 0, 49, 1,159, 8, 32, 0, 45, 0, 2, 0,104, 5,
+ 2, 0, 56, 8, 2, 0,160, 8, 2, 0, 37, 0, 50, 1, 11, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,161, 8, 2, 0, 19, 0,
+ 2, 0,195, 2, 2, 0,162, 8, 4, 0,163, 8, 4, 0,164, 8, 4, 0,165, 8, 4, 0,166, 8, 4, 0,167, 8, 51, 1, 1, 0,
+ 0, 0,168, 8, 52, 1, 4, 0, 42, 0,123, 6, 0, 0,112, 7, 4, 0, 69, 1, 4, 0, 19, 0, 49, 1, 18, 0, 49, 1, 0, 0,
+ 49, 1, 1, 0, 49, 1,169, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,170, 8, 2, 0,158, 8, 2, 0,155, 8, 2, 0,171, 8,
+ 2, 0, 70, 0, 2, 0,226, 1, 0, 0, 20, 0, 9, 0, 2, 0, 53, 1,159, 8, 48, 1,172, 8, 2, 0, 15, 0, 2, 0,173, 8,
+ 4, 0,174, 8, 54, 1, 3, 0, 4, 0,209, 2, 4, 0, 37, 0, 32, 0, 45, 0, 55, 1, 12, 0,161, 0,175, 8, 2, 0, 17, 0,
+ 2, 0, 19, 0, 4, 0,103, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,176, 8, 2, 0,177, 8, 2, 0,178, 8, 2, 0,179, 8,
+ 2, 0,180, 8, 7, 0,181, 8, 56, 1, 13, 0, 2, 0, 19, 0, 2, 0,182, 8, 4, 0, 43, 0, 4, 0, 70, 0, 2, 0,183, 8,
+ 7, 0,248, 3, 7, 0,184, 8, 22, 1, 54, 8, 57, 1,185, 8, 2, 0, 17, 0, 2, 0,248, 1, 2, 0,224, 5, 2, 0,186, 8,
+ 58, 1, 11, 0, 4, 0,209, 2, 2, 0, 17, 0, 2, 0, 19, 0, 32, 0, 45, 0, 80, 0,187, 8, 0, 0, 20, 0, 7, 0,188, 8,
+ 7, 0,189, 8, 7, 0,133, 3, 2, 0,190, 8, 2, 0,191, 8, 59, 1, 5, 0, 2, 0, 17, 0, 2, 0, 43, 0, 4, 0, 37, 0,
+ 46, 0,129, 0, 32, 0, 93, 5, 60, 1, 5, 0, 4, 0, 37, 0, 4, 0, 17, 0, 0, 0, 20, 0, 0, 0,141, 8, 32, 0, 45, 0,
+ 61, 1, 13, 0, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,155, 8, 2, 0,134, 3, 7, 0,192, 8, 7, 0,193, 8, 7, 0,178, 4,
+ 7, 0,146, 3, 7, 0,105, 3, 7, 0,108, 3, 7, 0,194, 8, 7, 0,195, 8, 32, 0,196, 8, 62, 1, 10, 0, 2, 0, 19, 0,
+ 2, 0, 17, 0, 4, 0,103, 8, 4, 0, 89, 0, 0, 0, 20, 0, 0, 0,176, 8, 2, 0, 43, 0, 2, 0, 70, 0, 2, 0,226, 1,
+ 2, 0,248, 1, 63, 1, 8, 0, 32, 0, 45, 0, 7, 0,232, 2, 7, 0,197, 8, 7, 0,198, 8, 7, 0, 37, 0, 2, 0, 43, 0,
+ 2, 0,195, 2, 7, 0, 70, 0, 64, 1, 12, 0, 2, 0, 17, 0, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0,235, 2, 2, 0,209, 2,
+ 2, 0,199, 8, 4, 0, 37, 0, 7, 0,200, 8, 7, 0,201, 8, 7, 0,202, 8, 7, 0,203, 8, 0, 0,204, 8, 65, 1, 9, 0,
+ 2, 0, 19, 0, 2, 0, 17, 0, 4, 0,103, 8, 4, 0, 89, 0, 0, 0, 20, 0, 2, 0,178, 4, 2, 0, 64, 0, 2, 0,205, 8,
+ 2, 0,206, 8, 66, 1, 7, 0, 4, 0,183, 2, 4, 0,207, 8, 4, 0,208, 8, 4, 0,209, 8, 7, 0,210, 8, 7, 0,211, 8,
+ 0, 0,147, 8, 67, 1, 7, 0, 0, 0,212, 8, 32, 0,213, 8, 0, 0,153, 8, 2, 0,214, 8, 2, 0, 43, 0, 4, 0, 70, 0,
+ 0, 0,154, 8, 68, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0,103, 8, 4, 0, 89, 0, 0, 0,215, 8, 0, 0,216, 8,
+ 69, 1, 1, 0, 4, 0, 19, 0, 70, 1, 6, 0, 0, 0, 92, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,217, 8, 7, 0,218, 8,
+ 42, 0,123, 6, 71, 1, 4, 0, 0, 0, 59, 2, 2, 0, 19, 0, 4, 0, 17, 0, 32, 0, 45, 0, 72, 1, 2, 0, 4, 0, 17, 0,
+ 4, 0, 43, 6, 73, 1, 6, 0, 0, 0,150, 8, 0, 0,151, 8, 4, 0, 17, 0, 7, 0, 25, 2, 32, 0, 43, 3, 32, 0,219, 8,
+ 53, 1, 10, 0, 53, 1, 0, 0, 53, 1, 1, 0, 53, 1,169, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,155, 8, 2, 0,220, 8,
+ 0, 0, 20, 0, 9, 0, 2, 0, 32, 0, 45, 0, 74, 1, 10, 0, 7, 0,133, 3, 7, 0,221, 8, 7, 0,222, 8, 7, 0,223, 8,
+ 7, 0,224, 8, 4, 0, 19, 0, 7, 0,199, 8, 7, 0,225, 8, 7, 0,226, 8, 7, 0, 37, 0, 57, 1, 8, 0, 7, 0,227, 8,
+ 7, 0,228, 8, 7, 0,229, 8, 7, 0,230, 8, 7, 0,231, 8, 7, 0,232, 8, 7, 0,233, 8, 7, 0,234, 8, 22, 1, 16, 0,
+ 27, 0, 31, 0, 0, 0, 34, 0, 43, 0,147, 0, 9, 0,220, 0, 43, 0,235, 8, 36, 0, 80, 0, 7, 0,248, 3, 7, 0,236, 8,
+ 7, 0,184, 8, 7, 0,227, 8, 7, 0,228, 8, 7, 0,237, 8, 4, 0, 90, 0, 4, 0, 37, 0, 9, 0,238, 8, 9, 0,239, 8,
+ 75, 1, 15, 0,216, 0, 0, 0,216, 0, 1, 0, 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6, 8, 1,240, 8,217, 0, 62, 6,
+ 22, 1, 54, 8, 2, 0, 69, 1, 2, 0,182, 8, 2, 0, 78, 2, 2, 0, 79, 2, 2, 0, 19, 0, 2, 0,113, 6, 4, 0, 70, 0,
+ 76, 1, 6, 0, 76, 1, 0, 0, 76, 1, 1, 0, 32, 0, 45, 0, 9, 0,241, 8, 4, 0,244, 0, 4, 0, 37, 0, 67, 0, 4, 0,
+ 27, 0, 31, 0, 12, 0,242, 8, 4, 0,126, 0, 7, 0,243, 8, 77, 1, 27, 0, 77, 1, 0, 0, 77, 1, 1, 0, 26, 0,244, 8,
+ 77, 1, 38, 0, 12, 0,245, 8, 0, 0, 20, 0, 7, 0,246, 8, 7, 0,247, 8, 7, 0,248, 8, 7, 0,249, 8, 4, 0, 19, 0,
+ 7, 0,250, 8, 7, 0,251, 8, 7, 0,252, 8, 7, 0, 76, 1, 7, 0, 25, 2, 7, 0,253, 8, 7, 0,181, 2, 7, 0,254, 8,
+ 7, 0,255, 8, 7, 0, 0, 9, 7, 0, 1, 9, 7, 0, 2, 9, 7, 0,169, 0, 4, 0,126, 0, 2, 0,133, 5, 2, 0,178, 4,
+ 78, 1, 25, 0, 27, 0, 31, 0, 39, 0, 75, 0, 12, 0, 3, 9, 12, 0, 4, 9, 12, 0, 5, 9, 77, 1, 6, 9, 9, 0, 7, 9,
+ 9, 0, 8, 9, 4, 0, 19, 0, 4, 0, 19, 6, 2, 0,239, 2, 2, 0, 72, 6, 4, 0, 37, 0, 4, 0,126, 0, 4, 0, 9, 9,
+ 2, 0, 10, 9, 2, 0, 11, 9, 2, 0, 12, 9, 2, 0, 13, 9, 4, 0, 14, 9, 4, 0, 15, 9, 4, 0, 16, 9, 4, 0, 17, 9,
+ 4, 0, 18, 9, 4, 0, 19, 9, 79, 1, 2, 0, 7, 0,141, 2, 4, 0, 19, 0,165, 0, 5, 0, 79, 1, 20, 9, 4, 0,181, 2,
+ 4, 0, 21, 9, 4, 0, 22, 9, 4, 0, 19, 0,164, 0, 16, 0, 4, 0, 23, 9, 4, 0, 24, 9, 4, 0, 25, 9, 4, 0, 26, 9,
+ 2, 0, 27, 9, 2, 0, 28, 9, 2, 0, 29, 9, 2, 0,244, 0, 2, 0, 30, 9, 2, 0, 31, 9, 2, 0, 32, 9, 2, 0, 33, 9,
+ 4, 0, 34, 9, 4, 0, 35, 9, 4, 0, 36, 9, 4, 0, 37, 9, 80, 1, 44, 0, 80, 1, 0, 0, 80, 1, 1, 0, 26, 0,244, 8,
+ 12, 0,160, 3, 0, 0, 20, 0, 2, 0, 19, 0, 2, 0, 38, 9, 2, 0, 39, 9, 2, 0, 40, 9, 2, 0,119, 3, 2, 0, 41, 9,
+ 4, 0, 61, 2, 4, 0, 16, 9, 4, 0, 17, 9, 77, 1, 42, 9, 80, 1, 38, 0, 80, 1, 43, 9, 12, 0, 44, 9, 9, 0, 45, 9,
+ 9, 0, 46, 9, 9, 0, 47, 9, 7, 0, 64, 1, 7, 0,169, 0, 7, 0, 48, 9, 7, 0, 4, 2, 7, 0,110, 3, 7, 0,112, 3,
+ 2, 0,142, 3, 2, 0, 37, 0, 7, 0, 49, 9, 7, 0, 50, 9, 7, 0,115, 3, 7, 0, 51, 9, 7, 0, 52, 9, 7, 0, 53, 9,
+ 7, 0, 54, 9, 7, 0, 55, 9, 7, 0, 56, 9, 7, 0, 57, 9, 7, 0, 58, 9, 7, 0, 54, 2,165, 0, 98, 3, 32, 0, 59, 9,
+ 80, 1, 60, 9,162, 0, 14, 0, 12, 0, 61, 9, 81, 1, 62, 9, 2, 0, 19, 0, 2, 0, 63, 9, 7, 0, 90, 2, 7, 0, 64, 9,
+ 7, 0, 65, 9, 12, 0, 66, 9, 4, 0, 67, 9, 4, 0, 68, 9, 9, 0, 69, 9, 9, 0, 70, 9,164, 0, 97, 3, 0, 0, 71, 9,
+ 82, 1, 1, 0, 4, 0, 68, 9, 83, 1, 12, 0, 4, 0, 68, 9, 7, 0,167, 8, 2, 0, 72, 9, 2, 0, 73, 9, 7, 0, 74, 9,
+ 7, 0, 75, 9, 2, 0, 76, 9, 2, 0, 19, 0, 7, 0, 77, 9, 7, 0, 78, 9, 7, 0, 79, 9, 7, 0, 80, 9, 84, 1, 7, 0,
+ 84, 1, 0, 0, 84, 1, 1, 0, 12, 0, 81, 9, 4, 0, 19, 0, 4, 0, 82, 9, 0, 0,239, 3,254, 0, 83, 9,161, 0, 7, 0,
+ 27, 0, 31, 0, 12, 0, 84, 9, 12, 0, 61, 9, 12, 0, 85, 9, 12, 0,100, 0, 4, 0, 19, 0, 4, 0, 86, 9,221, 0, 5, 0,
+ 27, 0, 87, 9, 12, 0, 61, 9, 67, 0, 88, 9, 4, 0, 89, 9, 4, 0, 19, 0, 85, 1, 13, 0,216, 0, 0, 0,216, 0, 1, 0,
+ 12, 0, 10, 6, 4, 0, 11, 6, 7, 0, 12, 6, 2, 0, 13, 6,217, 0, 62, 6,161, 0, 93, 3,221, 0, 90, 9, 0, 0, 69, 1,
+ 0, 0, 65, 6, 2, 0, 19, 0, 7, 0, 91, 9, 86, 1, 8, 0, 86, 1, 0, 0, 86, 1, 1, 0, 84, 1, 92, 9, 36, 0, 80, 0,
+ 12, 0, 99, 3, 4, 0, 19, 0, 0, 0, 20, 0, 4, 0, 93, 9, 87, 1, 5, 0, 87, 1, 0, 0, 87, 1, 1, 0, 36, 0, 80, 0,
+ 2, 0, 19, 0, 0, 0, 94, 9, 88, 1, 14, 0, 88, 1, 0, 0, 88, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0,
+ 0, 0, 95, 9, 0, 0, 96, 9, 0, 0, 94, 9, 7, 0, 97, 9, 7, 0, 98, 9, 4, 0, 37, 0, 36, 0, 80, 0, 7, 0, 99, 9,
+ 7, 0,100, 9, 89, 1, 9, 0, 89, 1, 0, 0, 89, 1, 1, 0, 32, 0,101, 9, 0, 0,242, 2, 7, 0,102, 9, 2, 0,103, 9,
+ 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,104, 9, 90, 1, 7, 0, 42, 0,123, 6, 26, 0,244, 8, 4, 0, 19, 0, 4, 0,105, 9,
+ 12, 0,106, 9, 32, 0,101, 9, 0, 0,242, 2, 91, 1, 15, 0, 32, 0,101, 9, 2, 0,107, 9, 2, 0, 19, 0, 2, 0,108, 9,
+ 2, 0,109, 9, 0, 0,242, 2, 32, 0,110, 9, 0, 0,111, 9, 7, 0,112, 9, 7, 0, 25, 2, 7, 0,113, 9, 7, 0,114, 9,
+ 2, 0, 17, 0, 2, 0, 69, 1, 7, 0, 76, 1, 92, 1, 6, 0, 32, 0,101, 9, 7, 0, 20, 9, 2, 0,115, 9, 2, 0,116, 9,
+ 2, 0, 19, 0, 2, 0,117, 9, 93, 1, 6, 0, 32, 0,101, 9, 4, 0,118, 9, 4, 0,119, 9, 4, 0, 90, 0, 4, 0, 37, 0,
+ 0, 0,242, 2, 94, 1, 4, 0, 32, 0,101, 9, 4, 0, 19, 0, 4, 0,118, 9, 0, 0,242, 2, 95, 1, 4, 0, 32, 0,101, 9,
+ 4, 0, 19, 0, 4, 0,118, 9, 0, 0,242, 2, 96, 1, 4, 0, 32, 0,101, 9, 4, 0, 19, 0, 4, 0,118, 9, 0, 0,242, 2,
+ 97, 1, 2, 0, 4, 0, 19, 0, 7, 0,248, 3, 98, 1, 2, 0, 32, 0,101, 9, 0, 0,242, 2, 99, 1, 10, 0, 32, 0,101, 9,
+ 4, 0,120, 9, 7, 0,120, 0, 4, 0, 19, 0, 2, 0,116, 6, 2, 0,121, 9, 2, 0, 43, 0, 2, 0, 70, 0, 7, 0,122, 9,
+ 0, 0,242, 2,100, 1, 10, 0, 32, 0,101, 9, 2, 0, 17, 0, 2, 0, 42, 4, 4, 0, 88, 0, 4, 0, 89, 0, 7, 0,197, 8,
+ 7, 0,198, 8, 4, 0, 37, 0,161, 0,175, 8, 0, 0,242, 2,101, 1, 4, 0, 32, 0,101, 9, 4, 0,120, 3, 4, 0,123, 9,
+ 0, 0,242, 2,102, 1, 4, 0, 32, 0,101, 9, 4, 0,120, 3, 4, 0, 37, 0, 0, 0,242, 2,103, 1, 6, 0, 32, 0,101, 9,
+ 7, 0,120, 0, 7, 0, 55, 3, 4, 0,124, 9, 2, 0,120, 3, 2, 0,121, 3,104, 1, 6, 0, 32, 0,101, 9, 4, 0,125, 9,
+ 4, 0,126, 9, 7, 0,127, 9, 7, 0,128, 9, 0, 0,242, 2,105, 1, 16, 0, 32, 0,101, 9, 32, 0, 43, 9, 4, 0, 17, 0,
+ 7, 0,129, 9, 7, 0,130, 9, 7, 0,131, 9, 7, 0,132, 9, 7, 0,133, 9, 7, 0,134, 9, 7, 0,135, 9, 7, 0,136, 9,
+ 7, 0,137, 9, 2, 0, 19, 0, 2, 0, 37, 0, 2, 0, 43, 0, 2, 0, 70, 0,106, 1, 3, 0, 32, 0,101, 9, 4, 0, 19, 0,
+ 4, 0, 17, 2,107, 1, 5, 0, 32, 0,101, 9, 4, 0, 19, 0, 4, 0, 37, 0, 7, 0,138, 9, 0, 0,242, 2,108, 1, 10, 0,
+ 32, 0,101, 9, 0, 0,242, 2, 2, 0,139, 9, 2, 0,140, 9, 0, 0,141, 9, 0, 0,142, 9, 7, 0,143, 9, 7, 0,144, 9,
+ 7, 0,145, 9, 7, 0,146, 9,109, 1, 5, 0, 32, 0,101, 9, 0, 0,242, 2, 7, 0,189, 2, 2, 0,147, 9, 2, 0, 19, 0,
+110, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,148, 9, 7, 0,149, 9, 2, 0, 19, 0,
+ 2, 0, 17, 2,111, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,148, 9, 7, 0,149, 9,
+ 2, 0, 19, 0, 2, 0, 17, 2,112, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,148, 9,
+ 7, 0,149, 9, 2, 0, 19, 0, 2, 0, 17, 2,113, 1, 7, 0, 32, 0,101, 9, 0, 0,242, 2, 7, 0, 76, 1, 7, 0, 85, 1,
+ 2, 0, 19, 0, 2, 0, 69, 1, 4, 0, 37, 0,114, 1, 5, 0, 32, 0, 43, 3, 7, 0, 76, 1, 2, 0, 47, 3, 0, 0, 49, 3,
+ 0, 0,150, 9,115, 1, 10, 0,115, 1, 0, 0,115, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0,151, 9, 7, 0, 19, 1,
+ 7, 0, 20, 1, 2, 0, 81, 9, 2, 0,152, 9, 32, 0, 45, 0,116, 1, 22, 0,116, 1, 0, 0,116, 1, 1, 0, 2, 0, 19, 0,
+ 2, 0, 69, 1, 2, 0,153, 9, 2, 0,154, 9, 36, 0, 80, 0,161, 0,175, 8, 32, 0,161, 0, 7, 0, 88, 0, 7, 0, 89, 0,
+ 7, 0,155, 9, 7, 0,156, 9, 7, 0,157, 9, 7, 0,158, 9, 7, 0,228, 2, 7, 0,159, 9, 7, 0,177, 8, 7, 0,160, 9,
+ 0, 0,161, 9, 0, 0,162, 9, 12, 0,101, 3,117, 1, 8, 0, 7, 0, 32, 2, 7, 0,197, 8, 7, 0,198, 8, 9, 0, 2, 0,
+ 2, 0,163, 9, 2, 0,164, 9, 2, 0,165, 9, 2, 0,166, 9,118, 1, 18, 0,118, 1, 0, 0,118, 1, 1, 0,118, 1,167, 9,
+ 0, 0, 20, 0,117, 1,168, 9, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,169, 9, 2, 0,170, 9, 2, 0,171, 9, 2, 0,172, 9,
+ 4, 0, 43, 0, 7, 0,173, 9, 7, 0,174, 9, 4, 0,175, 9, 4, 0,176, 9,118, 1,177, 9,119, 1,178, 9,120, 1, 33, 0,
+120, 1, 0, 0,120, 1, 1, 0,120, 1,179, 9, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 21, 8, 2, 0, 56, 8,
+ 2, 0,180, 9, 2, 0,128, 0, 2, 0,170, 9, 2, 0, 12, 8, 12, 0,170, 8, 12, 0,181, 9, 27, 0,156, 6, 9, 0,182, 9,
+ 7, 0,173, 9, 7, 0,174, 9, 7, 0, 63, 2, 7, 0,183, 9, 2, 0,184, 9, 2, 0,185, 9, 7, 0,186, 9, 7, 0,187, 9,
+ 2, 0,188, 9, 2, 0,189, 9, 9, 0,190, 9, 24, 0,191, 9, 24, 0,192, 9, 24, 0,193, 9,121, 1,148, 0,122, 1,194, 9,
+123, 1,195, 9,119, 1, 8, 0,119, 1, 0, 0,119, 1, 1, 0,120, 1,196, 9,120, 1,197, 9,118, 1,198, 9,118, 1,177, 9,
+ 4, 0, 19, 0, 4, 0, 37, 0, 60, 0, 22, 0, 27, 0, 31, 0, 39, 0, 75, 0,163, 0, 96, 3, 12, 0,199, 9, 12, 0,200, 9,
+117, 1,201, 9, 12, 0,202, 9, 4, 0, 17, 0, 4, 0,203, 9, 4, 0,204, 9, 4, 0,205, 9, 4, 0, 19, 0, 4, 0, 37, 0,
+ 12, 0,206, 9,123, 1,207, 9, 4, 0,208, 9, 9, 0,209, 9, 9, 0,210, 9, 4, 0,211, 9, 9, 0,212, 9, 9, 0,213, 9,
+ 9, 0,214, 9,124, 1, 6, 0, 4, 0,119, 0, 4, 0,121, 0, 4, 0, 12, 8, 0, 0,215, 9, 0, 0,216, 9, 2, 0, 37, 0,
+125, 1, 16, 0, 2, 0,220, 7, 2, 0,221, 7, 2, 0,217, 9, 2, 0,222, 8, 2, 0,218, 9, 2, 0, 68, 0, 7, 0,227, 2,
+ 7, 0,219, 9, 7, 0,220, 9, 2, 0, 91, 1, 0, 0,221, 9, 0, 0,222, 9, 2, 0,223, 9, 2, 0, 37, 0, 4, 0,224, 9,
+ 4, 0,225, 9,126, 1, 9, 0, 7, 0,226, 9, 7, 0,227, 9, 7, 0,237, 8, 7, 0, 64, 3, 7, 0,228, 9, 7, 0, 78, 6,
+ 2, 0, 62, 3, 0, 0,229, 9, 0, 0, 37, 0,127, 1, 4, 0, 7, 0,230, 9, 7, 0,231, 9, 2, 0, 62, 3, 2, 0, 37, 0,
+128, 1, 3, 0, 7, 0,232, 9, 7, 0,233, 9, 7, 0, 15, 0,129, 1, 7, 0, 0, 0,250, 1, 2, 0, 11, 5, 2, 0, 12, 5,
+ 2, 0, 13, 5, 2, 0,200, 4, 4, 0,121, 0, 4, 0, 40, 4,130, 1, 9, 0, 7, 0,234, 9, 7, 0,235, 9, 7, 0,236, 9,
+ 7, 0, 74, 2, 7, 0,237, 9, 7, 0,238, 9, 7, 0,239, 9, 2, 0,240, 9, 2, 0,241, 9,131, 1, 4, 0, 2, 0,242, 9,
+ 2, 0,243, 9, 2, 0,244, 9, 2, 0,245, 9,132, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,133, 1, 2, 0, 0, 0,163, 0,
+ 0, 0,246, 9,134, 1, 1, 0, 0, 0, 20, 0,135, 1, 10, 0, 0, 0,247, 9, 0, 0,248, 9, 0, 0, 71, 6, 0, 0,249, 9,
+ 2, 0,217, 9, 2, 0,250, 9, 7, 0,251, 9, 7, 0,252, 9, 7, 0,253, 9, 7, 0,159, 9,136, 1, 2, 0, 9, 0,254, 9,
+ 9, 0,255, 9,137, 1, 11, 0, 0, 0, 13, 5, 0, 0, 17, 0, 0, 0, 62, 3, 0, 0, 64, 3, 0, 0, 0, 10, 0, 0,106, 0,
+ 0, 0, 59, 2, 7, 0, 1, 10, 7, 0, 2, 10, 7, 0, 3, 10, 7, 0, 4, 10,138, 1, 8, 0, 7, 0,136, 8, 7, 0,120, 0,
+ 7, 0,222, 9, 7, 0,146, 2, 7, 0, 5, 10, 7, 0,233, 0, 7, 0, 6, 10, 4, 0, 17, 0,139, 1, 4, 0, 2, 0, 7, 10,
+ 2, 0, 8, 10, 2, 0, 9, 10, 2, 0, 37, 0,140, 1, 7, 0, 7, 0, 10, 10, 7, 0,189, 2, 7, 0, 11, 10, 7, 0, 17, 8,
+ 7, 0, 18, 8, 7, 0, 19, 8, 7, 0, 12, 10,141, 1, 6, 0, 2, 0, 13, 10, 2, 0, 14, 10, 7, 0, 15, 10, 7, 0, 16, 10,
+ 7, 0, 17, 10, 7, 0, 18, 10,142, 1, 1, 0, 0, 0, 20, 0,143, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 19, 0,
+ 2, 0, 19, 10,144, 1, 10, 0, 2, 0,228, 3, 2, 0, 19, 0, 7, 0,128, 4, 7, 0, 20, 10, 7, 0, 21, 10, 7, 0, 22, 10,
+ 7, 0, 23, 10,143, 1, 24, 10,143, 1, 25, 10,143, 1, 26, 10, 63, 0, 11, 0, 4, 0, 19, 0, 4, 0, 64, 0, 4, 0, 27, 10,
+ 4, 0, 37, 0, 24, 0, 28, 10, 24, 0, 29, 10,144, 1, 30, 10, 7, 0, 31, 10, 7, 0, 32, 10, 7, 0, 33, 10, 7, 0, 34, 10,
+234, 0, 10, 0, 4, 0, 81, 9, 4, 0, 35, 10, 7, 0, 36, 10, 7, 0, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, 7, 0, 10, 0,
+ 7, 0, 12, 0, 4, 0, 69, 1, 4, 0,232, 2,233, 0, 18, 0, 4, 0,124, 0, 4, 0, 40, 10, 4, 0, 41, 10, 7, 0, 42, 10,
+ 4, 0, 43, 10, 7, 0, 44, 10, 7, 0, 45, 10, 4, 0, 46, 10, 7, 0, 47, 10, 4, 0, 48, 10, 7, 0, 49, 10,234, 0, 50, 10,
+ 7, 0, 51, 10, 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10, 4, 0, 55, 10, 4, 0, 37, 0,145, 1, 4, 0, 47, 0,219, 2,
+ 7, 0, 56, 10, 7, 0,158, 1, 7, 0, 37, 0,194, 0, 18, 0, 27, 0, 31, 0,145, 1, 57, 10, 63, 0, 24, 10, 51, 0, 58, 10,
+ 2, 0, 19, 0, 2, 0,230, 5, 4, 0,106, 0, 7, 0, 59, 10, 7, 0, 71, 2, 4, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10,
+ 7, 0, 63, 10, 7, 0,158, 1, 0, 0, 64, 10, 0, 0, 65, 10, 0, 0, 66, 10, 0, 0, 70, 0,146, 1, 10, 0, 4, 0, 17, 0,
+ 4, 0,120, 0, 4, 0, 19, 0, 4, 0,182, 3, 4, 0, 67, 10, 4, 0, 68, 10, 4, 0, 69, 10, 0, 0, 92, 0, 0, 0, 20, 0,
+ 9, 0, 2, 0,147, 1, 1, 0, 0, 0, 5, 8, 91, 0, 7, 0,146, 1, 70, 10, 4, 0, 71, 10, 4, 0, 72, 10, 4, 0, 73, 10,
+ 4, 0, 37, 0, 9, 0, 74, 10,147, 1, 75, 10,148, 1, 5, 0, 7, 0,141, 2, 7, 0,209, 2, 7, 0, 25, 2, 2, 0,117, 2,
+ 2, 0, 37, 0,149, 1, 5, 0, 7, 0,141, 2, 7, 0, 76, 10, 7, 0, 77, 10, 7, 0, 78, 10, 7, 0,209, 2,150, 1, 5, 0,
+ 32, 0, 79, 10,151, 1, 22, 0, 7, 0,200, 5, 7, 0, 80, 10, 7, 0, 57, 0,152, 1, 7, 0, 4, 0, 81, 10, 4, 0, 82, 10,
+ 4, 0, 83, 10, 7, 0, 84, 10, 7, 0, 85, 10, 7, 0, 86, 10, 7, 0, 57, 0,153, 1, 8, 0,153, 1, 0, 0,153, 1, 1, 0,
+ 32, 0, 45, 0, 4, 0,252, 0, 2, 0, 19, 0, 2, 0, 69, 1, 7, 0,209, 2, 7, 0,144, 8,154, 1, 6, 0,154, 1, 0, 0,
+154, 1, 1, 0, 32, 0, 45, 0, 2, 0,194, 2, 2, 0, 19, 0, 2, 0, 87, 10,155, 1, 17, 0,149, 1,176, 3,149, 1, 88, 10,
+148, 1, 89, 10,149, 1,128, 8,150, 1, 90, 10, 4, 0, 82, 0, 7, 0,209, 2, 7, 0,238, 2, 7, 0, 91, 10, 4, 0, 81, 10,
+ 4, 0, 92, 10, 7, 0, 85, 10, 7, 0, 86, 10, 7, 0,106, 0, 4, 0, 93, 10, 2, 0, 19, 0, 2, 0, 94, 10,156, 1, 9, 0,
+ 7, 0, 95, 10, 7, 0,248, 0, 7, 0, 96, 10, 7, 0, 97, 10, 7, 0, 98, 10, 7, 0, 99, 10, 7, 0,100, 10, 7, 0,101, 10,
+ 7, 0,102, 10,157, 1,111, 0, 27, 0, 31, 0, 39, 0, 75, 0,158, 1,103, 10,156, 1,104, 10,172, 0, 62, 4, 4, 0, 19, 0,
+ 2, 0, 17, 0, 2, 0,139, 9, 2, 0,105, 10, 2, 0,106, 10, 2, 0,142, 3, 2, 0,107, 10, 2, 0,108, 10, 2, 0,109, 10,
+ 2, 0,110, 10, 2, 0,111, 10, 2, 0,112, 10, 2, 0,113, 10, 2, 0,114, 10, 2, 0,112, 5, 2, 0,115, 10, 2, 0,116, 10,
+ 2, 0,117, 10, 2, 0,118, 10, 2, 0,119, 10, 2, 0, 14, 2, 2, 0,121, 8, 2, 0, 96, 8, 2, 0,120, 10, 2, 0,121, 10,
+ 2, 0,192, 3, 2, 0,193, 3, 2, 0,122, 10, 2, 0,123, 10, 2, 0,124, 10, 2, 0,125, 10, 7, 0,126, 10, 7, 0,127, 10,
+ 7, 0,128, 10, 2, 0, 61, 5, 2, 0,129, 10, 7, 0,130, 10, 7, 0,131, 10, 7, 0,132, 10, 7, 0,103, 8, 7, 0, 89, 0,
+ 7, 0,238, 2, 7, 0,109, 8, 7, 0,133, 10, 7, 0,134, 10, 7, 0,135, 10, 4, 0,104, 8, 4, 0,102, 8, 4, 0,136, 10,
+ 7, 0,105, 8, 7, 0,106, 8, 7, 0,107, 8, 7, 0,137, 10, 7, 0,138, 10, 7, 0,139, 10, 7, 0,140, 10, 7, 0,141, 10,
+ 7, 0, 57, 0, 7, 0,142, 10, 7, 0,143, 10, 7, 0,144, 10, 7, 0,145, 10, 7, 0,133, 3, 7, 0,106, 0, 7, 0,146, 10,
+ 7, 0,147, 10, 7, 0,148, 10, 7, 0,149, 10, 7, 0,150, 10, 7, 0,151, 10, 7, 0,152, 10, 4, 0,153, 10, 4, 0,154, 10,
+ 7, 0,155, 10, 7, 0,156, 10, 7, 0,157, 10, 7, 0,158, 10, 7, 0,159, 10, 7, 0,207, 0, 7, 0,160, 10, 7, 0,219, 3,
+ 7, 0,217, 3, 7, 0,218, 3, 7, 0,161, 10, 7, 0,162, 10, 7, 0,163, 10, 7, 0,164, 10, 7, 0,165, 10, 7, 0,166, 10,
+ 7, 0,167, 10, 7, 0,168, 10, 7, 0,169, 10, 7, 0,170, 10, 7, 0,171, 10, 7, 0,172, 10, 7, 0,173, 10, 4, 0,174, 10,
+ 4, 0,175, 10, 67, 0,165, 3, 12, 0,176, 10, 67, 0,177, 10, 32, 0,178, 10, 32, 0,179, 10, 36, 0, 80, 0,167, 0, 61, 1,
+167, 0,180, 10,147, 0, 44, 0,147, 0, 0, 0,147, 0, 1, 0,157, 1,181, 10,155, 1,182, 10,152, 1, 43, 9,174, 0,244, 3,
+ 9, 0,245, 3,159, 1,183, 10,159, 1,184, 10, 12, 0,185, 10, 12, 0,186, 10,132, 0,187, 10,140, 0,188, 10,140, 0,189, 10,
+ 32, 0,190, 10, 32, 0,191, 10, 32, 0, 38, 0, 12, 0,106, 9, 0, 0, 20, 0, 7, 0,237, 0, 7, 0, 9, 3, 7, 0,192, 10,
+ 4, 0,183, 2, 4, 0, 57, 0, 4, 0, 19, 0, 4, 0,104, 8, 4, 0,193, 10, 4, 0,194, 10, 4, 0,195, 10, 2, 0,244, 0,
+ 2, 0,196, 10, 2, 0,197, 10, 2, 0,198, 10, 0, 0,199, 10, 2, 0,200, 10, 2, 0,201, 10, 2, 0,202, 10, 9, 0,203, 10,
+136, 0, 61, 4, 12, 0,252, 2, 12, 0,204, 10,160, 1,205, 10,161, 1,206, 10, 7, 0,207, 10,134, 0, 37, 0,162, 1,238, 8,
+ 7, 0, 31, 4, 7, 0,208, 10, 7, 0,209, 10, 7, 0,200, 5, 7, 0,143, 3, 7, 0,133, 3, 7, 0,210, 10, 7, 0, 73, 2,
+ 7, 0,211, 10, 7, 0,212, 10, 7, 0,213, 10, 7, 0,214, 10, 7, 0,215, 10, 7, 0,216, 10, 7, 0, 32, 4, 7, 0,217, 10,
+ 7, 0,218, 10, 7, 0,219, 10, 7, 0, 33, 4, 7, 0, 29, 4, 7, 0, 30, 4, 7, 0,220, 10, 7, 0,221, 10, 4, 0,222, 10,
+ 4, 0, 90, 0, 4, 0,223, 10, 4, 0,224, 10, 2, 0,225, 10, 2, 0,226, 10, 2, 0,227, 10, 2, 0,228, 10, 2, 0,229, 10,
+ 2, 0,230, 10, 2, 0,231, 10, 2, 0,178, 4,172, 0, 62, 4,135, 0, 9, 0,162, 1,232, 10, 7, 0,233, 10, 7, 0,234, 10,
+ 7, 0,230, 1, 7, 0,235, 10, 4, 0, 90, 0, 2, 0,236, 10, 2, 0,237, 10, 67, 0,229, 1,163, 1, 4, 0, 7, 0, 5, 0,
+ 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,238, 10,164, 1, 6, 0,164, 1, 0, 0,164, 1, 1, 0,163, 1, 20, 9, 4, 0,250, 0,
+ 2, 0,239, 10, 2, 0, 19, 0,165, 1, 5, 0,165, 1, 0, 0,165, 1, 1, 0, 12, 0,240, 10, 4, 0,241, 10, 4, 0, 19, 0,
+166, 1, 9, 0,166, 1, 0, 0,166, 1, 1, 0, 12, 0,119, 0,165, 1,242, 10, 4, 0, 19, 0, 2, 0,239, 10, 2, 0,243, 10,
+ 7, 0, 91, 0, 0, 0,244, 10,163, 0, 6, 0, 27, 0, 31, 0, 12, 0, 29, 5, 4, 0, 19, 0, 2, 0,245, 10, 2, 0,246, 10,
+ 9, 0,247, 10,167, 1, 7, 0,167, 1, 0, 0,167, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, 0, 0,248, 10,
+ 0, 0,249, 10,168, 1, 6, 0, 12, 0,250, 10, 4, 0,251, 10, 4, 0,252, 10, 4, 0, 19, 0, 4, 0, 37, 0,214, 0,253, 10,
+169, 1, 3, 0, 7, 0, 86, 5, 7, 0,254, 10, 7, 0,255, 10,170, 1, 17, 0, 27, 0, 31, 0,171, 1, 0, 11,171, 1, 1, 11,
+ 12, 0, 2, 11, 4, 0, 3, 11, 2, 0, 4, 11, 2, 0, 5, 11, 12, 0, 6, 11, 12, 0, 7, 11,168, 1, 8, 11, 12, 0, 9, 11,
+ 12, 0, 10, 11, 12, 0, 11, 11, 12, 0, 12, 11,172, 1, 13, 11, 12, 0, 14, 11,214, 0, 15, 11,171, 1, 31, 0,171, 1, 0, 0,
+171, 1, 1, 0, 9, 0, 16, 11, 4, 0,198, 7, 2, 0, 17, 11, 2, 0, 37, 0,219, 0, 61, 6,219, 0, 18, 11, 0, 0, 19, 11,
+ 2, 0, 20, 11, 2, 0, 21, 11, 2, 0,220, 7, 2, 0,221, 7, 2, 0, 22, 11, 2, 0, 23, 11, 2, 0,182, 3, 2, 0,184, 6,
+ 2, 0, 24, 11, 2, 0, 25, 11, 2, 0,208, 9,173, 1, 26, 11,174, 1, 27, 11,175, 1, 28, 11, 4, 0, 29, 11, 4, 0, 30, 11,
+ 9, 0, 31, 11, 12, 0, 7, 11, 12, 0,240, 7, 12, 0, 32, 11, 12, 0, 33, 11, 12, 0, 34, 11,176, 1, 17, 0,176, 1, 0, 0,
+176, 1, 1, 0, 0, 0, 35, 11, 26, 0, 30, 0, 2, 0, 36, 11, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0, 37, 11, 2, 0, 38, 11,
+ 2, 0, 39, 11, 2, 0, 40, 11, 2, 0, 41, 11, 2, 0, 19, 0, 2, 0, 42, 11, 2, 0, 31, 0, 2, 0, 37, 0,177, 1, 43, 11,
+178, 1, 10, 0,178, 1, 0, 0,178, 1, 1, 0, 12, 0, 44, 11, 0, 0, 35, 11, 2, 0, 45, 11, 2, 0, 46, 11, 2, 0, 19, 0,
+ 2, 0, 47, 11, 4, 0, 48, 11, 9, 0, 49, 11,172, 1, 7, 0,172, 1, 0, 0,172, 1, 1, 0, 0, 0, 35, 11, 0, 0, 50, 11,
+ 12, 0,150, 7, 4, 0, 51, 11, 4, 0, 19, 0,227, 0, 14, 0,227, 0, 0, 0,227, 0, 1, 0, 0, 0, 35, 11, 26, 0, 30, 0,
+179, 1,214, 7, 9, 0, 52, 11, 9, 0, 53, 11,177, 1, 43, 11,168, 1, 54, 11, 12, 0, 55, 11,227, 0, 56, 11, 7, 1, 97, 6,
+ 2, 0, 19, 0, 2, 0,178, 4,180, 1, 8, 0,180, 1, 0, 0,180, 1, 1, 0, 9, 0, 2, 0, 9, 0, 57, 11, 0, 0,239, 3,
+ 2, 0, 17, 0, 2, 0, 19, 0, 7, 0, 58, 11,181, 1, 5, 0, 7, 0, 59, 11, 4, 0, 60, 11, 4, 0, 61, 11, 4, 0, 69, 1,
+ 4, 0, 19, 0,182, 1, 6, 0, 7, 0, 62, 11, 7, 0, 63, 11, 7, 0, 64, 11, 7, 0, 65, 11, 4, 0, 17, 0, 4, 0, 19, 0,
+183, 1, 5, 0, 7, 0,197, 8, 7, 0,198, 8, 7, 0,209, 2, 2, 0, 28, 2, 2, 0, 29, 2,184, 1, 5, 0,183, 1, 2, 0,
+ 4, 0, 54, 0, 7, 0, 66, 11, 7, 0,197, 8, 7, 0,198, 8,185, 1, 4, 0, 2, 0, 67, 11, 2, 0, 68, 11, 2, 0, 69, 11,
+ 2, 0, 70, 11,186, 1, 2, 0, 42, 0,150, 6, 26, 0,244, 8,187, 1, 3, 0, 24, 0, 71, 11, 4, 0, 19, 0, 4, 0, 37, 0,
+188, 1, 6, 0, 7, 0,106, 0, 7, 0,211, 2, 7, 0, 72, 11, 7, 0, 37, 0, 2, 0,243, 0, 2, 0, 73, 11,189, 1, 5, 0,
+ 7, 0, 74, 11, 7, 0,120, 0, 7, 0, 21, 9, 7, 0, 22, 9, 4, 0, 19, 0,190, 1, 6, 0, 27, 0,156, 6, 0, 0, 75, 11,
+ 0, 0, 76, 11, 2, 0, 77, 11, 2, 0, 19, 0, 4, 0, 78, 11,191, 1, 7, 0,191, 1, 0, 0,191, 1, 1, 0, 0, 0,239, 3,
+190, 1, 79, 11, 2, 0, 80, 11, 2, 0, 17, 0, 7, 0, 61, 0,192, 1, 7, 0, 12, 0, 81, 11, 0, 0, 82, 11, 9, 0, 83, 11,
+ 7, 0, 61, 0, 7, 0, 58, 11, 4, 0, 17, 0, 4, 0, 19, 0,193, 1, 3, 0, 7, 0, 84, 11, 4, 0, 19, 0, 4, 0, 37, 0,
+194, 1, 15, 0,194, 1, 0, 0,194, 1, 1, 0, 84, 1, 92, 9,192, 1, 62, 0, 12, 0,101, 3, 35, 0, 50, 0,193, 1, 85, 11,
+ 4, 0, 54, 0, 7, 0, 61, 0, 2, 0, 19, 0, 2, 0, 12, 1, 4, 0, 86, 11, 0, 0, 75, 11, 4, 0, 87, 11, 7, 0, 88, 11,
+195, 1, 2, 0, 0, 0, 89, 11, 0, 0, 90, 11,196, 1, 4, 0,196, 1, 0, 0,196, 1, 1, 0,161, 0, 43, 3, 12, 0, 91, 11,
+197, 1, 24, 0,197, 1, 0, 0,197, 1, 1, 0, 12, 0, 92, 11,161, 0,175, 8,196, 1, 93, 11, 12, 0, 94, 11, 12, 0,101, 3,
+ 0, 0,239, 3, 7, 0, 58, 11, 7, 0, 95, 11, 7, 0, 88, 0, 7, 0, 89, 0, 7, 0,155, 9, 7, 0,156, 9, 7, 0,228, 2,
+ 7, 0,159, 9, 7, 0,177, 8, 7, 0,160, 9, 2, 0, 96, 11, 2, 0, 97, 11, 2, 0, 43, 0, 2, 0, 17, 0, 4, 0, 19, 0,
+ 4, 0, 70, 0,198, 1, 6, 0,198, 1, 0, 0,198, 1, 1, 0, 12, 0, 92, 11, 4, 0, 19, 0, 4, 0,145, 2, 0, 0,239, 3,
+199, 1, 11, 0,199, 1, 0, 0,199, 1, 1, 0, 27, 0,156, 6, 0, 0, 98, 11, 4, 0, 78, 11, 2, 0, 99, 11, 2, 0, 37, 0,
+ 0, 0, 75, 11, 4, 0, 86, 11, 2, 0, 19, 0, 2, 0,100, 11,200, 1, 8, 0,200, 1, 0, 0,200, 1, 1, 0, 12, 0,101, 11,
+ 0, 0,239, 3, 0, 0,102, 11, 2, 0, 19, 0, 2, 0,100, 11, 4, 0,103, 11,201, 1, 5, 0,201, 1, 0, 0,201, 1, 1, 0,
+ 0, 0, 75, 11, 4, 0, 86, 11, 7, 0,199, 2, 39, 0, 12, 0,161, 0, 93, 3,161, 0,104, 11,196, 1, 93, 11, 12, 0,105, 11,
+197, 1,106, 11, 12, 0,107, 11, 12, 0,108, 11, 4, 0, 19, 0, 4, 0,244, 0, 2, 0,109, 11, 2, 0,110, 11, 7, 0,111, 11,
+202, 1, 2, 0, 27, 0, 31, 0, 39, 0, 75, 0,203, 1, 5, 0,203, 1, 0, 0,203, 1, 1, 0, 4, 0, 17, 0, 4, 0, 19, 0,
+ 0, 0, 20, 0,204, 1, 6, 0,203, 1,112, 11, 32, 0, 45, 0, 4, 0,113, 11, 7, 0,114, 11, 4, 0,115, 11, 4, 0, 81, 9,
+205, 1, 3, 0,203, 1,112, 11, 4, 0,113, 11, 7, 0,116, 11,206, 1, 8, 0,203, 1,112, 11, 32, 0, 45, 0, 7, 0, 64, 1,
+ 7, 0,117, 11, 7, 0, 9, 3, 7, 0,237, 8, 4, 0,113, 11, 4, 0,118, 11,207, 1, 5, 0,203, 1,112, 11, 7, 0,119, 11,
+ 7, 0, 56, 8, 7, 0,234, 2, 7, 0, 57, 0,208, 1, 3, 0,203, 1,112, 11, 7, 0,237, 8, 7, 0,120, 11,151, 1, 4, 0,
+ 7, 0,121, 11, 7, 0,148, 10, 2, 0,122, 11, 2, 0, 69, 1,209, 1, 14, 0,209, 1, 0, 0,209, 1, 1, 0, 12, 0,123, 11,
+ 12, 0,124, 11, 12, 0,125, 11, 0, 0, 20, 0, 4, 0, 31, 0, 4, 0, 19, 0, 4, 0,126, 11, 7, 0,127, 11, 4, 0,115, 11,
+ 4, 0, 81, 9, 7, 0,248, 3, 7, 0,236, 2,158, 1, 23, 0, 4, 0,113, 11, 4, 0,128, 11, 7, 0,129, 11, 7, 0, 57, 0,
+ 7, 0,130, 11, 7, 0,232, 2, 7, 0,121, 11, 7, 0,131, 11, 7, 0,211, 2, 7, 0, 42, 10, 7, 0,128, 4, 7, 0,132, 11,
+ 7, 0,133, 11, 7, 0,134, 11, 7, 0,135, 11, 7, 0,136, 11, 7, 0,137, 11, 7, 0,138, 11, 7, 0,139, 11, 7, 0,140, 11,
+ 7, 0,141, 11, 7, 0,142, 11, 12, 0,143, 11,120, 0, 36, 0,119, 0,144, 11,210, 1,104, 10, 67, 0,145, 11, 67, 0,177, 10,
+ 67, 0,146, 11,211, 1,147, 11, 48, 0,162, 0, 48, 0,148, 11, 48, 0,149, 11, 7, 0,150, 11, 7, 0,151, 11, 7, 0,152, 11,
+ 7, 0,153, 11, 7, 0,154, 11, 7, 0, 93, 9, 7, 0,155, 11, 7, 0,158, 1, 7, 0,156, 11, 4, 0,157, 11, 4, 0,158, 11,
+ 4, 0,159, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0,160, 11, 2, 0,161, 11, 2, 0,162, 11, 4, 0,163, 11, 7, 0,211, 2,
+ 4, 0,164, 11, 7, 0,165, 11, 4, 0,166, 11, 4, 0,167, 11, 4, 0,168, 11,136, 0,169, 11, 12, 0,170, 11,172, 0, 62, 4,
+121, 0, 11, 0,119, 0,144, 11,147, 0, 29, 3, 7, 0,125, 1, 7, 0, 93, 9, 7, 0,171, 11, 7, 0,172, 11, 2, 0,173, 11,
+ 2, 0,174, 11, 2, 0,175, 11, 2, 0, 17, 0, 4, 0, 37, 0,122, 0, 13, 0,119, 0,144, 11,138, 0, 6, 3,140, 0, 8, 3,
+ 7, 0, 20, 9, 7, 0,176, 11, 7, 0,177, 11, 7, 0, 66, 1, 7, 0,178, 11, 4, 0,115, 9, 4, 0, 4, 3, 2, 0, 17, 0,
+ 2, 0, 37, 0, 4, 0, 70, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0};
+
diff --git a/source/blender/editors/gpencil/CMakeLists.txt b/source/blender/editors/gpencil/CMakeLists.txt
new file mode 100644
index 00000000000..394418b5688
--- /dev/null
+++ b/source/blender/editors/gpencil/CMakeLists.txt
@@ -0,0 +1,35 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../imbuf
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../../../intern/guardedalloc
+)
+
+BLENDERLIB(bf_editor_gpencil "${SRC}" "${INC}")
diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c
index ed1835266d5..2b26f4a295d 100644
--- a/source/blender/editors/gpencil/drawgpencil.c
+++ b/source/blender/editors/gpencil/drawgpencil.c
@@ -34,19 +34,15 @@
#include "MEM_guardedalloc.h"
-#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "DNA_gpencil_types.h"
-#include "DNA_listBase.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
#include "BKE_blender.h"
#include "BKE_context.h"
@@ -55,20 +51,15 @@
#include "BKE_sequencer.h"
#include "BKE_utildefines.h"
-#include "PIL_time.h"
#include "WM_api.h"
-#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "ED_gpencil.h"
#include "ED_sequencer.h"
-#include "ED_util.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "gpencil_intern.h"
@@ -684,7 +675,7 @@ void draw_gpencil_2dimage (bContext *C, ImBuf *ibuf)
zoom= (float)(SEQ_ZOOM_FAC(sseq->zoom));
if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
/* XXX sequencer zoom should store it? */
- zoomx = zoom; // * ((float)G.scene->r.xasp / (float)G.scene->r.yasp);
+ zoomx = zoom; // * (G.scene->r.xasp / G.scene->r.yasp);
zoomy = zoom;
}
else
@@ -718,7 +709,7 @@ void draw_gpencil_2dimage (bContext *C, ImBuf *ibuf)
/* draw grease-pencil sketches to specified 2d-view assuming that matrices are already set correctly
* Note: this gets called twice - first time with onlyv2d=1 to draw 'canvas' strokes, second time with onlyv2d=0 for screen-aligned strokes
*/
-void draw_gpencil_2dview (bContext *C, short onlyv2d)
+void draw_gpencil_view2d (bContext *C, short onlyv2d)
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= CTX_wm_region(C);
@@ -744,7 +735,7 @@ void draw_gpencil_2dview (bContext *C, short onlyv2d)
/* draw grease-pencil sketches to specified 3d-view assuming that matrices are already set correctly
* Note: this gets called twice - first time with only3d=1 to draw 3d-strokes, second time with only3d=0 for screen-aligned strokes
*/
-void draw_gpencil_3dview_ext (Scene *scene, ARegion *ar, short only3d)
+void draw_gpencil_view3d_ext (Scene *scene, ARegion *ar, short only3d)
{
bGPdata *gpd;
int dflag = 0;
@@ -758,11 +749,11 @@ void draw_gpencil_3dview_ext (Scene *scene, ARegion *ar, short only3d)
gp_draw_data(gpd, 0, 0, ar->winx, ar->winy, CFRA, dflag);
}
-void draw_gpencil_3dview (bContext *C, short only3d)
+void draw_gpencil_view3d (bContext *C, short only3d)
{
ARegion *ar= CTX_wm_region(C);
Scene *scene= CTX_data_scene(C);
- draw_gpencil_3dview_ext(scene, ar, only3d);
+ draw_gpencil_view3d_ext(scene, ar, only3d);
}
/* ************************************************** */
diff --git a/source/blender/editors/gpencil/editaction_gpencil.c b/source/blender/editors/gpencil/editaction_gpencil.c
index bfe0ba16af5..dff0839b5bd 100644
--- a/source/blender/editors/gpencil/editaction_gpencil.c
+++ b/source/blender/editors/gpencil/editaction_gpencil.c
@@ -36,14 +36,6 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
-#include "DNA_listBase.h"
-#include "DNA_action_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
#include "BKE_global.h"
#include "BKE_utildefines.h"
@@ -54,15 +46,7 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "PIL_time.h"
-#include "ED_anim_api.h"
-#include "ED_gpencil.h"
-#include "ED_keyframes_edit.h"
-#include "ED_keyframes_draw.h"
-#include "ED_markers.h"
-#include "ED_util.h"
-#include "ED_types.h"
#include "gpencil_intern.h"
diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c
index 789355d2136..17bafa3d399 100644
--- a/source/blender/editors/gpencil/gpencil_buttons.c
+++ b/source/blender/editors/gpencil/gpencil_buttons.c
@@ -36,11 +36,7 @@
#include "BLI_blenlib.h"
#include "DNA_gpencil_types.h"
-#include "DNA_listBase.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -56,12 +52,9 @@
#include "BIF_glutil.h"
#include "ED_gpencil.h"
-#include "ED_sequencer.h"
-#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "gpencil_intern.h"
@@ -129,11 +122,11 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
/* active */
icon= (gpl->flag & GP_LAYER_ACTIVE) ? ICON_RADIOBUT_ON : ICON_RADIOBUT_OFF;
- uiItemR(subrow, "", icon, &ptr, "active", 0);
+ uiItemR(subrow, &ptr, "active", 0, "", icon);
/* locked */
icon= (gpl->flag & GP_LAYER_LOCKED) ? ICON_LOCKED : ICON_UNLOCKED;
- uiItemR(subrow, "", icon, &ptr, "locked", 0);
+ uiItemR(subrow, &ptr, "locked", 0, "", icon);
/* when layer is locked or hidden, only draw header */
if (gpl->flag & (GP_LAYER_LOCKED|GP_LAYER_HIDE)) {
@@ -141,7 +134,7 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
/* visibility button (only if hidden but not locked!) */
if ((gpl->flag & GP_LAYER_HIDE) && !(gpl->flag & GP_LAYER_LOCKED))
- uiItemR(subrow, "", ICON_RESTRICT_VIEW_ON, &ptr, "hide", 0);
+ uiItemR(subrow, &ptr, "hide", 0, "", ICON_RESTRICT_VIEW_ON);
/* name */
@@ -166,17 +159,17 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
else {
/* draw rest of header -------------------------------- */
/* visibility button */
- uiItemR(subrow, "", ICON_RESTRICT_VIEW_OFF, &ptr, "hide", 0);
+ uiItemR(subrow, &ptr, "hide", 0, "", ICON_RESTRICT_VIEW_OFF);
/* frame locking */
// TODO: this needs its own icons...
icon= (gpl->flag & GP_LAYER_FRAMELOCK) ? ICON_RENDER_STILL : ICON_RENDER_ANIMATION;
- uiItemR(subrow, "", icon, &ptr, "frame_lock", 0);
+ uiItemR(subrow, &ptr, "frame_lock", 0, "", icon);
uiBlockSetEmboss(block, UI_EMBOSS);
/* name */
- uiItemR(subrow, "", 0, &ptr, "info", 0);
+ uiItemR(subrow, &ptr, "info", 0, "", 0);
/* delete 'button' */
uiBlockSetEmboss(block, UI_EMBOSSN);
@@ -200,17 +193,17 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
/* color */
subcol= uiLayoutColumn(col, 1);
- uiItemR(subcol, "", 0, &ptr, "color", 0);
- uiItemR(subcol, NULL, 0, &ptr, "opacity", UI_ITEM_R_SLIDER);
+ uiItemR(subcol, &ptr, "color", 0, "", 0);
+ uiItemR(subcol, &ptr, "opacity", UI_ITEM_R_SLIDER, NULL, 0);
/* stroke thickness */
subcol= uiLayoutColumn(col, 1);
- uiItemR(subcol, NULL, 0, &ptr, "line_thickness", UI_ITEM_R_SLIDER);
+ uiItemR(subcol, &ptr, "line_thickness", UI_ITEM_R_SLIDER, NULL, 0);
/* debugging options */
if (G.f & G_DEBUG) {
subcol= uiLayoutColumn(col, 1);
- uiItemR(subcol, NULL, 0, &ptr, "show_points", 0);
+ uiItemR(subcol, &ptr, "show_points", 0, NULL, 0);
}
/* right column ................... */
@@ -218,8 +211,8 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
/* onion-skinning */
subcol= uiLayoutColumn(col, 1);
- uiItemR(subcol, "Onion Skinning", 0, &ptr, "use_onion_skinning", 0);
- uiItemR(subcol, "Frames", 0, &ptr, "max_ghost_range", 0); // XXX shorter name here? (i.e. GStep)
+ uiItemR(subcol, &ptr, "use_onion_skinning", 0, "Onion Skinning", 0);
+ uiItemR(subcol, &ptr, "max_ghost_range", 0, "Frames", 0); // XXX shorter name here? i.e. GStep
/* additional options... */
subcol= uiLayoutColumn(col, 1);
@@ -228,12 +221,20 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
}
}
+/* stroke drawing options available */
+typedef enum eGP_Stroke_Ops {
+ STROKE_OPTS_NORMAL = 0,
+ STROKE_OPTS_V3D_OFF,
+ STROKE_OPTS_V3D_ON,
+} eGP_Stroke_Ops;
+
/* Draw the contents for a grease-pencil panel*/
static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, PointerRNA *ctx_ptr)
{
PointerRNA gpd_ptr;
bGPDlayer *gpl;
uiLayout *col, *row;
+ short v3d_stroke_opts = STROKE_OPTS_NORMAL;
/* make new PointerRNA for Grease Pencil block */
RNA_id_pointer_create((ID *)gpd, &gpd_ptr);
@@ -242,7 +243,7 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi
col= uiLayoutColumn(layout, 0);
/* current Grease Pencil block */
// TODO: show some info about who owns this?
- uiTemplateID(col, C, ctx_ptr, "grease_pencil", "GPENCIL_OT_data_add", NULL, "GPENCIL_OT_data_unlink");
+ uiTemplateID(col, C, ctx_ptr, "grease_pencil", "GPENCIL_OT_data_add", NULL, "GPENCIL_OT_data_unlink", NULL);
/* add new layer button - can be used even when no data, since it can add a new block too */
uiItemO(col, NULL, 0, "GPENCIL_OT_layer_add");
@@ -262,17 +263,26 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi
/* label */
uiItemL(col, "Drawing Settings:", 0);
- /* 'stick to view' option */
+ /* check whether advanced 3D-View drawing space options can be used */
+ if (CTX_wm_view3d(C)) {
+ if (gpd->flag & (GP_DATA_DEPTH_STROKE|GP_DATA_DEPTH_VIEW))
+ v3d_stroke_opts = STROKE_OPTS_V3D_ON;
+ else
+ v3d_stroke_opts = STROKE_OPTS_V3D_OFF;
+ }
+
+ /* drawing space options */
row= uiLayoutRow(col, 1);
- uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "VIEW");
- uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "CURSOR");
+ uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "VIEW", NULL, 0);
+ uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "CURSOR", NULL, 0);
row= uiLayoutRow(col, 1);
- uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "SURFACE");
- uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "STROKE");
+ uiLayoutSetActive(row, v3d_stroke_opts);
+ uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "SURFACE", NULL, 0);
+ uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "STROKE", NULL, 0);
row= uiLayoutRow(col, 0);
- uiLayoutSetActive(row, (gpd->flag & (GP_DATA_DEPTH_STROKE|GP_DATA_DEPTH_VIEW)) ? 1:0);
- uiItemR(row, NULL, 0, &gpd_ptr, "use_stroke_endpoints", 0);
+ uiLayoutSetActive(row, v3d_stroke_opts==STROKE_OPTS_V3D_ON);
+ uiItemR(row, &gpd_ptr, "use_stroke_endpoints", 0, NULL, 0);
}
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 7bcfc81bf26..c487c0469ba 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -34,23 +34,16 @@
#include "MEM_guardedalloc.h"
-#include "IMB_imbuf.h"
-#include "IMB_imbuf_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
-#include "DNA_listBase.h"
-#include "DNA_armature_types.h"
#include "DNA_curve_types.h"
-#include "DNA_gpencil_types.h"
#include "DNA_object_types.h"
#include "DNA_node_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_vec_types.h"
#include "DNA_view3d_types.h"
#include "BKE_armature.h"
@@ -76,9 +69,6 @@
#include "UI_view2d.h"
-#include "ED_armature.h"
-#include "ED_gpencil.h"
-#include "ED_sequencer.h"
#include "ED_view3d.h"
#include "gpencil_intern.h"
@@ -423,7 +413,7 @@ static void gp_stroke_to_path (bContext *C, bGPDlayer *gpl, bGPDstroke *gps, Cur
nu->pntsu= gps->totpoints;
nu->pntsv= 1;
nu->orderu= gps->totpoints;
- nu->flagu= 2; /* endpoint */
+ nu->flagu= CU_NURB_ENDPOINT;
nu->resolu= 32;
nu->bp= (BPoint *)MEM_callocN(sizeof(BPoint)*gps->totpoints, "bpoints");
@@ -451,38 +441,60 @@ static void gp_stroke_to_bezier (bContext *C, bGPDlayer *gpl, bGPDstroke *gps, C
bGPDspoint *pt;
Nurb *nu;
BezTriple *bezt;
- int i;
-
+ int i, tot;
+ float p3d_cur[3], p3d_prev[3], p3d_next[3];
+
/* create new 'nurb' within the curve */
nu = (Nurb *)MEM_callocN(sizeof(Nurb), "gpstroke_to_bezier(nurb)");
-
+
nu->pntsu= gps->totpoints;
nu->resolu= 12;
nu->resolv= 12;
nu->type= CU_BEZIER;
nu->bezt = (BezTriple *)MEM_callocN(gps->totpoints*sizeof(BezTriple), "bezts");
-
+
+ tot= gps->totpoints;
+
+ /* get initial coordinates */
+ pt=gps->points;
+ if (tot) {
+ gp_strokepoint_convertcoords(C, gps, pt, p3d_cur);
+ if (tot > 1) {
+ gp_strokepoint_convertcoords(C, gps, pt+1, p3d_next);
+ }
+ }
+
/* add points */
- for (i=0, pt=gps->points, bezt=nu->bezt; i < gps->totpoints; i++, pt++, bezt++) {
- float p3d[3];
-
- /* get coordinates to add at */
- gp_strokepoint_convertcoords(C, gps, pt, p3d);
-
- /* TODO: maybe in future the handles shouldn't be in same place */
- copy_v3_v3(bezt->vec[0], p3d);
- copy_v3_v3(bezt->vec[1], p3d);
- copy_v3_v3(bezt->vec[2], p3d);
-
+ for (i=0, bezt=nu->bezt; i < tot; i++, pt++, bezt++) {
+ float h1[3], h2[3];
+
+ if (i) interp_v3_v3v3(h1, p3d_cur, p3d_prev, 0.3);
+ else interp_v3_v3v3(h1, p3d_cur, p3d_next, -0.3);
+
+ if (i < tot-1) interp_v3_v3v3(h2, p3d_cur, p3d_next, 0.3);
+ else interp_v3_v3v3(h2, p3d_cur, p3d_prev, -0.3);
+
+ copy_v3_v3(bezt->vec[0], h1);
+ copy_v3_v3(bezt->vec[1], p3d_cur);
+ copy_v3_v3(bezt->vec[2], h2);
+
/* set settings */
bezt->h1= bezt->h2= HD_FREE;
bezt->f1= bezt->f2= bezt->f3= SELECT;
bezt->radius = bezt->weight = pt->pressure * gpl->thickness * 0.1f;
+
+ /* shift coord vects */
+ copy_v3_v3(p3d_prev, p3d_cur);
+ copy_v3_v3(p3d_cur, p3d_next);
+
+ if (i < tot) {
+ gp_strokepoint_convertcoords(C, gps, pt+1, p3d_next);
+ }
}
-
+
/* must calculate handles or else we crash */
calchandlesNurb(nu);
-
+
/* add nurb to curve */
BLI_addtail(&cu->nurb, nu);
}
@@ -503,7 +515,7 @@ static void gp_layer_to_curve (bContext *C, bGPdata *gpd, bGPDlayer *gpl, short
/* only convert if there are any strokes on this layer's frame to convert */
if (gpf->strokes.first == NULL)
return;
-
+
/* init the curve object (remove rotation and get curve data from it)
* - must clear transforms set on object, as those skew our results
*/
@@ -549,16 +561,16 @@ static int gp_convert_layer_exec (bContext *C, wmOperator *op)
View3D *v3d= CTX_wm_view3d(C);
float *fp= give_cursor(scene, v3d);
int mode= RNA_enum_get(op->ptr, "type");
-
+
/* check if there's data to work with */
if (gpd == NULL) {
BKE_report(op->reports, RPT_ERROR, "No Grease Pencil data to work on.");
return OPERATOR_CANCELLED;
}
-
+
/* initialise 3d-cursor correction globals */
initgrabz(CTX_wm_region_view3d(C), fp[0], fp[1], fp[2]);
-
+
/* handle conversion modes */
switch (mode) {
case GP_STROKECONVERT_PATH:
@@ -570,10 +582,11 @@ static int gp_convert_layer_exec (bContext *C, wmOperator *op)
BKE_report(op->reports, RPT_ERROR, "Unknown conversion option.");
return OPERATOR_CANCELLED;
}
-
+
/* notifiers */
WM_event_add_notifier(C, NC_OBJECT|NA_ADDED, NULL);
-
+ WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene);
+
/* done */
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/gpencil/gpencil_intern.h b/source/blender/editors/gpencil/gpencil_intern.h
index c2a8f339e14..1bfe65eb36c 100644
--- a/source/blender/editors/gpencil/gpencil_intern.h
+++ b/source/blender/editors/gpencil/gpencil_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c
index 5c8594d4016..d9bd43cc851 100644
--- a/source/blender/editors/gpencil/gpencil_ops.c
+++ b/source/blender/editors/gpencil/gpencil_ops.c
@@ -31,14 +31,11 @@
#include "BLI_blenlib.h"
-#include "DNA_windowmanager_types.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
-#include "RNA_enum_types.h"
#include "gpencil_intern.h"
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 2e45c65568f..b52297a319c 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -42,21 +42,12 @@
#include "BKE_report.h"
#include "BKE_utildefines.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_action_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_view2d_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "UI_view2d.h"
-#include "ED_armature.h"
#include "ED_gpencil.h"
-#include "ED_sequencer.h"
#include "ED_screen.h"
#include "ED_view3d.h"
@@ -170,7 +161,9 @@ static void gp_get_3d_reference (tGPsdata *p, float *vec)
float *fp= give_cursor(p->scene, v3d);
/* the reference point used depends on the owner... */
- if (p->ownerPtr.type == &RNA_Object) {
+#if 0 // XXX: disabled for now, since we can't draw relative ot the owner yet
+ if (p->ownerPtr.type == &RNA_Object)
+ {
Object *ob= (Object *)p->ownerPtr.data;
/* active Object
@@ -178,7 +171,9 @@ static void gp_get_3d_reference (tGPsdata *p, float *vec)
*/
sub_v3_v3v3(vec, fp, ob->loc);
}
- else {
+ else
+#endif
+ {
/* use 3D-cursor */
copy_v3_v3(vec, fp);
}
@@ -1077,7 +1072,7 @@ static void gp_paint_initstroke (tGPsdata *p, short paintmode)
/* calculate zoom factor */
zoom= (float)(SEQ_ZOOM_FAC(sseq->zoom));
if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
- zoomx = zoom * ((float)p->scene->r.xasp / (float)p->scene->r.yasp);
+ zoomx = zoom * (p->scene->r.xasp / p->scene->r.yasp);
zoomy = zoom;
}
else
@@ -1101,7 +1096,20 @@ static void gp_paint_initstroke (tGPsdata *p, short paintmode)
#endif
case SPACE_IMAGE:
{
- p->gpd->sbuffer_sflag |= GP_STROKE_2DSPACE;
+ SpaceImage *sima= (SpaceImage *)p->sa->spacedata.first;
+
+ /* only set these flags if the image editor doesn't have an image active,
+ * otherwise user will be confused by strokes not appearing after they're drawn
+ *
+ * Admittedly, this is a bit hacky, but it works much nicer from an ergonomic standpoint!
+ */
+ if ELEM(NULL, sima, sima->image) {
+ /* make strokes be drawn in screen space */
+ p->gpd->sbuffer_sflag &= ~GP_STROKE_2DSPACE;
+ p->gpd->flag &= ~GP_DATA_VIEWALIGN;
+ }
+ else
+ p->gpd->sbuffer_sflag |= GP_STROKE_2DSPACE;
}
break;
}
@@ -1473,6 +1481,7 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event)
/* moving mouse - assumed that mouse button is down if in painting status */
case MOUSEMOVE:
+ case INBETWEEN_MOUSEMOVE:
/* check if we're currently painting */
if (p->status == GP_STATUS_PAINTING) {
/* handle drawing event */
@@ -1507,6 +1516,8 @@ static EnumPropertyItem prop_gpencil_drawmodes[] = {
void GPENCIL_OT_draw (wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Grease Pencil Draw";
ot->idname= "GPENCIL_OT_draw";
@@ -1523,6 +1534,8 @@ void GPENCIL_OT_draw (wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
/* settings for drawing */
- RNA_def_enum(ot->srna, "mode", prop_gpencil_drawmodes, 0, "Mode", "Way to intepret mouse movements.");
+ prop= RNA_def_enum(ot->srna, "mode", prop_gpencil_drawmodes, 0, "Mode", "Way to intepret mouse movements.");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+
RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", "");
}
diff --git a/source/blender/editors/include/BIF_gl.h b/source/blender/editors/include/BIF_gl.h
index 963a617fe87..aca0e671067 100644
--- a/source/blender/editors/include/BIF_gl.h
+++ b/source/blender/editors/include/BIF_gl.h
@@ -31,7 +31,7 @@
#ifndef BIF_GL_H
#define BIF_GL_H
-#include "GL/glew.h"
+#include "../../../../extern/glew/include/GL/glew.h"
/*
* these should be phased out. cpack should be replaced in
diff --git a/source/blender/editors/include/BIF_glutil.h b/source/blender/editors/include/BIF_glutil.h
index 99fb25e336d..8f37baf9af1 100644
--- a/source/blender/editors/include/BIF_glutil.h
+++ b/source/blender/editors/include/BIF_glutil.h
@@ -1,5 +1,5 @@
/**
- * $Id: BIF_glutil.h
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h
index 2f089a41a3f..5fb7fa41752 100644
--- a/source/blender/editors/include/ED_anim_api.h
+++ b/source/blender/editors/include/ED_anim_api.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -102,8 +102,11 @@ typedef struct bAnimListElem {
int flag; /* copy of elem's flags for quick access */
int index; /* for un-named data, the index of the data in it's collection */
- void *key_data; /* motion data - mostly F-Curves, but can be other types too */
+ short elemFlag; /* flags for the list elem instance (not the data it represents) */
+
short datatype; /* type of motion data to expect */
+ void *key_data; /* motion data - mostly F-Curves, but can be other types too */
+
struct ID *id; /* ID block that channel is attached to */
struct AnimData *adt; /* source of the animation data attached to ID block (for convenience) */
@@ -192,6 +195,7 @@ typedef enum eAnimFilter_Flags {
ANIMFILTER_ANIMDATA = (1<<9), /* only return the underlying AnimData blocks (not the tracks, etc.) data comes from */
ANIMFILTER_NLATRACKS = (1<<10), /* only include NLA-tracks */
ANIMFILTER_SELEDIT = (1<<11), /* link editability with selected status */
+ ANIMFILTER_NODUPLIS = (1<<12), /* duplicate entries for animation data attached to multi-user blocks must not occur */
/* all filters - the power inside the bracket must be the last power for left-shifts + 1 */
ANIMFILTER_ALLFILTERS = ((1<<12) - 1)
@@ -326,7 +330,7 @@ typedef enum eAnimChannels_SetFlag {
/* types of settings for AnimChannels */
typedef enum eAnimChannel_Settings {
- ACHANNEL_SETTING_SELECT = 0,
+ ACHANNEL_SETTING_SELECT = 0,
ACHANNEL_SETTING_PROTECT, // warning: for drawing UI's, need to check if this is off (maybe inverse this later)
ACHANNEL_SETTING_MUTE,
ACHANNEL_SETTING_EXPAND,
@@ -452,9 +456,28 @@ void ANIM_draw_previewrange(const struct bContext *C, struct View2D *v2d);
/* ************************************************* */
/* F-MODIFIER TOOLS */
+/* ------------- UI Panel Drawing -------------- */
+
/* draw a given F-Modifier for some layout/UI-Block */
void ANIM_uiTemplate_fmodifier_draw(struct uiLayout *layout, struct ID *id, ListBase *modifiers, struct FModifier *fcm);
+/* ------------- Copy/Paste Buffer -------------- */
+
+
+/* free the copy/paste buffer */
+void free_fmodifiers_copybuf(void);
+
+/* copy the given F-Modifiers to the buffer, returning whether anything was copied or not
+ * assuming that the buffer has been cleared already with free_fmodifiers_copybuf()
+ * - active: only copy the active modifier
+ */
+short ANIM_fmodifiers_copy_to_buf(ListBase *modifiers, short active);
+
+/* 'Paste' the F-Modifier(s) from the buffer to the specified list
+ * - replace: free all the existing modifiers to leave only the pasted ones
+ */
+short ANIM_fmodifiers_paste_from_buf(ListBase *modifiers, short replace);
+
/* ************************************************* */
/* ASSORTED TOOLS */
diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h
index 95d0c4cfaca..d2d1e2a1d69 100644
--- a/source/blender/editors/include/ED_armature.h
+++ b/source/blender/editors/include/ED_armature.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -102,7 +102,6 @@ void ED_keymap_armature(struct wmKeyConfig *keyconf);
void ED_armature_from_edit(struct Object *obedit);
void ED_armature_to_edit(struct Object *ob);
void ED_armature_edit_free(struct Object *ob);
-void ED_armature_edit_remake(struct Object *obedit);
void ED_armature_deselectall(struct Object *obedit, int toggle, int doundo);
int ED_do_pose_selectbuffer(struct Scene *scene, struct Base *base, unsigned int *buffer,
@@ -166,7 +165,7 @@ void BDR_drawSketch(const struct bContext *vc);
int BDR_drawSketchNames(struct ViewContext *vc);
/* meshlaplacian.c */
-void mesh_deform_bind(struct Scene *scene, struct DerivedMesh *dm,
+void mesh_deform_bind(struct Scene *scene,
struct MeshDeformModifierData *mmd,
float *vertexcos, int totvert, float cagemat[][4]);
diff --git a/source/blender/editors/include/ED_curve.h b/source/blender/editors/include/ED_curve.h
index d1bba6bf796..a229d919e77 100644
--- a/source/blender/editors/include/ED_curve.h
+++ b/source/blender/editors/include/ED_curve.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -71,5 +71,7 @@ void free_editText (struct Object *obedit);
void ED_text_to_object(struct bContext *C, struct Text *text, int split_lines);
+int CU_select_nth(struct Object *obedit, int nth);
+
#endif /* ED_CURVE_H */
diff --git a/source/blender/editors/include/ED_datafiles.h b/source/blender/editors/include/ED_datafiles.h
index 136d46cdc91..9a5a1a5bea6 100644
--- a/source/blender/editors/include/ED_datafiles.h
+++ b/source/blender/editors/include/ED_datafiles.h
@@ -31,8 +31,8 @@
/* Datafiles embedded in Blender */
-extern int datatoc_B_blend_size;
-extern char datatoc_B_blend[];
+extern int datatoc_startup_blend_size;
+extern char datatoc_startup_blend[];
extern int datatoc_blenderbuttons_size;
extern char datatoc_blenderbuttons[];
diff --git a/source/blender/editors/include/ED_fileselect.h b/source/blender/editors/include/ED_fileselect.h
index 44785b36d0c..5001323cb61 100644
--- a/source/blender/editors/include/ED_fileselect.h
+++ b/source/blender/editors/include/ED_fileselect.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,6 +31,7 @@
struct SpaceFile;
struct ARegion;
struct FileSelectParams;
+struct bContext;
#define FILE_LAYOUT_HOR 1
#define FILE_LAYOUT_VER 2
@@ -82,11 +83,15 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar);
FileLayout* ED_fileselect_get_layout(struct SpaceFile *sfile, struct ARegion *ar);
int ED_fileselect_layout_numfiles(FileLayout* layout, struct ARegion *ar);
-int ED_fileselect_layout_offset(FileLayout* layout, int x, int y);
+int ED_fileselect_layout_offset(FileLayout* layout, int clamp_bounds, int x, int y);
void ED_fileselect_layout_tilepos(FileLayout* layout, int tile, int *x, int *y);
void ED_operatormacros_file(void);
+void ED_fileselect_clear(struct bContext *C, struct SpaceFile *sfile);
+
+void ED_fileselect_exit(struct bContext *C, struct SpaceFile *sfile);
+
#endif /* ED_FILES_H */
diff --git a/source/blender/editors/include/ED_fluidsim.h b/source/blender/editors/include/ED_fluidsim.h
index 8a9a294d423..a1ab3ba2fcc 100644
--- a/source/blender/editors/include/ED_fluidsim.h
+++ b/source/blender/editors/include/ED_fluidsim.h
@@ -34,8 +34,6 @@
struct Object;
struct FluidsimSettings;
-extern double fluidsimViscosityPreset[6];
-extern char* fluidsimViscosityPresetString[6];
/* allocates and initializes fluidsim data */
struct FluidsimSettings* fluidsimSettingsNew(struct Object *srcob);
diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h
index 05534bd584c..0003cea8147 100644
--- a/source/blender/editors/include/ED_gpencil.h
+++ b/source/blender/editors/include/ED_gpencil.h
@@ -70,9 +70,9 @@ void ED_operatortypes_gpencil(void);
/* drawgpencil.c */
void draw_gpencil_2dimage(struct bContext *C, struct ImBuf *ibuf);
-void draw_gpencil_2dview(struct bContext *C, short onlyv2d);
-void draw_gpencil_3dview(struct bContext *C, short only3d);
-void draw_gpencil_3dview_ext(struct Scene *scene, struct ARegion *ar, short only3d);
+void draw_gpencil_view2d(struct bContext *C, short onlyv2d);
+void draw_gpencil_view3d(struct bContext *C, short only3d);
+void draw_gpencil_view3d_ext(struct Scene *scene, struct ARegion *ar, short only3d);
void gpencil_panel_standard(const struct bContext *C, struct Panel *pa);
diff --git a/source/blender/editors/include/ED_image.h b/source/blender/editors/include/ED_image.h
index 7bf0c284c9b..1d674112b8d 100644
--- a/source/blender/editors/include/ED_image.h
+++ b/source/blender/editors/include/ED_image.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_info.h b/source/blender/editors/include/ED_info.h
index 2132ef96709..33b890cea60 100644
--- a/source/blender/editors/include/ED_info.h
+++ b/source/blender/editors/include/ED_info.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_keyframes_edit.h b/source/blender/editors/include/ED_keyframes_edit.h
index 1219cee3a11..60f2526191c 100644
--- a/source/blender/editors/include/ED_keyframes_edit.h
+++ b/source/blender/editors/include/ED_keyframes_edit.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -60,10 +60,14 @@ typedef enum eEditKeyframes_Validate {
/* select modes */
typedef enum eEditKeyframes_Select {
+ /* SELECT_SUBTRACT for all, followed by SELECT_ADD for some */
SELECT_REPLACE = (1<<0),
+ /* add ok keyframes to selection */
SELECT_ADD = (1<<1),
+ /* remove ok keyframes from selection */
SELECT_SUBTRACT = (1<<2),
- SELECT_INVERT = (1<<4),
+ /* flip ok status of keyframes based on key status */
+ SELECT_INVERT = (1<<3),
} eEditKeyframes_Select;
/* "selection map" building modes */
@@ -94,9 +98,9 @@ typedef enum eEditKeyframes_Mirror {
/* ************************************************ */
/* Non-Destuctive Editing API (keyframes_edit.c) */
-/* --- Generic Properties for Bezier Edit Tools ----- */
+/* --- Generic Properties for Keyframe Edit Tools ----- */
-typedef struct BeztEditData {
+typedef struct KeyframeEditData {
/* generic properties/data access */
ListBase list; /* temp list for storing custom list of data to check */
struct Scene *scene; /* pointer to current scene - many tools need access to cfra/etc. */
@@ -107,36 +111,60 @@ typedef struct BeztEditData {
/* current iteration data */
struct FCurve *fcu; /* F-Curve that is being iterated over */
int curIndex; /* index of current keyframe being iterated over */
-} BeztEditData;
+
+ /* flags */
+ short curflags; /* current flags for the keyframe we're reached in the iteration process */
+ short iterflags; /* settings for iteration process */ // XXX: unused...
+} KeyframeEditData;
/* ------- Function Pointer Typedefs ---------------- */
/* callback function that refreshes the F-Curve after use */
typedef void (*FcuEditFunc)(struct FCurve *fcu);
/* callback function that operates on the given BezTriple */
-typedef short (*BeztEditFunc)(BeztEditData *bed, struct BezTriple *bezt);
+typedef short (*KeyframeEditFunc)(KeyframeEditData *ked, struct BezTriple *bezt);
+
+/* ---------- Defines for 'OK' polls ----------------- */
+
+/* which verts of a keyframe is active (after polling) */
+typedef enum eKeyframeVertOk {
+ /* 'key' itself is ok */
+ KEYFRAME_OK_KEY = (1<<0),
+ /* 'handle 1' is ok */
+ KEYFRAME_OK_H1 = (1<<1),
+ /* 'handle 2' is ok */
+ KEYFRAME_OK_H2 = (1<<2),
+ /* all flags */
+ KEYFRAME_OK_ALL = (KEYFRAME_OK_KEY|KEYFRAME_OK_H1|KEYFRAME_OK_H2)
+} eKeyframeVertOk;
+
+/* Flags for use during iteration */
+typedef enum eKeyframeIterFlags {
+ /* consider handles in addition to key itself */
+ KEYFRAME_ITER_INCL_HANDLES = (1<<0),
+} eKeyframeIterFlags;
/* ------- Custom Data Type Defines ------------------ */
/* Custom data for remapping one range to another in a fixed way */
-typedef struct BeztEditCD_Remap {
+typedef struct KeyframeEditCD_Remap {
float oldMin, oldMax; /* old range */
float newMin, newMax; /* new range */
-} BeztEditCD_Remap;
+} KeyframeEditCD_Remap;
/* ---------------- Looping API --------------------- */
/* functions for looping over keyframes */
/* function for working with F-Curve data only (i.e. when filters have been chosen to explicitly use this) */
-short ANIM_fcurve_keys_bezier_loop(BeztEditData *bed, struct FCurve *fcu, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb);
+short ANIM_fcurve_keyframes_loop(KeyframeEditData *ked, struct FCurve *fcu, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb);
/* function for working with any type (i.e. one of the known types) of animation channel
* - filterflag is bDopeSheet->flag (DOPESHEET_FILTERFLAG)
*/
-short ANIM_animchannel_keys_bezier_loop(BeztEditData *bed, struct bAnimListElem *ale, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb, int filterflag);
+short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, struct bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag);
/* same as above, except bAnimListElem wrapper is not needed...
* - keytype is eAnim_KeyType
*/
-short ANIM_animchanneldata_keys_bezier_loop(BeztEditData *bed, void *data, int keytype, BeztEditFunc bezt_ok, BeztEditFunc bezt_cb, FcuEditFunc fcu_cb, int filterflag);
+short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, void *data, int keytype, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag);
/* functions for making sure all keyframes are in good order */
void ANIM_editkeyframes_refresh(struct bAnimContext *ac);
@@ -144,40 +172,40 @@ void ANIM_editkeyframes_refresh(struct bAnimContext *ac);
/* ----------- BezTriple Callback Getters ---------- */
/* accessories */
-BeztEditFunc ANIM_editkeyframes_ok(short mode);
+KeyframeEditFunc ANIM_editkeyframes_ok(short mode);
/* edit */
-BeztEditFunc ANIM_editkeyframes_snap(short mode);
-BeztEditFunc ANIM_editkeyframes_mirror(short mode);
-BeztEditFunc ANIM_editkeyframes_select(short mode);
-BeztEditFunc ANIM_editkeyframes_handles(short mode);
-BeztEditFunc ANIM_editkeyframes_ipo(short mode);
-BeztEditFunc ANIM_editkeyframes_keytype(short mode);
+KeyframeEditFunc ANIM_editkeyframes_snap(short mode);
+KeyframeEditFunc ANIM_editkeyframes_mirror(short mode);
+KeyframeEditFunc ANIM_editkeyframes_select(short mode);
+KeyframeEditFunc ANIM_editkeyframes_handles(short mode);
+KeyframeEditFunc ANIM_editkeyframes_ipo(short mode);
+KeyframeEditFunc ANIM_editkeyframes_keytype(short mode);
/* -------- BezTriple Callbacks (Selection Map) ---------- */
/* Get a callback to populate the selection settings map
- * requires: bed->custom = char[] of length fcurve->totvert
+ * requires: ked->custom = char[] of length fcurve->totvert
*/
-BeztEditFunc ANIM_editkeyframes_buildselmap(short mode);
+KeyframeEditFunc ANIM_editkeyframes_buildselmap(short mode);
/* Change the selection status of the keyframe based on the map entry for this vert
- * requires: bed->custom = char[] of length fcurve->totvert
+ * requires: ked->custom = char[] of length fcurve->totvert
*/
-short bezt_selmap_flush(BeztEditData *bed, struct BezTriple *bezt);
+short bezt_selmap_flush(KeyframeEditData *ked, struct BezTriple *bezt);
/* ----------- BezTriple Callback (Assorted Utilities) ---------- */
/* used to calculate the the average location of all relevant BezTriples by summing their locations */
-short bezt_calc_average(BeztEditData *bed, struct BezTriple *bezt);
+short bezt_calc_average(KeyframeEditData *ked, struct BezTriple *bezt);
/* used to extract a set of cfra-elems from the keyframes */
-short bezt_to_cfraelem(BeztEditData *bed, struct BezTriple *bezt);
+short bezt_to_cfraelem(KeyframeEditData *ked, struct BezTriple *bezt);
/* used to remap times from one range to another
- * requires: bed->custom = BeztEditCD_Remap
+ * requires: ked->custom = KeyframeEditCD_Remap
*/
-void bezt_remap_times(BeztEditData *bed, struct BezTriple *bezt);
+void bezt_remap_times(KeyframeEditData *ked, struct BezTriple *bezt);
/* ************************************************ */
/* Destructive Editing API (keyframes_general.c) */
diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h
index 2c58d9e3ff5..fc5e3a43a62 100644
--- a/source/blender/editors/include/ED_keyframing.h
+++ b/source/blender/editors/include/ED_keyframing.h
@@ -47,6 +47,8 @@ struct wmOperatorType;
struct PointerRNA;
struct PropertyRNA;
+#include "RNA_types.h"
+
/* ************ Keyframing Management **************** */
/* Get the active settings for keyframing settings from context (specifically the given scene)
@@ -89,8 +91,6 @@ int insert_vert_fcurve(struct FCurve *fcu, float x, float y, short flag);
*/
short insert_keyframe_direct(struct PointerRNA ptr, struct PropertyRNA *prop, struct FCurve *fcu, float cfra, short flag);
-
-
/* -------- */
/* Main Keyframing API calls:
@@ -106,48 +106,99 @@ short delete_keyframe(struct ID *id, struct bAction *act, const char group[], co
/* ************ Keying Sets ********************** */
-/* temporary struct to gather data combos to keyframe
- * (is used by modify_keyframes for 'relative' KeyingSets, provided via the dsources arg)
- */
-typedef struct bCommonKeySrc {
- struct bCommonKeySrc *next, *prev;
-
- /* general data/destination-source settings */
- struct ID *id; /* id-block this comes from */
+/* forward decl. for this struct which is declared a bit later... */
+struct KeyingSetInfo;
+struct ExtensionRNA;
+
+/* Polling Callback for KeyingSets */
+typedef int (*cbKeyingSet_Poll)(struct KeyingSetInfo *ksi, struct bContext *C);
+/* Context Iterator Callback for KeyingSets */
+typedef void (*cbKeyingSet_Iterator)(struct KeyingSetInfo *ksi, struct bContext *C, struct KeyingSet *ks);
+/* Property Specifier Callback for KeyingSets (called from iterators) */
+typedef void (*cbKeyingSet_Generate)(struct KeyingSetInfo *ksi, struct bContext *C, struct KeyingSet *ks, struct PointerRNA *ptr);
+
+
+/* Callback info for 'Procedural' KeyingSets to use */
+typedef struct KeyingSetInfo {
+ struct KeyingSetInfo *next, *prev;
+
+ /* info */
+ /* identifier so that user can hook this up to a KeyingSet */
+ char name[64];
+ /* identifier used for class name, which KeyingSet instances reference as "Typeinfo Name" */
+ char idname[64];
+ /* keying settings */
+ short keyingflag;
+
+ /* polling callbacks */
+ /* callback for polling the context for whether the right data is available */
+ cbKeyingSet_Poll poll;
- /* specific cases */
- struct bPoseChannel *pchan;
- struct bConstraint *con;
-} bCommonKeySrc;
+ /* generate callbacks */
+ /* iterator to use to go through collections of data in context
+ * - this callback is separate from the 'adding' stage, allowing
+ * BuiltIn KeyingSets to be manually specified to use
+ */
+ cbKeyingSet_Iterator iter;
+ /* generator to use to add properties based on the data found by iterator */
+ cbKeyingSet_Generate generate;
+
+ /* RNA integration */
+ struct ExtensionRNA ext;
+} KeyingSetInfo;
/* -------- */
+/* Add another data source for Relative Keying Sets to be evaluated with */
+void ANIM_relative_keyingset_add_source(ListBase *dsources, struct ID *id, struct StructRNA *srna, void *data);
+
+
/* mode for modify_keyframes */
typedef enum eModifyKey_Modes {
MODIFYKEY_MODE_INSERT = 0,
MODIFYKEY_MODE_DELETE,
} eModifyKey_Modes;
-/* Keyframing Helper Call - use the provided Keying Set to Add/Remove Keyframes */
-int modify_keyframes(struct Scene *scene, struct ListBase *dsources, struct bAction *act, struct KeyingSet *ks, short mode, float cfra);
+/* return codes for errors (with Relative KeyingSets) */
+typedef enum eModifyKey_Returns {
+ /* context info was invalid for using the Keying Set */
+ MODIFYKEY_INVALID_CONTEXT = -1,
+ /* there isn't any typeinfo for generating paths from context */
+ MODIFYKEY_MISSING_TYPEINFO = -2,
+} eModifyKey_Returns;
-/* -------- */
+/* use the specified KeyingSet to add/remove various Keyframes on the specified frame */
+int ANIM_apply_keyingset(struct bContext *C, ListBase *dsources, struct bAction *act, struct KeyingSet *ks, short mode, float cfra);
-/* Generate menu of KeyingSets */
-char *ANIM_build_keyingsets_menu(struct ListBase *list, short for_edit);
+/* -------- */
/* Get the first builtin KeyingSet with the given name, which occurs after the given one (or start of list if none given) */
-struct KeyingSet *ANIM_builtin_keyingset_get_named(struct KeyingSet *prevKS, char name[]);
+struct KeyingSet *ANIM_builtin_keyingset_get_named(struct KeyingSet *prevKS, const char name[]);
-/* Initialise builtin KeyingSets on startup */
-void init_builtin_keyingsets(void);
+/* Find KeyingSet type info given a name */
+KeyingSetInfo *ANIM_keyingset_info_find_named(const char name[]);
+/* for RNA type registrations... */
+void ANIM_keyingset_info_register(const struct bContext *C, KeyingSetInfo *ksi);
+void ANIM_keyingset_info_unregister(const struct bContext *C, KeyingSetInfo *ksi);
+
+/* cleanup on exit */
+void ANIM_keyingset_infos_exit(void);
/* -------- */
/* Get the active KeyingSet for the given scene */
struct KeyingSet *ANIM_scene_get_active_keyingset(struct Scene *scene);
+/* Get the index of the Keying Set provided, for the given Scene */
+int ANIM_scene_get_keyingset_index(struct Scene *scene, struct KeyingSet *ks);
+
+/* Create (and show) a menu containing all the Keying Sets which can be used in the current context */
+void ANIM_keying_sets_menu_setup(struct bContext *C, char title[], char op_name[]);
+
+/* Check if KeyingSet can be used in the current context */
+short ANIM_keyingset_context_ok_poll(struct bContext *C, struct KeyingSet *ks);
+
/* ************ Drivers ********************** */
/* Returns whether there is a driver in the copy/paste buffer to paste */
@@ -206,7 +257,7 @@ short fcurve_frame_has_keyframe(struct FCurve *fcu, float frame, short filter);
* Checks whether a keyframe exists for the given ID-block one the given frame.
* - It is recommended to call this method over the other keyframe-checkers directly,
* in case some detail of the implementation changes...
- * - frame: the value of this is quite often result of frame_to_float(CFRA)
+ * - frame: the value of this is quite often result of BKE_curframe()
*/
short id_frame_has_keyframe(struct ID *id, float frame, short filter);
diff --git a/source/blender/editors/include/ED_logic.h b/source/blender/editors/include/ED_logic.h
new file mode 100644
index 00000000000..96d10cf2c72
--- /dev/null
+++ b/source/blender/editors/include/ED_logic.h
@@ -0,0 +1,36 @@
+/**
+ * $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.
+ *
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+#ifndef ED_LOGIC_H
+#define ED_LOGIC_H
+
+/* logic_ops.c */
+void ED_operatortypes_logic(void);
+
+#endif /* ED_LOGIC_H */
+
+
+
diff --git a/source/blender/editors/include/ED_markers.h b/source/blender/editors/include/ED_markers.h
index 06434d70656..e5e1f3cef10 100644
--- a/source/blender/editors/include/ED_markers.h
+++ b/source/blender/editors/include/ED_markers.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h
index a1655065e1e..68eb8566759 100644
--- a/source/blender/editors/include/ED_mesh.h
+++ b/source/blender/editors/include/ED_mesh.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h
index b7dc9bf73b5..6e42b772bef 100644
--- a/source/blender/editors/include/ED_node.h
+++ b/source/blender/editors/include/ED_node.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -40,6 +40,7 @@ void ED_init_node_butfuncs(void);
/* node_draw.c */
void ED_node_changed_update(struct ID *id, struct bNode *node);
+void ED_node_generic_update(struct Main *bmain, struct Scene *scene, struct bNodeTree *ntree, struct bNode *node);
/* node_edit.c */
void ED_node_shader_default(struct Material *ma);
diff --git a/source/blender/editors/include/ED_numinput.h b/source/blender/editors/include/ED_numinput.h
index ca5dc4797de..7df1f1f28cb 100644
--- a/source/blender/editors/include/ED_numinput.h
+++ b/source/blender/editors/include/ED_numinput.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -27,13 +27,13 @@
typedef struct NumInput {
- short idx;
- short idx_max;
- short flag; /* Different flags to indicate different behaviors */
- char inv[3]; /* If the value is inverted or not */
- float val[3]; /* Direct value of the input */
- int ctrl[3]; /* Control to indicate what to do with the numbers that are typed */
- float increment;
+ short idx;
+ short idx_max;
+ short flag; /* Different flags to indicate different behaviors */
+ char inv[3]; /* If the value is inverted or not */
+ float val[3]; /* Direct value of the input */
+ int ctrl[3]; /* Control to indicate what to do with the numbers that are typed */
+ float increment;
} NumInput ;
/* NUMINPUT FLAGS */
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 8045f2a9130..a03cd135f1c 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -48,6 +48,9 @@ struct wmOperator;
struct wmEvent;
/* object_edit.c */
+struct Object *ED_object_active_context(struct bContext *C);
+
+/* object_ops.c */
void ED_operatortypes_object(void);
void ED_operatormacros_object(void);
void ED_keymap_object(struct wmKeyConfig *keyconf);
@@ -62,7 +65,6 @@ void ED_base_object_activate(struct bContext *C, struct Base *base);
void ED_base_object_free_and_unlink(struct Scene *scene, struct Base *base);
-void ED_object_apply_obmat(struct Object *ob);
/* single object duplicate, if dupflag==0, fully linked, else it uses the flags given */
struct Base *ED_object_add_duplicate(struct Scene *scene, struct Base *base, int dupflag);
@@ -82,11 +84,11 @@ void ED_object_enter_editmode(struct bContext *C, int flag);
void ED_object_location_from_view(struct bContext *C, float *loc);
void ED_object_rotation_from_view(struct bContext *C, float *rot);
void ED_object_base_init_transform(struct bContext *C, struct Base *base, float *loc, float *rot);
-float ED_object_new_primitive_matrix(struct bContext *C, float *loc, float *rot, float primmat[][4]);
+float ED_object_new_primitive_matrix(struct bContext *C, struct Object *editob, float *loc, float *rot, float primmat[][4]);
void ED_object_add_generic_props(struct wmOperatorType *ot, int do_editmode);
int ED_object_add_generic_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
-void ED_object_add_generic_get_opts(struct wmOperator *op, float *loc, float *rot, int *enter_editmode, unsigned int *layer);
+int ED_object_add_generic_get_opts(struct bContext *C, struct wmOperator *op, float *loc, float *rot, int *enter_editmode, unsigned int *layer);
struct Object *ED_object_add_type(struct bContext *C, int type, float *loc, float *rot, int enter_editmode, unsigned int layer);
void ED_object_single_users(struct Scene *scene, int full);
diff --git a/source/blender/editors/include/ED_physics.h b/source/blender/editors/include/ED_physics.h
index 606740d3c61..51906bf41c1 100644
--- a/source/blender/editors/include/ED_physics.h
+++ b/source/blender/editors/include/ED_physics.h
@@ -35,7 +35,7 @@ struct wmKeyConfig;
/* particle_edit.c */
int PE_poll(struct bContext *C);
int PE_hair_poll(struct bContext *C);
-int PE_poll_3dview(struct bContext *C);
+int PE_poll_view3d(struct bContext *C);
/* operators */
void ED_operatortypes_physics(void);
diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h
index a81c562bccb..f34670da471 100644
--- a/source/blender/editors/include/ED_render.h
+++ b/source/blender/editors/include/ED_render.h
@@ -78,7 +78,10 @@ void ED_preview_free_dbase(void);
void ED_preview_shader_job(const struct bContext *C, void *owner, struct ID *id, struct ID *parent, struct MTex *slot, int sizex, int sizey, int method);
void ED_preview_icon_job(const struct bContext *C, void *owner, struct ID *id, unsigned int *rect, int sizex, int sizey);
+void ED_preview_kill_jobs(const struct bContext *C);
void ED_preview_draw(const struct bContext *C, void *idp, void *parentp, void *slot, rcti *rect);
+void ED_render_clear_mtex_copybuf(void);
+
#endif
diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h
index aae354b79fa..3478447b058 100644
--- a/source/blender/editors/include/ED_screen.h
+++ b/source/blender/editors/include/ED_screen.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -55,6 +55,7 @@ void ED_region_set(const struct bContext *C, struct ARegion *ar);
void ED_region_init(struct bContext *C, struct ARegion *ar);
void ED_region_tag_redraw(struct ARegion *ar);
void ED_region_tag_redraw_partial(struct ARegion *ar, struct rcti *rct);
+void ED_region_tag_redraw_overlay(struct ARegion *ar);
void ED_region_panels_init(struct wmWindowManager *wm, struct ARegion *ar);
void ED_region_panels(const struct bContext *C, struct ARegion *ar, int vertical, char *context, int contextnr);
void ED_region_header_init(struct ARegion *ar);
@@ -97,11 +98,12 @@ void ED_screen_set_scene(struct bContext *C, struct Scene *scene);
void ED_screen_delete_scene(struct bContext *C, struct Scene *scene);
void ED_screen_set_subwinactive(struct wmWindow *win, struct wmEvent *event);
void ED_screen_exit(struct bContext *C, struct wmWindow *window, struct bScreen *screen);
-void ED_screen_animation_timer(struct bContext *C, int redraws, int sync, int enable);
-void ED_screen_animation_timer_update(struct bScreen *screen, int redraws);
+void ED_screen_animation_timer(struct bContext *C, int redraws, int refresh, int sync, int enable);
+void ED_screen_animation_timer_update(struct bScreen *screen, int redraws, int refresh);
int ED_screen_full_newspace(struct bContext *C, ScrArea *sa, int type);
void ED_screen_full_prevspace(struct bContext *C, ScrArea *sa);
void ED_screen_full_restore(struct bContext *C, ScrArea *sa);
+struct ScrArea *ED_screen_full_toggle(struct bContext *C, struct wmWindow *win, struct ScrArea *sa);
void ED_screen_new_window(struct bContext *C, struct rcti *position, int type);
diff --git a/source/blender/editors/include/ED_screen_types.h b/source/blender/editors/include/ED_screen_types.h
index 8580dcc33c9..c55dafa6f51 100644
--- a/source/blender/editors/include/ED_screen_types.h
+++ b/source/blender/editors/include/ED_screen_types.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -35,6 +35,7 @@
typedef struct ScreenAnimData {
ARegion *ar; /* do not read from this, only for comparing if region exists */
short redraws;
+ short refresh;
short flag; /* flags for playback */
int sfra; /* frame that playback was started from */
} ScreenAnimData;
diff --git a/source/blender/editors/include/ED_sculpt.h b/source/blender/editors/include/ED_sculpt.h
index 61267ef1c93..db2013fb411 100644
--- a/source/blender/editors/include/ED_sculpt.h
+++ b/source/blender/editors/include/ED_sculpt.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -38,7 +38,7 @@ struct wmWindowManager;
/* sculpt.c */
void ED_operatortypes_sculpt(void);
void sculpt_get_redraw_planes(float planes[4][4], struct ARegion *ar,
- struct RegionView3D *rv3d, struct Object *ob);
+ struct RegionView3D *rv3d, struct Object *ob);
void ED_sculpt_force_update(struct bContext *C);
/* paint_ops.c */
diff --git a/source/blender/editors/include/ED_sequencer.h b/source/blender/editors/include/ED_sequencer.h
index f996956c15d..d99187afce9 100644
--- a/source/blender/editors/include/ED_sequencer.h
+++ b/source/blender/editors/include/ED_sequencer.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_space_api.h b/source/blender/editors/include/ED_space_api.h
index 3529eddd6d9..69a3d1f758a 100644
--- a/source/blender/editors/include/ED_space_api.h
+++ b/source/blender/editors/include/ED_space_api.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_text.h b/source/blender/editors/include/ED_text.h
index 156d1030063..081e83b1844 100644
--- a/source/blender/editors/include/ED_text.h
+++ b/source/blender/editors/include/ED_text.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h
index 8267ed022e3..d8954be08c9 100644
--- a/source/blender/editors/include/ED_transform.h
+++ b/source/blender/editors/include/ED_transform.h
@@ -135,9 +135,15 @@ void BIF_selectOrientation(void);
/* to be able to add operator properties to other operators */
-void Properties_Proportional(struct wmOperatorType *ot);
-void Properties_Snapping(struct wmOperatorType *ot, short fullsnap, short align);
-void Properties_Constraints(struct wmOperatorType *ot);
+#define P_MIRROR (1 << 0)
+#define P_PROPORTIONAL (1 << 1)
+#define P_AXIS (1 << 2)
+#define P_SNAP (1 << 3)
+#define P_GEO_SNAP (P_SNAP|(1 << 4))
+#define P_ALIGN_SNAP (P_GEO_SNAP|(1 << 5))
+#define P_CONSTRAINT (1 << 6)
+
+void Transform_Properties(struct wmOperatorType *ot, int flags);
/* view3d manipulators */
diff --git a/source/blender/editors/include/ED_types.h b/source/blender/editors/include/ED_types.h
index 92de24fa33e..96a5d5857fa 100644
--- a/source/blender/editors/include/ED_types.h
+++ b/source/blender/editors/include/ED_types.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_util.h b/source/blender/editors/include/ED_util.h
index d517d05e9b0..96ad1989497 100644
--- a/source/blender/editors/include/ED_util.h
+++ b/source/blender/editors/include/ED_util.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -37,6 +37,7 @@ struct wmOperatorType;
/* ed_util.c */
+void ED_editors_init (struct bContext *C);
void ED_editors_exit (struct bContext *C);
/* ************** Undo ************************ */
diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h
index da05353e82d..65ead416971 100644
--- a/source/blender/editors/include/ED_uvedit.h
+++ b/source/blender/editors/include/ED_uvedit.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index 50d557c36fc..ae670350a56 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,28 +30,33 @@
/* ********* exports for space_view3d/ module ********** */
struct ARegion;
-struct BoundBox;
-struct View3D;
-struct RegionView3D;
-struct ViewContext;
+struct bContext;
+struct BezTriple;
struct bglMats;
+struct BoundBox;
struct BPoint;
struct Nurb;
struct BezTriple;
struct BMVert;
struct BMEdge;
struct BMFace;
+struct EditVert;
struct ImBuf;
-struct Scene;
-struct bContext;
struct Main;
+struct Nurb;
+struct Object;
struct rcti;
+struct RegionView3D;
+struct Scene;
+struct View3D;
+struct ViewContext;
+
/* for derivedmesh drawing callbacks, for view3d_select, .... */
typedef struct ViewContext {
Scene *scene;
- Object *obact;
- Object *obedit;
+ struct Object *obact;
+ struct Object *obedit;
struct ARegion *ar;
struct View3D *v3d;
struct RegionView3D *rv3d;
@@ -98,6 +103,7 @@ void viewvector(struct RegionView3D *rv3d, float coord[3], float vec[3]);
void viewline(struct ARegion *ar, struct View3D *v3d, float mval[2], float ray_start[3], float ray_end[3]);
void viewray(struct ARegion *ar, struct View3D *v3d, float mval[2], float ray_start[3], float ray_normal[3]);
+int get_view3d_cliprange(struct View3D *v3d, struct RegionView3D *rv3d, float *clipsta, float *clipend);
int get_view3d_viewplane(struct View3D *v3d, struct RegionView3D *rv3d, int winxi, int winyi, rctf *viewplane, float *clipsta, float *clipend, float *pixsize);
int get_view3d_ortho(struct View3D *v3d, struct RegionView3D *rv3d);
void view3d_get_object_project_mat(struct RegionView3D *v3d, struct Object *ob, float pmat[4][4]);
@@ -150,13 +156,15 @@ struct RegionView3D *ED_view3d_context_rv3d(struct bContext *C);
void ED_view3d_init_mats_rv3d(struct Object *ob, struct RegionView3D *rv3d);
-void ED_view3d_scene_layers_update(struct Main *bmain, struct Scene *scene);
-int ED_view3d_scene_layer_set(int lay, const int *values);
+int ED_view3d_scene_layer_set(int lay, const int *values, int *active);
int ED_view3d_context_activate(struct bContext *C);
void ED_view3d_draw_offscreen(struct Scene *scene, struct View3D *v3d, struct ARegion *ar,
int winx, int winy, float viewmat[][4], float winmat[][4]);
+struct ImBuf *ED_view3d_draw_offscreen_imbuf(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, int sizex, int sizey);
+struct ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Scene *scene, int width, int height, int drawtype);
+
void view3d_clipping_local(struct RegionView3D *rv3d, float mat[][4]);
Base *ED_view3d_give_base_under_cursor(struct bContext *C, short *mval);
diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h
index 7b84c7054b0..fd459def112 100644
--- a/source/blender/editors/include/UI_icons.h
+++ b/source/blender/editors/include/UI_icons.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -107,7 +107,7 @@ DEF_ICON(ICON_NEW)
DEF_ICON(ICON_FILE_TICK)
DEF_ICON(ICON_QUIT)
DEF_ICON(ICON_URL)
-DEF_ICON(ICON_BLANK037)
+DEF_ICON(ICON_RECOVER_LAST)
DEF_ICON(ICON_BLANK038)
DEF_ICON(ICON_FULLSCREEN_ENTER)
DEF_ICON(ICON_FULLSCREEN_EXIT)
@@ -540,7 +540,7 @@ DEF_ICON(ICON_MOD_FLUIDSIM)
DEF_ICON(ICON_MOD_MULTIRES)
DEF_ICON(ICON_MOD_SMOKE)
DEF_ICON(ICON_MOD_SOLIDIFY)
-DEF_ICON(ICON_BLANK159)
+DEF_ICON(ICON_MOD_SCREW)
DEF_ICON(ICON_BLANK160)
DEF_ICON(ICON_BLANK161)
DEF_ICON(ICON_BLANK162)
@@ -571,7 +571,7 @@ DEF_ICON(ICON_PREV_KEYFRAME)
DEF_ICON(ICON_NEXT_KEYFRAME)
DEF_ICON(ICON_PLAY_AUDIO)
DEF_ICON(ICON_PLAY_REVERSE)
-DEF_ICON(ICON_BLANK179)
+DEF_ICON(ICON_PREVIEW_RANGE)
DEF_ICON(ICON_BLANK180)
DEF_ICON(ICON_PMARKER_ACT)
DEF_ICON(ICON_PMARKER_SEL)
@@ -682,7 +682,7 @@ DEF_ICON(ICON_BLANK227)
DEF_ICON(ICON_BLANK228)
DEF_ICON(ICON_BLANK229)
DEF_ICON(ICON_BLANK230)
-DEF_ICON(ICON_BLANK231)
+DEF_ICON(ICON_SNAP_SURFACE)
DEF_ICON(ICON_BLANK232)
DEF_ICON(ICON_BLANK233)
DEF_ICON(ICON_RETOPO)
@@ -847,7 +847,7 @@ DEF_ICON(ICON_SEQ_PREVIEW)
DEF_ICON(ICON_SEQ_LUMA_WAVEFORM)
DEF_ICON(ICON_SEQ_CHROMA_SCOPE)
DEF_ICON(ICON_SEQ_HISTOGRAM)
-DEF_ICON(ICON_BLANK330)
+DEF_ICON(ICON_SEQ_SPLITVIEW)
DEF_ICON(ICON_BLANK331)
DEF_ICON(ICON_BLANK332)
DEF_ICON(ICON_BLANK333)
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 5c6ac272c53..4b6b396483d 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -142,7 +142,7 @@ typedef struct uiLayout uiLayout;
#define UI_BUT_ALIGN_DOWN (1<<17)
#define UI_BUT_DISABLED (1<<18)
-#define UI_BUT_UNUSED (1<<19)
+#define UI_BUT_COLOR_LOCK (1<<19)
#define UI_BUT_ANIMATED (1<<20)
#define UI_BUT_ANIMATED_KEY (1<<21)
#define UI_BUT_DRIVEN (1<<22)
@@ -152,6 +152,9 @@ typedef struct uiLayout uiLayout;
#define UI_BUT_IMMEDIATE (1<<26)
#define UI_BUT_NO_TOOLTIP (1<<27)
+#define UI_BUT_VEC_SIZE_LOCK (1<<28) /* used to flag if color hsv-circle should keep luminance */
+#define UI_BUT_COLOR_CUBIC (1<<29) /* cubic saturation for the color wheel */
+
#define UI_PANEL_WIDTH 340
#define UI_COMPACT_PANEL_WIDTH 160
@@ -218,6 +221,9 @@ typedef struct uiLayout uiLayout;
#define HOTKEYEVT (45<<9)
#define BUT_IMAGE (46<<9)
#define HISTOGRAM (47<<9)
+#define WAVEFORM (48<<9)
+#define VECTORSCOPE (49<<9)
+#define PROGRESSBAR (50<<9)
#define BUTTYPE (63<<9)
@@ -245,8 +251,9 @@ void uiDrawMenuBox(float minx, float miny, float maxx, float maxy, short flag, s
void uiDrawBoxShadow(unsigned char alpha, float minx, float miny, float maxx, float maxy);
/* state for scrolldrawing */
-#define UI_SCROLL_PRESSED 1
-#define UI_SCROLL_ARROWS 2
+#define UI_SCROLL_PRESSED 1
+#define UI_SCROLL_ARROWS 2
+#define UI_SCROLL_NO_OUTLINE 4
void uiWidgetScrollDraw(struct uiWidgetColors *wcol, struct rcti *rect, struct rcti *slider, int state);
/* Menu Callbacks */
@@ -662,63 +669,65 @@ uiBlock *uiLayoutAbsoluteBlock(uiLayout *layout);
void uiTemplateHeader(uiLayout *layout, struct bContext *C, int menus);
void uiTemplateDopeSheetFilter(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr);
void uiTemplateID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
- char *newop, char *openop, char *unlinkop);
+ char *newop, char *openop, char *unlinkop, char *filterop);
void uiTemplateIDBrowse(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
- char *newop, char *openop, char *unlinkop);
+ char *newop, char *openop, char *unlinkop, char *filterop);
void uiTemplateIDPreview(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
- char *newop, char *openop, char *unlinkop, int rows, int cols);
+ char *newop, char *openop, char *unlinkop, char *filterop, int rows, int cols);
void uiTemplateAnyID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
char *proptypename, char *text);
void uiTemplatePathBuilder(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
struct PointerRNA *root_ptr, char *text);
uiLayout *uiTemplateModifier(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, int compact);
-uiLayout *uiTemplateConstraint(uiLayout *layout, struct PointerRNA *ptr);
+uiLayout *uiTemplateConstraint(uiLayout *layout, struct PointerRNA *ptr, int compact);
void uiTemplatePreview(uiLayout *layout, struct ID *id, struct ID *parent, struct MTex *slot);
void uiTemplateColorRamp(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
void uiTemplateHistogram(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
+void uiTemplateWaveform(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
+void uiTemplateVectorscope(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, char *propname, int type, int levels, int brush);
-void uiTemplateColorWheel(uiLayout *layout, struct PointerRNA *ptr, char *propname, int value_slider, int lock);
+void uiTemplateColorWheel(uiLayout *layout, struct PointerRNA *ptr, char *propname, int value_slider, int lock, int lock_luminosity, int cubic);
void uiTemplateTriColorSet(uiLayout *layout, struct PointerRNA *ptr, char *propname);
void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, char *propname,
- PointerRNA *used_ptr, char *used_propname, int active_layer);
+ PointerRNA *used_ptr, char *used_propname, int active_layer);
void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *userptr, int compact);
void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image *ima, struct ImageUser *iuser);
void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C);
void uiTemplateOperatorSearch(uiLayout *layout);
void uiTemplateHeader3D(uiLayout *layout, struct bContext *C);
void uiTemplateTextureImage(uiLayout *layout, struct bContext *C, struct Tex *tex);
-void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C, struct wmOperator *op);
+void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C);
void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *activeptr, char *activeprop, int rows, int maxrows, int type);
/* items */
void uiItemO(uiLayout *layout, char *name, int icon, char *opname);
-void uiItemEnumO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value);
+void uiItemEnumO(uiLayout *layout, char *opname, char *name, int icon, char *propname, int value);
void uiItemEnumO_string(uiLayout *layout, char *name, int icon, char *opname, char *propname, char *value);
void uiItemsEnumO(uiLayout *layout, char *opname, char *propname);
void uiItemBooleanO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value);
void uiItemIntO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value);
void uiItemFloatO(uiLayout *layout, char *name, int icon, char *opname, char *propname, float value);
void uiItemStringO(uiLayout *layout, char *name, int icon, char *opname, char *propname, char *value);
-PointerRNA uiItemFullO(uiLayout *layout, char *name, int icon, char *idname, struct IDProperty *properties, int context, int flag);
+PointerRNA uiItemFullO(uiLayout *layout, char *idname, char *name, int icon, struct IDProperty *properties, int context, int flag);
-void uiItemR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, int flag);
-void uiItemFullR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, int value, int flag);
+void uiItemR(uiLayout *layout, struct PointerRNA *ptr, char *propname, int flag, char *name, int icon);
+void uiItemFullR(uiLayout *layout, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, int value, int flag, char *name, int icon);
void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, int value);
-void uiItemEnumR_string(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, char *value);
+void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, char *propname, char *value, char *name, int icon);
void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname);
-void uiItemPointerR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, struct PointerRNA *searchptr, char *searchpropname);
+void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, char *propname, struct PointerRNA *searchptr, char *searchpropname, char *name, int icon);
void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, struct IDProperty *properties, int context, int flag);
void uiItemL(uiLayout *layout, char *name, int icon); /* label */
void uiItemLDrag(uiLayout *layout, struct PointerRNA *ptr, char *name, int icon); /* label icon for dragging */
-void uiItemM(uiLayout *layout, struct bContext *C, char *name, int icon, char *menuname); /* menu */
+void uiItemM(uiLayout *layout, struct bContext *C, char *menuname, char *name, int icon); /* menu */
void uiItemV(uiLayout *layout, char *name, int icon, int argval); /* value */
void uiItemS(uiLayout *layout); /* separator */
void uiItemMenuF(uiLayout *layout, char *name, int icon, uiMenuCreateFunc func, void *arg);
-void uiItemMenuEnumO(uiLayout *layout, char *name, int icon, char *opname, char *propname);
-void uiItemMenuEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname);
+void uiItemMenuEnumO(uiLayout *layout, char *opname, char *propname, char *name, int icon);
+void uiItemMenuEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname, char *name, int icon);
/* UI Operators */
void UI_buttons_operatortypes(void);
diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h
index 9ec64155b43..3b76520c4bf 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -49,12 +49,12 @@ typedef enum {
typedef enum {
#define BIFCOLORSHADE_FIRST (COLORSHADE_DARK)
- COLORSHADE_DARK,
- COLORSHADE_GREY,
- COLORSHADE_MEDIUM,
- COLORSHADE_HILITE,
- COLORSHADE_LIGHT,
- COLORSHADE_WHITE
+ COLORSHADE_DARK,
+ COLORSHADE_GREY,
+ COLORSHADE_MEDIUM,
+ COLORSHADE_HILITE,
+ COLORSHADE_LIGHT,
+ COLORSHADE_WHITE
#define BIFCOLORSHADE_LAST (COLORSHADE_WHITE)
#define BIFNCOLORSHADES (BIFCOLORSHADE_LAST-BIFCOLORSHADE_FIRST + 1)
} BIFColorShade;
@@ -164,6 +164,23 @@ enum {
TH_FACE_DOT,
TH_FACEDOT_SIZE,
TH_CFRAME,
+ TH_NURB_ULINE,
+ TH_NURB_VLINE,
+ TH_NURB_SEL_ULINE,
+ TH_NURB_SEL_VLINE,
+
+ /* this eight colors should be in one block */
+ TH_HANDLE_FREE,
+ TH_HANDLE_AUTO,
+ TH_HANDLE_VECT,
+ TH_HANDLE_ALIGN,
+ TH_HANDLE_SEL_FREE,
+ TH_HANDLE_SEL_AUTO,
+ TH_HANDLE_SEL_VECT,
+ TH_HANDLE_SEL_ALIGN,
+
+ TH_ACTIVE_SPLINE,
+ TH_LASTSEL_POINT,
TH_SYNTAX_B,
TH_SYNTAX_V,
@@ -214,6 +231,8 @@ enum {
TH_PIN_OPAC,
TH_PREVIEW_BACK,
+
+ TH_EDGE_CREASE,
};
/* XXX WARNING: previous is saved in file, so do not change order! */
@@ -264,6 +283,9 @@ void UI_ColorPtrBlendShade3ubv(char *cp1, char *cp2, float fac, int offset);
// get a 3 byte color, blended and shaded between two other char color pointers
void UI_GetColorPtrBlendShade3ubv(char *cp1, char *cp2, char *col, float fac, int offset);
+// clear the openGL ClearColor using the input colorid
+void UI_ThemeClearColor(int colorid);
+
// internal (blender) usage only, for init and set active
void UI_SetTheme(int spacetype, int regionid);
diff --git a/source/blender/editors/include/UI_view2d.h b/source/blender/editors/include/UI_view2d.h
index 38c2780608f..bf4a3de9cc6 100644
--- a/source/blender/editors/include/UI_view2d.h
+++ b/source/blender/editors/include/UI_view2d.h
@@ -164,6 +164,7 @@ void UI_view2d_view_restore(const struct bContext *C);
View2DGrid *UI_view2d_grid_calc(const struct bContext *C, struct View2D *v2d, short xunits, short xclamp, short yunits, short yclamp, int winx, int winy);
void UI_view2d_grid_draw(const struct bContext *C, struct View2D *v2d, View2DGrid *grid, int flag);
void UI_view2d_constant_grid_draw(const struct bContext *C, struct View2D *v2d);
+void UI_view2d_grid_size(View2DGrid *grid, float *r_dx, float *r_dy);
void UI_view2d_grid_free(View2DGrid *grid);
/* scrollbar drawing */
diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt
new file mode 100644
index 00000000000..4b4590aeee5
--- /dev/null
+++ b/source/blender/editors/interface/CMakeLists.txt
@@ -0,0 +1,46 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenfont
+ ../../blenkernel
+ ../../blenlib
+ ../../gpu
+ ../../imbuf
+ ../../makesdna
+ ../../makesrna
+ ../../python
+ ../../windowmanager
+ ../../../../intern/guardedalloc
+)
+
+IF(WITH_INTERNATIONAL)
+ ADD_DEFINITIONS(-DINTERNATIONAL)
+ENDIF(WITH_INTERNATIONAL)
+
+IF(NOT WITH_PYTHON)
+ ADD_DEFINITIONS(-DDISABLE_PYTHON)
+ENDIF(NOT WITH_PYTHON)
+
+BLENDERLIB(bf_editor_interface "${SRC}" "${INC}")
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index ea7e89f5102..3f0cd3bee78 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -32,11 +32,8 @@
#include "MEM_guardedalloc.h"
-#include "DNA_ID.h"
-#include "DNA_listBase.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
#include "DNA_userdef_types.h"
#include "BLI_math.h"
@@ -58,7 +55,6 @@
#include "UI_interface.h"
-#include "ED_screen.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -66,7 +62,6 @@
#include "wm_window.h"
#include "RNA_access.h"
-#include "RNA_types.h"
#include "BPY_extern.h"
@@ -235,7 +230,7 @@ static void ui_text_bounds_block(uiBlock *block, float offset)
//int transopts= ui_translate_buttons();
//if(bt->type==TEX || bt->type==IDPOIN) transopts= 0;
- j= BLF_width(bt->drawstr);
+ j= BLF_width(style->widget.uifont_id, bt->drawstr);
if(j > i) i = j;
}
@@ -289,7 +284,7 @@ void ui_bounds_block(uiBlock *block)
if(bt->x1 < block->minx) block->minx= bt->x1;
if(bt->y1 < block->miny) block->miny= bt->y1;
- if(bt->x2 > block->maxx) block->maxx= bt->x2;
+ if(bt->x2 > block->maxx) block->maxx= bt->x2;
if(bt->y2 > block->maxy) block->maxy= bt->y2;
bt= bt->next;
@@ -373,9 +368,9 @@ static void ui_popup_bounds_block(const bContext *C, uiBlock *block, int bounds_
width= block->maxx - block->minx;
height= block->maxy - block->miny;
- /* avoid divide by zero below, caused by calling with no UI, but better not crash */
- oldwidth= oldwidth > 0 ? oldwidth : MAX2(1, width);
- oldheight= oldheight > 0 ? oldheight : MAX2(1, height);
+ /* avoid divide by zero below, caused by calling with no UI, but better not crash */
+ oldwidth= oldwidth > 0 ? oldwidth : MAX2(1, width);
+ oldheight= oldheight > 0 ? oldheight : MAX2(1, height);
/* offset block based on mouse position, user offset is scaled
along in case we resized the block in ui_text_bounds_block */
@@ -648,10 +643,6 @@ void uiEndBlock(const bContext *C, uiBlock *block)
CTX_store_set((bContext*)C, NULL);
}
- /* only update soft range while not editing */
- if(but->rnaprop && !(but->editval || but->editstr || but->editvec))
- ui_set_but_soft_range(but, ui_get_but_val(but));
-
ui_but_anim_flag(but, (scene)? scene->r.cfra: 0.0f);
}
@@ -1189,12 +1180,12 @@ void ui_get_but_vectorf(uiBut *but, float *vec)
float *fp= (float *)but->poin;
VECCOPY(vec, fp);
}
- else {
- if (but->editvec==NULL) {
- fprintf(stderr, "ui_get_but_vectorf: can't get color, should never happen\n");
- vec[0]= vec[1]= vec[2]= 0.0f;
- }
- }
+ else {
+ if (but->editvec==NULL) {
+ fprintf(stderr, "ui_get_but_vectorf: can't get color, should never happen\n");
+ vec[0]= vec[1]= vec[2]= 0.0f;
+ }
+ }
}
/* for buttons pointing to color for example */
@@ -1603,7 +1594,7 @@ int ui_set_but_string(bContext *C, uiBut *but, const char *str)
}
else if(but->type == IDPOIN) {
/* ID pointer */
- but->idpoin_func(C, (char*)str, but->idpoin_idpp);
+ but->idpoin_func(C, (char*)str, but->idpoin_idpp);
return 1;
}
else if(but->type == TEX) {
@@ -1642,7 +1633,7 @@ int ui_set_but_string(bContext *C, uiBut *but, const char *str)
bUnit_ReplaceString(str_unit_convert, sizeof(str_unit_convert), but->drawstr, ui_get_but_scale_unit(but, 1.0), scene->unit.system, unit_type);
}
- if(BPY_button_eval(C, str_unit_convert, &value)) {
+ if(BPY_eval_button(C, str_unit_convert, &value)) {
value = ui_get_but_val(but); /* use its original value */
if(str[0])
@@ -1940,6 +1931,10 @@ void ui_check_but(uiBut *but)
// if(but->type==TEX || but->type==IDPOIN) transopts= 0;
+ /* only update soft range while not editing */
+ if(but->rnaprop && !(but->editval || but->editstr || but->editvec))
+ ui_set_but_soft_range(but, ui_get_but_val(but));
+
/* test for min and max, icon sliders, etc */
switch( but->type ) {
case NUM:
@@ -2308,7 +2303,7 @@ ui_def_but is the function that draws many button types
for float buttons:
"a1" Click Step (how much to change the value each click)
"a2" Number of decimal point values to display. 0 defaults to 3 (0.000) 1,2,3, and a maximum of 4,
- all greater values will be clamped to 4.
+ all greater values will be clamped to 4.
*/
static uiBut *ui_def_but(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, char *tip)
@@ -2381,7 +2376,7 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, char *str, short
}
}
- if((block->flag & UI_BLOCK_LOOP) || ELEM7(but->type, MENU, TEX, LABEL, IDPOIN, BLOCK, BUTM, SEARCH_MENU))
+ if((block->flag & UI_BLOCK_LOOP) || ELEM8(but->type, MENU, TEX, LABEL, IDPOIN, BLOCK, BUTM, SEARCH_MENU, PROGRESSBAR))
but->flag |= (UI_TEXT_LEFT|UI_ICON_LEFT);
else if(but->type==BUT_TOGDUAL)
but->flag |= UI_ICON_LEFT;
@@ -2698,7 +2693,7 @@ void autocomplete_end(AutoComplete *autocpl, char *autoname)
static void autocomplete_id(bContext *C, char *str, void *arg_v)
{
int blocktype= (intptr_t)arg_v;
- ListBase *listb= wich_libbase(CTX_data_main(C), blocktype);
+ ListBase *listb= which_libbase(CTX_data_main(C), blocktype);
if(listb==NULL) return;
@@ -3332,9 +3327,6 @@ void UI_init_userdef(void)
{
/* fix saved themes */
init_userdef_do_versions();
- /* set default colors in default theme */
- ui_theme_init_userdef();
-
uiStyleInit();
}
diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c
index 6a7f2b2fcb7..4108e1c8532 100644
--- a/source/blender/editors/interface/interface_anim.c
+++ b/source/blender/editors/interface/interface_anim.c
@@ -16,8 +16,6 @@
#include "BKE_context.h"
#include "BKE_fcurve.h"
-#include "RNA_access.h"
-#include "RNA_types.h"
#include "ED_keyframing.h"
@@ -113,7 +111,7 @@ void ui_but_anim_autokey(bContext *C, uiBut *but, Scene *scene, float cfra)
fcu->flag &= ~FCURVE_SELECTED;
insert_keyframe(id, action, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
}
}
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index aaf9ba6e214..0dd333dc387 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -29,15 +29,13 @@
#include <string.h>
#include "DNA_color_types.h"
-#include "DNA_listBase.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_userdef_types.h"
#include "BLI_math.h"
#include "BKE_colortools.h"
+#include "BKE_global.h"
#include "BKE_texture.h"
#include "BKE_utildefines.h"
@@ -47,8 +45,9 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
+#include "BLF_api.h"
+
#include "UI_interface.h"
-#include "UI_interface_icons.h"
#include "interface_intern.h"
@@ -81,7 +80,7 @@ int uiGetRoundBox(void)
void gl_round_box(int mode, float minx, float miny, float maxx, float maxy, float rad)
{
float vec[7][2]= {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293},
- {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
+ {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
int a;
/* mult */
@@ -151,7 +150,7 @@ static void round_box_shade_col(float *col1, float *col2, float fac)
void gl_round_box_shade(int mode, float minx, float miny, float maxx, float maxy, float rad, float shadetop, float shadedown)
{
float vec[7][2]= {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293},
- {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
+ {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
float div= maxy-miny;
float coltop[3], coldown[3], color[4];
int a;
@@ -258,7 +257,7 @@ void gl_round_box_shade(int mode, float minx, float miny, float maxx, float maxy
void gl_round_box_vertical_shade(int mode, float minx, float miny, float maxx, float maxy, float rad, float shadeLeft, float shadeRight)
{
float vec[7][2]= {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 0.293},
- {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
+ {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
float div= maxx-minx;
float colLeft[3], colRight[3], color[4];
int a;
@@ -470,7 +469,7 @@ void ui_draw_but_IMAGE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
//int w, h;
/* hardcoded to splash, loading and freeing every draw, eek! */
- ibuf= IMB_ibImageFromMemory((int *)datatoc_splash_png, datatoc_splash_png_size, IB_rect);
+ ibuf= IMB_ibImageFromMemory((unsigned char*)datatoc_splash_png, datatoc_splash_png_size, IB_rect);
if (!ibuf) return;
@@ -565,7 +564,7 @@ static void ui_draw_but_CHARTAB(uiBut *but)
int err;
strcpy(tmpStr, G.selfont->name);
- BLI_convertstringcode(tmpStr, G.sce);
+ BLI_path_abs(tmpStr, G.sce);
err = FTF_SetFont((unsigned char *)tmpStr, 0, 14.0);
}
}
@@ -689,6 +688,64 @@ static void ui_draw_but_CHARTAB(uiBut *but)
#endif // INTERNATIONAL
#endif
+static void draw_scope_end(rctf *rect, GLint *scissor)
+{
+ float scaler_x1, scaler_x2;
+
+ /* restore scissortest */
+ glScissor(scissor[0], scissor[1], scissor[2], scissor[3]);
+
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+
+ /* scale widget */
+ scaler_x1 = rect->xmin + (rect->xmax - rect->xmin)/2 - SCOPE_RESIZE_PAD;
+ scaler_x2 = rect->xmin + (rect->xmax - rect->xmin)/2 + SCOPE_RESIZE_PAD;
+
+ glColor4f(0.f, 0.f, 0.f, 0.25f);
+ fdrawline(scaler_x1, rect->ymin-4, scaler_x2, rect->ymin-4);
+ fdrawline(scaler_x1, rect->ymin-7, scaler_x2, rect->ymin-7);
+ glColor4f(1.f, 1.f, 1.f, 0.25f);
+ fdrawline(scaler_x1, rect->ymin-5, scaler_x2, rect->ymin-5);
+ fdrawline(scaler_x1, rect->ymin-8, scaler_x2, rect->ymin-8);
+
+ /* outline */
+ glColor4f(0.f, 0.f, 0.f, 0.5f);
+ uiSetRoundBox(15);
+ gl_round_box(GL_LINE_LOOP, rect->xmin-1, rect->ymin, rect->xmax+1, rect->ymax+1, 3.0f);
+}
+
+void histogram_draw_one(float r, float g, float b, float alpha, float x, float y, float w, float h, float *data, int res)
+{
+ int i;
+
+ /* under the curve */
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+ glColor4f(r, g, b, alpha);
+
+ glShadeModel(GL_FLAT);
+ glBegin(GL_QUAD_STRIP);
+ glVertex2f(x, y);
+ glVertex2f(x, y + (data[0]*h));
+ for (i=1; i < res; i++) {
+ float x2 = x + i * (w/(float)res);
+ glVertex2f(x2, y + (data[i]*h));
+ glVertex2f(x2, y);
+ }
+ glEnd();
+
+ /* curve outline */
+ glColor4f(0.f, 0.f, 0.f, 0.25f);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_LINE_SMOOTH);
+ glBegin(GL_LINE_STRIP);
+ for (i=0; i < res; i++) {
+ float x2 = x + i * (w/(float)res);
+ glVertex2f(x2, y + (data[i]*h));
+ }
+ glEnd();
+ glDisable(GL_LINE_SMOOTH);
+}
void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *recti)
{
@@ -696,21 +753,19 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *
int res = hist->x_resolution;
rctf rect;
int i;
- int rgb;
float w, h;
- float alpha;
+ //float alpha;
GLint scissor[4];
if (hist==NULL) { printf("hist is null \n"); return; }
- rect.xmin = (float)recti->xmin;
- rect.xmax = (float)recti->xmax;
- rect.ymin = (float)recti->ymin;
- rect.ymax = (float)recti->ymax;
+ rect.xmin = (float)recti->xmin+1;
+ rect.xmax = (float)recti->xmax-1;
+ rect.ymin = (float)recti->ymin+SCOPE_RESIZE_PAD+2;
+ rect.ymax = (float)recti->ymax-1;
w = rect.xmax - rect.xmin;
- h = rect.ymax - rect.ymin;
- h *= hist->ymax;
+ h = (rect.ymax - rect.ymin) * hist->ymax;
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
@@ -729,56 +784,327 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *
/* need scissor test, histogram can draw outside of boundary */
glGetIntegerv(GL_VIEWPORT, scissor);
glScissor(ar->winrct.xmin + (rect.xmin-1), ar->winrct.ymin+(rect.ymin-1), (rect.xmax+1)-(rect.xmin-1), (rect.ymax+1)-(rect.ymin-1));
-
- for (rgb=0; rgb<3; rgb++) {
- float *data = NULL;
-
- if (rgb==0) data = hist->data_r;
- else if (rgb==1) data = hist->data_g;
- else if (rgb==2) data = hist->data_b;
-
- glBlendFunc(GL_SRC_ALPHA, GL_ONE);
- alpha = 0.75;
- if (rgb==0) glColor4f(1.f, 0.f, 0.f, alpha);
- else if (rgb==1) glColor4f(0.f, 1.f, 0.f, alpha);
- else if (rgb==2) glColor4f(0.f, 0.f, 1.f, alpha);
-
- glShadeModel(GL_FLAT);
- glBegin(GL_QUAD_STRIP);
- glVertex2f(rect.xmin, rect.ymin);
- glVertex2f(rect.xmin, rect.ymin + (data[0]*h));
- for (i=1; i < res; i++) {
- float x = rect.xmin + i * (w/(float)res);
- glVertex2f(x, rect.ymin + (data[i]*h));
- glVertex2f(x, rect.ymin);
+
+ if (hist->mode == HISTO_MODE_LUMA)
+ histogram_draw_one(1.0, 1.0, 1.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_luma, res);
+ else {
+ if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_R)
+ histogram_draw_one(1.0, 0.0, 0.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_r, res);
+ if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_G)
+ histogram_draw_one(0.0, 1.0, 0.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_g, res);
+ if (hist->mode == HISTO_MODE_RGB || hist->mode == HISTO_MODE_B)
+ histogram_draw_one(0.0, 0.0, 1.0, 0.75, rect.xmin, rect.ymin, w, h, hist->data_b, res);
+ }
+
+ /* outline, scale gripper */
+ draw_scope_end(&rect, scissor);
+}
+
+void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *recti)
+{
+ Scopes *scopes = (Scopes *)but->poin;
+ rctf rect;
+ int i, c;
+ float w, w3, h, alpha, yofs;
+ GLint scissor[4];
+ float colors[3][3] = {{1,0,0},{0,1,0},{0,0,1}};
+ float colorsycc[3][3] = {{1,0,1},{1,1,0},{0,1,1}};
+ float colors_alpha[3][3], colorsycc_alpha[3][3]; /* colors pre multiplied by alpha for speed up */
+ float min, max;
+
+ if (scopes==NULL) return;
+
+ rect.xmin = (float)recti->xmin+1;
+ rect.xmax = (float)recti->xmax-1;
+ rect.ymin = (float)recti->ymin+SCOPE_RESIZE_PAD+2;
+ rect.ymax = (float)recti->ymax-1;
+
+ if (scopes->wavefrm_yfac < 0.5f )
+ scopes->wavefrm_yfac =0.98f;
+ w = rect.xmax - rect.xmin-7;
+ h = (rect.ymax - rect.ymin)*scopes->wavefrm_yfac;
+ yofs= rect.ymin + (rect.ymax - rect.ymin -h)/2.0f;
+ w3=w/3.0f;
+
+ /* log scale for alpha */
+ alpha = scopes->wavefrm_alpha*scopes->wavefrm_alpha;
+
+ for(c=0; c<3; c++) {
+ for(i=0; i<3; i++) {
+ colors_alpha[c][i] = colors[c][i] * alpha;
+ colorsycc_alpha[c][i] = colorsycc[c][i] * alpha;
}
- glEnd();
-
- glColor4f(0.f, 0.f, 0.f, 0.25f);
+ }
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+
+ glColor4f(0.f, 0.f, 0.f, 0.3f);
+ uiSetRoundBox(15);
+ gl_round_box(GL_POLYGON, rect.xmin-1, rect.ymin-1, rect.xmax+1, rect.ymax+1, 3.0f);
+
+
+ /* need scissor test, waveform can draw outside of boundary */
+ glGetIntegerv(GL_VIEWPORT, scissor);
+ glScissor(ar->winrct.xmin + (rect.xmin-1), ar->winrct.ymin+(rect.ymin-1), (rect.xmax+1)-(rect.xmin-1), (rect.ymax+1)-(rect.ymin-1));
+
+ glColor4f(1.f, 1.f, 1.f, 0.08f);
+ /* draw grid lines here */
+ for (i=0; i<6; i++) {
+ char str[4];
+ sprintf(str,"%-3d",i*20);
+ str[3]='\0';
+ fdrawline(rect.xmin+22, yofs+(i/5.f)*h, rect.xmax+1, yofs+(i/5.f)*h);
+ BLF_draw_default(rect.xmin+1, yofs-5+(i/5.f)*h, 0, str);
+ /* in the loop because blf_draw reset it */
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+ }
+ /* 3 vertical separation */
+ if (scopes->wavefrm_mode!= SCOPES_WAVEFRM_LUMA) {
+ for (i=1; i<3; i++) {
+ fdrawline(rect.xmin+i*w3, rect.ymin, rect.xmin+i*w3, rect.ymax);
+ }
+ }
+
+ /* separate min max zone on the right */
+ fdrawline(rect.xmin+w, rect.ymin, rect.xmin+w, rect.ymax);
+ /* 16-235-240 level in case of ITU-R BT601/709 */
+ glColor4f(1.f, 0.4f, 0.f, 0.2f);
+ if (ELEM(scopes->wavefrm_mode, SCOPES_WAVEFRM_YCC_601, SCOPES_WAVEFRM_YCC_709)){
+ fdrawline(rect.xmin+22, yofs+h*16.0f/255.0f, rect.xmax+1, yofs+h*16.0f/255.0f);
+ fdrawline(rect.xmin+22, yofs+h*235.0f/255.0f, rect.xmin+w3, yofs+h*235.0f/255.0f);
+ fdrawline(rect.xmin+3*w3, yofs+h*235.0f/255.0f, rect.xmax+1, yofs+h*235.0f/255.0f);
+ fdrawline(rect.xmin+w3, yofs+h*240.0f/255.0f, rect.xmax+1, yofs+h*240.0f/255.0f);
+ }
+ /* 7.5 IRE black point level for NTSC */
+ if (scopes->wavefrm_mode== SCOPES_WAVEFRM_LUMA)
+ fdrawline(rect.xmin, yofs+h*0.075f, rect.xmax+1, yofs+h*0.075f);
+
+ if (scopes->ok && scopes->waveform_1 != NULL) {
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glEnable(GL_LINE_SMOOTH);
- glBegin(GL_LINE_STRIP);
- for (i=0; i < res; i++) {
- float x = rect.xmin + i * (w/(float)res);
- glVertex2f(x, rect.ymin + (data[i]*h));
+ /* LUMA (1 channel) */
+ glBlendFunc(GL_ONE,GL_ONE);
+ glColor3f(alpha, alpha, alpha);
+ if (scopes->wavefrm_mode == SCOPES_WAVEFRM_LUMA){
+
+ glBlendFunc(GL_ONE,GL_ONE);
+
+ glPushMatrix();
+ glEnableClientState(GL_VERTEX_ARRAY);
+
+ glTranslatef(rect.xmin, yofs, 0.f);
+ glScalef(w, h, 0.f);
+ glVertexPointer(2, GL_FLOAT, 0, scopes->waveform_1);
+ glDrawArrays(GL_POINTS, 0, scopes->waveform_tot);
+
+ glDisableClientState(GL_VERTEX_ARRAY);
+ glPopMatrix();
+
+ /* min max */
+ glColor3f(.5f, .5f, .5f);
+ min= yofs+scopes->minmax[0][0]*h;
+ max= yofs+scopes->minmax[0][1]*h;
+ CLAMP(min, rect.ymin, rect.ymax);
+ CLAMP(max, rect.ymin, rect.ymax);
+ fdrawline(rect.xmax-3,min,rect.xmax-3,max);
}
- glEnd();
- glDisable(GL_LINE_SMOOTH);
+
+ /* RGB / YCC (3 channels) */
+ else if (ELEM4(scopes->wavefrm_mode, SCOPES_WAVEFRM_RGB, SCOPES_WAVEFRM_YCC_601, SCOPES_WAVEFRM_YCC_709, SCOPES_WAVEFRM_YCC_JPEG)) {
+ int rgb = (scopes->wavefrm_mode == SCOPES_WAVEFRM_RGB);
+
+ glBlendFunc(GL_ONE,GL_ONE);
+
+ glPushMatrix();
+ glEnableClientState(GL_VERTEX_ARRAY);
+
+ glTranslatef(rect.xmin, yofs, 0.f);
+ glScalef(w3, h, 0.f);
+
+ glColor3fv((rgb)?colors_alpha[0]:colorsycc_alpha[0]);
+ glVertexPointer(2, GL_FLOAT, 0, scopes->waveform_1);
+ glDrawArrays(GL_POINTS, 0, scopes->waveform_tot);
+
+ glTranslatef(1.f, 0.f, 0.f);
+ glColor3fv((rgb)?colors_alpha[1]:colorsycc_alpha[1]);
+ glVertexPointer(2, GL_FLOAT, 0, scopes->waveform_2);
+ glDrawArrays(GL_POINTS, 0, scopes->waveform_tot);
+
+ glTranslatef(1.f, 0.f, 0.f);
+ glColor3fv((rgb)?colors_alpha[2]:colorsycc_alpha[2]);
+ glVertexPointer(2, GL_FLOAT, 0, scopes->waveform_3);
+ glDrawArrays(GL_POINTS, 0, scopes->waveform_tot);
+
+ glDisableClientState(GL_VERTEX_ARRAY);
+ glPopMatrix();
+
+
+ /* min max */
+ for (c=0; c<3; c++) {
+ if (scopes->wavefrm_mode == SCOPES_WAVEFRM_RGB)
+ glColor3f(colors[c][0]*0.75, colors[c][1]*0.75, colors[c][2]*0.75);
+ else
+ glColor3f(colorsycc[c][0]*0.75, colorsycc[c][1]*0.75, colorsycc[c][2]*0.75);
+ min= yofs+scopes->minmax[c][0]*h;
+ max= yofs+scopes->minmax[c][1]*h;
+ CLAMP(min, rect.ymin, rect.ymax);
+ CLAMP(max, rect.ymin, rect.ymax);
+ fdrawline(rect.xmin+w+2+c*2,min,rect.xmin+w+2+c*2,max);
+ }
+ }
+
}
- /* restore scissortest */
- glScissor(scissor[0], scissor[1], scissor[2], scissor[3]);
+ /* outline, scale gripper */
+ draw_scope_end(&rect, scissor);
+}
+
+float polar_to_x(float center, float diam, float ampli, float angle)
+{
+ return center + diam * ampli * cosf(angle);
+}
+
+float polar_to_y(float center, float diam, float ampli, float angle)
+{
+ return center + diam * ampli * sinf(angle);
+}
+
+void vectorscope_draw_target(float centerx, float centery, float diam, float r, float g, float b)
+{
+ float y,u,v;
+ float tangle=0.f, tampli;
+ float dangle, dampli, dangle2, dampli2;
+
+ rgb_to_yuv(r,g,b, &y, &u, &v);
+ if (u>0 && v>=0) tangle=atanf(v/u);
+ else if (u>0 && v<0) tangle=atanf(v/u)+2*M_PI;
+ else if (u<0) tangle=atanf(v/u)+M_PI;
+ else if (u==0 && v>0) tangle=M_PI/2.0f;
+ else if (u==0 && v<0) tangle=-M_PI/2.0f;
+ tampli= sqrtf(u*u+v*v);
+
+ /* small target vary by 2.5 degree and 2.5 IRE unit */
+ glColor4f(1.0f, 1.0f, 1.0, 0.12f);
+ dangle= 2.5*M_PI/180.0f;
+ dampli= 2.5f/200.0f;
+ glBegin(GL_LINE_STRIP);
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli,tangle+dangle), polar_to_y(centery,diam,tampli+dampli,tangle+dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli-dampli,tangle+dangle), polar_to_y(centery,diam,tampli-dampli,tangle+dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli-dampli,tangle-dangle), polar_to_y(centery,diam,tampli-dampli,tangle-dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli,tangle-dangle), polar_to_y(centery,diam,tampli+dampli,tangle-dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli,tangle+dangle), polar_to_y(centery,diam,tampli+dampli,tangle+dangle));
+ glEnd();
+ /* big target vary by 10 degree and 20% amplitude */
+ glColor4f(1.0f, 1.0f, 1.0, 0.12f);
+ dangle= 10*M_PI/180.0f;
+ dampli= 0.2*tampli;
+ dangle2= 5.0f*M_PI/180.0f;
+ dampli2= 0.5f*dampli;
+ glBegin(GL_LINE_STRIP);
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli-dampli2,tangle+dangle), polar_to_y(centery,diam,tampli+dampli-dampli2,tangle+dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli,tangle+dangle), polar_to_y(centery,diam,tampli+dampli,tangle+dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli,tangle+dangle-dangle2), polar_to_y(centery,diam,tampli+dampli,tangle+dangle-dangle2));
+ glEnd();
+ glBegin(GL_LINE_STRIP);
+ glVertex2f(polar_to_x(centerx,diam,tampli-dampli+dampli2,tangle+dangle), polar_to_y(centery ,diam,tampli-dampli+dampli2,tangle+dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli-dampli,tangle+dangle), polar_to_y(centery,diam,tampli-dampli,tangle+dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli-dampli,tangle+dangle-dangle2), polar_to_y(centery,diam,tampli-dampli,tangle+dangle-dangle2));
+ glEnd();
+ glBegin(GL_LINE_STRIP);
+ glVertex2f(polar_to_x(centerx,diam,tampli-dampli+dampli2,tangle-dangle), polar_to_y(centery,diam,tampli-dampli+dampli2,tangle-dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli-dampli,tangle-dangle), polar_to_y(centery,diam,tampli-dampli,tangle-dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli-dampli,tangle-dangle+dangle2), polar_to_y(centery,diam,tampli-dampli,tangle-dangle+dangle2));
+ glEnd();
+ glBegin(GL_LINE_STRIP);
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli-dampli2,tangle-dangle), polar_to_y(centery,diam,tampli+dampli-dampli2,tangle-dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli,tangle-dangle), polar_to_y(centery,diam,tampli+dampli,tangle-dangle));
+ glVertex2f(polar_to_x(centerx,diam,tampli+dampli,tangle-dangle+dangle2), polar_to_y(centery,diam,tampli+dampli,tangle-dangle+dangle2));
+ glEnd();
+}
+
+void ui_draw_but_VECTORSCOPE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *recti)
+{
+ Scopes *scopes = (Scopes *)but->poin;
+ rctf rect;
+ int i, j;
+ int skina= 123; /* angle in degree of the skin tone line */
+ float w, h, centerx, centery, diam;
+ float alpha;
+ float colors[6][3]={{.75,0,0},{.75,.75,0},{0,.75,0},{0,.75,.75},{0,0,.75},{.75,0,.75}};
+ GLint scissor[4];
+
+ rect.xmin = (float)recti->xmin+1;
+ rect.xmax = (float)recti->xmax-1;
+ rect.ymin = (float)recti->ymin+SCOPE_RESIZE_PAD+2;
+ rect.ymax = (float)recti->ymax-1;
+
+ w = rect.xmax - rect.xmin;
+ h = rect.ymax - rect.ymin;
+ centerx = rect.xmin + w/2;
+ centery = rect.ymin + h/2;
+ diam= (w<h)?w:h;
+ alpha = scopes->vecscope_alpha*scopes->vecscope_alpha*scopes->vecscope_alpha;
+
+ glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
- glColor4f(0.f, 0.f, 0.f, 0.5f);
+
+ glColor4f(0.f, 0.f, 0.f, 0.3f);
uiSetRoundBox(15);
- gl_round_box(GL_LINE_LOOP, rect.xmin-1, rect.ymin-1, rect.xmax+1, rect.ymax+1, 3.0f);
+ gl_round_box(GL_POLYGON, rect.xmin-1, rect.ymin-1, rect.xmax+1, rect.ymax+1, 3.0f);
+
+ /* need scissor test, hvectorscope can draw outside of boundary */
+ glGetIntegerv(GL_VIEWPORT, scissor);
+ glScissor(ar->winrct.xmin + (rect.xmin-1), ar->winrct.ymin+(rect.ymin-1), (rect.xmax+1)-(rect.xmin-1), (rect.ymax+1)-(rect.ymin-1));
+ glColor4f(1.f, 1.f, 1.f, 0.08f);
+ /* draw grid elements */
+ /* cross */
+ fdrawline(centerx - (diam/2)-5, centery, centerx + (diam/2)+5, centery);
+ fdrawline(centerx, centery - (diam/2)-5, centerx, centery + (diam/2)+5);
+ /* circles */
+ for(j=0; j<5; j++) {
+ glBegin(GL_LINE_STRIP);
+ for(i=0; i<=360; i=i+15) {
+ float a= i*M_PI/180.0;
+ float r= (j+1)/10.0f;
+ glVertex2f( polar_to_x(centerx,diam,r,a), polar_to_y(centery,diam,r,a));
+ }
+ glEnd();
+ }
+ /* skin tone line */
+ glColor4f(1.f, 0.4f, 0.f, 0.2f);
+ fdrawline( polar_to_x(centerx, diam, 0.5f, skina*M_PI/180.0), polar_to_y(centery,diam,0.5,skina*M_PI/180.0),
+ polar_to_x(centerx, diam, 0.1f, skina*M_PI/180.0), polar_to_y(centery,diam,0.1,skina*M_PI/180.0));
+ /* saturation points */
+ for(i=0; i<6; i++)
+ vectorscope_draw_target(centerx, centery, diam, colors[i][0], colors[i][1], colors[i][2]);
+
+ if (scopes->ok && scopes->vecscope != NULL) {
+ /* pixel point cloud */
+ glBlendFunc(GL_ONE,GL_ONE);
+ glColor3f(alpha, alpha, alpha);
+
+ glPushMatrix();
+ glEnableClientState(GL_VERTEX_ARRAY);
+
+ glTranslatef(centerx, centery, 0.f);
+ glScalef(diam, diam, 0.f);
+
+ glVertexPointer(2, GL_FLOAT, 0, scopes->vecscope);
+ glDrawArrays(GL_POINTS, 0, scopes->waveform_tot);
+
+ glDisableClientState(GL_VERTEX_ARRAY);
+ glPopMatrix();
+ }
+
+ /* outline, scale gripper */
+ draw_scope_end(&rect, scissor);
+
glDisable(GL_BLEND);
}
-
void ui_draw_but_COLORBAND(uiBut *but, uiWidgetColors *wcol, rcti *rect)
{
ColorBand *coba;
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 83aede3156c..7eda0920534 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -24,19 +24,15 @@
*/
#include <float.h>
+#include <limits.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
-#include "DNA_color_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -181,6 +177,7 @@ typedef struct uiAfterFunc {
int autokey;
} uiAfterFunc;
+static int ui_but_contains_pt(uiBut *but, int mx, int my);
static int ui_mouse_inside_button(ARegion *ar, uiBut *but, int x, int y);
static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState state);
static int ui_handler_region_menu(bContext *C, wmEvent *event, void *userdata);
@@ -189,11 +186,16 @@ static void button_timers_tooltip_remove(bContext *C, uiBut *but);
/* ******************** menu navigation helpers ************** */
+static int ui_but_editable(uiBut *but)
+{
+ return ELEM5(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX, PROGRESSBAR);
+}
+
static uiBut *ui_but_prev(uiBut *but)
{
while(but->prev) {
but= but->prev;
- if(!ELEM4(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX)) return but;
+ if(!ui_but_editable(but)) return but;
}
return NULL;
}
@@ -202,7 +204,7 @@ static uiBut *ui_but_next(uiBut *but)
{
while(but->next) {
but= but->next;
- if(!ELEM4(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX)) return but;
+ if(!ui_but_editable(but)) return but;
}
return NULL;
}
@@ -213,7 +215,7 @@ static uiBut *ui_but_first(uiBlock *block)
but= block->buttons.first;
while(but) {
- if(!ELEM4(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX)) return but;
+ if(!ui_but_editable(but)) return but;
but= but->next;
}
return NULL;
@@ -225,7 +227,7 @@ static uiBut *ui_but_last(uiBlock *block)
but= block->buttons.last;
while(but) {
- if(!ELEM4(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX)) return but;
+ if(!ui_but_editable(but)) return but;
but= but->prev;
}
return NULL;
@@ -234,7 +236,7 @@ static uiBut *ui_but_last(uiBlock *block)
static int ui_is_a_warp_but(uiBut *but)
{
if(U.uiflag & USER_CONTINUOUS_MOUSE)
- if(ELEM(but->type, NUM, NUMABS))
+ if(ELEM3(but->type, NUM, NUMABS, HSVCIRCLE))
return TRUE;
return FALSE;
@@ -782,6 +784,8 @@ static void ui_apply_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data)
break;
}
if(bt && bt!=but) {
+ if (!ELEM(bt->type, LINK, INLINK) || !ELEM(but->type, LINK, INLINK))
+ return;
if(but->type==LINK) ui_add_link(but, bt);
else ui_add_link(bt, but);
@@ -806,6 +810,14 @@ static void ui_apply_but_HISTOGRAM(bContext *C, uiBut *but, uiHandleButtonData *
data->applied= 1;
}
+static void ui_apply_but_WAVEFORM(bContext *C, uiBut *but, uiHandleButtonData *data)
+{
+ ui_apply_but_func(C, but);
+ data->retval= but->retval;
+ data->applied= 1;
+}
+
+
static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, int interactive)
{
char *editstr;
@@ -931,6 +943,9 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
case HISTOGRAM:
ui_apply_but_HISTOGRAM(C, but, data);
break;
+ case WAVEFORM:
+ ui_apply_but_WAVEFORM(C, but, data);
+ break;
default:
break;
}
@@ -956,7 +971,7 @@ static void ui_but_drop(bContext *C, wmEvent *event, uiBut *but, uiHandleButtonD
if(ELEM3(but->type, TEX, IDPOIN, SEARCH_MENU)) {
ID *id= (ID *)wmd->poin;
- if(but->poin==NULL && but->rnapoin.data==NULL);
+ if(but->poin==NULL && but->rnapoin.data==NULL) {}
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
BLI_strncpy(data->str, id->name+2, data->maxlen);
button_activate_state(C, but, BUTTON_STATE_EXIT);
@@ -998,7 +1013,11 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data,
if(but->poin==NULL && but->rnapoin.data==NULL);
else if(mode=='c') {
- sprintf(buf, "%f", ui_get_but_val(but));
+ if(ui_is_but_float(but))
+ sprintf(buf, "%f", ui_get_but_val(but));
+ else
+ sprintf(buf, "%d", (int)ui_get_but_val(but));
+
WM_clipboard_text_set(buf, 0);
}
else {
@@ -1032,7 +1051,7 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data,
}
/* text/string and ID data */
- else if(ELEM(but->type, TEX, IDPOIN)) {
+ else if(ELEM3(but->type, TEX, IDPOIN, SEARCH_MENU)) {
uiHandleButtonData *data= but->active;
if(but->poin==NULL && but->rnapoin.data==NULL);
@@ -1052,7 +1071,7 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data,
/* colorband (not supported by system clipboard) */
else if(but->type==BUT_COLORBAND) {
if(mode=='c') {
- if(but->poin)
+ if(but->poin==NULL)
return;
memcpy(&but_copypaste_coba, but->poin, sizeof(ColorBand));
@@ -1144,18 +1163,22 @@ static int ui_textedit_delete_selection(uiBut *but, uiHandleButtonData *data)
return change;
}
+/* note, but->block->aspect is used here, when drawing button style is getting scaled too */
static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, short x)
{
uiStyle *style= U.uistyles.first; // XXX pass on as arg
+ uiFontStyle *fstyle = &style->widget;
int startx= but->x1;
char *origstr;
- uiStyleFontSet(&style->widget);
+ uiStyleFontSet(fstyle);
+ if (fstyle->kerning==1) /* for BLF_width */
+ BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+
origstr= MEM_callocN(sizeof(char)*data->maxlen, "ui_textedit origstr");
BLI_strncpy(origstr, but->drawstr, data->maxlen);
- but->pos= strlen(origstr)-but->ofs;
/* XXX solve generic */
if(but->type==NUM || but->type==NUMSLI)
@@ -1166,16 +1189,38 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
startx += 16;
}
- /* XXX does not take zoom level into account */
- while((BLF_width(origstr+but->ofs) + startx) > x) {
- if (but->pos <= 0) break;
- but->pos--;
- origstr[but->pos+but->ofs] = 0;
+ /* mouse dragged outside the widget to the left */
+ if (x < startx && but->ofs > 0) {
+ int i= but->ofs;
+
+ origstr[but->ofs] = 0;
+
+ while (i > 0) {
+ i--;
+ if (BLF_width(fstyle->uifont_id, origstr+i) > (startx - x)*0.25) break; // 0.25 == scale factor for less sensitivity
+ }
+ but->ofs = i;
+ but->pos = but->ofs;
+ }
+ /* mouse inside the widget */
+ else if (x >= startx) {
+ float aspect= sqrt(but->block->aspect);
+
+ but->pos= strlen(origstr)-but->ofs;
+
+ /* XXX does not take zoom level into account */
+ while (aspect*startx + aspect*BLF_width(fstyle->uifont_id, origstr+but->ofs) > x) {
+ if (but->pos <= 0) break;
+ but->pos--;
+ origstr[but->pos+but->ofs] = 0;
+ }
+ but->pos += but->ofs;
+ if(but->pos<0) but->pos= 0;
}
- but->pos += but->ofs;
- if(but->pos<0) but->pos= 0;
-
+ if (fstyle->kerning == 1)
+ BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+
MEM_freeN(origstr);
}
@@ -1507,6 +1552,8 @@ static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data)
}
ui_check_but(but);
+
+ WM_cursor_modal(CTX_wm_window(C), BC_TEXTEDITCURSOR);
}
static void ui_textedit_end(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -1523,6 +1570,8 @@ static void ui_textedit_end(bContext *C, uiBut *but, uiHandleButtonData *data)
but->editstr= NULL;
but->pos= -1;
}
+
+ WM_cursor_restore(CTX_wm_window(C));
}
static void ui_textedit_next_but(uiBlock *block, uiBut *actbut, uiHandleButtonData *data)
@@ -1612,7 +1661,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
my= event->y;
ui_window_to_block(data->region, block, &mx, &my);
- if ((but->y1 <= my) && (my <= but->y2) && (but->x1 <= mx) && (mx <= but->x2)) {
+ if (ui_but_contains_pt(but, mx, my)) {
ui_textedit_set_cursor_pos(but, data, mx);
but->selsta = but->selend = but->pos;
data->selstartx= mx;
@@ -1718,7 +1767,11 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
if(event->ascii && (retval == WM_UI_HANDLER_CONTINUE)) {
changed= ui_textedit_type_ascii(but, data, event->ascii);
retval= WM_UI_HANDLER_BREAK;
+
}
+ /* textbutton with magnifier icon: do live update for search button */
+ if(but->icon==ICON_VIEWZOOM)
+ update= 1;
}
if(changed) {
@@ -1948,14 +2001,17 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data
if(event->type == MOUSEMOVE)
return WM_UI_HANDLER_CONTINUE;
- if(event->type == ESCKEY) {
- /* data->cancel doesnt work, this button opens immediate */
- if(but->flag & UI_BUT_IMMEDIATE)
- ui_set_but_val(but, 0);
- else
- data->cancel= 1;
- button_activate_state(C, but, BUTTON_STATE_EXIT);
- return WM_UI_HANDLER_BREAK;
+ if(event->type == LEFTMOUSE && event->val==KM_PRESS) {
+ /* only cancel if click outside the button */
+ if(ui_mouse_inside_button(but->active->region, but, event->x, event->y) == 0) {
+ /* data->cancel doesnt work, this button opens immediate */
+ if(but->flag & UI_BUT_IMMEDIATE)
+ ui_set_but_val(but, 0);
+ else
+ data->cancel= 1;
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ return WM_UI_HANDLER_BREAK;
+ }
}
/* always set */
@@ -1989,15 +2045,11 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data
return WM_UI_HANDLER_CONTINUE;
}
-
static int ui_do_but_KEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data, wmEvent *event)
{
if(data->state == BUTTON_STATE_HIGHLIGHT) {
if(ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->val==KM_PRESS) {
- short event= (short)ui_get_but_val(but);
- /* hardcoded prevention from editing or assigning ESC */
- if(event!=ESCKEY)
- button_activate_state(C, but, BUTTON_STATE_WAIT_KEY_EVENT);
+ button_activate_state(C, but, BUTTON_STATE_WAIT_KEY_EVENT);
return WM_UI_HANDLER_BREAK;
}
}
@@ -2006,7 +2058,7 @@ static int ui_do_but_KEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data, w
return WM_UI_HANDLER_CONTINUE;
if(event->val==KM_PRESS) {
- if(event->type!=ESCKEY && WM_key_event_string(event->type)[0])
+ if(WM_key_event_string(event->type)[0])
ui_set_but_val(but, event->type);
else
data->cancel= 1;
@@ -2062,16 +2114,24 @@ static int ui_do_but_EXIT(bContext *C, uiBut *but, uiHandleButtonData *data, wmE
/* first handle click on icondrag type button */
if(event->type==LEFTMOUSE && but->dragpoin) {
if(ui_but_mouse_inside_icon(but, data->region, event)) {
+
+ /* tell the button to wait and keep checking further events to
+ * see if it should start dragging */
button_activate_state(C, but, BUTTON_STATE_WAIT_DRAG);
data->dragstartx= event->x;
data->dragstarty= event->y;
- return WM_UI_HANDLER_BREAK;
+ return WM_UI_HANDLER_CONTINUE;
}
}
if(ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->val==KM_PRESS) {
+ int ret = WM_UI_HANDLER_BREAK;
+ /* XXX (a bit ugly) Special case handling for filebrowser drag button */
+ if(but->dragpoin && but->imb && ui_but_mouse_inside_icon(but, data->region, event)) {
+ ret = WM_UI_HANDLER_CONTINUE;
+ }
button_activate_state(C, but, BUTTON_STATE_EXIT);
- return WM_UI_HANDLER_BREAK;
+ return ret;
}
}
else if(data->state == BUTTON_STATE_WAIT_DRAG) {
@@ -2081,14 +2141,16 @@ static int ui_do_but_EXIT(bContext *C, uiBut *but, uiHandleButtonData *data, wmE
return WM_UI_HANDLER_BREAK;
}
- /* pass on release as press for other keymaps XXX hack alert! */
+ /* If the mouse has been pressed and released, getting to
+ * this point without triggering a drag, then clear the
+ * drag state for this button and continue to pass on the event */
if(event->type==LEFTMOUSE && event->val==KM_RELEASE) {
button_activate_state(C, but, BUTTON_STATE_EXIT);
- event->val= KM_CLICK;
return WM_UI_HANDLER_CONTINUE;
}
- /* while wait drag, always block other events to get handled */
+ /* while waiting for a drag to be triggered, always block
+ * other events from getting handled */
return WM_UI_HANDLER_BREAK;
}
@@ -2162,7 +2224,6 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i
softmax= but->softmax;
softrange= softmax - softmin;
-
if(ui_is_a_warp_but(but)) {
/* Mouse location isn't screen clamped to the screen so use a linear mapping
* 2px == 1-int, or 1px == 1-ClickStep */
@@ -2222,15 +2283,18 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i
/* Use a non-linear mapping of the mouse drag especially for large floats (normal behavior) */
deler= 500;
if(!ui_is_but_float(but)) {
- if((softrange)<100) deler= 200.0;
- if((softrange)<25) deler= 50.0;
+ /* prevent large ranges from getting too out of control */
+ if (softrange > 600) deler = powf(softrange, 0.75);
+
+ if (softrange < 100) deler= 200.0;
+ if (softrange < 25) deler= 50.0;
}
deler /= fac;
- if(ui_is_but_float(but) && softrange > 11) {
+ if(softrange > 11) {
/* non linear change in mouse input- good for high precicsion */
data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.002);
- } else if (!ui_is_but_float(but) && softrange > 129) { /* only scale large int buttons */
+ } else if (softrange > 129) { /* only scale large int buttons */
/* non linear change in mouse input- good for high precicsionm ints need less fine tuning */
data->dragf+= (((float)(mx-data->draglastx))/deler) * (fabs(data->dragstartx-mx)*0.004);
} else {
@@ -2238,8 +2302,7 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i
data->dragf+= ((float)(mx-data->draglastx))/deler ;
}
- if(data->dragf>1.0) data->dragf= 1.0;
- if(data->dragf<0.0) data->dragf= 0.0;
+ CLAMP(data->dragf, 0.0, 1.0);
data->draglastx= mx;
tempf= (softmin + data->dragf*softrange);
@@ -2251,7 +2314,7 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i
CLAMP(temp, softmin, softmax);
lvalue= (int)data->value;
-
+
if(temp != lvalue) {
data->dragchange= 1;
data->value= (double)temp;
@@ -2891,8 +2954,7 @@ static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx,
float range;
/* vertical 'value' strip */
- hsv[2]= y;
-
+
/* exception only for value strip - use the range set in but->min/max */
range = but->softmax - but->softmin;
hsv[2] = y*range + but->softmin;
@@ -2900,10 +2962,12 @@ static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx,
if (color_profile)
hsv[2] = srgb_to_linearrgb(hsv[2]);
+ if (hsv[2] > but->softmax)
+ hsv[2] = but->softmax;
}
hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2);
- ui_set_but_vectorf(but, rgb);
+ copy_v3_v3(data->vec, rgb);
data->draglastx= mx;
data->draglasty= my;
@@ -2983,7 +3047,7 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
return WM_UI_HANDLER_CONTINUE;
}
-static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, int mx, int my)
+static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, int mx, int my, int shift)
{
rcti rect;
int changed= 1;
@@ -2997,13 +3061,29 @@ static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, int mx
/* exception, when using color wheel in 'locked' value state:
* allow choosing a hue for black values, by giving a tiny increment */
- if (but->a2 == 1) { // lock
+ if (but->flag & UI_BUT_COLOR_LOCK) { // lock
if (hsv[2] == 0.f) hsv[2] = 0.0001f;
}
-
+
+ if(U.uiflag & USER_CONTINUOUS_MOUSE) {
+ float fac= shift ? 0.05 : 1.0f;
+ /* slow down the mouse, this is fairly picky */
+ mx = (data->dragstartx*(1.0f-fac) + mx*fac);
+ my = (data->dragstarty*(1.0f-fac) + my*fac);
+ }
+
ui_hsvcircle_vals_from_pos(hsv, hsv+1, &rect, (float)mx, (float)my);
-
+
+ if(but->flag & UI_BUT_COLOR_CUBIC)
+ hsv[1]= 1.0f - sqrt3f(1.0f - hsv[1]);
+
hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2);
+
+ if((but->flag & UI_BUT_VEC_SIZE_LOCK) && (rgb[0] || rgb[1] || rgb[2])) {
+ normalize_v3(rgb);
+ mul_v3_fl(rgb, but->a2);
+ }
+
ui_set_but_vectorf(but, rgb);
data->draglastx= mx;
@@ -3030,7 +3110,7 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
/* also do drag the first time */
- if(ui_numedit_but_HSVCIRCLE(but, data, mx, my))
+ if(ui_numedit_but_HSVCIRCLE(but, data, mx, my, event->shift))
ui_numedit_apply(C, block, but, data);
return WM_UI_HANDLER_BREAK;
@@ -3081,7 +3161,7 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle
}
else if(event->type == MOUSEMOVE) {
if(mx!=data->draglastx || my!=data->draglasty) {
- if(ui_numedit_but_HSVCIRCLE(but, data, mx, my))
+ if(ui_numedit_but_HSVCIRCLE(but, data, mx, my, event->shift))
ui_numedit_apply(C, block, but, data);
}
}
@@ -3434,6 +3514,12 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
return WM_UI_HANDLER_CONTINUE;
}
+static int in_scope_resize_zone(uiBut *but, int x, int y)
+{
+ // bottom corner return (x > but->x2 - SCOPE_RESIZE_PAD) && (y < but->y1 + SCOPE_RESIZE_PAD);
+ return (y < but->y1 + SCOPE_RESIZE_PAD);
+}
+
static int ui_numedit_but_HISTOGRAM(uiBut *but, uiHandleButtonData *data, int mx, int my)
{
Histogram *hist = (Histogram *)but->poin;
@@ -3447,10 +3533,17 @@ static int ui_numedit_but_HISTOGRAM(uiBut *but, uiHandleButtonData *data, int mx
dx = mx - data->draglastx;
dy = my - data->draglasty;
- yfac = MIN2(powf(hist->ymax, 2.f), 1.f) * 0.5;
- hist->ymax += dy * yfac;
- CLAMP(hist->ymax, 1.f, 100.f);
+ if (in_scope_resize_zone(but, data->dragstartx, data->dragstarty)) {
+ /* resize histogram widget itself */
+ hist->height = (but->y2 - but->y1) + (data->dragstarty - my);
+ } else {
+ /* scale histogram values */
+ yfac = MIN2(powf(hist->ymax, 2.f), 1.f) * 0.5;
+ hist->ymax += dy * yfac;
+
+ CLAMP(hist->ymax, 1.f, 100.f);
+ }
data->draglastx= mx;
data->draglasty= my;
@@ -3509,6 +3602,156 @@ static int ui_do_but_HISTOGRAM(bContext *C, uiBlock *block, uiBut *but, uiHandle
return WM_UI_HANDLER_CONTINUE;
}
+static int ui_numedit_but_WAVEFORM(uiBut *but, uiHandleButtonData *data, int mx, int my)
+{
+ Scopes *scopes = (Scopes *)but->poin;
+ rcti rect;
+ int changed= 1;
+ float dx, dy, yfac=1.f;
+
+ rect.xmin= but->x1; rect.xmax= but->x2;
+ rect.ymin= but->y1; rect.ymax= but->y2;
+
+ dx = mx - data->draglastx;
+ dy = my - data->draglasty;
+
+
+ if (in_scope_resize_zone(but, data->dragstartx, data->dragstarty)) {
+ /* resize waveform widget itself */
+ scopes->wavefrm_height = (but->y2 - but->y1) + (data->dragstarty - my);
+ } else {
+ /* scale waveform values */
+ yfac = scopes->wavefrm_yfac;
+ scopes->wavefrm_yfac += dy/200.0f;
+
+ CLAMP(scopes->wavefrm_yfac, 0.5f, 2.f);
+ }
+
+ data->draglastx= mx;
+ data->draglasty= my;
+
+ return changed;
+}
+
+static int ui_do_but_WAVEFORM(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, wmEvent *event)
+{
+ int mx, my;
+
+ mx= event->x;
+ my= event->y;
+ ui_window_to_block(data->region, block, &mx, &my);
+
+ if(data->state == BUTTON_STATE_HIGHLIGHT) {
+ if(event->type==LEFTMOUSE && event->val==KM_PRESS) {
+ data->dragstartx= mx;
+ data->dragstarty= my;
+ data->draglastx= mx;
+ data->draglasty= my;
+ button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
+
+ /* also do drag the first time */
+ if(ui_numedit_but_WAVEFORM(but, data, mx, my))
+ ui_numedit_apply(C, block, but, data);
+
+ return WM_UI_HANDLER_BREAK;
+ }
+ else if (event->type == ZEROKEY && event->val == KM_PRESS) {
+ Scopes *scopes = (Scopes *)but->poin;
+ scopes->wavefrm_yfac = 1.f;
+
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ return WM_UI_HANDLER_BREAK;
+ }
+ }
+ else if(data->state == BUTTON_STATE_NUM_EDITING) {
+ if(event->type == ESCKEY) {
+ data->cancel= 1;
+ data->escapecancel= 1;
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
+ else if(event->type == MOUSEMOVE) {
+ if(mx!=data->draglastx || my!=data->draglasty) {
+ if(ui_numedit_but_WAVEFORM(but, data, mx, my))
+ ui_numedit_apply(C, block, but, data);
+ }
+ }
+ else if(event->type==LEFTMOUSE && event->val!=KM_PRESS) {
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
+ return WM_UI_HANDLER_BREAK;
+ }
+
+ return WM_UI_HANDLER_CONTINUE;
+}
+
+static int ui_numedit_but_VECTORSCOPE(uiBut *but, uiHandleButtonData *data, int mx, int my)
+{
+ Scopes *scopes = (Scopes *)but->poin;
+ rcti rect;
+ int changed= 1;
+ float dx, dy;
+
+ rect.xmin= but->x1; rect.xmax= but->x2;
+ rect.ymin= but->y1; rect.ymax= but->y2;
+
+ dx = mx - data->draglastx;
+ dy = my - data->draglasty;
+
+ if (in_scope_resize_zone(but, data->dragstartx, data->dragstarty)) {
+ /* resize vectorscope widget itself */
+ scopes->vecscope_height = (but->y2 - but->y1) + (data->dragstarty - my);
+ }
+
+ data->draglastx= mx;
+ data->draglasty= my;
+
+ return changed;
+}
+
+static int ui_do_but_VECTORSCOPE(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, wmEvent *event)
+{
+ int mx, my;
+
+ mx= event->x;
+ my= event->y;
+ ui_window_to_block(data->region, block, &mx, &my);
+
+ if(data->state == BUTTON_STATE_HIGHLIGHT) {
+ if(event->type==LEFTMOUSE && event->val==KM_PRESS) {
+ data->dragstartx= mx;
+ data->dragstarty= my;
+ data->draglastx= mx;
+ data->draglasty= my;
+ button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
+
+ /* also do drag the first time */
+ if(ui_numedit_but_VECTORSCOPE(but, data, mx, my))
+ ui_numedit_apply(C, block, but, data);
+
+ return WM_UI_HANDLER_BREAK;
+ }
+ }
+ else if(data->state == BUTTON_STATE_NUM_EDITING) {
+ if(event->type == ESCKEY) {
+ data->cancel= 1;
+ data->escapecancel= 1;
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
+ else if(event->type == MOUSEMOVE) {
+ if(mx!=data->draglastx || my!=data->draglasty) {
+ if(ui_numedit_but_VECTORSCOPE(but, data, mx, my))
+ ui_numedit_apply(C, block, but, data);
+ }
+ }
+ else if(event->type==LEFTMOUSE && event->val!=KM_PRESS) {
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
+ return WM_UI_HANDLER_BREAK;
+ }
+
+ return WM_UI_HANDLER_CONTINUE;
+}
+
#ifdef INTERNATIONAL
static int ui_do_but_CHARTAB(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, wmEvent *event)
{
@@ -3706,7 +3949,7 @@ static uiBlock *menu_change_shortcut(bContext *C, ARegion *ar, void *arg)
layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, 200, 20, style);
- uiItemR(layout, "", 0, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE);
+ uiItemR(layout, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE, "", 0);
uiPopupBoundsBlock(block, 6, 100, 10);
uiEndBlock(C, block);
@@ -3740,7 +3983,7 @@ static uiBlock *menu_add_shortcut(bContext *C, ARegion *ar, void *arg)
layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, 200, 20, style);
- uiItemR(layout, "", 0, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE);
+ uiItemR(layout, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE, "", 0);
uiPopupBoundsBlock(block, 6, 100, 10);
uiEndBlock(C, block);
@@ -3937,28 +4180,28 @@ static int ui_but_menu(bContext *C, uiBut *but)
WM_operator_properties_create(&ptr_props, "WM_OT_doc_view");
RNA_string_set(&ptr_props, "doc_id", buf);
- uiItemFullO(layout, "View Docs", 0, "WM_OT_doc_view", ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_view", "View Docs", 0, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit");
RNA_string_set(&ptr_props, "doc_id", buf);
RNA_string_set(&ptr_props, "doc_new", RNA_property_description(but->rnaprop));
- uiItemFullO(layout, "Submit Description", 0, "WM_OT_doc_edit", ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_edit", "Submit Description", 0, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
}
else if (but->optype) {
WM_operator_py_idname(buf, but->optype->idname);
WM_operator_properties_create(&ptr_props, "WM_OT_doc_view");
RNA_string_set(&ptr_props, "doc_id", buf);
- uiItemFullO(layout, "View Docs", 0, "WM_OT_doc_view", ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_view", "View Docs", 0, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit");
RNA_string_set(&ptr_props, "doc_id", buf);
RNA_string_set(&ptr_props, "doc_new", but->optype->description);
- uiItemFullO(layout, "Submit Description", 0, "WM_OT_doc_edit", ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_edit", "Submit Description", 0, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
}
}
@@ -3989,7 +4232,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
ui_but_drop (C, event, but, data);
}
/* handle keyframing */
- else if(event->type == IKEY && event->val == KM_PRESS) {
+ else if(event->type == IKEY && !ELEM3(1, event->ctrl, event->oskey, event->shift) && event->val == KM_PRESS) {
if(event->alt)
ui_but_anim_delete_keyframe(C);
else
@@ -4000,7 +4243,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
return WM_UI_HANDLER_BREAK;
}
/* handle drivers */
- else if(event->type == DKEY && event->val == KM_PRESS) {
+ else if(event->type == DKEY && !ELEM3(1, event->ctrl, event->oskey, event->shift) && event->val == KM_PRESS) {
if(event->alt)
ui_but_anim_remove_driver(C);
else
@@ -4011,7 +4254,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
return WM_UI_HANDLER_BREAK;
}
/* handle keyingsets */
- else if(event->type == KKEY && event->val == KM_PRESS) {
+ else if(event->type == KKEY && !ELEM3(1, event->ctrl, event->oskey, event->shift) && event->val == KM_PRESS) {
if(event->alt)
ui_but_anim_remove_keyingset(C);
else
@@ -4093,11 +4336,18 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
case ROW:
case LISTROW:
case BUT_IMAGE:
+ case PROGRESSBAR:
retval= ui_do_but_EXIT(C, but, data, event);
break;
case HISTOGRAM:
retval= ui_do_but_HISTOGRAM(C, block, but, data, event);
break;
+ case WAVEFORM:
+ retval= ui_do_but_WAVEFORM(C, block, but, data, event);
+ break;
+ case VECTORSCOPE:
+ retval= ui_do_but_VECTORSCOPE(C, block, but, data, event);
+ break;
case TEX:
case IDPOIN:
case SEARCH_MENU:
@@ -4406,7 +4656,7 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s
but->flag |= UI_SELECT;
button_timers_tooltip_remove(C, but);
}
-
+
/* text editing */
if(state == BUTTON_STATE_TEXT_EDITING && data->state != BUTTON_STATE_TEXT_SELECTING)
ui_textedit_begin(C, but, data);
@@ -5381,8 +5631,7 @@ static int ui_handler_region(bContext *C, wmEvent *event, void *userdata)
/* either handle events for already activated button or try to activate */
but= ui_but_find_activated(ar);
- if(!but || !button_modal_state(but->active->state))
- retval= ui_handler_panel_region(C, event);
+ retval= ui_handler_panel_region(C, event);
if(retval == WM_UI_HANDLER_CONTINUE)
retval= ui_handle_list_event(C, event, ar);
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index 457713755fd..232b6f7f317 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -44,10 +44,9 @@
#include "BLI_blenlib.h"
#include "BLI_storage_types.h"
-#include "DNA_material_types.h"
#include "DNA_screen_types.h"
-#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
+#include "DNA_brush_types.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -66,7 +65,6 @@
#include "UI_interface.h"
#include "UI_interface_icons.h"
-#include "UI_resources.h" /* elubie: should be removed once the enum for the ICONS is in BIF_preview_icons.h */
#include "interface_intern.h"
@@ -460,30 +458,25 @@ static void init_internal_icons()
ImBuf *bbuf= NULL;
int x, y, icontype;
char iconfilestr[FILE_MAXDIR+FILE_MAXFILE];
- char filenamestr[FILE_MAXFILE+16]; // 16 == strlen(".blender/icons/")+1
if ((btheme!=NULL) && (strlen(btheme->tui.iconfile) > 0)) {
-
-#ifdef WIN32
- sprintf(filenamestr, "icons/%s", btheme->tui.iconfile);
-#else
- sprintf(filenamestr, ".blender/icons/%s", btheme->tui.iconfile);
-#endif
-
- BLI_make_file_string("/", iconfilestr, BLI_gethome(), filenamestr);
-
- if (BLI_exists(iconfilestr)) {
- bbuf = IMB_loadiffname(iconfilestr, IB_rect);
- if(bbuf->x < ICON_IMAGE_W || bbuf->y < ICON_IMAGE_H) {
- if (G.f & G_DEBUG)
- printf("\n***WARNING***\nIcons file %s too small.\nUsing built-in Icons instead\n", iconfilestr);
- IMB_freeImBuf(bbuf);
- bbuf= NULL;
+ char *datadir= BLI_get_folder(BLENDER_DATAFILES, NULL);
+ if (datadir) {
+ BLI_make_file_string("/", iconfilestr, datadir, btheme->tui.iconfile);
+
+ if (BLI_exists(iconfilestr)) {
+ bbuf = IMB_loadiffname(iconfilestr, IB_rect);
+ if(bbuf->x < ICON_IMAGE_W || bbuf->y < ICON_IMAGE_H) {
+ if (G.f & G_DEBUG)
+ printf("\n***WARNING***\nIcons file %s too small.\nUsing built-in Icons instead\n", iconfilestr);
+ IMB_freeImBuf(bbuf);
+ bbuf= NULL;
+ }
}
}
}
if(bbuf==NULL)
- bbuf = IMB_ibImageFromMemory((int *)datatoc_blenderbuttons, datatoc_blenderbuttons_size, IB_rect);
+ bbuf = IMB_ibImageFromMemory((unsigned char*)datatoc_blenderbuttons, datatoc_blenderbuttons_size, IB_rect);
if(bbuf) {
/* free existing texture if any */
@@ -521,12 +514,14 @@ static void init_internal_icons()
else
icontype= ICON_TYPE_BUFFER;
- for (y=0; y<ICON_GRID_ROWS; y++) {
- for (x=0; x<ICON_GRID_COLS; x++) {
- def_internal_icon(bbuf, BIFICONID_FIRST + y*ICON_GRID_COLS + x,
- x*(ICON_GRID_W+ICON_GRID_MARGIN)+ICON_GRID_MARGIN,
- y*(ICON_GRID_H+ICON_GRID_MARGIN)+ICON_GRID_MARGIN, ICON_GRID_W,
- icontype);
+ if(bbuf) {
+ for (y=0; y<ICON_GRID_ROWS; y++) {
+ for (x=0; x<ICON_GRID_COLS; x++) {
+ def_internal_icon(bbuf, BIFICONID_FIRST + y*ICON_GRID_COLS + x,
+ x*(ICON_GRID_W+ICON_GRID_MARGIN)+ICON_GRID_MARGIN,
+ y*(ICON_GRID_H+ICON_GRID_MARGIN)+ICON_GRID_MARGIN, ICON_GRID_W,
+ icontype);
+ }
}
}
@@ -556,14 +551,14 @@ static void init_iconfile_list(struct ListBase *list)
char icondirstr[FILE_MAX];
char iconfilestr[FILE_MAX+16]; /* allow 256 chars for file+dir */
char olddir[FILE_MAX];
-
+ char *datadir= NULL;
+
list->first = list->last = NULL;
+ datadir = BLI_get_folder(BLENDER_DATAFILES, NULL);
-#ifdef WIN32
- BLI_make_file_string("/", icondirstr, BLI_gethome(), "icons");
-#else
- BLI_make_file_string("/", icondirstr, BLI_gethome(), ".blender/icons");
-#endif
+ if (!datadir) return;
+
+ BLI_make_file_string("/", icondirstr, datadir, "");
if(BLI_exists(icondirstr)==0)
return;
@@ -573,8 +568,7 @@ static void init_iconfile_list(struct ListBase *list)
if(!BLI_getwdN(olddir))
restoredir = 0;
totfile = BLI_getdir(icondirstr, &dir);
- if (restoredir && !chdir(olddir))
- ; /* fix warning about checking return value */
+ if (restoredir && !chdir(olddir)) {} /* fix warning about checking return value */
for(i=0; i<totfile; i++) {
if( (dir[i].type & S_IFREG) ) {
@@ -769,6 +763,7 @@ static void icon_create_mipmap(struct PreviewImage* prv_img, int miplevel)
prv_img->w[miplevel] = size;
prv_img->h[miplevel] = size;
prv_img->changed[miplevel] = 1;
+ prv_img->changed_timestamp[miplevel] = 0;
prv_img->rect[miplevel] = MEM_callocN(size*size*sizeof(unsigned int), "prv_rect");
}
}
@@ -983,6 +978,16 @@ int ui_id_icon_get(bContext *C, ID *id, int preview)
/* checks if not exists, or changed */
ui_id_icon_render(C, id, preview);
break;
+ case ID_BR:
+ { /* use the image in the brush as the icon */
+ /* XXX redundancy here can be reduced be rewriting this switch as an if */
+ ID* ima_id = (ID*)((Brush*)id)->image_icon;
+ id = ima_id ? ima_id : id;
+ iconid= BKE_icon_getid(id);
+ /* checks if not exists, or changed */
+ ui_id_icon_render(C, id, preview);
+ }
+ break;
default:
break;
}
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 4f7a97f0579..cb8130573fe 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -87,7 +87,8 @@ typedef enum {
UI_WTYPE_NORMAL,
UI_WTYPE_BOX,
UI_WTYPE_SCROLL,
- UI_WTYPE_LISTITEM
+ UI_WTYPE_LISTITEM,
+ UI_WTYPE_PROGRESSBAR,
} uiWidgetTypeEnum;
@@ -127,6 +128,9 @@ typedef enum {
#define EXTEND_LEFT 1
#define EXTEND_RIGHT 2
+/* for scope resize zone */
+#define SCOPE_RESIZE_PAD 9
+
typedef struct {
short xim, yim;
unsigned int *rect;
@@ -180,8 +184,11 @@ struct uiBut {
struct bContextStore *context;
+ /* not ysed yet, was used in 2.4x for ui_draw_pulldown_round & friends */
+ /*
void (*embossfunc)(int , int , float, float, float, float, float, int);
void (*sliderfunc)(int , float, float, float, float, float, float, int);
+ */
uiButCompleteFunc autocomplete_func;
void *autofunc_arg;
@@ -224,12 +231,12 @@ struct uiBut {
/* Operator data */
struct wmOperatorType *optype;
- int opcontext;
struct IDProperty *opproperties;
struct PointerRNA *opptr;
+ short opcontext;
/* Draggable data, type is WM_DRAG_... */
- int dragtype;
+ short dragtype;
void *dragpoin;
struct ImBuf *imb;
float imb_scale;
@@ -440,6 +447,8 @@ extern void gl_round_box_vertical_shade(int mode, float minx, float miny, float
void ui_draw_gradient(rcti *rect, float *rgb, int type, float alpha);
void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
+void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
+void ui_draw_but_VECTORSCOPE(ARegion *ar, uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
void ui_draw_but_COLORBAND(uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
void ui_draw_but_NORMAL(uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
void ui_draw_but_CURVE(ARegion *ar, uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
@@ -474,7 +483,7 @@ int ui_id_icon_get(struct bContext *C, struct ID *id, int preview);
/* resources.c */
void init_userdef_do_versions(void);
-void ui_theme_init_userdef(void);
+void ui_theme_init_default(void);
void ui_resources_init(void);
void ui_resources_free(void);
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index d4a47be11ca..b7b9a2156ef 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -29,11 +29,8 @@
#include "MEM_guardedalloc.h"
-#include "DNA_ID.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
@@ -48,12 +45,7 @@
#include "RNA_access.h"
#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
-#include "ED_util.h"
-#include "ED_types.h"
-#include "ED_screen.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -439,18 +431,14 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon
but->type= TOG;
}
}
- else if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && len == 4) {
- but= uiDefAutoButR(block, ptr, prop, 3, "A:", 0, 0, 0, w, UI_UNIT_Y);
- if(slider && but->type==NUM)
- but->type= NUMSLI;
- }
}
uiBlockSetCurLayout(block, layout);
}
-static void ui_item_enum_row(uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, char *uiname, int x, int y, int w, int h, int icon_only)
+static void ui_item_enum_expand(uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, char *uiname, int x, int y, int w, int h, int icon_only)
{
+ uiBut *but;
EnumPropertyItem *item;
const char *identifier;
char *name;
@@ -470,11 +458,14 @@ static void ui_item_enum_row(uiLayout *layout, uiBlock *block, PointerRNA *ptr,
itemw= ui_text_icon_width(block->curlayout, name, icon, 0);
if(icon && strcmp(name, "") != 0 && !icon_only)
- uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
+ but= uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
else if(icon)
- uiDefIconButR(block, ROW, 0, icon, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
+ but= uiDefIconButR(block, ROW, 0, icon, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
else
- uiDefButR(block, ROW, 0, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
+ but= uiDefButR(block, ROW, 0, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
+
+ if(ui_layout_local_dir(layout) != UI_LAYOUT_HORIZONTAL)
+ but->flag |= UI_TEXT_LEFT;
}
uiBlockSetCurLayout(block, layout);
@@ -522,7 +513,7 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, char *name, i
uiDefAutoButR(block, ptr, prop, index, "", icon, x, y, w-UI_UNIT_X, h);
/* BUTTONS_OT_file_browse calls uiFileBrowseContextProperty */
- but= uiDefIconButO(block, BUT, "BUTTONS_OT_file_browse", WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, "Browse for file or directory");
+ but= uiDefIconButO(block, BUT, "BUTTONS_OT_file_browse", WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, NULL);
}
else if(subtype == PROP_DIRECTION) {
uiDefButR(block, BUT_NORMAL, 0, name, x, y, 100, 100, ptr, RNA_property_identifier(prop), index, 0, 0, -1, -1, NULL);
@@ -600,7 +591,7 @@ static void ui_item_disabled(uiLayout *layout, char *name)
}
/* operator items */
-PointerRNA uiItemFullO(uiLayout *layout, char *name, int icon, char *idname, IDProperty *properties, int context, int flag)
+PointerRNA uiItemFullO(uiLayout *layout, char *idname, char *name, int icon, IDProperty *properties, int context, int flag)
{
uiBlock *block= layout->root->block;
wmOperatorType *ot= WM_operatortype_find(idname, 0);
@@ -622,6 +613,9 @@ PointerRNA uiItemFullO(uiLayout *layout, char *name, int icon, char *idname, IDP
w= ui_text_icon_width(layout, name, icon, 0);
+ if (flag & UI_ITEM_R_NO_BG)
+ uiBlockSetEmboss(block, UI_EMBOSSN);
+
if(icon && strcmp(name, "") != 0)
but= uiDefIconTextButO(block, BUT, ot->idname, context, icon, (char*)name, 0, 0, w, UI_UNIT_Y, NULL);
else if(icon)
@@ -632,7 +626,10 @@ PointerRNA uiItemFullO(uiLayout *layout, char *name, int icon, char *idname, IDP
/* text alignment for toolbar buttons */
if((layout->root->type == UI_LAYOUT_TOOLBAR) && !icon)
but->flag |= UI_TEXT_LEFT;
-
+
+ if (flag & UI_ITEM_R_NO_BG)
+ uiBlockSetEmboss(block, UI_EMBOSS);
+
/* assign properties */
if(properties || (flag & UI_ITEM_O_RETURN_PROPS)) {
PointerRNA *opptr= uiButGetOperatorPtrRNA(but);
@@ -681,7 +678,7 @@ static char *ui_menu_enumpropname(uiLayout *layout, char *opname, char *propname
return "";
}
-void uiItemEnumO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value)
+void uiItemEnumO(uiLayout *layout, char *opname, char *name, int icon, char *propname, int value)
{
PointerRNA ptr;
@@ -691,7 +688,7 @@ void uiItemEnumO(uiLayout *layout, char *name, int icon, char *opname, char *pro
if(!name)
name= ui_menu_enumpropname(layout, opname, propname, value);
- uiItemFullO(layout, name, icon, opname, ptr.data, layout->root->opcontext, 0);
+ uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, IDProperty *properties, int context, int flag)
@@ -731,10 +728,10 @@ void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, IDProperty
ptr.data= IDP_CopyProperty(properties);
RNA_enum_set(&ptr, propname, item[i].value);
- uiItemFullO(column, (char*)item[i].name, item[i].icon, opname, ptr.data, context, flag);
+ uiItemFullO(column, opname, (char*)item[i].name, item[i].icon, ptr.data, context, flag);
}
else
- uiItemEnumO(column, (char*)item[i].name, item[i].icon, opname, propname, item[i].value);
+ uiItemEnumO(column, opname, (char*)item[i].name, item[i].icon, propname, item[i].value);
}
else {
if(item[i].name) {
@@ -798,7 +795,7 @@ void uiItemEnumO_string(uiLayout *layout, char *name, int icon, char *opname, ch
if(!name)
name= ui_menu_enumpropname(layout, opname, propname, value);
- uiItemFullO(layout, name, icon, opname, ptr.data, layout->root->opcontext, 0);
+ uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
void uiItemBooleanO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value)
@@ -808,7 +805,7 @@ void uiItemBooleanO(uiLayout *layout, char *name, int icon, char *opname, char *
WM_operator_properties_create(&ptr, opname);
RNA_boolean_set(&ptr, propname, value);
- uiItemFullO(layout, name, icon, opname, ptr.data, layout->root->opcontext, 0);
+ uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
void uiItemIntO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value)
@@ -818,7 +815,7 @@ void uiItemIntO(uiLayout *layout, char *name, int icon, char *opname, char *prop
WM_operator_properties_create(&ptr, opname);
RNA_int_set(&ptr, propname, value);
- uiItemFullO(layout, name, icon, opname, ptr.data, layout->root->opcontext, 0);
+ uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
void uiItemFloatO(uiLayout *layout, char *name, int icon, char *opname, char *propname, float value)
@@ -828,7 +825,7 @@ void uiItemFloatO(uiLayout *layout, char *name, int icon, char *opname, char *pr
WM_operator_properties_create(&ptr, opname);
RNA_float_set(&ptr, propname, value);
- uiItemFullO(layout, name, icon, opname, ptr.data, layout->root->opcontext, 0);
+ uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
void uiItemStringO(uiLayout *layout, char *name, int icon, char *opname, char *propname, char *value)
@@ -838,12 +835,12 @@ void uiItemStringO(uiLayout *layout, char *name, int icon, char *opname, char *p
WM_operator_properties_create(&ptr, opname);
RNA_string_set(&ptr, propname, value);
- uiItemFullO(layout, name, icon, opname, ptr.data, layout->root->opcontext, 0);
+ uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
void uiItemO(uiLayout *layout, char *name, int icon, char *opname)
{
- uiItemFullO(layout, name, icon, opname, NULL, layout->root->opcontext, 0);
+ uiItemFullO(layout, opname, name, icon, NULL, layout->root->opcontext, 0);
}
/* RNA property items */
@@ -892,7 +889,7 @@ static void ui_item_rna_size(uiLayout *layout, char *name, int icon, PointerRNA
*r_h= h;
}
-void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int index, int value, int flag)
+void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index, int value, int flag, char *name, int icon)
{
uiBlock *block= layout->root->block;
uiBut *but;
@@ -954,7 +951,7 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper
}
/* expanded enum */
else if(type == PROP_ENUM && expand)
- ui_item_enum_row(layout, block, ptr, prop, name, 0, 0, w, h, icon_only);
+ ui_item_enum_expand(layout, block, ptr, prop, name, 0, 0, w, h, icon_only);
/* property with separate label */
else if(type == PROP_ENUM || type == PROP_STRING || type == PROP_POINTER) {
but= ui_item_with_label(layout, block, name, icon, ptr, prop, index, 0, 0, w, h, flag);
@@ -975,7 +972,7 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper
uiBlockSetEmboss(block, UI_EMBOSS);
}
-void uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *propname, int flag)
+void uiItemR(uiLayout *layout, PointerRNA *ptr, char *propname, int flag, char *name, int icon)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
@@ -985,7 +982,7 @@ void uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *prop
return;
}
- uiItemFullR(layout, name, icon, ptr, prop, RNA_NO_INDEX, 0, flag);
+ uiItemFullR(layout, ptr, prop, RNA_NO_INDEX, 0, flag, name, icon);
}
void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, int value)
@@ -998,10 +995,10 @@ void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr,
return;
}
- uiItemFullR(layout, name, icon, ptr, prop, RNA_ENUM_VALUE, value, 0);
+ uiItemFullR(layout, ptr, prop, RNA_ENUM_VALUE, value, 0, name, icon);
}
-void uiItemEnumR_string(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, char *value)
+void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, char *propname, char *value, char *name, int icon)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
EnumPropertyItem *item;
@@ -1024,7 +1021,7 @@ void uiItemEnumR_string(uiLayout *layout, char *name, int icon, struct PointerRN
for(a=0; item[a].identifier; a++) {
if(item[a].value == ivalue) {
- uiItemFullR(layout, (char*)item[a].name, item[a].icon, ptr, prop, RNA_ENUM_VALUE, ivalue, 0);
+ uiItemFullR(layout, ptr, prop, RNA_ENUM_VALUE, ivalue, 0, (char*)item[a].name, item[a].icon);
break;
}
}
@@ -1113,9 +1110,11 @@ static void rna_search_cb(const struct bContext *C, void *arg_but, char *str, ui
if(flag & PROP_ID_SELF_CHECK)
if(itemptr.data == but->rnapoin.id.data)
continue;
-
- if(RNA_struct_is_ID(itemptr.type))
- iconid= ui_id_icon_get((bContext*)C, itemptr.data, 0);
+
+ if(itemptr.type && RNA_struct_is_ID(itemptr.type))
+ iconid= ui_id_icon_get((bContext*)C, itemptr.data, 1);
+ else
+ iconid = 0;
name= RNA_struct_name_get_alloc(&itemptr, NULL, 0);
@@ -1127,8 +1126,8 @@ static void rna_search_cb(const struct bContext *C, void *arg_but, char *str, ui
cis->iconid = iconid;
BLI_addtail(items_list, cis);
}
+ MEM_freeN(name);
}
- MEM_freeN(name);
i++;
}
@@ -1199,7 +1198,7 @@ void ui_but_add_search(uiBut *but, PointerRNA *ptr, PropertyRNA *prop, PointerRN
}
}
-void uiItemPointerR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, struct PointerRNA *searchptr, char *searchpropname)
+void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, char *propname, struct PointerRNA *searchptr, char *searchpropname, char *name, int icon)
{
PropertyRNA *prop, *searchprop;
PropertyType type;
@@ -1297,11 +1296,13 @@ static void ui_item_menu(uiLayout *layout, char *name, int icon, uiMenuCreateFun
if(layout->root->type == UI_LAYOUT_HEADER)
uiBlockSetEmboss(block, UI_EMBOSS);
- else if(layout->root->type == UI_LAYOUT_PANEL)
+ else if(layout->root->type == UI_LAYOUT_PANEL) {
but->type= MENU;
+ but->flag |= UI_TEXT_LEFT;
+ }
}
-void uiItemM(uiLayout *layout, bContext *C, char *name, int icon, char *menuname)
+void uiItemM(uiLayout *layout, bContext *C, char *menuname, char *name, int icon)
{
MenuType *mt;
@@ -1419,7 +1420,7 @@ static void menu_item_enum_opname_menu(bContext *C, uiLayout *layout, void *arg)
uiItemsEnumO(layout, lvl->opname, lvl->propname);
}
-void uiItemMenuEnumO(uiLayout *layout, char *name, int icon, char *opname, char *propname)
+void uiItemMenuEnumO(uiLayout *layout, char *opname, char *propname, char *name, int icon)
{
wmOperatorType *ot= WM_operatortype_find(opname, 0);
MenuItemLevel *lvl;
@@ -1450,7 +1451,7 @@ static void menu_item_enum_rna_menu(bContext *C, uiLayout *layout, void *arg)
uiItemsEnumR(layout, &lvl->rnapoin, lvl->propname);
}
-void uiItemMenuEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname)
+void uiItemMenuEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname, char *name, int icon)
{
MenuItemLevel *lvl;
PropertyRNA *prop;
@@ -2074,7 +2075,7 @@ uiLayout *uiLayoutBox(uiLayout *layout)
uiLayout *uiLayoutListBox(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, PointerRNA *actptr, PropertyRNA *actprop)
{
- uiLayoutItemBx *box= ui_layout_box(layout, LISTBOX);
+ uiLayoutItemBx *box= ui_layout_box(layout, LISTBOX);
uiBut *but= box->roundbox;
but->rnasearchpoin= *ptr;
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index c23e7f86833..20752099814 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -34,10 +34,6 @@
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_vec_types.h"
-#include "DNA_view2d_types.h"
#include "BLI_blenlib.h"
#include "BLI_math_color.h"
@@ -48,15 +44,16 @@
#include "RNA_access.h"
#include "RNA_define.h"
+#include "BIF_gl.h"
+
+#include "UI_interface.h"
+
+#include "interface_intern.h"
+
#include "WM_api.h"
#include "WM_types.h"
-#include "BIF_gl.h"
-#include "ED_screen.h"
-
-#include "UI_interface.h"
-#include "UI_resources.h"
/* ********************************************************** */
@@ -94,18 +91,20 @@ static int eyedropper_cancel(bContext *C, wmOperator *op)
static void eyedropper_sample(bContext *C, Eyedropper *eye, short mx, short my)
{
- float col[3];
+ if(RNA_property_type(eye->prop) == PROP_FLOAT) {
+ const int color_manage = CTX_data_scene(C)->r.color_mgt_flag & R_COLOR_MANAGEMENT;
+ float col[4];
+
+ RNA_property_float_get_array(&eye->ptr, eye->prop, col);
- glReadBuffer(GL_FRONT);
- glReadPixels(mx, my, 1, 1, GL_RGB, GL_FLOAT, col);
- glReadBuffer(GL_BACK);
+ glReadBuffer(GL_FRONT);
+ glReadPixels(mx, my, 1, 1, GL_RGB, GL_FLOAT, col);
+ glReadBuffer(GL_BACK);
- if(RNA_property_type(eye->prop) == PROP_FLOAT) {
-
if (RNA_property_array_length(&eye->ptr, eye->prop) < 3) return;
/* convert from screen (srgb) space to linear rgb space */
- if (RNA_property_subtype(eye->prop) == PROP_COLOR)
+ if (color_manage && RNA_property_subtype(eye->prop) == PROP_COLOR)
srgb_to_linearrgb_v3_v3(col, col);
RNA_property_float_set_array(&eye->ptr, eye->prop, col);
@@ -195,6 +194,29 @@ void UI_OT_eyedropper(wmOperatorType *ot)
/* properties */
}
+/* Reset Default Theme ------------------------ */
+
+static int reset_default_theme_exec(bContext *C, wmOperator *op)
+{
+ ui_theme_init_default();
+ WM_event_add_notifier(C, NC_WINDOW, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void UI_OT_reset_default_theme(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Reset to Default Theme";
+ ot->idname= "UI_OT_reset_default_theme";
+ ot->description= "Reset to the default theme colors";
+
+ /* callbacks */
+ ot->exec= reset_default_theme_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER;
+}
/* Copy Data Path Operator ------------------------ */
@@ -300,6 +322,8 @@ static int copy_to_selected_list(bContext *C, PointerRNA *ptr, ListBase *lb)
*lb = CTX_data_collection_get(C, "selected_editable_bones");
else if(RNA_struct_is_a(ptr->type, &RNA_PoseBone))
*lb = CTX_data_collection_get(C, "selected_pose_bones");
+ else if(RNA_struct_is_a(ptr->type, &RNA_Sequence))
+ *lb = CTX_data_collection_get(C, "selected_editable_sequences");
else
return 0;
@@ -386,6 +410,7 @@ void UI_OT_copy_to_selected_button(wmOperatorType *ot)
void UI_buttons_operatortypes(void)
{
WM_operatortype_append(UI_OT_eyedropper);
+ WM_operatortype_append(UI_OT_reset_default_theme);
WM_operatortype_append(UI_OT_copy_data_path_button);
WM_operatortype_append(UI_OT_reset_default_button);
WM_operatortype_append(UI_OT_copy_to_selected_button);
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index bf4a2a49fcb..61694b859c5 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -39,8 +39,6 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_userdef_types.h"
#include "BKE_context.h"
@@ -56,7 +54,6 @@
#include "ED_screen.h"
#include "UI_interface.h"
-#include "UI_view2d.h"
#include "interface_intern.h"
@@ -288,32 +285,6 @@ void uiEndPanel(uiBlock *block, int width, int height)
}
}
-#if 0
-void uiPanelToMouse(const bContext *C, Panel *pa)
-{
- /* global control over this feature; UI_PNL_TO_MOUSE only called for hotkey panels */
- if(U.uiflag & USER_PANELPINNED);
- else if(pa->control & UI_PNL_TO_MOUSE) {
- int mx, my;
-
- mx= CTX_wm_window(C)->eventstate->x;
- my= CTX_wm_window(C)->eventstate->y;
-
- pa->ofsx= mx-pa->sizex/2;
- pa->ofsy= my-pa->sizey/2;
-
- if(pa->flag & PNL_CLOSED) pa->flag &= ~PNL_CLOSED;
- }
-
- if(pa->control & UI_PNL_UNSTOW) {
- if(pa->flag & PNL_CLOSEDY) {
- pa->flag &= ~PNL_CLOSED;
- }
- }
-}
-#endif
-
-
static void ui_offset_panel_block(uiBlock *block)
{
uiStyle *style= U.uistyles.first;
@@ -659,6 +630,10 @@ static int find_highest_panel(const void *a1, const void *a2)
{
const PanelSort *ps1=a1, *ps2=a2;
+ /* stick uppermost header-less panels to the top of the region -
+ * prevent them from being sorted */
+ if (ps1->pa->sortorder < ps2->pa->sortorder && ps1->pa->type->flag & PNL_NO_HEADER) return -1;
+
if(ps1->pa->ofsy+ps1->pa->sizey < ps2->pa->ofsy+ps2->pa->sizey) return 1;
else if(ps1->pa->ofsy+ps1->pa->sizey > ps2->pa->ofsy+ps2->pa->sizey) return -1;
else if(ps1->pa->sortorder > ps2->pa->sortorder) return 1;
@@ -802,7 +777,7 @@ void uiBeginPanels(const bContext *C, ARegion *ar)
{
Panel *pa;
- /* set all panels as inactive, so that at the end we know
+ /* set all panels as inactive, so that at the end we know
* which ones were used */
for(pa=ar->panels.first; pa; pa=pa->next) {
if(pa->runtime_flag & PNL_ACTIVE)
@@ -867,6 +842,8 @@ void uiEndPanels(const bContext *C, ARegion *ar)
if(firstpa)
firstpa->runtime_flag |= PNL_FIRST;
+ UI_ThemeClearColor(TH_BACK);
+
/* draw panels, selected on top */
for(block= ar->uiblocks.first; block; block=block->next) {
if(block->active && block->panel && !(block->panel->flag & PNL_SELECT)) {
@@ -957,7 +934,7 @@ static void ui_do_drag(const bContext *C, wmEvent *event, Panel *panel)
/* this function is supposed to call general window drawing too */
/* also it supposes a block has panel, and isnt a menu */
-static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, int my)
+static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, int my, int event)
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= CTX_wm_region(C);
@@ -969,7 +946,11 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
/* XXX weak code, currently it assumes layout style for location of widgets */
/* check open/collapsed button */
- if(block->panel->flag & PNL_CLOSEDX) {
+ if(event==RETKEY)
+ button= 1;
+ else if(event==AKEY)
+ button= 1;
+ else if(block->panel->flag & PNL_CLOSEDX) {
if(my >= block->maxy) button= 1;
}
else if(block->panel->control & UI_PNL_CLOSE) {
@@ -1022,6 +1003,9 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
}
}
+/* XXX should become modal keymap */
+/* AKey is opening/closing panels, independent of button state now */
+
int ui_handler_panel_region(bContext *C, wmEvent *event)
{
ARegion *ar= CTX_wm_region(C);
@@ -1030,11 +1014,6 @@ int ui_handler_panel_region(bContext *C, wmEvent *event)
int retval, mx, my, inside_header= 0, inside_scale= 0, inside;
retval= WM_UI_HANDLER_CONTINUE;
-
- /* buttons get priority */
- if(ui_button_is_active(ar))
- return retval;
-
for(block=ar->uiblocks.last; block; block=block->prev) {
mx= event->x;
my= event->y;
@@ -1052,7 +1031,25 @@ int ui_handler_panel_region(bContext *C, wmEvent *event)
if(block->minx <= mx && block->maxx >= mx)
if(block->miny <= my && block->maxy+PNL_HEADER >= my)
inside= 1;
-
+
+ if(inside && event->val==KM_PRESS) {
+ if(event->type == AKEY && !ELEM4(1, event->ctrl, event->oskey, event->shift, event->alt)) {
+
+ if(pa->flag & PNL_CLOSEDY) {
+ if((block->maxy <= my) && (block->maxy+PNL_HEADER >= my))
+ ui_handle_panel_header(C, block, mx, my, event->type);
+ }
+ else
+ ui_handle_panel_header(C, block, mx, my, event->type);
+
+ continue;
+ }
+ }
+
+ /* on active button, do not handle panels */
+ if(ui_button_is_active(ar))
+ continue;
+
if(inside) {
/* clicked at panel header? */
if(pa->flag & PNL_CLOSEDX) {
@@ -1069,9 +1066,16 @@ int ui_handler_panel_region(bContext *C, wmEvent *event)
}
if(event->val==KM_PRESS) {
- if(event->type == LEFTMOUSE) {
+ /* open close on header */
+ if(ELEM(event->type, RETKEY, PADENTER)) {
+ if(inside_header) {
+ ui_handle_panel_header(C, block, mx, my, RETKEY);
+ break;
+ }
+ }
+ else if(event->type == LEFTMOUSE) {
if(inside_header) {
- ui_handle_panel_header(C, block, mx, my);
+ ui_handle_panel_header(C, block, mx, my, 0);
break;
}
else if(inside_scale && !(pa->flag & PNL_CLOSED)) {
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index bc03be84b65..f17a3371df1 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -30,10 +30,7 @@
#include "MEM_guardedalloc.h"
-#include "DNA_screen_types.h"
-#include "DNA_view2d_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -413,6 +410,15 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Python: %s.%s", RNA_struct_identifier(but->rnapoin.type), RNA_property_identifier(but->rnaprop));
data->linedark[data->totline]= 1;
data->totline++;
+
+ if(but->rnapoin.id.data) {
+ ID *id= but->rnapoin.id.data;
+ if(id->lib && id->lib->name) {
+ BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Library: %s", id->lib->name);
+ data->linedark[data->totline]= 1;
+ data->totline++;
+ }
+ }
}
else if (but->optype) {
PointerRNA *opptr;
@@ -447,10 +453,10 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
data->fstyle.align= UI_STYLE_TEXT_CENTER;
uiStyleFontSet(&data->fstyle);
- h= BLF_height(data->lines[0]);
+ h= BLF_height(data->fstyle.uifont_id, data->lines[0]);
for(a=0, fontw=0, fonth=0; a<data->totline; a++) {
- w= BLF_width(data->lines[a]);
+ w= BLF_width(data->fstyle.uifont_id, data->lines[a]);
fontw= MAX2(fontw, w);
fonth += (a == 0)? h: h+5;
}
@@ -1553,12 +1559,21 @@ void ui_set_but_hsv(uiBut *but)
}
/* also used by small picker, be careful with name checks below... */
-void ui_update_block_buts_rgb(uiBlock *block, float *rgb)
+void ui_update_block_buts_rgb(uiBlock *block, float *rgb, float *rhsv)
{
uiBut *bt;
float hsv[3];
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+ /* this is to keep the H and S value when V is equal to zero
+ * and we are working in HSV mode, of course!
+ */
+ if (rhsv) {
+ hsv[0]= rhsv[0];
+ hsv[1]= rhsv[1];
+ hsv[2]= rhsv[2];
+ }
+ else
+ rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
// this updates button strings, is hackish... but button pointers are on stack of caller function
for(bt= block->buttons.first; bt; bt= bt->next) {
@@ -1568,9 +1583,24 @@ void ui_update_block_buts_rgb(uiBlock *block, float *rgb)
}
else if(strcmp(bt->str, "Hex: ")==0) {
+ float rgb_gamma[3];
+ double intpart;
char col[16];
- sprintf(col, "%02X%02X%02X", (unsigned int)(rgb[0]*255.0), (unsigned int)(rgb[1]*255.0), (unsigned int)(rgb[2]*255.0));
+ /* Hex code is assumed to be in sRGB space (coming from other applications, web, etc) */
+
+ if (block->color_profile == BLI_PR_NONE) {
+ copy_v3_v3(rgb_gamma, rgb);
+ } else {
+ /* make an sRGB version, for Hex code */
+ linearrgb_to_srgb_v3_v3(rgb_gamma, rgb);
+ }
+
+ if (rgb_gamma[0] > 1.0f) rgb_gamma[0] = modf(rgb_gamma[0], &intpart);
+ if (rgb_gamma[1] > 1.0f) rgb_gamma[1] = modf(rgb_gamma[1], &intpart);
+ if (rgb_gamma[2] > 1.0f) rgb_gamma[2] = modf(rgb_gamma[2], &intpart);
+
+ sprintf(col, "%02X%02X%02X", FTOCHAR(rgb_gamma[0]), FTOCHAR(rgb_gamma[1]), FTOCHAR(rgb_gamma[2]));
strcpy(bt->poin, col);
}
@@ -1609,7 +1639,7 @@ static void do_picker_rna_cb(bContext *C, void *bt1, void *unused)
if (prop) {
RNA_property_float_get_array(&ptr, prop, rgb);
- ui_update_block_buts_rgb(but->block, rgb);
+ ui_update_block_buts_rgb(but->block, rgb, NULL);
}
if(popup)
@@ -1625,7 +1655,7 @@ static void do_hsv_rna_cb(bContext *C, void *bt1, void *hsv_arg)
hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2);
- ui_update_block_buts_rgb(but->block, rgb);
+ ui_update_block_buts_rgb(but->block, rgb, hsv);
if(popup)
popup->menuretval= UI_RETURN_UPDATE;
@@ -1640,7 +1670,13 @@ static void do_hex_rna_cb(bContext *C, void *bt1, void *hexcl)
hex_to_rgb(hexcol, rgb, rgb+1, rgb+2);
- ui_update_block_buts_rgb(but->block, rgb);
+ /* Hex code is assumed to be in sRGB space (coming from other applications, web, etc) */
+ if (but->block->color_profile != BLI_PR_NONE) {
+ /* so we need to linearise it for Blender */
+ srgb_to_linearrgb_v3_v3(rgb, rgb);
+ }
+
+ ui_update_block_buts_rgb(but->block, rgb, NULL);
if(popup)
popup->menuretval= UI_RETURN_UPDATE;
@@ -1662,6 +1698,13 @@ static void picker_new_hide_reveal(uiBlock *block, short colormode)
/* tag buttons */
for(bt= block->buttons.first; bt; bt= bt->next) {
+ if (bt->type == LABEL) {
+ if( bt->str[1]=='G') {
+ if(colormode==2) bt->flag &= ~UI_HIDDEN;
+ else bt->flag |= UI_HIDDEN;
+ }
+ }
+
if(bt->type==NUMSLI || bt->type==TEX) {
if( bt->str[1]=='e') {
if(colormode==2) bt->flag &= ~UI_HIDDEN;
@@ -1702,11 +1745,11 @@ static void circle_picker(uiBlock *block, PointerRNA *ptr, const char *propname)
uiBut *bt;
/* HS circle */
- bt= uiDefButR(block, HSVCIRCLE, 0, "", 0, 0, PICKER_H, PICKER_W, ptr, propname, -1, 0.0, 0.0, 0, 0, "");
+ bt= uiDefButR(block, HSVCIRCLE, 0, "", 0, 0, PICKER_H, PICKER_W, ptr, propname, 0, 0.0, 0.0, 0, 0, "");
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
/* value */
- bt= uiDefButR(block, HSVCUBE, 0, "", PICKER_W+PICKER_SPACE,0,PICKER_BAR,PICKER_H, ptr, propname, -1, 0.0, 0.0, UI_GRAD_V_ALT, 0, "");
+ bt= uiDefButR(block, HSVCUBE, 0, "", PICKER_W+PICKER_SPACE,0,PICKER_BAR,PICKER_H, ptr, propname, 0, 0.0, 0.0, UI_GRAD_V_ALT, 0, "");
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
}
@@ -1717,11 +1760,11 @@ static void square_picker(uiBlock *block, PointerRNA *ptr, const char *propname,
int bartype = type + 3;
/* HS square */
- bt= uiDefButR(block, HSVCUBE, 0, "", 0, PICKER_BAR+PICKER_SPACE, PICKER_TOTAL_W, PICKER_H, ptr, propname, -1, 0.0, 0.0, type, 0, "");
+ bt= uiDefButR(block, HSVCUBE, 0, "", 0, PICKER_BAR+PICKER_SPACE, PICKER_TOTAL_W, PICKER_H, ptr, propname, 0, 0.0, 0.0, type, 0, "");
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
/* value */
- bt= uiDefButR(block, HSVCUBE, 0, "", 0, 0, PICKER_TOTAL_W, PICKER_BAR, ptr, propname, -1, 0.0, 0.0, bartype, 0, "");
+ bt= uiDefButR(block, HSVCUBE, 0, "", 0, 0, PICKER_TOTAL_W, PICKER_BAR, ptr, propname, 0, 0.0, 0.0, bartype, 0, "");
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
}
@@ -1735,17 +1778,27 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR
static char tip[50];
static float hsv[3];
static char hexcol[128];
+ float rgb_gamma[3];
+ float min, max, step, precision;
const char *propname = RNA_property_identifier(prop);
width= PICKER_TOTAL_W;
butwidth = width - UI_UNIT_X - 10;
/* existence of profile means storage is in linear colour space, with display correction */
- if (block->color_profile == BLI_PR_NONE)
+ if (block->color_profile == BLI_PR_NONE) {
sprintf(tip, "Value in Display Color Space");
- else
+ copy_v3_v3(rgb_gamma, rgb);
+ } else {
sprintf(tip, "Value in Linear RGB Color Space");
+ /* make an sRGB version, for Hex code */
+ linearrgb_to_srgb_v3_v3(rgb_gamma, rgb);
+ }
+ /* sneaky way to check for alpha */
+ rgb[3]= FLT_MAX;
+
+ RNA_property_float_ui_range(ptr, prop, &min, &max, &step, &precision);
RNA_property_float_get_array(ptr, prop, rgb);
rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
@@ -1779,13 +1832,14 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR
/* RGB values */
uiBlockBeginAlign(block);
- bt= uiDefButR(block, NUMSLI, 0, "R ", 0, -60, butwidth, UI_UNIT_Y, ptr, propname, 0, 0.0, 0.0, 0, 0, "");
+ bt= uiDefButR(block, NUMSLI, 0, "R ", 0, -60, butwidth, UI_UNIT_Y, ptr, propname, 0, 0.0, 0.0, 0, 3, "");
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
- bt= uiDefButR(block, NUMSLI, 0, "G ", 0, -80, butwidth, UI_UNIT_Y, ptr, propname, 1, 0.0, 0.0, 0, 0, "");
+ bt= uiDefButR(block, NUMSLI, 0, "G ", 0, -80, butwidth, UI_UNIT_Y, ptr, propname, 1, 0.0, 0.0, 0, 3, "");
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
- bt= uiDefButR(block, NUMSLI, 0, "B ", 0, -100, butwidth, UI_UNIT_Y, ptr, propname, 2, 0.0, 0.0, 0, 0, "");
+ bt= uiDefButR(block, NUMSLI, 0, "B ", 0, -100, butwidth, UI_UNIT_Y, ptr, propname, 2, 0.0, 0.0, 0, 3, "");
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
- // could use uiItemFullR(col, "", 0, ptr, prop, -1, 0, UI_ITEM_R_EXPAND|UI_ITEM_R_SLIDER);
+
+ // could use uiItemFullR(col, ptr, prop, -1, 0, UI_ITEM_R_EXPAND|UI_ITEM_R_SLIDER, "", 0);
// but need to use uiButSetFunc for updating other fake buttons
/* HSV values */
@@ -1794,15 +1848,25 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR
uiButSetFunc(bt, do_hsv_rna_cb, bt, hsv);
bt= uiDefButF(block, NUMSLI, 0, "S ", 0, -80, butwidth, UI_UNIT_Y, hsv+1, 0.0, 1.0, 10, 3, "");
uiButSetFunc(bt, do_hsv_rna_cb, bt, hsv);
- bt= uiDefButF(block, NUMSLI, 0, "V ", 0, -100, butwidth, UI_UNIT_Y, hsv+2, 0.0, 1.0, 10, 3, "");
+ bt= uiDefButF(block, NUMSLI, 0, "V ", 0, -100, butwidth, UI_UNIT_Y, hsv+2, 0.0, max, 10, 3, "");
uiButSetFunc(bt, do_hsv_rna_cb, bt, hsv);
uiBlockEndAlign(block);
-
+
+ if(rgb[3] != FLT_MAX) {
+ bt= uiDefButR(block, NUMSLI, 0, "A ", 0, -120, butwidth, UI_UNIT_Y, ptr, propname, 3, 0.0, 0.0, 0, 0, "");
+ uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
+ }
+ else {
+ rgb[3]= 1.0f;
+ }
+
rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
- sprintf(hexcol, "%02X%02X%02X", (unsigned int)(rgb[0]*255.0), (unsigned int)(rgb[1]*255.0), (unsigned int)(rgb[2]*255.0));
+
+ sprintf(hexcol, "%02X%02X%02X", FTOCHAR(rgb_gamma[0]), FTOCHAR(rgb_gamma[1]), FTOCHAR(rgb_gamma[2]));
bt= uiDefBut(block, TEX, 0, "Hex: ", 0, -60, butwidth, UI_UNIT_Y, hexcol, 0, 8, 0, 0, "Hex triplet for color (#RRGGBB)");
uiButSetFunc(bt, do_hex_rna_cb, bt, hexcol);
+ uiDefBut(block, LABEL, 0, "(Gamma Corrected)", 0, -80, butwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
picker_new_hide_reveal(block, colormode);
}
@@ -1833,7 +1897,7 @@ static int ui_picker_small_wheel(const bContext *C, uiBlock *block, wmEvent *eve
ui_set_but_vectorf(but, col);
- ui_update_block_buts_rgb(block, col);
+ ui_update_block_buts_rgb(block, col, NULL);
if(popup)
popup->menuretval= UI_RETURN_UPDATE;
@@ -2054,13 +2118,13 @@ uiPopupBlockHandle *ui_popup_menu_create(bContext *C, ARegion *butregion, uiBut
pup->mx= window->eventstate->x;
pup->my= window->eventstate->y;
pup->popup= 1;
+ pup->block->flag |= UI_BLOCK_NO_FLIP;
}
if(str) {
/* menu is created from a string */
pup->menu_func= ui_block_func_MENUSTR;
pup->menu_arg= str;
- // XXX pup->block->flag |= UI_BLOCK_NO_FLIP;
}
else {
/* menu is created from a callback */
@@ -2264,7 +2328,7 @@ void uiPupMenuReports(bContext *C, ReportList *reports)
ds= BLI_dynstr_new();
for(report=reports->list.first; report; report=report->next) {
- if(report->type <= reports->printlevel)
+ if(report->type < reports->printlevel)
; /* pass */
else if(report->type >= RPT_ERROR)
BLI_dynstr_appendf(ds, "Error %%i%d%%t|%s", ICON_ERROR, report->message);
diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c
index 777fb7806ad..e3317e5598f 100644
--- a/source/blender/editors/interface/interface_style.c
+++ b/source/blender/editors/interface/interface_style.c
@@ -30,10 +30,8 @@
#include "MEM_guardedalloc.h"
-#include "DNA_ID.h"
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_listbase.h"
@@ -50,13 +48,8 @@
#include "BLF_api.h"
#include "UI_interface.h"
-#include "UI_interface_icons.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "ED_datafiles.h"
-#include "ED_util.h"
-#include "ED_types.h"
#include "interface_intern.h"
@@ -154,34 +147,34 @@ void uiStyleFontDraw(uiFontStyle *fs, rcti *rect, char *str)
uiStyleFontSet(fs);
- height= BLF_height("2"); /* correct offset is on baseline, the j is below that */
+ height= BLF_height(fs->uifont_id, "2"); /* correct offset is on baseline, the j is below that */
yofs= floor( 0.5f*(rect->ymax - rect->ymin - height));
if(fs->align==UI_STYLE_TEXT_CENTER)
- xofs= floor( 0.5f*(rect->xmax - rect->xmin - BLF_width(str)));
+ xofs= floor( 0.5f*(rect->xmax - rect->xmin - BLF_width(fs->uifont_id, str)));
else if(fs->align==UI_STYLE_TEXT_RIGHT)
- xofs= rect->xmax - rect->xmin - BLF_width(str) - 1;
+ xofs= rect->xmax - rect->xmin - BLF_width(fs->uifont_id, str) - 1;
/* clip is very strict, so we give it some space */
- BLF_clipping(rect->xmin-1, rect->ymin-4, rect->xmax+1, rect->ymax+4);
- BLF_enable(BLF_CLIPPING);
- BLF_position(rect->xmin+xofs, rect->ymin+yofs, 0.0f);
+ BLF_clipping(fs->uifont_id, rect->xmin-1, rect->ymin-4, rect->xmax+1, rect->ymax+4);
+ BLF_enable(fs->uifont_id, BLF_CLIPPING);
+ BLF_position(fs->uifont_id, rect->xmin+xofs, rect->ymin+yofs, 0.0f);
if (fs->shadow) {
- BLF_enable(BLF_SHADOW);
- BLF_shadow(fs->shadow, fs->shadowcolor, fs->shadowcolor, fs->shadowcolor, fs->shadowalpha);
- BLF_shadow_offset(fs->shadx, fs->shady);
+ BLF_enable(fs->uifont_id, BLF_SHADOW);
+ BLF_shadow(fs->uifont_id, fs->shadow, fs->shadowcolor, fs->shadowcolor, fs->shadowcolor, fs->shadowalpha);
+ BLF_shadow_offset(fs->uifont_id, fs->shadx, fs->shady);
}
if (fs->kerning == 1)
- BLF_enable(BLF_KERNING_DEFAULT);
+ BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
- BLF_draw(str);
- BLF_disable(BLF_CLIPPING);
+ BLF_draw(fs->uifont_id, str);
+ BLF_disable(fs->uifont_id, BLF_CLIPPING);
if (fs->shadow)
- BLF_disable(BLF_SHADOW);
+ BLF_disable(fs->uifont_id, BLF_SHADOW);
if (fs->kerning == 1)
- BLF_disable(BLF_KERNING_DEFAULT);
+ BLF_disable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
/* drawn same as above, but at 90 degree angle */
@@ -194,7 +187,7 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, char *str)
uiStyleFontSet(fs);
- height= BLF_height("2"); /* correct offset is on baseline, the j is below that */
+ height= BLF_height(fs->uifont_id, "2"); /* correct offset is on baseline, the j is below that */
/* becomes x-offset when rotated */
xofs= floor( 0.5f*(rect->ymax - rect->ymin - height)) + 1;
@@ -202,7 +195,7 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, char *str)
/* rotate counter-clockwise for now (assumes left-to-right language)*/
xofs+= height;
- yofs= BLF_width(str) + 5;
+ yofs= BLF_width(fs->uifont_id, str) + 5;
angle= 90.0f;
/* translate rect to vertical */
@@ -213,29 +206,29 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, char *str)
/* clip is very strict, so we give it some space */
/* clipping is done without rotation, so make rect big enough to contain both positions */
- BLF_clipping(txtrect.xmin-1, txtrect.ymin-yofs-xofs-4, rect->xmax+1, rect->ymax+4);
- BLF_enable(BLF_CLIPPING);
- BLF_position(txtrect.xmin+xofs, txtrect.ymax-yofs, 0.0f);
+ BLF_clipping(fs->uifont_id, txtrect.xmin-1, txtrect.ymin-yofs-xofs-4, rect->xmax+1, rect->ymax+4);
+ BLF_enable(fs->uifont_id, BLF_CLIPPING);
+ BLF_position(fs->uifont_id, txtrect.xmin+xofs, txtrect.ymax-yofs, 0.0f);
- BLF_enable(BLF_ROTATION);
- BLF_rotation(angle);
+ BLF_enable(fs->uifont_id, BLF_ROTATION);
+ BLF_rotation(fs->uifont_id, angle);
if (fs->shadow) {
- BLF_enable(BLF_SHADOW);
- BLF_shadow(fs->shadow, fs->shadowcolor, fs->shadowcolor, fs->shadowcolor, fs->shadowalpha);
- BLF_shadow_offset(fs->shadx, fs->shady);
+ BLF_enable(fs->uifont_id, BLF_SHADOW);
+ BLF_shadow(fs->uifont_id, fs->shadow, fs->shadowcolor, fs->shadowcolor, fs->shadowcolor, fs->shadowalpha);
+ BLF_shadow_offset(fs->uifont_id, fs->shadx, fs->shady);
}
if (fs->kerning == 1)
- BLF_enable(BLF_KERNING_DEFAULT);
+ BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
- BLF_draw(str);
- BLF_disable(BLF_ROTATION);
- BLF_disable(BLF_CLIPPING);
+ BLF_draw(fs->uifont_id, str);
+ BLF_disable(fs->uifont_id, BLF_ROTATION);
+ BLF_disable(fs->uifont_id, BLF_CLIPPING);
if (fs->shadow)
- BLF_disable(BLF_SHADOW);
+ BLF_disable(fs->uifont_id, BLF_SHADOW);
if (fs->kerning == 1)
- BLF_disable(BLF_KERNING_DEFAULT);
+ BLF_disable(fs->uifont_id, BLF_KERNING_DEFAULT);
}
/* ************** helpers ************************ */
@@ -244,9 +237,19 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, char *str)
int UI_GetStringWidth(char *str)
{
uiStyle *style= U.uistyles.first;
+ uiFontStyle *fstyle= &style->widget;
+ int width;
- uiStyleFontSet(&style->widget);
- return BLF_width(str);
+ if (fstyle->kerning==1) /* for BLF_width */
+ BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+
+ uiStyleFontSet(fstyle);
+ width= BLF_width(fstyle->uifont_id, str);
+
+ if (fstyle->kerning==1)
+ BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+
+ return width;
}
/* temporarily, does widget font */
@@ -255,8 +258,8 @@ void UI_DrawString(float x, float y, char *str)
uiStyle *style= U.uistyles.first;
uiStyleFontSet(&style->widget);
- BLF_position(x, y, 0.0f);
- BLF_draw(str);
+ BLF_position(style->widget.uifont_id, x, y, 0.0f);
+ BLF_draw(style->widget.uifont_id, str);
}
/* ************** init exit ************************ */
@@ -296,14 +299,13 @@ void uiStyleInit(void)
printf("uiStyleInit error, no fonts available\n");
}
else {
- BLF_set(font->blf_id);
/* ? just for speed to initialize?
* Yes, this build the glyph cache and create
* the texture.
*/
- BLF_size(11, U.dpi);
- BLF_size(12, U.dpi);
- BLF_size(14, U.dpi);
+ BLF_size(font->blf_id, 11, U.dpi);
+ BLF_size(font->blf_id, 12, U.dpi);
+ BLF_size(font->blf_id, 14, U.dpi);
}
}
@@ -316,7 +318,6 @@ void uiStyleFontSet(uiFontStyle *fs)
{
uiFont *font= uifont_to_blfont(fs->uifont_id);
- BLF_set(font->blf_id);
- BLF_size(fs->points, U.dpi);
+ BLF_size(font->blf_id, fs->points, U.dpi);
}
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index e3dac41979d..f951def739f 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -28,9 +28,9 @@
#include "MEM_guardedalloc.h"
-#include "DNA_color_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
+#include "DNA_userdef_types.h"
+#include "DNA_windowmanager_types.h"
#include "BLI_string.h"
@@ -40,7 +40,9 @@
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_main.h"
+#include "BKE_texture.h"
#include "BKE_utildefines.h"
+#include "BKE_report.h"
#include "ED_screen.h"
#include "ED_render.h"
@@ -51,9 +53,10 @@
#include "WM_types.h"
#include "UI_interface.h"
-#include "UI_resources.h"
#include "interface_intern.h"
+#include "BLF_api.h"
+
void ui_template_fix_linking()
{
}
@@ -78,52 +81,56 @@ void uiTemplateDopeSheetFilter(uiLayout *layout, bContext *C, PointerRNA *ptr)
uiLayout *row= layout;
short nlaActive= ((sa) && (sa->spacetype==SPACE_NLA));
- /* more 'generic' filtering options */
+ /* most 'generic' filtering options */
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, ptr, "only_selected", 0);
- uiItemR(row, "", 0, ptr, "display_transforms", 0); // xxx: include in another position instead?
+ uiItemR(row, ptr, "only_selected", 0, "", 0);
+ uiItemR(row, ptr, "display_hidden", 0, "", 0);
+
+ /* object-level filtering options */
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "display_transforms", 0, "", 0);
if (nlaActive)
- uiItemR(row, "", 0, ptr, "include_missing_nla", 0);
+ uiItemR(row, ptr, "include_missing_nla", 0, "", 0);
/* datatype based - only available datatypes are shown */
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, ptr, "display_scene", 0);
- uiItemR(row, "", 0, ptr, "display_world", 0);
- uiItemR(row, "", 0, ptr, "display_node", 0);
+ uiItemR(row, ptr, "display_scene", 0, "", 0);
+ uiItemR(row, ptr, "display_world", 0, "", 0);
+ uiItemR(row, ptr, "display_node", 0, "", 0);
if (mainptr && mainptr->mesh.first)
- uiItemR(row, "", 0, ptr, "display_mesh", 0);
+ uiItemR(row, ptr, "display_mesh", 0, "", 0);
if (mainptr && mainptr->key.first)
- uiItemR(row, "", 0, ptr, "display_shapekeys", 0);
+ uiItemR(row, ptr, "display_shapekeys", 0, "", 0);
if (mainptr && mainptr->mat.first)
- uiItemR(row, "", 0, ptr, "display_material", 0);
+ uiItemR(row, ptr, "display_material", 0, "", 0);
if (mainptr && mainptr->lamp.first)
- uiItemR(row, "", 0, ptr, "display_lamp", 0);
+ uiItemR(row, ptr, "display_lamp", 0, "", 0);
if (mainptr && mainptr->tex.first)
- uiItemR(row, "", 0, ptr, "display_texture", 0);
+ uiItemR(row, ptr, "display_texture", 0, "", 0);
if (mainptr && mainptr->camera.first)
- uiItemR(row, "", 0, ptr, "display_camera", 0);
+ uiItemR(row, ptr, "display_camera", 0, "", 0);
if (mainptr && mainptr->curve.first)
- uiItemR(row, "", 0, ptr, "display_curve", 0);
+ uiItemR(row, ptr, "display_curve", 0, "", 0);
if (mainptr && mainptr->mball.first)
- uiItemR(row, "", 0, ptr, "display_metaball", 0);
+ uiItemR(row, ptr, "display_metaball", 0, "", 0);
if (mainptr && mainptr->armature.first)
- uiItemR(row, "", 0, ptr, "display_armature", 0);
+ uiItemR(row, ptr, "display_armature", 0, "", 0);
if (mainptr && mainptr->particle.first)
- uiItemR(row, "", 0, ptr, "display_particle", 0);
+ uiItemR(row, ptr, "display_particle", 0, "", 0);
/* group-based filtering (only when groups are available */
if (mainptr && mainptr->group.first) {
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, ptr, "only_group_objects", 0);
+ uiItemR(row, ptr, "only_group_objects", 0, "", 0);
/* if enabled, show the group selection field too */
if (RNA_boolean_get(ptr, "only_group_objects"))
- uiItemR(row, "", 0, ptr, "filtering_group", 0);
+ uiItemR(row, ptr, "filtering_group", 0, "", 0);
}
}
@@ -135,6 +142,8 @@ typedef struct TemplateID {
ListBase *idlb;
int prv_rows, prv_cols;
+
+ char filterop[64];
} TemplateID;
/* Search browse menu, assign */
@@ -164,8 +173,52 @@ static void id_search_cb(const bContext *C, void *arg_template, char *str, uiSea
/* ID listbase */
for(id= lb->first; id; id= id->next) {
if(!((flag & PROP_ID_SELF_CHECK) && id == id_from)) {
+ int filter_yes;
+
+ filter_yes= 0;
+
+ /* use filter */
+ if (template->filterop[0] != 0) {
+ PointerRNA ptr;
+ ReportList reports;
+ FunctionRNA *func;
+ ParameterList parms;
+
+ RNA_id_pointer_create(id, &ptr);
+
+ BKE_reports_init(&reports, RPT_PRINT);
+
+ func= RNA_struct_find_function(&ptr, template->filterop);
+
+ if (func) {
+ RNA_parameter_list_create(&parms, &ptr, func);
+
+ RNA_parameter_set_lookup(&parms, "context", &C);
+
+ if (RNA_function_call(C, &reports, &ptr, func, &parms) == 0) {
+ int* ret;
+ RNA_parameter_get_lookup(&parms, "ret", (void **)&ret);
+
+ if (!(*ret)) {
+ RNA_parameter_list_free(&parms);
+ continue;
+ }
+ else {
+ filter_yes= 1;
+ }
+ }
+
+ RNA_parameter_list_free(&parms);
+ }
+ }
+
+ /* hide dot-datablocks, but only if filter does not force it visible */
+ if(!filter_yes && U.uiflag & USER_HIDE_DOT)
+ if ((id->name[2]=='.') && (str[0] != '.'))
+ continue;
+
if(BLI_strcasestr(id->name+2, str)) {
- iconid= ui_id_icon_get((bContext*)C, id, 0);
+ iconid= ui_id_icon_get((bContext*)C, id, 1);
if(!uiSearchItemAdd(items, id->name+2, id, iconid))
break;
@@ -328,7 +381,7 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event)
}
}
-static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, StructRNA *type, int flag, char *newop, char *openop, char *unlinkop)
+static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, StructRNA *type, int flag, char *newop, char *openop, char *unlinkop, char *filterop)
{
uiBut *but;
uiBlock *block;
@@ -420,7 +473,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
int w= id?UI_UNIT_X: (flag & UI_ID_OPEN)? UI_UNIT_X*3: UI_UNIT_X*6;
if(newop) {
- but= uiDefIconTextButO(block, BUT, newop, WM_OP_EXEC_DEFAULT, ICON_ZOOMIN, (id)? "": "New", 0, 0, w, UI_UNIT_Y, NULL);
+ but= uiDefIconTextButO(block, BUT, newop, WM_OP_INVOKE_DEFAULT, ICON_ZOOMIN, (id)? "": "New", 0, 0, w, UI_UNIT_Y, NULL);
uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_ADD_NEW));
}
else {
@@ -468,7 +521,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
uiBlockEndAlign(block);
}
-static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, int flag, int prv_rows, int prv_cols)
+static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, char* filterop, int flag, int prv_rows, int prv_cols)
{
TemplateID *template;
PropertyRNA *prop;
@@ -486,40 +539,44 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, char
template->prop= prop;
template->prv_rows = prv_rows;
template->prv_cols = prv_cols;
-
+
+ if (filterop)
+ BLI_strncpy(template->filterop, filterop, sizeof(template->filterop));
+ else
+ template->filterop[0] = 0;
+
if(newop)
flag |= UI_ID_ADD_NEW;
if(openop)
flag |= UI_ID_OPEN;
type= RNA_property_pointer_type(ptr, prop);
- template->idlb= wich_libbase(CTX_data_main(C), RNA_type_to_ID_code(type));
+ template->idlb= which_libbase(CTX_data_main(C), RNA_type_to_ID_code(type));
/* create UI elements for this template
* - template_ID makes a copy of the template data and assigns it to the relevant buttons
*/
if(template->idlb) {
uiLayoutRow(layout, 1);
- template_ID(C, layout, template, type, flag, newop, openop, unlinkop);
+ template_ID(C, layout, template, type, flag, newop, openop, unlinkop, filterop);
}
MEM_freeN(template);
-
}
-void uiTemplateID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop)
+void uiTemplateID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, char *filterop)
{
- ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, UI_ID_BROWSE|UI_ID_RENAME|UI_ID_DELETE, 0, 0);
+ ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, filterop, UI_ID_BROWSE|UI_ID_RENAME|UI_ID_DELETE, 0, 0);
}
-void uiTemplateIDBrowse(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop)
+void uiTemplateIDBrowse(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, char *filterop)
{
- ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, UI_ID_BROWSE|UI_ID_RENAME, 0, 0);
+ ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, filterop, UI_ID_BROWSE|UI_ID_RENAME, 0, 0);
}
-void uiTemplateIDPreview(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, int rows, int cols)
+void uiTemplateIDPreview(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, char *filterop, int rows, int cols)
{
- ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, UI_ID_BROWSE|UI_ID_RENAME|UI_ID_DELETE|UI_ID_PREVIEWS, rows, cols);
+ ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, filterop, UI_ID_BROWSE|UI_ID_RENAME|UI_ID_DELETE|UI_ID_PREVIEWS, rows, cols);
}
/************************ ID Chooser Template ***************************/
@@ -558,10 +615,10 @@ void uiTemplateAnyID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
/* ID-Type Selector - just have a menu of icons */
// FIXME: the icon-only setting doesn't work when we supply a blank name
- uiItemFullR(row, "", 0, ptr, propType, 0, 0, UI_ITEM_R_ICON_ONLY);
+ uiItemFullR(row, ptr, propType, 0, 0, UI_ITEM_R_ICON_ONLY, "", 0);
/* ID-Block Selector - just use pointer widget... */
- uiItemFullR(row, "", 0, ptr, propID, 0, 0, 0);
+ uiItemFullR(row, ptr, propID, 0, 0, 0, "", 0);
}
/********************* RNA Path Builder Template ********************/
@@ -590,7 +647,7 @@ void uiTemplatePathBuilder(uiLayout *layout, bContext *C, PointerRNA *ptr, char
row= uiLayoutRow(layout, 1);
/* Path (existing string) Widget */
- uiItemR(row, text, ICON_RNA, ptr, propname, 0);
+ uiItemR(row, ptr, propname, 0, text, ICON_RNA);
// TODO: attach something to this to make allow searching of nested properties to 'build' the path
}
@@ -602,9 +659,6 @@ void uiTemplatePathBuilder(uiLayout *layout, bContext *C, PointerRNA *ptr, char
#include <string.h>
#include "DNA_object_force.h"
-#include "DNA_object_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_scene_types.h"
#include "BKE_depsgraph.h"
#include "BKE_DerivedMesh.h"
@@ -614,7 +668,6 @@ void uiTemplatePathBuilder(uiLayout *layout, bContext *C, PointerRNA *ptr, char
#include "BKE_particle.h"
#include "BKE_report.h"
-#include "UI_resources.h"
#include "ED_util.h"
#include "BLI_math.h"
@@ -721,7 +774,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
uiBlockSetEmboss(block, UI_EMBOSSN);
/* Open/Close ................................. */
- uiItemR(row, "", 0, &ptr, "expanded", 0);
+ uiItemR(row, &ptr, "expanded", 0, "", 0);
/* modifier-type icon */
uiItemL(row, "", RNA_struct_ui_icon(ptr.type));
@@ -741,7 +794,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
block = uiLayoutGetBlock(row);
/* modifier name */
- uiItemR(row, "", 0, &ptr, "name", 0);
+ uiItemR(row, &ptr, "name", 0, "", 0);
if (compact) {
/* insert delete button at end of top row before splitting to second line */
@@ -763,11 +816,11 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
if ( ((md->type!=eModifierType_Softbody && md->type!=eModifierType_Collision) || !(ob->pd && ob->pd->deflect))
&& (md->type!=eModifierType_Surface) )
{
- uiItemR(row, "", 0, &ptr, "render", 0);
- uiItemR(row, "", 0, &ptr, "realtime", 0);
+ uiItemR(row, &ptr, "render", 0, "", 0);
+ uiItemR(row, &ptr, "realtime", 0, "", 0);
if (mti->flags & eModifierTypeFlag_SupportsEditmode)
- uiItemR(row, "", 0, &ptr, "editmode", 0);
+ uiItemR(row, &ptr, "editmode", 0, "", 0);
}
if ((ob->type==OB_MESH) && modifier_couldBeCage(scene, md) && (index <= lastCageIndex))
{
@@ -805,9 +858,9 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
uiBlockSetButLock(block, object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
if (md->type==eModifierType_ParticleSystem) {
- ParticleSystem *psys= ((ParticleSystemModifierData *)md)->psys;
+ ParticleSystem *psys= ((ParticleSystemModifierData *)md)->psys;
- if (!(ob->mode & OB_MODE_PARTICLE_EDIT) && psys->pathcache) {
+ if (!(ob->mode & OB_MODE_PARTICLE_EDIT) && psys->pathcache) {
if(ELEM(psys->part->ren_as, PART_DRAW_GR, PART_DRAW_OB))
uiItemO(row, "Convert", 0, "OBJECT_OT_duplicates_make_real");
else if(psys->part->ren_as == PART_DRAW_PATH)
@@ -815,10 +868,11 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
}
}
else {
- uiItemEnumO(row, "Apply", 0, "OBJECT_OT_modifier_apply", "apply_as", MODIFIER_APPLY_DATA);
+ uiLayoutSetOperatorContext(row, WM_OP_INVOKE_DEFAULT);
+ uiItemEnumO(row, "OBJECT_OT_modifier_apply", "Apply", 0, "apply_as", MODIFIER_APPLY_DATA);
if (modifier_sameTopology(md))
- uiItemEnumO(row, "Apply as Shape", 0, "OBJECT_OT_modifier_apply", "apply_as", MODIFIER_APPLY_SHAPE);
+ uiItemEnumO(row, "OBJECT_OT_modifier_apply", "Apply as Shape", 0, "apply_as", MODIFIER_APPLY_SHAPE);
}
uiBlockClearButLock(block);
@@ -884,7 +938,6 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr, int
/************************ Constraint Template *************************/
-#include "DNA_action_types.h"
#include "DNA_constraint_types.h"
#include "BKE_action.h"
@@ -939,88 +992,15 @@ static void constraint_active_func(bContext *C, void *ob_v, void *con_v)
ED_object_constraint_set_active(ob_v, con_v);
}
-
-/* some commonly used macros in the constraints drawing code */
-#define is_armature_target(target) (target && target->type==OB_ARMATURE)
-#define is_armature_owner(ob) ((ob->type == OB_ARMATURE) && (ob->mode & OB_MODE_POSE))
-#define is_geom_target(target) (target && (ELEM(target->type, OB_MESH, OB_LATTICE)) )
-
-/* Helper function for draw constraint - draws constraint space stuff
- * This function should not be called if no menus are required
- * owner/target: -1 = don't draw menu; 0= not posemode, 1 = posemode
- */
-static void draw_constraint_spaceselect (uiBlock *block, bConstraint *con, short xco, short yco, short owner, short target)
-{
- short tarx, ownx, iconx;
- short bwidth;
- short iconwidth = 20;
-
- /* calculate sizes and placement of menus */
- if (owner == -1) {
- bwidth = 125;
- tarx = 120;
- ownx = 0;
- }
- else if (target == -1) {
- bwidth = 125;
- tarx = 0;
- ownx = 120;
- }
- else {
- bwidth = 100;
- tarx = 85;
- iconx = tarx + bwidth + 5;
- ownx = tarx + bwidth + iconwidth + 10;
- }
-
-
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Convert:", xco, yco, 80,18, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
- /* Target-Space */
- if (target == 1) {
- uiDefButC(block, MENU, B_CONSTRAINT_TEST, "Target Space %t|World Space %x0|Pose Space %x2|Local with Parent %x3|Local Space %x1",
- tarx, yco, bwidth, 18, &con->tarspace, 0, 0, 0, 0, "Choose space that target is evaluated in");
- }
- else if (target == 0) {
- uiDefButC(block, MENU, B_CONSTRAINT_TEST, "Target Space %t|World Space %x0|Local (Without Parent) Space %x1",
- tarx, yco, bwidth, 18, &con->tarspace, 0, 0, 0, 0, "Choose space that target is evaluated in");
- }
-
- if ((target != -1) && (owner != -1))
- uiDefIconBut(block, LABEL, 0, ICON_ARROW_LEFTRIGHT,
- iconx, yco, 20, 20, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
- /* Owner-Space */
- if (owner == 1) {
- uiDefButC(block, MENU, B_CONSTRAINT_TEST, "Owner Space %t|World Space %x0|Pose Space %x2|Local with Parent %x3|Local Space %x1",
- ownx, yco, bwidth, 18, &con->ownspace, 0, 0, 0, 0, "Choose space that owner is evaluated in");
- }
- else if (owner == 0) {
- uiDefButC(block, MENU, B_CONSTRAINT_TEST, "Owner Space %t|World Space %x0|Local (Without Parent) Space %x1",
- ownx, yco, bwidth, 18, &con->ownspace, 0, 0, 0, 0, "Choose space that owner is evaluated in");
- }
-}
-
-static void test_obpoin_but(bContext *C, char *name, ID **idpp)
-{
- ID *id= BLI_findstring(&CTX_data_main(C)->object, name, offsetof(ID, name) + 2);
- *idpp= id; /* can be NULL */
-
- if(id)
- id_lib_extern(id); /* checks lib data, sets correct flag for saving then */
-}
-
/* draw panel showing settings for a constraint */
-static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
+static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con, int compact)
{
bPoseChannel *pchan= get_active_posechannel(ob);
bConstraintTypeInfo *cti;
uiBlock *block;
uiLayout *result= NULL, *col, *box, *row, *subrow;
- uiBut *but;
PointerRNA ptr;
char typestr[32];
- short width = 265;
short proxy_protected, xco=0, yco=0;
int rb_col;
@@ -1053,38 +1033,30 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
uiLayoutSetContextPointer(col, "constraint", &ptr);
box= uiLayoutBox(col);
- row= uiLayoutRow(box, 0);
-
+ row = uiLayoutRow(box, 0);
block= uiLayoutGetBlock(box);
- subrow= uiLayoutRow(row, 0);
- uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_LEFT);
-
/* Draw constraint header */
- uiBlockSetEmboss(block, UI_EMBOSSN);
/* rounded header */
rb_col= (con->flag & CONSTRAINT_ACTIVE)?50:20;
-
+
/* open/close */
- uiItemR(subrow, "", 0, &ptr, "expanded", UI_ITEM_R_ICON_ONLY);
-
- /* name */
+ uiBlockSetEmboss(block, UI_EMBOSSN);
+ uiItemR(row, &ptr, "expanded", UI_ITEM_R_ICON_ONLY, "", 0);
uiBlockSetEmboss(block, UI_EMBOSS);
/* XXX if (con->flag & CONSTRAINT_DISABLE)
uiBlockSetCol(block, TH_REDALERT);*/
+ /* name */
uiDefBut(block, LABEL, B_CONSTRAINT_TEST, typestr, xco+10, yco, 100, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
+
if(proxy_protected == 0) {
- uiItemR(subrow, "", 0, &ptr, "name", 0);
+ uiItemR(row, &ptr, "name", 0, "", 0);
}
else
- uiItemL(subrow, con->name, 0);
-
- subrow= uiLayoutRow(row, 0);
- uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_RIGHT);
+ uiItemL(row, con->name, 0);
/* proxy-protected constraints cannot be edited, so hide up/down + close buttons */
if (proxy_protected) {
@@ -1118,31 +1090,43 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
show_upbut= ((prev_proxylock == 0) && (con->prev));
show_downbut= (con->next) ? 1 : 0;
+
+ /* Code for compact Constraint UI */
+ if (compact) {
+ subrow = uiLayoutRow(box, 0);
+ }
+ else {
+ subrow = row;
+ }
+
+ uiLayoutSetOperatorContext(subrow, WM_OP_INVOKE_DEFAULT);
+ /* up/down */
if (show_upbut || show_downbut) {
uiBlockBeginAlign(block);
- uiBlockSetEmboss(block, UI_EMBOSS);
+ if (show_upbut)
+ uiItemO(subrow, "", ICON_TRIA_UP, "CONSTRAINT_OT_move_up");
- if (show_upbut)
- uiDefIconButO(block, BUT, "CONSTRAINT_OT_move_up", WM_OP_INVOKE_DEFAULT, ICON_TRIA_UP, xco+width-50, yco, 16, 18, "Move constraint up in constraint stack");
-
- if (show_downbut)
- uiDefIconButO(block, BUT, "CONSTRAINT_OT_move_down", WM_OP_INVOKE_DEFAULT, ICON_TRIA_DOWN, xco+width-50+18, yco, 16, 18, "Move constraint down in constraint stack");
+ if (show_downbut)
+ uiItemO(subrow, "", ICON_TRIA_DOWN, "CONSTRAINT_OT_move_down");
uiBlockEndAlign(block);
}
-
+
+ /* enabled */
+ uiItemR(subrow, &ptr, "enabled", 0, "", 0);
+
+ uiLayoutSetOperatorContext(row, WM_OP_INVOKE_DEFAULT);
+
/* Close 'button' - emboss calls here disable drawing of 'button' behind X */
uiBlockSetEmboss(block, UI_EMBOSSN);
- uiDefIconButBitS(block, ICONTOGN, CONSTRAINT_OFF, B_CONSTRAINT_TEST, ICON_CHECKBOX_DEHLT, xco+243, yco, 19, 19, &con->flag, 0.0, 0.0, 0.0, 0.0, "enable/disable constraint");
-
- uiDefIconButO(block, BUT, "CONSTRAINT_OT_delete", WM_OP_INVOKE_DEFAULT, ICON_X, xco+262, yco, 19, 19, "Delete constraint");
+ uiItemO(row, "", ICON_X, "CONSTRAINT_OT_delete");
uiBlockSetEmboss(block, UI_EMBOSS);
}
-
+
/* Set but-locks for protected settings (magic numbers are used here!) */
if (proxy_protected)
uiBlockSetButLock(block, 1, "Cannot edit Proxy-Protected Constraint");
-
+
/* Draw constraint data */
if ((con->flag & CONSTRAINT_EXPAND) == 0) {
(yco) -= 21;
@@ -1150,108 +1134,16 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
else {
box= uiLayoutBox(col);
block= uiLayoutAbsoluteBlock(box);
-
- switch (con->type) {
-#ifndef DISABLE_PYTHON
- case CONSTRAINT_TYPE_PYTHON:
- {
- bPythonConstraint *data = con->data;
- bConstraintTarget *ct;
- // uiBut *but2;
- int tarnum, theight;
- // static int pyconindex=0;
- // char *menustr;
-
- theight = (data->tarnum)? (data->tarnum * 38) : (38);
-
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Script:", xco+60, yco-24, 55, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
- /* do the scripts menu */
- /* XXX menustr = buildmenu_pyconstraints(data->text, &pyconindex);
- but2 = uiDefButI(block, MENU, B_CONSTRAINT_TEST, menustr,
- xco+120, yco-24, 150, 20, &pyconindex,
- 0, 0, 0, 0, "Set the Script Constraint to use");
- uiButSetFunc(but2, validate_pyconstraint_cb, data, &pyconindex);
- MEM_freeN(menustr); */
-
- /* draw target(s) */
- if (data->flag & PYCON_USETARGETS) {
- /* Draw target parameters */
- for (ct=data->targets.first, tarnum=1; ct; ct=ct->next, tarnum++) {
- char tarstr[32];
- short yoffset= ((tarnum-1) * 38);
-
- /* target label */
- sprintf(tarstr, "Target %d:", tarnum);
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, tarstr, xco+45, yco-(48+yoffset), 100, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
- /* target space-selector - per target */
- if (is_armature_target(ct->tar)) {
- uiDefButS(block, MENU, B_CONSTRAINT_TEST, "Target Space %t|World Space %x0|Pose Space %x3|Local with Parent %x4|Local Space %x1",
- xco+10, yco-(66+yoffset), 100, 18, &ct->space, 0, 0, 0, 0, "Choose space that target is evaluated in");
- }
- else {
- uiDefButS(block, MENU, B_CONSTRAINT_TEST, "Target Space %t|World Space %x0|Local (Without Parent) Space %x1",
- xco+10, yco-(66+yoffset), 100, 18, &ct->space, 0, 0, 0, 0, "Choose space that target is evaluated in");
- }
-
- uiBlockBeginAlign(block);
- /* target object */
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, B_CONSTRAINT_CHANGETARGET, "OB:", xco+120, yco-(48+yoffset), 150, 18, &ct->tar, "Target Object");
-
- /* subtarget */
- if (is_armature_target(ct->tar)) {
- but= uiDefBut(block, TEX, B_CONSTRAINT_CHANGETARGET, "BO:", xco+120, yco-(66+yoffset),150,18, &ct->subtarget, 0, 24, 0, 0, "Subtarget Bone");
- //uiButSetCompleteFunc(but, autocomplete_bone, (void *)ct->tar);
- }
- else if (is_geom_target(ct->tar)) {
- but= uiDefBut(block, TEX, B_CONSTRAINT_CHANGETARGET, "VG:", xco+120, yco-(66+yoffset),150,18, &ct->subtarget, 0, 24, 0, 0, "Name of Vertex Group defining 'target' points");
- //uiButSetCompleteFunc(but, autocomplete_vgroup, (void *)ct->tar);
- }
- else {
- strcpy(ct->subtarget, "");
- }
- uiBlockEndAlign(block);
- }
- }
- else {
- /* Draw indication that no target needed */
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Target:", xco+60, yco-48, 55, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Not Applicable", xco+120, yco-48, 150, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
- }
-
- /* settings */
- uiBlockBeginAlign(block);
- but=uiDefBut(block, BUT, B_CONSTRAINT_TEST, "Options", xco, yco-(52+theight), (width/2),18, NULL, 0, 24, 0, 0, "Change some of the constraint's settings.");
- // XXX uiButSetFunc(but, BPY_pyconstraint_settings, data, NULL);
-
- but=uiDefBut(block, BUT, B_CONSTRAINT_TEST, "Refresh", xco+((width/2)+10), yco-(52+theight), (width/2),18, NULL, 0, 24, 0, 0, "Force constraint to refresh it's settings");
- uiBlockEndAlign(block);
-
- /* constraint space settings */
- draw_constraint_spaceselect(block, con, xco, yco-(73+theight), is_armature_owner(ob), -1);
- }
- break;
-#endif
-
- case CONSTRAINT_TYPE_NULL:
- {
- uiItemL(box, "", 0);
- }
- break;
- default:
- result= box;
- break;
+ result= box;
}
- }
-
+
/* clear any locks set up for proxies/lib-linking */
uiBlockClearButLock(block);
return result;
}
-uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr)
+uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr, int compact)
{
Object *ob;
bConstraint *con;
@@ -1279,7 +1171,7 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr)
return NULL;
}
- return draw_constraint(layout, ob, con);
+ return draw_constraint(layout, ob, con, compact);
}
@@ -1287,6 +1179,7 @@ uiLayout *uiTemplateConstraint(uiLayout *layout, PointerRNA *ptr)
#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
+#include "DNA_texture_types.h"
#include "DNA_world_types.h"
#define B_MATPRV 1
@@ -1305,8 +1198,11 @@ void uiTemplatePreview(uiLayout *layout, ID *id, ID *parent, MTex *slot)
uiLayout *row, *col;
uiBlock *block;
Material *ma= NULL;
+ Tex *tex = (Tex*)id;
ID *pid, *pparent;
short *pr_texture= NULL;
+ PointerRNA material_ptr;
+ PointerRNA texture_ptr;
if(id && !ELEM4(GS(id->name), ID_MA, ID_TE, ID_WO, ID_LA)) {
printf("uiTemplatePreview: expected ID of type material, texture, lamp or world.\n");
@@ -1349,20 +1245,20 @@ void uiTemplatePreview(uiLayout *layout, ID *id, ID *parent, MTex *slot)
if(GS(pid->name) == ID_MA || (pparent && GS(pparent->name) == ID_MA)) {
if(GS(pid->name) == ID_MA) ma= (Material*)pid;
else ma= (Material*)pparent;
+
+ /* Create RNA Pointer */
+ RNA_pointer_create(id, &RNA_Material, ma, &material_ptr);
- uiLayoutColumn(row, 1);
-
- uiDefIconButC(block, ROW, B_MATPRV, ICON_MATPLANE, 0, 0,UI_UNIT_X*1.5,UI_UNIT_Y, &(ma->pr_type), 10, MA_FLAT, 0, 0, "Preview type: Flat XY plane");
- uiDefIconButC(block, ROW, B_MATPRV, ICON_MATSPHERE, 0, 0,UI_UNIT_X*1.5,UI_UNIT_Y, &(ma->pr_type), 10, MA_SPHERE, 0, 0, "Preview type: Sphere");
- uiDefIconButC(block, ROW, B_MATPRV, ICON_MATCUBE, 0, 0,UI_UNIT_X*1.5,UI_UNIT_Y, &(ma->pr_type), 10, MA_CUBE, 0, 0, "Preview type: Cube");
- uiDefIconButC(block, ROW, B_MATPRV, ICON_MONKEY, 0, 0,UI_UNIT_X*1.5,UI_UNIT_Y, &(ma->pr_type), 10, MA_MONKEY, 0, 0, "Preview type: Monkey");
- uiDefIconButC(block, ROW, B_MATPRV, ICON_HAIR, 0, 0,UI_UNIT_X*1.5,UI_UNIT_Y, &(ma->pr_type), 10, MA_HAIR, 0, 0, "Preview type: Hair strands");
- uiDefIconButC(block, ROW, B_MATPRV, ICON_MAT_SPHERE_SKY, 0, 0,UI_UNIT_X*1.5,UI_UNIT_Y, &(ma->pr_type), 10, MA_SPHERE_A, 0, 0, "Preview type: Large sphere with sky");
+ col = uiLayoutColumn(row, 1);
+ uiLayoutSetScaleX(col, 1.5);
+ uiItemR(col, &material_ptr, "preview_render_type", UI_ITEM_R_EXPAND, "", 0);
}
if(pr_texture) {
+ /* Create RNA Pointer */
+ RNA_pointer_create(id, &RNA_Texture, tex, &texture_ptr);
+
uiLayoutRow(layout, 1);
-
uiDefButS(block, ROW, B_MATPRV, "Texture", 0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_TEXTURE, 0, 0, "");
if(GS(parent->name) == ID_MA)
uiDefButS(block, ROW, B_MATPRV, "Material", 0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, "");
@@ -1371,6 +1267,12 @@ void uiTemplatePreview(uiLayout *layout, ID *id, ID *parent, MTex *slot)
else if(GS(parent->name) == ID_WO)
uiDefButS(block, ROW, B_MATPRV, "World", 0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, "");
uiDefButS(block, ROW, B_MATPRV, "Both", 0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_BOTH, 0, 0, "");
+
+ /* Alpha buton for texture preview */
+ if(*pr_texture!=TEX_PR_OTHER) {
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, &texture_ptr, "use_preview_alpha", 0, NULL, 0);
+ }
}
}
}
@@ -1428,6 +1330,33 @@ static void colorband_add_cb(bContext *C, void *cb_v, void *coba_v)
{
ColorBand *coba= coba_v;
+ if(coba->tot > 0) {
+ CBData *xnew, *x1, *x2;
+ float col[4];
+
+ xnew= &coba->data[coba->tot];
+
+ if(coba->tot > 1) {
+ if(coba->cur > 0) {
+ x1= &coba->data[coba->cur-1];
+ x2= &coba->data[coba->cur];
+ }
+ else {
+ x1= &coba->data[coba->cur];
+ x2= &coba->data[coba->cur+1];
+ }
+
+ xnew->pos = x1->pos + ((x2->pos - x1->pos) / 2);
+ }
+
+ do_colorband(coba, xnew->pos, col);
+
+ xnew->r= col[0];
+ xnew->g= col[1];
+ xnew->b= col[2];
+ xnew->a= col[3];
+ }
+
if(coba->tot < MAXCOLORBAND-1) coba->tot++;
coba->cur= coba->tot-1;
@@ -1454,6 +1383,29 @@ static void colorband_del_cb(bContext *C, void *cb_v, void *coba_v)
rna_update_cb(C, cb_v, NULL);
}
+static void colorband_flip_cb(bContext *C, void *cb_v, void *coba_v)
+{
+ CBData data_tmp[MAXCOLORBAND];
+
+ ColorBand *coba= coba_v;
+ int a;
+
+ for(a=0; a<coba->tot; a++) {
+ data_tmp[a]= coba->data[coba->tot - (a + 1)];
+ }
+ for(a=0; a<coba->tot; a++) {
+ data_tmp[a].pos = 1.0f - data_tmp[a].pos;
+ coba->data[a]= data_tmp[a];
+ }
+
+ /* may as well flip the cur*/
+ coba->cur= coba->tot - (coba->cur + 1);
+
+ ED_undo_push(C, "Flip colorband");
+
+ rna_update_cb(C, cb_v, NULL);
+}
+
/* offset aligns from bottom, standard width 300, height 115 */
static void colorband_buttons_large(uiLayout *layout, uiBlock *block, ColorBand *coba, int xoffs, int yoffs, RNAUpdateCb *cb)
@@ -1464,12 +1416,17 @@ static void colorband_buttons_large(uiLayout *layout, uiBlock *block, ColorBand
if(coba==NULL) return;
- bt= uiDefBut(block, BUT, 0, "Add", 0+xoffs,100+yoffs,50,20, 0, 0, 0, 0, 0, "Add a new color stop to the colorband");
+ bt= uiDefBut(block, BUT, 0, "Add", 0+xoffs,100+yoffs,40,20, 0, 0, 0, 0, 0, "Add a new color stop to the colorband");
uiButSetNFunc(bt, colorband_add_cb, MEM_dupallocN(cb), coba);
- bt= uiDefBut(block, BUT, 0, "Delete", 60+xoffs,100+yoffs,50,20, 0, 0, 0, 0, 0, "Delete the active position");
+ bt= uiDefBut(block, BUT, 0, "Delete", 45+xoffs,100+yoffs,45,20, 0, 0, 0, 0, 0, "Delete the active position");
uiButSetNFunc(bt, colorband_del_cb, MEM_dupallocN(cb), coba);
+
+ /* XXX, todo for later - convert to operator - campbell */
+ bt= uiDefBut(block, BUT, 0, "F", 95+xoffs,100+yoffs,20,20, 0, 0, 0, 0, 0, "Flip colorband");
+ uiButSetNFunc(bt, colorband_flip_cb, MEM_dupallocN(cb), coba);
+
uiDefButS(block, NUM, 0, "", 120+xoffs,100+yoffs,80, 20, &coba->cur, 0.0, (float)(MAX2(0, coba->tot-1)), 0, 0, "Choose active color stop");
bt= uiDefButS(block, MENU, 0, "Interpolation %t|Ease %x1|Cardinal %x3|Linear %x0|B-Spline %x2|Constant %x4",
@@ -1480,6 +1437,8 @@ static void colorband_buttons_large(uiLayout *layout, uiBlock *block, ColorBand
bt= uiDefBut(block, BUT_COLORBAND, 0, "", xoffs,65+yoffs,300,30, coba, 0, 0, 0, 0, "");
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
+
+
if(coba->tot) {
CBData *cbd= coba->data + coba->cur;
@@ -1487,8 +1446,8 @@ static void colorband_buttons_large(uiLayout *layout, uiBlock *block, ColorBand
PointerRNA ptr;
RNA_pointer_create(cb->ptr.id.data, &RNA_ColorRampElement, cbd, &ptr);
row= uiLayoutRow(layout, 0);
- uiItemR(row, "Pos", 0, &ptr, "position", 0);
- uiItemR(row, "", 0, &ptr, "color", 0);
+ uiItemR(row, &ptr, "position", 0, "Pos", 0);
+ uiItemR(row, &ptr, "color", 0, "", 0);
}
}
@@ -1502,15 +1461,17 @@ static void colorband_buttons_small(uiLayout *layout, uiBlock *block, ColorBand
uiBlockBeginAlign(block);
bt= uiDefBut(block, BUT, 0, "Add", xs,butr->ymin+20.0f,2.0f*unit,20, NULL, 0, 0, 0, 0, "Add a new color stop to the colorband");
uiButSetNFunc(bt, colorband_add_cb, MEM_dupallocN(cb), coba);
- bt= uiDefBut(block, BUT, 0, "Delete", xs+2.0f*unit,butr->ymin+20.0f,2.0f*unit,20, NULL, 0, 0, 0, 0, "Delete the active position");
+ bt= uiDefBut(block, BUT, 0, "Delete", xs+2.0f*unit,butr->ymin+20.0f,1.5f*unit,20, NULL, 0, 0, 0, 0, "Delete the active position");
uiButSetNFunc(bt, colorband_del_cb, MEM_dupallocN(cb), coba);
+ bt= uiDefBut(block, BUT, 0, "F", xs+3.5f*unit,butr->ymin+20.0f,0.5f*unit,20, NULL, 0, 0, 0, 0, "Flip the color ramp");
+ uiButSetNFunc(bt, colorband_flip_cb, MEM_dupallocN(cb), coba);
uiBlockEndAlign(block);
if(coba->tot) {
CBData *cbd= coba->data + coba->cur;
PointerRNA ptr;
RNA_pointer_create(cb->ptr.id.data, &RNA_ColorRampElement, cbd, &ptr);
- uiItemR(layout, "", 0, &ptr, "color", 0);
+ uiItemR(layout, &ptr, "color", 0, "", 0);
}
bt= uiDefButS(block, MENU, 0, "Interpolation %t|Ease %x1|Cardinal %x3|Linear %x0|B-Spline %x2|Constant %x4",
@@ -1587,10 +1548,85 @@ void uiTemplateHistogram(uiLayout *layout, PointerRNA *ptr, char *propname, int
block= uiLayoutAbsoluteBlock(layout);
//colorband_buttons_layout(layout, block, cptr.data, &rect, !expand, cb);
-
+
hist = (Histogram *)cptr.data;
+
+ hist->height= (hist->height<=0)?100:hist->height;
+
+ bt= uiDefBut(block, HISTOGRAM, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, hist->height, hist, 0, 0, 0, 0, "");
+ uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
+
+ MEM_freeN(cb);
+}
+
+/********************* Waveform Template ************************/
+
+void uiTemplateWaveform(uiLayout *layout, PointerRNA *ptr, char *propname, int expand)
+{
+ PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
+ PointerRNA cptr;
+ RNAUpdateCb *cb;
+ uiBlock *block;
+ uiBut *bt;
+ Scopes *scopes;
+ rctf rect;
+
+ if(!prop || RNA_property_type(prop) != PROP_POINTER)
+ return;
+
+ cptr= RNA_property_pointer_get(ptr, prop);
+ if(!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Scopes))
+ return;
+ scopes = (Scopes *)cptr.data;
+
+ cb= MEM_callocN(sizeof(RNAUpdateCb), "RNAUpdateCb");
+ cb->ptr= *ptr;
+ cb->prop= prop;
+
+ rect.xmin= 0; rect.xmax= 200;
+ rect.ymin= 0; rect.ymax= 190;
+
+ block= uiLayoutAbsoluteBlock(layout);
+
+ scopes->wavefrm_height= (scopes->wavefrm_height<=0)?100:scopes->wavefrm_height;
+
+ bt= uiDefBut(block, WAVEFORM, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, scopes->wavefrm_height, scopes, 0, 0, 0, 0, "");
+
+ MEM_freeN(cb);
+}
+
+/********************* Vectorscope Template ************************/
+
+void uiTemplateVectorscope(uiLayout *layout, PointerRNA *ptr, char *propname, int expand)
+{
+ PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
+ PointerRNA cptr;
+ RNAUpdateCb *cb;
+ uiBlock *block;
+ uiBut *bt;
+ Scopes *scopes;
+ rctf rect;
+
+ if(!prop || RNA_property_type(prop) != PROP_POINTER)
+ return;
+
+ cptr= RNA_property_pointer_get(ptr, prop);
+ if(!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Scopes))
+ return;
+ scopes = (Scopes *)cptr.data;
+
+ cb= MEM_callocN(sizeof(RNAUpdateCb), "RNAUpdateCb");
+ cb->ptr= *ptr;
+ cb->prop= prop;
- bt= uiDefBut(block, HISTOGRAM, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, 100.0f, hist, 0, 0, 0, 0, "");
+ rect.xmin= 0; rect.xmax= 200;
+ rect.ymin= 0; rect.ymax= 190;
+
+ block= uiLayoutAbsoluteBlock(layout);
+
+ scopes->vecscope_height= (scopes->vecscope_height<=0)?100:scopes->vecscope_height;
+
+ bt= uiDefBut(block, VECTORSCOPE, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, scopes->vecscope_height, scopes, 0, 0, 0, 0, "");
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
MEM_freeN(cb);
@@ -1707,7 +1743,7 @@ static void curvemap_tools_dofunc(bContext *C, void *cumap_v, int event)
switch(event) {
case 0: /* reset */
- curvemap_reset(cuma, &cumap->clipr, CURVE_PRESET_LINE);
+ curvemap_reset(cuma, &cumap->clipr, cumap->preset);
curvemapping_changed(cumap, 0);
break;
case 1:
@@ -1729,10 +1765,6 @@ static void curvemap_tools_dofunc(bContext *C, void *cumap_v, int event)
cuma->flag |= CUMA_EXTEND_EXTRAPOLATE;
curvemapping_changed(cumap, 0);
break;
- case 6: /* reset smooth */
- curvemap_reset(cuma, &cumap->clipr, CURVE_PRESET_SMOOTH);
- curvemapping_changed(cumap, 0);
- break;
}
ED_region_tag_redraw(CTX_wm_region(C));
}
@@ -1770,7 +1802,7 @@ static uiBlock *curvemap_brush_tools_func(bContext *C, struct ARegion *ar, void
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset View", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector Handle", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto Handle", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
- uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
uiBlockSetDirection(block, UI_RIGHT);
uiTextBoundsBlock(block, 50);
@@ -1789,8 +1821,9 @@ static void curvemap_buttons_reset(bContext *C, void *cb_v, void *cumap_v)
CurveMapping *cumap = cumap_v;
int a;
+ cumap->preset = CURVE_PRESET_LINE;
for(a=0; a<CM_TOT; a++)
- curvemap_reset(cumap->cm+a, &cumap->clipr, CURVE_PRESET_LINE);
+ curvemap_reset(cumap->cm+a, &cumap->clipr, cumap->preset);
cumap->black[0]=cumap->black[1]=cumap->black[2]= 0.0f;
cumap->white[0]=cumap->white[1]=cumap->white[2]= 1.0f;
@@ -1918,8 +1951,8 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe
/* black/white levels */
if(levels) {
split= uiLayoutSplit(layout, 0, 0);
- uiItemR(uiLayoutColumn(split, 0), NULL, 0, ptr, "black_level", UI_ITEM_R_EXPAND);
- uiItemR(uiLayoutColumn(split, 0), NULL, 0, ptr, "white_level", UI_ITEM_R_EXPAND);
+ uiItemR(uiLayoutColumn(split, 0), ptr, "black_level", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(uiLayoutColumn(split, 0), ptr, "white_level", UI_ITEM_R_EXPAND, NULL, 0);
uiLayoutRow(layout, 0);
bt=uiDefBut(block, BUT, 0, "Reset", 0, 0, UI_UNIT_X*10, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Reset Black/White point and curves");
@@ -1955,37 +1988,44 @@ void uiTemplateCurveMapping(uiLayout *layout, PointerRNA *ptr, char *propname, i
#define WHEEL_SIZE 100
-void uiTemplateColorWheel(uiLayout *layout, PointerRNA *ptr, char *propname, int value_slider, int lock)
+void uiTemplateColorWheel(uiLayout *layout, PointerRNA *ptr, char *propname, int value_slider, int lock, int lock_luminosity, int cubic)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
uiBlock *block= uiLayoutGetBlock(layout);
uiLayout *col, *row;
+ uiBut *but;
float softmin, softmax, step, precision;
if (!prop) {
printf("uiTemplateColorWheel: property not found: %s\n", propname);
return;
}
-
+
RNA_property_float_ui_range(ptr, prop, &softmin, &softmax, &step, &precision);
col = uiLayoutColumn(layout, 0);
row= uiLayoutRow(col, 1);
- uiDefButR(block, HSVCIRCLE, 0, "", 0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, propname, -1, 0.0, 0.0, 0, lock, "");
-
+ but= uiDefButR(block, HSVCIRCLE, 0, "", 0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, propname, -1, 0.0, 0.0, 0, 0, "");
+
+ if(lock) {
+ but->flag |= UI_BUT_COLOR_LOCK;
+ }
+
+ if(lock_luminosity) {
+ float color[4]; /* incase of alpha */
+ but->flag |= UI_BUT_VEC_SIZE_LOCK;
+ RNA_property_float_get_array(ptr, prop, color);
+ but->a2= len_v3(color);
+ }
+
+ if(cubic)
+ but->flag |= UI_BUT_COLOR_CUBIC;
+
uiItemS(row);
if (value_slider)
uiDefButR(block, HSVCUBE, 0, "", WHEEL_SIZE+6, 0, 14, WHEEL_SIZE, ptr, propname, -1, softmin, softmax, 9, 0, "");
-
- /* maybe a switch for this?
- row= uiLayoutRow(col, 0);
- if(ELEM(RNA_property_subtype(prop), PROP_COLOR, PROP_COLOR_GAMMA) && RNA_property_array_length(ptr, prop) == 4) {
- but= uiDefAutoButR(block, ptr, prop, 3, "A:", 0, 0, 0, WHEEL_SIZE+20, UI_UNIT_Y);
- }
- */
-
}
@@ -2008,9 +2048,9 @@ void uiTemplateTriColorSet(uiLayout *layout, PointerRNA *ptr, char *propname)
/* nselected, selected, active color swatches */
csPtr= RNA_property_pointer_get(ptr, prop);
- uiItemR(row, "", 0, &csPtr, "normal", 0);
- uiItemR(row, "", 0, &csPtr, "selected", 0);
- uiItemR(row, "", 0, &csPtr, "active", 0);
+ uiItemR(row, &csPtr, "normal", 0, "", 0);
+ uiItemR(row, &csPtr, "selected", 0, "", 0);
+ uiItemR(row, &csPtr, "active", 0, "", 0);
}
/********************* Layer Buttons Template ************************/
@@ -2039,7 +2079,7 @@ static void handle_layer_buttons(bContext *C, void *arg1, void *arg2)
// the array of layer bitflags
void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, char *propname,
- PointerRNA *used_ptr, char *used_propname, int active_layer)
+ PointerRNA *used_ptr, char *used_propname, int active_layer)
{
uiLayout *uRow, *uCol;
PropertyRNA *prop, *used_prop= NULL;
@@ -2201,11 +2241,11 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
uiBlockSetEmboss(block, UI_EMBOSSN);
row= uiLayoutRow(split, 1);
if(i == 0) uiItemL(row, "", 0);
- else uiItemR(row, "", 0, itemptr, "value", 0);
+ else uiItemR(row, itemptr, "value", 0, "", 0);
if(ob->mode == OB_MODE_EDIT && !((ob->shapeflag & OB_SHAPE_EDIT_MODE) && ob->type == OB_MESH))
uiLayoutSetActive(row, 0);
- //uiItemR(row, "", ICON_MUTE_IPO_OFF, itemptr, "mute", 0);
+ //uiItemR(row, itemptr, "mute", 0, "", ICON_MUTE_IPO_OFF);
uiBlockSetEmboss(block, UI_EMBOSS);
}
else
@@ -2448,6 +2488,7 @@ void uiTemplateOperatorSearch(uiLayout *layout)
#define B_STOPRENDER 1
#define B_STOPCAST 2
#define B_STOPANIM 3
+#define B_STOPCOMPO 4
static void do_running_jobs(bContext *C, void *arg, int event)
{
@@ -2456,11 +2497,14 @@ static void do_running_jobs(bContext *C, void *arg, int event)
G.afbreek= 1;
break;
case B_STOPCAST:
- WM_jobs_stop(CTX_wm_manager(C), CTX_wm_screen(C));
+ WM_jobs_stop(CTX_wm_manager(C), CTX_wm_screen(C), NULL);
break;
case B_STOPANIM:
WM_operator_name_call(C, "SCREEN_OT_animation_play", WM_OP_INVOKE_SCREEN, NULL);
break;
+ case B_STOPCOMPO:
+ WM_jobs_stop(CTX_wm_manager(C), CTX_wm_area(C), NULL);
+ break;
}
}
@@ -2469,15 +2513,36 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
bScreen *screen= CTX_wm_screen(C);
Scene *scene= CTX_data_scene(C);
wmWindowManager *wm= CTX_wm_manager(C);
+ ScrArea *sa= CTX_wm_area(C);
uiBlock *block;
-
+ void *owner;
+ int handle_event;
+
block= uiLayoutGetBlock(layout);
uiBlockSetCurLayout(block, layout);
uiBlockSetHandleFunc(block, do_running_jobs, NULL);
- if(WM_jobs_test(wm, scene))
- uiDefIconTextBut(block, BUT, B_STOPRENDER, ICON_CANCEL, "Render", 0,0,75,UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Stop rendering");
+ if(sa->spacetype==SPACE_NODE) {
+ owner = sa;
+ handle_event= B_STOPCOMPO;
+ } else {
+ owner = scene;
+ handle_event= B_STOPRENDER;
+ }
+
+ if(WM_jobs_test(wm, owner)) {
+ uiLayout *abs;
+
+ abs = uiLayoutAbsolute(layout, 0);
+
+ uiDefIconBut(block, BUT, handle_event, ICON_PANEL_CLOSE,
+ 0, UI_UNIT_Y*0.1, UI_UNIT_X*0.8, UI_UNIT_Y*0.8, NULL, 0.0f, 0.0f, 0, 0, "Stop this job");
+ uiDefBut(block, PROGRESSBAR, 0, WM_jobs_name(wm, owner),
+ UI_UNIT_X, 0, 100, UI_UNIT_Y, NULL, 0.0f, 0.0f, WM_jobs_progress(wm, owner), 0, "Progress");
+
+ uiLayoutRow(layout, 0);
+ }
if(WM_jobs_test(wm, screen))
uiDefIconTextBut(block, BUT, B_STOPCAST, ICON_CANCEL, "Capture", 0,0,85,UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Stop screencast");
if(screen->animtimer)
@@ -2486,43 +2551,55 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
/************************* Reports for Last Operator Template **************************/
-void uiTemplateReportsBanner(uiLayout *layout, bContext *C, wmOperator *op)
+void uiTemplateReportsBanner(uiLayout *layout, bContext *C)
{
- ReportList *reports = op->reports;
- uiLayout *box;
+ ReportList *reports = CTX_wm_reports(C);
+ Report *report= BKE_reports_last_displayable(reports);
+ ReportTimerInfo *rti;
- /* sanity checks */
- if (ELEM(NULL, op, reports)) {
- printf("uiTemplateReportsBanner: no operator with reports!\n");
- return;
- }
+ uiLayout *abs;
+ uiBlock *block;
+ uiBut *but;
+ uiStyle *style= U.uistyles.first;
+ int width;
+ float hsv[3];
+
+ /* if the report display has timed out, don't show */
+ if (!reports->reporttimer) return;
+
+ rti= (ReportTimerInfo *)reports->reporttimer->customdata;
+
+ if (!rti || rti->widthfac==0.0 || !report) return;
+
+ abs = uiLayoutAbsolute(layout, 0);
+ block= uiLayoutGetBlock(abs);
+
+ rgb_to_hsv(rti->col[0], rti->col[1], rti->col[2], hsv+0, hsv+1, hsv+2);
+
+ width = BLF_width(style->widget.uifont_id, report->message);
+ width = MIN2(rti->widthfac*width, width);
+ width = MAX2(width, 10);
/* make a box around the report to make it stand out */
- box = uiLayoutBox(layout);
- uiLayoutSetScaleY(box, 0.48); /* experimentally determined value to reduce execessive padding... */
+ uiBlockBeginAlign(block);
+ but= uiDefBut(block, ROUNDBOX, 0, "", 0, 0, UI_UNIT_X+10, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+ copy_v3_v3(but->hsv, hsv); /* set the report's bg colour in but->hsv - ROUNDBOX feature */
- /* if more than one report, we need to show the popup when user clicks on the temp label... */
- if (reports->list.first != reports->list.last) {
- int numReports = BLI_countlist(&reports->list);
- char buf[64];
-
- // XXX: we need uiItem* to return uiBut pointer so that we can use it to set callbacks
- // used to call uiPupMenuReports... as alternative, we could fall back to the "old ways"
- //sprintf(buf, "Last Operator had %d errors. Click to see more...", numReports);
- sprintf(buf, "Last Operator had %d errors", numReports);
- uiItemL(box, buf, ICON_INFO);
- }
- else {
- /* single report, so show report directly */
- // XXX: what if the report is too long? should we truncate the text?
- Report *report= (Report *)reports->list.first;
-
- if(report->type >= RPT_ERROR)
- uiItemL(box, report->message, ICON_ERROR);
- else if(report->type >= RPT_WARNING)
- uiItemL(box, report->message, ICON_ERROR);
- else if(report->type >= RPT_INFO)
- uiItemL(box, report->message, ICON_INFO);
- }
+ but= uiDefBut(block, ROUNDBOX, 0, "", UI_UNIT_X+10, 0, UI_UNIT_X+width, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+ but->hsv[0] = but->hsv[1] = 0.0; /* set a greyscale bg colour in but->hsv - ROUNDBOX feature */
+ but->hsv[2] = rti->greyscale;
+ uiBlockEndAlign(block);
+
+
+ /* icon and report message on top */
+ if(report->type & RPT_ERROR_ALL)
+ uiDefIconBut(block, LABEL, 0, ICON_ERROR, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+ else if(report->type & RPT_WARNING_ALL)
+ uiDefIconBut(block, LABEL, 0, ICON_ERROR, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+ else if(report->type & RPT_INFO_ALL)
+ uiDefIconBut(block, LABEL, 0, ICON_INFO, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+
+ uiDefBut(block, LABEL, 0, report->message, UI_UNIT_X+10, 0, UI_UNIT_X+width, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+
}
diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c
index c9024704b5e..37278340275 100644
--- a/source/blender/editors/interface/interface_utils.c
+++ b/source/blender/editors/interface/interface_utils.c
@@ -37,8 +37,6 @@
#include "UI_interface.h"
#include "UI_resources.h"
-#include "WM_api.h"
-#include "WM_types.h"
/*************************** RNA Utilities ******************************/
@@ -159,7 +157,7 @@ void uiDefAutoButsRNA(const bContext *C, uiLayout *layout, PointerRNA *ptr, int
else
col= NULL;
- uiItemFullR(col, "", 0, ptr, prop, -1, 0, 0);
+ uiItemFullR(col, ptr, prop, -1, 0, 0, "", 0);
}
RNA_STRUCT_END;
}
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index e02a8f53a4e..d2860adbf50 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -30,10 +30,8 @@
#include "MEM_guardedalloc.h"
-#include "DNA_ID.h"
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_listbase.h"
@@ -53,26 +51,22 @@
#include "UI_interface.h"
#include "UI_interface_icons.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
-#include "ED_util.h"
-#include "ED_types.h"
#include "interface_intern.h"
/* ************** widget base functions ************** */
/*
- - in: roundbox codes for corner types and radius
- - return: array of [size][2][x,y] points, the edges of the roundbox, + UV coords
+ - in: roundbox codes for corner types and radius
+ - return: array of [size][2][x,y] points, the edges of the roundbox, + UV coords
- - draw black box with alpha 0 on exact button boundbox
- - for ever AA step:
- - draw the inner part for a round filled box, with color blend codes or texture coords
- - draw outline in outline color
- - draw outer part, bottom half, extruded 1 pixel to bottom, for emboss shadow
- - draw extra decorations
- - draw background color box with alpha 1 on exact button boundbox
+ - draw black box with alpha 0 on exact button boundbox
+ - for ever AA step:
+ - draw the inner part for a round filled box, with color blend codes or texture coords
+ - draw outline in outline color
+ - draw outer part, bottom half, extruded 1 pixel to bottom, for emboss shadow
+ - draw extra decorations
+ - draw background color box with alpha 1 on exact button boundbox
*/
@@ -289,10 +283,10 @@ static void round_box__edges(uiWidgetBase *wt, int roundboxalign, rcti *rect, fl
float maxxi= maxx - 1.0f;
float minyi= miny + 1.0f;
float maxyi= maxy - 1.0f;
- float facxi= 1.0f/(maxxi-minxi); /* for uv */
- float facyi= 1.0f/(maxyi-minyi);
+ float facxi= (maxxi!=minxi) ? 1.0f/(maxxi-minxi) : 0.0f; /* for uv, can divide by zero */
+ float facyi= (maxyi!=minyi) ? 1.0f/(maxyi-minyi) : 0.0f;
int a, tot= 0, minsize;
-
+
minsize= MIN2(rect->xmax-rect->xmin, rect->ymax-rect->ymin);
if(2.0f*rad > minsize)
@@ -614,14 +608,67 @@ static void widgetbase_draw(uiWidgetBase *wtb, uiWidgetColors *wcol)
/* backdrop non AA */
if(wtb->inner) {
if(wcol->shaded==0) {
-
- /* filled center, solid */
- glColor4ubv((unsigned char*)wcol->inner);
- glBegin(GL_POLYGON);
- for(a=0; a<wtb->totvert; a++)
- glVertex2fv(wtb->inner_v[a]);
- glEnd();
+ if (wcol->alpha_check) {
+ GLubyte checker_stipple_sml[32*32/8] =
+ {
+ 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, \
+ 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, \
+ 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, \
+ 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, \
+ 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, \
+ 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, \
+ 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, \
+ 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, \
+ };
+
+ float x_mid= 0.0f; /* used for dumb clamping of values */
+
+ /* dark checkers */
+ glColor4ub(100, 100, 100, 255);
+ glBegin(GL_POLYGON);
+ for(a=0; a<wtb->totvert; a++) {
+ glVertex2fv(wtb->inner_v[a]);
+ }
+ glEnd();
+
+ /* light checkers */
+ glEnable(GL_POLYGON_STIPPLE);
+ glColor4ub(160, 160, 160, 255);
+ glPolygonStipple(checker_stipple_sml);
+ glBegin(GL_POLYGON);
+ for(a=0; a<wtb->totvert; a++) {
+ glVertex2fv(wtb->inner_v[a]);
+ }
+ glEnd();
+ glDisable(GL_POLYGON_STIPPLE);
+ /* alpha fill */
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glColor4ubv((unsigned char*)wcol->inner);
+ glBegin(GL_POLYGON);
+ for(a=0; a<wtb->totvert; a++) {
+ glVertex2fv(wtb->inner_v[a]);
+ x_mid += wtb->inner_v[a][0];
+ }
+ x_mid /= wtb->totvert;
+ glEnd();
+
+ /* 1/2 solid color */
+ glColor4ub(wcol->inner[0], wcol->inner[1], wcol->inner[2], 255);
+ glBegin(GL_POLYGON);
+ for(a=0; a<wtb->totvert; a++)
+ glVertex2f(MIN2(wtb->inner_v[a][0], x_mid), wtb->inner_v[a][1]);
+ glEnd();
+ }
+ else {
+ /* simple fill */
+ glColor4ubv((unsigned char*)wcol->inner);
+ glBegin(GL_POLYGON);
+ for(a=0; a<wtb->totvert; a++)
+ glVertex2fv(wtb->inner_v[a]);
+ glEnd();
+ }
}
else {
char col1[4], col2[4];
@@ -817,14 +864,17 @@ static void ui_text_leftclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
/* need to set this first */
uiStyleFontSet(fstyle);
+
+ if (fstyle->kerning==1) /* for BLF_width */
+ BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
- but->strwidth= BLF_width(but->drawstr);
+ but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr);
but->ofs= 0;
while(but->strwidth > okwidth ) {
but->ofs++;
- but->strwidth= BLF_width(but->drawstr+but->ofs);
+ but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr+but->ofs);
/* textbut exception */
if(but->editstr && but->pos != -1) {
@@ -843,6 +893,9 @@ static void ui_text_leftclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
if(but->strwidth < 10) break;
}
+
+ if (fstyle->kerning==1)
+ BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
@@ -855,7 +908,10 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
/* need to set this first */
uiStyleFontSet(fstyle);
- but->strwidth= BLF_width(but->drawstr);
+ if (fstyle->kerning==1) /* for BLF_width */
+ BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+
+ but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr);
but->ofs= 0;
/* find the space after ':' separator */
@@ -870,7 +926,7 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
memmove(cp2-1, cp2, strlen(cp2)+1);
cp2--;
- but->strwidth= BLF_width(but->drawstr+but->ofs);
+ but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr+but->ofs);
if(but->strwidth < 10) break;
}
@@ -879,7 +935,7 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
while ((but->strwidth > okwidth) && (but->ofs < 2))
{
but->ofs++;
- but->strwidth= BLF_width(but->drawstr+but->ofs);
+ but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr+but->ofs);
if(but->strwidth < 10) break;
}
@@ -892,10 +948,12 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
but->drawstr[ pos-1 ] = 0;
pos--;
- but->strwidth= BLF_width(but->drawstr+but->ofs);
+ but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr+but->ofs);
if(but->strwidth < 10) break;
}
+ if (fstyle->kerning==1)
+ BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
}
@@ -910,7 +968,10 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
fstyle->align= UI_STYLE_TEXT_LEFT;
else
fstyle->align= UI_STYLE_TEXT_CENTER;
-
+
+ if (fstyle->kerning==1) /* for BLF_width */
+ BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+
/* text button selection and cursor */
if(but->editstr && but->pos != -1) {
short t=0, pos=0, ch;
@@ -927,7 +988,7 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
ch= but->drawstr[selsta_tmp];
but->drawstr[selsta_tmp]= 0;
- selsta_draw = BLF_width(but->drawstr+but->ofs);
+ selsta_draw = BLF_width(fstyle->uifont_id, but->drawstr+but->ofs);
but->drawstr[selsta_tmp]= ch;
} else
@@ -936,7 +997,7 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
ch= but->drawstr[selend_tmp];
but->drawstr[selend_tmp]= 0;
- selwidth_draw = BLF_width(but->drawstr+but->ofs);
+ selwidth_draw = BLF_width(fstyle->uifont_id, but->drawstr+but->ofs);
but->drawstr[selend_tmp]= ch;
@@ -951,16 +1012,20 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
ch= but->drawstr[pos];
but->drawstr[pos]= 0;
- t= BLF_width(but->drawstr+but->ofs);
+ t= BLF_width(fstyle->uifont_id, but->drawstr+but->ofs) / but->aspect;
but->drawstr[pos]= ch;
}
- glColor3ub(255,0,0);
+ glColor3f(0.20, 0.6, 0.9);
glRects(rect->xmin+t, rect->ymin+2, rect->xmin+t+2, rect->ymax-2);
}
}
}
+
+ if (fstyle->kerning == 1)
+ BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+
// ui_rasterpos_safe(x, y, but->aspect);
// if(but->type==IDPOIN) transopts= 0; // no translation, of course!
// else transopts= ui_translate_buttons();
@@ -1264,6 +1329,19 @@ static struct uiWidgetColors wcol_scroll= {
5, -5
};
+static struct uiWidgetColors wcol_progress= {
+ {0, 0, 0, 255},
+ {190, 190, 190, 255},
+ {100, 100, 100, 180},
+ {68, 68, 68, 255},
+
+ {0, 0, 0, 255},
+ {255, 255, 255, 255},
+
+ 0,
+ 0, 0
+};
+
static struct uiWidgetColors wcol_list_item= {
{0, 0, 0, 255},
{0, 0, 0, 0},
@@ -1310,6 +1388,7 @@ void ui_widget_color_init(ThemeUI *tui)
tui->wcol_box= wcol_box;
tui->wcol_scroll= wcol_scroll;
tui->wcol_list_item= wcol_list_item;
+ tui->wcol_progress= wcol_progress;
tui->wcol_state= wcol_state;
}
@@ -1577,10 +1656,10 @@ void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, rcti *rect)
rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
copy_v3_v3(hsvo, hsv);
- /* exception: if 'lock' is set (stored in but->a2),
+ /* exception: if 'lock' is set
* lock the value of the color wheel to 1.
* Useful for color correction tools where you're only interested in hue. */
- if (but->a2) hsv[2] = 1.f;
+ if (but->flag & UI_BUT_COLOR_LOCK) hsv[2] = 1.f;
hsv_to_rgb(0.f, 0.f, hsv[2], colcent, colcent+1, colcent+2);
@@ -1595,6 +1674,8 @@ void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, rcti *rect)
float co= cos(ang);
ui_hsvcircle_vals_from_pos(hsv, hsv+1, rect, centx + co*radius, centy + si*radius);
+ CLAMP(hsv[2], 0.0f, 1.0f); /* for display only */
+
hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2);
glColor3fv(col);
glVertex2f( centx + co*radius, centy + si*radius);
@@ -1609,14 +1690,19 @@ void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, rcti *rect)
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH );
glColor3ubv((unsigned char*)wcol->outline);
- glutil_draw_lined_arc(0.0f, M_PI*2.0, radius, tot);
+ glutil_draw_lined_arc(0.0f, M_PI*2.0, radius, tot + 1);
glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH );
glPopMatrix();
/* cursor */
ang= 2.0f*M_PI*hsvo[0] + 0.5f*M_PI;
- radius= hsvo[1]*radius;
+
+ if(but->flag & UI_BUT_COLOR_CUBIC)
+ radius= (1.0f - pow(1.0f - hsvo[1], 3.0f)) *radius;
+ else
+ radius= hsvo[1] * radius;
+
ui_hsv_cursor(centx + cos(-ang)*radius, centy + sin(-ang)*radius);
}
@@ -1942,6 +2028,7 @@ void uiWidgetScrollDraw(uiWidgetColors *wcol, rcti *rect, rcti *slider, int stat
uiWidgetBase wtb;
float rad;
int horizontal;
+ short outline=0;
widget_init(&wtb);
@@ -1983,6 +2070,10 @@ void uiWidgetScrollDraw(uiWidgetColors *wcol, rcti *rect, rcti *slider, int stat
/* draw */
wtb.emboss= 0; /* only emboss once */
+ /* exception for progress bar */
+ if (state & UI_SCROLL_NO_OUTLINE)
+ SWAP(short, outline, wtb.outline);
+
round_box_edges(&wtb, 15, slider, rad);
if(state & UI_SCROLL_ARROWS) {
@@ -2001,6 +2092,9 @@ void uiWidgetScrollDraw(uiWidgetColors *wcol, rcti *rect, rcti *slider, int stat
}
}
widgetbase_draw(&wtb, wcol);
+
+ if (state & UI_SCROLL_NO_OUTLINE)
+ SWAP(short, outline, wtb.outline);
}
}
@@ -2065,9 +2159,35 @@ static void widget_scroll(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
uiWidgetScrollDraw(wcol, rect, &rect1, state);
}
-static void widget_link(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_progressbar(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{
+ rcti rect_prog = *rect, rect_bar = *rect;
+ float value = but->a1;
+ float w, min;
+
+ /* make the progress bar a proportion of the original height */
+ /* hardcoded 4px high for now */
+ rect_prog.ymax = rect_prog.ymin + 4;
+ rect_bar.ymax = rect_bar.ymin + 4;
+
+ w = value * (rect_prog.xmax - rect_prog.xmin);
+
+ /* ensure minimium size */
+ min= rect_prog.ymax - rect_prog.ymin;
+ w = MAX2(w, min);
+
+ rect_bar.xmax = rect_bar.xmin + w;
+
+ uiWidgetScrollDraw(wcol, &rect_prog, &rect_bar, UI_SCROLL_NO_OUTLINE);
+
+ /* raise text a bit */
+ rect->ymin += 6;
+ rect->xmin -= 6;
+}
+static void widget_link(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+{
+
if(but->flag & UI_SELECT) {
rcti rectlink;
@@ -2082,7 +2202,6 @@ static void widget_link(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state,
}
}
-
static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{
uiWidgetBase wtb, wtb1;
@@ -2149,9 +2268,15 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
float col[4];
int color_profile = but->block->color_profile;
+ col[3]= 1.0f;
+
if (but->rnaprop) {
if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
color_profile = BLI_PR_NONE;
+
+ if(RNA_property_array_length(&but->rnapoin, but->rnaprop)==4) {
+ col[3]= RNA_property_float_get_index(&but->rnapoin, but->rnaprop, 3);
+ }
}
widget_init(&wtb);
@@ -2167,8 +2292,10 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
wcol->inner[0]= FTOCHAR(col[0]);
wcol->inner[1]= FTOCHAR(col[1]);
wcol->inner[2]= FTOCHAR(col[2]);
+ wcol->inner[3]= FTOCHAR(col[3]);
wcol->shaded = 0;
-
+ wcol->alpha_check = (wcol->inner[3] < 255);
+
widgetbase_draw(&wtb, wcol);
}
@@ -2306,6 +2433,36 @@ static void widget_radiobut(uiWidgetColors *wcol, rcti *rect, int state, int rou
}
+static void widget_box(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+{
+ uiWidgetBase wtb;
+ char old_col[3];
+
+ widget_init(&wtb);
+
+ VECCOPY(old_col, wcol->inner);
+
+ /* abuse but->hsv - if it's non-zero, use this colour as the box's background */
+ if ((but->hsv[0] != 0.0) || (but->hsv[1] != 0.0) || (but->hsv[2] != 0.0)) {
+ float rgb[3];
+ hsv_to_rgb(but->hsv[0], but->hsv[1], but->hsv[2], rgb+0, rgb+1, rgb+2);
+ wcol->inner[0] = rgb[0] * 255;
+ wcol->inner[1] = rgb[1] * 255;
+ wcol->inner[2] = rgb[2] * 255;
+ }
+
+ /* half rounded */
+ round_box_edges(&wtb, roundboxalign, rect, 4.0f);
+
+ widgetbase_draw(&wtb, wcol);
+
+ /* store the box bg as gl clearcolor, to retrieve later when drawing semi-transparent rects
+ * over the top to indicate disabled buttons */
+ glClearColor(wcol->inner[0]/255.0, wcol->inner[1]/255.0, wcol->inner[2]/255.0, 1.0);
+
+ VECCOPY(wcol->inner, old_col);
+}
+
static void widget_but(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{
uiWidgetBase wtb;
@@ -2372,10 +2529,11 @@ static void widget_disabled(rcti *rect)
/* can't use theme TH_BACK or TH_PANEL... undefined */
glGetFloatv(GL_COLOR_CLEAR_VALUE, col);
glColor4f(col[0], col[1], col[2], 0.5f);
+
/* need -1 and +1 to make it work right for aligned buttons,
* but problem may be somewhere else? */
- glRectf(rect->xmin-1, rect->ymin, rect->xmax, rect->ymax+1);
-
+ glRectf(rect->xmin-1, rect->ymin-1, rect->xmax, rect->ymax+1);
+
glDisable(GL_BLEND);
}
@@ -2492,6 +2650,7 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
break;
case UI_WTYPE_BOX:
+ wt.custom= widget_box;
wt.wcol_theme= &btheme->tui.wcol_box;
break;
@@ -2511,6 +2670,11 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
wt.wcol_theme= &btheme->tui.wcol_list_item;
wt.draw= widget_list_itembut;
break;
+
+ case UI_WTYPE_PROGRESSBAR:
+ wt.wcol_theme= &btheme->tui.wcol_progress;
+ wt.custom= widget_progressbar;
+ break;
}
return &wt;
@@ -2715,9 +2879,22 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
ui_draw_but_HISTOGRAM(ar, but, &tui->wcol_regular, rect);
break;
+ case WAVEFORM:
+ ui_draw_but_WAVEFORM(ar, but, &tui->wcol_regular, rect);
+ break;
+
+ case VECTORSCOPE:
+ ui_draw_but_VECTORSCOPE(ar, but, &tui->wcol_regular, rect);
+ break;
+
case BUT_CURVE:
ui_draw_but_CURVE(ar, but, &tui->wcol_regular, rect);
break;
+
+ case PROGRESSBAR:
+ wt= widget_type(UI_WTYPE_PROGRESSBAR);
+ fstyle= &style->widgetlabel;
+ break;
case SCROLL:
wt= widget_type(UI_WTYPE_SCROLL);
@@ -2801,7 +2978,7 @@ void ui_draw_menu_item(uiFontStyle *fstyle, rcti *rect, char *name, int iconid,
cpoin= strchr(name, '|');
if(cpoin) {
*cpoin= 0;
- rect->xmax -= BLF_width(cpoin+1) + 10;
+ rect->xmax -= BLF_width(fstyle->uifont_id, cpoin+1) + 10;
}
glColor3ubv((unsigned char*)wt->wcol.text);
@@ -2844,8 +3021,8 @@ void ui_draw_preview_item(uiFontStyle *fstyle, rcti *rect, char *name, int iconi
glColor3ubv((unsigned char*)wt->wcol.text_sel);
trect.xmin += 0;
- trect.xmax = trect.xmin + BLF_width(name) + 10;
+ trect.xmax = trect.xmin + BLF_width(fstyle->uifont_id, name) + 10;
trect.ymin += 10;
- trect.ymax = trect.ymin + BLF_height(name);
+ trect.ymax = trect.ymin + BLF_height(fstyle->uifont_id, name);
uiStyleFontDraw(fstyle, &trect, name);
}
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 8566e620fb8..58357bc67cf 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -34,15 +34,10 @@
#include <stdlib.h>
#include <string.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "DNA_curve_types.h"
-#include "DNA_listBase.h"
#include "DNA_userdef_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
@@ -50,8 +45,6 @@
#include "BLI_blenlib.h"
-#include "IMB_imbuf.h"
-#include "IMB_imbuf_types.h"
#include "BKE_DerivedMesh.h"
#include "BKE_global.h"
@@ -62,7 +55,6 @@
#include "BIF_gl.h"
#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_interface_icons.h"
#include "interface_intern.h"
@@ -279,6 +271,8 @@ char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
cp= ts->edge_seam; break;
case TH_EDGE_SHARP:
cp= ts->edge_sharp; break;
+ case TH_EDGE_CREASE:
+ cp= ts->edge_crease; break;
case TH_EDITMESH_ACTIVE:
cp= ts->editmesh_active; break;
case TH_EDGE_FACESEL:
@@ -305,7 +299,35 @@ char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
cp= ts->strip_select; break;
case TH_CFRAME:
cp= ts->cframe; break;
-
+ case TH_NURB_ULINE:
+ cp= ts->nurb_uline; break;
+ case TH_NURB_VLINE:
+ cp= ts->nurb_vline; break;
+ case TH_NURB_SEL_ULINE:
+ cp= ts->nurb_sel_uline; break;
+ case TH_NURB_SEL_VLINE:
+ cp= ts->nurb_sel_vline; break;
+ case TH_ACTIVE_SPLINE:
+ cp= ts->act_spline; break;
+ case TH_LASTSEL_POINT:
+ cp= ts->lastsel_point; break;
+ case TH_HANDLE_FREE:
+ cp= ts->handle_free; break;
+ case TH_HANDLE_AUTO:
+ cp= ts->handle_auto; break;
+ case TH_HANDLE_VECT:
+ cp= ts->handle_vect; break;
+ case TH_HANDLE_ALIGN:
+ cp= ts->handle_align; break;
+ case TH_HANDLE_SEL_FREE:
+ cp= ts->handle_sel_free; break;
+ case TH_HANDLE_SEL_AUTO:
+ cp= ts->handle_sel_auto; break;
+ case TH_HANDLE_SEL_VECT:
+ cp= ts->handle_sel_vect; break;
+ case TH_HANDLE_SEL_ALIGN:
+ cp= ts->handle_sel_align; break;
+
case TH_SYNTAX_B:
cp= ts->syntaxb; break;
case TH_SYNTAX_V:
@@ -438,11 +460,11 @@ static void ui_theme_init_new(bTheme *btheme)
#define SETCOL(col, r, g, b, a) col[0]=r; col[1]=g; col[2]= b; col[3]= a;
#define SETCOLF(col, r, g, b, a) col[0]=r*255; col[1]=g*255; col[2]= b*255; col[3]= a*255;
-/* initialize default theme, can't be edited
+/* initialize default theme
Note: when you add new colors, created & saved themes need initialized
use function below, init_userdef_do_versions()
*/
-void ui_theme_init_userdef(void)
+void ui_theme_init_default(void)
{
bTheme *btheme= U.themes.first;
@@ -500,6 +522,23 @@ void ui_theme_init_userdef(void)
btheme->tv3d.facedot_size= 4;
SETCOL(btheme->tv3d.cframe, 0x60, 0xc0, 0x40, 255);
+ SETCOL(btheme->tv3d.nurb_uline, 0x90, 0x90, 0x00, 255);
+ SETCOL(btheme->tv3d.nurb_vline, 0x80, 0x30, 0x60, 255);
+ SETCOL(btheme->tv3d.nurb_sel_uline, 0xf0, 0xff, 0x40, 255);
+ SETCOL(btheme->tv3d.nurb_sel_vline, 0xf0, 0x90, 0xa0, 255);
+
+ SETCOL(btheme->tv3d.handle_free, 0, 0, 0, 255);
+ SETCOL(btheme->tv3d.handle_auto, 0x90, 0x90, 0x00, 255);
+ SETCOL(btheme->tv3d.handle_vect, 0x40, 0x90, 0x30, 255);
+ SETCOL(btheme->tv3d.handle_align, 0x80, 0x30, 0x60, 255);
+ SETCOL(btheme->tv3d.handle_sel_free, 0, 0, 0, 255);
+ SETCOL(btheme->tv3d.handle_sel_auto, 0xf0, 0xff, 0x40, 255);
+ SETCOL(btheme->tv3d.handle_sel_vect, 0x40, 0xc0, 0x30, 255);
+ SETCOL(btheme->tv3d.handle_sel_align, 0xf0, 0x90, 0xa0, 255);
+
+ SETCOL(btheme->tv3d.act_spline, 0xdb, 0x25, 0x12, 255);
+ SETCOL(btheme->tv3d.lastsel_point, 0xff, 0xff, 0xff, 255);
+
SETCOL(btheme->tv3d.bone_solid, 200, 200, 200, 255);
SETCOL(btheme->tv3d.bone_pose, 80, 200, 255, 80); // alpha 80 is not meant editable, used for wire+action draw
@@ -912,6 +951,14 @@ void UI_GetColorPtrBlendShade3ubv(char *cp1, char *cp2, char *col, float fac, in
col[2] = b;
}
+void UI_ThemeClearColor(int colorid)
+{
+ float col[3];
+
+ UI_GetThemeColor3fv(colorid, col);
+ glClearColor(col[0], col[1], col[2], 0.0);
+}
+
void UI_make_axis_color(char *src_col, char *dst_col, char axis)
{
switch(axis)
@@ -1377,7 +1424,75 @@ void init_userdef_do_versions(void)
if(U.wmdrawmethod == USER_DRAW_TRIPLE)
U.wmdrawmethod = USER_DRAW_AUTOMATIC;
}
+
+ if (G.main->versionfile < 252 || (G.main->versionfile == 252 && G.main->subversionfile < 3)) {
+ if (U.flag & USER_LMOUSESELECT)
+ U.flag &= ~USER_TWOBUTTONMOUSE;
+ }
+ if (G.main->versionfile < 252 || (G.main->versionfile == 252 && G.main->subversionfile < 4)) {
+ bTheme *btheme;
+
+ /* default new handle type is auto handles */
+ U.keyhandles_new = HD_AUTO;
+
+ /* init new curve colors */
+ for(btheme= U.themes.first; btheme; btheme= btheme->next) {
+ /* init colors used for handles in 3D-View */
+ SETCOL(btheme->tv3d.handle_free, 0, 0, 0, 255);
+ SETCOL(btheme->tv3d.handle_auto, 0x90, 0x90, 0x00, 255);
+ SETCOL(btheme->tv3d.handle_vect, 0x40, 0x90, 0x30, 255);
+ SETCOL(btheme->tv3d.handle_align, 0x80, 0x30, 0x60, 255);
+ SETCOL(btheme->tv3d.handle_sel_free, 0, 0, 0, 255);
+ SETCOL(btheme->tv3d.handle_sel_auto, 0xf0, 0xff, 0x40, 255);
+ SETCOL(btheme->tv3d.handle_sel_vect, 0x40, 0xc0, 0x30, 255);
+ SETCOL(btheme->tv3d.handle_sel_align, 0xf0, 0x90, 0xa0, 255);
+ SETCOL(btheme->tv3d.act_spline, 0xdb, 0x25, 0x12, 255);
+
+ /* same colors again for Graph Editor... */
+ SETCOL(btheme->tipo.handle_free, 0, 0, 0, 255);
+ SETCOL(btheme->tipo.handle_auto, 0x90, 0x90, 0x00, 255);
+ SETCOL(btheme->tipo.handle_vect, 0x40, 0x90, 0x30, 255);
+ SETCOL(btheme->tipo.handle_align, 0x80, 0x30, 0x60, 255);
+ SETCOL(btheme->tipo.handle_sel_free, 0, 0, 0, 255);
+ SETCOL(btheme->tipo.handle_sel_auto, 0xf0, 0xff, 0x40, 255);
+ SETCOL(btheme->tipo.handle_sel_vect, 0x40, 0xc0, 0x30, 255);
+ SETCOL(btheme->tipo.handle_sel_align, 0xf0, 0x90, 0xa0, 255);
+
+ /* edge crease */
+ SETCOLF(btheme->tv3d.edge_crease, 0.8, 0, 0.6, 1.0);
+ }
+ }
+ if (G.main->versionfile <= 252) {
+ bTheme *btheme;
+ /* init new curve colors */
+ for(btheme= U.themes.first; btheme; btheme= btheme->next) {
+ if (btheme->tv3d.lastsel_point[3] == 0)
+ SETCOL(btheme->tv3d.lastsel_point, 0xff, 0xff, 0xff, 255);
+ }
+ }
+ if (G.main->versionfile < 252 || (G.main->versionfile == 252 && G.main->subversionfile < 5)) {
+ bTheme *btheme;
+
+ /* interface_widgets.c */
+ struct uiWidgetColors wcol_progress= {
+ {0, 0, 0, 255},
+ {190, 190, 190, 255},
+ {100, 100, 100, 180},
+ {68, 68, 68, 255},
+
+ {0, 0, 0, 255},
+ {255, 255, 255, 255},
+
+ 0,
+ 5, -5
+ };
+
+ for(btheme= U.themes.first; btheme; btheme= btheme->next) {
+ /* init progress bar theme */
+ btheme->tui.wcol_progress= wcol_progress;
+ }
+ }
/* GL Texture Garbage Collection (variable abused above!) */
if (U.textimeout == 0) {
@@ -1403,13 +1518,25 @@ void init_userdef_do_versions(void)
if (U.v2d_min_gridsize == 0) {
U.v2d_min_gridsize= 35;
}
+
+ /* Single Column UI Value */
+ if (U.propwidth == 0) {
+ U.propwidth = 200;
+ }
/* funny name, but it is GE stuff, moves userdef stuff to engine */
// XXX space_set_commmandline_options();
/* this timer uses U */
// XXX reset_autosave();
-}
+ /* GSOC Sculpt 2010 - Sanity check on Sculpt/Paint settings */
+ if (U.sculpt_paint_unified_alpha == 0)
+ U.sculpt_paint_unified_alpha = 0.5f;
+ if (U.sculpt_paint_unified_unprojected_radius == 0)
+ U.sculpt_paint_unified_unprojected_radius = 0.125f;
+ if (U.sculpt_paint_unified_size == 0)
+ U.sculpt_paint_unified_size = 35;
+}
diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c
index 2bdf1ea4c88..9a88a52d4b4 100644
--- a/source/blender/editors/interface/view2d.c
+++ b/source/blender/editors/interface/view2d.c
@@ -33,10 +33,7 @@
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_view2d_types.h"
#include "BLI_blenlib.h"
@@ -55,7 +52,6 @@
#include "ED_screen.h"
#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
#include "interface_intern.h"
@@ -1318,6 +1314,13 @@ void UI_view2d_constant_grid_draw(const bContext *C, View2D *v2d)
glEnd();
}
+/* the price we pay for not exposting structs :( */
+void UI_view2d_grid_size(View2DGrid *grid, float *r_dx, float *r_dy)
+{
+ *r_dx= grid->dx;
+ *r_dy= grid->dy;
+}
+
/* free temporary memory used for drawing grid */
void UI_view2d_grid_free(View2DGrid *grid)
{
@@ -1393,6 +1396,7 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
/* scroller 'button' extents */
totsize= v2d->tot.xmax - v2d->tot.xmin;
scrollsize= (float)(hor.xmax - hor.xmin);
+ if(totsize==0.0f) totsize = 1.0f; /* avoid divide by zero */
fac1= (v2d->cur.xmin - v2d->tot.xmin) / totsize;
if(fac1<=0.0f)
@@ -1433,6 +1437,7 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
/* scroller 'button' extents */
totsize= v2d->tot.ymax - v2d->tot.ymin;
scrollsize= (float)(vert.ymax - vert.ymin);
+ if(totsize==0.0f) totsize = 1.0f; /* avoid divide by zero */
fac1= (v2d->cur.ymin- v2d->tot.ymin) / totsize;
if(fac1<=0.0f)
@@ -1706,8 +1711,9 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
/* draw vertical steps */
if (dfac > 0.0f) {
- BLF_default_rotation(90.0f);
-
+ BLF_rotation_default(90.0f);
+ BLF_enable_default(BLF_ROTATION);
+
for (; fac < vert.ymax-10; fac+= dfac, val += grid->dy) {
/* make prints look nicer for scrollers */
@@ -1717,7 +1723,7 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
scroll_printstr(vs, scene, (float)(vert.xmax)-2.0f, fac, val, grid->powery, vs->yunits, 'v');
}
- BLF_default_rotation(0.0f);
+ BLF_disable_default(BLF_ROTATION);
}
}
}
@@ -2057,12 +2063,10 @@ void UI_view2d_text_cache_draw(ARegion *ar)
yofs= ceil( 0.5f*(v2s->rect.ymax - v2s->rect.ymin - BLF_height_default("28")));
if(yofs<1) yofs= 1;
- BLF_clipping(v2s->rect.xmin-4, v2s->rect.ymin-4, v2s->rect.xmax+4, v2s->rect.ymax+4);
- BLF_enable(BLF_CLIPPING);
-
+ BLF_clipping_default(v2s->rect.xmin-4, v2s->rect.ymin-4, v2s->rect.xmax+4, v2s->rect.ymax+4);
+ BLF_enable_default(BLF_CLIPPING);
BLF_draw_default(v2s->rect.xmin+xofs, v2s->rect.ymin+yofs, 0.0f, v2s->str);
-
- BLF_disable(BLF_CLIPPING);
+ BLF_disable_default(BLF_CLIPPING);
}
}
diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c
index 7476751fecd..a5ed57a9ee8 100644
--- a/source/blender/editors/interface/view2d_ops.c
+++ b/source/blender/editors/interface/view2d_ops.c
@@ -29,12 +29,7 @@
#include "MEM_guardedalloc.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_vec_types.h"
-#include "DNA_view2d_types.h"
#include "BLI_blenlib.h"
@@ -51,7 +46,6 @@
#include "ED_screen.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
static int view2d_poll(bContext *C)
@@ -78,6 +72,7 @@ static int view2d_poll(bContext *C)
typedef struct v2dViewPanData {
bScreen *sc; /* screen where view pan was initiated */
ScrArea *sa; /* area where view pan was initiated */
+ ARegion *ar; /* region where view pan was initiated */
View2D *v2d; /* view2d we're operating in */
float facx, facy; /* amount to move view relative to zoom */
@@ -114,6 +109,7 @@ static int view_pan_init(bContext *C, wmOperator *op)
vpd->sc= CTX_wm_screen(C);
vpd->sa= CTX_wm_area(C);
vpd->v2d= v2d;
+ vpd->ar = ar;
/* calculate translation factor - based on size of view */
winx= (float)(ar->winrct.xmax - ar->winrct.xmin + 1);
@@ -149,12 +145,14 @@ static void view_pan_apply(bContext *C, wmOperator *op)
UI_view2d_curRect_validate(v2d);
/* request updates to be done... */
- ED_area_tag_redraw(vpd->sa);
+ ED_region_tag_redraw(vpd->ar);
+
UI_view2d_sync(vpd->sc, vpd->sa, v2d, V2D_LOCK_COPY);
WM_event_add_mousemove(C);
/* exceptions */
- if(vpd->sa->spacetype==SPACE_OUTLINER) {
+ if (vpd->sa->spacetype==SPACE_OUTLINER) {
+ /* don't rebuild full tree, since we're just changing our view */
SpaceOops *soops= vpd->sa->spacedata.first;
soops->storeflag |= SO_TREESTORE_REDRAW;
}
@@ -295,7 +293,7 @@ void VIEW2D_OT_pan(wmOperatorType *ot)
ot->modal= view_pan_modal;
ot->cancel= view_pan_cancel;
- /* operator is repeatable */
+ /* operator is modal */
ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER;
/* rna - must keep these in sync with the other operators */
@@ -342,9 +340,6 @@ void VIEW2D_OT_scroll_right(wmOperatorType *ot)
/* api callbacks */
ot->exec= view_scrollright_exec;
- /* operator is repeatable */
- // ot->flag= OPTYPE_REGISTER;
-
/* rna - must keep these in sync with the other operators */
RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "deltay", 0, INT_MIN, INT_MAX, "Delta Y", "", INT_MIN, INT_MAX);
@@ -389,9 +384,6 @@ void VIEW2D_OT_scroll_left(wmOperatorType *ot)
/* api callbacks */
ot->exec= view_scrollleft_exec;
- /* operator is repeatable */
- // ot->flag= OPTYPE_REGISTER;
-
/* rna - must keep these in sync with the other operators */
RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "deltay", 0, INT_MIN, INT_MAX, "Delta Y", "", INT_MIN, INT_MAX);
@@ -416,7 +408,7 @@ static int view_scrolldown_exec(bContext *C, wmOperator *op)
/* set RNA-Props */
RNA_int_set(op->ptr, "deltax", 0);
- RNA_int_set(op->ptr, "deltay", -20);
+ RNA_int_set(op->ptr, "deltay", -40);
/* apply movement, then we're done */
view_pan_apply(C, op);
@@ -435,9 +427,6 @@ void VIEW2D_OT_scroll_down(wmOperatorType *ot)
/* api callbacks */
ot->exec= view_scrolldown_exec;
- /* operator is repeatable */
- // ot->flag= OPTYPE_REGISTER;
-
/* rna - must keep these in sync with the other operators */
RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "deltay", 0, INT_MIN, INT_MAX, "Delta Y", "", INT_MIN, INT_MAX);
@@ -463,7 +452,7 @@ static int view_scrollup_exec(bContext *C, wmOperator *op)
/* set RNA-Props */
RNA_int_set(op->ptr, "deltax", 0);
- RNA_int_set(op->ptr, "deltay", 20);
+ RNA_int_set(op->ptr, "deltay", 40);
/* apply movement, then we're done */
view_pan_apply(C, op);
@@ -482,9 +471,6 @@ void VIEW2D_OT_scroll_up(wmOperatorType *ot)
/* api callbacks */
ot->exec= view_scrollup_exec;
- /* operator is repeatable */
- // ot->flag= OPTYPE_REGISTER;
-
/* rna - must keep these in sync with the other operators */
RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "deltay", 0, INT_MIN, INT_MAX, "Delta Y", "", INT_MIN, INT_MAX);
@@ -509,6 +495,7 @@ void VIEW2D_OT_scroll_up(wmOperatorType *ot)
/* temp customdata for operator */
typedef struct v2dViewZoomData {
View2D *v2d; /* view2d we're operating in */
+ ARegion *ar;
int lastx, lasty; /* previous x/y values of mouse in window */
float dx, dy; /* running tally of previous delta values (for obtaining final zoom) */
@@ -538,6 +525,7 @@ static int view_zoomdrag_init(bContext *C, wmOperator *op)
/* set pointers to owners */
vzd->v2d= v2d;
+ vzd->ar = ar;
return 1;
}
@@ -570,11 +558,12 @@ static void view_zoomstep_apply(bContext *C, wmOperator *op)
float dx, dy, facx, facy;
/* calculate amount to move view by, ensuring symmetry so the
- * old zoom level is restored after zooming back the same amount */
+ * old zoom level is restored after zooming back the same amount
+ */
facx= RNA_float_get(op->ptr, "zoomfacx");
facy= RNA_float_get(op->ptr, "zoomfacy");
- if(facx >= 0.0f) {
+ if (facx >= 0.0f) {
dx= (v2d->cur.xmax - v2d->cur.xmin) * facx;
dy= (v2d->cur.ymax - v2d->cur.ymin) * facy;
}
@@ -589,16 +578,17 @@ static void view_zoomstep_apply(bContext *C, wmOperator *op)
v2d->cur.xmax -= 2*dx;
}
else if (v2d->keepofs & V2D_KEEPOFS_X) {
- if(v2d->align & V2D_ALIGN_NO_POS_X)
+ if (v2d->align & V2D_ALIGN_NO_POS_X)
v2d->cur.xmin += 2*dx;
else
v2d->cur.xmax -= 2*dx;
}
else {
- if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
+ if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
float mval_fac = (vzd->mx_2d - v2d->cur.xmin) / (v2d->cur.xmax-v2d->cur.xmin);
float mval_faci = 1.0 - mval_fac;
float ofs= (mval_fac * dx) - (mval_faci * dx);
+
v2d->cur.xmin += ofs + dx;
v2d->cur.xmax += ofs - dx;
}
@@ -613,19 +603,21 @@ static void view_zoomstep_apply(bContext *C, wmOperator *op)
v2d->cur.ymax -= 2*dy;
}
else if (v2d->keepofs & V2D_KEEPOFS_Y) {
- if(v2d->align & V2D_ALIGN_NO_POS_Y)
+ if (v2d->align & V2D_ALIGN_NO_POS_Y)
v2d->cur.ymin += 2*dy;
else
v2d->cur.ymax -= 2*dy;
}
else {
- if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
+ if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
float mval_fac = (vzd->my_2d - v2d->cur.ymin) / (v2d->cur.ymax-v2d->cur.ymin);
float mval_faci = 1.0 - mval_fac;
float ofs= (mval_fac * dy) - (mval_faci * dy);
+
v2d->cur.ymin += ofs + dy;
v2d->cur.ymax += ofs - dy;
- } else {
+ }
+ else {
v2d->cur.ymin += dy;
v2d->cur.ymax -= dy;
}
@@ -636,7 +628,7 @@ static void view_zoomstep_apply(bContext *C, wmOperator *op)
UI_view2d_curRect_validate(v2d);
/* request updates to be done... */
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(vzd->ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
WM_event_add_mousemove(C);
}
@@ -680,9 +672,13 @@ static int view_zoomin_invoke(bContext *C, wmOperator *op, wmEvent *event)
vzd= op->customdata;
- if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
+ if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
ARegion *ar= CTX_wm_region(C);
- UI_view2d_region_to_view(&ar->v2d, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin, &vzd->mx_2d, &vzd->my_2d);
+
+ /* store initial mouse position (in view space) */
+ UI_view2d_region_to_view(&ar->v2d,
+ event->x - ar->winrct.xmin, event->y - ar->winrct.ymin,
+ &vzd->mx_2d, &vzd->my_2d);
}
return view_zoomin_exec(C, op);
@@ -700,9 +696,6 @@ void VIEW2D_OT_zoom_in(wmOperatorType *ot)
ot->exec= view_zoomin_exec;
ot->poll= view_zoom_poll;
- /* operator is repeatable */
- // ot->flag= OPTYPE_REGISTER;
-
/* rna - must keep these in sync with the other operators */
RNA_def_float(ot->srna, "zoomfacx", 0, -FLT_MAX, FLT_MAX, "Zoom Factor X", "", -FLT_MAX, FLT_MAX);
RNA_def_float(ot->srna, "zoomfacy", 0, -FLT_MAX, FLT_MAX, "Zoom Factor Y", "", -FLT_MAX, FLT_MAX);
@@ -738,7 +731,11 @@ static int view_zoomout_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
ARegion *ar= CTX_wm_region(C);
- UI_view2d_region_to_view(&ar->v2d, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin, &vzd->mx_2d, &vzd->my_2d);
+
+ /* store initial mouse position (in view space) */
+ UI_view2d_region_to_view(&ar->v2d,
+ event->x - ar->winrct.xmin, event->y - ar->winrct.ymin,
+ &vzd->mx_2d, &vzd->my_2d);
}
return view_zoomout_exec(C, op);
@@ -756,9 +753,6 @@ void VIEW2D_OT_zoom_out(wmOperatorType *ot)
ot->exec= view_zoomout_exec;
ot->poll= view_zoom_poll;
- /* operator is repeatable */
- // ot->flag= OPTYPE_REGISTER;
-
/* rna - must keep these in sync with the other operators */
RNA_def_float(ot->srna, "zoomfacx", 0, -FLT_MAX, FLT_MAX, "Zoom Factor X", "", -FLT_MAX, FLT_MAX);
RNA_def_float(ot->srna, "zoomfacy", 0, -FLT_MAX, FLT_MAX, "Zoom Factor Y", "", -FLT_MAX, FLT_MAX);
@@ -790,10 +784,11 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op)
v2d->cur.xmax -= 2*dx;
}
else {
- if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
+ if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
float mval_fac = (vzd->mx_2d - v2d->cur.xmin) / (v2d->cur.xmax-v2d->cur.xmin);
float mval_faci = 1.0 - mval_fac;
float ofs= (mval_fac * dx) - (mval_faci * dx);
+
v2d->cur.xmin += ofs + dx;
v2d->cur.xmax += ofs - dx;
}
@@ -808,10 +803,11 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op)
v2d->cur.ymax -= 2*dy;
}
else {
- if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
+ if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
float mval_fac = (vzd->my_2d - v2d->cur.ymin) / (v2d->cur.ymax-v2d->cur.ymin);
float mval_faci = 1.0 - mval_fac;
float ofs= (mval_fac * dy) - (mval_faci * dy);
+
v2d->cur.ymin += ofs + dy;
v2d->cur.ymax += ofs - dy;
}
@@ -826,7 +822,7 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op)
UI_view2d_curRect_validate(v2d);
/* request updates to be done... */
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(vzd->ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
WM_event_add_mousemove(C);
}
@@ -872,7 +868,8 @@ static int view_zoomdrag_invoke(bContext *C, wmOperator *op, wmEvent *event)
vzd->lasty= event->prevy;
/* As we have only 1D information (magnify value), feed both axes
- with magnify information that is stored in x axis */
+ * with magnify information that is stored in x axis
+ */
fac= 0.01f * (event->x - event->prevx);
dx= fac * (v2d->cur.xmax - v2d->cur.xmin) / 10.0f;
dy= fac * (v2d->cur.ymax - v2d->cur.ymin) / 10.0f;
@@ -891,9 +888,13 @@ static int view_zoomdrag_invoke(bContext *C, wmOperator *op, wmEvent *event)
RNA_float_set(op->ptr, "deltax", 0);
RNA_float_set(op->ptr, "deltay", 0);
- if(U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
+ if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
ARegion *ar= CTX_wm_region(C);
- UI_view2d_region_to_view(&ar->v2d, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin, &vzd->mx_2d, &vzd->my_2d);
+
+ /* store initial mouse position (in view space) */
+ UI_view2d_region_to_view(&ar->v2d,
+ event->x - ar->winrct.xmin, event->y - ar->winrct.ymin,
+ &vzd->mx_2d, &vzd->my_2d);
}
if (v2d->keepofs & V2D_LOCKOFS_X)
@@ -1015,7 +1016,7 @@ void VIEW2D_OT_zoom(wmOperatorType *ot)
ot->poll= view_zoom_poll;
/* operator is repeatable */
- // ot->flag= OPTYPE_REGISTER|OPTYPE_BLOCKING;
+ // ot->flag= OPTYPE_BLOCKING;
/* rna - must keep these in sync with the other operators */
RNA_def_float(ot->srna, "deltax", 0, -FLT_MAX, FLT_MAX, "Delta X", "", -FLT_MAX, FLT_MAX);
@@ -1039,17 +1040,16 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
ARegion *ar= CTX_wm_region(C);
View2D *v2d= &ar->v2d;
rctf rect;
- int event_type;
+ int gesture_mode;
/* convert coordinates of rect to 'tot' rect coordinates */
UI_view2d_region_to_view(v2d, RNA_int_get(op->ptr, "xmin"), RNA_int_get(op->ptr, "ymin"), &rect.xmin, &rect.ymin);
UI_view2d_region_to_view(v2d, RNA_int_get(op->ptr, "xmax"), RNA_int_get(op->ptr, "ymax"), &rect.xmax, &rect.ymax);
/* check if zooming in/out view */
- // XXX hardcoded for now!
- event_type= RNA_int_get(op->ptr, "event_type");
+ gesture_mode= RNA_int_get(op->ptr, "gesture_mode");
- if (event_type == LEFTMOUSE) {
+ if (gesture_mode == GESTURE_MODAL_IN) {
/* zoom in:
* - 'cur' rect will be defined by the coordinates of the border region
* - just set the 'cur' rect to have the same coordinates as the border region
@@ -1064,7 +1064,7 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
v2d->cur.ymax= rect.ymax;
}
}
- else {
+ else /* if (gesture_mode == GESTURE_MODAL_OUT) */ {
/* zoom out:
* - the current 'cur' rect coordinates are going to end upwhere the 'rect' ones are,
* but the 'cur' rect coordinates will need to be adjusted to take in more of the view
@@ -1095,7 +1095,7 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
UI_view2d_curRect_validate(v2d);
/* request updates to be done... */
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
WM_event_add_mousemove(C);
@@ -1117,7 +1117,7 @@ void VIEW2D_OT_zoom_border(wmOperatorType *ot)
ot->poll= view_zoom_poll;
/* rna */
- RNA_def_int(ot->srna, "event_type", 0, INT_MIN, INT_MAX, "Event Type", "", INT_MIN, INT_MAX);
+ RNA_def_int(ot->srna, "gesture_mode", 0, INT_MIN, INT_MAX, "Gesture Mode", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
@@ -1139,6 +1139,7 @@ void VIEW2D_OT_zoom_border(wmOperatorType *ot)
/* customdata for scroller-invoke data */
typedef struct v2dScrollerMove {
View2D *v2d; /* View2D data that this operation affects */
+ ARegion *ar; /* region that the scroller is in */
short scroller; /* scroller that mouse is in ('h' or 'v') */
short zone; /* -1 is min zoomer, 0 is bar, 1 is max zoomer */ // XXX find some way to provide visual feedback of this (active colour?)
@@ -1146,6 +1147,8 @@ typedef struct v2dScrollerMove {
float fac; /* view adjustment factor, based on size of region */
float delta; /* amount moved by mouse on axis of interest */
+ float scrollbarwidth; /* width of the scrollbar itself, used for page up/down clicks */
+
int lastx, lasty; /* previous mouse coordinates (in screen coordinates) for determining movement */
} v2dScrollerMove;
@@ -1165,19 +1168,21 @@ struct View2DScrollers {
enum {
SCROLLHANDLE_MIN= -1,
SCROLLHANDLE_BAR,
- SCROLLHANDLE_MAX
+ SCROLLHANDLE_MAX,
+ SCROLLHANDLE_MIN_OUTSIDE,
+ SCROLLHANDLE_MAX_OUTSIDE
} eV2DScrollerHandle_Zone;
/* ------------------------ */
/* check if mouse is within scroller handle
* - mouse = relevant mouse coordinate in region space
- * - sc_min, sc_max = extents of scroller
- * - sh_min, sh_max = positions of scroller handles
+ * - sc_min, sc_max = extents of scroller 'groove' (potential available space for scroller)
+ * - sh_min, sh_max = positions of scrollbar handles
*/
static short mouse_in_scroller_handle(int mouse, int sc_min, int sc_max, int sh_min, int sh_max)
{
- short in_min, in_max, in_view=1;
+ short in_min, in_max, in_bar, out_min, out_max, in_view=1;
/* firstly, check if
* - 'bubble' fills entire scroller
@@ -1199,17 +1204,24 @@ static short mouse_in_scroller_handle(int mouse, int sc_min, int sc_max, int sh_
}
/* check if mouse is in or past either handle */
+ // TODO: check if these extents are still valid or not
in_max= ( (mouse >= (sh_max - V2D_SCROLLER_HANDLE_SIZE)) && (mouse <= (sh_max + V2D_SCROLLER_HANDLE_SIZE)) );
in_min= ( (mouse <= (sh_min + V2D_SCROLLER_HANDLE_SIZE)) && (mouse >= (sh_min - V2D_SCROLLER_HANDLE_SIZE)) );
+ in_bar= ( (mouse < (sh_max - V2D_SCROLLER_HANDLE_SIZE)) && (mouse > (sh_min + V2D_SCROLLER_HANDLE_SIZE)) );
+ out_min= mouse < (sh_min - V2D_SCROLLER_HANDLE_SIZE);
+ out_max= mouse > (sh_max + V2D_SCROLLER_HANDLE_SIZE);
- /* check if overlap --> which means user clicked on bar, as bar is within handles region */
- if (in_max && in_min)
+ if (in_bar)
return SCROLLHANDLE_BAR;
else if (in_max)
return SCROLLHANDLE_MAX;
else if (in_min)
return SCROLLHANDLE_MIN;
-
+ else if (out_min)
+ return SCROLLHANDLE_MIN_OUTSIDE;
+ else if (out_max)
+ return SCROLLHANDLE_MAX_OUTSIDE;
+
/* unlikely to happen, though we just cover it in case */
return SCROLLHANDLE_BAR;
}
@@ -1230,6 +1242,7 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event,
/* set general data */
vsm->v2d= v2d;
+ vsm->ar= ar;
vsm->scroller= in_scroller;
/* store mouse-coordinates, and convert mouse/screen coordinates to region coordinates */
@@ -1248,14 +1261,14 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event,
vsm->fac= (v2d->tot.xmax - v2d->tot.xmin) / mask_size;
/* get 'zone' (i.e. which part of scroller is activated) */
- if (v2d->keepzoom & V2D_LOCKZOOM_X) {
+ vsm->zone= mouse_in_scroller_handle(x, v2d->hor.xmin, v2d->hor.xmax, scrollers->hor_min, scrollers->hor_max);
+
+ if ((v2d->keepzoom & V2D_LOCKZOOM_X) && ELEM(vsm->zone, SCROLLHANDLE_MIN, SCROLLHANDLE_MAX)) {
/* default to scroll, as handles not usable */
vsm->zone= SCROLLHANDLE_BAR;
}
- else {
- /* check which handle we're in */
- vsm->zone= mouse_in_scroller_handle(x, v2d->hor.xmin, v2d->hor.xmax, scrollers->hor_min, scrollers->hor_max);
- }
+
+ vsm->scrollbarwidth = scrollers->hor_max - scrollers->hor_min;
}
else {
/* vertical scroller - calculate adjustment factor first */
@@ -1263,14 +1276,14 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event,
vsm->fac= (v2d->tot.ymax - v2d->tot.ymin) / mask_size;
/* get 'zone' (i.e. which part of scroller is activated) */
- if (v2d->keepzoom & V2D_LOCKZOOM_Y) {
+ vsm->zone= mouse_in_scroller_handle(y, v2d->vert.ymin, v2d->vert.ymax, scrollers->vert_min, scrollers->vert_max);
+
+ if ((v2d->keepzoom & V2D_LOCKZOOM_Y) && ELEM(vsm->zone, SCROLLHANDLE_MIN, SCROLLHANDLE_MAX)) {
/* default to scroll, as handles not usable */
vsm->zone= SCROLLHANDLE_BAR;
}
- else {
- /* check which handle we're in */
- vsm->zone= mouse_in_scroller_handle(y, v2d->vert.ymin, v2d->vert.ymax, scrollers->vert_min, scrollers->vert_max);
- }
+
+ vsm->scrollbarwidth = scrollers->vert_max - scrollers->vert_min;
}
UI_view2d_scrollers_free(scrollers);
@@ -1320,8 +1333,11 @@ static void scroller_activate_apply(bContext *C, wmOperator *op)
if ((vsm->scroller == 'v') && !(v2d->keepzoom & V2D_LOCKZOOM_Y))
v2d->cur.ymax += temp;
break;
-
- default: /* SCROLLHANDLE_BAR */
+
+ case SCROLLHANDLE_MIN_OUTSIDE:
+ case SCROLLHANDLE_MAX_OUTSIDE:
+ case SCROLLHANDLE_BAR:
+ default:
/* only move view on an axis if panning is allowed */
if ((vsm->scroller == 'h') && !(v2d->keepofs & V2D_LOCKOFS_X)) {
v2d->cur.xmin += temp;
@@ -1332,13 +1348,14 @@ static void scroller_activate_apply(bContext *C, wmOperator *op)
v2d->cur.ymax += temp;
}
break;
+
}
/* validate that view is in valid configuration after this operation */
UI_view2d_curRect_validate(v2d);
/* request updates to be done... */
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(vsm->ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
WM_event_add_mousemove(C);
}
@@ -1353,7 +1370,7 @@ static int scroller_activate_modal(bContext *C, wmOperator *op, wmEvent *event)
case MOUSEMOVE:
{
/* calculate new delta transform, then store mouse-coordinates for next-time */
- if (vsm->zone != SCROLLHANDLE_MIN) {
+ if (ELEM(vsm->zone, SCROLLHANDLE_BAR, SCROLLHANDLE_MAX)) {
/* if using bar (i.e. 'panning') or 'max' zoom widget */
switch (vsm->scroller) {
case 'h': /* horizontal scroller - so only horizontal movement ('cur' moves opposite to mouse) */
@@ -1364,7 +1381,7 @@ static int scroller_activate_modal(bContext *C, wmOperator *op, wmEvent *event)
break;
}
}
- else {
+ else if (vsm->zone == SCROLLHANDLE_MIN) {
/* using 'min' zoom widget */
switch (vsm->scroller) {
case 'h': /* horizontal scroller - so only horizontal movement ('cur' moves with mouse) */
@@ -1386,8 +1403,23 @@ static int scroller_activate_modal(bContext *C, wmOperator *op, wmEvent *event)
case LEFTMOUSE:
if (event->val==KM_RELEASE) {
- scroller_activate_exit(C, op);
- return OPERATOR_FINISHED;
+ /* single-click was in empty space outside bubble, so scroll by 1 'page' */
+ if (ELEM(vsm->zone, SCROLLHANDLE_MIN_OUTSIDE, SCROLLHANDLE_MAX_OUTSIDE)) {
+ if (vsm->zone == SCROLLHANDLE_MIN_OUTSIDE)
+ vsm->delta = -vsm->scrollbarwidth * 0.8;
+ else if (vsm->zone == SCROLLHANDLE_MAX_OUTSIDE)
+ vsm->delta = vsm->scrollbarwidth * 0.8;
+
+ scroller_activate_apply(C, op);
+ scroller_activate_exit(C, op);
+ return OPERATOR_FINISHED;
+ }
+
+ /* otherwise, end the drag action */
+ if (vsm->lastx || vsm->lasty) {
+ scroller_activate_exit(C, op);
+ return OPERATOR_FINISHED;
+ }
}
break;
}
@@ -1502,7 +1534,7 @@ static int reset_exec(bContext *C, wmOperator *op)
v2d->cur.ymax= v2d->cur.ymin + winy;
/* align */
- if(v2d->align) {
+ if (v2d->align) {
/* posx and negx flags are mutually exclusive, so watch out */
if ((v2d->align & V2D_ALIGN_NO_POS_X) && !(v2d->align & V2D_ALIGN_NO_NEG_X)) {
v2d->cur.xmax= 0.0f;
@@ -1528,7 +1560,7 @@ static int reset_exec(bContext *C, wmOperator *op)
UI_view2d_curRect_validate(v2d);
/* request updates to be done... */
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
WM_event_add_mousemove(C);
@@ -1545,9 +1577,6 @@ void VIEW2D_OT_reset(wmOperatorType *ot)
/* api callbacks */
ot->exec= reset_exec;
ot->poll= view2d_poll;
-
- /* flags */
- // ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
/* ********************************************************* */
diff --git a/source/blender/editors/mesh/CMakeLists.txt b/source/blender/editors/mesh/CMakeLists.txt
new file mode 100644
index 00000000000..809ccb86234
--- /dev/null
+++ b/source/blender/editors/mesh/CMakeLists.txt
@@ -0,0 +1,41 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../bmesh
+ ../../imbuf
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../render/extern/include
+ ../../../../intern/guardedalloc
+)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_mesh "${SRC}" "${INC}")
diff --git a/source/blender/editors/mesh/bmesh_select.c b/source/blender/editors/mesh/bmesh_select.c
index 2199a4bc594..dd86b2da9ee 100644
--- a/source/blender/editors/mesh/bmesh_select.c
+++ b/source/blender/editors/mesh/bmesh_select.c
@@ -167,7 +167,7 @@ static void draw_triangulated(short mcords[][2], short tot)
}
/* do the fill */
- filldisplist(&lb, &lb);
+ filldisplist(&lb, &lb, 0);
/* do the draw */
dl= lb.first; /* filldisplist adds in head of list */
diff --git a/source/blender/editors/mesh/bmesh_tools.c b/source/blender/editors/mesh/bmesh_tools.c
index 8291c46eedd..2d5323aa255 100644
--- a/source/blender/editors/mesh/bmesh_tools.c
+++ b/source/blender/editors/mesh/bmesh_tools.c
@@ -514,7 +514,6 @@ short EDBM_Extrude_vert(Object *obedit, BMEditMesh *em, short flag, float *nor)
static int extrude_repeat_mesh(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- Scene *scene = CTX_data_scene(C);
BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
RegionView3D *rv3d = CTX_wm_region_view3d(C);
@@ -671,7 +670,6 @@ static int mesh_extrude_region_exec(bContext *C, wmOperator *op)
static int mesh_extrude_region_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
float nor[3];
@@ -710,8 +708,7 @@ void MESH_OT_extrude_region(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* to give to transform */
- Properties_Proportional(ot);
- Properties_Constraints(ot);
+ Transform_Properties(ot, P_PROPORTIONAL|P_CONSTRAINT|P_AXIS);
RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
}
@@ -730,7 +727,6 @@ static int mesh_extrude_verts_exec(bContext *C, wmOperator *op)
static int mesh_extrude_verts_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
float nor[3];
@@ -769,8 +765,7 @@ void MESH_OT_extrude_verts_indiv(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* to give to transform */
- Properties_Proportional(ot);
- Properties_Constraints(ot);
+ Transform_Properties(ot, P_PROPORTIONAL|P_CONSTRAINT|P_AXIS);
RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
}
@@ -789,11 +784,9 @@ static int mesh_extrude_edges_exec(bContext *C, wmOperator *op)
static int mesh_extrude_edges_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
float nor[3];
- int constraint_axis[3] = {0, 0, 1};
int tmode;
tmode = EDBM_Extrude_edges_indiv(em, op, BM_SELECT, nor);
@@ -828,8 +821,7 @@ void MESH_OT_extrude_edges_indiv(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* to give to transform */
- Properties_Proportional(ot);
- Properties_Constraints(ot);
+ Transform_Properties(ot, P_PROPORTIONAL|P_CONSTRAINT|P_AXIS);
RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
}
@@ -848,7 +840,6 @@ static int mesh_extrude_faces_exec(bContext *C, wmOperator *op)
static int mesh_extrude_faces_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
float nor[3];
@@ -890,8 +881,7 @@ void MESH_OT_extrude_faces_indiv(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* to give to transform */
- Properties_Proportional(ot);
- Properties_Constraints(ot);
+ Transform_Properties(ot, P_PROPORTIONAL|P_CONSTRAINT|P_AXIS);
RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
}
@@ -1258,7 +1248,6 @@ void MESH_OT_selection_type(wmOperatorType *ot)
static int editbmesh_mark_seam(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
Mesh *me= ((Mesh *)obedit->data);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
@@ -1308,7 +1297,6 @@ void MESH_OT_mark_seam(wmOperatorType *ot)
static int editbmesh_mark_sharp(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
Mesh *me= ((Mesh *)obedit->data);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
@@ -1359,9 +1347,7 @@ void MESH_OT_mark_sharp(wmOperatorType *ot)
static int editbmesh_vert_connect(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
- Mesh *me= ((Mesh *)obedit->data);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
BMesh *bm = em->bm;
BMOperator bmop;
@@ -1394,9 +1380,7 @@ void MESH_OT_vert_connect(wmOperatorType *ot)
static int editbmesh_edge_split(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
- Mesh *me= ((Mesh *)obedit->data);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
BMesh *bm = em->bm;
BMOperator bmop;
@@ -1433,7 +1417,6 @@ void MESH_OT_edge_split(wmOperatorType *ot)
static int mesh_duplicate_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh*)ob->data)->edit_btmesh;
BMOperator bmop;
@@ -1482,7 +1465,6 @@ void MESH_OT_duplicate(wmOperatorType *ot)
static int flip_normals(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= (((Mesh *)obedit->data))->edit_btmesh;
@@ -1525,14 +1507,12 @@ static const EnumPropertyItem direction_items[]= {
/* only accepts 1 selected edge, or 2 selected faces */
static int edge_rotate_selected(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
BMOperator bmop;
BMEdge *eed;
BMIter iter;
int ccw = RNA_int_get(op->ptr, "direction") == 1; // direction == 2 when clockwise and ==1 for counter CW.
- short edgeCount = 0;
if (!(em->bm->totfacesel == 2 || em->bm->totedgesel == 1)) {
BKE_report(op->reports, RPT_ERROR, "Select one edge or two adjacent faces");
@@ -1629,7 +1609,6 @@ void EDBM_pin_mesh(BMEditMesh *em, int swap)
static int pin_mesh_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- Scene *scene = CTX_data_scene(C);
BMEditMesh *em= (((Mesh *)obedit->data))->edit_btmesh;
Mesh *me= ((Mesh *)obedit->data);
@@ -1666,8 +1645,6 @@ void EDBM_unpin_mesh(BMEditMesh *em, int swap)
{
BMIter iter;
BMHeader *ele;
- int types[3] = {BM_VERTS_OF_MESH, BM_EDGES_OF_MESH, BM_FACES_OF_MESH};
- int sels[3] = {1, !(em->selectmode & SCE_SELECT_VERTEX), !(em->selectmode & SCE_SELECT_VERTEX | SCE_SELECT_EDGE)};
int itermode;
if(em==NULL) return;
@@ -1690,9 +1667,7 @@ void EDBM_unpin_mesh(BMEditMesh *em, int swap)
static int unpin_mesh_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- Scene *scene = CTX_data_scene(C);
BMEditMesh *em= (((Mesh *)obedit->data))->edit_btmesh;
- Mesh *me= ((Mesh *)obedit->data);
EDBM_unpin_mesh(em, RNA_boolean_get(op->ptr, "unselected"));
@@ -1755,7 +1730,6 @@ void EDBM_hide_mesh(BMEditMesh *em, int swap)
static int hide_mesh_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- Scene *scene = CTX_data_scene(C);
BMEditMesh *em= (((Mesh *)obedit->data))->edit_btmesh;
EDBM_hide_mesh(em, RNA_boolean_get(op->ptr, "unselected"));
@@ -1809,7 +1783,6 @@ void EDBM_reveal_mesh(BMEditMesh *em)
static int reveal_mesh_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- Scene *scene = CTX_data_scene(C);
BMEditMesh *em= (((Mesh *)obedit->data))->edit_btmesh;
EDBM_reveal_mesh(em);
@@ -1837,7 +1810,6 @@ void MESH_OT_reveal(wmOperatorType *ot)
static int normals_make_consistent_exec(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
@@ -1874,7 +1846,6 @@ void MESH_OT_normals_make_consistent(wmOperatorType *ot)
static int do_smooth_vertex(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
ModifierData *md;
@@ -1940,7 +1911,6 @@ void MESH_OT_vertices_smooth(wmOperatorType *ot)
static int bm_test_exec(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
RegionView3D *r3d = CTX_wm_region_view3d(C);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
@@ -2033,7 +2003,6 @@ void mesh_set_smooth_faces(BMEditMesh *em, short smooth)
static int mesh_faces_shade_smooth_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
@@ -2062,7 +2031,6 @@ void MESH_OT_faces_shade_smooth(wmOperatorType *ot)
static int mesh_faces_shade_flat_exec(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
@@ -2100,7 +2068,6 @@ static const EnumPropertyItem axis_items[]= {
static int mesh_rotate_uvs(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_edit_object(C);
BMEditMesh *em = ((Mesh*)ob->data)->edit_btmesh;
BMOperator bmop;
@@ -2131,7 +2098,6 @@ static int mesh_rotate_uvs(bContext *C, wmOperator *op)
static int mesh_reverse_uvs(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_edit_object(C);
BMEditMesh *em = ((Mesh*)ob->data)->edit_btmesh;
BMOperator bmop;
@@ -2158,7 +2124,6 @@ static int mesh_reverse_uvs(bContext *C, wmOperator *op)
static int mesh_rotate_colors(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_edit_object(C);
BMEditMesh *em = ((Mesh*)ob->data)->edit_btmesh;
BMOperator bmop;
@@ -2190,7 +2155,6 @@ static int mesh_rotate_colors(bContext *C, wmOperator *op)
static int mesh_reverse_colors(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_edit_object(C);
BMEditMesh *em = ((Mesh*)ob->data)->edit_btmesh;
BMOperator bmop;
@@ -2370,7 +2334,7 @@ static int merge_target(BMEditMesh *em, Scene *scene, View3D *v3d, Object *ob,
{
BMIter iter;
BMVert *v;
- float *vco, co[3], cent[3] = {0.0f, 0.0f, 0.0f}, fac;
+ float *vco=NULL, co[3], cent[3] = {0.0f, 0.0f, 0.0f}, fac;
int i;
if (target) {
@@ -2392,9 +2356,10 @@ static int merge_target(BMEditMesh *em, Scene *scene, View3D *v3d, Object *ob,
fac = 1.0f / (float)i;
VECMUL(cent, fac);
VECCOPY(co, cent);
+ vco = co;
}
- if (!co)
+ if (!vco)
return OPERATOR_CANCELLED;
if (uvmerge) {
@@ -2517,7 +2482,6 @@ void MESH_OT_merge(wmOperatorType *ot)
static int removedoublesflag_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- Scene *scene = CTX_data_scene(C);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
BMOperator bmop;
int count;
@@ -2587,7 +2551,6 @@ typedef struct PathEdge {
int select_vertex_path_exec(bContext *C, wmOperator *op)
{
- Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_edit_object(C);
BMEditMesh *em = ((Mesh*)ob->data)->edit_btmesh;
BMOperator bmop;
@@ -3259,7 +3222,7 @@ void MESH_OT_rip(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* to give to transform */
- Properties_Proportional(ot);
+ Transform_Properties(ot, P_PROPORTIONAL);
RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
}
@@ -3343,7 +3306,7 @@ static int blend_from_shape_exec(bContext *C, wmOperator *op)
float blend= RNA_float_get(op->ptr, "blend");
int shape= RNA_enum_get(op->ptr, "shape");
int add= RNA_int_get(op->ptr, "add");
- int blended= 0, totshape;
+ int totshape;
/*sanity check*/
totshape = CustomData_number_of_layers(&em->bm->vdata, CD_SHAPEKEY);
@@ -3525,6 +3488,7 @@ static int solidify_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
#endif
+ return OPERATOR_CANCELLED;
}
@@ -3789,7 +3753,7 @@ static int knife_cut_exec(bContext *C, wmOperator *op)
}
/*the floating point coordinates of verts in screen space will be stored in a hash table according to the vertices pointer*/
- gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "knife cut exec");
for(bv=BMIter_New(&iter, bm, BM_VERTS_OF_MESH, NULL);bv;bv=BMIter_Step(&iter)){
scr = MEM_mallocN(sizeof(float)*2, "Vertex Screen Coordinates");
VECCOPY(co, bv->co);
@@ -4008,7 +3972,6 @@ void MESH_OT_quads_convert_to_tris(wmOperatorType *ot)
static int tris_convert_to_quads_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- Scene *scene = CTX_data_scene(C);
BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
int dosharp, douvs, dovcols, domaterials;
float limit = RNA_float_get(op->ptr, "limit");
@@ -4103,8 +4066,8 @@ static int split_mesh(bContext *C, wmOperator *op)
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
- return OPERATOR_FINISHED;
#endif
+ return OPERATOR_FINISHED;
}
void MESH_OT_split(wmOperatorType *ot)
@@ -4204,6 +4167,7 @@ static int spin_mesh(bContext *C, wmOperator *op, float *dvec, int steps, float
BKE_mesh_end_editmesh(obedit->data, em);
return ok;
#endif
+ return OPERATOR_CANCELLED;
}
static int spin_mesh_exec(bContext *C, wmOperator *op)
@@ -4235,8 +4199,8 @@ static int spin_mesh_invoke(bContext *C, wmOperator *op, wmEvent *event)
RNA_float_set_array(op->ptr, "center", give_cursor(scene, v3d));
RNA_float_set_array(op->ptr, "axis", rv3d->viewinv[2]);
- return spin_mesh_exec(C, op);
#endif
+ return spin_mesh_exec(C, op);
}
void MESH_OT_spin(wmOperatorType *ot)
@@ -4333,6 +4297,7 @@ static int screw_mesh_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
#endif
+ return OPERATOR_CANCELLED;
}
/* get center and axis, in global coords */
diff --git a/source/blender/editors/mesh/editbmesh_add.c b/source/blender/editors/mesh/editbmesh_add.c
index 72e728ec731..20bd2d3d82b 100644
--- a/source/blender/editors/mesh/editbmesh_add.c
+++ b/source/blender/editors/mesh/editbmesh_add.c
@@ -166,7 +166,7 @@ static int add_primitive_plane_exec(bContext *C, wmOperator *op)
int state;
int layer;
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer);
make_prim_init(C, &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
@@ -211,7 +211,7 @@ static int add_primitive_cube_exec(bContext *C, wmOperator *op)
int state;
int layer;
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer);
make_prim_init(C, &dia, mat, &state, loc, rot, layer);
obedit= CTX_data_edit_object(C);
@@ -251,7 +251,7 @@ static int add_primitive_circle_exec(bContext *C, wmOperator *op)
int enter_editmode;
float loc[3], rot[3];
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode);
make_prim_ext(C, loc, rot, enter_editmode,
PRIM_CIRCLE, RNA_int_get(op->ptr, "vertices"), 0, 0,
@@ -294,7 +294,7 @@ static int add_primitive_tube_exec(bContext *C, wmOperator *op)
int state;
int layer;
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer);
make_prim_init(C, &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
@@ -344,7 +344,7 @@ static int add_primitive_cone_exec(bContext *C, wmOperator *op)
int state;
int layer;
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer);
make_prim_init(C, &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
@@ -396,7 +396,7 @@ static int add_primitive_grid_exec(bContext *C, wmOperator *op)
int state;
int layer;
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer);
make_prim_init(C, &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
@@ -449,7 +449,7 @@ static int add_primitive_monkey_exec(bContext *C, wmOperator *op)
int state;
int layer;
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer);
make_prim_init(C, &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
@@ -493,7 +493,7 @@ static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
int state;
int layer;
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer);
make_prim_init(C, &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
@@ -544,7 +544,7 @@ static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
int state;
int layer;
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer);
make_prim_init(C, &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
diff --git a/source/blender/editors/mesh/editbmesh_bvh.c b/source/blender/editors/mesh/editbmesh_bvh.c
index e783e855d5e..c0f82a0fe23 100644
--- a/source/blender/editors/mesh/editbmesh_bvh.c
+++ b/source/blender/editors/mesh/editbmesh_bvh.c
@@ -374,7 +374,7 @@ static float topo_compare(BMesh *bm, BMVert *v1, BMVert *v2, int tag)
if (BM_Vert_EdgeCount(v1) != BM_Vert_EdgeCount(v2))
return 1.0f; /*full mismatch*/
- gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "bmesh bvh");
#define SPUSH(s, d, vt, lv, e)\
if (BLI_array_count(s) <= lvl) BLI_array_growone(s);\
@@ -619,7 +619,7 @@ BMVert *BMBVH_FindClosestVertTopo(BMBVHTree *tree, float *co, float maxdist, BMV
tree->curv = NULL;
tree->curtag = 1;
- tree->gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ tree->gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "bmesh bvh");
tree->maxdist = maxdist;
tree->v = sourcev;
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c
index 442a0121ca5..0ee1e97ee77 100644
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.c
@@ -40,14 +40,9 @@
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
-#include "DNA_image_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_view3d_types.h"
#include "BKE_brush.h"
#include "BKE_customdata.h"
@@ -66,7 +61,6 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "GPU_draw.h"
#ifndef DISABLE_PYTHON
//#include "BPY_extern.h"
@@ -75,7 +69,6 @@
#include "ED_mesh.h"
#include "ED_screen.h"
-#include "ED_object.h"
#include "ED_view3d.h"
#include "WM_api.h"
@@ -85,7 +78,7 @@
#include "mesh_intern.h"
/* ***************** XXX **************** */
-static int pupmenu() {return 0;}
+static int pupmenu(const char *dummy) {return 0;}
/* ***************** XXX **************** */
@@ -784,7 +777,7 @@ void seam_mark_clear_tface(Scene *scene, short mode)
for (a=0, med=me->medge; a<me->totedge; a++, med++)
if (BLI_edgehash_haskey(ehash1, med->v1, med->v2) &&
- BLI_edgehash_haskey(ehash2, med->v1, med->v2))
+ BLI_edgehash_haskey(ehash2, med->v1, med->v2))
med->flag |= ME_SEAM;
BLI_edgehash_free(ehash1, NULL);
diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c
index 4d5af4eb236..b92e73ac77d 100644
--- a/source/blender/editors/mesh/loopcut.c
+++ b/source/blender/editors/mesh/loopcut.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -73,7 +73,6 @@
#include "RNA_define.h"
#include "UI_interface.h"
-#include "UI_resources.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -130,7 +129,7 @@ static void ringsel_draw(const bContext *C, ARegion *ar, void *arg)
static void edgering_find_order(BMEditMesh *em, BMEdge *lasteed, BMEdge *eed,
BMVert *lastv1, BMVert *v[2][2])
{
- BMIter iter, liter;
+ BMIter liter;
BMLoop *l, *l2;
int rev;
@@ -178,7 +177,7 @@ static void edgering_sel(tringselOpData *lcd, int previewlines, int select)
float (*edges)[2][3] = NULL;
BLI_array_declare(edges);
float co[2][3];
- int looking=1, i, tot=0;
+ int i, tot=0;
if (!startedge)
return;
@@ -209,10 +208,6 @@ static void edgering_sel(tringselOpData *lcd, int previewlines, int select)
lastv1 = NULL;
for (lasteed=NULL; eed; eed=BMW_Step(&walker)) {
if (lasteed) {
- BMIter liter;
- BMLoop *l, *l2;
- int rev;
-
if (lastv1) {
v[1][0] = v[0][0];
v[1][1] = v[0][1];
@@ -291,7 +286,16 @@ static void ringsel_finish(bContext *C, wmOperator *op)
BM_esubdivideflag(lcd->ob, em->bm, BM_SELECT, 0.0f,
0.0f, 0, cuts, SUBDIV_SELECT_LOOPCUT,
SUBD_PATH, 0, 0);
-
+ /* force edge slide to edge select mode in in face select mode */
+ if (em->selectmode & SCE_SELECT_FACE) {
+ if (em->selectmode == SCE_SELECT_FACE)
+ em->selectmode = SCE_SELECT_EDGE;
+ else
+ em->selectmode &= ~SCE_SELECT_FACE;
+ CTX_data_tool_settings(C)->selectmode= em->selectmode;
+ EDBM_selectmode_set(em);
+ }
+
WM_event_add_notifier(C, NC_GEOM|ND_SELECT|ND_DATA, lcd->ob->data);
DAG_id_flush_update(lcd->ob->data, OB_RECALC_DATA);
}
@@ -416,7 +420,7 @@ static int ringsel_modal (bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_FINISHED;
case RIGHTMOUSE: /* confirm */ // XXX hardcoded
- if (event->val == KM_RELEASE) {
+ if (event->val == KM_PRESS) {
/* finish */
ED_region_tag_redraw(lcd->ar);
diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c
index be688cf0c6c..6f6af2d84a5 100644
--- a/source/blender/editors/mesh/mesh_data.c
+++ b/source/blender/editors/mesh/mesh_data.c
@@ -32,20 +32,18 @@
#include "MEM_guardedalloc.h"
-#include "DNA_customdata_types.h"
#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_depsgraph.h"
#include "BKE_displist.h"
#include "BKE_global.h"
+#include "BKE_image.h"
#include "BKE_library.h"
#include "BKE_material.h"
#include "BKE_mesh.h"
@@ -321,17 +319,33 @@ static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
Scene *scene= CTX_data_scene(C);
Base *base= ED_view3d_give_base_under_cursor(C, event->mval);
- Image *ima;
+ Image *ima= NULL;
Mesh *me;
Object *obedit;
int exitmode= 0;
char name[32];
+ /* Check context */
+ if(base==NULL || base->object->type!=OB_MESH) {
+ BKE_report(op->reports, RPT_ERROR, "Not an Object or Mesh");
+ return OPERATOR_CANCELLED;
+ }
+
/* check input variables */
- RNA_string_get(op->ptr, "name", name);
- ima= (Image *)find_id("IM", name);
- if(base==NULL || base->object->type!=OB_MESH || ima==NULL) {
- BKE_report(op->reports, RPT_ERROR, "Not a Mesh or no Image.");
+ if(RNA_property_is_set(op->ptr, "filepath")) {
+ char path[FILE_MAX];
+
+ RNA_string_get(op->ptr, "filepath", path);
+ ima= BKE_add_image_file(path,
+ scene ? scene->r.cfra : 1);
+ }
+ else {
+ RNA_string_get(op->ptr, "name", name);
+ ima= (Image *)find_id("IM", name);
+ }
+
+ if(!ima) {
+ BKE_report(op->reports, RPT_ERROR, "Not an Image.");
return OPERATOR_CANCELLED;
}
@@ -377,6 +391,7 @@ void MESH_OT_drop_named_image(wmOperatorType *ot)
/* properties */
RNA_def_string(ot->srna, "name", "Image", 24, "Name", "Image name to assign.");
+ RNA_def_string(ot->srna, "filepath", "Path", FILE_MAX, "Filepath", "Path to image file");
}
static int uv_texture_remove_exec(bContext *C, wmOperator *op)
@@ -703,7 +718,7 @@ static void mesh_add_faces(Mesh *mesh, int len)
/* set default flags */
mface= &mesh->mface[mesh->totface];
for(i=0; i<len; i++, mface++)
- mface->flag= SELECT;
+ mface->flag= ME_FACE_SEL;
mesh->totface= totface;
}
diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h
index 27312b83c14..13299405a57 100644
--- a/source/blender/editors/mesh/mesh_intern.h
+++ b/source/blender/editors/mesh/mesh_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -40,6 +40,8 @@
#include "BLI_editVert.h"
+#include "RNA_types.h"
+
struct bContext;
struct wmOperatorType;
struct ViewContext;
@@ -225,35 +227,22 @@ void MESH_OT_flip_normals(struct wmOperatorType *ot);
void MESH_OT_solidify(struct wmOperatorType *ot);
void MESH_OT_select_nth(struct wmOperatorType *ot);
-extern void EM_automerge(Scene *scene, Object *obedit, int update);
-void editmesh_select_by_material(EditMesh *em, int index);
-void EM_recalc_normal_direction(EditMesh *em, int inside, int select); /* makes faces righthand turning */
-void EM_select_more(EditMesh *em);
-void selectconnected_mesh_all(EditMesh *em);
-void faceloop_select(struct BMEditMesh *em, struct BMEdge *startedge, int select);
-
-/**
- * findnearestvert
- *
- * dist (in/out): minimal distance to the nearest and at the end, actual distance
- * sel: selection bias
- * if SELECT, selected vertice are given a 5 pixel bias to make them farter than unselect verts
- * if 0, unselected vertice are given the bias
- * strict: if 1, the vertice corresponding to the sel parameter are ignored and not just biased
- */
-extern EditVert *findnearestvert(struct ViewContext *vc, int *dist, short sel, short strict);
-
-
-/* ******************* editmesh_tools.c */
#define SUBDIV_SELECT_ORIG 0
#define SUBDIV_SELECT_INNER 1
#define SUBDIV_SELECT_INNER_SEL 2
#define SUBDIV_SELECT_LOOPCUT 3
+/* edge subdivide corner cut types */
+#define SUBDIV_CORNER_PATH 0
+#define SUBDIV_CORNER_INNERVERT 1
+#define SUBDIV_CORNER_FAN 2
+
+extern EnumPropertyItem corner_type_items[];
+
void join_triangles(EditMesh *em);
int removedoublesflag(EditMesh *em, short flag, short automerge, float limit); /* return amount */
-void esubdivideflag(Object *obedit, EditMesh *em, int flag, float smooth, float fractal, int beautify, int numcuts, int seltype);
+void esubdivideflag(Object *obedit, EditMesh *em, int flag, float smooth, float fractal, int beautify, int numcuts, int corner_pattern, int seltype);
int EdgeSlide(EditMesh *em, struct wmOperator *op, short immediate, float imperc);
void MESH_OT_merge(struct wmOperatorType *ot);
@@ -291,6 +280,7 @@ void MESH_OT_rip(struct wmOperatorType *ot);
void MESH_OT_shape_propagate_to_all(struct wmOperatorType *ot);
void MESH_OT_blend_from_shape(struct wmOperatorType *ot);
+void MESH_OT_sort_faces(struct wmOperatorType *ot);
/* ******************* mesh_data.c */
diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c
index 0aa7dfee67d..0e034c8ca6d 100644
--- a/source/blender/editors/mesh/mesh_ops.c
+++ b/source/blender/editors/mesh/mesh_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -33,11 +33,6 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -49,18 +44,14 @@
#include "BKE_utildefines.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_mesh.h"
#include "ED_object.h"
#include "ED_screen.h"
-#include "ED_transform.h"
#include "ED_view3d.h"
-#include "UI_interface.h"
#include "mesh_intern.h"
@@ -122,6 +113,7 @@ void ED_operatortypes_mesh(void)
WM_operatortype_append(MESH_OT_edge_flip);
WM_operatortype_append(MESH_OT_faces_shade_smooth);
WM_operatortype_append(MESH_OT_faces_shade_flat);
+ //WM_operatortype_append(MESH_OT_sort_faces);
WM_operatortype_append(MESH_OT_delete);
@@ -184,30 +176,35 @@ void ED_operatormacros_mesh(void)
WM_operatortype_macro_define(ot, "MESH_OT_duplicate");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_enum_set(otmacro->ptr, "proportional", 0);
+ RNA_boolean_set(otmacro->ptr, "mirror", 0);
ot= WM_operatortype_append_macro("MESH_OT_rip_move", "Rip", OPTYPE_UNDO|OPTYPE_REGISTER);
ot->description = "Rip polygons and move the result";
WM_operatortype_macro_define(ot, "MESH_OT_rip");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_enum_set(otmacro->ptr, "proportional", 0);
+ RNA_boolean_set(otmacro->ptr, "mirror", 0);
ot= WM_operatortype_append_macro("MESH_OT_extrude_region_move", "Extrude Region and Move", OPTYPE_UNDO|OPTYPE_REGISTER);
ot->description = "Extrude region and move result";
otmacro= WM_operatortype_macro_define(ot, "MESH_OT_extrude_region");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_enum_set(otmacro->ptr, "proportional", 0);
+ RNA_boolean_set(otmacro->ptr, "mirror", 0);
ot= WM_operatortype_append_macro("MESH_OT_extrude_faces_move", "Extrude Individual Faces and Move", OPTYPE_UNDO|OPTYPE_REGISTER);
ot->description = "Extrude faces and move result";
otmacro= WM_operatortype_macro_define(ot, "MESH_OT_extrude_faces_indiv");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_shrink_fatten");
RNA_enum_set(otmacro->ptr, "proportional", 0);
+ RNA_boolean_set(otmacro->ptr, "mirror", 0);
ot= WM_operatortype_append_macro("MESH_OT_extrude_edges_move", "Extrude Only Edges and Move", OPTYPE_UNDO|OPTYPE_REGISTER);
ot->description = "Extrude edges and move result";
otmacro= WM_operatortype_macro_define(ot, "MESH_OT_extrude_edges_indiv");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_enum_set(otmacro->ptr, "proportional", 0);
+ RNA_boolean_set(otmacro->ptr, "mirror", 0);
ot= WM_operatortype_append_macro("MESH_OT_extrude_vertices_move", "Extrude Only Vertices and Move", OPTYPE_UNDO|OPTYPE_REGISTER);
ot->description = "Extrude vertices and move result";
@@ -215,6 +212,7 @@ void ED_operatormacros_mesh(void)
RNA_enum_set(otmacro->ptr, "type", 4);
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_enum_set(otmacro->ptr, "proportional", 0);
+ RNA_boolean_set(otmacro->ptr, "mirror", 0);
}
/* note mesh keymap also for other space? */
@@ -272,8 +270,9 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "MESH_OT_spin", RKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "MESH_OT_fill", FKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "MESH_OT_beautify_fill", FKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_add_item(keymap, "MESH_OT_fill", FKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_add_item(keymap, "MESH_OT_beautify_fill", FKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0);
+ //WM_keymap_add_item(keymap, "MESH_OT_sort_faces", FKEY, KM_PRESS, KM_ALT|KM_CTRL, 0);
WM_keymap_add_item(keymap, "MESH_OT_quads_convert_to_tris", TKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "MESH_OT_tris_convert_to_quads", JKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "MESH_OT_edge_flip", FKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
@@ -298,6 +297,7 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "MESH_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MESH_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "MESH_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MESH_OT_knife_cut", LEFTMOUSE, KM_PRESS, 0, KKEY);
RNA_enum_set(WM_keymap_add_item(keymap, "MESH_OT_knife_cut", LEFTMOUSE, KM_PRESS, KM_SHIFT, KKEY)->ptr, "type", 2/*KNIFE_MIDPOINT*/);
@@ -313,6 +313,6 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
WM_keymap_add_menu(keymap, "VIEW3D_MT_uv_map", UKEY, KM_PRESS, 0, 0);
WM_keymap_add_menu(keymap, "VIEW3D_MT_vertex_group", GKEY, KM_PRESS, KM_CTRL, 0);
- ED_object_generic_keymap(keyconf, keymap, TRUE);
+ ED_object_generic_keymap(keyconf, keymap, 2);
}
diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c
index 557c15872a1..bcc00e0640a 100644
--- a/source/blender/editors/mesh/meshtools.c
+++ b/source/blender/editors/mesh/meshtools.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -39,18 +39,12 @@
#include "MEM_guardedalloc.h"
-#include "DNA_image_types.h"
#include "DNA_key_types.h"
#include "DNA_material_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
-#include "DNA_world_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -89,10 +83,6 @@
/* own include */
#include "mesh_intern.h"
-/* XXX */
-static int pupmenu() {return 0;}
-/* XXX */
-
/* * ********************** no editmode!!! *********** */
@@ -662,153 +652,6 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-/* ********************** SORT FACES ******************* */
-
-static void permutate(void *list, int num, int size, int *index)
-{
- void *buf;
- int len;
- int i;
-
- len = num * size;
-
- buf = MEM_mallocN(len, "permutate");
- memcpy(buf, list, len);
-
- for (i = 0; i < num; i++) {
- memcpy((char *)list + (i * size), (char *)buf + (index[i] * size), size);
- }
- MEM_freeN(buf);
-}
-
-/* sort faces on view axis */
-static float *face_sort_floats;
-static int float_sort(const void *v1, const void *v2)
-{
- float x1, x2;
-
- x1 = face_sort_floats[((int *) v1)[0]];
- x2 = face_sort_floats[((int *) v2)[0]];
-
- if( x1 > x2 ) return 1;
- else if( x1 < x2 ) return -1;
- return 0;
-}
-
-
-void sort_faces(Scene *scene, View3D *v3d)
-{
- RegionView3D *rv3d= NULL; // get from context
- Object *ob= OBACT;
- Mesh *me;
- CustomDataLayer *layer;
- int i, *index;
- short event;
- float reverse = 1;
- int ctrl= 0; // XXX
-
- if(!ob) return;
- if(scene->obedit) return;
- if(ob->type!=OB_MESH) return;
- if (!v3d) return;
-
- me= ob->data;
- if(me->totface==0) return;
-
- event = pupmenu(
- "Sort Faces (Ctrl to reverse)%t|"
- "View Axis%x1|"
- "Cursor Distance%x2|"
- "Material%x3|"
- "Selection%x4|"
- "Randomize%x5");
-
- if (event==-1) return;
-
- if(ctrl)
- reverse = -1;
-
-/* create index list */
- index = (int *) MEM_mallocN(sizeof(int) * me->totface, "sort faces");
- for (i = 0; i < me->totface; i++) {
- index[i] = i;
- }
-
- face_sort_floats = (float *) MEM_mallocN(sizeof(float) * me->totface, "sort faces float");
-
-/* sort index list instead of faces itself
- and apply this permutation to all face layers */
-
- if (event == 5) {
- /* Random */
- for(i=0; i<me->totface; i++) {
- face_sort_floats[i] = BLI_frand();
- }
- qsort(index, me->totface, sizeof(int), float_sort);
- } else {
- MFace *mf;
- float vec[3];
- float mat[4][4];
- float cur[3];
-
- if (event == 1)
- mul_m4_m4m4(mat, OBACT->obmat, rv3d->viewmat); /* apply the view matrix to the object matrix */
- else if (event == 2) { /* sort from cursor */
- if( v3d && v3d->localvd ) {
- VECCOPY(cur, v3d->cursor);
- } else {
- VECCOPY(cur, scene->cursor);
- }
- invert_m4_m4(mat, OBACT->obmat);
- mul_m4_v3(mat, cur);
- }
-
- mf= me->mface;
- for(i=0; i<me->totface; i++, mf++) {
-
- if (event==3) {
- face_sort_floats[i] = ((float)mf->mat_nr)*reverse;
- } else if (event==4) {
- /*selected first*/
- if (mf->flag & ME_FACE_SEL) face_sort_floats[i] = 0.0;
- else face_sort_floats[i] = reverse;
- } else {
- /* find the faces center */
- add_v3_v3v3(vec, (me->mvert+mf->v1)->co, (me->mvert+mf->v2)->co);
- if (mf->v4) {
- add_v3_v3v3(vec, vec, (me->mvert+mf->v3)->co);
- add_v3_v3v3(vec, vec, (me->mvert+mf->v4)->co);
- mul_v3_fl(vec, 0.25f);
- } else {
- add_v3_v3v3(vec, vec, (me->mvert+mf->v3)->co);
- mul_v3_fl(vec, 1.0f/3.0f);
- } /* done */
-
- if (event == 1) { /* sort on view axis */
- mul_m4_v3(mat, vec);
- face_sort_floats[i] = vec[2] * reverse;
- } else if(event == 2) { /* distance from cursor*/
- face_sort_floats[i] = len_v3v3(cur, vec) * reverse; /* back to front */
- }
- }
- }
- qsort(index, me->totface, sizeof(int), float_sort);
- }
-
- MEM_freeN(face_sort_floats);
-
- for(i = 0; i < me->fdata.totlayer; i++) {
- layer = &me->fdata.layers[i];
- permutate(layer->data, me->totface, CustomData_sizeof(layer->type), index);
- }
-
- MEM_freeN(index);
-
- DAG_id_flush_update(ob->data, OB_RECALC_DATA);
-}
-
-
-
/* ********************* MESH VERTEX OCTREE LOOKUP ************* */
/* important note; this is unfinished, needs better API for editmode, and custom threshold */
@@ -1367,11 +1210,6 @@ float *editmesh_get_mirror_uv(int axis, float *uv, float *mirrCent, float *face_
cent_vec[1] = face_cent[1];
}
- /*
- G.v2d->cursor[0] = mirrCent[0];
- G.v2d->cursor[1] = mirrCent[1];
- */
-
/* TODO - Optimize */
{
EditFace *efa;
@@ -1460,7 +1298,7 @@ int *mesh_get_x_mirror_faces(Object *ob, BMEditMesh *em)
mesh_octree_table(ob, em, NULL, 'e');
- fhash= BLI_ghash_new(mirror_facehash, mirror_facecmp);
+ fhash= BLI_ghash_new(mirror_facehash, mirror_facecmp, "mirror_facehash gh");
for(a=0, mf=mface; a<me->totface; a++, mf++)
BLI_ghash_insert(fhash, mf, mf);
diff --git a/source/blender/editors/metaball/CMakeLists.txt b/source/blender/editors/metaball/CMakeLists.txt
new file mode 100644
index 00000000000..5e821a5c1e8
--- /dev/null
+++ b/source/blender/editors/metaball/CMakeLists.txt
@@ -0,0 +1,35 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../makesdna
+ ../../makesrna
+ ../../render/extern/include
+ ../../windowmanager
+ ../../../../intern/guardedalloc
+)
+
+BLENDERLIB(bf_editor_metaball "${SRC}" "${INC}")
diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c
index 625f9b630f4..1d76717e9eb 100644
--- a/source/blender/editors/metaball/mball_edit.c
+++ b/source/blender/editors/metaball/mball_edit.c
@@ -30,10 +30,6 @@
#include <math.h>
#include <string.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
@@ -43,9 +39,6 @@
#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
-#include "DNA_userdef_types.h"
#include "RNA_define.h"
#include "RNA_access.h"
@@ -54,6 +47,7 @@
#include "BKE_depsgraph.h"
#include "BKE_object.h"
#include "BKE_context.h"
+#include "BKE_library.h"
#include "ED_screen.h"
#include "ED_view3d.h"
@@ -66,6 +60,10 @@
/* This function is used to free all MetaElems from MetaBall */
void free_editMball(Object *obedit)
{
+ MetaBall *mb = (MetaBall*)obedit->data;
+
+ mb->editelems= NULL;
+ mb->lastelem= NULL;
}
/* This function is called, when MetaBall Object is
@@ -87,13 +85,9 @@ void make_editMball(Object *obedit)
/* This function is called, when MetaBall Object switched from
* edit mode to object mode. List od MetaElements is copied
- * from object->data->edit_elems to to object->data->elems. */
+ * from object->data->edit_elems to object->data->elems. */
void load_editMball(Object *obedit)
{
- MetaBall *mb = (MetaBall*)obedit->data;
-
- mb->editelems= NULL;
- mb->lastelem= NULL;
}
/* Add metaelem primitive to metaball object (which is in edit mode) */
@@ -129,24 +123,29 @@ MetaElem *add_metaball_primitive(bContext *C, float mat[4][4], int type, int new
case MB_BALL:
ml->type = MB_BALL;
ml->expx= ml->expy= ml->expz= 1.0;
+
break;
case MB_TUBE:
ml->type = MB_TUBE;
ml->expx= ml->expy= ml->expz= 1.0;
+
break;
case MB_PLANE:
ml->type = MB_PLANE;
ml->expx= ml->expy= ml->expz= 1.0;
+
break;
case MB_ELIPSOID:
ml->type = MB_ELIPSOID;
ml->expx= 1.2f;
ml->expy= 0.8f;
ml->expz= 1.0;
+
break;
case MB_CUBE:
ml->type = MB_CUBE;
ml->expx= ml->expy= ml->expz= 1.0;
+
break;
default:
break;
@@ -206,7 +205,7 @@ void MBALL_OT_select_all(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Select/Deselect All";
- ot->description= "Change selection of all meta elements";
+ ot->description= "Change selection of all meta elements";
ot->idname= "MBALL_OT_select_all";
/* callback functions */
@@ -247,7 +246,7 @@ void MBALL_OT_select_inverse_metaelems(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Inverse";
- ot->description= "Select inverse of (un)selected metaelements";
+ ot->description= "Select inverse of (un)selected metaelements";
ot->idname= "MBALL_OT_select_inverse_metaelems";
/* callback functions */
@@ -293,7 +292,7 @@ void MBALL_OT_select_random_metaelems(struct wmOperatorType *ot)
{
/* identifiers */
ot->name= "Random...";
- ot->description= "Randomly select metaelements";
+ ot->description= "Randomly select metaelements";
ot->idname= "MBALL_OT_select_random_metaelems";
/* callback functions */
@@ -352,7 +351,7 @@ void MBALL_OT_duplicate_metaelems(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Duplicate";
- ot->description= "Delete selected metaelement(s)";
+ ot->description= "Delete selected metaelement(s)";
ot->idname= "MBALL_OT_duplicate_metaelems";
/* callback functions */
@@ -398,7 +397,7 @@ void MBALL_OT_delete_metaelems(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Delete";
- ot->description= "Delete selected metaelement(s)";
+ ot->description= "Delete selected metaelement(s)";
ot->idname= "MBALL_OT_delete_metaelems";
/* callback functions */
@@ -448,7 +447,7 @@ void MBALL_OT_hide_metaelems(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Hide";
- ot->description= "Hide (un)selected metaelement(s)";
+ ot->description= "Hide (un)selected metaelement(s)";
ot->idname= "MBALL_OT_hide_metaelems";
/* callback functions */
@@ -489,7 +488,7 @@ void MBALL_OT_reveal_metaelems(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Reveal";
- ot->description= "Reveal all hidden metaelements";
+ ot->description= "Reveal all hidden metaelements";
ot->idname= "MBALL_OT_reveal_metaelems";
/* callback functions */
diff --git a/source/blender/editors/metaball/mball_ops.c b/source/blender/editors/metaball/mball_ops.c
index 9b8cccbbfce..e8d2237d8a2 100644
--- a/source/blender/editors/metaball/mball_ops.c
+++ b/source/blender/editors/metaball/mball_ops.c
@@ -31,8 +31,6 @@
#include "RNA_access.h"
-#include "DNA_listBase.h"
-#include "DNA_windowmanager_types.h"
#include "ED_screen.h"
@@ -66,6 +64,7 @@ void ED_keymap_metaball(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MBALL_OT_duplicate_metaelems", DKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "MBALL_OT_select_all", AKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/object/CMakeLists.txt b/source/blender/editors/object/CMakeLists.txt
new file mode 100644
index 00000000000..e1085fd87ca
--- /dev/null
+++ b/source/blender/editors/object/CMakeLists.txt
@@ -0,0 +1,48 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../bmesh
+ ../../gpu
+ ../../ikplugin
+ ../../imbuf
+ ../../makesdna
+ ../../makesrna
+ ../../python
+ ../../windowmanager
+ ../../render/extern/include
+ ../../../../intern/guardedalloc
+)
+
+IF(NOT WITH_PYTHON)
+ ADD_DEFINITIONS(-DDISABLE_PYTHON)
+ENDIF(NOT WITH_PYTHON)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_object "${SRC}" "${INC}")
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 7620d503f49..5fa643200f4 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -30,7 +30,6 @@
#include "MEM_guardedalloc.h"
-#include "DNA_action_types.h"
#include "DNA_curve_types.h"
#include "DNA_group_types.h"
#include "DNA_lamp_types.h"
@@ -38,12 +37,8 @@
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
#include "DNA_object_fluidsim.h"
-#include "DNA_object_types.h"
#include "DNA_object_force.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
#include "DNA_vfont_types.h"
#include "BLI_math.h"
@@ -83,7 +78,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_anim_api.h"
#include "ED_armature.h"
#include "ED_curve.h"
#include "ED_mball.h"
@@ -92,6 +86,7 @@
#include "ED_render.h"
#include "ED_screen.h"
#include "ED_transform.h"
+#include "ED_view3d.h"
#include "UI_interface.h"
#include "UI_resources.h"
@@ -104,20 +99,16 @@ void ED_object_location_from_view(bContext *C, float *loc)
{
View3D *v3d= CTX_wm_view3d(C);
Scene *scene= CTX_data_scene(C);
+ float *cursor;
- if (v3d) {
- if (v3d->localvd)
- copy_v3_v3(loc, v3d->cursor);
- else
- copy_v3_v3(loc, scene->cursor);
- } else {
- copy_v3_v3(loc, scene->cursor);
- }
+ cursor = give_cursor(scene, v3d);
+
+ copy_v3_v3(loc, cursor);
}
void ED_object_rotation_from_view(bContext *C, float *rot)
{
- RegionView3D *rv3d = CTX_wm_region_view3d(C);
+ RegionView3D *rv3d= ED_view3d_context_rv3d(C);
if(rv3d) {
rv3d->viewquat[0]= -rv3d->viewquat[0];
@@ -146,9 +137,8 @@ void ED_object_base_init_transform(bContext *C, Base *base, float *loc, float *r
/* uses context to figure out transform for primitive */
/* returns standard diameter */
-float ED_object_new_primitive_matrix(bContext *C, float *loc, float *rot, float primmat[][4])
+float ED_object_new_primitive_matrix(bContext *C, Object *obedit, float *loc, float *rot, float primmat[][4])
{
- Object *obedit= CTX_data_edit_object(C);
View3D *v3d =CTX_wm_view3d(C);
float mat[3][3], rmat[3][3], cmat[3][3], imat[3][3];
@@ -164,8 +154,8 @@ float ED_object_new_primitive_matrix(bContext *C, float *loc, float *rot, float
copy_m4_m3(primmat, imat);
/* center */
- VECCOPY(primmat[3], loc);
- VECSUB(primmat[3], primmat[3], obedit->obmat[3]);
+ copy_v3_v3(primmat[3], loc);
+ sub_v3_v3v3(primmat[3], primmat[3], obedit->obmat[3]);
invert_m3_m3(imat, mat);
mul_m3_v3(imat, primmat[3]);
@@ -185,13 +175,15 @@ void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode)
PropertyRNA *prop;
RNA_def_boolean(ot->srna, "view_align", 0, "Align to View", "Align the new object to the view.");
- if(do_editmode)
- RNA_def_boolean(ot->srna, "enter_editmode", 0, "Enter Editmode", "Enter editmode when adding this object.");
+ if(do_editmode) {
+ prop= RNA_def_boolean(ot->srna, "enter_editmode", 0, "Enter Editmode", "Enter editmode when adding this object.");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+ }
RNA_def_float_vector(ot->srna, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "Location for the newly added object.", -FLT_MAX, FLT_MAX);
RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -FLT_MAX, FLT_MAX);
- prop = RNA_def_boolean_layer_member(ot->srna, "layer", 32, NULL, "Layer", "");
+ prop = RNA_def_boolean_layer_member(ot->srna, "layer", 20, NULL, "Layer", "");
RNA_def_property_flag(prop, PROP_HIDDEN);
}
@@ -201,47 +193,28 @@ static void object_add_generic_invoke_options(bContext *C, wmOperator *op)
if (!RNA_property_is_set(op->ptr, "enter_editmode"))
RNA_boolean_set(op->ptr, "enter_editmode", U.flag & USER_ADD_EDITMODE);
- if (!RNA_property_is_set(op->ptr, "location")) {
+ if(!RNA_property_is_set(op->ptr, "location")) {
float loc[3];
ED_object_location_from_view(C, loc);
RNA_float_set_array(op->ptr, "location", loc);
}
-
- if (!RNA_property_is_set(op->ptr, "rotation")) {
- int view_align;
- float rot[3] = {0.f, 0.f, 0.f};
-
- /* view align property is just used to set rotation property */
- if (!RNA_property_is_set(op->ptr, "view_align"))
- view_align = U.flag & USER_ADD_VIEWALIGNED;
- else
- view_align = RNA_boolean_get(op->ptr, "view_align");
-
- if (view_align)
- ED_object_rotation_from_view(C, rot);
-
- RNA_float_set_array(op->ptr, "rotation", rot);
- }
-
- if (!RNA_property_is_set(op->ptr, "layer")) {
+
+ if(!RNA_property_is_set(op->ptr, "layer")) {
View3D *v3d = CTX_wm_view3d(C);
Scene *scene = CTX_data_scene(C);
- int a, values[32], layer;
+ int a, values[20], layer;
- if (v3d) {
- if (v3d->localvd) {
- layer = v3d->layact + v3d->lay;
- for(a=0; a<32; a++)
- values[a]= (layer & (1<<a));
- } else {
- layer = v3d->layact;
- for(a=0; a<32; a++)
- values[a]= (layer & (1<<a));
- }
- } else {
- layer = scene->lay;
- for(a=0; a<32; a++)
+ if(v3d) {
+ layer = (v3d->scenelock && !v3d->localvd)? scene->layact: v3d->layact;
+
+ for(a=0; a<20; a++)
+ values[a]= (layer & (1<<a));
+ }
+ else {
+ layer = scene->layact;
+
+ for(a=0; a<20; a++)
values[a]= (layer & (1<<a));
}
@@ -255,24 +228,57 @@ int ED_object_add_generic_invoke(bContext *C, wmOperator *op, wmEvent *event)
return op->type->exec(C, op);
}
-void ED_object_add_generic_get_opts(wmOperator *op, float *loc, float *rot, int *enter_editmode, unsigned int *layer)
+int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float *loc, float *rot, int *enter_editmode, unsigned int *layer)
{
- int a, layer_values[32];
+ View3D *v3d = CTX_wm_view3d(C);
+ int a, layer_values[20];
+ int view_align;
*enter_editmode = FALSE;
if(RNA_struct_find_property(op->ptr, "enter_editmode") && RNA_boolean_get(op->ptr, "enter_editmode")) {
*enter_editmode = TRUE;
}
+
+ if(RNA_property_is_set(op->ptr, "layer")) {
+ RNA_boolean_get_array(op->ptr, "layer", layer_values);
+
+ for(a=0; a<20; a++) {
+ if(layer_values[a])
+ *layer |= (1 << a);
+ else
+ *layer &= ~(1 << a);
+ }
+ }
+ else {
+ /* not set, use the scenes layers */
+ Scene *scene = CTX_data_scene(C);
+ *layer = scene->layact;
+ }
+
+ /* in local view we additionally add local view layers,
+ not part of operator properties */
+ if(v3d && v3d->localvd)
+ *layer |= v3d->lay;
+
+ if (RNA_property_is_set(op->ptr, "view_align"))
+ view_align = RNA_boolean_get(op->ptr, "view_align");
+ else
+ view_align = U.flag & USER_ADD_VIEWALIGNED;
+
+ if (view_align)
+ ED_object_rotation_from_view(C, rot);
+ else
+ RNA_float_get_array(op->ptr, "rotation", rot);
+
RNA_float_get_array(op->ptr, "location", loc);
- RNA_float_get_array(op->ptr, "rotation", rot);
- RNA_boolean_get_array(op->ptr, "layer", layer_values);
-
- for(a=0; a<32; a++)
- if(layer_values[a])
- *layer |= (1 << a);
- else
- *layer &= ~(1 << a);
+
+ if(*layer == 0) {
+ BKE_report(op->reports, RPT_ERROR, "Property 'layer' has no values set");
+ return 0;
+ }
+
+ return 1;
}
/* for object add primitive operators */
@@ -310,7 +316,9 @@ static int object_add_exec(bContext *C, wmOperator *op)
unsigned int layer;
float loc[3], rot[3];
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return OPERATOR_CANCELLED;
+
ED_object_add_type(C, RNA_enum_get(op->ptr, "type"), loc, rot, enter_editmode, layer);
return OPERATOR_FINISHED;
@@ -369,7 +377,9 @@ static Object *effector_add_type(bContext *C, wmOperator *op, int type)
float mat[4][4];
object_add_generic_invoke_options(C, op);
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return NULL;
if(type==PFIELD_GUIDE) {
ob= ED_object_add_type(C, OB_CURVE, loc, rot, FALSE, layer);
@@ -377,7 +387,7 @@ static Object *effector_add_type(bContext *C, wmOperator *op, int type)
((Curve*)ob->data)->flag |= CU_PATH|CU_3D;
ED_object_enter_editmode(C, 0);
- ED_object_new_primitive_matrix(C, loc, rot, mat);
+ ED_object_new_primitive_matrix(C, ob, loc, rot, mat);
BLI_addtail(curve_get_editcurve(ob), add_nurbs_primitive(C, mat, CU_NURBS|CU_PRIM_PATH, 1));
if(!enter_editmode)
@@ -403,8 +413,9 @@ static Object *effector_add_type(bContext *C, wmOperator *op, int type)
/* for object add operator */
static int effector_add_exec(bContext *C, wmOperator *op)
{
- effector_add_type(C, op, RNA_int_get(op->ptr, "type"));
-
+ if(effector_add_type(C, op, RNA_int_get(op->ptr, "type")) == NULL)
+ return OPERATOR_CANCELLED;
+
return OPERATOR_FINISHED;
}
@@ -444,7 +455,9 @@ static int object_camera_add_exec(bContext *C, wmOperator *op)
RNA_boolean_set(op->ptr, "view_align", 1);
object_add_generic_invoke_options(C, op);
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return OPERATOR_CANCELLED;
ob= ED_object_add_type(C, OB_CAMERA, loc, rot, FALSE, layer);
@@ -479,160 +492,6 @@ void OBJECT_OT_camera_add(wmOperatorType *ot)
/* ***************** add primitives *************** */
-static EnumPropertyItem prop_curve_types[] = {
- {CU_BEZIER|CU_PRIM_CURVE, "BEZIER_CURVE", ICON_CURVE_BEZCURVE, "Bezier Curve", ""},
- {CU_BEZIER|CU_PRIM_CIRCLE, "BEZIER_CIRCLE", ICON_CURVE_BEZCIRCLE, "Bezier Circle", ""},
- {CU_NURBS|CU_PRIM_CURVE, "NURBS_CURVE", ICON_CURVE_NCURVE, "NURBS Curve", ""},
- {CU_NURBS|CU_PRIM_CIRCLE, "NURBS_CIRCLE", ICON_CURVE_NCIRCLE, "NURBS Circle", ""},
- {CU_NURBS|CU_PRIM_PATH, "PATH", ICON_CURVE_PATH, "Path", ""},
- {0, NULL, 0, NULL, NULL}
-};
-
-static int object_add_curve_exec(bContext *C, wmOperator *op)
-{
- Object *obedit= CTX_data_edit_object(C);
- ListBase *editnurb;
- Nurb *nu;
- int newob= 0, type= RNA_enum_get(op->ptr, "type");
- int enter_editmode;
- unsigned int layer;
- float loc[3], rot[3];
- float mat[4][4];
-
- object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
-
- if(obedit==NULL || obedit->type!=OB_CURVE) {
- obedit= ED_object_add_type(C, OB_CURVE, loc, rot, TRUE, layer);
- newob = 1;
-
- if(type & CU_PRIM_PATH)
- ((Curve*)obedit->data)->flag |= CU_PATH|CU_3D;
- }
- else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
-
- ED_object_new_primitive_matrix(C, loc, rot, mat);
-
- nu= add_nurbs_primitive(C, mat, type, newob);
- editnurb= curve_get_editcurve(obedit);
- BLI_addtail(editnurb, nu);
-
- /* userdef */
- if (newob && !enter_editmode) {
- ED_object_exit_editmode(C, EM_FREEDATA);
- }
-
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit);
-
- return OPERATOR_FINISHED;
-}
-
-static int object_add_curve_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- Object *obedit= CTX_data_edit_object(C);
- uiPopupMenu *pup;
- uiLayout *layout;
-
- object_add_generic_invoke_options(C, op);
-
- pup= uiPupMenuBegin(C, op->type->name, 0);
- layout= uiPupMenuLayout(pup);
- if(!obedit || obedit->type == OB_CURVE)
- uiItemsEnumO(layout, op->type->idname, "type");
- else
- uiItemsEnumO(layout, "OBJECT_OT_surface_add", "type");
- uiPupMenuEnd(C, pup);
-
- return OPERATOR_CANCELLED;
-}
-
-void OBJECT_OT_curve_add(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Add Curve";
- ot->description = "Add a curve object to the scene";
- ot->idname= "OBJECT_OT_curve_add";
-
- /* api callbacks */
- ot->invoke= object_add_curve_invoke;
- ot->exec= object_add_curve_exec;
-
- ot->poll= ED_operator_scene_editable;
-
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-
- RNA_def_enum(ot->srna, "type", prop_curve_types, 0, "Primitive", "");
-
- ED_object_add_generic_props(ot, TRUE);
-}
-
-static EnumPropertyItem prop_surface_types[]= {
- {CU_PRIM_CURVE|CU_NURBS, "NURBS_CURVE", ICON_SURFACE_NCURVE, "NURBS Curve", ""},
- {CU_PRIM_CIRCLE|CU_NURBS, "NURBS_CIRCLE", ICON_SURFACE_NCIRCLE, "NURBS Circle", ""},
- {CU_PRIM_PATCH|CU_NURBS, "NURBS_SURFACE", ICON_SURFACE_NSURFACE, "NURBS Surface", ""},
- {CU_PRIM_TUBE|CU_NURBS, "NURBS_TUBE", ICON_SURFACE_NTUBE, "NURBS Tube", ""},
- {CU_PRIM_SPHERE|CU_NURBS, "NURBS_SPHERE", ICON_SURFACE_NSPHERE, "NURBS Sphere", ""},
- {CU_PRIM_DONUT|CU_NURBS, "NURBS_DONUT", ICON_SURFACE_NDONUT, "NURBS Donut", ""},
- {0, NULL, 0, NULL, NULL}
-};
-
-static int object_add_surface_exec(bContext *C, wmOperator *op)
-{
- Object *obedit= CTX_data_edit_object(C);
- ListBase *editnurb;
- Nurb *nu;
- int newob= 0;
- int enter_editmode;
- unsigned int layer;
- float loc[3], rot[3];
- float mat[4][4];
-
- object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
-
- if(obedit==NULL || obedit->type!=OB_SURF) {
- obedit= ED_object_add_type(C, OB_SURF, loc, rot, TRUE, layer);
- newob = 1;
- }
- else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
-
- ED_object_new_primitive_matrix(C, loc, rot, mat);
-
- nu= add_nurbs_primitive(C, mat, RNA_enum_get(op->ptr, "type"), newob);
- editnurb= curve_get_editcurve(obedit);
- BLI_addtail(editnurb, nu);
-
- /* userdef */
- if (newob && !enter_editmode) {
- ED_object_exit_editmode(C, EM_FREEDATA);
- }
-
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit);
-
- return OPERATOR_FINISHED;
-}
-
-void OBJECT_OT_surface_add(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Add Surface";
- ot->description = "Add a surface object to the scene";
- ot->idname= "OBJECT_OT_surface_add";
-
- /* api callbacks */
- ot->invoke= WM_menu_invoke;
- ot->exec= object_add_surface_exec;
-
- ot->poll= ED_operator_scene_editable;
-
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-
- ot->prop= RNA_def_enum(ot->srna, "type", prop_surface_types, 0, "Primitive", "");
- ED_object_add_generic_props(ot, TRUE);
-}
-
static EnumPropertyItem prop_metaball_types[]= {
{MB_BALL, "MBALL_BALL", ICON_META_BALL, "Meta Ball", ""},
{MB_TUBE, "MBALL_TUBE", ICON_META_TUBE, "Meta Tube", ""},
@@ -654,7 +513,9 @@ static int object_metaball_add_exec(bContext *C, wmOperator *op)
float mat[4][4];
object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return OPERATOR_CANCELLED;
if(obedit==NULL || obedit->type!=OB_MBALL) {
obedit= ED_object_add_type(C, OB_MBALL, loc, rot, TRUE, layer);
@@ -662,7 +523,7 @@ static int object_metaball_add_exec(bContext *C, wmOperator *op)
}
else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
- ED_object_new_primitive_matrix(C, loc, rot, mat);
+ ED_object_new_primitive_matrix(C, obedit, loc, rot, mat);
elem= (MetaElem*)add_metaball_primitive(C, mat, RNA_enum_get(op->ptr, "type"), newob);
mball= (MetaBall*)obedit->data;
@@ -724,7 +585,8 @@ static int object_add_text_exec(bContext *C, wmOperator *op)
float loc[3], rot[3];
object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return OPERATOR_CANCELLED;
if(obedit && obedit->type==OB_FONT)
return OPERATOR_CANCELLED;
@@ -764,7 +626,8 @@ static int object_armature_add_exec(bContext *C, wmOperator *op)
float loc[3], rot[3];
object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return OPERATOR_CANCELLED;
if ((obedit==NULL) || (obedit->type != OB_ARMATURE)) {
obedit= ED_object_add_type(C, OB_ARMATURE, loc, rot, TRUE, layer);
@@ -810,6 +673,19 @@ void OBJECT_OT_armature_add(wmOperatorType *ot)
ED_object_add_generic_props(ot, TRUE);
}
+static char *get_lamp_defname(int type)
+{
+ switch (type) {
+ case LA_LOCAL: return "Point";
+ case LA_SUN: return "Sun";
+ case LA_SPOT: return "Spot";
+ case LA_HEMI: return "Hemi";
+ case LA_AREA: return "Area";
+ default:
+ return "Lamp";
+ }
+}
+
static int object_lamp_add_exec(bContext *C, wmOperator *op)
{
Object *ob;
@@ -819,12 +695,16 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op)
float loc[3], rot[3];
object_add_generic_invoke_options(C, op);
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return OPERATOR_CANCELLED;
ob= ED_object_add_type(C, OB_LAMP, loc, rot, FALSE, layer);
if(ob && ob->data)
((Lamp*)ob->data)->type= type;
+ rename_id((ID *)ob, get_lamp_defname(type));
+ rename_id((ID *)ob->data, get_lamp_defname(type));
+
return OPERATOR_FINISHED;
}
@@ -859,22 +739,22 @@ void OBJECT_OT_lamp_add(wmOperatorType *ot)
static int group_instance_add_exec(bContext *C, wmOperator *op)
{
- Group *group= BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "type"));
+ Group *group= BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group"));
int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
object_add_generic_invoke_options(C, op);
- ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
+ if(!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer))
+ return OPERATOR_CANCELLED;
if(group) {
Object *ob= ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE, layer);
rename_id(&ob->id, group->id.name+2);
ob->dup_group= group;
ob->transflag |= OB_DUPLIGROUP;
- id_us_plus(&group->id);
-
+ id_lib_extern(&group->id);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
@@ -904,7 +784,7 @@ void OBJECT_OT_group_instance_add(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, 0, "Type", "");
+ prop= RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", "");
RNA_def_enum_funcs(prop, RNA_group_itemf);
ot->prop= prop;
ED_object_add_generic_props(ot, FALSE);
@@ -933,14 +813,13 @@ static int object_delete_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Base*, base, selected_bases) {
if(base->object->type==OB_LAMP) islamp= 1;
-
/* remove from current scene only */
ED_base_object_free_and_unlink(scene, base);
}
CTX_DATA_END;
if(islamp) reshadeall_displist(scene); /* only frees displist */
-
+
DAG_scene_sort(scene);
DAG_ids_flush_update(0);
@@ -968,7 +847,7 @@ void OBJECT_OT_delete(wmOperatorType *ot)
/**************************** Copy Utilities ******************************/
static void copy_object__forwardModifierLinks(void *userData, Object *ob,
- ID **idpoin)
+ ID **idpoin)
{
/* this is copied from ID_NEW; it might be better to have a macro */
if(*idpoin && (*idpoin)->newid) *idpoin = (*idpoin)->newid;
@@ -979,10 +858,6 @@ static void copy_object_set_idnew(bContext *C, int dupflag)
{
Material *ma, *mao;
ID *id;
-#if 0 // XXX old animation system
- Ipo *ipo;
- bActionStrip *strip;
-#endif // XXX old animation system
int a;
/* XXX check object pointers */
@@ -996,17 +871,8 @@ static void copy_object_set_idnew(bContext *C, int dupflag)
}
modifiers_foreachIDLink(ob, copy_object__forwardModifierLinks, NULL);
ID_NEW(ob->parent);
- ID_NEW(ob->track);
ID_NEW(ob->proxy);
ID_NEW(ob->proxy_group);
-
-#if 0 // XXX old animation system
- for(strip= ob->nlastrips.first; strip; strip= strip->next) {
- bActionModifier *amod;
- for(amod= strip->modifiers.first; amod; amod= amod->next)
- ID_NEW(amod->ob);
- }
-#endif // XXX old animation system
}
CTX_DATA_END;
@@ -1118,7 +984,7 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base)
ob->lay= base->lay;
copy_m4_m4(ob->obmat, dob->mat);
- ED_object_apply_obmat(ob);
+ object_apply_mat4(ob, ob->obmat);
}
copy_object_set_idnew(C, 0);
@@ -1142,6 +1008,7 @@ static int object_duplicates_make_real_exec(bContext *C, wmOperator *op)
DAG_scene_sort(scene);
DAG_ids_flush_update(0);
WM_event_add_notifier(C, NC_SCENE, scene);
+ WM_main_add_notifier(NC_OBJECT|ND_DRAW, NULL);
return OPERATOR_FINISHED;
}
@@ -1167,7 +1034,7 @@ void OBJECT_OT_duplicates_make_real(wmOperatorType *ot)
static EnumPropertyItem convert_target_items[]= {
{OB_CURVE, "CURVE", ICON_OUTLINER_OB_CURVE, "Curve from Mesh/Text", ""},
- {OB_MESH, "MESH", ICON_OUTLINER_OB_MESH, "Mesh from Curve/Meta/Surf/Mesh", ""},
+ {OB_MESH, "MESH", ICON_OUTLINER_OB_MESH, "Mesh from Curve/Meta/Surf/Text", ""},
{0, NULL, 0, NULL, NULL}};
static void curvetomesh(Scene *scene, Object *ob)
@@ -1191,11 +1058,36 @@ static int convert_poll(bContext *C)
return (!scene->id.lib && obact && scene->obedit != obact && (obact->flag & SELECT) && !(obact->id.lib));
}
+/* Helper for convert_exec */
+static Base *duplibase_for_convert(Scene *scene, Base *base, Object *ob)
+{
+ Object *obn;
+ Base *basen;
+
+ if (ob == NULL) {
+ ob= base->object;
+ }
+
+ obn= copy_object(ob);
+ obn->recalc |= OB_RECALC_ALL;
+
+ basen= MEM_mallocN(sizeof(Base), "duplibase");
+ *basen= *base;
+ BLI_addhead(&scene->base, basen); /* addhead: otherwise eternal loop */
+ basen->object= obn;
+ basen->flag |= SELECT;
+ obn->flag |= SELECT;
+ base->flag &= ~SELECT;
+ ob->flag &= ~SELECT;
+
+ return basen;
+}
+
static int convert_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Base *basen=NULL, *basact=NULL, *basedel=NULL;
- Object *ob, *ob1, *obact= CTX_data_active_object(C);
+ Object *ob, *ob1, *newob, *obact= CTX_data_active_object(C);
DerivedMesh *dm;
Curve *cu;
Nurb *nu;
@@ -1203,8 +1095,8 @@ static int convert_exec(bContext *C, wmOperator *op)
Mesh *me;
int target= RNA_enum_get(op->ptr, "target");
int keep_original= RNA_boolean_get(op->ptr, "keep_original");
- int a;
-
+ int a, mballConverted= 0;
+
/* don't forget multiple users! */
/* reset flags */
@@ -1216,67 +1108,87 @@ static int convert_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
ob= base->object;
-
- if(ob->flag & OB_DONE)
- continue;
+
+ if(ob->flag & OB_DONE) {
+ if (ob->type != target) {
+ base->flag &= ~SELECT;
+ ob->flag &= ~SELECT;
+ }
+ }
else if (ob->type==OB_MESH && target == OB_CURVE) {
ob->flag |= OB_DONE;
- ob1= copy_object(ob);
- ob1->recalc |= OB_RECALC;
+ if (keep_original) {
+ basen= duplibase_for_convert(scene, base, NULL);
+ newob= basen->object;
- basen= MEM_mallocN(sizeof(Base), "duplibase");
- *basen= *base;
- BLI_addhead(&scene->base, basen); /* addhead: otherwise eternal loop */
- basen->object= ob1;
- basen->flag |= SELECT;
- base->flag &= ~SELECT;
- ob->flag &= ~SELECT;
+ /* decrement original mesh's usage count */
+ me= newob->data;
+ me->id.us--;
- mesh_to_curve(scene, ob1);
+ /* make a new copy of the mesh */
+ newob->data= copy_mesh(me);
+ } else {
+ newob = ob;
+ }
- if(ob1->type==OB_CURVE)
- object_free_modifiers(ob1); /* after derivedmesh calls! */
+ mesh_to_curve(scene, newob);
+
+ if(newob->type==OB_CURVE)
+ object_free_modifiers(newob); /* after derivedmesh calls! */
}
else if(ob->type==OB_MESH && ob->modifiers.first) { /* converting a mesh with no modifiers causes a segfault */
ob->flag |= OB_DONE;
- basedel = base;
- ob1= copy_object(ob);
- ob1->recalc |= OB_RECALC;
+ if (keep_original) {
+ basen= duplibase_for_convert(scene, base, NULL);
+ newob= basen->object;
- basen= MEM_mallocN(sizeof(Base), "duplibase");
- *basen= *base;
- BLI_addhead(&scene->base, basen); /* addhead: otherwise eternal loop */
- basen->object= ob1;
- basen->flag |= SELECT;
- base->flag &= ~SELECT;
- ob->flag &= ~SELECT;
-
- /* decrement original mesh's usage count */
- me= ob1->data;
- me->id.us--;
+ /* decrement original mesh's usage count */
+ me= newob->data;
+ me->id.us--;
- /* make a new copy of the mesh */
- ob1->data= copy_mesh(me);
+ /* make a new copy of the mesh */
+ newob->data= copy_mesh(me);
+ } else {
+ newob = ob;
+ ob->recalc |= OB_RECALC_ALL;
+ }
/* make new mesh data from the original copy */
/* note: get the mesh from the original, not from the copy in some
* cases this doesnt give correct results (when MDEF is used for eg)
*/
- dm= mesh_get_derived_final(scene, ob, CD_MASK_MESH);
+ dm= mesh_get_derived_final(scene, newob, CD_MASK_MESH);
/* dm= mesh_create_derived_no_deform(ob1, NULL); this was called original (instead of get_derived). man o man why! (ton) */
- DM_to_mesh(dm, ob1->data);
+ DM_to_mesh(dm, newob->data);
dm->release(dm);
- object_free_modifiers(ob1); /* after derivedmesh calls! */
+ object_free_modifiers(newob); /* after derivedmesh calls! */
}
else if(ob->type==OB_FONT) {
ob->flag |= OB_DONE;
- ob->type= OB_CURVE;
- cu= ob->data;
+ if (keep_original) {
+ basen= duplibase_for_convert(scene, base, NULL);
+ newob= basen->object;
+
+ /* decrement original curve's usage count */
+ ((Curve *)newob->data)->id.us--;
+
+ /* make a new copy of the curve */
+ newob->data= copy_curve(ob->data);
+ } else {
+ newob= ob;
+ }
+
+ cu= newob->data;
+
+ if (!cu->disp.first)
+ makeDispListCurveTypes(scene, newob, 0);
+
+ newob->type= OB_CURVE;
if(cu->vfont) {
cu->vfont->id.us--;
@@ -1293,13 +1205,16 @@ static int convert_exec(bContext *C, wmOperator *op)
if(cu->vfontbi) {
cu->vfontbi->id.us--;
cu->vfontbi= 0;
- }
- /* other users */
- if(cu->id.us>1) {
- for(ob1= G.main->object.first; ob1; ob1=ob1->id.next) {
- if(ob1->data==cu) {
- ob1->type= OB_CURVE;
- ob1->recalc |= OB_RECALC;
+ }
+
+ if (!keep_original) {
+ /* other users */
+ if(cu->id.us>1) {
+ for(ob1= G.main->object.first; ob1; ob1=ob1->id.next) {
+ if(ob1->data==ob->data) {
+ ob1->type= OB_CURVE;
+ ob1->recalc |= OB_RECALC_ALL;
+ }
}
}
}
@@ -1308,46 +1223,76 @@ static int convert_exec(bContext *C, wmOperator *op)
nu->charidx= 0;
if(target == OB_MESH)
- curvetomesh(scene, ob);
+ curvetomesh(scene, newob);
}
else if(ELEM(ob->type, OB_CURVE, OB_SURF)) {
ob->flag |= OB_DONE;
- if(target == OB_MESH)
- curvetomesh(scene, ob);
+ if(target == OB_MESH) {
+ if (keep_original) {
+ basen= duplibase_for_convert(scene, base, NULL);
+ newob= basen->object;
+
+ /* decrement original curve's usage count */
+ ((Curve *)newob->data)->id.us--;
+
+ /* make a new copy of the curve */
+ newob->data= copy_curve(ob->data);
+ } else {
+ newob= ob;
+ }
+
+ curvetomesh(scene, newob);
+ }
}
else if(ob->type==OB_MBALL) {
- ob= find_basis_mball(scene, ob);
-
- if(ob->disp.first && !(ob->flag & OB_DONE)) {
+ Object *baseob;
+
+ if (target != OB_MESH) {
ob->flag |= OB_DONE;
- basedel = base;
+ continue;
+ }
- ob1= copy_object(ob);
- ob1->recalc |= OB_RECALC;
+ base->flag &= ~SELECT;
+ ob->flag &= ~SELECT;
- basen= MEM_mallocN(sizeof(Base), "duplibase");
- *basen= *base;
- BLI_addhead(&scene->base, basen); /* addhead: otherwise eternal loop */
- basen->object= ob1;
- basen->flag |= SELECT;
- basedel->flag &= ~SELECT;
- ob->flag &= ~SELECT;
-
- mb= ob1->data;
+ baseob= find_basis_mball(scene, ob);
+
+ if (ob != baseob) {
+ /* if motherball is converting it would be marked as done later */
+ ob->flag |= OB_DONE;
+ }
+
+ if (!baseob->disp.first) {
+ makeDispListMBall(scene, baseob);
+ }
+
+ if(!(baseob->flag & OB_DONE)) {
+ baseob->flag |= OB_DONE;
+
+ basen= duplibase_for_convert(scene, base, baseob);
+ newob= basen->object;
+
+ mb= newob->data;
mb->id.us--;
-
- ob1->data= add_mesh("Mesh");
- ob1->type= OB_MESH;
-
- me= ob1->data;
+
+ newob->data= add_mesh("Mesh");
+ newob->type= OB_MESH;
+
+ me= newob->data;
me->totcol= mb->totcol;
- if(ob1->totcol) {
+ if(newob->totcol) {
me->mat= MEM_dupallocN(mb->mat);
- for(a=0; a<ob1->totcol; a++) id_us_plus((ID *)me->mat[a]);
+ for(a=0; a<newob->totcol; a++) id_us_plus((ID *)me->mat[a]);
}
-
- mball_to_mesh(&ob->disp, ob1->data);
+
+ mball_to_mesh(&baseob->disp, newob->data);
+
+ if (obact->type == OB_MBALL) {
+ basact= basen;
+ }
+
+ mballConverted= 1;
}
else
continue;
@@ -1358,8 +1303,6 @@ static int convert_exec(bContext *C, wmOperator *op)
/* If the original object is active then make this object active */
if(basen) {
if(ob == obact) {
- ED_base_object_activate(C, basen);
-
/* store new active base to update BASACT */
basact= basen;
}
@@ -1367,6 +1310,10 @@ static int convert_exec(bContext *C, wmOperator *op)
basen= NULL;
}
+ if (!keep_original) {
+ DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ }
+
/* delete original if needed */
if(basedel) {
if(!keep_original)
@@ -1376,24 +1323,39 @@ static int convert_exec(bContext *C, wmOperator *op)
}
}
CTX_DATA_END;
-
- /* delete object should renew depsgraph */
- if(!keep_original)
+
+ if(!keep_original) {
+ if (mballConverted) {
+ Base *base= scene->base.first, *tmpbase;
+ while (base) {
+ ob= base->object;
+ tmpbase= base;
+ base= base->next;
+
+ if (ob->type == OB_MBALL) {
+ ED_base_object_free_and_unlink(scene, tmpbase);
+ }
+ }
+ }
+
+ /* delete object should renew depsgraph */
DAG_scene_sort(scene);
+ }
// XXX ED_object_enter_editmode(C, 0);
// XXX exit_editmode(C, EM_FREEDATA|EM_WAITCURSOR); /* freedata, but no undo */
if (basact) {
/* active base was changed */
+ ED_base_object_activate(C, basact);
BASACT= basact;
+ } else if (BASACT->object->flag & OB_DONE) {
+ WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER|ND_DATA, BASACT->object);
}
DAG_scene_sort(scene);
WM_event_add_notifier(C, NC_SCENE|NC_OBJECT|ND_DRAW, scene); /* is NC_SCENE needed ? */
-
-
return OPERATOR_FINISHED;
}
@@ -1442,7 +1404,7 @@ static Base *object_add_duplicate_internal(Scene *scene, Base *base, int dupflag
}
else {
obn= copy_object(ob);
- obn->recalc |= OB_RECALC;
+ obn->recalc |= OB_RECALC_ALL;
basen= MEM_mallocN(sizeof(Base), "duplibase");
*basen= *base;
@@ -1637,13 +1599,17 @@ Base *ED_object_add_duplicate(Scene *scene, Base *base, int dupflag)
clear_id_newpoins();
clear_sca_new_poins(); /* sensor/contr/act */
-
+
basen= object_add_duplicate_internal(scene, base, dupflag);
+ if (basen == NULL) {
+ return NULL;
+ }
+
ob= basen->object;
-
+
DAG_scene_sort(scene);
ED_render_id_flush_update(G.main, ob->data);
-
+
return basen;
}
@@ -1664,6 +1630,10 @@ static int duplicate_exec(bContext *C, wmOperator *op)
the list is made in advance */
ED_base_object_select(base, BA_DESELECT);
+ if (basen == NULL) {
+ continue;
+ }
+
/* new object becomes active */
if(BASACT==base)
ED_base_object_activate(C, basen);
@@ -1684,6 +1654,8 @@ static int duplicate_exec(bContext *C, wmOperator *op)
void OBJECT_OT_duplicate(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Duplicate";
ot->description = "Duplicate selected objects";
@@ -1698,7 +1670,8 @@ void OBJECT_OT_duplicate(wmOperatorType *ot)
/* to give to transform */
RNA_def_boolean(ot->srna, "linked", 0, "Linked", "Duplicate object but not object data, linking to the original data.");
- RNA_def_int(ot->srna, "mode", TFM_TRANSLATION, 0, INT_MAX, "Mode", "", 0, INT_MAX);
+ prop= RNA_def_int(ot->srna, "mode", TFM_TRANSLATION, 0, INT_MAX, "Mode", "", 0, INT_MAX);
+ RNA_def_property_flag(prop, PROP_HIDDEN);
}
/* **************** add named object, for dragdrop ************* */
@@ -1726,36 +1699,42 @@ static int add_named_exec(bContext *C, wmOperator *op)
int linked= RNA_boolean_get(op->ptr, "linked");
int dupflag= (linked)? 0: U.dupflag;
char name[32];
-
+
/* find object, create fake base */
RNA_string_get(op->ptr, "name", name);
ob= (Object *)find_id("OB", name);
if(ob==NULL)
return OPERATOR_CANCELLED;
-
+
base= MEM_callocN(sizeof(Base), "duplibase");
base->object= ob;
base->flag= ob->flag;
-
+
/* prepare dupli */
clear_id_newpoins();
clear_sca_new_poins(); /* sensor/contr/act */
-
+
basen= object_add_duplicate_internal(scene, base, dupflag);
+
+ if (basen == NULL) {
+ MEM_freeN(base);
+ return OPERATOR_CANCELLED;
+ }
+
basen->lay= basen->object->lay= scene->lay;
-
+
ED_object_location_from_view(C, basen->object->loc);
ED_base_object_activate(C, basen);
-
+
copy_object_set_idnew(C, dupflag);
-
+
DAG_scene_sort(scene);
DAG_ids_flush_update(0);
-
+
MEM_freeN(base);
-
+
WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-
+
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c
index a4f419cf996..9f9d41147b6 100644
--- a/source/blender/editors/object/object_bake.c
+++ b/source/blender/editors/object/object_bake.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -35,7 +35,6 @@
#include "MEM_guardedalloc.h"
-#include "DNA_image_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
@@ -103,7 +102,8 @@ typedef struct BakeRender {
short *stop;
short *do_update;
-
+ float *progress;
+
ListBase threads;
/* backup */
@@ -141,7 +141,7 @@ static void init_bake_internal(BakeRender *bkr, bContext *C)
bkr->sa= biggest_image_area(CTX_wm_screen(C)); /* can be NULL */
bkr->scene= scene;
bkr->actob= (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL;
- bkr->re= RE_NewRender("_Bake View_", RE_SLOT_DEFAULT);
+ bkr->re= RE_NewRender("_Bake View_");
if(scene->r.bake_mode==RE_BAKE_AO) {
/* If raytracing or AO is disabled, switch it on temporarily for baking. */
@@ -186,27 +186,28 @@ static void *do_bake_render(void *bake_v)
{
BakeRender *bkr= bake_v;
- bkr->tot= RE_bake_shade_all_selected(bkr->re, bkr->scene->r.bake_mode, bkr->actob, NULL);
+ bkr->tot= RE_bake_shade_all_selected(bkr->re, bkr->scene->r.bake_mode, bkr->actob, NULL, bkr->progress);
bkr->ready= 1;
return NULL;
}
-static void bake_startjob(void *bkv, short *stop, short *do_update)
+static void bake_startjob(void *bkv, short *stop, short *do_update, float *progress)
{
BakeRender *bkr= bkv;
Scene *scene= bkr->scene;
bkr->stop= stop;
bkr->do_update= do_update;
+ bkr->progress= progress;
RE_test_break_cb(bkr->re, NULL, thread_break);
G.afbreek= 0; /* blender_test_break uses this global */
- RE_Database_Baking(bkr->re, scene, scene->r.bake_mode, bkr->actob);
+ RE_Database_Baking(bkr->re, scene, scene->lay, scene->r.bake_mode, bkr->actob);
/* baking itself is threaded, cannot use test_break in threads. we also update optional imagewindow */
- bkr->tot= RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update);
+ bkr->tot= RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update, bkr->progress);
}
static void bake_update(void *bkv)
@@ -261,10 +262,10 @@ static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *_eve
bkr->reports= op->reports;
/* setup job */
- steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY);
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Texture Bake", WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY|WM_JOB_PROGRESS);
WM_jobs_customdata(steve, bkr, bake_freejob);
WM_jobs_timer(steve, 0.2, NC_IMAGE, 0); /* TODO - only draw bake image, can we enforce this */
- WM_jobs_callbacks(steve, bake_startjob, NULL, bake_update);
+ WM_jobs_callbacks(steve, bake_startjob, NULL, bake_update, NULL);
G.afbreek= 0;
@@ -301,7 +302,7 @@ static int bake_image_exec(bContext *C, wmOperator *op)
RE_test_break_cb(bkr.re, NULL, thread_break);
G.afbreek= 0; /* blender_test_break uses this global */
- RE_Database_Baking(bkr.re, scene, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE)? OBACT: NULL);
+ RE_Database_Baking(bkr.re, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE)? OBACT: NULL);
/* baking itself is threaded, cannot use test_break in threads */
BLI_init_threads(&threads, do_bake_render, 1);
diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c
index 2b880f17e90..8d48b76fb51 100644
--- a/source/blender/editors/object/object_constraint.c
+++ b/source/blender/editors/object/object_constraint.c
@@ -36,15 +36,10 @@
#include "BLI_math.h"
#include "BLI_dynstr.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
#include "DNA_curve_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "DNA_text_types.h"
-#include "DNA_view3d_types.h"
#include "BKE_action.h"
#include "BKE_armature.h"
@@ -68,7 +63,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
-#include "RNA_types.h"
#include "ED_object.h"
#include "ED_screen.h"
@@ -139,6 +133,7 @@ bConstraint *get_active_constraint (Object *ob)
{
return constraints_get_active(get_active_constraints(ob));
}
+
/* -------------- Constraint Management (Add New, Remove, Rename) -------------------- */
/* ------------- PyConstraints ------------------ */
@@ -204,9 +199,9 @@ char *buildmenu_pyconstraints (Text *con_text, int *pyconindex)
/* this callback gets called when the 'refresh' button of a pyconstraint gets pressed */
void update_pyconstraint_cb (void *arg1, void *arg2)
{
+#ifndef DISABLE_PYTHON
Object *owner= (Object *)arg1;
bConstraint *con= (bConstraint *)arg2;
-#ifndef DISABLE_PYTHON
if (owner && con)
BPY_pyconstraint_update(owner, con);
#endif
@@ -328,6 +323,23 @@ static void test_constraints (Object *owner, bPoseChannel *pchan)
/* targets have already been checked for this */
continue;
}
+ else if (curcon->type == CONSTRAINT_TYPE_PIVOT) {
+ bPivotConstraint *data = curcon->data;
+
+ /* target doesn't have to exist, but if it is non-null, it must exist! */
+ if (data->tar && exist_object(data->tar)==0) {
+ data->tar = NULL;
+ curcon->flag |= CONSTRAINT_DISABLE;
+ }
+ else if (data->tar == owner) {
+ if (!get_named_bone(get_armature(owner), data->subtarget)) {
+ curcon->flag |= CONSTRAINT_DISABLE;
+ }
+ }
+
+ /* targets have already been checked for this */
+ continue;
+ }
else if (curcon->type == CONSTRAINT_TYPE_ACTION) {
bActionConstraint *data = curcon->data;
@@ -424,40 +436,139 @@ static void test_constraints (Object *owner, bPoseChannel *pchan)
void object_test_constraints (Object *owner)
{
- if(owner->constraints.first)
+ if (owner->constraints.first)
test_constraints(owner, NULL);
-
+
if (owner->type==OB_ARMATURE && owner->pose) {
bPoseChannel *pchan;
-
- for (pchan= owner->pose->chanbase.first; pchan; pchan= pchan->next)
- if(pchan->constraints.first)
+
+ for (pchan= owner->pose->chanbase.first; pchan; pchan= pchan->next) {
+ if (pchan->constraints.first)
test_constraints(owner, pchan);
+ }
}
}
-/* ********************** CONSTRAINT-SPECIFIC STUFF ********************* */
-/* ---------- Distance-Dependent Constraints ---------- */
-/* StretchTo, Limit Distance */
+/************************ generic functions for operators using constraint names and data context *********************/
+
+#define EDIT_CONSTRAINT_OWNER_OBJECT 0
+#define EDIT_CONSTRAINT_OWNER_BONE 1
+
+static EnumPropertyItem constraint_owner_items[] = {
+ {EDIT_CONSTRAINT_OWNER_OBJECT, "OBJECT", 0, "Object", "Edit a constraint on the active object"},
+ {EDIT_CONSTRAINT_OWNER_BONE, "BONE", 0, "Bone", "Edit a constraint on the active bone"},
+ {0, NULL, 0, NULL, NULL}};
-static int stretchto_poll(bContext *C)
+
+static int edit_constraint_poll_generic(bContext *C, StructRNA *rna_type)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_StretchToConstraint);
- return (ptr.id.data && ptr.data);
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", rna_type);
+ Object *ob= (ptr.id.data)?ptr.id.data:ED_object_active_context(C);
+
+ if (!ob || ob->id.lib) return 0;
+ if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+
+ return 1;
+}
+
+static int edit_constraint_poll(bContext *C)
+{
+ return edit_constraint_poll_generic(C, &RNA_Constraint);
}
+static void edit_constraint_properties(wmOperatorType *ot)
+{
+ RNA_def_string(ot->srna, "constraint", "", 32, "Constraint", "Name of the constraint to edit");
+ RNA_def_enum(ot->srna, "owner", constraint_owner_items, 0, "Owner", "The owner of this constraint");
+}
+
+static int edit_constraint_invoke_properties(bContext *C, wmOperator *op)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint);
+ Object *ob= (ptr.id.data)?ptr.id.data:ED_object_active_context(C);
+ bConstraint *con;
+ ListBase *list;
+
+ if (RNA_property_is_set(op->ptr, "constraint") && RNA_property_is_set(op->ptr, "owner"))
+ return 1;
+
+ if (ptr.data) {
+ con = ptr.data;
+ RNA_string_set(op->ptr, "constraint", con->name);
+
+ list = get_constraint_lb(ob, con, NULL);
+
+ if (&ob->constraints == list)
+ RNA_enum_set(op->ptr, "owner", EDIT_CONSTRAINT_OWNER_OBJECT);
+ else
+ RNA_enum_set(op->ptr, "owner", EDIT_CONSTRAINT_OWNER_BONE);
+
+ return 1;
+ }
+
+ return 0;
+}
+
+static bConstraint *edit_constraint_property_get(bContext *C, wmOperator *op, Object *ob, int type)
+{
+ char constraint_name[32];
+ int owner = RNA_enum_get(op->ptr, "owner");
+ bConstraint *con;
+ ListBase *list=NULL;
+
+ RNA_string_get(op->ptr, "constraint", constraint_name);
+
+ if (owner == EDIT_CONSTRAINT_OWNER_OBJECT) {
+ list = &ob->constraints;
+ }
+ else if (owner == EDIT_CONSTRAINT_OWNER_BONE) {
+ bPoseChannel *pchan= get_active_posechannel(ob);
+ if (pchan)
+ list = &pchan->constraints;
+ else
+ return NULL;
+ }
+
+ con = constraints_findByName(list, constraint_name);
+
+ if (con && (type != 0) && (con->type != type))
+ con = NULL;
+
+ return con;
+}
+
+/* ********************** CONSTRAINT-SPECIFIC STUFF ********************* */
+
+/* ---------- Distance-Dependent Constraints ---------- */
+/* StretchTo, Limit Distance */
+
static int stretchto_reset_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_StretchToConstraint);
+ Object *ob = ED_object_active_context(C);
+ bConstraint *con = edit_constraint_property_get(C, op, ob, CONSTRAINT_TYPE_STRETCHTO);
+ bStretchToConstraint *data= (con) ? (bStretchToConstraint *)con->data : NULL;
+
+ /* despite 3 layers of checks, we may still not be able to find a constraint */
+ if (data == NULL)
+ return OPERATOR_CANCELLED;
/* just set original length to 0.0, which will cause a reset on next recalc */
- RNA_float_set(&ptr, "original_length", 0.0f);
+ data->orglength = 0.0f;
+ ED_object_constraint_update(ob);
WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, NULL);
return OPERATOR_FINISHED;
}
+static int stretchto_reset_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_constraint_invoke_properties(C, op))
+ return stretchto_reset_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void CONSTRAINT_OT_stretchto_reset (wmOperatorType *ot)
{
/* identifiers */
@@ -466,28 +577,39 @@ void CONSTRAINT_OT_stretchto_reset (wmOperatorType *ot)
ot->description= "Reset original length of bone for Stretch To Constraint";
ot->exec= stretchto_reset_exec;
- ot->poll= stretchto_poll;
+ ot->invoke= stretchto_reset_invoke;
+ ot->poll= edit_constraint_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_constraint_properties(ot);
}
static int limitdistance_reset_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_LimitDistanceConstraint);
+ Object *ob = ED_object_active_context(C);
+ bConstraint *con = edit_constraint_property_get(C, op, ob, CONSTRAINT_TYPE_DISTLIMIT);
+ bDistLimitConstraint *data= (con) ? (bDistLimitConstraint *)con->data : NULL;
- /* just set distance to 0.0, which will cause a reset on next recalc */
- RNA_float_set(&ptr, "distance", 0.0f);
+ /* despite 3 layers of checks, we may still not be able to find a constraint */
+ if (data == NULL)
+ return OPERATOR_CANCELLED;
+
+ /* just set original length to 0.0, which will cause a reset on next recalc */
+ data->dist = 0.0f;
+ ED_object_constraint_update(ob);
WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, NULL);
return OPERATOR_FINISHED;
}
-static int limitdistance_poll(bContext *C)
+static int limitdistance_reset_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_LimitDistanceConstraint);
- return (ptr.id.data && ptr.data);
+ if (edit_constraint_invoke_properties(C, op))
+ return limitdistance_reset_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
}
void CONSTRAINT_OT_limitdistance_reset (wmOperatorType *ot)
@@ -498,30 +620,29 @@ void CONSTRAINT_OT_limitdistance_reset (wmOperatorType *ot)
ot->description= "Reset limiting distance for Limit Distance Constraint";
ot->exec= limitdistance_reset_exec;
- ot->poll= limitdistance_poll;
+ ot->invoke= limitdistance_reset_invoke;
+ ot->poll= edit_constraint_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_constraint_properties(ot);
}
/* ------------- Child-Of Constraint ------------------ */
-static int childof_poll(bContext *C)
-{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_ChildOfConstraint);
- return (ptr.id.data && ptr.data);
-}
-
/* ChildOf Constraint - set inverse callback */
static int childof_set_inverse_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_ChildOfConstraint);
Scene *scene= CTX_data_scene(C);
- Object *ob= ptr.id.data;
- bConstraint *con= ptr.data;
- bChildOfConstraint *data= (bChildOfConstraint *)con->data;
+ Object *ob = ED_object_active_context(C);
+ bConstraint *con = edit_constraint_property_get(C, op, ob, CONSTRAINT_TYPE_CHILDOF);
+ bChildOfConstraint *data= (con) ? (bChildOfConstraint *)con->data : NULL;
bPoseChannel *pchan= NULL;
-
+
+ /* despite 3 layers of checks, we may still not be able to find a constraint */
+ if (data == NULL)
+ return OPERATOR_CANCELLED;
+
/* try to find a pose channel */
// TODO: get from context instead?
if (ob && ob->pose)
@@ -570,6 +691,14 @@ static int childof_set_inverse_exec (bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int childof_set_inverse_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_constraint_invoke_properties(C, op))
+ return childof_set_inverse_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void CONSTRAINT_OT_childof_set_inverse (wmOperatorType *ot)
{
/* identifiers */
@@ -578,19 +707,20 @@ void CONSTRAINT_OT_childof_set_inverse (wmOperatorType *ot)
ot->description= "Set inverse correction for ChildOf constraint";
ot->exec= childof_set_inverse_exec;
- ot->poll= childof_poll;
+ ot->invoke= childof_set_inverse_invoke;
+ ot->poll= edit_constraint_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_constraint_properties(ot);
}
/* ChildOf Constraint - clear inverse callback */
static int childof_clear_inverse_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_ChildOfConstraint);
- Object *ob= ptr.id.data;
- bConstraint *con= ptr.data;
- bChildOfConstraint *data= (bChildOfConstraint *)con->data;
+ Object *ob = ED_object_active_context(C);
+ bConstraint *con = edit_constraint_property_get(C, op, ob, CONSTRAINT_TYPE_CHILDOF);
+ bChildOfConstraint *data= (con) ? (bChildOfConstraint *)con->data : NULL;
/* simply clear the matrix */
unit_m4(data->invmat);
@@ -600,6 +730,14 @@ static int childof_clear_inverse_exec (bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int childof_clear_inverse_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_constraint_invoke_properties(C, op))
+ return childof_clear_inverse_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void CONSTRAINT_OT_childof_clear_inverse (wmOperatorType *ot)
{
/* identifiers */
@@ -608,10 +746,12 @@ void CONSTRAINT_OT_childof_clear_inverse (wmOperatorType *ot)
ot->description= "Clear inverse correction for ChildOf constraint";
ot->exec= childof_clear_inverse_exec;
- ot->poll= childof_poll;
+ ot->invoke= childof_clear_inverse_invoke;
+ ot->poll= edit_constraint_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_constraint_properties(ot);
}
/***************************** BUTTONS ****************************/
@@ -644,7 +784,7 @@ void ED_object_constraint_dependency_update(Scene *scene, Object *ob)
ED_object_constraint_update(ob);
if(ob->pose) ob->pose->flag |= POSE_RECALC; // checks & sorts pose channels
- DAG_scene_sort(scene);
+ DAG_scene_sort(scene);
}
static int constraint_poll(bContext *C)
@@ -681,7 +821,7 @@ void CONSTRAINT_OT_delete (wmOperatorType *ot)
/* identifiers */
ot->name= "Delete Constraint";
ot->idname= "CONSTRAINT_OT_delete";
- ot->description= "Remove constraitn from constraint stack";
+ ot->description= "Remove constraint from constraint stack";
/* callbacks */
ot->exec= constraint_delete_exec;
@@ -693,11 +833,10 @@ void CONSTRAINT_OT_delete (wmOperatorType *ot)
static int constraint_move_down_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint);
- Object *ob= ptr.id.data;
- bConstraint *con= ptr.data;
+ Object *ob = ED_object_active_context(C);
+ bConstraint *con = edit_constraint_property_get(C, op, ob, 0);
- if (con->next) {
+ if (con && con->next) {
ListBase *conlist= get_constraint_lb(ob, con, NULL);
bConstraint *nextCon= con->next;
@@ -713,29 +852,39 @@ static int constraint_move_down_exec (bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
+static int constraint_move_down_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_constraint_invoke_properties(C, op))
+ return constraint_move_down_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
+
void CONSTRAINT_OT_move_down (wmOperatorType *ot)
{
/* identifiers */
ot->name= "Move Constraint Down";
ot->idname= "CONSTRAINT_OT_move_down";
- ot->description= "Move constraint down constraint stack";
+ ot->description= "Move constraint down in constraint stack";
/* callbacks */
ot->exec= constraint_move_down_exec;
- ot->poll= constraint_poll;
+ ot->invoke= constraint_move_down_invoke;
+ ot->poll= edit_constraint_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_constraint_properties(ot);
}
static int constraint_move_up_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint);
- Object *ob= ptr.id.data;
- bConstraint *con= ptr.data;
+ Object *ob = ED_object_active_context(C);
+ bConstraint *con = edit_constraint_property_get(C, op, ob, 0);
- if (con->prev) {
+ if (con && con->prev) {
ListBase *conlist= get_constraint_lb(ob, con, NULL);
bConstraint *prevCon= con->prev;
@@ -751,19 +900,29 @@ static int constraint_move_up_exec (bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
+static int constraint_move_up_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_constraint_invoke_properties(C, op))
+ return constraint_move_up_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void CONSTRAINT_OT_move_up (wmOperatorType *ot)
{
/* identifiers */
ot->name= "Move Constraint Up";
ot->idname= "CONSTRAINT_OT_move_up";
- ot->description= "Move constraint up constraint stack";
+ ot->description= "Move constraint up in constraint stack";
/* callbacks */
ot->exec= constraint_move_up_exec;
- ot->poll= constraint_poll;
+ ot->invoke= constraint_move_up_invoke;
+ ot->poll= edit_constraint_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_constraint_properties(ot);
}
/***************************** OPERATORS ****************************/
@@ -808,19 +967,21 @@ void POSE_OT_constraints_clear(wmOperatorType *ot)
static int object_constraints_clear_exec(bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
Scene *scene= CTX_data_scene(C);
/* do freeing */
- // TODO: we should free constraints for all selected objects instead (to be more consistent with bones)
- free_constraints(&ob->constraints);
+ CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects)
+ {
+ free_constraints(&ob->constraints);
+ DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ }
+ CTX_DATA_END;
/* force depsgraph to get recalculated since relationships removed */
DAG_scene_sort(scene); /* sort order of objects */
/* do updates */
- DAG_id_flush_update(&ob->id, OB_RECALC_OB);
- WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, NULL);
return OPERATOR_FINISHED;
}
@@ -837,12 +998,90 @@ void OBJECT_OT_constraints_clear(wmOperatorType *ot)
ot->poll= ED_operator_object_active_editable;
}
+/************************ copy all constraints operators *********************/
+
+static int pose_constraint_copy_exec(bContext *C, wmOperator *op)
+{
+ bPoseChannel *pchan = CTX_data_active_pose_bone(C);
+ Scene *scene = CTX_data_scene(C);
+
+ /* don't do anything if bone doesn't exist or doesn't have any constraints */
+ if (ELEM(NULL, pchan, pchan->constraints.first)) {
+ BKE_report(op->reports, RPT_ERROR, "No active bone with constraints for copying");
+ return OPERATOR_CANCELLED;
+ }
+
+ /* copy all constraints from active posebone to all selected posebones */
+ CTX_DATA_BEGIN(C, bPoseChannel*, chan, selected_pose_bones)
+ {
+ /* if we're not handling the object we're copying from, copy all constraints over */
+ if (pchan != chan)
+ copy_constraints(&chan->constraints, &pchan->constraints, TRUE);
+ }
+ CTX_DATA_END;
+
+ /* force depsgraph to get recalculated since new relationships added */
+ DAG_scene_sort(scene); /* sort order of objects/bones */
+
+ return OPERATOR_FINISHED;
+}
+
+void POSE_OT_constraints_copy(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Copy Constraints to Selected";
+ ot->idname= "POSE_OT_constraints_copy";
+ ot->description = "Copy constraints to other selected bones.";
+
+ /* api callbacks */
+ ot->exec= pose_constraint_copy_exec;
+ ot->poll= ED_operator_posemode;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int object_constraint_copy_exec(bContext *C, wmOperator *op)
+{
+ Object *obact = ED_object_active_context(C);
+ Scene *scene = CTX_data_scene(C);
+
+ /* copy all constraints from active object to all selected objects */
+ CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects)
+ {
+ /* if we're not handling the object we're copying from, copy all constraints over */
+ if (obact != ob)
+ copy_constraints(&ob->constraints, &obact->constraints, TRUE);
+ }
+ CTX_DATA_END;
+
+ /* force depsgraph to get recalculated since new relationships added */
+ DAG_scene_sort(scene); /* sort order of objects */
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_constraints_copy(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Copy Constraints to Selected";
+ ot->idname= "OBJECT_OT_constraints_copy";
+ ot->description = "Copy constraints to other selected objects.";
+
+ /* api callbacks */
+ ot->exec= object_constraint_copy_exec;
+ ot->poll= ED_operator_object_active_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
/************************ add constraint operators *********************/
/* get the Object and/or PoseChannel to use as target */
static short get_new_constraint_target(bContext *C, int con_type, Object **tar_ob, bPoseChannel **tar_pchan, short add)
{
- Object *obact= CTX_data_active_object(C);
+ Object *obact= ED_object_active_context(C);
bPoseChannel *pchanact= get_active_posechannel(obact);
short only_curve= 0, only_mesh= 0, only_ob= 0;
short found= 0;
@@ -864,6 +1103,7 @@ static short get_new_constraint_target(bContext *C, int con_type, Object **tar_o
case CONSTRAINT_TYPE_LOCLIMIT:
case CONSTRAINT_TYPE_ROTLIMIT:
case CONSTRAINT_TYPE_SIZELIMIT:
+ case CONSTRAINT_TYPE_SAMEVOL:
return 0;
/* restricted target-type constraints -------------- */
@@ -1006,7 +1246,7 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase
}
/* create a new constraint of the type requried, and add it to the active/given constraints list */
- if(pchan)
+ if (pchan)
con = add_pose_constraint(ob, pchan, NULL, type);
else
con = add_ob_constraint(ob, NULL, type);
@@ -1046,9 +1286,9 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase
case CONSTRAINT_TYPE_PYTHON: // FIXME: this code is not really valid anymore
{
+#ifndef DISABLE_PYTHON
char *menustr;
int scriptint= 0;
-#ifndef DISABLE_PYTHON
/* popup a list of usable scripts */
menustr = buildmenu_pyconstraints(NULL, &scriptint);
// XXX scriptint = pupmenu(menustr);
@@ -1096,17 +1336,10 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase
/* dummy operator callback */
static int object_constraint_add_exec(bContext *C, wmOperator *op)
{
- ScrArea *sa= CTX_wm_area(C);
- Object *ob;
+ Object *ob=ED_object_active_context(C);
int type= RNA_enum_get(op->ptr, "type");
short with_targets= 0;
- /* get active object from context */
- if (sa->spacetype == SPACE_BUTS)
- ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
- else
- ob= CTX_data_active_object(C);
-
if (!ob) {
BKE_report(op->reports, RPT_ERROR, "No active object to add constraint to.");
return OPERATOR_CANCELLED;
@@ -1124,17 +1357,10 @@ static int object_constraint_add_exec(bContext *C, wmOperator *op)
/* dummy operator callback */
static int pose_constraint_add_exec(bContext *C, wmOperator *op)
{
- ScrArea *sa= CTX_wm_area(C);
- Object *ob;
+ Object *ob= ED_object_active_context(C);
int type= RNA_enum_get(op->ptr, "type");
short with_targets= 0;
- /* get active object from context */
- if (sa->spacetype == SPACE_BUTS)
- ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
- else
- ob= CTX_data_active_object(C);
-
if (!ob) {
BKE_report(op->reports, RPT_ERROR, "No active object to add constraint to.");
return OPERATOR_CANCELLED;
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index 2e72f51bee9..fcd3a73c84d 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -30,41 +30,20 @@
#include <time.h>
#include <float.h>
#include <ctype.h>
+#include <stddef.h> //for offsetof
#include "MEM_guardedalloc.h"
#include "IMB_imbuf_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_constraint_types.h"
#include "DNA_curve_types.h"
-#include "DNA_effect_types.h"
#include "DNA_group_types.h"
-#include "DNA_image_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
#include "DNA_lattice_types.h"
#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
#include "DNA_meta_types.h"
-#include "DNA_nla_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_fluidsim.h"
-#include "DNA_object_force.h"
-#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_particle_types.h"
#include "DNA_property_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
#include "DNA_vfont_types.h"
-#include "DNA_world_types.h"
-#include "DNA_modifier_types.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
@@ -75,12 +54,10 @@
#include "BKE_action.h"
#include "BKE_anim.h"
#include "BKE_armature.h"
-#include "BKE_booleanops.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_blender.h"
-#include "BKE_booleanops.h"
#include "BKE_cloth.h"
#include "BKE_curve.h"
#include "BKE_displist.h"
@@ -114,36 +91,29 @@
#include "BKE_modifier.h"
#include "BKE_tessmesh.h"
-#include "ED_anim_api.h"
#include "ED_armature.h"
#include "ED_curve.h"
-#include "ED_particle.h"
#include "ED_mesh.h"
#include "ED_mball.h"
#include "ED_object.h"
#include "ED_screen.h"
-#include "ED_transform.h"
-#include "ED_types.h"
#include "ED_util.h"
-#include "ED_view3d.h"
-#include "UI_interface.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
/* for menu/popup icons etc etc*/
-#include "UI_interface.h"
-#include "UI_resources.h"
+#include "UI_interface.h"
#include "WM_api.h"
#include "WM_types.h"
#include "object_intern.h" // own include
/* ************* XXX **************** */
-static void error() {}
+static void error(const char *dummy) {}
static void waitcursor(int val) {}
static int pupmenu(const char *msg) {return 0;}
@@ -151,34 +121,20 @@ static int pupmenu(const char *msg) {return 0;}
static bContext *C;
static void error_libdata() {}
-/* ********************************** */
-/* --------------------------------- */
-
-void ED_object_apply_obmat(Object *ob)
+/* find the correct active object per context
+ * note: context can be NULL when called from a enum with PROP_ENUM_NO_CONTEXT */
+Object *ED_object_active_context(bContext *C)
{
- float mat[3][3], imat[3][3], tmat[3][3];
-
- /* from obmat to loc rot size */
-
- if(ob==NULL) return;
- copy_m3_m4(mat, ob->obmat);
-
- VECCOPY(ob->loc, ob->obmat[3]);
-
- mat3_to_eul( ob->rot,mat);
- eul_to_mat3( tmat,ob->rot);
-
- invert_m3_m3(imat, tmat);
-
- mul_m3_m3m3(tmat, imat, mat);
-
- ob->size[0]= tmat[0][0];
- ob->size[1]= tmat[1][1];
- ob->size[2]= tmat[2][2];
-
+ Object *ob= NULL;
+ if(C) {
+ ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+ if (!ob) ob= CTX_data_active_object(C);
+ }
+ return ob;
}
+
/* ********* clear/set restrict view *********/
static int object_restrictview_clear_exec(bContext *C, wmOperator *op)
{
@@ -276,6 +232,79 @@ void OBJECT_OT_restrictview_set(wmOperatorType *ot)
}
+/* 99% same as above except no need for scene refreshing (TODO, update render preview) */
+static int object_restrictrender_clear_exec(bContext *C, wmOperator *op)
+{
+ short changed= 0;
+
+ /* XXX need a context loop to handle such cases */
+ CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
+ if(ob->restrictflag & OB_RESTRICT_RENDER) {
+ ob->restrictflag &= ~OB_RESTRICT_RENDER;
+ changed= 1;
+ }
+ }
+ CTX_DATA_END;
+
+ if(changed)
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_restrictrender_clear(wmOperatorType *ot)
+{
+
+ /* identifiers */
+ ot->name= "Clear Restrict Render";
+ ot->description = "Reveal the render object by setting the restrictrender flag";
+ ot->idname= "OBJECT_OT_restrictrender_clear";
+
+ /* api callbacks */
+ ot->exec= object_restrictrender_clear_exec;
+ ot->poll= ED_operator_view3d_active;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int object_restrictrender_set_exec(bContext *C, wmOperator *op)
+{
+ int unselected= RNA_boolean_get(op->ptr, "unselected");
+
+ CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
+ if(!unselected) {
+ if (base->flag & SELECT){
+ base->object->restrictflag |= OB_RESTRICT_RENDER;
+ }
+ }
+ else {
+ if (!(base->flag & SELECT)){
+ base->object->restrictflag |= OB_RESTRICT_RENDER;
+ }
+ }
+ }
+ CTX_DATA_END;
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL);
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_restrictrender_set(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Set Restrict Render";
+ ot->description = "Hide the render object by setting the restrictrender flag";
+ ot->idname= "OBJECT_OT_restrictrender_set";
+
+ /* api callbacks */
+ ot->exec= object_restrictrender_set_exec;
+ ot->poll= ED_operator_view3d_active;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects.");
+}
/* ******************* toggle editmode operator ***************** */
@@ -311,8 +340,10 @@ void ED_object_exit_editmode(bContext *C, int flag)
me->edit_btmesh= NULL;
}
- if(obedit->restore_mode & OB_MODE_WEIGHT_PAINT)
- mesh_octree_table(obedit, NULL, NULL, 'e');
+ if(obedit->restore_mode & OB_MODE_WEIGHT_PAINT) {
+ mesh_octree_table(NULL, NULL, NULL, 'e');
+ mesh_mirrtopo_table(NULL, 'e');
+ }
}
else if (obedit->type==OB_ARMATURE) {
ED_armature_from_edit(obedit);
@@ -338,8 +369,19 @@ void ED_object_exit_editmode(bContext *C, int flag)
/* freedata only 0 now on file saves and render */
if(freedata) {
+ ListBase pidlist;
+ PTCacheID *pid;
+
/* for example; displist make is different in editmode */
scene->obedit= NULL; // XXX for context
+
+ /* flag object caches as outdated */
+ BKE_ptcache_ids_from_object(&pidlist, obedit, NULL, 0);
+ for(pid=pidlist.first; pid; pid=pid->next) {
+ if(pid->type != PTCACHE_TYPE_PARTICLES) /* particles don't need reset on geometry change */
+ pid->cache->flag |= PTCACHE_OUTDATED;
+ }
+ BLI_freelistN(&pidlist);
BKE_ptcache_object_reset(scene, obedit, PTCACHE_RESET_DEPSGRAPH);
@@ -354,7 +396,6 @@ void ED_object_exit_editmode(bContext *C, int flag)
WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, scene);
obedit->mode &= ~OB_MODE_EDIT;
- ED_object_toggle_modes(C, obedit->restore_mode);
}
}
@@ -397,8 +438,7 @@ void ED_object_enter_editmode(bContext *C, int flag)
ob->restore_mode = ob->mode;
ED_object_toggle_modes(C, ob->mode);
-
- ob->mode |= OB_MODE_EDIT;
+ ob->mode= OB_MODE_EDIT;
if(ob->type==OB_MESH) {
Mesh *me= ob->data;
@@ -430,14 +470,14 @@ void ED_object_enter_editmode(bContext *C, int flag)
scene->obedit= ob;
ED_armature_to_edit(ob);
/* to ensure all goes in restposition and without striding */
- DAG_id_flush_update(&ob->id, OB_RECALC);
+ DAG_id_flush_update(&ob->id, OB_RECALC_ALL); // XXX: should this be OB_RECALC_DATA?
WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_ARMATURE, scene);
}
else if(ob->type==OB_FONT) {
scene->obedit= ob; // XXX for context
ok= 1;
- make_editText(ob);
+ make_editText(ob);
WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_TEXT, scene);
}
@@ -495,9 +535,9 @@ static int editmode_toggle_poll(bContext *C)
return 0;
return ob && (ob->type == OB_MESH || ob->type == OB_ARMATURE ||
- ob->type == OB_FONT || ob->type == OB_MBALL ||
- ob->type == OB_LATTICE || ob->type == OB_SURF ||
- ob->type == OB_CURVE);
+ ob->type == OB_FONT || ob->type == OB_MBALL ||
+ ob->type == OB_LATTICE || ob->type == OB_SURF ||
+ ob->type == OB_CURVE);
}
void OBJECT_OT_editmode_toggle(wmOperatorType *ot)
@@ -1062,6 +1102,7 @@ void flip_subdivison(Scene *scene, View3D *v3d, int level)
static void copymenu_properties(Scene *scene, View3D *v3d, Object *ob)
{
+//XXX no longer used - to be removed - replaced by game_properties_copy_exec
bProperty *prop;
Base *base;
int nr, tot=0;
@@ -1120,6 +1161,7 @@ static void copymenu_properties(Scene *scene, View3D *v3d, Object *ob)
static void copymenu_logicbricks(Scene *scene, View3D *v3d, Object *ob)
{
+//XXX no longer used - to be removed - replaced by logicbricks_copy_exec
Base *base;
for(base= FIRSTBASE; base; base= base->next) {
@@ -1368,7 +1410,7 @@ void copy_attr(Scene *scene, View3D *v3d, short event)
base->object->dup_group= ob->dup_group;
if(ob->dup_group)
- id_us_plus((ID *)ob->dup_group);
+ id_lib_extern(&ob->dup_group->id);
}
else if(event==7) { /* mass */
base->object->mass= ob->mass;
@@ -1487,7 +1529,7 @@ void copy_attr(Scene *scene, View3D *v3d, short event)
}
else if(event==22) {
/* Copy the constraint channels over */
- copy_constraints(&base->object->constraints, &ob->constraints);
+ copy_constraints(&base->object->constraints, &ob->constraints, TRUE);
do_scene_sort= 1;
}
@@ -1678,6 +1720,7 @@ void ED_objects_clear_paths(bContext *C, Scene *scene)
if (ob->mpath) {
animviz_free_motionpath(ob->mpath);
ob->mpath= NULL;
+ ob->avs.path_bakeflag &= ~MOTIONPATH_BAKE_HAS_PATHS;
}
}
CTX_DATA_END;
@@ -1751,6 +1794,11 @@ static int shade_smooth_exec(bContext *C, wmOperator *op)
return (done)? OPERATOR_FINISHED: OPERATOR_CANCELLED;
}
+static int shade_poll(bContext *C)
+{
+ return (ED_operator_object_active_editable(C) && !ED_operator_editmesh(C));
+}
+
void OBJECT_OT_shade_flat(wmOperatorType *ot)
{
/* identifiers */
@@ -1758,7 +1806,7 @@ void OBJECT_OT_shade_flat(wmOperatorType *ot)
ot->idname= "OBJECT_OT_shade_flat";
/* api callbacks */
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= shade_poll;
ot->exec= shade_smooth_exec;
/* flags */
@@ -1772,7 +1820,7 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot)
ot->idname= "OBJECT_OT_shade_smooth";
/* api callbacks */
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= shade_poll;
ot->exec= shade_smooth_exec;
/* flags */
@@ -1950,12 +1998,12 @@ static EnumPropertyItem *object_mode_set_itemsf(bContext *C, PointerRNA *ptr, in
ob = CTX_data_active_object(C);
while(ob && input->identifier) {
if((input->value == OB_MODE_EDIT && ((ob->type == OB_MESH) || (ob->type == OB_ARMATURE) ||
- (ob->type == OB_CURVE) || (ob->type == OB_SURF) ||
- (ob->type == OB_FONT) || (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) ||
+ (ob->type == OB_CURVE) || (ob->type == OB_SURF) ||
+ (ob->type == OB_FONT) || (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) ||
(input->value == OB_MODE_POSE && (ob->type == OB_ARMATURE)) ||
(input->value == OB_MODE_PARTICLE_EDIT && ob->particlesystem.first) ||
((input->value == OB_MODE_SCULPT || input->value == OB_MODE_VERTEX_PAINT ||
- input->value == OB_MODE_WEIGHT_PAINT || input->value == OB_MODE_TEXTURE_PAINT) && (ob->type == OB_MESH)) ||
+ input->value == OB_MODE_WEIGHT_PAINT || input->value == OB_MODE_TEXTURE_PAINT) && (ob->type == OB_MESH)) ||
(input->value == OB_MODE_OBJECT))
RNA_enum_item_add(&item, &totitem, input);
++input;
@@ -2030,7 +2078,7 @@ static int object_mode_set_exec(bContext *C, wmOperator *op)
{
Object *ob= CTX_data_active_object(C);
ObjectMode mode = RNA_enum_get(op->ptr, "mode");
- ObjectMode restore_mode = ob->mode;
+ ObjectMode restore_mode = (ob) ? ob->mode : OB_MODE_OBJECT;
int toggle = RNA_boolean_get(op->ptr, "toggle");
if(!ob || !object_mode_set_compat(C, op, ob))
@@ -2097,6 +2145,8 @@ void ED_object_toggle_modes(bContext *C, int mode)
WM_operator_name_call(C, "PARTICLE_OT_particle_edit_toggle", WM_OP_EXEC_REGION_WIN, NULL);
if(mode & OB_MODE_POSE)
WM_operator_name_call(C, "OBJECT_OT_posemode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
+ if(mode & OB_MODE_EDIT)
+ WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
}
/************************ Game Properties ***********************/
@@ -2113,6 +2163,7 @@ static int game_property_new(bContext *C, wmOperator *op)
BLI_addtail(&ob->prop, prop);
unique_property(NULL, prop, 0); // make_unique_prop_names(prop->name);
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
return OPERATOR_FINISHED;
}
@@ -2135,23 +2186,23 @@ static int game_property_remove(bContext *C, wmOperator *op)
{
Object *ob= CTX_data_active_object(C);
bProperty *prop;
- int index;
+ int index= RNA_int_get(op->ptr, "index");
if(!ob)
return OPERATOR_CANCELLED;
- index = RNA_int_get(op->ptr, "index");
+ prop= BLI_findlink(&ob->prop, index);
- prop= BLI_findlink(&ob->prop, index);
-
- if(prop) {
+ if(prop) {
BLI_remlink(&ob->prop, prop);
free_property(prop);
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
return OPERATOR_FINISHED;
- }
- else {
- return OPERATOR_CANCELLED;
- }
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
}
void OBJECT_OT_game_property_remove(wmOperatorType *ot)
@@ -2169,3 +2220,181 @@ void OBJECT_OT_game_property_remove(wmOperatorType *ot)
RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "Property index to remove ", 0, INT_MAX);
}
+
+#define COPY_PROPERTIES_REPLACE 1
+#define COPY_PROPERTIES_MERGE 2
+#define COPY_PROPERTIES_COPY 3
+
+static EnumPropertyItem game_properties_copy_operations[] ={
+ {COPY_PROPERTIES_REPLACE, "REPLACE", 0, "Replace Properties", ""},
+ {COPY_PROPERTIES_MERGE, "MERGE", 0, "Merge Properties", ""},
+ {COPY_PROPERTIES_COPY, "COPY", 0, "Copy a Property", ""},
+ {0, NULL, 0, NULL, NULL}};
+
+static EnumPropertyItem gameprops_items[]= {
+ {0, NULL, 0, NULL, NULL}};
+
+static EnumPropertyItem *gameprops_itemf(bContext *C, PointerRNA *ptr, int *free)
+{
+ Object *ob= ED_object_active_context(C);
+ EnumPropertyItem tmp = {0, "", 0, "", ""};
+ EnumPropertyItem *item= NULL;
+ bProperty *prop;
+ int a, totitem= 0;
+
+ if(!ob)
+ return gameprops_items;
+
+ for(a=1, prop= ob->prop.first; prop; prop=prop->next, a++) {
+ tmp.value= a;
+ tmp.identifier= prop->name;
+ tmp.name= prop->name;
+ RNA_enum_item_add(&item, &totitem, &tmp);
+ }
+
+ RNA_enum_item_end(&item, &totitem);
+ *free= 1;
+
+ return item;
+}
+
+static int game_property_copy_exec(bContext *C, wmOperator *op)
+{
+ Object *ob=ED_object_active_context(C);
+ bProperty *prop;
+ int type = RNA_enum_get(op->ptr, "operation");
+ int propid= RNA_enum_get(op->ptr, "property");
+
+ if(propid > 0) { /* copy */
+ prop = BLI_findlink(&ob->prop, propid-1);
+
+ if(prop) {
+ CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
+ if (ob != ob_iter) {
+ if (ob->data != ob_iter->data)
+ set_ob_property(ob_iter, prop);
+ }
+ } CTX_DATA_END;
+ }
+ }
+ else if (ELEM(type, COPY_PROPERTIES_REPLACE, COPY_PROPERTIES_MERGE)) {
+ CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
+ if (ob != ob_iter) {
+ if (ob->data != ob_iter->data){
+ if (type == 2) {/* merge */
+ for(prop = ob->prop.first; prop; prop= prop->next ) {
+ set_ob_property(ob_iter, prop);
+ }
+ } else /* replace */
+ copy_properties( &ob_iter->prop, &ob->prop );
+ }
+ }
+ }
+ CTX_DATA_END;
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_game_property_copy(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+ /* identifiers */
+ ot->name= "Copy Game Property";
+ ot->idname= "OBJECT_OT_game_property_copy";
+
+ /* api callbacks */
+ ot->exec= game_property_copy_exec;
+ ot->poll= ED_operator_object_active_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "operation", game_properties_copy_operations, 3, "Operation", "");
+ prop=RNA_def_enum(ot->srna, "property", gameprops_items, 0, "Property", "Properties to copy");
+ RNA_def_enum_funcs(prop, gameprops_itemf);
+ ot->prop=prop;
+}
+
+static int game_property_clear_exec(bContext *C, wmOperator *op)
+{
+ CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
+ free_properties(&ob_iter->prop);
+ }
+ CTX_DATA_END;
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+ return OPERATOR_FINISHED;
+}
+void OBJECT_OT_game_property_clear(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Clear Game Property";
+ ot->idname= "OBJECT_OT_game_property_clear";
+
+ /* api callbacks */
+ ot->exec= game_property_clear_exec;
+ ot->poll= ED_operator_object_active_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/************************ Copy Logic Bricks ***********************/
+
+static int logicbricks_copy_exec(bContext *C, wmOperator *op)
+{
+ Object *ob=ED_object_active_context(C);
+
+ CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
+ if(ob != ob_iter) {
+ if (ob->data != ob_iter->data){
+ /* first: free all logic */
+ free_sensors(&ob_iter->sensors);
+ unlink_controllers(&ob_iter->controllers);
+ free_controllers(&ob_iter->controllers);
+ unlink_actuators(&ob_iter->actuators);
+ free_actuators(&ob_iter->actuators);
+
+ /* now copy it, this also works without logicbricks! */
+ clear_sca_new_poins_ob(ob);
+ copy_sensors(&ob_iter->sensors, &ob->sensors);
+ copy_controllers(&ob_iter->controllers, &ob->controllers);
+ copy_actuators(&ob_iter->actuators, &ob->actuators);
+ set_sca_new_poins_ob(ob_iter);
+
+ /* some menu settings */
+ ob_iter->scavisflag= ob->scavisflag;
+ ob_iter->scaflag= ob->scaflag;
+
+ /* set the initial state */
+ ob_iter->state= ob->state;
+ ob_iter->init_state= ob->init_state;
+ }
+ if(ob_iter->totcol==ob->totcol) {
+ ob_iter->actcol= ob->actcol;
+ WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob_iter);
+ }
+ }
+ }
+ CTX_DATA_END;
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_logic_bricks_copy(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Copy Logic Bricks to Selected";
+ ot->description = "Copy logic bricks to other selected objects.";
+ ot->idname= "OBJECT_OT_logic_bricks_copy";
+
+ /* api callbacks */
+ ot->exec= logicbricks_copy_exec;
+ ot->poll= ED_operator_object_active_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
diff --git a/source/blender/editors/object/object_group.c b/source/blender/editors/object/object_group.c
index 73ca6e02132..ba609bd9bb3 100644
--- a/source/blender/editors/object/object_group.c
+++ b/source/blender/editors/object/object_group.c
@@ -52,6 +52,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "object_intern.h"
@@ -224,84 +225,71 @@ void GROUP_OT_create(wmOperatorType *ot)
static int group_add_exec(bContext *C, wmOperator *op)
{
- Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
- Base *base;
Group *group;
- int value= RNA_enum_get(op->ptr, "group");
- if(!ob)
+ if(ob == NULL)
return OPERATOR_CANCELLED;
-
- base= object_in_scene(ob, scene);
- if(!base)
- return OPERATOR_CANCELLED;
-
- if(value == -1)
- group= add_group( "Group" );
- else
- group= BLI_findlink(&bmain->group, value);
- if(group) {
- add_to_group(group, ob, scene, NULL); /* base will be used if found */
- }
+ group= add_group("Group");
+ add_to_group(group, ob, scene, NULL);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
-
+
return OPERATOR_FINISHED;
}
-static EnumPropertyItem group_items[]= {
- {-1, "ADD_NEW", 0, "Add New Group", ""},
- {0, NULL, 0, NULL, NULL}};
-
-static EnumPropertyItem *group_itemf(bContext *C, PointerRNA *ptr, int *free)
-{
- Main *bmain= CTX_data_main(C);
- Group *group;
- EnumPropertyItem tmp = {0, "", 0, "", ""};
- EnumPropertyItem *item= NULL;
- int a, totitem= 0;
+void OBJECT_OT_group_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add to Group";
+ ot->idname= "OBJECT_OT_group_add";
+ ot->description = "Add an object to a new group";
- RNA_enum_items_add_value(&item, &totitem, group_items, -1);
+ /* api callbacks */
+ ot->exec= group_add_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
- if (bmain) {
- if(bmain->group.first)
- RNA_enum_item_add_separator(&item, &totitem);
+static int group_link_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene= CTX_data_scene(C);
+ Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+ Group *group= BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group"));
- for(a=0, group=bmain->group.first; group; group=group->id.next, a++) {
- tmp.value= a;
- tmp.identifier= group->id.name+2;
- tmp.name= group->id.name+2;
- RNA_enum_item_add(&item, &totitem, &tmp);
- }
- }
+ if(ELEM(NULL, ob, group))
+ return OPERATOR_CANCELLED;
+
+ add_to_group(group, ob, scene, NULL);
- RNA_enum_item_end(&item, &totitem);
- *free= 1;
+ WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
- return item;
+ return OPERATOR_FINISHED;
}
-void OBJECT_OT_group_add(wmOperatorType *ot)
+void OBJECT_OT_group_link(wmOperatorType *ot)
{
PropertyRNA *prop;
/* identifiers */
- ot->name= "Add to Group";
- ot->idname= "OBJECT_OT_group_add";
- ot->description = "Add an object to an existing group, or create new";
+ ot->name= "Link to Group";
+ ot->idname= "OBJECT_OT_group_link";
+ ot->description = "Add an object to an existing group";
/* api callbacks */
- ot->exec= group_add_exec;
+ ot->exec= group_link_exec;
+ ot->invoke= WM_enum_search_invoke;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "group", group_items, -1, "Group", "Group to add object to.");
- RNA_def_enum_funcs(prop, group_itemf);
+ prop= RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", "");
+ RNA_def_enum_funcs(prop, RNA_group_local_itemf);
+ ot->prop= prop;
}
static int group_remove_exec(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c
index 2f2b0987e05..8b171bae34d 100644
--- a/source/blender/editors/object/object_hook.c
+++ b/source/blender/editors/object/object_hook.c
@@ -35,16 +35,11 @@
#include "BLI_listbase.h"
#include "BLI_string.h"
-#include "DNA_action_types.h"
#include "DNA_curve_types.h"
#include "DNA_lattice_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "BKE_action.h"
#include "BKE_context.h"
@@ -60,17 +55,15 @@
#include "RNA_define.h"
#include "RNA_access.h"
+#include "RNA_enum_types.h"
#include "ED_curve.h"
#include "ED_mesh.h"
-#include "ED_object.h"
-#include "ED_view3d.h"
#include "ED_screen.h"
#include "WM_types.h"
#include "WM_api.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "object_intern.h"
@@ -94,7 +87,7 @@ static int return_editmesh_indexar(BMEditMesh *em, int *tot, int **indexar, floa
BM_ITER(eve, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
if(BM_TestHFlag(eve, BM_SELECT)) {
*index= nr; index++;
- add_v3_v3v3(cent, cent, eve->co);
+ add_v3_v3(cent, eve->co);
}
nr++;
}
@@ -123,7 +116,7 @@ static int return_editmesh_vgroup(Object *obedit, BMEditMesh *em, char *name, fl
for(i=0; i<dvert->totweight; i++){
if(dvert->dw[i].def_nr == (obedit->actdef-1)) {
totvert++;
- add_v3_v3v3(cent, cent, eve->co);
+ add_v3_v3(cent, eve->co);
}
}
}
@@ -190,7 +183,7 @@ static int return_editlattice_indexar(Lattice *editlatt, int *tot, int **indexar
if(bp->f1 & SELECT) {
if(bp->hide==0) {
*index= nr; index++;
- add_v3_v3v3(cent, cent, bp->vec);
+ add_v3_v3(cent, bp->vec);
}
}
bp++;
@@ -263,17 +256,17 @@ static int return_editcurve_indexar(Object *obedit, int *tot, int **indexar, flo
while(a--) {
if(bezt->f1 & SELECT) {
*index= nr; index++;
- add_v3_v3v3(cent, cent, bezt->vec[0]);
+ add_v3_v3(cent, bezt->vec[0]);
}
nr++;
if(bezt->f2 & SELECT) {
*index= nr; index++;
- add_v3_v3v3(cent, cent, bezt->vec[1]);
+ add_v3_v3(cent, bezt->vec[1]);
}
nr++;
if(bezt->f3 & SELECT) {
*index= nr; index++;
- add_v3_v3v3(cent, cent, bezt->vec[2]);
+ add_v3_v3(cent, bezt->vec[2]);
}
nr++;
bezt++;
@@ -285,7 +278,7 @@ static int return_editcurve_indexar(Object *obedit, int *tot, int **indexar, flo
while(a--) {
if(bp->f1 & SELECT) {
*index= nr; index++;
- add_v3_v3v3(cent, cent, bp->vec);
+ add_v3_v3(cent, bp->vec);
}
nr++;
bp++;
@@ -540,9 +533,6 @@ void OBJECT_OT_hook_add_newobj(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static EnumPropertyItem hook_mod_items[]= {
-{0, NULL, 0, NULL, NULL}};
-
static int object_hook_remove_exec(bContext *C, wmOperator *op)
{
int num= RNA_enum_get(op->ptr, "modifier");
@@ -577,7 +567,7 @@ static EnumPropertyItem *hook_mod_itemf(bContext *C, PointerRNA *ptr, int *free)
int a, totitem= 0;
if(!ob)
- return hook_mod_items;
+ return DummyRNA_NULL_items;
for(a=0, md=ob->modifiers.first; md; md= md->next, a++) {
if (md->type==eModifierType_Hook) {
@@ -613,7 +603,7 @@ void OBJECT_OT_hook_remove(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "modifier", hook_mod_items, 0, "Modifier", "Modifier number to remove.");
+ prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to remove.");
RNA_def_enum_funcs(prop, hook_mod_itemf);
ot->prop= prop;
}
@@ -669,7 +659,7 @@ void OBJECT_OT_hook_reset(wmOperatorType *ot)
/* identifiers */
ot->name= "Reset Hook";
- ot->description= "Recalculate and and clear offset transformation";
+ ot->description= "Recalculate and clear offset transformation";
ot->idname= "OBJECT_OT_hook_reset";
/* callbacks */
@@ -680,7 +670,7 @@ void OBJECT_OT_hook_reset(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "modifier", hook_mod_items, 0, "Modifier", "Modifier number to assign to.");
+ prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to.");
RNA_def_enum_funcs(prop, hook_mod_itemf);
}
@@ -736,7 +726,7 @@ void OBJECT_OT_hook_recenter(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "modifier", hook_mod_items, 0, "Modifier", "Modifier number to assign to.");
+ prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to.");
RNA_def_enum_funcs(prop, hook_mod_itemf);
}
@@ -799,7 +789,7 @@ void OBJECT_OT_hook_assign(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "modifier", hook_mod_items, 0, "Modifier", "Modifier number to assign to.");
+ prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to.");
RNA_def_enum_funcs(prop, hook_mod_itemf);
}
@@ -848,7 +838,7 @@ void OBJECT_OT_hook_select(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "modifier", hook_mod_items, 0, "Modifier", "Modifier number to remove.");
+ prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to remove.");
RNA_def_enum_funcs(prop, hook_mod_itemf);
}
diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h
index 5331de02560..8bd0da3b43f 100644
--- a/source/blender/editors/object/object_intern.h
+++ b/source/blender/editors/object/object_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -77,12 +77,20 @@ void OBJECT_OT_editmode_toggle(struct wmOperatorType *ot);
void OBJECT_OT_posemode_toggle(struct wmOperatorType *ot);
void OBJECT_OT_restrictview_set(struct wmOperatorType *ot);
void OBJECT_OT_restrictview_clear(struct wmOperatorType *ot);
+void OBJECT_OT_restrictrender_set(struct wmOperatorType *ot);
+void OBJECT_OT_restrictrender_clear(struct wmOperatorType *ot);
void OBJECT_OT_proxy_make(struct wmOperatorType *ot);
void OBJECT_OT_shade_smooth(struct wmOperatorType *ot);
void OBJECT_OT_shade_flat(struct wmOperatorType *ot);
void OBJECT_OT_paths_calculate(struct wmOperatorType *ot);
void OBJECT_OT_paths_clear(struct wmOperatorType *ot);
+void OBJECT_OT_game_property_new(struct wmOperatorType *ot);
+void OBJECT_OT_game_property_remove(struct wmOperatorType *ot);
+void OBJECT_OT_game_property_copy(struct wmOperatorType *ot);
+void OBJECT_OT_game_property_clear(struct wmOperatorType *ot);
+void OBJECT_OT_logic_bricks_copy(struct wmOperatorType *ot);
+
/* object_select.c */
void OBJECT_OT_select_all(struct wmOperatorType *ot);
void OBJECT_OT_select_inverse(struct wmOperatorType *ot);
@@ -93,12 +101,11 @@ void OBJECT_OT_select_linked(struct wmOperatorType *ot);
void OBJECT_OT_select_grouped(struct wmOperatorType *ot);
void OBJECT_OT_select_mirror(struct wmOperatorType *ot);
void OBJECT_OT_select_name(struct wmOperatorType *ot);
+void OBJECT_OT_select_same_group(struct wmOperatorType *ot);
/* object_add.c */
void OBJECT_OT_add(struct wmOperatorType *ot);
void OBJECT_OT_add_named(struct wmOperatorType *ot);
-void OBJECT_OT_curve_add(struct wmOperatorType *ot);
-void OBJECT_OT_surface_add(struct wmOperatorType *ot);
void OBJECT_OT_metaball_add(struct wmOperatorType *ot);
void OBJECT_OT_text_add(struct wmOperatorType *ot);
void OBJECT_OT_armature_add(struct wmOperatorType *ot);
@@ -149,8 +156,8 @@ void OBJECT_OT_modifier_copy(struct wmOperatorType *ot);
void OBJECT_OT_multires_subdivide(struct wmOperatorType *ot);
void OBJECT_OT_multires_reshape(struct wmOperatorType *ot);
void OBJECT_OT_multires_higher_levels_delete(struct wmOperatorType *ot);
-void OBJECT_OT_multires_save_external(struct wmOperatorType *ot);
-void OBJECT_OT_multires_pack_external(struct wmOperatorType *ot);
+void OBJECT_OT_multires_external_save(struct wmOperatorType *ot);
+void OBJECT_OT_multires_external_pack(struct wmOperatorType *ot);
void OBJECT_OT_meshdeform_bind(struct wmOperatorType *ot);
void OBJECT_OT_explode_refresh(struct wmOperatorType *ot);
@@ -160,6 +167,9 @@ void OBJECT_OT_constraint_add_with_targets(struct wmOperatorType *ot);
void POSE_OT_constraint_add(struct wmOperatorType *ot);
void POSE_OT_constraint_add_with_targets(struct wmOperatorType *ot);
+void OBJECT_OT_constraints_copy(struct wmOperatorType *ot);
+void POSE_OT_constraints_copy(struct wmOperatorType *ot);
+
void OBJECT_OT_constraints_clear(struct wmOperatorType *ot);
void POSE_OT_constraints_clear(struct wmOperatorType *ot);
@@ -195,9 +205,7 @@ void OBJECT_OT_vertex_group_clean(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_mirror(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_set_active(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_sort(struct wmOperatorType *ot);
-
-void OBJECT_OT_game_property_new(struct wmOperatorType *ot);
-void OBJECT_OT_game_property_remove(struct wmOperatorType *ot);
+void OBJECT_OT_vertex_group_move(struct wmOperatorType *ot);
/* object_shapekey.c */
void OBJECT_OT_shape_key_add(struct wmOperatorType *ot);
@@ -208,6 +216,7 @@ void OBJECT_OT_shape_key_move(struct wmOperatorType *ot);
/* object_group.c */
void OBJECT_OT_group_add(struct wmOperatorType *ot);
+void OBJECT_OT_group_link(struct wmOperatorType *ot);
void OBJECT_OT_group_remove(struct wmOperatorType *ot);
/* object_bake.c */
diff --git a/source/blender/editors/object/object_lattice.c b/source/blender/editors/object/object_lattice.c
index 404335ca1ca..afd4f7a88a7 100644
--- a/source/blender/editors/object/object_lattice.c
+++ b/source/blender/editors/object/object_lattice.c
@@ -47,7 +47,6 @@
#include "BKE_mesh.h"
#include "BKE_utildefines.h"
-#include "ED_object.h"
#include "ED_screen.h"
#include "ED_view3d.h"
#include "ED_util.h"
@@ -228,7 +227,7 @@ void LATTICE_OT_select_all(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Select or Deselect All";
- ot->description= "Change selection of all UVW control points";
+ ot->description= "Change selection of all UVW control points";
ot->idname= "LATTICE_OT_select_all";
/* api callbacks */
@@ -276,7 +275,7 @@ void LATTICE_OT_make_regular(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Make Regular";
- ot->description= "Set UVW control points a uniform distance apart";
+ ot->description= "Set UVW control points a uniform distance apart";
ot->idname= "LATTICE_OT_make_regular";
/* api callbacks */
@@ -389,8 +388,8 @@ static int validate_undoLatt(void *data, void *edata)
Lattice *editlatt= (Lattice *)edata;
return (ult->pntsu == editlatt->pntsu &&
- ult->pntsv == editlatt->pntsv &&
- ult->pntsw == editlatt->pntsw);
+ ult->pntsv == editlatt->pntsv &&
+ ult->pntsw == editlatt->pntsw);
}
static void *get_editlatt(bContext *C)
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 36475eaeaa1..8792803bf0c 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -31,13 +31,10 @@
#include "MEM_guardedalloc.h"
-#include "DNA_action_types.h"
#include "DNA_curve_types.h"
#include "DNA_key_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
#include "DNA_object_force.h"
#include "DNA_scene_types.h"
@@ -178,13 +175,13 @@ int ED_object_modifier_remove(ReportList *reports, Scene *scene, Object *ob, Mod
if(ob->pd)
ob->pd->deflect= 0;
- DAG_scene_sort(scene);
+ DAG_scene_sort(scene);
}
else if(md->type == eModifierType_Surface) {
if(ob->pd && ob->pd->shape == PFIELD_SHAPE_SURFACE)
ob->pd->shape = PFIELD_SHAPE_PLANE;
- DAG_scene_sort(scene);
+ DAG_scene_sort(scene);
}
else if(md->type == eModifierType_Smoke) {
ob->dt = OB_TEXTURE;
@@ -403,50 +400,65 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M
static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, ModifierData *md)
{
+ ModifierTypeInfo *mti= modifierType_getInfo(md->type);
+
+ if (!(md->mode&eModifierMode_Realtime) || (mti->isDisabled && mti->isDisabled(md, 0))) {
+ BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply");
+ return 0;
+ }
+
if (ob->type==OB_MESH) {
DerivedMesh *dm;
Mesh *me = ob->data;
+ MultiresModifierData *mmd= find_multires_modifier_before(scene, md);
+
if( me->key) {
BKE_report(reports, RPT_ERROR, "Modifier cannot be applied to Mesh with Shape Keys");
return 0;
}
-
+
mesh_pmv_off(ob, me);
-
+
/* Multires: ensure that recent sculpting is applied */
if(md->type == eModifierType_Multires)
multires_force_update(ob);
-
- dm = mesh_create_derived_for_modifier(scene, ob, md);
- if (!dm) {
- BKE_report(reports, RPT_ERROR, "Modifier is disabled or returned error, skipping apply");
- return 0;
+
+ if (mmd && mmd->totlvl && mti->type==eModifierTypeType_OnlyDeform) {
+ if(!multiresModifier_reshapeFromDeformMod (scene, mmd, ob, md)) {
+ BKE_report(reports, RPT_ERROR, "Multires modifier returned error, skipping apply");
+ return 0;
+ }
+ } else {
+ dm = mesh_create_derived_for_modifier(scene, ob, md);
+ if (!dm) {
+ BKE_report(reports, RPT_ERROR, "Modifier returned error, skipping apply");
+ return 0;
+ }
+
+ DM_to_mesh(dm, me);
+
+ dm->release(dm);
}
-
- DM_to_mesh(dm, me);
-
- dm->release(dm);
}
else if (ELEM(ob->type, OB_CURVE, OB_SURF)) {
- ModifierTypeInfo *mti = modifierType_getInfo(md->type);
- Curve *cu = ob->data;
+ Curve *cu;
int numVerts;
float (*vertexCos)[3];
-
-
- BKE_report(reports, RPT_INFO, "Applied modifier only changed CV points, not tesselated/bevel vertices");
-
- if (!(md->mode&eModifierMode_Realtime) || (mti->isDisabled && mti->isDisabled(md, 0))) {
- BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply");
+
+ if (mti->type==eModifierTypeType_Constructive) {
+ BKE_report(reports, RPT_ERROR, "Cannot apply constructive modifiers on curve");
return 0;
}
-
+
+ cu = ob->data;
+ BKE_report(reports, RPT_INFO, "Applied modifier only changed CV points, not tesselated/bevel vertices");
+
vertexCos = curve_getVertexCos(cu, &cu->nurb, &numVerts);
mti->deformVerts(md, ob, NULL, vertexCos, numVerts, 0, 0);
curve_applyVertexCos(cu, &cu->nurb, vertexCos);
MEM_freeN(vertexCos);
-
+
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
}
else {
@@ -495,20 +507,12 @@ int ED_object_modifier_copy(ReportList *reports, Object *ob, ModifierData *md)
return 1;
}
-/***************************** OPERATORS ****************************/
-
-static int modifier_poll(bContext *C)
-{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier);
- return (ptr.data != NULL && !((ID*)ptr.id.data)->lib);
-}
-
/************************ add modifier operator *********************/
static int modifier_add_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- Object *ob = CTX_data_active_object(C);
+ Object *ob = ED_object_active_context(C);
int type= RNA_enum_get(op->ptr, "type");
if(!ED_object_modifier_add(op->reports, scene, ob, NULL, type))
@@ -521,7 +525,7 @@ static int modifier_add_exec(bContext *C, wmOperator *op)
static EnumPropertyItem *modifier_add_itemf(bContext *C, PointerRNA *ptr, int *free)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_active_context(C);
EnumPropertyItem *item= NULL, *md_item;
ModifierTypeInfo *mti;
int totitem= 0, a;
@@ -575,16 +579,69 @@ void OBJECT_OT_modifier_add(wmOperatorType *ot)
ot->prop= prop;
}
+/************************ generic functions for operators using mod names and data context *********************/
+
+static int edit_modifier_poll_generic(bContext *C, StructRNA *rna_type)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", rna_type);
+ Object *ob= (ptr.id.data)?ptr.id.data:ED_object_active_context(C);
+
+ if (!ob || ob->id.lib) return 0;
+ if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+
+ return 1;
+}
+
+static int edit_modifier_poll(bContext *C)
+{
+ return edit_modifier_poll_generic(C, &RNA_Modifier);
+}
+
+static void edit_modifier_properties(wmOperatorType *ot)
+{
+ RNA_def_string(ot->srna, "modifier", "", 32, "Modifier", "Name of the modifier to edit");
+}
+
+static int edit_modifier_invoke_properties(bContext *C, wmOperator *op)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier);
+ ModifierData *md;
+
+ if (RNA_property_is_set(op->ptr, "modifier"))
+ return 1;
+
+ if (ptr.data) {
+ md = ptr.data;
+ RNA_string_set(op->ptr, "modifier", md->name);
+ return 1;
+ }
+
+ return 0;
+}
+
+static ModifierData *edit_modifier_property_get(bContext *C, wmOperator *op, Object *ob, int type)
+{
+ char modifier_name[32];
+ ModifierData *md;
+ RNA_string_get(op->ptr, "modifier", modifier_name);
+
+ md = modifiers_findByName(ob, modifier_name);
+
+ if (md && type != 0 && md->type != type)
+ md = NULL;
+
+ return md;
+}
+
/************************ remove modifier operator *********************/
static int modifier_remove_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier);
- Object *ob= ptr.id.data;
- ModifierData *md= ptr.data;
-
- if(!ED_object_modifier_remove(op->reports, scene, ob, md))
+ Object *ob = ED_object_active_context(C);
+ ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
+
+ if(!ob || !md || !ED_object_modifier_remove(op->reports, scene, ob, md))
return OPERATOR_CANCELLED;
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
@@ -592,28 +649,37 @@ static int modifier_remove_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int modifier_remove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return modifier_remove_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_modifier_remove(wmOperatorType *ot)
{
ot->name= "Remove Modifier";
ot->description= "Remove a modifier from the active object";
ot->idname= "OBJECT_OT_modifier_remove";
+ ot->invoke= modifier_remove_invoke;
ot->exec= modifier_remove_exec;
- ot->poll= modifier_poll;
+ ot->poll= edit_modifier_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/************************ move up modifier operator *********************/
static int modifier_move_up_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier);
- Object *ob= ptr.id.data;
- ModifierData *md= ptr.data;
+ Object *ob = ED_object_active_context(C);
+ ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
- if(!ED_object_modifier_move_up(op->reports, ob, md))
+ if(!ob || !md || !ED_object_modifier_move_up(op->reports, ob, md))
return OPERATOR_CANCELLED;
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
@@ -622,26 +688,35 @@ static int modifier_move_up_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int modifier_move_up_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return modifier_move_up_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_modifier_move_up(wmOperatorType *ot)
{
ot->name= "Move Up Modifier";
ot->description= "Move modifier up in the stack";
ot->idname= "OBJECT_OT_modifier_move_up";
+ ot->invoke= modifier_move_up_invoke;
ot->exec= modifier_move_up_exec;
- ot->poll= modifier_poll;
+ ot->poll= edit_modifier_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/************************ move down modifier operator *********************/
static int modifier_move_down_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier);
- Object *ob= ptr.id.data;
- ModifierData *md= ptr.data;
+ Object *ob = ED_object_active_context(C);
+ ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
if(!ob || !md || !ED_object_modifier_move_down(op->reports, ob, md))
return OPERATOR_CANCELLED;
@@ -652,17 +727,27 @@ static int modifier_move_down_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int modifier_move_down_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return modifier_move_down_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_modifier_move_down(wmOperatorType *ot)
{
ot->name= "Move Down Modifier";
ot->description= "Move modifier down in the stack";
ot->idname= "OBJECT_OT_modifier_move_down";
+ ot->invoke= modifier_move_down_invoke;
ot->exec= modifier_move_down_exec;
- ot->poll= modifier_poll;
+ ot->poll= edit_modifier_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/************************ apply modifier operator *********************/
@@ -670,13 +755,13 @@ void OBJECT_OT_modifier_move_down(wmOperatorType *ot)
static int modifier_apply_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier);
- Object *ob= ptr.id.data;
- ModifierData *md= ptr.data;
+ Object *ob = ED_object_active_context(C);
+ ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
int apply_as= RNA_enum_get(op->ptr, "apply_as");
-
- if(!ob || !md || !ED_object_modifier_apply(op->reports, scene, ob, md, apply_as))
+
+ if(!ob || !md || !ED_object_modifier_apply(op->reports, scene, ob, md, apply_as)) {
return OPERATOR_CANCELLED;
+ }
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
@@ -684,6 +769,14 @@ static int modifier_apply_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int modifier_apply_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return modifier_apply_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
static EnumPropertyItem modifier_apply_as_items[] = {
{MODIFIER_APPLY_DATA, "DATA", 0, "Object Data", "Apply modifier to the object's data"},
{MODIFIER_APPLY_SHAPE, "SHAPE", 0, "New Shape", "Apply deform-only modifier to a new shape on this object"},
@@ -695,14 +788,15 @@ void OBJECT_OT_modifier_apply(wmOperatorType *ot)
ot->description= "Apply modifier and remove from the stack";
ot->idname= "OBJECT_OT_modifier_apply";
- //ot->invoke= WM_menu_invoke;
+ ot->invoke= modifier_apply_invoke;
ot->exec= modifier_apply_exec;
- ot->poll= modifier_poll;
+ ot->poll= edit_modifier_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
RNA_def_enum(ot->srna, "apply_as", modifier_apply_as_items, MODIFIER_APPLY_DATA, "Apply as", "How to apply the modifier to the geometry");
+ edit_modifier_properties(ot);
}
/************************ convert modifier operator *********************/
@@ -710,10 +804,9 @@ void OBJECT_OT_modifier_apply(wmOperatorType *ot)
static int modifier_convert_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier);
- Object *ob= ptr.id.data;
- ModifierData *md= ptr.data;
-
+ Object *ob = ED_object_active_context(C);
+ ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
+
if(!ob || !md || !ED_object_modifier_convert(op->reports, scene, ob, md))
return OPERATOR_CANCELLED;
@@ -723,26 +816,35 @@ static int modifier_convert_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int modifier_convert_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return modifier_convert_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_modifier_convert(wmOperatorType *ot)
{
ot->name= "Convert Modifier";
ot->description= "Convert particles to a mesh object";
ot->idname= "OBJECT_OT_modifier_convert";
+ ot->invoke= modifier_convert_invoke;
ot->exec= modifier_convert_exec;
- ot->poll= modifier_poll;
+ ot->poll= edit_modifier_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/************************ copy modifier operator *********************/
static int modifier_copy_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier);
- Object *ob= ptr.id.data;
- ModifierData *md= ptr.data;
+ Object *ob = ED_object_active_context(C);
+ ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
if(!ob || !md || !ED_object_modifier_copy(op->reports, ob, md))
return OPERATOR_CANCELLED;
@@ -753,62 +855,83 @@ static int modifier_copy_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int modifier_copy_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return modifier_copy_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_modifier_copy(wmOperatorType *ot)
{
ot->name= "Copy Modifier";
ot->description= "Duplicate modifier at the same position in the stack";
ot->idname= "OBJECT_OT_modifier_copy";
+ ot->invoke= modifier_copy_invoke;
ot->exec= modifier_copy_exec;
- ot->poll= modifier_poll;
+ ot->poll= edit_modifier_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/************* multires delete higher levels operator ****************/
static int multires_poll(bContext *C)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier);
- ID *id= ptr.id.data;
- return (ptr.data && id && !id->lib);
+ return edit_modifier_poll_generic(C, &RNA_MultiresModifier);
}
static int multires_higher_levels_delete_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier);
- Object *ob= ptr.id.data;
- MultiresModifierData *mmd= ptr.data;
-
- if(mmd) {
- multiresModifier_del_levels(mmd, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
- }
+ Object *ob = ED_object_active_context(C);
+ MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Multires);
+
+ if (!mmd)
+ return OPERATOR_CANCELLED;
+
+ multiresModifier_del_levels(mmd, ob, 1);
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
+static int multires_higher_levels_delete_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return multires_higher_levels_delete_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_multires_higher_levels_delete(wmOperatorType *ot)
{
ot->name= "Delete Higher Levels";
ot->idname= "OBJECT_OT_multires_higher_levels_delete";
ot->poll= multires_poll;
+ ot->invoke= multires_higher_levels_delete_invoke;
ot->exec= multires_higher_levels_delete_exec;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/****************** multires subdivide operator *********************/
static int multires_subdivide_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier);
- Object *ob= ptr.id.data;
- MultiresModifierData *mmd= ptr.data;
-
+ Object *ob = ED_object_active_context(C);
+ MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Multires);
+
+ if (!mmd)
+ return OPERATOR_CANCELLED;
+
multiresModifier_subdivide(mmd, ob, 0, mmd->simple);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
@@ -817,6 +940,14 @@ static int multires_subdivide_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int multires_subdivide_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return multires_subdivide_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_multires_subdivide(wmOperatorType *ot)
{
ot->name= "Multires Subdivide";
@@ -824,25 +955,25 @@ void OBJECT_OT_multires_subdivide(wmOperatorType *ot)
ot->idname= "OBJECT_OT_multires_subdivide";
ot->poll= multires_poll;
+ ot->invoke= multires_subdivide_invoke;
ot->exec= multires_subdivide_exec;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/****************** multires reshape operator *********************/
static int multires_reshape_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier);
- Object *ob= ptr.id.data, *secondob= NULL;
- MultiresModifierData *mmd= ptr.data;
+ Object *ob= ED_object_active_context(C), *secondob= NULL;
+ Scene *scene= CTX_data_scene(C);
+ MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Multires);
- if(ob->derivedFinal == NULL || ob->derivedFinal->type != DM_TYPE_CCGDM) {
- BKE_report(op->reports, RPT_ERROR, "Active objects multires is disabled, can't reshape multires data.");
+ if (!mmd)
return OPERATOR_CANCELLED;
- }
-
+
CTX_DATA_BEGIN(C, Object*, selob, selected_editable_objects) {
if(selob->type == OB_MESH && selob != ob) {
secondob= selob;
@@ -855,18 +986,26 @@ static int multires_reshape_exec(bContext *C, wmOperator *op)
BKE_report(op->reports, RPT_ERROR, "Second selected mesh object require to copy shape from.");
return OPERATOR_CANCELLED;
}
-
- if(!multiresModifier_reshape(mmd, ob, secondob)) {
+
+ if(!multiresModifier_reshape(scene, mmd, ob, secondob)) {
BKE_report(op->reports, RPT_ERROR, "Objects do not have the same number of vertices.");
return OPERATOR_CANCELLED;
}
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
-
+
return OPERATOR_FINISHED;
}
+static int multires_reshape_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return multires_reshape_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_multires_reshape(wmOperatorType *ot)
{
ot->name= "Multires Reshape";
@@ -874,27 +1013,33 @@ void OBJECT_OT_multires_reshape(wmOperatorType *ot)
ot->idname= "OBJECT_OT_multires_reshape";
ot->poll= multires_poll;
+ ot->invoke= multires_reshape_invoke;
ot->exec= multires_reshape_exec;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/****************** multires save external operator *********************/
-static int multires_save_external_exec(bContext *C, wmOperator *op)
+static int multires_external_save_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier);
- Object *ob= ptr.id.data;
+ Object *ob = ED_object_active_context(C);
Mesh *me= (ob)? ob->data: op->customdata;
char path[FILE_MAX];
+ int relative= RNA_boolean_get(op->ptr, "relative_path");
+
+ if(!me)
+ return OPERATOR_CANCELLED;
if(CustomData_external_test(&me->fdata, CD_MDISPS))
return OPERATOR_CANCELLED;
- RNA_string_get(op->ptr, "path", path);
- if(G.save_over)
- BLI_makestringcode(G.sce, path); /* make relative */
+ RNA_string_get(op->ptr, "filepath", path);
+
+ if(relative)
+ BLI_path_rel(path, G.sce);
CustomData_external_add(&me->fdata, &me->id, CD_MDISPS, me->totface, path);
CustomData_external_write(&me->fdata, &me->id, CD_MASK_MESH, me->totface, 0);
@@ -902,51 +1047,63 @@ static int multires_save_external_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int multires_save_external_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int multires_external_save_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier);
- Object *ob= ptr.id.data;
+ Object *ob = ED_object_active_context(C);
+ MultiresModifierData *mmd;
Mesh *me= ob->data;
char path[FILE_MAX];
+ if (!edit_modifier_invoke_properties(C, op))
+ return OPERATOR_CANCELLED;
+
+ mmd = (MultiresModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Multires);
+
+ if (!mmd)
+ return OPERATOR_CANCELLED;
+
if(CustomData_external_test(&me->fdata, CD_MDISPS))
return OPERATOR_CANCELLED;
- if(RNA_property_is_set(op->ptr, "path"))
- return multires_save_external_exec(C, op);
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
+ if(RNA_property_is_set(op->ptr, "filepath"))
+ return multires_external_save_exec(C, op);
op->customdata= me;
BLI_snprintf(path, sizeof(path), "//%s.btx", me->id.name+2);
- RNA_string_set(op->ptr, "path", path);
+ RNA_string_set(op->ptr, "filepath", path);
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
}
-void OBJECT_OT_multires_save_external(wmOperatorType *ot)
+void OBJECT_OT_multires_external_save(wmOperatorType *ot)
{
ot->name= "Multires Save External";
ot->description= "Save displacements to an external file";
- ot->idname= "OBJECT_OT_multires_save_external";
+ ot->idname= "OBJECT_OT_multires_external_save";
+ // XXX modifier no longer in context after file browser .. ot->poll= multires_poll;
+ ot->exec= multires_external_save_exec;
+ ot->invoke= multires_external_save_invoke;
ot->poll= multires_poll;
- ot->exec= multires_save_external_exec;
- ot->invoke= multires_save_external_invoke;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE|BTXFILE, FILE_SPECIAL, FILE_SAVE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|BTXFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
+ edit_modifier_properties(ot);
}
/****************** multires pack operator *********************/
-static int multires_pack_external_exec(bContext *C, wmOperator *op)
+static int multires_external_pack_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MultiresModifier);
- Object *ob= ptr.id.data;
+ Object *ob = ED_object_active_context(C);
Mesh *me= ob->data;
if(!CustomData_external_test(&me->fdata, CD_MDISPS))
@@ -958,14 +1115,14 @@ static int multires_pack_external_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-void OBJECT_OT_multires_pack_external(wmOperatorType *ot)
+void OBJECT_OT_multires_external_pack(wmOperatorType *ot)
{
ot->name= "Multires Pack External";
ot->description= "Pack displacements from an external file";
- ot->idname= "OBJECT_OT_multires_pack_external";
+ ot->idname= "OBJECT_OT_multires_external_pack";
ot->poll= multires_poll;
- ot->exec= multires_pack_external_exec;
+ ot->exec= multires_external_pack_exec;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -975,32 +1132,35 @@ void OBJECT_OT_multires_pack_external(wmOperatorType *ot)
static int meshdeform_poll(bContext *C)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_MeshDeformModifier);
- ID *id= ptr.id.data;
- return (ptr.data && id && !id->lib);
+ return edit_modifier_poll_generic(C, &RNA_MeshDeformModifier);
}
static int meshdeform_bind_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- PointerRNA ptr= CTX_data_pointer_get(C, "modifier");
- Object *ob= ptr.id.data;
- MeshDeformModifierData *mmd= ptr.data;
+ Object *ob = ED_object_active_context(C);
+ MeshDeformModifierData *mmd = (MeshDeformModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_MeshDeform);
+
+ if (!mmd)
+ return OPERATOR_CANCELLED;
- if(mmd->bindcos) {
+ if(mmd->bindcagecos) {
if(mmd->bindweights) MEM_freeN(mmd->bindweights);
- if(mmd->bindcos) MEM_freeN(mmd->bindcos);
+ if(mmd->bindcagecos) MEM_freeN(mmd->bindcagecos);
if(mmd->dyngrid) MEM_freeN(mmd->dyngrid);
if(mmd->dyninfluences) MEM_freeN(mmd->dyninfluences);
if(mmd->dynverts) MEM_freeN(mmd->dynverts);
mmd->bindweights= NULL;
- mmd->bindcos= NULL;
+ mmd->bindcagecos= NULL;
mmd->dyngrid= NULL;
mmd->dyninfluences= NULL;
mmd->dynverts= NULL;
mmd->totvert= 0;
mmd->totcagevert= 0;
mmd->totinfluence= 0;
+
+ DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
}
else {
DerivedMesh *dm;
@@ -1031,6 +1191,14 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int meshdeform_bind_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return meshdeform_bind_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
void OBJECT_OT_meshdeform_bind(wmOperatorType *ot)
{
/* identifiers */
@@ -1040,26 +1208,28 @@ void OBJECT_OT_meshdeform_bind(wmOperatorType *ot)
/* api callbacks */
ot->poll= meshdeform_poll;
+ ot->invoke= meshdeform_bind_invoke;
ot->exec= meshdeform_bind_exec;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
/****************** explode refresh operator *********************/
-static int explode_refresh_poll(bContext *C)
+static int explode_poll(bContext *C)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_ExplodeModifier);
- ID *id= ptr.id.data;
- return (ptr.data && id && !id->lib);
+ return edit_modifier_poll_generic(C, &RNA_ExplodeModifier);
}
static int explode_refresh_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_ExplodeModifier);
- Object *ob= ptr.id.data;
- ExplodeModifierData *emd= ptr.data;
+ Object *ob = ED_object_active_context(C);
+ ExplodeModifierData *emd = (ExplodeModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Explode);
+
+ if (!emd)
+ return OPERATOR_CANCELLED;
emd->flag |= eExplodeFlag_CalcFaces;
@@ -1069,16 +1239,27 @@ static int explode_refresh_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int explode_refresh_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return explode_refresh_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
+
void OBJECT_OT_explode_refresh(wmOperatorType *ot)
{
ot->name= "Explode Refresh";
ot->description= "Refresh data in the Explode modifier";
ot->idname= "OBJECT_OT_explode_refresh";
+ ot->poll= explode_poll;
+ ot->invoke= explode_refresh_invoke;
ot->exec= explode_refresh_exec;
- ot->poll= explode_refresh_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
}
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index ab50bd4c37c..ba706a0d4b9 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -33,11 +33,6 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -79,6 +74,8 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_proxy_make);
WM_operatortype_append(OBJECT_OT_restrictview_clear);
WM_operatortype_append(OBJECT_OT_restrictview_set);
+ WM_operatortype_append(OBJECT_OT_restrictrender_clear);
+ WM_operatortype_append(OBJECT_OT_restrictrender_set);
WM_operatortype_append(OBJECT_OT_shade_smooth);
WM_operatortype_append(OBJECT_OT_shade_flat);
WM_operatortype_append(OBJECT_OT_paths_calculate);
@@ -101,6 +98,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_select_inverse);
WM_operatortype_append(OBJECT_OT_select_random);
WM_operatortype_append(OBJECT_OT_select_all);
+ WM_operatortype_append(OBJECT_OT_select_same_group);
WM_operatortype_append(OBJECT_OT_select_by_type);
WM_operatortype_append(OBJECT_OT_select_by_layer);
WM_operatortype_append(OBJECT_OT_select_linked);
@@ -114,9 +112,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(GROUP_OT_objects_remove_active);
WM_operatortype_append(OBJECT_OT_delete);
- WM_operatortype_append(OBJECT_OT_curve_add);
WM_operatortype_append(OBJECT_OT_text_add);
- WM_operatortype_append(OBJECT_OT_surface_add);
WM_operatortype_append(OBJECT_OT_armature_add);
WM_operatortype_append(OBJECT_OT_lamp_add);
WM_operatortype_append(OBJECT_OT_camera_add);
@@ -141,8 +137,8 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_multires_subdivide);
WM_operatortype_append(OBJECT_OT_multires_reshape);
WM_operatortype_append(OBJECT_OT_multires_higher_levels_delete);
- WM_operatortype_append(OBJECT_OT_multires_save_external);
- WM_operatortype_append(OBJECT_OT_multires_pack_external);
+ WM_operatortype_append(OBJECT_OT_multires_external_save);
+ WM_operatortype_append(OBJECT_OT_multires_external_pack);
WM_operatortype_append(OBJECT_OT_meshdeform_bind);
WM_operatortype_append(OBJECT_OT_explode_refresh);
@@ -150,6 +146,8 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_constraint_add_with_targets);
WM_operatortype_append(POSE_OT_constraint_add);
WM_operatortype_append(POSE_OT_constraint_add_with_targets);
+ WM_operatortype_append(OBJECT_OT_constraints_copy);
+ WM_operatortype_append(POSE_OT_constraints_copy);
WM_operatortype_append(OBJECT_OT_constraints_clear);
WM_operatortype_append(POSE_OT_constraints_clear);
WM_operatortype_append(POSE_OT_ik_add);
@@ -180,9 +178,13 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_vertex_group_mirror);
WM_operatortype_append(OBJECT_OT_vertex_group_set_active);
WM_operatortype_append(OBJECT_OT_vertex_group_sort);
+ WM_operatortype_append(OBJECT_OT_vertex_group_move);
WM_operatortype_append(OBJECT_OT_game_property_new);
WM_operatortype_append(OBJECT_OT_game_property_remove);
+ WM_operatortype_append(OBJECT_OT_game_property_copy);
+ WM_operatortype_append(OBJECT_OT_game_property_clear);
+ WM_operatortype_append(OBJECT_OT_logic_bricks_copy);
WM_operatortype_append(OBJECT_OT_shape_key_add);
WM_operatortype_append(OBJECT_OT_shape_key_remove);
@@ -194,6 +196,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(LATTICE_OT_make_regular);
WM_operatortype_append(OBJECT_OT_group_add);
+ WM_operatortype_append(OBJECT_OT_group_link);
WM_operatortype_append(OBJECT_OT_group_remove);
WM_operatortype_append(OBJECT_OT_hook_add_selobj);
@@ -279,7 +282,7 @@ void ED_keymap_object(wmKeyConfig *keyconf)
keymap->poll= object_mode_poll;
/* object mode supports PET now */
- ED_object_generic_keymap(keyconf, keymap, TRUE);
+ ED_object_generic_keymap(keyconf, keymap, 1);
WM_keymap_add_item(keymap, "VIEW3D_OT_game_start", PKEY, KM_PRESS, 0, 0);
@@ -319,10 +322,16 @@ void ED_keymap_object(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "OBJECT_OT_restrictview_set", HKEY, KM_PRESS, 0, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_restrictview_set", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "unselected", 1);
+ /* same as above but for rendering */
+ WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_clear", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_set", HKEY, KM_PRESS, KM_CTRL, 0);
+// RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_set", HKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0)->ptr, "unselected", 1); // conflicts, removing
+
WM_keymap_add_item(keymap, "OBJECT_OT_move_to_layer", MKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "OBJECT_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_menu(keymap, "INFO_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "OBJECT_OT_duplicates_make_real", AKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
@@ -342,6 +351,7 @@ void ED_keymap_object(wmKeyConfig *keyconf)
// XXX this should probably be in screen instead... here for testing purposes in the meantime... - Aligorith
WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_insert_menu", IKEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_delete_v3d", IKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0);
WM_keymap_verify_item(keymap, "GROUP_OT_create", GKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove", GKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
@@ -366,7 +376,7 @@ void ED_keymap_object(wmKeyConfig *keyconf)
/* menus */
WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0);
- ED_object_generic_keymap(keyconf, keymap, TRUE);
+ ED_object_generic_keymap(keyconf, keymap, 1);
}
void ED_object_generic_keymap(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap, int do_pet)
@@ -374,20 +384,23 @@ void ED_object_generic_keymap(struct wmKeyConfig *keyconf, struct wmKeyMap *keym
wmKeyMapItem *kmi;
/* used by mesh, curve & lattice only */
- if(do_pet) {
+ if(do_pet > 0) {
/* context ops */
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_enum", OKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.proportional_editing_falloff");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportional_editing_falloff");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.proportional_editing");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportional_editing");
RNA_string_set(kmi->ptr, "value_1", "DISABLED");
RNA_string_set(kmi->ptr, "value_2", "ENABLED");
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, KM_ALT, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.proportional_editing");
- RNA_string_set(kmi->ptr, "value_1", "DISABLED");
- RNA_string_set(kmi->ptr, "value_2", "CONNECTED");
+ /* for modes/object types that allow 'conencted' mode, add the Alt O key */
+ if (do_pet > 1) {
+ kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, KM_ALT, 0);
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportional_editing");
+ RNA_string_set(kmi->ptr, "value_1", "DISABLED");
+ RNA_string_set(kmi->ptr, "value_2", "CONNECTED");
+ }
}
}
diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index 3233954748a..cc9df09dc38 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -32,20 +32,14 @@
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_curve_types.h"
#include "DNA_group_types.h"
#include "DNA_lamp_types.h"
#include "DNA_lattice_types.h"
#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
-#include "DNA_object_types.h"
#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
-#include "DNA_view3d_types.h"
#include "DNA_world_types.h"
#include "BLI_math.h"
@@ -87,7 +81,6 @@
#include "RNA_define.h"
#include "RNA_enum_types.h"
-#include "ED_anim_api.h"
#include "ED_armature.h"
#include "ED_curve.h"
#include "ED_object.h"
@@ -197,7 +190,7 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if(ob != obedit) {
- ob->recalc |= OB_RECALC;
+ ob->recalc |= OB_RECALC_ALL;
par= obedit->parent;
while(par) {
@@ -283,7 +276,7 @@ static int make_proxy_invoke (bContext *C, wmOperator *op, wmEvent *evt)
PointerRNA props_ptr;
/* create operator menu item with relevant properties filled in */
- props_ptr= uiItemFullO(layout, op->type->name, 0, op->idname, NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS);
+ props_ptr= uiItemFullO(layout, op->idname, op->type->name, 0, NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS);
/* present the menu and be done... */
uiPupMenuEnd(C, pup);
@@ -343,7 +336,7 @@ static int make_proxy_exec (bContext *C, wmOperator *op)
/* depsgraph flushes are needed for the new data */
DAG_scene_sort(scene);
- DAG_id_flush_update(&newob->id, OB_RECALC);
+ DAG_id_flush_update(&newob->id, OB_RECALC_ALL);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, newob);
}
else {
@@ -409,7 +402,7 @@ void OBJECT_OT_proxy_make (wmOperatorType *ot)
static EnumPropertyItem prop_clear_parent_types[] = {
{0, "CLEAR", 0, "Clear Parent", ""},
- {1, "CLEAR_KEEP_TRANSFORM", 0, "Clear and Keep Transformation (Clear Track)", ""},
+ {1, "CLEAR_KEEP_TRANSFORM", 0, "Clear and Keep Transformation", ""},
{2, "CLEAR_INVERSE", 0, "Clear Parent Inverse", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -426,13 +419,12 @@ static int parent_clear_exec(bContext *C, wmOperator *op)
}
else if(type == 1) {
ob->parent= NULL;
- ob->track= NULL;
- ED_object_apply_obmat(ob);
+ object_apply_mat4(ob, ob->obmat);
}
else if(type == 2)
unit_m4(ob->parentinv);
- ob->recalc |= OB_RECALC;
+ ob->recalc |= OB_RECALC_ALL;
}
CTX_DATA_END;
@@ -569,7 +561,7 @@ static int parent_set_exec(bContext *C, wmOperator *op)
Object workob;
/* apply transformation of previous parenting */
- ED_object_apply_obmat(ob);
+ object_apply_mat4(ob, ob->obmat);
/* set the parent (except for follow-path constraint option) */
if(partype != PAR_PATH_CONST)
@@ -676,23 +668,23 @@ static int parent_set_invoke(bContext *C, wmOperator *op, wmEvent *event)
uiLayout *layout= uiPupMenuLayout(pup);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_OBJECT);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_OBJECT);
/* ob becomes parent, make the associated menus */
if(ob->type==OB_ARMATURE) {
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_ARMATURE);
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_ARMATURE_NAME);
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_ARMATURE_ENVELOPE);
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_ARMATURE_AUTO);
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_BONE);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_NAME);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_ENVELOPE);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_AUTO);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_BONE);
}
else if(ob->type==OB_CURVE) {
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_CURVE);
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_FOLLOW);
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_PATH_CONST);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_CURVE);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_FOLLOW);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_PATH_CONST);
}
else if(ob->type == OB_LATTICE) {
- uiItemEnumO(layout, NULL, 0, "OBJECT_OT_parent_set", "type", PAR_LATTICE);
+ uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_LATTICE);
}
uiPupMenuEnd(C, pup);
@@ -874,7 +866,7 @@ static int object_track_clear_exec(bContext *C, wmOperator *op)
/* remove track-object for old track */
ob->track= NULL;
- ob->recalc |= OB_RECALC;
+ ob->recalc |= OB_RECALC_ALL;
/* also remove all tracking constraints */
for (con= ob->constraints.last; con; con= pcon) {
@@ -884,7 +876,7 @@ static int object_track_clear_exec(bContext *C, wmOperator *op)
}
if(type == 1)
- ED_object_apply_obmat(ob);
+ object_apply_mat4(ob, ob->obmat);
}
CTX_DATA_END;
@@ -920,7 +912,6 @@ static EnumPropertyItem prop_make_track_types[] = {
{1, "DAMPTRACK", 0, "Damped Track Constraint", ""},
{2, "TRACKTO", 0, "Track To Constraint", ""},
{3, "LOCKTRACK", 0, "Lock Track Constraint", ""},
- {4, "OLDTRACK", 0, "Old Track", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -941,7 +932,7 @@ static int track_set_exec(bContext *C, wmOperator *op)
data = con->data;
data->tar = obact;
- ob->recalc |= OB_RECALC;
+ ob->recalc |= OB_RECALC_ALL;
/* Lamp and Camera track differently by default */
if (ob->type == OB_LAMP || ob->type == OB_CAMERA)
@@ -960,7 +951,7 @@ static int track_set_exec(bContext *C, wmOperator *op)
data = con->data;
data->tar = obact;
- ob->recalc |= OB_RECALC;
+ ob->recalc |= OB_RECALC_ALL;
/* Lamp and Camera track differently by default */
if (ob->type == OB_LAMP || ob->type == OB_CAMERA) {
@@ -981,7 +972,7 @@ static int track_set_exec(bContext *C, wmOperator *op)
data = con->data;
data->tar = obact;
- ob->recalc |= OB_RECALC;
+ ob->recalc |= OB_RECALC_ALL;
/* Lamp and Camera track differently by default */
if (ob->type == OB_LAMP || ob->type == OB_CAMERA) {
@@ -992,15 +983,6 @@ static int track_set_exec(bContext *C, wmOperator *op)
}
CTX_DATA_END;
}
- else {
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
- if(ob!=obact) {
- ob->track= obact;
- ob->recalc |= OB_RECALC;
- }
- }
- CTX_DATA_END;
- }
DAG_scene_sort(scene);
DAG_ids_flush_update(0);
@@ -1161,7 +1143,7 @@ void link_to_scene(unsigned short nr)
static int make_links_scene_exec(bContext *C, wmOperator *op)
{
- Scene *scene_to= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "type"));
+ Scene *scene_to= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "scene"));
if(scene_to==NULL) {
BKE_report(op->reports, RPT_ERROR, "Scene not found");
@@ -1203,6 +1185,30 @@ enum {
MAKE_LINKS_MODIFIERS
};
+/* Return 1 if make link data is allow, zero otherwise */
+static int allow_make_links_data(int ev, Object *ob, Object *obt)
+{
+ switch(ev) {
+ case MAKE_LINKS_OBDATA:
+ if (ob->type == obt->type && ob->type != OB_EMPTY)
+ return 1;
+ break;
+ case MAKE_LINKS_MATERIALS:
+ if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_FONT, OB_SURF, OB_MBALL) &&
+ ELEM5(obt->type, OB_MESH, OB_CURVE, OB_FONT, OB_SURF, OB_MBALL))
+ return 1;
+ break;
+ case MAKE_LINKS_ANIMDATA:
+ case MAKE_LINKS_DUPLIGROUP:
+ return 1;
+ case MAKE_LINKS_MODIFIERS:
+ if (ob->type != OB_EMPTY && obt->type != OB_EMPTY)
+ return 1;
+ break;
+ }
+ return 0;
+}
+
static int make_links_data_exec(bContext *C, wmOperator *op)
{
int event = RNA_int_get(op->ptr, "type");
@@ -1214,43 +1220,44 @@ static int make_links_data_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Object*, obt, selected_editable_objects) {
if(ob != obt) {
- switch(event) {
- case MAKE_LINKS_OBDATA: /* obdata */
- id= obt->data;
- id->us--;
+ if (allow_make_links_data(event, ob, obt)) {
+ switch(event) {
+ case MAKE_LINKS_OBDATA: /* obdata */
+ id= obt->data;
+ id->us--;
- id= ob->data;
- id_us_plus(id);
- obt->data= id;
+ id= ob->data;
+ id_us_plus(id);
+ obt->data= id;
- /* if amount of material indices changed: */
- test_object_materials(obt->data);
+ /* if amount of material indices changed: */
+ test_object_materials(obt->data);
- obt->recalc |= OB_RECALC_DATA;
- break;
- case MAKE_LINKS_MATERIALS:
- /* new approach, using functions from kernel */
- for(a=0; a<ob->totcol; a++) {
- Material *ma= give_current_material(ob, a+1);
- assign_material(obt, ma, a+1); /* also works with ma==NULL */
- }
- break;
- case MAKE_LINKS_ANIMDATA:
- BKE_copy_animdata_id((ID *)obt, (ID *)ob);
- BKE_copy_animdata_id((ID *)obt->data, (ID *)ob->data);
- break;
- case MAKE_LINKS_DUPLIGROUP:
- if(ob->dup_group) ob->dup_group->id.us--;
+ obt->recalc |= OB_RECALC_DATA;
+ break;
+ case MAKE_LINKS_MATERIALS:
+ /* new approach, using functions from kernel */
+ for(a=0; a<ob->totcol; a++) {
+ Material *ma= give_current_material(ob, a+1);
+ assign_material(obt, ma, a+1); /* also works with ma==NULL */
+ }
+ break;
+ case MAKE_LINKS_ANIMDATA:
+ BKE_copy_animdata_id((ID *)obt, (ID *)ob);
+ BKE_copy_animdata_id((ID *)obt->data, (ID *)ob->data);
+ break;
+ case MAKE_LINKS_DUPLIGROUP:
obt->dup_group= ob->dup_group;
if(obt->dup_group) {
- id_us_plus((ID *)obt->dup_group);
+ id_lib_extern(&obt->dup_group->id);
obt->transflag |= OB_DUPLIGROUP;
}
- break;
- case MAKE_LINKS_MODIFIERS:
- object_link_modifiers(obt, ob);
- obt->recalc |= OB_RECALC;
- break;
+ break;
+ case MAKE_LINKS_MODIFIERS:
+ object_link_modifiers(obt, ob);
+ obt->recalc |= OB_RECALC_ALL;
+ break;
+ }
}
}
}
@@ -1279,8 +1286,9 @@ void OBJECT_OT_make_links_scene(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, 0, "Type", "");
- RNA_def_enum_funcs(prop, RNA_scene_itemf);
+ prop= RNA_def_enum(ot->srna, "scene", DummyRNA_NULL_items, 0, "Scene", "");
+ RNA_def_enum_funcs(prop, RNA_scene_local_itemf);
+ ot->prop= prop;
}
void OBJECT_OT_make_links_data(wmOperatorType *ot)
@@ -1357,7 +1365,6 @@ void single_object_users(Scene *scene, View3D *v3d, int flag)
modifiers_foreachObjectLink(base->object, single_object_users__forwardModifierLinks, NULL);
ID_NEW(ob->parent);
- ID_NEW(ob->track);
}
}
@@ -1678,13 +1685,13 @@ static void single_mat_users_expand(void)
/* used for copying scenes */
void ED_object_single_users(Scene *scene, int full)
{
- single_object_users(scene, NULL, 0);
+ single_object_users(scene, NULL, 0);
- if(full) {
- single_obdata_users(scene, 0);
- single_mat_users_expand();
- single_tex_users_expand();
- }
+ if(full) {
+ single_obdata_users(scene, 0);
+ single_mat_users_expand();
+ single_tex_users_expand();
+ }
clear_id_newpoins();
}
@@ -1726,22 +1733,21 @@ static int make_local_exec(bContext *C, wmOperator *op)
clear_id_newpoins();
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
+ CTX_DATA_BEGIN(C, Object*, ob, selected_objects) {
if(ob->id.lib)
id_make_local(&ob->id, 0);
}
CTX_DATA_END;
/* maybe object pointers */
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
+ CTX_DATA_BEGIN(C, Object*, ob, selected_objects) {
if(ob->id.lib==NULL) {
ID_NEW(ob->parent);
- ID_NEW(ob->track);
}
}
CTX_DATA_END;
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
+ CTX_DATA_BEGIN(C, Object*, ob, selected_objects) {
id= ob->data;
if(id && mode>1) {
@@ -1759,7 +1765,7 @@ static int make_local_exec(bContext *C, wmOperator *op)
CTX_DATA_END;
if(mode>1) {
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
+ CTX_DATA_BEGIN(C, Object*, ob, selected_objects) {
if(ob->type==OB_LAMP) {
la= ob->data;
@@ -1824,7 +1830,7 @@ static int make_single_user_exec(bContext *C, wmOperator *op)
int flag= RNA_enum_get(op->ptr, "type"); /* 0==ALL, SELECTED==selected objecs */
if(RNA_boolean_get(op->ptr, "object"))
- single_object_users(scene, v3d, flag);
+ single_object_users(scene, v3d, flag);
if(RNA_boolean_get(op->ptr, "obdata"))
single_obdata_users(scene, flag);
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index b3c104dcb56..8e3d613e02e 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -35,10 +35,8 @@
#include "DNA_group_types.h"
#include "DNA_material_types.h"
#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
#include "DNA_property_types.h"
#include "DNA_scene_types.h"
-#include "DNA_texture_types.h"
#include "BLI_math.h"
#include "BLI_listbase.h"
@@ -47,7 +45,6 @@
#include "BKE_context.h"
#include "BKE_depsgraph.h"
-#include "BKE_global.h"
#include "BKE_group.h"
#include "BKE_main.h"
#include "BKE_material.h"
@@ -60,9 +57,10 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_object.h"
#include "ED_screen.h"
+#include "UI_interface.h"
+
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
@@ -164,11 +162,13 @@ void OBJECT_OT_select_by_type(wmOperatorType *ot)
static EnumPropertyItem prop_select_linked_types[] = {
//{1, "IPO", 0, "Object IPO", ""}, // XXX depreceated animation system stuff...
- {2, "OBDATA", 0, "Ob Data", ""},
+ {2, "OBDATA", 0, "Object Data", ""},
{3, "MATERIAL", 0, "Material", ""},
{4, "TEXTURE", 0, "Texture", ""},
{5, "DUPGROUP", 0, "Dupligroup", ""},
{6, "PARTICLE", 0, "Particle System", ""},
+ {7, "LIBRARY", 0, "Library", ""},
+ {8, "LIBRARY_OBDATA", 0, "Library (Object Data)", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -201,7 +201,7 @@ static int object_select_linked_exec(bContext *C, wmOperator *op)
}
ob= OBACT;
- if(ob==0){
+ if(ob==NULL){
BKE_report(op->reports, RPT_ERROR, "No Active Object");
return OPERATOR_CANCELLED;
}
@@ -230,7 +230,14 @@ static int object_select_linked_exec(bContext *C, wmOperator *op)
else if(nr==6) {
if(ob->particlesystem.first==NULL) return OPERATOR_CANCELLED;
}
- else return OPERATOR_CANCELLED;
+ else if(nr==7) {
+ /* do nothing */
+ }
+ else if(nr==8) {
+ if(ob->data==NULL) return OPERATOR_CANCELLED;
+ }
+ else
+ return OPERATOR_CANCELLED;
CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
if(nr==1) {
@@ -289,6 +296,18 @@ static int object_select_linked_exec(bContext *C, wmOperator *op)
}
}
}
+ else if(nr==7) {
+ if(ob->id.lib == base->object->id.lib) {
+ base->flag |= SELECT;
+ changed= 1;
+ }
+ }
+ else if(nr==8) {
+ if(base->object->data && ((ID *)ob->data)->lib == ((ID *)base->object->data)->lib) {
+ base->flag |= SELECT;
+ changed= 1;
+ }
+ }
base->object->flag= base->flag;
}
CTX_DATA_END;
@@ -385,14 +404,11 @@ static short select_grouped_group(bContext *C, Object *ob) /* Select objects in
{
short changed = 0;
Group *group, *ob_groups[GROUP_MENU_MAX];
- //char str[10 + (24*GROUP_MENU_MAX)];
- //char *p = str;
- int group_count=0; //, menu, i;
-
- for ( group=G.main->group.first;
- group && group_count < GROUP_MENU_MAX;
- group=group->id.next
- ) {
+ int group_count=0, i;
+ uiPopupMenu *pup;
+ uiLayout *layout;
+
+ for (group=CTX_data_main(C)->group.first; group && group_count < GROUP_MENU_MAX; group=group->id.next) {
if (object_in_group (ob, group)) {
ob_groups[group_count] = group;
group_count++;
@@ -401,7 +417,6 @@ static short select_grouped_group(bContext *C, Object *ob) /* Select objects in
if (!group_count)
return 0;
-
else if (group_count == 1) {
group = ob_groups[0];
CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
@@ -413,27 +428,18 @@ static short select_grouped_group(bContext *C, Object *ob) /* Select objects in
CTX_DATA_END;
return changed;
}
-#if 0 // XXX hows this work in 2.5?
+
/* build the menu. */
- p += sprintf(str, "Groups%%t");
+ pup= uiPupMenuBegin(C, "Select Group", 0);
+ layout= uiPupMenuLayout(pup);
+
for (i=0; i<group_count; i++) {
group = ob_groups[i];
- p += sprintf (p, "|%s%%x%i", group->id.name+2, i);
+ uiItemStringO(layout, group->id.name+2, 0, "OBJECT_OT_select_same_group", "group", group->id.name);
}
- menu = pupmenu (str);
- if (menu == -1)
- return 0;
-
- group = ob_groups[menu];
- for (base= FIRSTBASE; base; base= base->next) {
- if (!(base->flag & SELECT) && object_in_group(base->object, group)) {
- ED_base_object_select(base, BA_SELECT);
- changed = 1;
- }
- }
-#endif
- return changed;
+ uiPupMenuEnd(C, pup);
+ return changed; // The operator already handle this!
}
static short select_grouped_object_hooks(bContext *C, Object *ob)
@@ -768,6 +774,55 @@ void OBJECT_OT_select_all(wmOperatorType *ot)
WM_operator_properties_select_all(ot);
}
+/**************************** Select In The Same Group ****************************/
+
+static int object_select_same_group_exec(bContext *C, wmOperator *op)
+{
+ Group *group;
+ char group_name[32];
+
+ /* passthrough if no objects are visible */
+ if (CTX_DATA_COUNT(C, visible_bases) == 0) return OPERATOR_PASS_THROUGH;
+
+ RNA_string_get(op->ptr, "group", group_name);
+
+ for (group=CTX_data_main(C)->group.first; group; group=group->id.next) {
+ if (!strcmp(group->id.name, group_name))
+ break;
+ }
+
+ if (!group)
+ return OPERATOR_PASS_THROUGH;
+
+ CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
+ if (!(base->flag & SELECT) && object_in_group(base->object, group))
+ ED_base_object_select(base, BA_SELECT);
+ }
+ CTX_DATA_END;
+
+ WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C));
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_select_same_group(wmOperatorType *ot)
+{
+
+ /* identifiers */
+ ot->name= "select same group";
+ ot->description = "Select object in the same group";
+ ot->idname= "OBJECT_OT_select_same_group";
+
+ /* api callbacks */
+ ot->exec= object_select_same_group_exec;
+ ot->poll= ED_operator_scene_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_string(ot->srna, "group", "", 32, "Group", "Name of the group to select.");
+}
+
/**************************** Select Mirror ****************************/
/* finds the best possible flipped name. For renaming; check for unique names afterwards */
@@ -944,7 +999,9 @@ static int object_select_name_exec(bContext *C, wmOperator *op)
}
CTX_DATA_BEGIN(C, Base*, base, selectable_bases) {
+ /* this is a bit dodjy, there should only be ONE object with this name, but library objects can mess this up */
if(strcmp(name, base->object->id.name+2)==0) {
+ ED_base_object_activate(C, base);
ED_base_object_select(base, BA_SELECT);
changed= 1;
}
diff --git a/source/blender/editors/object/object_shapekey.c b/source/blender/editors/object/object_shapekey.c
index 3cf29cd3eaf..6735d07b591 100644
--- a/source/blender/editors/object/object_shapekey.c
+++ b/source/blender/editors/object/object_shapekey.c
@@ -39,19 +39,12 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "DNA_action_types.h"
#include "DNA_curve_types.h"
-#include "DNA_ipo_types.h"
#include "DNA_key_types.h"
#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view2d_types.h"
#include "BKE_action.h"
#include "BKE_anim.h"
@@ -69,7 +62,6 @@
#include "BLO_sys_types.h" // for intptr_t support
-#include "ED_object.h"
#include "ED_mesh.h"
#include "RNA_access.h"
diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index 0faca76e881..50764aeb192 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -29,16 +29,11 @@
#include <string.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_curve_types.h"
#include "DNA_key_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_view3d_types.h"
#include "BLI_math.h"
#include "BLI_editVert.h"
@@ -61,12 +56,10 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_anim_api.h"
#include "ED_armature.h"
#include "ED_curve.h"
#include "ED_keyframing.h"
#include "ED_mesh.h"
-#include "ED_object.h"
#include "ED_screen.h"
#include "ED_view3d.h"
@@ -76,32 +69,35 @@
static int object_location_clear_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
-
+ Scene *scene = CTX_data_scene(C);
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
/* clear location of selected objects if not in weight-paint mode */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
- if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
- if((ob->protectflag & OB_LOCK_LOCX)==0)
+ if (!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
+ /* clear location if not locked */
+ if ((ob->protectflag & OB_LOCK_LOCX)==0)
ob->loc[0]= ob->dloc[0]= 0.0f;
- if((ob->protectflag & OB_LOCK_LOCY)==0)
+ if ((ob->protectflag & OB_LOCK_LOCY)==0)
ob->loc[1]= ob->dloc[1]= 0.0f;
- if((ob->protectflag & OB_LOCK_LOCZ)==0)
+ if ((ob->protectflag & OB_LOCK_LOCZ)==0)
ob->loc[2]= ob->dloc[2]= 0.0f;
- /* do auto-keyframing as appropriate */
+ /* auto keyframing */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* init cks for this object, then use the relative KeyingSets to keyframe it */
- cks.id= &ob->id;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ ListBase dsources = {NULL, NULL};
+
+ /* now insert the keyframe(s) using the Keying Set
+ * 1) add datasource override for the PoseChannel
+ * 2) insert keyframes
+ * 3) free the extra info
+ */
+ ANIM_relative_keyingset_add_source(&dsources, &ob->id, NULL, NULL);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ BLI_freelistN(&dsources);
}
}
+
ob->recalc |= OB_RECALC_OB;
}
CTX_DATA_END;
@@ -132,17 +128,12 @@ void OBJECT_OT_location_clear(wmOperatorType *ot)
static int object_rotation_clear_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
-
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
/* clear rotation of selected objects if not in weight-paint mode */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
+ /* clear rotations that aren't locked */
if (ob->protectflag & (OB_LOCK_ROTX|OB_LOCK_ROTY|OB_LOCK_ROTZ|OB_LOCK_ROTW)) {
if (ob->protectflag & OB_LOCK_ROT4D) {
/* perform clamping on a component by component basis */
@@ -218,7 +209,7 @@ static int object_rotation_clear_exec(bContext *C, wmOperator *op)
VECCOPY(ob->rot, eul);
}
}
- }
+ } // Duplicated in source/blender/editors/armature/editarmature.c
else {
if (ob->rotmode == ROT_MODE_QUAT) {
ob->quat[1]=ob->quat[2]=ob->quat[3]= 0.0f;
@@ -234,13 +225,21 @@ static int object_rotation_clear_exec(bContext *C, wmOperator *op)
}
}
- /* do auto-keyframing as appropriate */
+ /* auto keyframing */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* init cks for this object, then use the relative KeyingSets to keyframe it */
- cks.id= &ob->id;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ ListBase dsources = {NULL, NULL};
+
+ /* now insert the keyframe(s) using the Keying Set
+ * 1) add datasource override for the PoseChannel
+ * 2) insert keyframes
+ * 3) free the extra info
+ */
+ ANIM_relative_keyingset_add_source(&dsources, &ob->id, NULL, NULL);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ BLI_freelistN(&dsources);
}
}
+
ob->recalc |= OB_RECALC_OB;
}
CTX_DATA_END;
@@ -271,35 +270,37 @@ void OBJECT_OT_rotation_clear(wmOperatorType *ot)
static int object_scale_clear_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
-
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Scaling");
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
-
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
/* clear scales of selected objects if not in weight-paint mode */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
- if((ob->protectflag & OB_LOCK_SCALEX)==0) {
+ /* clear scale factors which are not locked */
+ if ((ob->protectflag & OB_LOCK_SCALEX)==0) {
ob->dsize[0]= 0.0f;
ob->size[0]= 1.0f;
}
- if((ob->protectflag & OB_LOCK_SCALEY)==0) {
+ if ((ob->protectflag & OB_LOCK_SCALEY)==0) {
ob->dsize[1]= 0.0f;
ob->size[1]= 1.0f;
}
- if((ob->protectflag & OB_LOCK_SCALEZ)==0) {
+ if ((ob->protectflag & OB_LOCK_SCALEZ)==0) {
ob->dsize[2]= 0.0f;
ob->size[2]= 1.0f;
}
- /* do auto-keyframing as appropriate */
+ /* auto keyframing */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* init cks for this object, then use the relative KeyingSets to keyframe it */
- cks.id= &ob->id;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ ListBase dsources = {NULL, NULL};
+
+ /* now insert the keyframe(s) using the Keying Set
+ * 1) add datasource override for the PoseChannel
+ * 2) insert keyframes
+ * 3) free the extra info
+ */
+ ANIM_relative_keyingset_add_source(&dsources, &ob->id, NULL, NULL);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ BLI_freelistN(&dsources);
}
}
ob->recalc |= OB_RECALC_OB;
@@ -385,7 +386,7 @@ static void ignore_parent_tx(Main *bmain, Scene *scene, Object *ob )
/* a change was made, adjust the children to compensate */
for(ob_child=bmain->object.first; ob_child; ob_child=ob_child->id.next) {
if(ob_child->parent == ob) {
- ED_object_apply_obmat(ob_child);
+ object_apply_mat4(ob_child, ob_child->obmat);
what_does_parent(scene, ob_child, &workob);
invert_m4_m4(ob_child->parentinv, workob.obmat);
}
@@ -432,6 +433,10 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
BKE_report(reports, RPT_ERROR, "Can't apply to a multi user curve, doing nothing.");
return OPERATOR_CANCELLED;
}
+ if(!(cu->flag & CU_3D) && (apply_rot || apply_loc)) {
+ BKE_report(reports, RPT_ERROR, "Neither rotation nor location could be applied to a 2d curve, doing nothing.");
+ return OPERATOR_CANCELLED;
+ }
if(cu->key) {
BKE_report(reports, RPT_ERROR, "Can't apply to a curve with vertex keys, doing nothing.");
return OPERATOR_CANCELLED;
@@ -498,7 +503,7 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
cu= ob->data;
scale = mat3_to_scale(rsmat);
-
+
for(nu=cu->nurb.first; nu; nu=nu->next) {
if(nu->type == CU_BEZIER) {
a= nu->pntsu;
@@ -759,7 +764,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
}
BM_ITER(eve, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
- sub_v3_v3v3(eve->co, eve->co, cent);
+ sub_v3_v3(eve->co, cent);
}
EDBM_RecalcNormals(em);
@@ -804,7 +809,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
mvert= me->mvert;
for(a=0; a<me->totvert; a++, mvert++) {
- sub_v3_v3v3(mvert->co, mvert->co, cent);
+ sub_v3_v3(mvert->co, cent);
}
if (me->key) {
@@ -813,7 +818,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
float *fp= kb->data;
for (a=0; a<kb->totelem; a++, fp+=3) {
- sub_v3_v3v3(fp, fp, cent);
+ sub_v3_v3(fp, cent);
}
}
}
@@ -855,7 +860,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
if(tme && (tme->flag & ME_ISDONE)==0) {
mvert= tme->mvert;
for(a=0; a<tme->totvert; a++, mvert++) {
- sub_v3_v3v3(mvert->co, mvert->co, cent);
+ sub_v3_v3(mvert->co, cent);
}
if (tme->key) {
@@ -864,7 +869,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
float *fp= kb->data;
for (a=0; a<kb->totelem; a++, fp+=3) {
- sub_v3_v3v3(fp, fp, cent);
+ sub_v3_v3(fp, cent);
}
}
}
@@ -924,15 +929,15 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
if(nu->type == CU_BEZIER) {
a= nu->pntsu;
while (a--) {
- sub_v3_v3v3(nu->bezt[a].vec[0], nu->bezt[a].vec[0], cent);
- sub_v3_v3v3(nu->bezt[a].vec[1], nu->bezt[a].vec[1], cent);
- sub_v3_v3v3(nu->bezt[a].vec[2], nu->bezt[a].vec[2], cent);
+ sub_v3_v3(nu->bezt[a].vec[0], cent);
+ sub_v3_v3(nu->bezt[a].vec[1], cent);
+ sub_v3_v3(nu->bezt[a].vec[2], cent);
}
}
else {
a= nu->pntsu*nu->pntsv;
while (a--)
- sub_v3_v3v3(nu->bp[a].vec, nu->bp[a].vec, cent);
+ sub_v3_v3(nu->bp[a].vec, cent);
}
nu= nu->next;
}
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c
index 1b20042b25e..ea118602c6c 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.c
@@ -36,14 +36,13 @@
#include "DNA_cloth_types.h"
#include "DNA_curve_types.h"
#include "DNA_lattice_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
+#include "DNA_mesh_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_object_force.h"
#include "DNA_scene_types.h"
#include "DNA_particle_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_blenlib.h"
#include "BLI_cellalloc.h"
@@ -69,9 +68,7 @@
#include "WM_types.h"
#include "ED_mesh.h"
-#include "ED_view3d.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "object_intern.h"
@@ -98,7 +95,7 @@ bDeformGroup *ED_vgroup_add_name(Object *ob, char *name)
defgroup = MEM_callocN(sizeof(bDeformGroup), "add deformGroup");
- BLI_strncpy(defgroup->name, name, 32);
+ BLI_strncpy(defgroup->name, name, sizeof(defgroup->name));
BLI_addtail(&ob->defbase, defgroup);
defgroup_unique_name(defgroup, ob);
@@ -127,6 +124,78 @@ void ED_vgroup_data_create(ID *id)
}
}
+int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_tot)
+{
+ if(id) {
+ switch(GS(id->name)) {
+ case ID_ME:
+ {
+ Mesh *me = (Mesh *)id;
+
+ if(me->edit_btmesh) {
+ BMEditMesh *em = me->edit_btmesh;
+ BMIter iter;
+ BMVert *eve;
+ int i;
+
+ if (!CustomData_has_layer(&em->bm->vdata, CD_MDEFORMVERT)) {
+ *dvert_tot = 0;
+ *dvert_arr = NULL;
+ return 0;
+ }
+
+ i = em->bm->totvert;
+
+ *dvert_arr= MEM_mallocN(sizeof(void*)*i, "vgroup parray from me");
+ *dvert_tot = i;
+
+ i = 0;
+ BM_ITER(eve, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
+ (*dvert_arr)[i] = CustomData_em_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT);
+ i++;
+ }
+
+ return 1;
+ }
+ else if(me->dvert) {
+ int i;
+
+ *dvert_tot= me->totvert;
+ *dvert_arr= MEM_mallocN(sizeof(void*)*me->totvert, "vgroup parray from me");
+
+ for (i=0; i<me->totvert; i++) {
+ (*dvert_arr)[i] = me->dvert + i;
+ }
+
+ return 1;
+ }
+ else
+ return 0;
+ }
+ case ID_LT:
+ {
+ int i=0;
+
+ Lattice *lt= (Lattice *)id;
+ lt= (lt->editlatt)? lt->editlatt: lt;
+
+ *dvert_tot= lt->pntsu*lt->pntsv*lt->pntsw;
+ *dvert_arr= MEM_mallocN(sizeof(void*)*(*dvert_tot), "vgroup parray from me");
+
+ for (i=0; i<*dvert_tot; i++) {
+ (*dvert_arr)[i] = lt->dvert + i;
+ }
+
+ return 1;
+ }
+ }
+ }
+
+ *dvert_arr= NULL;
+ *dvert_tot= 0;
+ return 0;
+}
+
/* returns true if the id type supports weights */
int ED_vgroup_give_array(ID *id, MDeformVert **dvert_arr, int *dvert_tot)
{
@@ -158,20 +227,22 @@ int ED_vgroup_give_array(ID *id, MDeformVert **dvert_arr, int *dvert_tot)
/* matching index only */
int ED_vgroup_copy_array(Object *ob, Object *ob_from)
{
- MDeformVert *dvert_array_from, *dvf;
- MDeformVert *dvert_array, *dv;
-
+ MDeformVert **dvert_array_from, **dvf;
+ MDeformVert **dvert_array, **dv;
int dvert_tot_from;
int dvert_tot;
int i;
int totdef_from= BLI_countlist(&ob_from->defbase);
int totdef= BLI_countlist(&ob->defbase);
- ED_vgroup_give_array(ob_from->data, &dvert_array_from, &dvert_tot_from);
- ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
+ ED_vgroup_give_parray(ob_from->data, &dvert_array_from, &dvert_tot_from);
+ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot);
- if(ob==ob_from || dvert_tot==0 || (dvert_tot != dvert_tot_from) || dvert_array_from==NULL || dvert_array==NULL)
+ if(ob==ob_from || dvert_tot==0 || (dvert_tot != dvert_tot_from) || dvert_array_from==NULL || dvert_array==NULL) {
+ if (dvert_array) MEM_freeN(dvert_array);
+ if (dvert_array_from) MEM_freeN(dvert_array_from);
return 0;
+ }
/* do the copy */
BLI_freelistN(&ob->defbase);
@@ -192,15 +263,18 @@ int ED_vgroup_copy_array(Object *ob, Object *ob_from)
dv= dvert_array;
for(i=0; i<dvert_tot; i++, dvf++, dv++) {
- if(dv->dw)
- MEM_freeN(dv->dw);
+ if((*dv)->dw)
+ MEM_freeN((*dv)->dw);
- *dv= *dvf;
+ *(*dv)= *(*dvf);
- if(dv->dw)
- dv->dw= MEM_dupallocN(dv->dw);
+ if((*dv)->dw)
+ (*dv)->dw= MEM_dupallocN((*dv)->dw);
}
+ MEM_freeN(dvert_array);
+ MEM_freeN(dvert_array_from);
+
return 1;
}
@@ -289,7 +363,11 @@ void ED_vgroup_nr_vert_add(Object *ob, int def_nr, int vertnum, float weight, in
if(dv==NULL)
return;
- dv+= vertnum;
+ /* check that vertnum is valid before trying to get the relevant dvert */
+ if ((vertnum < 0) || (vertnum >= tot))
+ return;
+ else
+ dv += vertnum;
/* Lets first check to see if this vert is
* already in the weight group -- if so
@@ -536,7 +614,7 @@ static void vgroup_duplicate(Object *ob)
bDeformGroup *dg, *cdg;
char name[32], s[32];
MDeformWeight *org, *cpy;
- MDeformVert *dvert, *dvert_array=NULL;
+ MDeformVert *dvert, **dvert_array=NULL;
int i, idg, icdg, dvert_tot=0;
dg = BLI_findlink(&ob->defbase, (ob->actdef-1));
@@ -569,13 +647,13 @@ static void vgroup_duplicate(Object *ob)
ob->actdef = BLI_countlist(&ob->defbase);
icdg = (ob->actdef-1);
- ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
+ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot);
if(!dvert_array)
return;
for(i = 0; i < dvert_tot; i++) {
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
org = defvert_find_index(dvert, idg);
if(org) {
float weight = org->weight;
@@ -584,16 +662,18 @@ static void vgroup_duplicate(Object *ob)
cpy->weight = weight;
}
}
+
+ MEM_freeN(dvert_array);
}
static void vgroup_normalize(Object *ob)
{
bDeformGroup *dg;
MDeformWeight *dw;
- MDeformVert *dvert, *dvert_array=NULL;
+ MDeformVert *dvert, **dvert_array=NULL;
int i, def_nr, dvert_tot=0;
- ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
+ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot);
dg = BLI_findlink(&ob->defbase, (ob->actdef-1));
@@ -603,7 +683,7 @@ static void vgroup_normalize(Object *ob)
def_nr= ob->actdef-1;
for(i = 0; i < dvert_tot; i++) {
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
dw = defvert_find_index(dvert, def_nr);
if(dw) {
weight_max = MAX2(dw->weight, weight_max);
@@ -612,7 +692,7 @@ static void vgroup_normalize(Object *ob)
if(weight_max > 0.0f) {
for(i = 0; i < dvert_tot; i++) {
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
dw = defvert_find_index(dvert, def_nr);
if(dw) {
dw->weight /= weight_max;
@@ -623,16 +703,18 @@ static void vgroup_normalize(Object *ob)
}
}
}
+
+ if (dvert_array) MEM_freeN(dvert_array);
}
static void vgroup_levels(Object *ob, float offset, float gain)
{
bDeformGroup *dg;
MDeformWeight *dw;
- MDeformVert *dvert, *dvert_array=NULL;
+ MDeformVert *dvert, **dvert_array=NULL;
int i, def_nr, dvert_tot=0;
- ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
+ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot);
dg = BLI_findlink(&ob->defbase, (ob->actdef-1));
@@ -640,7 +722,7 @@ static void vgroup_levels(Object *ob, float offset, float gain)
def_nr= ob->actdef-1;
for(i = 0; i < dvert_tot; i++) {
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
dw = defvert_find_index(dvert, def_nr);
if(dw) {
dw->weight = gain * (dw->weight + offset);
@@ -649,17 +731,19 @@ static void vgroup_levels(Object *ob, float offset, float gain)
}
}
}
+
+ if (dvert_array) MEM_freeN(dvert_array);
}
/* TODO - select between groups */
static void vgroup_normalize_all(Object *ob, int lock_active)
{
MDeformWeight *dw, *dw_act;
- MDeformVert *dvert, *dvert_array=NULL;
+ MDeformVert *dvert, **dvert_array=NULL;
int i, dvert_tot=0;
float tot_weight;
- ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
+ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot);
if(dvert_array) {
if(lock_active) {
@@ -671,7 +755,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
tot_weight= 0.0f;
dw_act= NULL;
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
j= dvert->totweight;
while(j--) {
@@ -709,7 +793,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
for(i = 0; i < dvert_tot; i++) {
int j;
tot_weight= 0.0f;
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
j= dvert->totweight;
while(j--) {
@@ -730,6 +814,8 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
}
}
}
+
+ if (dvert_array) MEM_freeN(dvert_array);
}
@@ -737,10 +823,10 @@ static void vgroup_invert(Object *ob, int auto_assign, int auto_remove)
{
bDeformGroup *dg;
MDeformWeight *dw;
- MDeformVert *dvert, *dvert_array=NULL;
+ MDeformVert *dvert, **dvert_array=NULL;
int i, def_nr, dvert_tot=0;
- ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
+ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot);
dg = BLI_findlink(&ob->defbase, (ob->actdef-1));
@@ -749,7 +835,7 @@ static void vgroup_invert(Object *ob, int auto_assign, int auto_remove)
for(i = 0; i < dvert_tot; i++) {
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
if(auto_assign) {
dw= defvert_verify_index(dvert, def_nr);
@@ -767,6 +853,8 @@ static void vgroup_invert(Object *ob, int auto_assign, int auto_remove)
}
}
}
+
+ if (dvert_array) MEM_freeN(dvert_array);
}
static void vgroup_blend(Object *ob)
@@ -858,10 +946,10 @@ static void vgroup_clean(Object *ob, float eul, int keep_single)
{
bDeformGroup *dg;
MDeformWeight *dw;
- MDeformVert *dvert, *dvert_array=NULL;
+ MDeformVert *dvert, **dvert_array=NULL;
int i, def_nr, dvert_tot=0;
- ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
+ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot);
/* only the active group */
dg = BLI_findlink(&ob->defbase, (ob->actdef-1));
@@ -869,7 +957,7 @@ static void vgroup_clean(Object *ob, float eul, int keep_single)
def_nr= ob->actdef-1;
for(i = 0; i < dvert_tot; i++) {
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
dw= defvert_find_index(dvert, def_nr);
@@ -880,21 +968,23 @@ static void vgroup_clean(Object *ob, float eul, int keep_single)
}
}
}
+
+ if (dvert_array) MEM_freeN(dvert_array);
}
static void vgroup_clean_all(Object *ob, float eul, int keep_single)
{
MDeformWeight *dw;
- MDeformVert *dvert, *dvert_array=NULL;
+ MDeformVert *dvert, **dvert_array=NULL;
int i, dvert_tot=0;
- ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
+ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot);
if(dvert_array) {
for(i = 0; i < dvert_tot; i++) {
int j;
- dvert = dvert_array+i;
+ dvert = dvert_array[i];
j= dvert->totweight;
while(j--) {
@@ -910,6 +1000,8 @@ static void vgroup_clean_all(Object *ob, float eul, int keep_single)
}
}
}
+
+ if (dvert_array) MEM_freeN(dvert_array);
}
void ED_vgroup_mirror(Object *ob, int mirror_weights, int flip_vgroups)
@@ -1287,7 +1379,7 @@ static void vgroup_assign_verts(Object *ob, float weight)
done=1;
break;
}
- }
+ }
/* If not: Add the group and set its weight */
if(!done){
newdw = BLI_cellalloc_calloc(sizeof(MDeformWeight)*(dvert->totweight+1), "deformWeight");
@@ -1459,7 +1551,11 @@ static int vertex_group_remove_from_exec(bContext *C, wmOperator *op)
{
Object *ob= CTX_data_edit_object(C);
- vgroup_remove_verts(ob, 0);
+ if(RNA_boolean_get(op->ptr, "all"))
+ vgroup_remove_verts(ob, 0);
+ else
+ vgroup_active_remove_verts(ob, 0);
+
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1917,41 +2013,38 @@ void OBJECT_OT_vertex_group_set_active(wmOperatorType *ot)
ot->prop= prop;
}
-static int vgroup_sort(void *def_a_ptr, void *def_b_ptr)
+/*creates the name_array parameter for vgroup_do_remap, call this before fiddling
+ with the order of vgroups then call vgroup_do_remap after*/
+static char *vgroup_init_remap(Object *ob)
{
- bDeformGroup *def_a= (bDeformGroup *)def_a_ptr;
- bDeformGroup *def_b= (bDeformGroup *)def_b_ptr;
+ bDeformGroup *def;
+ int def_tot = BLI_countlist(&ob->defbase);
+ char *name_array= MEM_mallocN(MAX_VGROUP_NAME * sizeof(char) * def_tot, "sort vgroups");
+ char *name;
- return strcmp(def_a->name, def_b->name);
+ name= name_array;
+ for(def = ob->defbase.first; def; def=def->next) {
+ BLI_strncpy(name, def->name, MAX_VGROUP_NAME);
+ name += MAX_VGROUP_NAME;
+ }
+
+ return name_array;
}
-#define DEF_GROUP_SIZE (sizeof(((bDeformGroup *)NULL)->name))
-static int vertex_group_sort_exec(bContext *C, wmOperator *op)
+static int vgroup_do_remap(Object *ob, char *name_array, wmOperator *op)
{
- Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+ MDeformVert *dvert= NULL;
bDeformGroup *def;
int def_tot = BLI_countlist(&ob->defbase);
- char *name;
- char *name_array= MEM_mallocN(DEF_GROUP_SIZE * sizeof(char) * def_tot, "sort vgroups");
- int *sort_map_update= MEM_mallocN(DEF_GROUP_SIZE * sizeof(int) * def_tot + 1, "sort vgroups"); /* needs a dummy index at the start*/
+ int *sort_map_update= MEM_mallocN(MAX_VGROUP_NAME * sizeof(int) * def_tot + 1, "sort vgroups"); /* needs a dummy index at the start*/
int *sort_map= sort_map_update + 1;
+ char *name;
int i;
- MDeformVert *dvert= NULL;
- int dvert_tot;
-
- name= name_array;
- for(def = ob->defbase.first; def; def=def->next){
- BLI_strncpy(name, def->name, DEF_GROUP_SIZE);
- name += DEF_GROUP_SIZE;
- }
-
- BLI_sortlist(&ob->defbase, vgroup_sort);
-
name= name_array;
for(def= ob->defbase.first, i=0; def; def=def->next, i++){
sort_map[i]= BLI_findstringindex(&ob->defbase, name, offsetof(bDeformGroup, name));
- name += DEF_GROUP_SIZE;
+ name += MAX_VGROUP_NAME;
}
if(ob->mode == OB_MODE_EDIT) {
@@ -1973,7 +2066,11 @@ static int vertex_group_sort_exec(bContext *C, wmOperator *op)
}
}
else {
+ int dvert_tot=0;
+
ED_vgroup_give_array(ob->data, &dvert, &dvert_tot);
+
+ /*create as necassary*/
while(dvert && dvert_tot--) {
if(dvert->totweight)
defvert_remap(dvert, sort_map);
@@ -1986,21 +2083,45 @@ static int vertex_group_sort_exec(bContext *C, wmOperator *op)
sort_map[i]++;
sort_map_update[0]= 0;
-
vgroup_remap_update_users(ob, sort_map_update);
ob->actdef= sort_map_update[ob->actdef];
- MEM_freeN(name_array);
- MEM_freeN(sort_map_update);
+ return OPERATOR_FINISHED;
+}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob);
+static int vgroup_sort(void *def_a_ptr, void *def_b_ptr)
+{
+ bDeformGroup *def_a= (bDeformGroup *)def_a_ptr;
+ bDeformGroup *def_b= (bDeformGroup *)def_b_ptr;
- return OPERATOR_FINISHED;
+ return strcmp(def_a->name, def_b->name);
}
-#undef DEF_GROUP_SIZE
+static int vertex_group_sort_exec(bContext *C, wmOperator *op)
+{
+ Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+ char *name_array;
+ int ret;
+
+ /*init remapping*/
+ name_array = vgroup_init_remap(ob);
+
+ /*sort vgroup names*/
+ BLI_sortlist(&ob->defbase, vgroup_sort);
+
+ /*remap vgroup data to map to correct names*/
+ ret = vgroup_do_remap(ob, name_array, op);
+
+ if (ret != OPERATOR_CANCELLED) {
+ DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob);
+ }
+
+ if (name_array) MEM_freeN(name_array);
+
+ return ret;
+}
void OBJECT_OT_vertex_group_sort(wmOperatorType *ot)
{
@@ -2015,3 +2136,63 @@ void OBJECT_OT_vertex_group_sort(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
+
+static int vgroup_move_exec(bContext *C, wmOperator *op)
+{
+ Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+ bDeformGroup *def;
+ char *name_array;
+ int dir= RNA_enum_get(op->ptr, "direction"), ret;
+
+ def = BLI_findlink(&ob->defbase, ob->actdef - 1);
+ if (!def) {
+ return OPERATOR_CANCELLED;
+ }
+
+ name_array = vgroup_init_remap(ob);
+
+ if (dir == 1) { /*up*/
+ void *prev = def->prev;
+
+ BLI_remlink(&ob->defbase, def);
+ BLI_insertlinkbefore(&ob->defbase, prev, def);
+ } else { /*down*/
+ void *next = def->next;
+
+ BLI_remlink(&ob->defbase, def);
+ BLI_insertlinkafter(&ob->defbase, next, def);
+ }
+
+ ret = vgroup_do_remap(ob, name_array, op);
+
+ if (name_array) MEM_freeN(name_array);
+
+ if (ret != OPERATOR_CANCELLED) {
+ DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob);
+ }
+
+ return ret;
+}
+
+void OBJECT_OT_vertex_group_move(wmOperatorType *ot)
+{
+ static EnumPropertyItem vgroup_slot_move[] = {
+ {1, "UP", 0, "Up", ""},
+ {-1, "DOWN", 0, "Down", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ /* identifiers */
+ ot->name= "Move Vertex Group";
+ ot->idname= "OBJECT_OT_vertex_group_move";
+
+ /* api callbacks */
+ ot->poll= vertex_group_poll;
+ ot->exec= vgroup_move_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "direction", vgroup_slot_move, 0, "Direction", "Direction to move, UP or DOWN");
+}
diff --git a/source/blender/editors/physics/CMakeLists.txt b/source/blender/editors/physics/CMakeLists.txt
new file mode 100644
index 00000000000..ebe3f913508
--- /dev/null
+++ b/source/blender/editors/physics/CMakeLists.txt
@@ -0,0 +1,47 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../../../intern/elbeem/extern
+ ../../../../intern/guardedalloc
+)
+
+IF(NOT WITH_ELBEEM)
+ ADD_DEFINITIONS(-DDISABLE_ELBEEM)
+ENDIF(NOT WITH_ELBEEM)
+
+IF(WITH_OPENMP)
+ ADD_DEFINITIONS(-DPARALLEL=1)
+ENDIF(WITH_OPENMP)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_physics "${SRC}" "${INC}")
diff --git a/source/blender/editors/physics/particle_boids.c b/source/blender/editors/physics/particle_boids.c
index e738aa34d07..37de0d8f873 100644
--- a/source/blender/editors/physics/particle_boids.c
+++ b/source/blender/editors/physics/particle_boids.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,9 +29,7 @@
#include "MEM_guardedalloc.h"
-#include "DNA_boid_types.h"
#include "DNA_particle_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BKE_boids.h"
diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c
index 71c18b35365..da0034ac2f9 100644
--- a/source/blender/editors/physics/particle_edit.c
+++ b/source/blender/editors/physics/particle_edit.c
@@ -36,15 +36,9 @@
#include "DNA_scene_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_object_force.h"
-#include "DNA_object_types.h"
-#include "DNA_vec_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_view3d_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
#include "BKE_DerivedMesh.h"
#include "BKE_depsgraph.h"
@@ -66,7 +60,6 @@
#include "BLI_kdtree.h"
#include "BLI_rand.h"
-#include "PIL_time.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -75,7 +68,6 @@
#include "ED_particle.h"
#include "ED_view3d.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "WM_api.h"
@@ -132,7 +124,7 @@ int PE_hair_poll(bContext *C)
return (edit && edit->psys);
}
-int PE_poll_3dview(bContext *C)
+int PE_poll_view3d(bContext *C)
{
return PE_poll(C) && CTX_wm_area(C)->spacetype == SPACE_VIEW3D &&
CTX_wm_region(C)->regiontype == RGN_TYPE_WINDOW;
@@ -168,7 +160,7 @@ void PE_free_ptcache_edit(PTCacheEdit *edit)
edit->emitter_field= 0;
}
- psys_free_path_cache(NULL, edit);
+ psys_free_path_cache(edit->psys, edit);
MEM_freeN(edit);
}
@@ -211,7 +203,7 @@ static PTCacheEdit *pe_get_current(Scene *scene, Object *ob, int create)
pset->scene = scene;
pset->object = ob;
- BKE_ptcache_ids_from_object(&pidlist, ob);
+ BKE_ptcache_ids_from_object(&pidlist, ob, NULL, 0);
/* in the case of only one editable thing, set pset->edittype accordingly */
if(pidlist.first && pidlist.first == pidlist.last) {
@@ -831,9 +823,12 @@ static void PE_apply_mirror(Object *ob, ParticleSystem *psys)
edit= psys->edit;
psmd= psys_get_modifier(ob, psys);
- if(!edit->mirror_cache || !psmd->dm)
+ if(!psmd->dm)
return;
+ if(!edit->mirror_cache)
+ PE_update_mirror_cache(ob, psys);
+
/* we delay settings the PARS_EDIT_RECALC for mirrored particles
* to avoid doing mirror twice */
LOOP_POINTS {
@@ -902,13 +897,13 @@ static void pe_deflect_emitter(Scene *scene, Object *ob, PTCacheEdit *edit)
if(dot<dist_1st) {
normalize_v3(dvec);
mul_v3_fl(dvec,dist_1st-dot);
- add_v3_v3v3(key->co,key->co,dvec);
+ add_v3_v3(key->co, dvec);
}
}
else {
normalize_v3(dvec);
mul_v3_fl(dvec,dist_1st-dot);
- add_v3_v3v3(key->co,key->co,dvec);
+ add_v3_v3(key->co, dvec);
}
if(k==1)
dist_1st*=1.3333f;
@@ -994,7 +989,7 @@ static void pe_iterate_lengths(Scene *scene, PTCacheEdit *edit)
}
if(k) {
- add_v3_v3v3((key-1)->co,(key-1)->co,dv1);
+ add_v3_v3((key-1)->co, dv1);
}
VECADD(dv1,dv0,dv2);
@@ -1326,7 +1321,7 @@ static int select_all_exec(bContext *C, wmOperator *op)
}
PE_update_selection(scene, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, ob);
return OPERATOR_FINISHED;
}
@@ -1376,7 +1371,7 @@ int PE_mouse_particles(bContext *C, short *mval, int extend)
for_mouse_hit_keys(&data, toggle_key_select, 1); /* nearest only */
PE_update_selection(scene, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, data.ob);
return OPERATOR_FINISHED;
}
@@ -1385,11 +1380,14 @@ int PE_mouse_particles(bContext *C, short *mval, int extend)
static void select_root(PEData *data, int point_index)
{
+ if (data->edit->points[point_index].flag & PEP_HIDE)
+ return;
+
data->edit->points[point_index].keys->flag |= PEK_SELECT;
data->edit->points[point_index].flag |= PEP_EDIT_RECALC; /* redraw selection only */
}
-static int select_first_exec(bContext *C, wmOperator *op)
+static int select_roots_exec(bContext *C, wmOperator *op)
{
PEData data;
@@ -1397,19 +1395,19 @@ static int select_first_exec(bContext *C, wmOperator *op)
foreach_point(&data, select_root);
PE_update_selection(data.scene, data.ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, data.ob);
return OPERATOR_FINISHED;
}
-void PARTICLE_OT_select_first(wmOperatorType *ot)
+void PARTICLE_OT_select_roots(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Select First";
- ot->idname= "PARTICLE_OT_select_first";
+ ot->name= "Select Roots";
+ ot->idname= "PARTICLE_OT_select_roots";
/* api callbacks */
- ot->exec= select_first_exec;
+ ot->exec= select_roots_exec;
ot->poll= PE_poll;
/* flags */
@@ -1421,11 +1419,15 @@ void PARTICLE_OT_select_first(wmOperatorType *ot)
static void select_tip(PEData *data, int point_index)
{
PTCacheEditPoint *point = data->edit->points + point_index;
+
+ if (point->flag & PEP_HIDE)
+ return;
+
point->keys[point->totkey - 1].flag |= PEK_SELECT;
point->flag |= PEP_EDIT_RECALC; /* redraw selection only */
}
-static int select_last_exec(bContext *C, wmOperator *op)
+static int select_tips_exec(bContext *C, wmOperator *op)
{
PEData data;
@@ -1433,19 +1435,19 @@ static int select_last_exec(bContext *C, wmOperator *op)
foreach_point(&data, select_tip);
PE_update_selection(data.scene, data.ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, data.ob);
return OPERATOR_FINISHED;
}
-void PARTICLE_OT_select_last(wmOperatorType *ot)
+void PARTICLE_OT_select_tips(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Select Last";
- ot->idname= "PARTICLE_OT_select_last";
+ ot->name= "Select Tips";
+ ot->idname= "PARTICLE_OT_select_tips";
/* api callbacks */
- ot->exec= select_last_exec;
+ ot->exec= select_tips_exec;
ot->poll= PE_poll;
/* flags */
@@ -1473,7 +1475,7 @@ static int select_linked_exec(bContext *C, wmOperator *op)
for_mouse_hit_keys(&data, select_keys, 1); /* nearest only */
PE_update_selection(data.scene, data.ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, data.ob);
return OPERATOR_FINISHED;
}
@@ -1499,7 +1501,7 @@ void PARTICLE_OT_select_linked(wmOperatorType *ot)
/* api callbacks */
ot->exec= select_linked_exec;
ot->invoke= select_linked_invoke;
- ot->poll= PE_poll_3dview;
+ ot->poll= PE_poll_view3d;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1539,7 +1541,7 @@ int PE_border_select(bContext *C, rcti *rect, int select, int extend)
for_mouse_hit_keys(&data, select_key, 0);
PE_update_selection(scene, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, ob);
return OPERATOR_FINISHED;
}
@@ -1564,7 +1566,7 @@ int PE_circle_select(bContext *C, int selecting, short *mval, float rad)
for_mouse_hit_keys(&data, select_key, 0);
PE_update_selection(scene, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, ob);
return OPERATOR_FINISHED;
}
@@ -1630,7 +1632,7 @@ int PE_lasso_select(bContext *C, short mcords[][2], short moves, short select)
}
PE_update_selection(scene, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, ob);
return OPERATOR_FINISHED;
}
@@ -1664,7 +1666,7 @@ static int hide_exec(bContext *C, wmOperator *op)
}
PE_update_selection(scene, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, ob);
return OPERATOR_FINISHED;
}
@@ -1706,7 +1708,7 @@ static int reveal_exec(bContext *C, wmOperator *op)
}
PE_update_selection(scene, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, ob);
return OPERATOR_FINISHED;
}
@@ -1764,7 +1766,7 @@ static int select_less_exec(bContext *C, wmOperator *op)
foreach_point(&data, select_less_keys);
PE_update_selection(data.scene, data.ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, data.ob);
return OPERATOR_FINISHED;
}
@@ -1825,7 +1827,7 @@ static int select_more_exec(bContext *C, wmOperator *op)
foreach_point(&data, select_more_keys);
PE_update_selection(data.scene, data.ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, data.ob);
return OPERATOR_FINISHED;
}
@@ -1862,7 +1864,7 @@ static int select_inverse_exec(bContext *C, wmOperator *op)
}
PE_update_selection(data.scene, data.ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_SELECTED, data.ob);
return OPERATOR_FINISHED;
}
@@ -1953,7 +1955,7 @@ static int rekey_exec(bContext *C, wmOperator *op)
recalc_lengths(data.edit);
PE_update_object(data.scene, data.ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, data.ob);
return OPERATOR_FINISHED;
}
@@ -2258,7 +2260,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
recalc_lengths(data.edit);
PE_update_object(data.scene, data.ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, data.ob);
return OPERATOR_FINISHED;
}
@@ -2346,7 +2348,7 @@ static int remove_doubles_exec(bContext *C, wmOperator *op)
BKE_reportf(op->reports, RPT_INFO, "Remove %d double particles.", totremoved);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
return OPERATOR_FINISHED;
}
@@ -2381,21 +2383,22 @@ static int weight_set_exec(bContext *C, wmOperator *op)
HairKey *hkey;
float weight;
ParticleBrushData *brush= &pset->brush[pset->brushtype];
- edit= psys->edit;
+ float factor= RNA_float_get(op->ptr, "factor");
- weight= (float)(brush->strength / 100.0f);
+ weight= brush->strength;
+ edit= psys->edit;
LOOP_SELECTED_POINTS {
ParticleData *pa= psys->particles + p;
LOOP_SELECTED_KEYS {
hkey= pa->hair + k;
- hkey->weight= weight;
+ hkey->weight= interpf(weight, hkey->weight, factor);
}
}
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
return OPERATOR_FINISHED;
}
@@ -2412,6 +2415,8 @@ void PARTICLE_OT_weight_set(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_float(ot->srna, "factor", 1, 0, 1, "Factor", "", 0, 1);
}
/************************ cursor drawing *******************************/
@@ -2451,7 +2456,7 @@ static void toggle_particle_cursor(bContext *C, int enable)
pset->paintcursor = NULL;
}
else if(enable)
- pset->paintcursor= WM_paint_cursor_activate(CTX_wm_manager(C), PE_poll_3dview, brush_drawcursor, NULL);
+ pset->paintcursor= WM_paint_cursor_activate(CTX_wm_manager(C), PE_poll_view3d, brush_drawcursor, NULL);
}
/********************* radial control operator *********************/
@@ -2507,6 +2512,8 @@ static int brush_radial_control_exec(bContext *C, wmOperator *op)
else if(mode == WM_RADIALCONTROL_STRENGTH)
brush->strength= new_value;
+ WM_event_add_notifier(C, NC_WINDOW, NULL);
+
return OPERATOR_FINISHED;
}
@@ -2568,7 +2575,7 @@ static int delete_exec(bContext *C, wmOperator *op)
}
DAG_id_flush_update(&data.ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, data.ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, data.ob);
return OPERATOR_FINISHED;
}
@@ -2727,7 +2734,7 @@ static int mirror_exec(bContext *C, wmOperator *op)
PE_mirror_x(scene, ob, 0);
update_world_cos(ob, edit);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
return OPERATOR_FINISHED;
@@ -2941,7 +2948,7 @@ static void brush_puff(PEData *data, int point_index)
VECCOPY(co, key->co);
mul_m4_v3(mat, co);
length += len_v3v3(lastco, co);
- if((key->flag & PEK_SELECT) && !(key->flag & PEK_HIDE)) {
+ if((data->select==0 || (key->flag & PEK_SELECT)) && !(key->flag & PEK_HIDE)) {
VECADDFAC(kco, rootco, nor, length);
/* blend between the current and straight position */
@@ -3356,7 +3363,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
data.mval= mval;
data.rad= (float)brush->size;
- data.combfac= (float)(brush->strength - 50) / 50.0f;
+ data.combfac= (brush->strength - 0.5f) * 2.0f;
if(data.combfac < 0.0f)
data.combfac= 1.0f - 9.0f * data.combfac;
else
@@ -3378,7 +3385,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
PE_set_view3d_data(C, &data);
data.mval= mval;
data.rad= (float)brush->size;
- data.cutfac= (float)(brush->strength / 100.0f);
+ data.cutfac= brush->strength;
if(selected)
foreach_selected_point(&data, brush_cut);
@@ -3402,7 +3409,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
data.mval= mval;
data.rad= (float)brush->size;
- data.growfac= (float)brush->strength / 5000.0f;
+ data.growfac= brush->strength / 50.0f;
if(brush->invert ^ flip)
data.growfac= 1.0f - data.growfac;
@@ -3424,8 +3431,9 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
data.dm= psmd->dm;
data.mval= mval;
data.rad= (float)brush->size;
+ data.select= selected;
- data.pufffac= (float)(brush->strength - 50) / 50.0f;
+ data.pufffac= (brush->strength - 0.5f) * 2.0f;
if(data.pufffac < 0.0f)
data.pufffac= 1.0f - 9.0f * data.pufffac;
else
@@ -3446,7 +3454,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
PE_set_view3d_data(C, &data);
data.mval= mval;
- added= brush_add(&data, brush->strength);
+ added= brush_add(&data, brush->count);
if(pset->flag & PE_KEEP_LENGTHS)
recalc_lengths(edit);
@@ -3466,7 +3474,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
data.vec[0]= data.vec[1]= data.vec[2]= 0.0f;
data.tot= 0;
- data.smoothfac= (float)(brush->strength / 100.0f);
+ data.smoothfac= brush->strength;
invert_m4_m4(ob->imat, ob->obmat);
@@ -3489,7 +3497,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
data.mval= mval;
data.rad= (float)brush->size;
- data.weightfac = (float)(brush->strength / 100.0f); /* note that this will never be zero */
+ data.weightfac = brush->strength; /* note that this will never be zero */
foreach_mouse_hit_key(&data, brush_weight, selected);
}
@@ -3511,7 +3519,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
else
PE_update_object(scene, ob, 1);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_SELECT, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
bedit->lastmouse[0]= mouse[0];
bedit->lastmouse[1]= mouse[1];
@@ -3608,7 +3616,7 @@ void PARTICLE_OT_brush_edit(wmOperatorType *ot)
ot->invoke= brush_edit_invoke;
ot->modal= brush_edit_modal;
ot->cancel= brush_edit_cancel;
- ot->poll= PE_poll_3dview;
+ ot->poll= PE_poll_view3d;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
@@ -3665,6 +3673,8 @@ static void make_PTCacheUndo(PTCacheEdit *edit, PTCacheUndo *undo)
for(; pm; pm=pm->next) {
for(i=0; i<BPHYS_TOT_DATA; i++)
pm->data[i] = MEM_dupallocN(pm->data[i]);
+
+ pm->index_array = MEM_dupallocN(pm->index_array);
}
}
@@ -3739,6 +3749,8 @@ static void get_PTCacheUndo(PTCacheEdit *edit, PTCacheUndo *undo)
for(i=0; i<BPHYS_TOT_DATA; i++)
pm->data[i] = MEM_dupallocN(pm->data[i]);
+ pm->index_array = MEM_dupallocN(pm->index_array);
+
BKE_ptcache_mem_init_pointers(pm);
LOOP_POINTS {
@@ -4003,12 +4015,20 @@ static void PE_create_particle_edit(Scene *scene, Object *ob, PointCache *cache,
LOOP_POINTS {
if(psys) {
- pa = psys->particles + p;
- if((pm->next && pm->next->frame < pa->time)
- || (pm->prev && pm->prev->frame >= pa->dietime)) {
- BKE_ptcache_mem_incr_pointers(pm);
+ if(pm->index_array) {
+ if(pm->index_array[p])
+ BKE_ptcache_mem_seek_pointers(p, pm);
+ else
continue;
- }
+ }
+ else {
+ pa = psys->particles + p;
+ if((pm->next && pm->next->frame < pa->time)
+ || (pm->prev && pm->prev->frame >= pa->dietime)) {
+ BKE_ptcache_mem_incr_pointers(pm);
+ continue;
+ }
+ }
}
if(!point->totkey) {
@@ -4118,7 +4138,7 @@ static int clear_edited_exec(bContext *C, wmOperator *op)
psys->flag &= ~PSYS_EDITED;
psys_reset(psys, PSYS_RESET_DEPSGRAPH);
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
}
}
diff --git a/source/blender/editors/physics/particle_object.c b/source/blender/editors/physics/particle_object.c
index f590339b91d..bb30d30fd0e 100644
--- a/source/blender/editors/physics/particle_object.c
+++ b/source/blender/editors/physics/particle_object.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,10 +32,7 @@
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_listbase.h"
@@ -72,7 +69,9 @@ static int particle_system_add_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
object_add_particle_system(scene, ob, NULL);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, ob);
return OPERATOR_FINISHED;
}
@@ -110,7 +109,8 @@ static int particle_system_remove_exec(bContext *C, wmOperator *op)
if(scene->basact && scene->basact->object==ob)
WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, NULL);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, ob);
return OPERATOR_FINISHED;
}
@@ -169,7 +169,7 @@ static int new_particle_settings_exec(bContext *C, wmOperator *op)
DAG_scene_sort(scene);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
return OPERATOR_FINISHED;
}
@@ -217,7 +217,7 @@ static int new_particle_target_exec(bContext *C, wmOperator *op)
DAG_scene_sort(scene);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
return OPERATOR_FINISHED;
}
@@ -265,7 +265,7 @@ static int remove_particle_target_exec(bContext *C, wmOperator *op)
DAG_scene_sort(scene);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
return OPERATOR_FINISHED;
}
@@ -303,7 +303,7 @@ static int target_move_up_exec(bContext *C, wmOperator *op)
BLI_insertlink(&psys->targets, pt->prev->prev, pt);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
break;
}
}
@@ -341,7 +341,7 @@ static int target_move_down_exec(bContext *C, wmOperator *op)
BLI_insertlink(&psys->targets, pt->next, pt);
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
break;
}
}
@@ -379,7 +379,7 @@ static int dupliob_move_up_exec(bContext *C, wmOperator *op)
BLI_remlink(&part->dupliweights, dw);
BLI_insertlink(&part->dupliweights, dw->prev->prev, dw);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, NULL);
break;
}
}
@@ -418,7 +418,7 @@ static int copy_particle_dupliob_exec(bContext *C, wmOperator *op)
dw->flag |= PART_DUPLIW_CURRENT;
BLI_addhead(&part->dupliweights, dw);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, NULL);
break;
}
}
@@ -464,7 +464,7 @@ static int remove_particle_dupliob_exec(bContext *C, wmOperator *op)
if(dw)
dw->flag |= PART_DUPLIW_CURRENT;
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, NULL);
return OPERATOR_FINISHED;
}
@@ -501,7 +501,7 @@ static int dupliob_move_down_exec(bContext *C, wmOperator *op)
BLI_remlink(&part->dupliweights, dw);
BLI_insertlink(&part->dupliweights, dw->next, dw);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, NULL);
break;
}
}
@@ -526,6 +526,7 @@ void PARTICLE_OT_dupliob_move_down(wmOperatorType *ot)
static void disconnect_hair(Scene *scene, Object *ob, ParticleSystem *psys)
{
ParticleSystemModifierData *psmd = psys_get_modifier(ob,psys);
+ ParticleEditSettings *pset= PE_settings(scene);
ParticleData *pa;
PTCacheEdit *edit;
PTCacheEditPoint *point;
@@ -565,6 +566,9 @@ static void disconnect_hair(Scene *scene, Object *ob, ParticleSystem *psys)
psys->flag |= PSYS_GLOBAL_HAIR;
+ if(ELEM(pset->brushtype, PE_BRUSH_ADD, PE_BRUSH_PUFF))
+ pset->brushtype = PE_BRUSH_NONE;
+
PE_update_object(scene, ob, 0);
}
@@ -589,7 +593,7 @@ static int disconnect_hair_exec(bContext *C, wmOperator *op)
disconnect_hair(scene, ob, psys);
}
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
return OPERATOR_FINISHED;
}
@@ -728,7 +732,7 @@ static int connect_hair_exec(bContext *C, wmOperator *op)
connect_hair(scene, ob, psys);
}
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c
index 65701f89c4e..23f604d8c12 100644
--- a/source/blender/editors/physics/physics_fluid.c
+++ b/source/blender/editors/physics/physics_fluid.c
@@ -45,25 +45,17 @@
#include "MEM_guardedalloc.h"
/* types */
-#include "DNA_curve_types.h"
+#include "DNA_anim_types.h"
+#include "DNA_action_types.h"
#include "DNA_object_types.h"
#include "DNA_object_fluidsim.h"
-#include "DNA_key_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_lattice_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_ipo_types.h"
-#include "DNA_key_types.h"
#include "BLI_blenlib.h"
#include "BLI_threads.h"
#include "BLI_math.h"
+#include "BKE_animsys.h"
+#include "BKE_armature.h"
#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
@@ -80,17 +72,15 @@
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_softbody.h"
+#include "BKE_unit.h"
-#include "PIL_time.h"
#include "LBM_fluidsim.h"
#include "BIF_gl.h"
-#include "ED_fluidsim.h"
#include "ED_screen.h"
-#include "WM_api.h"
#include "WM_types.h"
#include "physics_intern.h" // own include
@@ -98,85 +88,110 @@
/* enable/disable overall compilation */
#ifndef DISABLE_ELBEEM
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
-/* ************** libgomp (Apple gcc 4.2.1) TLS bug workaround *************** */
-#include <pthread.h>
-extern pthread_key_t gomp_tls_key;
-static void *thread_tls_data;
-#endif
+#include "WM_api.h"
+#include "DNA_scene_types.h"
+#include "DNA_ipo_types.h"
+#include "DNA_mesh_types.h"
-/* XXX */
-/* from header info.c */
-static int start_progress_bar(void) {return 0;};
-static void end_progress_bar(wmWindow *win) {WM_cursor_restore(win);};
-static void waitcursor(int val) {};
-static int progress_bar(wmWindow *win, float done, char *busy_info) { WM_timecursor(win,done*100); return 0;}
-static int pupmenu() {return 0;}
-/* XXX */
-
-
-double fluidsimViscosityPreset[6] = {
- -1.0, /* unused */
- -1.0, /* manual */
- 1.0e-6, /* water */
- 5.0e-5, /* some (thick) oil */
- 2.0e-3, /* ca. honey */
- -1.0 /* end */
-};
-
-char* fluidsimViscosityPresetString[6] = {
- "UNUSED", /* unused */
- "UNUSED", /* manual */
- " = 1.0 * 10^-6", /* water */
- " = 5.0 * 10^-5", /* some (thick) oil */
- " = 2.0 * 10^-3", /* ca. honey */
- "INVALID" /* end */
-};
+#include "PIL_time.h"
+
+
+static float get_fluid_viscosity(FluidsimSettings *settings)
+{
+ switch (settings->viscosityMode) {
+ case 0: /* unused */
+ return -1.0;
+ case 2: /* water */
+ return 1.0e-6;
+ case 3: /* some (thick) oil */
+ return 5.0e-5;
+ case 4: /* ca. honey */
+ return 2.0e-3;
+ case 1: /* manual */
+ default:
+ return (1.0/pow(10.0, settings->viscosityExponent)) * settings->viscosityValue;
+ }
+}
+
+static void get_fluid_gravity(float *gravity, Scene *scene, FluidsimSettings *fss)
+{
+ if (scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) {
+ copy_v3_v3(gravity, scene->physics_settings.gravity);
+ } else {
+ copy_v3_v3(gravity, &fss->gravx);
+ }
+}
+
+static float get_fluid_size_m(Scene *scene, Object *domainob, FluidsimSettings *fss)
+{
+ if (!scene->unit.system) {
+ return fss->realsize;
+ } else {
+ float dim[3];
+ float longest_axis;
+
+ object_get_dimensions(domainob, dim);
+ longest_axis = MAX3(dim[0], dim[1], dim[2]);
+
+ return longest_axis * scene->unit.scale_length;
+ }
+}
+
+static int fluid_is_animated_mesh(FluidsimSettings *fss)
+{
+ return ((fss->type == OB_FLUIDSIM_CONTROL) || fss->domainNovecgen);
+}
/* ********************** fluid sim settings struct functions ********************** */
+#if 0
/* helper function */
void fluidsimGetGeometryObjFilename(Object *ob, char *dst) { //, char *srcname) {
//snprintf(dst,FILE_MAXFILE, "%s_cfgdata_%s.bobj.gz", srcname, ob->id.name);
snprintf(dst,FILE_MAXFILE, "fluidcfgdata_%s.bobj.gz", ob->id.name);
}
+#endif
-
-
-/* ******************************************************************************** */
/* ********************** fluid sim channel helper functions ********************** */
-/* ******************************************************************************** */
+
+typedef struct FluidAnimChannels {
+ int length;
+
+ double aniFrameTime;
+
+ float *timeAtFrame;
+ float *DomainTime;
+ float *DomainGravity;
+ float *DomainViscosity;
+} FluidAnimChannels;
+
+typedef struct FluidObject {
+ struct FluidObject *next, *prev;
+
+ struct Object *object;
+
+ float *Translation;
+ float *Rotation;
+ float *Scale;
+ float *Active;
+
+ float *InitialVelocity;
+
+ float *AttractforceStrength;
+ float *AttractforceRadius;
+ float *VelocityforceStrength;
+ float *VelocityforceRadius;
+
+ float *VertexCache;
+ int numVerts, numTris;
+} FluidObject;
// no. of entries for the two channel sizes
#define CHANNEL_FLOAT 1
#define CHANNEL_VEC 3
-#define FS_FREE_ONECHANNEL(c,str) { \
- if(c){ MEM_freeN(c); c=NULL; } \
-} // end ONE CHANN, debug: fprintf(stderr,"freeing " str " \n");
-
-#define FS_FREE_CHANNELS { \
- FS_FREE_ONECHANNEL(timeAtIndex,"timeAtIndex");\
- FS_FREE_ONECHANNEL(timeAtFrame,"timeAtFrame");\
- FS_FREE_ONECHANNEL(channelDomainTime,"channelDomainTime"); \
- FS_FREE_ONECHANNEL(channelDomainGravity,"channelDomainGravity");\
- FS_FREE_ONECHANNEL(channelDomainViscosity,"channelDomainViscosity");\
- for(i=0;i<256;i++) { \
- FS_FREE_ONECHANNEL(channelObjMove[i][0],"channelObjMove0"); \
- FS_FREE_ONECHANNEL(channelObjMove[i][1],"channelObjMove1"); \
- FS_FREE_ONECHANNEL(channelObjMove[i][2],"channelObjMove2"); \
- FS_FREE_ONECHANNEL(channelObjInivel[i],"channelObjInivel"); \
- FS_FREE_ONECHANNEL(channelObjActive[i],"channelObjActive"); \
- FS_FREE_ONECHANNEL(channelAttractforceStrength[i],"channelAttractforceStrength"); \
- FS_FREE_ONECHANNEL(channelAttractforceRadius[i],"channelAttractforceRadius"); \
- FS_FREE_ONECHANNEL(channelVelocityforceStrength[i],"channelVelocityforceStrength"); \
- FS_FREE_ONECHANNEL(channelVelocityforceRadius[i],"channelVelocityforceRadius"); \
- } \
-} // end FS FREE CHANNELS
-
-
// simplify channels before printing
// for API this is done anyway upon init
#if 0
@@ -207,341 +222,653 @@ static void fluidsimPrintChannel(FILE *file, float *channel, int paramsize, char
}
#endif
-static void fluidsimInitChannel(Scene *scene, float **setchannel, int size, float *time,
- int *icuIds, float *defaults, Ipo* ipo, int entries)
+
+/* Note: fluid anim channel data layout
+ * ------------------------------------
+ * CHANNEL_FLOAT:
+ * frame 1 |frame 2
+ * [dataF][time][dataF][time]
+ *
+ * CHANNEL_VEC:
+ * frame 1 |frame 2
+ * [dataX][dataY][dataZ][time][dataX][dataY][dataZ][time]
+ *
+ */
+
+static void init_time(FluidsimSettings *domainSettings, FluidAnimChannels *channels)
{
+ int i;
+
+ channels->timeAtFrame = MEM_callocN( (channels->length+1)*sizeof(float), "timeAtFrame channel");
+
+ channels->timeAtFrame[0] = channels->timeAtFrame[1] = domainSettings->animStart; // start at index 1
+
+ for(i=2; i<=channels->length; i++) {
+ channels->timeAtFrame[i] = channels->timeAtFrame[i-1] + channels->aniFrameTime;
+ }
+}
+
+/* if this is slow, can replace with faster, less readable code */
+static void set_channel(float *channel, float time, float *value, int i, int size)
+{
+ if (size == CHANNEL_FLOAT) {
+ channel[(i * 2) + 0] = value[0];
+ channel[(i * 2) + 1] = time;
+ }
+ else if (size == CHANNEL_VEC) {
+ channel[(i * 4) + 0] = value[0];
+ channel[(i * 4) + 1] = value[1];
+ channel[(i * 4) + 2] = value[2];
+ channel[(i * 4) + 3] = time;
+ }
+}
- int i, j;
- char *cstr = NULL;
- float *channel = NULL;
+static void set_vertex_channel(float *channel, float time, struct Scene *scene, struct FluidObject *fobj, int i)
+{
+ Object *ob = fobj->object;
+ FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
+ float *verts;
+ int *tris=NULL, numVerts=0, numTris=0;
+ int modifierIndex = modifiers_indexInObject(ob, (ModifierData *)fluidmd);
+ int framesize = (3*fobj->numVerts) + 1;
+ int j;
+
+ if (channel == NULL)
+ return;
- cstr = "fluidsiminit_channelfloat";
- if(entries>1) cstr = "fluidsiminit_channelvec";
- channel = MEM_callocN( size* (entries+1)* sizeof(float), cstr );
+ initElbeemMesh(scene, ob, &numVerts, &verts, &numTris, &tris, 1, modifierIndex);
- /* defaults for now */
- for(j=0; j<entries; j++) {
- for(i=1; i<=size; i++) {
- channel[(i-1)*(entries+1) + j] = defaults[j];
- }
+ /* don't allow mesh to change number of verts in anim sequence */
+ if (numVerts != fobj->numVerts) {
+ MEM_freeN(channel);
+ channel = NULL;
+ return;
}
- for(i=1; i<=size; i++) {
- channel[(i-1)*(entries+1) + entries] = time[i];
+ /* fill frame of channel with vertex locations */
+ for(j=0; j < (3*numVerts); j++) {
+ channel[i*framesize + j] = verts[j];
}
+ channel[i*framesize + framesize-1] = time;
+
+ MEM_freeN(verts);
+ MEM_freeN(tris);
+}
- *setchannel = channel;
+static void free_domain_channels(FluidAnimChannels *channels)
+{
+ if (!channels->timeAtFrame)
+ return;
+ MEM_freeN(channels->timeAtFrame);
+ channels->timeAtFrame = NULL;
+ MEM_freeN(channels->DomainGravity);
+ channels->DomainGravity = NULL;
+ MEM_freeN(channels->DomainViscosity);
+ channels->DomainViscosity = NULL;
+}
-#if 0
- /* goes away completely */
- int i,j;
- IpoCurve* icus[3];
- char *cstr = NULL;
- float *channel = NULL;
- float aniFrlen = scene->r.framelen;
- int current_frame = scene->r.cfra;
- if((entries<1) || (entries>3)) {
- printf("fluidsimInitChannel::Error - invalid no. of entries: %d\n",entries);
- entries = 1;
+static void free_all_fluidobject_channels(ListBase *fobjects)
+{
+ FluidObject *fobj;
+
+ for (fobj=fobjects->first; fobj; fobj=fobj->next) {
+ if (fobj->Translation) {
+ MEM_freeN(fobj->Translation);
+ fobj->Translation = NULL;
+ MEM_freeN(fobj->Rotation);
+ fobj->Rotation = NULL;
+ MEM_freeN(fobj->Scale);
+ fobj->Scale = NULL;
+ MEM_freeN(fobj->Active);
+ fobj->Active = NULL;
+ MEM_freeN(fobj->InitialVelocity);
+ fobj->InitialVelocity = NULL;
+ }
+
+ if (fobj->AttractforceStrength) {
+ MEM_freeN(fobj->AttractforceStrength);
+ fobj->AttractforceStrength = NULL;
+ MEM_freeN(fobj->AttractforceRadius);
+ fobj->AttractforceRadius = NULL;
+ MEM_freeN(fobj->VelocityforceStrength);
+ fobj->VelocityforceStrength = NULL;
+ MEM_freeN(fobj->VelocityforceRadius);
+ fobj->VelocityforceRadius = NULL;
+ }
+
+ if (fobj->VertexCache) {
+ MEM_freeN(fobj->VertexCache);
+ fobj->VertexCache = NULL;
+ }
}
+}
- cstr = "fluidsiminit_channelfloat";
- if(entries>1) cstr = "fluidsiminit_channelvec";
- channel = MEM_callocN( size* (entries+1)* sizeof(float), cstr );
+static void fluid_init_all_channels(bContext *C, Object *fsDomain, FluidsimSettings *domainSettings, FluidAnimChannels *channels, ListBase *fobjects)
+{
+ Scene *scene = CTX_data_scene(C);
+ Base *base;
+ int i;
+ int length = channels->length;
+ float eval_time;
- if(ipo) {
- for(j=0; j<entries; j++) icus[j] = find_ipocurve(ipo, icuIds[j] );
- } else {
- for(j=0; j<entries; j++) icus[j] = NULL;
- }
+ /* XXX: first init time channel - temporary for now */
+ /* init time values (should be done after evaluating animated time curve) */
+ init_time(domainSettings, channels);
- for(j=0; j<entries; j++) {
- if(icus[j]) {
- for(i=1; i<=size; i++) {
- /* Bugfix to make python drivers working
- // which uses Blender.get("curframe")
- */
- scene->r.cfra = floor(aniFrlen*((float)i));
+ /* allocate domain animation channels */
+ channels->DomainGravity = MEM_callocN( length * (CHANNEL_VEC+1) * sizeof(float), "channel DomainGravity");
+ channels->DomainViscosity = MEM_callocN( length * (CHANNEL_FLOAT+1) * sizeof(float), "channel DomainViscosity");
+ //channels->DomainTime = MEM_callocN( length * (CHANNEL_FLOAT+1) * sizeof(float), "channel DomainTime");
+
+ /* allocate fluid objects */
+ for (base=scene->base.first; base; base= base->next) {
+ Object *ob = base->object;
+ FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
+
+ if (fluidmd) {
+ FluidObject *fobj = MEM_callocN(sizeof(FluidObject), "Fluid Object");
+ fobj->object = ob;
+
+ if (ELEM(fluidmd->fss->type, OB_FLUIDSIM_DOMAIN, OB_FLUIDSIM_PARTICLE)) {
+ BLI_addtail(fobjects, fobj);
+ continue;
+ }
+
+ fobj->Translation = MEM_callocN( length * (CHANNEL_VEC+1) * sizeof(float), "fluidobject Translation");
+ fobj->Rotation = MEM_callocN( length * (CHANNEL_VEC+1) * sizeof(float), "fluidobject Rotation");
+ fobj->Scale = MEM_callocN( length * (CHANNEL_VEC+1) * sizeof(float), "fluidobject Scale");
+ fobj->Active = MEM_callocN( length * (CHANNEL_FLOAT+1) * sizeof(float), "fluidobject Active");
+ fobj->InitialVelocity = MEM_callocN( length * (CHANNEL_VEC+1) * sizeof(float), "fluidobject InitialVelocity");
+
+ if (fluidmd->fss->type == OB_FLUIDSIM_CONTROL) {
+ fobj->AttractforceStrength = MEM_callocN( length * (CHANNEL_FLOAT+1) * sizeof(float), "fluidobject AttractforceStrength");
+ fobj->AttractforceRadius = MEM_callocN( length * (CHANNEL_FLOAT+1) * sizeof(float), "fluidobject AttractforceRadius");
+ fobj->VelocityforceStrength = MEM_callocN( length * (CHANNEL_FLOAT+1) * sizeof(float), "fluidobject VelocityforceStrength");
+ fobj->VelocityforceRadius = MEM_callocN( length * (CHANNEL_FLOAT+1) * sizeof(float), "fluidobject VelocityforceRadius");
+ }
+
+ if (fluid_is_animated_mesh(fluidmd->fss)) {
+ float *verts=NULL;
+ int *tris=NULL, modifierIndex = modifiers_indexInObject(ob, (ModifierData *)fluidmd);
+
+ initElbeemMesh(scene, ob, &fobj->numVerts, &verts, &fobj->numTris, &tris, 0, modifierIndex);
+ fobj->VertexCache = MEM_callocN( length *((fobj->numVerts*CHANNEL_VEC)+1) * sizeof(float), "fluidobject VertexCache");
- // XXX calc_icu(icus[j], aniFrlen*((float)i) );
- channel[(i-1)*(entries+1) + j] = icus[j]->curval;
+ MEM_freeN(verts);
+ MEM_freeN(tris);
}
- } else {
- for(i=1; i<=size; i++) { channel[(i-1)*(entries+1) + j] = defaults[j]; }
+
+ BLI_addtail(fobjects, fobj);
}
- //printf("fluidsimInitChannel entry:%d , ",j); for(i=1; i<=size; i++) { printf(" val%d:%f ",i, channel[(i-1)*(entries+1) + j] ); } printf(" \n"); // DEBUG
}
- // set time values
- for(i=1; i<=size; i++) {
- channel[(i-1)*(entries+1) + entries] = time[i];
+
+ /* now we loop over the frames and fill the allocated channels with data */
+ for (i=0; i<channels->length; i++) {
+ FluidObject *fobj;
+ float viscosity, gravity[3];
+ float timeAtFrame;
+
+ eval_time = domainSettings->bakeStart + i;
+ timeAtFrame = channels->timeAtFrame[i+1];
+
+ /* XXX: This can't be used due to an anim sys optimisation that ignores recalc object animation,
+ * leaving it for the depgraph (this ignores object animation such as modifier properties though... :/ )
+ * --> BKE_animsys_evaluate_all_animation(G.main, eval_time);
+ * This doesn't work with drivers:
+ * --> BKE_animsys_evaluate_animdata(&fsDomain->id, fsDomain->adt, eval_time, ADT_RECALC_ALL);
+ */
+
+ /* Modifying the global scene isn't nice, but we can do it in
+ * this part of the process before a threaded job is created */
+ scene->r.cfra = (int)eval_time;
+ ED_update_for_newframe(C, 1);
+
+ /* now scene data should be current according to animation system, so we fill the channels */
+
+ /* Domain properties - gravity/viscosity/time */
+ get_fluid_gravity(gravity, scene, domainSettings);
+ set_channel(channels->DomainGravity, timeAtFrame, gravity, i, CHANNEL_VEC);
+ viscosity = get_fluid_viscosity(domainSettings);
+ set_channel(channels->DomainViscosity, timeAtFrame, &viscosity, i, CHANNEL_FLOAT);
+ // XXX : set_channel(channels->DomainTime, timeAtFrame, &time, i, CHANNEL_VEC);
+
+ /* object movement */
+ for (fobj=fobjects->first; fobj; fobj=fobj->next) {
+ Object *ob = fobj->object;
+ FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
+ float active= (float)(fluidmd->fss->flag & OB_FLUIDSIM_ACTIVE);
+ float rot_d[3], rot_360[3] = {360.f, 360.f, 360.f};
+
+ if (ELEM(fluidmd->fss->type, OB_FLUIDSIM_DOMAIN, OB_FLUIDSIM_PARTICLE))
+ continue;
+
+ /* init euler rotation values and convert to elbeem format */
+ BKE_rotMode_change_values(ob->quat, ob->rot, ob->rotAxis, &ob->rotAngle, ob->rotmode, ROT_MODE_EUL);
+ mul_v3_v3fl(rot_d, ob->rot, 180.f/M_PI);
+ sub_v3_v3v3(rot_d, rot_360, rot_d);
+
+ set_channel(fobj->Translation, timeAtFrame, ob->loc, i, CHANNEL_VEC);
+ set_channel(fobj->Rotation, timeAtFrame, rot_d, i, CHANNEL_VEC);
+ set_channel(fobj->Scale, timeAtFrame, ob->size, i, CHANNEL_VEC);
+ set_channel(fobj->Active, timeAtFrame, &active, i, CHANNEL_FLOAT);
+ set_channel(fobj->InitialVelocity, timeAtFrame, &fluidmd->fss->iniVelx, i, CHANNEL_VEC);
+
+ if (fluidmd->fss->type == OB_FLUIDSIM_CONTROL) {
+ set_channel(fobj->AttractforceStrength, timeAtFrame, &fluidmd->fss->attractforceStrength, i, CHANNEL_FLOAT);
+ set_channel(fobj->AttractforceRadius, timeAtFrame, &fluidmd->fss->attractforceRadius, i, CHANNEL_FLOAT);
+ set_channel(fobj->VelocityforceStrength, timeAtFrame, &fluidmd->fss->velocityforceStrength, i, CHANNEL_FLOAT);
+ set_channel(fobj->VelocityforceRadius, timeAtFrame, &fluidmd->fss->velocityforceRadius, i, CHANNEL_FLOAT);
+ }
+
+ if (fluid_is_animated_mesh(fluidmd->fss)) {
+ set_vertex_channel(fobj->VertexCache, timeAtFrame, scene, fobj, i);
+ }
+ }
}
- scene->r.cfra = current_frame;
- *setchannel = channel;
-#endif
}
-static void fluidsimInitMeshChannel(bContext *C, float **setchannel, int size, Object *obm, int vertices,
- float *time, int modifierIndex)
+static void export_fluid_objects(ListBase *fobjects, Scene *scene, int length)
{
- Scene *scene= CTX_data_scene(C);
- float *channel = NULL;
- int mallsize = size* (3*vertices+1);
- int frame,i;
- int numVerts=0, numTris=0;
- int setsize = 3*vertices+1;
-
- channel = MEM_callocN( mallsize* sizeof(float), "fluidsim_meshchannel" );
-
- //fprintf(stderr,"\n\nfluidsimInitMeshChannel size%d verts%d mallsize%d \n\n\n",size,vertices,mallsize);
- for(frame=1; frame<=size; frame++) {
+ FluidObject *fobj;
+
+ for (fobj=fobjects->first; fobj; fobj=fobj->next) {
+ Object *ob = fobj->object;
+ FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
+ int modifierIndex = modifiers_indexInObject(ob, (ModifierData *)fluidmd);
+
float *verts=NULL;
int *tris=NULL;
- scene->r.cfra = frame;
- ED_update_for_newframe(C, 1);
+ int numVerts=0, numTris=0;
+ int deform = fluid_is_animated_mesh(fluidmd->fss);
+
+ elbeemMesh fsmesh;
+
+ if (ELEM(fluidmd->fss->type, OB_FLUIDSIM_DOMAIN, OB_FLUIDSIM_PARTICLE))
+ continue;
+
+ elbeemResetMesh( &fsmesh );
+
+ fsmesh.type = fluidmd->fss->type;
+ fsmesh.name = ob->id.name;
+
+ initElbeemMesh(scene, ob, &numVerts, &verts, &numTris, &tris, 0, modifierIndex);
+
+ fsmesh.numVertices = numVerts;
+ fsmesh.numTriangles = numTris;
+ fsmesh.vertices = verts;
+ fsmesh.triangles = tris;
+
+ fsmesh.channelSizeTranslation =
+ fsmesh.channelSizeRotation =
+ fsmesh.channelSizeScale =
+ fsmesh.channelSizeInitialVel =
+ fsmesh.channelSizeActive = length;
+
+ fsmesh.channelTranslation = fobj->Translation;
+ fsmesh.channelRotation = fobj->Rotation;
+ fsmesh.channelScale = fobj->Scale;
+ fsmesh.channelActive = fobj->Active;
+
+ if( ELEM(fsmesh.type, OB_FLUIDSIM_FLUID, OB_FLUIDSIM_INFLOW)) {
+ fsmesh.channelInitialVel = fobj->InitialVelocity;
+ fsmesh.localInivelCoords = ((fluidmd->fss->typeFlags & OB_FSINFLOW_LOCALCOORD)?1:0);
+ }
+
+ if(fluidmd->fss->typeFlags & OB_FSBND_NOSLIP)
+ fsmesh.obstacleType = FLUIDSIM_OBSTACLE_NOSLIP;
+ else if(fluidmd->fss->typeFlags & OB_FSBND_PARTSLIP)
+ fsmesh.obstacleType = FLUIDSIM_OBSTACLE_PARTSLIP;
+ else if(fluidmd->fss->typeFlags & OB_FSBND_FREESLIP)
+ fsmesh.obstacleType = FLUIDSIM_OBSTACLE_FREESLIP;
+
+ fsmesh.obstaclePartslip = fluidmd->fss->partSlipValue;
+ fsmesh.volumeInitType = fluidmd->fss->volumeInitType;
+ fsmesh.obstacleImpactFactor = fluidmd->fss->surfaceSmoothing; // misused value
+
+ if (fsmesh.type == OB_FLUIDSIM_CONTROL) {
+ fsmesh.cpsTimeStart = fluidmd->fss->cpsTimeStart;
+ fsmesh.cpsTimeEnd = fluidmd->fss->cpsTimeEnd;
+ fsmesh.cpsQuality = fluidmd->fss->cpsQuality;
+ fsmesh.obstacleType = (fluidmd->fss->flag & OB_FLUIDSIM_REVERSE);
+
+ fsmesh.channelSizeAttractforceRadius =
+ fsmesh.channelSizeVelocityforceStrength =
+ fsmesh.channelSizeVelocityforceRadius =
+ fsmesh.channelSizeAttractforceStrength = length;
+
+ fsmesh.channelAttractforceStrength = fobj->AttractforceStrength;
+ fsmesh.channelAttractforceRadius = fobj->AttractforceRadius;
+ fsmesh.channelVelocityforceStrength = fobj->VelocityforceStrength;
+ fsmesh.channelVelocityforceRadius = fobj->VelocityforceRadius;
+ }
+ else {
+ fsmesh.channelAttractforceStrength =
+ fsmesh.channelAttractforceRadius =
+ fsmesh.channelVelocityforceStrength =
+ fsmesh.channelVelocityforceRadius = NULL;
+ }
+
+ /* animated meshes */
+ if(deform) {
+ fsmesh.channelSizeVertices = length;
+ fsmesh.channelVertices = fobj->VertexCache;
+
+ // remove channels
+ fsmesh.channelTranslation =
+ fsmesh.channelRotation =
+ fsmesh.channelScale = NULL;
+ }
+
+ elbeemAddMesh(&fsmesh);
+
+ if(verts) MEM_freeN(verts);
+ if(tris) MEM_freeN(tris);
+ if(fsmesh.channelVertices) MEM_freeN(fsmesh.channelVertices);
+ }
+}
+
+static int fluid_validate_scene(ReportList *reports, Scene *scene, Object *fsDomain)
+{
+ Base *base;
+ Object *newdomain = NULL;
+ int channelObjCount = 0;
+ int fluidInputCount = 0;
+
+ for(base=scene->base.first; base; base= base->next)
+ {
+ Object *ob = base->object;
+ FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
- initElbeemMesh(scene, obm, &numVerts, &verts, &numTris, &tris, 1, modifierIndex);
- //fprintf(stderr,"\nfluidsimInitMeshChannel frame%d verts%d/%d \n\n",frame,vertices,numVerts);
- for(i=0; i<3*vertices;i++) {
- channel[(frame-1)*setsize + i] = verts[i];
- //fprintf(stdout," frame%d vert%d=%f \n",frame,i,verts[i]);
- //if(i%3==2) fprintf(stdout,"\n");
+ /* only find objects with fluid modifiers */
+ if (!fluidmdtmp || ob->type != OB_MESH) continue;
+
+ if(fluidmdtmp->fss->type == OB_FLUIDSIM_DOMAIN) {
+ /* if no initial domain object given, find another potential domain */
+ if (!fsDomain) {
+ newdomain = ob;
+ }
+ /* if there's more than one domain, cancel */
+ else if (fsDomain && ob != fsDomain) {
+ BKE_report(reports, RPT_ERROR, "There should be only one domain object.");
+ return 0;
+ }
}
- channel[(frame-1)*setsize + setsize-1] = time[frame];
+
+ /* count number of objects needed for animation channels */
+ if ( !ELEM(fluidmdtmp->fss->type, OB_FLUIDSIM_DOMAIN, OB_FLUIDSIM_PARTICLE) )
+ channelObjCount++;
+
+ /* count number of fluid input objects */
+ if (ELEM(fluidmdtmp->fss->type, OB_FLUIDSIM_FLUID, OB_FLUIDSIM_INFLOW))
+ fluidInputCount++;
+ }
- MEM_freeN(verts);
- MEM_freeN(tris);
+ if (newdomain)
+ fsDomain = newdomain;
+
+ if (!fsDomain) {
+ BKE_report(reports, RPT_ERROR, "No domain object found.");
+ return 0;
+ }
+
+ if (channelObjCount>=255) {
+ BKE_report(reports, RPT_ERROR, "Cannot bake with more then 256 objects.");
+ return 0;
}
- *setchannel = channel;
+
+ if (fluidInputCount == 0) {
+ BKE_report(reports, RPT_ERROR, "No fluid input objects in the scene.");
+ return 0;
+ }
+
+ return 1;
}
+#define FLUID_SUFFIX_CONFIG "fluidsim.cfg"
+#define FLUID_SUFFIX_SURFACE "fluidsurface"
+
+static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetFile, char *debugStrBuffer)
+{
+ FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(fsDomain, eModifierType_Fluidsim);
+ FluidsimSettings *domainSettings= fluidmd->fss;
+ FILE *fileCfg;
+ int dirExist = 0;
+ char newSurfdataPath[FILE_MAXDIR+FILE_MAXFILE]; // modified output settings
+ char *suffixConfig = FLUID_SUFFIX_CONFIG;
+ int outStringsChanged = 0;
+
+ // prepare names...
+ strncpy(targetDir, domainSettings->surfdataPath, FILE_MAXDIR);
+ strncpy(newSurfdataPath, domainSettings->surfdataPath, FILE_MAXDIR);
+ BLI_path_abs(targetDir, G.sce); // fixed #frame-no
+
+ strcpy(targetFile, targetDir);
+ strcat(targetFile, suffixConfig);
+ strcat(targetFile,".tmp"); // dont overwrite/delete original file
+ // make sure all directories exist
+ // as the bobjs use the same dir, this only needs to be checked
+ // for the cfg output
+ BLI_make_existing_file(targetFile);
+
+ // check selected directory
+ // simply try to open cfg file for writing to test validity of settings
+ fileCfg = fopen(targetFile, "w");
+ if(fileCfg) {
+ dirExist = 1; fclose(fileCfg);
+ // remove cfg dummy from directory test
+ BLI_delete(targetFile, 0,0);
+ }
+
+ if((strlen(targetDir)<1) || (!dirExist)) {
+ char blendDir[FILE_MAXDIR+FILE_MAXFILE];
+ char blendFile[FILE_MAXDIR+FILE_MAXFILE];
+
+ // invalid dir, reset to current/previous
+ strcpy(blendDir, G.sce);
+ BLI_splitdirstring(blendDir, blendFile);
+ if(strlen(blendFile)>6){
+ int len = strlen(blendFile);
+ if( (blendFile[len-6]=='.')&& (blendFile[len-5]=='b')&& (blendFile[len-4]=='l')&&
+ (blendFile[len-3]=='e')&& (blendFile[len-2]=='n')&& (blendFile[len-1]=='d') ){
+ blendFile[len-6] = '\0';
+ }
+ }
+ // todo... strip .blend ?
+ snprintf(newSurfdataPath,FILE_MAXFILE+FILE_MAXDIR,"//fluidsimdata/%s_%s_", blendFile, fsDomain->id.name);
+
+ snprintf(debugStrBuffer,256,"fluidsimBake::error - warning resetting output dir to '%s'\n", newSurfdataPath);
+ elbeemDebugOut(debugStrBuffer);
+ outStringsChanged=1;
+ }
+
+ // check if modified output dir is ok
+#if 0
+ if(outStringsChanged) {
+ char dispmsg[FILE_MAXDIR+FILE_MAXFILE+256];
+ int selection=0;
+ strcpy(dispmsg,"Output settings set to: '");
+ strcat(dispmsg, newSurfdataPath);
+ strcat(dispmsg, "'%t|Continue with changed settings%x1|Discard and abort%x0");
+
+ // ask user if thats what he/she wants...
+ selection = pupmenu(dispmsg);
+ if(selection<1) return 0; // 0 from menu, or -1 aborted
+ strcpy(targetDir, newSurfdataPath);
+ strncpy(domainSettings->surfdataPath, newSurfdataPath, FILE_MAXDIR);
+ BLI_path_abs(targetDir, G.sce); // fixed #frame-no
+ }
+#endif
+ return outStringsChanged;
+}
+
/* ******************************************************************************** */
-/* ********************** simulation thread ************************* */
+/* ********************** write fluidsim config to file ************************* */
/* ******************************************************************************** */
-static volatile int globalBakeState = 0; // 0 everything ok, -1 abort simulation, -2 sim error, 1 sim done
-static volatile int globalBakeFrame = 0;
-static volatile int g_break= 0;
+typedef struct FluidBakeJob {
+ /* from wmJob */
+ void *owner;
+ short *stop, *do_update;
+ float *progress;
+ int current_frame;
+ elbeemSimulationSettings *settings;
+} FluidBakeJob;
-// run simulation in seperate thread
-static void *fluidsimSimulateThread(void *unused) { // *ptr) {
- //char* fnameCfgPath = (char*)(ptr);
- int ret=0;
+static void fluidbake_free(void *customdata)
+{
+ FluidBakeJob *fb= customdata;
+ MEM_freeN(fb);
+}
+
+/* called by fluidbake, only to check job 'stop' value */
+static int fluidbake_breakjob(void *customdata)
+{
+ //FluidBakeJob *fb= (FluidBakeJob *)customdata;
+ //return *(fb->stop);
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
- // Workaround for Apple gcc 4.2.1 omp vs background thread bug
- pthread_setspecific (gomp_tls_key, thread_tls_data);
-#endif
+ /* this is not nice yet, need to make the jobs list template better
+ * for identifying/acting upon various different jobs */
+ /* but for now we'll reuse the render break... */
+ return (G.afbreek);
+}
- ret = elbeemSimulate();
- BLI_lock_thread(LOCK_CUSTOM1);
- if(globalBakeState==0) {
- if(ret==0) {
- // if no error, set to normal exit
- globalBakeState = 1;
- } else {
- // simulation failed, display error
- globalBakeState = -2;
- }
- }
- BLI_unlock_thread(LOCK_CUSTOM1);
- return NULL;
+/* called by fluidbake, wmJob sends notifier */
+static void fluidbake_updatejob(void *customdata, float progress)
+{
+ FluidBakeJob *fb= customdata;
+
+ *(fb->do_update)= 1;
+ *(fb->progress)= progress;
}
+static void fluidbake_startjob(void *customdata, short *stop, short *do_update, float *progress)
+{
+ FluidBakeJob *fb= customdata;
+
+ fb->stop= stop;
+ fb->do_update = do_update;
+ fb->progress = progress;
+
+ G.afbreek= 0; /* XXX shared with render - replace with job 'stop' switch */
+
+ elbeemSimulate();
+ *do_update= 1;
+ *stop = 0;
+}
-int runSimulationCallback(void *data, int status, int frame) {
- //elbeemSimulationSettings *settings = (elbeemSimulationSettings*)data;
- //printf("elbeem blender cb s%d, f%d, domainid:%d \n", status,frame, settings->domainId ); // DEBUG
- int state = 0;
- if(status==FLUIDSIM_CBSTATUS_NEWFRAME) {
- BLI_lock_thread(LOCK_CUSTOM1);
- globalBakeFrame = frame-1;
- BLI_unlock_thread(LOCK_CUSTOM1);
+static void fluidbake_endjob(void *customdata)
+{
+ FluidBakeJob *fb= customdata;
+
+ if (fb->settings) {
+ MEM_freeN(fb->settings);
+ fb->settings = NULL;
}
+}
+
+int runSimulationCallback(void *data, int status, int frame) {
+ FluidBakeJob *fb = (FluidBakeJob *)data;
+ elbeemSimulationSettings *settings = fb->settings;
- //if((frameCounter==3) && (!frameStop)) { frameStop=1; return 1; }
-
- BLI_lock_thread(LOCK_CUSTOM1);
- state = globalBakeState;
- BLI_unlock_thread(LOCK_CUSTOM1);
+ if (status == FLUIDSIM_CBSTATUS_NEWFRAME) {
+ fluidbake_updatejob(fb, frame / (float)settings->noOfFrames);
+ //printf("elbeem blender cb s%d, f%d, domainid:%d noOfFrames: %d \n", status,frame, settings->domainId, settings->noOfFrames ); // DEBUG
+ }
- if(state!=0) {
+ if (fluidbake_breakjob(fb)) {
return FLUIDSIM_CBRET_ABORT;
}
return FLUIDSIM_CBRET_CONTINUE;
}
+static void fluidbake_free_data(FluidAnimChannels *channels, ListBase *fobjects, elbeemSimulationSettings *fsset, FluidBakeJob *fb)
+{
+ free_domain_channels(channels);
+ MEM_freeN(channels);
+ channels = NULL;
+
+ free_all_fluidobject_channels(fobjects);
+ BLI_freelistN(fobjects);
+ MEM_freeN(fobjects);
+ fobjects = NULL;
+
+ if (fsset) {
+ MEM_freeN(fsset);
+ fsset = NULL;
+ }
+
+ if (fb) {
+ MEM_freeN(fb);
+ fb = NULL;
+ }
+}
-/* ******************************************************************************** */
-/* ********************** write fluidsim config to file ************************* */
-/* ******************************************************************************** */
-
-int fluidsimBake(bContext *C, ReportList *reports, Object *ob)
+int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain)
{
Scene *scene= CTX_data_scene(C);
- FILE *fileCfg;
int i;
- Object *fsDomain = NULL;
FluidsimSettings *domainSettings;
- Object *obit = NULL; /* object iterator */
- Base *base;
- int origFrame = scene->r.cfra;
+
char debugStrBuffer[256];
- int dirExist = 0;
+
int gridlevels = 0;
- int simAborted = 0; // was the simulation aborted by user?
- int doExportOnly = 0;
- char *exportEnvStr = "BLENDER_ELBEEMEXPORTONLY";
const char *strEnvName = "BLENDER_ELBEEMDEBUG"; // from blendercall.cpp
- //char *channelNames[3] = { "translation","rotation","scale" };
+ char *suffixConfig = FLUID_SUFFIX_CONFIG;
+ char *suffixSurface = FLUID_SUFFIX_SURFACE;
- char *suffixConfig = "fluidsim.cfg";
- char *suffixSurface = "fluidsurface";
- char newSurfdataPath[FILE_MAXDIR+FILE_MAXFILE]; // modified output settings
char targetDir[FILE_MAXDIR+FILE_MAXFILE]; // store & modify output settings
char targetFile[FILE_MAXDIR+FILE_MAXFILE]; // temp. store filename from targetDir for access
int outStringsChanged = 0; // modified? copy back before baking
- int haveSomeFluid = 0; // check if any fluid objects are set
- // config vars, inited before either export or run...
- double calcViscosity = 0.0;
- int noFrames;
- double aniFrameTime;
- float aniFrlen;
- int channelObjCount;
- float *bbStart = NULL;
- float *bbSize = NULL;
float domainMat[4][4];
float invDomMat[4][4];
- // channel data
- int allchannelSize; // fixed by no. of frames
- int startFrame = 1; // dont use scene->r.sfra here, always start with frame 1
- // easy frame -> sim time calc
- float *timeAtFrame=NULL, *timeAtIndex=NULL;
- // domain
- float *channelDomainTime = NULL;
- float *channelDomainViscosity = NULL;
- float *channelDomainGravity = NULL;
- // objects (currently max. 256 objs)
- float *channelObjMove[256][3]; // object movments , 0=trans, 1=rot, 2=scale
- float *channelObjInivel[256]; // initial velocities
- float *channelObjActive[256]; // obj active channel
-
- /* fluid control channels */
- float *channelAttractforceStrength[256];
- float *channelAttractforceRadius[256];
- float *channelVelocityforceStrength[256];
- float *channelVelocityforceRadius[256];
+
+ int noFrames;
+ int origFrame = scene->r.cfra;
+
+ FluidAnimChannels *channels = MEM_callocN(sizeof(FluidAnimChannels), "fluid domain animation channels");
+ ListBase *fobjects = MEM_callocN(sizeof(ListBase), "fluid objects");
FluidsimModifierData *fluidmd = NULL;
Mesh *mesh = NULL;
+ wmJob *steve;
+ FluidBakeJob *fb;
+ elbeemSimulationSettings *fsset= MEM_callocN(sizeof(elbeemSimulationSettings), "Fluid sim settings");
+
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Fluid Simulation", WM_JOB_PROGRESS);
+ fb= MEM_callocN(sizeof(FluidBakeJob), "fluid bake job");
+
if(getenv(strEnvName)) {
int dlevel = atoi(getenv(strEnvName));
elbeemSetDebugLevel(dlevel);
snprintf(debugStrBuffer,256,"fluidsimBake::msg: Debug messages activated due to envvar '%s'\n",strEnvName);
elbeemDebugOut(debugStrBuffer);
}
- if(getenv(exportEnvStr)) {
- doExportOnly = atoi(getenv(exportEnvStr));
- snprintf(debugStrBuffer,256,"fluidsimBake::msg: Exporting mode set to '%d' due to envvar '%s'\n",doExportOnly, exportEnvStr);
- elbeemDebugOut(debugStrBuffer);
- }
-
- // make sure it corresponds to startFrame setting
- // old: noFrames = scene->r.efra - scene->r.sfra +1;
+
+ /* make sure it corresponds to startFrame setting (old: noFrames = scene->r.efra - scene->r.sfra +1) */;
noFrames = scene->r.efra - 0;
if(noFrames<=0) {
BKE_report(reports, RPT_ERROR, "No frames to export - check your animation range settings.");
+ fluidbake_free_data(channels, fobjects, fsset, fb);
return 0;
}
-
- /* no object pointer, find in selected ones.. */
- if(!ob) {
- for(base=scene->base.first; base; base= base->next) {
- if ((base)->flag & SELECT)
- {
- FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(base->object, eModifierType_Fluidsim);
-
- if(fluidmdtmp && (base->object->type==OB_MESH))
- {
- if(fluidmdtmp->fss->type == OB_FLUIDSIM_DOMAIN)
- {
- ob = base->object;
- break;
- }
- }
- }
- }
- // no domains found?
- if(!ob) return 0;
- }
- channelObjCount = 0;
- for(base=scene->base.first; base; base= base->next)
- {
- FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(base->object, eModifierType_Fluidsim);
- obit = base->object;
- if( fluidmdtmp &&
- (obit->type==OB_MESH) &&
- (fluidmdtmp->fss->type != OB_FLUIDSIM_DOMAIN) && // if has to match 3 places! // CHECKMATCH
- (fluidmdtmp->fss->type != OB_FLUIDSIM_PARTICLE) )
- {
- channelObjCount++;
- }
- }
-
- if (channelObjCount>=255) {
- BKE_report(reports, RPT_ERROR, "Cannot bake with more then 256 objects.");
- return 0;
- }
-
- /* check if there's another domain... */
- for(base=scene->base.first; base; base= base->next)
- {
- FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(base->object, eModifierType_Fluidsim);
- obit = base->object;
- if( fluidmdtmp &&(obit->type==OB_MESH))
- {
- if(fluidmdtmp->fss->type == OB_FLUIDSIM_DOMAIN)
- {
- if(obit != ob)
- {
- BKE_report(reports, RPT_ERROR, "There should be only one domain object.");
- return 0;
- }
- }
- }
- }
-
- // check if theres any fluid
- // abort baking if not...
- for(base=scene->base.first; base; base= base->next)
- {
- FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(base->object, eModifierType_Fluidsim);
- obit = base->object;
- if( fluidmdtmp &&
- (obit->type==OB_MESH) &&
- ((fluidmdtmp->fss->type == OB_FLUIDSIM_FLUID) ||
- (fluidmdtmp->fss->type == OB_FLUIDSIM_INFLOW) ))
- {
- haveSomeFluid = 1;
- break;
- }
- }
- if(!haveSomeFluid) {
- BKE_report(reports, RPT_ERROR, "No fluid objects in scene.");
+ /* check scene for sane object/modifier settings */
+ if (!fluid_validate_scene(reports, scene, fsDomain)) {
+ fluidbake_free_data(channels, fobjects, fsset, fb);
return 0;
}
/* these both have to be valid, otherwise we wouldnt be here */
- /* dont use ob here after...*/
- fsDomain = ob;
- fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
+ fluidmd = (FluidsimModifierData *)modifiers_findByType(fsDomain, eModifierType_Fluidsim);
domainSettings = fluidmd->fss;
- ob = NULL;
mesh = fsDomain->data;
+ domainSettings->bakeStart = 1;
+ domainSettings->bakeEnd = scene->r.efra;
+
// calculate bounding box
fluid_get_bb(mesh->mvert, mesh->totvert, fsDomain->obmat, domainSettings->bbStart, domainSettings->bbSize);
@@ -572,107 +899,26 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *ob)
}
snprintf(debugStrBuffer,256,"fluidsimBake::msg: Baking %s, refine: %d\n", fsDomain->id.name , gridlevels );
elbeemDebugOut(debugStrBuffer);
-
- // prepare names...
- strncpy(targetDir, domainSettings->surfdataPath, FILE_MAXDIR);
- strncpy(newSurfdataPath, domainSettings->surfdataPath, FILE_MAXDIR);
- BLI_convertstringcode(targetDir, G.sce); // fixed #frame-no
-
- strcpy(targetFile, targetDir);
- strcat(targetFile, suffixConfig);
- if(!doExportOnly) { strcat(targetFile,".tmp"); } // dont overwrite/delete original file
- // make sure all directories exist
- // as the bobjs use the same dir, this only needs to be checked
- // for the cfg output
- BLI_make_existing_file(targetFile);
-
- // check selected directory
- // simply try to open cfg file for writing to test validity of settings
- fileCfg = fopen(targetFile, "w");
- if(fileCfg) {
- dirExist = 1; fclose(fileCfg);
- // remove cfg dummy from directory test
- if(!doExportOnly) { BLI_delete(targetFile, 0,0); }
- }
-
- if((strlen(targetDir)<1) || (!dirExist)) {
- char blendDir[FILE_MAXDIR+FILE_MAXFILE], blendFile[FILE_MAXDIR+FILE_MAXFILE];
- // invalid dir, reset to current/previous
- strcpy(blendDir, G.sce);
- BLI_splitdirstring(blendDir, blendFile);
- if(strlen(blendFile)>6){
- int len = strlen(blendFile);
- if( (blendFile[len-6]=='.')&& (blendFile[len-5]=='b')&& (blendFile[len-4]=='l')&&
- (blendFile[len-3]=='e')&& (blendFile[len-2]=='n')&& (blendFile[len-1]=='d') ){
- blendFile[len-6] = '\0';
- }
- }
- // todo... strip .blend ?
- snprintf(newSurfdataPath,FILE_MAXFILE+FILE_MAXDIR,"//fluidsimdata/%s_%s_", blendFile, fsDomain->id.name);
-
- snprintf(debugStrBuffer,256,"fluidsimBake::error - warning resetting output dir to '%s'\n", newSurfdataPath);
- elbeemDebugOut(debugStrBuffer);
- outStringsChanged=1;
- }
-
- // check if modified output dir is ok
- if(outStringsChanged) {
- char dispmsg[FILE_MAXDIR+FILE_MAXFILE+256];
- int selection=0;
- strcpy(dispmsg,"Output settings set to: '");
- strcat(dispmsg, newSurfdataPath);
- strcat(dispmsg, "'%t|Continue with changed settings%x1|Discard and abort%x0");
-
- // ask user if thats what he/she wants...
- selection = pupmenu(dispmsg);
- if(selection<1) return 0; // 0 from menu, or -1 aborted
- strcpy(targetDir, newSurfdataPath);
- strncpy(domainSettings->surfdataPath, newSurfdataPath, FILE_MAXDIR);
- BLI_convertstringcode(targetDir, G.sce); // fixed #frame-no
- }
- // --------------------------------------------------------------------------------------------
- // dump data for start frame
- // CHECK more reasonable to number frames according to blender?
- // dump data for frame 0
- scene->r.cfra = startFrame;
- ED_update_for_newframe(C, 1);
- // init common export vars for both file export and run
- for(i=0; i<256; i++) {
- channelObjMove[i][0] = channelObjMove[i][1] = channelObjMove[i][2] = NULL;
- channelObjInivel[i] = NULL;
- channelObjActive[i] = NULL;
- channelAttractforceStrength[i] = NULL;
- channelAttractforceRadius[i] = NULL;
- channelVelocityforceStrength[i] = NULL;
- channelVelocityforceRadius[i] = NULL;
- }
- allchannelSize = scene->r.efra; // always use till last frame
- aniFrameTime = (domainSettings->animEnd - domainSettings->animStart)/(double)noFrames;
- // blender specific - scale according to map old/new settings in anim panel:
- aniFrlen = scene->r.framelen;
- if(domainSettings->viscosityMode==1) {
- /* manual mode, visc=value/(10^-vexp) */
- calcViscosity = (1.0/pow(10.0,domainSettings->viscosityExponent)) * domainSettings->viscosityValue;
- } else {
- calcViscosity = fluidsimViscosityPreset[ domainSettings->viscosityMode ];
- }
-
- bbStart = domainSettings->bbStart;
- bbSize = domainSettings->bbSize;
+
+ /* ******** prepare output file paths ******** */
+ outStringsChanged = fluid_init_filepaths(fsDomain, targetDir, targetFile, debugStrBuffer);
+ channels->length = scene->r.efra;
+ channels->aniFrameTime = (domainSettings->animEnd - domainSettings->animStart)/(double)noFrames;
+
+ /* ******** initialise and allocate animation channels ******** */
+ fluid_init_all_channels(C, fsDomain, domainSettings, channels, fobjects);
- // always init
+ /* reset to original current frame */
+ scene->r.cfra = origFrame;
+ ED_update_for_newframe(C, 1);
+
+
+ /* ---- XXX: No Time animation curve for now, leaving this code here for reference
+
{ int timeIcu[1] = { FLUIDSIM_TIME };
float timeDef[1] = { 1. };
- int gravIcu[3] = { FLUIDSIM_GRAV_X, FLUIDSIM_GRAV_Y, FLUIDSIM_GRAV_Z };
- float gravDef[3];
- int viscIcu[1] = { FLUIDSIM_VISC };
- float viscDef[1] = { 1. };
-
- gravDef[0] = domainSettings->gravx;
- gravDef[1] = domainSettings->gravy;
- gravDef[2] = domainSettings->gravz;
// time channel is a bit special, init by hand...
timeAtIndex = MEM_callocN( (allchannelSize+1)*1*sizeof(float), "fluidsiminit_timeatindex");
@@ -680,7 +926,7 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *ob)
timeAtIndex[i] = (float)(i-startFrame);
}
fluidsimInitChannel(scene, &channelDomainTime, allchannelSize, timeAtIndex, timeIcu,timeDef, domainSettings->ipo, CHANNEL_FLOAT ); // NDEB
- // time channel is a multiplicator for aniFrameTime
+ // time channel is a multiplicator for
if(channelDomainTime) {
for(i=0; i<allchannelSize; i++) {
channelDomainTime[i*2+0] = aniFrameTime * channelDomainTime[i*2+0];
@@ -693,474 +939,112 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *ob)
for(i=2; i<=allchannelSize; i++) {
timeAtFrame[i] = timeAtFrame[i-1]+channelDomainTime[(i-1)*2+0];
}
- } else {
+ fsset->} else {
for(i=2; i<=allchannelSize; i++) { timeAtFrame[i] = timeAtFrame[i-1]+aniFrameTime; }
}
- fluidsimInitChannel(scene, &channelDomainViscosity, allchannelSize, timeAtFrame, viscIcu,viscDef, domainSettings->ipo, CHANNEL_FLOAT ); // NDEB
- if(channelDomainViscosity) {
- for(i=0; i<allchannelSize; i++) { channelDomainViscosity[i*2+0] = calcViscosity * channelDomainViscosity[i*2+0]; }
- }
- fluidsimInitChannel(scene, &channelDomainGravity, allchannelSize, timeAtFrame, gravIcu,gravDef, domainSettings->ipo, CHANNEL_VEC );
} // domain channel init
-
- // init obj movement channels
- channelObjCount=0;
- for(base=scene->base.first; base; base= base->next)
- {
- FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(base->object, eModifierType_Fluidsim);
- obit = base->object;
+ */
- if( fluidmdtmp &&
- (obit->type==OB_MESH) &&
- (fluidmdtmp->fss->type != OB_FLUIDSIM_DOMAIN) && // if has to match 3 places! // CHECKMATCH
- (fluidmdtmp->fss->type != OB_FLUIDSIM_PARTICLE) ) {
-
- // cant use fluidsimInitChannel for obj channels right now, due
- // to the special DXXX channels, and the rotation specialities
- IpoCurve *icuex[3][3];
- //IpoCurve *par_icuex[3][3];
-#if 0
- int icuIds[3][3] = {
- {OB_LOC_X, OB_LOC_Y, OB_LOC_Z},
- {OB_ROT_X, OB_ROT_Y, OB_ROT_Z},
- {OB_SIZE_X, OB_SIZE_Y, OB_SIZE_Z}
- };
- int icudIds[3][3] = {
- {OB_DLOC_X, OB_DLOC_Y, OB_DLOC_Z},
- {OB_DROT_X, OB_DROT_Y, OB_DROT_Z},
- {OB_DSIZE_X, OB_DSIZE_Y, OB_DSIZE_Z}
- };
-#endif
- // relative ipos
- IpoCurve *icudex[3][3];
- //IpoCurve *par_icudex[3][3];
- int j,k;
- float vals[3] = {0.0,0.0,0.0};
- int o = channelObjCount;
- int inivelIcu[3] = { FLUIDSIM_VEL_X, FLUIDSIM_VEL_Y, FLUIDSIM_VEL_Z };
- float inivelDefs[3];
- int activeIcu[1] = { FLUIDSIM_ACTIVE };
- float activeDefs[1] = { 1 }; // default to on
-
- inivelDefs[0] = fluidmdtmp->fss->iniVelx;
- inivelDefs[1] = fluidmdtmp->fss->iniVely;
- inivelDefs[2] = fluidmdtmp->fss->iniVelz;
-
- // check & init loc,rot,size
- for(j=0; j<3; j++) {
- for(k=0; k<3; k++) {
- // XXX prevent invalid memory access until this works
- icuex[j][k]= NULL;
- icudex[j][k]= NULL;
-
- // XXX icuex[j][k] = find_ipocurve(obit->ipo, icuIds[j][k] );
- // XXX icudex[j][k] = find_ipocurve(obit->ipo, icudIds[j][k] );
- // XXX lines below were already disabled!
- //if(obit->parent) {
- //par_icuex[j][k] = find_ipocurve(obit->parent->ipo, icuIds[j][k] );
- //par_icudex[j][k] = find_ipocurve(obit->parent->ipo, icudIds[j][k] );
- //}
- }
- }
-
- for(j=0; j<3; j++) {
- channelObjMove[o][j] = MEM_callocN( allchannelSize*4*sizeof(float), "fluidsiminit_objmovchannel");
- for(i=1; i<=allchannelSize; i++) {
-
- for(k=0; k<3; k++) {
- if(icuex[j][k]) {
- // IPO exists, use it ...
- // XXX calc_icu(icuex[j][k], aniFrlen*((float)i) );
- vals[k] = icuex[j][k]->curval;
- if(obit->parent) {
- // add parent transform, multiply scaling, add trafo&rot
- //calc_icu(par_icuex[j][k], aniFrlen*((float)i) );
- //if(j==2) { vals[k] *= par_icuex[j][k]->curval; }
- //else { vals[k] += par_icuex[j][k]->curval; }
- }
- } else {
- // use defaults from static values
- float setval=0.0;
- if(j==0) {
- setval = obit->loc[k];
- if(obit->parent){ setval += obit->parent->loc[k]; }
- } else if(j==1) {
- setval = ( 180.0*obit->rot[k] )/( 10.0*M_PI );
- if(obit->parent){ setval = ( 180.0*(obit->rot[k]+obit->parent->rot[k]) )/( 10.0*M_PI ); }
- } else {
- setval = obit->size[k];
- if(obit->parent){ setval *= obit->parent->size[k]; }
- }
- vals[k] = setval;
- }
- if(icudex[j][k]) {
- // XXX calc_icu(icudex[j][k], aniFrlen*((float)i) );
- //vals[k] += icudex[j][k]->curval;
- // add transform, multiply scaling, add trafo&rot
- if(j==2) { vals[k] *= icudex[j][k]->curval; }
- else { vals[k] += icudex[j][k]->curval; }
- if(obit->parent) {
- // add parent transform, multiply scaling, add trafo&rot
- //calc_icu(par_icuex[j][k], aniFrlen*((float)i) );
- //if(j==2) { vals[k] *= par_icudex[j][k]->curval; }
- //else { vals[k] += par_icudex[j][k]->curval; }
- }
- }
- } // k
-
- for(k=0; k<3; k++) {
- float set = vals[k];
- if(j==1) { // rot is downscaled by 10 for ipo !?
- set = 360.0 - (10.0*set);
- }
- channelObjMove[o][j][(i-1)*4 + k] = set;
- } // k
- channelObjMove[o][j][(i-1)*4 + 3] = timeAtFrame[i];
- }
- }
-
- {
- int attrFSIcu[1] = { FLUIDSIM_ATTR_FORCE_STR };
- int attrFRIcu[1] = { FLUIDSIM_ATTR_FORCE_RADIUS };
- int velFSIcu[1] = { FLUIDSIM_VEL_FORCE_STR };
- int velFRIcu[1] = { FLUIDSIM_VEL_FORCE_RADIUS };
-
- float attrFSDefs[1];
- float attrFRDefs[1];
- float velFSDefs[1];
- float velFRDefs[1];
-
- attrFSDefs[0] = fluidmdtmp->fss->attractforceStrength;
- attrFRDefs[0] = fluidmdtmp->fss->attractforceRadius;
- velFSDefs[0] = fluidmdtmp->fss->velocityforceStrength;
- velFRDefs[0] = fluidmdtmp->fss->velocityforceRadius;
-
- fluidsimInitChannel(scene, &channelAttractforceStrength[o], allchannelSize, timeAtFrame, attrFSIcu,attrFSDefs, fluidmdtmp->fss->ipo, CHANNEL_FLOAT );
- fluidsimInitChannel(scene, &channelAttractforceRadius[o], allchannelSize, timeAtFrame, attrFRIcu,attrFRDefs, fluidmdtmp->fss->ipo, CHANNEL_FLOAT );
- fluidsimInitChannel(scene, &channelVelocityforceStrength[o], allchannelSize, timeAtFrame, velFSIcu,velFSDefs, fluidmdtmp->fss->ipo, CHANNEL_FLOAT );
- fluidsimInitChannel(scene, &channelVelocityforceRadius[o], allchannelSize, timeAtFrame, velFRIcu,velFRDefs, fluidmdtmp->fss->ipo, CHANNEL_FLOAT );
- }
-
- fluidsimInitChannel(scene, &channelObjInivel[o], allchannelSize, timeAtFrame, inivelIcu,inivelDefs, fluidmdtmp->fss->ipo, CHANNEL_VEC );
- fluidsimInitChannel(scene, &channelObjActive[o], allchannelSize, timeAtFrame, activeIcu,activeDefs, fluidmdtmp->fss->ipo, CHANNEL_FLOAT );
-
-
- channelObjCount++;
-
- }
- }
-
- // init trafo matrix
+ /* ******** init domain object's matrix ******** */
copy_m4_m4(domainMat, fsDomain->obmat);
if(!invert_m4_m4(invDomMat, domainMat)) {
snprintf(debugStrBuffer,256,"fluidsimBake::error - Invalid obj matrix?\n");
elbeemDebugOut(debugStrBuffer);
BKE_report(reports, RPT_ERROR, "Invalid object matrix.");
- // FIXME add fatal msg
- FS_FREE_CHANNELS;
+
+ fluidbake_free_data(channels, fobjects, fsset, fb);
return 0;
}
- // --------------------------------------------------------------------------------------------
- // start writing / exporting
+ /* ******** start writing / exporting ******** */
strcpy(targetFile, targetDir);
strcat(targetFile, suffixConfig);
- if(!doExportOnly) { strcat(targetFile,".tmp"); } // dont overwrite/delete original file
+ strcat(targetFile,".tmp"); // dont overwrite/delete original file
+
// make sure these directories exist as well
if(outStringsChanged) {
BLI_make_existing_file(targetFile);
}
- if(!doExportOnly) {
- ListBase threads;
+ /* ******** export domain to elbeem ******** */
+ elbeemResetSettings(fsset);
+ fsset->version = 1;
- // perform simulation with El'Beem api and threads
- elbeemSimulationSettings fsset;
- elbeemResetSettings(&fsset);
- fsset.version = 1;
+ // setup global settings
+ copy_v3_v3(fsset->geoStart, domainSettings->bbStart);
+ copy_v3_v3(fsset->geoSize, domainSettings->bbSize);
+
+ // simulate with 50^3
+ fsset->resolutionxyz = (int)domainSettings->resolutionxyz;
+ fsset->previewresxyz = (int)domainSettings->previewresxyz;
- // setup global settings
- for(i=0 ; i<3; i++) fsset.geoStart[i] = bbStart[i];
- for(i=0 ; i<3; i++) fsset.geoSize[i] = bbSize[i];
-
- // simulate with 50^3
- fsset.resolutionxyz = (int)domainSettings->resolutionxyz;
- fsset.previewresxyz = (int)domainSettings->previewresxyz;
- // 10cm water domain
- fsset.realsize = domainSettings->realsize;
- fsset.viscosity = calcViscosity;
- // earth gravity
- fsset.gravity[0] = domainSettings->gravx;
- fsset.gravity[1] = domainSettings->gravy;
- fsset.gravity[2] = domainSettings->gravz;
- // simulate 5 frames, each 0.03 seconds, output to ./apitest_XXX.bobj.gz
- fsset.animStart = domainSettings->animStart;
- fsset.aniFrameTime = aniFrameTime;
- fsset.noOfFrames = noFrames; // is otherwise subtracted in parser
- strcpy(targetFile, targetDir);
- strcat(targetFile, suffixSurface);
- // defaults for compressibility and adaptive grids
- fsset.gstar = domainSettings->gstar;
- fsset.maxRefine = domainSettings->maxRefine; // check <-> gridlevels
- fsset.generateParticles = domainSettings->generateParticles;
- fsset.numTracerParticles = domainSettings->generateTracers;
- fsset.surfaceSmoothing = domainSettings->surfaceSmoothing;
- fsset.surfaceSubdivs = domainSettings->surfaceSubdivs;
- fsset.farFieldSize = domainSettings->farFieldSize;
- strcpy( fsset.outputPath, targetFile);
-
- // domain channels
- fsset.channelSizeFrameTime =
- fsset.channelSizeViscosity =
- fsset.channelSizeGravity = allchannelSize;
- fsset.channelFrameTime = channelDomainTime;
- fsset.channelViscosity = channelDomainViscosity;
- fsset.channelGravity = channelDomainGravity;
-
- fsset.runsimCallback = &runSimulationCallback;
- fsset.runsimUserData = &fsset;
-
- if( (domainSettings->typeFlags&OB_FSBND_NOSLIP)) fsset.domainobsType = FLUIDSIM_OBSTACLE_NOSLIP;
- else if((domainSettings->typeFlags&OB_FSBND_PARTSLIP)) fsset.domainobsType = FLUIDSIM_OBSTACLE_PARTSLIP;
- else if((domainSettings->typeFlags&OB_FSBND_FREESLIP)) fsset.domainobsType = FLUIDSIM_OBSTACLE_FREESLIP;
- fsset.domainobsPartslip = domainSettings->partSlipValue;
- fsset.generateVertexVectors = (domainSettings->domainNovecgen==0);
-
- // init blender trafo matrix
- // fprintf(stderr,"elbeemInit - mpTrafo:\n");
- { int j;
- for(i=0; i<4; i++) {
- for(j=0; j<4; j++) {
- fsset.surfaceTrafo[i*4+j] = invDomMat[j][i];
- // fprintf(stderr,"elbeemInit - mpTrafo %d %d = %f (%d) \n", i,j, fsset.surfaceTrafo[i*4+j] , (i*4+j) );
- }
- } }
+ fsset->realsize = get_fluid_size_m(scene, fsDomain, domainSettings);
+ fsset->viscosity = get_fluid_viscosity(domainSettings);
+ get_fluid_gravity(fsset->gravity, scene, domainSettings);
- // init solver with settings
- elbeemInit();
- elbeemAddDomain(&fsset);
-
- // init objects
- channelObjCount = 0;
- for(base=scene->base.first; base; base= base->next) {
- FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(base->object, eModifierType_Fluidsim);
- obit = base->object;
- //{ snprintf(debugStrBuffer,256,"DEBUG object name=%s, type=%d ...\n", obit->id.name, obit->type); elbeemDebugOut(debugStrBuffer); } // DEBUG
- if( fluidmdtmp && // if has to match 3 places! // CHECKMATCH
- (obit->type==OB_MESH) &&
- (fluidmdtmp->fss->type != OB_FLUIDSIM_DOMAIN) &&
- (fluidmdtmp->fss->type != OB_FLUIDSIM_PARTICLE))
- {
- float *verts=NULL;
- int *tris=NULL;
- int numVerts=0, numTris=0;
- int o = channelObjCount;
- int deform = (fluidmdtmp->fss->domainNovecgen); // misused value
- // todo - use blenderInitElbeemMesh
- int modifierIndex = modifiers_indexInObject(obit, (ModifierData *)fluidmdtmp);
-
- elbeemMesh fsmesh;
- elbeemResetMesh( &fsmesh );
- fsmesh.type = fluidmdtmp->fss->type;
- // get name of object for debugging solver
- fsmesh.name = obit->id.name;
-
- initElbeemMesh(scene, obit, &numVerts, &verts, &numTris, &tris, 0, modifierIndex);
- fsmesh.numVertices = numVerts;
- fsmesh.numTriangles = numTris;
- fsmesh.vertices = verts;
- fsmesh.triangles = tris;
-
- fsmesh.channelSizeTranslation =
- fsmesh.channelSizeRotation =
- fsmesh.channelSizeScale =
- fsmesh.channelSizeInitialVel =
- fsmesh.channelSizeActive = allchannelSize;
-
- fsmesh.channelTranslation = channelObjMove[o][0];
- fsmesh.channelRotation = channelObjMove[o][1];
- fsmesh.channelScale = channelObjMove[o][2];
- fsmesh.channelActive = channelObjActive[o];
- if( (fsmesh.type == OB_FLUIDSIM_FLUID) ||
- (fsmesh.type == OB_FLUIDSIM_INFLOW)) {
- fsmesh.channelInitialVel = channelObjInivel[o];
- fsmesh.localInivelCoords = ((fluidmdtmp->fss->typeFlags&OB_FSINFLOW_LOCALCOORD)?1:0);
- }
-
- if( (fluidmdtmp->fss->typeFlags&OB_FSBND_NOSLIP)) fsmesh.obstacleType = FLUIDSIM_OBSTACLE_NOSLIP;
- else if((fluidmdtmp->fss->typeFlags&OB_FSBND_PARTSLIP)) fsmesh.obstacleType = FLUIDSIM_OBSTACLE_PARTSLIP;
- else if((fluidmdtmp->fss->typeFlags&OB_FSBND_FREESLIP)) fsmesh.obstacleType = FLUIDSIM_OBSTACLE_FREESLIP;
- fsmesh.obstaclePartslip = fluidmdtmp->fss->partSlipValue;
- fsmesh.volumeInitType = fluidmdtmp->fss->volumeInitType;
- fsmesh.obstacleImpactFactor = fluidmdtmp->fss->surfaceSmoothing; // misused value
-
- if(fsmesh.type == OB_FLUIDSIM_CONTROL)
- {
- // control fluids will get exported as whole
- deform = 1;
-
- fsmesh.cpsTimeStart = fluidmdtmp->fss->cpsTimeStart;
- fsmesh.cpsTimeEnd = fluidmdtmp->fss->cpsTimeEnd;
- fsmesh.cpsQuality = fluidmdtmp->fss->cpsQuality;
- fsmesh.obstacleType = (fluidmdtmp->fss->flag & OB_FLUIDSIM_REVERSE);
-
- fsmesh.channelSizeAttractforceRadius =
- fsmesh.channelSizeVelocityforceStrength =
- fsmesh.channelSizeVelocityforceRadius =
- fsmesh.channelSizeAttractforceStrength = allchannelSize;
-
- fsmesh.channelAttractforceStrength = channelAttractforceStrength[o];
- fsmesh.channelAttractforceRadius = channelAttractforceRadius[o];
- fsmesh.channelVelocityforceStrength = channelVelocityforceStrength[o];
- fsmesh.channelVelocityforceRadius = channelVelocityforceRadius[o];
- }
- else
- {
- // set channels to 0
- fsmesh.channelAttractforceStrength =
- fsmesh.channelAttractforceRadius =
- fsmesh.channelVelocityforceStrength =
- fsmesh.channelVelocityforceRadius = NULL;
- }
-
- // animated meshes
- if(deform) {
- fsmesh.channelSizeVertices = allchannelSize;
- fluidsimInitMeshChannel(C, &fsmesh.channelVertices, allchannelSize, obit, numVerts, timeAtFrame, modifierIndex);
- scene->r.cfra = startFrame;
- ED_update_for_newframe(C, 1);
- // remove channels
- fsmesh.channelTranslation =
- fsmesh.channelRotation =
- fsmesh.channelScale = NULL;
- }
-
- elbeemAddMesh(&fsmesh);
-
- if(verts) MEM_freeN(verts);
- if(tris) MEM_freeN(tris);
- if(fsmesh.channelVertices) MEM_freeN(fsmesh.channelVertices);
- channelObjCount++;
- } // valid mesh
- } // objects
- //domainSettings->type = OB_FLUIDSIM_DOMAIN; // enable for bake display again
-
- // set to neutral, -1 means user abort, -2 means init error
- globalBakeState = 0;
- globalBakeFrame = 0;
-
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
- // Workaround for Apple gcc 4.2.1 omp vs background thread bug
- thread_tls_data = pthread_getspecific(gomp_tls_key);
-#endif
- BLI_init_threads(&threads, fluidsimSimulateThread, 1);
- BLI_insert_thread(&threads, targetFile);
-
- {
- int done = 0;
- float noFramesf = (float)noFrames;
- float percentdone = 0.0, oldpercentdone = -1.0;
- int lastRedraw = -1;
-
- g_break= 0;
- G.afbreek= 0; /* blender_test_break uses this global */
-
- start_progress_bar();
+ // simulate 5 frames, each 0.03 seconds, output to ./apitest_XXX.bobj.gz
+ fsset->animStart = domainSettings->animStart;
+ fsset->aniFrameTime = channels->aniFrameTime;
+ fsset->noOfFrames = noFrames; // is otherwise subtracted in parser
- while(done==0) {
- char busy_mess[80];
-
- waitcursor(1);
-
- // lukep we add progress bar as an interim mesure
- percentdone = globalBakeFrame / noFramesf;
- if (percentdone != oldpercentdone) {
- sprintf(busy_mess, "baking fluids %d / %d |||", globalBakeFrame, (int) noFramesf);
- percentdone = percentdone < 0.0 ? 0.0:percentdone;
- progress_bar(CTX_wm_window(C), percentdone, busy_mess );
- oldpercentdone = percentdone;
- }
-
- //XXX no more need for longer delay to prevent frequent redrawing
- PIL_sleep_ms(200);
-
- BLI_lock_thread(LOCK_CUSTOM1);
- if(globalBakeState != 0) done = 1; // 1=ok, <0=error/abort
- BLI_unlock_thread(LOCK_CUSTOM1);
-
- if (!G.background) {
- g_break= blender_test_break();
-
- if(g_break)
- {
- // abort...
- BLI_lock_thread(LOCK_CUSTOM1);
-
- if(domainSettings)
- domainSettings->lastgoodframe = startFrame+globalBakeFrame;
-
- done = -1;
- globalBakeFrame = 0;
- globalBakeState = -1;
- simAborted = 1;
- BLI_unlock_thread(LOCK_CUSTOM1);
- break;
- }
- }
-
- // redraw the 3D for showing progress once in a while...
- if(lastRedraw!=globalBakeFrame) {
-#if 0
- ScrArea *sa;
- scene->r.cfra = startFrame+globalBakeFrame;
- lastRedraw = globalBakeFrame;
- ED_update_for_newframe(C, 1);
- sa= G.curscreen->areabase.first;
- while(sa) {
- if(sa->spacetype == SPACE_VIEW3D) { scrarea_do_windraw(sa); }
- sa= sa->next;
- }
- screen_swapbuffers();
-#endif
- } // redraw
- }
- end_progress_bar(CTX_wm_window(C));
+ strcpy(targetFile, targetDir);
+ strcat(targetFile, suffixSurface);
+ // defaults for compressibility and adaptive grids
+ fsset->gstar = domainSettings->gstar;
+ fsset->maxRefine = domainSettings->maxRefine; // check <-> gridlevels
+ fsset->generateParticles = domainSettings->generateParticles;
+ fsset->numTracerParticles = domainSettings->generateTracers;
+ fsset->surfaceSmoothing = domainSettings->surfaceSmoothing;
+ fsset->surfaceSubdivs = domainSettings->surfaceSubdivs;
+ fsset->farFieldSize = domainSettings->farFieldSize;
+ strcpy( fsset->outputPath, targetFile);
+
+ // domain channels
+ fsset->channelSizeFrameTime =
+ fsset->channelSizeViscosity =
+ fsset->channelSizeGravity = channels->length;
+ fsset->channelFrameTime = channels->DomainTime;
+ fsset->channelViscosity = channels->DomainViscosity;
+ fsset->channelGravity = channels->DomainGravity;
+
+ fsset->runsimCallback = &runSimulationCallback;
+ fsset->runsimUserData = fb;
+
+ if (domainSettings->typeFlags & OB_FSBND_NOSLIP) fsset->domainobsType = FLUIDSIM_OBSTACLE_NOSLIP;
+ else if (domainSettings->typeFlags&OB_FSBND_PARTSLIP) fsset->domainobsType = FLUIDSIM_OBSTACLE_PARTSLIP;
+ else if (domainSettings->typeFlags&OB_FSBND_FREESLIP) fsset->domainobsType = FLUIDSIM_OBSTACLE_FREESLIP;
+ fsset->domainobsPartslip = domainSettings->partSlipValue;
+ fsset->generateVertexVectors = (domainSettings->domainNovecgen==0);
+
+ // init blender domain transform matrix
+ { int j;
+ for(i=0; i<4; i++) {
+ for(j=0; j<4; j++) {
+ fsset->surfaceTrafo[i*4+j] = invDomMat[j][i];
}
- BLI_end_threads(&threads);
- } // El'Beem API init, thread creation
- // --------------------------------------------------------------------------------------------
- else
- { // write config file to be run with command line simulator
- BKE_report(reports, RPT_WARNING, "Config file export not supported.");
- } // config file export done!
+ } }
- // --------------------------------------------------------------------------------------------
- FS_FREE_CHANNELS;
-
- // go back to "current" blender time
- waitcursor(0);
+ /* ******** init solver with settings ******** */
+ elbeemInit();
+ elbeemAddDomain(fsset);
- if(globalBakeState >= 0)
- {
- if(domainSettings)
- domainSettings->lastgoodframe = startFrame+globalBakeFrame;
- }
+ /* ******** export all fluid objects to elbeem ******** */
+ export_fluid_objects(fobjects, scene, channels->length);
- scene->r.cfra = origFrame;
- ED_update_for_newframe(C, 1);
+ /* custom data for fluid bake job */
+ fb->settings = fsset;
+
+ /* setup job */
+ WM_jobs_customdata(steve, fb, fluidbake_free);
+ WM_jobs_timer(steve, 0.1, NC_SCENE|ND_FRAME, NC_SCENE|ND_FRAME);
+ WM_jobs_callbacks(steve, fluidbake_startjob, NULL, NULL, fluidbake_endjob);
+
+ WM_jobs_start(CTX_wm_manager(C), steve);
- if(!simAborted) {
- char elbeemerr[256];
+ /* ******** free stored animation data ******** */
+ fluidbake_free_data(channels, fobjects, NULL, NULL);
- // check if some error occurred
- if(globalBakeState==-2) {
- elbeemGetErrorString(elbeemerr);
- BKE_reportf(reports, RPT_ERROR, "Failed to initialize [Msg: %s]", elbeemerr);
- return 0;
- } // init error
- }
-
// elbeemFree();
return 1;
}
@@ -1206,7 +1090,6 @@ static int fluid_bake_exec(bContext *C, wmOperator *op)
{
Object *ob= CTX_data_active_object(C);
- // XXX TODO redraw, escape, non-blocking, ..
if(!fluidsimBake(C, op->reports, ob))
return OPERATOR_CANCELLED;
diff --git a/source/blender/editors/physics/physics_intern.h b/source/blender/editors/physics/physics_intern.h
index aa3a2e22e31..b3d11810c43 100644
--- a/source/blender/editors/physics/physics_intern.h
+++ b/source/blender/editors/physics/physics_intern.h
@@ -37,8 +37,8 @@ struct wmOperatorType;
/* particle_edit.c */
void PARTICLE_OT_select_all(struct wmOperatorType *ot);
-void PARTICLE_OT_select_first(struct wmOperatorType *ot);
-void PARTICLE_OT_select_last(struct wmOperatorType *ot);
+void PARTICLE_OT_select_roots(struct wmOperatorType *ot);
+void PARTICLE_OT_select_tips(struct wmOperatorType *ot);
void PARTICLE_OT_select_linked(struct wmOperatorType *ot);
void PARTICLE_OT_select_less(struct wmOperatorType *ot);
void PARTICLE_OT_select_more(struct wmOperatorType *ot);
diff --git a/source/blender/editors/physics/physics_ops.c b/source/blender/editors/physics/physics_ops.c
index 55568c89e75..28839693e2c 100644
--- a/source/blender/editors/physics/physics_ops.c
+++ b/source/blender/editors/physics/physics_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -27,7 +27,6 @@
#include <stdlib.h>
-#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
@@ -44,8 +43,8 @@
static void operatortypes_particle(void)
{
WM_operatortype_append(PARTICLE_OT_select_all);
- WM_operatortype_append(PARTICLE_OT_select_first);
- WM_operatortype_append(PARTICLE_OT_select_last);
+ WM_operatortype_append(PARTICLE_OT_select_roots);
+ WM_operatortype_append(PARTICLE_OT_select_tips);
WM_operatortype_append(PARTICLE_OT_select_linked);
WM_operatortype_append(PARTICLE_OT_select_less);
WM_operatortype_append(PARTICLE_OT_select_more);
@@ -101,6 +100,7 @@ static void keymap_particle(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "PARTICLE_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "PARTICLE_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "PARTICLE_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "PARTICLE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "PARTICLE_OT_hide", HKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c
index 1359af5377f..8e53e3c6f50 100644
--- a/source/blender/editors/physics/physics_pointcache.c
+++ b/source/blender/editors/physics/physics_pointcache.c
@@ -32,9 +32,8 @@
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
-#include "DNA_object_force.h"
-#include "DNA_modifier_types.h"
+#include "BKE_anim.h"
#include "BKE_context.h"
#include "BKE_particle.h"
#include "BKE_report.h"
@@ -46,12 +45,8 @@
#include "BLI_blenlib.h"
-#include "ED_screen.h"
-#include "ED_physics.h"
#include "ED_particle.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -76,7 +71,7 @@ static int ptcache_bake_all_poll(bContext *C)
static int ptcache_poll(bContext *C)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "PointCache", &RNA_PointCache);
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
return (ptr.data && ptr.id.data);
}
@@ -94,7 +89,7 @@ void bake_console_progress_end(void *arg)
static int ptcache_bake_all_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- wmWindow *win = CTX_wm_window(C);
+ wmWindow *win = G.background ? NULL : CTX_wm_window(C);
PTCacheBaker baker;
@@ -120,6 +115,7 @@ static int ptcache_bake_all_exec(bContext *C, wmOperator *op)
BKE_ptcache_make_cache(&baker);
WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, NULL);
return OPERATOR_FINISHED;
}
@@ -131,13 +127,15 @@ static int ptcache_free_bake_all_exec(bContext *C, wmOperator *op)
ListBase pidlist;
for(base=scene->base.first; base; base= base->next) {
- BKE_ptcache_ids_from_object(&pidlist, base->object);
+ BKE_ptcache_ids_from_object(&pidlist, base->object, scene, MAX_DUPLI_RECUR);
for(pid=pidlist.first; pid; pid=pid->next) {
pid->cache->flag &= ~PTCACHE_BAKED;
}
BLI_freelistN(&pidlist);
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, base->object);
}
WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
@@ -176,15 +174,15 @@ void PTCACHE_OT_free_bake_all(wmOperatorType *ot)
static int ptcache_bake_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
- wmWindow *win = CTX_wm_window(C);
- PointerRNA ptr= CTX_data_pointer_get_type(C, "PointCache", &RNA_PointCache);
+ wmWindow *win = G.background ? NULL : CTX_wm_window(C);
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
Object *ob= ptr.id.data;
PointCache *cache= ptr.data;
PTCacheBaker baker;
PTCacheID *pid;
ListBase pidlist;
- BKE_ptcache_ids_from_object(&pidlist, ob);
+ BKE_ptcache_ids_from_object(&pidlist, ob, scene, MAX_DUPLI_RECUR);
for(pid=pidlist.first; pid; pid=pid->next) {
if(pid->cache == cache)
@@ -216,13 +214,15 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op)
BLI_freelistN(&pidlist);
WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, ob);
return OPERATOR_FINISHED;
}
static int ptcache_free_bake_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "PointCache", &RNA_PointCache);
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
PointCache *cache= ptr.data;
+ Object *ob= ptr.id.data;
if(cache->edit) {
if(!cache->edit->edited || 1) {// XXX okee("Lose changes done in particle mode?")) {
@@ -233,15 +233,20 @@ static int ptcache_free_bake_exec(bContext *C, wmOperator *op)
}
else
cache->flag &= ~PTCACHE_BAKED;
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, ob);
return OPERATOR_FINISHED;
}
static int ptcache_bake_from_cache_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "PointCache", &RNA_PointCache);
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
PointCache *cache= ptr.data;
+ Object *ob= ptr.id.data;
cache->flag |= PTCACHE_BAKED;
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, ob);
return OPERATOR_FINISHED;
}
@@ -290,13 +295,13 @@ void PTCACHE_OT_bake_from_cache(wmOperatorType *ot)
static int ptcache_add_new_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
- PointerRNA ptr= CTX_data_pointer_get_type(C, "PointCache", &RNA_PointCache);
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
Object *ob= ptr.id.data;
PointCache *cache= ptr.data;
PTCacheID *pid;
ListBase pidlist;
- BKE_ptcache_ids_from_object(&pidlist, ob);
+ BKE_ptcache_ids_from_object(&pidlist, ob, scene, MAX_DUPLI_RECUR);
for(pid=pidlist.first; pid; pid=pid->next) {
if(pid->cache == cache) {
@@ -308,18 +313,20 @@ static int ptcache_add_new_exec(bContext *C, wmOperator *op)
BLI_freelistN(&pidlist);
WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, ob);
return OPERATOR_FINISHED;
}
static int ptcache_remove_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "PointCache", &RNA_PointCache);
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
+ Scene *scene= CTX_data_scene(C);
Object *ob= ptr.id.data;
PointCache *cache= ptr.data;
PTCacheID *pid;
ListBase pidlist;
- BKE_ptcache_ids_from_object(&pidlist, ob);
+ BKE_ptcache_ids_from_object(&pidlist, ob, scene, MAX_DUPLI_RECUR);
for(pid=pidlist.first; pid; pid=pid->next) {
if(pid->cache == cache) {
@@ -335,6 +342,8 @@ static int ptcache_remove_exec(bContext *C, wmOperator *op)
}
BLI_freelistN(&pidlist);
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, ob);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/render/CMakeLists.txt b/source/blender/editors/render/CMakeLists.txt
new file mode 100644
index 00000000000..550c812c320
--- /dev/null
+++ b/source/blender/editors/render/CMakeLists.txt
@@ -0,0 +1,55 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenfont
+ ../../blenkernel
+ ../../blenlib
+ ../../blenloader
+ ../../gpu
+ ../../imbuf
+ ../../bmesh
+ ../include
+ ../../../../intern/guardedalloc
+ ../../../../extern/glew/include
+ ../../makesdna
+ ../../makesrna
+ ../../python
+ ../../render/extern/include
+ ../../windowmanager
+)
+
+IF(WITH_QUICKTIME)
+ SET(INC ${INC} ../../quicktime ${QUICKTIME_INC})
+ ADD_DEFINITIONS(-DWITH_QUICKTIME)
+ENDIF(WITH_QUICKTIME)
+
+IF(WITH_OPENMP)
+ ADD_DEFINITIONS(-DPARALLEL=1)
+ENDIF(WITH_OPENMP)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_render "${SRC}" "${INC}")
diff --git a/source/blender/editors/render/render_intern.h b/source/blender/editors/render/render_intern.h
index 99b68c2bb74..a0441155629 100644
--- a/source/blender/editors/render/render_intern.h
+++ b/source/blender/editors/render/render_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,6 +30,8 @@
#define RENDER_INTERN_H
struct wmOperatorType;
+struct RenderResult;
+struct Scene;
/* render_shading.c */
void OBJECT_OT_material_slot_add(struct wmOperatorType *ot);
@@ -49,8 +51,25 @@ void MATERIAL_OT_paste(struct wmOperatorType *ot);
void SCENE_OT_render_layer_add(struct wmOperatorType *ot);
void SCENE_OT_render_layer_remove(struct wmOperatorType *ot);
+
+void TEXTURE_OT_slot_copy(struct wmOperatorType *ot);
+void TEXTURE_OT_slot_paste(struct wmOperatorType *ot);
void TEXTURE_OT_slot_move(struct wmOperatorType *ot);
+void TEXTURE_OT_envmap_save(struct wmOperatorType *ot);
+void TEXTURE_OT_envmap_clear(struct wmOperatorType *ot);
+void TEXTURE_OT_envmap_clear_all(struct wmOperatorType *ot);
+
+/* render_internal.c */
+void RENDER_OT_view_show(struct wmOperatorType *ot);
+void RENDER_OT_render(struct wmOperatorType *ot);
+void RENDER_OT_view_cancel(struct wmOperatorType *ot);
+
+/*render_opengl.c uses these */
+void image_buffer_rect_update(struct Scene *scene, struct RenderResult *rr, struct ImBuf *ibuf, volatile struct rcti *renrect);
+void screen_set_image_output(struct bContext *C, int mx, int my);
+/* render_opengl.c */
+void RENDER_OT_opengl(struct wmOperatorType *ot);
#endif /* RENDER_INTERN_H */
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
new file mode 100644
index 00000000000..7110c3aa7a7
--- /dev/null
+++ b/source/blender/editors/render/render_internal.c
@@ -0,0 +1,833 @@
+/**
+ * $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) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <math.h>
+#include <string.h>
+#include <stddef.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_math.h"
+#include "BLI_threads.h"
+#include "BLI_rand.h"
+
+#include "DNA_scene_types.h"
+
+#include "BKE_blender.h"
+#include "BKE_colortools.h"
+#include "BKE_context.h"
+#include "BKE_global.h"
+#include "BKE_image.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_multires.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+#include "BKE_screen.h"
+#include "BKE_utildefines.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "ED_screen.h"
+#include "ED_object.h"
+
+#include "RE_pipeline.h"
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+#include "wm_window.h"
+
+#include "render_intern.h"
+
+static ScrArea *biggest_area(bContext *C);
+static ScrArea *biggest_non_image_area(bContext *C);
+static ScrArea *find_area_showing_r_result(bContext *C);
+static ScrArea *find_area_image_empty(bContext *C);
+
+/* called inside thread! */
+void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volatile rcti *renrect)
+{
+ float x1, y1, *rectf= NULL;
+ int ymin, ymax, xmin, xmax;
+ int rymin, rxmin;
+ char *rectc;
+
+ /* if renrect argument, we only refresh scanlines */
+ if(renrect) {
+ /* if ymax==recty, rendering of layer is ready, we should not draw, other things happen... */
+ if(rr->renlay==NULL || renrect->ymax>=rr->recty)
+ return;
+
+ /* xmin here is first subrect x coord, xmax defines subrect width */
+ xmin = renrect->xmin + rr->crop;
+ xmax = renrect->xmax - xmin + rr->crop;
+ if (xmax<2) return;
+
+ ymin= renrect->ymin + rr->crop;
+ ymax= renrect->ymax - ymin + rr->crop;
+ if(ymax<2)
+ return;
+ renrect->ymin= renrect->ymax;
+
+ }
+ else {
+ xmin = ymin = rr->crop;
+ xmax = rr->rectx - 2*rr->crop;
+ ymax = rr->recty - 2*rr->crop;
+ }
+
+ /* xmin ymin is in tile coords. transform to ibuf */
+ rxmin= rr->tilerect.xmin + xmin;
+ if(rxmin >= ibuf->x) return;
+ rymin= rr->tilerect.ymin + ymin;
+ if(rymin >= ibuf->y) return;
+
+ if(rxmin + xmax > ibuf->x)
+ xmax= ibuf->x - rxmin;
+ if(rymin + ymax > ibuf->y)
+ ymax= ibuf->y - rymin;
+
+ if(xmax < 1 || ymax < 1) return;
+
+ /* find current float rect for display, first case is after composit... still weak */
+ if(rr->rectf)
+ rectf= rr->rectf;
+ else {
+ if(rr->rect32)
+ return;
+ else {
+ if(rr->renlay==NULL || rr->renlay->rectf==NULL) return;
+ rectf= rr->renlay->rectf;
+ }
+ }
+ if(rectf==NULL) return;
+
+ if(ibuf->rect==NULL)
+ imb_addrectImBuf(ibuf);
+
+ rectf+= 4*(rr->rectx*ymin + xmin);
+ rectc= (char *)(ibuf->rect + ibuf->x*rymin + rxmin);
+
+ /* XXX make nice consistent functions for this */
+ if (scene && (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)) {
+ for(y1= 0; y1<ymax; y1++) {
+ float *rf= rectf;
+ float srgb[3];
+ char *rc= rectc;
+ const float dither = ibuf->dither / 255.0;
+
+ /* XXX temp. because crop offset */
+ if( rectc >= (char *)(ibuf->rect)) {
+ for(x1= 0; x1<xmax; x1++, rf += 4, rc+=4) {
+ const float d = (BLI_frand()-0.5)*dither;
+ srgb[0]= d + linearrgb_to_srgb(rf[0]);
+ srgb[1]= d + linearrgb_to_srgb(rf[1]);
+ srgb[2]= d + linearrgb_to_srgb(rf[2]);
+
+ rc[0]= FTOCHAR(srgb[0]);
+ rc[1]= FTOCHAR(srgb[1]);
+ rc[2]= FTOCHAR(srgb[2]);
+ rc[3]= FTOCHAR(rf[3]);
+ }
+ }
+ rectf += 4*rr->rectx;
+ rectc += 4*ibuf->x;
+ }
+ } else {
+ for(y1= 0; y1<ymax; y1++) {
+ float *rf= rectf;
+ char *rc= rectc;
+ float rgb[3];
+ const float dither = ibuf->dither / 255.0;
+
+ /* XXX temp. because crop offset */
+ if( rectc >= (char *)(ibuf->rect)) {
+ for(x1= 0; x1<xmax; x1++, rf += 4, rc+=4) {
+ const float d = (BLI_frand()-0.5)*dither;
+
+ rgb[0] = d + rf[0];
+ rgb[1] = d + rf[1];
+ rgb[2] = d + rf[2];
+
+ rc[0]= FTOCHAR(rgb[0]);
+ rc[1]= FTOCHAR(rgb[1]);
+ rc[2]= FTOCHAR(rgb[2]);
+ rc[3]= FTOCHAR(rf[3]);
+ }
+ }
+ rectf += 4*rr->rectx;
+ rectc += 4*ibuf->x;
+ }
+ }
+}
+
+/* new window uses x,y to set position */
+void screen_set_image_output(bContext *C, int mx, int my)
+{
+ wmWindow *win= CTX_wm_window(C);
+ Scene *scene= CTX_data_scene(C);
+ ScrArea *sa= NULL;
+ SpaceImage *sima;
+ int area_was_image=0;
+
+ if(scene->r.displaymode==R_OUTPUT_WINDOW) {
+ rcti rect;
+ int sizex, sizey;
+
+ sizex= 10 + (scene->r.xsch*scene->r.size)/100;
+ sizey= 40 + (scene->r.ysch*scene->r.size)/100;
+
+ /* arbitrary... miniature image window views don't make much sense */
+ if(sizex < 320) sizex= 320;
+ if(sizey < 256) sizey= 256;
+
+ /* XXX some magic to calculate postition */
+ rect.xmin= mx + win->posx - sizex/2;
+ rect.ymin= my + win->posy - sizey/2;
+ rect.xmax= rect.xmin + sizex;
+ rect.ymax= rect.ymin + sizey;
+
+ /* changes context! */
+ WM_window_open_temp(C, &rect, WM_WINDOW_RENDER);
+
+ sa= CTX_wm_area(C);
+ }
+ else if(scene->r.displaymode==R_OUTPUT_SCREEN) {
+ if (CTX_wm_area(C) && CTX_wm_area(C)->spacetype == SPACE_IMAGE)
+ area_was_image = 1;
+
+ /* this function returns with changed context */
+ ED_screen_full_newspace(C, CTX_wm_area(C), SPACE_IMAGE);
+ sa= CTX_wm_area(C);
+ }
+
+ if(!sa) {
+ sa= find_area_showing_r_result(C);
+ if(sa==NULL)
+ sa= find_area_image_empty(C);
+
+ if(sa==NULL) {
+ /* find largest open non-image area */
+ sa= biggest_non_image_area(C);
+ if(sa) {
+ ED_area_newspace(C, sa, SPACE_IMAGE);
+ sima= sa->spacedata.first;
+
+ /* makes ESC go back to prev space */
+ sima->flag |= SI_PREVSPACE;
+ }
+ else {
+ /* use any area of decent size */
+ sa= biggest_area(C);
+ if(sa->spacetype!=SPACE_IMAGE) {
+ // XXX newspace(sa, SPACE_IMAGE);
+ sima= sa->spacedata.first;
+
+ /* makes ESC go back to prev space */
+ sima->flag |= SI_PREVSPACE;
+ }
+ }
+ }
+ }
+ sima= sa->spacedata.first;
+
+ /* get the correct image, and scale it */
+ sima->image= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
+
+
+ /* if we're rendering to full screen, set appropriate hints on image editor
+ * so it can restore properly on pressing esc */
+ if(sa->full) {
+ sima->flag |= SI_FULLWINDOW;
+
+ /* Tell the image editor to revert to previous space in space list on close
+ * _only_ if it wasn't already an image editor when the render was invoked */
+ if (area_was_image == 0)
+ sima->flag |= SI_PREVSPACE;
+ else {
+ /* Leave it alone so the image editor will just go back from
+ * full screen to the original tiled setup */
+ ;
+ }
+
+ }
+
+}
+
+
+/* ****************************** render invoking ***************** */
+
+/* set callbacks, exported to sequence render too.
+ Only call in foreground (UI) renders. */
+
+/* returns biggest area that is not uv/image editor. Note that it uses buttons */
+/* window as the last possible alternative. */
+static ScrArea *biggest_non_image_area(bContext *C)
+{
+ bScreen *sc= CTX_wm_screen(C);
+ ScrArea *sa, *big= NULL;
+ int size, maxsize= 0, bwmaxsize= 0;
+ short foundwin= 0;
+
+ for(sa= sc->areabase.first; sa; sa= sa->next) {
+ if(sa->winx > 30 && sa->winy > 30) {
+ size= sa->winx*sa->winy;
+ if(sa->spacetype == SPACE_BUTS) {
+ if(foundwin == 0 && size > bwmaxsize) {
+ bwmaxsize= size;
+ big= sa;
+ }
+ }
+ else if(sa->spacetype != SPACE_IMAGE && size > maxsize) {
+ maxsize= size;
+ big= sa;
+ foundwin= 1;
+ }
+ }
+ }
+
+ return big;
+}
+
+static ScrArea *biggest_area(bContext *C)
+{
+ bScreen *sc= CTX_wm_screen(C);
+ ScrArea *sa, *big= NULL;
+ int size, maxsize= 0;
+
+ for(sa= sc->areabase.first; sa; sa= sa->next) {
+ size= sa->winx*sa->winy;
+ if(size > maxsize) {
+ maxsize= size;
+ big= sa;
+ }
+ }
+ return big;
+}
+
+
+static ScrArea *find_area_showing_r_result(bContext *C)
+{
+ wmWindowManager *wm= CTX_wm_manager(C);
+ wmWindow *win;
+ ScrArea *sa = NULL;
+ SpaceImage *sima;
+
+ /* find an imagewindow showing render result */
+ for(win=wm->windows.first; win; win=win->next) {
+ for(sa=win->screen->areabase.first; sa; sa= sa->next) {
+ if(sa->spacetype==SPACE_IMAGE) {
+ sima= sa->spacedata.first;
+ if(sima->image && sima->image->type==IMA_TYPE_R_RESULT)
+ break;
+ }
+ }
+ }
+
+ return sa;
+}
+
+static ScrArea *find_area_image_empty(bContext *C)
+{
+ bScreen *sc= CTX_wm_screen(C);
+ ScrArea *sa;
+ SpaceImage *sima;
+
+ /* find an imagewindow showing render result */
+ for(sa=sc->areabase.first; sa; sa= sa->next) {
+ if(sa->spacetype==SPACE_IMAGE) {
+ sima= sa->spacedata.first;
+ if(!sima->image)
+ break;
+ }
+ }
+ return sa;
+}
+
+#if 0 // XXX not used
+static ScrArea *find_empty_image_area(bContext *C)
+{
+ bScreen *sc= CTX_wm_screen(C);
+ ScrArea *sa;
+ SpaceImage *sima;
+
+ /* find an imagewindow showing render result */
+ for(sa=sc->areabase.first; sa; sa= sa->next) {
+ if(sa->spacetype==SPACE_IMAGE) {
+ sima= sa->spacedata.first;
+ if(!sima->image)
+ break;
+ }
+ }
+ return sa;
+}
+#endif // XXX not used
+
+static void render_error_reports(void *reports, char *str)
+{
+ BKE_report(reports, RPT_ERROR, str);
+}
+
+/* executes blocking render */
+static int screen_render_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene= CTX_data_scene(C);
+ Render *re= RE_NewRender(scene->id.name);
+ Image *ima;
+ View3D *v3d= CTX_wm_view3d(C);
+ int lay= (v3d)? v3d->lay: scene->lay;
+
+ if(re==NULL) {
+ re= RE_NewRender(scene->id.name);
+ }
+
+ G.afbreek= 0;
+ RE_test_break_cb(re, NULL, (int (*)(void *)) blender_test_break);
+ RE_error_cb(re, op->reports, render_error_reports);
+
+ ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
+ BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE);
+ BKE_image_backup_render(scene, ima);
+
+ if(RNA_boolean_get(op->ptr, "animation"))
+ RE_BlenderAnim(re, scene, lay, scene->r.sfra, scene->r.efra, scene->r.frame_step, op->reports);
+ else
+ RE_BlenderFrame(re, scene, NULL, lay, scene->r.cfra);
+
+ // no redraw needed, we leave state as we entered it
+ ED_update_for_newframe(C, 1);
+
+ WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene);
+
+ return OPERATOR_FINISHED;
+}
+
+typedef struct RenderJob {
+ Scene *scene;
+ Render *re;
+ wmWindow *win;
+ SceneRenderLayer *srl;
+ int lay;
+ int anim;
+ Image *image;
+ ImageUser iuser;
+ short *stop;
+ short *do_update;
+ float *progress;
+ ReportList *reports;
+} RenderJob;
+
+static void render_freejob(void *rjv)
+{
+ RenderJob *rj= rjv;
+
+ MEM_freeN(rj);
+}
+
+/* str is IMA_MAX_RENDER_TEXT in size */
+static void make_renderinfo_string(RenderStats *rs, Scene *scene, char *str)
+{
+ char info_time_str[32]; // used to be extern to header_info.c
+ uintptr_t mem_in_use, mmap_in_use, peak_memory;
+ float megs_used_memory, mmap_used_memory, megs_peak_memory;
+ char *spos= str;
+
+ mem_in_use= MEM_get_memory_in_use();
+ mmap_in_use= MEM_get_mapped_memory_in_use();
+ peak_memory = MEM_get_peak_memory();
+
+ megs_used_memory= (mem_in_use-mmap_in_use)/(1024.0*1024.0);
+ mmap_used_memory= (mmap_in_use)/(1024.0*1024.0);
+ megs_peak_memory = (peak_memory)/(1024.0*1024.0);
+
+ if(scene->lay & 0xFF000000)
+ spos+= sprintf(spos, "Localview | ");
+ else if(scene->r.scemode & R_SINGLE_LAYER)
+ spos+= sprintf(spos, "Single Layer | ");
+
+ if(rs->statstr) {
+ spos+= sprintf(spos, "%s ", rs->statstr);
+ }
+ else {
+ spos+= sprintf(spos, "Fra:%d Ve:%d Fa:%d ", (scene->r.cfra), rs->totvert, rs->totface);
+ if(rs->tothalo) spos+= sprintf(spos, "Ha:%d ", rs->tothalo);
+ if(rs->totstrand) spos+= sprintf(spos, "St:%d ", rs->totstrand);
+ spos+= sprintf(spos, "La:%d Mem:%.2fM (%.2fM, peak %.2fM) ", rs->totlamp, megs_used_memory, mmap_used_memory, megs_peak_memory);
+
+ if(rs->curfield)
+ spos+= sprintf(spos, "Field %d ", rs->curfield);
+ if(rs->curblur)
+ spos+= sprintf(spos, "Blur %d ", rs->curblur);
+ }
+
+ BLI_timestr(rs->lastframetime, info_time_str);
+ spos+= sprintf(spos, "Time:%s ", info_time_str);
+
+ if(rs->infostr && rs->infostr[0])
+ spos+= sprintf(spos, "| %s ", rs->infostr);
+
+ /* very weak... but 512 characters is quite safe */
+ if(spos >= str+IMA_MAX_RENDER_TEXT)
+ if (G.f & G_DEBUG)
+ printf("WARNING! renderwin text beyond limit \n");
+
+}
+
+static void image_renderinfo_cb(void *rjv, RenderStats *rs)
+{
+ RenderJob *rj= rjv;
+ RenderResult *rr;
+
+ rr= RE_AcquireResultRead(rj->re);
+
+ if(rr) {
+ /* malloc OK here, stats_draw is not in tile threads */
+ if(rr->text==NULL)
+ rr->text= MEM_callocN(IMA_MAX_RENDER_TEXT, "rendertext");
+
+ make_renderinfo_string(rs, rj->scene, rr->text);
+ }
+
+ RE_ReleaseResult(rj->re);
+
+ /* make jobs timer to send notifier */
+ *(rj->do_update)= 1;
+
+}
+
+static void render_progress_update(void *rjv, float progress)
+{
+ RenderJob *rj= rjv;
+
+ if (rj->progress)
+ *rj->progress = progress;
+}
+
+static void image_rect_update(void *rjv, RenderResult *rr, volatile rcti *renrect)
+{
+ RenderJob *rj= rjv;
+ Image *ima= rj->image;
+ ImBuf *ibuf;
+ void *lock;
+
+ /* only update if we are displaying the slot being rendered */
+ if(ima->render_slot != ima->last_render_slot)
+ return;
+
+ ibuf= BKE_image_acquire_ibuf(ima, &rj->iuser, &lock);
+ if(ibuf) {
+ image_buffer_rect_update(rj->scene, rr, ibuf, renrect);
+
+ /* make jobs timer to send notifier */
+ *(rj->do_update)= 1;
+ }
+ BKE_image_release_ibuf(ima, lock);
+}
+
+static void render_startjob(void *rjv, short *stop, short *do_update, float *progress)
+{
+ RenderJob *rj= rjv;
+// Main *mainp= BKE_undo_get_main(&rj->scene);
+
+ rj->stop= stop;
+ rj->do_update= do_update;
+ rj->progress= progress;
+
+ if(rj->anim)
+ RE_BlenderAnim(rj->re, rj->scene, rj->lay, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step, rj->reports);
+ else
+ RE_BlenderFrame(rj->re, rj->scene, rj->srl, rj->lay, rj->scene->r.cfra);
+
+// if(mainp)
+// free_main(mainp);
+}
+
+static void render_endjob(void *rjv)
+{
+ /* XXX render stability hack */
+ G.rendering = 0;
+ WM_main_add_notifier(NC_WINDOW, NULL);
+}
+
+/* called by render, check job 'stop' value or the global */
+static int render_breakjob(void *rjv)
+{
+ RenderJob *rj= rjv;
+
+ if(G.afbreek)
+ return 1;
+ if(rj->stop && *(rj->stop))
+ return 1;
+ return 0;
+}
+
+/* catch esc */
+static int screen_render_modal(bContext *C, wmOperator *op, wmEvent *event)
+{
+ /* no running blender, remove handler and pass through */
+ if(0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) {
+ return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
+ }
+
+ /* running render */
+ switch (event->type) {
+ case ESCKEY:
+ return OPERATOR_RUNNING_MODAL;
+ break;
+ }
+ return OPERATOR_PASS_THROUGH;
+}
+
+/* using context, starts job */
+static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ /* new render clears all callbacks */
+ Scene *scene= CTX_data_scene(C);
+ SceneRenderLayer *srl=NULL;
+ bScreen *screen= CTX_wm_screen(C);
+ View3D *v3d= CTX_wm_view3d(C);
+ Render *re;
+ wmJob *steve;
+ RenderJob *rj;
+ Image *ima;
+
+ /* only one render job at a time */
+ if(WM_jobs_test(CTX_wm_manager(C), scene))
+ return OPERATOR_CANCELLED;
+
+ /* stop all running jobs, currently previews frustrate Render */
+ WM_jobs_stop_all(CTX_wm_manager(C));
+
+ /* cancel animation playback */
+ if (screen->animtimer)
+ ED_screen_animation_play(C, 0, 0);
+
+ /* handle UI stuff */
+ WM_cursor_wait(1);
+
+ /* flush multires changes (for sculpt) */
+ multires_force_render_update(CTX_data_active_object(C));
+
+ /* get editmode results */
+ ED_object_exit_editmode(C, 0); /* 0 = does not exit editmode */
+
+ // store spare
+ // get view3d layer, local layer, make this nice api call to render
+ // store spare
+
+ /* ensure at least 1 area shows result */
+ screen_set_image_output(C, event->x, event->y);
+
+ /* single layer re-render */
+ if(RNA_property_is_set(op->ptr, "layer")) {
+ SceneRenderLayer *rl;
+ Scene *scn;
+ char scene_name[19], rl_name[RE_MAXNAME];
+
+ RNA_string_get(op->ptr, "layer", rl_name);
+ RNA_string_get(op->ptr, "scene", scene_name);
+
+ scn = (Scene *)BLI_findstring(&CTX_data_main(C)->scene, scene_name, offsetof(ID, name) + 2);
+ rl = (SceneRenderLayer *)BLI_findstring(&scene->r.layers, rl_name, offsetof(SceneRenderLayer, name));
+
+ if (scn && rl) {
+ scene = scn;
+ srl = rl;
+ }
+ }
+
+ /* job custom data */
+ rj= MEM_callocN(sizeof(RenderJob), "render job");
+ rj->scene= scene;
+ rj->win= CTX_wm_window(C);
+ rj->srl = srl;
+ rj->lay = (v3d)? v3d->lay: scene->lay;
+ rj->anim= RNA_boolean_get(op->ptr, "animation");
+ rj->iuser.scene= scene;
+ rj->iuser.ok= 1;
+ rj->reports= op->reports;
+
+ /* setup job */
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Render", WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY|WM_JOB_PROGRESS);
+ WM_jobs_customdata(steve, rj, render_freejob);
+ WM_jobs_timer(steve, 0.2, NC_SCENE|ND_RENDER_RESULT, 0);
+ WM_jobs_callbacks(steve, render_startjob, NULL, NULL, render_endjob);
+
+ /* get a render result image, and make sure it is empty */
+ ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
+ BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE);
+ BKE_image_backup_render(rj->scene, ima);
+ rj->image= ima;
+
+ /* setup new render */
+ re= RE_NewRender(scene->id.name);
+ RE_test_break_cb(re, rj, render_breakjob);
+ RE_display_draw_cb(re, rj, image_rect_update);
+ RE_stats_draw_cb(re, rj, image_renderinfo_cb);
+ RE_progress_cb(re, rj, render_progress_update);
+
+ rj->re= re;
+ G.afbreek= 0;
+
+ RE_error_cb(re, op->reports, render_error_reports);
+
+ WM_jobs_start(CTX_wm_manager(C), steve);
+
+ WM_cursor_wait(0);
+ WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene);
+
+ /* we set G.rendering here already instead of only in the job, this ensure
+ main loop or other scene updates are disabled in time, since they may
+ have started before the job thread */
+ G.rendering = 1;
+
+ /* add modal handler for ESC */
+ WM_event_add_modal_handler(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+
+/* contextual render, using current scene, view3d? */
+void RENDER_OT_render(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Render";
+ ot->description= "Render active scene";
+ ot->idname= "RENDER_OT_render";
+
+ /* api callbacks */
+ ot->invoke= screen_render_invoke;
+ ot->modal= screen_render_modal;
+ ot->exec= screen_render_exec;
+
+ ot->poll= ED_operator_screenactive;
+
+ RNA_def_boolean(ot->srna, "animation", 0, "Animation", "");
+ RNA_def_string(ot->srna, "layer", "", RE_MAXNAME, "Render Layer", "Single render layer to re-render");
+ RNA_def_string(ot->srna, "scene", "", 19, "Scene", "Re-render single layer in this scene");
+}
+
+/* ****************************** opengl render *************************** */
+
+
+/* *********************** cancel render viewer *************** */
+
+static int render_view_cancel_exec(bContext *C, wmOperator *unused)
+{
+ wmWindow *win= CTX_wm_window(C);
+ ScrArea *sa= CTX_wm_area(C);
+ SpaceImage *sima= sa->spacedata.first;
+
+ /* test if we have a temp screen in front */
+ if(CTX_wm_window(C)->screen->full==SCREENTEMP) {
+ wm_window_lower(CTX_wm_window(C));
+ return OPERATOR_FINISHED;
+ }
+ /* determine if render already shows */
+ else if(sima->flag & SI_PREVSPACE) {
+ sima->flag &= ~SI_PREVSPACE;
+
+ if(sima->flag & SI_FULLWINDOW) {
+ sima->flag &= ~SI_FULLWINDOW;
+ ED_screen_full_prevspace(C, sa);
+ }
+ else
+ ED_area_prevspace(C, sa);
+
+ return OPERATOR_FINISHED;
+ }
+ else if(sima->flag & SI_FULLWINDOW) {
+ sima->flag &= ~SI_FULLWINDOW;
+ ED_screen_full_toggle(C, win, sa);
+ return OPERATOR_FINISHED;
+ }
+
+ return OPERATOR_PASS_THROUGH;
+}
+
+void RENDER_OT_view_cancel(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Cancel Render View";
+ ot->description= "Cancel show render view";
+ ot->idname= "RENDER_OT_view_cancel";
+
+ /* api callbacks */
+ ot->exec= render_view_cancel_exec;
+ ot->poll= ED_operator_image_active;
+}
+
+/* *********************** show render viewer *************** */
+
+static int render_view_show_invoke(bContext *C, wmOperator *unused, wmEvent *event)
+{
+ ScrArea *sa= find_area_showing_r_result(C);
+
+ /* test if we have a temp screen in front */
+ if(CTX_wm_window(C)->screen->full==SCREENTEMP) {
+ wm_window_lower(CTX_wm_window(C));
+ }
+ /* determine if render already shows */
+ else if(sa) {
+ SpaceImage *sima= sa->spacedata.first;
+
+ if(sima->flag & SI_PREVSPACE) {
+ sima->flag &= ~SI_PREVSPACE;
+
+ if(sima->flag & SI_FULLWINDOW) {
+ sima->flag &= ~SI_FULLWINDOW;
+ ED_screen_full_prevspace(C, sa);
+ }
+ else if(sima->next) {
+ ED_area_newspace(C, sa, sima->next->spacetype);
+ ED_area_tag_redraw(sa);
+ }
+ }
+ }
+ else {
+ screen_set_image_output(C, event->x, event->y);
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+void RENDER_OT_view_show(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Show/Hide Render View";
+ ot->description= "Toggle show render view";
+ ot->idname= "RENDER_OT_view_show";
+
+ /* api callbacks */
+ ot->invoke= render_view_show_invoke;
+ ot->poll= ED_operator_screenactive;
+}
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
new file mode 100644
index 00000000000..5881d50c309
--- /dev/null
+++ b/source/blender/editors/render/render_opengl.c
@@ -0,0 +1,501 @@
+/**
+ * $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) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <math.h>
+#include <string.h>
+#include <stddef.h>
+
+#include <GL/glew.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_math.h"
+#include "BLI_blenlib.h"
+#include "BLI_editVert.h"
+#include "BLI_dlrbTree.h"
+
+#include "DNA_scene_types.h"
+#include "DNA_object_types.h"
+
+#include "BKE_blender.h"
+#include "BKE_object.h"
+#include "BKE_context.h"
+#include "BKE_global.h"
+#include "BKE_image.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_mesh.h"
+#include "BKE_multires.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+#include "BKE_screen.h"
+#include "BKE_utildefines.h"
+#include "BKE_writeavi.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "ED_screen.h"
+#include "ED_view3d.h"
+#include "ED_image.h"
+
+#include "RE_pipeline.h"
+#include "IMB_imbuf_types.h"
+#include "IMB_imbuf.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+
+#include "GPU_extensions.h"
+
+#include "wm_window.h"
+
+#include "render_intern.h"
+
+typedef struct OGLRender {
+ Render *re;
+ Scene *scene;
+
+ View3D *v3d;
+ RegionView3D *rv3d;
+ ARegion *ar;
+
+ Image *ima;
+ ImageUser iuser;
+
+ GPUOffScreen *ofs;
+ int sizex, sizey;
+
+ ReportList *reports;
+ bMovieHandle *mh;
+ int cfrao, nfra;
+
+ wmTimer *timer; /* use to check if running modal or not (invoke'd or exec'd)*/
+} OGLRender;
+
+/* added because v3d is not always valid */
+static unsigned int screen_opengl_layers(OGLRender *oglrender)
+{
+ if(oglrender->v3d) {
+ return oglrender->scene->lay | oglrender->v3d->lay;
+ }
+ else {
+ return oglrender->scene->lay;
+ }
+}
+
+static void screen_opengl_render_apply(OGLRender *oglrender)
+{
+ Scene *scene= oglrender->scene;
+ ARegion *ar= oglrender->ar;
+ View3D *v3d= oglrender->v3d;
+ RegionView3D *rv3d= oglrender->rv3d;
+ RenderResult *rr;
+ ImBuf *ibuf;
+ void *lock;
+ float winmat[4][4];
+ int sizex= oglrender->sizex;
+ int sizey= oglrender->sizey;
+ int view_context = (v3d != NULL);
+
+ rr= RE_AcquireResultRead(oglrender->re);
+
+ if(view_context) {
+ GPU_offscreen_bind(oglrender->ofs); /* bind */
+
+ /* render 3d view */
+ if(rv3d->persp==RV3D_CAMOB && v3d->camera) {
+ RE_GetCameraWindow(oglrender->re, v3d->camera, scene->r.cfra, winmat);
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat);
+ }
+ else {
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, NULL);
+ }
+
+ glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_FLOAT, rr->rectf);
+
+ GPU_offscreen_unbind(oglrender->ofs); /* unbind */
+ }
+ else {
+ ImBuf *ibuf_view= ED_view3d_draw_offscreen_imbuf_simple(scene, oglrender->sizex, oglrender->sizey, OB_SOLID);
+ IMB_float_from_rect(ibuf_view);
+
+ memcpy(rr->rectf, ibuf_view->rect_float, sizeof(float) * 4 * oglrender->sizex * oglrender->sizey);
+
+ IMB_freeImBuf(ibuf_view);
+ }
+
+ /* rr->rectf is now filled with image data */
+
+ if((scene->r.stamp & R_STAMP_ALL) && (scene->r.stamp & R_STAMP_DRAW))
+ BKE_stamp_buf(scene, NULL, rr->rectf, rr->rectx, rr->recty, 4);
+
+ RE_ReleaseResult(oglrender->re);
+
+ /* update byte from float buffer */
+ ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock);
+ if(ibuf) image_buffer_rect_update(NULL, rr, ibuf, NULL);
+ BKE_image_release_ibuf(oglrender->ima, lock);
+}
+
+static int screen_opengl_render_init(bContext *C, wmOperator *op)
+{
+ /* new render clears all callbacks */
+ Scene *scene= CTX_data_scene(C);
+ RenderResult *rr;
+ GPUOffScreen *ofs;
+ OGLRender *oglrender;
+ int sizex, sizey;
+ int view_context= RNA_boolean_get(op->ptr, "view_context");
+
+ /* ensure we have a 3d view */
+
+ if(!ED_view3d_context_activate(C)) {
+ RNA_boolean_set(op->ptr, "view_context", 0);
+ view_context = 0;
+ }
+
+ /* only one render job at a time */
+ if(WM_jobs_test(CTX_wm_manager(C), scene))
+ return 0;
+
+ if(!view_context && scene->camera==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "Scene has no camera.");
+ return 0;
+ }
+
+ /* stop all running jobs, currently previews frustrate Render */
+ WM_jobs_stop_all(CTX_wm_manager(C));
+
+ /* handle UI stuff */
+ WM_cursor_wait(1);
+
+ /* create offscreen buffer */
+ sizex= (scene->r.size*scene->r.xsch)/100;
+ sizey= (scene->r.size*scene->r.ysch)/100;
+
+ ofs= GPU_offscreen_create(sizex, sizey);
+
+ if(!ofs) {
+ BKE_report(op->reports, RPT_ERROR, "Failed to create OpenGL offscreen buffer.");
+ return 0;
+ }
+
+ /* allocate opengl render */
+ oglrender= MEM_callocN(sizeof(OGLRender), "OGLRender");
+ op->customdata= oglrender;
+
+ oglrender->ofs= ofs;
+ oglrender->sizex= sizex;
+ oglrender->sizey= sizey;
+ oglrender->scene= scene;
+
+ if(view_context) {
+ oglrender->v3d= CTX_wm_view3d(C);
+ oglrender->ar= CTX_wm_region(C);
+ oglrender->rv3d= CTX_wm_region_view3d(C);
+ }
+
+ /* create image and image user */
+ oglrender->ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
+ BKE_image_signal(oglrender->ima, NULL, IMA_SIGNAL_FREE);
+
+ oglrender->iuser.scene= scene;
+ oglrender->iuser.ok= 1;
+
+ /* create render and render result */
+ oglrender->re= RE_NewRender(scene->id.name);
+ RE_InitState(oglrender->re, NULL, &scene->r, NULL, sizex, sizey, NULL);
+
+ rr= RE_AcquireResultWrite(oglrender->re);
+ if(rr->rectf==NULL)
+ rr->rectf= MEM_callocN(sizeof(float)*4*sizex*sizey, "screen_opengl_render_init rect");
+ RE_ReleaseResult(oglrender->re);
+
+ return 1;
+}
+
+static void screen_opengl_render_end(bContext *C, OGLRender *oglrender)
+{
+ Scene *scene= oglrender->scene;
+
+ if(oglrender->mh) {
+ if(BKE_imtype_is_movie(scene->r.imtype))
+ oglrender->mh->end_movie();
+ }
+
+ if(oglrender->timer) { /* exec will not have a timer */
+ scene->r.cfra= oglrender->cfrao;
+ scene_update_for_newframe(scene, screen_opengl_layers(oglrender));
+
+ WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), oglrender->timer);
+ }
+
+ WM_cursor_wait(0);
+ WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene);
+
+ GPU_offscreen_free(oglrender->ofs);
+
+ MEM_freeN(oglrender);
+}
+
+static int screen_opengl_render_cancel(bContext *C, wmOperator *op)
+{
+ screen_opengl_render_end(C, op->customdata);
+
+ return OPERATOR_CANCELLED;
+}
+
+/* share between invoke and exec */
+static int screen_opengl_render_anim_initialize(bContext *C, wmOperator *op)
+{
+ /* initialize animation */
+ OGLRender *oglrender;
+ Scene *scene;
+
+ oglrender= op->customdata;
+ scene= oglrender->scene;
+
+ oglrender->reports= op->reports;
+ oglrender->mh= BKE_get_movie_handle(scene->r.imtype);
+ if(BKE_imtype_is_movie(scene->r.imtype)) {
+ if(!oglrender->mh->start_movie(scene, &scene->r, oglrender->sizex, oglrender->sizey, oglrender->reports)) {
+ screen_opengl_render_end(C, oglrender);
+ return 0;
+ }
+ }
+
+ oglrender->cfrao= scene->r.cfra;
+ oglrender->nfra= SFRA;
+ scene->r.cfra= SFRA;
+
+ return 1;
+}
+static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
+{
+ OGLRender *oglrender= op->customdata;
+ Scene *scene= oglrender->scene;
+ ImBuf *ibuf;
+ void *lock;
+ char name[FILE_MAXDIR+FILE_MAXFILE];
+ int ok= 0;
+ int view_context = (oglrender->v3d != NULL);
+
+ /* update animated image textures for gpu, etc,
+ * call before scene_update_for_newframe so modifiers with textuers dont lag 1 frame */
+ ED_image_update_frame(C);
+
+ /* go to next frame */
+ while(CFRA<oglrender->nfra) {
+ unsigned int lay= screen_opengl_layers(oglrender);
+
+ if(lay & 0xFF000000)
+ lay &= 0xFF000000;
+
+ scene_update_for_newframe(scene, lay);
+ CFRA++;
+ }
+
+ scene_update_for_newframe(scene, screen_opengl_layers(oglrender));
+
+ if(view_context) {
+ if(oglrender->rv3d->persp==RV3D_CAMOB && oglrender->v3d->camera && oglrender->v3d->scenelock) {
+ /* since scene_update_for_newframe() is used rather
+ * then ED_update_for_newframe() the camera needs to be set */
+ if(scene_camera_switch_update(scene))
+ oglrender->v3d->camera= scene->camera;
+ }
+ }
+ else {
+ scene_camera_switch_update(scene);
+ }
+
+ /* render into offscreen buffer */
+ screen_opengl_render_apply(oglrender);
+
+ /* save to disk */
+ ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock);
+
+ if(ibuf) {
+ if(BKE_imtype_is_movie(scene->r.imtype)) {
+ ok= oglrender->mh->append_movie(&scene->r, CFRA, (int*)ibuf->rect, oglrender->sizex, oglrender->sizey, oglrender->reports);
+ if(ok) {
+ printf("Append frame %d", scene->r.cfra);
+ BKE_reportf(op->reports, RPT_INFO, "Appended frame: %d", scene->r.cfra);
+ }
+ }
+ else {
+ BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION);
+ ok= BKE_write_ibuf(scene, ibuf, name, scene->r.imtype, scene->r.subimtype, scene->r.quality);
+
+ if(ok==0) {
+ printf("Write error: cannot save %s\n", name);
+ BKE_reportf(op->reports, RPT_ERROR, "Write error: cannot save %s", name);
+ }
+ else {
+ printf("Saved: %s", name);
+ BKE_reportf(op->reports, RPT_INFO, "Saved file: %s", name);
+ }
+ }
+ }
+
+ BKE_image_release_ibuf(oglrender->ima, lock);
+
+ /* movie stats prints have no line break */
+ printf("\n");
+
+ /* go to next frame */
+ oglrender->nfra += scene->r.frame_step;
+ scene->r.cfra++;
+
+ /* stop at the end or on error */
+ if(scene->r.cfra > EFRA || !ok) {
+ screen_opengl_render_end(C, op->customdata);
+ return 0;
+ }
+
+ return 1;
+}
+
+
+static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *event)
+{
+ OGLRender *oglrender= op->customdata;
+
+ int ret;
+
+ switch(event->type) {
+ case ESCKEY:
+ /* cancel */
+ screen_opengl_render_end(C, op->customdata);
+ return OPERATOR_FINISHED;
+ case TIMER:
+ /* render frame? */
+ if(oglrender->timer == event->customdata)
+ break;
+ default:
+ /* nothing to do */
+ return OPERATOR_RUNNING_MODAL;
+ }
+
+ /* run first because screen_opengl_render_anim_step can free oglrender */
+ WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene);
+
+ ret= screen_opengl_render_anim_step(C, op);
+
+ /* stop at the end or on error */
+ if(ret == 0) {
+ return OPERATOR_FINISHED;
+ }
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ int anim= RNA_boolean_get(op->ptr, "animation");
+
+ if(!screen_opengl_render_init(C, op))
+ return OPERATOR_CANCELLED;
+
+ if(!anim) {
+ /* render image */
+ screen_opengl_render_apply(op->customdata);
+ screen_opengl_render_end(C, op->customdata);
+ screen_set_image_output(C, event->x, event->y);
+
+ return OPERATOR_FINISHED;
+ }
+ else {
+ OGLRender *oglrender= op->customdata;
+
+ if(!screen_opengl_render_anim_initialize(C, op))
+ return OPERATOR_CANCELLED;
+
+ screen_set_image_output(C, event->x, event->y);
+
+ WM_event_add_modal_handler(C, op);
+ oglrender->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f);
+
+ return OPERATOR_RUNNING_MODAL;
+ }
+}
+
+/* executes blocking render */
+static int screen_opengl_render_exec(bContext *C, wmOperator *op)
+{
+ int anim= RNA_boolean_get(op->ptr, "animation");
+
+ if(!screen_opengl_render_init(C, op))
+ return OPERATOR_CANCELLED;
+
+ if(!anim) { /* same as invoke */
+ /* render image */
+ screen_opengl_render_apply(op->customdata);
+ screen_opengl_render_end(C, op->customdata);
+
+ return OPERATOR_FINISHED;
+ }
+ else {
+ int ret= 1;
+
+ if(!screen_opengl_render_anim_initialize(C, op))
+ return OPERATOR_CANCELLED;
+
+ while(ret) {
+ ret= screen_opengl_render_anim_step(C, op);
+ }
+ }
+
+ // no redraw needed, we leave state as we entered it
+// ED_update_for_newframe(C, 1);
+ WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, CTX_data_scene(C));
+
+ return OPERATOR_FINISHED;
+}
+
+void RENDER_OT_opengl(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "OpenGL Render";
+ ot->description= "OpenGL render active viewport";
+ ot->idname= "RENDER_OT_opengl";
+
+ /* api callbacks */
+ ot->invoke= screen_opengl_render_invoke;
+ ot->exec= screen_opengl_render_exec; /* blocking */
+ ot->modal= screen_opengl_render_modal;
+ ot->cancel= screen_opengl_render_cancel;
+
+ ot->poll= ED_operator_screenactive;
+
+ RNA_def_boolean(ot->srna, "animation", 0, "Animation", "");
+ RNA_def_boolean(ot->srna, "view_context", 1, "View Context", "Use the current 3D view for rendering, else use scene settings.");
+}
+
+/* function for getting an opengl buffer from a View3D, used by sequencer */
+// extern void *sequencer_view3d_cb;
diff --git a/source/blender/editors/render/render_ops.c b/source/blender/editors/render/render_ops.c
index 62fb48c34ff..b1cb1d9c2f1 100644
--- a/source/blender/editors/render/render_ops.c
+++ b/source/blender/editors/render/render_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -27,10 +27,8 @@
#include <stdlib.h>
-#include "DNA_windowmanager_types.h"
#include "WM_api.h"
-#include "WM_types.h"
#include "render_intern.h" // own include
@@ -63,6 +61,19 @@ void ED_operatortypes_render(void)
WM_operatortype_append(SCENE_OT_render_data_set_quicktime_codec);
#endif
+ WM_operatortype_append(TEXTURE_OT_slot_copy);
+ WM_operatortype_append(TEXTURE_OT_slot_paste);
WM_operatortype_append(TEXTURE_OT_slot_move);
+ WM_operatortype_append(TEXTURE_OT_envmap_save);
+ WM_operatortype_append(TEXTURE_OT_envmap_clear);
+ WM_operatortype_append(TEXTURE_OT_envmap_clear_all);
+
+ /* render_internal.c */
+ WM_operatortype_append(RENDER_OT_view_show);
+ WM_operatortype_append(RENDER_OT_render);
+ WM_operatortype_append(RENDER_OT_view_cancel);
+
+ /* render_opengl.c */
+ WM_operatortype_append(RENDER_OT_opengl);
}
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index aca13fbd66d..ae2462b95f8 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -46,12 +46,9 @@
#include "BLI_blenlib.h"
#include "BLI_threads.h"
-#include "DNA_texture_types.h"
#include "DNA_world_types.h"
#include "DNA_camera_types.h"
-#include "DNA_image_types.h"
#include "DNA_material_types.h"
-#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_lamp_types.h"
#include "DNA_space_types.h"
@@ -83,7 +80,6 @@
#include "RE_pipeline.h"
-#include "GPU_material.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -100,13 +96,6 @@
#define PR_XMAX 200
#define PR_YMAX 195
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
-/* ************** libgomp (Apple gcc 4.2.1) TLS bug workaround *************** */
-#include <pthread.h>
-extern pthread_key_t gomp_tls_key;
-static void *thread_tls_data;
-#endif
-
/* XXX */
static int qtest() {return 0;}
/* XXX */
@@ -310,6 +299,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
sce->r.alphamode= R_ADDSKY;
sce->r.cfra= scene->r.cfra;
+ strcpy(sce->r.engine, scene->r.engine);
if(id_type==ID_MA) {
Material *mat= (Material *)id;
@@ -356,7 +346,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
}
- if(sp->pr_method==PR_ICON_RENDER) {
+ if(sp && sp->pr_method==PR_ICON_RENDER) {
if (mat->material_type == MA_TYPE_HALO) {
sce->lay= 1<<MA_FLAT;
}
@@ -416,7 +406,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
}
}
- if(tex && tex->nodetree && sp->pr_method==PR_NODE_RENDER)
+ if(tex && tex->nodetree && sp && sp->pr_method==PR_NODE_RENDER)
ntreeInitPreview(tex->nodetree, sp->sizex, sp->sizey);
}
else if(id_type==ID_LA) {
@@ -481,7 +471,7 @@ static int ed_preview_draw_rect(ScrArea *sa, Scene *sce, ID *id, int split, int
}
}
- re= RE_GetRender(name, RE_SLOT_DEFAULT);
+ re= RE_GetRender(name);
RE_AcquireResultImage(re, &rres);
if(rres.rectf) {
@@ -709,7 +699,7 @@ void BIF_view3d_previewrender(Scene *scene, ScrArea *sa)
ri->status= 0;
sprintf(name, "View3dPreview %p", sa);
- re= ri->re= RE_NewRender(name, RE_SLOT_DEFAULT);
+ re= ri->re= RE_NewRender(name);
//RE_display_draw_cb(re, view3d_previewrender_progress);
//RE_stats_draw_cb(re, view3d_previewrender_stats);
//RE_test_break_cb(re, qtest);
@@ -759,11 +749,10 @@ void BIF_view3d_previewrender(Scene *scene, ScrArea *sa)
/* allow localview render for objects with lights in normal layers */
if(v3d->lay & 0xFF000000)
- scene->lay |= v3d->lay;
- else scene->lay= v3d->lay;
+ lay |= v3d->lay;
+ else lay= v3d->lay;
- RE_Database_FromScene(re, scene, 0); // 0= dont use camera view
- scene->lay= lay;
+ RE_Database_FromScene(re, scene, lay, 0); // 0= dont use camera view
rstats= RE_GetStats(re);
if(rstats->convertdone)
@@ -792,7 +781,7 @@ void BIF_view3d_previewrender(Scene *scene, ScrArea *sa)
/* OK, can we enter render code? */
if(ri->status==(PR_DISPRECT|PR_DBASE|PR_PROJECTED|PR_ROTATED)) {
//printf("curtile %d tottile %d\n", ri->curtile, ri->tottile);
- RE_TileProcessor(ri->re, ri->curtile, 0);
+ RE_TileProcessor(ri->re); //, ri->curtile, 0);
if(ri->rect==NULL)
ri->rect= MEM_mallocN(sizeof(int)*ri->pr_rectx*ri->pr_recty, "preview view3d rect");
@@ -897,11 +886,11 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
if(!split || first) sprintf(name, "Preview %p", sp->owner);
else sprintf(name, "SecondPreview %p", sp->owner);
- re= RE_GetRender(name, RE_SLOT_DEFAULT);
+ re= RE_GetRender(name);
/* full refreshed render from first tile */
if(re==NULL)
- re= RE_NewRender(name, RE_SLOT_DEFAULT);
+ re= RE_NewRender(name);
/* sce->r gets copied in RE_InitState! */
sce->r.scemode &= ~(R_MATNODE_PREVIEW|R_TEXNODE_PREVIEW);
@@ -909,6 +898,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
if(sp->pr_method==PR_ICON_RENDER) {
sce->r.scemode |= R_NO_IMAGE_LOAD;
+ sce->r.mode |= R_OSA;
}
else if(sp->pr_method==PR_NODE_RENDER) {
if(idtype == ID_MA) sce->r.scemode |= R_MATNODE_PREVIEW;
@@ -927,10 +917,12 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
else sizex= sp->sizex;
/* allocates or re-uses render result */
- RE_InitState(re, NULL, &sce->r, NULL, sizex, sp->sizey, NULL);
+ sce->r.xsch= sizex;
+ sce->r.ysch= sp->sizey;
+ sce->r.size= 100;
/* callbacs are cleared on GetRender() */
- if(sp->pr_method==PR_BUTS_RENDER) {
+ if(ELEM(sp->pr_method, PR_BUTS_RENDER, PR_NODE_RENDER)) {
RE_display_draw_cb(re, sp, shader_preview_draw);
RE_test_break_cb(re, sp, shader_preview_break);
}
@@ -940,10 +932,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
((Camera *)sce->camera->data)->lens *= (float)sp->sizey/(float)sizex;
/* entire cycle for render engine */
- RE_SetCamera(re, sce->camera);
- RE_Database_FromScene(re, sce, 1);
- RE_TileProcessor(re, 0, 1); // actual render engine
- RE_Database_Free(re);
+ RE_PreviewRender(re, sce);
((Camera *)sce->camera->data)->lens= oldlens;
@@ -1101,15 +1090,10 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat
/* use same function for icon & shader, so the job manager
does not run two of them at the same time. */
-static void common_preview_startjob(void *customdata, short *stop, short *do_update)
+static void common_preview_startjob(void *customdata, short *stop, short *do_update, float *progress)
{
ShaderPreview *sp= customdata;
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
- // Workaround for Apple gcc 4.2.1 omp vs background thread bug
- pthread_setspecific (gomp_tls_key, thread_tls_data);
-#endif
-
if(sp->pr_method == PR_ICON_RENDER)
icon_preview_startjob(customdata, stop, do_update);
else
@@ -1123,7 +1107,7 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r
wmJob *steve;
ShaderPreview *sp;
- steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, WM_JOB_EXCL_RENDER);
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Icon Preview", WM_JOB_EXCL_RENDER);
sp= MEM_callocN(sizeof(ShaderPreview), "shader preview");
/* customdata for preview thread */
@@ -1138,13 +1122,8 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r
/* setup job */
WM_jobs_customdata(steve, sp, shader_preview_free);
WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL);
- WM_jobs_callbacks(steve, common_preview_startjob, NULL, NULL);
+ WM_jobs_callbacks(steve, common_preview_startjob, NULL, NULL, NULL);
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
- // Workaround for Apple gcc 4.2.1 omp vs background thread bug
- thread_tls_data = pthread_getspecific(gomp_tls_key);
-#endif
-
WM_jobs_start(CTX_wm_manager(C), steve);
}
@@ -1153,7 +1132,7 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M
wmJob *steve;
ShaderPreview *sp;
- steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, WM_JOB_EXCL_RENDER);
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Shader Preview", WM_JOB_EXCL_RENDER);
sp= MEM_callocN(sizeof(ShaderPreview), "shader preview");
/* customdata for preview thread */
@@ -1169,14 +1148,15 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M
/* setup job */
WM_jobs_customdata(steve, sp, shader_preview_free);
WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL);
- WM_jobs_callbacks(steve, common_preview_startjob, NULL, shader_preview_updatejob);
-
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
- // Workaround for Apple gcc 4.2.1 omp vs background thread bug
- thread_tls_data = pthread_getspecific(gomp_tls_key);
-#endif
+ WM_jobs_callbacks(steve, common_preview_startjob, NULL, shader_preview_updatejob, NULL);
WM_jobs_start(CTX_wm_manager(C), steve);
}
+void ED_preview_kill_jobs(const struct bContext *C)
+{
+ wmWindowManager *wm= CTX_wm_manager(C);
+ if(wm)
+ WM_jobs_kill(wm, NULL, common_preview_startjob);
+}
diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 54c9df38add..f96e82a30f4 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,27 +32,34 @@
#include "DNA_curve_types.h"
#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
-#include "DNA_meshdata_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
-#include "DNA_texture_types.h"
#include "DNA_scene_types.h"
+#include "DNA_space_types.h"
#include "DNA_world_types.h"
+#include "BKE_animsys.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_font.h"
+#include "BKE_global.h"
#include "BKE_icons.h"
+#include "BKE_image.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_node.h"
+#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_texture.h"
#include "BKE_utildefines.h"
#include "BKE_world.h"
#include "BKE_tessmesh.h"
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
+#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_listbase.h"
@@ -60,20 +67,16 @@
#include "GPU_material.h"
#include "RNA_access.h"
-#include "RNA_enum_types.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_curve.h"
#include "ED_mesh.h"
-#include "ED_render.h"
-#include "RNA_access.h"
#include "RNA_define.h"
#include "UI_interface.h"
-#include "UI_resources.h"
#include "render_intern.h" // own include
@@ -194,6 +197,19 @@ static void world_changed(Main *bmain, World *wo)
GPU_material_free(ma);
}
+static void image_changed(Main *bmain, Image *ima)
+{
+ Tex *tex;
+
+ /* icons */
+ BKE_icon_changed(BKE_icon_getid(&ima->id));
+
+ /* textures */
+ for(tex=bmain->tex.first; tex; tex=tex->id.next)
+ if(tex->ima == ima)
+ texture_changed(bmain, tex);
+}
+
void ED_render_id_flush_update(Main *bmain, ID *id)
{
if(!id)
@@ -212,6 +228,9 @@ void ED_render_id_flush_update(Main *bmain, ID *id)
case ID_LA:
lamp_changed(bmain, (Lamp*)id);
break;
+ case ID_IM:
+ image_changed(bmain, (Image*)id);
+ break;
default:
break;
}
@@ -305,7 +324,7 @@ static int material_slot_assign_exec(bContext *C, wmOperator *op)
}
else if(ob->type == OB_FONT) {
EditFont *ef= ((Curve*)ob->data)->editfont;
- int i, selstart, selend;
+ int i, selstart, selend;
if(ef && BKE_font_getselection(ob, &selstart, &selend)) {
for(i=selstart; i<=selend; i++)
@@ -314,8 +333,8 @@ static int material_slot_assign_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
+ DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
return OPERATOR_FINISHED;
}
@@ -395,7 +414,7 @@ static int material_slot_de_select(bContext *C, int select)
}
}
- WM_event_add_notifier(C, NC_GEOM|ND_SELECT, ob->data);
+ WM_event_add_notifier(C, NC_GEOM|ND_SELECT, ob->data);
return OPERATOR_FINISHED;
}
@@ -693,6 +712,7 @@ void SCENE_OT_render_layer_remove(wmOperatorType *ot)
static int texture_slot_move(bContext *C, wmOperator *op)
{
ID *id= CTX_data_pointer_get_type(C, "texture_slot", &RNA_TextureSlot).id.data;
+ Material *ma = (Material *)id;
if(id) {
MTex **mtex_ar, *mtexswap;
@@ -706,6 +726,10 @@ static int texture_slot_move(bContext *C, wmOperator *op)
mtexswap = mtex_ar[act];
mtex_ar[act] = mtex_ar[act-1];
mtex_ar[act-1] = mtexswap;
+
+ BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, act-1, -1, 0);
+ BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, act, act-1, 0);
+ BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, -1, act, 0);
if(GS(id->name)==ID_MA) {
Material *ma= (Material *)id;
@@ -715,7 +739,7 @@ static int texture_slot_move(bContext *C, wmOperator *op)
ma->septex &= ~(1<<(act-1));
ma->septex |= mtexuse >> 1;
}
-
+
set_active_mtex(id, act-1);
}
}
@@ -724,6 +748,10 @@ static int texture_slot_move(bContext *C, wmOperator *op)
mtexswap = mtex_ar[act];
mtex_ar[act] = mtex_ar[act+1];
mtex_ar[act+1] = mtexswap;
+
+ BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, act+1, -1, 0);
+ BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, act, act+1, 0);
+ BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, -1, act, 0);
if(GS(id->name)==ID_MA) {
Material *ma= (Material *)id;
@@ -733,7 +761,7 @@ static int texture_slot_move(bContext *C, wmOperator *op)
ma->septex &= ~(1<<(act+1));
ma->septex |= mtexuse << 1;
}
-
+
set_active_mtex(id, act+1);
}
}
@@ -768,6 +796,201 @@ void TEXTURE_OT_slot_move(wmOperatorType *ot)
+/********************** environment map operators *********************/
+
+static int save_envmap(wmOperator *op, Scene *scene, EnvMap *env, char *str, int imtype)
+{
+ ImBuf *ibuf=NULL;
+ int dx;
+ int retval;
+
+ if(env->cube[1]==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "There is no generated environment map available to save");
+ return OPERATOR_CANCELLED;
+ }
+
+ dx= env->cube[1]->x;
+
+ if (env->type == ENV_CUBE) {
+ ibuf = IMB_allocImBuf(3*dx, 2*dx, 24, IB_rectfloat, 0);
+
+ IMB_rectcpy(ibuf, env->cube[0], 0, 0, 0, 0, dx, dx);
+ IMB_rectcpy(ibuf, env->cube[1], dx, 0, 0, 0, dx, dx);
+ IMB_rectcpy(ibuf, env->cube[2], 2*dx, 0, 0, 0, dx, dx);
+ IMB_rectcpy(ibuf, env->cube[3], 0, dx, 0, 0, dx, dx);
+ IMB_rectcpy(ibuf, env->cube[4], dx, dx, 0, 0, dx, dx);
+ IMB_rectcpy(ibuf, env->cube[5], 2*dx, dx, 0, 0, dx, dx);
+ }
+ else if (env->type == ENV_PLANE) {
+ ibuf = IMB_allocImBuf(dx, dx, 24, IB_rectfloat, 0);
+ IMB_rectcpy(ibuf, env->cube[1], 0, 0, 0, 0, dx, dx);
+ }
+
+ if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
+ ibuf->profile = IB_PROFILE_LINEAR_RGB;
+
+ if (BKE_write_ibuf(scene, ibuf, str, imtype, scene->r.subimtype, scene->r.quality)) {
+ retval = OPERATOR_FINISHED;
+ }
+ else {
+ BKE_reportf(op->reports, RPT_ERROR, "Error saving environment map to %s.", str);
+ retval = OPERATOR_CANCELLED;
+ }
+
+ IMB_freeImBuf(ibuf);
+ ibuf = NULL;
+
+ return retval;
+}
+
+static int envmap_save_exec(bContext *C, wmOperator *op)
+{
+ Tex *tex= CTX_data_pointer_get_type(C, "texture", &RNA_Texture).data;
+ Scene *scene = CTX_data_scene(C);
+ //int imtype = RNA_enum_get(op->ptr, "file_type");
+ int imtype = scene->r.imtype;
+ char path[FILE_MAX];
+
+ RNA_string_get(op->ptr, "filepath", path);
+
+ if(scene->r.scemode & R_EXTENSION) {
+ BKE_add_image_extension(path, imtype);
+ }
+
+ WM_cursor_wait(1);
+
+ save_envmap(op, scene, tex->env, path, imtype);
+
+ WM_cursor_wait(0);
+
+ WM_event_add_notifier(C, NC_TEXTURE, tex);
+
+ return OPERATOR_FINISHED;
+}
+
+static int envmap_save_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ //Scene *scene= CTX_data_scene(C);
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
+ if(RNA_property_is_set(op->ptr, "filepath"))
+ return envmap_save_exec(C, op);
+
+ //RNA_enum_set(op->ptr, "file_type", scene->r.imtype);
+
+ RNA_string_set(op->ptr, "filepath", G.sce);
+ WM_event_add_fileselect(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int envmap_save_poll(bContext *C)
+{
+ Tex *tex= CTX_data_pointer_get_type(C, "texture", &RNA_Texture).data;
+
+ if (!tex)
+ return 0;
+ if (!tex->env || !tex->env->ok)
+ return 0;
+ if (tex->env->cube[1]==NULL)
+ return 0;
+
+ return 1;
+}
+
+void TEXTURE_OT_envmap_save(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Save Environment Map";
+ ot->idname= "TEXTURE_OT_envmap_save";
+ ot->description="Save the current generated Environment map to an image file";
+
+ /* api callbacks */
+ ot->exec= envmap_save_exec;
+ ot->invoke= envmap_save_invoke;
+ ot->poll= envmap_save_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ //RNA_def_enum(ot->srna, "file_type", image_file_type_items, R_PNG, "File Type", "File type to save image as.");
+ WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
+}
+
+static int envmap_clear_exec(bContext *C, wmOperator *op)
+{
+ Tex *tex= CTX_data_pointer_get_type(C, "texture", &RNA_Texture).data;
+
+ BKE_free_envmapdata(tex->env);
+
+ WM_event_add_notifier(C, NC_TEXTURE|NA_EDITED, tex);
+
+ return OPERATOR_FINISHED;
+}
+
+static int envmap_clear_poll(bContext *C)
+{
+ Tex *tex= CTX_data_pointer_get_type(C, "texture", &RNA_Texture).data;
+
+ if (!tex)
+ return 0;
+ if (!tex->env || !tex->env->ok)
+ return 0;
+ if (tex->env->cube[1]==NULL)
+ return 0;
+
+ return 1;
+}
+
+void TEXTURE_OT_envmap_clear(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Clear Environment Map";
+ ot->idname= "TEXTURE_OT_envmap_clear";
+ ot->description="Discard the environment map and free it from memory";
+
+ /* api callbacks */
+ ot->exec= envmap_clear_exec;
+ ot->poll= envmap_clear_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int envmap_clear_all_exec(bContext *C, wmOperator *op)
+{
+ Main *bmain = CTX_data_main(C);
+ Tex *tex;
+
+ for (tex=bmain->tex.first; tex; tex=tex->id.next)
+ if (tex->env)
+ BKE_free_envmapdata(tex->env);
+
+ WM_event_add_notifier(C, NC_TEXTURE|NA_EDITED, tex);
+
+ return OPERATOR_FINISHED;
+}
+
+void TEXTURE_OT_envmap_clear_all(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Clear All Environment Maps";
+ ot->idname= "TEXTURE_OT_envmap_clear_all";
+ ot->description="Discard all environment maps in the .blend file and free them from memory";
+
+ /* api callbacks */
+ ot->exec= envmap_clear_all_exec;
+ ot->poll= envmap_clear_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/********************** material operators *********************/
+
/* material copy/paste */
static int copy_material_exec(bContext *C, wmOperator *op)
{
@@ -816,7 +1039,7 @@ void MATERIAL_OT_paste(wmOperatorType *ot)
/* identifiers */
ot->name= "Paste Material";
ot->idname= "MATERIAL_OT_paste";
- ot->description="Copy the material settings and nodes";
+ ot->description="Paste the material settings and nodes";
/* api callbacks */
ot->exec= paste_material_exec;
@@ -824,3 +1047,155 @@ void MATERIAL_OT_paste(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
+
+
+static short mtexcopied=0; /* must be reset on file load */
+static MTex mtexcopybuf;
+
+void ED_render_clear_mtex_copybuf(void)
+{ /* use for file reload */
+ mtexcopied= 0;
+}
+
+void copy_mtex_copybuf(ID *id)
+{
+ MTex **mtex= NULL;
+
+ switch(GS(id->name)) {
+ case ID_MA:
+ mtex= &(((Material *)id)->mtex[(int)((Material *)id)->texact]);
+ break;
+ case ID_LA:
+ mtex= &(((Lamp *)id)->mtex[(int)((Lamp *)id)->texact]);
+ // la->mtex[(int)la->texact] // TODO
+ break;
+ case ID_WO:
+ mtex= &(((World *)id)->mtex[(int)((World *)id)->texact]);
+ // mtex= wrld->mtex[(int)wrld->texact]; // TODO
+ break;
+ }
+
+ if(mtex && *mtex) {
+ memcpy(&mtexcopybuf, *mtex, sizeof(MTex));
+ mtexcopied= 1;
+ }
+ else {
+ mtexcopied= 0;
+ }
+}
+
+void paste_mtex_copybuf(ID *id)
+{
+ MTex **mtex= NULL;
+
+ if(mtexcopied == 0 || mtexcopybuf.tex==NULL)
+ return;
+
+ switch(GS(id->name)) {
+ case ID_MA:
+ mtex= &(((Material *)id)->mtex[(int)((Material *)id)->texact]);
+ break;
+ case ID_LA:
+ mtex= &(((Lamp *)id)->mtex[(int)((Lamp *)id)->texact]);
+ // la->mtex[(int)la->texact] // TODO
+ break;
+ case ID_WO:
+ mtex= &(((World *)id)->mtex[(int)((World *)id)->texact]);
+ // mtex= wrld->mtex[(int)wrld->texact]; // TODO
+ break;
+ }
+
+ if(mtex) {
+ if(*mtex==NULL) {
+ *mtex= MEM_mallocN(sizeof(MTex), "mtex copy");
+ }
+ else if((*mtex)->tex) {
+ (*mtex)->tex->id.us--;
+ }
+
+ memcpy(*mtex, &mtexcopybuf, sizeof(MTex));
+
+ id_us_plus((ID *)mtexcopybuf.tex);
+ }
+}
+
+
+static int copy_mtex_exec(bContext *C, wmOperator *op)
+{
+ ID *id= CTX_data_pointer_get_type(C, "texture_slot", &RNA_TextureSlot).id.data;
+
+ if(id==NULL) {
+ /* copying empty slot */
+ ED_render_clear_mtex_copybuf();
+ return OPERATOR_CANCELLED;
+ }
+
+ copy_mtex_copybuf(id);
+
+ WM_event_add_notifier(C, NC_TEXTURE, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+static int copy_mtex_poll(bContext *C)
+{
+ ID *id= CTX_data_pointer_get_type(C, "texture_slot", &RNA_TextureSlot).id.data;
+
+ return (id != NULL);
+}
+
+void TEXTURE_OT_slot_copy(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Copy Texture Slot Settings";
+ ot->idname= "TEXTURE_OT_slot_copy";
+ ot->description="Copy the material texture settings and nodes";
+
+ /* api callbacks */
+ ot->exec= copy_mtex_exec;
+ ot->poll= copy_mtex_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int paste_mtex_exec(bContext *C, wmOperator *op)
+{
+ ID *id= CTX_data_pointer_get_type(C, "texture_slot", &RNA_TextureSlot).id.data;
+
+ if(id==NULL) {
+ Material *ma= CTX_data_pointer_get_type(C, "material", &RNA_Material).data;
+ Lamp *la= CTX_data_pointer_get_type(C, "lamp", &RNA_Lamp).data;
+ World *wo= CTX_data_pointer_get_type(C, "world", &RNA_World).data;
+
+ if (ma)
+ id = &ma->id;
+ else if (la)
+ id = &la->id;
+ else if (wo)
+ id = &wo->id;
+
+ if (id==NULL)
+ return OPERATOR_CANCELLED;
+ }
+
+ paste_mtex_copybuf(id);
+
+ WM_event_add_notifier(C, NC_TEXTURE|ND_SHADING_DRAW, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void TEXTURE_OT_slot_paste(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Paste Texture Slot Settings";
+ ot->idname= "TEXTURE_OT_slot_paste";
+ ot->description="Copy the texture settings and nodes";
+
+ /* api callbacks */
+ ot->exec= paste_mtex_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
diff --git a/source/blender/editors/screen/CMakeLists.txt b/source/blender/editors/screen/CMakeLists.txt
index 5708ab6684d..f9b5ceba0e4 100644
--- a/source/blender/editors/screen/CMakeLists.txt
+++ b/source/blender/editors/screen/CMakeLists.txt
@@ -1,13 +1,10 @@
# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
-# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+# ***** 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. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
+# 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
@@ -18,61 +15,27 @@
# 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) 2006, Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
# Contributor(s): Jacques Beaurain.
#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
-
-FILE(GLOB SRC */*.c)
-
-SET(INC ../../windowmanager
- ../../editors/include
- ../../../../intern/guardedalloc ../../../../intern/memutil
- ../../blenlib ../../makesdna ../../makesrna ../../blenkernel
- ../../include ../../imbuf
- ../../render/extern/include ../../../../intern/bsp/extern
- ../../../intern/decimation/extern ../../blenloader
- ../../../kernel/gen_system ../../readstreamglue
- ../../../../intern/elbeem/extern
- ../../../../intern/ghost ../../../../intern/opennl/extern
- ../../nodes
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenfont
+ ../../blenkernel
+ ../../blenlib
+ ../../bmesh
+ ../../imbuf
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
)
-IF(WITH_INTERNATIONAL)
- ADD_DEFINITIONS(-DINTERNATIONAL)
-ENDIF(WITH_INTERNATIONAL)
-
-IF(WITH_OPENEXR)
- ADD_DEFINITIONS(-DWITH_OPENEXR)
-ENDIF(WITH_OPENEXR)
-
-IF(WITH_QUICKTIME)
- SET(INC ${INC} ../../quicktime ${QUICKTIME_INC})
- ADD_DEFINITIONS(-DWITH_QUICKTIME)
-ENDIF(WITH_QUICKTIME)
-
-IF(WITH_FFMPEG)
- SET(INC ${INC} ${FFMPEG_INC})
- ADD_DEFINITIONS(-DWITH_FFMPEG)
-ENDIF(WITH_FFMPEG)
-
-IF(WITH_PYTHON)
- SET(INC ${INC} ../../python ${PYTHON_INC})
-ELSE(WITH_PYTHON)
- ADD_DEFINITIONS(-DDISABLE_PYTHON)
-ENDIF(WITH_PYTHON)
-
IF(WIN32)
SET(INC ${INC} ${PTHREADS_INC})
ENDIF(WIN32)
-IF(WITH_BUILDINFO)
- ADD_DEFINITIONS(-DNAN_BUILDINFO)
-ENDIF(WITH_BUILDINFO)
-
-BLENDERLIB_NOLIST(bf_editors "${SRC}" "${INC}")
-
+BLENDERLIB(bf_editor_screen "${SRC}" "${INC}")
diff --git a/source/blender/editors/screen/SConscript b/source/blender/editors/screen/SConscript
index 1b5a33e12be..5ce15cf5472 100644
--- a/source/blender/editors/screen/SConscript
+++ b/source/blender/editors/screen/SConscript
@@ -4,17 +4,12 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../blenfont ../../makesdna ../../imbuf'
-incs += ' ../../blenloader ../../windowmanager ../../python ../../makesrna ../../gpu'
+incs += ' ../../blenloader ../../windowmanager ../../makesrna ../../gpu'
incs += ' ../../render/extern/include ../../bmesh'
incs += ' #/intern/guardedalloc #/extern/glew/include'
defs = ''
-if not env['WITH_BF_PYTHON']:
- defs += 'DISABLE_PYTHON'
-if env['WITH_BF_OPENEXR']:
- defs += ' WITH_OPENEXR'
-
if env['OURPLATFORM'] == 'linux2':
cflags='-pthread'
incs += ' ../../../extern/binreloc/include'
@@ -22,8 +17,4 @@ if env['OURPLATFORM'] == 'linux2':
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
incs += ' ' + env['BF_PTHREADS_INC']
-if env['OURPLATFORM'] == 'darwin':
- if env['WITH_BF_OPENMP']:
- defs += ' PARALLEL=1'
-
env.BlenderLib ( 'bf_editors_screen', sources, Split(incs), Split(defs), libtype=['core'], priority=[105] )
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 9069b4b6244..fa7064b817d 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,7 +31,6 @@
#include "MEM_guardedalloc.h"
-#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
@@ -50,6 +49,7 @@
#include "ED_screen.h"
#include "ED_screen_types.h"
#include "ED_types.h"
+#include "ED_fileselect.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -59,10 +59,6 @@
#include "UI_resources.h"
#include "UI_view2d.h"
-#ifndef DISABLE_PYTHON
-#include "BPY_extern.h"
-#endif
-
#include "screen_intern.h"
/* general area and region code */
@@ -125,12 +121,12 @@ void ED_region_do_listen(ARegion *ar, wmNotifier *note)
case NC_SCREEN:
if(note->action==NA_EDITED)
ED_region_tag_redraw(ar);
- /* pass on */
+ break;
#endif
- default:
- if(ar->type && ar->type->listener)
- ar->type->listener(ar, note);
}
+
+ if(ar->type && ar->type->listener)
+ ar->type->listener(ar, note);
}
/* only exported for WM */
@@ -181,14 +177,18 @@ static void area_draw_azone(short x1, short y1, short x2, short y2)
float dx= 0.3f*(xmax-xmin);
float dy= 0.3f*(ymax-ymin);
- glColor4ub(255, 255, 255, 80);
+ glColor4ub(255, 255, 255, 180);
fdrawline(xmin, ymax, xmax, ymin);
+ glColor4ub(255, 255, 255, 130);
fdrawline(xmin, ymax-dy, xmax-dx, ymin);
+ glColor4ub(255, 255, 255, 80);
fdrawline(xmin, ymax-2*dy, xmax-2*dx, ymin);
- glColor4ub(0, 0, 0, 150);
+ glColor4ub(0, 0, 0, 210);
fdrawline(xmin, ymax+1, xmax+1, ymin);
+ glColor4ub(0, 0, 0, 180);
fdrawline(xmin, ymax-dy+1, xmax-dx+1, ymin);
+ glColor4ub(0, 0, 0, 150);
fdrawline(xmin, ymax-2*dy+1, xmax-2*dx+1, ymin);
}
@@ -340,9 +340,7 @@ void ED_region_do_draw(bContext *C, ARegion *ar)
/* optional header info instead? */
if(ar->headerstr) {
- float col[3];
- UI_GetThemeColor3fv(TH_HEADER, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_HEADER);
glClear(GL_COLOR_BUFFER_BIT);
UI_ThemeColor(TH_TEXT);
@@ -373,17 +371,23 @@ void ED_region_tag_redraw(ARegion *ar)
{
if(ar) {
/* zero region means full region redraw */
- ar->do_draw= 1;
+ ar->do_draw= RGN_DRAW;
memset(&ar->drawrct, 0, sizeof(ar->drawrct));
}
}
+void ED_region_tag_redraw_overlay(ARegion *ar)
+{
+ if(ar)
+ ar->do_draw_overlay= RGN_DRAW;
+}
+
void ED_region_tag_redraw_partial(ARegion *ar, rcti *rct)
{
if(ar) {
if(!ar->do_draw) {
/* no redraw set yet, set partial region */
- ar->do_draw= 1;
+ ar->do_draw= RGN_DRAW_PARTIAL;
ar->drawrct= *rct;
}
else if(ar->drawrct.xmin != ar->drawrct.xmax) {
@@ -908,7 +912,7 @@ void ED_area_initialize(wmWindowManager *wm, wmWindow *win, ScrArea *sa)
if(ar->swinid) {
/* default region handlers */
ed_default_handlers(wm, &ar->handlers, ar->type->keymapflag);
-
+ /* own handlers */
if(ar->type->init)
ar->type->init(wm, ar);
}
@@ -956,6 +960,7 @@ void area_copy_data(ScrArea *sa1, ScrArea *sa2, int swap_space)
{
SpaceType *st;
ARegion *ar;
+ int spacetype= sa1->spacetype;
sa1->headertype= sa2->headertype;
sa1->spacetype= sa2->spacetype;
@@ -983,7 +988,7 @@ void area_copy_data(ScrArea *sa1, ScrArea *sa2, int swap_space)
}
else {
if(swap_space<2) {
- st= BKE_spacetype_from_id(sa1->spacetype);
+ st= BKE_spacetype_from_id(spacetype);
for(ar= sa1->regionbase.first; ar; ar= ar->next)
BKE_area_region_free(st, ar);
BLI_freelistN(&sa1->regionbase);
@@ -1006,10 +1011,6 @@ void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2)
ED_area_exit(C, sa1);
ED_area_exit(C, sa2);
- tmp->spacetype= sa1->spacetype;
- tmp->butspacetype= sa1->butspacetype;
- BKE_spacedata_copyfirst(&tmp->spacedata, &sa1->spacedata);
-
area_copy_data(tmp, sa1, 2);
area_copy_data(sa1, sa2, 0);
area_copy_data(sa2, tmp, 0);
@@ -1098,6 +1099,13 @@ void ED_area_prevspace(bContext *C, ScrArea *sa)
{
SpaceLink *sl = (sa) ? sa->spacedata.first : CTX_wm_space_data(C);
+ /* Special handling of filebrowser to stop background thread for
+ thumbnail creation - don't want to waste cpu resources if not showing
+ the filebrowser */
+ if (sl->spacetype == SPACE_FILE) {
+ ED_fileselect_exit(C, (SpaceFile*)sl);
+ }
+
if(sl->next) {
/* workaround for case of double prevspace, render window
with a file browser on top of it */
@@ -1221,7 +1229,6 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex
Panel *panel;
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
- float col[3];
int xco, yco, x, y, miny=0, w, em, header, triangle, open, newcontext= 0;
if(contextnr >= 0)
@@ -1327,14 +1334,9 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex
}
/* clear */
- if (ar->type->regionid == RGN_TYPE_PREVIEW)
- UI_GetThemeColor3fv(TH_PREVIEW_BACK, col);
- else
- UI_GetThemeColor3fv(TH_BACK, col);
-
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor((ar->type->regionid == RGN_TYPE_PREVIEW)?TH_PREVIEW_BACK:TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
-
+
/* before setting the view */
if(vertical) {
/* only allow scrolling in vertical direction */
@@ -1411,16 +1413,10 @@ void ED_region_header(const bContext *C, ARegion *ar)
uiLayout *layout;
HeaderType *ht;
Header header = {0};
- float col[3];
int maxco, xco, yco;
- /* clear */
- if(ED_screen_area_active(C))
- UI_GetThemeColor3fv(TH_HEADER, col);
- else
- UI_GetThemeColor3fv(TH_HEADERDESEL, col);
-
- glClearColor(col[0], col[1], col[2], 0.0);
+ /* clear */
+ UI_ThemeClearColor((ED_screen_area_active(C))?TH_HEADER:TH_HEADERDESEL);
glClear(GL_COLOR_BUFFER_BIT);
/* set view2d view matrix for scrolling (without scrollers) */
diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c
index 2b55fc2ca6d..06da91c3e37 100644
--- a/source/blender/editors/screen/glutil.c
+++ b/source/blender/editors/screen/glutil.c
@@ -32,7 +32,6 @@
#include "MEM_guardedalloc.h"
#include "DNA_vec_types.h"
-#include "DNA_listBase.h"
#include "BKE_utildefines.h"
#include "BKE_colortools.h"
@@ -428,10 +427,9 @@ void glaDrawPixelsTexScaled(float x, float y, int img_w, int img_h, int format,
int ltexid= glaGetOneInteger(GL_TEXTURE_2D);
int lrowlength= glaGetOneInteger(GL_UNPACK_ROW_LENGTH);
int subpart_x, subpart_y, tex_w, tex_h;
+ int seamless, offset_x, offset_y, nsubparts_x, nsubparts_y;
int texid= get_cached_work_texture(&tex_w, &tex_h);
- int nsubparts_x= (img_w+(tex_w-1))/tex_w;
- int nsubparts_y= (img_h+(tex_h-1))/tex_h;
-
+
/* Specify the color outside this function, and tex will modulate it.
* This is useful for changing alpha without using glPixelTransferf()
*/
@@ -448,31 +446,67 @@ void glaDrawPixelsTexScaled(float x, float y, int img_w, int img_h, int format,
glPixelZoom(1.f, 1.f);
#endif
+ /* setup seamless 2=on, 0=off */
+ seamless= ((tex_w<img_w || tex_h<img_h) && tex_w>2 && tex_h>2)? 2: 0;
+
+ offset_x= tex_w - seamless;
+ offset_y= tex_h - seamless;
+
+ nsubparts_x= (img_w + (offset_x - 1))/(offset_x);
+ nsubparts_y= (img_h + (offset_y - 1))/(offset_y);
+
for (subpart_y=0; subpart_y<nsubparts_y; subpart_y++) {
for (subpart_x=0; subpart_x<nsubparts_x; subpart_x++) {
- int subpart_w= (subpart_x==nsubparts_x-1)?(img_w-subpart_x*tex_w):tex_w;
- int subpart_h= (subpart_y==nsubparts_y-1)?(img_h-subpart_y*tex_h):tex_h;
- float rast_x= x+subpart_x*tex_w*xzoom;
- float rast_y= y+subpart_y*tex_h*yzoom;
+ int remainder_x= img_w-subpart_x*offset_x;
+ int remainder_y= img_h-subpart_y*offset_y;
+ int subpart_w= (remainder_x<tex_w)? remainder_x: tex_w;
+ int subpart_h= (remainder_y<tex_h)? remainder_y: tex_h;
+ int offset_left= (seamless && subpart_x!=0)? 1: 0;
+ int offset_bot= (seamless && subpart_y!=0)? 1: 0;
+ int offset_right= (seamless && remainder_x>tex_w)? 1: 0;
+ int offset_top= (seamless && remainder_y>tex_h)? 1: 0;
+ float rast_x= x+subpart_x*offset_x*xzoom;
+ float rast_y= y+subpart_y*offset_y*yzoom;
- if(format==GL_FLOAT)
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, subpart_w, subpart_h, GL_RGBA, GL_FLOAT, &f_rect[(subpart_y*tex_w)*img_w*4 + (subpart_x*tex_w)*4]);
- else
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, subpart_w, subpart_h, GL_RGBA, GL_UNSIGNED_BYTE, &uc_rect[(subpart_y*tex_w)*img_w*4 + (subpart_x*tex_w)*4]);
-
+ /* check if we already got these because we always get 2 more when doing seamless*/
+ if(subpart_w<=seamless || subpart_h<=seamless)
+ continue;
+
+ if(format==GL_FLOAT) {
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, subpart_w, subpart_h, GL_RGBA, GL_FLOAT, &f_rect[subpart_y*offset_y*img_w*4 + subpart_x*offset_x*4]);
+
+ /* add an extra border of pixels so linear looks ok at edges of full image. */
+ if(subpart_w<tex_w)
+ glTexSubImage2D(GL_TEXTURE_2D, 0, subpart_w, 0, 1, subpart_h, GL_RGBA, GL_FLOAT, &f_rect[subpart_y*offset_y*img_w*4 + (subpart_x*offset_x+subpart_w-1)*4]);
+ if(subpart_h<tex_h)
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, subpart_h, subpart_w, 1, GL_RGBA, GL_FLOAT, &f_rect[(subpart_y*offset_y+subpart_h-1)*img_w*4 + subpart_x*offset_x*4]);
+ if(subpart_w<tex_w && subpart_h<tex_h)
+ glTexSubImage2D(GL_TEXTURE_2D, 0, subpart_w, subpart_h, 1, 1, GL_RGBA, GL_FLOAT, &f_rect[(subpart_y*offset_y+subpart_h-1)*img_w*4 + (subpart_x*offset_x+subpart_w-1)*4]);
+ }
+ else {
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, subpart_w, subpart_h, GL_RGBA, GL_UNSIGNED_BYTE, &uc_rect[subpart_y*offset_y*img_w*4 + subpart_x*offset_x*4]);
+
+ if(subpart_w<tex_w)
+ glTexSubImage2D(GL_TEXTURE_2D, 0, subpart_w, 0, 1, subpart_h, GL_RGBA, GL_UNSIGNED_BYTE, &uc_rect[subpart_y*offset_y*img_w*4 + (subpart_x*offset_x+subpart_w-1)*4]);
+ if(subpart_h<tex_h)
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, subpart_h, subpart_w, 1, GL_RGBA, GL_UNSIGNED_BYTE, &uc_rect[(subpart_y*offset_y+subpart_h-1)*img_w*4 + subpart_x*offset_x*4]);
+ if(subpart_w<tex_w && subpart_h<tex_h)
+ glTexSubImage2D(GL_TEXTURE_2D, 0, subpart_w, subpart_h, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &uc_rect[(subpart_y*offset_y+subpart_h-1)*img_w*4 + (subpart_x*offset_x+subpart_w-1)*4]);
+ }
+
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
- glTexCoord2f(0, 0);
- glVertex2f(rast_x, rast_y);
+ glTexCoord2f((float)(0 + offset_left)/tex_w, (float)(0 + offset_bot)/tex_h);
+ glVertex2f(rast_x + (float)offset_left*xzoom, rast_y + (float)offset_bot*xzoom);
- glTexCoord2f((float) (subpart_w-1)/tex_w, 0);
- glVertex2f(rast_x+subpart_w*xzoom*scaleX, rast_y);
+ glTexCoord2f((float)(subpart_w - offset_right)/tex_w, (float)(0 + offset_bot)/tex_h);
+ glVertex2f(rast_x + (float)(subpart_w - offset_right)*xzoom*scaleX, rast_y + (float)offset_bot*xzoom);
- glTexCoord2f((float) (subpart_w-1)/tex_w, (float) (subpart_h-1)/tex_h);
- glVertex2f(rast_x+subpart_w*xzoom*scaleX, rast_y+subpart_h*yzoom*scaleY);
+ glTexCoord2f((float)(subpart_w - offset_right)/tex_w, (float)(subpart_h - offset_top)/tex_h);
+ glVertex2f(rast_x + (float)(subpart_w - offset_right)*xzoom*scaleX, rast_y + (float)(subpart_h - offset_top)*yzoom*scaleY);
- glTexCoord2f(0, (float) (subpart_h-1)/tex_h);
- glVertex2f(rast_x, rast_y+subpart_h*yzoom*scaleY);
+ glTexCoord2f((float)(0 + offset_left)/tex_w, (float)(subpart_h - offset_top)/tex_h);
+ glVertex2f(rast_x + (float)offset_left*xzoom, rast_y + (float)(subpart_h - offset_top)*yzoom*scaleY);
glEnd();
glDisable(GL_TEXTURE_2D);
}
@@ -506,7 +540,7 @@ void glaDrawPixelsSafe_to32(float fx, float fy, int img_w, int img_h, int row_w,
floatbuf_to_srgb_byte(rectf, rect32, 0, img_w, 0, img_h, img_w);
} else {
floatbuf_to_byte(rectf, rect32, 0, img_w, 0, img_h, img_w);
- }
+ }
glaDrawPixelsSafe(fx, fy, img_w, img_h, img_w, GL_RGBA, GL_UNSIGNED_BYTE, rect32);
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c
index 6d61c8c5819..1c570d98744 100644
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,7 +29,7 @@
#include "DNA_object_types.h"
#include "DNA_armature_types.h"
-#include "DNA_action_types.h"
+#include "DNA_sequence_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
@@ -37,6 +37,7 @@
#include "BKE_utildefines.h"
#include "BKE_global.h"
#include "BKE_action.h"
+#include "BKE_sequencer.h"
#include "RNA_access.h"
@@ -61,13 +62,15 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
if(CTX_data_dir(member)) {
static const char *dir[] = {
- "scene", "selected_objects", "selected_bases",
+ "scene", "visible_objects", "visible_bases", "selected_objects", "selected_bases",
"selected_editable_objects", "selected_editable_bases",
"visible_bones", "editable_bones", "selected_bones", "selected_editable_bones",
"visible_pose_bones", "selected_pose_bones", "active_bone", "active_pose_bone",
"active_base", "active_object", "object", "edit_object",
"sculpt_object", "vertex_paint_object", "weight_paint_object",
- "texture_paint_object", "particle_edit_object", NULL};
+ "texture_paint_object", "particle_edit_object",
+ "sequences", "selected_sequences", "selected_editable_sequences", /* sequencer */
+ NULL};
CTX_data_dir_set(result, dir);
return 1;
@@ -76,6 +79,20 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_id_pointer_set(result, &scene->id);
return 1;
}
+ else if(CTX_data_equals(member, "visible_objects") || CTX_data_equals(member, "visible_bases")) {
+ int visible_objects= CTX_data_equals(member, "visible_objects");
+
+ for(base=scene->base.first; base; base=base->next) {
+ if(((base->object->restrictflag & OB_RESTRICT_VIEW) == 0) && (base->lay & scene->lay)) {
+ if(visible_objects)
+ CTX_data_id_list_add(result, &base->object->id);
+ else
+ CTX_data_list_add(result, &scene->id, &RNA_ObjectBase, base);
+ }
+ }
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
+ return 1;
+ }
else if(CTX_data_equals(member, "selected_objects") || CTX_data_equals(member, "selected_bases")) {
int selected_objects= CTX_data_equals(member, "selected_objects");
@@ -87,7 +104,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_list_add(result, &scene->id, &RNA_ObjectBase, base);
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
else if(CTX_data_equals(member, "selected_editable_objects") || CTX_data_equals(member, "selected_editable_bases")) {
@@ -105,7 +122,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
else if(CTX_data_equals(member, "visible_bones") || CTX_data_equals(member, "editable_bones")) {
@@ -146,7 +163,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
}
@@ -188,7 +205,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
}
@@ -203,7 +220,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_list_add(result, &obact->id, &RNA_PoseBone, pchan);
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
}
@@ -219,7 +236,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_list_add(result, &obact->id, &RNA_PoseBone, pchan);
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
}
@@ -304,6 +321,43 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
return 1;
}
+ else if(CTX_data_equals(member, "sequences")) {
+ Editing *ed= seq_give_editing(scene, FALSE);
+ if(ed) {
+ Sequence *seq;
+ for (seq= ed->seqbasep->first; seq; seq= seq->next) {
+ CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
+ }
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
+ return 1;
+ }
+ }
+ else if(CTX_data_equals(member, "selected_sequences")) {
+ Editing *ed= seq_give_editing(scene, FALSE);
+ if(ed) {
+ Sequence *seq;
+ for (seq= ed->seqbasep->first; seq; seq= seq->next) {
+ if (seq->flag & SELECT) {
+ CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
+ }
+ }
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
+ return 1;
+ }
+ }
+ else if(CTX_data_equals(member, "selected_editable_sequences")) {
+ Editing *ed= seq_give_editing(scene, FALSE);
+ if(ed) {
+ Sequence *seq;
+ for (seq= ed->seqbasep->first; seq; seq= seq->next) {
+ if (seq->flag & SELECT && !(seq->flag & SEQ_LOCK)) {
+ CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
+ }
+ }
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
+ return 1;
+ }
+ }
else {
return 0; /* not found */
}
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index d19d017a637..a3f97a7c5ce 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -28,10 +28,7 @@
#include "MEM_guardedalloc.h"
-#include "DNA_vec_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
@@ -52,6 +49,7 @@
#include "WM_types.h"
#include "ED_image.h"
+#include "ED_view3d.h"
#include "ED_screen.h"
#include "ED_screen_types.h"
@@ -1234,11 +1232,17 @@ void ED_screen_set_subwinactive(wmWindow *win, wmEvent *event)
int ED_screen_area_active(const bContext *C)
{
+ wmWindow *win= CTX_wm_window(C);
bScreen *sc= CTX_wm_screen(C);
ScrArea *sa= CTX_wm_area(C);
- if(sc && sa) {
+ if(win && sc && sa) {
+ AZone *az= is_in_area_actionzone(sa, win->eventstate->x, win->eventstate->y);
ARegion *ar;
+
+ if (az && az->type == AZONE_REGION)
+ return 1;
+
for(ar= sa->regionbase.first; ar; ar= ar->next)
if(ar->swinid == sc->subwinactive)
return 1;
@@ -1390,6 +1394,9 @@ void ED_screen_set_scene(bContext *C, Scene *scene)
while(sl) {
if(sl->spacetype==SPACE_VIEW3D) {
View3D *v3d= (View3D*) sl;
+
+ BKE_screen_view3d_sync(v3d, scene);
+
if (!v3d->camera || !object_in_scene(v3d->camera, scene)) {
v3d->camera= scene_find_camera(sc->scene);
// XXX if (sc==curscreen) handle_view3d_lock();
@@ -1441,8 +1448,76 @@ void ED_screen_delete_scene(bContext *C, Scene *scene)
unlink_scene(bmain, scene, newscene);
}
+int ED_screen_full_newspace(bContext *C, ScrArea *sa, int type)
+{
+ wmWindow *win= CTX_wm_window(C);
+ bScreen *screen= CTX_wm_screen(C);
+ ScrArea *newsa= NULL;
+
+ if(!sa || sa->full==0) {
+ newsa= ED_screen_full_toggle(C, win, sa);
+ }
+
+ if(!newsa) {
+ if (sa->full) {
+ /* if this has been called from the temporary info header generated in
+ * temp fullscreen layouts, find the correct fullscreen area to change
+ * to create a new space inside */
+ for (newsa = screen->areabase.first; newsa; newsa=newsa->next) {
+ if (!(sa->flag & AREA_TEMP_INFO))
+ break;
+ }
+ } else
+ newsa= sa;
+ }
+
+ ED_area_newspace(C, newsa, type);
+
+ return 1;
+}
+
+void ED_screen_full_prevspace(bContext *C, ScrArea *sa)
+{
+ wmWindow *win= CTX_wm_window(C);
+
+ ED_area_prevspace(C, sa);
+
+ if(sa->full)
+ ED_screen_full_toggle(C, win, sa);
+}
+
+/* restore a screen / area back to default operation, after temp fullscreen modes */
+void ED_screen_full_restore(bContext *C, ScrArea *sa)
+{
+ wmWindow *win= CTX_wm_window(C);
+ SpaceLink *sl = sa->spacedata.first;
+
+ /* if fullscreen area has a secondary space (such as a file browser or fullscreen render
+ * overlaid on top of a existing setup) then return to the previous space */
+
+ if (sl->next) {
+ /* specific checks for space types */
+ if (sl->spacetype == SPACE_IMAGE) {
+ SpaceImage *sima= sa->spacedata.first;
+ if (sima->flag & SI_PREVSPACE)
+ sima->flag &= ~SI_PREVSPACE;
+ if (sima->flag & SI_FULLWINDOW) {
+ sima->flag &= ~SI_FULLWINDOW;
+ ED_screen_full_prevspace(C, sa);
+ }
+ } else if (sl->spacetype == SPACE_FILE) {
+ ED_screen_full_prevspace(C, sa);
+ } else
+ ED_screen_full_toggle(C, win, sa);
+ }
+ /* otherwise just tile the area again */
+ else {
+ ED_screen_full_toggle(C, win, sa);
+ }
+}
+
/* this function toggles: if area is full then the parent will be restored */
-ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa)
+ScrArea *ED_screen_full_toggle(bContext *C, wmWindow *win, ScrArea *sa)
{
bScreen *sc, *oldscreen;
ARegion *ar;
@@ -1454,45 +1529,45 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa)
for(ar=sa->regionbase.first; ar; ar=ar->next)
uiFreeBlocks(C, &ar->uiblocks);
}
-
+
if(sa && sa->full) {
short fulltype;
-
+
sc= sa->full; /* the old screen to restore */
oldscreen= win->screen; /* the one disappearing */
-
+
fulltype = sc->full;
-
+
/* refuse to go out of SCREENAUTOPLAY as long as G_FLAGS_AUTOPLAY
is set */
-
+
if (fulltype != SCREENAUTOPLAY || (G.flags & G_FILE_AUTOPLAY) == 0) {
ScrArea *old;
-
+
sc->full= 0;
-
+
/* find old area */
- for(old= sc->areabase.first; old; old= old->next)
+ for(old= sc->areabase.first; old; old= old->next)
if(old->full) break;
if(old==NULL) {
if (G.f & G_DEBUG)
- printf("something wrong in areafullscreen\n");
+ printf("something wrong in areafullscreen\n");
return NULL;
}
- // old feature described below (ton)
- // in autoplay screens the headers are disabled by
+ // old feature described below (ton)
+ // in autoplay screens the headers are disabled by
// default. So use the old headertype instead
-
+
area_copy_data(old, sa, 1); /* 1 = swap spacelist */
if (sa->flag & AREA_TEMP_INFO) sa->flag &= ~AREA_TEMP_INFO;
old->full= NULL;
-
+
/* animtimer back */
sc->animtimer= oldscreen->animtimer;
oldscreen->animtimer= NULL;
-
+
ED_screen_set(C, sc);
-
+
free_screen(oldscreen);
free_libblock(&CTX_data_main(C)->screen, oldscreen);
}
@@ -1500,7 +1575,7 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa)
else {
ScrArea *newa;
char newname[20];
-
+
oldscreen= win->screen;
/* nothing wrong with having only 1 area, as far as I can see...
@@ -1508,20 +1583,20 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa)
if(oldscreen->areabase.first==oldscreen->areabase.last)
return NULL;
*/
-
+
oldscreen->full = SCREENFULL;
BLI_snprintf(newname, sizeof(newname), "%s-%s", oldscreen->id.name+2, "temp");
sc= ED_screen_add(win, oldscreen->scene, newname);
sc->full = SCREENFULL; // XXX
-
+
/* timer */
sc->animtimer= oldscreen->animtimer;
oldscreen->animtimer= NULL;
-
+
/* returns the top small area */
newa= area_split(win, sc, (ScrArea *)sc->areabase.first, 'h', 0.99f);
ED_area_newspace(C, newa, SPACE_INFO);
-
+
/* use random area when we have no active one, e.g. when the
mouse is outside of the window and we open a file browser */
if(!sa)
@@ -1535,7 +1610,7 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa)
sa->full= oldscreen;
newa->full= oldscreen;
newa->next->full= oldscreen; // XXX
-
+
ED_screen_set(C, sc);
}
@@ -1547,74 +1622,6 @@ ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa)
return sc->areabase.first;
}
-int ED_screen_full_newspace(bContext *C, ScrArea *sa, int type)
-{
- wmWindow *win= CTX_wm_window(C);
- bScreen *screen= CTX_wm_screen(C);
- ScrArea *newsa= NULL;
-
- if(!sa || sa->full==0) {
- newsa= ed_screen_fullarea(C, win, sa);
- }
-
- if(!newsa) {
- if (sa->full) {
- /* if this has been called from the temporary info header generated in
- * temp fullscreen layouts, find the correct fullscreen area to change
- * to create a new space inside */
- for (newsa = screen->areabase.first; newsa; newsa=newsa->next) {
- if (!(sa->flag & AREA_TEMP_INFO))
- break;
- }
- } else
- newsa= sa;
- }
-
- ED_area_newspace(C, newsa, type);
-
- return 1;
-}
-
-void ED_screen_full_prevspace(bContext *C, ScrArea *sa)
-{
- wmWindow *win= CTX_wm_window(C);
-
- ED_area_prevspace(C, sa);
-
- if(sa->full)
- ed_screen_fullarea(C, win, sa);
-}
-
-/* restore a screen / area back to default operation, after temp fullscreen modes */
-void ED_screen_full_restore(bContext *C, ScrArea *sa)
-{
- wmWindow *win= CTX_wm_window(C);
- SpaceLink *sl = sa->spacedata.first;
-
- /* if fullscreen area has a secondary space (such as as file browser or fullscreen render
- * overlaid on top of a existing setup) then return to the previous space */
-
- if (sl->next) {
- /* specific checks for space types */
- if (sl->spacetype == SPACE_IMAGE) {
- SpaceImage *sima= sa->spacedata.first;
- if (sima->flag & SI_PREVSPACE)
- sima->flag &= ~SI_PREVSPACE;
- if (sima->flag & SI_FULLWINDOW) {
- sima->flag &= ~SI_FULLWINDOW;
- ED_screen_full_prevspace(C, sa);
- }
- } else if (sl->spacetype == SPACE_FILE) {
- ED_screen_full_prevspace(C, sa);
- } else
- ed_screen_fullarea(C, win, sa);
- }
- /* otherwise just tile the area again */
- else {
- ed_screen_fullarea(C, win, sa);
- }
-}
-
/* update frame rate info for viewport drawing */
void ED_refresh_viewport_fps(bContext *C)
{
@@ -1644,7 +1651,7 @@ void ED_refresh_viewport_fps(bContext *C)
/* redraws: uses defines from stime->redraws
* enable: 1 - forward on, -1 - backwards on, 0 - off
*/
-void ED_screen_animation_timer(bContext *C, int redraws, int sync, int enable)
+void ED_screen_animation_timer(bContext *C, int redraws, int refresh, int sync, int enable)
{
bScreen *screen= CTX_wm_screen(C);
wmWindowManager *wm= CTX_wm_manager(C);
@@ -1662,6 +1669,7 @@ void ED_screen_animation_timer(bContext *C, int redraws, int sync, int enable)
sad->ar= CTX_wm_region(C);
sad->sfra = scene->r.cfra;
sad->redraws= redraws;
+ sad->refresh= refresh;
sad->flag |= (enable < 0)? ANIMPLAY_FLAG_REVERSE: 0;
sad->flag |= (sync == 0)? ANIMPLAY_FLAG_NO_SYNC: (sync == 1)? ANIMPLAY_FLAG_SYNC: 0;
screen->animtimer->customdata= sad;
@@ -1695,13 +1703,14 @@ static ARegion *time_top_left_3dwindow(bScreen *screen)
return aret;
}
-void ED_screen_animation_timer_update(bScreen *screen, int redraws)
+void ED_screen_animation_timer_update(bScreen *screen, int redraws, int refresh)
{
if(screen && screen->animtimer) {
wmTimer *wt= screen->animtimer;
ScreenAnimData *sad= wt->customdata;
sad->redraws= redraws;
+ sad->refresh= refresh;
sad->ar= NULL;
if(redraws & TIME_REGION)
sad->ar= time_top_left_3dwindow(screen);
@@ -1715,36 +1724,23 @@ void ED_update_for_newframe(const bContext *C, int mute)
Scene *scene= CTX_data_scene(C);
#ifdef DURIAN_CAMERA_SWITCH
- void *camera= scene_find_camera_switch(scene);
+ void *camera= scene_camera_switch_find(scene);
if(camera && scene->camera != camera) {
-
- if(camera && scene->camera && (camera != scene->camera)) {
- bScreen *sc;
- /* are there cameras in the views that are not in the scene? */
- for(sc= CTX_data_main(C)->screen.first; sc; sc= sc->id.next) {
- ScrArea *sa= sc->areabase.first;
- while(sa) {
- SpaceLink *sl= sa->spacedata.first;
- while(sl) {
- if(sl->spacetype==SPACE_VIEW3D) {
- View3D *v3d= (View3D*) sl;
- if (v3d->scenelock) {
- v3d->camera= camera;
- }
- }
- sl= sl->next;
- }
- sa= sa->next;
- }
- }
- }
-
+ bScreen *sc;
scene->camera= camera;
+ /* are there cameras in the views that are not in the scene? */
+ for(sc= CTX_data_main(C)->screen.first; sc; sc= sc->id.next) {
+ BKE_screen_view3d_scene_sync(sc);
+ }
}
#endif
//extern void audiostream_scrub(unsigned int frame); /* seqaudio.c */
+ /* update animated image textures for gpu, etc,
+ * call before scene_update_for_newframe so modifiers with textuers dont lag 1 frame */
+ ED_image_update_frame(C);
+
/* this function applies the changes too */
/* XXX future: do all windows */
scene_update_for_newframe(scene, BKE_screen_visible_layers(screen, scene)); /* BKE_scene.h */
@@ -1762,9 +1758,6 @@ void ED_update_for_newframe(const bContext *C, int mute)
if(scene->use_nodes && scene->nodetree)
ntreeCompositTagAnimated(scene->nodetree);
- /* update animated image textures for gpu, etc */
- ED_image_update_frame(C);
-
/* update animated texture nodes */
{
Tex *tex;
diff --git a/source/blender/editors/screen/screen_intern.h b/source/blender/editors/screen/screen_intern.h
index 147b4bd5780..5c104521a60 100644
--- a/source/blender/editors/screen/screen_intern.h
+++ b/source/blender/editors/screen/screen_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -51,8 +51,6 @@ ScrEdge *screen_find_active_scredge(bScreen *sc, int mx, int my);
AZone *is_in_area_actionzone(ScrArea *sa, int x, int y);
-ScrArea *ed_screen_fullarea(bContext *C, wmWindow *win, ScrArea *sa);
-
/* screen_context.c */
void ed_screen_context(const bContext *C, const char *member, bContextDataResult *result);
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 7b5d7944e80..b70cb03869d 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,9 +26,6 @@
#include <math.h>
#include <string.h>
-#include <stddef.h>
-
-#include <GL/glew.h>
#include "MEM_guardedalloc.h"
@@ -38,21 +35,17 @@
#include "BLI_dlrbTree.h"
#include "DNA_armature_types.h"
-#include "DNA_image_types.h"
#include "DNA_lattice_types.h"
#include "DNA_object_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_curve_types.h"
#include "DNA_scene_types.h"
#include "DNA_meta_types.h"
-#include "DNA_view3d_types.h"
#include "BKE_blender.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_global.h"
-#include "BKE_image.h"
#include "BKE_idprop.h"
#include "BKE_library.h"
#include "BKE_main.h"
@@ -64,30 +57,20 @@
#include "BKE_utildefines.h"
#include "BKE_tessmesh.h"
#include "BKE_sound.h"
-#include "BKE_writeavi.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_util.h"
#include "ED_screen.h"
-#include "ED_mesh.h"
#include "ED_object.h"
#include "ED_screen_types.h"
#include "ED_keyframes_draw.h"
-#include "ED_view3d.h"
-
-#include "RE_pipeline.h"
-#include "IMB_imbuf.h"
-#include "IMB_imbuf_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "UI_interface.h"
-#include "UI_resources.h"
-
-#include "GPU_extensions.h"
#include "wm_window.h"
@@ -98,12 +81,6 @@
#define KM_MODAL_STEP10 3
#define KM_MODAL_STEP10_OFF 4
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
-/* ************** libgomp (Apple gcc 4.2.1) TLS bug workaround *************** */
-#include <pthread.h>
-extern pthread_key_t gomp_tls_key;
-static void *thread_tls_data;
-#endif
/* ************** Exported Poll tests ********************** */
int ED_operator_regionactive(bContext *C)
@@ -223,12 +200,12 @@ int ED_operator_logic_active(bContext *C)
int ED_operator_object_active(bContext *C)
{
- return NULL != CTX_data_active_object(C);
+ return NULL != ED_object_active_context(C);
}
int ED_operator_object_active_editable(bContext *C)
{
- Object *ob=CTX_data_active_object(C);
+ Object *ob = ED_object_active_context(C);
return ((ob != NULL) && !(ob->id.lib));
}
@@ -589,6 +566,7 @@ static int area_swap_init(bContext *C, wmOperator *op, wmEvent *event)
static void area_swap_exit(bContext *C, wmOperator *op)
{
+ WM_cursor_restore(CTX_wm_window(C));
if(op->customdata)
MEM_freeN(op->customdata);
op->customdata= NULL;
@@ -629,15 +607,16 @@ static int area_swap_modal(bContext *C, wmOperator *op, wmEvent *event)
return area_swap_cancel(C, op);
}
- ED_area_swapspace(C, sad->sa1, sad->sa2);
-
- area_swap_exit(C, op);
-
+
#ifdef WM_FAST_DRAW
ED_area_tag_redraw(sad->sa1);
ED_area_tag_redraw(sad->sa2);
#endif
+ ED_area_swapspace(C, sad->sa1, sad->sa2);
+
+ area_swap_exit(C, op);
+
WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL);
return OPERATOR_FINISHED;
@@ -1340,6 +1319,9 @@ static int area_max_regionsize(ScrArea *sa, ARegion *scalear, char edge)
* prevents dragging regions into other opposite regions */
for (ar=sa->regionbase.first; ar; ar=ar->next)
{
+ if (ar == scalear)
+ continue;
+
if (scalear->alignment == RGN_ALIGN_TOP && ar->alignment == RGN_ALIGN_BOTTOM)
dist -= ar->winy;
else if (scalear->alignment == RGN_ALIGN_BOTTOM && ar->alignment == RGN_ALIGN_TOP)
@@ -1348,8 +1330,15 @@ static int area_max_regionsize(ScrArea *sa, ARegion *scalear, char edge)
dist -= ar->winx;
else if (scalear->alignment == RGN_ALIGN_RIGHT && ar->alignment == RGN_ALIGN_LEFT)
dist -= ar->winx;
+
+ /* case of regions in regions, like operator properties panel */
+ /* these can sit on top of other regions such as headers, so account for this */
+ else if (edge == 'b' && scalear->alignment & RGN_ALIGN_TOP && ar->alignment == RGN_ALIGN_TOP && ar->regiontype == RGN_TYPE_HEADER)
+ dist -= ar->winy;
+ else if (edge == 't' && scalear->alignment & RGN_ALIGN_BOTTOM && ar->alignment == RGN_ALIGN_BOTTOM && ar->regiontype == RGN_TYPE_HEADER)
+ dist -= ar->winy;
}
-
+
return dist;
}
@@ -1508,6 +1497,7 @@ static int frame_offset_exec(bContext *C, wmOperator *op)
delta = RNA_int_get(op->ptr, "delta");
CTX_data_scene(C)->r.cfra += delta;
+ CTX_data_scene(C)->r.subframe = 0.f;
sound_seek_scene(C);
@@ -1575,6 +1565,7 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
ActKeyColumn *ak;
float cfra= (scene)? (float)(CFRA) : 0.0f;
short next= RNA_boolean_get(op->ptr, "next");
+ short done = 0;
/* sanity checks */
if (scene == NULL)
@@ -1593,15 +1584,27 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
BLI_dlrbTree_linkedlist_sync(&keys);
/* find matching keyframe in the right direction */
- if (next)
- ak= (ActKeyColumn *)BLI_dlrbTree_search_next(&keys, compare_ak_cfraPtr, &cfra);
- else
- ak= (ActKeyColumn *)BLI_dlrbTree_search_prev(&keys, compare_ak_cfraPtr, &cfra);
+ do {
+ if (next)
+ ak= (ActKeyColumn *)BLI_dlrbTree_search_next(&keys, compare_ak_cfraPtr, &cfra);
+ else
+ ak= (ActKeyColumn *)BLI_dlrbTree_search_prev(&keys, compare_ak_cfraPtr, &cfra);
+
+ if (ak) {
+ if (CFRA != (int)ak->cfra) {
+ /* this changes the frame, so set the frame and we're done */
+ CFRA= (int)ak->cfra;
+ done = 1;
+ }
+ else {
+ /* make this the new starting point for the search */
+ cfra = ak->cfra;
+ }
+ }
+ } while ((ak != NULL) && (done == 0));
- /* set the new frame (if keyframe found) */
- if (ak)
- CFRA= (int)ak->cfra;
- else
+ /* any success? */
+ if (done == 0)
BKE_report(op->reports, RPT_INFO, "No more keyframes to jump to in this direction");
/* free temp stuff */
@@ -1690,7 +1693,7 @@ static void SCREEN_OT_screen_set(wmOperatorType *ot)
/* function to be called outside UI context, or for redo */
static int screen_full_area_exec(bContext *C, wmOperator *op)
{
- ed_screen_fullarea(C, CTX_wm_window(C), CTX_wm_area(C));
+ ED_screen_full_toggle(C, CTX_wm_window(C), CTX_wm_area(C));
return OPERATOR_FINISHED;
}
@@ -2163,18 +2166,22 @@ static int region_quadview_exec(bContext *C, wmOperator *op)
rv3d= ar->regiondata;
rv3d->viewlock= RV3D_LOCKED; rv3d->view= RV3D_VIEW_FRONT; rv3d->persp= RV3D_ORTHO;
+ if (rv3d->localvd) { rv3d->localvd->view = rv3d->view; rv3d->localvd->persp = rv3d->persp; }
ar= ar->next;
rv3d= ar->regiondata;
rv3d->viewlock= RV3D_LOCKED; rv3d->view= RV3D_VIEW_TOP; rv3d->persp= RV3D_ORTHO;
+ if (rv3d->localvd) { rv3d->localvd->view = rv3d->view; rv3d->localvd->persp = rv3d->persp; }
ar= ar->next;
rv3d= ar->regiondata;
rv3d->viewlock= RV3D_LOCKED; rv3d->view= RV3D_VIEW_RIGHT; rv3d->persp= RV3D_ORTHO;
+ if (rv3d->localvd) { rv3d->localvd->view = rv3d->view; rv3d->localvd->persp = rv3d->persp; }
ar= ar->next;
rv3d= ar->regiondata;
rv3d->view= RV3D_VIEW_CAMERA; rv3d->persp= RV3D_CAMOB;
+ if (rv3d->localvd) {rv3d->localvd->view = rv3d->view; rv3d->localvd->persp = rv3d->persp; }
}
#ifdef WM_FAST_DRAW
@@ -2346,6 +2353,18 @@ void SCREEN_OT_header_toolbox(wmOperatorType *ot)
/* ****************** anim player, with timer ***************** */
+static int match_area_with_refresh(int spacetype, int refresh)
+{
+ switch (spacetype) {
+ case SPACE_TIME:
+ if (refresh & SPACE_TIME)
+ return 1;
+ break;
+ }
+
+ return 0;
+}
+
static int match_region_with_redraws(int spacetype, int regiontype, int redraws)
{
if(regiontype==RGN_TYPE_WINDOW) {
@@ -2407,23 +2426,22 @@ static int match_region_with_redraws(int spacetype, int regiontype, int redraws)
static int screen_animation_step(bContext *C, wmOperator *op, wmEvent *event)
{
bScreen *screen= CTX_wm_screen(C);
-
- if(screen->animtimer==event->customdata) {
+
+ if(screen->animtimer && screen->animtimer==event->customdata) {
Scene *scene= CTX_data_scene(C);
wmTimer *wt= screen->animtimer;
ScreenAnimData *sad= wt->customdata;
ScrArea *sa;
int sync;
-
+ float time;
+
/* sync, don't sync, or follow scene setting */
if(sad->flag & ANIMPLAY_FLAG_SYNC) sync= 1;
else if(sad->flag & ANIMPLAY_FLAG_NO_SYNC) sync= 0;
else sync= (scene->flag & SCE_FRAME_DROP);
- if((scene->audio.flag & AUDIO_SYNC) && !(sad->flag & ANIMPLAY_FLAG_REVERSE))
- {
- scene->r.cfra = floor(sound_sync_scene(scene) * FPS);
- }
+ if((scene->audio.flag & AUDIO_SYNC) && !(sad->flag & ANIMPLAY_FLAG_REVERSE) && finite(time = sound_sync_scene(scene)))
+ scene->r.cfra = round(time * FPS);
else
{
if(sync) {
@@ -2493,6 +2511,9 @@ static int screen_animation_step(bContext *C, wmOperator *op, wmEvent *event)
if(match_region_with_redraws(sa->spacetype, ar->regiontype, sad->redraws))
ED_region_tag_redraw(ar);
}
+
+ if (match_area_with_refresh(sa->spacetype, sad->refresh))
+ ED_area_tag_refresh(sa);
}
/* update frame rate info too
@@ -2536,11 +2557,12 @@ int ED_screen_animation_play(bContext *C, int sync, int mode)
if(screen->animtimer) {
/* stop playback now */
- ED_screen_animation_timer(C, 0, 0, 0);
+ ED_screen_animation_timer(C, 0, 0, 0, 0);
sound_stop_scene(scene);
}
else {
ScrArea *sa= CTX_wm_area(C);
+ int refresh= SPACE_TIME;
if(mode == 1) // XXX only play audio forwards!?
sound_play_scene(scene);
@@ -2549,10 +2571,10 @@ int ED_screen_animation_play(bContext *C, int sync, int mode)
if ((sa) && (sa->spacetype == SPACE_TIME)) {
SpaceTime *stime= (SpaceTime *)sa->spacedata.first;
- ED_screen_animation_timer(C, stime->redraws, sync, mode);
+ ED_screen_animation_timer(C, stime->redraws, refresh, sync, mode);
/* update region if TIME_REGION was set, to leftmost 3d window */
- ED_screen_animation_timer_update(screen, stime->redraws);
+ ED_screen_animation_timer_update(screen, stime->redraws, refresh);
}
else {
int redraws = TIME_REGION|TIME_ALL_3D_WIN;
@@ -2562,7 +2584,7 @@ int ED_screen_animation_play(bContext *C, int sync, int mode)
redraws |= TIME_SEQ;
}
- ED_screen_animation_timer(C, redraws, sync, mode);
+ ED_screen_animation_timer(C, redraws, refresh, sync, mode);
if(screen->animtimer) {
wmTimer *wt= screen->animtimer;
@@ -2576,7 +2598,7 @@ int ED_screen_animation_play(bContext *C, int sync, int mode)
return OPERATOR_FINISHED;
}
-static int screen_animation_play_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int screen_animation_play_exec(bContext *C, wmOperator *op)
{
int mode= (RNA_boolean_get(op->ptr, "reverse")) ? -1 : 1;
int sync= -1;
@@ -2595,7 +2617,7 @@ static void SCREEN_OT_animation_play(wmOperatorType *ot)
ot->idname= "SCREEN_OT_animation_play";
/* api callbacks */
- ot->invoke= screen_animation_play_invoke;
+ ot->exec= screen_animation_play_exec;
ot->poll= ED_operator_screenactive;
@@ -2603,7 +2625,7 @@ static void SCREEN_OT_animation_play(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "sync", 0, "Sync", "Drop frames to maintain framerate");
}
-static int screen_animation_cancel(bContext *C, wmOperator *op, wmEvent *event)
+static int screen_animation_cancel_exec(bContext *C, wmOperator *op)
{
bScreen *screen= CTX_wm_screen(C);
@@ -2618,9 +2640,9 @@ static int screen_animation_cancel(bContext *C, wmOperator *op, wmEvent *event)
WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
/* call the other "toggling" operator to clean up now */
- return screen_animation_play_invoke(C, op, event);
+ ED_screen_animation_play(C, 0, 0);
}
-
+
return OPERATOR_PASS_THROUGH;
}
@@ -2632,7 +2654,7 @@ static void SCREEN_OT_animation_cancel(wmOperatorType *ot)
ot->idname= "SCREEN_OT_animation_cancel";
/* api callbacks */
- ot->invoke= screen_animation_cancel;
+ ot->exec= screen_animation_cancel_exec;
ot->poll= ED_operator_screenactive;
}
@@ -2695,1081 +2717,6 @@ static void SCREEN_OT_border_select(wmOperatorType *ot)
}
#endif
-/* ****************************** render invoking ***************** */
-
-/* set callbacks, exported to sequence render too.
- Only call in foreground (UI) renders. */
-
-/* returns biggest area that is not uv/image editor. Note that it uses buttons */
-/* window as the last possible alternative. */
-static ScrArea *biggest_non_image_area(bContext *C)
-{
- bScreen *sc= CTX_wm_screen(C);
- ScrArea *sa, *big= NULL;
- int size, maxsize= 0, bwmaxsize= 0;
- short foundwin= 0;
-
- for(sa= sc->areabase.first; sa; sa= sa->next) {
- if(sa->winx > 30 && sa->winy > 30) {
- size= sa->winx*sa->winy;
- if(sa->spacetype == SPACE_BUTS) {
- if(foundwin == 0 && size > bwmaxsize) {
- bwmaxsize= size;
- big= sa;
- }
- }
- else if(sa->spacetype != SPACE_IMAGE && size > maxsize) {
- maxsize= size;
- big= sa;
- foundwin= 1;
- }
- }
- }
-
- return big;
-}
-
-static ScrArea *biggest_area(bContext *C)
-{
- bScreen *sc= CTX_wm_screen(C);
- ScrArea *sa, *big= NULL;
- int size, maxsize= 0;
-
- for(sa= sc->areabase.first; sa; sa= sa->next) {
- size= sa->winx*sa->winy;
- if(size > maxsize) {
- maxsize= size;
- big= sa;
- }
- }
- return big;
-}
-
-
-static ScrArea *find_area_showing_r_result(bContext *C)
-{
- wmWindowManager *wm= CTX_wm_manager(C);
- wmWindow *win;
- ScrArea *sa = NULL;
- SpaceImage *sima;
-
- /* find an imagewindow showing render result */
- for(win=wm->windows.first; win; win=win->next) {
- for(sa=win->screen->areabase.first; sa; sa= sa->next) {
- if(sa->spacetype==SPACE_IMAGE) {
- sima= sa->spacedata.first;
- if(sima->image && sima->image->type==IMA_TYPE_R_RESULT)
- break;
- }
- }
- }
-
- return sa;
-}
-
-static ScrArea *find_area_image_empty(bContext *C)
-{
- bScreen *sc= CTX_wm_screen(C);
- ScrArea *sa;
- SpaceImage *sima;
-
- /* find an imagewindow showing render result */
- for(sa=sc->areabase.first; sa; sa= sa->next) {
- if(sa->spacetype==SPACE_IMAGE) {
- sima= sa->spacedata.first;
- if(!sima->image)
- break;
- }
- }
- return sa;
-}
-
-#if 0 // XXX not used
-static ScrArea *find_empty_image_area(bContext *C)
-{
- bScreen *sc= CTX_wm_screen(C);
- ScrArea *sa;
- SpaceImage *sima;
-
- /* find an imagewindow showing render result */
- for(sa=sc->areabase.first; sa; sa= sa->next) {
- if(sa->spacetype==SPACE_IMAGE) {
- sima= sa->spacedata.first;
- if(!sima->image)
- break;
- }
- }
- return sa;
-}
-#endif // XXX not used
-
-/* new window uses x,y to set position */
-static void screen_set_image_output(bContext *C, int mx, int my)
-{
- wmWindow *win= CTX_wm_window(C);
- Scene *scene= CTX_data_scene(C);
- ScrArea *sa= NULL;
- SpaceImage *sima;
- int area_was_image=0;
-
- if(scene->r.displaymode==R_OUTPUT_WINDOW) {
- rcti rect;
- int sizex, sizey;
-
- sizex= 10 + (scene->r.xsch*scene->r.size)/100;
- sizey= 40 + (scene->r.ysch*scene->r.size)/100;
-
- /* arbitrary... miniature image window views don't make much sense */
- if(sizex < 320) sizex= 320;
- if(sizey < 256) sizey= 256;
-
- /* XXX some magic to calculate postition */
- rect.xmin= mx + win->posx - sizex/2;
- rect.ymin= my + win->posy - sizey/2;
- rect.xmax= rect.xmin + sizex;
- rect.ymax= rect.ymin + sizey;
-
- /* changes context! */
- WM_window_open_temp(C, &rect, WM_WINDOW_RENDER);
-
- sa= CTX_wm_area(C);
- }
- else if(scene->r.displaymode==R_OUTPUT_SCREEN) {
- if (CTX_wm_area(C)->spacetype == SPACE_IMAGE)
- area_was_image = 1;
-
- /* this function returns with changed context */
- ED_screen_full_newspace(C, CTX_wm_area(C), SPACE_IMAGE);
- sa= CTX_wm_area(C);
- }
-
- if(!sa) {
- sa= find_area_showing_r_result(C);
- if(sa==NULL)
- sa= find_area_image_empty(C);
-
- if(sa==NULL) {
- /* find largest open non-image area */
- sa= biggest_non_image_area(C);
- if(sa) {
- ED_area_newspace(C, sa, SPACE_IMAGE);
- sima= sa->spacedata.first;
-
- /* makes ESC go back to prev space */
- sima->flag |= SI_PREVSPACE;
- }
- else {
- /* use any area of decent size */
- sa= biggest_area(C);
- if(sa->spacetype!=SPACE_IMAGE) {
- // XXX newspace(sa, SPACE_IMAGE);
- sima= sa->spacedata.first;
-
- /* makes ESC go back to prev space */
- sima->flag |= SI_PREVSPACE;
- }
- }
- }
- }
- sima= sa->spacedata.first;
-
- /* get the correct image, and scale it */
- sima->image= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
-
-
- /* if we're rendering to full screen, set appropriate hints on image editor
- * so it can restore properly on pressing esc */
- if(sa->full) {
- sima->flag |= SI_FULLWINDOW;
-
- /* Tell the image editor to revert to previous space in space list on close
- * _only_ if it wasn't already an image editor when the render was invoked */
- if (area_was_image == 0)
- sima->flag |= SI_PREVSPACE;
- else {
- /* Leave it alone so the image editor will just go back from
- * full screen to the original tiled setup */
- ;
- }
-
- }
-
-}
-
-/* executes blocking render */
-static int screen_render_exec(bContext *C, wmOperator *op)
-{
- Scene *scene= CTX_data_scene(C);
- Render *re= RE_GetRender(scene->id.name, RE_SLOT_VIEW);
-
- if(re==NULL) {
- re= RE_NewRender(scene->id.name, RE_SLOT_VIEW);
- }
- RE_test_break_cb(re, NULL, (int (*)(void *)) blender_test_break);
-
- if(RNA_boolean_get(op->ptr, "animation"))
- RE_BlenderAnim(re, scene, scene->r.sfra, scene->r.efra, scene->r.frame_step, op->reports);
- else
- RE_BlenderFrame(re, scene, NULL, scene->r.cfra);
-
- // no redraw needed, we leave state as we entered it
- ED_update_for_newframe(C, 1);
-
- WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene);
-
- return OPERATOR_FINISHED;
-}
-
-typedef struct RenderJob {
- Scene *scene;
- Render *re;
- wmWindow *win;
- SceneRenderLayer *srl;
- int anim;
- Image *image;
- ImageUser iuser;
- short *stop;
- short *do_update;
- ReportList *reports;
-} RenderJob;
-
-static void render_freejob(void *rjv)
-{
- RenderJob *rj= rjv;
-
- MEM_freeN(rj);
-}
-
-/* str is IMA_RW_MAXTEXT in size */
-static void make_renderinfo_string(RenderStats *rs, Scene *scene, char *str)
-{
- char info_time_str[32]; // used to be extern to header_info.c
- uintptr_t mem_in_use, mmap_in_use;
- float megs_used_memory, mmap_used_memory;
- char *spos= str;
-
- mem_in_use= MEM_get_memory_in_use();
- mmap_in_use= MEM_get_mapped_memory_in_use();
-
- megs_used_memory= (mem_in_use-mmap_in_use)/(1024.0*1024.0);
- mmap_used_memory= (mmap_in_use)/(1024.0*1024.0);
-
- if(scene->lay & 0xFF000000)
- spos+= sprintf(spos, "Localview | ");
- else if(scene->r.scemode & R_SINGLE_LAYER)
- spos+= sprintf(spos, "Single Layer | ");
-
- if(rs->statstr) {
- spos+= sprintf(spos, "%s ", rs->statstr);
- }
- else {
- spos+= sprintf(spos, "Fra:%d Ve:%d Fa:%d ", (scene->r.cfra), rs->totvert, rs->totface);
- if(rs->tothalo) spos+= sprintf(spos, "Ha:%d ", rs->tothalo);
- if(rs->totstrand) spos+= sprintf(spos, "St:%d ", rs->totstrand);
- spos+= sprintf(spos, "La:%d Mem:%.2fM (%.2fM) ", rs->totlamp, megs_used_memory, mmap_used_memory);
-
- if(rs->curfield)
- spos+= sprintf(spos, "Field %d ", rs->curfield);
- if(rs->curblur)
- spos+= sprintf(spos, "Blur %d ", rs->curblur);
- }
-
- BLI_timestr(rs->lastframetime, info_time_str);
- spos+= sprintf(spos, "Time:%s ", info_time_str);
-
- if(rs->infostr && rs->infostr[0])
- spos+= sprintf(spos, "| %s ", rs->infostr);
-
- /* very weak... but 512 characters is quite safe */
- if(spos >= str+IMA_RW_MAXTEXT)
- if (G.f & G_DEBUG)
- printf("WARNING! renderwin text beyond limit \n");
-
-}
-
-static void image_renderinfo_cb(void *rjv, RenderStats *rs)
-{
- RenderJob *rj= rjv;
-
- /* malloc OK here, stats_draw is not in tile threads */
- if(rj->image->render_text==NULL)
- rj->image->render_text= MEM_callocN(IMA_RW_MAXTEXT, "rendertext");
-
- make_renderinfo_string(rs, rj->scene, rj->image->render_text);
-
- /* make jobs timer to send notifier */
- *(rj->do_update)= 1;
-
-}
-
-/* called inside thread! */
-static void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volatile rcti *renrect)
-{
- float x1, y1, *rectf= NULL;
- int ymin, ymax, xmin, xmax;
- int rymin, rxmin;
- char *rectc;
-
- /* if renrect argument, we only refresh scanlines */
- if(renrect) {
- /* if ymax==recty, rendering of layer is ready, we should not draw, other things happen... */
- if(rr->renlay==NULL || renrect->ymax>=rr->recty)
- return;
-
- /* xmin here is first subrect x coord, xmax defines subrect width */
- xmin = renrect->xmin + rr->crop;
- xmax = renrect->xmax - xmin - rr->crop;
- if (xmax<2) return;
-
- ymin= renrect->ymin + rr->crop;
- ymax= renrect->ymax - ymin - rr->crop;
- if(ymax<2)
- return;
- renrect->ymin= renrect->ymax;
-
- }
- else {
- xmin = ymin = rr->crop;
- xmax = rr->rectx - 2*rr->crop;
- ymax = rr->recty - 2*rr->crop;
- }
-
- /* xmin ymin is in tile coords. transform to ibuf */
- rxmin= rr->tilerect.xmin + xmin;
- if(rxmin >= ibuf->x) return;
- rymin= rr->tilerect.ymin + ymin;
- if(rymin >= ibuf->y) return;
-
- if(rxmin + xmax > ibuf->x)
- xmax= ibuf->x - rxmin;
- if(rymin + ymax > ibuf->y)
- ymax= ibuf->y - rymin;
-
- if(xmax < 1 || ymax < 1) return;
-
- /* find current float rect for display, first case is after composit... still weak */
- if(rr->rectf)
- rectf= rr->rectf;
- else {
- if(rr->rect32)
- return;
- else {
- if(rr->renlay==NULL || rr->renlay->rectf==NULL) return;
- rectf= rr->renlay->rectf;
- }
- }
- if(rectf==NULL) return;
-
- if(ibuf->rect==NULL)
- imb_addrectImBuf(ibuf);
-
- rectf+= 4*(rr->rectx*ymin + xmin);
- rectc= (char *)(ibuf->rect + ibuf->x*rymin + rxmin);
-
- /* XXX make nice consistent functions for this */
- if (scene && (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)) {
- for(y1= 0; y1<ymax; y1++) {
- float *rf= rectf;
- float srgb[3];
- char *rc= rectc;
-
- /* XXX temp. because crop offset */
- if( rectc >= (char *)(ibuf->rect)) {
- for(x1= 0; x1<xmax; x1++, rf += 4, rc+=4) {
- srgb[0]= linearrgb_to_srgb(rf[0]);
- srgb[1]= linearrgb_to_srgb(rf[1]);
- srgb[2]= linearrgb_to_srgb(rf[2]);
-
- rc[0]= FTOCHAR(srgb[0]);
- rc[1]= FTOCHAR(srgb[1]);
- rc[2]= FTOCHAR(srgb[2]);
- rc[3]= FTOCHAR(rf[3]);
- }
- }
- rectf += 4*rr->rectx;
- rectc += 4*ibuf->x;
- }
- } else {
- for(y1= 0; y1<ymax; y1++) {
- float *rf= rectf;
- char *rc= rectc;
-
- /* XXX temp. because crop offset */
- if( rectc >= (char *)(ibuf->rect)) {
- for(x1= 0; x1<xmax; x1++, rf += 4, rc+=4) {
- rc[0]= FTOCHAR(rf[0]);
- rc[1]= FTOCHAR(rf[1]);
- rc[2]= FTOCHAR(rf[2]);
- rc[3]= FTOCHAR(rf[3]);
- }
- }
- rectf += 4*rr->rectx;
- rectc += 4*ibuf->x;
- }
- }
-
-}
-
-static void image_rect_update(void *rjv, RenderResult *rr, volatile rcti *renrect)
-{
- RenderJob *rj= rjv;
- ImBuf *ibuf;
- void *lock;
-
- ibuf= BKE_image_acquire_ibuf(rj->image, &rj->iuser, &lock);
- if(ibuf) {
- image_buffer_rect_update(rj->scene, rr, ibuf, renrect);
-
- /* make jobs timer to send notifier */
- *(rj->do_update)= 1;
- }
- BKE_image_release_ibuf(rj->image, lock);
-}
-
-static void render_startjob(void *rjv, short *stop, short *do_update)
-{
- RenderJob *rj= rjv;
-// Main *mainp= BKE_undo_get_main(&rj->scene);
-
- rj->stop= stop;
- rj->do_update= do_update;
-
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
- // Workaround for Apple gcc 4.2.1 omp vs background thread bug
- pthread_setspecific (gomp_tls_key, thread_tls_data);
-#endif
-
- if(rj->anim)
- RE_BlenderAnim(rj->re, rj->scene, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step, rj->reports);
- else
- RE_BlenderFrame(rj->re, rj->scene, rj->srl, rj->scene->r.cfra);
-
-// if(mainp)
-// free_main(mainp);
-}
-
-/* called by render, check job 'stop' value or the global */
-static int render_breakjob(void *rjv)
-{
- RenderJob *rj= rjv;
-
- if(G.afbreek)
- return 1;
- if(rj->stop && *(rj->stop))
- return 1;
- return 0;
-}
-
-/* catch esc */
-static int screen_render_modal(bContext *C, wmOperator *op, wmEvent *event)
-{
- /* no running blender, remove handler and pass through */
- if(0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C)))
- return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
-
- /* running render */
- switch (event->type) {
- case ESCKEY:
- return OPERATOR_RUNNING_MODAL;
- break;
- }
- return OPERATOR_PASS_THROUGH;
-}
-
-/* using context, starts job */
-static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- /* new render clears all callbacks */
- Scene *scene= CTX_data_scene(C);
- SceneRenderLayer *srl=NULL;
- Render *re;
- wmJob *steve;
- RenderJob *rj;
- Image *ima;
-
- /* only one render job at a time */
- if(WM_jobs_test(CTX_wm_manager(C), scene))
- return OPERATOR_CANCELLED;
-
- /* stop all running jobs, currently previews frustrate Render */
- WM_jobs_stop_all(CTX_wm_manager(C));
-
- /* handle UI stuff */
- WM_cursor_wait(1);
-
- /* flush multires changes (for sculpt) */
- multires_force_render_update(CTX_data_active_object(C));
-
- /* get editmode results */
- ED_object_exit_editmode(C, EM_FREEDATA|EM_DO_UNDO); /* 0 = does not exit editmode */
-
- // store spare
- // get view3d layer, local layer, make this nice api call to render
- // store spare
-
- /* ensure at least 1 area shows result */
- screen_set_image_output(C, event->x, event->y);
-
- /* single layer re-render */
- if(RNA_property_is_set(op->ptr, "layer")) {
- SceneRenderLayer *rl;
- Scene *scn;
- char scene_name[19], rl_name[RE_MAXNAME];
-
- RNA_string_get(op->ptr, "layer", rl_name);
- RNA_string_get(op->ptr, "scene", scene_name);
-
- scn = (Scene *)BLI_findstring(&CTX_data_main(C)->scene, scene_name, offsetof(ID, name) + 2);
- rl = (SceneRenderLayer *)BLI_findstring(&scene->r.layers, rl_name, offsetof(SceneRenderLayer, name));
-
- if (scn && rl) {
- scene = scn;
- srl = rl;
- }
- }
-
- /* job custom data */
- rj= MEM_callocN(sizeof(RenderJob), "render job");
- rj->scene= scene;
- rj->win= CTX_wm_window(C);
- rj->srl = srl;
- rj->anim= RNA_boolean_get(op->ptr, "animation");
- rj->iuser.scene= scene;
- rj->iuser.ok= 1;
- rj->reports= op->reports;
-
- /* setup job */
- steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY);
- WM_jobs_customdata(steve, rj, render_freejob);
- WM_jobs_timer(steve, 0.2, NC_SCENE|ND_RENDER_RESULT, 0);
- WM_jobs_callbacks(steve, render_startjob, NULL, NULL);
-
-#if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
- // Workaround for Apple gcc 4.2.1 omp vs background thread bug
- thread_tls_data = pthread_getspecific(gomp_tls_key);
-#endif
-
- /* get a render result image, and make sure it is empty */
- ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
- BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE);
- rj->image= ima;
-
- /* setup new render */
- re= RE_NewRender(scene->id.name, RE_SLOT_VIEW);
- RE_test_break_cb(re, rj, render_breakjob);
- RE_display_draw_cb(re, rj, image_rect_update);
- RE_stats_draw_cb(re, rj, image_renderinfo_cb);
-
- rj->re= re;
- G.afbreek= 0;
-
- // BKE_report in render!
- // RE_error_cb(re, error_cb);
-
- WM_jobs_start(CTX_wm_manager(C), steve);
-
- WM_cursor_wait(0);
- WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene);
-
- /* add modal handler for ESC */
- WM_event_add_modal_handler(C, op);
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-
-/* contextual render, using current scene, view3d? */
-static void SCREEN_OT_render(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Render";
- ot->description= "Render active scene";
- ot->idname= "SCREEN_OT_render";
-
- /* api callbacks */
- ot->invoke= screen_render_invoke;
- ot->modal= screen_render_modal;
- ot->exec= screen_render_exec;
-
- ot->poll= ED_operator_screenactive;
-
- RNA_def_boolean(ot->srna, "animation", 0, "Animation", "");
- RNA_def_string(ot->srna, "layer", "", RE_MAXNAME, "Render Layer", "Single render layer to re-render");
- RNA_def_string(ot->srna, "scene", "", 19, "Scene", "Re-render single layer in this scene");
-}
-
-/* ****************************** opengl render *************************** */
-
-typedef struct OGLRender {
- Render *re;
- Scene *scene;
-
- View3D *v3d;
- RegionView3D *rv3d;
- ARegion *ar;
-
- Image *ima;
- ImageUser iuser;
-
- GPUOffScreen *ofs;
- int sizex, sizey;
-
- ReportList *reports;
- bMovieHandle *mh;
- int cfrao, nfra;
-
- wmTimer *timer; /* use to check if running modal or not (invoke'd or exec'd)*/
-} OGLRender;
-
-static void screen_opengl_render_apply(OGLRender *oglrender)
-{
- Scene *scene= oglrender->scene;
- ARegion *ar= oglrender->ar;
- View3D *v3d= oglrender->v3d;
- RegionView3D *rv3d= oglrender->rv3d;
- RenderResult *rr;
- ImBuf *ibuf;
- void *lock;
- float winmat[4][4];
- int sizex= oglrender->sizex;
- int sizey= oglrender->sizey;
-
- /* bind */
- GPU_offscreen_bind(oglrender->ofs);
-
- /* render 3d view */
- if(rv3d->persp==RV3D_CAMOB && v3d->camera) {
- RE_GetCameraWindow(oglrender->re, v3d->camera, scene->r.cfra, winmat);
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat);
- }
- else
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, NULL);
-
- /* read in pixels & stamp */
- rr= RE_AcquireResultRead(oglrender->re);
- glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_FLOAT, rr->rectf);
- if((scene->r.stamp & R_STAMP_ALL) && (scene->r.stamp & R_STAMP_DRAW))
- BKE_stamp_buf(scene, NULL, rr->rectf, rr->rectx, rr->recty, 4);
- RE_ReleaseResult(oglrender->re);
-
- /* update byte from float buffer */
- ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock);
- if(ibuf) image_buffer_rect_update(NULL, rr, ibuf, NULL);
- BKE_image_release_ibuf(oglrender->ima, lock);
-
- /* unbind */
- GPU_offscreen_unbind(oglrender->ofs);
-}
-
-static int screen_opengl_render_init(bContext *C, wmOperator *op)
-{
- /* new render clears all callbacks */
- Scene *scene= CTX_data_scene(C);
- RenderResult *rr;
- GPUOffScreen *ofs;
- OGLRender *oglrender;
- int sizex, sizey;
-
- /* ensure we have a 3d view */
- if(!ED_view3d_context_activate(C))
- return 0;
-
- /* only one render job at a time */
- if(WM_jobs_test(CTX_wm_manager(C), scene))
- return 0;
-
- /* stop all running jobs, currently previews frustrate Render */
- WM_jobs_stop_all(CTX_wm_manager(C));
-
- /* handle UI stuff */
- WM_cursor_wait(1);
-
- /* create offscreen buffer */
- sizex= (scene->r.size*scene->r.xsch)/100;
- sizey= (scene->r.size*scene->r.ysch)/100;
-
- view3d_operator_needs_opengl(C);
- ofs= GPU_offscreen_create(sizex, sizey);
-
- if(!ofs) {
- BKE_report(op->reports, RPT_ERROR, "Failed to create OpenGL offscreen buffer.");
- return 0;
- }
-
- /* allocate opengl render */
- oglrender= MEM_callocN(sizeof(OGLRender), "OGLRender");
- op->customdata= oglrender;
-
- oglrender->ofs= ofs;
- oglrender->sizex= sizex;
- oglrender->sizey= sizey;
- oglrender->scene= scene;
-
- oglrender->v3d= CTX_wm_view3d(C);
- oglrender->ar= CTX_wm_region(C);
- oglrender->rv3d= CTX_wm_region_view3d(C);
-
- /* create image and image user */
- oglrender->ima= BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
- BKE_image_signal(oglrender->ima, NULL, IMA_SIGNAL_FREE);
-
- oglrender->iuser.scene= scene;
- oglrender->iuser.ok= 1;
-
- /* create render and render result */
- oglrender->re= RE_NewRender(scene->id.name, RE_SLOT_VIEW);
- RE_InitState(oglrender->re, NULL, &scene->r, NULL, sizex, sizey, NULL);
-
- rr= RE_AcquireResultWrite(oglrender->re);
- if(rr->rectf==NULL)
- rr->rectf= MEM_mallocN(sizeof(float)*4*sizex*sizey, "32 bits rects");
- RE_ReleaseResult(oglrender->re);
-
- return 1;
-}
-
-static void screen_opengl_render_end(bContext *C, OGLRender *oglrender)
-{
- Scene *scene= oglrender->scene;
-
- if(oglrender->mh) {
- if(BKE_imtype_is_movie(scene->r.imtype))
- oglrender->mh->end_movie();
- }
-
- if(oglrender->timer) { /* exec will not have a timer */
- scene->r.cfra= oglrender->cfrao;
- scene_update_for_newframe(scene, scene->lay);
-
- WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), oglrender->timer);
- }
-
- WM_cursor_wait(0);
- WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene);
-
- GPU_offscreen_free(oglrender->ofs);
-
- MEM_freeN(oglrender);
-}
-
-static int screen_opengl_render_cancel(bContext *C, wmOperator *op)
-{
- screen_opengl_render_end(C, op->customdata);
-
- return OPERATOR_CANCELLED;
-}
-
-/* share between invoke and exec */
-static int screen_opengl_render_anim_initialize(bContext *C, wmOperator *op)
-{
- /* initialize animation */
- OGLRender *oglrender;
- Scene *scene;
-
- oglrender= op->customdata;
- scene= oglrender->scene;
-
- oglrender->reports= op->reports;
- oglrender->mh= BKE_get_movie_handle(scene->r.imtype);
- if(BKE_imtype_is_movie(scene->r.imtype)) {
- if(!oglrender->mh->start_movie(scene, &scene->r, oglrender->sizex, oglrender->sizey, oglrender->reports)) {
- screen_opengl_render_end(C, oglrender);
- return 0;
- }
- }
-
- oglrender->cfrao= scene->r.cfra;
- oglrender->nfra= SFRA;
- scene->r.cfra= SFRA;
-
- return 1;
-}
-static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
-{
- OGLRender *oglrender= op->customdata;
- Scene *scene= oglrender->scene;
- ImBuf *ibuf;
- void *lock;
- char name[FILE_MAXDIR+FILE_MAXFILE];
- unsigned int lay;
- int ok= 0;
-
- /* go to next frame */
- while(CFRA<oglrender->nfra) {
- if(scene->lay & 0xFF000000)
- lay= scene->lay & 0xFF000000;
- else
- lay= scene->lay;
-
- scene_update_for_newframe(scene, lay);
- CFRA++;
- }
-
- scene_update_for_newframe(scene, scene->lay);
-
- if(oglrender->rv3d->persp==RV3D_CAMOB && oglrender->v3d->camera && oglrender->v3d->scenelock) {
- /* since scene_update_for_newframe() is used rather
- * then ED_update_for_newframe() the camera needs to be set */
- Object *camera= scene_find_camera_switch(scene);
-
- if(camera)
- oglrender->v3d->camera= scene->camera= camera;
- }
-
- /* render into offscreen buffer */
- screen_opengl_render_apply(oglrender);
-
- /* save to disk */
- ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock);
-
- if(ibuf) {
- if(BKE_imtype_is_movie(scene->r.imtype)) {
- ok= oglrender->mh->append_movie(&scene->r, CFRA, (int*)ibuf->rect, oglrender->sizex, oglrender->sizey, oglrender->reports);
- if(ok) {
- printf("Append frame %d", scene->r.cfra);
- BKE_reportf(op->reports, RPT_INFO, "Appended frame: %d", scene->r.cfra);
- }
- }
- else {
- BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION);
- ok= BKE_write_ibuf(scene, ibuf, name, scene->r.imtype, scene->r.subimtype, scene->r.quality);
-
- if(ok==0) {
- printf("Write error: cannot save %s\n", name);
- BKE_reportf(op->reports, RPT_ERROR, "Write error: cannot save %s", name);
- }
- else {
- printf("Saved: %s", name);
- BKE_reportf(op->reports, RPT_INFO, "Saved file: %s", name);
- }
- }
- }
-
- BKE_image_release_ibuf(oglrender->ima, lock);
-
- /* movie stats prints have no line break */
- printf("\n");
-
- /* go to next frame */
- oglrender->nfra += scene->r.frame_step;
- scene->r.cfra++;
-
- /* stop at the end or on error */
- if(scene->r.cfra > EFRA || !ok) {
- screen_opengl_render_end(C, op->customdata);
- return 0;
- }
-
- return 1;
-}
-
-
-static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *event)
-{
- OGLRender *oglrender= op->customdata;
-
- int ret;
-
- switch(event->type) {
- case ESCKEY:
- /* cancel */
- screen_opengl_render_end(C, op->customdata);
- return OPERATOR_FINISHED;
- case TIMER:
- /* render frame? */
- if(oglrender->timer == event->customdata)
- break;
- default:
- /* nothing to do */
- return OPERATOR_RUNNING_MODAL;
- }
-
- ret= screen_opengl_render_anim_step(C, op);
-
- WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene);
-
- /* stop at the end or on error */
- if(ret == 0) {
- return OPERATOR_FINISHED;
- }
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- int anim= RNA_boolean_get(op->ptr, "animation");
-
- if(!screen_opengl_render_init(C, op))
- return OPERATOR_CANCELLED;
-
- if(!anim) {
- /* render image */
- screen_opengl_render_apply(op->customdata);
- screen_opengl_render_end(C, op->customdata);
- screen_set_image_output(C, event->x, event->y);
-
- return OPERATOR_FINISHED;
- }
- else {
- OGLRender *oglrender= op->customdata;
-
- if(!screen_opengl_render_anim_initialize(C, op))
- return OPERATOR_CANCELLED;
-
- screen_set_image_output(C, event->x, event->y);
-
- WM_event_add_modal_handler(C, op);
- oglrender->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f);
-
- return OPERATOR_RUNNING_MODAL;
- }
-}
-
-/* executes blocking render */
-static int screen_opengl_render_exec(bContext *C, wmOperator *op)
-{
- int anim= RNA_boolean_get(op->ptr, "animation");
-
- if(!screen_opengl_render_init(C, op))
- return OPERATOR_CANCELLED;
-
- if(!anim) { /* same as invoke */
- /* render image */
- screen_opengl_render_apply(op->customdata);
- screen_opengl_render_end(C, op->customdata);
-
- return OPERATOR_FINISHED;
- }
- else {
- int ret= 1;
-
- if(!screen_opengl_render_anim_initialize(C, op))
- return OPERATOR_CANCELLED;
-
- while(ret) {
- ret= screen_opengl_render_anim_step(C, op);
- }
- }
-
- // no redraw needed, we leave state as we entered it
-// ED_update_for_newframe(C, 1);
- WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, CTX_data_scene(C));
-
- return OPERATOR_FINISHED;
-}
-
-static void SCREEN_OT_opengl_render(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "OpenGL Render";
- ot->description= "OpenGL render active viewport";
- ot->idname= "SCREEN_OT_opengl_render";
-
- /* api callbacks */
- ot->invoke= screen_opengl_render_invoke;
- ot->exec= screen_opengl_render_exec; /* blocking */
- ot->modal= screen_opengl_render_modal;
- ot->cancel= screen_opengl_render_cancel;
-
- ot->poll= ED_operator_screenactive;
-
- RNA_def_boolean(ot->srna, "animation", 0, "Animation", "");
-}
-
-/* *********************** cancel render viewer *************** */
-
-static int render_view_cancel_exec(bContext *C, wmOperator *unused)
-{
- wmWindow *win= CTX_wm_window(C);
- ScrArea *sa= CTX_wm_area(C);
- SpaceImage *sima= sa->spacedata.first;
-
- /* test if we have a temp screen in front */
- if(CTX_wm_window(C)->screen->full==SCREENTEMP) {
- wm_window_lower(CTX_wm_window(C));
- return OPERATOR_FINISHED;
- }
- /* determine if render already shows */
- else if(sima->flag & SI_PREVSPACE) {
- sima->flag &= ~SI_PREVSPACE;
-
- if(sima->flag & SI_FULLWINDOW) {
- sima->flag &= ~SI_FULLWINDOW;
- ED_screen_full_prevspace(C, sa);
- }
- else
- ED_area_prevspace(C, sa);
-
- return OPERATOR_FINISHED;
- }
- else if(sima->flag & SI_FULLWINDOW) {
- sima->flag &= ~SI_FULLWINDOW;
- ed_screen_fullarea(C, win, sa);
- return OPERATOR_FINISHED;
- }
-
- return OPERATOR_PASS_THROUGH;
-}
-
-static void SCREEN_OT_render_view_cancel(struct wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Cancel Render View";
- ot->description= "Cancel show render view";
- ot->idname= "SCREEN_OT_render_view_cancel";
-
- /* api callbacks */
- ot->exec= render_view_cancel_exec;
- ot->poll= ED_operator_image_active;
-}
-
-/* *********************** show render viewer *************** */
-
-static int render_view_show_invoke(bContext *C, wmOperator *unused, wmEvent *event)
-{
- ScrArea *sa= find_area_showing_r_result(C);
-
- /* test if we have a temp screen in front */
- if(CTX_wm_window(C)->screen->full==SCREENTEMP) {
- wm_window_lower(CTX_wm_window(C));
- }
- /* determine if render already shows */
- else if(sa) {
- SpaceImage *sima= sa->spacedata.first;
-
- if(sima->flag & SI_PREVSPACE) {
- sima->flag &= ~SI_PREVSPACE;
-
- if(sima->flag & SI_FULLWINDOW) {
- sima->flag &= ~SI_FULLWINDOW;
- ED_screen_full_prevspace(C, sa);
- }
- else if(sima->next) {
- ED_area_newspace(C, sa, sima->next->spacetype);
- ED_area_tag_redraw(sa);
- }
- }
- }
- else {
- screen_set_image_output(C, event->x, event->y);
- }
-
- return OPERATOR_FINISHED;
-}
-
-static void SCREEN_OT_render_view_show(struct wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Show/Hide Render View";
- ot->description= "Toggle show render view";
- ot->idname= "SCREEN_OT_render_view_show";
-
- /* api callbacks */
- ot->invoke= render_view_show_invoke;
- ot->poll= ED_operator_screenactive;
-}
-
/* *********************** generic fullscreen 'back' button *************** */
@@ -4004,12 +2951,6 @@ void ED_operatortypes_screen(void)
WM_operatortype_append(SCREEN_OT_animation_play);
WM_operatortype_append(SCREEN_OT_animation_cancel);
- /* render */
- WM_operatortype_append(SCREEN_OT_render);
- WM_operatortype_append(SCREEN_OT_render_view_cancel);
- WM_operatortype_append(SCREEN_OT_render_view_show);
- WM_operatortype_append(SCREEN_OT_opengl_render);
-
/* new/delete */
WM_operatortype_append(SCREEN_OT_new);
WM_operatortype_append(SCREEN_OT_delete);
@@ -4057,7 +2998,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "modifier", 0);
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "modifier", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "modifier", 2);
+ RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "modifier", 2);
/* screen tools */
WM_keymap_verify_item(keymap, "SCREEN_OT_area_split", EVT_ACTIONZONE_AREA, 0, 0, 0);
@@ -4094,7 +3035,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "SCREEN_OT_repeat_last", RKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_verify_item(keymap, "SCREEN_OT_region_flip", F5KEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "SCREEN_OT_redo_last", F6KEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "WM_OT_reload_scripts", F8KEY, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "SCRIPT_OT_reload", F8KEY, KM_PRESS, 0, 0);
/* files */
WM_keymap_add_item(keymap, "FILE_OT_execute", RETKEY, KM_PRESS, 0, 0);
@@ -4111,11 +3052,11 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
/* render */
- WM_keymap_add_item(keymap, "SCREEN_OT_render", F12KEY, KM_PRESS, 0, 0);
- RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_render", F12KEY, KM_PRESS, KM_CTRL, 0)->ptr, "animation", 1);
- WM_keymap_add_item(keymap, "SCREEN_OT_render_view_cancel", ESCKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SCREEN_OT_render_view_show", F11KEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SCREEN_OT_play_rendered_anim", F11KEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "RENDER_OT_render", F12KEY, KM_PRESS, 0, 0);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "RENDER_OT_render", F12KEY, KM_PRESS, KM_CTRL, 0)->ptr, "animation", 1);
+ WM_keymap_add_item(keymap, "RENDER_OT_view_cancel", ESCKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "RENDER_OT_view_show", F11KEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "RENDER_OT_play_rendered_anim", F11KEY, KM_PRESS, KM_CTRL, 0);
/* user prefs */
#ifdef __APPLE__
@@ -4136,7 +3077,8 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELDOWNMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1);
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELUPMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1);
- WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 1);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 1);
RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", 0);
diff --git a/source/blender/editors/screen/screendump.c b/source/blender/editors/screen/screendump.c
index d34a562f894..d5cd8285515 100644
--- a/source/blender/editors/screen/screendump.c
+++ b/source/blender/editors/screen/screendump.c
@@ -57,8 +57,6 @@
#include "PIL_time.h"
-#include "ED_fileselect.h"
-#include "ED_screen.h"
#include "ED_screen_types.h"
#include "screen_intern.h"
@@ -77,10 +75,10 @@ static int screenshot_exec(bContext *C, wmOperator *op)
ImBuf *ibuf;
char path[FILE_MAX];
- RNA_string_get(op->ptr, "path", path);
+ RNA_string_get(op->ptr, "filepath", path);
strcpy(G.ima, path);
- BLI_convertstringcode(path, G.sce);
+ BLI_path_abs(path, G.sce);
/* BKE_add_image_extension() checks for if extension was already set */
if(scene->r.scemode & R_EXTENSION)
@@ -90,8 +88,6 @@ static int screenshot_exec(bContext *C, wmOperator *op)
ibuf= IMB_allocImBuf(scd->dumpsx, scd->dumpsy, 24, 0, 0);
ibuf->rect= scd->dumprect;
- if(scene->r.planes == 8) IMB_cspace(ibuf, rgb_to_bw);
-
BKE_write_ibuf(scene, ibuf, path, scene->r.imtype, scene->r.subimtype, scene->r.quality);
IMB_freeImBuf(ibuf);
@@ -126,7 +122,7 @@ static unsigned int *screenshot(bContext *C, int *dumpsx, int *dumpsy, int fscre
if (*dumpsx && *dumpsy) {
- dumprect= MEM_mallocN(sizeof(int) * dumpsx[0] * dumpsy[0], "dumprect");
+ dumprect= MEM_mallocN(sizeof(int) * (*dumpsx) * (*dumpsy), "dumprect");
glReadBuffer(GL_FRONT);
glReadPixels(x, y, *dumpsx, *dumpsy, GL_RGBA, GL_UNSIGNED_BYTE, dumprect);
glFinish();
@@ -151,10 +147,10 @@ static int screenshot_invoke(bContext *C, wmOperator *op, wmEvent *event)
scd->dumprect= dumprect;
op->customdata= scd;
- if(RNA_property_is_set(op->ptr, "path"))
+ if(RNA_property_is_set(op->ptr, "filepath"))
return screenshot_exec(C, op);
- RNA_string_set(op->ptr, "path", G.ima);
+ RNA_string_set(op->ptr, "filepath", G.ima);
WM_event_add_fileselect(C, op);
@@ -175,7 +171,7 @@ void SCREEN_OT_screenshot(wmOperatorType *ot)
ot->flag= 0;
- WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_SAVE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH);
RNA_def_boolean(ot->srna, "full", 1, "Full Screen", "");
}
@@ -219,7 +215,7 @@ static void screenshot_updatejob(void *sjv)
/* only this runs inside thread */
-static void screenshot_startjob(void *sjv, short *stop, short *do_update)
+static void screenshot_startjob(void *sjv, short *stop, short *do_update, float *progress)
{
ScreenshotJob *sj= sjv;
RenderData rd= sj->scene->r;
@@ -275,7 +271,7 @@ static void screenshot_startjob(void *sjv, short *stop, short *do_update)
BKE_reportf(&sj->reports, RPT_INFO, "Saved file: %s", name);
}
- /* imbuf knows which rects are not part of ibuf */
+ /* imbuf knows which rects are not part of ibuf */
IMB_freeImBuf(ibuf);
}
@@ -300,7 +296,7 @@ static void screenshot_startjob(void *sjv, short *stop, short *do_update)
static int screencast_exec(bContext *C, wmOperator *op)
{
bScreen *screen= CTX_wm_screen(C);
- wmJob *steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), screen, 0);
+ wmJob *steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), screen, "Screencast", 0);
ScreenshotJob *sj= MEM_callocN(sizeof(ScreenshotJob), "screenshot job");
/* setup sj */
@@ -325,7 +321,7 @@ static int screencast_exec(bContext *C, wmOperator *op)
/* setup job */
WM_jobs_customdata(steve, sj, screenshot_freejob);
WM_jobs_timer(steve, 0.1, 0, NC_SCREEN|ND_SCREENCAST);
- WM_jobs_callbacks(steve, screenshot_startjob, NULL, screenshot_updatejob);
+ WM_jobs_callbacks(steve, screenshot_startjob, NULL, screenshot_updatejob, NULL);
WM_jobs_start(CTX_wm_manager(C), steve);
@@ -345,7 +341,7 @@ void SCREEN_OT_screencast(wmOperatorType *ot)
ot->flag= 0;
- RNA_def_property(ot->srna, "path", PROP_STRING, PROP_FILEPATH);
+ RNA_def_property(ot->srna, "filepath", PROP_STRING, PROP_FILEPATH);
RNA_def_boolean(ot->srna, "full", 1, "Full Screen", "");
}
diff --git a/source/blender/editors/sculpt_paint/CMakeLists.txt b/source/blender/editors/sculpt_paint/CMakeLists.txt
new file mode 100644
index 00000000000..f0493d8e2d8
--- /dev/null
+++ b/source/blender/editors/sculpt_paint/CMakeLists.txt
@@ -0,0 +1,41 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../imbuf
+ ../../gpu
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../render/extern/include
+)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_sculpt_paint "${SRC}" "${INC}")
diff --git a/source/blender/editors/sculpt_paint/SConscript b/source/blender/editors/sculpt_paint/SConscript
index 1c7c3686386..b9cc294d44d 100644
--- a/source/blender/editors/sculpt_paint/SConscript
+++ b/source/blender/editors/sculpt_paint/SConscript
@@ -3,6 +3,8 @@ Import ('env')
sources = env.Glob('*.c')
+defs = []
+
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../render/extern/include'
@@ -12,7 +14,11 @@ if env['OURPLATFORM'] == 'linux2':
cflags='-pthread'
incs += ' ../../../extern/binreloc/include'
+if env['OURPLATFORM'] == 'linuxcross':
+ if env['WITH_BF_OPENMP']:
+ incs += ' ' + env['BF_OPENMP_INC']
+
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
- incs += ' ' + env['BF_PTHREADS_INC']
+ incs += ' ' + env['BF_PTHREADS_INC']
-env.BlenderLib ( 'bf_editors_sculpt_paint', sources, Split(incs), [], libtype=['core'], priority=[40] )
+env.BlenderLib ( 'bf_editors_sculpt_paint', sources, Split(incs), defines=defs, libtype=['core'], priority=[40] )
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index c258e162336..12326843734 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -16,7 +16,6 @@
* 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.
*
@@ -51,20 +50,14 @@
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
-#include "DNA_brush_types.h"
-#include "DNA_image_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "BKE_context.h"
+#include "BKE_idprop.h"
+#include "BKE_object.h"
#include "BKE_brush.h"
#include "BKE_global.h"
#include "BKE_image.h"
@@ -76,15 +69,14 @@
#include "BKE_DerivedMesh.h"
#include "BKE_report.h"
#include "BKE_depsgraph.h"
+#include "BKE_library.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "UI_interface.h"
#include "UI_view2d.h"
#include "ED_image.h"
-#include "ED_object.h"
#include "ED_screen.h"
#include "ED_sculpt.h"
#include "ED_view3d.h"
@@ -94,6 +86,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "GPU_draw.h"
@@ -184,6 +177,14 @@ typedef struct ImagePaintRegion {
#define PROJ_FACE_NOSEAM3 1<<6
#define PROJ_FACE_NOSEAM4 1<<7
+#define PROJ_SRC_VIEW 1
+#define PROJ_SRC_IMAGE_CAM 2
+#define PROJ_SRC_IMAGE_VIEW 3
+
+#define PROJ_VIEW_DATA_ID "view_data"
+#define PROJ_VIEW_DATA_SIZE (4*4 + 4*4 + 3) /* viewmat + winmat + clipsta + clipend + is_ortho */
+
+
/* a slightly scaled down face is used to get fake 3D location for edge pixels in the seams
* as this number approaches 1.0f the likelihood increases of float precision errors where
* it is occluded by an adjacent face */
@@ -218,6 +219,7 @@ typedef struct ProjPaintState {
RegionView3D *rv3d;
ARegion *ar;
Scene *scene;
+ int source; /* PROJ_SRC_**** */
Brush *brush;
short tool, blend;
@@ -259,6 +261,7 @@ typedef struct ProjPaintState {
float screenMax[2];
float screen_width; /* Calculated from screenMin & screenMax */
float screen_height;
+ int winx, winy; /* from the carea or from the projection render */
/* options for projection painting */
int do_layer_clone;
@@ -286,6 +289,11 @@ typedef struct ProjPaintState {
float viewPos[3]; /* View location in object relative 3D space, so can compare to verts */
float clipsta, clipend;
+ /* reproject vars */
+ Image *reproject_image;
+ ImBuf *reproject_ibuf;
+
+
/* threads */
int thread_tot;
int bucketMin[2];
@@ -404,7 +412,7 @@ static void image_undo_restore(bContext *C, ListBase *lb)
UndoImageTile *tile;
tmpibuf= IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32,
- IB_rectfloat|IB_rect, 0);
+ IB_rectfloat|IB_rect, 0);
for(tile=lb->first; tile; tile=tile->next) {
/* find image based on name, pointer becomes invalid with global undo */
@@ -480,14 +488,14 @@ static void barycentric_weights_v2_persp(float v1[4], float v2[4], float v3[4],
wtot = w[0]+w[1]+w[2];
if (wtot != 0.0f) {
- wtot_inv = 1.0f/wtot;
+ wtot_inv = 1.0f/wtot;
- w[0] = w[0]*wtot_inv;
- w[1] = w[1]*wtot_inv;
- w[2] = w[2]*wtot_inv;
+ w[0] = w[0]*wtot_inv;
+ w[1] = w[1]*wtot_inv;
+ w[2] = w[2]*wtot_inv;
}
else /* dummy values for zero area face */
- w[0] = w[1] = w[2] = 1.0f/3.0f;
+ w[0] = w[1] = w[2] = 1.0f/3.0f;
}
static float VecZDepthOrtho(float pt[2], float v1[3], float v2[3], float v3[3], float w[3])
@@ -633,8 +641,8 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float
}
}
else {
- xi = (uv[0]*ibuf->x) + 0.5f;
- yi = (uv[1]*ibuf->y) + 0.5f;
+ xi = (int)((uv[0]*ibuf->x) + 0.5f);
+ yi = (int)((uv[1]*ibuf->y) + 0.5f);
//if (xi<0 || xi>=ibuf->x || yi<0 || yi>=ibuf->y) return 0;
@@ -673,7 +681,7 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float
* 0 : no occlusion
* -1 : no occlusion but 2D intersection is true (avoid testing the other half of a quad)
* 1 : occluded
- 2 : occluded with w[3] weights set (need to know in some cases) */
+ 2 : occluded with w[3] weights set (need to know in some cases) */
static int project_paint_occlude_ptv(float pt[3], float v1[3], float v2[3], float v3[3], float w[3], int is_ortho)
{
@@ -742,6 +750,7 @@ static int project_bucket_point_occluded(const ProjPaintState *ps, LinkNode *buc
int face_index;
int isect_ret;
float w[3]; /* not needed when clipping */
+ const short do_clip= ps->rv3d ? ps->rv3d->rflag & RV3D_CLIPPING : 0;
/* we could return 0 for 1 face buckets, as long as this function assumes
* that the point its testing is only every originated from an existing face */
@@ -751,14 +760,14 @@ static int project_bucket_point_occluded(const ProjPaintState *ps, LinkNode *buc
if (orig_face != face_index) {
mf = ps->dm_mface + face_index;
- if(ps->rv3d->rflag & RV3D_CLIPPING)
+ if(do_clip)
isect_ret = project_paint_occlude_ptv_clip(ps, mf, pixelScreenCo, ps->screenCoords[mf->v1], ps->screenCoords[mf->v2], ps->screenCoords[mf->v3], 0);
else
isect_ret = project_paint_occlude_ptv(pixelScreenCo, ps->screenCoords[mf->v1], ps->screenCoords[mf->v2], ps->screenCoords[mf->v3], w, ps->is_ortho);
/* Note, if isect_ret==-1 then we dont want to test the other side of the quad */
if (isect_ret==0 && mf->v4) {
- if(ps->rv3d->rflag & RV3D_CLIPPING)
+ if(do_clip)
isect_ret = project_paint_occlude_ptv_clip(ps, mf, pixelScreenCo, ps->screenCoords[mf->v1], ps->screenCoords[mf->v3], ps->screenCoords[mf->v4], 1);
else
isect_ret = project_paint_occlude_ptv(pixelScreenCo, ps->screenCoords[mf->v1], ps->screenCoords[mf->v3], ps->screenCoords[mf->v4], w, ps->is_ortho);
@@ -1044,15 +1053,15 @@ static void uv_image_outset(float (*orig_uv)[2], float (*outset_uv)[2], const fl
* This is incorrect. Its already given radians but without it wont work.
* need to look into a fix - campbell */
if (is_quad) {
- a1 = shell_angle_to_dist(angle_normalized_v2v2(dir4, dir1) * (M_PI/180.0f));
- a2 = shell_angle_to_dist(angle_normalized_v2v2(dir1, dir2) * (M_PI/180.0f));
- a3 = shell_angle_to_dist(angle_normalized_v2v2(dir2, dir3) * (M_PI/180.0f));
- a4 = shell_angle_to_dist(angle_normalized_v2v2(dir3, dir4) * (M_PI/180.0f));
+ a1 = shell_angle_to_dist(angle_normalized_v2v2(dir4, dir1) * ((float)M_PI/180.0f));
+ a2 = shell_angle_to_dist(angle_normalized_v2v2(dir1, dir2) * ((float)M_PI/180.0f));
+ a3 = shell_angle_to_dist(angle_normalized_v2v2(dir2, dir3) * ((float)M_PI/180.0f));
+ a4 = shell_angle_to_dist(angle_normalized_v2v2(dir3, dir4) * ((float)M_PI/180.0f));
}
else {
- a1 = shell_angle_to_dist(angle_normalized_v2v2(dir3, dir1) * (M_PI/180.0f));
- a2 = shell_angle_to_dist(angle_normalized_v2v2(dir1, dir2) * (M_PI/180.0f));
- a3 = shell_angle_to_dist(angle_normalized_v2v2(dir2, dir3) * (M_PI/180.0f));
+ a1 = shell_angle_to_dist(angle_normalized_v2v2(dir3, dir1) * ((float)M_PI/180.0f));
+ a2 = shell_angle_to_dist(angle_normalized_v2v2(dir1, dir2) * ((float)M_PI/180.0f));
+ a3 = shell_angle_to_dist(angle_normalized_v2v2(dir2, dir3) * ((float)M_PI/180.0f));
}
if (is_quad) {
@@ -1188,7 +1197,7 @@ static void screen_px_from_persp(
w[2] *= wtot_inv;
}
else {
- w[0] = w[1] = w[2] = 1.0/3.0; /* dummy values for zero area face */
+ w[0] = w[1] = w[2] = 1.0f/3.0f; /* dummy values for zero area face */
}
/* done re-weighting */
@@ -1633,10 +1642,10 @@ static void scale_quad(float insetCos[4][3], float *origCos[4], const float inse
mul_v3_fl(insetCos[2], inset);
mul_v3_fl(insetCos[3], inset);
- add_v3_v3v3(insetCos[0], insetCos[0], cent);
- add_v3_v3v3(insetCos[1], insetCos[1], cent);
- add_v3_v3v3(insetCos[2], insetCos[2], cent);
- add_v3_v3v3(insetCos[3], insetCos[3], cent);
+ add_v3_v3(insetCos[0], cent);
+ add_v3_v3(insetCos[1], cent);
+ add_v3_v3(insetCos[2], cent);
+ add_v3_v3(insetCos[3], cent);
}
@@ -1655,9 +1664,9 @@ static void scale_tri(float insetCos[4][3], float *origCos[4], const float inset
mul_v3_fl(insetCos[1], inset);
mul_v3_fl(insetCos[2], inset);
- add_v3_v3v3(insetCos[0], insetCos[0], cent);
- add_v3_v3v3(insetCos[1], insetCos[1], cent);
- add_v3_v3v3(insetCos[2], insetCos[2], cent);
+ add_v3_v3(insetCos[0], cent);
+ add_v3_v3(insetCos[1], cent);
+ add_v3_v3(insetCos[2], cent);
}
@@ -2199,6 +2208,7 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
int uv_clip_tot;
const short is_ortho = ps->is_ortho;
const short do_backfacecull = ps->do_backfacecull;
+ const short do_clip= ps->rv3d ? ps->rv3d->rflag & RV3D_CLIPPING : 0;
vCo[0] = ps->dm_mvert[mf->v1].co;
vCo[1] = ps->dm_mvert[mf->v2].co;
@@ -2298,7 +2308,7 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
else screen_px_from_persp(uv, v1coSS, v2coSS, v3coSS, uv1co, uv2co, uv3co, pixelScreenCo, w);
/* a pitty we need to get the worldspace pixel location here */
- if(ps->rv3d->rflag & RV3D_CLIPPING) {
+ if(do_clip) {
interp_v3_v3v3v3(wco, ps->dm_mvert[ (*(&mf->v1 + i1)) ].co, ps->dm_mvert[ (*(&mf->v1 + i2)) ].co, ps->dm_mvert[ (*(&mf->v1 + i3)) ].co, w);
if(view3d_test_clipping(ps->rv3d, wco, 1)) {
continue; /* Watch out that no code below this needs to run */
@@ -2479,8 +2489,8 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
if (!is_ortho) {
pixelScreenCo[3] = 1.0f;
mul_m4_v4((float(*)[4])ps->projectMat, pixelScreenCo); /* cast because of const */
- pixelScreenCo[0] = (float)(ps->ar->winx/2.0f)+(ps->ar->winx/2.0f)*pixelScreenCo[0]/pixelScreenCo[3];
- pixelScreenCo[1] = (float)(ps->ar->winy/2.0f)+(ps->ar->winy/2.0f)*pixelScreenCo[1]/pixelScreenCo[3];
+ pixelScreenCo[0] = (float)(ps->winx/2.0f)+(ps->winx/2.0f)*pixelScreenCo[0]/pixelScreenCo[3];
+ pixelScreenCo[1] = (float)(ps->winy/2.0f)+(ps->winy/2.0f)*pixelScreenCo[1]/pixelScreenCo[3];
pixelScreenCo[2] = pixelScreenCo[2]/pixelScreenCo[3]; /* Use the depth for bucket point occlusion */
}
@@ -2503,17 +2513,17 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
w[0]=w[1]=w[2]= 0.0;
if (side) {
w[fidx1?fidx1-1:0] = fac;
- w[fidx2?fidx2-1:0] = 1.0-fac;
+ w[fidx2?fidx2-1:0] = 1.0f-fac;
}
else {
w[fidx1] = fac;
- w[fidx2] = 1.0-fac;
+ w[fidx2] = 1.0f-fac;
}
#endif
}
/* a pitty we need to get the worldspace pixel location here */
- if(ps->rv3d->rflag & RV3D_CLIPPING) {
+ if(do_clip) {
if (side) interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v3].co, ps->dm_mvert[mf->v4].co, w);
else interp_v3_v3v3v3(wco, ps->dm_mvert[mf->v1].co, ps->dm_mvert[mf->v2].co, ps->dm_mvert[mf->v3].co, w);
@@ -2561,11 +2571,12 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
static void project_paint_bucket_bounds(const ProjPaintState *ps, const float min[2], const float max[2], int bucketMin[2], int bucketMax[2])
{
/* divide by bucketWidth & bucketHeight so the bounds are offset in bucket grid units */
- bucketMin[0] = (int)(((float)(min[0] - ps->screenMin[0]) / ps->screen_width) * ps->buckets_x) + 0.5f; /* these offsets of 0.5 and 1.5 seem odd but they are correct */
- bucketMin[1] = (int)(((float)(min[1] - ps->screenMin[1]) / ps->screen_height) * ps->buckets_y) + 0.5f;
+ /* XXX: the offset of 0.5 is always truncated to zero and the offset of 1.5f is always truncated to 1, is this really correct?? - jwilkins */
+ bucketMin[0] = (int)((int)(((float)(min[0] - ps->screenMin[0]) / ps->screen_width) * ps->buckets_x) + 0.5f); /* these offsets of 0.5 and 1.5 seem odd but they are correct */
+ bucketMin[1] = (int)((int)(((float)(min[1] - ps->screenMin[1]) / ps->screen_height) * ps->buckets_y) + 0.5f);
- bucketMax[0] = (int)(((float)(max[0] - ps->screenMin[0]) / ps->screen_width) * ps->buckets_x) + 1.5f;
- bucketMax[1] = (int)(((float)(max[1] - ps->screenMin[1]) / ps->screen_height) * ps->buckets_y) + 1.5f;
+ bucketMax[0] = (int)((int)(((float)(max[0] - ps->screenMin[0]) / ps->screen_width) * ps->buckets_x) + 1.5f);
+ bucketMax[1] = (int)((int)(((float)(max[1] - ps->screenMin[1]) / ps->screen_height) * ps->buckets_y) + 1.5f);
/* incase the rect is outside the mesh 2d bounds */
CLAMP(bucketMin[0], 0, ps->buckets_x);
@@ -2758,6 +2769,19 @@ static void project_paint_delayed_face_init(ProjPaintState *ps, const MFace *mf,
#endif
}
+static int project_paint_view_clip(View3D *v3d, RegionView3D *rv3d, float *clipsta, float *clipend)
+{
+ int orth= get_view3d_cliprange(v3d, rv3d, clipsta, clipend);
+
+ if (orth) { /* only needed for ortho */
+ float fac = 2.0f / ((*clipend) - (*clipsta));
+ *clipsta *= fac;
+ *clipend *= fac;
+ }
+
+ return orth;
+}
+
/* run once per stroke before projection painting */
static void project_paint_begin(ProjPaintState *ps)
{
@@ -2766,8 +2790,9 @@ static void project_paint_begin(ProjPaintState *ps)
float no[3];
- float (*projScreenCo)[4]; /* Note, we could have 4D vectors are only needed for */
+ float *projScreenCo; /* Note, we could have 4D vectors are only needed for */
float projMargin;
+
/* Image Vars - keep track of images we have used */
LinkNode *image_LinkList = NULL;
LinkNode *node;
@@ -2781,22 +2806,29 @@ static void project_paint_begin(ProjPaintState *ps)
int a, i; /* generic looping vars */
int image_index = -1, face_index;
+ MVert *mv;
MemArena *arena; /* at the moment this is just ps->arena_mt[0], but use this to show were not multithreading */
/* ---- end defines ---- */
- ED_view3d_local_clipping(ps->rv3d, ps->ob->obmat); /* faster clipping lookups */
+ if(ps->source==PROJ_SRC_VIEW)
+ ED_view3d_local_clipping(ps->rv3d, ps->ob->obmat); /* faster clipping lookups */
/* paint onto the derived mesh */
/* Workaround for subsurf selection, try the display mesh first */
- if(ps->ob->derivedFinal && CustomData_has_layer( &ps->ob->derivedFinal->faceData, CD_MTFACE)) {
+ if (ps->source==PROJ_SRC_IMAGE_CAM) {
+ /* using render mesh, assume only camera was rendered from */
+ ps->dm = mesh_create_derived_render(ps->scene, ps->ob, ps->v3d->customdata_mask | CD_MASK_MTFACE);
+ ps->dm_release= TRUE;
+ }
+ else if(ps->ob->derivedFinal && CustomData_has_layer( &ps->ob->derivedFinal->faceData, CD_MTFACE)) {
ps->dm = ps->ob->derivedFinal;
ps->dm_release= FALSE;
}
else {
- ps->dm = mesh_get_derived_final(ps->scene, ps->ob, ps->v3d->customdata_mask);
+ ps->dm = mesh_get_derived_final(ps->scene, ps->ob, ps->v3d->customdata_mask | CD_MASK_MTFACE);
ps->dm_release= TRUE;
}
@@ -2830,6 +2862,7 @@ static void project_paint_begin(ProjPaintState *ps)
if (ps->dm_mtface_clone==NULL || ps->dm_mtface_clone==ps->dm_mtface) {
ps->do_layer_clone = 0;
ps->dm_mtface_clone= NULL;
+ printf("ACK!\n");
}
}
@@ -2861,83 +2894,126 @@ static void project_paint_begin(ProjPaintState *ps)
ps->viewDir[1] = 0.0f;
ps->viewDir[2] = 1.0f;
- view3d_get_object_project_mat(ps->rv3d, ps->ob, ps->projectMat);
-
- /* viewDir - object relative */
- invert_m4_m4(ps->ob->imat, ps->ob->obmat);
- copy_m3_m4(mat, ps->rv3d->viewinv);
- mul_m3_v3(mat, ps->viewDir);
- copy_m3_m4(mat, ps->ob->imat);
- mul_m3_v3(mat, ps->viewDir);
- normalize_v3(ps->viewDir);
-
- /* viewPos - object relative */
- VECCOPY(ps->viewPos, ps->rv3d->viewinv[3]);
- copy_m3_m4(mat, ps->ob->imat);
- mul_m3_v3(mat, ps->viewPos);
- add_v3_v3v3(ps->viewPos, ps->viewPos, ps->ob->imat[3]);
-
- { /* only use these for running 'get_view3d_viewplane' */
- rctf viewplane;
-
- ps->is_ortho = get_view3d_viewplane(ps->v3d, ps->rv3d, ps->ar->winx, ps->ar->winy, &viewplane, &ps->clipsta, &ps->clipend, NULL);
-
- //printf("%f %f\n", ps->clipsta, ps->clipend);
- if (ps->is_ortho) { /* only needed for ortho */
- float fac = 2.0f / (ps->clipend - ps->clipsta);
- ps->clipsta *= fac;
- ps->clipend *= fac;
+ {
+ float viewmat[4][4];
+ float viewinv[4][4];
+
+ invert_m4_m4(ps->ob->imat, ps->ob->obmat);
+
+ if(ps->source==PROJ_SRC_VIEW) {
+ /* normal drawing */
+ ps->winx= ps->ar->winx;
+ ps->winy= ps->ar->winy;
+
+ copy_m4_m4(viewmat, ps->rv3d->viewmat);
+ copy_m4_m4(viewinv, ps->rv3d->viewinv);
+
+ view3d_get_object_project_mat(ps->rv3d, ps->ob, ps->projectMat);
+
+ ps->is_ortho= project_paint_view_clip(ps->v3d, ps->rv3d, &ps->clipsta, &ps->clipend);
}
else {
- /* TODO - can we even adjust for clip start/end? */
+ /* reprojection */
+ float winmat[4][4];
+ float vmat[4][4];
+
+ ps->winx= ps->reproject_ibuf->x;
+ ps->winy= ps->reproject_ibuf->y;
+
+ if (ps->source==PROJ_SRC_IMAGE_VIEW) {
+ /* image stores camera data, tricky */
+ IDProperty *idgroup= IDP_GetProperties(&ps->reproject_image->id, 0);
+ IDProperty *view_data= IDP_GetPropertyFromGroup(idgroup, PROJ_VIEW_DATA_ID);
+
+ float *array= (float *)IDP_Array(view_data);
+
+ /* use image array, written when creating image */
+ memcpy(winmat, array, sizeof(winmat)); array += sizeof(winmat)/sizeof(float);
+ memcpy(viewmat, array, sizeof(viewmat)); array += sizeof(viewmat)/sizeof(float);
+ ps->clipsta= array[0];
+ ps->clipend= array[1];
+ ps->is_ortho= array[2] ? 1:0;
+
+ invert_m4_m4(viewinv, viewmat);
+ }
+ else if (ps->source==PROJ_SRC_IMAGE_CAM) {
+ Object *camera= ps->scene->camera;
+
+ /* dont actually use these */
+ float _viewdx, _viewdy, _ycor, _lens=0.0f;
+ rctf _viewplane;
+
+ /* viewmat & viewinv */
+ copy_m4_m4(viewinv, ps->scene->camera->obmat);
+ normalize_m4(viewinv);
+ invert_m4_m4(viewmat, viewinv);
+
+ /* camera winmat */
+ object_camera_matrix(&ps->scene->r, camera, ps->winx, ps->winy, 0,
+ winmat, &_viewplane, &ps->clipsta, &ps->clipend,
+ &_lens, &_ycor, &_viewdx, &_viewdy);
+
+ ps->is_ortho= (ps->scene->r.mode & R_ORTHO) ? 1 : 0;
+ }
+
+ /* same as view3d_get_object_project_mat */
+ mul_m4_m4m4(vmat, ps->ob->obmat, viewmat);
+ mul_m4_m4m4(ps->projectMat, vmat, winmat);
}
+
+
+ /* viewDir - object relative */
+ invert_m4_m4(ps->ob->imat, ps->ob->obmat);
+ copy_m3_m4(mat, viewinv);
+ mul_m3_v3(mat, ps->viewDir);
+ copy_m3_m4(mat, ps->ob->imat);
+ mul_m3_v3(mat, ps->viewDir);
+ normalize_v3(ps->viewDir);
+ /* viewPos - object relative */
+ VECCOPY(ps->viewPos, viewinv[3]);
+ copy_m3_m4(mat, ps->ob->imat);
+ mul_m3_v3(mat, ps->viewPos);
+ add_v3_v3(ps->viewPos, ps->ob->imat[3]);
}
- ps->is_airbrush = (ps->brush->flag & BRUSH_AIRBRUSH) ? 1 : 0;
-
- ps->is_texbrush = (ps->brush->mtex.tex) ? 1 : 0;
-
-
/* calculate vert screen coords
* run this early so we can calculate the x/y resolution of our bucket rect */
INIT_MINMAX2(ps->screenMin, ps->screenMax);
ps->screenCoords = MEM_mallocN(sizeof(float) * ps->dm_totvert * 4, "ProjectPaint ScreenVerts");
- projScreenCo = ps->screenCoords;
+ projScreenCo= *ps->screenCoords;
if (ps->is_ortho) {
- for(a=0; a < ps->dm_totvert; a++, projScreenCo++) {
- VECCOPY((*projScreenCo), ps->dm_mvert[a].co);
- mul_m4_v3(ps->projectMat, (*projScreenCo));
+ for(a=0, mv=ps->dm_mvert; a < ps->dm_totvert; a++, mv++, projScreenCo+=4) {
+ mul_v3_m4v3(projScreenCo, ps->projectMat, mv->co);
/* screen space, not clamped */
- (*projScreenCo)[0] = (float)(ps->ar->winx/2.0f)+(ps->ar->winx/2.0f)*(*projScreenCo)[0];
- (*projScreenCo)[1] = (float)(ps->ar->winy/2.0f)+(ps->ar->winy/2.0f)*(*projScreenCo)[1];
- DO_MINMAX2((*projScreenCo), ps->screenMin, ps->screenMax);
+ projScreenCo[0] = (float)(ps->winx/2.0f)+(ps->winx/2.0f)*projScreenCo[0];
+ projScreenCo[1] = (float)(ps->winy/2.0f)+(ps->winy/2.0f)*projScreenCo[1];
+ DO_MINMAX2(projScreenCo, ps->screenMin, ps->screenMax);
}
}
else {
- for(a=0; a < ps->dm_totvert; a++, projScreenCo++) {
- VECCOPY((*projScreenCo), ps->dm_mvert[a].co);
- (*projScreenCo)[3] = 1.0f;
+ for(a=0, mv=ps->dm_mvert; a < ps->dm_totvert; a++, mv++, projScreenCo+=4) {
+ copy_v3_v3(projScreenCo, mv->co);
+ projScreenCo[3] = 1.0f;
- mul_m4_v4(ps->projectMat, (*projScreenCo));
+ mul_m4_v4(ps->projectMat, projScreenCo);
-
- if ((*projScreenCo)[3] > ps->clipsta) {
+ if (projScreenCo[3] > ps->clipsta) {
/* screen space, not clamped */
- (*projScreenCo)[0] = (float)(ps->ar->winx/2.0f)+(ps->ar->winx/2.0f)*(*projScreenCo)[0]/(*projScreenCo)[3];
- (*projScreenCo)[1] = (float)(ps->ar->winy/2.0f)+(ps->ar->winy/2.0f)*(*projScreenCo)[1]/(*projScreenCo)[3];
- (*projScreenCo)[2] = (*projScreenCo)[2]/(*projScreenCo)[3]; /* Use the depth for bucket point occlusion */
- DO_MINMAX2((*projScreenCo), ps->screenMin, ps->screenMax);
+ projScreenCo[0] = (float)(ps->winx/2.0f)+(ps->winx/2.0f)*projScreenCo[0]/projScreenCo[3];
+ projScreenCo[1] = (float)(ps->winy/2.0f)+(ps->winy/2.0f)*projScreenCo[1]/projScreenCo[3];
+ projScreenCo[2] = projScreenCo[2]/projScreenCo[3]; /* Use the depth for bucket point occlusion */
+ DO_MINMAX2(projScreenCo, ps->screenMin, ps->screenMax);
}
else {
/* TODO - deal with cases where 1 side of a face goes behind the view ?
*
* After some research this is actually very tricky, only option is to
* clip the derived mesh before painting, which is a Pain */
- (*projScreenCo)[0] = FLT_MAX;
+ projScreenCo[0] = FLT_MAX;
}
}
}
@@ -2952,14 +3028,23 @@ static void project_paint_begin(ProjPaintState *ps)
ps->screenMax[1] += projMargin;
ps->screenMin[1] -= projMargin;
+ if(ps->source==PROJ_SRC_VIEW) {
#ifdef PROJ_DEBUG_WINCLIP
- CLAMP(ps->screenMin[0], -ps->brush->size, ps->ar->winx + ps->brush->size);
- CLAMP(ps->screenMax[0], -ps->brush->size, ps->ar->winx + ps->brush->size);
+ CLAMP(ps->screenMin[0], (float)(-ps->brush->size), (float)(ps->winx + ps->brush->size));
+ CLAMP(ps->screenMax[0], (float)(-ps->brush->size), (float)(ps->winx + ps->brush->size));
- CLAMP(ps->screenMin[1], -ps->brush->size, ps->ar->winy + ps->brush->size);
- CLAMP(ps->screenMax[1], -ps->brush->size, ps->ar->winy + ps->brush->size);
+ CLAMP(ps->screenMin[1], (float)(-ps->brush->size), (float)(ps->winy + ps->brush->size));
+ CLAMP(ps->screenMax[1], (float)(-ps->brush->size), (float)(ps->winy + ps->brush->size));
#endif
-
+ }
+ else { /* reprojection, use bounds */
+ ps->screenMin[0]= 0;
+ ps->screenMax[0]= (float)(ps->winx);
+
+ ps->screenMin[1]= 0;
+ ps->screenMax[1]= (float)(ps->winy);
+ }
+
/* only for convenience */
ps->screen_width = ps->screenMax[0] - ps->screenMin[0];
ps->screen_height = ps->screenMax[1] - ps->screenMin[1];
@@ -2999,21 +3084,18 @@ static void project_paint_begin(ProjPaintState *ps)
ps->thread_tot = BLI_system_thread_count();
}
for (a=0; a<ps->thread_tot; a++) {
- ps->arena_mt[a] = BLI_memarena_new(1<<16);
+ ps->arena_mt[a] = BLI_memarena_new(1<<16, "project paint arena");
}
arena = ps->arena_mt[0];
if (ps->do_backfacecull && ps->do_mask_normal) {
- MVert *v = ps->dm_mvert;
float viewDirPersp[3];
ps->vertFlags = MEM_callocN(sizeof(char) * ps->dm_totvert, "paint-vertFlags");
- for(a=0; a < ps->dm_totvert; a++, v++) {
- no[0] = (float)(v->no[0] / 32767.0f);
- no[1] = (float)(v->no[1] / 32767.0f);
- no[2] = (float)(v->no[2] / 32767.0f);
+ for(a=0, mv=ps->dm_mvert; a < ps->dm_totvert; a++, mv++) {
+ normal_short_to_float_v3(no, mv->no);
if (ps->is_ortho) {
if (angle_normalized_v3v3(ps->viewDir, no) >= ps->normal_angle) { /* 1 vert of this face is towards us */
@@ -3021,7 +3103,7 @@ static void project_paint_begin(ProjPaintState *ps)
}
}
else {
- sub_v3_v3v3(viewDirPersp, ps->viewPos, v->co);
+ sub_v3_v3v3(viewDirPersp, ps->viewPos, mv->co);
normalize_v3(viewDirPersp);
if (angle_normalized_v3v3(viewDirPersp, no) >= ps->normal_angle) { /* 1 vert of this face is towards us */
ps->vertFlags[a] |= PROJ_VERT_CULL;
@@ -3041,7 +3123,7 @@ static void project_paint_begin(ProjPaintState *ps)
BLI_linklist_prepend_arena(&ps->vertFaces[mf->v2], SET_INT_IN_POINTER(face_index), arena);
BLI_linklist_prepend_arena(&ps->vertFaces[mf->v3], SET_INT_IN_POINTER(face_index), arena);
if (mf->v4) {
- BLI_linklist_prepend_arena(&ps->vertFaces[ mf->v4 ], SET_INT_IN_POINTER(face_index), arena);
+ BLI_linklist_prepend_arena(&ps->vertFaces[mf->v4], SET_INT_IN_POINTER(face_index), arena);
}
}
#endif
@@ -3160,14 +3242,13 @@ static void project_paint_begin_clone(ProjPaintState *ps, int mouse[2])
/* setup clone offset */
if (ps->tool == PAINT_TOOL_CLONE) {
float projCo[4];
- float *curs= give_cursor(ps->scene, ps->v3d);
- VECCOPY(projCo, curs);
+ copy_v3_v3(projCo, give_cursor(ps->scene, ps->v3d));
mul_m4_v3(ps->ob->imat, projCo);
projCo[3] = 1.0f;
mul_m4_v4(ps->projectMat, projCo);
- ps->cloneOffset[0] = mouse[0] - ((float)(ps->ar->winx/2.0f)+(ps->ar->winx/2.0f)*projCo[0]/projCo[3]);
- ps->cloneOffset[1] = mouse[1] - ((float)(ps->ar->winy/2.0f)+(ps->ar->winy/2.0f)*projCo[1]/projCo[3]);
+ ps->cloneOffset[0] = mouse[0] - ((float)(ps->winx/2.0f)+(ps->winx/2.0f)*projCo[0]/projCo[3]);
+ ps->cloneOffset[1] = mouse[1] - ((float)(ps->winy/2.0f)+(ps->winy/2.0f)*projCo[1]/projCo[3]);
}
}
@@ -3365,31 +3446,44 @@ static int project_image_refresh_tagged(ProjPaintState *ps)
/* run this per painting onto each mouse location */
static int project_bucket_iter_init(ProjPaintState *ps, const float mval_f[2])
{
- float min_brush[2], max_brush[2];
- float size_half = ((float)ps->brush->size) * 0.5f;
-
- /* so we dont have a bucket bounds that is way too small to paint into */
- // if (size_half < 1.0f) size_half = 1.0f; // this dosnt work yet :/
-
- min_brush[0] = mval_f[0] - size_half;
- min_brush[1] = mval_f[1] - size_half;
-
- max_brush[0] = mval_f[0] + size_half;
- max_brush[1] = mval_f[1] + size_half;
-
- /* offset to make this a valid bucket index */
- project_paint_bucket_bounds(ps, min_brush, max_brush, ps->bucketMin, ps->bucketMax);
-
- /* mouse outside the model areas? */
- if (ps->bucketMin[0]==ps->bucketMax[0] || ps->bucketMin[1]==ps->bucketMax[1]) {
- return 0;
+ if(ps->source==PROJ_SRC_VIEW) {
+ float min_brush[2], max_brush[2];
+ float size_half = ((float)ps->brush->size) * 0.5f;
+
+ /* so we dont have a bucket bounds that is way too small to paint into */
+ // if (size_half < 1.0f) size_half = 1.0f; // this dosnt work yet :/
+
+ min_brush[0] = mval_f[0] - size_half;
+ min_brush[1] = mval_f[1] - size_half;
+
+ max_brush[0] = mval_f[0] + size_half;
+ max_brush[1] = mval_f[1] + size_half;
+
+ /* offset to make this a valid bucket index */
+ project_paint_bucket_bounds(ps, min_brush, max_brush, ps->bucketMin, ps->bucketMax);
+
+ /* mouse outside the model areas? */
+ if (ps->bucketMin[0]==ps->bucketMax[0] || ps->bucketMin[1]==ps->bucketMax[1]) {
+ return 0;
+ }
+
+ ps->context_bucket_x = ps->bucketMin[0];
+ ps->context_bucket_y = ps->bucketMin[1];
+ }
+ else { /* reproject: PROJ_SRC_* */
+ ps->bucketMin[0]= 0;
+ ps->bucketMin[1]= 0;
+
+ ps->bucketMax[0]= ps->buckets_x;
+ ps->bucketMax[1]= ps->buckets_y;
+
+ ps->context_bucket_x = 0;
+ ps->context_bucket_y = 0;
}
-
- ps->context_bucket_x = ps->bucketMin[0];
- ps->context_bucket_y = ps->bucketMin[1];
return 1;
}
+
static int project_bucket_iter_next(ProjPaintState *ps, int *bucket_index, rctf *bucket_bounds, const float mval[2])
{
if (ps->thread_tot > 1)
@@ -3403,7 +3497,9 @@ static int project_bucket_iter_next(ProjPaintState *ps, int *bucket_index, rctf
/* use bucket_bounds for project_bucket_isect_circle and project_bucket_init*/
project_bucket_bounds(ps, ps->context_bucket_x, ps->context_bucket_y, bucket_bounds);
- if (project_bucket_isect_circle(ps->context_bucket_x, ps->context_bucket_y, mval, ps->brush->size * ps->brush->size, bucket_bounds)) {
+ if ( (ps->source != PROJ_SRC_VIEW) ||
+ project_bucket_isect_circle(ps->context_bucket_x, ps->context_bucket_y, mval, (float)(ps->brush->size * ps->brush->size), bucket_bounds)
+ ) {
*bucket_index = ps->context_bucket_x + (ps->context_bucket_y * ps->buckets_x);
ps->context_bucket_x++;
@@ -3450,13 +3546,27 @@ static void blend_color_mix(unsigned char *cp, const unsigned char *cp1, const u
static void blend_color_mix_float(float *cp, const float *cp1, const float *cp2, const float fac)
{
- const float mfac= 1.0-fac;
+ const float mfac= 1.0f-fac;
cp[0]= mfac*cp1[0] + fac*cp2[0];
cp[1]= mfac*cp1[1] + fac*cp2[1];
cp[2]= mfac*cp1[2] + fac*cp2[2];
cp[3]= mfac*cp1[3] + fac*cp2[3];
}
+static void blend_color_mix_accum(unsigned char *cp, const unsigned char *cp1, const unsigned char *cp2, const int fac)
+{
+ /* this and other blending modes previously used >>8 instead of /255. both
+ are not equivalent (>>8 is /256), and the former results in rounding
+ errors that can turn colors black fast after repeated blending */
+ const int mfac= 255-fac;
+ const int alpha= cp1[3] + ((fac * cp2[3]) / 255);
+
+ cp[0]= (mfac*cp1[0]+fac*cp2[0])/255;
+ cp[1]= (mfac*cp1[1]+fac*cp2[1])/255;
+ cp[2]= (mfac*cp1[2]+fac*cp2[2])/255;
+ cp[3]= alpha > 255 ? 255 : alpha;
+}
+
static void do_projectpaint_clone(ProjPaintState *ps, ProjPixel *projPixel, float *rgba, float alpha, float mask)
{
if (ps->is_airbrush==0 && mask < 1.0f) {
@@ -3588,6 +3698,7 @@ static void *do_projectpaint_thread(void *ph_v)
float mask = 1.0f; /* airbrush wont use mask */
unsigned short mask_short;
float size_half = ((float)ps->brush->size) * 0.5f;
+ short lock_alpha= ELEM(ps->brush->blend, IMB_BLEND_ERASE_ALPHA, IMB_BLEND_ADD_ALPHA) ? 0 : ps->brush->flag & BRUSH_LOCK_ALPHA;
LinkNode *smearPixels = NULL;
LinkNode *smearPixels_f = NULL;
@@ -3598,11 +3709,11 @@ static void *do_projectpaint_thread(void *ph_v)
pos_ofs[0] = pos[0] - lastpos[0];
pos_ofs[1] = pos[1] - lastpos[1];
- smearArena = BLI_memarena_new(1<<16);
+ smearArena = BLI_memarena_new(1<<16, "paint smear arena");
}
/* avoid a square root with every dist comparison */
- brush_size_sqared = ps->brush->size * ps->brush->size;
+ brush_size_sqared = (float)(ps->brush->size * ps->brush->size);
/* printf("brush bounds %d %d %d %d\n", bucketMin[0], bucketMin[1], bucketMax[0], bucketMax[1]); */
@@ -3614,91 +3725,117 @@ static void *do_projectpaint_thread(void *ph_v)
project_bucket_init(ps, thread_index, bucket_index, &bucket_bounds);
}
- for (node = ps->bucketRect[bucket_index]; node; node = node->next) {
-
- projPixel = (ProjPixel *)node->link;
+ if(ps->source != PROJ_SRC_VIEW) {
+
+ /* Re-Projection, simple, no brushes! */
- /*dist = len_v2v2(projPixel->projCoSS, pos);*/ /* correct but uses a sqrtf */
- dist_nosqrt = Vec2Lenf_nosqrt(projPixel->projCoSS, pos);
+ for (node = ps->bucketRect[bucket_index]; node; node = node->next) {
+ projPixel = (ProjPixel *)node->link;
+
+ bicubic_interpolation_color(ps->reproject_ibuf, projPixel->newColor.ch, NULL, projPixel->projCoSS[0], projPixel->projCoSS[1]);
+ if(projPixel->newColor.ch[3]) {
+ mask = ((float)projPixel->mask)/65535.0f;
+ blend_color_mix_accum(projPixel->pixel.ch_pt, projPixel->origColor.ch, projPixel->newColor.ch, (mask*projPixel->newColor.ch[3]));
+
+ }
+ }
+ }
+ else {
+ /* Normal brush painting */
- /*if (dist < s->brush->size) {*/ /* correct but uses a sqrtf */
- if (dist_nosqrt < brush_size_sqared && (dist=sqrtf(dist_nosqrt)) < size_half) {
- falloff = brush_curve_strength_clamp(ps->brush, dist, size_half);
- if (falloff > 0.0f) {
- if (ps->is_texbrush) {
- brush_sample_tex(ps->brush, projPixel->projCoSS, rgba);
- alpha = rgba[3];
- } else {
- alpha = 1.0f;
- }
-
- if (ps->is_airbrush) {
- /* for an aurbrush there is no real mask, so just multiply the alpha by it */
- alpha *= falloff * ps->brush->alpha;
- mask = ((float)projPixel->mask)/65535.0f;
- }
- else {
- /* This brush dosnt accumulate so add some curve to the brushes falloff */
- falloff = 1.0f - falloff;
- falloff = 1.0f - (falloff * falloff);
+ for (node = ps->bucketRect[bucket_index]; node; node = node->next) {
+
+ projPixel = (ProjPixel *)node->link;
+
+ /*dist = len_v2v2(projPixel->projCoSS, pos);*/ /* correct but uses a sqrtf */
+ dist_nosqrt = Vec2Lenf_nosqrt(projPixel->projCoSS, pos);
+
+ /*if (dist < s->brush->size) {*/ /* correct but uses a sqrtf */
+ if (dist_nosqrt < brush_size_sqared && (dist=sqrtf(dist_nosqrt)) < size_half) {
+ falloff = brush_curve_strength_clamp(ps->brush, dist, size_half);
+
+ if (falloff > 0.0f) {
+ if (ps->is_texbrush) {
+ brush_sample_tex(ps->brush, projPixel->projCoSS, rgba);
+ alpha = rgba[3];
+ } else {
+ alpha = 1.0f;
+ }
- mask_short = projPixel->mask * (ps->brush->alpha * falloff);
- if (mask_short > projPixel->mask_max) {
- mask = ((float)mask_short)/65535.0f;
- projPixel->mask_max = mask_short;
+ if (ps->is_airbrush) {
+ /* for an aurbrush there is no real mask, so just multiply the alpha by it */
+ alpha *= falloff * ps->brush->alpha;
+ mask = ((float)projPixel->mask)/65535.0f;
}
else {
- /*mask = ((float)projPixel->mask_max)/65535.0f;*/
+ /* This brush dosnt accumulate so add some curve to the brushes falloff */
+ falloff = 1.0f - falloff;
+ falloff = 1.0f - (falloff * falloff);
- /* Go onto the next pixel */
- continue;
+ mask_short = (unsigned short)(projPixel->mask * (ps->brush->alpha * falloff));
+ if (mask_short > projPixel->mask_max) {
+ mask = ((float)mask_short)/65535.0f;
+ projPixel->mask_max = mask_short;
+ }
+ else {
+ /*mask = ((float)projPixel->mask_max)/65535.0f;*/
+
+ /* Go onto the next pixel */
+ continue;
+ }
}
- }
-
- if (alpha > 0.0f) {
- if (last_index != projPixel->image_index) {
- last_index = projPixel->image_index;
- last_projIma = projImages + last_index;
+ if (alpha > 0.0f) {
+
+ if (last_index != projPixel->image_index) {
+ last_index = projPixel->image_index;
+ last_projIma = projImages + last_index;
+
+ last_projIma->touch = 1;
+ is_floatbuf = last_projIma->ibuf->rect_float ? 1 : 0;
+ }
+
+ last_partial_redraw_cell = last_projIma->partRedrawRect + projPixel->bb_cell_index;
+ last_partial_redraw_cell->x1 = MIN2(last_partial_redraw_cell->x1, projPixel->x_px);
+ last_partial_redraw_cell->y1 = MIN2(last_partial_redraw_cell->y1, projPixel->y_px);
+
+ last_partial_redraw_cell->x2 = MAX2(last_partial_redraw_cell->x2, projPixel->x_px+1);
+ last_partial_redraw_cell->y2 = MAX2(last_partial_redraw_cell->y2, projPixel->y_px+1);
+
- last_projIma->touch = 1;
- is_floatbuf = last_projIma->ibuf->rect_float ? 1 : 0;
- }
-
- last_partial_redraw_cell = last_projIma->partRedrawRect + projPixel->bb_cell_index;
- last_partial_redraw_cell->x1 = MIN2(last_partial_redraw_cell->x1, projPixel->x_px);
- last_partial_redraw_cell->y1 = MIN2(last_partial_redraw_cell->y1, projPixel->y_px);
-
- last_partial_redraw_cell->x2 = MAX2(last_partial_redraw_cell->x2, projPixel->x_px+1);
- last_partial_redraw_cell->y2 = MAX2(last_partial_redraw_cell->y2, projPixel->y_px+1);
-
-
- switch(tool) {
- case PAINT_TOOL_CLONE:
- if (is_floatbuf) {
- if (((ProjPixelClone *)projPixel)->clonepx.f[3]) {
- do_projectpaint_clone_f(ps, projPixel, rgba, alpha, mask);
+ switch(tool) {
+ case PAINT_TOOL_CLONE:
+ if (is_floatbuf) {
+ if (((ProjPixelClone *)projPixel)->clonepx.f[3]) {
+ do_projectpaint_clone_f(ps, projPixel, rgba, alpha, mask);
+ }
}
- }
- else {
- if (((ProjPixelClone*)projPixel)->clonepx.ch[3]) {
- do_projectpaint_clone(ps, projPixel, rgba, alpha, mask);
+ else {
+ if (((ProjPixelClone*)projPixel)->clonepx.ch[3]) {
+ do_projectpaint_clone(ps, projPixel, rgba, alpha, mask);
+ }
}
+ break;
+ case PAINT_TOOL_SMEAR:
+ sub_v2_v2v2(co, projPixel->projCoSS, pos_ofs);
+
+ if (is_floatbuf) do_projectpaint_smear_f(ps, projPixel, rgba, alpha, mask, smearArena, &smearPixels_f, co);
+ else do_projectpaint_smear(ps, projPixel, rgba, alpha, mask, smearArena, &smearPixels, co);
+ break;
+ default:
+ if (is_floatbuf) do_projectpaint_draw_f(ps, projPixel, rgba, alpha, mask);
+ else do_projectpaint_draw(ps, projPixel, rgba, alpha, mask);
+ break;
}
- break;
- case PAINT_TOOL_SMEAR:
- sub_v2_v2v2(co, projPixel->projCoSS, pos_ofs);
-
- if (is_floatbuf) do_projectpaint_smear_f(ps, projPixel, rgba, alpha, mask, smearArena, &smearPixels_f, co);
- else do_projectpaint_smear(ps, projPixel, rgba, alpha, mask, smearArena, &smearPixels, co);
- break;
- default:
- if (is_floatbuf) do_projectpaint_draw_f(ps, projPixel, rgba, alpha, mask);
- else do_projectpaint_draw(ps, projPixel, rgba, alpha, mask);
- break;
}
+
+ if(lock_alpha) {
+ if (is_floatbuf) projPixel->pixel.f_pt[3]= projPixel->origColor.f[3];
+ else projPixel->pixel.ch_pt[3]= projPixel->origColor.ch[3];
+ }
+
+ /* done painting */
}
- /* done painting */
}
}
}
@@ -3747,8 +3884,8 @@ static int project_paint_op(void *state, ImBuf *ibufb, float *lastpos, float *po
//memset(&handles[a], 0, sizeof(BakeShade));
handles[a].ps = ps;
- VECCOPY2D(handles[a].mval, pos);
- VECCOPY2D(handles[a].prevmval, lastpos);
+ copy_v2_v2(handles[a].mval, pos);
+ copy_v2_v2(handles[a].prevmval, lastpos);
/* thread spesific */
handles[a].thread_index = a;
@@ -3796,8 +3933,8 @@ static int project_paint_sub_stroke(ProjPaintState *ps, BrushPainter *painter, i
/* Use mouse coords as floats for projection painting */
float pos[2];
- pos[0] = mval_i[0];
- pos[1] = mval_i[1];
+ pos[0] = (float)(mval_i[0]);
+ pos[1] = (float)(mval_i[1]);
// we may want to use this later
// brush_painter_require_imbuf(painter, ((ibuf->rect_float)? 1: 0), 0, 0);
@@ -3921,7 +4058,8 @@ static int imapaint_ibuf_add_if(ImBuf *ibuf, unsigned int x, unsigned int y, flo
{
float inrgb[3];
- if ((x >= ibuf->x) || (y >= ibuf->y)) {
+ // XXX: signed unsigned mismatch
+ if ((x >= (unsigned int)(ibuf->x)) || (y >= (unsigned int)(ibuf->y))) {
if (torus) imapaint_ibuf_get_set_rgb(ibuf, x, y, 1, 0, inrgb);
else return 0;
}
@@ -4427,21 +4565,74 @@ static void paint_redraw(bContext *C, ImagePaintState *s, int final)
}
}
+/* initialize project paint settings from context */
+static void project_state_init(bContext *C, Object *ob, ProjPaintState *ps)
+{
+ Scene *scene= CTX_data_scene(C);
+ ToolSettings *settings= scene->toolsettings;
+ Brush *brush= paint_brush(&settings->imapaint.paint);
+
+ /* brush */
+ ps->brush = brush;
+ ps->tool = brush->imagepaint_tool;
+ ps->blend = brush->blend;
+
+ ps->is_airbrush = (brush->flag & BRUSH_AIRBRUSH) ? 1 : 0;
+ ps->is_texbrush = (brush->mtex.tex) ? 1 : 0;
+
+
+ /* these can be NULL */
+ ps->v3d= CTX_wm_view3d(C);
+ ps->rv3d= CTX_wm_region_view3d(C);
+ ps->ar= CTX_wm_region(C);
+
+ ps->scene= scene;
+ ps->ob= ob; /* allow override of active object */
+
+ /* setup projection painting data */
+ ps->do_backfacecull = (settings->imapaint.flag & IMAGEPAINT_PROJECT_BACKFACE) ? 0 : 1;
+ ps->do_occlude = (settings->imapaint.flag & IMAGEPAINT_PROJECT_XRAY) ? 0 : 1;
+ ps->do_mask_normal = (settings->imapaint.flag & IMAGEPAINT_PROJECT_FLAT) ? 0 : 1;
+
+ if (ps->tool == PAINT_TOOL_CLONE)
+ ps->do_layer_clone = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_CLONE);
+
+ ps->do_layer_stencil = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_STENCIL) ? 1 : 0;
+ ps->do_layer_stencil_inv = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_STENCIL_INV) ? 1 : 0;
+
+
+#ifndef PROJ_DEBUG_NOSEAMBLEED
+ ps->seam_bleed_px = settings->imapaint.seam_bleed; /* pixel num to bleed */
+#endif
+
+ if(ps->do_mask_normal) {
+ ps->normal_angle_inner = settings->imapaint.normal_angle;
+ ps->normal_angle = (ps->normal_angle_inner + 90.0f) * 0.5f;
+ }
+ else {
+ ps->normal_angle_inner= ps->normal_angle= settings->imapaint.normal_angle;
+ }
+
+ ps->normal_angle_inner *= (float)(M_PI_2 / 90);
+ ps->normal_angle *= (float)(M_PI_2 / 90);
+ ps->normal_angle_range = ps->normal_angle - ps->normal_angle_inner;
+
+ if(ps->normal_angle_range <= 0.0f)
+ ps->do_mask_normal = 0; /* no need to do blending */
+}
+
static int texture_paint_init(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
ToolSettings *settings= scene->toolsettings;
- PaintOperation *pop;
- Brush *brush;
+ Brush *brush= paint_brush(&settings->imapaint.paint);
+ PaintOperation *pop= MEM_callocN(sizeof(PaintOperation), "PaintOperation"); /* caller frees */
- pop= MEM_callocN(sizeof(PaintOperation), "PaintOperation");
pop->first= 1;
op->customdata= pop;
/* initialize from context */
if(CTX_wm_region_view3d(C)) {
- pop->ps.v3d= CTX_wm_view3d(C);
- pop->ps.rv3d= CTX_wm_region_view3d(C);
pop->mode= PAINT_MODE_3D;
if(!(settings->imapaint.flag & IMAGEPAINT_PROJECT_DISABLE))
@@ -4455,34 +4646,19 @@ static int texture_paint_init(bContext *C, wmOperator *op)
}
pop->s.scene= scene;
- pop->ps.scene= scene;
pop->s.screen= CTX_wm_screen(C);
- pop->ps.ar= CTX_wm_region(C);
-
- /* intialize brush */
- brush= paint_brush(&settings->imapaint.paint);
- if(!brush)
- return 0;
pop->s.brush = brush;
pop->s.tool = brush->imagepaint_tool;
if(pop->mode == PAINT_MODE_3D && (pop->s.tool == PAINT_TOOL_CLONE))
pop->s.tool = PAINT_TOOL_DRAW;
- pop->s.blend = pop->s.brush->blend;
-
- if(pop->mode == PAINT_MODE_3D_PROJECT) {
- pop->ps.brush = pop->s.brush;
- pop->ps.tool = pop->s.tool;
- pop->ps.blend = pop->s.blend;
-
- pop->brush_size_orig = pop->ps.brush->size; /* not nice hack because 1 size brushes always fail with projection paint */
- }
+ pop->s.blend = brush->blend;
+ pop->brush_size_orig= brush->size;
if(pop->mode != PAINT_MODE_2D) {
Mesh *me;
- pop->ps.ob = pop->s.ob = OBACT;
- if (!pop->s.ob || !(pop->s.ob->lay & pop->ps.v3d->lay)) return 0;
+ pop->s.ob = OBACT;
pop->s.me = get_mesh(pop->s.ob);
if (!pop->s.me) return 0;
@@ -4513,40 +4689,23 @@ static int texture_paint_init(bContext *C, wmOperator *op)
return 0;
}
}
-
+
/* note, if we have no UVs on the derived mesh, then we must return here */
if(pop->mode == PAINT_MODE_3D_PROJECT) {
- /* setup projection painting data */
- pop->ps.do_backfacecull = (settings->imapaint.flag & IMAGEPAINT_PROJECT_BACKFACE) ? 0 : 1;
- pop->ps.do_occlude = (settings->imapaint.flag & IMAGEPAINT_PROJECT_XRAY) ? 0 : 1;
- pop->ps.do_mask_normal = (settings->imapaint.flag & IMAGEPAINT_PROJECT_FLAT) ? 0 : 1;;
-
- if (pop->ps.tool == PAINT_TOOL_CLONE)
- pop->ps.do_layer_clone = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_CLONE);
-
- pop->ps.do_layer_stencil = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_STENCIL) ? 1 : 0;
- pop->ps.do_layer_stencil_inv = (settings->imapaint.flag & IMAGEPAINT_PROJECT_LAYER_STENCIL_INV) ? 1 : 0;
-
-
-#ifndef PROJ_DEBUG_NOSEAMBLEED
- pop->ps.seam_bleed_px = settings->imapaint.seam_bleed; /* pixel num to bleed */
-#endif
- if(pop->ps.do_mask_normal) {
- pop->ps.normal_angle_inner = settings->imapaint.normal_angle;
- pop->ps.normal_angle = (pop->ps.normal_angle_inner + 90.0f) * 0.5f;
- }
- else {
- pop->ps.normal_angle_inner= pop->ps.normal_angle= settings->imapaint.normal_angle;
- }
+ /* initialize all data from the context */
+ project_state_init(C, OBACT, &pop->ps);
- pop->ps.normal_angle_inner *= M_PI_2 / 90;
- pop->ps.normal_angle *= M_PI_2 / 90;
- pop->ps.normal_angle_range = pop->ps.normal_angle - pop->ps.normal_angle_inner;
-
- if(pop->ps.normal_angle_range <= 0.0f)
- pop->ps.do_mask_normal = 0; /* no need to do blending */
+ pop->ps.source= PROJ_SRC_VIEW;
+ if (pop->ps.ob==NULL || !(pop->ps.ob->lay & pop->ps.v3d->lay))
+ return 0;
+
+ /* Dont allow brush size below 2 */
+ if (brush->size <= 1)
+ brush->size = 2;
+
+ /* allocate and initialize spacial data structures */
project_paint_begin(&pop->ps);
if(pop->ps.dm==NULL)
@@ -4571,8 +4730,8 @@ static void paint_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
int mouse[2], redraw;
RNA_float_get_array(itemptr, "mouse", mousef);
- mouse[0] = mousef[0];
- mouse[1] = mousef[1];
+ mouse[0] = (int)(mousef[0]);
+ mouse[1] = (int)(mousef[1]);
time= RNA_float_get(itemptr, "time");
pressure= RNA_float_get(itemptr, "pressure");
@@ -4692,8 +4851,8 @@ static void paint_apply_event(bContext *C, wmOperator *op, wmEvent *event)
/* fill in stroke */
RNA_collection_add(op->ptr, "stroke", &itemptr);
- mousef[0] = mouse[0];
- mousef[1] = mouse[1];
+ mousef[0] = (float)(mouse[0]);
+ mousef[1] = (float)(mouse[1]);
RNA_float_set_array(&itemptr, "mouse", mousef);
RNA_float_set(&itemptr, "time", (float)(time - pop->starttime));
RNA_float_set(&itemptr, "pressure", pressure);
@@ -4735,6 +4894,7 @@ static int paint_modal(bContext *C, wmOperator *op, wmEvent *event)
paint_exit(C, op);
return OPERATOR_FINISHED;
case MOUSEMOVE:
+ case INBETWEEN_MOUSEMOVE:
paint_apply_event(C, op, event);
break;
case TIMER:
@@ -4809,7 +4969,7 @@ static void brush_drawcursor(bContext *C, int x, int y, void *customdata)
glColor4ub(255, 255, 255, 128);
glEnable( GL_LINE_SMOOTH );
glEnable(GL_BLEND);
- glutil_draw_lined_arc(0.0, M_PI*2.0, brush->size*0.5f, 40);
+ glutil_draw_lined_arc(0, (float)(M_PI*2.0), brush->size*0.5f, 40);
glDisable(GL_BLEND);
glDisable( GL_LINE_SMOOTH );
@@ -4836,7 +4996,7 @@ static int paint_radial_control_invoke(bContext *C, wmOperator *op, wmEvent *eve
ToolSettings *ts = CTX_data_scene(C)->toolsettings;
get_imapaint_zoom(C, &zoom, &zoom);
toggle_paint_cursor(C, !ts->imapaint.paintcursor);
- brush_radial_control_invoke(op, paint_brush(&ts->imapaint.paint), 0.5 * zoom);
+ brush_radial_control_invoke(op, paint_brush(&ts->imapaint.paint), 0.5f * zoom);
return WM_radial_control_invoke(C, op, event);
}
@@ -4845,7 +5005,7 @@ static int paint_radial_control_modal(bContext *C, wmOperator *op, wmEvent *even
ToolSettings *ts = CTX_data_scene(C)->toolsettings;
int ret = WM_radial_control_modal(C, op, event);
if(ret != OPERATOR_RUNNING_MODAL)
- toggle_paint_cursor(C, !ts->imapaint.paintcursor);
+ toggle_paint_cursor(C, !ts->imapaint.paintcursor);
return ret;
}
@@ -4856,7 +5016,7 @@ static int paint_radial_control_exec(bContext *C, wmOperator *op)
int ret;
char str[256];
get_imapaint_zoom(C, &zoom, &zoom);
- ret = brush_radial_control_exec(op, brush, 2.0 / zoom);
+ ret = brush_radial_control_exec(op, brush, 2.0f / zoom);
WM_radial_control_string(op, str, 256);
WM_event_add_notifier(C, NC_BRUSH|NA_EDITED, brush);
@@ -4893,9 +5053,7 @@ static void grab_clone_apply(bContext *C, wmOperator *op)
float delta[2];
RNA_float_get_array(op->ptr, "delta", delta);
- brush->clone.offset[0] += delta[0];
- brush->clone.offset[1] += delta[1];
-
+ add_v2_v2(brush->clone.offset, delta);
ED_region_tag_redraw(CTX_wm_region(C));
}
@@ -4912,8 +5070,7 @@ static int grab_clone_invoke(bContext *C, wmOperator *op, wmEvent *event)
GrabClone *cmv;
cmv= MEM_callocN(sizeof(GrabClone), "GrabClone");
- cmv->startoffset[0]= brush->clone.offset[0];
- cmv->startoffset[1]= brush->clone.offset[1];
+ copy_v2_v2(cmv->startoffset, brush->clone.offset);
cmv->startx= event->x;
cmv->starty= event->y;
op->customdata= cmv;
@@ -4946,8 +5103,7 @@ static int grab_clone_modal(bContext *C, wmOperator *op, wmEvent *event)
delta[1]= fy - startfy;
RNA_float_set_array(op->ptr, "delta", delta);
- brush->clone.offset[0]= cmv->startoffset[0];
- brush->clone.offset[1]= cmv->startoffset[1];
+ copy_v2_v2(brush->clone.offset, cmv->startoffset);
grab_clone_apply(C, op);
break;
@@ -5219,3 +5375,194 @@ int facemask_paint_poll(bContext *C)
return paint_facesel_test(CTX_data_active_object(C));
}
+/* use project paint to re-apply an image */
+static int texture_paint_camera_project_exec(bContext *C, wmOperator *op)
+{
+ Image *image= BLI_findlink(&CTX_data_main(C)->image, RNA_enum_get(op->ptr, "image"));
+ Scene *scene= CTX_data_scene(C);
+ ProjPaintState ps;
+ int orig_brush_size;
+ IDProperty *idgroup;
+ IDProperty *view_data= NULL;
+
+ memset(&ps, 0, sizeof(ps));
+
+ project_state_init(C, OBACT, &ps);
+
+ if(ps.ob==NULL || ps.ob->type != OB_MESH) {
+ BKE_report(op->reports, RPT_ERROR, "No active mesh object.");
+ return OPERATOR_CANCELLED;
+ }
+
+ if(image==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "Image could not be found.");
+ return OPERATOR_CANCELLED;
+ }
+
+ ps.reproject_image= image;
+ ps.reproject_ibuf= BKE_image_get_ibuf(image, NULL);
+
+ if(ps.reproject_ibuf==NULL || ps.reproject_ibuf->rect==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "Image data could not be found.");
+ return OPERATOR_CANCELLED;
+ }
+
+ idgroup= IDP_GetProperties(&image->id, 0);
+
+ if(idgroup) {
+ view_data= IDP_GetPropertyFromGroup(idgroup, PROJ_VIEW_DATA_ID);
+
+ /* type check to make sure its ok */
+ if(view_data->len != PROJ_VIEW_DATA_SIZE || view_data->type != IDP_ARRAY || view_data->subtype != IDP_FLOAT) {
+ BKE_report(op->reports, RPT_ERROR, "Image project data invalid.");
+ return OPERATOR_CANCELLED;
+ }
+ }
+
+ if(view_data) {
+ /* image has stored view projection info */
+ ps.source= PROJ_SRC_IMAGE_VIEW;
+ }
+ else {
+ ps.source= PROJ_SRC_IMAGE_CAM;
+
+ if(scene->camera==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "No active camera set.");
+ return OPERATOR_CANCELLED;
+ }
+ }
+
+ /* override */
+ ps.is_texbrush= 0;
+ ps.is_airbrush= 1;
+ orig_brush_size= ps.brush->size;
+ ps.brush->size= 32; /* cover the whole image */
+
+ ps.tool= PAINT_TOOL_DRAW; /* so pixels are initialized with minimal info */
+
+ scene->toolsettings->imapaint.flag |= IMAGEPAINT_DRAWING;
+
+ undo_paint_push_begin(UNDO_PAINT_IMAGE, "Image Paint",
+ image_undo_restore, image_undo_free);
+
+ /* allocate and initialize spacial data structures */
+ project_paint_begin(&ps);
+
+ if(ps.dm==NULL) {
+ ps.brush->size= orig_brush_size;
+ return OPERATOR_CANCELLED;
+ }
+ else {
+ float pos[2]= {0.0, 0.0};
+ float lastpos[2]= {0.0, 0.0};
+ int a;
+
+ for (a=0; a < ps.image_tot; a++)
+ partial_redraw_array_init(ps.projImages[a].partRedrawRect);
+
+ project_paint_op(&ps, NULL, lastpos, pos);
+
+ project_image_refresh_tagged(&ps);
+
+ for (a=0; a < ps.image_tot; a++) {
+ GPU_free_image(ps.projImages[a].ima);
+ WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ps.projImages[a].ima);
+ }
+ }
+
+ project_paint_end(&ps);
+
+ scene->toolsettings->imapaint.flag &= ~IMAGEPAINT_DRAWING;
+ ps.brush->size= orig_brush_size;
+
+ return OPERATOR_FINISHED;
+}
+
+void PAINT_OT_project_image(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+
+ /* identifiers */
+ ot->name= "Project Image";
+ ot->idname= "PAINT_OT_project_image";
+ ot->description= "Project an edited render from the active camera back onto the object";
+
+ /* api callbacks */
+ ot->invoke= WM_enum_search_invoke;
+ ot->exec= texture_paint_camera_project_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ prop= RNA_def_enum(ot->srna, "image", DummyRNA_NULL_items, 0, "Image", "");
+ RNA_def_enum_funcs(prop, RNA_image_itemf);
+ ot->prop= prop;
+}
+
+static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op)
+{
+ Image *image;
+ ImBuf *ibuf;
+ char filename[FILE_MAX];
+
+ Scene *scene= CTX_data_scene(C);
+ ToolSettings *settings= scene->toolsettings;
+ int w= settings->imapaint.screen_grab_size[0];
+ int h= settings->imapaint.screen_grab_size[1];
+ int maxsize;
+
+ RNA_string_get(op->ptr, "filepath", filename);
+
+ glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxsize);
+
+ if(w > maxsize) w= maxsize;
+ if(h > maxsize) h= maxsize;
+
+ ibuf= ED_view3d_draw_offscreen_imbuf(CTX_data_scene(C), CTX_wm_view3d(C), CTX_wm_region(C), w, h);
+ image= BKE_add_image_imbuf(ibuf);
+
+ if(image) {
+ /* now for the trickyness. store the view projection here!
+ * reprojection will reuse this */
+ View3D *v3d= CTX_wm_view3d(C);
+ RegionView3D *rv3d= CTX_wm_region_view3d(C);
+
+ IDPropertyTemplate val;
+ IDProperty *idgroup= IDP_GetProperties(&image->id, 1);
+ IDProperty *view_data;
+ int orth;
+ float *array;
+
+ val.array.len = PROJ_VIEW_DATA_SIZE;
+ val.array.type = IDP_FLOAT;
+ view_data = IDP_New(IDP_ARRAY, val, PROJ_VIEW_DATA_ID);
+
+ array= (float *)IDP_Array(view_data);
+ memcpy(array, rv3d->winmat, sizeof(rv3d->winmat)); array += sizeof(rv3d->winmat)/sizeof(float);
+ memcpy(array, rv3d->viewmat, sizeof(rv3d->viewmat)); array += sizeof(rv3d->viewmat)/sizeof(float);
+ orth= project_paint_view_clip(v3d, rv3d, &array[0], &array[1]);
+ array[2]= orth ? 1.0f : 0.0f; /* using float for a bool is dodgy but since its an extra member in the array... easier then adding a single bool prop */
+
+ IDP_AddToGroup(idgroup, view_data);
+
+ rename_id(&image->id, "image_view");
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+void PAINT_OT_image_from_view(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Image from View";
+ ot->idname= "PAINT_OT_image_from_view";
+ ot->description= "Make an image from the current 3D view for re-projection";
+
+ /* api callbacks */
+ ot->exec= texture_paint_image_from_view_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER;
+
+ RNA_def_string_file_name(ot->srna, "filepath", "", FILE_MAX, "File Path", "Name of the file");
+}
diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h
index b9b604480ec..0ae7c7fac19 100644
--- a/source/blender/editors/sculpt_paint/paint_intern.h
+++ b/source/blender/editors/sculpt_paint/paint_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -50,8 +50,8 @@ typedef void (*StrokeUpdateStep)(struct bContext *C, struct PaintStroke *stroke,
typedef void (*StrokeDone)(struct bContext *C, struct PaintStroke *stroke);
struct PaintStroke *paint_stroke_new(struct bContext *C,
- StrokeGetLocation get_location, StrokeTestStart test_start,
- StrokeUpdateStep update_step, StrokeDone done);
+ StrokeGetLocation get_location, StrokeTestStart test_start,
+ StrokeUpdateStep update_step, StrokeDone done);
void paint_stroke_free(struct PaintStroke *stroke);
int paint_stroke_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
@@ -93,6 +93,9 @@ void PAINT_OT_sample_color(struct wmOperatorType *ot);
void PAINT_OT_clone_cursor_set(struct wmOperatorType *ot);
void PAINT_OT_texture_paint_toggle(struct wmOperatorType *ot);
void PAINT_OT_texture_paint_radial_control(struct wmOperatorType *ot);
+void PAINT_OT_project_image(struct wmOperatorType *ot);
+void PAINT_OT_image_from_view(struct wmOperatorType *ot);
+
/* paint_utils.c */
int imapaint_pick_face(struct ViewContext *vc, struct Mesh *me, int *mval, unsigned int *index);
@@ -107,6 +110,13 @@ void PAINT_OT_face_select_all(struct wmOperatorType *ot);
int facemask_paint_poll(struct bContext *C);
+/* stroke operator */
+typedef enum wmBrushStrokeMode {
+ WM_BRUSHSTROKE_NORMAL,
+ WM_BRUSHSTROKE_INVERT,
+ WM_BRUSHSTROKE_SMOOTH,
+} wmBrushStrokeMode;
+
/* paint_undo.c */
typedef void (*UndoRestoreCb)(struct bContext *C, struct ListBase *lb);
typedef void (*UndoFreeCb)(struct ListBase *lb);
diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c
index b43a78eb226..5d52b0a3272 100644
--- a/source/blender/editors/sculpt_paint/paint_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_ops.c
@@ -19,7 +19,6 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include "DNA_brush_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -27,7 +26,6 @@
#include "BKE_context.h"
#include "BKE_paint.h"
-#include "ED_sculpt.h"
#include "ED_screen.h"
#include "UI_resources.h"
@@ -36,48 +34,78 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_enum_types.h"
#include "paint_intern.h"
#include "sculpt_intern.h"
#include <string.h>
+//#include <stdio.h>
/* Brush operators */
static int brush_add_exec(bContext *C, wmOperator *op)
{
/*int type = RNA_enum_get(op->ptr, "type");*/
- Brush *br = NULL;
+ Paint *paint = paint_get_active(CTX_data_scene(C));
+ Brush *br = paint_brush(paint);
- br = add_brush("Brush");
+ if (br)
+ br = copy_brush(br);
+ else
+ br = add_brush("Brush");
- if(br)
- paint_brush_set(paint_get_active(CTX_data_scene(C)), br);
+ paint_brush_set(paint_get_active(CTX_data_scene(C)), br);
return OPERATOR_FINISHED;
}
-static EnumPropertyItem brush_type_items[] = {
- {OB_MODE_SCULPT, "SCULPT", ICON_SCULPTMODE_HLT, "Sculpt", ""},
- {OB_MODE_VERTEX_PAINT, "VERTEX_PAINT", ICON_VPAINT_HLT, "Vertex Paint", ""},
- {OB_MODE_WEIGHT_PAINT, "WEIGHT_PAINT", ICON_WPAINT_HLT, "Weight Paint", ""},
- {OB_MODE_TEXTURE_PAINT, "TEXTURE_PAINT", ICON_TPAINT_HLT, "Texture Paint", ""},
- {0, NULL, 0, NULL, NULL}};
-
void BRUSH_OT_add(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Add Brush";
- ot->description= "Add brush by mode type";
+ ot->description= "Add brush by mode type";
ot->idname= "BRUSH_OT_add";
/* api callbacks */
ot->exec= brush_add_exec;
/* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag= OPTYPE_UNDO;
+}
+
+
+static int brush_scale_size_exec(bContext *C, wmOperator *op)
+{
+ /*int type = RNA_enum_get(op->ptr, "type");*/
+ Paint *paint = paint_get_active(CTX_data_scene(C));
+ Brush *br = paint_brush(paint);
+ float factor = RNA_float_get(op->ptr, "scalar");
+
+ if (br) {
+ if (U.sculpt_paint_settings & SCULPT_PAINT_USE_UNIFIED_SIZE) {
+ U.sculpt_paint_unified_size *= factor;
+ }
+ else {
+ br->size *= factor;
+ }
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+void BRUSH_OT_scale_size(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Scale Sculpt/Paint Brush Size";
+ ot->description= "Change brush size by a scalar";
+ ot->idname= "BRUSH_OT_scale_size";
+
+ /* api callbacks */
+ ot->exec= brush_scale_size_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_UNDO;
- RNA_def_enum(ot->srna, "type", brush_type_items, OB_MODE_VERTEX_PAINT, "Type", "Which paint mode to create the brush for.");
+ RNA_def_float(ot->srna, "scalar", 1, 0, 2, "Scalar", "Factor to scale brush size by", 0, 2);
}
static int vertex_color_set_exec(bContext *C, wmOperator *op)
@@ -111,8 +139,10 @@ void ED_operatortypes_paint(void)
{
/* brush */
WM_operatortype_append(BRUSH_OT_add);
+ WM_operatortype_append(BRUSH_OT_scale_size);
WM_operatortype_append(BRUSH_OT_curve_preset);
+
/* image */
WM_operatortype_append(PAINT_OT_texture_paint_toggle);
WM_operatortype_append(PAINT_OT_texture_paint_radial_control);
@@ -121,6 +151,9 @@ void ED_operatortypes_paint(void)
WM_operatortype_append(PAINT_OT_sample_color);
WM_operatortype_append(PAINT_OT_grab_clone);
WM_operatortype_append(PAINT_OT_clone_cursor_set);
+ WM_operatortype_append(PAINT_OT_project_image);
+ WM_operatortype_append(PAINT_OT_image_from_view);
+
/* weight */
WM_operatortype_append(PAINT_OT_weight_paint_toggle);
@@ -141,56 +174,53 @@ void ED_operatortypes_paint(void)
WM_operatortype_append(PAINT_OT_face_select_all);
}
+
static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *path)
{
wmKeyMapItem *kmi;
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", ONEKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 0);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", TWOKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 1);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", THREEKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 2);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", FOURKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 3);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", FIVEKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 4);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", SIXKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 5);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", SEVENKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 6);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", EIGHTKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 7);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", NINEKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 8);
kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", ZEROKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
+ RNA_string_set(kmi->ptr, "data_path", path);
RNA_int_set(kmi->ptr, "value", 9);
}
static void ed_keymap_paint_brush_size(wmKeyMap *keymap, const char *path)
{
wmKeyMapItem *kmi;
-
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", LEFTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
- RNA_int_set(kmi->ptr, "value", -20);
- RNA_boolean_set(kmi->ptr, "relative", 1);
-
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", path);
- RNA_int_set(kmi->ptr, "value", 20);
- RNA_boolean_set(kmi->ptr, "relative", 1);
-}
+
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_scale_size", LEFTBRACKETKEY, KM_PRESS, 0, 0);
+ RNA_float_set(kmi->ptr, "scalar", 0.9);
+
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_scale_size", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
+ RNA_float_set(kmi->ptr, "scalar", 10.0/9.0); // 1.1111....
+}
void ED_keymap_paint(wmKeyConfig *keyconf)
{
@@ -202,12 +232,15 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
keymap= WM_keymap_find(keyconf, "Sculpt", 0, 0);
keymap->poll= sculpt_poll;
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_radial_control", FKEY, KM_PRESS, 0, 0)->ptr, "mode", WM_RADIALCONTROL_SIZE);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_radial_control", FKEY, KM_PRESS, 0, 0)->ptr, "mode", WM_RADIALCONTROL_SIZE);
RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_radial_control", FKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", WM_RADIALCONTROL_ANGLE);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_radial_control", FKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", WM_RADIALCONTROL_ANGLE);
- WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", WM_BRUSHSTROKE_NORMAL);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", WM_BRUSHSTROKE_INVERT);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_BRUSHSTROKE_SMOOTH);
+
+ //stroke_mode_modal_keymap(keyconf);
for(i=0; i<=5; i++)
RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i);
@@ -223,44 +256,44 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index");
ed_keymap_paint_brush_size(keymap, "tool_settings.sculpt.brush.size");
-
+
+ /* */
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", AKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_anchor");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.use_anchor");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_smooth_stroke");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.use_smooth_stroke");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", RKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_rake");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.use_rake");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", AKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.brush.use_airbrush");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.use_airbrush");
/* brush switching */
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", DKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.active_brush_name");
RNA_string_set(kmi->ptr, "value", "Draw");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", SKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.active_brush_name");
RNA_string_set(kmi->ptr, "value", "Smooth");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.active_brush_name");
RNA_string_set(kmi->ptr, "value", "Pinch");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", GKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.active_brush_name");
RNA_string_set(kmi->ptr, "value", "Grab");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", LKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.active_brush_name");
RNA_string_set(kmi->ptr, "value", "Layer");
-
+
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", TKEY, KM_PRESS, KM_SHIFT, 0); // was just T in 2.4x
- RNA_string_set(kmi->ptr, "path", "tool_settings.sculpt.active_brush_name");
+ RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.active_brush_name");
RNA_string_set(kmi->ptr, "value", "Flatten");
-
/* Vertex Paint mode */
keymap= WM_keymap_find(keyconf, "Vertex Paint", 0, 0);
@@ -278,7 +311,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
ed_keymap_paint_brush_size(keymap, "tool_settings.vertex_paint.brush.size");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
- RNA_string_set(kmi->ptr, "path", "vertex_paint_object.data.use_paint_mask");
+ RNA_string_set(kmi->ptr, "data_path", "vertex_paint_object.data.use_paint_mask");
/* Weight Paint mode */
keymap= WM_keymap_find(keyconf, "Weight Paint", 0, 0);
@@ -296,7 +329,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
ed_keymap_paint_brush_size(keymap, "tool_settings.weight_paint.brush.size");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
- RNA_string_set(kmi->ptr, "path", "weight_paint_object.data.use_paint_mask");
+ RNA_string_set(kmi->ptr, "data_path", "weight_paint_object.data.use_paint_mask");
WM_keymap_verify_item(keymap, "PAINT_OT_weight_from_bones", WKEY, KM_PRESS, 0, 0);
@@ -316,7 +349,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
ed_keymap_paint_brush_size(keymap, "tool_settings.image_paint.brush.size");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
- RNA_string_set(kmi->ptr, "path", "texture_paint_object.data.use_paint_mask");
+ RNA_string_set(kmi->ptr, "data_path", "texture_paint_object.data.use_paint_mask");
/* face-mask mode */
keymap= WM_keymap_find(keyconf, "Face Mask", 0, 0);
diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c
index 2adda475866..7b8d7c4b7ef 100644
--- a/source/blender/editors/sculpt_paint/paint_stroke.c
+++ b/source/blender/editors/sculpt_paint/paint_stroke.c
@@ -20,7 +20,7 @@
*
* The Original Code is: all of this file.
*
- * Contributor(s): none yet.
+ * Contributor(s): Jason Wilkins, Tom Musgrove.
*
* ***** END GPL LICENSE BLOCK *****
*
@@ -28,22 +28,20 @@
#include "MEM_guardedalloc.h"
-#include "DNA_brush_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "RNA_access.h"
#include "BKE_context.h"
#include "BKE_paint.h"
+#include "BKE_brush.h"
#include "WM_api.h"
#include "WM_types.h"
#include "BLI_math.h"
-#include "PIL_time.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -52,6 +50,9 @@
#include "ED_view3d.h"
#include "paint_intern.h"
+#include "sculpt_intern.h" // XXX, for expedience in getting this working, refactor later (or this just shows that this needs unification)
+
+#include "BKE_image.h"
#include <float.h>
#include <math.h>
@@ -99,54 +100,748 @@ static void paint_draw_smooth_stroke(bContext *C, int x, int y, void *customdata
glDisable(GL_LINE_SMOOTH);
}
-static void paint_draw_cursor(bContext *C, int x, int y, void *customdata)
+#if 0
+
+// grid texture for testing
+
+#define GRID_WIDTH 8
+#define GRID_LENGTH 8
+
+#define W (0xFFFFFFFF)
+#define G (0x00888888)
+#define E (0xE1E1E1E1)
+#define C (0xC3C3C3C3)
+#define O (0xB4B4B4B4)
+#define Q (0xA9A9A9A9)
+
+static unsigned grid_texture0[256] =
+{
+ W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
+ W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,
+};
+
+static unsigned grid_texture1[64] =
{
- Paint *paint = paint_get_active(CTX_data_scene(C));
- Brush *brush = paint_brush(paint);
+ C,C,C,C,C,C,C,C,
+ C,G,G,G,G,G,G,C,
+ C,G,G,G,G,G,G,C,
+ C,G,G,G,G,G,G,C,
+ C,G,G,G,G,G,G,C,
+ C,G,G,G,G,G,G,C,
+ C,G,G,G,G,G,G,C,
+ C,C,C,C,C,C,C,C,
+};
+
+static unsigned grid_texture2[16] =
+{
+ O,O,O,O,
+ O,G,G,O,
+ O,G,G,O,
+ O,O,O,O,
+};
- if(!(paint->flags & PAINT_SHOW_BRUSH))
- return;
+static unsigned grid_texture3[4] =
+{
+ Q,Q,
+ Q,Q,
+};
- glColor4ubv(paint_get_active(CTX_data_scene(C))->paint_cursor_col);
- glEnable(GL_LINE_SMOOTH);
- glEnable(GL_BLEND);
+static unsigned grid_texture4[1] =
+{
+ Q,
+};
- glTranslatef((float)x, (float)y, 0.0f);
- glutil_draw_lined_arc(0.0, M_PI*2.0, brush->size, 40);
- glTranslatef((float)-x, (float)-y, 0.0f);
+#undef W
+#undef G
+#undef E
+#undef C
+#undef O
+#undef Q
- glDisable(GL_BLEND);
- glDisable(GL_LINE_SMOOTH);
+static void load_grid()
+{
+ static GLuint overlay_texture;
+
+ if (!overlay_texture) {
+ //GLfloat largest_supported_anisotropy;
+
+ glGenTextures(1, &overlay_texture);
+ glBindTexture(GL_TEXTURE_2D, overlay_texture);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture0);
+ glTexImage2D(GL_TEXTURE_2D, 1, GL_RGB, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture1);
+ glTexImage2D(GL_TEXTURE_2D, 2, GL_RGB, 4, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture2);
+ glTexImage2D(GL_TEXTURE_2D, 3, GL_RGB, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture3);
+ glTexImage2D(GL_TEXTURE_2D, 4, GL_RGB, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture4);
+ glEnable(GL_TEXTURE_2D);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+
+ //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
+ //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+
+ //glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &largest_supported_anisotropy);
+ //glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, largest_supported_anisotropy);
+ }
+}
+
+#endif
+
+extern float get_tex_pixel(Brush* br, float u, float v);
+
+typedef struct Snapshot {
+ float size[3];
+ float ofs[3];
+ float rot;
+ int brush_size;
+ int winx;
+ int winy;
+ int brush_map_mode;
+ int curve_changed_timestamp;
+} Snapshot;
+
+static int same_snap(Snapshot* snap, Brush* brush, ViewContext* vc)
+{
+ MTex* mtex = &brush->mtex;
+
+ return
+ (mtex->tex &&
+ mtex->ofs[0] == snap->ofs[0] &&
+ mtex->ofs[1] == snap->ofs[1] &&
+ mtex->ofs[2] == snap->ofs[2] &&
+ mtex->size[0] == snap->size[0] &&
+ mtex->size[1] == snap->size[1] &&
+ mtex->size[2] == snap->size[2] &&
+ mtex->rot == snap->rot) &&
+ ((mtex->brush_map_mode == MTEX_MAP_MODE_FIXED && sculpt_get_brush_size(brush) <= snap->brush_size) || (sculpt_get_brush_size(brush) == snap->brush_size)) && // make brush smaller shouldn't cause a resample
+ mtex->brush_map_mode == snap->brush_map_mode &&
+ vc->ar->winx == snap->winx &&
+ vc->ar->winy == snap->winy;
+}
+
+static void make_snap(Snapshot* snap, Brush* brush, ViewContext* vc)
+{
+ if (brush->mtex.tex) {
+ snap->brush_map_mode = brush->mtex.brush_map_mode;
+ copy_v3_v3(snap->ofs, brush->mtex.ofs);
+ copy_v3_v3(snap->size, brush->mtex.size);
+ snap->rot = brush->mtex.rot;
+ }
+ else {
+ snap->brush_map_mode = -1;
+ snap->ofs[0]= snap->ofs[1]= snap->ofs[2]= -1;
+ snap->size[0]= snap->size[1]= snap->size[2]= -1;
+ snap->rot = -1;
+ }
+
+ snap->brush_size = sculpt_get_brush_size(brush);
+ snap->winx = vc->ar->winx;
+ snap->winy = vc->ar->winy;
+}
+
+int load_tex(Sculpt *sd, Brush* br, ViewContext* vc)
+{
+ static GLuint overlay_texture = 0;
+ static int init = 0;
+ static int tex_changed_timestamp = -1;
+ static int curve_changed_timestamp = -1;
+ static Snapshot snap;
+ static int old_size = -1;
+
+ GLubyte* buffer = 0;
+
+ int size;
+ int j;
+ int refresh;
+
+ if (br->mtex.brush_map_mode == MTEX_MAP_MODE_TILED && !br->mtex.tex) return 0;
+
+ refresh =
+ !overlay_texture ||
+ (br->mtex.tex &&
+ (!br->mtex.tex->preview ||
+ br->mtex.tex->preview->changed_timestamp[0] != tex_changed_timestamp)) ||
+ !br->curve ||
+ br->curve->changed_timestamp != curve_changed_timestamp ||
+ !same_snap(&snap, br, vc);
+
+ if (refresh) {
+ if (br->mtex.tex && br->mtex.tex->preview)
+ tex_changed_timestamp = br->mtex.tex->preview->changed_timestamp[0];
+
+ if (br->curve)
+ curve_changed_timestamp = br->curve->changed_timestamp;
+
+ make_snap(&snap, br, vc);
+
+ if (br->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) {
+ int s = sculpt_get_brush_size(br);
+ int r = 1;
+
+ for (s >>= 1; s > 0; s >>= 1)
+ r++;
+
+ size = (1<<r);
+
+ if (size < 256)
+ size = 256;
+
+ if (size < old_size)
+ size = old_size;
+ }
+ else
+ size = 512;
+
+ if (old_size != size) {
+ if (overlay_texture) {
+ glDeleteTextures(1, &overlay_texture);
+ overlay_texture = 0;
+ }
+
+ init = 0;
+
+ old_size = size;
+ }
+
+ buffer = MEM_mallocN(sizeof(GLubyte)*size*size, "load_tex");
+
+ #pragma omp parallel for schedule(static) if (sd->flags & SCULPT_USE_OPENMP)
+ for (j= 0; j < size; j++) {
+ int i;
+ float y;
+ float len;
+
+ for (i= 0; i < size; i++) {
+
+ // largely duplicated from tex_strength
+
+ const float rotation = -br->mtex.rot;
+ float diameter = sculpt_get_brush_size(br);
+ int index = j*size + i;
+ float x;
+ float avg;
+
+ x = (float)i/size;
+ y = (float)j/size;
+
+ x -= 0.5f;
+ y -= 0.5f;
+
+ if (br->mtex.brush_map_mode == MTEX_MAP_MODE_TILED) {
+ x *= vc->ar->winx / diameter;
+ y *= vc->ar->winy / diameter;
+ }
+ else {
+ x *= 2;
+ y *= 2;
+ }
+
+ len = sqrtf(x*x + y*y);
+
+ if ((br->mtex.brush_map_mode == MTEX_MAP_MODE_TILED) || len <= 1) {
+ /* it is probably worth optimizing for those cases where
+ the texture is not rotated by skipping the calls to
+ atan2, sqrtf, sin, and cos. */
+ if (br->mtex.tex && (rotation > 0.001 || rotation < -0.001)) {
+ const float angle = atan2(y, x) + rotation;
+
+ x = len * cos(angle);
+ y = len * sin(angle);
+ }
+
+ x *= br->mtex.size[0];
+ y *= br->mtex.size[1];
+
+ x += br->mtex.ofs[0];
+ y += br->mtex.ofs[1];
+
+ avg = br->mtex.tex ? get_tex_pixel(br, x, y) : 1;
+
+ avg += br->texture_sample_bias;
+
+ if (br->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED)
+ avg *= brush_curve_strength(br, len, 1); /* Falloff curve */
+
+ buffer[index] = (GLubyte)(255*avg);
+ }
+ else {
+ buffer[index] = 0;
+ }
+ }
+ }
+
+ if (!overlay_texture)
+ glGenTextures(1, &overlay_texture);
+ }
+ else {
+ size= old_size;
+ }
+
+ glBindTexture(GL_TEXTURE_2D, overlay_texture);
+
+ if (refresh) {
+ if (!init) {
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, size, size, 0, GL_ALPHA, GL_UNSIGNED_BYTE, buffer);
+ init = 1;
+ }
+ else {
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, size, size, GL_ALPHA, GL_UNSIGNED_BYTE, buffer);
+ }
+
+ if (buffer)
+ MEM_freeN(buffer);
+ }
+
+ glEnable(GL_TEXTURE_2D);
+
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+ if (br->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) {
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+ }
+
+ return 1;
+}
+
+/* Convert a point in model coordinates to 2D screen coordinates. */
+// XXX duplicated from sculpt.c, deal with this later.
+static void projectf(bglMats *mats, const float v[3], float p[2])
+{
+ double ux, uy, uz;
+
+ gluProject(v[0],v[1],v[2], mats->modelview, mats->projection,
+ (GLint *)mats->viewport, &ux, &uy, &uz);
+ p[0]= ux;
+ p[1]= uy;
+}
+
+static int project_brush_radius(RegionView3D* rv3d, float radius, float location[3], bglMats* mats)
+{
+ float view[3], nonortho[3], ortho[3], offset[3], p1[2], p2[2];
+
+ viewvector(rv3d, location, view);
+
+ // create a vector that is not orthogonal to view
+
+ if (fabsf(view[0]) < 0.1) {
+ nonortho[0] = view[0] + 1;
+ nonortho[1] = view[1];
+ nonortho[2] = view[2];
+ }
+ else if (fabsf(view[1]) < 0.1) {
+ nonortho[0] = view[0];
+ nonortho[1] = view[1] + 1;
+ nonortho[2] = view[2];
+ }
+ else {
+ nonortho[0] = view[0];
+ nonortho[1] = view[1];
+ nonortho[2] = view[2] + 1;
+ }
+
+ // get a vector in the plane of the view
+ cross_v3_v3v3(ortho, nonortho, view);
+ normalize_v3(ortho);
+
+ // make a point on the surface of the brush tagent to the view
+ mul_v3_fl(ortho, radius);
+ add_v3_v3v3(offset, location, ortho);
+
+ // project the center of the brush, and the tagent point to the view onto the screen
+ projectf(mats, location, p1);
+ projectf(mats, offset, p2);
+
+ // the distance between these points is the size of the projected brush in pixels
+ return len_v2v2(p1, p2);
+}
+
+int sculpt_get_brush_geometry(bContext* C, int x, int y, int* pixel_radius, float location[3], float modelview[16], float projection[16], int viewport[4])
+{
+ struct PaintStroke *stroke;
+ float window[2];
+ int hit;
+
+ stroke = paint_stroke_new(C, NULL, NULL, NULL, NULL);
+
+ window[0] = x + stroke->vc.ar->winrct.xmin;
+ window[1] = y + stroke->vc.ar->winrct.ymin;
+
+ memcpy(modelview, stroke->vc.rv3d->viewmat, sizeof(float[16]));
+ memcpy(projection, stroke->vc.rv3d->winmat, sizeof(float[16]));
+ memcpy(viewport, stroke->mats.viewport, sizeof(int[4]));
+
+ if (stroke->vc.obact->sculpt && stroke->vc.obact->sculpt->pbvh && sculpt_stroke_get_location(C, stroke, location, window)) {
+ *pixel_radius = project_brush_radius(stroke->vc.rv3d, sculpt_get_brush_unprojected_radius(stroke->brush), location, &stroke->mats);
+
+ if (*pixel_radius == 0)
+ *pixel_radius = sculpt_get_brush_size(stroke->brush);
+
+ mul_m4_v3(stroke->vc.obact->sculpt->ob->obmat, location);
+
+ hit = 1;
+ }
+ else {
+ Sculpt* sd = CTX_data_tool_settings(C)->sculpt;
+ Brush* brush = paint_brush(&sd->paint);
+
+ *pixel_radius = sculpt_get_brush_size(brush);
+ hit = 0;
+ }
+
+ paint_stroke_free(stroke);
+
+ return hit;
+}
+
+// XXX duplicated from sculpt.c
+float unproject_brush_radius(Object *ob, ViewContext *vc, float center[3], float offset)
+{
+ float delta[3], scale, loc[3];
+
+ mul_v3_m4v3(loc, ob->obmat, center);
+
+ initgrabz(vc->rv3d, loc[0], loc[1], loc[2]);
+ window_to_3d_delta(vc->ar, delta, offset, 0);
+
+ scale= fabsf(mat4_to_scale(ob->obmat));
+ scale= (scale == 0.0f)? 1.0f: scale;
+
+ return len_v3(delta)/scale;
+}
+
+// XXX paint cursor now does a lot of the same work that is needed during a sculpt stroke
+// problem: all this stuff was not intended to be used at this point, so things feel a
+// bit hacked. I've put lots of stuff in Brush that probably better goes in Paint
+// Functions should be refactored so that they can be used between sculpt.c and
+// paint_stroke.c clearly and optimally and the lines of communication between the
+// two modules should be more clearly defined.
+static void paint_draw_cursor(bContext *C, int x, int y, void *unused)
+{
+ ViewContext vc;
+
+ (void)unused;
+
+ view3d_set_viewcontext(C, &vc);
+
+ if (vc.obact->sculpt) {
+ Paint *paint = paint_get_active(CTX_data_scene(C));
+ Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
+ Brush *brush = paint_brush(paint);
+
+ int pixel_radius, viewport[4];
+ float location[3], modelview[16], projection[16];
+
+ int hit;
+
+ int flip;
+ int sign;
+
+ float* col;
+ float alpha;
+
+ float visual_strength = sculpt_get_brush_alpha(brush)*sculpt_get_brush_alpha(brush);
+
+ const float min_alpha = 0.20f;
+ const float max_alpha = 0.80f;
+
+ {
+ const float u = 0.5f;
+ const float v = 1 - u;
+ const float r = 20;
+
+ const float dx = sd->last_x - x;
+ const float dy = sd->last_y - y;
+
+ if (dx*dx + dy*dy >= r*r) {
+ sd->last_angle = atan2(dx, dy);
+
+ sd->last_x = u*sd->last_x + v*x;
+ sd->last_y = u*sd->last_y + v*y;
+ }
+ }
+
+ if(!sculpt_get_lock_brush_size(brush) && !(paint->flags & PAINT_SHOW_BRUSH))
+ return;
+
+ hit = sculpt_get_brush_geometry(C, x, y, &pixel_radius, location, modelview, projection, viewport);
+
+ if (sculpt_get_lock_brush_size(brush))
+ sculpt_set_brush_size(brush, pixel_radius);
+
+ // XXX: no way currently to know state of pen flip or invert key modifier without starting a stroke
+ flip = 1;
+
+ sign = flip * ((brush->flag & BRUSH_DIR_IN)? -1 : 1);
+
+ if (sign < 0 && ELEM4(brush->sculpt_tool, SCULPT_TOOL_DRAW, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, SCULPT_TOOL_PINCH))
+ col = brush->sub_col;
+ else
+ col = brush->add_col;
+
+ alpha = (paint->flags & PAINT_SHOW_BRUSH_ON_SURFACE) ? min_alpha + (visual_strength*(max_alpha-min_alpha)) : 0.50f;
+
+ if (ELEM(brush->mtex.brush_map_mode, MTEX_MAP_MODE_FIXED, MTEX_MAP_MODE_TILED) && brush->flag & BRUSH_TEXTURE_OVERLAY) {
+ glPushAttrib(
+ GL_COLOR_BUFFER_BIT|
+ GL_CURRENT_BIT|
+ GL_DEPTH_BUFFER_BIT|
+ GL_ENABLE_BIT|
+ GL_LINE_BIT|
+ GL_POLYGON_BIT|
+ GL_STENCIL_BUFFER_BIT|
+ GL_TRANSFORM_BIT|
+ GL_VIEWPORT_BIT|
+ GL_TEXTURE_BIT);
+
+ if (load_tex(sd, brush, &vc)) {
+ glEnable(GL_BLEND);
+
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glDepthMask(GL_FALSE);
+ glDepthFunc(GL_ALWAYS);
+
+ glMatrixMode(GL_TEXTURE);
+ glPushMatrix();
+ glLoadIdentity();
+
+ if (brush->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) {
+ glTranslatef(0.5f, 0.5f, 0);
+
+ if (brush->flag & BRUSH_RAKE) {
+ glRotatef(sd->last_angle*(float)(180.0/M_PI), 0, 0, 1);
+ }
+ else {
+ glRotatef(sd->special_rotation*(float)(180.0/M_PI), 0, 0, 1);
+ }
+
+ glTranslatef(-0.5f, -0.5f, 0);
+
+ if (sd->draw_pressure && (brush->flag & BRUSH_SIZE_PRESSURE)) {
+ glTranslatef(0.5f, 0.5f, 0);
+ glScalef(1.0f/sd->pressure_value, 1.0f/sd->pressure_value, 1);
+ glTranslatef(-0.5f, -0.5f, 0);
+ }
+ }
+
+ glColor4f(
+ U.sculpt_paint_overlay_col[0],
+ U.sculpt_paint_overlay_col[1],
+ U.sculpt_paint_overlay_col[2],
+ brush->texture_overlay_alpha / 100.0f);
+
+ glBegin(GL_QUADS);
+ if (brush->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) {
+ if (sd->draw_anchored) {
+ glTexCoord2f(0, 0);
+ glVertex2f(sd->anchored_initial_mouse[0]-sd->anchored_size - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1]-sd->anchored_size - vc.ar->winrct.ymin);
+
+ glTexCoord2f(1, 0);
+ glVertex2f(sd->anchored_initial_mouse[0]+sd->anchored_size - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1]-sd->anchored_size - vc.ar->winrct.ymin);
+
+ glTexCoord2f(1, 1);
+ glVertex2f(sd->anchored_initial_mouse[0]+sd->anchored_size - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1]+sd->anchored_size - vc.ar->winrct.ymin);
+
+ glTexCoord2f(0, 1);
+ glVertex2f(sd->anchored_initial_mouse[0]-sd->anchored_size - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1]+sd->anchored_size - vc.ar->winrct.ymin);
+ }
+ else {
+ glTexCoord2f(0, 0);
+ glVertex2f((float)x-sculpt_get_brush_size(brush), (float)y-sculpt_get_brush_size(brush));
+
+ glTexCoord2f(1, 0);
+ glVertex2f((float)x+sculpt_get_brush_size(brush), (float)y-sculpt_get_brush_size(brush));
+
+ glTexCoord2f(1, 1);
+ glVertex2f((float)x+sculpt_get_brush_size(brush), (float)y+sculpt_get_brush_size(brush));
+
+ glTexCoord2f(0, 1);
+ glVertex2f((float)x-sculpt_get_brush_size(brush), (float)y+sculpt_get_brush_size(brush));
+ }
+ }
+ else {
+ glTexCoord2f(0, 0);
+ glVertex2f(0, 0);
+
+ glTexCoord2f(1, 0);
+ glVertex2f(viewport[2], 0);
+
+ glTexCoord2f(1, 1);
+ glVertex2f(viewport[2], viewport[3]);
+
+ glTexCoord2f(0, 1);
+ glVertex2f(0, viewport[3]);
+ }
+ glEnd();
+
+ glPopMatrix();
+ }
+
+ glPopAttrib();
+ }
+
+ if (hit) {
+ float unprojected_radius;
+
+ // XXX duplicated from brush_strength & paint_stroke_add_step, refactor later
+ //wmEvent* event = CTX_wm_window(C)->eventstate;
+
+ if (sd->draw_pressure && (brush->flag & BRUSH_ALPHA_PRESSURE))
+ visual_strength *= sd->pressure_value;
+
+ // don't show effect of strength past the soft limit
+ if (visual_strength > 1) visual_strength = 1;
+
+ if (sd->draw_anchored) {
+ unprojected_radius = unproject_brush_radius(CTX_data_active_object(C), &vc, location, sd->anchored_size);
+ }
+ else {
+ if (brush->flag & BRUSH_ANCHORED)
+ unprojected_radius = unproject_brush_radius(CTX_data_active_object(C), &vc, location, 8);
+ else
+ unprojected_radius = unproject_brush_radius(CTX_data_active_object(C), &vc, location, sculpt_get_brush_size(brush));
+ }
+
+ if (sd->draw_pressure && (brush->flag & BRUSH_SIZE_PRESSURE))
+ unprojected_radius *= sd->pressure_value;
+
+ if (!sculpt_get_lock_brush_size(brush))
+ sculpt_set_brush_unprojected_radius(brush, unprojected_radius);
+
+ if(!(paint->flags & PAINT_SHOW_BRUSH))
+ return;
+
+ }
+
+ glPushAttrib(
+ GL_COLOR_BUFFER_BIT|
+ GL_CURRENT_BIT|
+ GL_DEPTH_BUFFER_BIT|
+ GL_ENABLE_BIT|
+ GL_LINE_BIT|
+ GL_POLYGON_BIT|
+ GL_STENCIL_BUFFER_BIT|
+ GL_TRANSFORM_BIT|
+ GL_VIEWPORT_BIT|
+ GL_TEXTURE_BIT);
+
+ glColor4f(col[0], col[1], col[2], alpha);
+
+ glEnable(GL_BLEND);
+
+ glEnable(GL_LINE_SMOOTH);
+
+ if (sd->draw_anchored) {
+ glTranslatef(sd->anchored_initial_mouse[0] - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1] - vc.ar->winrct.ymin, 0.0f);
+ glutil_draw_lined_arc(0.0, M_PI*2.0, sd->anchored_size, 40);
+ glTranslatef(-sd->anchored_initial_mouse[0] + vc.ar->winrct.xmin, -sd->anchored_initial_mouse[1] + vc.ar->winrct.xmin, 0.0f);
+ }
+ else {
+ glTranslatef((float)x, (float)y, 0.0f);
+ glutil_draw_lined_arc(0.0, M_PI*2.0, sculpt_get_brush_size(brush), 40);
+ glTranslatef(-(float)x, -(float)y, 0.0f);
+ }
+
+ glPopAttrib();
+ }
+ else {
+ Paint *paint = paint_get_active(CTX_data_scene(C));
+ Brush *brush = paint_brush(paint);
+
+ if(!(paint->flags & PAINT_SHOW_BRUSH))
+ return;
+
+ glColor4ubv(paint_get_active(CTX_data_scene(C))->paint_cursor_col);
+ glEnable(GL_LINE_SMOOTH);
+ glEnable(GL_BLEND);
+
+ glTranslatef((float)x, (float)y, 0.0f);
+ glutil_draw_lined_arc(0.0, M_PI*2.0, brush->size, 40); // XXX: for now use the brushes size instead of potentially using the unified size because the feature has been enabled for sculpt
+ glTranslatef((float)-x, (float)-y, 0.0f);
+
+ glDisable(GL_BLEND);
+ glDisable(GL_LINE_SMOOTH);
+ }
}
/* Put the location of the next stroke dot into the stroke RNA and apply it to the mesh */
-static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *event, float mouse[2])
+static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *event, float mouse_in[2])
{
+ Paint *paint = paint_get_active(CTX_data_scene(C)); // XXX
+ Brush *brush = paint_brush(paint); // XXX
+
+ float mouse[2];
+
PointerRNA itemptr;
- float pressure = 1;
- float center[3] = {0, 0, 0};
- int flip= event->shift?1:0;
+
+ float location[3];
+
+ float pressure;
+ int pen_flip;
+
+ ViewContext vc; // XXX
+
PaintStroke *stroke = op->customdata;
- /* XXX: can remove the if statement once all modes have this */
- if(stroke->get_location)
- stroke->get_location(C, stroke, center, mouse);
+ view3d_set_viewcontext(C, &vc); // XXX
/* Tablet */
if(event->custom == EVT_DATA_TABLET) {
wmTabletData *wmtab= event->customdata;
- if(wmtab->Active != EVT_TABLET_NONE)
- pressure= wmtab->Pressure;
- if(wmtab->Active == EVT_TABLET_ERASER)
- flip = 1;
+
+ pressure = (wmtab->Active != EVT_TABLET_NONE) ? wmtab->Pressure : 1;
+ pen_flip = (wmtab->Active == EVT_TABLET_ERASER);
+ }
+ else {
+ pressure = 1;
+ pen_flip = 0;
}
-
+
+ // XXX: temporary check for sculpt mode until things are more unified
+ if (vc.obact->sculpt) {
+ float delta[3];
+
+ brush_jitter_pos(brush, mouse_in, mouse);
+
+ // XXX: meh, this is round about because brush_jitter_pos isn't written in the best way to be reused here
+ if (brush->flag & BRUSH_JITTER_PRESSURE) {
+ sub_v3_v3v3(delta, mouse, mouse_in);
+ mul_v3_fl(delta, pressure);
+ add_v3_v3v3(mouse, mouse_in, delta);
+ }
+ }
+ else
+ copy_v3_v3(mouse, mouse_in);
+
+ /* XXX: can remove the if statement once all modes have this */
+ if(stroke->get_location)
+ stroke->get_location(C, stroke, location, mouse);
+ else
+ zero_v3(location);
+
/* Add to stroke */
RNA_collection_add(op->ptr, "stroke", &itemptr);
- RNA_float_set_array(&itemptr, "location", center);
- RNA_float_set_array(&itemptr, "mouse", mouse);
- RNA_boolean_set(&itemptr, "flip", flip);
- RNA_float_set(&itemptr, "pressure", pressure);
+
+ RNA_float_set_array(&itemptr, "location", location);
+ RNA_float_set_array(&itemptr, "mouse", mouse);
+ RNA_boolean_set (&itemptr, "pen_flip", pen_flip);
+ RNA_float_set (&itemptr, "pressure", pressure);
stroke->last_mouse_position[0] = mouse[0];
stroke->last_mouse_position[1] = mouse[1];
@@ -157,10 +852,14 @@ static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *ev
/* Returns zero if no sculpt changes should be made, non-zero otherwise */
static int paint_smooth_stroke(PaintStroke *stroke, float output[2], wmEvent *event)
{
- output[0] = event->x;
+ output[0] = event->x;
output[1] = event->y;
- if(stroke->brush->flag & BRUSH_SMOOTH_STROKE && stroke->brush->sculpt_tool != SCULPT_TOOL_GRAB) {
+ if ((stroke->brush->flag & BRUSH_SMOOTH_STROKE) &&
+ !ELEM4(stroke->brush->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_THUMB, SCULPT_TOOL_ROTATE, SCULPT_TOOL_SNAKE_HOOK) &&
+ !(stroke->brush->flag & BRUSH_ANCHORED) &&
+ !(stroke->brush->flag & BRUSH_RESTORE_MESH))
+ {
float u = stroke->brush->smooth_stroke_factor, v = 1.0 - u;
float dx = stroke->last_mouse_position[0] - event->x, dy = stroke->last_mouse_position[1] - event->y;
@@ -179,7 +878,9 @@ static int paint_smooth_stroke(PaintStroke *stroke, float output[2], wmEvent *ev
/* Returns zero if the stroke dots should not be spaced, non-zero otherwise */
static int paint_space_stroke_enabled(Brush *br)
{
- return (br->flag & BRUSH_SPACE) && !(br->flag & BRUSH_ANCHORED) && (br->sculpt_tool != SCULPT_TOOL_GRAB);
+ return (br->flag & BRUSH_SPACE) &&
+ !(br->flag & BRUSH_ANCHORED) &&
+ !ELEM4(br->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_THUMB, SCULPT_TOOL_ROTATE, SCULPT_TOOL_SNAKE_HOOK);
}
/* For brushes with stroke spacing enabled, moves mouse in steps
@@ -190,23 +891,34 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const
int cnt = 0;
if(paint_space_stroke_enabled(stroke->brush)) {
- float mouse[2] = {stroke->last_mouse_position[0], stroke->last_mouse_position[1]};
- float vec[2] = {final_mouse[0] - mouse[0], final_mouse[1] - mouse[1]};
+ float mouse[2];
+ float vec[2];
float length, scale;
- int steps = 0, i;
- /* Normalize the vector between the last stroke dot and the goal */
- length = sqrt(vec[0]*vec[0] + vec[1]*vec[1]);
+ copy_v2_v2(mouse, stroke->last_mouse_position);
+ sub_v2_v2v2(vec, final_mouse, mouse);
+
+ length = len_v2(vec);
if(length > FLT_EPSILON) {
- scale = stroke->brush->spacing / length;
- vec[0] *= scale;
- vec[1] *= scale;
+ int steps;
+ int i;
+ float pressure = 1;
+
+ // XXX duplicate code
+ if(event->custom == EVT_DATA_TABLET) {
+ wmTabletData *wmtab= event->customdata;
+ if(wmtab->Active != EVT_TABLET_NONE)
+ pressure = stroke->brush->flag & BRUSH_SIZE_PRESSURE ? wmtab->Pressure : 1;
+ }
+
+ scale = (sculpt_get_brush_size(stroke->brush)*pressure*stroke->brush->spacing/50.0f) / length;
+ mul_v2_fl(vec, scale);
+
+ steps = (int)(1.0f / scale);
- steps = (int)(length / stroke->brush->spacing);
for(i = 0; i < steps; ++i, ++cnt) {
- mouse[0] += vec[0];
- mouse[1] += vec[1];
+ add_v2_v2(mouse, vec);
paint_brush_stroke_add_step(C, op, event, mouse);
}
}
@@ -218,10 +930,10 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const
/**** Public API ****/
PaintStroke *paint_stroke_new(bContext *C,
- StrokeGetLocation get_location,
- StrokeTestStart test_start,
- StrokeUpdateStep update_step,
- StrokeDone done)
+ StrokeGetLocation get_location,
+ StrokeTestStart test_start,
+ StrokeUpdateStep update_step,
+ StrokeDone done)
{
PaintStroke *stroke = MEM_callocN(sizeof(PaintStroke), "PaintStroke");
@@ -278,21 +990,33 @@ int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event)
MEM_freeN(stroke);
return OPERATOR_FINISHED;
}
- else if(first || event->type == MOUSEMOVE || (event->type == TIMER && (event->customdata == stroke->timer))) {
+ else if(first || ELEM(event->type, MOUSEMOVE, INBETWEEN_MOUSEMOVE) || (event->type == TIMER && (event->customdata == stroke->timer))) {
if(stroke->stroke_started) {
if(paint_smooth_stroke(stroke, mouse, event)) {
if(paint_space_stroke_enabled(stroke->brush)) {
- if(!paint_space_stroke(C, op, event, mouse))
- ;//ED_region_tag_redraw(ar);
+ if(!paint_space_stroke(C, op, event, mouse)) {
+ //ED_region_tag_redraw(ar);
+ }
}
- else
+ else {
paint_brush_stroke_add_step(C, op, event, mouse);
+ }
}
else
;//ED_region_tag_redraw(ar);
}
}
+ /* we want the stroke to have the first daub at the start location instead of waiting till we have moved the space distance */
+ if(first &&
+ stroke->stroke_started &&
+ paint_space_stroke_enabled(stroke->brush) &&
+ !(stroke->brush->flag & BRUSH_ANCHORED) &&
+ !(stroke->brush->flag & BRUSH_SMOOTH_STROKE))
+ {
+ paint_brush_stroke_add_step(C, op, event, mouse);
+ }
+
return OPERATOR_RUNNING_MODAL;
}
diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c
index 43ab1a9a89e..9baa8e6f95e 100644
--- a/source/blender/editors/sculpt_paint/paint_utils.c
+++ b/source/blender/editors/sculpt_paint/paint_utils.c
@@ -7,8 +7,6 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_view3d_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -218,16 +216,20 @@ void BRUSH_OT_curve_preset(wmOperatorType *ot)
{CURVE_PRESET_SHARP, "SHARP", 0, "Sharp", ""},
{CURVE_PRESET_SMOOTH, "SMOOTH", 0, "Smooth", ""},
{CURVE_PRESET_MAX, "MAX", 0, "Max", ""},
+ {CURVE_PRESET_MID9, "MID9", 0, "Mid9", ""},
+ {CURVE_PRESET_LINE, "LINE", 0, "Line", ""},
+ {CURVE_PRESET_ROUND, "ROUND", 0, "Round", ""},
+ {CURVE_PRESET_ROOT, "ROOT", 0, "Root", ""},
{0, NULL, 0, NULL, NULL}};
ot->name= "Preset";
- ot->description= "Set brush shape";
+ ot->description= "Set brush shape";
ot->idname= "BRUSH_OT_curve_preset";
ot->exec= brush_curve_preset_exec;
ot->poll= brush_curve_preset_poll;
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag= OPTYPE_UNDO;
RNA_def_enum(ot->srna, "shape", prop_shape_items, CURVE_PRESET_SMOOTH, "Mode", "");
}
@@ -244,7 +246,7 @@ static int paint_select_linked_exec(bContext *C, wmOperator *op)
void PAINT_OT_face_select_linked(wmOperatorType *ot)
{
ot->name= "Select Linked";
- ot->description= "Select linked faces";
+ ot->description= "Select linked faces";
ot->idname= "PAINT_OT_face_select_linked";
ot->exec= paint_select_linked_exec;
@@ -264,7 +266,7 @@ static int paint_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEvent
void PAINT_OT_face_select_linked_pick(wmOperatorType *ot)
{
ot->name= "Select Linked Pick";
- ot->description= "Select linked faces";
+ ot->description= "Select linked faces";
ot->idname= "PAINT_OT_face_select_linked_pick";
ot->invoke= paint_select_linked_pick_invoke;
@@ -287,7 +289,7 @@ static int face_select_all_exec(bContext *C, wmOperator *op)
void PAINT_OT_face_select_all(wmOperatorType *ot)
{
ot->name= "Face Selection";
- ot->description= "Change selection for all faces";
+ ot->description= "Change selection for all faces";
ot->idname= "PAINT_OT_face_select_all";
ot->exec= face_select_all_exec;
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 80455d651b0..fde2d95cf29 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -47,22 +47,9 @@
#include "BLI_cellalloc.h"
#include "BLI_ghash.h"
-#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_brush_types.h"
-#include "DNA_cloth_types.h"
#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
#include "DNA_particle_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_userdef_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -92,9 +79,7 @@
#include "ED_armature.h"
#include "ED_mesh.h"
-#include "ED_object.h"
#include "ED_screen.h"
-#include "ED_util.h"
#include "ED_view3d.h"
#include "paint_intern.h"
@@ -955,6 +940,7 @@ void sample_wpaint(Scene *scene, ARegion *ar, View3D *v3d, int mode)
Mesh *me= get_mesh(ob);
int index, i;
short mval[2] = {0, 0}, sco[2];
+ int vgroup= ob->actdef-1;
if (!me) return;
@@ -1015,7 +1001,6 @@ void sample_wpaint(Scene *scene, ARegion *ar, View3D *v3d, int mode)
}
else {
DerivedMesh *dm;
- MDeformWeight *dw;
MLoop *ml;
float w, co[3], fmin = 10000000.0f;
int loopi = mpoly->loopstart;
@@ -1036,21 +1021,17 @@ void sample_wpaint(Scene *scene, ARegion *ar, View3D *v3d, int mode)
fac= MIN4(w1, w2, w3, w4);
if(w1==fac) {
- dw= defvert_find_index(me->dvert+mface->v1, ob->actdef-1);
- if(dw) ts->vgroup_weight= dw->weight; else ts->vgroup_weight= 0.0f;
+ ts->vgroup_weight= defvert_find_weight(me->dvert+mface->v1, vgroup);
}
else if(w2==fac) {
- dw= defvert_find_index(me->dvert+mface->v2, ob->actdef-1);
- if(dw) ts->vgroup_weight= dw->weight; else ts->vgroup_weight= 0.0f;
+ ts->vgroup_weight= defvert_find_weight(me->dvert+mface->v2, vgroup);
}
else if(w3==fac) {
- dw= defvert_find_index(me->dvert+mface->v3, ob->actdef-1);
- if(dw) ts->vgroup_weight= dw->weight; else ts->vgroup_weight= 0.0f;
+ ts->vgroup_weight= defvert_find_weight(me->dvert+mface->v3, vgroup);
}
else if(w4==fac) {
if(mface->v4) {
- dw= defvert_find_index(me->dvert+mface->v4, ob->actdef-1);
- if(dw) ts->vgroup_weight= dw->weight; else ts->vgroup_weight= 0.0f;
+ ts->vgroup_weight= defvert_find_weight(me->dvert+mface->v4, vgroup);
>>>>>>> .merge-right.r23146
}
}
@@ -1185,7 +1166,8 @@ static int set_wpaint(bContext *C, wmOperator *op) /* toggle */
}
}
else {
- mesh_octree_table(ob, NULL, NULL, 'e');
+ mesh_octree_table(NULL, NULL, NULL, 'e');
+ mesh_mirrtopo_table(NULL, 'e');
}
WM_event_add_notifier(C, NC_SCENE|ND_MODE, scene);
@@ -1196,8 +1178,6 @@ static int set_wpaint(bContext *C, wmOperator *op) /* toggle */
/* for switching to/from mode */
static int paint_poll_test(bContext *C)
{
- if(ED_operator_view3d_active(C)==0)
- return 0;
if(CTX_data_edit_object(C))
return 0;
if(CTX_data_active_object(C)==NULL)
@@ -1335,7 +1315,7 @@ static char *wpaint_make_validmap(Mesh *me, Object *ob)
bPose *pose;
bPoseChannel *chan;
ArmatureModifierData *amd;
- GHash *gh = BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp);
+ GHash *gh = BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "wpaint_make_validmap gh");
int i = 0, step1=1;
/*add all names to a hash table*/
@@ -1814,7 +1794,7 @@ Operator->invoke()
Operator->modal()
- for every mousemove, apply vertex paint
- exit on mouse release, free customdata
- (return OPERATOR_FINISHED also removes handler and operator)
+ (return OPERATOR_FINISHED also removes handler and operator)
For future:
- implement a stroke event (or mousemove with past positons)
@@ -1847,7 +1827,7 @@ static void vpaint_build_poly_facemap(struct VPaintData *vd, Mesh *me,
int *origIndex;
int i;
- vd->arena = BLI_memarena_new(1<<13);
+ vd->arena = BLI_memarena_new(1<<13, "vpaint tmp");
BLI_memarena_use_calloc(vd->arena);
vd->polyfacemap = BLI_memarena_alloc(vd->arena, sizeof(ListBase)*me->totpoly);
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index addbc6d2387..0dddcb578a1 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -22,7 +22,7 @@
*
* The Original Code is: all of this file.
*
- * Contributor(s): none yet.
+ * Contributor(s): Jason Wilkins, Tom Musgrove.
*
* ***** END GPL LICENSE BLOCK *****
*
@@ -38,21 +38,14 @@
#include "BLI_ghash.h"
#include "BLI_pbvh.h"
#include "BLI_threads.h"
+#include "BLI_editVert.h"
+#include "BLI_rand.h"
-#include "DNA_armature_types.h"
-#include "DNA_brush_types.h"
-#include "DNA_image_types.h"
#include "DNA_key_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_color_types.h"
#include "BKE_brush.h"
#include "BKE_cdderivedmesh.h"
@@ -79,32 +72,90 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_object.h"
#include "ED_screen.h"
#include "ED_sculpt.h"
-#include "ED_space_api.h"
-#include "ED_util.h"
#include "ED_view3d.h"
+#include "ED_mesh.h"
#include "paint_intern.h"
#include "sculpt_intern.h"
#include "RNA_access.h"
#include "RNA_define.h"
-#include "IMB_imbuf_types.h"
#include "RE_render_ext.h"
-#include "RE_shader_ext.h" /*for multitex_ext*/
+#include "RE_shader_ext.h"
-#include "GPU_draw.h"
-#include "gpu_buffers.h"
+#include "GPU_buffers.h"
#include <math.h>
#include <stdlib.h>
#include <string.h>
-/* Number of vertices to average in order to determine the flatten distance */
-#define FLATTEN_SAMPLE_SIZE 10
+#ifdef _OPENMP
+#include <omp.h>
+#endif
+
+/* ==== FORWARD DEFINITIONS =====
+ *
+ */
+
+void ED_sculpt_force_update(bContext *C)
+{
+ Object *ob= CTX_data_active_object(C);
+
+ if(ob && (ob->mode & OB_MODE_SCULPT))
+ multires_force_update(ob);
+}
+
+/* Sculpt mode handles multires differently from regular meshes, but only if
+ it's the last modifier on the stack and it is not on the first level */
+struct MultiresModifierData *sculpt_multires_active(Scene *scene, Object *ob)
+{
+ ModifierData *md, *nmd;
+
+ for(md= modifiers_getVirtualModifierList(ob); md; md= md->next) {
+ if(md->type == eModifierType_Multires) {
+ MultiresModifierData *mmd= (MultiresModifierData*)md;
+
+ /* Check if any of the modifiers after multires are active
+ * if not it can use the multires struct */
+ for(nmd= md->next; nmd; nmd= nmd->next)
+ if(modifier_isEnabled(scene, nmd, eModifierMode_Realtime))
+ break;
+
+ if(!nmd && mmd->sculptlvl > 0)
+ return mmd;
+ }
+ }
+
+ return NULL;
+}
+
+/* Checks whether full update mode (slower) needs to be used to work with modifiers */
+int sculpt_modifiers_active(Scene *scene, Object *ob)
+{
+ ModifierData *md;
+ MultiresModifierData *mmd= sculpt_multires_active(scene, ob);
+
+ /* check if there are any modifiers after what we are sculpting,
+ for a multires modifier with a deform modifier in front, we
+ do no need to recalculate the modifier stack. note that this
+ needs to be in sync with ccgDM_use_grid_pbvh! */
+ if(mmd)
+ md= mmd->modifier.next;
+ else
+ md= modifiers_getVirtualModifierList(ob);
+
+ /* exception for shape keys because we can edit those */
+ for(; md; md= md->next) {
+ if(modifier_isEnabled(scene, md, eModifierMode_Realtime))
+ if(md->type != eModifierType_ShapeKey)
+ return 1;
+ }
+
+ return 0;
+}
/* ===== STRUCTS =====
*
@@ -131,9 +182,13 @@ typedef struct StrokeCache {
/* Variants */
float radius;
+ float radius_squared;
+ //float traced_location[3];
float true_location[3];
float location[3];
- float flip;
+
+ float pen_flip;
+ float invert;
float pressure;
float mouse[2];
float bstrength;
@@ -152,15 +207,30 @@ typedef struct StrokeCache {
Brush *brush;
float (*face_norms)[3]; /* Copy of the mesh faces' normals */
- float rotation; /* Texture rotation (radians) for anchored and rake modes */
+ float special_rotation; /* Texture rotation (radians) for anchored and rake modes */
int pixel_radius, previous_pixel_radius;
- float grab_active_location[8][3];
float grab_delta[3], grab_delta_symmetry[3];
float old_grab_location[3], orig_grab_location[3];
- int symmetry; /* Symmetry index between 0 and 7 */
- float view_normal[3], view_normal_symmetry[3];
- int last_rake[2]; /* Last location of updating rake rotation */
+
+ int symmetry; /* Symmetry index between 0 and 7 bit combo 0 is Brush only;
+ 1 is X mirror; 2 is Y mirror; 3 is XY; 4 is Z; 5 is XZ; 6 is YZ; 7 is XYZ */
+ int mirror_symmetry_pass; /* the symmetry pass we are currently on between 0 and 7*/
+ float true_view_normal[3];
+ float view_normal[3];
+ float last_area_normal[3];
+ float last_center[3];
+ int radial_symmetry_pass;
+ float symm_rot_mat[4][4];
+ float symm_rot_mat_inv[4][4];
+ float last_rake[2]; /* Last location of updating rake rotation */
int original;
+
+ float vertex_rotation;
+
+ char saved_active_brush_name[24];
+ int alt_smooth;
+
+ float plane_trim_squared;
} StrokeCache;
/* ===== OPENGL =====
@@ -193,9 +263,10 @@ static void projectf(bglMats *mats, const float v[3], float p[2])
/* Get a screen-space rectangle of the modified area */
int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d,
- Object *ob, rcti *rect)
+ Object *ob, rcti *rect)
{
StrokeCache *cache = ob->sculpt->cache;
+ PBVH *pbvh= ob->sculpt->pbvh;
float bb_min[3], bb_max[3], pmat[4][4];
int i, j, k;
@@ -210,7 +281,10 @@ int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d,
view3d_get_object_project_mat(rv3d, ob, pmat);
- BLI_pbvh_redraw_BB(ob->sculpt->tree, bb_min, bb_max);
+ if(!pbvh)
+ return 0;
+
+ BLI_pbvh_redraw_BB(pbvh, bb_min, bb_max);
rect->xmin = rect->ymin = INT_MAX;
rect->xmax = rect->ymax = INT_MIN;
@@ -238,13 +312,15 @@ int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d,
}
void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar,
- RegionView3D *rv3d, Object *ob)
+ RegionView3D *rv3d, Object *ob)
{
- BoundBox *bb = MEM_callocN(sizeof(BoundBox), "sculpt boundbox");
+ PBVH *pbvh= ob->sculpt->pbvh;
+ BoundBox bb;
bglMats mats;
StrokeCache *cache = ob->sculpt->cache;
rcti rect;
- int i;
+
+ memset(&bb, 0, sizeof(BoundBox));
view3d_get_transformation(ar, rv3d, ob, &mats);
sculpt_get_redraw_rect(ar, rv3d,ob, &rect);
@@ -264,15 +340,12 @@ void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar,
rect.ymax -= 2;
#endif
- view3d_calculate_clipping(bb, planes, &mats, &rect);
-
- for(i = 0; i < 16; ++i)
- ((float*)planes)[i] = -((float*)planes)[i];
-
- MEM_freeN(bb);
+ view3d_calculate_clipping(&bb, planes, &mats, &rect);
+ mul_m4_fl(planes, -1.0f);
/* clear redraw flag from nodes */
- BLI_pbvh_update(ob->sculpt->tree, PBVH_UpdateRedraw, NULL);
+ if(pbvh)
+ BLI_pbvh_update(pbvh, PBVH_UpdateRedraw, NULL);
/*clear prect*/
cache->prect.xmin = FLT_MAX;
@@ -282,316 +355,345 @@ void sculpt_get_redraw_planes(float planes[4][4], ARegion *ar,
}
-/************************** Undo *************************/
-
-typedef struct SculptUndoNode {
- struct SculptUndoNode *next, *prev;
+/************************ Brush Testing *******************/
- char idname[MAX_ID_NAME]; /* name instead of pointer*/
- void *node; /* only during push, not valid afterwards! */
+typedef struct SculptBrushTest {
+ float radius_squared;
+ float location[3];
+ float dist;
+} SculptBrushTest;
- float (*co)[3];
- short (*no)[3];
- int totvert;
+static void sculpt_brush_test_init(SculptSession *ss, SculptBrushTest *test)
+{
+ test->radius_squared= ss->cache->radius_squared;
+ copy_v3_v3(test->location, ss->cache->location);
+}
- /* non-multires */
- int maxvert; /* to verify if totvert it still the same */
- int *index; /* to restore into right location */
+static int sculpt_brush_test(SculptBrushTest *test, float co[3])
+{
+ float distsq = len_squared_v3v3(co, test->location);
- /* multires */
- int maxgrid; /* same for grid */
- int gridsize; /* same for grid */
- int totgrid; /* to restore into right location */
- int *grids; /* to restore into right location */
-} SculptUndoNode;
+ if(distsq <= test->radius_squared) {
+ test->dist = sqrt(distsq);
+ return 1;
+ }
+ else {
+ return 0;
+ }
+}
-static void update_cb(PBVHNode *node, void *data)
+static int sculpt_brush_test_sq(SculptBrushTest *test, float co[3])
{
- BLI_pbvh_node_mark_update(node);
+ float distsq = len_squared_v3v3(co, test->location);
+
+ if(distsq <= test->radius_squared) {
+ test->dist = distsq;
+ return 1;
+ }
+ else {
+ return 0;
+ }
}
-static void sculpt_undo_restore(bContext *C, ListBase *lb)
+static int sculpt_brush_test_fast(SculptBrushTest *test, float co[3])
{
- Scene *scene = CTX_data_scene(C);
- Object *ob = CTX_data_active_object(C);
- DerivedMesh *dm = mesh_get_derived_final(scene, ob, 0);
- SculptSession *ss = ob->sculpt;
- SculptUndoNode *unode;
- MVert *mvert;
- MultiresModifierData *mmd;
- int *index;
- int i, j, update= 0;
+ return len_squared_v3v3(co, test->location) <= test->radius_squared;
+}
- sculpt_update_mesh_elements(scene, ob, 0);
+static int sculpt_brush_test_cube(SculptBrushTest *test, float co[3], float local[4][4])
+{
+ const static float side = 0.70710678118654752440084436210485; // sqrt(.5);
- for(unode=lb->first; unode; unode=unode->next) {
- if(!(strcmp(unode->idname, ob->id.name)==0))
- continue;
+ float local_co[3];
- if(unode->maxvert) {
- /* regular mesh restore */
- if(ss->totvert != unode->maxvert)
- continue;
+ mul_v3_m4v3(local_co, local, co);
- index= unode->index;
- mvert= ss->mvert;
+ local_co[0] = fabs(local_co[0]);
+ local_co[1] = fabs(local_co[1]);
+ local_co[2] = fabs(local_co[2]);
- for(i=0; i<unode->totvert; i++) {
- swap_v3_v3(mvert[index[i]].co, unode->co[i]);
- mvert[index[i]].flag |= ME_VERT_PBVH_UPDATE;
- }
- }
- else if(unode->maxgrid) {
- /* multires restore */
- DMGridData **grids, *grid;
- float (*co)[3];
- int gridsize;
+ if (local_co[0] <= side && local_co[1] <= side && local_co[2] <= side) {
+ test->dist = MAX3(local_co[0], local_co[1], local_co[2]) / side;
- if(dm->getNumGrids(dm) != unode->maxgrid)
- continue;
- if(dm->getGridSize(dm) != unode->gridsize)
- continue;
+ return 1;
+ }
+ else {
+ return 0;
+ }
+}
- grids= dm->getGridData(dm);
- gridsize= dm->getGridSize(dm);
+static float frontface(Brush *brush, float sculpt_normal[3], short no[3], float fno[3])
+{
+ if (brush->flag & BRUSH_FRONTFACE) {
+ float dot;
- co = unode->co;
- for(j=0; j<unode->totgrid; j++) {
- grid= grids[unode->grids[j]];
+ if (no) {
+ float tmp[3];
- for(i=0; i<gridsize*gridsize; i++, co++)
- swap_v3_v3(grid[i].co, co[0]);
- }
+ normal_short_to_float_v3(tmp, no);
+ dot= dot_v3v3(tmp, sculpt_normal);
+ }
+ else {
+ dot= dot_v3v3(fno, sculpt_normal);
}
- update= 1;
+ return dot > 0 ? dot : 0;
}
-
- if(update) {
- if(ss->kb) sculpt_mesh_to_key(ss->ob, ss->kb);
- if(ss->refkb) sculpt_key_to_mesh(ss->refkb, ob);
-
- /* we update all nodes still, should be more clever, but also
- needs to work correct when exiting/entering sculpt mode and
- the nodes get recreated, though in that case it could do all */
- BLI_pbvh_search_callback(ss->tree, NULL, NULL, update_cb, NULL);
- BLI_pbvh_update(ss->tree, PBVH_UpdateBB|PBVH_UpdateOriginalBB|PBVH_UpdateRedraw, NULL);
-
- if((mmd=sculpt_multires_active(ob)))
- multires_mark_as_modified(ob);
+ else {
+ return 1;
}
}
-static void sculpt_undo_free(ListBase *lb)
+#if 0
+
+static int sculpt_brush_test_cyl(SculptBrushTest *test, float co[3], float location[3], float an[3])
{
- SculptUndoNode *unode;
+ if (sculpt_brush_test_fast(test, co)) {
+ float t1[3], t2[3], t3[3], dist;
- for(unode=lb->first; unode; unode=unode->next) {
- if(unode->co)
- MEM_freeN(unode->co);
- if(unode->no)
- MEM_freeN(unode->no);
- if(unode->index)
- MEM_freeN(unode->index);
- if(unode->grids)
- MEM_freeN(unode->grids);
- }
-}
+ sub_v3_v3v3(t1, location, co);
+ sub_v3_v3v3(t2, x2, location);
-static SculptUndoNode *sculpt_undo_get_node(SculptSession *ss, PBVHNode *node)
-{
- ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH);
- SculptUndoNode *unode;
+ cross_v3_v3v3(t3, an, t1);
- if(!lb)
- return NULL;
+ dist = len_v3(t3)/len_v3(t2);
- for(unode=lb->first; unode; unode=unode->next)
- if(unode->node == node)
- return unode;
+ test->dist = dist;
- return NULL;
+ return 1;
+ }
+
+ return 0;
}
-static SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node)
-{
- ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH);
- Object *ob= ss->ob;
- SculptUndoNode *unode;
- int totvert, allvert, totgrid, maxgrid, gridsize, *grids;
+#endif
- /* list is manipulated by multiple threads, so we lock */
- BLI_lock_thread(LOCK_CUSTOM1);
+/* ===== Sculpting =====
+ *
+ */
+
- if((unode= sculpt_undo_get_node(ss, node))) {
- BLI_unlock_thread(LOCK_CUSTOM1);
- return unode;
- }
+static float overlapped_curve(Brush* br, float x)
+{
+ int i;
+ const int n = 100 / br->spacing;
+ const float h = br->spacing / 50.0f;
+ const float x0 = x-1;
- unode= MEM_callocN(sizeof(SculptUndoNode), "SculptUndoNode");
- strcpy(unode->idname, ob->id.name);
- unode->node= node;
+ float sum;
- BLI_pbvh_node_num_verts(ss->tree, node, &totvert, &allvert);
- BLI_pbvh_node_get_grids(ss->tree, node, &grids, &totgrid,
- &maxgrid, &gridsize, NULL, NULL);
+ sum = 0;
+ for (i= 0; i < n; i++) {
+ float xx;
- unode->totvert= totvert;
- /* we will use this while sculpting, is mapalloc slow to access then? */
- unode->co= MEM_mapallocN(sizeof(float)*3*allvert, "SculptUndoNode.co");
- unode->no= MEM_mapallocN(sizeof(short)*3*allvert, "SculptUndoNode.no");
- undo_paint_push_count_alloc(UNDO_PAINT_MESH, (sizeof(float)*3 + sizeof(short)*3 + sizeof(int))*allvert);
- BLI_addtail(lb, unode);
+ xx = fabs(x0 + i*h);
- if(maxgrid) {
- /* multires */
- unode->maxgrid= maxgrid;
- unode->totgrid= totgrid;
- unode->gridsize= gridsize;
- unode->grids= MEM_mapallocN(sizeof(int)*totgrid, "SculptUndoNode.grids");
- }
- else {
- /* regular mesh */
- unode->maxvert= ss->totvert;
- unode->index= MEM_mapallocN(sizeof(int)*allvert, "SculptUndoNode.index");
+ if (xx < 1.0f)
+ sum += brush_curve_strength(br, xx, 1);
}
- BLI_unlock_thread(LOCK_CUSTOM1);
+ return sum;
+}
- /* copy threaded, hopefully this is the performance critical part */
- {
- PBVHVertexIter vd;
+static float integrate_overlap(Brush* br)
+{
+ int i;
+ int m= 10;
+ float g = 1.0f/m;
+ float overlap;
+ float max;
- BLI_pbvh_vertex_iter_begin(ss->tree, node, vd, PBVH_ITER_ALL) {
- copy_v3_v3(unode->co[vd.i], vd.co);
- if(vd.no) VECCOPY(unode->no[vd.i], vd.no)
- else normal_float_to_short_v3(unode->no[vd.i], vd.fno);
- if(vd.vert_indices) unode->index[vd.i]= vd.vert_indices[vd.i];
- }
- BLI_pbvh_vertex_iter_end;
+ overlap= 0;
+ max= 0;
+ for(i= 0; i < m; i++) {
+ overlap = overlapped_curve(br, i*g);
+
+ if (overlap > max)
+ max = overlap;
}
- if(unode->grids)
- memcpy(unode->grids, grids, sizeof(int)*totgrid);
-
- return unode;
+ return max;
}
-static void sculpt_undo_push_begin(SculptSession *ss, char *name)
+/* Uses symm to selectively flip any axis of a coordinate. */
+static void flip_coord(float out[3], float in[3], const char symm)
{
- undo_paint_push_begin(UNDO_PAINT_MESH, name,
- sculpt_undo_restore, sculpt_undo_free);
+ if(symm & SCULPT_SYMM_X)
+ out[0]= -in[0];
+ else
+ out[0]= in[0];
+ if(symm & SCULPT_SYMM_Y)
+ out[1]= -in[1];
+ else
+ out[1]= in[1];
+ if(symm & SCULPT_SYMM_Z)
+ out[2]= -in[2];
+ else
+ out[2]= in[2];
}
-static void sculpt_undo_push_end(SculptSession *ss)
+float calc_overlap(StrokeCache *cache, const char symm, const char axis, const float angle)
{
- ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH);
- SculptUndoNode *unode;
+ float mirror[3];
+ float distsq;
+ float mat[4][4];
+
+ //flip_coord(mirror, cache->traced_location, symm);
+ flip_coord(mirror, cache->true_location, symm);
- /* we don't need normals in the undo stack */
- for(unode=lb->first; unode; unode=unode->next) {
- if(unode->no) {
- MEM_freeN(unode->no);
- unode->no= NULL;
- }
- }
+ unit_m4(mat);
+ rotate_m4(mat, axis, angle);
- undo_paint_push_end(UNDO_PAINT_MESH);
-}
+ mul_m4_v3(mat, mirror);
-void ED_sculpt_force_update(bContext *C)
-{
- Object *ob= CTX_data_active_object(C);
+ //distsq = len_squared_v3v3(mirror, cache->traced_location);
+ distsq = len_squared_v3v3(mirror, cache->true_location);
- if(ob && (ob->mode & OB_MODE_SCULPT))
- multires_force_update(ob);
+ if (distsq <= 4*(cache->radius_squared))
+ return (2*(cache->radius) - sqrt(distsq)) / (2*(cache->radius));
+ else
+ return 0;
}
-/************************ Brush Testing *******************/
-
-typedef struct SculptBrushTest {
- float radius_squared;
- float location[3];
+static float calc_radial_symmetry_feather(Sculpt *sd, StrokeCache *cache, const char symm, const char axis)
+{
+ int i;
+ float overlap;
- float dist;
-} SculptBrushTest;
+ overlap = 0;
+ for(i = 1; i < sd->radial_symm[axis-'X']; ++i) {
+ const float angle = 2*M_PI*i/sd->radial_symm[axis-'X'];
+ overlap += calc_overlap(cache, symm, axis, angle);
+ }
-static void sculpt_brush_test_init(SculptSession *ss, SculptBrushTest *test)
-{
- test->radius_squared= ss->cache->radius*ss->cache->radius;
- copy_v3_v3(test->location, ss->cache->location);
+ return overlap;
}
-static int sculpt_brush_test(SculptBrushTest *test, float co[3])
+static float calc_symmetry_feather(Sculpt *sd, StrokeCache* cache)
{
- float distsq, delta[3];
+ if (sd->flags & SCULPT_SYMMETRY_FEATHER) {
+ float overlap;
+ int symm = cache->symmetry;
+ int i;
- sub_v3_v3v3(delta, co, test->location);
- distsq = INPR(delta, delta);
+ overlap = 0;
+ for (i = 0; i <= symm; i++) {
+ if(i == 0 || (symm & i && (symm != 5 || i != 3) && (symm != 6 || (i != 3 && i != 5)))) {
- if(distsq < test->radius_squared) {
- test->dist = sqrt(distsq);
+ overlap += calc_overlap(cache, i, 0, 0);
+
+ overlap += calc_radial_symmetry_feather(sd, cache, i, 'X');
+ overlap += calc_radial_symmetry_feather(sd, cache, i, 'Y');
+ overlap += calc_radial_symmetry_feather(sd, cache, i, 'Z');
+ }
+ }
+
+ return 1/overlap;
+ }
+ else {
return 1;
}
-
- return 0;
}
-/* ===== Sculpting =====
- *
- */
-
/* Return modified brush strength. Includes the direction of the brush, positive
values pull vertices, negative values push. Uses tablet pressure and a
special multiplier found experimentally to scale the strength factor. */
-static float brush_strength(Sculpt *sd, StrokeCache *cache)
+static float brush_strength(Sculpt *sd, StrokeCache *cache, float feather)
{
Brush *brush = paint_brush(&sd->paint);
- /* Primary strength input; square it to make lower values more sensitive */
- float alpha = brush->alpha * brush->alpha;
- float dir= brush->flag & BRUSH_DIR_IN ? -1 : 1;
- float pressure= 1;
- float flip= cache->flip ? -1:1;
+ /* Primary strength input; square it to make lower values more sensitive */
+ float alpha = sculpt_get_brush_alpha(brush)*sculpt_get_brush_alpha(brush);
+ float dir = brush->flag & BRUSH_DIR_IN ? -1 : 1;
+ float pressure = brush->flag & BRUSH_ALPHA_PRESSURE ? cache->pressure : 1;
+ float pen_flip = cache->pen_flip ? -1 : 1;
+ float invert = cache->invert ? -1 : 1;
+ float accum = integrate_overlap(brush);
+ float overlap = (brush->flag & BRUSH_SPACE_ATTEN && brush->flag & BRUSH_SPACE && !(brush->flag & BRUSH_ANCHORED)) && (brush->spacing < 100) ? 1.0f/accum : 1; // spacing is integer percentage of radius, divide by 50 to get normalized diameter
+ float flip = dir * invert * pen_flip;
- if(brush->flag & BRUSH_ALPHA_PRESSURE)
- pressure *= cache->pressure;
-
switch(brush->sculpt_tool){
- case SCULPT_TOOL_DRAW:
- case SCULPT_TOOL_INFLATE:
- case SCULPT_TOOL_CLAY:
- case SCULPT_TOOL_FLATTEN:
- case SCULPT_TOOL_LAYER:
- return alpha * dir * pressure * flip; /*XXX: not sure why? was multiplied by G.vd->grid */;
- case SCULPT_TOOL_SMOOTH:
- return alpha * 4 * pressure;
- case SCULPT_TOOL_PINCH:
- return alpha / 2 * dir * pressure * flip;
- case SCULPT_TOOL_GRAB:
- return 1;
- default:
- return 0;
+ case SCULPT_TOOL_CLAY:
+ case SCULPT_TOOL_CLAY_TUBES:
+ case SCULPT_TOOL_DRAW:
+ case SCULPT_TOOL_LAYER:
+ return alpha * flip * pressure * overlap * feather;
+
+ case SCULPT_TOOL_CREASE:
+ case SCULPT_TOOL_BLOB:
+ return alpha * flip * pressure * overlap * feather;
+
+ case SCULPT_TOOL_INFLATE:
+ if (flip > 0) {
+ return 0.250f * alpha * flip * pressure * overlap * feather;
+ }
+ else {
+ return 0.125f * alpha * flip * pressure * overlap * feather;
+ }
+
+ case SCULPT_TOOL_FILL:
+ case SCULPT_TOOL_SCRAPE:
+ case SCULPT_TOOL_FLATTEN:
+ if (flip > 0) {
+ overlap = (1+overlap) / 2;
+ return alpha * flip * pressure * overlap * feather;
+ }
+ else {
+ /* reduce strength for DEEPEN, PEAKS, and CONTRAST */
+ return 0.5f * alpha * flip * pressure * overlap * feather;
+ }
+
+ case SCULPT_TOOL_SMOOTH:
+ return alpha * pressure * feather;
+
+ case SCULPT_TOOL_PINCH:
+ if (flip > 0) {
+ return alpha * flip * pressure * overlap * feather;
+ }
+ else {
+ return 0.25f * alpha * flip * pressure * overlap * feather;
+ }
+
+ case SCULPT_TOOL_NUDGE:
+ overlap = (1+overlap) / 2;
+ return alpha * pressure * overlap * feather;
+
+ case SCULPT_TOOL_THUMB:
+ return alpha*pressure*feather;
+
+ case SCULPT_TOOL_SNAKE_HOOK:
+ return feather;
+
+ case SCULPT_TOOL_GRAB:
+ case SCULPT_TOOL_ROTATE:
+ return feather;
+
+ default:
+ return 0;
}
}
-/* Uses symm to selectively flip any axis of a coordinate. */
-static void flip_coord(float out[3], float in[3], const char symm)
+float get_tex_pixel(Brush* br, float u, float v)
{
- if(symm & SCULPT_SYMM_X)
- out[0]= -in[0];
- else
- out[0]= in[0];
- if(symm & SCULPT_SYMM_Y)
- out[1]= -in[1];
- else
- out[1]= in[1];
- if(symm & SCULPT_SYMM_Z)
- out[2]= -in[2];
- else
- out[2]= in[2];
+ TexResult texres;
+ float co[3];
+ int hasrgb;
+
+ co[0] = u;
+ co[1] = v;
+ co[2] = 0;
+
+ memset(&texres, 0, sizeof(TexResult));
+ hasrgb = multitex_ext(br->mtex.tex, co, NULL, NULL, 1, &texres);
+
+ if (hasrgb & TEX_RGB)
+ texres.tin = (0.35*texres.tr + 0.45*texres.tg + 0.2*texres.tb)*texres.ta;
+
+ return texres.tin;
}
+#if 0
+
/* Get a pixel from the texcache at (px, py) */
static unsigned char get_texcache_pixel(const SculptSession *ss, int px, int py)
{
@@ -602,7 +704,7 @@ static unsigned char get_texcache_pixel(const SculptSession *ss, int px, int py)
static float get_texcache_pixel_bilinear(const SculptSession *ss, float u, float v)
{
- int x, y, x2, y2;
+ unsigned x, y, x2, y2;
const int tc_max = ss->texcache_side - 1;
float urat, vrat, uopp;
@@ -629,76 +731,97 @@ static float get_texcache_pixel_bilinear(const SculptSession *ss, float u, float
get_texcache_pixel(ss, x2, y2) * urat) * vrat) / 255.0;
}
+#endif
+
/* Return a multiplier for brush strength on a particular vertex. */
static float tex_strength(SculptSession *ss, Brush *br, float *point, const float len)
{
- MTex *tex = &br->mtex;
+ MTex *mtex = &br->mtex;
float avg= 1;
- if(!tex) {
+ if(!mtex->tex) {
avg= 1;
}
- else if(tex->brush_map_mode == MTEX_MAP_MODE_3D) {
+ else if(mtex->brush_map_mode == MTEX_MAP_MODE_3D) {
float jnk;
/* Get strength by feeding the vertex
location directly into a texture */
- externtex(tex, point, &avg,
+ externtex(mtex, point, &avg,
&jnk, &jnk, &jnk, &jnk);
}
else if(ss->texcache) {
- const float bsize= ss->cache->pixel_radius * 2;
- const float rot= tex->rot + ss->cache->rotation;
- int px, py;
- float flip[3], point_2d[2];
-
- /* If the active area is being applied for symmetry, flip it
- across the symmetry axis in order to project it. This insures
- that the brush texture will be oriented correctly. */
- copy_v3_v3(flip, point);
- flip_coord(flip, flip, ss->cache->symmetry);
- projectf(ss->cache->mats, flip, point_2d);
-
- /* For Tile and Drag modes, get the 2D screen coordinates of the
- and scale them up or down to the texture size. */
- if(tex->brush_map_mode == MTEX_MAP_MODE_TILED) {
- const int sx= (const int)tex->size[0];
- const int sy= (const int)tex->size[1];
-
- float fx= point_2d[0];
- float fy= point_2d[1];
-
- float angle= atan2(fy, fx) - rot;
- float flen= sqrtf(fx*fx + fy*fy);
-
- if(rot<0.001 && rot>-0.001) {
- px= point_2d[0];
- py= point_2d[1];
- } else {
- px= flen * cos(angle) + 2000;
- py= flen * sin(angle) + 2000;
- }
- if(sx != 1)
- px %= sx-1;
- if(sy != 1)
- py %= sy-1;
- avg= get_texcache_pixel_bilinear(ss, ss->texcache_side*px/sx, ss->texcache_side*py/sy);
- }
- else if(tex->brush_map_mode == MTEX_MAP_MODE_FIXED) {
- float fx= (point_2d[0] - ss->cache->tex_mouse[0]) / bsize;
- float fy= (point_2d[1] - ss->cache->tex_mouse[1]) / bsize;
-
- float angle= atan2(fy, fx) - rot;
- float flen= sqrtf(fx*fx + fy*fy);
-
- fx = flen * cos(angle) + 0.5;
- fy = flen * sin(angle) + 0.5;
+ float rotation = -mtex->rot;
+ float x, y, point_2d[3];
+ float diameter;
+
+ /* if the active area is being applied for symmetry, flip it
+ across the symmetry axis and rotate it back to the orignal
+ position in order to project it. This insures that the
+ brush texture will be oriented correctly. */
+
+ flip_coord(point_2d, point, ss->cache->mirror_symmetry_pass);
+
+ if (ss->cache->radial_symmetry_pass)
+ mul_m4_v3(ss->cache->symm_rot_mat_inv, point_2d);
+
+ projectf(ss->cache->mats, point_2d, point_2d);
+
+ /* if fixed mode, keep coordinates relative to mouse */
+ if(mtex->brush_map_mode == MTEX_MAP_MODE_FIXED) {
+ rotation += ss->cache->special_rotation;
+
+ point_2d[0] -= ss->cache->tex_mouse[0];
+ point_2d[1] -= ss->cache->tex_mouse[1];
+
+ diameter = ss->cache->pixel_radius; // use pressure adjusted size for fixed mode
+
+ x = point_2d[0];
+ y = point_2d[1];
+ }
+ else /* else (mtex->brush_map_mode == MTEX_MAP_MODE_TILED),
+ leave the coordinates relative to the screen */
+ {
+ diameter = sculpt_get_brush_size(br); // use unadjusted size for tiled mode
+
+ x = point_2d[0] - ss->cache->vc->ar->winrct.xmin;
+ y = point_2d[1] - ss->cache->vc->ar->winrct.ymin;
+ }
+
+ x /= ss->cache->vc->ar->winx;
+ y /= ss->cache->vc->ar->winy;
- avg= get_texcache_pixel_bilinear(ss, fx * ss->texcache_side, fy * ss->texcache_side);
+ if (mtex->brush_map_mode == MTEX_MAP_MODE_TILED) {
+ x -= 0.5f;
+ y -= 0.5f;
}
+
+ x *= ss->cache->vc->ar->winx / diameter;
+ y *= ss->cache->vc->ar->winy / diameter;
+
+ /* it is probably worth optimizing for those cases where
+ the texture is not rotated by skipping the calls to
+ atan2, sqrtf, sin, and cos. */
+ if (rotation > 0.001 || rotation < -0.001) {
+ const float angle = atan2(y, x) + rotation;
+ const float flen = sqrtf(x*x + y*y);
+
+ x = flen * cos(angle);
+ y = flen * sin(angle);
+ }
+
+ x *= br->mtex.size[0];
+ y *= br->mtex.size[1];
+
+ x += br->mtex.ofs[0];
+ y += br->mtex.ofs[1];
+
+ avg = get_tex_pixel(br, x, y);
}
- avg*= brush_curve_strength(br, len, ss->cache->radius); /* Falloff curve */
+ avg += br->texture_sample_bias;
+
+ avg *= brush_curve_strength(br, len, ss->cache->radius); /* Falloff curve */
return avg;
}
@@ -722,7 +845,7 @@ static int sculpt_search_sphere_cb(PBVHNode *node, void *data_v)
BLI_pbvh_node_get_original_BB(node, bb_min, bb_max);
else
BLI_pbvh_node_get_BB(node, bb_min, bb_max);
-
+
for(i = 0; i < 3; ++i) {
if(bb_min[i] > center[i])
nearest[i] = bb_min[i];
@@ -734,7 +857,7 @@ static int sculpt_search_sphere_cb(PBVHNode *node, void *data_v)
sub_v3_v3v3(t, center, nearest);
- return t[0] * t[0] + t[1] * t[1] + t[2] * t[2] < data->radius_squared;
+ return dot_v3v3(t, t) < data->radius_squared;
}
/* Handles clipping against a mirror modifier and SCULPT_LOCK axis flags */
@@ -750,64 +873,60 @@ static void sculpt_clip(Sculpt *sd, SculptSession *ss, float *co, const float va
co[i]= 0.0f;
else
co[i]= val[i];
- }
+ }
}
static void add_norm_if(float view_vec[3], float out[3], float out_flip[3], float fno[3])
{
if((dot_v3v3(view_vec, fno)) > 0) {
- add_v3_v3v3(out, out, fno);
+ add_v3_v3(out, fno);
} else {
- add_v3_v3v3(out_flip, out_flip, fno); /* out_flip is used when out is {0,0,0} */
+ add_v3_v3(out_flip, fno); /* out_flip is used when out is {0,0,0} */
}
}
-/* For draw/layer/flatten; finds average normal for all active vertices */
-static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3], PBVHNode **nodes, int totnode)
+static void calc_area_normal(Sculpt *sd, SculptSession *ss, float an[3], PBVHNode **nodes, int totnode)
{
- PBVH *bvh= ss->tree;
- StrokeCache *cache = ss->cache;
- const int view = 0; /* XXX: should probably be a flag, not number: brush_type==SCULPT_TOOL_DRAW ? sculptmode_brush()->view : 0; */
- float out[3] = {0.0f, 0.0f, 0.0f};
- float out_flip[3] = {0.0f, 0.0f, 0.0f};
- float out_dir[3];
int n;
- copy_v3_v3(out_dir, cache->view_normal_symmetry);
+ float out_flip[3] = {0.0f, 0.0f, 0.0f};
- /* threaded loop over nodes */
- #pragma omp parallel for private(n) schedule(static)
+ zero_v3(an);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for(n=0; n<totnode; n++) {
PBVHVertexIter vd;
SculptBrushTest test;
SculptUndoNode *unode;
- float fno[3];
- float nout[3] = {0.0f, 0.0f, 0.0f};
- float nout_flip[3] = {0.0f, 0.0f, 0.0f};
-
- // XXX push instead of get for thread safety in draw
- // brush .. lame, but also not harmful really
- unode= sculpt_undo_push_node(ss, nodes[n]);
+ float private_an[3] = {0.0f, 0.0f, 0.0f};
+ float private_out_flip[3] = {0.0f, 0.0f, 0.0f};
+
+ unode = sculpt_undo_push_node(ss, nodes[n]);
sculpt_brush_test_init(ss, &test);
if(ss->cache->original) {
- BLI_pbvh_vertex_iter_begin(bvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
- if(sculpt_brush_test(&test, unode->co[vd.i])) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test_fast(&test, unode->co[vd.i])) {
+ float fno[3];
+
normal_short_to_float_v3(fno, unode->no[vd.i]);
- add_norm_if(out_dir, nout, nout_flip, fno);
+ add_norm_if(ss->cache->view_normal, private_an, private_out_flip, fno);
}
}
BLI_pbvh_vertex_iter_end;
}
else {
- BLI_pbvh_vertex_iter_begin(bvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
- if(sculpt_brush_test(&test, vd.co)) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test_fast(&test, vd.co)) {
if(vd.no) {
+ float fno[3];
+
normal_short_to_float_v3(fno, vd.no);
- add_norm_if(out_dir, nout, nout_flip, fno);
+ add_norm_if(ss->cache->view_normal, private_an, private_out_flip, fno);
+ }
+ else {
+ add_norm_if(ss->cache->view_normal, private_an, private_out_flip, vd.fno);
}
- else
- add_norm_if(out_dir, nout, nout_flip, vd.fno);
}
}
BLI_pbvh_vertex_iter_end;
@@ -815,76 +934,70 @@ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float area_normal[3]
#pragma omp critical
{
- /* we sum per node and add together later for threads */
- add_v3_v3v3(out, out, nout);
- add_v3_v3v3(out_flip, out_flip, nout_flip);
+ add_v3_v3(an, private_an);
+ add_v3_v3(out_flip, private_out_flip);
}
}
- if (out[0]==0.0 && out[1]==0.0 && out[2]==0.0) {
- copy_v3_v3(out, out_flip);
- }
-
- normalize_v3(out);
+ if (is_zero_v3(an))
+ copy_v3_v3(an, out_flip);
- out[0] = out_dir[0] * view + out[0] * (10-view);
- out[1] = out_dir[1] * view + out[1] * (10-view);
- out[2] = out_dir[2] * view + out[2] * (10-view);
-
- normalize_v3(out);
- copy_v3_v3(area_normal, out);
+ normalize_v3(an);
}
-static void do_draw_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+/* This initializes the faces to be moved for this sculpt for draw/layer/flatten; then it
+ finds average normal for all active vertices - note that this is called once for each mirroring direction */
+static void calc_sculpt_normal(Sculpt *sd, SculptSession *ss, float an[3], PBVHNode **nodes, int totnode)
{
Brush *brush = paint_brush(&sd->paint);
- float offset[3], area_normal[3];
- float bstrength= ss->cache->bstrength;
- int n;
-
- /* area normal */
- calc_area_normal(sd, ss, area_normal, nodes, totnode);
-
- /* offset with as much as possible factored in already */
- offset[0]= area_normal[0]*ss->cache->radius*ss->cache->scale[0]*bstrength;
- offset[1]= area_normal[1]*ss->cache->radius*ss->cache->scale[1]*bstrength;
- offset[2]= area_normal[2]*ss->cache->radius*ss->cache->scale[2]*bstrength;
-
- /* threaded loop over nodes */
- #pragma omp parallel for private(n) schedule(static)
- for(n=0; n<totnode; n++) {
- PBVHVertexIter vd;
- SculptBrushTest test;
- int update = 0;
-
- sculpt_undo_push_node(ss, nodes[n]);
- sculpt_brush_test_init(ss, &test);
- BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) {
- if(sculpt_brush_test(&test, vd.co)) {
- /* offset vertex */
- float fade = tex_strength(ss, brush, vd.co, test.dist);
- float val[3]= {vd.co[0] + offset[0]*fade,
- vd.co[1] + offset[1]*fade,
- vd.co[2] + offset[2]*fade};
-
- sculpt_clip(sd, ss, vd.co, val);
- if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
-
- update = 1;
- }
+ if (ss->cache->mirror_symmetry_pass == 0 &&
+ ss->cache->radial_symmetry_pass == 0 &&
+ (ss->cache->first_time || !(brush->flag & BRUSH_ORIGINAL_NORMAL)))
+ {
+ switch (brush->sculpt_plane) {
+ case SCULPT_DISP_DIR_VIEW:
+ viewvector(ss->cache->vc->rv3d, ss->cache->vc->rv3d->twmat[3], an);
+ break;
+
+ case SCULPT_DISP_DIR_X:
+ an[1] = 0.0;
+ an[2] = 0.0;
+ an[0] = 1.0;
+ break;
+
+ case SCULPT_DISP_DIR_Y:
+ an[0] = 0.0;
+ an[2] = 0.0;
+ an[1] = 1.0;
+ break;
+
+ case SCULPT_DISP_DIR_Z:
+ an[0] = 0.0;
+ an[1] = 0.0;
+ an[2] = 1.0;
+ break;
+
+ case SCULPT_DISP_DIR_AREA:
+ calc_area_normal(sd, ss, an, nodes, totnode);
+
+ default:
+ break;
}
- BLI_pbvh_vertex_iter_end;
-
- if (update)
- BLI_pbvh_node_mark_update(nodes[n]);
+
+ copy_v3_v3(ss->cache->last_area_normal, an);
+ }
+ else {
+ copy_v3_v3(an, ss->cache->last_area_normal);
+ flip_coord(an, an, ss->cache->mirror_symmetry_pass);
+ mul_m4_v3(ss->cache->symm_rot_mat, an);
}
}
/* For the smooth brush, uses the neighboring vertices around vert to calculate
a smoothed location for vert. Skips corner vertices (used by only one
polygon.) */
-static void neighbor_average(SculptSession *ss, float avg[3], const int vert)
+static void neighbor_average(SculptSession *ss, float avg[3], const unsigned vert)
{
int i, skip= -1, total=0;
IndexNode *node= ss->fmap[vert].first;
@@ -904,14 +1017,14 @@ static void neighbor_average(SculptSession *ss, float avg[3], const int vert)
if(f->v4) {
skip= (f->v1==vert?2:
- f->v2==vert?3:
- f->v3==vert?0:
- f->v4==vert?1:-1);
+ f->v2==vert?3:
+ f->v3==vert?0:
+ f->v4==vert?1:-1);
}
for(i=0; i<(f->v4?4:3); ++i) {
if(i != skip && (ncount!=2 || BLI_countlist(&ss->fmap[(&f->v1)[i]]) <= 2)) {
- add_v3_v3v3(avg, avg, ss->mvert[(&f->v1)[i]].co);
+ add_v3_v3(avg, ss->mvert[(&f->v1)[i]].co);
++total;
}
}
@@ -925,52 +1038,58 @@ static void neighbor_average(SculptSession *ss, float avg[3], const int vert)
copy_v3_v3(avg, ss->mvert[vert].co);
}
-static void do_mesh_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node)
+static void do_mesh_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node, float bstrength)
{
Brush *brush = paint_brush(&sd->paint);
- float bstrength= ss->cache->bstrength;
PBVHVertexIter vd;
SculptBrushTest test;
+ CLAMP(bstrength, 0.0f, 1.0f);
+
sculpt_brush_test_init(ss, &test);
- BLI_pbvh_vertex_iter_begin(ss->tree, node, vd, PBVH_ITER_UNIQUE) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, node, vd, PBVH_ITER_UNIQUE) {
if(sculpt_brush_test(&test, vd.co)) {
- float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength;
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->view_normal, vd.no, vd.fno);
float avg[3], val[3];
- CLAMP(fade, 0.0f, 1.0f);
-
neighbor_average(ss, avg, vd.vert_indices[vd.i]);
- val[0] = vd.co[0]+(avg[0]-vd.co[0])*fade;
- val[1] = vd.co[1]+(avg[1]-vd.co[1])*fade;
- val[2] = vd.co[2]+(avg[2]-vd.co[2])*fade;
-
- sculpt_clip(sd, ss, vd.co, val);
- if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ sub_v3_v3v3(val, avg, vd.co);
+ mul_v3_fl(val, fade);
+
+ add_v3_v3(val, vd.co);
+
+ sculpt_clip(sd, ss, vd.co, val);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
}
}
BLI_pbvh_vertex_iter_end;
}
-static void do_multires_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node)
+static void do_multires_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node, float bstrength)
{
Brush *brush = paint_brush(&sd->paint);
SculptBrushTest test;
DMGridData **griddata, *data;
DMGridAdjacency *gridadj, *adj;
- float bstrength= ss->cache->bstrength;
- float co[3], (*tmpgrid)[3];
+ float (*tmpgrid)[3], (*tmprow)[3];
int v1, v2, v3, v4;
int *grid_indices, totgrid, gridsize, i, x, y;
-
+
sculpt_brush_test_init(ss, &test);
- BLI_pbvh_node_get_grids(ss->tree, node, &grid_indices, &totgrid,
+ CLAMP(bstrength, 0.0f, 1.0f);
+
+ BLI_pbvh_node_get_grids(ss->pbvh, node, &grid_indices, &totgrid,
NULL, &gridsize, &griddata, &gridadj);
#pragma omp critical
- tmpgrid= MEM_mallocN(sizeof(float)*3*gridsize*gridsize, "tmpgrid");
+ {
+ tmpgrid= MEM_mallocN(sizeof(float)*3*gridsize*gridsize, "tmpgrid");
+ tmprow= MEM_mallocN(sizeof(float)*3*gridsize, "tmprow");
+ }
for(i = 0; i < totgrid; ++i) {
data = griddata[grid_indices[i]];
@@ -978,75 +1097,106 @@ static void do_multires_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *no
memset(tmpgrid, 0, sizeof(float)*3*gridsize*gridsize);
- /* average grid values */
- for(y = 0; y < gridsize-1; ++y) {
- for(x = 0; x < gridsize-1; ++x) {
+ for (y= 0; y < gridsize-1; y++) {
+ float tmp[3];
+
+ v1 = y*gridsize;
+ add_v3_v3v3(tmprow[0], data[v1].co, data[v1+gridsize].co);
+
+ for (x= 0; x < gridsize-1; x++) {
v1 = x + y*gridsize;
- v2 = (x + 1) + y*gridsize;
- v3 = (x + 1) + (y + 1)*gridsize;
- v4 = x + (y + 1)*gridsize;
+ v2 = v1 + 1;
+ v3 = v1 + gridsize;
+ v4 = v3 + 1;
- cent_quad_v3(co, data[v1].co, data[v2].co, data[v3].co, data[v4].co);
- mul_v3_fl(co, 0.25f);
+ add_v3_v3v3(tmprow[x+1], data[v2].co, data[v4].co);
+ add_v3_v3v3(tmp, tmprow[x+1], tmprow[x]);
- add_v3_v3(tmpgrid[v1], co);
- add_v3_v3(tmpgrid[v2], co);
- add_v3_v3(tmpgrid[v3], co);
- add_v3_v3(tmpgrid[v4], co);
+ add_v3_v3(tmpgrid[v1], tmp);
+ add_v3_v3(tmpgrid[v2], tmp);
+ add_v3_v3(tmpgrid[v3], tmp);
+ add_v3_v3(tmpgrid[v4], tmp);
}
}
/* blend with existing coordinates */
for(y = 0; y < gridsize; ++y) {
for(x = 0; x < gridsize; ++x) {
- if(x == 0 && adj->index[0] == -1) continue;
- if(x == gridsize - 1 && adj->index[2] == -1) continue;
- if(y == 0 && adj->index[3] == -1) continue;
- if(y == gridsize - 1 && adj->index[1] == -1) continue;
+ float *co;
+ float *fno;
+ int index;
+
+ if(x == 0 && adj->index[0] == -1)
+ continue;
- copy_v3_v3(co, data[x + y*gridsize].co);
+ if(x == gridsize - 1 && adj->index[2] == -1)
+ continue;
+
+ if(y == 0 && adj->index[3] == -1)
+ continue;
+
+ if(y == gridsize - 1 && adj->index[1] == -1)
+ continue;
+
+ index = x + y*gridsize;
+ co= data[index].co;
+ fno= data[index].no;
if(sculpt_brush_test(&test, co)) {
- float fade = tex_strength(ss, brush, co, test.dist)*bstrength;
- float avg[3], val[3];
+ const float fade = bstrength*tex_strength(ss, brush, co, test.dist)*frontface(brush, ss->cache->view_normal, NULL, fno);
+ float *avg, val[3];
+ float n;
+
+ avg = tmpgrid[x + y*gridsize];
+
+ n = 1/16.0f;
- copy_v3_v3(avg, tmpgrid[x + y*gridsize]);
if(x == 0 || x == gridsize - 1)
- mul_v3_fl(avg, 2.0f);
+ n *= 2;
+
if(y == 0 || y == gridsize - 1)
- mul_v3_fl(avg, 2.0f);
+ n *= 2;
+
+ mul_v3_fl(avg, n);
- CLAMP(fade, 0.0f, 1.0f);
+ sub_v3_v3v3(val, avg, co);
+ mul_v3_fl(val, fade);
- val[0] = co[0]+(avg[0]-co[0])*fade;
- val[1] = co[1]+(avg[1]-co[1])*fade;
- val[2] = co[2]+(avg[2]-co[2])*fade;
-
- sculpt_clip(sd, ss, data[x + y*gridsize].co, val);
+ add_v3_v3(val, co);
+
+ sculpt_clip(sd, ss, co, val);
}
}
}
}
#pragma omp critical
- MEM_freeN(tmpgrid);
+ {
+ MEM_freeN(tmpgrid);
+ MEM_freeN(tmprow);
+ }
}
-static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+static void smooth(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, float bstrength)
{
- int iteration, n;
+ const int max_iterations = 4;
+ const float fract = 1.0f/max_iterations;
+ int iteration, n, count;
+ float last;
- for(iteration = 0; iteration < 2; ++iteration) {
- #pragma omp parallel for private(n) schedule(static)
- for(n=0; n<totnode; n++) {
- sculpt_undo_push_node(ss, nodes[n]);
+ CLAMP(bstrength, 0, 1);
- if(ss->multires)
- do_multires_smooth_brush(sd, ss, nodes[n]);
- else if(ss->fmap)
- do_mesh_smooth_brush(sd, ss, nodes[n]);
+ count = (int)(bstrength*max_iterations);
+ last = max_iterations*(bstrength - count*fract);
- BLI_pbvh_node_mark_update(nodes[n]);
+ for(iteration = 1; iteration <= count; ++iteration) {
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n=0; n<totnode; n++) {
+ if(ss->multires) {
+ do_multires_smooth_brush(sd, ss, nodes[n], iteration != count ? 1.0f : last);
+ }
+ else if(ss->fmap)
+ do_mesh_smooth_brush(sd, ss, nodes[n], iteration != count ? 1.0f : last);
}
if(ss->multires)
@@ -1054,69 +1204,378 @@ static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int
}
}
-static void do_pinch_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+static void do_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ smooth(sd, ss, nodes, totnode, ss->cache->bstrength);
+}
+
+static void do_draw_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
{
Brush *brush = paint_brush(&sd->paint);
+ float offset[3], area_normal[3];
float bstrength= ss->cache->bstrength;
int n;
- #pragma omp parallel for private(n) schedule(static)
+ calc_sculpt_normal(sd, ss, area_normal, nodes, totnode);
+
+ /* offset with as much as possible factored in already */
+ mul_v3_v3fl(offset, area_normal, ss->cache->radius);
+ mul_v3_v3(offset, ss->cache->scale);
+ mul_v3_fl(offset, bstrength);
+
+ /* threaded loop over nodes */
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for(n=0; n<totnode; n++) {
PBVHVertexIter vd;
SculptBrushTest test;
-
- sculpt_undo_push_node(ss, nodes[n]);
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if (sculpt_brush_test(&test, vd.co)) {
+ //if(sculpt_brush_test_cyl(&test, vd.co, ss->cache->location, area_normal)) {
+ /* offset vertex */
+ float fade = tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, area_normal, vd.no, vd.fno);
+
+ mul_v3_v3fl(proxy[vd.i], offset, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+}
+
+static void do_crease_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush = paint_brush(&sd->paint);
+ float offset[3], area_normal[3];
+ float bstrength= ss->cache->bstrength;
+ float flippedbstrength, crease_correction;
+ int n;
+
+ calc_sculpt_normal(sd, ss, area_normal, nodes, totnode);
+
+ /* offset with as much as possible factored in already */
+ mul_v3_v3fl(offset, area_normal, ss->cache->radius);
+ mul_v3_v3(offset, ss->cache->scale);
+ mul_v3_fl(offset, bstrength);
+
+ /* we divide out the squared alpha and multiply by the squared crease to give us the pinch strength */
+
+ if(sculpt_get_brush_alpha(brush) > 0.0f)
+ crease_correction = brush->crease_pinch_factor*brush->crease_pinch_factor/(sculpt_get_brush_alpha(brush)*sculpt_get_brush_alpha(brush));
+ else
+ crease_correction = brush->crease_pinch_factor*brush->crease_pinch_factor;
+
+ /* we always want crease to pinch or blob to relax even when draw is negative */
+ flippedbstrength = (bstrength < 0) ? -crease_correction*bstrength : crease_correction*bstrength;
+
+ if(brush->sculpt_tool == SCULPT_TOOL_BLOB) flippedbstrength *= -1.0f;
+
+ /* threaded loop over nodes */
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n=0; n<totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
sculpt_brush_test_init(ss, &test);
- BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
if(sculpt_brush_test(&test, vd.co)) {
- float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength;
- float val[3]= {vd.co[0]+(test.location[0]-vd.co[0])*fade,
- vd.co[1]+(test.location[1]-vd.co[1])*fade,
- vd.co[2]+(test.location[2]-vd.co[2])*fade};
-
- sculpt_clip(sd, ss, vd.co, val);
- if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ /* offset vertex */
+ const float fade = tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, area_normal, vd.no, vd.fno);
+ float val1[3];
+ float val2[3];
+
+ /* first we pinch */
+ sub_v3_v3v3(val1, test.location, vd.co);
+ //mul_v3_v3(val1, ss->cache->scale);
+ mul_v3_fl(val1, fade*flippedbstrength);
+
+ /* then we draw */
+ mul_v3_v3fl(val2, offset, fade);
+
+ add_v3_v3v3(proxy[vd.i], val1, val2);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
}
}
BLI_pbvh_vertex_iter_end;
+ }
+}
+
+static void do_pinch_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush = paint_brush(&sd->paint);
+ float bstrength= ss->cache->bstrength;
+ int n;
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n=0; n<totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test(&test, vd.co)) {
+ float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->view_normal, vd.no, vd.fno);
+ float val[3];
+
+ sub_v3_v3v3(val, test.location, vd.co);
+ mul_v3_v3fl(proxy[vd.i], val, fade);
- BLI_pbvh_node_mark_update(nodes[n]);
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
}
}
static void do_grab_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
{
- Brush *brush = paint_brush(&sd->paint);
+ Brush *brush= paint_brush(&sd->paint);
float bstrength= ss->cache->bstrength;
- float grab_delta[3];
+ float grab_delta[3], an[3];
int n;
-
+ float len;
+
+ if (brush->normal_weight > 0)
+ calc_sculpt_normal(sd, ss, an, nodes, totnode);
+
copy_v3_v3(grab_delta, ss->cache->grab_delta_symmetry);
- #pragma omp parallel for private(n) schedule(static)
+ len = len_v3(grab_delta);
+
+ if (brush->normal_weight > 0) {
+ mul_v3_fl(an, len*brush->normal_weight);
+ mul_v3_fl(grab_delta, 1.0f - brush->normal_weight);
+ add_v3_v3(grab_delta, an);
+ }
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for(n=0; n<totnode; n++) {
PBVHVertexIter vd;
+ SculptUndoNode* unode;
SculptBrushTest test;
float (*origco)[3];
-
- origco= sculpt_undo_push_node(ss, nodes[n])->co;
+ short (*origno)[3];
+ float (*proxy)[3];
+
+ unode= sculpt_undo_push_node(ss, nodes[n]);
+ origco= unode->co;
+ origno= unode->no;
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
sculpt_brush_test_init(ss, &test);
- BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
if(sculpt_brush_test(&test, origco[vd.i])) {
- float fade = tex_strength(ss, brush, origco[vd.i], test.dist)*bstrength;
- float add[3]= {vd.co[0]+fade*grab_delta[0],
- vd.co[1]+fade*grab_delta[1],
- vd.co[2]+fade*grab_delta[2]};
+ const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist)*frontface(brush, an, origno[vd.i], NULL);
+
+ mul_v3_v3fl(proxy[vd.i], grab_delta, fade);
- sculpt_clip(sd, ss, vd.co, add);
- if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
}
}
BLI_pbvh_vertex_iter_end;
+ }
+}
+
+static void do_nudge_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush = paint_brush(&sd->paint);
+ float bstrength = ss->cache->bstrength;
+ float grab_delta[3];
+ int n;
+ float an[3];
+ float tmp[3], cono[3];
+
+ copy_v3_v3(grab_delta, ss->cache->grab_delta_symmetry);
+
+ calc_sculpt_normal(sd, ss, an, nodes, totnode);
+
+ cross_v3_v3v3(tmp, an, grab_delta);
+ cross_v3_v3v3(cono, tmp, an);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n = 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test(&test, vd.co)) {
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, an, vd.no, vd.fno);
- BLI_pbvh_node_mark_update(nodes[n]);
+ mul_v3_v3fl(proxy[vd.i], cono, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+}
+
+static void do_snake_hook_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush = paint_brush(&sd->paint);
+ float bstrength = ss->cache->bstrength;
+ float grab_delta[3], an[3];
+ int n;
+ float len;
+
+ if (brush->normal_weight > 0)
+ calc_sculpt_normal(sd, ss, an, nodes, totnode);
+
+ copy_v3_v3(grab_delta, ss->cache->grab_delta_symmetry);
+
+ len = len_v3(grab_delta);
+
+ if (bstrength < 0)
+ negate_v3(grab_delta);
+
+ if (brush->normal_weight > 0) {
+ mul_v3_fl(an, len*brush->normal_weight);
+ mul_v3_fl(grab_delta, 1.0f - brush->normal_weight);
+ add_v3_v3(grab_delta, an);
+ }
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n = 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test(&test, vd.co)) {
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, an, vd.no, vd.fno);
+
+ mul_v3_v3fl(proxy[vd.i], grab_delta, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+}
+
+static void do_thumb_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush = paint_brush(&sd->paint);
+ float bstrength = ss->cache->bstrength;
+ float grab_delta[3];
+ int n;
+ float an[3];
+ float tmp[3], cono[3];
+
+ copy_v3_v3(grab_delta, ss->cache->grab_delta_symmetry);
+
+ calc_sculpt_normal(sd, ss, an, nodes, totnode);
+
+ cross_v3_v3v3(tmp, an, grab_delta);
+ cross_v3_v3v3(cono, tmp, an);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n = 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ SculptUndoNode* unode;
+ SculptBrushTest test;
+ float (*origco)[3];
+ short (*origno)[3];
+ float (*proxy)[3];
+
+ unode= sculpt_undo_push_node(ss, nodes[n]);
+ origco= unode->co;
+ origno= unode->no;
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test(&test, origco[vd.i])) {
+ const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist)*frontface(brush, an, origno[vd.i], NULL);
+
+ mul_v3_v3fl(proxy[vd.i], cono, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+}
+
+static void do_rotate_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush= paint_brush(&sd->paint);
+ float bstrength= ss->cache->bstrength;
+ float an[3];
+ int n;
+ float m[3][3];
+ static const int flip[8] = { 1, -1, -1, 1, -1, 1, 1, -1 };
+ float angle = ss->cache->vertex_rotation * flip[ss->cache->mirror_symmetry_pass];
+
+ calc_sculpt_normal(sd, ss, an, nodes, totnode);
+
+ axis_angle_to_mat3(m, an, angle);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n=0; n<totnode; n++) {
+ PBVHVertexIter vd;
+ SculptUndoNode* unode;
+ SculptBrushTest test;
+ float (*origco)[3];
+ short (*origno)[3];
+ float (*proxy)[3];
+
+ unode= sculpt_undo_push_node(ss, nodes[n]);
+ origco= unode->co;
+ origno= unode->no;
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test(&test, origco[vd.i])) {
+ const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist)*frontface(brush, an, origno[vd.i], NULL);
+
+ mul_v3_m3v3(proxy[vd.i], m, origco[vd.i]);
+ sub_v3_v3(proxy[vd.i], origco[vd.i]);
+ mul_v3_fl(proxy[vd.i], fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
}
}
@@ -1128,60 +1587,66 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int
float lim= ss->cache->radius / 4;
int n;
- /* XXX not working yet for multires */
- if(ss->multires)
- return;
-
- if(ss->cache->flip)
+ if(bstrength < 0)
lim = -lim;
- calc_area_normal(sd, ss, area_normal, nodes, totnode);
+ calc_sculpt_normal(sd, ss, area_normal, nodes, totnode);
- offset[0]= ss->cache->scale[0]*area_normal[0];
- offset[1]= ss->cache->scale[1]*area_normal[1];
- offset[2]= ss->cache->scale[2]*area_normal[2];
+ mul_v3_v3v3(offset, ss->cache->scale, area_normal);
- #pragma omp parallel for private(n) schedule(static)
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for(n=0; n<totnode; n++) {
PBVHVertexIter vd;
SculptBrushTest test;
- float (*origco)[3];
+ SculptUndoNode *unode;
+ float (*origco)[3], *layer_disp;
+ //float (*proxy)[3]; // XXX layer brush needs conversion to proxy but its more complicated
+
+ //proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
- origco= sculpt_undo_push_node(ss, nodes[n])->co;
+ unode= sculpt_undo_push_node(ss, nodes[n]);
+ origco=unode->co;
+ if(!unode->layer_disp)
+ {
+ #pragma omp critical
+ unode->layer_disp= MEM_callocN(sizeof(float)*unode->totvert, "layer disp");
+ }
+
+ layer_disp= unode->layer_disp;
+
sculpt_brush_test_init(ss, &test);
- BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
if(sculpt_brush_test(&test, vd.co)) {
- float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength;
- int index= vd.vert_indices[vd.i];
- float *disp= &ss->layer_disps[index];
+ const float fade = bstrength*ss->cache->radius*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, area_normal, vd.no, vd.fno);
+ float *disp= &layer_disp[vd.i];
float val[3];
-
+
*disp+= fade;
-
+
/* Don't let the displacement go past the limit */
if((lim < 0 && *disp < lim) || (lim > 0 && *disp > lim))
*disp = lim;
-
+
+ mul_v3_v3fl(val, offset, *disp);
+
if(ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) {
+ int index= vd.vert_indices[vd.i];
+
/* persistent base */
- val[0] = ss->layer_co[index][0] + (*disp)*offset[0];
- val[1] = ss->layer_co[index][1] + (*disp)*offset[1];
- val[2] = ss->layer_co[index][2] + (*disp)*offset[2];
+ add_v3_v3(val, ss->layer_co[index]);
}
else {
- val[0] = origco[vd.i][0] + (*disp)*offset[0];
- val[1] = origco[vd.i][1] + (*disp)*offset[1];
- val[2] = origco[vd.i][2] + (*disp)*offset[2];
+ add_v3_v3(val, origco[vd.i]);
}
sculpt_clip(sd, ss, vd.co, val);
- if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
}
}
BLI_pbvh_vertex_iter_end;
-
- BLI_pbvh_node_mark_update(nodes[n]);
}
}
@@ -1191,221 +1656,715 @@ static void do_inflate_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, in
float bstrength= ss->cache->bstrength;
int n;
- #pragma omp parallel for private(n) schedule(static)
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for(n=0; n<totnode; n++) {
PBVHVertexIter vd;
SculptBrushTest test;
-
- sculpt_undo_push_node(ss, nodes[n]);
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
sculpt_brush_test_init(ss, &test);
- BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
if(sculpt_brush_test(&test, vd.co)) {
- float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength;
- float add[3];
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->view_normal, vd.no, vd.fno);
+ float val[3];
- if(vd.fno) copy_v3_v3(add, vd.fno);
- else normal_short_to_float_v3(add, vd.no);
+ if(vd.fno) copy_v3_v3(val, vd.fno);
+ else normal_short_to_float_v3(val, vd.no);
- mul_v3_fl(add, fade * ss->cache->radius);
- add[0]*= ss->cache->scale[0];
- add[1]*= ss->cache->scale[1];
- add[2]*= ss->cache->scale[2];
- add_v3_v3v3(add, add, vd.co);
-
- sculpt_clip(sd, ss, vd.co, add);
- if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ mul_v3_fl(val, fade * ss->cache->radius);
+ mul_v3_v3v3(proxy[vd.i], val, ss->cache->scale);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
}
}
BLI_pbvh_vertex_iter_end;
-
- BLI_pbvh_node_mark_update(nodes[n]);
}
}
-static void calc_flatten_center(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, float co[3])
+static void calc_flatten_center(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, float fc[3])
{
- float outer_dist[FLATTEN_SAMPLE_SIZE];
- float outer_co[FLATTEN_SAMPLE_SIZE][3];
- int i, n;
-
- for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i) {
- zero_v3(outer_co[i]);
- outer_dist[i]= -1.0f;
+ int n;
+
+ float count = 0;
+
+ zero_v3(fc);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n=0; n<totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ SculptUndoNode *unode;
+ float private_fc[3] = {0.0f, 0.0f, 0.0f};
+ int private_count = 0;
+
+ unode = sculpt_undo_push_node(ss, nodes[n]);
+ sculpt_brush_test_init(ss, &test);
+
+ if(ss->cache->original) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test_fast(&test, unode->co[vd.i])) {
+ add_v3_v3(private_fc, vd.co);
+ private_count++;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+ else {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test_fast(&test, vd.co)) {
+ add_v3_v3(private_fc, vd.co);
+ private_count++;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+
+ #pragma omp critical
+ {
+ add_v3_v3(fc, private_fc);
+ count += private_count;
+ }
}
-
- #pragma omp parallel for private(n) schedule(static)
+
+ mul_v3_fl(fc, 1.0f / count);
+}
+
+/* this calculates flatten center and area normal together,
+amortizing the memory bandwidth and loop overhead to calculate both at the same time */
+static void calc_area_normal_and_flatten_center(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, float an[3], float fc[3])
+{
+ int n;
+
+ // an
+ float out_flip[3] = {0.0f, 0.0f, 0.0f};
+
+ // fc
+ float count = 0;
+
+ // an
+ zero_v3(an);
+
+ // fc
+ zero_v3(fc);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for(n=0; n<totnode; n++) {
PBVHVertexIter vd;
SculptBrushTest test;
- int j;
-
- sculpt_undo_push_node(ss, nodes[n]);
+ SculptUndoNode *unode;
+ float private_an[3] = {0.0f, 0.0f, 0.0f};
+ float private_out_flip[3] = {0.0f, 0.0f, 0.0f};
+ float private_fc[3] = {0.0f, 0.0f, 0.0f};
+ int private_count = 0;
+
+ unode = sculpt_undo_push_node(ss, nodes[n]);
sculpt_brush_test_init(ss, &test);
- BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) {
- if(sculpt_brush_test(&test, vd.co)) {
- for(j = 0; j < FLATTEN_SAMPLE_SIZE; ++j) {
- if(test.dist > outer_dist[j]) {
- copy_v3_v3(outer_co[j], vd.co);
- outer_dist[j] = test.dist;
- break;
+ if(ss->cache->original) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test_fast(&test, unode->co[vd.i])) {
+ // an
+ float fno[3];
+
+ normal_short_to_float_v3(fno, unode->no[vd.i]);
+ add_norm_if(ss->cache->view_normal, private_an, private_out_flip, fno);
+
+ // fc
+ add_v3_v3(private_fc, vd.co);
+ private_count++;
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+ else {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if(sculpt_brush_test_fast(&test, vd.co)) {
+ // an
+ if(vd.no) {
+ float fno[3];
+
+ normal_short_to_float_v3(fno, vd.no);
+ add_norm_if(ss->cache->view_normal, private_an, private_out_flip, fno);
+ }
+ else {
+ add_norm_if(ss->cache->view_normal, private_an, private_out_flip, vd.fno);
}
+
+ // fc
+ add_v3_v3(private_fc, vd.co);
+ private_count++;
}
}
+ BLI_pbvh_vertex_iter_end;
}
- BLI_pbvh_vertex_iter_end;
- BLI_pbvh_node_mark_update(nodes[n]);
+ #pragma omp critical
+ {
+ // an
+ add_v3_v3(an, private_an);
+ add_v3_v3(out_flip, private_out_flip);
+
+ // fc
+ add_v3_v3(fc, private_fc);
+ count += private_count;
+ }
+ }
+
+ // an
+ if (is_zero_v3(an))
+ copy_v3_v3(an, out_flip);
+
+ normalize_v3(an);
+
+ // fc
+ mul_v3_fl(fc, 1.0f / count);
+}
+
+static void calc_sculpt_plane(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, float an[3], float fc[3])
+{
+ Brush *brush = paint_brush(&sd->paint);
+
+ if (ss->cache->mirror_symmetry_pass == 0 &&
+ ss->cache->radial_symmetry_pass == 0 &&
+ (ss->cache->first_time || !(brush->flag & BRUSH_ORIGINAL_NORMAL)))
+ {
+ switch (brush->sculpt_plane) {
+ case SCULPT_DISP_DIR_VIEW:
+ viewvector(ss->cache->vc->rv3d, ss->cache->vc->rv3d->twmat[3], an);
+ break;
+
+ case SCULPT_DISP_DIR_X:
+ an[1] = 0.0;
+ an[2] = 0.0;
+ an[0] = 1.0;
+ break;
+
+ case SCULPT_DISP_DIR_Y:
+ an[0] = 0.0;
+ an[2] = 0.0;
+ an[1] = 1.0;
+ break;
+
+ case SCULPT_DISP_DIR_Z:
+ an[0] = 0.0;
+ an[1] = 0.0;
+ an[2] = 1.0;
+ break;
+
+ case SCULPT_DISP_DIR_AREA:
+ calc_area_normal_and_flatten_center(sd, ss, nodes, totnode, an, fc);
+
+ default:
+ break;
+ }
+
+ // fc
+ /* flatten center has not been calculated yet if we are not using the area normal */
+ if (brush->sculpt_plane != SCULPT_DISP_DIR_AREA)
+ calc_flatten_center(sd, ss, nodes, totnode, fc);
+
+ // an
+ copy_v3_v3(ss->cache->last_area_normal, an);
+
+ // fc
+ copy_v3_v3(ss->cache->last_center, fc);
+ }
+ else {
+ // an
+ copy_v3_v3(an, ss->cache->last_area_normal);
+
+ // fc
+ copy_v3_v3(fc, ss->cache->last_center);
+
+ // an
+ flip_coord(an, an, ss->cache->mirror_symmetry_pass);
+
+ // fc
+ flip_coord(fc, fc, ss->cache->mirror_symmetry_pass);
+
+ // an
+ mul_m4_v3(ss->cache->symm_rot_mat, an);
+
+ // fc
+ mul_m4_v3(ss->cache->symm_rot_mat, fc);
}
-
- co[0] = co[1] = co[2] = 0.0f;
- for(i = 0; i < FLATTEN_SAMPLE_SIZE; ++i)
- if(outer_dist[i] >= 0.0f)
- add_v3_v3v3(co, co, outer_co[i]);
- mul_v3_fl(co, 1.0f / FLATTEN_SAMPLE_SIZE);
}
/* Projects a point onto a plane along the plane's normal */
static void point_plane_project(float intr[3], float co[3], float plane_normal[3], float plane_center[3])
{
- float p1[3], sub1[3], sub2[3];
+ sub_v3_v3v3(intr, co, plane_center);
+ mul_v3_v3fl(intr, plane_normal, dot_v3v3(plane_normal, intr));
+ sub_v3_v3v3(intr, co, intr);
+}
- /* Find the intersection between squash-plane and vertex (along the area normal) */
- sub_v3_v3v3(p1, co, plane_normal);
- sub_v3_v3v3(sub1, plane_center, p1);
- sub_v3_v3v3(sub2, co, p1);
- sub_v3_v3v3(intr, co, p1);
- mul_v3_fl(intr, dot_v3v3(plane_normal, sub1) / dot_v3v3(plane_normal, sub2));
- add_v3_v3v3(intr, intr, p1);
+static int plane_trim(StrokeCache *cache, Brush *brush, float val[3])
+{
+ return !(brush->flag & BRUSH_PLANE_TRIM) || (dot_v3v3(val, val) <= cache->radius_squared*cache->plane_trim_squared);
}
-static int plane_point_side(float co[3], float plane_normal[3], float plane_center[3], int flip)
+static int plane_point_side_flip(float co[3], float plane_normal[3], float plane_center[3], int flip)
{
- float delta[3];
- float d;
+ float delta[3];
+ float d;
+
+ sub_v3_v3v3(delta, co, plane_center);
+ d = dot_v3v3(plane_normal, delta);
+
+ if (flip) d = -d;
- sub_v3_v3v3(delta, co, plane_center);
- d = dot_v3v3(plane_normal, delta);
+ return d <= 0.0f;
+}
- if(flip)
- d = -d;
+static int plane_point_side(float co[3], float plane_normal[3], float plane_center[3])
+{
+ float delta[3];
- return d <= 0.0f;
+ sub_v3_v3v3(delta, co, plane_center);
+ return dot_v3v3(plane_normal, delta) <= 0.0f;
}
-static void do_flatten_clay_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode, int clay)
+static float get_offset(Sculpt *sd, SculptSession *ss)
+{
+ Brush* brush = paint_brush(&sd->paint);
+
+ float rv = brush->plane_offset;
+
+ if (brush->flag & BRUSH_OFFSET_PRESSURE) {
+ rv *= ss->cache->pressure;
+ }
+
+ return rv;
+}
+
+static void do_flatten_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
{
- /* area_normal and cntr define the plane towards which vertices are squashed */
Brush *brush = paint_brush(&sd->paint);
- float bstrength= ss->cache->bstrength;
- float area_normal[3];
- float cntr[3], cntr2[3] = {0}, bstr = 0;
- int n, flip = 0;
- calc_area_normal(sd, ss, area_normal, nodes, totnode);
- calc_flatten_center(sd, ss, nodes, totnode, cntr);
+ float bstrength = ss->cache->bstrength;
+ const float radius = ss->cache->radius;
+
+ float an[3];
+ float fc[3];
+
+ float offset = get_offset(sd, ss);
+
+ float displace;
+
+ int n;
+
+ float temp[3];
+
+ calc_sculpt_plane(sd, ss, nodes, totnode, an, fc);
+
+ displace = radius*offset;
+
+ mul_v3_v3v3(temp, an, ss->cache->scale);
+ mul_v3_fl(temp, displace);
+ add_v3_v3(fc, temp);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for(n = 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if (sculpt_brush_test_sq(&test, vd.co)) {
+ float intr[3];
+ float val[3];
+
+ point_plane_project(intr, vd.co, an, fc);
+
+ sub_v3_v3v3(val, intr, vd.co);
+
+ if (plane_trim(ss->cache, brush, val)) {
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist))*frontface(brush, an, vd.no, vd.fno);
+
+ mul_v3_v3fl(proxy[vd.i], val, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+}
+
+static void do_clay_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush = paint_brush(&sd->paint);
+
+ float bstrength = ss->cache->bstrength;
+ float radius = ss->cache->radius;
+ float offset = get_offset(sd, ss);
+
+ float displace;
+
+ float an[3]; // area normal
+ float fc[3]; // flatten center
- if(clay) {
- bstr= brush_strength(sd, ss->cache);
- /* Limit clay application to here */
- cntr2[0]=cntr[0]+area_normal[0]*bstr*ss->cache->scale[0];
- cntr2[1]=cntr[1]+area_normal[1]*bstr*ss->cache->scale[1];
- cntr2[2]=cntr[2]+area_normal[2]*bstr*ss->cache->scale[2];
- flip = bstr < 0;
+ int n;
+
+ float temp[3];
+ //float p[3];
+
+ int flip;
+
+ calc_sculpt_plane(sd, ss, nodes, totnode, an, fc);
+
+ flip = bstrength < 0;
+
+ if (flip) {
+ bstrength = -bstrength;
+ radius = -radius;
}
- #pragma omp parallel for private(n) schedule(static)
- for(n=0; n<totnode; n++) {
+ displace = radius * (0.25f+offset);
+
+ mul_v3_v3v3(temp, an, ss->cache->scale);
+ mul_v3_fl(temp, displace);
+ add_v3_v3(fc, temp);
+
+ //add_v3_v3v3(p, ss->cache->location, an);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n = 0; n < totnode; n++) {
PBVHVertexIter vd;
SculptBrushTest test;
-
- sculpt_undo_push_node(ss, nodes[n]);
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
sculpt_brush_test_init(ss, &test);
- BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) {
- if(sculpt_brush_test(&test, vd.co)) {
- float intr[3], val[3];
-
- if(!clay || plane_point_side(vd.co, area_normal, cntr2, flip)) {
- const float fade = tex_strength(ss, brush, vd.co, test.dist)*bstrength;
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if (sculpt_brush_test_sq(&test, vd.co)) {
+ if (plane_point_side_flip(vd.co, an, fc, flip)) {
+ //if (sculpt_brush_test_cyl(&test, vd.co, ss->cache->location, p)) {
+ float intr[3];
+ float val[3];
- /* Find the intersection between squash-plane and vertex (along the area normal) */
- point_plane_project(intr, vd.co, area_normal, cntr);
+ point_plane_project(intr, vd.co, an, fc);
sub_v3_v3v3(val, intr, vd.co);
- if(clay) {
- if(bstr > FLT_EPSILON)
- mul_v3_fl(val, fade / bstr);
- else
- mul_v3_fl(val, fade);
- /* Clay displacement */
- val[0]+=area_normal[0] * ss->cache->scale[0]*fade;
- val[1]+=area_normal[1] * ss->cache->scale[1]*fade;
- val[2]+=area_normal[2] * ss->cache->scale[2]*fade;
+ if (plane_trim(ss->cache, brush, val)) {
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist))*frontface(brush, an, vd.no, vd.fno);
+
+ mul_v3_v3fl(proxy[vd.i], val, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
}
- else
- mul_v3_fl(val, fabs(fade));
+ }
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+}
- add_v3_v3v3(val, val, vd.co);
+static void do_clay_tubes_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush = paint_brush(&sd->paint);
- sculpt_clip(sd, ss, vd.co, val);
- if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ float bstrength = ss->cache->bstrength;
+ float radius = ss->cache->radius;
+ float offset = get_offset(sd, ss);
+
+ float displace;
+
+ float sn[3]; // sculpt normal
+ float an[3]; // area normal
+ float fc[3]; // flatten center
+
+ int n;
+
+ float temp[3];
+ float mat[4][4];
+ float scale[4][4];
+ float tmat[4][4];
+
+ int flip;
+
+ calc_sculpt_plane(sd, ss, nodes, totnode, sn, fc);
+
+ if (brush->sculpt_plane != SCULPT_DISP_DIR_AREA || (brush->flag & BRUSH_ORIGINAL_NORMAL))
+ calc_area_normal(sd, ss, an, nodes, totnode);
+ else
+ copy_v3_v3(an, sn);
+
+ if (ss->cache->first_time)
+ return; // delay the first daub because grab delta is not setup
+
+ flip = bstrength < 0;
+
+ if (flip) {
+ bstrength = -bstrength;
+ radius = -radius;
+ }
+
+ displace = radius * (0.25f+offset);
+
+ mul_v3_v3v3(temp, sn, ss->cache->scale);
+ mul_v3_fl(temp, displace);
+ add_v3_v3(fc, temp);
+
+ cross_v3_v3v3(mat[0], an, ss->cache->grab_delta_symmetry); mat[0][3] = 0;
+ cross_v3_v3v3(mat[1], an, mat[0]); mat[1][3] = 0;
+ copy_v3_v3(mat[2], an); mat[2][3] = 0;
+ copy_v3_v3(mat[3], ss->cache->location); mat[3][3] = 1;
+ normalize_m4(mat);
+ scale_m4_fl(scale, ss->cache->radius);
+ mul_m4_m4m4(tmat, scale, mat);
+ invert_m4_m4(mat, tmat);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n = 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if (sculpt_brush_test_cube(&test, vd.co, mat)) {
+ if (plane_point_side_flip(vd.co, sn, fc, flip)) {
+ float intr[3];
+ float val[3];
+
+ point_plane_project(intr, vd.co, sn, fc);
+
+ sub_v3_v3v3(val, intr, vd.co);
+
+ if (plane_trim(ss->cache, brush, val)) {
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, ss->cache->radius*test.dist)*frontface(brush, an, vd.no, vd.fno);
+
+ mul_v3_v3fl(proxy[vd.i], val, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
}
}
}
BLI_pbvh_vertex_iter_end;
+ }
+}
+
+static void do_fill_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
+{
+ Brush *brush = paint_brush(&sd->paint);
- BLI_pbvh_node_mark_update(nodes[n]);
+ float bstrength = ss->cache->bstrength;
+ const float radius = ss->cache->radius;
+
+ float an[3];
+ float fc[3];
+ float offset = get_offset(sd, ss);
+
+ float displace;
+
+ int n;
+
+ float temp[3];
+
+ calc_sculpt_plane(sd, ss, nodes, totnode, an, fc);
+
+ displace = radius*offset;
+
+ mul_v3_v3v3(temp, an, ss->cache->scale);
+ mul_v3_fl(temp, displace);
+ add_v3_v3(fc, temp);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n = 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if (sculpt_brush_test_sq(&test, vd.co)) {
+ if (plane_point_side(vd.co, an, fc)) {
+ float intr[3];
+ float val[3];
+
+ point_plane_project(intr, vd.co, an, fc);
+
+ sub_v3_v3v3(val, intr, vd.co);
+
+ if (plane_trim(ss->cache, brush, val)) {
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist))*frontface(brush, an, vd.no, vd.fno);
+
+ mul_v3_v3fl(proxy[vd.i], val, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
}
}
-static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache)
+static void do_scrape_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int totnode)
{
- SculptSearchSphereData data;
Brush *brush = paint_brush(&sd->paint);
- PBVHNode **nodes= NULL;
- rctf mr;
- float xrad, yrad;
- int totnode;
- xrad = cache->pixel_radius+5.0f;
- yrad = cache->pixel_radius+5.0f;
+ float bstrength = ss->cache->bstrength;
+ const float radius = ss->cache->radius;
+ float an[3];
+ float fc[3];
+ float offset = get_offset(sd, ss);
- mr.xmin = cache->mouse[0] - xrad - cache->vc->ar->winrct.xmin;
- mr.xmax = cache->mouse[0] + xrad - cache->vc->ar->winrct.xmin;
- mr.ymin = cache->mouse[1] - yrad - cache->vc->ar->winrct.ymin;
- mr.ymax = cache->mouse[1] + yrad - cache->vc->ar->winrct.ymin;
-
- cache->prect.xmin = MIN2(cache->prect.xmin, mr.xmin);
- cache->prect.xmax = MAX2(cache->prect.xmax, mr.xmax);
- cache->prect.ymin = MIN2(cache->prect.ymin, mr.ymin);
- cache->prect.ymax = MAX2(cache->prect.ymax, mr.ymax);
+ float displace;
- data.ss = ss;
- data.sd = sd;
- data.radius_squared = ss->cache->radius * ss->cache->radius;
+ int n;
- /* Build a list of all nodes that are potentially within the brush's
- area of influence */
- if(brush->sculpt_tool == SCULPT_TOOL_GRAB) {
- data.original= 1;
- BLI_pbvh_search_gather(ss->tree, sculpt_search_sphere_cb, &data,
- &nodes, &totnode);
+ float temp[3];
- if(cache->first_time)
- copy_v3_v3(ss->cache->grab_active_location[ss->cache->symmetry], ss->cache->location);
- else
- copy_v3_v3(ss->cache->location, ss->cache->grab_active_location[ss->cache->symmetry]);
+ calc_sculpt_plane(sd, ss, nodes, totnode, an, fc);
+
+ displace = -radius*offset;
+
+ mul_v3_v3v3(temp, an, ss->cache->scale);
+ mul_v3_fl(temp, displace);
+ add_v3_v3(fc, temp);
+
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n = 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ SculptBrushTest test;
+ float (*proxy)[3];
+
+ proxy= BLI_pbvh_node_add_proxy(ss->pbvh, nodes[n])->co;
+
+ sculpt_brush_test_init(ss, &test);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ if (sculpt_brush_test_sq(&test, vd.co)) {
+ if (!plane_point_side(vd.co, an, fc)) {
+ float intr[3];
+ float val[3];
+
+ point_plane_project(intr, vd.co, an, fc);
+
+ sub_v3_v3v3(val, intr, vd.co);
+
+ if (plane_trim(ss->cache, brush, val)) {
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist))*frontface(brush, an, vd.no, vd.fno);
+
+ mul_v3_v3fl(proxy[vd.i], val, fade);
+
+ if(vd.mvert)
+ vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ }
+ }
+ BLI_pbvh_vertex_iter_end;
}
- else {
- BLI_pbvh_search_gather(ss->tree, sculpt_search_sphere_cb, &data,
- &nodes, &totnode);
+}
+
+void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
+{
+ Mesh *me= (Mesh*)ob->data;
+ float (*ofs)[3]= NULL;
+ int a, is_basis= 0;
+ KeyBlock *currkey;
+
+ /* for relative keys editing of base should update other keys */
+ if (me->key->type == KEY_RELATIVE)
+ for (currkey = me->key->block.first; currkey; currkey= currkey->next)
+ if(ob->shapenr-1 == currkey->relative) {
+ is_basis= 1;
+ break;
+ }
+
+ if (is_basis) {
+ ofs= key_to_vertcos(ob, kb);
+
+ /* calculate key coord offsets (from previous location) */
+ for (a= 0; a < me->totvert; a++) {
+ VECSUB(ofs[a], vertCos[a], ofs[a]);
+ }
+
+ /* apply offsets on other keys */
+ currkey = me->key->block.first;
+ while (currkey) {
+ int apply_offset = ((currkey != kb) && (ob->shapenr-1 == currkey->relative));
+
+ if (apply_offset)
+ offset_to_key(ob, currkey, ofs);
+
+ currkey= currkey->next;
+ }
+
+ MEM_freeN(ofs);
}
+ /* modifying of basis key should update mesh */
+ if (kb == me->key->refkey) {
+ MVert *mvert= me->mvert;
+
+ for (a= 0; a < me->totvert; a++, mvert++)
+ VECCOPY(mvert->co, vertCos[a]);
+
+ mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
+ }
+
+ /* apply new coords on active key block */
+ vertcos_to_key(ob, kb, vertCos);
+}
+
+/* copy the modified vertices from bvh to the active key */
+static void sculpt_update_keyblock(SculptSession *ss)
+{
+ float (*vertCos)[3]= BLI_pbvh_get_vertCos(ss->pbvh);
+
+ if (vertCos) {
+ sculpt_vertcos_to_key(ss->ob, ss->kb, vertCos);
+ MEM_freeN(vertCos);
+ }
+}
+
+static void do_brush_action(Sculpt *sd, SculptSession *ss, Brush *brush)
+{
+ SculptSearchSphereData data;
+ PBVHNode **nodes = NULL;
+ int n, totnode;
+
+ /* Build a list of all nodes that are potentially within the brush's area of influence */
+ data.ss = ss;
+ data.sd = sd;
+ data.radius_squared = ss->cache->radius_squared;
+ data.original = ELEM4(brush->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_ROTATE, SCULPT_TOOL_THUMB, SCULPT_TOOL_LAYER);
+ BLI_pbvh_search_gather(ss->pbvh, sculpt_search_sphere_cb, &data, &nodes, &totnode);
+
/* Only act if some verts are inside the brush area */
- if(totnode) {
+ if (totnode) {
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n= 0; n < totnode; n++) {
+ sculpt_undo_push_node(ss, nodes[n]);
+ BLI_pbvh_node_mark_update(nodes[n]);
+ }
+
/* Apply one type of brush action */
switch(brush->sculpt_tool){
case SCULPT_TOOL_DRAW:
@@ -1414,6 +2373,12 @@ static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache)
case SCULPT_TOOL_SMOOTH:
do_smooth_brush(sd, ss, nodes, totnode);
break;
+ case SCULPT_TOOL_CREASE:
+ do_crease_brush(sd, ss, nodes, totnode);
+ break;
+ case SCULPT_TOOL_BLOB:
+ do_crease_brush(sd, ss, nodes, totnode);
+ break;
case SCULPT_TOOL_PINCH:
do_pinch_brush(sd, ss, nodes, totnode);
break;
@@ -1423,55 +2388,240 @@ static void do_brush_action(Sculpt *sd, SculptSession *ss, StrokeCache *cache)
case SCULPT_TOOL_GRAB:
do_grab_brush(sd, ss, nodes, totnode);
break;
+ case SCULPT_TOOL_ROTATE:
+ do_rotate_brush(sd, ss, nodes, totnode);
+ break;
+ case SCULPT_TOOL_SNAKE_HOOK:
+ do_snake_hook_brush(sd, ss, nodes, totnode);
+ break;
+ case SCULPT_TOOL_NUDGE:
+ do_nudge_brush(sd, ss, nodes, totnode);
+ break;
+ case SCULPT_TOOL_THUMB:
+ do_thumb_brush(sd, ss, nodes, totnode);
+ break;
case SCULPT_TOOL_LAYER:
do_layer_brush(sd, ss, nodes, totnode);
break;
case SCULPT_TOOL_FLATTEN:
- do_flatten_clay_brush(sd, ss, nodes, totnode, 0);
+ do_flatten_brush(sd, ss, nodes, totnode);
break;
case SCULPT_TOOL_CLAY:
- do_flatten_clay_brush(sd, ss, nodes, totnode, 1);
+ do_clay_brush(sd, ss, nodes, totnode);
+ break;
+ case SCULPT_TOOL_CLAY_TUBES:
+ do_clay_tubes_brush(sd, ss, nodes, totnode);
+ break;
+ case SCULPT_TOOL_FILL:
+ do_fill_brush(sd, ss, nodes, totnode);
+ break;
+ case SCULPT_TOOL_SCRAPE:
+ do_scrape_brush(sd, ss, nodes, totnode);
break;
}
-
+
+ if (brush->sculpt_tool != SCULPT_TOOL_SMOOTH && brush->autosmooth_factor > 0) {
+ if (brush->flag & BRUSH_INVERSE_SMOOTH_PRESSURE) {
+ smooth(sd, ss, nodes, totnode, brush->autosmooth_factor*(1-ss->cache->pressure));
+ }
+ else {
+ smooth(sd, ss, nodes, totnode, brush->autosmooth_factor);
+ }
+ }
+
/* copy the modified vertices from mesh to the active key */
- if(ss->kb) mesh_to_key(ss->ob->data, ss->kb);
-
- if(nodes)
- MEM_freeN(nodes);
- }
+ if(ss->kb)
+ mesh_to_key(ss->ob->data, ss->kb);
+
+ /* optimization: we could avoid copying new coords to keyblock at each */
+ /* stroke step if there are no modifiers due to pbvh is used for displaying */
+ /* so to increase speed we'll copy new coords to keyblock when stroke is done */
+ if(ss->kb && ss->modifiers_active) sculpt_update_keyblock(ss);
+
+ MEM_freeN(nodes);
+ }
}
+static void sculpt_combine_proxies(Sculpt *sd, SculptSession *ss)
+{
+ Brush *brush= paint_brush(&sd->paint);
+ PBVHNode** nodes;
+ int totnode;
+ int n;
+
+ BLI_pbvh_gather_proxies(ss->pbvh, &nodes, &totnode);
+
+ switch (brush->sculpt_tool) {
+ case SCULPT_TOOL_GRAB:
+ case SCULPT_TOOL_ROTATE:
+ case SCULPT_TOOL_THUMB:
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n= 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ PBVHProxyNode* proxies;
+ int proxy_count;
+ float (*origco)[3];
+
+ origco= sculpt_undo_push_node(ss, nodes[n])->co;
+
+ BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ float val[3];
+ int p;
+
+ copy_v3_v3(val, origco[vd.i]);
+
+ for (p= 0; p < proxy_count; p++)
+ add_v3_v3(val, proxies[p].co[vd.i]);
+
+ sculpt_clip(sd, ss, vd.co, val);
+ }
+ BLI_pbvh_vertex_iter_end;
+
+ BLI_pbvh_node_free_proxies(nodes[n]);
+ }
+
+ break;
+
+ case SCULPT_TOOL_DRAW:
+ case SCULPT_TOOL_CLAY:
+ case SCULPT_TOOL_CLAY_TUBES:
+ case SCULPT_TOOL_CREASE:
+ case SCULPT_TOOL_BLOB:
+ case SCULPT_TOOL_FILL:
+ case SCULPT_TOOL_FLATTEN:
+ case SCULPT_TOOL_INFLATE:
+ case SCULPT_TOOL_NUDGE:
+ case SCULPT_TOOL_PINCH:
+ case SCULPT_TOOL_SCRAPE:
+ case SCULPT_TOOL_SNAKE_HOOK:
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n= 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ PBVHProxyNode* proxies;
+ int proxy_count;
+
+ BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count);
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ float val[3];
+ int p;
+
+ copy_v3_v3(val, vd.co);
+
+ for (p= 0; p < proxy_count; p++)
+ add_v3_v3(val, proxies[p].co[vd.i]);
+
+ sculpt_clip(sd, ss, vd.co, val);
+ }
+ BLI_pbvh_vertex_iter_end;
+
+ BLI_pbvh_node_free_proxies(nodes[n]);
+
+ }
+
+ break;
+
+ case SCULPT_TOOL_SMOOTH:
+ case SCULPT_TOOL_LAYER:
+ default:
+ break;
+ }
+
+ if (nodes)
+ MEM_freeN(nodes);
+}
+
+//static int max_overlap_count(Sculpt *sd)
+//{
+// int count[3];
+// int i, j;
+//
+// for (i= 0; i < 3; i++) {
+// count[i] = sd->radial_symm[i];
+//
+// for (j= 0; j < 3; j++) {
+// if (i != j && sd->flags & (SCULPT_SYMM_X<<i))
+// count[i] *= 2;
+// }
+// }
+//
+// return MAX3(count[0], count[1], count[2]);
+//}
+
/* Flip all the editdata across the axis/axes specified by symm. Used to
calculate multiple modifications to the mesh when symmetry is enabled. */
-static void calc_brushdata_symm(StrokeCache *cache, const char symm)
+static void calc_brushdata_symm(Sculpt *sd, StrokeCache *cache, const char symm, const char axis, const float angle, const float feather)
{
flip_coord(cache->location, cache->true_location, symm);
- flip_coord(cache->view_normal_symmetry, cache->view_normal, symm);
flip_coord(cache->grab_delta_symmetry, cache->grab_delta, symm);
- cache->symmetry= symm;
+ flip_coord(cache->view_normal, cache->true_view_normal, symm);
+
+ // XXX This reduces the length of the grab delta if it approaches the line of symmetry
+ // XXX However, a different approach appears to be needed
+ //if (sd->flags & SCULPT_SYMMETRY_FEATHER) {
+ // float frac = 1.0f/max_overlap_count(sd);
+ // float reduce = (feather-frac)/(1-frac);
+
+ // printf("feather: %f frac: %f reduce: %f\n", feather, frac, reduce);
+
+ // if (frac < 1)
+ // mul_v3_fl(cache->grab_delta_symmetry, reduce);
+ //}
+
+ unit_m4(cache->symm_rot_mat);
+ unit_m4(cache->symm_rot_mat_inv);
+ rotate_m4(cache->symm_rot_mat, axis, angle);
+ rotate_m4(cache->symm_rot_mat_inv, axis, -angle);
+
+ mul_m4_v3(cache->symm_rot_mat, cache->location);
+ mul_m4_v3(cache->symm_rot_mat, cache->grab_delta_symmetry);
+}
+
+static void do_radial_symmetry(Sculpt *sd, SculptSession *ss, Brush *brush, const char symm, const int axis, const float feather)
+{
+ int i;
+
+ for(i = 1; i < sd->radial_symm[axis-'X']; ++i) {
+ const float angle = 2*M_PI*i/sd->radial_symm[axis-'X'];
+ ss->cache->radial_symmetry_pass= i;
+ calc_brushdata_symm(sd, ss->cache, symm, axis, angle, feather);
+ do_brush_action(sd, ss, brush);
+ }
}
static void do_symmetrical_brush_actions(Sculpt *sd, SculptSession *ss)
{
+ Brush *brush = paint_brush(&sd->paint);
StrokeCache *cache = ss->cache;
const char symm = sd->flags & 7;
int i;
- copy_v3_v3(cache->location, cache->true_location);
- copy_v3_v3(cache->grab_delta_symmetry, cache->grab_delta);
- cache->symmetry = 0;
- cache->bstrength = brush_strength(sd, cache);
- do_brush_action(sd, ss, cache);
+ float feather = calc_symmetry_feather(sd, ss->cache);
+
+ cache->bstrength= brush_strength(sd, cache, feather);
- for(i = 1; i <= symm; ++i) {
- if(symm & i && (symm != 5 || i != 3) && (symm != 6 || (i != 3 && i != 5))) {
- calc_brushdata_symm(cache, i);
- do_brush_action(sd, ss, cache);
+ cache->symmetry= symm;
+
+ /* symm is a bit combination of XYZ - 1 is mirror X; 2 is Y; 3 is XY; 4 is Z; 5 is XZ; 6 is YZ; 7 is XYZ */
+ for(i = 0; i <= symm; ++i) {
+ if(i == 0 || (symm & i && (symm != 5 || i != 3) && (symm != 6 || (i != 3 && i != 5)))) {
+ cache->mirror_symmetry_pass= i;
+ cache->radial_symmetry_pass= 0;
+
+ calc_brushdata_symm(sd, cache, i, 0, 0, feather);
+ do_brush_action(sd, ss, brush);
+
+ do_radial_symmetry(sd, ss, brush, i, 'X', feather);
+ do_radial_symmetry(sd, ss, brush, i, 'Y', feather);
+ do_radial_symmetry(sd, ss, brush, i, 'Z', feather);
}
}
- cache->first_time = 0;
+ sculpt_combine_proxies(sd, ss);
+
+ cache->first_time= 0;
}
static void sculpt_update_tex(Sculpt *sd, SculptSession *ss)
@@ -1484,86 +2634,28 @@ static void sculpt_update_tex(Sculpt *sd, SculptSession *ss)
}
/* Need to allocate a bigger buffer for bigger brush size */
- ss->texcache_side = brush->size * 2;
+ ss->texcache_side = 2*sculpt_get_brush_size(brush);
if(!ss->texcache || ss->texcache_side > ss->texcache_actual) {
- ss->texcache = brush_gen_texture_cache(brush, brush->size);
+ ss->texcache = brush_gen_texture_cache(brush, sculpt_get_brush_size(brush));
ss->texcache_actual = ss->texcache_side;
}
}
-/* Checks whether full update mode (slower) needs to be used to work with modifiers */
-static int sculpt_modifiers_active(Scene *scene, Object *ob)
-{
- ModifierData *md;
-
- for(md= modifiers_getVirtualModifierList(ob); md; md= md->next) {
- if(modifier_isEnabled(scene, md, eModifierMode_Realtime))
- if(!ELEM(md->type, eModifierType_Multires, eModifierType_ShapeKey))
- return 1;
- }
-
- return 0;
-}
-
-/* Sculpt mode handles multires differently from regular meshes, but only if
- it's the last modifier on the stack and it is not on the first level */
-struct MultiresModifierData *sculpt_multires_active(Object *ob)
-{
- ModifierData *md, *nmd;
-
- for(md= modifiers_getVirtualModifierList(ob); md; md= md->next) {
- if(md->type == eModifierType_Multires) {
- MultiresModifierData *mmd= (MultiresModifierData*)md;
-
- /* Check if any of the modifiers after multires are active
- * if not it can use the multires struct */
- for (nmd= md->next; nmd; nmd= nmd->next)
- if(nmd->mode & eModifierMode_Realtime)
- break;
-
- if(!nmd && mmd->sculptlvl > 0)
- return mmd;
- }
- }
-
- return NULL;
-}
-
-void sculpt_key_to_mesh(KeyBlock *kb, Object *ob)
-{
- Mesh *me= ob->data;
-
- key_to_mesh(kb, me);
- mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
-}
-
-void sculpt_mesh_to_key(Object *ob, KeyBlock *kb)
-{
- Mesh *me= ob->data;
-
- mesh_to_key(me, kb);
-}
-
void sculpt_update_mesh_elements(Scene *scene, Object *ob, int need_fmap)
{
- DerivedMesh *dm = mesh_get_derived_final(scene, ob, 0);
+ DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
SculptSession *ss = ob->sculpt;
-
+ MultiresModifierData *mmd= sculpt_multires_active(scene, ob);
+
ss->ob= ob;
- if((ob->shapeflag & OB_SHAPE_LOCK) && !sculpt_multires_active(ob)) {
- ss->kb= ob_get_keyblock(ob);
- ss->refkb= ob_get_reference_keyblock(ob);
- }
- else {
- ss->kb= NULL;
- ss->refkb= NULL;
- }
+ ss->modifiers_active= sculpt_modifiers_active(scene, ob);
- /* need to make PBVH with shape key coordinates */
- if(ss->kb) sculpt_key_to_mesh(ss->kb, ss->ob);
+ if((ob->shapeflag & OB_SHAPE_LOCK) && !mmd) ss->kb= ob_get_keyblock(ob);
+ else ss->kb= NULL;
- if((ss->multires = sculpt_multires_active(ob))) {
+ if(mmd) {
+ ss->multires = mmd;
ss->totvert = dm->getNumVerts(dm);
ss->totface = dm->getNumTessFaces(dm);
ss->mvert= NULL;
@@ -1577,10 +2669,22 @@ void sculpt_update_mesh_elements(Scene *scene, Object *ob, int need_fmap)
ss->mvert = me->mvert;
ss->mface = me->mface;
ss->face_normals = NULL;
+ ss->multires = NULL;
}
- ss->tree = dm->getPBVH(ob, dm);
+ ss->pbvh = dm->getPBVH(ob, dm);
ss->fmap = (need_fmap && dm->getFaceMap)? dm->getFaceMap(ob, dm): NULL;
+
+ /* if pbvh is deformed, key block is already applied to it */
+ if (ss->kb && !BLI_pbvh_isDeformed(ss->pbvh)) {
+ float (*vertCos)[3]= key_to_vertcos(ob, ss->kb);
+
+ if (vertCos) {
+ /* apply shape keys coordinates to PBVH */
+ BLI_pbvh_apply_vertCos(ss->pbvh, vertCos);
+ MEM_freeN(vertCos);
+ }
+ }
}
static int sculpt_mode_poll(bContext *C)
@@ -1603,16 +2707,32 @@ static char *sculpt_tool_name(Sculpt *sd)
return "Draw Brush"; break;
case SCULPT_TOOL_SMOOTH:
return "Smooth Brush"; break;
+ case SCULPT_TOOL_CREASE:
+ return "Crease Brush"; break;
+ case SCULPT_TOOL_BLOB:
+ return "Blob Brush"; break;
case SCULPT_TOOL_PINCH:
return "Pinch Brush"; break;
case SCULPT_TOOL_INFLATE:
return "Inflate Brush"; break;
case SCULPT_TOOL_GRAB:
return "Grab Brush"; break;
+ case SCULPT_TOOL_NUDGE:
+ return "Nudge Brush"; break;
+ case SCULPT_TOOL_THUMB:
+ return "Thumb Brush"; break;
case SCULPT_TOOL_LAYER:
return "Layer Brush"; break;
case SCULPT_TOOL_FLATTEN:
- return "Flatten Brush"; break;
+ return "Flatten Brush"; break;
+ case SCULPT_TOOL_CLAY:
+ return "Clay Brush"; break;
+ case SCULPT_TOOL_CLAY_TUBES:
+ return "Clay Tubes Brush"; break;
+ case SCULPT_TOOL_FILL:
+ return "Fill Brush"; break;
+ case SCULPT_TOOL_SCRAPE:
+ return "Scrape Brush"; break;
default:
return "Sculpting"; break;
}
@@ -1664,7 +2784,7 @@ static void SCULPT_OT_radial_control(wmOperatorType *ot)
}
/**** Operator for applying a stroke (various attributes including mouse path)
- using the current brush. ****/
+ using the current brush. ****/
static float unproject_brush_radius(Object *ob, ViewContext *vc, float center[3], float offset)
{
@@ -1690,13 +2810,60 @@ static void sculpt_cache_free(StrokeCache *cache)
MEM_freeN(cache);
}
+int sculpt_get_brush_size(Brush *brush)
+{
+ return (U.sculpt_paint_settings & SCULPT_PAINT_USE_UNIFIED_SIZE) ? U.sculpt_paint_unified_size : brush->size;
+}
+
+void sculpt_set_brush_size(Brush *brush, int size)
+{
+ if (U.sculpt_paint_settings & SCULPT_PAINT_USE_UNIFIED_SIZE)
+ U.sculpt_paint_unified_size = size;
+ else
+ brush->size = size;
+}
+
+int sculpt_get_lock_brush_size(Brush *brush)
+{
+ return (U.sculpt_paint_settings & SCULPT_PAINT_USE_UNIFIED_SIZE) ? (U.sculpt_paint_settings & SCULPT_PAINT_UNIFIED_LOCK_BRUSH_SIZE) : (brush->flag & BRUSH_LOCK_SIZE);
+}
+
+float sculpt_get_brush_unprojected_radius(Brush *brush)
+{
+ return (U.sculpt_paint_settings & SCULPT_PAINT_USE_UNIFIED_SIZE) ? U.sculpt_paint_unified_unprojected_radius : brush->unprojected_radius;
+}
+
+void sculpt_set_brush_unprojected_radius(Brush *brush, float unprojected_radius)
+{
+ if (U.sculpt_paint_settings & SCULPT_PAINT_USE_UNIFIED_SIZE)
+ U.sculpt_paint_unified_unprojected_radius = unprojected_radius;
+ else
+ brush->unprojected_radius = unprojected_radius;
+}
+
+float sculpt_get_brush_alpha(Brush *brush)
+{
+ return (U.sculpt_paint_settings & SCULPT_PAINT_USE_UNIFIED_ALPHA) ? U.sculpt_paint_unified_alpha : brush->alpha;
+}
+
+void sculpt_set_brush_alpha(Brush *brush, float alpha)
+{
+ if (U.sculpt_paint_settings & SCULPT_PAINT_USE_UNIFIED_ALPHA)
+ U.sculpt_paint_unified_alpha = alpha;
+ else
+ brush->alpha = alpha;
+}
+
/* Initialize the stroke cache invariants from operator properties */
-static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bContext *C, wmOperator *op)
+static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSession *ss, wmOperator *op, wmEvent *event)
{
StrokeCache *cache = MEM_callocN(sizeof(StrokeCache), "stroke cache");
Brush *brush = paint_brush(&sd->paint);
ViewContext *vc = paint_stroke_view_context(op->customdata);
+ Object *ob= CTX_data_active_object(C);
+ ModifierData *md;
int i;
+ int mode;
ss->cache = cache;
@@ -1705,10 +2872,62 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte
cache->prect.ymin = FLT_MAX;
cache->prect.ymax = -FLT_MAX;
- RNA_float_get_array(op->ptr, "scale", cache->scale);
- cache->flag = RNA_int_get(op->ptr, "flag");
- RNA_float_get_array(op->ptr, "clip_tolerance", cache->clip_tolerance);
- RNA_float_get_array(op->ptr, "initial_mouse", cache->initial_mouse);
+ /* Set scaling adjustment */
+ ss->cache->scale[0] = 1.0f / ob->size[0];
+ ss->cache->scale[1] = 1.0f / ob->size[1];
+ ss->cache->scale[2] = 1.0f / ob->size[2];
+
+ ss->cache->plane_trim_squared = brush->plane_trim * brush->plane_trim;
+
+ /* Initialize mirror modifier clipping */
+
+ ss->cache->flag = 0;
+
+ for(md= ob->modifiers.first; md; md= md->next) {
+ if(md->type==eModifierType_Mirror && (md->mode & eModifierMode_Realtime)) {
+ const MirrorModifierData *mmd = (MirrorModifierData*) md;
+
+ /* Mark each axis that needs clipping along with its tolerance */
+ if(mmd->flag & MOD_MIR_CLIPPING) {
+ ss->cache->flag |= CLIP_X << mmd->axis;
+ if(mmd->tolerance > ss->cache->clip_tolerance[mmd->axis])
+ ss->cache->clip_tolerance[mmd->axis] = mmd->tolerance;
+ }
+ }
+ }
+
+ /* Initial mouse location */
+ if (event) {
+ ss->cache->initial_mouse[0] = event->x;
+ ss->cache->initial_mouse[1] = event->y;
+ }
+ else {
+ ss->cache->initial_mouse[0] = 0;
+ ss->cache->initial_mouse[1] = 0;
+ }
+
+ mode = RNA_int_get(op->ptr, "mode");
+ cache->invert = mode == WM_BRUSHSTROKE_INVERT;
+ cache->alt_smooth = mode == WM_BRUSHSTROKE_SMOOTH;
+
+ /* Alt-Smooth */
+ if (ss->cache->alt_smooth) {
+ Paint *p= &sd->paint;
+ Brush *br;
+ int i;
+
+ BLI_strncpy(cache->saved_active_brush_name, brush->id.name+2, sizeof(cache->saved_active_brush_name));
+
+ for(i = 0; i < p->brush_count; ++i) {
+ br = p->brushes[i];
+
+ if (strcmp(br->id.name+2, "Smooth")==0) {
+ paint_brush_set(p, br);
+ brush = br;
+ break;
+ }
+ }
+ }
copy_v2_v2(cache->mouse, cache->initial_mouse);
copy_v2_v2(cache->tex_mouse, cache->initial_mouse);
@@ -1716,22 +2935,21 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte
/* Truly temporary data that isn't stored in properties */
cache->vc = vc;
+
cache->brush = brush;
cache->mats = MEM_callocN(sizeof(bglMats), "sculpt bglMats");
view3d_get_transformation(vc->ar, vc->rv3d, vc->obact, cache->mats);
+ viewvector(cache->vc->rv3d, cache->vc->rv3d->twmat[3], cache->true_view_normal);
/* Initialize layer brush displacements and persistent coords */
- if(brush->sculpt_tool == SCULPT_TOOL_LAYER && !ss->multires) {
- if(!ss->layer_disps || !(brush->flag & BRUSH_PERSISTENT)) {
- if(ss->layer_disps)
- MEM_freeN(ss->layer_disps);
- ss->layer_disps = MEM_callocN(sizeof(float) * ss->totvert, "layer brush displacements");
- }
- if(!ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) {
+ if(brush->sculpt_tool == SCULPT_TOOL_LAYER) {
+ /* not supported yet for multires */
+ if(!ss->multires && !ss->layer_co && (brush->flag & BRUSH_PERSISTENT)) {
if(!ss->layer_co)
ss->layer_co= MEM_mallocN(sizeof(float) * 3 * ss->totvert,
- "sculpt mesh vertices copy");
+ "sculpt mesh vertices copy");
+
for(i = 0; i < ss->totvert; ++i)
copy_v3_v3(ss->layer_co[i], ss->mvert[i].co);
}
@@ -1749,93 +2967,282 @@ static void sculpt_update_cache_invariants(Sculpt *sd, SculptSession *ss, bConte
cache->original = 1;
}
- if(ELEM3(brush->sculpt_tool, SCULPT_TOOL_DRAW, SCULPT_TOOL_LAYER, SCULPT_TOOL_INFLATE))
+ if(ELEM7(brush->sculpt_tool, SCULPT_TOOL_DRAW, SCULPT_TOOL_CREASE, SCULPT_TOOL_BLOB, SCULPT_TOOL_LAYER, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, SCULPT_TOOL_CLAY_TUBES))
if(!(brush->flag & BRUSH_ACCUMULATE))
cache->original = 1;
- cache->rotation = 0;
- cache->first_time = 1;
+ cache->special_rotation = (brush->flag & BRUSH_RAKE) ? sd->last_angle : 0;
+ //cache->last_rake[0] = sd->last_x;
+ //cache->last_rake[1] = sd->last_y;
+
+ cache->first_time= 1;
+
+ cache->vertex_rotation= 0;
}
/* Initialize the stroke cache variants from operator properties */
-static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, struct PaintStroke *stroke, PointerRNA *ptr)
+static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, SculptSession *ss, struct PaintStroke *stroke, PointerRNA *ptr)
{
StrokeCache *cache = ss->cache;
Brush *brush = paint_brush(&sd->paint);
-
+
int dx, dy;
- if(!(brush->flag & BRUSH_ANCHORED) || cache->first_time)
+ //RNA_float_get_array(ptr, "location", cache->traced_location);
+
+ if (cache->first_time ||
+ !((brush->flag & BRUSH_ANCHORED)||
+ (brush->sculpt_tool == SCULPT_TOOL_SNAKE_HOOK)||
+ (brush->sculpt_tool == SCULPT_TOOL_ROTATE))
+ )
+ {
RNA_float_get_array(ptr, "location", cache->true_location);
- cache->flip = RNA_boolean_get(ptr, "flip");
+ }
+
+ cache->pen_flip = RNA_boolean_get(ptr, "pen_flip");
RNA_float_get_array(ptr, "mouse", cache->mouse);
+
cache->pressure = RNA_float_get(ptr, "pressure");
-
+
/* Truly temporary data that isn't stored in properties */
+ sd->draw_pressure= 1;
+ sd->pressure_value= cache->pressure;
+
cache->previous_pixel_radius = cache->pixel_radius;
- cache->pixel_radius = brush->size;
+ cache->pixel_radius = sculpt_get_brush_size(brush);
- if(cache->first_time)
- cache->initial_radius = unproject_brush_radius(ss->ob, cache->vc, cache->true_location, brush->size);
+ if(cache->first_time) {
+ if (!sculpt_get_lock_brush_size(brush)) {
+ cache->initial_radius= unproject_brush_radius(ss->ob, cache->vc, cache->true_location, sculpt_get_brush_size(brush));
+ sculpt_set_brush_unprojected_radius(brush, cache->initial_radius);
+ }
+ else {
+ cache->initial_radius= sculpt_get_brush_unprojected_radius(brush);
+ }
- if(brush->flag & BRUSH_SIZE_PRESSURE && brush->sculpt_tool != SCULPT_TOOL_GRAB) {
+ if (ELEM(brush->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_SNAKE_HOOK))
+ cache->initial_radius *= 2.0f;
+ }
+
+ if(brush->flag & BRUSH_SIZE_PRESSURE) {
cache->pixel_radius *= cache->pressure;
- cache->radius = cache->initial_radius * cache->pressure;
+ cache->radius= cache->initial_radius * cache->pressure;
}
else
- cache->radius = cache->initial_radius;
+ cache->radius= cache->initial_radius;
- if(!(brush->flag & BRUSH_ANCHORED))
+ cache->radius_squared = cache->radius*cache->radius;
+
+ if(!(brush->flag & BRUSH_ANCHORED || ELEM4(brush->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_SNAKE_HOOK, SCULPT_TOOL_THUMB, SCULPT_TOOL_ROTATE))) {
copy_v2_v2(cache->tex_mouse, cache->mouse);
+ if ( (brush->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) &&
+ (brush->flag & BRUSH_RANDOM_ROTATION) &&
+ !(brush->flag & BRUSH_RAKE))
+ {
+ cache->special_rotation = 2*M_PI*BLI_frand();
+ }
+ }
+
if(brush->flag & BRUSH_ANCHORED) {
+ int hit = 0;
+
dx = cache->mouse[0] - cache->initial_mouse[0];
dy = cache->mouse[1] - cache->initial_mouse[1];
- cache->pixel_radius = sqrt(dx*dx + dy*dy);
- cache->radius = unproject_brush_radius(ss->ob, paint_stroke_view_context(stroke),
- cache->true_location, cache->pixel_radius);
- cache->rotation = atan2(dy, dx);
+
+ sd->anchored_size = cache->pixel_radius = sqrt(dx*dx + dy*dy);
+
+ cache->special_rotation = atan2(dx, dy) + M_PI;
+
+ if (brush->flag & BRUSH_EDGE_TO_EDGE) {
+ float d[3];
+ float halfway[3];
+ float out[3];
+
+ d[0] = dx;
+ d[1] = dy;
+ d[2] = 0;
+
+ mul_v3_v3fl(halfway, d, 0.5f);
+ add_v3_v3(halfway, cache->initial_mouse);
+
+ if (sculpt_stroke_get_location(C, stroke, out, halfway)) {
+ copy_v3_v3(sd->anchored_location, out);
+ copy_v3_v3(sd->anchored_initial_mouse, halfway);
+ copy_v2_v2(cache->tex_mouse, halfway);
+ copy_v3_v3(cache->true_location, sd->anchored_location);
+ sd->anchored_size /= 2.0f;
+ cache->pixel_radius /= 2.0f;
+ hit = 1;
+ }
+ }
+
+ if (!hit)
+ copy_v2_v2(sd->anchored_initial_mouse, cache->initial_mouse);
+
+ cache->radius= unproject_brush_radius(ss->ob, paint_stroke_view_context(stroke), cache->true_location, cache->pixel_radius);
+ cache->radius_squared = cache->radius*cache->radius;
+
+ copy_v3_v3(sd->anchored_location, cache->true_location);
+
+ sd->draw_anchored = 1;
}
else if(brush->flag & BRUSH_RAKE) {
- int update;
-
- dx = cache->last_rake[0] - cache->mouse[0];
- dy = cache->last_rake[1] - cache->mouse[1];
+ const float u = 0.5f;
+ const float v = 1 - u;
+ const float r = 20;
- update = dx*dx + dy*dy > 100;
+ const float dx = cache->last_rake[0] - cache->mouse[0];
+ const float dy = cache->last_rake[1] - cache->mouse[1];
- /* To prevent jitter, only update the angle if the mouse has moved over 10 pixels */
- if(update && !cache->first_time)
- cache->rotation = M_PI_2 + atan2(dy, dx);
+ if (cache->first_time) {
+ copy_v3_v3(cache->last_rake, cache->mouse);
+ }
+ else if (dx*dx + dy*dy >= r*r) {
+ cache->special_rotation = atan2(dx, dy);
- if(update || cache->first_time) {
- cache->last_rake[0] = cache->mouse[0];
- cache->last_rake[1] = cache->mouse[1];
+ cache->last_rake[0] = u*cache->last_rake[0] + v*cache->mouse[0];
+ cache->last_rake[1] = u*cache->last_rake[1] + v*cache->mouse[1];
}
}
/* Find the grab delta */
if(brush->sculpt_tool == SCULPT_TOOL_GRAB) {
- float grab_location[3];
+ float grab_location[3], imat[4][4];
+
+ if(cache->first_time)
+ copy_v3_v3(cache->orig_grab_location, cache->true_location);
+
+ /* compute 3d coordinate at same z from original location + mouse */
+ initgrabz(cache->vc->rv3d, cache->orig_grab_location[0],
+ cache->orig_grab_location[1], cache->orig_grab_location[2]);
+ window_to_3d_delta(cache->vc->ar, grab_location, cache->mouse[0], cache->mouse[1]);
+
+ /* compute delta to move verts by */
+ if(!cache->first_time) {
+ float delta[3];
+ sub_v3_v3v3(delta, grab_location, cache->old_grab_location);
+ invert_m4_m4(imat, ss->ob->obmat);
+ mul_mat3_m4_v3(imat, delta);
+ add_v3_v3(cache->grab_delta, delta);
+ }
+ else {
+ zero_v3(cache->grab_delta);
+ }
+
+ copy_v3_v3(cache->old_grab_location, grab_location);
+
+ /* location stays the same for finding vertices in brush radius */
+ copy_v3_v3(cache->true_location, cache->orig_grab_location);
+
+ sd->draw_anchored = 1;
+ copy_v3_v3(sd->anchored_location, cache->true_location);
+ copy_v3_v3(sd->anchored_initial_mouse, cache->initial_mouse);
+ sd->anchored_size = cache->pixel_radius;
+ }
+ /* Find the nudge/clay tubes delta */
+ else if(brush->sculpt_tool == SCULPT_TOOL_NUDGE || brush->sculpt_tool == SCULPT_TOOL_CLAY_TUBES) {
+ float grab_location[3], imat[4][4];
+
+ if(cache->first_time)
+ copy_v3_v3(cache->orig_grab_location, cache->true_location);
+
+ /* compute 3d coordinate at same z from original location + mouse */
+ initgrabz(cache->vc->rv3d, cache->orig_grab_location[0],
+ cache->orig_grab_location[1], cache->orig_grab_location[2]);
+ window_to_3d_delta(cache->vc->ar, grab_location, cache->mouse[0], cache->mouse[1]);
+
+ /* compute delta to move verts by */
+ if (!cache->first_time) {
+ sub_v3_v3v3(cache->grab_delta, grab_location, cache->old_grab_location);
+ invert_m4_m4(imat, ss->ob->obmat);
+ mul_mat3_m4_v3(imat, cache->grab_delta);
+ }
+ else {
+ zero_v3(cache->grab_delta);
+ }
+
+ copy_v3_v3(cache->old_grab_location, grab_location);
+ }
+ /* Find the snake hook delta */
+ else if(brush->sculpt_tool == SCULPT_TOOL_SNAKE_HOOK) {
+ float grab_location[3], imat[4][4];
if(cache->first_time)
copy_v3_v3(cache->orig_grab_location, cache->true_location);
+ else
+ add_v3_v3(cache->true_location, cache->grab_delta);
- initgrabz(cache->vc->rv3d, cache->orig_grab_location[0], cache->orig_grab_location[1], cache->orig_grab_location[2]);
+ /* compute 3d coordinate at same z from original location + mouse */
+ initgrabz(cache->vc->rv3d, cache->orig_grab_location[0],
+ cache->orig_grab_location[1], cache->orig_grab_location[2]);
window_to_3d_delta(cache->vc->ar, grab_location, cache->mouse[0], cache->mouse[1]);
- if(!cache->first_time)
+ /* compute delta to move verts by */
+ if (!cache->first_time) {
sub_v3_v3v3(cache->grab_delta, grab_location, cache->old_grab_location);
+ invert_m4_m4(imat, ss->ob->obmat);
+ mul_mat3_m4_v3(imat, cache->grab_delta);
+ }
+ else {
+ zero_v3(cache->grab_delta);
+ }
+
+ copy_v3_v3(cache->old_grab_location, grab_location);
+ }
+ /* Find the thumb delta */
+ else if(brush->sculpt_tool == SCULPT_TOOL_THUMB) {
+ float grab_location[3], imat[4][4];
+
+ if(cache->first_time)
+ copy_v3_v3(cache->orig_grab_location, cache->true_location);
+
+ /* compute 3d coordinate at same z from original location + mouse */
+ initgrabz(cache->vc->rv3d, cache->orig_grab_location[0],
+ cache->orig_grab_location[1], cache->orig_grab_location[2]);
+ window_to_3d_delta(cache->vc->ar, grab_location, cache->mouse[0], cache->mouse[1]);
+
+ /* compute delta to move verts by */
+ if (!cache->first_time) {
+ float delta[3];
+ sub_v3_v3v3(delta, grab_location, cache->old_grab_location);
+ invert_m4_m4(imat, ss->ob->obmat);
+ mul_mat3_m4_v3(imat, delta);
+ add_v3_v3(cache->grab_delta, delta);
+ }
+ else {
+ zero_v3(cache->grab_delta);
+ }
+
copy_v3_v3(cache->old_grab_location, grab_location);
+
+ /* location stays the same for finding vertices in brush radius */
+ copy_v3_v3(cache->true_location, cache->orig_grab_location);
+
+ sd->draw_anchored = 1;
+ copy_v3_v3(sd->anchored_location, cache->orig_grab_location);
+ copy_v3_v3(sd->anchored_initial_mouse, cache->initial_mouse);
+ sd->anchored_size = cache->pixel_radius;
}
+ else if(brush->sculpt_tool == SCULPT_TOOL_ROTATE) {
+ dx = cache->mouse[0] - cache->initial_mouse[0];
+ dy = cache->mouse[1] - cache->initial_mouse[1];
+
+ cache->vertex_rotation = -atan2(dx, dy) / 4.0f;
+
+ sd->draw_anchored = 1;
+ copy_v2_v2(sd->anchored_initial_mouse, cache->initial_mouse);
+ copy_v3_v3(sd->anchored_location, cache->true_location);
+ sd->anchored_size = cache->pixel_radius;
+ }
+
+ sd->special_rotation = cache->special_rotation;
}
static void sculpt_stroke_modifiers_check(bContext *C, SculptSession *ss)
{
- Scene *scene= CTX_data_scene(C);
-
- if(sculpt_modifiers_active(scene, ss->ob)) {
+ if(ss->modifiers_active) {
Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
Brush *brush = paint_brush(&sd->paint);
@@ -1851,19 +3258,23 @@ typedef struct {
int original;
} SculptRaycastData;
-void sculpt_raycast_cb(PBVHNode *node, void *data_v)
+void sculpt_raycast_cb(PBVHNode *node, void *data_v, float* tmin)
{
- SculptRaycastData *srd = data_v;
- float (*origco)[3]= NULL;
+ if (BLI_pbvh_node_get_tmin(node) < *tmin) {
+ SculptRaycastData *srd = data_v;
+ float (*origco)[3]= NULL;
- if(srd->original && srd->ss->cache) {
- /* intersect with coordinates from before we started stroke */
- SculptUndoNode *unode= sculpt_undo_get_node(srd->ss, node);
- origco= (unode)? unode->co: NULL;
- }
+ if(srd->original && srd->ss->cache) {
+ /* intersect with coordinates from before we started stroke */
+ SculptUndoNode *unode= sculpt_undo_get_node(node);
+ origco= (unode)? unode->co: NULL;
+ }
- srd->hit |= BLI_pbvh_node_raycast(srd->ss->tree, node, origco,
- srd->ray_start, srd->ray_normal, &srd->dist);
+ if (BLI_pbvh_node_raycast(srd->ss->pbvh, node, origco, srd->ray_start, srd->ray_normal, &srd->dist)) {
+ srd->hit = 1;
+ *tmin = srd->dist;
+ }
+ }
}
/* Do a raycast in the tree to find the 3d brush location
@@ -1877,20 +3288,22 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou
StrokeCache *cache= ss->cache;
float ray_start[3], ray_end[3], ray_normal[3], dist;
float obimat[4][4];
- float mval[2] = {mouse[0] - vc->ar->winrct.xmin,
- mouse[1] - vc->ar->winrct.ymin};
+ float mval[2];
SculptRaycastData srd;
+ mval[0] = mouse[0] - vc->ar->winrct.xmin;
+ mval[1] = mouse[1] - vc->ar->winrct.ymin;
+
sculpt_stroke_modifiers_check(C, ss);
viewline(vc->ar, vc->v3d, mval, ray_start, ray_end);
- sub_v3_v3v3(ray_normal, ray_end, ray_start);
- dist= normalize_v3(ray_normal);
invert_m4_m4(obimat, ss->ob->obmat);
mul_m4_v3(obimat, ray_start);
- mul_mat3_m4_v3(obimat, ray_normal);
- normalize_v3(ray_normal);
+ mul_m4_v3(obimat, ray_end);
+
+ sub_v3_v3v3(ray_normal, ray_end, ray_start);
+ dist= normalize_v3(ray_normal);
srd.ss = vc->obact->sculpt;
srd.ray_start = ray_start;
@@ -1898,53 +3311,16 @@ int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float ou
srd.dist = dist;
srd.hit = 0;
srd.original = (cache)? cache->original: 0;
- BLI_pbvh_raycast(ss->tree, sculpt_raycast_cb, &srd,
- ray_start, ray_normal, srd.original);
+ BLI_pbvh_raycast(ss->pbvh, sculpt_raycast_cb, &srd,
+ ray_start, ray_normal, srd.original);
copy_v3_v3(out, ray_normal);
mul_v3_fl(out, srd.dist);
- add_v3_v3v3(out, out, ray_start);
+ add_v3_v3(out, ray_start);
return srd.hit;
}
-/* Initialize stroke operator properties */
-static void sculpt_brush_stroke_init_properties(bContext *C, wmOperator *op, wmEvent *event, SculptSession *ss)
-{
- Object *ob= CTX_data_active_object(C);
- ModifierData *md;
- float scale[3], clip_tolerance[3] = {0,0,0};
- float mouse[2];
- int flag = 0;
-
- /* Set scaling adjustment */
- scale[0] = 1.0f / ob->size[0];
- scale[1] = 1.0f / ob->size[1];
- scale[2] = 1.0f / ob->size[2];
- RNA_float_set_array(op->ptr, "scale", scale);
-
- /* Initialize mirror modifier clipping */
- for(md= ob->modifiers.first; md; md= md->next) {
- if(md->type==eModifierType_Mirror && (md->mode & eModifierMode_Realtime)) {
- const MirrorModifierData *mmd = (MirrorModifierData*) md;
-
- /* Mark each axis that needs clipping along with its tolerance */
- if(mmd->flag & MOD_MIR_CLIPPING) {
- flag |= CLIP_X << mmd->axis;
- if(mmd->tolerance > clip_tolerance[mmd->axis])
- clip_tolerance[mmd->axis] = mmd->tolerance;
- }
- }
- }
- RNA_int_set(op->ptr, "flag", flag);
- RNA_float_set_array(op->ptr, "clip_tolerance", clip_tolerance);
-
- /* Initial mouse location */
- mouse[0] = event->x;
- mouse[1] = event->y;
- RNA_float_set_array(op->ptr, "initial_mouse", mouse);
-}
-
static int sculpt_brush_stroke_init(bContext *C, ReportList *reports)
{
Scene *scene= CTX_data_scene(C);
@@ -1972,31 +3348,39 @@ static int sculpt_brush_stroke_init(bContext *C, ReportList *reports)
static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss)
{
- StrokeCache *cache = ss->cache;
Brush *brush = paint_brush(&sd->paint);
- int i;
/* Restore the mesh before continuing with anchored stroke */
- if(brush->flag & BRUSH_ANCHORED) {
+ if((brush->flag & BRUSH_ANCHORED) ||
+ (brush->sculpt_tool == SCULPT_TOOL_GRAB && (brush->flag & BRUSH_SIZE_PRESSURE)) ||
+ (brush->flag & BRUSH_RESTORE_MESH))
+ {
+ StrokeCache *cache = ss->cache;
+ int i;
+
PBVHNode **nodes;
int n, totnode;
- BLI_pbvh_search_gather(ss->tree, NULL, NULL, &nodes, &totnode);
+ BLI_pbvh_search_gather(ss->pbvh, NULL, NULL, &nodes, &totnode);
- #pragma omp parallel for private(n) schedule(static)
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for(n=0; n<totnode; n++) {
SculptUndoNode *unode;
- unode= sculpt_undo_get_node(ss, nodes[n]);
+ unode= sculpt_undo_get_node(nodes[n]);
if(unode) {
PBVHVertexIter vd;
- BLI_pbvh_vertex_iter_begin(ss->tree, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
copy_v3_v3(vd.co, unode->co[vd.i]);
if(vd.no) VECCOPY(vd.no, unode->no[vd.i])
else normal_short_to_float_v3(vd.fno, unode->no[vd.i]);
+
+ if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
}
BLI_pbvh_vertex_iter_end;
+
+ BLI_pbvh_node_mark_update(nodes[n]);
}
}
@@ -2006,47 +3390,46 @@ static void sculpt_restore_mesh(Sculpt *sd, SculptSession *ss)
copy_v3_v3(fn, cache->face_norms[i]);
}
- if(brush->sculpt_tool == SCULPT_TOOL_LAYER && !ss->multires)
- memset(ss->layer_disps, 0, sizeof(float) * ss->totvert);
+ if(nodes)
+ MEM_freeN(nodes);
}
}
static void sculpt_flush_update(bContext *C)
{
- Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_active_object(C);
SculptSession *ss = ob->sculpt;
ARegion *ar = CTX_wm_region(C);
MultiresModifierData *mmd = ss->multires;
- int redraw = 0;
if(mmd)
multires_mark_as_modified(ob);
- if(sculpt_modifiers_active(scene, ob)) {
+ if(ss->modifiers_active) {
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
ED_region_tag_redraw(ar);
}
else {
rcti r;
int off = 0;
-#if 0 /*debug code to expand the partial redraw rect by 400 every other frame*/
- static int c = 0;
- c++;
- if (c % 2 == 0)
- off = 400;
- else off = 0;
-#endif
- BLI_pbvh_update(ss->tree, PBVH_UpdateBB, NULL);
- redraw = sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r);
+ BLI_pbvh_update(ss->pbvh, PBVH_UpdateBB, NULL);
+
+ if (sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r)) {
+ //rcti tmp;
- if(redraw) {
r.xmin += ar->winrct.xmin + 1 + off;
r.xmax += ar->winrct.xmin - 1 - off;
r.ymin += ar->winrct.ymin + 1 + off;
r.ymax += ar->winrct.ymin - 1 - off;
-
+
+ //tmp = r;
+
+ //if (!BLI_rcti_is_empty(&ss->previous_r))
+ // BLI_union_rcti(&r, &ss->previous_r);
+
+ //ss->previous_r= tmp;
+
ss->partial_redraw = 1;
ED_region_tag_redraw_partial(ar, &r);
}
@@ -2057,13 +3440,16 @@ static void sculpt_flush_update(bContext *C)
or over the background (0) */
static int over_mesh(bContext *C, struct wmOperator *op, float x, float y)
{
- float mouse[2] = {x, y}, co[3];
-
- return (int)sculpt_stroke_get_location(C, op->customdata, co, mouse);
+ float mouse[2], co[3];
+
+ mouse[0] = x;
+ mouse[1] = y;
+
+ return sculpt_stroke_get_location(C, op->customdata, co, mouse);
}
static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op,
- wmEvent *event)
+ wmEvent *event)
{
/* Don't start the stroke until mouse goes over the mesh */
if(over_mesh(C, op, event->x, event->y)) {
@@ -2073,11 +3459,22 @@ static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op,
ED_view3d_init_mats_rv3d(ob, CTX_wm_region_view3d(C));
- sculpt_brush_stroke_init_properties(C, op, event, ss);
+ sculpt_update_cache_invariants(C, sd, ss, op, event);
- sculpt_update_cache_invariants(sd, ss, C, op);
+ sculpt_undo_push_begin(sculpt_tool_name(sd));
- sculpt_undo_push_begin(ss, sculpt_tool_name(sd));
+#ifdef _OPENMP
+ /* If using OpenMP then create a number of threads two times the
+ number of processor cores.
+ Justification: Empirically I've found that two threads per
+ processor gives higher throughput. */
+ if (sd->flags & SCULPT_USE_OPENMP) {
+ int num_procs;
+
+ num_procs = omp_get_num_procs();
+ omp_set_num_threads(2*num_procs);
+ }
+#endif
return 1;
}
@@ -2091,7 +3488,7 @@ static void sculpt_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
SculptSession *ss = CTX_data_active_object(C)->sculpt;
sculpt_stroke_modifiers_check(C, ss);
- sculpt_update_cache_variants(sd, ss, stroke, itemptr);
+ sculpt_update_cache_variants(C, sd, ss, stroke, itemptr);
sculpt_restore_mesh(sd, ss);
do_symmetrical_brush_actions(sd, ss);
@@ -2099,26 +3496,53 @@ static void sculpt_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
sculpt_flush_update(C);
}
-static void sculpt_stroke_done(bContext *C, struct PaintStroke *stroke)
+static void sculpt_stroke_done(bContext *C, struct PaintStroke *unused)
{
Object *ob= CTX_data_active_object(C);
SculptSession *ss = ob->sculpt;
+ Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
+
+ (void)unused;
+
+ // reset values used to draw brush after completing the stroke
+ sd->draw_anchored= 0;
+ sd->draw_pressure= 0;
+ sd->special_rotation= 0;
/* Finished */
if(ss->cache) {
sculpt_stroke_modifiers_check(C, ss);
+ /* Alt-Smooth */
+ if (ss->cache->alt_smooth) {
+ Paint *p= &sd->paint;
+ Brush *br;
+ int i;
+
+ for(i = 0; i < p->brush_count; ++i) {
+ br = p->brushes[i];
+
+ if (strcmp(br->id.name+2, ss->cache->saved_active_brush_name)==0) {
+ paint_brush_set(p, br);
+ break;
+ }
+ }
+ }
+
sculpt_cache_free(ss->cache);
ss->cache = NULL;
- sculpt_undo_push_end(ss);
+ sculpt_undo_push_end();
- BLI_pbvh_update(ss->tree, PBVH_UpdateOriginalBB, NULL);
+ BLI_pbvh_update(ss->pbvh, PBVH_UpdateOriginalBB, NULL);
- if(ss->refkb) sculpt_key_to_mesh(ss->refkb, ob);
+ /* optimization: if there is locked key and active modifiers present in */
+ /* the stack, keyblock is updating at each step. otherwise we could update */
+ /* keyblock only when stroke is finished */
+ if(ss->kb && !ss->modifiers_active) sculpt_update_keyblock(ss);
ss->partial_redraw = 0;
-
+
/* try to avoid calling this, only for e.g. linked duplicates now */
if(((Mesh*)ob->data)->id.us > 1)
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
@@ -2145,6 +3569,7 @@ static int sculpt_brush_stroke_invoke(bContext *C, wmOperator *op, wmEvent *even
/* For tablet rotation */
ignore_background_click = RNA_boolean_get(op->ptr,
"ignore_background_click");
+
if(ignore_background_click && !over_mesh(C, op, event->x, event->y)) {
paint_stroke_free(stroke);
return OPERATOR_PASS_THROUGH;
@@ -2169,7 +3594,7 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op)
op->customdata = paint_stroke_new(C, sculpt_stroke_get_location, sculpt_stroke_test_start,
sculpt_stroke_update_step, sculpt_stroke_done);
- sculpt_update_cache_invariants(sd, ss, C, op);
+ sculpt_update_cache_invariants(C, sd, ss, op, NULL);
paint_stroke_exec(C, op);
@@ -2181,7 +3606,12 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op)
static void SCULPT_OT_brush_stroke(wmOperatorType *ot)
{
- ot->flag |= OPTYPE_REGISTER;
+ static EnumPropertyItem stroke_mode_items[] = {
+ { WM_BRUSHSTROKE_NORMAL, "NORMAL", 0, "Normal", "Apply brush normally" },
+ { WM_BRUSHSTROKE_INVERT, "INVERT", 0, "Invert", "Invert action of brush for duration of stroke" },
+ { WM_BRUSHSTROKE_SMOOTH, "SMOOTH", 0, "Smooth", "Switch brush to smooth mode for duration of stroke" },
+ { 0 }
+ };
/* identifiers */
ot->name= "Sculpt Mode";
@@ -2192,41 +3622,33 @@ static void SCULPT_OT_brush_stroke(wmOperatorType *ot)
ot->modal= paint_stroke_modal;
ot->exec= sculpt_brush_stroke_exec;
ot->poll= sculpt_poll;
-
+
/* flags (sculpt does own undo? (ton) */
- ot->flag= OPTYPE_REGISTER|OPTYPE_BLOCKING;
+ ot->flag= OPTYPE_BLOCKING;
/* properties */
- RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", "");
- /* If the object has a scaling factor, brushes also need to be scaled
- to work as expected. */
- RNA_def_float_vector(ot->srna, "scale", 3, NULL, 0.0f, FLT_MAX, "Scale", "", 0.0f, 1000.0f);
+ RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement,
+ "Stroke", "");
- RNA_def_int(ot->srna, "flag", 0, 0, INT_MAX, "flag", "", 0, INT_MAX);
-
- /* For mirror modifiers */
- RNA_def_float_vector(ot->srna, "clip_tolerance", 3, NULL, 0.0f, FLT_MAX, "clip_tolerance", "", 0.0f, 1000.0f);
-
- /* The initial 2D location of the mouse */
- RNA_def_float_vector(ot->srna, "initial_mouse", 2, NULL, INT_MIN, INT_MAX, "initial_mouse", "", INT_MIN, INT_MAX);
+ RNA_def_enum(ot->srna, "mode", stroke_mode_items, WM_BRUSHSTROKE_NORMAL,
+ "Sculpt Stroke Mode",
+ "Action taken when a sculpt stroke is made");
RNA_def_boolean(ot->srna, "ignore_background_click", 0,
"Ignore Background Click",
- "Clicks on the background don't start the stroke");
+ "Clicks on the background do not start the stroke");
}
/**** Reset the copy of the mesh that is being sculpted on (currently just for the layer brush) ****/
-static int sculpt_set_persistent_base(bContext *C, wmOperator *op)
+static int sculpt_set_persistent_base(bContext *C, wmOperator *unused)
{
SculptSession *ss = CTX_data_active_object(C)->sculpt;
- if(ss) {
- if(ss->layer_disps)
- MEM_freeN(ss->layer_disps);
- ss->layer_disps = NULL;
+ (void)unused;
+ if(ss) {
if(ss->layer_co)
MEM_freeN(ss->layer_co);
ss->layer_co = NULL;
@@ -2245,7 +3667,7 @@ static void SCULPT_OT_set_persistent_base(wmOperatorType *ot)
ot->exec= sculpt_set_persistent_base;
ot->poll= sculpt_mode_poll;
- ot->flag= OPTYPE_REGISTER;
+ ot->flag= 0;//OPTYPE_REGISTER;
}
/**** Toggle operator for turning sculpt mode on or off ****/
@@ -2253,46 +3675,56 @@ static void SCULPT_OT_set_persistent_base(wmOperatorType *ot)
static void sculpt_init_session(Scene *scene, Object *ob)
{
ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session");
+ ob->sculpt->ob = ob;
sculpt_update_mesh_elements(scene, ob, 0);
-
- if(ob->sculpt->refkb)
- sculpt_key_to_mesh(ob->sculpt->refkb, ob);
}
-static int sculpt_toggle_mode(bContext *C, wmOperator *op)
+static int sculpt_toggle_mode(bContext *C, wmOperator *unused)
{
Scene *scene = CTX_data_scene(C);
ToolSettings *ts = CTX_data_tool_settings(C);
Object *ob = CTX_data_active_object(C);
- MultiresModifierData *mmd = sculpt_multires_active(ob);
+ MultiresModifierData *mmd= sculpt_multires_active(scene, ob);
+ int flush_recalc= 0;
+
+ (void)unused;
+
+ /* multires in sculpt mode could have different from object mode subdivision level */
+ flush_recalc |= mmd && mmd->sculptlvl != mmd->lvl;
+ /* if object has got active modifiers, it's dm could be different in sculpt mode */
+ //flush_recalc |= sculpt_modifiers_active(scene, ob);
if(ob->mode & OB_MODE_SCULPT) {
- if(sculpt_multires_active(ob))
+ if(mmd)
multires_force_update(ob);
- if(mmd && mmd->sculptlvl != mmd->lvl)
+ if(flush_recalc)
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
/* Leave sculptmode */
ob->mode &= ~OB_MODE_SCULPT;
- free_sculptsession(&ob->sculpt);
+ free_sculptsession(ob);
}
else {
/* Enter sculptmode */
ob->mode |= OB_MODE_SCULPT;
- if(mmd && mmd->sculptlvl != mmd->lvl)
+ if(flush_recalc)
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
/* Create persistent sculpt mode data */
- if(!ts->sculpt)
+ if(!ts->sculpt) {
ts->sculpt = MEM_callocN(sizeof(Sculpt), "sculpt mode data");
+ /* Turn on X plane mirror symmetry by default */
+ ts->sculpt->flags |= SCULPT_SYMM_X;
+ }
+
/* Create sculpt mode session data */
if(ob->sculpt)
- free_sculptsession(&ob->sculpt);
+ free_sculptsession(ob);
sculpt_init_session(scene, ob);
@@ -2316,7 +3748,7 @@ static void SCULPT_OT_sculptmode_toggle(wmOperatorType *ot)
ot->exec= sculpt_toggle_mode;
ot->poll= ED_operator_object_active;
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag= 0;
}
void ED_operatortypes_sculpt()
diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.h b/source/blender/editors/sculpt_paint/sculpt_intern.h
index d3553c008b2..a46823a0b28 100644
--- a/source/blender/editors/sculpt_paint/sculpt_intern.h
+++ b/source/blender/editors/sculpt_paint/sculpt_intern.h
@@ -32,6 +32,9 @@
#include "DNA_listBase.h"
#include "DNA_vec_types.h"
+#include "DNA_key_types.h"
+
+#include "BLI_pbvh.h"
struct bContext;
struct Brush;
@@ -49,7 +52,7 @@ void sculptmode_draw_mesh(int);
void sculpt_paint_brush(char clear);
void sculpt_stroke_draw(struct SculptStroke *);
void sculpt_radialcontrol_start(int mode);
-struct MultiresModifierData *sculpt_multires_active(struct Object *ob);
+struct MultiresModifierData *sculpt_multires_active(struct Scene *scene, struct Object *ob);
struct Brush *sculptmode_brush(void);
//void do_symmetrical_brush_actions(struct Sculpt *sd, struct wmOperator *wm, struct BrushAction *a, short *, short *);
@@ -58,8 +61,6 @@ void sculpt(Sculpt *sd);
int sculpt_poll(struct bContext *C);
void sculpt_update_mesh_elements(struct Scene *scene, struct Object *ob, int need_fmap);
-void sculpt_key_to_mesh(struct KeyBlock *kb, struct Object *ob);
-void sculpt_mesh_to_key(struct Object *ob, struct KeyBlock *kb);
/* Stroke */
struct SculptStroke *sculpt_stroke_new(const int max);
@@ -67,8 +68,49 @@ void sculpt_stroke_free(struct SculptStroke *);
void sculpt_stroke_add_point(struct SculptStroke *, const short x, const short y);
void sculpt_stroke_apply(struct Sculpt *sd, struct SculptStroke *);
void sculpt_stroke_apply_all(struct Sculpt *sd, struct SculptStroke *);
+int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float out[3], float mouse[2]);
/* Partial Mesh Visibility */
void sculptmode_pmv(int mode);
+/* Undo */
+
+typedef struct SculptUndoNode {
+ struct SculptUndoNode *next, *prev;
+
+ char idname[MAX_ID_NAME]; /* name instead of pointer*/
+ void *node; /* only during push, not valid afterwards! */
+
+ float (*co)[3];
+ short (*no)[3];
+ int totvert;
+
+ /* non-multires */
+ int maxvert; /* to verify if totvert it still the same */
+ int *index; /* to restore into right location */
+
+ /* multires */
+ int maxgrid; /* same for grid */
+ int gridsize; /* same for grid */
+ int totgrid; /* to restore into right location */
+ int *grids; /* to restore into right location */
+
+ /* layer brush */
+ float *layer_disp;
+
+ /* shape keys */
+ char *shapeName[32]; /* keep size in sync with keyblock dna */
+} SculptUndoNode;
+
+SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node);
+SculptUndoNode *sculpt_undo_get_node(PBVHNode *node);
+void sculpt_undo_push_begin(char *name);
+void sculpt_undo_push_end(void);
+
+struct MultiresModifierData *sculpt_multires_active(struct Scene *scene, struct Object *ob);
+int sculpt_modifiers_active(Scene *scene, Object *ob);
+void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3]);
+
+void brush_jitter_pos(Brush *brush, float *pos, float *jitterpos);
+
#endif
diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c
new file mode 100644
index 00000000000..e4121c9c76a
--- /dev/null
+++ b/source/blender/editors/sculpt_paint/sculpt_undo.c
@@ -0,0 +1,302 @@
+/*
+ * $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) 2006 by Nicholas Bishop
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ * Implements the Sculpt Mode tools
+ *
+ */
+
+#include "BLI_math.h"
+#include "BLI_ghash.h"
+#include "BLI_threads.h"
+
+#include "DNA_meshdata_types.h"
+#include "DNA_object_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_mesh_types.h"
+#include "DNA_key_types.h"
+
+#include "BKE_cdderivedmesh.h"
+#include "BKE_context.h"
+#include "BKE_depsgraph.h"
+#include "BKE_modifier.h"
+#include "BKE_multires.h"
+#include "BKE_paint.h"
+#include "BKE_mesh.h"
+#include "BKE_key.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "ED_sculpt.h"
+#include "paint_intern.h"
+#include "sculpt_intern.h"
+
+/************************** Undo *************************/
+
+static void update_cb(PBVHNode *node, void *unused)
+{
+ (void)unused;
+ BLI_pbvh_node_mark_update(node);
+}
+
+static void sculpt_undo_restore(bContext *C, ListBase *lb)
+{
+ Scene *scene = CTX_data_scene(C);
+ Object *ob = CTX_data_active_object(C);
+ DerivedMesh *dm = mesh_get_derived_final(scene, ob, 0);
+ SculptSession *ss = ob->sculpt;
+ SculptUndoNode *unode;
+ MVert *mvert;
+ MultiresModifierData *mmd;
+ int *index;
+ int i, j, update= 0;
+
+ sculpt_update_mesh_elements(scene, ob, 0);
+
+ for(unode=lb->first; unode; unode=unode->next) {
+ if(!(strcmp(unode->idname, ob->id.name)==0))
+ continue;
+
+ if(unode->maxvert) {
+ char *shapeName= (char*)unode->shapeName;
+
+ /* regular mesh restore */
+ if(ss->totvert != unode->maxvert)
+ continue;
+
+ if (ss->kb && strcmp(ss->kb->name, shapeName)) {
+ /* shape key has been changed before calling undo operator */
+
+ Key *key= ob_get_key(ob);
+ KeyBlock *kb= key_get_named_keyblock(key, shapeName);
+
+ if (kb) {
+ ob->shapenr= BLI_findindex(&key->block, kb) + 1;
+ ob->shapeflag|= OB_SHAPE_LOCK;
+
+ sculpt_update_mesh_elements(scene, ob, 0);
+ WM_event_add_notifier(C, NC_OBJECT|ND_DATA, ob);
+ } else {
+ /* key has been removed -- skip this undo node */
+ continue;
+ }
+ }
+
+ index= unode->index;
+ mvert= ss->mvert;
+
+ if (ss->kb) {
+ float (*vertCos)[3];
+ vertCos= key_to_vertcos(ob, ss->kb);
+
+ for(i=0; i<unode->totvert; i++)
+ swap_v3_v3(vertCos[index[i]], unode->co[i]);
+
+ /* propagate new coords to keyblock */
+ sculpt_vertcos_to_key(ob, ss->kb, vertCos);
+
+ /* pbvh uses it's own mvert array, so coords should be */
+ /* propagated to pbvh here */
+ BLI_pbvh_apply_vertCos(ss->pbvh, vertCos);
+
+ MEM_freeN(vertCos);
+ } else {
+ for(i=0; i<unode->totvert; i++) {
+ swap_v3_v3(mvert[index[i]].co, unode->co[i]);
+ mvert[index[i]].flag |= ME_VERT_PBVH_UPDATE;
+ }
+ }
+ }
+ else if(unode->maxgrid && dm->getGridData) {
+ /* multires restore */
+ DMGridData **grids, *grid;
+ float (*co)[3];
+ int gridsize;
+
+ if(dm->getNumGrids(dm) != unode->maxgrid)
+ continue;
+ if(dm->getGridSize(dm) != unode->gridsize)
+ continue;
+
+ grids= dm->getGridData(dm);
+ gridsize= dm->getGridSize(dm);
+
+ co = unode->co;
+ for(j=0; j<unode->totgrid; j++) {
+ grid= grids[unode->grids[j]];
+
+ for(i=0; i<gridsize*gridsize; i++, co++)
+ swap_v3_v3(grid[i].co, co[0]);
+ }
+ }
+
+ update= 1;
+ }
+
+ if(update) {
+ /* we update all nodes still, should be more clever, but also
+ needs to work correct when exiting/entering sculpt mode and
+ the nodes get recreated, though in that case it could do all */
+ BLI_pbvh_search_callback(ss->pbvh, NULL, NULL, update_cb, NULL);
+ BLI_pbvh_update(ss->pbvh, PBVH_UpdateBB|PBVH_UpdateOriginalBB|PBVH_UpdateRedraw, NULL);
+
+ if((mmd=sculpt_multires_active(scene, ob)))
+ multires_mark_as_modified(ob);
+
+ if(ss->modifiers_active || ((Mesh*)ob->data)->id.us > 1)
+ DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ }
+}
+
+static void sculpt_undo_free(ListBase *lb)
+{
+ SculptUndoNode *unode;
+
+ for(unode=lb->first; unode; unode=unode->next) {
+ if(unode->co)
+ MEM_freeN(unode->co);
+ if(unode->no)
+ MEM_freeN(unode->no);
+ if(unode->index)
+ MEM_freeN(unode->index);
+ if(unode->grids)
+ MEM_freeN(unode->grids);
+ if(unode->layer_disp)
+ MEM_freeN(unode->layer_disp);
+ }
+}
+
+SculptUndoNode *sculpt_undo_get_node(PBVHNode *node)
+{
+ ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH);
+ SculptUndoNode *unode;
+
+ if(!lb)
+ return NULL;
+
+ for(unode=lb->first; unode; unode=unode->next)
+ if(unode->node == node)
+ return unode;
+
+ return NULL;
+}
+
+SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node)
+{
+ ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH);
+ Object *ob= ss->ob;
+ SculptUndoNode *unode;
+ int totvert, allvert, totgrid, maxgrid, gridsize, *grids;
+
+ /* list is manipulated by multiple threads, so we lock */
+ BLI_lock_thread(LOCK_CUSTOM1);
+
+ if((unode= sculpt_undo_get_node(node))) {
+ BLI_unlock_thread(LOCK_CUSTOM1);
+ return unode;
+ }
+
+ unode= MEM_callocN(sizeof(SculptUndoNode), "SculptUndoNode");
+ strcpy(unode->idname, ob->id.name);
+ unode->node= node;
+
+ BLI_pbvh_node_num_verts(ss->pbvh, node, &totvert, &allvert);
+ BLI_pbvh_node_get_grids(ss->pbvh, node, &grids, &totgrid,
+ &maxgrid, &gridsize, NULL, NULL);
+
+ unode->totvert= totvert;
+ /* we will use this while sculpting, is mapalloc slow to access then? */
+ unode->co= MEM_mapallocN(sizeof(float)*3*allvert, "SculptUndoNode.co");
+ unode->no= MEM_mapallocN(sizeof(short)*3*allvert, "SculptUndoNode.no");
+ undo_paint_push_count_alloc(UNDO_PAINT_MESH, (sizeof(float)*3 + sizeof(short)*3 + sizeof(int))*allvert);
+ BLI_addtail(lb, unode);
+
+ if(maxgrid) {
+ /* multires */
+ unode->maxgrid= maxgrid;
+ unode->totgrid= totgrid;
+ unode->gridsize= gridsize;
+ unode->grids= MEM_mapallocN(sizeof(int)*totgrid, "SculptUndoNode.grids");
+ }
+ else {
+ /* regular mesh */
+ unode->maxvert= ss->totvert;
+ unode->index= MEM_mapallocN(sizeof(int)*allvert, "SculptUndoNode.index");
+ }
+
+ BLI_unlock_thread(LOCK_CUSTOM1);
+
+ /* copy threaded, hopefully this is the performance critical part */
+ {
+ PBVHVertexIter vd;
+
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, node, vd, PBVH_ITER_ALL) {
+ copy_v3_v3(unode->co[vd.i], vd.co);
+ if(vd.no) VECCOPY(unode->no[vd.i], vd.no)
+ else normal_float_to_short_v3(unode->no[vd.i], vd.fno);
+ if(vd.vert_indices) unode->index[vd.i]= vd.vert_indices[vd.i];
+ }
+ BLI_pbvh_vertex_iter_end;
+ }
+
+ if(unode->grids)
+ memcpy(unode->grids, grids, sizeof(int)*totgrid);
+
+ /* store active shape key */
+ if(ss->kb) BLI_strncpy((char*)unode->shapeName, ss->kb->name, sizeof(ss->kb->name));
+ else unode->shapeName[0]= '\0';
+
+ return unode;
+}
+
+void sculpt_undo_push_begin(char *name)
+{
+ undo_paint_push_begin(UNDO_PAINT_MESH, name,
+ sculpt_undo_restore, sculpt_undo_free);
+}
+
+void sculpt_undo_push_end(void)
+{
+ ListBase *lb= undo_paint_push_get_list(UNDO_PAINT_MESH);
+ SculptUndoNode *unode;
+
+ /* we don't need normals in the undo stack */
+ for(unode=lb->first; unode; unode=unode->next) {
+ if(unode->no) {
+ MEM_freeN(unode->no);
+ unode->no= NULL;
+ }
+
+ if(unode->layer_disp) {
+ MEM_freeN(unode->layer_disp);
+ unode->layer_disp= NULL;
+ }
+ }
+
+ undo_paint_push_end(UNDO_PAINT_MESH);
+}
diff --git a/source/blender/editors/sound/CMakeLists.txt b/source/blender/editors/sound/CMakeLists.txt
new file mode 100644
index 00000000000..02765726c6e
--- /dev/null
+++ b/source/blender/editors/sound/CMakeLists.txt
@@ -0,0 +1,35 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../../../intern/audaspace/intern
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_sound "${SRC}" "${INC}")
diff --git a/source/blender/editors/sound/SConscript b/source/blender/editors/sound/SConscript
index 9d2cd2b7cf5..8010dd49c57 100644
--- a/source/blender/editors/sound/SConscript
+++ b/source/blender/editors/sound/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc'
-incs += ' ../../makesrna ../../python'
+incs += ' ../../makesrna'
incs += ' #/intern/audaspace/intern'
defs = []
diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c
index 39717273278..678295376ba 100644
--- a/source/blender/editors/sound/sound_ops.c
+++ b/source/blender/editors/sound/sound_ops.c
@@ -30,12 +30,13 @@
#include <stdlib.h>
#include <stdio.h>
+#include "MEM_guardedalloc.h"
+
#include "DNA_packedFile_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
-#include "DNA_sound_types.h"
#include "DNA_sequence_types.h"
-#include "DNA_windowmanager_types.h"
+#include "DNA_userdef_types.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -47,7 +48,6 @@
#include "BLI_blenlib.h"
-#include "ED_sound.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -64,17 +64,30 @@
/******************** open sound operator ********************/
+static void open_init(bContext *C, wmOperator *op)
+{
+ PropertyPointerRNA *pprop;
+
+ op->customdata= pprop= MEM_callocN(sizeof(PropertyPointerRNA), "OpenPropertyPointerRNA");
+ uiIDContextProperty(C, &pprop->ptr, &pprop->prop);
+}
+
static int open_exec(bContext *C, wmOperator *op)
{
char path[FILE_MAX];
bSound *sound;
+ PropertyPointerRNA *pprop;
+ PointerRNA idptr;
AUD_SoundInfo info;
- RNA_string_get(op->ptr, "path", path);
-
+ RNA_string_get(op->ptr, "filepath", path);
sound = sound_new_file(CTX_data_main(C), path);
+ if(!op->customdata)
+ open_init(C, op);
+
if (sound==NULL || sound->playback_handle == NULL) {
+ if(op->customdata) MEM_freeN(op->customdata);
BKE_report(op->reports, RPT_ERROR, "Unsupported audio format");
return OPERATOR_CANCELLED;
}
@@ -83,6 +96,7 @@ static int open_exec(bContext *C, wmOperator *op)
if (info.specs.channels == AUD_CHANNELS_INVALID) {
sound_delete(C, sound);
+ if(op->customdata) MEM_freeN(op->customdata);
BKE_report(op->reports, RPT_ERROR, "Unsupported audio format");
return OPERATOR_CANCELLED;
}
@@ -90,12 +104,34 @@ static int open_exec(bContext *C, wmOperator *op)
if (RNA_boolean_get(op->ptr, "cache")) {
sound_cache(sound, 0);
}
+
+ /* hook into UI */
+ pprop= op->customdata;
+
+ if(pprop->prop) {
+ /* when creating new ID blocks, use is already 1, but RNA
+ * pointer se also increases user, so this compensates it */
+ sound->id.us--;
+
+ RNA_id_pointer_create(&sound->id, &idptr);
+ RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr);
+ RNA_property_update(C, &pprop->ptr, pprop->prop);
+ }
+ if(op->customdata) MEM_freeN(op->customdata);
return OPERATOR_FINISHED;
}
static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
+ if(RNA_property_is_set(op->ptr, "filepath"))
+ return open_exec(C, op);
+
+ open_init(C, op);
+
return WM_operator_filesel(C, op, event);
}
@@ -114,7 +150,7 @@ void SOUND_OT_open(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH);
RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory.");
}
@@ -182,23 +218,23 @@ static void unpack_menu(bContext *C, char *opname, char *abs_name, char *folder,
pup= uiPupMenuBegin(C, "Unpack file", 0);
layout= uiPupMenuLayout(pup);
- uiItemEnumO(layout, "Remove Pack", 0, opname, "method", PF_REMOVE);
+ uiItemEnumO(layout, opname, "Remove Pack", 0, "method", PF_REMOVE);
if(strcmp(abs_name, local_name)) {
switch(checkPackedFile(local_name, pf)) {
case PF_NOFILE:
sprintf(line, "Create %s", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_WRITE_LOCAL);
+ uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_LOCAL);
break;
case PF_EQUAL:
sprintf(line, "Use %s (identical)", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_USE_LOCAL);
+ uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
break;
case PF_DIFFERS:
sprintf(line, "Use %s (differs)", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_USE_LOCAL);
+ uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
sprintf(line, "Overwrite %s", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_WRITE_LOCAL);
+ uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_LOCAL);
break;
}
}
@@ -206,17 +242,17 @@ static void unpack_menu(bContext *C, char *opname, char *abs_name, char *folder,
switch(checkPackedFile(abs_name, pf)) {
case PF_NOFILE:
sprintf(line, "Create %s", abs_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_WRITE_ORIGINAL);
+ uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
break;
case PF_EQUAL:
sprintf(line, "Use %s (identical)", abs_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_USE_ORIGINAL);
+ uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
break;
case PF_DIFFERS:
sprintf(line, "Use %s (differs)", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_USE_ORIGINAL);
+ uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
sprintf(line, "Overwrite %s", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_WRITE_ORIGINAL);
+ uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
break;
}
diff --git a/source/blender/editors/space_action/CMakeLists.txt b/source/blender/editors/space_action/CMakeLists.txt
new file mode 100644
index 00000000000..85275b2db23
--- /dev/null
+++ b/source/blender/editors/space_action/CMakeLists.txt
@@ -0,0 +1,35 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+
+BLENDERLIB(bf_editor_space_action "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c
index 9c394f51d43..7ed07372e96 100644
--- a/source/blender/editors/space_action/action_draw.c
+++ b/source/blender/editors/space_action/action_draw.c
@@ -34,10 +34,6 @@
#include <string.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
@@ -45,26 +41,8 @@
/* Types --------------------------------------------------------------- */
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
#include "DNA_screen_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_meta_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
-#include "DNA_world_types.h"
#include "BKE_action.h"
#include "BKE_depsgraph.h"
@@ -82,15 +60,11 @@
#include "BIF_glutil.h"
#include "UI_interface.h"
-#include "UI_interface_icons.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "ED_anim_api.h"
-#include "ED_keyframing.h"
#include "ED_keyframes_draw.h"
-#include "ED_screen.h"
-#include "ED_space_api.h"
/* ************************************************************************* */
diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c
index ba8e49e3789..0e2a7f690c5 100644
--- a/source/blender/editors/space_action/action_edit.c
+++ b/source/blender/editors/space_action/action_edit.c
@@ -32,31 +32,14 @@
#include <string.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -77,10 +60,8 @@
#include "ED_anim_api.h"
#include "ED_keyframing.h"
-#include "ED_keyframes_draw.h"
#include "ED_keyframes_edit.h"
#include "ED_screen.h"
-#include "ED_space_api.h"
#include "ED_transform.h"
#include "WM_api.h"
@@ -118,7 +99,7 @@ static int act_new_exec(bContext *C, wmOperator *op)
}
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -152,7 +133,7 @@ static void get_keyframe_extents (bAnimContext *ac, float *min, float *max)
int filter;
/* get data to filter, from Action or Dopesheet */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* set large values to try to override */
@@ -303,7 +284,7 @@ static short copy_action_keys (bAnimContext *ac)
free_anim_copybuf();
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* copy keyframes */
@@ -322,7 +303,7 @@ static short paste_action_keys (bAnimContext *ac)
int filter, ok=0;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* paste keyframes */
@@ -398,7 +379,7 @@ static int actkeys_paste_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -440,7 +421,7 @@ static void insert_action_keys(bAnimContext *ac, short mode)
short flag = 0;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
if (mode == 2) filter |= ANIMFILTER_SEL;
else if (mode == 3) filter |= ANIMFILTER_ACTGROUPED;
@@ -493,7 +474,7 @@ static int actkeys_insertkey_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -527,9 +508,9 @@ static void duplicate_action_keys (bAnimContext *ac)
/* filter data */
if (ac->datatype == ANIMCONT_GPENCIL)
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS);
else
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and delete selected keys */
@@ -561,7 +542,7 @@ static int actkeys_duplicate_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED; // xxx - start transform
}
@@ -605,9 +586,9 @@ static void delete_action_keys (bAnimContext *ac)
/* filter data */
if (ac->datatype == ANIMCONT_GPENCIL)
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS);
else
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and delete selected keys */
@@ -648,7 +629,7 @@ static int actkeys_delete_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -678,7 +659,7 @@ static void clean_action_keys (bAnimContext *ac, float thresh)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and clean curves */
@@ -712,7 +693,7 @@ static int actkeys_clean_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -746,7 +727,7 @@ static void sample_action_keys (bAnimContext *ac)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and add keys between selected keyframes on every frame */
@@ -776,7 +757,7 @@ static int actkeys_sample_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -816,7 +797,7 @@ static void setexpo_action_keys(bAnimContext *ac, short mode)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting mode per F-Curve */
@@ -884,17 +865,17 @@ static void setipo_action_keys(bAnimContext *ac, short mode)
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
int filter;
- BeztEditFunc set_cb= ANIM_editkeyframes_ipo(mode);
+ KeyframeEditFunc set_cb= ANIM_editkeyframes_ipo(mode);
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting BezTriple interpolation
- * Note: we do not supply BeztEditData to the looper yet. Currently that's not necessary here...
+ * Note: we do not supply KeyframeEditData to the looper yet. Currently that's not necessary here...
*/
for (ale= anim_data.first; ale; ale= ale->next)
- ANIM_fcurve_keys_bezier_loop(NULL, ale->key_data, NULL, set_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(NULL, ale->key_data, NULL, set_cb, calchandles_fcurve);
/* cleanup */
BLI_freelistN(&anim_data);
@@ -967,21 +948,21 @@ static void sethandles_action_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- BeztEditFunc edit_cb= ANIM_editkeyframes_handles(mode);
- BeztEditFunc sel_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
+ KeyframeEditFunc edit_cb= ANIM_editkeyframes_handles(mode);
+ KeyframeEditFunc sel_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting flags for handles
- * Note: we do not supply BeztEditData to the looper yet. Currently that's not necessary here...
+ * Note: we do not supply KeyframeEditData to the looper yet. Currently that's not necessary here...
*/
for (ale= anim_data.first; ale; ale= ale->next) {
FCurve *fcu= (FCurve *)ale->key_data;
/* any selected keyframes for editing? */
- if (ANIM_fcurve_keys_bezier_loop(NULL, fcu, NULL, sel_cb, NULL)) {
+ if (ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, sel_cb, NULL)) {
/* for auto/auto-clamped, toggle the auto-handles flag on the F-Curve */
if (mode == HD_AUTO_ANIM)
fcu->flag |= FCURVE_AUTO_HANDLES;
@@ -989,7 +970,7 @@ static void sethandles_action_keys(bAnimContext *ac, short mode)
fcu->flag &= ~FCURVE_AUTO_HANDLES;
/* change type of selected handles */
- ANIM_fcurve_keys_bezier_loop(NULL, fcu, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, edit_cb, calchandles_fcurve);
}
}
@@ -1052,17 +1033,17 @@ static void setkeytype_action_keys(bAnimContext *ac, short mode)
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
int filter;
- BeztEditFunc set_cb= ANIM_editkeyframes_keytype(mode);
+ KeyframeEditFunc set_cb= ANIM_editkeyframes_keytype(mode);
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting BezTriple interpolation
- * Note: we do not supply BeztEditData to the looper yet. Currently that's not necessary here...
+ * Note: we do not supply KeyframeEditData to the looper yet. Currently that's not necessary here...
*/
for (ale= anim_data.first; ale; ale= ale->next)
- ANIM_fcurve_keys_bezier_loop(NULL, ale->key_data, NULL, set_cb, NULL);
+ ANIM_fcurve_keyframes_loop(NULL, ale->key_data, NULL, set_cb, NULL);
/* cleanup */
BLI_freelistN(&anim_data);
@@ -1127,36 +1108,37 @@ static int actkeys_framejump_exec(bContext *C, wmOperator *op)
ListBase anim_data= {NULL, NULL};
bAnimListElem *ale;
int filter;
- BeztEditData bed;
+ KeyframeEditData ked;
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
/* init edit data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* loop over action data, averaging values */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
AnimData *adt= ANIM_nla_mapping_get(&ac, ale);
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, bezt_calc_average, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, bezt_calc_average, NULL);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, bezt_calc_average, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, bezt_calc_average, NULL);
}
BLI_freelistN(&anim_data);
/* set the new current frame value, based on the average time */
- if (bed.i1) {
+ if (ked.i1) {
Scene *scene= ac.scene;
- CFRA= (int)floor((bed.f1 / bed.i1) + 0.5f);
+ CFRA= (int)floor((ked.f1 / ked.i1) + 0.5f);
+ SUBFRA= 0.f;
}
/* set notifier that things have changed */
@@ -1198,24 +1180,24 @@ static void snap_action_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- BeztEditData bed;
- BeztEditFunc edit_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc edit_cb;
/* filter data */
if (ac->datatype == ANIMCONT_GPENCIL)
filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT);
else
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* get beztriple editing callbacks */
edit_cb= ANIM_editkeyframes_snap(mode);
- memset(&bed, 0, sizeof(BeztEditData));
- bed.scene= ac->scene;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.scene= ac->scene;
if (mode == ACTKEYS_SNAP_NEAREST_MARKER) {
- bed.list.first= (ac->markers) ? ac->markers->first : NULL;
- bed.list.last= (ac->markers) ? ac->markers->last : NULL;
+ ked.list.first= (ac->markers) ? ac->markers->first : NULL;
+ ked.list.last= (ac->markers) ? ac->markers->last : NULL;
}
/* snap keyframes */
@@ -1224,13 +1206,13 @@ static void snap_action_keys(bAnimContext *ac, short mode)
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, edit_cb, calchandles_fcurve);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
//else if (ale->type == ACTTYPE_GPLAYER)
// snap_gplayer_frames(ale->data, mode);
else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, edit_cb, calchandles_fcurve);
}
BLI_freelistN(&anim_data);
@@ -1257,7 +1239,7 @@ static int actkeys_snap_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1298,14 +1280,14 @@ static void mirror_action_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- BeztEditData bed;
- BeztEditFunc edit_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc edit_cb;
/* get beztriple editing callbacks */
edit_cb= ANIM_editkeyframes_mirror(mode);
- memset(&bed, 0, sizeof(BeztEditData));
- bed.scene= ac->scene;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.scene= ac->scene;
/* for 'first selected marker' mode, need to find first selected marker first! */
// XXX should this be made into a helper func in the API?
@@ -1323,16 +1305,16 @@ static void mirror_action_keys(bAnimContext *ac, short mode)
/* store marker's time (if available) */
if (marker)
- bed.f1= (float)marker->frame;
+ ked.f1= (float)marker->frame;
else
return;
}
/* filter data */
if (ac->datatype == ANIMCONT_GPENCIL)
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS);
else
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* mirror keyframes */
@@ -1341,13 +1323,13 @@ static void mirror_action_keys(bAnimContext *ac, short mode)
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, edit_cb, calchandles_fcurve);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
//else if (ale->type == ACTTYPE_GPLAYER)
// snap_gplayer_frames(ale->data, mode);
else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, edit_cb, calchandles_fcurve);
}
BLI_freelistN(&anim_data);
@@ -1374,7 +1356,7 @@ static int actkeys_mirror_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/space_action/action_intern.h b/source/blender/editors/space_action/action_intern.h
index 3ad7d3e24ff..b02e95ac138 100644
--- a/source/blender/editors/space_action/action_intern.h
+++ b/source/blender/editors/space_action/action_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -56,6 +56,7 @@ void action_header_buttons(const struct bContext *C, struct ARegion *ar);
void ACTION_OT_select_all_toggle(struct wmOperatorType *ot);
void ACTION_OT_select_border(struct wmOperatorType *ot);
void ACTION_OT_select_column(struct wmOperatorType *ot);
+void ACTION_OT_select_linked(struct wmOperatorType *ot);
void ACTION_OT_select_more(struct wmOperatorType *ot);
void ACTION_OT_select_less(struct wmOperatorType *ot);
void ACTION_OT_clickselect(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c
index 429c1cc63cd..fa9968b2524 100644
--- a/source/blender/editors/space_action/action_ops.c
+++ b/source/blender/editors/space_action/action_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,28 +31,19 @@
#include "MEM_guardedalloc.h"
-#include "DNA_listBase.h"
-#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_blenlib.h"
#include "BKE_context.h"
#include "BKE_utildefines.h"
-#include "UI_interface.h"
-#include "UI_view2d.h"
#include "ED_transform.h"
#include "action_intern.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -67,6 +58,7 @@ void action_operatortypes(void)
WM_operatortype_append(ACTION_OT_select_all_toggle);
WM_operatortype_append(ACTION_OT_select_border);
WM_operatortype_append(ACTION_OT_select_column);
+ WM_operatortype_append(ACTION_OT_select_linked);
WM_operatortype_append(ACTION_OT_select_more);
WM_operatortype_append(ACTION_OT_select_less);
@@ -128,6 +120,9 @@ static void action_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
WM_keymap_add_item(keymap, "ACTION_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "ACTION_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
+ /* select linekd */
+ WM_keymap_add_item(keymap, "ACTION_OT_select_linked", LKEY, KM_PRESS, 0, 0);
+
/* action_edit.c */
/* snap - current frame to selected keys */
@@ -150,6 +145,7 @@ static void action_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
WM_keymap_add_item(keymap, "ACTION_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "ACTION_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "ACTION_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "ACTION_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "ACTION_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c
index 98caf1a25cb..e852afa9a87 100644
--- a/source/blender/editors/space_action/action_select.c
+++ b/source/blender/editors/space_action/action_select.c
@@ -29,10 +29,6 @@
#include <string.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
@@ -40,22 +36,8 @@
#include "BLI_dlrbTree.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
-#include "DNA_world_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -73,12 +55,10 @@
#include "UI_view2d.h"
#include "ED_anim_api.h"
-#include "ED_keyframing.h"
#include "ED_keyframes_draw.h"
#include "ED_keyframes_edit.h"
#include "ED_markers.h"
#include "ED_screen.h"
-#include "ED_space_api.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -110,20 +90,20 @@ static void deselect_action_keys (bAnimContext *ac, short test, short sel)
bAnimListElem *ale;
int filter;
- BeztEditData bed;
- BeztEditFunc test_cb, sel_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc test_cb, sel_cb;
/* determine type-based settings */
if (ac->datatype == ANIMCONT_GPENCIL)
- filter= (ANIMFILTER_VISIBLE);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NODUPLIS);
else
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
/* filter data */
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* init BezTriple looping data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
test_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
/* See if we should be selecting or deselecting */
@@ -136,7 +116,7 @@ static void deselect_action_keys (bAnimContext *ac, short test, short sel)
//}
}
else {
- if (ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, test_cb, NULL)) {
+ if (ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, test_cb, NULL)) {
sel= SELECT_SUBTRACT;
break;
}
@@ -152,7 +132,7 @@ static void deselect_action_keys (bAnimContext *ac, short test, short sel)
//if (ale->type == ACTTYPE_GPLAYER)
// set_gplayer_frame_selection(ale->data, sel);
//else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, sel_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, sel_cb, NULL);
}
/* Cleanup */
@@ -176,7 +156,7 @@ static int actkeys_deselectall_exec(bContext *C, wmOperator *op)
deselect_action_keys(&ac, 1, SELECT_ADD);
/* set notifier that keyframe selection have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -221,8 +201,8 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short
bAnimListElem *ale;
int filter, filterflag;
- BeztEditData bed;
- BeztEditFunc ok_cb, select_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc ok_cb, select_cb;
View2D *v2d= &ac->ar->v2d;
rctf rectf;
float ymin=0, ymax=(float)(-ACHANNEL_HEIGHT_HALF);
@@ -232,7 +212,7 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short
UI_view2d_region_to_view(v2d, rect.xmax, rect.ymax-2, &rectf.xmax, &rectf.ymax);
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CHANNELS | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* get filtering flag for dopesheet data (if applicable) */
@@ -252,7 +232,7 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short
ok_cb= NULL;
/* init editing data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* loop over data, doing border select */
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -265,12 +245,12 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short
if (ELEM(mode, ACTKEYS_BORDERSEL_FRAMERANGE, ACTKEYS_BORDERSEL_ALLKEYS)) {
/* if channel is mapped in NLA, apply correction */
if (adt) {
- bed.f1= BKE_nla_tweakedit_remap(adt, rectf.xmin, NLATIME_CONVERT_UNMAP);
- bed.f2= BKE_nla_tweakedit_remap(adt, rectf.xmax, NLATIME_CONVERT_UNMAP);
+ ked.f1= BKE_nla_tweakedit_remap(adt, rectf.xmin, NLATIME_CONVERT_UNMAP);
+ ked.f2= BKE_nla_tweakedit_remap(adt, rectf.xmax, NLATIME_CONVERT_UNMAP);
}
else {
- bed.f1= rectf.xmin;
- bed.f2= rectf.xmax;
+ ked.f1= rectf.xmin;
+ ked.f2= rectf.xmax;
}
}
@@ -282,7 +262,7 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short
//if (ale->type == ANIMTYPE_GPLAYER)
// borderselect_gplayer_frames(ale->data, rectf.xmin, rectf.xmax, selectmode);
//else
- ANIM_animchannel_keys_bezier_loop(&bed, ale, ok_cb, select_cb, NULL, filterflag);
+ ANIM_animchannel_keyframes_loop(&ked, ale, ok_cb, select_cb, NULL, filterflag);
}
/* set minimum extent to be the maximum of the next channel */
@@ -337,7 +317,7 @@ static int actkeys_borderselect_exec(bContext *C, wmOperator *op)
borderselect_action(&ac, rect, mode, selectmode);
/* set notifier that keyframe selection have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -391,8 +371,8 @@ static void markers_selectkeys_between (bAnimContext *ac)
bAnimListElem *ale;
int filter;
- BeztEditFunc ok_cb, select_cb;
- BeztEditData bed;
+ KeyframeEditFunc ok_cb, select_cb;
+ KeyframeEditData ked;
float min, max;
/* get extreme markers */
@@ -404,12 +384,12 @@ static void markers_selectkeys_between (bAnimContext *ac)
ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
select_cb= ANIM_editkeyframes_select(SELECT_ADD);
- memset(&bed, 0, sizeof(BeztEditData));
- bed.f1= min;
- bed.f2= max;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.f1= min;
+ ked.f2= max;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* select keys in-between */
@@ -418,11 +398,11 @@ static void markers_selectkeys_between (bAnimContext *ac)
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
else {
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
}
@@ -440,11 +420,11 @@ static void columnselect_action_keys (bAnimContext *ac, short mode)
Scene *scene= ac->scene;
CfraElem *ce;
- BeztEditFunc select_cb, ok_cb;
- BeztEditData bed;
+ KeyframeEditFunc select_cb, ok_cb;
+ KeyframeEditData ked;
/* initialise keyframe editing data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* build list of columns */
switch (mode) {
@@ -461,7 +441,7 @@ static void columnselect_action_keys (bAnimContext *ac, short mode)
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
for (ale= anim_data.first; ale; ale= ale->next)
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, bezt_to_cfraelem, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, bezt_to_cfraelem, NULL);
}
BLI_freelistN(&anim_data);
break;
@@ -469,13 +449,13 @@ static void columnselect_action_keys (bAnimContext *ac, short mode)
case ACTKEYS_COLUMNSEL_CFRA: /* current frame */
/* make a single CfraElem for storing this */
ce= MEM_callocN(sizeof(CfraElem), "cfraElem");
- BLI_addtail(&bed.list, ce);
+ BLI_addtail(&ked.list, ce);
ce->cfra= (float)CFRA;
break;
case ACTKEYS_COLUMNSEL_MARKERS_COLUMN: /* list of selected markers */
- ED_markers_make_cfra_list(ac->markers, &bed.list, 1);
+ ED_markers_make_cfra_list(ac->markers, &ked.list, 1);
break;
default: /* invalid option */
@@ -498,18 +478,18 @@ static void columnselect_action_keys (bAnimContext *ac, short mode)
for (ale= anim_data.first; ale; ale= ale->next) {
AnimData *adt= ANIM_nla_mapping_get(ac, ale);
- /* loop over cfraelems (stored in the BeztEditData->list)
+ /* loop over cfraelems (stored in the KeyframeEditData->list)
* - we need to do this here, as we can apply fewer NLA-mapping conversions
*/
- for (ce= bed.list.first; ce; ce= ce->next) {
+ for (ce= ked.list.first; ce; ce= ce->next) {
/* set frame for validation callback to refer to */
if (adt)
- bed.f1= BKE_nla_tweakedit_remap(adt, ce->cfra, NLATIME_CONVERT_UNMAP);
+ ked.f1= BKE_nla_tweakedit_remap(adt, ce->cfra, NLATIME_CONVERT_UNMAP);
else
- bed.f1= ce->cfra;
+ ked.f1= ce->cfra;
/* select elements with frame number matching cfraelem */
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
#if 0 // XXX reenable when Grease Pencil stuff is back
if (ale->type == ANIMTYPE_GPLAYER) {
@@ -527,7 +507,7 @@ static void columnselect_action_keys (bAnimContext *ac, short mode)
}
/* free elements */
- BLI_freelistN(&bed.list);
+ BLI_freelistN(&ked.list);
BLI_freelistN(&anim_data);
}
@@ -551,7 +531,7 @@ static int actkeys_columnselect_exec(bContext *C, wmOperator *op)
columnselect_action_keys(&ac, mode);
/* set notifier that keyframe selection have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -574,6 +554,61 @@ void ACTION_OT_select_column (wmOperatorType *ot)
ot->prop= RNA_def_enum(ot->srna, "mode", prop_column_select_types, 0, "Mode", "");
}
+/* ******************** Select Linked Operator *********************** */
+
+static int actkeys_select_linked_exec (bContext *C, wmOperator *op)
+{
+ bAnimContext ac;
+
+ ListBase anim_data= {NULL, NULL};
+ bAnimListElem *ale;
+ int filter;
+
+ KeyframeEditFunc ok_cb = ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
+ KeyframeEditFunc sel_cb = ANIM_editkeyframes_select(SELECT_ADD);
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* loop through all of the keys and select additional keyframes based on these */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ for (ale= anim_data.first; ale; ale= ale->next) {
+ FCurve *fcu= (FCurve *)ale->key_data;
+
+ /* check if anything selected? */
+ if (ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, ok_cb, NULL)) {
+ /* select every keyframe in this curve then */
+ ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, sel_cb, NULL);
+ }
+ }
+
+ /* Cleanup */
+ BLI_freelistN(&anim_data);
+
+ /* set notifier that keyframe selection has changed */
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void ACTION_OT_select_linked (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Select Linked";
+ ot->idname= "ACTION_OT_select_linked";
+ ot->description = "Select keyframes occurring the same F-Curves as selected ones";
+
+ /* api callbacks */
+ ot->exec= actkeys_select_linked_exec;
+ ot->poll= ED_operator_action_active;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER/*|OPTYPE_UNDO*/;
+}
+
/* ******************** Select More/Less Operators *********************** */
/* Common code to perform selection */
@@ -583,16 +618,16 @@ static void select_moreless_action_keys (bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- BeztEditData bed;
- BeztEditFunc build_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc build_cb;
/* init selmap building data */
build_cb= ANIM_editkeyframes_buildselmap(mode);
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* loop through all of the keys and select additional keyframes based on these */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -603,15 +638,15 @@ static void select_moreless_action_keys (bAnimContext *ac, short mode)
continue;
/* build up map of whether F-Curve's keyframes should be selected or not */
- bed.data= MEM_callocN(fcu->totvert, "selmap actEdit more");
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, build_cb, NULL);
+ ked.data= MEM_callocN(fcu->totvert, "selmap actEdit more");
+ ANIM_fcurve_keyframes_loop(&ked, fcu, NULL, build_cb, NULL);
/* based on this map, adjust the selection status of the keyframes */
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, bezt_selmap_flush, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, fcu, NULL, bezt_selmap_flush, NULL);
/* free the selmap used here */
- MEM_freeN(bed.data);
- bed.data= NULL;
+ MEM_freeN(ked.data);
+ ked.data= NULL;
}
/* Cleanup */
@@ -632,7 +667,7 @@ static int actkeys_select_more_exec (bContext *C, wmOperator *op)
select_moreless_action_keys(&ac, SELMAP_MORE);
/* set notifier that keyframe selection has changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -666,7 +701,7 @@ static int actkeys_select_less_exec (bContext *C, wmOperator *op)
select_moreless_action_keys(&ac, SELMAP_LESS);
/* set notifier that keyframe selection has changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -716,17 +751,17 @@ static void actkeys_mselect_single (bAnimContext *ac, bAnimListElem *ale, short
bDopeSheet *ads= (ac->datatype == ANIMCONT_DOPESHEET) ? ac->data : NULL;
int ds_filter = ((ads) ? (ads->filterflag) : (0));
- BeztEditData bed;
- BeztEditFunc select_cb, ok_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc select_cb, ok_cb;
/* get functions for selecting keyframes */
select_cb= ANIM_editkeyframes_select(select_mode);
ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAME);
- memset(&bed, 0, sizeof(BeztEditData));
- bed.f1= selx;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.f1= selx;
/* select the nominated keyframe on the given frame */
- ANIM_animchannel_keys_bezier_loop(&bed, ale, ok_cb, select_cb, NULL, ds_filter);
+ ANIM_animchannel_keyframes_loop(&ked, ale, ok_cb, select_cb, NULL, ds_filter);
}
/* Option 2) Selects all the keyframes on either side of the current frame (depends on which side the mouse is on) */
@@ -736,8 +771,8 @@ static void actkeys_mselect_leftright (bAnimContext *ac, short leftright, short
bAnimListElem *ale;
int filter;
- BeztEditFunc ok_cb, select_cb;
- BeztEditData bed;
+ KeyframeEditFunc ok_cb, select_cb;
+ KeyframeEditData ked;
Scene *scene= ac->scene;
/* if select mode is replace, deselect all keyframes (and channels) first */
@@ -753,21 +788,21 @@ static void actkeys_mselect_leftright (bAnimContext *ac, short leftright, short
ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
select_cb= ANIM_editkeyframes_select(select_mode);
- memset(&bed, 0, sizeof(BeztEditFunc));
+ memset(&ked, 0, sizeof(KeyframeEditFunc));
if (leftright == ACTKEYS_LRSEL_LEFT) {
- bed.f1 = MINAFRAMEF;
- bed.f2 = (float)(CFRA + FRAME_CLICK_THRESH);
+ ked.f1 = MINAFRAMEF;
+ ked.f2 = (float)(CFRA + FRAME_CLICK_THRESH);
}
else {
- bed.f1 = (float)(CFRA - FRAME_CLICK_THRESH);
- bed.f2 = MAXFRAMEF;
+ ked.f1 = (float)(CFRA - FRAME_CLICK_THRESH);
+ ked.f2 = MAXFRAMEF;
}
/* filter data */
if (ac->datatype == ANIMCONT_GPENCIL)
- filter= (ANIMFILTER_VISIBLE);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NODUPLIS);
else
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* select keys on the side where most data occurs */
@@ -776,15 +811,35 @@ static void actkeys_mselect_leftright (bAnimContext *ac, short leftright, short
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
//else if (ale->type == ANIMTYPE_GPLAYER)
// borderselect_gplayer_frames(ale->data, min, max, SELECT_ADD);
else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
+ /* Sync marker support */
+ if((select_mode==SELECT_ADD) && (ac->spacetype==SPACE_ACTION) && ELEM(leftright, ACTKEYS_LRSEL_LEFT, ACTKEYS_LRSEL_RIGHT)) {
+ SpaceAction *saction= ac->sa->spacedata.first;
+
+ if (saction && saction->flag & SACTION_MARKERS_MOVE) {
+ TimeMarker *marker;
+
+ for (marker= scene->markers.first; marker; marker= marker->next) {
+ if( ((leftright == ACTKEYS_LRSEL_LEFT) && (marker->frame < CFRA)) ||
+ ((leftright == ACTKEYS_LRSEL_RIGHT) && (marker->frame >= CFRA)) )
+ {
+ marker->flag |= SELECT;
+ }
+ else {
+ marker->flag &= ~SELECT;
+ }
+ }
+ }
+ }
+
/* Cleanup */
BLI_freelistN(&anim_data);
}
@@ -796,11 +851,11 @@ static void actkeys_mselect_column(bAnimContext *ac, short select_mode, float se
bAnimListElem *ale;
int filter;
- BeztEditFunc select_cb, ok_cb;
- BeztEditData bed;
+ KeyframeEditFunc select_cb, ok_cb;
+ KeyframeEditData ked;
/* initialise keyframe editing data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* set up BezTriple edit callbacks */
select_cb= ANIM_editkeyframes_select(select_mode);
@@ -810,9 +865,9 @@ static void actkeys_mselect_column(bAnimContext *ac, short select_mode, float se
* based on the keys found to be selected above
*/
if (ac->datatype == ANIMCONT_GPENCIL)
- filter= (ANIMFILTER_VISIBLE);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NODUPLIS);
else
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -820,12 +875,12 @@ static void actkeys_mselect_column(bAnimContext *ac, short select_mode, float se
/* set frame for validation callback to refer to */
if (adt)
- bed.f1= BKE_nla_tweakedit_remap(adt, selx, NLATIME_CONVERT_UNMAP);
+ ked.f1= BKE_nla_tweakedit_remap(adt, selx, NLATIME_CONVERT_UNMAP);
else
- bed.f1= selx;
+ ked.f1= selx;
/* select elements with frame number matching cfra */
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
#if 0 // XXX reenable when Grease Pencil stuff is back
if (ale->type == ANIMTYPE_GPLAYER) {
@@ -842,7 +897,7 @@ static void actkeys_mselect_column(bAnimContext *ac, short select_mode, float se
}
/* free elements */
- BLI_freelistN(&bed.list);
+ BLI_freelistN(&ked.list);
BLI_freelistN(&anim_data);
}
@@ -943,10 +998,8 @@ static void mouse_action_keys (bAnimContext *ac, int mval[2], short select_mode,
gpl_to_keylist(ads, gpl, &anim_keys, NULL);
}
- // the call below is not strictly necessary, since we have adjacency info anyway
- //BLI_dlrbTree_linkedlist_sync(&anim_keys);
-
/* loop through keyframes, finding one that was within the range clicked on */
+ // TODO: replace this with API calls instead of inlining
for (ak= anim_keys.root; ak; ak= akn) {
if (IN_RANGE(ak->cfra, rectf.xmin, rectf.xmax)) {
/* set the frame to use, and apply inverse-correction for NLA-mapping
@@ -1085,7 +1138,7 @@ static int actkeys_clickselect_invoke(bContext *C, wmOperator *op, wmEvent *even
}
/* set notifier that keyframe selection (and channels too) have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT|ND_ANIMCHAN_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|ND_ANIMCHAN|NA_SELECTED, NULL);
/* for tweak grab to work */
return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c
index 111e500c6f5..bad35d9d3e6 100644
--- a/source/blender/editors/space_action/space_action.c
+++ b/source/blender/editors/space_action/space_action.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,12 +29,8 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_listBase.h"
#include "DNA_action_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -47,7 +43,6 @@
#include "BKE_screen.h"
#include "BKE_utildefines.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
@@ -55,12 +50,10 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "ED_anim_api.h"
-#include "ED_keyframes_draw.h"
#include "ED_markers.h"
#include "action_intern.h" // own include
@@ -110,10 +103,10 @@ static SpaceLink *action_new(const bContext *C)
ar->v2d.cur = ar->v2d.tot;
ar->v2d.min[0]= 0.0f;
- ar->v2d.min[1]= 0.0f;
+ ar->v2d.min[1]= 0.0f;
ar->v2d.max[0]= MAXFRAMEF;
- ar->v2d.max[1]= FLT_MAX;
+ ar->v2d.max[1]= FLT_MAX;
ar->v2d.minzoom= 0.01f;
ar->v2d.maxzoom= 50;
@@ -172,12 +165,10 @@ static void action_main_area_draw(const bContext *C, ARegion *ar)
View2D *v2d= &ar->v2d;
View2DGrid *grid;
View2DScrollers *scrollers;
- float col[3];
short unit=0, flag=0;
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
@@ -234,11 +225,9 @@ static void action_channel_area_draw(const bContext *C, ARegion *ar)
bAnimContext ac;
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
- float col[3];
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
@@ -363,7 +352,7 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn)
switch (wmn->category) {
case NC_ANIMATION:
/* for selection changes of animation data, we can just redraw... otherwise autocolor might need to be done again */
- if (ELEM(wmn->data, ND_KEYFRAME_SELECT, ND_ANIMCHAN_SELECT))
+ if (ELEM(wmn->data, ND_KEYFRAME, ND_ANIMCHAN) && (wmn->action == NA_SELECTED))
ED_area_tag_redraw(sa);
else
ED_area_tag_refresh(sa);
diff --git a/source/blender/editors/space_api/CMakeLists.txt b/source/blender/editors/space_api/CMakeLists.txt
new file mode 100644
index 00000000000..f186b4f1c8a
--- /dev/null
+++ b/source/blender/editors/space_api/CMakeLists.txt
@@ -0,0 +1,35 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../../bmesh
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_space_api "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_api/SConscript b/source/blender/editors/space_api/SConscript
index 44090e8fc12..d8be59941eb 100644
--- a/source/blender/editors/space_api/SConscript
+++ b/source/blender/editors/space_api/SConscript
@@ -9,7 +9,4 @@ incs += ' #/intern/guardedalloc #/extern/glew/include'
defs = ''
-if not env['WITH_BF_PYTHON']:
- defs += 'DISABLE_PYTHON'
-
env.BlenderLib ( 'bf_editors_space_api', sources, Split(incs), Split(defs), libtype=['core'], priority=[30] )
diff --git a/source/blender/editors/space_api/space.c b/source/blender/editors/space_api/space.c
index c61e5d93160..66cb88ebf70 100644
--- a/source/blender/editors/space_api/space.c
+++ b/source/blender/editors/space_api/space.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -37,7 +37,6 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "ED_screen.h"
/* */
diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c
index d8d3d803634..b0f6d456dcc 100644
--- a/source/blender/editors/space_api/spacetypes.c
+++ b/source/blender/editors/space_api/spacetypes.c
@@ -1,5 +1,5 @@
/**
- * $Id: spacetypes.c
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -28,7 +28,6 @@
#include "BLI_blenlib.h"
#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
#include "DNA_windowmanager_types.h"
#include "BKE_context.h"
@@ -59,6 +58,7 @@
#include "ED_sound.h"
#include "ED_uvedit.h"
#include "ED_mball.h"
+#include "ED_logic.h"
/* only call once on startup, storage is global in BKE kernel listbase */
void ED_spacetypes_init(void)
@@ -104,6 +104,7 @@ void ED_spacetypes_init(void)
ED_operatortypes_metaball();
ED_operatortypes_sound();
ED_operatortypes_render();
+ ED_operatortypes_logic();
UI_view2d_operatortypes();
UI_buttons_operatortypes();
diff --git a/source/blender/editors/space_buttons/CMakeLists.txt b/source/blender/editors/space_buttons/CMakeLists.txt
new file mode 100644
index 00000000000..bb50ac0cc86
--- /dev/null
+++ b/source/blender/editors/space_buttons/CMakeLists.txt
@@ -0,0 +1,34 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_space_buttons "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_buttons/SConscript b/source/blender/editors/space_buttons/SConscript
index 71530d6f92d..b82f0db49a0 100644
--- a/source/blender/editors/space_buttons/SConscript
+++ b/source/blender/editors/space_buttons/SConscript
@@ -9,7 +9,4 @@ incs += ' ../../makesrna ../../render/extern/include ../../bmesh'
defs = []
-if env['WITH_BF_GAMEENGINE']:
- defs.append('GAMEBLENDER=1')
-
env.BlenderLib ( 'bf_editors_space_buttons', sources, Split(incs), defs, libtype=['core'], priority=[120] )
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index 572176a256a..da6f9fa3f1e 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,17 +31,10 @@
#include "MEM_guardedalloc.h"
#include "DNA_armature_types.h"
-#include "DNA_brush_types.h"
#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
-#include "DNA_modifier_types.h"
#include "DNA_node_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_particle_types.h"
-#include "DNA_texture_types.h"
#include "DNA_world_types.h"
#include "BLI_listbase.h"
@@ -706,11 +699,20 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
Material *ma= ptr->data;
/* if we have a node material, get slot from material in material node */
- if(ma && ma->use_nodes && ma->nodetree)
+ if(ma && ma->use_nodes && ma->nodetree) {
+ /* if there's an active texture node in the node tree,
+ * then that texture is in context directly, without a texture slot */
+ if (give_current_material_texture_node(ma))
+ return 0;
+
ma= give_node_material(ma);
-
- if(ma)
+ if (ma)
+ CTX_data_pointer_set(result, &ma->id, &RNA_MaterialTextureSlot, ma->mtex[(int)ma->texact]);
+ else
+ return 0;
+ } else if(ma) {
CTX_data_pointer_set(result, &ma->id, &RNA_MaterialTextureSlot, ma->mtex[(int)ma->texact]);
+ }
}
else if((ptr=get_pointer_type(path, &RNA_Lamp))) {
Lamp *la= ptr->data;
@@ -823,21 +825,9 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
static void pin_cb(bContext *C, void *arg1, void *arg2)
{
SpaceButs *sbuts= CTX_wm_space_buts(C);
- ButsContextPath *path= sbuts->path;
- PointerRNA *ptr;
- int a;
if(sbuts->flag & SB_PIN_CONTEXT) {
- if(path->len) {
- for(a=path->len-1; a>=0; a--) {
- ptr= &path->ptr[a];
-
- if(ptr->id.data) {
- sbuts->pinid= ptr->id.data;
- break;
- }
- }
- }
+ sbuts->pinid= buttons_context_id_path(C);
}
else
sbuts->pinid= NULL;
@@ -908,3 +898,24 @@ void buttons_context_register(ARegionType *art)
pt->flag= PNL_NO_HEADER;
BLI_addtail(&art->paneltypes, pt);
}
+
+ID *buttons_context_id_path(const bContext *C)
+{
+ SpaceButs *sbuts= CTX_wm_space_buts(C);
+ ButsContextPath *path= sbuts->path;
+ PointerRNA *ptr;
+ int a;
+
+ if(path->len) {
+ for(a=path->len-1; a>=0; a--) {
+ ptr= &path->ptr[a];
+
+ if(ptr->id.data) {
+ return ptr->id.data;
+ break;
+ }
+ }
+ }
+
+ return NULL;
+}
diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c
index 3e479c63f20..d8cbbb0cbae 100644
--- a/source/blender/editors/space_buttons/buttons_header.c
+++ b/source/blender/editors/space_buttons/buttons_header.c
@@ -29,11 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -45,10 +40,7 @@
#include "ED_screen.h"
#include "ED_types.h"
-#include "ED_util.h"
-#include "WM_api.h"
-#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -138,7 +130,7 @@ void buttons_header_buttons(const bContext *C, ARegion *ar)
uiBlockEndAlign(block);
/* always as last */
- UI_view2d_totRect_set(&ar->v2d, xco+XIC+80, ar->v2d.tot.ymax-ar->v2d.tot.ymin);
+ UI_view2d_totRect_set(&ar->v2d, xco+(XIC/2), ar->v2d.tot.ymax-ar->v2d.tot.ymin);
uiEndBlock(C, block);
uiDrawBlock(C, block);
diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h
index 28d52fd55cc..9478168f35a 100644
--- a/source/blender/editors/space_buttons/buttons_intern.h
+++ b/source/blender/editors/space_buttons/buttons_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -35,6 +35,7 @@ struct bContextDataResult;
struct SpaceButs;
struct uiLayout;
struct wmOperatorType;
+struct ID;
/* buts->scaflag */
#define BUTS_SENS_SEL 1
@@ -62,6 +63,7 @@ void buttons_context_compute(const struct bContext *C, struct SpaceButs *sbuts);
int buttons_context(const struct bContext *C, const char *member, struct bContextDataResult *result);
void buttons_context_draw(const struct bContext *C, struct uiLayout *layout);
void buttons_context_register(struct ARegionType *art);
+struct ID *buttons_context_id_path(const struct bContext *C);
/* buttons_ops.c */
void BUTTONS_OT_file_browse(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_buttons/buttons_ops.c b/source/blender/editors/space_buttons/buttons_ops.c
index 7b59f6aafa9..ebdc0d37b43 100644
--- a/source/blender/editors/space_buttons/buttons_ops.c
+++ b/source/blender/editors/space_buttons/buttons_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,10 +30,12 @@
#include "MEM_guardedalloc.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
+#include "DNA_userdef_types.h"
+
+#include "BLI_fileops.h"
#include "BKE_context.h"
+#include "BKE_global.h" /* G.sce only */
#include "WM_api.h"
#include "WM_types.h"
@@ -41,10 +43,8 @@
#include "ED_screen.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "UI_interface.h"
-#include "UI_resources.h"
#include "buttons_intern.h" // own include
@@ -92,10 +92,10 @@ static int file_browse_exec(bContext *C, wmOperator *op)
FileBrowseOp *fbo= op->customdata;
char *str;
- if (RNA_property_is_set(op->ptr, "path")==0 || fbo==NULL)
+ if (RNA_property_is_set(op->ptr, "filepath")==0 || fbo==NULL)
return OPERATOR_CANCELLED;
- str= RNA_string_get_alloc(op->ptr, "path", 0, 0);
+ str= RNA_string_get_alloc(op->ptr, "filepath", 0, 0);
RNA_property_string_set(&fbo->ptr, fbo->prop, str);
RNA_property_update(C, &fbo->ptr, fbo->prop);
MEM_freeN(str);
@@ -123,26 +123,53 @@ static int file_browse_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(!prop)
return OPERATOR_CANCELLED;
-
- fbo= MEM_callocN(sizeof(FileBrowseOp), "FileBrowseOp");
- fbo->ptr= ptr;
- fbo->prop= prop;
- op->customdata= fbo;
str= RNA_property_string_get_alloc(&ptr, prop, 0, 0);
- RNA_string_set(op->ptr, "path", str);
- MEM_freeN(str);
- WM_event_add_fileselect(C, op);
-
- return OPERATOR_RUNNING_MODAL;
+ /* useful yet irritating feature, Shift+Click to open the file
+ * Alt+Click to browse a folder in the OS's browser */
+ if(event->shift || event->alt) {
+ PointerRNA props_ptr;
+
+ if(event->alt) {
+ char *lslash= BLI_last_slash(str);
+ if(lslash)
+ *lslash= '\0';
+ }
+
+
+ WM_operator_properties_create(&props_ptr, "WM_OT_path_open");
+ RNA_string_set(&props_ptr, "filepath", str);
+ WM_operator_name_call(C, "WM_OT_path_open", WM_OP_EXEC_DEFAULT, &props_ptr);
+ WM_operator_properties_free(&props_ptr);
+
+ MEM_freeN(str);
+ return OPERATOR_CANCELLED;
+ }
+ else {
+ fbo= MEM_callocN(sizeof(FileBrowseOp), "FileBrowseOp");
+ fbo->ptr= ptr;
+ fbo->prop= prop;
+ op->customdata= fbo;
+
+ RNA_string_set(op->ptr, "filepath", str);
+ MEM_freeN(str);
+
+ if(RNA_struct_find_property(op->ptr, "relative_path"))
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
+ WM_event_add_fileselect(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+ }
}
void BUTTONS_OT_file_browse(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Accept";
- ot->description="Open a file browser";
+ ot->description="Open a file browser, Hold Shift to open the file, Alt to browse containing directory";
ot->idname= "BUTTONS_OT_file_browse";
/* api callbacks */
@@ -151,6 +178,6 @@ void BUTTONS_OT_file_browse(wmOperatorType *ot)
ot->cancel= file_browse_cancel;
/* properties */
- WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
}
diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c
index b828a1e664c..e28fcf8c28a 100644
--- a/source/blender/editors/space_buttons/space_buttons.c
+++ b/source/blender/editors/space_buttons/space_buttons.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,11 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -45,7 +40,6 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
@@ -53,7 +47,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -181,7 +174,7 @@ static void buttons_main_area_draw(const bContext *C, ARegion *ar)
else if(sbuts->mainb == BCONTEXT_BONE_CONSTRAINT)
ED_region_panels(C, ar, vertical, "bone_constraint", sbuts->mainb);
- sbuts->re_align= 0;
+ sbuts->re_align= 0;
sbuts->mainbo= sbuts->mainb;
}
@@ -215,15 +208,9 @@ static void buttons_header_area_draw(const bContext *C, ARegion *ar)
ED_region_header(C, ar);
#else
- float col[3];
-
+
/* clear */
- if(ED_screen_area_active(C))
- UI_GetThemeColor3fv(TH_HEADER, col);
- else
- UI_GetThemeColor3fv(TH_HEADERDESEL, col);
-
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(ED_screen_area_active(C)?TH_HEADER:TH_HEADERDESEL);
glClear(GL_COLOR_BUFFER_BIT);
/* set view2d view matrix for scrolling (without scrollers) */
@@ -265,6 +252,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
buttons_area_redraw(sa, BCONTEXT_TEXTURE);
buttons_area_redraw(sa, BCONTEXT_WORLD);
buttons_area_redraw(sa, BCONTEXT_DATA);
+ buttons_area_redraw(sa, BCONTEXT_PHYSICS);
sbuts->preview= 1;
break;
case ND_OB_ACTIVE:
@@ -274,6 +262,8 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
case ND_KEYINGSET:
buttons_area_redraw(sa, BCONTEXT_SCENE);
break;
+ case ND_RENDER_RESULT:
+ break;
case ND_MODE:
case ND_LAYER:
default:
@@ -297,15 +287,20 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
ED_area_tag_redraw(sa);
else
buttons_area_redraw(sa, BCONTEXT_MODIFIER);
+ buttons_area_redraw(sa, BCONTEXT_PHYSICS);
break;
case ND_CONSTRAINT:
buttons_area_redraw(sa, BCONTEXT_CONSTRAINT);
buttons_area_redraw(sa, BCONTEXT_BONE_CONSTRAINT);
break;
- case ND_PARTICLE_DATA:
- buttons_area_redraw(sa, BCONTEXT_PARTICLE);
+ case ND_PARTICLE:
+ if (wmn->action == NA_EDITED)
+ buttons_area_redraw(sa, BCONTEXT_PARTICLE);
break;
case ND_DRAW:
+ buttons_area_redraw(sa, BCONTEXT_OBJECT);
+ buttons_area_redraw(sa, BCONTEXT_DATA);
+ buttons_area_redraw(sa, BCONTEXT_PHYSICS);
case ND_SHADING:
case ND_SHADING_DRAW:
/* currently works by redraws... if preview is set, it (re)starts job */
@@ -349,6 +344,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
sbuts->preview= 1;
break;
case NC_TEXTURE:
+ case NC_IMAGE:
ED_area_tag_redraw(sa);
sbuts->preview= 1;
break;
@@ -362,8 +358,9 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
break;
case NC_ANIMATION:
switch(wmn->data) {
- case ND_KEYFRAME_EDIT:
- ED_area_tag_redraw(sa);
+ case ND_KEYFRAME:
+ if (wmn->action == NA_EDITED)
+ ED_area_tag_redraw(sa);
break;
}
}
diff --git a/source/blender/editors/space_console/CMakeLists.txt b/source/blender/editors/space_console/CMakeLists.txt
new file mode 100644
index 00000000000..0cee45576b8
--- /dev/null
+++ b/source/blender/editors/space_console/CMakeLists.txt
@@ -0,0 +1,40 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenfont
+ ../../blenkernel
+ ../../blenlib
+ ../../blenloader
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+IF(NOT WITH_PYTHON)
+ ADD_DEFINITIONS(-DDISABLE_PYTHON)
+ENDIF(NOT WITH_PYTHON)
+
+BLENDERLIB(bf_editor_space_console "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_console/Makefile b/source/blender/editors/space_console/Makefile
index a7c9283985b..3f760b1ad67 100644
--- a/source/blender/editors/space_console/Makefile
+++ b/source/blender/editors/space_console/Makefile
@@ -43,6 +43,7 @@ CPPFLAGS += -I../../windowmanager
CPPFLAGS += -I../../blenfont
CPPFLAGS += -I../../blenkernel
CPPFLAGS += -I../../blenlib
+CPPFLAGS += -I../../blenloader
CPPFLAGS += -I../../makesdna
CPPFLAGS += -I../../makesrna
CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
diff --git a/source/blender/editors/space_console/SConscript b/source/blender/editors/space_console/SConscript
index ecc10a1d0c3..d50902446ba 100644
--- a/source/blender/editors/space_console/SConscript
+++ b/source/blender/editors/space_console/SConscript
@@ -14,6 +14,7 @@ incs = [
'../../blenlib',
'../../windowmanager',
'../../blenfont',
+ '../../blenloader',
]
if not env['WITH_BF_PYTHON']:
diff --git a/source/blender/editors/space_console/console_draw.c b/source/blender/editors/space_console/console_draw.c
index 708089f8f4c..2fab998b9b6 100644
--- a/source/blender/editors/space_console/console_draw.c
+++ b/source/blender/editors/space_console/console_draw.c
@@ -41,7 +41,6 @@
#include "DNA_space_types.h"
#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_global.h"
#include "BKE_main.h"
@@ -56,22 +55,20 @@
#include "ED_datafiles.h"
#include "ED_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "console_intern.h"
+
+static int mono= -1; // XXX needs proper storage and change all the BLF_* here!
+
static void console_font_begin(SpaceConsole *sc)
{
- static int mono= -1; // XXX needs proper storage
-
if(mono == -1)
mono= BLF_load_mem("monospace", (unsigned char*)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
- BLF_set(mono);
- BLF_aspect(1.0);
-
- BLF_size(sc->lheight-2, 72);
+ BLF_aspect(mono, 1.0);
+ BLF_size(mono, sc->lheight-2, 72);
}
static void console_line_color(unsigned char *fg, int type)
@@ -226,8 +223,8 @@ static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len,
glColor3ub(fg[0], fg[1], fg[2]);
/* last part needs no clipping */
- BLF_position(cdc->xy[0], cdc->xy[1], 0);
- BLF_draw(line_stride);
+ BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
+ BLF_draw(mono, line_stride);
if(cdc->sel[0] != cdc->sel[1]) {
cdc->sel[0] += str_len - (cdc->console_width % str_len);
@@ -244,8 +241,8 @@ static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len,
eol = line_stride[cdc->console_width];
line_stride[cdc->console_width]= '\0';
- BLF_position(cdc->xy[0], cdc->xy[1], 0);
- BLF_draw(line_stride);
+ BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
+ BLF_draw(mono, line_stride);
if(cdc->sel[0] != cdc->sel[1]) {
console_draw_sel(cdc->sel, cdc->xy, cdc->console_width, cdc->cwidth, cdc->console_width, cdc->lheight);
@@ -270,8 +267,8 @@ static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len,
glColor3ub(fg[0], fg[1], fg[2]);
- BLF_position(cdc->xy[0], cdc->xy[1], 0);
- BLF_draw(str);
+ BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
+ BLF_draw(mono, str);
if(cdc->sel[0] != cdc->sel[1])
console_draw_sel(cdc->sel, cdc->xy, str_len, cdc->cwidth, cdc->console_width, cdc->lheight);
@@ -303,7 +300,7 @@ static int console_text_main__internal(struct SpaceConsole *sc, struct ARegion *
unsigned char fg[3];
console_font_begin(sc);
- cwidth = BLF_fixed_width();
+ cwidth = BLF_fixed_width(mono);
console_width= (ar->winx - (CONSOLE_DRAW_SCROLL + CONSOLE_DRAW_MARGIN*2) )/cwidth;
if (console_width < 8) console_width= 8;
@@ -346,11 +343,11 @@ static int console_text_main__internal(struct SpaceConsole *sc, struct ARegion *
/* command line */
if(prompt_len) {
- BLF_position(xy[0], xy[1], 0); xy[0] += cwidth * prompt_len;
- BLF_draw(sc->prompt);
+ BLF_position(mono, xy[0], xy[1], 0); xy[0] += cwidth * prompt_len;
+ BLF_draw(mono, sc->prompt);
}
- BLF_position(xy[0], xy[1], 0);
- BLF_draw(cl->line);
+ BLF_position(mono, xy[0], xy[1], 0);
+ BLF_draw(mono, cl->line);
/* cursor */
UI_GetThemeColor3ubv(TH_CONSOLE_CURSOR, (char *)fg);
diff --git a/source/blender/editors/space_console/console_intern.h b/source/blender/editors/space_console/console_intern.h
index 48159f2607c..c74d39f25e3 100644
--- a/source/blender/editors/space_console/console_intern.h
+++ b/source/blender/editors/space_console/console_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c
index 763436dd05f..089e769e0d9 100644
--- a/source/blender/editors/space_console/console_ops.c
+++ b/source/blender/editors/space_console/console_ops.c
@@ -34,15 +34,10 @@
#include "MEM_guardedalloc.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
-#include "PIL_time.h"
#include "BKE_utildefines.h"
#include "BKE_context.h"
@@ -57,9 +52,6 @@
#include "WM_types.h"
#include "ED_screen.h"
-#include "ED_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -362,7 +354,7 @@ void CONSOLE_OT_move(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Move Cursor";
- ot->description= "Move cursor position";
+ ot->description= "Move cursor position";
ot->idname= "CONSOLE_OT_move";
/* api callbacks */
@@ -404,7 +396,7 @@ void CONSOLE_OT_insert(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Insert";
- ot->description= "Insert text at cursor position";
+ ot->description= "Insert text at cursor position";
ot->idname= "CONSOLE_OT_insert";
/* api callbacks */
@@ -469,7 +461,7 @@ void CONSOLE_OT_delete(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Delete";
- ot->description= "Delete text by cursor position";
+ ot->description= "Delete text by cursor position";
ot->idname= "CONSOLE_OT_delete";
/* api callbacks */
@@ -510,7 +502,7 @@ void CONSOLE_OT_clear(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Clear";
- ot->description= "Clear text by type";
+ ot->description= "Clear text by type";
ot->idname= "CONSOLE_OT_clear";
/* api callbacks */
@@ -569,7 +561,7 @@ void CONSOLE_OT_history_cycle(wmOperatorType *ot)
{
/* identifiers */
ot->name= "History Cycle";
- ot->description= "Cycle through history";
+ ot->description= "Cycle through history";
ot->idname= "CONSOLE_OT_history_cycle";
/* api callbacks */
@@ -614,7 +606,7 @@ void CONSOLE_OT_history_append(wmOperatorType *ot)
{
/* identifiers */
ot->name= "History Append";
- ot->description= "Append history at cursor position";
+ ot->description= "Append history at cursor position";
ot->idname= "CONSOLE_OT_history_append";
/* api callbacks */
@@ -659,7 +651,7 @@ void CONSOLE_OT_scrollback_append(wmOperatorType *ot)
/* identifiers */
ot->name= "Scrollback Append";
- ot->description= "Append scrollback text by type";
+ ot->description= "Append scrollback text by type";
ot->idname= "CONSOLE_OT_scrollback_append";
/* api callbacks */
@@ -756,7 +748,7 @@ void CONSOLE_OT_copy(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Copy to Clipboard";
- ot->description= "Copy selected text to clipboard";
+ ot->description= "Copy selected text to clipboard";
ot->idname= "CONSOLE_OT_copy";
/* api callbacks */
@@ -805,7 +797,7 @@ void CONSOLE_OT_paste(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Paste from Clipboard";
- ot->description= "Paste text from clipboard";
+ ot->description= "Paste text from clipboard";
ot->idname= "CONSOLE_OT_paste";
/* api callbacks */
diff --git a/source/blender/editors/space_console/console_report.c b/source/blender/editors/space_console/console_report.c
index 76eec4d0932..50829e4365c 100644
--- a/source/blender/editors/space_console/console_report.c
+++ b/source/blender/editors/space_console/console_report.c
@@ -32,14 +32,9 @@
#include "MEM_guardedalloc.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
-#include "PIL_time.h"
#include "BKE_utildefines.h"
#include "BKE_context.h"
@@ -54,8 +49,6 @@
#include "ED_screen.h"
#include "ED_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -114,7 +107,7 @@ void CONSOLE_OT_report_replay(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Replay Operators";
- ot->description= "Replay selected reports";
+ ot->description= "Replay selected reports";
ot->idname= "CONSOLE_OT_report_replay";
/* api callbacks */
@@ -161,7 +154,7 @@ void CONSOLE_OT_select_pick(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Select report";
- ot->description= "Select reports by index";
+ ot->description= "Select reports by index";
ot->idname= "CONSOLE_OT_select_pick";
/* api callbacks */
@@ -215,7 +208,7 @@ void CONSOLE_OT_select_all_toggle(wmOperatorType *ot)
{
/* identifiers */
ot->name= "(De)Select All";
- ot->description= "(de)select all reports";
+ ot->description= "(de)select all reports";
ot->idname= "CONSOLE_OT_select_all_toggle";
/* api callbacks */
@@ -308,7 +301,7 @@ void CONSOLE_OT_select_border(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Border Select";
- ot->description= "Toggle border selection";
+ ot->description= "Toggle border selection";
ot->idname= "CONSOLE_OT_select_border";
/* api callbacks */
@@ -358,7 +351,7 @@ void CONSOLE_OT_report_delete(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Delete Reports";
- ot->description= "Delete selected reports";
+ ot->description= "Delete selected reports";
ot->idname= "CONSOLE_OT_report_delete";
/* api callbacks */
@@ -403,7 +396,7 @@ void CONSOLE_OT_report_copy(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Copy Reports to Clipboard";
- ot->description= "Copy selected reports to Clipboard";
+ ot->description= "Copy selected reports to Clipboard";
ot->idname= "CONSOLE_OT_report_copy";
/* api callbacks */
diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c
index 177cc0e83d0..c04f8183bee 100644
--- a/source/blender/editors/space_console/space_console.c
+++ b/source/blender/editors/space_console/space_console.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,12 +29,14 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
+#ifdef WIN32
+#include "BLI_winstuff.h"
+#endif
#include "MEM_guardedalloc.h"
+#include "BLO_readfile.h" /* get the ID name for dnd*/
+
#include "BLI_blenlib.h"
#include "BLI_math.h"
@@ -42,19 +44,16 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -148,28 +147,83 @@ static SpaceLink *console_duplicate(SpaceLink *sl)
static void console_main_area_init(wmWindowManager *wm, ARegion *ar)
{
wmKeyMap *keymap;
+ ListBase *lb;
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
/* own keymap */
keymap= WM_keymap_find(wm->defaultconf, "Console", SPACE_CONSOLE, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+
+ /* add drop boxes */
+ lb= WM_dropboxmap_find("Console", SPACE_CONSOLE, RGN_TYPE_WINDOW);
+
+ WM_event_add_dropbox_handler(&ar->handlers, lb);
}
+
+/* ************* dropboxes ************* */
+
+static int id_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+{
+ SpaceConsole *sc= CTX_wm_space_console(C);
+ if(sc->type==CONSOLE_TYPE_PYTHON)
+ if(drag->type==WM_DRAG_ID)
+ return 1;
+ return 0;
+}
+
+static void id_drop_copy(wmDrag *drag, wmDropBox *drop)
+{
+ char text[64];
+ ID *id= drag->poin;
+
+ snprintf(text, sizeof(text), "bpy.data.%s['%s']", BLO_idcode_to_name_plural(GS(id->name)), id->name+2);
+
+ /* copy drag path to properties */
+ RNA_string_set(drop->ptr, "text", text);
+}
+
+static int path_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+{
+ SpaceConsole *sc= CTX_wm_space_console(C);
+ if(sc->type==CONSOLE_TYPE_PYTHON)
+ if(drag->type==WM_DRAG_PATH)
+ return 1;
+ return 0;
+}
+
+static void path_drop_copy(wmDrag *drag, wmDropBox *drop)
+{
+ char pathname[FILE_MAXDIR+FILE_MAXFILE+2];
+ snprintf(pathname, sizeof(pathname), "\"%s\"", drag->path);
+ RNA_string_set(drop->ptr, "text", pathname);
+}
+
+
+/* this region dropbox definition */
+static void console_dropboxes(void)
+{
+ ListBase *lb= WM_dropboxmap_find("Console", SPACE_CONSOLE, RGN_TYPE_WINDOW);
+
+ WM_dropbox_add(lb, "CONSOLE_OT_insert", id_drop_poll, id_drop_copy);
+ WM_dropbox_add(lb, "CONSOLE_OT_insert", path_drop_poll, path_drop_copy);
+}
+
+/* ************* end drop *********** */
+
static void console_main_area_draw(const bContext *C, ARegion *ar)
{
/* draw entirely, view changes should be handled here */
SpaceConsole *sc= CTX_wm_space_console(C);
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
- float col[3];
if((sc->type==CONSOLE_TYPE_PYTHON) && (sc->scrollback.first==NULL))
WM_operator_name_call((bContext *)C, "CONSOLE_OT_banner", WM_OP_EXEC_DEFAULT, NULL);
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 1.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
console_update_rect(C, ar);
@@ -235,19 +289,19 @@ void console_keymap(struct wmKeyConfig *keyconf)
RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END);
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.font_size");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
RNA_boolean_set(kmi->ptr, "reverse", 0);
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.font_size");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
RNA_boolean_set(kmi->ptr, "reverse", 1);
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.font_size");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
RNA_boolean_set(kmi->ptr, "reverse", 0);
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.font_size");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
RNA_boolean_set(kmi->ptr, "reverse", 1);
RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR);
@@ -295,6 +349,11 @@ void console_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
+#ifdef __APPLE__
+ WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
+ WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
+#endif
+
WM_keymap_add_item(keymap, "CONSOLE_OT_select_set", LEFTMOUSE, KM_PRESS, 0, 0);
RNA_string_set(WM_keymap_add_item(keymap, "CONSOLE_OT_insert", TABKEY, KM_PRESS, 0, 0)->ptr, "text", " "); /* fake tabs */
@@ -347,6 +406,7 @@ void ED_spacetype_console(void)
st->duplicate= console_duplicate;
st->operatortypes= console_operatortypes;
st->keymap= console_keymap;
+ st->dropboxes= console_dropboxes;
st->listener= console_main_area_listener;
/* regions: main window */
diff --git a/source/blender/editors/space_file/CMakeLists.txt b/source/blender/editors/space_file/CMakeLists.txt
new file mode 100644
index 00000000000..021e25953b0
--- /dev/null
+++ b/source/blender/editors/space_file/CMakeLists.txt
@@ -0,0 +1,59 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenfont
+ ../../blenkernel
+ ../../blenlib
+ ../../blenloader
+ ../../imbuf
+ ../include
+ ../../../../intern/audaspace/intern
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../render/extern/include
+ ../../windowmanager
+)
+
+IF(WITH_OPENEXR)
+ ADD_DEFINITIONS(-DWITH_OPENEXR)
+ENDIF(WITH_OPENEXR)
+
+IF(WITH_TIFF)
+ ADD_DEFINITIONS(-DWITH_TIFF)
+ENDIF(WITH_TIFF)
+
+IF(WITH_OPENJPEG)
+ ADD_DEFINITIONS(-DWITH_OPENJPEG)
+ENDIF(WITH_OPENJPEG)
+
+IF(WITH_DDS)
+ ADD_DEFINITIONS(-DWITH_DDS)
+ENDIF(WITH_DDS)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_space_file "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_file/Makefile b/source/blender/editors/space_file/Makefile
index 43b2f09ed2d..29548b51222 100644
--- a/source/blender/editors/space_file/Makefile
+++ b/source/blender/editors/space_file/Makefile
@@ -63,3 +63,7 @@ ifeq ($(WITH_OPENEXR), true)
CPPFLAGS += -DWITH_OPENEXR
endif
+ifeq ($(WITH_TIFF), true)
+ CPPFLAGS += -DWITH_TIFF
+endif
+
diff --git a/source/blender/editors/space_file/SConscript b/source/blender/editors/space_file/SConscript
index b22a265dcbc..9de705e99d3 100644
--- a/source/blender/editors/space_file/SConscript
+++ b/source/blender/editors/space_file/SConscript
@@ -12,9 +12,13 @@ defs = []
if env['WITH_BF_OPENJPEG']:
defs.append('WITH_OPENJPEG')
+
if env['WITH_BF_OPENEXR']:
defs.append('WITH_OPENEXR')
+if env['WITH_BF_TIFF']:
+ defs.append('WITH_TIFF')
+
if env['OURPLATFORM'] == 'linux2':
cflags='-pthread'
incs += ' ../../../extern/binreloc/include'
diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c
index cd0571d4219..03ab42b467d 100644
--- a/source/blender/editors/space_file/file_draw.c
+++ b/source/blender/editors/space_file/file_draw.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -46,20 +46,11 @@
#include "BLF_api.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
-
-#include "ED_datafiles.h"
-
#include "IMB_imbuf_types.h"
-#include "IMB_imbuf.h"
#include "MEM_guardedalloc.h"
-#include "PIL_time.h"
+#include "DNA_userdef_types.h"
#include "RNA_access.h"
@@ -71,7 +62,6 @@
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "WM_api.h"
#include "WM_types.h"
#include "fsmenu.h"
@@ -87,10 +77,6 @@
/* button events */
enum {
- B_REDR = 0,
- B_FS_EXEC,
- B_FS_CANCEL,
- B_FS_PARENT,
B_FS_DIRNAME,
B_FS_FILENAME
} eFile_ButEvents;
@@ -99,9 +85,6 @@ enum {
static void do_file_buttons(bContext *C, void *arg, int event)
{
switch(event) {
- case B_FS_PARENT:
- file_parent_exec(C, NULL); /* file_ops.c */
- break;
case B_FS_FILENAME:
file_filename_exec(C, NULL);
break;
@@ -142,6 +125,7 @@ void file_draw_buttons(const bContext *C, ARegion *ar)
int loadbutton;
int fnumbuttons;
int min_x = 10;
+ int chan_offs = 0;
int available_w = max_x - min_x;
int line1_w = available_w;
int line2_w = available_w;
@@ -160,8 +144,9 @@ void file_draw_buttons(const bContext *C, ARegion *ar)
/* exception to make space for collapsed region icon */
for (artmp=CTX_wm_area(C)->regionbase.first; artmp; artmp=artmp->next) {
if (artmp->regiontype == RGN_TYPE_CHANNELS && artmp->flag & RGN_FLAG_HIDDEN) {
- min_x += 16;
- available_w -= 16;
+ chan_offs = 16;
+ min_x += chan_offs;
+ available_w -= chan_offs;
}
}
@@ -169,7 +154,7 @@ void file_draw_buttons(const bContext *C, ARegion *ar)
loadbutton = UI_GetStringWidth(sfile->params->title) + btn_margin;
if (loadbutton < btn_minw) {
loadbutton = MAX2(btn_minw,
- btn_margin + UI_GetStringWidth(params->title));
+ btn_margin + UI_GetStringWidth(params->title));
}
if (available_w <= loadbutton + separator + input_minw
@@ -191,29 +176,30 @@ void file_draw_buttons(const bContext *C, ARegion *ar)
/* Text input fields for directory and file. */
if (available_w > 0) {
but = uiDefBut(block, TEX, B_FS_DIRNAME, "",
- min_x, line1_y, line1_w, btn_h,
- params->dir, 0.0, (float)FILE_MAX-1, 0, 0,
- "File path.");
+ min_x, line1_y, line1_w-chan_offs, btn_h,
+ params->dir, 0.0, (float)FILE_MAX-1, 0, 0,
+ "File path.");
uiButSetCompleteFunc(but, autocomplete_directory, NULL);
- uiDefBut(block, TEX, B_FS_FILENAME, "",
- min_x, line2_y, line2_w, btn_h,
- params->file, 0.0, (float)FILE_MAXFILE-1, 0, 0,
- "File name.");
+ but = uiDefBut(block, TEX, B_FS_FILENAME, "",
+ min_x, line2_y, line2_w-chan_offs, btn_h,
+ params->file, 0.0, (float)FILE_MAXFILE-1, 0, 0,
+ "File name.");
+ uiButSetCompleteFunc(but, autocomplete_file, NULL);
}
/* Filename number increment / decrement buttons. */
if (fnumbuttons) {
uiBlockBeginAlign(block);
but = uiDefIconButO(block, BUT, "FILE_OT_filenum", 0, ICON_ZOOMOUT,
- min_x + line2_w + separator, line2_y,
- btn_fn_w, btn_h,
- "Decrement the filename number");
+ min_x + line2_w + separator - chan_offs, line2_y,
+ btn_fn_w, btn_h,
+ "Decrement the filename number");
RNA_int_set(uiButGetOperatorPtrRNA(but), "increment", -1);
but = uiDefIconButO(block, BUT, "FILE_OT_filenum", 0, ICON_ZOOMIN,
- min_x + line2_w + separator + btn_fn_w, line2_y,
- btn_fn_w, btn_h,
- "Increment the filename number");
+ min_x + line2_w + separator + btn_fn_w - chan_offs, line2_y,
+ btn_fn_w, btn_h,
+ "Increment the filename number");
RNA_int_set(uiButGetOperatorPtrRNA(but), "increment", 1);
uiBlockEndAlign(block);
}
@@ -238,7 +224,7 @@ static void draw_tile(int sx, int sy, int width, int height, int colorid, int sh
{
UI_ThemeColorShade(colorid, shade);
uiSetRoundBox(15);
- uiRoundBox(sx, sy - height, sx + width, sy, 6);
+ uiRoundBox(sx, sy - height, sx + width, sy, 5);
}
#define FILE_SHORTEN_END 0
@@ -298,6 +284,9 @@ static int get_file_icon(struct direntry *file)
if ( strcmp(file->relname, "..") == 0) {
return ICON_FILE_PARENT;
}
+ if(file->flags & BLENDERFILE) {
+ return ICON_FILE_BLEND;
+ }
return ICON_FILE_FOLDER;
}
else if (file->flags & BLENDERFILE)
@@ -316,6 +305,8 @@ static int get_file_icon(struct direntry *file)
return ICON_FILE_FONT;
else if (file->flags & BTXFILE)
return ICON_FILE_BLANK;
+ else if (file->flags & COLLADAFILE)
+ return ICON_FILE_BLANK;
else
return ICON_FILE_BLANK;
}
@@ -338,11 +329,13 @@ static void file_draw_icon(uiBlock *block, char *path, int sx, int sy, int icon,
static void file_draw_string(int sx, int sy, const char* string, float width, int height, int flag)
{
+ uiStyle *style= U.uistyles.first;
int soffs;
char fname[FILE_MAXFILE];
float sw;
float x,y;
+
BLI_strncpy(fname,string, FILE_MAXFILE);
sw = shorten_string(fname, width, flag );
@@ -350,8 +343,9 @@ static void file_draw_string(int sx, int sy, const char* string, float width, in
x = (float)(sx);
y = (float)(sy-height);
- BLF_position(x, y, 0);
- BLF_draw(fname);
+ uiStyleFontSet(&style->widget);
+ BLF_position(style->widget.uifont_id, x, y, 0);
+ BLF_draw(style->widget.uifont_id, fname);
}
void file_calc_previews(const bContext *C, ARegion *ar)
@@ -445,7 +439,7 @@ static void renamebutton_cb(bContext *C, void *arg1, char *oldname)
if (!BLI_exists(newname)) {
BLI_rename(orgname, newname);
/* to make sure we show what is on disk */
- filelist_free(sfile->files);
+ ED_fileselect_clear(C, sfile);
} else {
BLI_strncpy(file->relname, oldname, strlen(oldname)+1);
}
@@ -515,11 +509,18 @@ void file_draw_list(const bContext *C, ARegion *ar)
draw_dividers(layout, v2d);
}
- offset = ED_fileselect_layout_offset(layout, ar->v2d.cur.xmin, -ar->v2d.cur.ymax);
+ offset = ED_fileselect_layout_offset(layout, 0, ar->v2d.cur.xmin, -ar->v2d.cur.ymax);
if (offset<0) offset=0;
numfiles_layout = ED_fileselect_layout_numfiles(layout, ar);
+ /* adjust, so the next row is already drawn when scrolling */
+ if (layout->flag & FILE_LAYOUT_HOR) {
+ numfiles_layout += layout->rows;
+ } else {
+ numfiles_layout += layout->columns;
+ }
+
for (i=offset; (i < numfiles) && (i<offset+numfiles_layout); ++i)
{
ED_fileselect_layout_tilepos(layout, i, &sx, &sy);
@@ -546,20 +547,17 @@ void file_draw_list(const bContext *C, ARegion *ar)
if (!(file->flags & EDITING)) {
if (params->active_file == i) {
- if (file->flags & ACTIVE) colorid= TH_HILITE;
+ if (file->flags & ACTIVEFILE) colorid= TH_HILITE;
else colorid = TH_BACK;
- draw_tile(sx, sy-3, layout->tile_w+4, sfile->layout->tile_h+layout->tile_border_y, colorid,20);
- } else if (file->flags & ACTIVE) {
+ draw_tile(sx, sy-1, layout->tile_w+4, sfile->layout->tile_h+layout->tile_border_y, colorid,20);
+ } else if (file->flags & ACTIVEFILE) {
colorid = TH_HILITE;
- draw_tile(sx, sy-3, layout->tile_w+4, sfile->layout->tile_h+layout->tile_border_y, colorid,0);
+ draw_tile(sx, sy-1, layout->tile_w+4, sfile->layout->tile_h+layout->tile_border_y, colorid,0);
}
}
uiSetRoundBox(0);
if ( FILE_IMGDISPLAY == params->display ) {
- if ( (file->flags & IMAGEFILE) /* || (file->flags & MOVIEFILE) */) {
- filelist_loadimage(files, i);
- }
is_icon = 0;
imb = filelist_getimage(files, i);
if (!imb) {
@@ -624,11 +622,6 @@ void file_draw_list(const bContext *C, ARegion *ar)
}
}
- /* XXX this timer is never removed, cause smooth view operator
- to get executed all the time after closing file browser */
- if (!sfile->loadimage_timer)
- sfile->loadimage_timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER1, 1.0/30.0); /* max 30 frames/sec. */
-
uiEndBlock(C, block);
uiDrawBlock(C, block);
diff --git a/source/blender/editors/space_file/file_intern.h b/source/blender/editors/space_file/file_intern.h
index 1d239f1741e..c77379b39a0 100644
--- a/source/blender/editors/space_file/file_intern.h
+++ b/source/blender/editors/space_file/file_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -58,7 +58,6 @@ void FILE_OT_select_bookmark(struct wmOperatorType *ot);
void FILE_OT_bookmark_add(struct wmOperatorType *ot);
void FILE_OT_delete_bookmark(struct wmOperatorType *ot);
void FILE_OT_hidedot(struct wmOperatorType *ot);
-void FILE_OT_loadimages(struct wmOperatorType *ot);
void FILE_OT_execute(struct wmOperatorType *ot);
void FILE_OT_cancel(struct wmOperatorType *ot);
void FILE_OT_parent(struct wmOperatorType *ot);
@@ -71,6 +70,7 @@ void FILE_OT_bookmark_toggle(struct wmOperatorType *ot);
void FILE_OT_filenum(struct wmOperatorType *ot);
void FILE_OT_delete(struct wmOperatorType *ot);
void FILE_OT_rename(struct wmOperatorType *ot);
+void FILE_OT_smoothscroll(struct wmOperatorType *ot);
int file_exec(bContext *C, struct wmOperator *exec_op);
int file_cancel_exec(bContext *C, struct wmOperator *unused);
@@ -88,9 +88,10 @@ int file_hilight_set(struct SpaceFile *sfile, struct ARegion *ar, int mx, int my
/* filesel.c */
float file_string_width(const char* str);
float file_font_pointsize();
-void file_change_dir(struct SpaceFile *sfile, int checkdir);
+void file_change_dir(bContext *C, int checkdir);
int file_select_match(struct SpaceFile *sfile, const char *pattern);
void autocomplete_directory(struct bContext *C, char *str, void *arg_v);
+void autocomplete_file(struct bContext *C, char *str, void *arg_v);
/* file_panels.c */
void file_panels_register(struct ARegionType *art);
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index 312118491be..55a44b36a52 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -36,10 +36,7 @@
#ifdef WIN32
#include "BLI_winstuff.h"
#endif
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_fileselect.h"
@@ -48,7 +45,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "UI_interface.h"
#include "UI_view2d.h"
#include "WM_api.h"
@@ -63,13 +59,13 @@
#include <stdio.h>
/* for events */
-#define NOTACTIVE 0
+#define NOTACTIVEFILE 0
#define ACTIVATE 1
#define INACTIVATE 2
/* ---------- FILE SELECTION ------------ */
-static int find_file_mouse(SpaceFile *sfile, struct ARegion* ar, int x, int y)
+static int find_file_mouse(SpaceFile *sfile, struct ARegion* ar, int clamp_bounds, int x, int y)
{
float fx,fy;
int active_file = -1;
@@ -77,7 +73,7 @@ static int find_file_mouse(SpaceFile *sfile, struct ARegion* ar, int x, int y)
UI_view2d_region_to_view(v2d, x, y, &fx, &fy);
- active_file = ED_fileselect_layout_offset(sfile->layout, v2d->tot.xmin + fx, v2d->tot.ymax - fy);
+ active_file = ED_fileselect_layout_offset(sfile->layout, clamp_bounds, v2d->tot.xmin + fx, v2d->tot.ymax - fy);
return active_file;
}
@@ -90,8 +86,8 @@ static void file_deselect_all(SpaceFile* sfile)
for ( i=0; i < numfiles; ++i) {
struct direntry* file = filelist_file(sfile->files, i);
- if (file && (file->flags & ACTIVE)) {
- file->flags &= ~ACTIVE;
+ if (file && (file->flags & ACTIVEFILE)) {
+ file->flags &= ~ACTIVEFILE;
}
}
}
@@ -125,8 +121,10 @@ static void clamp_to_filelist(int numfiles, int *first_file, int *last_file)
}
}
-static FileSelect file_select(SpaceFile* sfile, ARegion* ar, const rcti* rect, short selecting, short toggle_one)
+static FileSelect file_select(bContext* C, const rcti* rect, short selecting, short toggle_one, short fill)
{
+ ARegion *ar= CTX_wm_region(C);
+ SpaceFile *sfile= CTX_wm_space_file(C);
int first_file = -1;
int last_file = -1;
int act_file;
@@ -136,28 +134,41 @@ static FileSelect file_select(SpaceFile* sfile, ARegion* ar, const rcti* rect, s
// FileLayout *layout = ED_fileselect_get_layout(sfile, ar);
int numfiles = filelist_numfiles(sfile->files);
-
- params->selstate = NOTACTIVE;
- first_file = find_file_mouse(sfile, ar, rect->xmin, rect->ymax);
- last_file = find_file_mouse(sfile, ar, rect->xmax, rect->ymin);
+
+ params->selstate = NOTACTIVEFILE;
+ first_file = find_file_mouse(sfile, ar, 1, rect->xmin, rect->ymax);
+ last_file = find_file_mouse(sfile, ar, 1, rect->xmax, rect->ymin);
clamp_to_filelist(numfiles, &first_file, &last_file);
+ if (fill && (last_file >= 0) && (last_file < numfiles) ) {
+ int f= last_file;
+ while (f >= 0) {
+ struct direntry* file = filelist_file(sfile->files, f);
+ if (file->flags & ACTIVEFILE)
+ break;
+ f--;
+ }
+ if (f >= 0) {
+ first_file = f+1;
+ }
+ }
+
/* select all valid files between first and last indicated */
if ( (first_file >= 0) && (first_file < numfiles) && (last_file >= 0) && (last_file < numfiles) ) {
for (act_file = first_file; act_file <= last_file; act_file++) {
struct direntry* file = filelist_file(sfile->files, act_file);
if (toggle_one) {
- if (file->flags & ACTIVE) {
- file->flags &= ~ACTIVE;
+ if (file->flags & ACTIVEFILE) {
+ file->flags &= ~ACTIVEFILE;
selecting=0;
} else
- file->flags |= ACTIVE;
+ file->flags |= ACTIVEFILE;
} else if (selecting)
- file->flags |= ACTIVE;
+ file->flags |= ACTIVEFILE;
else
- file->flags &= ~ACTIVE;
+ file->flags &= ~ACTIVEFILE;
}
}
@@ -184,7 +195,7 @@ static FileSelect file_select(SpaceFile* sfile, ARegion* ar, const rcti* rect, s
BLI_add_slash(params->dir);
}
- file_change_dir(sfile, 0);
+ file_change_dir(C, 0);
retval = FILE_SELECT_DIR;
}
}
@@ -204,10 +215,9 @@ static FileSelect file_select(SpaceFile* sfile, ARegion* ar, const rcti* rect, s
static int file_border_select_exec(bContext *C, wmOperator *op)
{
ARegion *ar= CTX_wm_region(C);
- SpaceFile *sfile= CTX_wm_space_file(C);
short selecting;
rcti rect;
-
+
selecting= (RNA_int_get(op->ptr, "gesture_mode")==GESTURE_MODAL_SELECT);
rect.xmin= RNA_int_get(op->ptr, "xmin");
rect.ymin= RNA_int_get(op->ptr, "ymin");
@@ -216,7 +226,7 @@ static int file_border_select_exec(bContext *C, wmOperator *op)
BLI_isect_rcti(&(ar->v2d.mask), &rect, &rect);
- if (FILE_SELECT_DIR == file_select(sfile, ar, &rect, selecting, 0)) {
+ if (FILE_SELECT_DIR == file_select(C, &rect, selecting, 0, 0)) {
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
} else {
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_PARAMS, NULL);
@@ -248,6 +258,7 @@ static int file_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
short val;
rcti rect;
int extend = RNA_boolean_get(op->ptr, "extend");
+ int fill = RNA_boolean_get(op->ptr, "fill");
if(ar->regiontype != RGN_TYPE_WINDOW)
return OPERATOR_CANCELLED;
@@ -262,7 +273,7 @@ static int file_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* single select, deselect all selected first */
if (!extend) file_deselect_all(sfile);
- if (FILE_SELECT_DIR == file_select(sfile, ar, &rect, 1, extend ))
+ if (FILE_SELECT_DIR == file_select(C, &rect, 1, extend, fill ))
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
else
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_PARAMS, NULL);
@@ -286,6 +297,7 @@ void FILE_OT_select(wmOperatorType *ot)
/* rna */
RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend selection instead of deselecting everything first.");
+ RNA_def_boolean(ot->srna, "fill", 0, "Fill", "Select everything beginning with the last selection.");
}
static int file_select_all_exec(bContext *C, wmOperator *op)
@@ -299,8 +311,8 @@ static int file_select_all_exec(bContext *C, wmOperator *op)
/* if any file is selected, deselect all first */
for ( i=0; i < numfiles; ++i) {
struct direntry* file = filelist_file(sfile->files, i);
- if (file && (file->flags & ACTIVE)) {
- file->flags &= ~ACTIVE;
+ if (file && (file->flags & ACTIVEFILE)) {
+ file->flags &= ~ACTIVEFILE;
select = 0;
ED_area_tag_redraw(sa);
}
@@ -310,7 +322,7 @@ static int file_select_all_exec(bContext *C, wmOperator *op)
for ( i=0; i < numfiles; ++i) {
struct direntry* file = filelist_file(sfile->files, i);
if(file && !S_ISDIR(file->type)) {
- file->flags |= ACTIVE;
+ file->flags |= ACTIVEFILE;
ED_area_tag_redraw(sa);
}
}
@@ -346,7 +358,7 @@ static int bookmark_select_exec(bContext *C, wmOperator *op)
RNA_string_get(op->ptr, "dir", entry);
BLI_strncpy(params->dir, entry, sizeof(params->dir));
BLI_cleanup_dir(G.sce, params->dir);
- file_change_dir(sfile, 1);
+ file_change_dir(C, 1);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
}
@@ -379,7 +391,7 @@ static int bookmark_add_exec(bContext *C, wmOperator *op)
char name[FILE_MAX];
fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, params->dir, 0, 1);
- BLI_make_file_string("/", name, BLI_gethome(), ".Bfs");
+ BLI_make_file_string("/", name, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
fsmenu_write_file(fsmenu, name);
}
@@ -411,7 +423,7 @@ static int bookmark_delete_exec(bContext *C, wmOperator *op)
char name[FILE_MAX];
fsmenu_remove_entry(fsmenu, FS_CATEGORY_BOOKMARKS, index);
- BLI_make_file_string("/", name, BLI_gethome(), ".Bfs");
+ BLI_make_file_string("/", name, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
fsmenu_write_file(fsmenu, name);
ED_area_tag_redraw(sa);
}
@@ -434,35 +446,6 @@ void FILE_OT_delete_bookmark(wmOperatorType *ot)
RNA_def_int(ot->srna, "index", -1, -1, 20000, "Index", "", -1, 20000);
}
-
-static int loadimages_exec(bContext *C, wmOperator *op)
-{
- ScrArea *sa= CTX_wm_area(C);
- SpaceFile *sfile= CTX_wm_space_file(C);
- if (sfile->files) {
- filelist_loadimage_timer(sfile->files);
- if (filelist_changed(sfile->files)) {
- ED_area_tag_redraw(sa);
- }
- }
-
- return OPERATOR_FINISHED;
-}
-
-void FILE_OT_loadimages(wmOperatorType *ot)
-{
-
- /* identifiers */
- ot->name= "Load Images";
- ot->description= "Load selected image(s)";
- ot->idname= "FILE_OT_loadimages";
-
- /* api callbacks */
- ot->exec= loadimages_exec;
-
- ot->poll= ED_operator_file_active;
-}
-
int file_hilight_set(SpaceFile *sfile, ARegion *ar, int mx, int my)
{
FileSelectParams* params;
@@ -479,7 +462,7 @@ int file_hilight_set(SpaceFile *sfile, ARegion *ar, int mx, int my)
my -= ar->winrct.ymin;
if(BLI_in_rcti(&ar->v2d.mask, mx, my)) {
- actfile = find_file_mouse(sfile, ar, mx , my);
+ actfile = find_file_mouse(sfile, ar, 0, mx , my);
if((actfile >= 0) && (actfile < numfiles))
params->active_file=actfile;
@@ -528,8 +511,7 @@ int file_cancel_exec(bContext *C, wmOperator *unused)
sfile->op = NULL;
if (sfile->files) {
- filelist_freelib(sfile->files);
- filelist_free(sfile->files);
+ ED_fileselect_clear(C, sfile);
MEM_freeN(sfile->files);
sfile->files= NULL;
}
@@ -563,7 +545,7 @@ void FILE_OT_cancel(struct wmOperatorType *ot)
int file_exec(bContext *C, wmOperator *exec_op)
{
SpaceFile *sfile= CTX_wm_space_file(C);
- char name[FILE_MAX];
+ char filepath[FILE_MAX];
if(sfile->op) {
wmOperator *op= sfile->op;
@@ -576,7 +558,7 @@ int file_exec(bContext *C, wmOperator *exec_op)
for (i=0; i<filelist_numfiles(sfile->files); i++) {
file = filelist_file(sfile->files, i);
- if(file->flags & ACTIVE) {
+ if(file->flags & ACTIVEFILE) {
active=1;
}
}
@@ -585,16 +567,23 @@ int file_exec(bContext *C, wmOperator *exec_op)
}
sfile->op = NULL;
- RNA_string_set(op->ptr, "filename", sfile->params->file);
- BLI_strncpy(name, sfile->params->dir, sizeof(name));
- RNA_string_set(op->ptr, "directory", name);
- strcat(name, sfile->params->file); // XXX unsafe
- if(RNA_struct_find_property(op->ptr, "relative_paths"))
- if(RNA_boolean_get(op->ptr, "relative_paths"))
- BLI_makestringcode(G.sce, name);
+ BLI_join_dirfile(filepath, sfile->params->dir, sfile->params->file);
+ if(RNA_struct_find_property(op->ptr, "relative_path")) {
+ if(RNA_boolean_get(op->ptr, "relative_path")) {
+ BLI_path_rel(filepath, G.sce);
+ }
+ }
- RNA_string_set(op->ptr, "path", name);
+ if(RNA_struct_find_property(op->ptr, "filename")) {
+ RNA_string_set(op->ptr, "filename", sfile->params->file);
+ }
+ if(RNA_struct_find_property(op->ptr, "directory")) {
+ RNA_string_set(op->ptr, "directory", sfile->params->dir);
+ }
+ if(RNA_struct_find_property(op->ptr, "filepath")) {
+ RNA_string_set(op->ptr, "filepath", filepath);
+ }
/* some ops have multiple files to select */
{
@@ -604,7 +593,7 @@ int file_exec(bContext *C, wmOperator *exec_op)
if(RNA_struct_find_property(op->ptr, "files")) {
for (i=0; i<numfiles; i++) {
file = filelist_file(sfile->files, i);
- if(file->flags & ACTIVE) {
+ if(file->flags & ACTIVEFILE) {
if ((file->type & S_IFDIR)==0) {
RNA_collection_add(op->ptr, "files", &itemptr);
RNA_string_set(&itemptr, "name", file->relname);
@@ -616,7 +605,7 @@ int file_exec(bContext *C, wmOperator *exec_op)
if(RNA_struct_find_property(op->ptr, "dirs")) {
for (i=0; i<numfiles; i++) {
file = filelist_file(sfile->files, i);
- if(file->flags & ACTIVE) {
+ if(file->flags & ACTIVEFILE) {
if ((file->type & S_IFDIR)) {
RNA_collection_add(op->ptr, "dirs", &itemptr);
RNA_string_set(&itemptr, "name", file->relname);
@@ -630,12 +619,11 @@ int file_exec(bContext *C, wmOperator *exec_op)
folderlist_free(sfile->folders_next);
fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir,0, 1);
- BLI_make_file_string(G.sce, name, BLI_gethome(), ".Bfs");
- fsmenu_write_file(fsmenu_get(), name);
+ BLI_make_file_string(G.sce, filepath, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
+ fsmenu_write_file(fsmenu_get(), filepath);
WM_event_fileselect_event(C, op, EVT_FILESELECT_EXEC);
- filelist_freelib(sfile->files);
- filelist_free(sfile->files);
+ ED_fileselect_clear(C, sfile);
MEM_freeN(sfile->files);
sfile->files= NULL;
}
@@ -666,7 +654,7 @@ int file_parent_exec(bContext *C, wmOperator *unused)
if (BLI_has_parent(sfile->params->dir)) {
BLI_parent_dir(sfile->params->dir);
BLI_cleanup_dir(G.sce, sfile->params->dir);
- file_change_dir(sfile, 0);
+ file_change_dir(C, 0);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
}
}
@@ -692,8 +680,8 @@ void FILE_OT_parent(struct wmOperatorType *ot)
int file_refresh_exec(bContext *C, wmOperator *unused)
{
SpaceFile *sfile= CTX_wm_space_file(C);
-
- file_change_dir(sfile, 1);
+
+ ED_fileselect_clear(C, sfile);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
@@ -725,7 +713,7 @@ int file_previous_exec(bContext *C, wmOperator *unused)
folderlist_popdir(sfile->folders_prev, sfile->params->dir);
folderlist_pushdir(sfile->folders_next, sfile->params->dir);
- file_change_dir(sfile, 1);
+ file_change_dir(C, 1);
}
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
@@ -747,8 +735,8 @@ void FILE_OT_next(struct wmOperatorType *ot)
int file_next_exec(bContext *C, wmOperator *unused)
{
SpaceFile *sfile= CTX_wm_space_file(C);
- if(sfile->params) {
- if (!sfile->folders_next)
+ if(sfile->params) {
+ if (!sfile->folders_next)
sfile->folders_next = folderlist_new();
folderlist_pushdir(sfile->folders_prev, sfile->params->dir);
@@ -757,13 +745,123 @@ int file_next_exec(bContext *C, wmOperator *unused)
// update folder_prev so we can check for it in folderlist_clear_next()
folderlist_pushdir(sfile->folders_prev, sfile->params->dir);
- file_change_dir(sfile, 1);
+ file_change_dir(C, 1);
}
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
return OPERATOR_FINISHED;
}
+
+/* only meant for timer usage */
+static int file_smoothscroll_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ ScrArea *sa = CTX_wm_area(C);
+ SpaceFile *sfile= CTX_wm_space_file(C);
+ ARegion *ar, *oldar= CTX_wm_region(C);
+ int numfiles, offset;
+ int edit_idx = 0;
+ int numfiles_layout;
+ int i;
+
+ /* escape if not our timer */
+ if(sfile->smoothscroll_timer==NULL || sfile->smoothscroll_timer!=event->customdata)
+ return OPERATOR_PASS_THROUGH;
+
+ numfiles = filelist_numfiles(sfile->files);
+
+ /* check if we are editing a name */
+ for (i=0; i < numfiles; ++i)
+ {
+ struct direntry *file = filelist_file(sfile->files, i);
+ if (file->flags & EDITING) {
+ edit_idx=i;
+ break;
+ }
+ }
+
+ /* if we are not editing, we are done */
+ if (0==edit_idx) {
+ WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), sfile->smoothscroll_timer);
+ sfile->smoothscroll_timer=NULL;
+ return OPERATOR_PASS_THROUGH;
+ }
+
+ /* we need the correct area for scrolling */
+ ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
+ if (!ar || ar->regiontype != RGN_TYPE_WINDOW) {
+ WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), sfile->smoothscroll_timer);
+ sfile->smoothscroll_timer=NULL;
+ return OPERATOR_PASS_THROUGH;
+ }
+
+ offset = ED_fileselect_layout_offset(sfile->layout, 0, ar->v2d.cur.xmin, -ar->v2d.cur.ymax);
+ if (offset<0) offset=0;
+
+ /* scroll offset is the first file in the row/column we are editing in */
+ if (sfile->scroll_offset == 0) {
+ if (sfile->layout->flag & FILE_LAYOUT_HOR) {
+ sfile->scroll_offset = (edit_idx/sfile->layout->rows)*sfile->layout->rows;
+ if (sfile->scroll_offset <= offset) sfile->scroll_offset -= sfile->layout->rows;
+ } else {
+ sfile->scroll_offset = (edit_idx/sfile->layout->columns)*sfile->layout->columns;
+ if (sfile->scroll_offset <= offset) sfile->scroll_offset -= sfile->layout->columns;
+ }
+ }
+
+ numfiles_layout = ED_fileselect_layout_numfiles(sfile->layout, ar);
+
+ /* check if we have reached our final scroll position */
+ if ( (sfile->scroll_offset >= offset) && (sfile->scroll_offset < offset + numfiles_layout) ) {
+ WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), sfile->smoothscroll_timer);
+ sfile->smoothscroll_timer=NULL;
+ return OPERATOR_FINISHED;
+ }
+
+ /* temporarily set context to the main window region,
+ * so the scroll operators work */
+ CTX_wm_region_set(C, ar);
+
+ /* scroll one step in the desired direction */
+ if (sfile->scroll_offset < offset) {
+ if (sfile->layout->flag & FILE_LAYOUT_HOR) {
+ WM_operator_name_call(C, "VIEW2D_OT_scroll_left", 0, NULL);
+ } else {
+ WM_operator_name_call(C, "VIEW2D_OT_scroll_up", 0, NULL);
+ }
+
+ } else {
+ if (sfile->layout->flag & FILE_LAYOUT_HOR) {
+ WM_operator_name_call(C, "VIEW2D_OT_scroll_right", 0, NULL);
+ } else {
+ WM_operator_name_call(C, "VIEW2D_OT_scroll_down", 0, NULL);
+ }
+ }
+
+ ED_region_tag_redraw(CTX_wm_region(C));
+
+ /* and restore context */
+ CTX_wm_region_set(C, oldar);
+
+ return OPERATOR_FINISHED;
+}
+
+
+void FILE_OT_smoothscroll(wmOperatorType *ot)
+{
+
+ /* identifiers */
+ ot->name= "Smooth Scroll";
+ ot->idname= "FILE_OT_smoothscroll";
+ ot->description="Smooth scroll to make editable file visible.";
+
+ /* api callbacks */
+ ot->invoke= file_smoothscroll_invoke;
+
+ ot->poll= ED_operator_file_active;
+}
+
+
/* create a new, non-existing folder name, returns 1 if successful, 0 if name couldn't be created.
The actual name is returned in 'name', 'folder' contains the complete path, including the new folder name.
*/
@@ -813,6 +911,13 @@ int file_directory_new_exec(bContext *C, wmOperator *op)
/* now remember file to jump into editing */
BLI_strncpy(sfile->params->renamefile, name, FILE_MAXFILE);
+
+ /* set timer to smoothly view newly generated file */
+ sfile->smoothscroll_timer = WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER1, 1.0/1000.0); /* max 30 frs/sec */
+ sfile->scroll_offset=0;
+
+ /* reload dir to make sure we're seeing what's in the directory */
+ ED_fileselect_clear(C, sfile);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
return OPERATOR_FINISHED;
@@ -834,33 +939,22 @@ void FILE_OT_directory_new(struct wmOperatorType *ot)
int file_directory_exec(bContext *C, wmOperator *unused)
{
- char tmpstr[FILE_MAX];
-
SpaceFile *sfile= CTX_wm_space_file(C);
if(sfile->params) {
if ( sfile->params->dir[0] == '~' ) {
- if (sfile->params->dir[1] == '\0') {
- BLI_strncpy(sfile->params->dir, BLI_gethome(), sizeof(sfile->params->dir) );
- } else {
- /* replace ~ with home */
- char homestr[FILE_MAX];
- char *d = &sfile->params->dir[1];
-
- while ( (*d == '\\') || (*d == '/') )
- d++;
- BLI_strncpy(homestr, BLI_gethome(), FILE_MAX);
- BLI_join_dirfile(tmpstr, homestr, d);
- BLI_strncpy(sfile->params->dir, tmpstr, sizeof(sfile->params->dir));
- }
+ char tmpstr[sizeof(sfile->params->dir)-1];
+ strncpy(tmpstr, sfile->params->dir+1, sizeof(tmpstr));
+ BLI_join_dirfile(sfile->params->dir, BLI_gethome(), tmpstr);
}
+
#ifdef WIN32
if (sfile->params->dir[0] == '\0')
get_default_root(sfile->params->dir);
#endif
BLI_cleanup_dir(G.sce, sfile->params->dir);
BLI_add_slash(sfile->params->dir);
- file_change_dir(sfile, 1);
+ file_change_dir(C, 1);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
}
@@ -903,13 +997,11 @@ int file_hidedot_exec(bContext *C, wmOperator *unused)
if(sfile->params) {
sfile->params->flag ^= FILE_HIDE_DOT;
- filelist_free(sfile->files);
- sfile->params->active_file = -1;
+ ED_fileselect_clear(C, sfile);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
}
return OPERATOR_FINISHED;
-
}
@@ -1089,6 +1181,7 @@ int file_delete_exec(bContext *C, wmOperator *op)
file = filelist_file(sfile->files, sfile->params->active_file);
BLI_make_file_string(G.sce, str, sfile->params->dir, file->relname);
BLI_delete(str, 0, 0);
+ ED_fileselect_clear(C, sfile);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_file/file_panels.c b/source/blender/editors/space_file/file_panels.c
index b6152f26947..4a505bc022f 100644
--- a/source/blender/editors/space_file/file_panels.c
+++ b/source/blender/editors/space_file/file_panels.c
@@ -33,8 +33,6 @@
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -42,7 +40,6 @@
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -185,14 +182,14 @@ static void file_panel_operator(const bContext *C, Panel *pa)
if(flag & PROP_HIDDEN)
continue;
- if(strcmp(RNA_property_identifier(prop), "path") == 0)
+ if(strcmp(RNA_property_identifier(prop), "filepath") == 0)
continue;
if(strcmp(RNA_property_identifier(prop), "directory") == 0)
continue;
if(strcmp(RNA_property_identifier(prop), "filename") == 0)
continue;
- uiItemFullR(pa->layout, NULL, 0, op->ptr, prop, -1, 0, 0);
+ uiItemFullR(pa->layout, op->ptr, prop, -1, 0, 0, NULL, 0);
empty= 0;
}
RNA_STRUCT_END;
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index 3631e0743da..70ef857699a 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -34,10 +34,6 @@
#include <math.h>
#include <string.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#ifndef WIN32
#include <unistd.h>
#else
@@ -55,6 +51,7 @@
#include "BLI_winstuff.h"
#endif
+#include "BKE_context.h"
#include "BKE_utildefines.h"
#include "BKE_global.h"
#include "BKE_library.h"
@@ -83,29 +80,34 @@
#include "PIL_time.h"
-#include "UI_interface.h"
-#include "filelist.h"
+#include "WM_api.h"
+#include "WM_types.h"
-/* Elubie: VERY, really very ugly and evil! Remove asap!!! */
-/* for state of file */
-#define ACTIVE 2
+#include "filelist.h"
/* max length of library group name within filesel */
#define GROUP_MAX 32
-static void *exec_loadimages(void *list_v);
-
struct FileList;
typedef struct FileImage {
struct FileImage *next, *prev;
+ char path[FILE_MAX];
+ unsigned int flags;
int index;
- short lock;
short done;
- struct FileList* filelist;
+ ImBuf *img;
} FileImage;
+typedef struct ThumbnailJob {
+ ListBase loadimages;
+ short *stop;
+ short *do_update;
+ struct FileList* filelist;
+ ReportList reports;
+} ThumbnailJob;
+
typedef struct FileList
{
struct direntry *filelist;
@@ -122,10 +124,9 @@ typedef struct FileList
struct BlendHandle *libfiledata;
short hide_parent;
- void (*read)(struct FileList *);
+ void (*readf)(struct FileList *);
+ int (*filterf)(struct direntry* file, const char* dir, unsigned int filter, short hide_dot);
- ListBase loadimages;
- ListBase threads;
} FileList;
typedef struct FolderList
@@ -160,7 +161,7 @@ static int compare_name(const void *a1, const void *a2)
{
const struct direntry *entry1=a1, *entry2=a2;
- /* type is is equal to stat.st_mode */
+ /* type is equal to stat.st_mode */
if (S_ISDIR(entry1->type)){
if (S_ISDIR(entry2->type)==0) return (-1);
@@ -257,7 +258,7 @@ static int compare_extension(const void *a1, const void *a2) {
if (!sufix1) sufix1= nil;
if (!sufix2) sufix2= nil;
- /* type is is equal to stat.st_mode */
+ /* type is equal to stat.st_mode */
if (S_ISDIR(entry1->type)){
if (S_ISDIR(entry2->type)==0) return (-1);
@@ -281,63 +282,91 @@ static int compare_extension(const void *a1, const void *a2) {
return (BLI_strcasecmp(sufix1, sufix2));
}
+static int is_hidden_file(const char* filename, short hide_dot)
+{
+ int is_hidden=0;
+
+ if (hide_dot) {
+ if(filename[0]=='.' && filename[1]!='.' && filename[1]!=0) {
+ is_hidden=1; /* ignore .file */
+ } else if (((filename[0] == '.') && (filename[1] == 0) )) {
+ is_hidden=1; /* ignore . */
+ } else {
+ int len=strlen(filename);
+ if( (len>0) && (filename[len-1]=='~') ) {
+ is_hidden=1; /* ignore file~ */
+ }
+ }
+ } else {
+ if (((filename[0] == '.') && (filename[1] == 0) )) {
+ is_hidden=1; /* ignore . */
+ }
+ }
+ return is_hidden;
+}
+
+static int is_filtered_file(struct direntry* file, const char* dir, unsigned int filter, short hide_dot)
+{
+ int is_filtered=0;
+ if (filter) {
+ if (file->flags & filter) {
+ is_filtered=1;
+ } else if (file->type & S_IFDIR) {
+ if (filter & FOLDERFILE) {
+ is_filtered = 1;
+ }
+ }
+ } else {
+ is_filtered = 1;
+ }
+ return is_filtered && !is_hidden_file(file->relname, hide_dot);
+}
+
+static int is_filtered_lib(struct direntry* file, const char* dir, unsigned int filter, short hide_dot)
+{
+ int is_filtered=0;
+ char tdir[FILE_MAX], tgroup[GROUP_MAX];
+ if (BLO_is_a_library(dir, tdir, tgroup)) {
+ is_filtered = !is_hidden_file(file->relname, hide_dot);
+ } else {
+ is_filtered = is_filtered_file(file, dir, filter, hide_dot);
+ }
+ return is_filtered;
+}
+
+static int is_filtered_main(struct direntry* file, const char* dir, unsigned int filter, short hide_dot)
+{
+ return !is_hidden_file(file->relname, hide_dot);
+}
+
void filelist_filter(FileList* filelist)
{
- /* char dir[FILE_MAX], group[GROUP_MAX]; XXXXX */
int num_filtered = 0;
int i, j;
if (!filelist->filelist)
return;
-
- /* XXXXX TODO: check if the filter can be handled outside the filelist
- if ( ( (filelist->type == FILE_LOADLIB) && BIF_filelist_islibrary(filelist, dir, group))
- || (filelist->type == FILE_MAIN) ) {
- filelist->filter = 0;
- }
- */
-
- if (!filelist->filter) {
- if (filelist->fidx) {
- MEM_freeN(filelist->fidx);
- filelist->fidx = NULL;
- }
- filelist->fidx = (int *)MEM_callocN(filelist->numfiles*sizeof(int), "filteridx");
- for (i = 0; i < filelist->numfiles; ++i) {
- filelist->fidx[i] = i;
- }
- filelist->numfiltered = filelist->numfiles;
- return;
- }
// How many files are left after filter ?
for (i = 0; i < filelist->numfiles; ++i) {
- if (filelist->filelist[i].flags & filelist->filter) {
+ struct direntry *file = &filelist->filelist[i];
+ if ( filelist->filterf(file, filelist->dir, filelist->filter, filelist->hide_dot) ) {
num_filtered++;
}
- else if (filelist->filelist[i].type & S_IFDIR) {
- if (filelist->filter & FOLDERFILE) {
- num_filtered++;
- }
- }
}
if (filelist->fidx) {
- MEM_freeN(filelist->fidx);
- filelist->fidx = NULL;
+ MEM_freeN(filelist->fidx);
+ filelist->fidx = NULL;
}
filelist->fidx = (int *)MEM_callocN(num_filtered*sizeof(int), "filteridx");
filelist->numfiltered = num_filtered;
for (i = 0, j=0; i < filelist->numfiles; ++i) {
- if (filelist->filelist[i].flags & filelist->filter) {
+ struct direntry *file = &filelist->filelist[i];
+ if ( filelist->filterf(file, filelist->dir, filelist->filter, filelist->hide_dot) ) {
filelist->fidx[j++] = i;
}
- else if (filelist->filelist[i].type & S_IFDIR) {
- if (filelist->filter & FOLDERFILE) {
- filelist->fidx[j++] = i;
- }
- }
}
}
@@ -346,7 +375,7 @@ void filelist_init_icons()
short x, y, k;
ImBuf *bbuf;
ImBuf *ibuf;
- bbuf = IMB_ibImageFromMemory((int *)datatoc_prvicons, datatoc_prvicons_size, IB_rect);
+ bbuf = IMB_ibImageFromMemory((unsigned char*)datatoc_prvicons, datatoc_prvicons_size, IB_rect);
if (bbuf) {
for (y=0; y<SPECIAL_IMG_ROWS; y++) {
for (x=0; x<SPECIAL_IMG_COLS; x++) {
@@ -480,13 +509,16 @@ struct FileList* filelist_new(short type)
FileList* p = MEM_callocN( sizeof(FileList), "filelist" );
switch(type) {
case FILE_MAIN:
- p->read = filelist_read_main;
+ p->readf = filelist_read_main;
+ p->filterf = is_filtered_main;
break;
case FILE_LOADLIB:
- p->read = filelist_read_library;
+ p->readf = filelist_read_library;
+ p->filterf = is_filtered_lib;
break;
default:
- p->read = filelist_read_dir;
+ p->readf = filelist_read_dir;
+ p->filterf = is_filtered_file;
}
return p;
@@ -501,9 +533,6 @@ void filelist_free(struct FileList* filelist)
printf("Attempting to delete empty filelist.\n");
return;
}
-
- BLI_end_threads(&filelist->threads);
- BLI_freelistN(&filelist->loadimages);
if (filelist->fidx) {
MEM_freeN(filelist->fidx);
@@ -566,123 +595,31 @@ void filelist_imgsize(struct FileList* filelist, short w, short h)
filelist->prv_h = h;
}
-
-static void *exec_loadimages(void *list_v)
-{
- FileImage* img = (FileImage*)list_v;
- struct FileList *filelist = img->filelist;
-
- ImBuf *imb = NULL;
- int fidx = img->index;
-
- if ( filelist->filelist[fidx].flags & IMAGEFILE ) {
- imb = IMB_thumb_manage(filelist->dir, filelist->filelist[fidx].relname, THB_NORMAL, THB_SOURCE_IMAGE);
- } else if ( filelist->filelist[fidx].flags & MOVIEFILE ) {
- imb = IMB_thumb_manage(filelist->dir, filelist->filelist[fidx].relname, THB_NORMAL, THB_SOURCE_MOVIE);
- if (!imb) {
- /* remember that file can't be loaded via IMB_open_anim */
- filelist->filelist[fidx].flags &= ~MOVIEFILE;
- filelist->filelist[fidx].flags |= MOVIEFILE_ICON;
- }
- }
- if (imb) {
- IMB_freeImBuf(imb);
- }
- img->done=1;
- return 0;
-}
-
short filelist_changed(struct FileList* filelist)
{
return filelist->changed;
}
-void filelist_loadimage_timer(struct FileList* filelist)
-{
- FileImage *limg = filelist->loadimages.first;
- short refresh=0;
-
- // as long as threads are available and there is work to do
- while (limg) {
- if (BLI_available_threads(&filelist->threads)>0) {
- if (!limg->lock) {
- limg->lock=1;
- BLI_insert_thread(&filelist->threads, limg);
- }
- }
- if (limg->done) {
- FileImage *oimg = limg;
- BLI_remove_thread(&filelist->threads, oimg);
- /* brecht: keep failed images in the list, otherwise
- it keeps trying to load them over and over?
- BLI_remlink(&filelist->loadimages, oimg);
- MEM_freeN(oimg);*/
- limg = oimg->next;
- refresh = 1;
- } else {
- limg= limg->next;
- }
- }
- filelist->changed=refresh;
-}
-
-void filelist_loadimage(struct FileList* filelist, int index)
+struct ImBuf * filelist_loadimage(struct FileList* filelist, int index)
{
ImBuf *imb = NULL;
- int imgwidth = filelist->prv_w;
- int imgheight = filelist->prv_h;
- short ex, ey, dx, dy;
- float scaledx, scaledy;
int fidx = 0;
if ( (index < 0) || (index >= filelist->numfiltered) ) {
- return;
+ return NULL;
}
fidx = filelist->fidx[index];
-
- if (!filelist->filelist[fidx].image)
+ imb = filelist->filelist[fidx].image;
+ if (!imb)
{
-
- if ( (filelist->filelist[fidx].flags & IMAGEFILE) || (filelist->filelist[fidx].flags & MOVIEFILE) ) {
- imb = IMB_thumb_read(filelist->dir, filelist->filelist[fidx].relname, THB_NORMAL);
+ if ( (filelist->filelist[fidx].flags & IMAGEFILE) || (filelist->filelist[fidx].flags & MOVIEFILE) ) {
+ imb = IMB_thumb_read(filelist->filelist[fidx].path, THB_NORMAL);
}
if (imb) {
- if (imb->x > imb->y) {
- scaledx = (float)imgwidth;
- scaledy = ( (float)imb->y/(float)imb->x )*imgwidth;
- }
- else {
- scaledy = (float)imgheight;
- scaledx = ( (float)imb->x/(float)imb->y )*imgheight;
- }
- ex = (short)scaledx;
- ey = (short)scaledy;
-
- dx = imgwidth - ex;
- dy = imgheight - ey;
-
- // IMB_scaleImBuf(imb, ex, ey);
filelist->filelist[fidx].image = imb;
- } else {
- /* prevent loading image twice */
- FileImage* limg = filelist->loadimages.first;
- short found= 0;
- while(limg) {
- if (limg->index == fidx) {
- found= 1;
- break;
- }
- limg= limg->next;
- }
- if (!found) {
- FileImage* limg = MEM_callocN(sizeof(struct FileImage), "loadimage");
- limg->index= fidx;
- limg->lock= 0;
- limg->filelist= filelist;
- BLI_addtail(&filelist->loadimages, limg);
- }
- }
+ }
}
+ return imb;
}
struct ImBuf * filelist_getimage(struct FileList* filelist, int index)
@@ -709,13 +646,13 @@ struct ImBuf * filelist_geticon(struct FileList* filelist, int index)
fidx = filelist->fidx[index];
file = &filelist->filelist[fidx];
if (file->type & S_IFDIR) {
- if ( strcmp(filelist->filelist[fidx].relname, "..") == 0) {
- ibuf = gSpecialFileImages[SPECIAL_IMG_PARENT];
- } else if ( strcmp(filelist->filelist[fidx].relname, ".") == 0) {
- ibuf = gSpecialFileImages[SPECIAL_IMG_REFRESH];
- } else {
- ibuf = gSpecialFileImages[SPECIAL_IMG_FOLDER];
- }
+ if ( strcmp(filelist->filelist[fidx].relname, "..") == 0) {
+ ibuf = gSpecialFileImages[SPECIAL_IMG_PARENT];
+ } else if ( strcmp(filelist->filelist[fidx].relname, ".") == 0) {
+ ibuf = gSpecialFileImages[SPECIAL_IMG_REFRESH];
+ } else {
+ ibuf = gSpecialFileImages[SPECIAL_IMG_FOLDER];
+ }
} else {
ibuf = gSpecialFileImages[SPECIAL_IMG_UNKNOWNFILE];
}
@@ -798,16 +735,11 @@ static void filelist_read_dir(struct FileList* filelist)
BLI_getwdN(wdir);
BLI_cleanup_dir(G.sce, filelist->dir);
- BLI_hide_dot_files(filelist->hide_dot);
filelist->numfiles = BLI_getdir(filelist->dir, &(filelist->filelist));
- if(!chdir(wdir)) /* fix warning about not checking return value */;
+ if(!chdir(wdir)) {} /* fix warning about not checking return value */
filelist_setfiletypes(filelist, G.have_quicktime);
filelist_filter(filelist);
-
- if (!filelist->threads.first) {
- BLI_init_threads(&filelist->threads, exec_loadimages, 2);
- }
}
static void filelist_read_main(struct FileList* filelist)
@@ -847,7 +779,7 @@ static void filelist_read_library(struct FileList* filelist)
void filelist_readdir(struct FileList* filelist)
{
- filelist->read(filelist);
+ filelist->readf(filelist);
}
int filelist_empty(struct FileList* filelist)
@@ -874,11 +806,10 @@ void filelist_setfiletypes(struct FileList* filelist, short has_quicktime)
file->type= file->s.st_mode; /* restore the mess below */
/* Don't check extensions for directories */
- if (file->type & S_IFDIR)
+ if (file->type & S_IFDIR) {
continue;
-
-
-
+ }
+
if(BLO_has_bfile_extension(file->relname)) {
file->flags |= BLENDERFILE;
} else if(BLI_testextensie(file->relname, ".py")) {
@@ -895,6 +826,8 @@ void filelist_setfiletypes(struct FileList* filelist, short has_quicktime)
file->flags |= FTFONTFILE;
} else if(BLI_testextensie(file->relname, ".btx")) {
file->flags |= BTXFILE;
+ } else if(BLI_testextensie(file->relname, ".dae")) {
+ file->flags |= COLLADAFILE;
} else if (has_quicktime){
if( BLI_testextensie(file->relname, ".int")
|| BLI_testextensie(file->relname, ".inta")
@@ -914,6 +847,7 @@ void filelist_setfiletypes(struct FileList* filelist, short has_quicktime)
|| BLI_testextensie(file->relname, ".psd")
|| BLI_testextensie(file->relname, ".tif")
|| BLI_testextensie(file->relname, ".tiff")
+ || BLI_testextensie(file->relname, ".tx")
|| BLI_testextensie(file->relname, ".pct")
|| BLI_testextensie(file->relname, ".pict")
|| BLI_testextensie(file->relname, ".pntg") //macpaint
@@ -926,7 +860,7 @@ void filelist_setfiletypes(struct FileList* filelist, short has_quicktime)
#ifdef WITH_OPENEXR
|| BLI_testextensie(file->relname, ".exr")
#endif
- ) {
+ ) {
file->flags |= IMAGEFILE;
}
else if(BLI_testextensie(file->relname, ".avi")
@@ -939,6 +873,7 @@ void filelist_setfiletypes(struct FileList* filelist, short has_quicktime)
|| BLI_testextensie(file->relname, ".wmv")
|| BLI_testextensie(file->relname, ".ogv")
|| BLI_testextensie(file->relname, ".mpeg")
+ || BLI_testextensie(file->relname, ".dv")
|| BLI_testextensie(file->relname, ".mpg")
|| BLI_testextensie(file->relname, ".mpg2")
|| BLI_testextensie(file->relname, ".vob")
@@ -976,6 +911,7 @@ void filelist_setfiletypes(struct FileList* filelist, short has_quicktime)
|| BLI_testextensie(file->relname, ".iff")
|| BLI_testextensie(file->relname, ".tif")
|| BLI_testextensie(file->relname, ".tiff")
+ || BLI_testextensie(file->relname, ".tx")
|| BLI_testextensie(file->relname, ".hdr")
#ifdef WITH_DDS
|| BLI_testextensie(file->relname, ".dds")
@@ -996,6 +932,7 @@ void filelist_setfiletypes(struct FileList* filelist, short has_quicktime)
|| BLI_testextensie(file->relname, ".mv")
|| BLI_testextensie(file->relname, ".wmv")
|| BLI_testextensie(file->relname, ".ogv")
+ || BLI_testextensie(file->relname, ".dv")
|| BLI_testextensie(file->relname, ".mpeg")
|| BLI_testextensie(file->relname, ".mpg")
|| BLI_testextensie(file->relname, ".mpg2")
@@ -1029,15 +966,15 @@ void filelist_swapselect(struct FileList* filelist)
file= filelist->filelist;
for(num=0; num<filelist->numfiles; num++, file++) {
- if(file->flags & ACTIVE) {
+ if(file->flags & ACTIVEFILE) {
act= 1;
break;
}
}
file= filelist->filelist+2;
for(num=2; num<filelist->numfiles; num++, file++) {
- if(act) file->flags &= ~ACTIVE;
- else file->flags |= ACTIVE;
+ if(act) file->flags &= ~ACTIVEFILE;
+ else file->flags |= ACTIVEFILE;
}
}
@@ -1230,7 +1167,7 @@ void filelist_from_main(struct FileList *filelist)
/* make files */
idcode= groupname_to_code(filelist->dir);
- lb= wich_libbase(G.main, idcode );
+ lb= which_libbase(G.main, idcode );
if(lb==0) return;
id= lb->first;
@@ -1275,10 +1212,10 @@ void filelist_from_main(struct FileList *filelist)
#if 0 // XXXXX TODO show the selection status of the objects
if(!filelist->has_func) { /* F4 DATA BROWSE */
if(idcode==ID_OB) {
- if( ((Object *)id)->flag & SELECT) files->flags |= ACTIVE;
+ if( ((Object *)id)->flag & SELECT) files->flags |= ACTIVEFILE;
}
else if(idcode==ID_SCE) {
- if( ((Scene *)id)->r.scemode & R_BG_RENDER) files->flags |= ACTIVE;
+ if( ((Scene *)id)->r.scemode & R_BG_RENDER) files->flags |= ACTIVEFILE;
}
}
#endif
@@ -1315,3 +1252,115 @@ void filelist_from_main(struct FileList *filelist)
filelist_filter(filelist);
}
+static void thumbnail_joblist_free(ThumbnailJob *tj)
+{
+ FileImage* limg = tj->loadimages.first;
+
+ /* free the images not yet copied to the filelist -> these will get freed with the filelist */
+ while (limg != tj->loadimages.last) {
+ if ((limg->img) && (!limg->done)) {
+ IMB_freeImBuf(limg->img);
+ }
+ limg = limg->next;
+ }
+ BLI_freelistN(&tj->loadimages);
+}
+
+static void thumbnails_startjob(void *tjv, short *stop, short *do_update, float *progress)
+{
+ ThumbnailJob *tj= tjv;
+ FileImage* limg = tj->loadimages.first;
+
+ tj->stop= stop;
+ tj->do_update= do_update;
+
+ while ( (*stop==0) && (limg) ) {
+ if ( limg->flags & IMAGEFILE ) {
+ limg->img = IMB_thumb_manage(limg->path, THB_NORMAL, THB_SOURCE_IMAGE);
+ } else if ( limg->flags & BLENDERFILE ) {
+ limg->img = IMB_thumb_manage(limg->path, THB_NORMAL, THB_SOURCE_BLEND);
+ } else if ( limg->flags & MOVIEFILE ) {
+ limg->img = IMB_thumb_manage(limg->path, THB_NORMAL, THB_SOURCE_MOVIE);
+ if (!limg->img) {
+ /* remember that file can't be loaded via IMB_open_anim */
+ limg->flags &= ~MOVIEFILE;
+ limg->flags |= MOVIEFILE_ICON;
+ }
+ }
+ *do_update = 1;
+ PIL_sleep_ms(10);
+ limg = limg->next;
+ }
+}
+
+static void thumbnails_update(void *tjv)
+{
+ ThumbnailJob *tj= tjv;
+
+ if (tj->filelist && tj->filelist->filelist) {
+ FileImage* limg = tj->loadimages.first;
+ while (limg) {
+ if (!limg->done && limg->img) {
+ tj->filelist->filelist[limg->index].image = limg->img;
+ /* update flag for movie files where thumbnail can't be created */
+ if (limg->flags & MOVIEFILE_ICON) {
+ tj->filelist->filelist[limg->index].flags &= ~MOVIEFILE;
+ tj->filelist->filelist[limg->index].flags |= MOVIEFILE_ICON;
+ }
+ limg->done=1;
+ }
+ limg = limg->next;
+ }
+ }
+}
+
+static void thumbnails_free(void *tjv)
+{
+ ThumbnailJob *tj= tjv;
+ thumbnail_joblist_free(tj);
+ MEM_freeN(tj);
+}
+
+
+void thumbnails_start(struct FileList* filelist, const struct bContext* C)
+{
+ wmJob *steve;
+ ThumbnailJob *tj;
+ int idx;
+
+ /* prepare job data */
+ tj= MEM_callocN(sizeof(ThumbnailJob), "thumbnails\n");
+ tj->filelist = filelist;
+ for (idx = 0; idx < filelist->numfiles;idx++) {
+ if (!filelist->filelist[idx].image) {
+ if ( (filelist->filelist[idx].flags & (IMAGEFILE|MOVIEFILE|BLENDERFILE)) ) {
+ FileImage* limg = MEM_callocN(sizeof(struct FileImage), "loadimage");
+ BLI_strncpy(limg->path, filelist->filelist[idx].path, FILE_MAX);
+ limg->index= idx;
+ limg->flags= filelist->filelist[idx].flags;
+ BLI_addtail(&tj->loadimages, limg);
+ }
+ }
+ }
+
+ BKE_reports_init(&tj->reports, RPT_PRINT);
+
+ /* setup job */
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), filelist, "Thumbnails", 0);
+ WM_jobs_customdata(steve, tj, thumbnails_free);
+ WM_jobs_timer(steve, 0.5, NC_WINDOW, NC_WINDOW);
+ WM_jobs_callbacks(steve, thumbnails_startjob, NULL, thumbnails_update, NULL);
+
+ /* start the job */
+ WM_jobs_start(CTX_wm_manager(C), steve);
+}
+
+void thumbnails_stop(struct FileList* filelist, const struct bContext* C)
+{
+ WM_jobs_kill(CTX_wm_manager(C), filelist, NULL);
+}
+
+int thumbnails_running(struct FileList* filelist, const struct bContext* C)
+{
+ return WM_jobs_test(CTX_wm_manager(C), filelist);
+}
diff --git a/source/blender/editors/space_file/filelist.h b/source/blender/editors/space_file/filelist.h
index 8a0e5ebdbc3..b2a86b9c764 100644
--- a/source/blender/editors/space_file/filelist.h
+++ b/source/blender/editors/space_file/filelist.h
@@ -61,8 +61,6 @@ void filelist_setfilter(struct FileList* filelist, unsigned int filter);
void filelist_filter(struct FileList* filelist);
void filelist_swapselect(struct FileList* filelist);
void filelist_imgsize(struct FileList* filelist, short w, short h);
-void filelist_loadimage(struct FileList* filelist, int index);
-void filelist_loadimage_timer(struct FileList* filelist);
struct ImBuf * filelist_getimage(struct FileList* filelist, int index);
struct ImBuf * filelist_geticon(struct FileList* filelist, int index);
short filelist_changed(struct FileList* filelist);
@@ -86,6 +84,10 @@ void folderlist_popdir(struct ListBase* folderlist, char *dir);
void folderlist_pushdir(struct ListBase* folderlist, const char *dir);
int folderlist_clear_next(struct SpaceFile* sfile);
+void thumbnails_stop(struct FileList* filelist, const struct bContext* C);
+void thumbnails_start(struct FileList* filelist, const struct bContext* C);
+int thumbnails_running(struct FileList* filelist, const struct bContext* C);
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index a82e4ba6fed..086d4f9cce2 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -42,11 +42,18 @@
#include <sys/times.h>
#endif
+/* path/file handeling stuff */
+#ifndef WIN32
+ #include <dirent.h>
+ #include <unistd.h>
+#else
+ #include <io.h>
+ #include "BLI_winstuff.h"
+#endif
+
#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -55,16 +62,15 @@
#include "BLI_storage_types.h"
#include "BLI_dynstr.h"
+#include "BLO_readfile.h"
+
#include "BKE_context.h"
#include "BKE_screen.h"
#include "BKE_global.h"
#include "BLF_api.h"
-#include "DNA_userdef_types.h"
-#include "ED_screen.h"
-#include "ED_util.h"
#include "ED_fileselect.h"
#include "WM_api.h"
@@ -76,22 +82,14 @@
#include "RNA_access.h"
#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "file_intern.h"
#include "filelist.h"
-#if defined __BeOS
-static int fnmatch(const char *pattern, const char *string, int flags)
-{
- return 0;
-}
-#elif defined WIN32 && !defined _LIBC
- /* use fnmatch included in blenlib */
- #include "BLI_fnmatch.h"
+#if defined WIN32 && !defined _LIBC
+# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */
#else
- #include <fnmatch.h>
+# include <fnmatch.h>
#endif
FileSelectParams* ED_fileselect_get_params(struct SpaceFile *sfile)
@@ -104,7 +102,6 @@ FileSelectParams* ED_fileselect_get_params(struct SpaceFile *sfile)
short ED_fileselect_set_params(SpaceFile *sfile)
{
- char name[FILE_MAX], dir[FILE_MAX], file[FILE_MAX];
FileSelectParams *params;
wmOperator *op = sfile->op;
@@ -112,10 +109,7 @@ short ED_fileselect_set_params(SpaceFile *sfile)
if (!sfile->params) {
sfile->params= MEM_callocN(sizeof(FileSelectParams), "fileselparams");
/* set path to most recently opened .blend */
- BLI_strncpy(sfile->params->dir, G.sce, sizeof(sfile->params->dir));
- BLI_split_dirfile(G.sce, dir, file);
- BLI_strncpy(sfile->params->file, file, sizeof(sfile->params->file));
- BLI_make_file_string(G.sce, sfile->params->dir, dir, ""); /* XXX needed ? - also solve G.sce */
+ BLI_split_dirfile(G.sce, sfile->params->dir, sfile->params->file);
}
params = sfile->params;
@@ -129,19 +123,33 @@ short ED_fileselect_set_params(SpaceFile *sfile)
else
params->type = FILE_SPECIAL;
- if (RNA_property_is_set(op->ptr, "path")) {
- RNA_string_get(op->ptr, "path", name);
+ if (RNA_struct_find_property(op->ptr, "filepath") && RNA_property_is_set(op->ptr, "filepath")) {
+ char name[FILE_MAX];
+ RNA_string_get(op->ptr, "filepath", name);
if (params->type == FILE_LOADLIB) {
BLI_strncpy(params->dir, name, sizeof(params->dir));
- BLI_cleanup_dir(G.sce, params->dir);
- } else {
- /* if operator has path set, use it, otherwise keep the last */
- BLI_convertstringcode(name, G.sce);
- BLI_split_dirfile(name, dir, file);
- BLI_strncpy(params->file, file, sizeof(params->file));
- BLI_make_file_string(G.sce, params->dir, dir, ""); /* XXX needed ? - also solve G.sce */
+ sfile->params->file[0]= '\0';
+ }
+ else {
+ BLI_split_dirfile(name, sfile->params->dir, sfile->params->file);
+ }
+ }
+ else {
+ if (RNA_struct_find_property(op->ptr, "directory") && RNA_property_is_set(op->ptr, "directory")) {
+ RNA_string_get(op->ptr, "directory", params->dir);
+ sfile->params->file[0]= '\0';
+ }
+
+ if (RNA_struct_find_property(op->ptr, "filename") && RNA_property_is_set(op->ptr, "filename")) {
+ RNA_string_get(op->ptr, "filename", params->file);
}
}
+
+ if(params->dir[0]) {
+ BLI_cleanup_dir(G.sce, params->dir);
+ BLI_path_abs(params->dir, G.sce);
+ }
+
params->filter = 0;
if(RNA_struct_find_property(op->ptr, "filter_blender"))
params->filter |= RNA_boolean_get(op->ptr, "filter_blender") ? BLENDERFILE : 0;
@@ -163,8 +171,15 @@ short ED_fileselect_set_params(SpaceFile *sfile)
params->filter |= RNA_boolean_get(op->ptr, "filter_folder") ? FOLDERFILE : 0;
if(RNA_struct_find_property(op->ptr, "filter_btx"))
params->filter |= RNA_boolean_get(op->ptr, "filter_btx") ? BTXFILE : 0;
- if (params->filter != 0)
- params->flag |= FILE_FILTER;
+ if(RNA_struct_find_property(op->ptr, "filter_collada"))
+ params->filter |= RNA_boolean_get(op->ptr, "filter_collada") ? COLLADAFILE : 0;
+ if (params->filter != 0) {
+ if (U.uiflag & USER_FILTERFILEEXTS) {
+ params->flag |= FILE_FILTER;
+ } else {
+ params->flag &= ~FILE_FILTER;
+ }
+ }
if (U.uiflag & USER_HIDE_DOT) {
params->flag |= FILE_HIDE_DOT;
@@ -192,7 +207,6 @@ short ED_fileselect_set_params(SpaceFile *sfile)
params->filter = 0;
params->sort = FILE_SORT_ALPHA;
}
-
return 1;
}
@@ -209,16 +223,16 @@ int ED_fileselect_layout_numfiles(FileLayout* layout, struct ARegion *ar)
if (layout->flag & FILE_LAYOUT_HOR) {
int width = ar->v2d.cur.xmax - ar->v2d.cur.xmin - 2*layout->tile_border_x;
- numfiles = width/layout->tile_w + 1;
+ numfiles = (float)width/(float)layout->tile_w+0.5;
return numfiles*layout->rows;
} else {
int height = ar->v2d.cur.ymax - ar->v2d.cur.ymin - 2*layout->tile_border_y;
- numfiles = height/layout->tile_h + 1;
+ numfiles = (float)height/(float)layout->tile_h+0.5;
return numfiles*layout->columns;
}
}
-int ED_fileselect_layout_offset(FileLayout* layout, int x, int y)
+int ED_fileselect_layout_offset(FileLayout* layout, int clamp_bounds, int x, int y)
{
int offsetx, offsety;
int active_file;
@@ -229,9 +243,14 @@ int ED_fileselect_layout_offset(FileLayout* layout, int x, int y)
offsetx = (x)/(layout->tile_w + 2*layout->tile_border_x);
offsety = (y)/(layout->tile_h + 2*layout->tile_border_y);
- if (offsetx > layout->columns-1) return -1 ;
- if (offsety > layout->rows-1) return -1 ;
-
+ if (clamp_bounds) {
+ CLAMP(offsetx, 0, layout->columns-1);
+ CLAMP(offsety, 0, layout->rows-1);
+ } else {
+ if (offsetx > layout->columns-1) return -1 ;
+ if (offsety > layout->rows-1) return -1 ;
+ }
+
if (layout->flag & FILE_LAYOUT_HOR)
active_file = layout->rows*offsetx + offsety;
else
@@ -254,7 +273,7 @@ float file_string_width(const char* str)
{
uiStyle *style= U.uistyles.first;
uiStyleFontSet(&style->widget);
- return BLF_width((char *)str);
+ return BLF_width(style->widget.uifont_id, (char *)str);
}
float file_font_pointsize()
@@ -263,7 +282,7 @@ float file_font_pointsize()
char tmp[2] = "X";
uiStyle *style= U.uistyles.first;
uiStyleFontSet(&style->widget);
- s = BLF_height(tmp);
+ s = BLF_height(style->widget.uifont_id, tmp);
return style->widget.points;
}
@@ -391,24 +410,25 @@ FileLayout* ED_fileselect_get_layout(struct SpaceFile *sfile, struct ARegion *ar
return sfile->layout;
}
-void file_change_dir(struct SpaceFile *sfile, int checkdir)
+void file_change_dir(bContext *C, int checkdir)
{
+ SpaceFile *sfile= CTX_wm_space_file(C);
+
if (sfile->params) {
+ ED_fileselect_clear(C, sfile);
+
if(checkdir && BLI_is_dir(sfile->params->dir)==0) {
BLI_strncpy(sfile->params->dir, filelist_dir(sfile->files), sizeof(sfile->params->dir));
/* could return but just refresh the current dir */
}
-
filelist_setdir(sfile->files, sfile->params->dir);
-
+
if(folderlist_clear_next(sfile))
folderlist_free(sfile->folders_next);
folderlist_pushdir(sfile->folders_prev, sfile->params->dir);
- filelist_free(sfile->files);
- sfile->params->active_file = -1;
}
}
@@ -423,7 +443,7 @@ int file_select_match(struct SpaceFile *sfile, const char *pattern)
for (i = 0; i < n; i++) {
file = filelist_file(sfile->files, i);
if (fnmatch(pattern, file->relname, 0) == 0) {
- file->flags |= ACTIVE;
+ file->flags |= ACTIVEFILE;
match = 1;
}
}
@@ -431,10 +451,55 @@ int file_select_match(struct SpaceFile *sfile, const char *pattern)
return match;
}
-
void autocomplete_directory(struct bContext *C, char *str, void *arg_v)
{
- char tmp[FILE_MAX];
+ SpaceFile *sfile= CTX_wm_space_file(C);
+
+ /* search if str matches the beginning of name */
+ if(str[0] && sfile->files) {
+ char dirname[FILE_MAX];
+
+ DIR *dir;
+ struct dirent *de;
+
+ BLI_split_dirfile(str, dirname, NULL);
+
+ dir = opendir(dirname);
+
+ if(dir) {
+ AutoComplete *autocpl= autocomplete_begin(str, FILE_MAX);
+
+ while ((de = readdir(dir)) != NULL) {
+ if (strcmp(".", de->d_name)==0 || strcmp("..", de->d_name)==0) {
+ /* pass */
+ }
+ else {
+ char path[FILE_MAX];
+ struct stat status;
+
+ BLI_join_dirfile(path, dirname, de->d_name);
+
+ if (stat(path, &status) == 0) {
+ if (S_ISDIR(status.st_mode)) { /* is subdir */
+ autocomplete_do_name(autocpl, path);
+ }
+ }
+ }
+ }
+ closedir(dir);
+
+ autocomplete_end(autocpl, str);
+ if (BLI_exists(str)) {
+ BLI_add_slash(str);
+ } else {
+ BLI_strncpy(sfile->params->dir, str, sizeof(sfile->params->dir));
+ }
+ }
+ }
+}
+
+void autocomplete_file(struct bContext *C, char *str, void *arg_v)
+{
SpaceFile *sfile= CTX_wm_space_file(C);
/* search if str matches the beginning of name */
@@ -445,18 +510,24 @@ void autocomplete_directory(struct bContext *C, char *str, void *arg_v)
for(i= 0; i<nentries; ++i) {
struct direntry* file = filelist_file(sfile->files, i);
- const char* dir = filelist_dir(sfile->files);
- if (file && S_ISDIR(file->type)) {
- // BLI_make_file_string(G.sce, tmp, dir, file->relname);
- BLI_join_dirfile(tmp, dir, file->relname);
- autocomplete_do_name(autocpl,tmp);
+ if (file && S_ISREG(file->type)) {
+ autocomplete_do_name(autocpl, file->relname);
}
}
autocomplete_end(autocpl, str);
- if (BLI_exists(str)) {
- BLI_add_slash(str);
- } else {
- BLI_make_exist(str);
- }
}
}
+
+void ED_fileselect_clear(struct bContext *C, struct SpaceFile *sfile)
+{
+ thumbnails_stop(sfile->files, C);
+ filelist_freelib(sfile->files);
+ filelist_free(sfile->files);
+ sfile->params->active_file = -1;
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
+}
+
+void ED_fileselect_exit(struct bContext *C, struct SpaceFile *sfile)
+{
+ thumbnails_stop(sfile->files, C);
+}
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c
index d3e859602d7..6699c0b8bc7 100644
--- a/source/blender/editors/space_file/fsmenu.c
+++ b/source/blender/editors/space_file/fsmenu.c
@@ -248,12 +248,41 @@ void fsmenu_write_file(struct FSMenu* fsmenu, const char *filename)
fclose(fp);
}
-void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename)
+void fsmenu_read_bookmarks(struct FSMenu* fsmenu, const char *filename)
{
char line[256];
FSMenuCategory category = FS_CATEGORY_BOOKMARKS;
FILE *fp;
+ fp = fopen(filename, "r");
+ if (!fp) return;
+
+ while ( fgets ( line, 256, fp ) != NULL ) /* read a line */
+ {
+ if (strncmp(line, "[Bookmarks]", 11)==0){
+ category = FS_CATEGORY_BOOKMARKS;
+ } else if (strncmp(line, "[Recent]", 8)==0){
+ category = FS_CATEGORY_RECENT;
+ } else {
+ int len = strlen(line);
+ if (len>0) {
+ if (line[len-1] == '\n') {
+ line[len-1] = '\0';
+ }
+ if (BLI_exist(line)) {
+ fsmenu_insert_entry(fsmenu, category, line, 0, 1);
+ }
+ }
+ }
+ }
+ fclose(fp);
+}
+
+void fsmenu_read_system(struct FSMenu* fsmenu)
+{
+ char line[256];
+ FILE *fp;
+
#ifdef WIN32
/* Add the drive names to the listing */
{
@@ -266,7 +295,7 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename)
for (i=2; i < 26; i++) {
if ((tmp>>i) & 1) {
- tmps[0]='a'+i;
+ tmps[0]='A'+i;
tmps[1]=':';
tmps[2]='\\';
tmps[3]=0;
@@ -429,15 +458,14 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename)
#else
/* unix */
{
- char dir[FILE_MAXDIR];
char *home= BLI_gethome();
if(home) {
- BLI_snprintf(dir, FILE_MAXDIR, "%s/", home);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, dir, 1, 0);
- BLI_snprintf(dir, FILE_MAXDIR, "%s/Desktop/", home);
- if (BLI_exists(dir)) {
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, dir, 1, 0);
+ BLI_snprintf(line, FILE_MAXDIR, "%s/", home);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ BLI_snprintf(line, FILE_MAXDIR, "%s/Desktop/", home);
+ if (BLI_exists(line)) {
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
}
}
@@ -446,7 +474,6 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename)
#ifdef __linux__
/* loop over mount points */
struct mntent *mnt;
- FILE *fp;
int len;
fp = setmntent (MOUNTED, "r");
@@ -461,8 +488,8 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename)
len= strlen(mnt->mnt_dir);
if(len && mnt->mnt_dir[len-1] != '/') {
- BLI_snprintf(dir, FILE_MAXDIR, "%s/", mnt->mnt_dir);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, dir, 1, 0);
+ BLI_snprintf(line, FILE_MAXDIR, "%s/", mnt->mnt_dir);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, line, 1, 0);
}
else
fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, mnt->mnt_dir, 1, 0);
@@ -482,31 +509,9 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename)
}
#endif
#endif
-
- fp = fopen(filename, "r");
- if (!fp) return;
-
- while ( fgets ( line, 256, fp ) != NULL ) /* read a line */
- {
- if (strncmp(line, "[Bookmarks]", 11)==0){
- category = FS_CATEGORY_BOOKMARKS;
- } else if (strncmp(line, "[Recent]", 8)==0){
- category = FS_CATEGORY_RECENT;
- } else {
- int len = strlen(line);
- if (len>0) {
- if (line[len-1] == '\n') {
- line[len-1] = '\0';
- }
- if (BLI_exist(line)) {
- fsmenu_insert_entry(fsmenu, category, line, 0, 1);
- }
- }
- }
- }
- fclose(fp);
}
+
static void fsmenu_free_category(struct FSMenu* fsmenu, FSMenuCategory category)
{
FSMenuEntry *fsme= fsmenu_get_category(fsmenu, category);
diff --git a/source/blender/editors/space_file/fsmenu.h b/source/blender/editors/space_file/fsmenu.h
index d685a844cde..dcf8d3eb632 100644
--- a/source/blender/editors/space_file/fsmenu.h
+++ b/source/blender/editors/space_file/fsmenu.h
@@ -48,7 +48,7 @@ struct FSMenu* fsmenu_get (void);
int fsmenu_get_nentries (struct FSMenu* fsmenu, FSMenuCategory category);
/** Returns the fsmenu entry at @a index (or NULL if a bad index)
- * or a separator.
+ * or a separator.
*/
char* fsmenu_get_entry (struct FSMenu* fsmenu, FSMenuCategory category, int index);
@@ -68,7 +68,10 @@ void fsmenu_remove_entry (struct FSMenu* fsmenu, FSMenuCategory category, int i
void fsmenu_write_file (struct FSMenu* fsmenu, const char *filename);
/** reads the 'bookmarks' from the specified file */
-void fsmenu_read_file (struct FSMenu* fsmenu, const char *filename);
+void fsmenu_read_bookmarks (struct FSMenu* fsmenu, const char *filename);
+
+ /** adds system specific directories */
+void fsmenu_read_system (struct FSMenu* fsmenu);
/** Free's all the memory associated with the fsmenu */
void fsmenu_free (struct FSMenu* fsmenu);
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index 3996c6135a0..261b7058151 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,10 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "RNA_access.h"
@@ -51,7 +47,6 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_fileselect.h"
@@ -61,13 +56,10 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "ED_markers.h"
-#include "ED_fileselect.h"
#include "file_intern.h" // own include
#include "fsmenu.h"
@@ -120,6 +112,7 @@ static void file_free(SpaceLink *sl)
SpaceFile *sfile= (SpaceFile *) sl;
if(sfile->files) {
+ // XXXXX would need to do thumbnails_stop here, but no context available
filelist_freelib(sfile->files);
filelist_free(sfile->files);
MEM_freeN(sfile->files);
@@ -139,8 +132,6 @@ static void file_free(SpaceLink *sl)
}
if (sfile->params) {
- if(sfile->params->pupmenu)
- MEM_freeN(sfile->params->pupmenu);
MEM_freeN(sfile->params);
sfile->params= NULL;
}
@@ -170,18 +161,18 @@ static SpaceLink *file_duplicate(SpaceLink *sl)
/* clear or remove stuff from old */
sfilen->op = NULL; /* file window doesn't own operators */
- if (sfileo->params)
+ if (sfileo->params) {
sfilen->files = filelist_new(sfileo->params->type);
+ sfilen->params= MEM_dupallocN(sfileo->params);
+ filelist_setdir(sfilen->files, sfilen->params->dir);
+ }
+
if(sfileo->folders_prev)
sfilen->folders_prev = folderlist_duplicate(sfileo->folders_prev);
if(sfileo->folders_next)
sfilen->folders_next = folderlist_duplicate(sfileo->folders_next);
-
- if(sfileo->params) {
- sfilen->params= MEM_dupallocN(sfileo->params);
- file_change_dir(sfilen, 0);
- }
+
if (sfileo->layout) {
sfilen->layout= MEM_dupallocN(sfileo->layout);
}
@@ -197,17 +188,42 @@ static void file_refresh(const bContext *C, ScrArea *sa)
sfile->folders_prev = folderlist_new();
if (!sfile->files) {
sfile->files = filelist_new(params->type);
- file_change_dir(sfile, 0);
+ filelist_setdir(sfile->files, params->dir);
params->active_file = -1; // added this so it opens nicer (ton)
}
filelist_hidedot(sfile->files, params->flag & FILE_HIDE_DOT);
filelist_setfilter(sfile->files, params->flag & FILE_FILTER ? params->filter : 0);
if (filelist_empty(sfile->files))
{
+ thumbnails_stop(sfile->files, C);
filelist_readdir(sfile->files);
+ if(params->sort!=FILE_SORT_NONE) {
+ filelist_sort(sfile->files, params->sort);
+ }
BLI_strncpy(params->dir, filelist_dir(sfile->files), FILE_MAX);
+ if(params->display == FILE_IMGDISPLAY) {
+ thumbnails_start(sfile->files, C);
+ }
+ } else {
+ if(params->sort!=FILE_SORT_NONE) {
+ thumbnails_stop(sfile->files, C);
+ filelist_sort(sfile->files, params->sort);
+ if(params->display == FILE_IMGDISPLAY) {
+ thumbnails_start(sfile->files, C);
+ }
+ } else {
+ if(params->display == FILE_IMGDISPLAY) {
+ if (!thumbnails_running(sfile->files,C)) {
+ thumbnails_start(sfile->files, C);
+ }
+ } else {
+ /* stop any running thumbnail jobs if we're not
+ displaying them - speedup for NFS */
+ thumbnails_stop(sfile->files, C);
+ }
+ filelist_filter(sfile->files);
+ }
}
- if(params->sort!=FILE_SORT_NONE) filelist_sort(sfile->files, params->sort);
if (params->renamefile[0] != '\0') {
int idx = filelist_find(sfile->files, params->renamefile);
@@ -225,14 +241,13 @@ static void file_refresh(const bContext *C, ScrArea *sa)
static void file_listener(ScrArea *sa, wmNotifier *wmn)
{
- SpaceFile* sfile = (SpaceFile*)sa->spacedata.first;
+ /* SpaceFile* sfile = (SpaceFile*)sa->spacedata.first; */
/* context changes */
switch(wmn->category) {
case NC_SPACE:
switch (wmn->data) {
case ND_SPACE_FILE_LIST:
- if (sfile->files) filelist_free(sfile->files);
ED_area_tag_refresh(sa);
ED_area_tag_redraw(sa);
break;
@@ -345,7 +360,6 @@ void file_operatortypes(void)
WM_operatortype_append(FILE_OT_select_all_toggle);
WM_operatortype_append(FILE_OT_select_border);
WM_operatortype_append(FILE_OT_select_bookmark);
- WM_operatortype_append(FILE_OT_loadimages);
WM_operatortype_append(FILE_OT_highlight);
WM_operatortype_append(FILE_OT_execute);
WM_operatortype_append(FILE_OT_cancel);
@@ -361,6 +375,7 @@ void file_operatortypes(void)
WM_operatortype_append(FILE_OT_directory_new);
WM_operatortype_append(FILE_OT_delete);
WM_operatortype_append(FILE_OT_rename);
+ WM_operatortype_append(FILE_OT_smoothscroll);
}
/* NOTE: do not add .blend file reading on this level */
@@ -378,6 +393,9 @@ void file_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "FILE_OT_directory_new", IKEY, KM_PRESS, 0, 0); /* XXX needs button */
WM_keymap_add_item(keymap, "FILE_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "FILE_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "FILE_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "FILE_OT_delete", BACKSPACEKEY, KM_PRESS, KM_OSKEY, 0);
+ WM_keymap_verify_item(keymap, "FILE_OT_smoothscroll", TIMER1, KM_ANY, KM_ANY, 0);
/* keys for main area */
keymap= WM_keymap_find(keyconf, "File Browser Main", SPACE_FILE, 0);
@@ -385,12 +403,14 @@ void file_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, 0, 0);
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
RNA_boolean_set(kmi->ptr, "extend", 1);
+ kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_ALT, 0);
+ RNA_boolean_set(kmi->ptr, "extend", 1);
+ RNA_boolean_set(kmi->ptr, "fill", 1);
WM_keymap_add_item(keymap, "FILE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "FILE_OT_select_border", BKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "FILE_OT_select_border", EVT_TWEAK_L, KM_ANY, 0, 0);
WM_keymap_add_item(keymap, "FILE_OT_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "FILE_OT_highlight", MOUSEMOVE, KM_ANY, KM_ANY, 0);
- WM_keymap_add_item(keymap, "FILE_OT_loadimages", TIMER1, KM_ANY, KM_ANY, 0);
kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0);
RNA_int_set(kmi->ptr, "increment", 1);
kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0);
@@ -404,6 +424,7 @@ void file_keymap(struct wmKeyConfig *keyconf)
kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_CTRL, 0);
RNA_int_set(kmi->ptr, "increment",-100);
+
/* keys for button area (top) */
keymap= WM_keymap_find(keyconf, "File Browser Buttons", SPACE_FILE, 0);
kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0);
@@ -448,7 +469,12 @@ static void file_channel_area_listener(ARegion *ar, wmNotifier *wmn)
/* add handlers, stuff you only do once or on area/region changes */
static void file_header_area_init(wmWindowManager *wm, ARegion *ar)
{
+ wmKeyMap *keymap;
+
ED_region_header_init(ar);
+
+ keymap= WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0);
+ WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
}
static void file_header_area_draw(const bContext *C, ARegion *ar)
@@ -565,9 +591,16 @@ void ED_spacetype_file(void)
void ED_file_init(void)
{
- char name[FILE_MAX];
- BLI_make_file_string("/", name, BLI_gethome(), ".Bfs");
- fsmenu_read_file(fsmenu_get(), name);
+ char *cfgdir = BLI_get_folder(BLENDER_CONFIG, NULL);
+
+ fsmenu_read_system(fsmenu_get());
+
+ if (cfgdir) {
+ char name[FILE_MAX];
+ BLI_make_file_string("/", name, cfgdir, BLENDER_BOOKMARK_FILE);
+ fsmenu_read_bookmarks(fsmenu_get(), name);
+ }
+
filelist_init_icons();
IMB_thumb_makedirs();
}
diff --git a/source/blender/editors/space_file/writeimage.c b/source/blender/editors/space_file/writeimage.c
index 07eb58bffbc..05efdc12596 100644
--- a/source/blender/editors/space_file/writeimage.c
+++ b/source/blender/editors/space_file/writeimage.c
@@ -36,11 +36,9 @@
#include "BLI_blenlib.h"
-#include "DNA_image_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_texture_types.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -52,41 +50,15 @@
#include "file_intern.h"
/* XXX */
-static void error() {}
+static void error(const char *dummy) {}
static void waitcursor(int val) {}
-static void activate_fileselect() {}
-static int saveover() {return 0;}
+static void activate_fileselect(int d1, char *d2, char *d3, void *d4) {}
+static int saveover(const char *dummy) {return 0;}
/* XXX */
/* ------------------------------------------------------------------------- */
-
-void BIF_save_envmap(Scene *scene, EnvMap *env, char *str)
-{
- ImBuf *ibuf;
-/* extern rectcpy(); */
- int dx;
-
- /* all interactive stuff is handled in buttons.c */
- if(env->cube[0]==NULL) return;
-
- dx= env->cube[0]->x;
- ibuf= IMB_allocImBuf(3*dx, 2*dx, 24, IB_rect, 0);
-
- IMB_rectcpy(ibuf, env->cube[0], 0, 0, 0, 0, dx, dx);
- IMB_rectcpy(ibuf, env->cube[1], dx, 0, 0, 0, dx, dx);
- IMB_rectcpy(ibuf, env->cube[2], 2*dx, 0, 0, 0, dx, dx);
- IMB_rectcpy(ibuf, env->cube[3], 0, dx, 0, 0, dx, dx);
- IMB_rectcpy(ibuf, env->cube[4], dx, dx, 0, 0, dx, dx);
- IMB_rectcpy(ibuf, env->cube[5], 2*dx, dx, 0, 0, dx, dx);
-
- BKE_write_ibuf(scene, ibuf, str, scene->r.imtype, scene->r.subimtype, scene->r.quality);
- IMB_freeImBuf(ibuf);
-}
-
-
-
/* callback for fileselect to save rendered image, renderresult was checked to exist */
static void save_rendered_image_cb_real(char *name, int confirm)
{
@@ -105,7 +77,7 @@ static void save_rendered_image_cb_real(char *name, int confirm)
BKE_add_image_extension(name, scene->r.imtype);
strcpy(str, name);
- BLI_convertstringcode(str, G.sce);
+ BLI_path_abs(str, G.sce);
if (confirm)
overwrite = saveover(str);
@@ -114,14 +86,14 @@ static void save_rendered_image_cb_real(char *name, int confirm)
if(overwrite) {
if(scene->r.imtype==R_MULTILAYER) {
- Render *re= RE_GetRender(scene->id.name, RE_SLOT_VIEW);
+ Render *re= RE_GetRender(scene->id.name);
RenderResult *rr= RE_AcquireResultRead(re);
if(rr)
RE_WriteRenderResult(rr, str, scene->r.quality);
RE_ReleaseResult(re);
}
else {
- Render *re= RE_GetRender(scene->id.name, RE_SLOT_VIEW);
+ Render *re= RE_GetRender(scene->id.name);
RenderResult rres;
ImBuf *ibuf;
@@ -171,10 +143,11 @@ void save_image_filesel_str(Scene *scene, char *str)
case R_BMP:
strcpy(str, "Save BMP");
break;
+#ifdef WITH_TIFF
case R_TIFF:
- if (G.have_libtiff)
- strcpy(str, "Save TIFF");
+ strcpy(str, "Save TIFF");
break;
+#endif
#ifdef WITH_OPENEXR
case R_OPENEXR:
strcpy(str, "Save OpenEXR");
@@ -211,7 +184,6 @@ void save_image_filesel_str(Scene *scene, char *str)
#endif
/* default we save jpeg, also for all movie formats */
case R_JPEG90:
- case R_MOVIE:
case R_AVICODEC:
case R_AVIRAW:
case R_AVIJPEG:
@@ -235,7 +207,7 @@ void BIF_save_rendered_image(char *name)
/* calls fileselect */
void BIF_save_rendered_image_fs(Scene *scene)
{
- Render *re= RE_GetRender(scene->id.name, RE_SLOT_VIEW);
+ Render *re= RE_GetRender(scene->id.name);
RenderResult rres;
RE_AcquireResultImage(re, &rres);
diff --git a/source/blender/editors/space_graph/CMakeLists.txt b/source/blender/editors/space_graph/CMakeLists.txt
new file mode 100644
index 00000000000..6ad95d920c6
--- /dev/null
+++ b/source/blender/editors/space_graph/CMakeLists.txt
@@ -0,0 +1,35 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../../../intern/audaspace/intern
+)
+
+BLENDERLIB(bf_editor_space_graph "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c
index 3975c88fe5c..bf433923707 100644
--- a/source/blender/editors/space_graph/graph_buttons.c
+++ b/source/blender/editors/space_graph/graph_buttons.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,12 +32,8 @@
#include <float.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -66,17 +62,13 @@
#include "WM_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "ED_anim_api.h"
#include "ED_keyframing.h"
#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "graph_intern.h" // own include
@@ -155,7 +147,7 @@ static void graph_panel_view(const bContext *C, Panel *pa)
/* 2D-Cursor */
col= uiLayoutColumn(pa->layout, 0);
- uiItemR(col, NULL, 0, &spaceptr, "show_cursor", 0);
+ uiItemR(col, &spaceptr, "show_cursor", 0, NULL, 0);
subcol= uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(&spaceptr, "show_cursor"));
@@ -164,11 +156,11 @@ static void graph_panel_view(const bContext *C, Panel *pa)
subcol= uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(&spaceptr, "show_cursor"));
row= uiLayoutSplit(subcol, 0.7, 1);
- uiItemR(row, "Cursor X", 0, &sceneptr, "current_frame", 0);
- uiItemEnumO(row, "To Keys", 0, "GRAPH_OT_snap", "type", GRAPHKEYS_SNAP_CFRA);
+ uiItemR(row, &sceneptr, "frame_current", 0, "Cursor X", 0);
+ uiItemEnumO(row, "GRAPH_OT_snap", "To Keys", 0, "type", GRAPHKEYS_SNAP_CFRA);
row= uiLayoutSplit(subcol, 0.7, 1);
- uiItemR(row, "Cursor Y", 0, &spaceptr, "cursor_value", 0);
- uiItemEnumO(row, "To Keys", 0, "GRAPH_OT_snap", "type", GRAPHKEYS_SNAP_VALUE);
+ uiItemR(row, &spaceptr, "cursor_value", 0, "Cursor Y", 0);
+ uiItemEnumO(row, "GRAPH_OT_snap", "To Keys", 0, "type", GRAPHKEYS_SNAP_VALUE);
}
/* ******************* active F-Curve ************** */
@@ -202,25 +194,102 @@ static void graph_panel_properties(const bContext *C, Panel *pa)
/* RNA-Path Editing - only really should be enabled when things aren't working */
col= uiLayoutColumn(layout, 1);
uiLayoutSetEnabled(col, (fcu->flag & FCURVE_DISABLED));
- uiItemR(col, "", ICON_RNA, &fcu_ptr, "data_path", 0);
- uiItemR(col, NULL, 0, &fcu_ptr, "array_index", 0);
+ uiItemR(col, &fcu_ptr, "data_path", 0, "", ICON_RNA);
+ uiItemR(col, &fcu_ptr, "array_index", 0, NULL, 0);
/* color settings */
col= uiLayoutColumn(layout, 1);
uiItemL(col, "Display Color:", 0);
row= uiLayoutRow(col, 1);
- uiItemR(row, "", 0, &fcu_ptr, "color_mode", 0);
+ uiItemR(row, &fcu_ptr, "color_mode", 0, "", 0);
subrow= uiLayoutRow(row, 1);
uiLayoutSetEnabled(subrow, (fcu->color_mode==FCURVE_COLOR_CUSTOM));
- uiItemR(subrow, "", 0, &fcu_ptr, "color", 0);
+ uiItemR(subrow, &fcu_ptr, "color", 0, "", 0);
- /* TODO: the following settings could be added here
- * - Access details (ID-block + RNA-Path + Array Index)
- * - ...
+ MEM_freeN(ale);
+}
+
+/* ******************* active Keyframe ************** */
+
+/* get 'active' keyframe for panel editing */
+static short get_active_fcurve_keyframe_edit(FCurve *fcu, BezTriple **bezt, BezTriple **prevbezt)
+{
+ BezTriple *b;
+ int i;
+
+ /* zero the pointers */
+ *bezt = *prevbezt = NULL;
+
+ /* sanity checks */
+ if ((fcu->bezt == NULL) || (fcu->totvert == 0))
+ return 0;
+
+ /* find first selected keyframe for now, and call it the active one
+ * - this is a reasonable assumption, given that whenever anyone
+ * wants to edit numerically, there is likely to only be 1 vert selected
*/
+ for (i=0, b=fcu->bezt; i < fcu->totvert; i++, b++) {
+ if (BEZSELECTED(b)) {
+ /* found
+ * - 'previous' is either the one before, of the keyframe itself (which is still fine)
+ * XXX: we can just make this null instead if needed
+ */
+ *prevbezt = (i > 0) ? b-1 : b;
+ *bezt = b;
+
+ return 1;
+ }
+ }
+
+ /* not found */
+ return 0;
+}
+
+static void graph_panel_key_properties(const bContext *C, Panel *pa)
+{
+ bAnimListElem *ale;
+ FCurve *fcu;
+ BezTriple *bezt, *prevbezt;
+
+ uiLayout *layout = pa->layout;
+ uiLayout *col;
+ uiBlock *block;
+ if (!graph_panel_context(C, &ale, &fcu))
+ return;
+
+ block = uiLayoutGetBlock(layout);
+ uiBlockSetHandleFunc(block, do_graph_region_buttons, NULL);
+
+ /* only show this info if there are keyframes to edit */
+ if (get_active_fcurve_keyframe_edit(fcu, &bezt, &prevbezt)) {
+ PointerRNA bezt_ptr;
+
+ /* RNA pointer to keyframe, to allow editing */
+ RNA_pointer_create(ale->id, &RNA_Keyframe, bezt, &bezt_ptr);
+
+ /* interpolation */
+ col= uiLayoutColumn(layout, 0);
+ uiItemR(col, &bezt_ptr, "interpolation", 0, NULL, 0);
+
+ /* numerical coordinate editing */
+ col= uiLayoutColumn(layout, 1);
+ /* keyframe itself */
+ uiItemR(col, &bezt_ptr, "co", 0, "Key", 0);
+
+ /* previous handle - only if previous was Bezier interpolation */
+ if ((prevbezt) && (prevbezt->ipo == BEZT_IPO_BEZ))
+ uiItemR(col, &bezt_ptr, "handle1", 0, NULL, 0);
+
+ /* next handle - only if current is Bezier interpolation */
+ if (bezt->ipo == BEZT_IPO_BEZ)
+ uiItemR(col, &bezt_ptr, "handle2", 0, NULL, 0);
+ }
+ else
+ uiItemL(layout, "No active keyframe on F-Curve", 0);
+
MEM_freeN(ale);
}
@@ -357,7 +426,7 @@ static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout,
PointerRNA tar_ptr;
RNA_pointer_create(dtar->id, &RNA_Pose, ob1->pose, &tar_ptr);
- uiItemPointerR(col, "", ICON_BONE_DATA, &dtar_ptr, "bone_target", &tar_ptr, "bones");
+ uiItemPointerR(col, &dtar_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA);
}
col= uiLayoutColumn(layout, 1);
@@ -367,7 +436,7 @@ static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout,
PointerRNA tar_ptr;
RNA_pointer_create(dtar2->id, &RNA_Pose, ob2->pose, &tar_ptr);
- uiItemPointerR(col, "", ICON_BONE_DATA, &dtar2_ptr, "bone_target", &tar_ptr, "bones");
+ uiItemPointerR(col, &dtar2_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA);
}
}
@@ -393,10 +462,10 @@ static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout,
PointerRNA tar_ptr;
RNA_pointer_create(dtar->id, &RNA_Pose, ob1->pose, &tar_ptr);
- uiItemPointerR(col, "", ICON_BONE_DATA, &dtar_ptr, "bone_target", &tar_ptr, "bones");
+ uiItemPointerR(col, &dtar_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA);
}
- uiItemR(col, NULL, 0, &dtar_ptr, "use_local_space_transforms", 0);
+ uiItemR(col, &dtar_ptr, "use_local_space_transforms", 0, NULL, 0);
col= uiLayoutColumn(layout, 1);
uiTemplateAnyID(col, (bContext *)C, &dtar2_ptr, "id", "id_type", "Ob/Bone 2:");
@@ -405,10 +474,10 @@ static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout,
PointerRNA tar_ptr;
RNA_pointer_create(dtar2->id, &RNA_Pose, ob2->pose, &tar_ptr);
- uiItemPointerR(col, "", ICON_BONE_DATA, &dtar2_ptr, "bone_target", &tar_ptr, "bones");
+ uiItemPointerR(col, &dtar2_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA);
}
- uiItemR(col, NULL, 0, &dtar2_ptr, "use_local_space_transforms", 0);
+ uiItemR(col, &dtar2_ptr, "use_local_space_transforms", 0, NULL, 0);
}
/* settings for 'transform channel' driver variable type */
@@ -430,12 +499,12 @@ static void graph_panel_driverVar__transChan(const bContext *C, uiLayout *layout
PointerRNA tar_ptr;
RNA_pointer_create(dtar->id, &RNA_Pose, ob->pose, &tar_ptr);
- uiItemPointerR(col, "", ICON_BONE_DATA, &dtar_ptr, "bone_target", &tar_ptr, "bones");
+ uiItemPointerR(col, &dtar_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA);
}
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, &dtar_ptr, "transform_type", 0);
- uiItemR(row, NULL, 0, &dtar_ptr, "use_local_space_transforms", 0);
+ uiItemR(row, &dtar_ptr, "transform_type", 0, "", 0);
+ uiItemR(row, &dtar_ptr, "use_local_space_transforms", 0, NULL, 0);
}
/* driver settings for active F-Curve (only for 'Drivers' mode) */
@@ -474,12 +543,12 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
col= uiLayoutColumn(pa->layout, 1);
block= uiLayoutGetBlock(col);
- uiItemR(col, NULL, 0, &driver_ptr, "type", 0);
+ uiItemR(col, &driver_ptr, "type", 0, NULL, 0);
/* show expression box if doing scripted drivers, and/or error messages when invalid drivers exist */
if (driver->type == DRIVER_TYPE_PYTHON) {
/* expression */
- uiItemR(col, "Expr", 0, &driver_ptr, "expression", 0);
+ uiItemR(col, &driver_ptr, "expression", 0, "Expr", 0);
/* errors? */
if (driver->flag & DRIVER_FLAG_INVALID)
@@ -493,7 +562,7 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
col= uiLayoutColumn(pa->layout, 1);
/* debug setting */
- uiItemR(col, NULL, 0, &driver_ptr, "show_debug_info", 0);
+ uiItemR(col, &driver_ptr, "show_debug_info", 0, NULL, 0);
/* value of driver */
if (driver->flag & DRIVER_FLAG_SHOWDEBUG) {
@@ -528,7 +597,7 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
row= uiLayoutRow(box, 0);
block= uiLayoutGetBlock(row);
/* variable name */
- uiItemR(row, "", 0, &dvar_ptr, "name", 0);
+ uiItemR(row, &dvar_ptr, "name", 0, "", 0);
/* remove button */
uiBlockSetEmboss(block, UI_EMBOSSN);
@@ -538,7 +607,7 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
/* variable type */
row= uiLayoutRow(box, 0);
- uiItemR(row, "", 0, &dvar_ptr, "type", 0);
+ uiItemR(row, &dvar_ptr, "type", 0, "", 0);
/* variable type settings */
box= uiLayoutBox(col);
@@ -610,8 +679,13 @@ static void graph_panel_modifiers(const bContext *C, Panel *pa)
row= uiLayoutRow(pa->layout, 0);
block= uiLayoutGetBlock(row);
- // XXX for now, this will be a operator button which calls a temporary 'add modifier' operator
+ // XXX for now, this will be a operator button which calls a 'add modifier' operator
uiDefButO(block, BUT, "GRAPH_OT_fmodifier_add", WM_OP_INVOKE_REGION_WIN, "Add Modifier", 10, 0, 150, 20, "Adds a new F-Curve Modifier for the active F-Curve");
+
+ /* copy/paste (as sub-row)*/
+ row= uiLayoutRow(row, 1);
+ uiItemO(row, "", ICON_COPYDOWN, "GRAPH_OT_fmodifier_copy");
+ uiItemO(row, "", ICON_PASTEDOWN, "GRAPH_OT_fmodifier_paste");
}
/* draw each modifier */
@@ -634,6 +708,7 @@ void graph_buttons_register(ARegionType *art)
strcpy(pt->idname, "GRAPH_PT_view");
strcpy(pt->label, "View Properties");
pt->draw= graph_panel_view;
+ pt->flag |= PNL_DEFAULT_CLOSED;
BLI_addtail(&art->paneltypes, pt);
pt= MEM_callocN(sizeof(PanelType), "spacetype graph panel properties");
@@ -642,6 +717,14 @@ void graph_buttons_register(ARegionType *art)
pt->draw= graph_panel_properties;
pt->poll= graph_panel_poll;
BLI_addtail(&art->paneltypes, pt);
+
+ pt= MEM_callocN(sizeof(PanelType), "spacetype graph panel properties");
+ strcpy(pt->idname, "GRAPH_PT_key_properties");
+ strcpy(pt->label, "Active Keyframe");
+ pt->draw= graph_panel_key_properties;
+ pt->poll= graph_panel_poll;
+ BLI_addtail(&art->paneltypes, pt);
+
pt= MEM_callocN(sizeof(PanelType), "spacetype graph panel drivers");
strcpy(pt->idname, "GRAPH_PT_drivers");
diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c
index 19288bae2a2..543bd8b9964 100644
--- a/source/blender/editors/space_graph/graph_draw.c
+++ b/source/blender/editors/space_graph/graph_draw.c
@@ -29,10 +29,6 @@
#include <string.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#ifndef _WIN32
#include <unistd.h>
#else
@@ -45,23 +41,10 @@
#include "BLI_math.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_meta_types.h"
#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_sequence_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view2d_types.h"
#include "DNA_windowmanager_types.h"
-#include "DNA_world_types.h"
#include "BKE_animsys.h"
#include "BKE_context.h"
@@ -78,12 +61,10 @@
#include "BIF_glutil.h"
#include "ED_anim_api.h"
-#include "ED_util.h"
#include "graph_intern.h"
#include "UI_interface.h"
-#include "UI_interface_icons.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -357,7 +338,6 @@ static int draw_fcurve_handles_check(SpaceIpo *sipo, FCurve *fcu)
* note: draw_fcurve_handles_check must be checked before running this. */
static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, FCurve *fcu)
{
- extern unsigned int nurbcol[];
int sel, b;
/* a single call to GL_LINES here around these calls should be sufficient to still
@@ -371,8 +351,9 @@ static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
*/
for (sel= 0; sel < 2; sel++) {
BezTriple *bezt=fcu->bezt, *prevbezt=NULL;
- unsigned int *col= (sel)? (nurbcol+4) : (nurbcol);
+ int basecol= (sel)? TH_HANDLE_SEL_FREE : TH_HANDLE_FREE;
float *fp;
+ char col[4];
/* if only selected keyframes have handles shown, skip the first round */
if ((sel == 0) && (sipo->flag & SIPO_SELVHANDLESONLY))
@@ -390,19 +371,24 @@ static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
/* draw handle with appropriate set of colors if selection is ok */
if ((bezt->f2 & SELECT)==sel) {
fp= bezt->vec[0];
-
+
/* only draw first handle if previous segment had handles */
if ( (!prevbezt && (bezt->ipo==BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo==BEZT_IPO_BEZ)) )
{
- cpackA(col[(unsigned char)bezt->h1], drawFCurveFade(fcu));
+ UI_GetThemeColor3ubv(basecol + bezt->h1, col);
+ col[3]= drawFCurveFade(fcu) * 255;
+ glColor4ubv((GLubyte *)col);
glVertex2fv(fp); glVertex2fv(fp+3);
}
-
+
/* only draw second handle if this segment is bezier */
if (bezt->ipo == BEZT_IPO_BEZ)
{
- cpackA(col[(unsigned char)bezt->h2], drawFCurveFade(fcu));
+ UI_GetThemeColor3ubv(basecol + bezt->h2, col);
+ col[3]= drawFCurveFade(fcu) * 255;
+ glColor4ubv((GLubyte *)col);
+
glVertex2fv(fp+3); glVertex2fv(fp+6);
}
}
@@ -412,8 +398,10 @@ static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
( (!prevbezt && (bezt->ipo==BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo==BEZT_IPO_BEZ)) ) )
{
fp= bezt->vec[0];
- cpackA(col[(unsigned char)bezt->h1], drawFCurveFade(fcu));
-
+ UI_GetThemeColor3ubv(basecol + bezt->h1, col);
+ col[3]= drawFCurveFade(fcu) * 255;
+ glColor4ubv((GLubyte *)col);
+
glVertex2fv(fp); glVertex2fv(fp+3);
}
@@ -422,8 +410,10 @@ static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
(bezt->ipo == BEZT_IPO_BEZ) )
{
fp= bezt->vec[1];
- cpackA(col[(unsigned char)bezt->h2], drawFCurveFade(fcu));
-
+ UI_GetThemeColor3ubv(basecol + bezt->h2, col);
+ col[3]= drawFCurveFade(fcu) * 255;
+ glColor4ubv((GLubyte *)col);
+
glVertex2fv(fp); glVertex2fv(fp+3);
}
}
@@ -512,7 +502,15 @@ static void draw_fcurve_curve (bAnimContext *ac, ID *id, FCurve *fcu, SpaceIpo *
float samplefreq, ctime;
float stime, etime;
float unitFac;
-
+ float dx, dy;
+
+ /* when opening a blend file on a different sized screen or while dragging the toolbar this can happen
+ * best just bail out in this case */
+ UI_view2d_grid_size(grid, &dx, &dy);
+ if(dx <= 0.0f)
+ return;
+
+
/* disable any drivers temporarily */
driver= fcu->driver;
fcu->driver= NULL;
@@ -529,19 +527,18 @@ static void draw_fcurve_curve (bAnimContext *ac, ID *id, FCurve *fcu, SpaceIpo *
* though it is impossible to predict this from the modifiers!
*
* If the automatically determined sampling frequency is likely to cause an infinite
- * loop (i.e. too close to FLT_EPSILON), fall back to default of 0.001
+ * loop (i.e. too close to 0), then clamp it to a determined "safe" value. The value
+ * chosen here is just the coarsest value which still looks reasonable...
*/
- /* grid->dx is the first float in View2DGrid struct, so just cast to float pointer, and use it
- * It represents the number of 'frames' between gridlines, but we divide by U.v2d_min_gridsize to get pixels-steps
- */
+ /* grid->dx represents the number of 'frames' between gridlines, but we divide by U.v2d_min_gridsize to get pixels-steps */
// TODO: perhaps we should have 1.0 frames as upper limit so that curves don't get too distorted?
- samplefreq= *((float *)grid) / U.v2d_min_gridsize;
- if (IS_EQ(samplefreq, 0)) samplefreq= 0.001f;
+ samplefreq= dx / U.v2d_min_gridsize;
+ if (samplefreq < 0.00001f) samplefreq= 0.00001f;
/* the start/end times are simply the horizontal extents of the 'cur' rect */
stime= v2d->cur.xmin;
- etime= v2d->cur.xmax;
+ etime= v2d->cur.xmax + samplefreq; /* + samplefreq here so that last item gets included... */
/* at each sampling interval, add a new vertex
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index 7a525b2732f..6249edc1090 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -32,10 +32,6 @@
#include <string.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "AUD_C-API.h"
#include "MEM_guardedalloc.h"
@@ -44,21 +40,8 @@
#include "BLI_math.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -80,10 +63,8 @@
#include "ED_anim_api.h"
#include "ED_keyframing.h"
-#include "ED_keyframes_draw.h"
#include "ED_keyframes_edit.h"
#include "ED_screen.h"
-#include "ED_space_api.h"
#include "ED_transform.h"
#include "WM_api.h"
@@ -105,7 +86,7 @@ void get_graph_keyframe_extents (bAnimContext *ac, float *xmin, float *xmax, flo
int filter;
/* get data to filter, from Dopesheet */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* set large values to try to override */
@@ -277,7 +258,7 @@ static void create_ghost_curves (bAnimContext *ac, int start, int end)
}
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and add keys between selected keyframes on every frame */
@@ -307,7 +288,7 @@ static void create_ghost_curves (bAnimContext *ac, int start, int end)
float cfrae= BKE_nla_tweakedit_remap(adt, cfra, NLATIME_CONVERT_UNMAP);
fpt->vec[0]= cfrae;
- fpt->vec[1]= fcurve_samplingcb_evalcurve(fcu, NULL, cfrae);
+ fpt->vec[1]= fcurve_samplingcb_evalcurve(fcu, NULL, cfrae) * unitFac;
}
/* set color of ghost curve
@@ -436,7 +417,7 @@ static void insert_graph_keys(bAnimContext *ac, short mode)
short flag = 0;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
if (mode == 2) filter |= ANIMFILTER_SEL;
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
@@ -475,8 +456,6 @@ static int graphkeys_insertkey_exec(bContext *C, wmOperator *op)
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
- if (ac.datatype == ANIMCONT_GPENCIL)
- return OPERATOR_CANCELLED;
/* which channels to affect? */
mode= RNA_enum_get(op->ptr, "type");
@@ -488,7 +467,7 @@ static int graphkeys_insertkey_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -552,7 +531,7 @@ static int graphkeys_click_insert_exec (bContext *C, wmOperator *op)
MEM_freeN(ale);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -618,7 +597,7 @@ static short copy_graph_keys (bAnimContext *ac)
free_anim_copybuf();
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* copy keyframes */
@@ -636,7 +615,7 @@ static short paste_graph_keys (bAnimContext *ac)
int filter, ok=0;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* paste keyframes */
@@ -703,7 +682,7 @@ static int graphkeys_paste_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -732,7 +711,7 @@ static void duplicate_graph_keys (bAnimContext *ac)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and delete selected keys */
@@ -761,7 +740,7 @@ static int graphkeys_duplicate_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -804,7 +783,7 @@ static void delete_graph_keys (bAnimContext *ac)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and delete selected keys */
@@ -841,7 +820,7 @@ static int graphkeys_delete_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -871,7 +850,7 @@ static void clean_graph_keys (bAnimContext *ac, float thresh)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and clean curves */
@@ -903,7 +882,7 @@ static int graphkeys_clean_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -938,7 +917,7 @@ static void bake_graph_curves (bAnimContext *ac, int start, int end)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and add keys between selected keyframes on every frame */
@@ -986,7 +965,7 @@ static int graphkeys_bake_exec(bContext *C, wmOperator *op)
/* set notifier that keyframes have changed */
// NOTE: some distinction between order/number of keyframes and type should be made?
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1058,7 +1037,7 @@ static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op)
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
- RNA_string_get(op->ptr, "path", path);
+ RNA_string_get(op->ptr, "filepath", path);
scene= ac.scene; /* current scene */
@@ -1085,7 +1064,7 @@ static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op)
end = CFRA + sbi.length - 1;
/* filter anim channels */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* loop through all selected F-Curves, replacing its data with the sound samples */
@@ -1106,7 +1085,7 @@ static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that 'keyframes' have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1138,7 +1117,7 @@ void GRAPH_OT_sound_bake (wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH);
RNA_def_float(ot->srna, "low", 0.0f, 0.0, 100000.0, "Lowest frequency", "", 0.1, 1000.00);
RNA_def_float(ot->srna, "high", 100000.0, 0.0, 100000.0, "Highest frequency", "", 0.1, 1000.00);
RNA_def_float(ot->srna, "attack", 0.005, 0.0, 2.0, "Attack time", "", 0.01, 0.1);
@@ -1163,7 +1142,7 @@ static void sample_graph_keys (bAnimContext *ac)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through filtered data and add keys between selected keyframes on every frame */
@@ -1191,7 +1170,7 @@ static int graphkeys_sample_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1232,7 +1211,7 @@ static void setexpo_graph_keys(bAnimContext *ac, short mode)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting mode per F-Curve */
@@ -1298,17 +1277,17 @@ static void setipo_graph_keys(bAnimContext *ac, short mode)
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
int filter;
- BeztEditFunc set_cb= ANIM_editkeyframes_ipo(mode);
+ KeyframeEditFunc set_cb= ANIM_editkeyframes_ipo(mode);
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting BezTriple interpolation
- * Note: we do not supply BeztEditData to the looper yet. Currently that's not necessary here...
+ * Note: we do not supply KeyframeEditData to the looper yet. Currently that's not necessary here...
*/
for (ale= anim_data.first; ale; ale= ale->next)
- ANIM_fcurve_keys_bezier_loop(NULL, ale->key_data, NULL, set_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(NULL, ale->key_data, NULL, set_cb, calchandles_fcurve);
/* cleanup */
BLI_freelistN(&anim_data);
@@ -1379,21 +1358,21 @@ static void sethandles_graph_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- BeztEditFunc edit_cb= ANIM_editkeyframes_handles(mode);
- BeztEditFunc sel_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
+ KeyframeEditFunc edit_cb= ANIM_editkeyframes_handles(mode);
+ KeyframeEditFunc sel_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting flags for handles
- * Note: we do not supply BeztEditData to the looper yet. Currently that's not necessary here...
+ * Note: we do not supply KeyframeEditData to the looper yet. Currently that's not necessary here...
*/
for (ale= anim_data.first; ale; ale= ale->next) {
FCurve *fcu= (FCurve *)ale->key_data;
/* any selected keyframes for editing? */
- if (ANIM_fcurve_keys_bezier_loop(NULL, fcu, NULL, sel_cb, NULL)) {
+ if (ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, sel_cb, NULL)) {
/* for auto/auto-clamped, toggle the auto-handles flag on the F-Curve */
if (mode == HD_AUTO_ANIM)
fcu->flag |= FCURVE_AUTO_HANDLES;
@@ -1401,7 +1380,7 @@ static void sethandles_graph_keys(bAnimContext *ac, short mode)
fcu->flag &= ~FCURVE_AUTO_HANDLES;
/* change type of selected handles */
- ANIM_fcurve_keys_bezier_loop(NULL, fcu, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, edit_cb, calchandles_fcurve);
}
}
@@ -1494,7 +1473,7 @@ static int graphkeys_euler_filter_exec (bContext *C, wmOperator *op)
*/
/* step 1: extract only the rotation f-curves */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_FOREDIT);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_FOREDIT | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1563,17 +1542,17 @@ static int graphkeys_framejump_exec(bContext *C, wmOperator *op)
ListBase anim_data= {NULL, NULL};
bAnimListElem *ale;
int filter;
- BeztEditData bed;
+ KeyframeEditData ked;
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
/* init edit data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* loop over action data, averaging values */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1584,11 +1563,11 @@ static int graphkeys_framejump_exec(bContext *C, wmOperator *op)
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, bezt_calc_average, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, bezt_calc_average, NULL);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, bezt_calc_average, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, bezt_calc_average, NULL);
/* unapply unit corrections */
ANIM_unit_mapping_apply_fcurve(ac.scene, ale->id, ale->key_data, ANIM_UNITCONV_RESTORE|ANIM_UNITCONV_ONLYKEYS);
@@ -1597,13 +1576,14 @@ static int graphkeys_framejump_exec(bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set the new current frame and cursor values, based on the average time and value */
- if (bed.i1) {
+ if (ked.i1) {
SpaceIpo *sipo= ac.sa->spacedata.first;
Scene *scene= ac.scene;
/* take the average values, rounding to the nearest int for the current frame */
- CFRA= (int)floor((bed.f1 / bed.i1) + 0.5f);
- sipo->cursorVal= bed.f2 / (float)bed.i1;
+ CFRA= (int)floor((ked.f1 / ked.i1) + 0.5f);
+ SUBFRA= 0.f;
+ sipo->cursorVal= ked.f2 / (float)ked.i1;
}
/* set notifier that things have changed */
@@ -1647,25 +1627,25 @@ static void snap_graph_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- BeztEditData bed;
- BeztEditFunc edit_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc edit_cb;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* get beztriple editing callbacks */
edit_cb= ANIM_editkeyframes_snap(mode);
- memset(&bed, 0, sizeof(BeztEditData));
- bed.scene= ac->scene;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.scene= ac->scene;
if (mode == GRAPHKEYS_SNAP_NEAREST_MARKER) {
- bed.list.first= (ac->markers) ? ac->markers->first : NULL;
- bed.list.last= (ac->markers) ? ac->markers->last : NULL;
+ ked.list.first= (ac->markers) ? ac->markers->first : NULL;
+ ked.list.last= (ac->markers) ? ac->markers->last : NULL;
}
else if (mode == GRAPHKEYS_SNAP_VALUE) {
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
- bed.f1= (sipo) ? sipo->cursorVal : 0.0f;
+ ked.f1= (sipo) ? sipo->cursorVal : 0.0f;
}
/* snap keyframes */
@@ -1677,11 +1657,11 @@ static void snap_graph_keys(bAnimContext *ac, short mode)
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, edit_cb, calchandles_fcurve);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, edit_cb, calchandles_fcurve);
/* apply unit corrections */
ANIM_unit_mapping_apply_fcurve(ac->scene, ale->id, ale->key_data, ANIM_UNITCONV_RESTORE);
@@ -1711,7 +1691,7 @@ static int graphkeys_snap_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1754,14 +1734,14 @@ static void mirror_graph_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- BeztEditData bed;
- BeztEditFunc edit_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc edit_cb;
/* get beztriple editing callbacks */
edit_cb= ANIM_editkeyframes_mirror(mode);
- memset(&bed, 0, sizeof(BeztEditData));
- bed.scene= ac->scene;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.scene= ac->scene;
/* for 'first selected marker' mode, need to find first selected marker first! */
// XXX should this be made into a helper func in the API?
@@ -1779,17 +1759,17 @@ static void mirror_graph_keys(bAnimContext *ac, short mode)
/* store marker's time (if available) */
if (marker)
- bed.f1= (float)marker->frame;
+ ked.f1= (float)marker->frame;
else
return;
}
else if (mode == GRAPHKEYS_MIRROR_VALUE) {
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
- bed.f1= (sipo) ? sipo->cursorVal : 0.0f;
+ ked.f1= (sipo) ? sipo->cursorVal : 0.0f;
}
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* mirror keyframes */
@@ -1801,11 +1781,11 @@ static void mirror_graph_keys(bAnimContext *ac, short mode)
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, edit_cb, calchandles_fcurve);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, edit_cb, calchandles_fcurve);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, edit_cb, calchandles_fcurve);
/* unapply unit corrections */
ANIM_unit_mapping_apply_fcurve(ac->scene, ale->id, ale->key_data, ANIM_UNITCONV_ONLYKEYS|ANIM_UNITCONV_RESTORE);
@@ -1835,7 +1815,7 @@ static int graphkeys_mirror_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1873,7 +1853,7 @@ static int graphkeys_smooth_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE| ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* smooth keyframes */
@@ -1890,7 +1870,7 @@ static int graphkeys_smooth_exec(bContext *C, wmOperator *op)
ANIM_editkeyframes_refresh(&ac);
/* set notifier that keyframes have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -1935,7 +1915,7 @@ static int graph_fmodifier_add_invoke (bContext *C, wmOperator *op, wmEvent *eve
continue;
/* create operator menu item with relevant properties filled in */
- props_ptr= uiItemFullO(layout, fmi->name, 0, "GRAPH_OT_fmodifier_add", NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS);
+ props_ptr= uiItemFullO(layout, "GRAPH_OT_fmodifier_add", fmi->name, 0, NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS);
/* the only thing that gets set from the menu is the type of F-Modifier to add */
RNA_enum_set(&props_ptr, "type", i);
/* the following properties are just repeats of existing ones... */
@@ -1964,14 +1944,14 @@ static int graph_fmodifier_add_exec(bContext *C, wmOperator *op)
type= RNA_enum_get(op->ptr, "type");
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
if (RNA_boolean_get(op->ptr, "only_active"))
filter |= ANIMFILTER_ACTIVE;
else
filter |= (ANIMFILTER_SEL|ANIMFILTER_CURVEVISIBLE);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
- /* smooth keyframes */
+ /* add f-modifier to each curve */
for (ale= anim_data.first; ale; ale= ale->next) {
FCurve *fcu= (FCurve *)ale->data;
FModifier *fcm;
@@ -2017,4 +1997,119 @@ void GRAPH_OT_fmodifier_add (wmOperatorType *ot)
RNA_def_boolean(ot->srna, "only_active", 1, "Only Active", "Only add F-Modifier to active F-Curve.");
}
+/* ******************** Copy F-Modifiers Operator *********************** */
+
+static int graph_fmodifier_copy_exec(bContext *C, wmOperator *op)
+{
+ bAnimContext ac;
+ bAnimListElem *ale;
+ short ok = 0;
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* clear buffer first */
+ free_fmodifiers_copybuf();
+
+ /* get the active F-Curve */
+ ale= get_active_fcurve_channel(&ac);
+
+ /* if this exists, call the copy F-Modifiers API function */
+ if (ale && ale->data) {
+ FCurve *fcu= (FCurve *)ale->data;
+
+ // TODO: when 'active' vs 'all' boolean is added, change last param!
+ ok= ANIM_fmodifiers_copy_to_buf(&fcu->modifiers, 0);
+
+ /* free temp data now */
+ MEM_freeN(ale);
+ }
+
+ /* successful or not? */
+ if (ok == 0) {
+ BKE_report(op->reports, RPT_ERROR, "No F-Modifiers available to be copied");
+ return OPERATOR_CANCELLED;
+ }
+ else
+ return OPERATOR_FINISHED;
+}
+
+void GRAPH_OT_fmodifier_copy (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Copy F-Modifiers";
+ ot->idname= "GRAPH_OT_fmodifier_copy";
+ ot->description= "Copy the F-Modifier(s) of the active F-Curve.";
+
+ /* api callbacks */
+ ot->exec= graph_fmodifier_copy_exec;
+ ot->poll= graphop_active_fcurve_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* id-props */
+ //ot->prop = RNA_def_boolean(ot->srna, "all", 1, "All F-Modifiers", "Copy all the F-Modifiers, instead of just the active one");
+}
+
+/* ******************** Paste F-Modifiers Operator *********************** */
+
+static int graph_fmodifier_paste_exec(bContext *C, wmOperator *op)
+{
+ bAnimContext ac;
+ ListBase anim_data = {NULL, NULL};
+ bAnimListElem *ale;
+ int filter, ok=0;
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* filter data */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ /* paste modifiers */
+ for (ale = anim_data.first; ale; ale = ale->next) {
+ FCurve *fcu= (FCurve *)ale->data;
+
+ // TODO: do we want to replace existing modifiers? add user pref for that!
+ ok += ANIM_fmodifiers_paste_from_buf(&fcu->modifiers, 0);
+ }
+
+ /* clean up */
+ BLI_freelistN(&anim_data);
+
+ /* successful or not? */
+ if (ok) {
+ /* validate keyframes after editing */
+ ANIM_editkeyframes_refresh(&ac);
+
+ /* set notifier that keyframes have changed */
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
+
+ return OPERATOR_FINISHED;
+ }
+ else {
+ BKE_report(op->reports, RPT_ERROR, "No F-Modifiers to paste");
+ return OPERATOR_CANCELLED;
+ }
+}
+
+void GRAPH_OT_fmodifier_paste (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Paste F-Modifiers";
+ ot->idname= "GRAPH_OT_fmodifier_paste";
+ ot->description= "Add copied F-Modifiers to the selected F-Curves";
+
+ /* api callbacks */
+ ot->exec= graph_fmodifier_paste_exec;
+ ot->poll= graphop_editable_keyframes_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
/* ************************************************************************** */
diff --git a/source/blender/editors/space_graph/graph_intern.h b/source/blender/editors/space_graph/graph_intern.h
index 696d31e22e1..a637ed15fcd 100644
--- a/source/blender/editors/space_graph/graph_intern.h
+++ b/source/blender/editors/space_graph/graph_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -63,6 +63,7 @@ void graph_header_buttons(const bContext *C, struct ARegion *ar);
void GRAPH_OT_select_all_toggle(struct wmOperatorType *ot);
void GRAPH_OT_select_border(struct wmOperatorType *ot);
void GRAPH_OT_select_column(struct wmOperatorType *ot);
+void GRAPH_OT_select_linked(struct wmOperatorType *ot);
void GRAPH_OT_select_more(struct wmOperatorType *ot);
void GRAPH_OT_select_less(struct wmOperatorType *ot);
void GRAPH_OT_clickselect(struct wmOperatorType *ot);
@@ -139,6 +140,8 @@ enum {
/* ----------- */
void GRAPH_OT_fmodifier_add(struct wmOperatorType *ot);
+void GRAPH_OT_fmodifier_copy(struct wmOperatorType *ot);
+void GRAPH_OT_fmodifier_paste(struct wmOperatorType *ot);
/* ----------- */
@@ -147,6 +150,7 @@ void GRAPH_OT_ghost_curves_clear(struct wmOperatorType *ot);
/* ***************************************** */
/* graph_buttons.c */
+
void GRAPH_OT_properties(struct wmOperatorType *ot);
void graph_buttons_register(struct ARegionType *art);
diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c
index 7c1ac14027a..fa9acb282c7 100644
--- a/source/blender/editors/space_graph/graph_ops.c
+++ b/source/blender/editors/space_graph/graph_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,12 +31,7 @@
#include "MEM_guardedalloc.h"
-#include "DNA_listBase.h"
-#include "DNA_action_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_blenlib.h"
@@ -44,7 +39,6 @@
#include "BKE_sound.h"
#include "BKE_utildefines.h"
-#include "UI_interface.h"
#include "UI_view2d.h"
#include "ED_screen.h"
@@ -77,6 +71,7 @@ static void graphview_cursor_apply(bContext *C, wmOperator *op)
* NOTE: sync this part of the code with ANIM_OT_change_frame
*/
CFRA= RNA_int_get(op->ptr, "frame");
+ SUBFRA=0.f;
sound_seek_scene(C);
/* set the cursor value */
@@ -237,6 +232,7 @@ void graphedit_operatortypes(void)
WM_operatortype_append(GRAPH_OT_select_all_toggle);
WM_operatortype_append(GRAPH_OT_select_border);
WM_operatortype_append(GRAPH_OT_select_column);
+ WM_operatortype_append(GRAPH_OT_select_linked);
WM_operatortype_append(GRAPH_OT_select_more);
WM_operatortype_append(GRAPH_OT_select_less);
@@ -262,8 +258,9 @@ void graphedit_operatortypes(void)
WM_operatortype_append(GRAPH_OT_click_insert);
/* F-Curve Modifiers */
- // XXX temporary?
WM_operatortype_append(GRAPH_OT_fmodifier_add);
+ WM_operatortype_append(GRAPH_OT_fmodifier_copy);
+ WM_operatortype_append(GRAPH_OT_fmodifier_paste);
}
/* ************************** registration - keymaps **********************************/
@@ -303,9 +300,16 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
RNA_boolean_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_all_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "invert", 1);
/* borderselect */
- WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, KM_ALT, 0)->ptr, "axis_range", 1);
-
+ kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, 0, 0);
+ kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, KM_ALT, 0);
+ RNA_boolean_set(kmi->ptr, "axis_range", 1);
+
+ kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, KM_CTRL, 0);
+ RNA_boolean_set(kmi->ptr, "include_handles", 1);
+ kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
+ RNA_boolean_set(kmi->ptr, "axis_range", 1);
+ RNA_boolean_set(kmi->ptr, "include_handles", 1);
+
/* column select */
RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, 0, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_KEYS);
RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_CFRA);
@@ -316,6 +320,9 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
WM_keymap_add_item(keymap, "GRAPH_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "GRAPH_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
+ /* select linked */
+ WM_keymap_add_item(keymap, "GRAPH_OT_select_linked", LKEY, KM_PRESS, 0, 0);
+
/* graph_edit.c */
/* snap - current frame to selected keys */
@@ -340,6 +347,7 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
WM_keymap_add_item(keymap, "GRAPH_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "GRAPH_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "GRAPH_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "GRAPH_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
diff --git a/source/blender/editors/space_graph/graph_select.c b/source/blender/editors/space_graph/graph_select.c
index 5a0e061e994..6a9d8801e28 100644
--- a/source/blender/editors/space_graph/graph_select.c
+++ b/source/blender/editors/space_graph/graph_select.c
@@ -29,31 +29,16 @@
#include <string.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -71,12 +56,8 @@
#include "UI_view2d.h"
#include "ED_anim_api.h"
-#include "ED_keyframing.h"
-#include "ED_keyframes_draw.h"
#include "ED_keyframes_edit.h"
#include "ED_markers.h"
-#include "ED_screen.h"
-#include "ED_space_api.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -110,23 +91,23 @@ static void deselect_graph_keys (bAnimContext *ac, short test, short sel)
int filter;
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
- BeztEditData bed;
- BeztEditFunc test_cb, sel_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc test_cb, sel_cb;
/* determine type-based settings */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
/* filter data */
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* init BezTriple looping data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
test_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
/* See if we should be selecting or deselecting */
if (test) {
for (ale= anim_data.first; ale; ale= ale->next) {
- if (ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, test_cb, NULL)) {
+ if (ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, test_cb, NULL)) {
sel= SELECT_SUBTRACT;
break;
}
@@ -141,7 +122,7 @@ static void deselect_graph_keys (bAnimContext *ac, short test, short sel)
FCurve *fcu= (FCurve *)ale->key_data;
/* Keyframes First */
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, sel_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, sel_cb, NULL);
/* only change selection of channel when the visibility of keyframes doesn't depend on this */
if ((sipo->flag & SIPO_SELCUVERTSONLY) == 0) {
@@ -179,7 +160,7 @@ static int graphkeys_deselectall_exec(bContext *C, wmOperator *op)
deselect_graph_keys(&ac, 1, SELECT_ADD);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -211,18 +192,19 @@ void GRAPH_OT_select_all_toggle (wmOperatorType *ot)
*/
/* Borderselect only selects keyframes now, as overshooting handles often get caught too,
- * which means that they may be inadvertantly moved as well.
- * Also, for convenience, handles should get same status as keyframe (if it was within bounds)
+ * which means that they may be inadvertantly moved as well. However, incl_handles overrides
+ * this, and allow handles to be considered independently too.
+ * Also, for convenience, handles should get same status as keyframe (if it was within bounds).
*/
-static void borderselect_graphkeys (bAnimContext *ac, rcti rect, short mode, short selectmode)
+static void borderselect_graphkeys (bAnimContext *ac, rcti rect, short mode, short selectmode, short incl_handles)
{
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
int filter;
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
- BeztEditData bed;
- BeztEditFunc ok_cb, select_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc ok_cb, select_cb;
View2D *v2d= &ac->ar->v2d;
rctf rectf;
@@ -231,7 +213,7 @@ static void borderselect_graphkeys (bAnimContext *ac, rcti rect, short mode, sho
UI_view2d_region_to_view(v2d, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_CURVEVISIBLE);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* get beztriple editing/validation funcs */
@@ -239,8 +221,12 @@ static void borderselect_graphkeys (bAnimContext *ac, rcti rect, short mode, sho
ok_cb= ANIM_editkeyframes_ok(mode);
/* init editing data */
- memset(&bed, 0, sizeof(BeztEditData));
- bed.data= &rectf;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.data= &rectf;
+
+ /* treat handles separately? */
+ if (incl_handles)
+ ked.iterflags |= KEYFRAME_ITER_INCL_HANDLES;
/* loop over data, doing border select */
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -258,21 +244,21 @@ static void borderselect_graphkeys (bAnimContext *ac, rcti rect, short mode, sho
/* set horizontal range (if applicable)
* NOTE: these values are only used for x-range and y-range but not region
- * (which uses bed.data, i.e. rectf)
+ * (which uses ked.data, i.e. rectf)
*/
if (mode != BEZT_OK_VALUERANGE) {
- bed.f1= rectf.xmin;
- bed.f2= rectf.xmax;
+ ked.f1= rectf.xmin;
+ ked.f2= rectf.xmax;
}
else {
- bed.f1= rectf.ymin;
- bed.f2= rectf.ymax;
+ ked.f1= rectf.ymin;
+ ked.f2= rectf.ymax;
}
/* firstly, check if any keyframes will be hit by this */
- if (ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, ok_cb, NULL)) {
+ if (ANIM_fcurve_keyframes_loop(&ked, fcu, NULL, ok_cb, NULL)) {
/* select keyframes that are in the appropriate places */
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, fcu, ok_cb, select_cb, NULL);
/* only change selection of channel when the visibility of keyframes doesn't depend on this */
if ((sipo->flag & SIPO_SELCUVERTSONLY) == 0) {
@@ -301,16 +287,23 @@ static int graphkeys_borderselect_exec(bContext *C, wmOperator *op)
bAnimContext ac;
rcti rect;
short mode=0, selectmode=0;
+ short incl_handles;
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
-
+
+ /* get select mode
+ * - 'gesture_mode' from the operator specifies how to select
+ * - 'include_handles' from the operator specifies whether to include handles in the selection
+ */
if (RNA_int_get(op->ptr, "gesture_mode")==GESTURE_MODAL_SELECT)
selectmode= SELECT_ADD;
else
selectmode= SELECT_SUBTRACT;
-
+
+ incl_handles = RNA_boolean_get(op->ptr, "include_handles");
+
/* get settings from operator */
rect.xmin= RNA_int_get(op->ptr, "xmin");
rect.ymin= RNA_int_get(op->ptr, "ymin");
@@ -333,10 +326,10 @@ static int graphkeys_borderselect_exec(bContext *C, wmOperator *op)
mode= BEZT_OK_REGION;
/* apply borderselect action */
- borderselect_graphkeys(&ac, rect, mode, selectmode);
+ borderselect_graphkeys(&ac, rect, mode, selectmode, incl_handles);
/* send notifier that keyframe selection has changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -362,6 +355,7 @@ void GRAPH_OT_select_border(wmOperatorType *ot)
WM_operator_properties_gesture_border(ot, FALSE);
ot->prop= RNA_def_boolean(ot->srna, "axis_range", 0, "Axis Range", "");
+ RNA_def_boolean(ot->srna, "include_handles", 0, "Include Handles", "Are handles tested individually against the selection criteria");
}
/* ******************** Column Select Operator **************************** */
@@ -390,8 +384,8 @@ static void markers_selectkeys_between (bAnimContext *ac)
bAnimListElem *ale;
int filter;
- BeztEditFunc ok_cb, select_cb;
- BeztEditData bed;
+ KeyframeEditFunc ok_cb, select_cb;
+ KeyframeEditData ked;
float min, max;
/* get extreme markers */
@@ -403,12 +397,12 @@ static void markers_selectkeys_between (bAnimContext *ac)
ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
select_cb= ANIM_editkeyframes_select(SELECT_ADD);
- memset(&bed, 0, sizeof(BeztEditData));
- bed.f1= min;
- bed.f2= max;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.f1= min;
+ ked.f2= max;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* select keys in-between */
@@ -417,11 +411,11 @@ static void markers_selectkeys_between (bAnimContext *ac)
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
else {
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
}
@@ -439,20 +433,20 @@ static void columnselect_graph_keys (bAnimContext *ac, short mode)
Scene *scene= ac->scene;
CfraElem *ce;
- BeztEditFunc select_cb, ok_cb;
- BeztEditData bed;
+ KeyframeEditFunc select_cb, ok_cb;
+ KeyframeEditData ked;
/* initialise keyframe editing data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* build list of columns */
switch (mode) {
case GRAPHKEYS_COLUMNSEL_KEYS: /* list of selected keys */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
for (ale= anim_data.first; ale; ale= ale->next)
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, bezt_to_cfraelem, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, bezt_to_cfraelem, NULL);
BLI_freelistN(&anim_data);
break;
@@ -460,13 +454,13 @@ static void columnselect_graph_keys (bAnimContext *ac, short mode)
case GRAPHKEYS_COLUMNSEL_CFRA: /* current frame */
/* make a single CfraElem for storing this */
ce= MEM_callocN(sizeof(CfraElem), "cfraElem");
- BLI_addtail(&bed.list, ce);
+ BLI_addtail(&ked.list, ce);
ce->cfra= (float)CFRA;
break;
case GRAPHKEYS_COLUMNSEL_MARKERS_COLUMN: /* list of selected markers */
- ED_markers_make_cfra_list(ac->markers, &bed.list, 1);
+ ED_markers_make_cfra_list(ac->markers, &ked.list, 1);
break;
default: /* invalid option */
@@ -480,29 +474,29 @@ static void columnselect_graph_keys (bAnimContext *ac, short mode)
/* loop through all of the keys and select additional keyframes
* based on the keys found to be selected above
*/
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
AnimData *adt= ANIM_nla_mapping_get(ac, ale);
- /* loop over cfraelems (stored in the BeztEditData->list)
+ /* loop over cfraelems (stored in the KeyframeEditData->list)
* - we need to do this here, as we can apply fewer NLA-mapping conversions
*/
- for (ce= bed.list.first; ce; ce= ce->next) {
+ for (ce= ked.list.first; ce; ce= ce->next) {
/* set frame for validation callback to refer to */
if (ale)
- bed.f1= BKE_nla_tweakedit_remap(adt, ce->cfra, NLATIME_CONVERT_UNMAP);
+ ked.f1= BKE_nla_tweakedit_remap(adt, ce->cfra, NLATIME_CONVERT_UNMAP);
else
- bed.f1= ce->cfra;
+ ked.f1= ce->cfra;
/* select elements with frame number matching cfraelem */
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
}
/* free elements */
- BLI_freelistN(&bed.list);
+ BLI_freelistN(&ked.list);
BLI_freelistN(&anim_data);
}
@@ -526,7 +520,7 @@ static int graphkeys_columnselect_exec(bContext *C, wmOperator *op)
columnselect_graph_keys(&ac, mode);
/* set notifier that keyframe selection has changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -549,6 +543,61 @@ void GRAPH_OT_select_column (wmOperatorType *ot)
ot->prop= RNA_def_enum(ot->srna, "mode", prop_column_select_types, 0, "Mode", "");
}
+/* ******************** Select Linked Operator *********************** */
+
+static int graphkeys_select_linked_exec (bContext *C, wmOperator *op)
+{
+ bAnimContext ac;
+
+ ListBase anim_data= {NULL, NULL};
+ bAnimListElem *ale;
+ int filter;
+
+ KeyframeEditFunc ok_cb = ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
+ KeyframeEditFunc sel_cb = ANIM_editkeyframes_select(SELECT_ADD);
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* loop through all of the keys and select additional keyframes based on these */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ for (ale= anim_data.first; ale; ale= ale->next) {
+ FCurve *fcu= (FCurve *)ale->key_data;
+
+ /* check if anything selected? */
+ if (ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, ok_cb, NULL)) {
+ /* select every keyframe in this curve then */
+ ANIM_fcurve_keyframes_loop(NULL, fcu, NULL, sel_cb, NULL);
+ }
+ }
+
+ /* Cleanup */
+ BLI_freelistN(&anim_data);
+
+ /* set notifier that keyframe selection has changed */
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void GRAPH_OT_select_linked (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Select Linked";
+ ot->idname= "GRAPH_OT_select_linked";
+ ot->description = "Select keyframes occurring the same F-Curves as selected ones";
+
+ /* api callbacks */
+ ot->exec= graphkeys_select_linked_exec;
+ ot->poll= graphop_visible_keyframes_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER/*|OPTYPE_UNDO*/;
+}
+
/* ******************** Select More/Less Operators *********************** */
/* Common code to perform selection */
@@ -558,16 +607,16 @@ static void select_moreless_graph_keys (bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- BeztEditData bed;
- BeztEditFunc build_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc build_cb;
/* init selmap building data */
build_cb= ANIM_editkeyframes_buildselmap(mode);
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* loop through all of the keys and select additional keyframes based on these */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -578,15 +627,15 @@ static void select_moreless_graph_keys (bAnimContext *ac, short mode)
continue;
/* build up map of whether F-Curve's keyframes should be selected or not */
- bed.data= MEM_callocN(fcu->totvert, "selmap graphEdit");
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, build_cb, NULL);
+ ked.data= MEM_callocN(fcu->totvert, "selmap graphEdit");
+ ANIM_fcurve_keyframes_loop(&ked, fcu, NULL, build_cb, NULL);
/* based on this map, adjust the selection status of the keyframes */
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, bezt_selmap_flush, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, fcu, NULL, bezt_selmap_flush, NULL);
/* free the selmap used here */
- MEM_freeN(bed.data);
- bed.data= NULL;
+ MEM_freeN(ked.data);
+ ked.data= NULL;
}
/* Cleanup */
@@ -607,7 +656,7 @@ static int graphkeys_select_more_exec (bContext *C, wmOperator *op)
select_moreless_graph_keys(&ac, SELMAP_MORE);
/* set notifier that keyframe selection has changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -641,7 +690,7 @@ static int graphkeys_select_less_exec (bContext *C, wmOperator *op)
select_moreless_graph_keys(&ac, SELMAP_LESS);
/* set notifier that keyframe selection has changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -682,11 +731,32 @@ static EnumPropertyItem prop_graphkeys_leftright_select_types[] = {
/* ------------------- */
-enum {
- NEAREST_HANDLE_LEFT = 0,
+/* temp info for caching handle vertices close */
+typedef struct tNearestVertInfo {
+ struct tNearestVertInfo *next, *prev;
+
+ FCurve *fcu; /* F-Curve that keyframe comes from */
+
+ BezTriple *bezt; /* keyframe to consider */
+ FPoint *fpt; /* sample point to consider */
+
+ short hpoint; /* the handle index that we hit (eHandleIndex) */
+ short sel; /* whether the handle is selected or not */
+ int dist; /* distance from mouse to vert */
+} tNearestVertInfo;
+
+/* Tags for the type of graph vert that we have */
+typedef enum eGraphVertIndex {
+ NEAREST_HANDLE_LEFT = -1,
NEAREST_HANDLE_KEY,
NEAREST_HANDLE_RIGHT
-} eHandleIndex;
+} eGraphVertIndex;
+
+/* Tolerance for absolute radius (in pixels) of the vert from the cursor to use */
+// TODO: perhaps this should depend a bit on the size that the user set the vertices to be?
+#define GVERTSEL_TOL 10
+
+/* ....... */
/* check if its ok to select a handle */
// XXX also need to check for int-values only?
@@ -697,11 +767,61 @@ static int fcurve_handle_sel_check(SpaceIpo *sipo, BezTriple *bezt)
return 1;
}
-/* Find the vertex (either handle (0/2) or the keyframe (1)) that is nearest to the mouse cursor (in area coordinates)
- * Selected verts get a disadvantage, to make it easier to select handles behind.
- * Returns eHandleIndex
- */
-static short findnearest_fcurve_vert (bAnimContext *ac, int mval[2], FCurve **fcurve, BezTriple **bezt)
+/* check if the given vertex is within bounds or not */
+// TODO: should we return if we hit something?
+static void nearest_fcurve_vert_store (ListBase *matches, View2D *v2d, FCurve *fcu, BezTriple *bezt, FPoint *fpt, short hpoint, int mval[2])
+{
+ /* Keyframes or Samples? */
+ if (bezt) {
+ int screen_co[2], dist;
+
+ /* convert from data-space to screen coordinates
+ * NOTE: hpoint+1 gives us 0,1,2 respectively for each handle,
+ * needed to access the relevant vertex coordinates in the 3x3
+ * 'vec' matrix
+ */
+ UI_view2d_view_to_region(v2d, bezt->vec[hpoint+1][0], bezt->vec[hpoint+1][1], &screen_co[0], &screen_co[1]);
+
+ /* check if distance from mouse cursor to vert in screen space is within tolerance */
+ // XXX: inlined distance calculation, since we cannot do this on ints using the math lib...
+ //dist = len_v2v2(mval, screen_co);
+ dist = sqrt((mval[0] - screen_co[0])*(mval[0] - screen_co[0]) +
+ (mval[1] - screen_co[1])*(mval[1] - screen_co[1]));
+
+ if (dist <= GVERTSEL_TOL) {
+ tNearestVertInfo *nvi = (tNearestVertInfo *)matches->last;
+ short replace = 0;
+
+ /* if there is already a point for the F-Curve, check if this point is closer than that was */
+ if ((nvi) && (nvi->fcu == fcu)) {
+ /* replace if we are closer, or if equal and that one wasn't selected but we are... */
+ if ( (nvi->dist > dist) || ((nvi->sel == 0) && BEZSELECTED(bezt)) )
+ replace= 1;
+ }
+ /* add new if not replacing... */
+ if (replace == 0)
+ nvi = MEM_callocN(sizeof(tNearestVertInfo), "Nearest Graph Vert Info - Bezt");
+
+ /* store values */
+ nvi->fcu = fcu;
+ nvi->bezt = bezt;
+ nvi->hpoint = hpoint;
+ nvi->dist = dist;
+
+ nvi->sel= BEZSELECTED(bezt); // XXX... should this use the individual verts instead?
+
+ /* add to list of matches if appropriate... */
+ if (replace == 0)
+ BLI_addtail(matches, nvi);
+ }
+ }
+ else if (fpt) {
+ // TODO...
+ }
+}
+
+/* helper for find_nearest_fcurve_vert() - build the list of nearest matches */
+static void get_nearest_fcurve_verts_list (bAnimContext *ac, int mval[2], ListBase *matches)
{
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
@@ -709,18 +829,12 @@ static short findnearest_fcurve_vert (bAnimContext *ac, int mval[2], FCurve **fc
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
View2D *v2d= &ac->ar->v2d;
- int hpoint=0, sco[3][2];
- int dist= 100, temp, i;
-
- /* clear pointers first */
- *fcurve= 0;
- *bezt= 0;
/* get curves to search through
* - if the option to only show keyframes that belong to selected F-Curves is enabled,
* include the 'only selected' flag...
*/
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
if (sipo->flag & SIPO_SELCUVERTSONLY) // FIXME: this should really be check for by the filtering code...
filter |= ANIMFILTER_SEL;
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
@@ -732,97 +846,128 @@ static short findnearest_fcurve_vert (bAnimContext *ac, int mval[2], FCurve **fc
/* apply unit corrections */
ANIM_unit_mapping_apply_fcurve(ac->scene, ale->id, ale->key_data, 0);
- /* try to progressively get closer to the right point... */
+ /* apply NLA mapping to all the keyframes */
+ if (adt)
+ ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
+
if (fcu->bezt) {
BezTriple *bezt1=fcu->bezt, *prevbezt=NULL;
-
- /* apply NLA mapping to all the keyframes */
- if (adt)
- ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
+ int i;
for (i=0; i < fcu->totvert; i++, prevbezt=bezt1, bezt1++) {
- /* convert beztriple points to screen-space */
- UI_view2d_to_region_no_clip(v2d, bezt1->vec[0][0], bezt1->vec[0][1], &sco[0][0], &sco[0][1]);
- UI_view2d_to_region_no_clip(v2d, bezt1->vec[1][0], bezt1->vec[1][1], &sco[1][0], &sco[1][1]);
- UI_view2d_to_region_no_clip(v2d, bezt1->vec[2][0], bezt1->vec[2][1], &sco[2][0], &sco[2][1]);
-
- /* keyframe - do select? */
- temp= abs(mval[0] - sco[1][0]) + abs(mval[1] - sco[1][1]);
-
- if (bezt1->f2 & SELECT)
- temp += 5;
-
- if (temp < dist) {
- hpoint= NEAREST_HANDLE_KEY;
- *bezt= bezt1;
- dist= temp;
- *fcurve= fcu;
- }
+ /* keyframe */
+ nearest_fcurve_vert_store(matches, v2d, fcu, bezt1, NULL, NEAREST_HANDLE_KEY, mval);
/* handles - only do them if they're visible */
- if (fcurve_handle_sel_check(sipo, bezt1)) {
+ if (fcurve_handle_sel_check(sipo, bezt1) && (fcu->totvert > 1)) {
/* first handle only visible if previous segment had handles */
if ( (!prevbezt && (bezt1->ipo==BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo==BEZT_IPO_BEZ)) )
{
- temp= -3 + abs(mval[0] - sco[0][0]) + abs(mval[1] - sco[0][1]);
- if (bezt1->f1 & SELECT)
- temp += 5;
-
- if (temp < dist) {
- hpoint= NEAREST_HANDLE_LEFT;
- *bezt= bezt1;
- dist= temp;
- *fcurve= fcu;
- }
+ nearest_fcurve_vert_store(matches, v2d, fcu, bezt1, NULL, NEAREST_HANDLE_LEFT, mval);
}
/* second handle only visible if this segment is bezier */
if (bezt1->ipo == BEZT_IPO_BEZ)
{
- temp= abs(mval[0] - sco[2][0]) + abs(mval[1] - sco[2][1]);
- if (bezt1->f3 & SELECT)
- temp += 5;
-
- if (temp < dist) {
- hpoint= NEAREST_HANDLE_RIGHT;
- *bezt=bezt1;
- dist= temp;
- *fcurve= fcu;
- }
+ nearest_fcurve_vert_store(matches, v2d, fcu, bezt1, NULL, NEAREST_HANDLE_RIGHT, mval);
}
}
}
+ }
+ else if (fcu->fpt) {
+ // TODO; do this for samples too
- /* un-apply NLA mapping from all the keyframes */
- if (adt)
- ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
+ /* un-apply NLA mapping from all the keyframes */
+ if (adt)
+ ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
+
/* unapply unit corrections */
ANIM_unit_mapping_apply_fcurve(ac->scene, ale->id, ale->key_data, ANIM_UNITCONV_RESTORE);
}
/* free channels */
BLI_freelistN(&anim_data);
+}
+
+/* helper for find_nearest_fcurve_vert() - get the best match to use */
+static tNearestVertInfo *get_best_nearest_fcurve_vert (bAnimContext *ac, ListBase *matches)
+{
+ tNearestVertInfo *nvi = NULL;
+ short found = 0;
- /* return handle */
- return hpoint;
+ /* abort if list is empty */
+ if (matches->first == NULL)
+ return NULL;
+
+ /* if list only has 1 item, remove it from the list and return */
+ if (matches->first == matches->last) {
+ /* need to remove from the list, otherwise it gets freed and then we can't return it */
+ nvi= matches->first;
+ BLI_remlink(matches, nvi);
+
+ return nvi;
+ }
+
+ /* try to find the first selected F-Curve vert, then take the one after it */
+ for (nvi = matches->first; nvi; nvi = nvi->next) {
+ /* which mode of search are we in: find first selected, or find vert? */
+ if (found) {
+ /* just take this vert now that we've found the selected one
+ * - we'll need to remove this from the list so that it can be returned to the original caller
+ */
+ BLI_remlink(matches, nvi);
+ return nvi;
+ }
+ else {
+ /* if vert is selected, we've got what we want... */
+ if (nvi->sel)
+ found= 1;
+ }
+ }
+
+ /* if we're still here, this means that we failed to find anything appropriate in the first pass,
+ * so just take the first item now...
+ */
+ nvi = matches->first;
+ BLI_remlink(matches, nvi);
+ return nvi;
}
-
+
+/* Find the nearest vertices (either a handle or the keyframe) that are nearest to the mouse cursor (in area coordinates)
+ * NOTE: the match info found must still be freed
+ */
+static tNearestVertInfo *find_nearest_fcurve_vert (bAnimContext *ac, int mval[2])
+{
+ ListBase matches = {NULL, NULL};
+ tNearestVertInfo *nvi;
+
+ /* step 1: get the nearest verts */
+ get_nearest_fcurve_verts_list(ac, mval, &matches);
+
+ /* step 2: find the best vert */
+ nvi= get_best_nearest_fcurve_vert(ac, &matches);
+
+ BLI_freelistN(&matches);
+
+ /* return the best vert found */
+ return nvi;
+}
+
+/* ------------------- */
+
/* option 1) select keyframe directly under mouse */
static void mouse_graph_keys (bAnimContext *ac, int mval[], short select_mode, short curves_only)
{
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
- FCurve *fcu;
- BezTriple *bezt;
- short handle;
- int filter;
+ tNearestVertInfo *nvi;
/* find the beztriple that we're selecting, and the handle that was clicked on */
- handle= findnearest_fcurve_vert(ac, mval, &fcu, &bezt);
+ nvi = find_nearest_fcurve_vert(ac, mval);
/* check if anything to select */
- if (fcu == NULL)
+ if (nvi == NULL)
return;
/* deselect all other curves? */
@@ -843,13 +988,15 @@ static void mouse_graph_keys (bAnimContext *ac, int mval[], short select_mode, s
/* if points can be selected on this F-Curve */
// TODO: what about those with no keyframes?
- if ((curves_only == 0) && ((fcu->flag & FCURVE_PROTECTED)==0)) {
+ if ((curves_only == 0) && ((nvi->fcu->flag & FCURVE_PROTECTED)==0)) {
/* only if there's keyframe */
- if (bezt) {
+ if (nvi->bezt) {
+ BezTriple *bezt= nvi->bezt;
+
/* depends on selection mode */
if (select_mode == SELECT_INVERT) {
/* keyframe - invert select of all */
- if (handle == NEAREST_HANDLE_KEY) {
+ if (nvi->hpoint == NEAREST_HANDLE_KEY) {
if (BEZSELECTED(bezt)) {
BEZ_DESEL(bezt);
}
@@ -859,7 +1006,7 @@ static void mouse_graph_keys (bAnimContext *ac, int mval[], short select_mode, s
}
/* handles - toggle selection of relevant handle */
- else if (handle == NEAREST_HANDLE_LEFT) {
+ else if (nvi->hpoint == NEAREST_HANDLE_LEFT) {
/* toggle selection */
bezt->f1 ^= SELECT;
}
@@ -870,45 +1017,51 @@ static void mouse_graph_keys (bAnimContext *ac, int mval[], short select_mode, s
}
else {
/* if the keyframe was clicked on, select all verts of given beztriple */
- if (handle == NEAREST_HANDLE_KEY) {
+ if (nvi->hpoint == NEAREST_HANDLE_KEY) {
BEZ_SEL(bezt);
}
/* otherwise, select the handle that applied */
- else if (handle == NEAREST_HANDLE_LEFT)
+ else if (nvi->hpoint == NEAREST_HANDLE_LEFT)
bezt->f1 |= SELECT;
else
bezt->f3 |= SELECT;
}
}
+ else if (nvi->fpt) {
+ // TODO: need to handle sample points
+ }
}
else {
- BeztEditFunc select_cb;
- BeztEditData bed;
+ KeyframeEditFunc select_cb;
+ KeyframeEditData ked;
/* initialise keyframe editing data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* set up BezTriple edit callbacks */
select_cb= ANIM_editkeyframes_select(select_mode);
/* select all keyframes */
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, nvi->fcu, NULL, select_cb, NULL);
}
/* only change selection of channel when the visibility of keyframes doesn't depend on this */
if ((sipo->flag & SIPO_SELCUVERTSONLY) == 0) {
/* select or deselect curve? */
if (select_mode == SELECT_INVERT)
- fcu->flag ^= FCURVE_SELECTED;
+ nvi->fcu->flag ^= FCURVE_SELECTED;
else if (select_mode == SELECT_ADD)
- fcu->flag |= FCURVE_SELECTED;
+ nvi->fcu->flag |= FCURVE_SELECTED;
/* set active F-Curve (NOTE: sync the filter flags with findnearest_fcurve_vert) */
- if (fcu->flag & FCURVE_SELECTED) {
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
- ANIM_set_active_channel(ac, ac->data, ac->datatype, filter, fcu, ANIMTYPE_FCURVE);
+ if (nvi->fcu->flag & FCURVE_SELECTED) {
+ int filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
+ ANIM_set_active_channel(ac, ac->data, ac->datatype, filter, nvi->fcu, ANIMTYPE_FCURVE);
}
}
+
+ /* free temp sample data for filtering */
+ MEM_freeN(nvi);
}
/* Option 2) Selects all the keyframes on either side of the current frame (depends on which side the mouse is on) */
@@ -919,8 +1072,8 @@ static void graphkeys_mselect_leftright (bAnimContext *ac, short leftright, shor
int filter;
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
- BeztEditFunc ok_cb, select_cb;
- BeztEditData bed;
+ KeyframeEditFunc ok_cb, select_cb;
+ KeyframeEditData ked;
Scene *scene= ac->scene;
/* if select mode is replace, deselect all keyframes (and channels) first */
@@ -943,18 +1096,18 @@ static void graphkeys_mselect_leftright (bAnimContext *ac, short leftright, shor
ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
select_cb= ANIM_editkeyframes_select(select_mode);
- memset(&bed, 0, sizeof(BeztEditFunc));
+ memset(&ked, 0, sizeof(KeyframeEditFunc));
if (leftright == GRAPHKEYS_LRSEL_LEFT) {
- bed.f1 = MINAFRAMEF;
- bed.f2 = (float)(CFRA + 0.1f);
+ ked.f1 = MINAFRAMEF;
+ ked.f2 = (float)(CFRA + 0.1f);
}
else {
- bed.f1 = (float)(CFRA - 0.1f);
- bed.f2 = MAXFRAMEF;
+ ked.f1 = (float)(CFRA - 0.1f);
+ ked.f2 = MAXFRAMEF;
}
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* select keys on the side where most data occurs */
@@ -963,11 +1116,11 @@ static void graphkeys_mselect_leftright (bAnimContext *ac, short leftright, shor
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 0, 1);
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
else
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
/* Cleanup */
@@ -982,19 +1135,24 @@ static void graphkeys_mselect_column (bAnimContext *ac, int mval[2], short selec
int filter;
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
- BeztEditFunc select_cb, ok_cb;
- BeztEditData bed;
- FCurve *fcu;
- BezTriple *bezt;
+ KeyframeEditFunc select_cb, ok_cb;
+ KeyframeEditData ked;
+ tNearestVertInfo *nvi;
float selx = (float)ac->scene->r.cfra;
- /* find the beztriple that occurs on this frame, and use his as the frame number we're using */
- findnearest_fcurve_vert(ac, mval, &fcu, &bezt);
+ /* find the beztriple that we're selecting, and the handle that was clicked on */
+ nvi = find_nearest_fcurve_vert(ac, mval);
/* check if anything to select */
- if (ELEM(NULL, fcu, bezt))
+ if (nvi == NULL)
return;
- selx= bezt->vec[1][0];
+
+ /* get frame number on which elements should be selected */
+ // TODO: should we restrict to integer frames only?
+ if (nvi->bezt)
+ selx= nvi->bezt->vec[1][0];
+ else if (nvi->fpt)
+ selx= nvi->fpt->vec[0];
/* if select mode is replace, deselect all keyframes (and channels) first */
if (select_mode==SELECT_REPLACE) {
@@ -1013,7 +1171,7 @@ static void graphkeys_mselect_column (bAnimContext *ac, int mval[2], short selec
}
/* initialise keyframe editing data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* set up BezTriple edit callbacks */
select_cb= ANIM_editkeyframes_select(select_mode);
@@ -1022,7 +1180,7 @@ static void graphkeys_mselect_column (bAnimContext *ac, int mval[2], short selec
/* loop through all of the keys and select additional keyframes
* based on the keys found to be selected above
*/
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1030,16 +1188,17 @@ static void graphkeys_mselect_column (bAnimContext *ac, int mval[2], short selec
/* set frame for validation callback to refer to */
if (adt)
- bed.f1= BKE_nla_tweakedit_remap(adt, selx, NLATIME_CONVERT_UNMAP);
+ ked.f1= BKE_nla_tweakedit_remap(adt, selx, NLATIME_CONVERT_UNMAP);
else
- bed.f1= selx;
+ ked.f1= selx;
/* select elements with frame number matching cfra */
- ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
/* free elements */
- BLI_freelistN(&bed.list);
+ MEM_freeN(nvi);
+ BLI_freelistN(&ked.list);
BLI_freelistN(&anim_data);
}
@@ -1101,7 +1260,7 @@ static int graphkeys_clickselect_invoke(bContext *C, wmOperator *op, wmEvent *ev
}
/* set notifier that keyframe selection (and also channel selection in some cases) has changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_SELECT|ND_ANIMCHAN_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|ND_ANIMCHAN|NA_SELECTED, NULL);
/* for tweak grab to work */
return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
diff --git a/source/blender/editors/space_graph/graph_utils.c b/source/blender/editors/space_graph/graph_utils.c
index 3d1f0b49826..ad96370e4fa 100644
--- a/source/blender/editors/space_graph/graph_utils.c
+++ b/source/blender/editors/space_graph/graph_utils.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,12 +32,8 @@
#include <float.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_object_types.h"
#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -62,20 +58,10 @@
#include "BIF_gl.h"
#include "WM_api.h"
-#include "WM_types.h"
-#include "RNA_access.h"
-#include "RNA_define.h"
#include "ED_anim_api.h"
-#include "ED_keyframing.h"
-#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "graph_intern.h" // own include
@@ -141,6 +127,8 @@ short fcurve_needs_draw_fmodifier_controls (FCurve *fcu, FModifier *fcm)
/* clearly harmless */
case FMODIFIER_TYPE_CYCLES:
return 0;
+ case FMODIFIER_TYPE_STEPPED:
+ return 0;
/* borderline... */
case FMODIFIER_TYPE_NOISE:
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index 31197f49002..1e006ca38ec 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,10 +30,7 @@
#include <stdio.h>
#include "DNA_anim_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -48,7 +45,6 @@
#include "BKE_screen.h"
#include "BKE_utildefines.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_anim_api.h"
#include "ED_markers.h"
@@ -58,7 +54,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -387,9 +382,12 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn)
case ND_OB_ACTIVE:
case ND_FRAME:
case ND_MARKERS:
- case ND_SEQUENCER_SELECT:
ED_region_tag_redraw(ar);
break;
+ case ND_SEQUENCER:
+ if (wmn->action == NA_SELECTED)
+ ED_region_tag_redraw(ar);
+ break;
}
break;
case NC_OBJECT:
@@ -406,13 +404,9 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn)
}
break;
case NC_NODE:
- switch(wmn->data) {
- case ND_NODE_SELECT:
- ED_region_tag_redraw(ar);
- break;
- }
switch(wmn->action) {
case NA_EDITED:
+ case NA_SELECTED:
ED_region_tag_redraw(ar);
break;
}
@@ -437,7 +431,7 @@ static void graph_listener(ScrArea *sa, wmNotifier *wmn)
switch (wmn->category) {
case NC_ANIMATION:
/* for selection changes of animation data, we can just redraw... otherwise autocolor might need to be done again */
- if (ELEM(wmn->data, ND_KEYFRAME_SELECT, ND_ANIMCHAN_SELECT))
+ if (ELEM(wmn->data, ND_KEYFRAME, ND_ANIMCHAN) && (wmn->action == NA_SELECTED))
ED_area_tag_redraw(sa);
else
ED_area_tag_refresh(sa);
@@ -526,7 +520,7 @@ static void graph_refresh(const bContext *C, ScrArea *sa)
* - we don't include ANIMFILTER_CURVEVISIBLE filter, as that will result in a
* mismatch between channel-colors and the drawn curves
*/
- filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CURVESONLY);
+ filter= (ANIMFILTER_VISIBLE|ANIMFILTER_CURVESONLY|ANIMFILTER_NODUPLIS);
items= ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* loop over F-Curves, assigning colors */
diff --git a/source/blender/editors/space_image/CMakeLists.txt b/source/blender/editors/space_image/CMakeLists.txt
new file mode 100644
index 00000000000..fce56b9c239
--- /dev/null
+++ b/source/blender/editors/space_image/CMakeLists.txt
@@ -0,0 +1,54 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../../imbuf
+ ../../bmesh
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../render/extern/include
+ ../../windowmanager
+)
+
+IF(WITH_OPENEXR)
+ ADD_DEFINITIONS(-DWITH_OPENEXR)
+ENDIF(WITH_OPENEXR)
+
+IF(WITH_TIFF)
+ ADD_DEFINITIONS(-DWITH_TIFF)
+ENDIF(WITH_TIFF)
+
+IF(WITH_LCMS)
+ SET(INC ${INC} ${LCMS_INCLUDE_DIR})
+ ADD_DEFINITIONS(-DWITH_LCMS)
+ENDIF(WITH_LCMS)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_space_image "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_image/Makefile b/source/blender/editors/space_image/Makefile
index a55b4e58dfa..ab30ff607ec 100644
--- a/source/blender/editors/space_image/Makefile
+++ b/source/blender/editors/space_image/Makefile
@@ -58,3 +58,7 @@ ifeq ($(WITH_OPENEXR), true)
CPPFLAGS += -DWITH_OPENEXR
endif
+ifeq ($(WHITH_TIFF), true)
+ CPPFLAGS += -DWITH_TIFF
+endif
+
diff --git a/source/blender/editors/space_image/SConscript b/source/blender/editors/space_image/SConscript
index 2b1d5589cb3..933a30808dc 100644
--- a/source/blender/editors/space_image/SConscript
+++ b/source/blender/editors/space_image/SConscript
@@ -11,7 +11,13 @@ defs = []
if env['WITH_BF_LCMS']:
defs.append('WITH_LCMS')
+ incs += ' ' + env['BF_LCMS_INC']
if env['WITH_BF_OPENEXR']:
defs.append('WITH_OPENEXR')
+if env['WITH_BF_TIFF']:
+ defs.append('WITH_TIFF')
+
+if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
+ incs += ' ' + env['BF_PTHREADS_INC']
env.BlenderLib ( 'bf_editors_space_image', sources, Split(incs), defs, libtype=['core'], priority=[40] )
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c
index 047fc3493cf..e9b094ee8fb 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -29,17 +29,10 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_color_types.h"
-#include "DNA_image_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
-#include "DNA_packedFile_types.h"
#include "DNA_node_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -70,11 +63,8 @@
#include "ED_gpencil.h"
#include "ED_image.h"
-#include "ED_mesh.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_uvedit.h"
-#include "ED_util.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -86,14 +76,12 @@
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "image_intern.h"
#define B_REDR 1
#define B_IMAGECHANGED 2
#define B_TRANS_IMAGE 3
-#define B_CURSOR_IMAGE 4
#define B_NOP 0
#define B_TWINANIM 5
#define B_SIMAGETILE 6
@@ -114,20 +102,13 @@
#define B_SIMACLONEBROWSE 25
#define B_SIMACLONEDELETE 26
-/* XXX */
-static int simaFaceDraw_Check() {return 0;}
-static int simaUVSel_Check() { return 0;}
-/* XXX */
-
/* proto */
static void image_editvertex_buts(const bContext *C, uiBlock *block);
-static void image_editcursor_buts(const bContext *C, View2D *v2d, uiBlock *block);
static void do_image_panel_events(bContext *C, void *arg, int event)
{
SpaceImage *sima= CTX_wm_space_image(C);
- ARegion *ar= CTX_wm_region(C);
switch(event) {
case B_REDR:
@@ -135,9 +116,6 @@ static void do_image_panel_events(bContext *C, void *arg, int event)
case B_TRANS_IMAGE:
image_editvertex_buts(C, NULL);
break;
- case B_CURSOR_IMAGE:
- image_editcursor_buts(C, &ar->v2d, NULL);
- break;
}
/* all events now */
@@ -162,7 +140,7 @@ static void image_info(Image *ima, ImBuf *ibuf, char *str)
ofs+= sprintf(str+ofs, "%d frs", IMB_anim_get_duration(ima->anim));
}
else
- ofs= sprintf(str, "Image");
+ ofs= sprintf(str, "Image");
ofs+= sprintf(str+ofs, ": size %d x %d,", ibuf->x, ibuf->y);
@@ -221,7 +199,9 @@ static void image_transform_but_attr(SpaceImage *sima, int *imx, int *imy, int *
/* is used for both read and write... */
static void image_editvertex_buts(const bContext *C, uiBlock *block)
{
+ Scene *scene= CTX_data_scene(C);
SpaceImage *sima= CTX_wm_space_image(C);
+ Image *ima= sima->image;
Object *obedit= CTX_data_edit_object(C);
BMEditMesh *em;
BMFace *efa;
@@ -239,13 +219,13 @@ static void image_editvertex_buts(const bContext *C, uiBlock *block)
em= ((Mesh *)obedit->data)->edit_btmesh;
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
- if (!simaFaceDraw_Check(efa, tf))
+ if (!uvedit_face_visible(scene, ima, efa, tf))
continue;
BM_ITER(l, &iter, em->bm, BM_LOOPS_OF_FACE, efa) {
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- if (simaUVSel_Check(efa, tf, luv)) {
+ if (uvedit_uv_selected(em, scene, l)) {
cent[0] += luv->uv[0];
cent[1] += luv->uv[1];
@@ -293,13 +273,13 @@ static void image_editvertex_buts(const bContext *C, uiBlock *block)
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
- if (!simaFaceDraw_Check(efa, tf))
+ if (!uvedit_face_visible(scene, ima, efa, tf))
continue;
BM_ITER(l, &iter, em->bm, BM_LOOPS_OF_FACE, efa) {
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- if (simaUVSel_Check(efa, tf, luv)) {
+ if (uvedit_uv_selected(em, scene, l)) {
luv->uv[0] += delta[0];
luv->uv[1] += delta[1];
}
@@ -312,41 +292,6 @@ static void image_editvertex_buts(const bContext *C, uiBlock *block)
/* is used for both read and write... */
-static void image_editcursor_buts(const bContext *C, View2D *v2d, uiBlock *block)
-{
- SpaceImage *sima= CTX_wm_space_image(C);
- static float ocent[2];
- int imx= 256, imy= 256;
- int step, digits;
-
- image_transform_but_attr(sima, &imx, &imy, &step, &digits);
-
- if(block) { // do the buttons
- ocent[0]= v2d->cursor[0];
- ocent[1]= v2d->cursor[1];
- if (sima->flag & SI_COORDFLOATS) {
- } else {
- ocent[0] *= imx;
- ocent[1] *= imy;
- }
-
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_CURSOR_IMAGE, "Cursor X:", 165, 120, 145, 19, &ocent[0], -10*imx, 10.0*imx, step, digits, "");
- uiDefButF(block, NUM, B_CURSOR_IMAGE, "Cursor Y:", 165, 100, 145, 19, &ocent[1], -10*imy, 10.0*imy, step, digits, "");
- uiBlockEndAlign(block);
- }
- else { // apply event
- if (sima->flag & SI_COORDFLOATS) {
- v2d->cursor[0]= ocent[0];
- v2d->cursor[1]= ocent[1];
- }
- else {
- v2d->cursor[0]= ocent[0]/imx;
- v2d->cursor[1]= ocent[1]/imy;
- }
- WM_event_add_notifier(C, NC_IMAGE, sima->image);
- }
-}
static int image_panel_poll(const bContext *C, PanelType *pt)
{
@@ -523,12 +468,12 @@ static char *slot_menu()
char *str;
int a, slot;
- str= MEM_callocN(RE_SLOT_MAX*32, "menu slots");
+ str= MEM_callocN(IMA_MAX_RENDER_SLOT*32, "menu slots");
strcpy(str, "Slot %t");
a= strlen(str);
- for(slot=0; slot<RE_SLOT_MAX; slot++)
+ for(slot=0; slot<IMA_MAX_RENDER_SLOT; slot++)
a += sprintf(str+a, "|Slot %d %%x%d", slot+1, slot);
return str;
@@ -602,7 +547,6 @@ static void image_multi_cb(bContext *C, void *rr_v, void *iuser_v)
{
ImageUser *iuser= iuser_v;
- RE_SetViewSlot(iuser->menunr);
BKE_image_multilayer_index(rr_v, iuser);
WM_event_add_notifier(C, NC_IMAGE|ND_DRAW, NULL);
}
@@ -703,7 +647,7 @@ static void image_user_change(bContext *C, void *iuser_v, void *unused)
}
#endif
-static void uiblock_layer_pass_buttons(uiLayout *layout, RenderResult *rr, ImageUser *iuser, int w, int render)
+static void uiblock_layer_pass_buttons(uiLayout *layout, RenderResult *rr, ImageUser *iuser, int w, short *render_slot)
{
uiBlock *block= uiLayoutGetBlock(layout);
uiBut *but;
@@ -719,10 +663,9 @@ static void uiblock_layer_pass_buttons(uiLayout *layout, RenderResult *rr, Image
wmenu3= (3*w)/6;
/* menu buts */
- if(render) {
+ if(render_slot) {
strp= slot_menu();
- iuser->menunr= RE_GetViewSlot();
- but= uiDefButS(block, MENU, 0, strp, 0, 0, wmenu1, 20, &iuser->menunr, 0,0,0,0, "Select Slot");
+ but= uiDefButS(block, MENU, 0, strp, 0, 0, wmenu1, 20, render_slot, 0,0,0,0, "Select Slot");
uiButSetFunc(but, image_multi_cb, rr, iuser);
MEM_freeN(strp);
}
@@ -741,7 +684,7 @@ static void uiblock_layer_pass_buttons(uiLayout *layout, RenderResult *rr, Image
}
}
-static void uiblock_layer_pass_arrow_buttons(uiLayout *layout, RenderResult *rr, ImageUser *iuser, int render)
+static void uiblock_layer_pass_arrow_buttons(uiLayout *layout, RenderResult *rr, ImageUser *iuser, short *render_slot)
{
uiBlock *block= uiLayoutGetBlock(layout);
uiLayout *row;
@@ -762,7 +705,7 @@ static void uiblock_layer_pass_arrow_buttons(uiLayout *layout, RenderResult *rr,
but= uiDefIconBut(block, BUT, 0, ICON_TRIA_RIGHT, 0,0,18,20, NULL, 0, 0, 0, 0, "Next Layer");
uiButSetFunc(but, image_multi_inclay_cb, rr, iuser);
- uiblock_layer_pass_buttons(row, rr, iuser, 230, render);
+ uiblock_layer_pass_buttons(row, rr, iuser, 230, render_slot);
/* decrease, increase arrows */
but= uiDefIconBut(block, BUT, 0, ICON_TRIA_LEFT, 0,0,17,20, NULL, 0, 0, 0, 0, "Previous Pass");
@@ -834,7 +777,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
uiLayoutSetContextPointer(layout, "edit_image", &imaptr);
if(!compact)
- uiTemplateID(layout, C, ptr, propname, "IMAGE_OT_new", "IMAGE_OT_open", NULL);
+ uiTemplateID(layout, C, ptr, propname, "IMAGE_OT_new", "IMAGE_OT_open", NULL, NULL);
// XXX missing: reload, pack
@@ -871,19 +814,29 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
}
else if(ima->type==IMA_TYPE_R_RESULT) {
/* browse layer/passes */
- Render *re= RE_GetRender(scene->id.name, RE_SLOT_VIEW);
+ Render *re= RE_GetRender(scene->id.name);
RenderResult *rr= RE_AcquireResultRead(re);
- uiblock_layer_pass_arrow_buttons(layout, rr, iuser, 1);
+ uiblock_layer_pass_arrow_buttons(layout, rr, iuser, &ima->render_slot);
RE_ReleaseResult(re);
}
}
else {
row= uiLayoutRow(layout, 0);
- uiItemR(row, NULL, 0, &imaptr, "source", (compact)? 0: UI_ITEM_R_EXPAND);
+ uiItemR(row, &imaptr, "source", 0, NULL, 0);
if(ima->source != IMA_SRC_GENERATED) {
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, &imaptr, "filename", 0);
+ split = uiLayoutSplit(row, 0.0, 0);
+ if (ima->packedfile)
+ uiItemO(split, "", ICON_PACKAGE, "image.unpack");
+ else
+ uiItemO(split, "", ICON_UGLYPACKAGE, "image.pack");
+
+ split = uiLayoutSplit(row, 0.0, 0);
+ row= uiLayoutRow(split, 1);
+ uiLayoutSetEnabled(row, ima->packedfile==NULL);
+
+ uiItemR(row, &imaptr, "filepath", 0, "", 0);
uiItemO(row, "", ICON_FILE_REFRESH, "image.reload");
}
@@ -900,7 +853,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
/* multilayer? */
if(ima->type==IMA_TYPE_MULTILAYER && ima->rr) {
- uiblock_layer_pass_arrow_buttons(layout, ima->rr, iuser, 0);
+ uiblock_layer_pass_arrow_buttons(layout, ima->rr, iuser, NULL);
}
else if(ima->source != IMA_SRC_GENERATED) {
if(compact == 0) {
@@ -918,14 +871,13 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
split= uiLayoutSplit(layout, 0, 0);
col= uiLayoutColumn(split, 0);
- uiItemR(col, NULL, 0, &imaptr, "fields", 0);
+ uiItemR(col, &imaptr, "fields", 0, NULL, 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, &imaptr, "field_order", UI_ITEM_R_EXPAND);
+ uiItemR(row, &imaptr, "field_order", UI_ITEM_R_EXPAND, NULL, 0);
uiLayoutSetActive(row, RNA_boolean_get(&imaptr, "fields"));
col= uiLayoutColumn(split, 0);
- uiItemR(col, NULL, 0, &imaptr, "antialias", 0);
- uiItemR(col, NULL, 0, &imaptr, "premultiply", 0);
+ uiItemR(col, &imaptr, "premultiply", 0, NULL, 0);
}
}
@@ -938,30 +890,30 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
sprintf(str, "(%d) Frames", iuser->framenr);
row= uiLayoutRow(col, 1);
- uiItemR(col, str, 0, userptr, "frames", 0);
+ uiItemR(col, userptr, "frames", 0, str, 0);
if(ima->anim) {
block= uiLayoutGetBlock(row);
- but= uiDefBut(block, BUT, 0, "<", 0, 0, UI_UNIT_X*2, UI_UNIT_Y, 0, 0, 0, 0, 0, "Set the number of frames from the movie or sequence.");
+ but= uiDefBut(block, BUT, 0, "Match Movie Length", 0, 0, UI_UNIT_X*2, UI_UNIT_Y, 0, 0, 0, 0, 0, "Set the number of frames to match the movie or sequence.");
uiButSetFunc(but, set_frames_cb, ima, iuser);
}
- uiItemR(col, "Start", 0, userptr, "start_frame", 0);
- uiItemR(col, NULL, 0, userptr, "offset", 0);
+ uiItemR(col, userptr, "frame_start", 0, "Start", 0);
+ uiItemR(col, userptr, "offset", 0, NULL, 0);
col= uiLayoutColumn(split, 0);
- uiItemR(col, "Fields", 0, userptr, "fields_per_frame", 0);
- uiItemR(col, NULL, 0, userptr, "auto_refresh", 0);
- uiItemR(col, NULL, 0, userptr, "cyclic", 0);
+ uiItemR(col, userptr, "fields_per_frame", 0, "Fields", 0);
+ uiItemR(col, userptr, "auto_refresh", 0, NULL, 0);
+ uiItemR(col, userptr, "cyclic", 0, NULL, 0);
}
else if(ima->source==IMA_SRC_GENERATED) {
split= uiLayoutSplit(layout, 0, 0);
col= uiLayoutColumn(split, 1);
- uiItemR(col, "X", 0, &imaptr, "generated_width", 0);
- uiItemR(col, "Y", 0, &imaptr, "generated_height", 0);
+ uiItemR(col, &imaptr, "generated_width", 0, "X", 0);
+ uiItemR(col, &imaptr, "generated_height", 0, "Y", 0);
col= uiLayoutColumn(split, 0);
- uiItemR(col, NULL, 0, &imaptr, "generated_type", UI_ITEM_R_EXPAND);
+ uiItemR(col, &imaptr, "generated_type", UI_ITEM_R_EXPAND, NULL, 0);
}
}
@@ -980,7 +932,7 @@ void uiTemplateImageLayers(uiLayout *layout, bContext *C, Image *ima, ImageUser
/* render layers and passes */
if(ima && iuser) {
rr= BKE_image_acquire_renderresult(scene, ima);
- uiblock_layer_pass_buttons(layout, rr, iuser, 160, ima->type==IMA_TYPE_R_RESULT);
+ uiblock_layer_pass_buttons(layout, rr, iuser, 160, (ima->type==IMA_TYPE_R_RESULT)? &ima->render_slot: NULL);
BKE_image_release_renderresult(scene, ima);
}
}
@@ -993,26 +945,27 @@ static int image_panel_uv_poll(const bContext *C, PanelType *pt)
static void image_panel_uv(const bContext *C, Panel *pa)
{
- ARegion *ar= CTX_wm_region(C);
uiBlock *block;
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_image_panel_events, NULL);
image_editvertex_buts(C, block);
- image_editcursor_buts(C, &ar->v2d, block);
}
void image_buttons_register(ARegionType *art)
{
PanelType *pt;
- pt= MEM_callocN(sizeof(PanelType), "spacetype image panel uv");
- strcpy(pt->idname, "IMAGE_PT_uv");
- strcpy(pt->label, "UV");
- pt->draw= image_panel_uv;
- pt->poll= image_panel_uv_poll;
- BLI_addtail(&art->paneltypes, pt);
+ /* editvertex_buts not working atm */
+ if(0) {
+ pt= MEM_callocN(sizeof(PanelType), "spacetype image panel uv");
+ strcpy(pt->idname, "IMAGE_PT_uv");
+ strcpy(pt->label, "UV");
+ pt->draw= image_panel_uv;
+ pt->poll= image_panel_uv_poll;
+ BLI_addtail(&art->paneltypes, pt);
+ }
pt= MEM_callocN(sizeof(PanelType), "spacetype image panel curves");
strcpy(pt->idname, "IMAGE_PT_curves");
diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c
index cb942472b9e..309c0061130 100644
--- a/source/blender/editors/space_image/image_draw.c
+++ b/source/blender/editors/space_image/image_draw.c
@@ -31,15 +31,14 @@
#include "MEM_guardedalloc.h"
-#include "DNA_brush_types.h"
#include "DNA_camera_types.h"
-#include "DNA_image_types.h"
#include "DNA_object_types.h"
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "PIL_time.h"
+#include "BLI_threads.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -56,13 +55,13 @@
#include "ED_gpencil.h"
#include "ED_image.h"
-#include "ED_screen.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "WM_api.h"
+
+#include "RE_pipeline.h"
#include "image_intern.h"
@@ -77,50 +76,47 @@ static void image_verify_buffer_float(SpaceImage *sima, Image *ima, ImBuf *ibuf,
NOTE: if float buffer changes, we have to manually remove the rect
*/
- if(ibuf->rect_float) {
- if(ibuf->rect==NULL) {
- if (color_manage) {
- if (ima && ima->source == IMA_SRC_VIEWER)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
- } else {
- ibuf->profile = IB_PROFILE_NONE;
- }
- IMB_rect_from_float(ibuf);
+ if(ibuf->rect_float && ibuf->rect==NULL) {
+ if(color_manage) {
+ if(ima && ima->source == IMA_SRC_VIEWER)
+ ibuf->profile = IB_PROFILE_LINEAR_RGB;
}
+ else
+ ibuf->profile = IB_PROFILE_NONE;
+
+ IMB_rect_from_float(ibuf);
}
}
-static void draw_render_info(Image *ima, ARegion *ar)
+static void draw_render_info(Scene *scene, Image *ima, ARegion *ar)
{
+ RenderResult *rr;
rcti rect;
float colf[3];
- int showspare= 0; // XXX BIF_show_render_spare();
- if(ima->render_text==NULL)
- return;
-
- rect= ar->winrct;
- rect.xmin= 0;
- rect.ymin= ar->winrct.ymax - ar->winrct.ymin - HEADER_HEIGHT;
- rect.xmax= ar->winrct.xmax - ar->winrct.xmin;
- rect.ymax= ar->winrct.ymax - ar->winrct.ymin;
-
- /* clear header rect */
- UI_GetThemeColor3fv(TH_BACK, colf);
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
- glColor4f(colf[0]+0.1f, colf[1]+0.1f, colf[2]+0.1f, 0.5f);
- glRecti(rect.xmin, rect.ymin, rect.xmax, rect.ymax+1);
- glDisable(GL_BLEND);
-
- UI_ThemeColor(TH_TEXT_HI);
+ rr= BKE_image_acquire_renderresult(scene, ima);
- if(showspare) {
- UI_DrawString(12, rect.ymin + 5, "(Previous)");
- UI_DrawString(72, rect.ymin + 5, ima->render_text);
+ if(rr && rr->text) {
+ rect= ar->winrct;
+ rect.xmin= 0;
+ rect.ymin= ar->winrct.ymax - ar->winrct.ymin - HEADER_HEIGHT;
+ rect.xmax= ar->winrct.xmax - ar->winrct.xmin;
+ rect.ymax= ar->winrct.ymax - ar->winrct.ymin;
+
+ /* clear header rect */
+ UI_GetThemeColor3fv(TH_BACK, colf);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+ glColor4f(colf[0]+0.1f, colf[1]+0.1f, colf[2]+0.1f, 0.5f);
+ glRecti(rect.xmin, rect.ymin, rect.xmax, rect.ymax+1);
+ glDisable(GL_BLEND);
+
+ UI_ThemeColor(TH_TEXT_HI);
+
+ UI_DrawString(12, rect.ymin + 5, rr->text);
}
- else
- UI_DrawString(12, rect.ymin + 5, ima->render_text);
+
+ BKE_image_release_renderresult(scene, ima);
}
void draw_image_info(ARegion *ar, int channels, int x, int y, char *cp, float *fp, int *zp, float *zpf)
@@ -500,7 +496,7 @@ void draw_image_grease_pencil(bContext *C, short onlyv2d)
/* draw grease-pencil ('screen' strokes) */
//if (sima->flag & SI_DISPGP)
- draw_gpencil_2dview(C, 0);
+ draw_gpencil_view2d(C, 0);
}
}
@@ -633,8 +629,8 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene)
/* retrieve the image and information about it */
ima= ED_space_image(sima);
- ibuf= ED_space_image_acquire_buffer(sima, &lock);
ED_space_image_zoom(sima, ar, &zoomx, &zoomy);
+ ibuf= ED_space_image_acquire_buffer(sima, &lock);
show_viewer= (ima && ima->source == IMA_SRC_VIEWER);
show_render= (show_viewer && ima->type == IMA_TYPE_R_RESULT);
@@ -652,10 +648,7 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene)
/* paint helpers */
draw_image_paint_helpers(sima, ar, scene, zoomx, zoomy);
- /* render info */
- if(ibuf && ima && show_render)
- draw_render_info(ima, ar);
-
+
/* XXX integrate this code */
#if 0
if(ibuf) {
@@ -674,5 +667,9 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene)
#endif
ED_space_image_release_buffer(sima, lock);
+
+ /* render info */
+ if(ima && show_render)
+ draw_render_info(scene, ima, ar);
}
diff --git a/source/blender/editors/space_image/image_header.c b/source/blender/editors/space_image/image_header.c
index 4e38d4ec082..efe832040c7 100644
--- a/source/blender/editors/space_image/image_header.c
+++ b/source/blender/editors/space_image/image_header.c
@@ -30,11 +30,7 @@
#include <stdio.h>
#include "DNA_object_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_customdata_types.h"
#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -50,29 +46,17 @@
#include "BKE_utildefines.h"
#include "BKE_mesh.h"
-#include "IMB_imbuf.h"
-#include "IMB_imbuf_types.h"
#include "ED_image.h"
-#include "ED_mesh.h"
-#include "ED_screen.h"
-#include "ED_transform.h"
-#include "ED_types.h"
-#include "ED_util.h"
-#include "WM_api.h"
#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
-#include "RNA_access.h"
-#include "RE_pipeline.h"
#include "image_intern.h"
@@ -91,10 +75,10 @@ static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event)
pup= uiPupMenuBegin(C, "Toolbox", 0);
layout= uiPupMenuLayout(pup);
- uiItemM(layout, C, NULL, 0, "IMAGE_MT_view");
- if(show_uvedit) uiItemM(layout, C, NULL, 0, "IMAGE_MT_select");
- uiItemM(layout, C, NULL, 0, "IMAGE_MT_image");
- if(show_uvedit) uiItemM(layout, C, NULL, 0, "IMAGE_MT_uvs");
+ uiItemM(layout, C, "IMAGE_MT_view", NULL, 0);
+ if(show_uvedit) uiItemM(layout, C, "IMAGE_MT_select", NULL, 0);
+ uiItemM(layout, C, "IMAGE_MT_image", NULL, 0);
+ if(show_uvedit) uiItemM(layout, C, "IMAGE_MT_uvs", NULL, 0);
uiPupMenuEnd(C, pup);
diff --git a/source/blender/editors/space_image/image_intern.h b/source/blender/editors/space_image/image_intern.h
index f5d84d7487f..c038f58375c 100644
--- a/source/blender/editors/space_image/image_intern.h
+++ b/source/blender/editors/space_image/image_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -80,6 +80,7 @@ void IMAGE_OT_unpack(struct wmOperatorType *ot);
void IMAGE_OT_cycle_render_slot(struct wmOperatorType *ot);
void IMAGE_OT_sample(struct wmOperatorType *ot);
+void IMAGE_OT_sample_line(struct wmOperatorType *ot);
void IMAGE_OT_curves_point_set(struct wmOperatorType *ot);
void IMAGE_OT_record_composite(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index b9a22745ba5..a8e231bfae9 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -20,26 +20,21 @@
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
- * Contributor(s): Blender Foundation, 2002-2009
+ * Contributor(s): Blender Foundation, 2002-2009, Xavier Thomas
*
* ***** END GPL LICENSE BLOCK *****
*/
+#include <stddef.h>
#include <string.h>
#include <stdlib.h>
+#include <errno.h>
#include "MEM_guardedalloc.h"
-#include "DNA_image_types.h"
-#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_packedFile_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "DNA_meshdata_types.h"
#include "BKE_colortools.h"
@@ -65,7 +60,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_types.h"
#include "RNA_enum_types.h"
#include "bmesh.h"
@@ -115,12 +109,14 @@ static void sima_zoom_set_factor(SpaceImage *sima, ARegion *ar, float zoomfac)
sima_zoom_set(sima, ar, sima->zoom*zoomfac);
}
+#if 0 // currently unused
static int image_poll(bContext *C)
{
return (CTX_data_edit_image(C) != NULL);
}
+#endif
-static int space_image_poll(bContext *C)
+static int space_image_buffer_exists_poll(bContext *C)
{
SpaceImage *sima= CTX_wm_space_image(C);
if(sima && sima->spacetype==SPACE_IMAGE)
@@ -131,7 +127,7 @@ static int space_image_poll(bContext *C)
static int space_image_file_exists_poll(bContext *C)
{
- if(space_image_poll(C)) {
+ if(space_image_buffer_exists_poll(C)) {
SpaceImage *sima= CTX_wm_space_image(C);
ImBuf *ibuf;
void *lock;
@@ -146,6 +142,13 @@ static int space_image_file_exists_poll(bContext *C)
return 0;
}
+static int space_image_poll(bContext *C)
+{
+ SpaceImage *sima= CTX_wm_space_image(C);
+ if(sima && sima->spacetype==SPACE_IMAGE && sima->image)
+ return 1;
+ return 0;
+}
int space_image_main_area_poll(bContext *C)
{
@@ -189,7 +192,7 @@ static void view_pan_exit(bContext *C, wmOperator *op, int cancel)
if(cancel) {
sima->xof= vpd->xof;
sima->yof= vpd->yof;
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
}
WM_cursor_restore(CTX_wm_window(C));
@@ -205,7 +208,7 @@ static int view_pan_exec(bContext *C, wmOperator *op)
sima->xof += offset[0];
sima->yof += offset[1];
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
/* XXX notifier? */
#if 0
@@ -321,7 +324,7 @@ static void view_zoom_exit(bContext *C, wmOperator *op, int cancel)
if(cancel) {
sima->zoom= vpd->zoom;
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
}
WM_cursor_restore(CTX_wm_window(C));
@@ -335,7 +338,7 @@ static int view_zoom_exec(bContext *C, wmOperator *op)
sima_zoom_set_factor(sima, ar, RNA_float_get(op->ptr, "factor"));
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
/* XXX notifier? */
#if 0
@@ -359,7 +362,7 @@ static int view_zoom_invoke(bContext *C, wmOperator *op, wmEvent *event)
factor= 1.0 + (event->x-event->prevx+event->y-event->prevy)/300.0f;
RNA_float_set(op->ptr, "factor", factor);
sima_zoom_set(sima, ar, sima->zoom*factor);
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
@@ -381,7 +384,7 @@ static int view_zoom_modal(bContext *C, wmOperator *op, wmEvent *event)
factor= 1.0 + (vpd->x-event->x+vpd->y-event->y)/300.0f;
RNA_float_set(op->ptr, "factor", factor);
sima_zoom_set(sima, ar, vpd->zoom*factor);
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
break;
case MIDDLEMOUSE:
case LEFTMOUSE:
@@ -464,7 +467,7 @@ static int view_all_exec(bContext *C, wmOperator *op)
sima->xof= sima->yof= 0.0f;
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
@@ -516,11 +519,16 @@ static int view_selected_exec(bContext *C, wmOperator *op)
if(size<=0.01) size= 0.01;
sima_zoom_set(sima, ar, 0.7/size);
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
+static int view_selected_poll(bContext *C)
+{
+ return (space_image_main_area_poll(C) && ED_operator_uvedit(C));
+}
+
void IMAGE_OT_view_selected(wmOperatorType *ot)
{
/* identifiers */
@@ -529,7 +537,7 @@ void IMAGE_OT_view_selected(wmOperatorType *ot)
/* api callbacks */
ot->exec= view_selected_exec;
- ot->poll= ED_operator_uvedit;
+ ot->poll= view_selected_poll;
}
/********************** view zoom in/out operator *********************/
@@ -541,7 +549,7 @@ static int view_zoom_in_exec(bContext *C, wmOperator *op)
sima_zoom_set_factor(sima, ar, 1.25f);
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
@@ -564,7 +572,7 @@ static int view_zoom_out_exec(bContext *C, wmOperator *op)
sima_zoom_set_factor(sima, ar, 0.8f);
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
@@ -602,7 +610,7 @@ static int view_zoom_ratio_exec(bContext *C, wmOperator *op)
}
#endif
- ED_area_tag_redraw(CTX_wm_area(C));
+ ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
@@ -635,8 +643,9 @@ static const EnumPropertyItem image_file_type_items[] = {
{R_JP2, "JPEG_2000", 0, "Jpeg 2000", ""},
#endif
{R_IRIS, "IRIS", 0, "Iris", ""},
- //if(G.have_libtiff)
+#ifdef WITH_TIFF
{R_TIFF, "TIFF", 0, "Tiff", ""},
+#endif
{R_RADHDR, "RADIANCE_HDR", 0, "Radiance HDR", ""},
{R_CINEON, "CINEON", 0, "Cineon", ""},
{R_DPX, "DPX", 0, "DPX", ""},
@@ -651,7 +660,7 @@ static const EnumPropertyItem image_file_type_items[] = {
static void image_filesel(bContext *C, wmOperator *op, const char *path)
{
- RNA_string_set(op->ptr, "path", path);
+ RNA_string_set(op->ptr, "filepath", path);
WM_event_add_fileselect(C, op);
}
@@ -682,12 +691,16 @@ static int open_exec(bContext *C, wmOperator *op)
Image *ima= NULL;
char str[FILE_MAX];
- RNA_string_get(op->ptr, "path", str);
+ RNA_string_get(op->ptr, "filepath", str);
/* default to frame 1 if there's no scene in context */
+
+ errno= 0;
+
ima= BKE_add_image_file(str, scene ? scene->r.cfra : 1);
if(!ima) {
if(op->customdata) MEM_freeN(op->customdata);
+ BKE_reportf(op->reports, RPT_ERROR, "Can't read: \"%s\", %s.", str, errno ? strerror(errno) : "Unsupported image format");
return OPERATOR_CANCELLED;
}
@@ -723,7 +736,10 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
SpaceImage *sima= CTX_wm_space_image(C);
char *path= (sima && sima->image)? sima->image->name: U.textudir;
- if(RNA_property_is_set(op->ptr, "path"))
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
+ if(RNA_property_is_set(op->ptr, "filepath"))
return open_exec(C, op);
open_init(C, op);
@@ -748,7 +764,7 @@ void IMAGE_OT_open(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
}
/******************** replace image operator ********************/
@@ -761,7 +777,7 @@ static int replace_exec(bContext *C, wmOperator *op)
if(!sima->image)
return OPERATOR_CANCELLED;
- RNA_string_get(op->ptr, "path", str);
+ RNA_string_get(op->ptr, "filepath", str);
BLI_strncpy(sima->image->name, str, sizeof(sima->image->name)-1); /* we cant do much if the str is longer then 240 :/ */
BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_RELOAD);
@@ -773,15 +789,17 @@ static int replace_exec(bContext *C, wmOperator *op)
static int replace_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
SpaceImage *sima= CTX_wm_space_image(C);
- char *path= (sima->image)? sima->image->name: U.textudir;
if(!sima->image)
return OPERATOR_CANCELLED;
- if(RNA_property_is_set(op->ptr, "path"))
+ if(RNA_property_is_set(op->ptr, "filepath"))
return replace_exec(C, op);
- image_filesel(C, op, path);
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", (strncmp(sima->image->name, "//", 2))==0);
+
+ image_filesel(C, op, sima->image->name);
return OPERATOR_RUNNING_MODAL;
}
@@ -801,26 +819,27 @@ void IMAGE_OT_replace(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
}
/******************** save image as operator ********************/
/* assumes name is FILE_MAX */
/* ima->name and ibuf->name should end up the same */
-static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOperator *op, char *name)
+static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOperator *op, char *path)
{
Image *ima= ED_space_image(sima);
void *lock;
ImBuf *ibuf= ED_space_image_acquire_buffer(sima, &lock);
- int len;
- if (ibuf) {
- BLI_convertstringcode(name, G.sce);
- BLI_convertstringframe(name, scene->r.cfra, 0);
+ if (ibuf) {
+ int relative= RNA_boolean_get(op->ptr, "relative_path");
+ int save_copy= (RNA_struct_find_property(op->ptr, "copy") && RNA_boolean_get(op->ptr, "copy"));
+
+ BLI_path_abs(path, G.sce);
if(scene->r.scemode & R_EXTENSION) {
- BKE_add_image_extension(name, sima->imtypenr);
+ BKE_add_image_extension(path, sima->imtypenr);
}
/* enforce user setting for RGB or RGBA, but skip BW */
@@ -834,54 +853,63 @@ static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOpera
if(sima->imtypenr==R_MULTILAYER) {
RenderResult *rr= BKE_image_acquire_renderresult(scene, ima);
if(rr) {
- RE_WriteRenderResult(rr, name, scene->r.quality);
-
- BLI_strncpy(ima->name, name, sizeof(ima->name));
- BLI_strncpy(ibuf->name, name, sizeof(ibuf->name));
-
- /* should be function? nevertheless, saving only happens here */
- for(ibuf= ima->ibufs.first; ibuf; ibuf= ibuf->next)
- ibuf->userflags &= ~IB_BITMAPDIRTY;
-
+ RE_WriteRenderResult(rr, path, scene->r.quality);
+
+ if(relative)
+ BLI_path_rel(path, G.sce); /* only after saving */
+
+ if(!save_copy) {
+ BLI_strncpy(ima->name, path, sizeof(ima->name));
+ BLI_strncpy(ibuf->name, path, sizeof(ibuf->name));
+
+ /* should be function? nevertheless, saving only happens here */
+ for(ibuf= ima->ibufs.first; ibuf; ibuf= ibuf->next)
+ ibuf->userflags &= ~IB_BITMAPDIRTY;
+ }
}
else
BKE_report(op->reports, RPT_ERROR, "Did not write, no Multilayer Image");
BKE_image_release_renderresult(scene, ima);
}
- else if (BKE_write_ibuf(scene, ibuf, name, sima->imtypenr, scene->r.subimtype, scene->r.quality)) {
- BLI_strncpy(ima->name, name, sizeof(ima->name));
- BLI_strncpy(ibuf->name, name, sizeof(ibuf->name));
-
- ibuf->userflags &= ~IB_BITMAPDIRTY;
-
- /* change type? */
- if(ima->type==IMA_TYPE_R_RESULT) {
- ima->type= IMA_TYPE_IMAGE;
-
- /* workaround to ensure the render result buffer is no longer used
- * by this image, otherwise can crash when a new render result is
- * created. */
- if(ibuf->rect && !(ibuf->mall & IB_rect))
- imb_freerectImBuf(ibuf);
- if(ibuf->rect_float && !(ibuf->mall & IB_rectfloat))
- imb_freerectfloatImBuf(ibuf);
- if(ibuf->zbuf && !(ibuf->mall & IB_zbuf))
- IMB_freezbufImBuf(ibuf);
- if(ibuf->zbuf_float && !(ibuf->mall & IB_zbuffloat))
- IMB_freezbuffloatImBuf(ibuf);
- }
- if( ELEM(ima->source, IMA_SRC_GENERATED, IMA_SRC_VIEWER)) {
- ima->source= IMA_SRC_FILE;
- ima->type= IMA_TYPE_IMAGE;
+ else if (BKE_write_ibuf(scene, ibuf, path, sima->imtypenr, scene->r.subimtype, scene->r.quality)) {
+
+ if(relative)
+ BLI_path_rel(path, G.sce); /* only after saving */
+
+ if(!save_copy) {
+
+ BLI_strncpy(ima->name, path, sizeof(ima->name));
+ BLI_strncpy(ibuf->name, path, sizeof(ibuf->name));
+
+ ibuf->userflags &= ~IB_BITMAPDIRTY;
+
+ /* change type? */
+ if(ima->type==IMA_TYPE_R_RESULT) {
+ ima->type= IMA_TYPE_IMAGE;
+
+ /* workaround to ensure the render result buffer is no longer used
+ * by this image, otherwise can crash when a new render result is
+ * created. */
+ if(ibuf->rect && !(ibuf->mall & IB_rect))
+ imb_freerectImBuf(ibuf);
+ if(ibuf->rect_float && !(ibuf->mall & IB_rectfloat))
+ imb_freerectfloatImBuf(ibuf);
+ if(ibuf->zbuf && !(ibuf->mall & IB_zbuf))
+ IMB_freezbufImBuf(ibuf);
+ if(ibuf->zbuf_float && !(ibuf->mall & IB_zbuffloat))
+ IMB_freezbuffloatImBuf(ibuf);
+ }
+ if( ELEM(ima->source, IMA_SRC_GENERATED, IMA_SRC_VIEWER)) {
+ ima->source= IMA_SRC_FILE;
+ ima->type= IMA_TYPE_IMAGE;
+ }
+
+ /* name image as how we saved it */
+ rename_id(&ima->id, BLI_path_basename(path));
}
-
- /* name image as how we saved it */
- len= strlen(name);
- while (len > 0 && name[len - 1] != '/' && name[len - 1] != '\\') len--;
- rename_id(&ima->id, name+len);
}
else
- BKE_reportf(op->reports, RPT_ERROR, "Couldn't write image: %s", name);
+ BKE_reportf(op->reports, RPT_ERROR, "Couldn't write image: %s", path);
WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, sima->image);
@@ -902,7 +930,7 @@ static int save_as_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
sima->imtypenr= RNA_enum_get(op->ptr, "file_type");
- RNA_string_get(op->ptr, "path", str);
+ RNA_string_get(op->ptr, "filepath", str);
save_image_doit(C, sima, scene, op, str);
@@ -917,7 +945,10 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
ImBuf *ibuf;
void *lock;
- if(RNA_property_is_set(op->ptr, "path"))
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
+ if(RNA_property_is_set(op->ptr, "filepath"))
return save_as_exec(C, op);
if(!ima)
@@ -932,6 +963,8 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
sima->imtypenr= R_MULTILAYER;
else if(ima->type==IMA_TYPE_R_RESULT)
sima->imtypenr= scene->r.imtype;
+ else if (ima->source == IMA_SRC_GENERATED)
+ sima->imtypenr= R_PNG;
else
sima->imtypenr= BKE_ftype_to_imtype(ibuf->ftype);
@@ -939,7 +972,12 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(ibuf->name[0]==0)
BLI_strncpy(ibuf->name, G.ima, FILE_MAX);
-
+
+ /* enable save_copy by default for render results */
+ if(ELEM(ima->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE) && !RNA_property_is_set(op->ptr, "copy")) {
+ RNA_boolean_set(op->ptr, "copy", TRUE);
+ }
+
// XXX note: we can give default menu enums to operator for this
image_filesel(C, op, ibuf->name);
@@ -962,14 +1000,16 @@ void IMAGE_OT_save_as(wmOperatorType *ot)
/* api callbacks */
ot->exec= save_as_exec;
ot->invoke= save_as_invoke;
- ot->poll= space_image_poll;
+ ot->poll= space_image_buffer_exists_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
RNA_def_enum(ot->srna, "file_type", image_file_type_items, R_PNG, "File Type", "File type to save image as.");
- WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_SAVE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
+
+ RNA_def_boolean(ot->srna, "copy", 0, "Copy", "Create a new image file without modifying the current image in blender");
}
/******************** save image operator ********************/
@@ -1079,7 +1119,7 @@ static int save_sequence_exec(bContext *C, wmOperator *op)
char name[FILE_MAX];
BLI_strncpy(name, ibuf->name, sizeof(name));
- BLI_convertstringcode(name, G.sce);
+ BLI_path_abs(name, G.sce);
if(0 == IMB_saveiff(ibuf, name, IB_rect | IB_zbuf | IB_zbuffloat)) {
BKE_reportf(op->reports, RPT_ERROR, "Could not write image %s.", name);
@@ -1102,7 +1142,7 @@ void IMAGE_OT_save_sequence(wmOperatorType *ot)
/* api callbacks */
ot->exec= save_sequence_exec;
- ot->poll= space_image_poll;
+ ot->poll= space_image_buffer_exists_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1122,7 +1162,6 @@ static int reload_exec(bContext *C, wmOperator *op)
BKE_image_signal(ima, (sima)? &sima->iuser: NULL, IMA_SIGNAL_RELOAD);
WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
- ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
}
@@ -1135,7 +1174,6 @@ void IMAGE_OT_reload(wmOperatorType *ot)
/* api callbacks */
ot->exec= reload_exec;
- ot->poll= image_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1153,7 +1191,7 @@ static int new_exec(bContext *C, wmOperator *op)
PropertyRNA *prop;
char name[22];
float color[4];
- int width, height, floatbuf, uvtestgrid;
+ int width, height, floatbuf, uvtestgrid, alpha;
/* retrieve state */
sima= CTX_wm_space_image(C);
@@ -1166,9 +1204,15 @@ static int new_exec(bContext *C, wmOperator *op)
floatbuf= RNA_boolean_get(op->ptr, "float");
uvtestgrid= RNA_boolean_get(op->ptr, "uv_test_grid");
RNA_float_get_array(op->ptr, "color", color);
- color[3]= RNA_float_get(op->ptr, "alpha");
+ alpha= RNA_boolean_get(op->ptr, "alpha");
+
+ if (!floatbuf && scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
+ linearrgb_to_srgb_v3_v3(color, color);
- ima = BKE_add_image_size(width, height, name, floatbuf, uvtestgrid, color);
+ if(!alpha)
+ color[3]= 1.0f;
+
+ ima = BKE_add_image_size(width, height, name, alpha ? 32 : 24, floatbuf, uvtestgrid, color);
if(!ima)
return OPERATOR_CANCELLED;
@@ -1196,6 +1240,9 @@ static int new_exec(bContext *C, wmOperator *op)
void IMAGE_OT_new(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+ float default_color[4]= {0.0f, 0.0f, 0.0f, 1.0f};
+
/* identifiers */
ot->name= "New";
ot->idname= "IMAGE_OT_new";
@@ -1211,8 +1258,9 @@ void IMAGE_OT_new(wmOperatorType *ot)
RNA_def_string(ot->srna, "name", "Untitled", 21, "Name", "Image datablock name.");
RNA_def_int(ot->srna, "width", 1024, 1, INT_MAX, "Width", "Image width.", 1, 16384);
RNA_def_int(ot->srna, "height", 1024, 1, INT_MAX, "Height", "Image height.", 1, 16384);
- RNA_def_float_color(ot->srna, "color", 3, NULL, 0.0f, FLT_MAX, "Color", "Default fill color.", 0.0f, 1.0f);
- RNA_def_float(ot->srna, "alpha", 1.0f, 0.0f, 1.0f, "Alpha", "Default fill alpha.", 0.0f, 1.0f);
+ prop= RNA_def_float_color(ot->srna, "color", 4, NULL, 0.0f, FLT_MAX, "Color", "Default fill color.", 0.0f, 1.0f);
+ RNA_def_property_float_array_default(prop, default_color);
+ RNA_def_boolean(ot->srna, "alpha", 1, "Alpha", "Create an image with an alpha channel.");
RNA_def_boolean(ot->srna, "uv_test_grid", 0, "UV Test Grid", "Fill the image with a grid for UV map testing.");
RNA_def_boolean(ot->srna, "float", 0, "32 bit Float", "Create image with 32 bit floating point bit depth.");
}
@@ -1256,6 +1304,8 @@ static int pack_exec(bContext *C, wmOperator *op)
else
ima->packedfile= newPackedFile(op->reports, ima->name);
+ WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
+
return OPERATOR_FINISHED;
}
@@ -1286,12 +1336,12 @@ void IMAGE_OT_pack(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Pack";
+ ot->description= "Pack an image as embedded data into the .blend file";
ot->idname= "IMAGE_OT_pack";
/* api callbacks */
ot->exec= pack_exec;
ot->invoke= pack_invoke;
- ot->poll= space_image_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1302,12 +1352,14 @@ void IMAGE_OT_pack(wmOperatorType *ot)
/********************* unpack operator *********************/
-void unpack_menu(bContext *C, char *opname, char *abs_name, char *folder, PackedFile *pf)
+void unpack_menu(bContext *C, char *opname, Image *ima, char *folder, PackedFile *pf)
{
+ PointerRNA props_ptr;
uiPopupMenu *pup;
uiLayout *layout;
char line[FILE_MAXDIR + FILE_MAXFILE + 100];
char local_name[FILE_MAXDIR + FILE_MAX], fi[FILE_MAX];
+ char *abs_name = ima->name;
strcpy(local_name, abs_name);
BLI_splitdirstring(local_name, fi);
@@ -1316,23 +1368,39 @@ void unpack_menu(bContext *C, char *opname, char *abs_name, char *folder, Packed
pup= uiPupMenuBegin(C, "Unpack file", 0);
layout= uiPupMenuLayout(pup);
- uiItemEnumO(layout, "Remove Pack", 0, opname, "method", PF_REMOVE);
+ uiItemEnumO(layout, opname, "Remove Pack", 0, "method", PF_REMOVE);
if(strcmp(abs_name, local_name)) {
switch(checkPackedFile(local_name, pf)) {
case PF_NOFILE:
sprintf(line, "Create %s", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_WRITE_LOCAL);
+ props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_WRITE_LOCAL);
+ RNA_string_set(&props_ptr, "image", ima->id.name+2);
+
break;
case PF_EQUAL:
sprintf(line, "Use %s (identical)", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_USE_LOCAL);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
+ props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_USE_LOCAL);
+ RNA_string_set(&props_ptr, "image", ima->id.name+2);
+
break;
case PF_DIFFERS:
sprintf(line, "Use %s (differs)", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_USE_LOCAL);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
+ props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_USE_LOCAL);
+ RNA_string_set(&props_ptr, "image", ima->id.name);
+
sprintf(line, "Overwrite %s", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_WRITE_LOCAL);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_LOCAL);
+ props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_WRITE_LOCAL);
+ RNA_string_set(&props_ptr, "image", ima->id.name+2);
+
+
break;
}
}
@@ -1340,17 +1408,30 @@ void unpack_menu(bContext *C, char *opname, char *abs_name, char *folder, Packed
switch(checkPackedFile(abs_name, pf)) {
case PF_NOFILE:
sprintf(line, "Create %s", abs_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_WRITE_ORIGINAL);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
+ props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_WRITE_ORIGINAL);
+ RNA_string_set(&props_ptr, "image", ima->id.name+2);
break;
case PF_EQUAL:
sprintf(line, "Use %s (identical)", abs_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_USE_ORIGINAL);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
+ props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_USE_ORIGINAL);
+ RNA_string_set(&props_ptr, "image", ima->id.name+2);
break;
case PF_DIFFERS:
sprintf(line, "Use %s (differs)", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_USE_ORIGINAL);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
+ props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_USE_ORIGINAL);
+ RNA_string_set(&props_ptr, "image", ima->id.name+2);
+
sprintf(line, "Overwrite %s", local_name);
- uiItemEnumO(layout, line, 0, opname, "method", PF_WRITE_ORIGINAL);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
+ props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_WRITE_ORIGINAL);
+ RNA_string_set(&props_ptr, "image", ima->id.name+2);
break;
}
@@ -1362,6 +1443,14 @@ static int unpack_exec(bContext *C, wmOperator *op)
Image *ima= CTX_data_edit_image(C);
int method= RNA_enum_get(op->ptr, "method");
+ /* find the suppplied image by name */
+ if (RNA_property_is_set(op->ptr, "image")) {
+ char imaname[22];
+ RNA_string_get(op->ptr, "image", imaname);
+ ima = BLI_findstring(&CTX_data_main(C)->image, imaname, offsetof(ID, name) + 2);
+ if (!ima) ima = CTX_data_edit_image(C);
+ }
+
if(!ima || !ima->packedfile)
return OPERATOR_CANCELLED;
@@ -1372,8 +1461,10 @@ static int unpack_exec(bContext *C, wmOperator *op)
if(G.fileflags & G_AUTOPACK)
BKE_report(op->reports, RPT_WARNING, "AutoPack is enabled, so image will be packed again on file save.");
-
+
unpackImage(op->reports, ima, method);
+
+ WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
return OPERATOR_FINISHED;
}
@@ -1382,6 +1473,9 @@ static int unpack_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
Image *ima= CTX_data_edit_image(C);
+ if(RNA_property_is_set(op->ptr, "image"))
+ return unpack_exec(C, op);
+
if(!ima || !ima->packedfile)
return OPERATOR_CANCELLED;
@@ -1393,7 +1487,7 @@ static int unpack_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(G.fileflags & G_AUTOPACK)
BKE_report(op->reports, RPT_WARNING, "AutoPack is enabled, so image will be packed again on file save.");
- unpack_menu(C, "IMAGE_OT_unpack", ima->name, "textures", ima->packedfile);
+ unpack_menu(C, "IMAGE_OT_unpack", ima, "textures", ima->packedfile);
return OPERATOR_FINISHED;
}
@@ -1402,18 +1496,19 @@ void IMAGE_OT_unpack(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Unpack";
+ ot->description= "Save an image packed in the .blend file to disk";
ot->idname= "IMAGE_OT_unpack";
/* api callbacks */
ot->exec= unpack_exec;
ot->invoke= unpack_invoke;
- ot->poll= space_image_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
RNA_def_enum(ot->srna, "method", unpack_method_items, PF_USE_LOCAL, "Method", "How to unpack.");
+ RNA_def_string(ot->srna, "image", "", 21, "Image Name", "Image datablock name to unpack.");
}
/******************** sample image operator ********************/
@@ -1503,7 +1598,7 @@ static void sample_apply(bContext *C, wmOperator *op, wmEvent *event)
info->colf[0]= fp[0];
info->colf[1]= fp[1];
info->colf[2]= fp[2];
- info->colf[3]= fp[4];
+ info->colf[3]= fp[3];
info->colfp= info->colf;
}
@@ -1623,6 +1718,116 @@ void IMAGE_OT_sample(wmOperatorType *ot)
ot->flag= OPTYPE_BLOCKING;
}
+/******************** sample line operator ********************/
+static int sample_line_exec(bContext *C, wmOperator *op)
+{
+ SpaceImage *sima= CTX_wm_space_image(C);
+ ARegion *ar= CTX_wm_region(C);
+ Scene *scene= CTX_data_scene(C);
+
+ int x_start= RNA_int_get(op->ptr, "xstart");
+ int y_start= RNA_int_get(op->ptr, "ystart");
+ int x_end= RNA_int_get(op->ptr, "xend");
+ int y_end= RNA_int_get(op->ptr, "yend");
+
+ void *lock;
+ ImBuf *ibuf= ED_space_image_acquire_buffer(sima, &lock);
+ Histogram *hist= &sima->sample_line_hist;
+
+ float x1f, y1f, x2f, y2f;
+ int x1, y1, x2, y2;
+ int i, x, y;
+ float *fp;
+ float rgb[3];
+ unsigned char *cp;
+
+ if (ibuf == NULL) {
+ ED_space_image_release_buffer(sima, lock);
+ return OPERATOR_CANCELLED;
+ }
+ /* hmmmm */
+ if (ibuf->channels < 3) {
+ ED_space_image_release_buffer(sima, lock);
+ return OPERATOR_CANCELLED;
+ }
+
+ UI_view2d_region_to_view(&ar->v2d, x_start, y_start, &x1f, &y1f);
+ UI_view2d_region_to_view(&ar->v2d, x_end, y_end, &x2f, &y2f);
+ x1= 0.5f+ x1f*ibuf->x;
+ x2= 0.5f+ x2f*ibuf->x;
+ y1= 0.5f+ y1f*ibuf->y;
+ y2= 0.5f+ y2f*ibuf->y;
+
+ hist->channels = 3;
+ hist->x_resolution = 256;
+ hist->xmax = 1.0f;
+ hist->ymax = 1.0f;
+
+ for (i=0; i<256; i++) {
+ x= (int)(0.5f + x1 + (float)i*(x2-x1)/255.0f);
+ y= (int)(0.5f + y1 + (float)i*(y2-y1)/255.0f);
+
+ if (x<0 || y<0 || x>=ibuf->x || y>=ibuf->y) {
+ hist->data_luma[i] = hist->data_r[i] = hist->data_g[i]= hist->data_b[i] = 0.0f;
+ } else {
+ if (ibuf->rect_float) {
+ fp= (ibuf->rect_float + (ibuf->channels)*(y*ibuf->x + x));
+
+ if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
+ linearrgb_to_srgb_v3_v3(rgb, fp);
+ else
+ copy_v3_v3(rgb, fp);
+
+ hist->data_r[i] = rgb[0];
+ hist->data_g[i] = rgb[1];
+ hist->data_b[i] = rgb[2];
+ hist->data_luma[i] = (0.299f*rgb[0] + 0.587f*rgb[1] + 0.114f*rgb[2]);
+ }
+ else if (ibuf->rect) {
+ cp= (unsigned char *)(ibuf->rect + y*ibuf->x + x);
+ hist->data_r[i] = (float)cp[0]/255.0f;
+ hist->data_g[i] = (float)cp[1]/255.0f;
+ hist->data_b[i] = (float)cp[2]/255.0f;
+ hist->data_luma[i] = (0.299f*cp[0] + 0.587f*cp[1] + 0.114f*cp[2])/255;
+ }
+ }
+ }
+
+ ED_space_image_release_buffer(sima, lock);
+
+ ED_area_tag_redraw(CTX_wm_area(C));
+
+ return OPERATOR_FINISHED;
+}
+
+static int sample_line_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceImage *sima= CTX_wm_space_image(C);
+
+ if(!ED_space_image_has_buffer(sima))
+ return OPERATOR_CANCELLED;
+
+ return WM_gesture_straightline_invoke(C, op, event);
+}
+
+void IMAGE_OT_sample_line(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Sample Line";
+ ot->idname= "IMAGE_OT_sample_line";
+
+ /* api callbacks */
+ ot->invoke= sample_line_invoke;
+ ot->modal= WM_gesture_straightline_modal;
+ ot->exec= sample_line_exec;
+ ot->poll= space_image_main_area_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ WM_operator_properties_gesture_straightline(ot, CURSOR_EDIT);
+}
+
/******************** set curve point operator ********************/
void IMAGE_OT_curves_point_set(wmOperatorType *ot)
@@ -1795,7 +2000,7 @@ void IMAGE_OT_record_composite(wmOperatorType *ot)
ot->invoke= record_composite_invoke;
ot->modal= record_composite_modal;
ot->cancel= record_composite_cancel;
- ot->poll= space_image_poll;
+ ot->poll= space_image_buffer_exists_poll;
}
/********************* cycle render slot operator *********************/
@@ -1809,21 +2014,21 @@ static int cycle_render_slot_poll(bContext *C)
static int cycle_render_slot_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
- int a, slot, cur= RE_GetViewSlot();
+ Image *ima= CTX_data_edit_image(C);
+ int a, slot, cur= ima->render_slot;
- for(a=1; a<RE_SLOT_MAX; a++) {
- slot= (cur+a)%RE_SLOT_MAX;
+ for(a=1; a<IMA_MAX_RENDER_SLOT; a++) {
+ slot= (cur+a)%IMA_MAX_RENDER_SLOT;
- if(RE_GetRender(scene->id.name, slot)) {
- RE_SetViewSlot(slot);
+ if(ima->renders[slot] || slot == ima->last_render_slot) {
+ ima->render_slot= slot;
break;
}
}
- if(a == RE_SLOT_MAX)
- RE_SetViewSlot((cur == 1)? 0: 1);
-
+ if(a == IMA_MAX_RENDER_SLOT)
+ ima->render_slot= ((cur == 1)? 0: 1);
+
WM_event_add_notifier(C, NC_IMAGE|ND_DRAW, NULL);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_image/image_render.c b/source/blender/editors/space_image/image_render.c
index 97b5f9847ff..18e42ce8797 100644
--- a/source/blender/editors/space_image/image_render.c
+++ b/source/blender/editors/space_image/image_render.c
@@ -28,7 +28,6 @@
#include <stdlib.h>
#include <stdio.h>
-#include "DNA_image_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
@@ -40,11 +39,9 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "ED_screen.h"
#include "RE_pipeline.h"
-#include "WM_api.h"
#define HEADER_HEIGHT 18
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 29041899fa3..28669847814 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,13 +29,9 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_image_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -55,8 +51,6 @@
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
-#include "ED_gpencil.h"
-#include "ED_image.h"
#include "ED_mesh.h"
#include "ED_space_api.h"
#include "ED_screen.h"
@@ -70,7 +64,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -107,6 +100,7 @@ void ED_space_image_set(bContext *C, SpaceImage *sima, Scene *scene, Object *obe
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
ED_area_tag_redraw(CTX_wm_area(C));
+
}
}
@@ -185,6 +179,12 @@ void ED_space_image_size(SpaceImage *sima, int *width, int *height)
/* not very important, just nice */
*width= (scene->r.xsch*scene->r.size)/100;
*height= (scene->r.ysch*scene->r.size)/100;
+
+ if((scene->r.mode & R_BORDER) && (scene->r.mode & R_CROP)) {
+ *width *= (scene->r.border.xmax - scene->r.border.xmin);
+ *height *= (scene->r.border.ymax - scene->r.border.ymin);
+ }
+
}
/* I know a bit weak... but preview uses not actual image size */
// XXX else if(image_preview_active(sima, width, height));
@@ -296,21 +296,21 @@ int ED_space_image_show_uvshadow(SpaceImage *sima, Object *obedit)
}
-
-static void image_histogram_tag_refresh(ScrArea *sa)
+static void image_scopes_tag_refresh(ScrArea *sa)
{
SpaceImage *sima= (SpaceImage *)sa->spacedata.first;
ARegion *ar;
-
+
/* only while histogram is visible */
for (ar=sa->regionbase.first; ar; ar=ar->next) {
if (ar->regiontype == RGN_TYPE_PREVIEW && ar->flag & RGN_FLAG_HIDDEN)
return;
}
-
- sima->hist.ok=0;
+
+ sima->scopes.ok=0;
}
+
/* ******************** manage regions ********************* */
ARegion *image_has_buttons_region(ScrArea *sa)
@@ -363,8 +363,8 @@ ARegion *image_has_scope_region(ScrArea *sa)
arnew->alignment= RGN_ALIGN_RIGHT;
arnew->flag = RGN_FLAG_HIDDEN;
-
- image_histogram_tag_refresh(sa);
+
+ image_scopes_tag_refresh(sa);
return arnew;
}
@@ -384,6 +384,8 @@ static SpaceLink *image_new(const bContext *C)
simage->iuser.ok= 1;
simage->iuser.fie_ima= 2;
simage->iuser.frames= 100;
+
+ scopes_new(&simage->scopes);
/* header */
ar= MEM_callocN(sizeof(ARegion), "header for image");
@@ -407,7 +409,7 @@ static SpaceLink *image_new(const bContext *C)
ar->regiontype= RGN_TYPE_PREVIEW;
ar->alignment= RGN_ALIGN_RIGHT;
ar->flag = RGN_FLAG_HIDDEN;
-
+
/* main area */
ar= MEM_callocN(sizeof(ARegion), "main area for image");
@@ -424,9 +426,7 @@ static void image_free(SpaceLink *sl)
if(simage->cumap)
curvemapping_free(simage->cumap);
-// if(simage->gpd)
-// XXX free_gpencil_data(simage->gpd);
-
+ scopes_free(&simage->scopes);
}
@@ -474,6 +474,7 @@ void image_operatortypes(void)
WM_operatortype_append(IMAGE_OT_cycle_render_slot);
WM_operatortype_append(IMAGE_OT_sample);
+ WM_operatortype_append(IMAGE_OT_sample_line);
WM_operatortype_append(IMAGE_OT_curves_point_set);
WM_operatortype_append(IMAGE_OT_record_composite);
@@ -530,7 +531,7 @@ void image_keymap(struct wmKeyConfig *keyconf)
static int image_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
{
if(drag->type==WM_DRAG_PATH)
- if(ELEM(drag->icon, ICON_FILE_IMAGE, ICON_FILE_BLANK)) /* rule might not work? */
+ if(ELEM3(drag->icon, 0, ICON_FILE_IMAGE, ICON_FILE_BLANK)) /* rule might not work? */
return 1;
return 0;
}
@@ -538,7 +539,7 @@ static int image_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
static void image_drop_copy(wmDrag *drag, wmDropBox *drop)
{
/* copy drag path to properties */
- RNA_string_set(drop->ptr, "path", drag->path);
+ RNA_string_set(drop->ptr, "filepath", drag->path);
}
/* area+region dropbox definition */
@@ -559,6 +560,9 @@ static void image_refresh(const bContext *C, ScrArea *sa)
ima= ED_space_image(sima);
+ if(sima->iuser.flag & IMA_ANIM_ALWAYS)
+ BKE_image_user_calc_frame(&sima->iuser, CTX_data_scene(C)->r.cfra, 0);
+
/* check if we have to set the image from the editmesh */
if(ima && (ima->source==IMA_SRC_VIEWER || sima->pin));
else if(obedit && obedit->type == OB_MESH) {
@@ -590,26 +594,33 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn)
switch(wmn->category) {
case NC_SCENE:
switch(wmn->data) {
+ case ND_FRAME:
+ image_scopes_tag_refresh(sa);
+ ED_area_tag_refresh(sa);
+ ED_area_tag_redraw(sa);
+ break;
case ND_MODE:
case ND_RENDER_RESULT:
case ND_COMPO_RESULT:
if (ED_space_image_show_render(sima))
- image_histogram_tag_refresh(sa);
+ image_scopes_tag_refresh(sa);
ED_area_tag_refresh(sa);
- ED_area_tag_redraw(sa);
+ ED_area_tag_redraw(sa);
break;
}
break;
case NC_IMAGE:
if (wmn->reference == sima->image || !wmn->reference) {
- image_histogram_tag_refresh(sa);
+ image_scopes_tag_refresh(sa);
ED_area_tag_refresh(sa);
ED_area_tag_redraw(sa);
}
break;
case NC_SPACE:
- if(wmn->data == ND_SPACE_IMAGE)
+ if(wmn->data == ND_SPACE_IMAGE) {
+ image_scopes_tag_refresh(sa);
ED_area_tag_redraw(sa);
+ }
break;
case NC_GEOM:
switch(wmn->data) {
@@ -619,6 +630,15 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn)
ED_area_tag_redraw(sa);
break;
}
+ case NC_OBJECT:
+ switch(wmn->data) {
+ case ND_TRANSFORM:
+ if(sima->lock && (sima->flag & SI_DRAWSHADOW)) {
+ ED_area_tag_refresh(sa);
+ ED_area_tag_redraw(sa);
+ }
+ break;
+ }
}
}
@@ -766,7 +786,10 @@ static void image_main_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch(wmn->category) {
- /* nothing yet */
+ case NC_SCREEN:
+ if (wmn->data==ND_GPENCIL)
+ ED_region_tag_redraw(ar);
+ break;
}
}
@@ -792,6 +815,10 @@ static void image_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch(wmn->category) {
+ case NC_SCREEN:
+ if (wmn->data==ND_GPENCIL)
+ ED_region_tag_redraw(ar);
+ break;
case NC_BRUSH:
if(wmn->action==NA_EDITED)
ED_region_tag_redraw(ar);
@@ -815,10 +842,12 @@ static void image_scope_area_init(wmWindowManager *wm, ARegion *ar)
static void image_scope_area_draw(const bContext *C, ARegion *ar)
{
SpaceImage *sima= CTX_wm_space_image(C);
+ Scene *scene= CTX_data_scene(C);
void *lock;
ImBuf *ibuf= ED_space_image_acquire_buffer(sima, &lock);
- if(ibuf)
- histogram_update(&sima->hist, ibuf);
+ if(ibuf) {
+ scopes_update(&sima->scopes, ibuf, scene->r.color_mgt_flag & R_COLOR_MANAGEMENT );
+ }
ED_space_image_release_buffer(sima, lock);
ED_region_panels(C, ar, 1, NULL, -1);
@@ -860,6 +889,29 @@ static void image_header_area_draw(const bContext *C, ARegion *ar)
ED_region_header(C, ar);
}
+static void image_header_area_listener(ARegion *ar, wmNotifier *wmn)
+{
+ /* context changes */
+ switch(wmn->category) {
+ case NC_SCENE:
+ switch(wmn->data) {
+ case ND_MODE:
+ case ND_TOOLSETTINGS:
+ ED_region_tag_redraw(ar);
+ break;
+ }
+ break;
+ case NC_GEOM:
+ switch(wmn->data) {
+ case ND_DATA:
+ case ND_SELECT:
+ ED_region_tag_redraw(ar);
+ break;
+ }
+
+ }
+}
+
/**************************** spacetype *****************************/
/* only called once, from space/spacetypes.c */
@@ -919,6 +971,7 @@ void ED_spacetype_image(void)
art->regionid = RGN_TYPE_HEADER;
art->prefsizey= HEADERY;
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES|ED_KEYMAP_HEADER;
+ art->listener= image_header_area_listener;
art->init= image_header_area_init;
art->draw= image_header_area_draw;
diff --git a/source/blender/editors/space_info/CMakeLists.txt b/source/blender/editors/space_info/CMakeLists.txt
new file mode 100644
index 00000000000..473f1f2fcff
--- /dev/null
+++ b/source/blender/editors/space_info/CMakeLists.txt
@@ -0,0 +1,36 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../../imbuf
+ ../../bmesh
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_space_info "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_info/SConscript b/source/blender/editors/space_info/SConscript
index ba1110274ff..cf1d8ab7d77 100644
--- a/source/blender/editors/space_info/SConscript
+++ b/source/blender/editors/space_info/SConscript
@@ -8,7 +8,4 @@ incs += ' ../../bmesh ../../windowmanager #/intern/guardedalloc #/extern/glew/in
defs = []
-if env['WITH_BF_GAMEENGINE']:
- defs.append('GAMEBLENDER=1')
-
env.BlenderLib ( 'bf_editors_space_info', sources, Split(incs), defs, libtype=['core'], priority=[70] )
diff --git a/source/blender/editors/space_info/info_intern.h b/source/blender/editors/space_info/info_intern.h
index 939d984a0d8..4053bbf5a1f 100644
--- a/source/blender/editors/space_info/info_intern.h
+++ b/source/blender/editors/space_info/info_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -39,5 +39,7 @@ void FILE_OT_make_paths_absolute(struct wmOperatorType *ot);
void FILE_OT_report_missing_files(struct wmOperatorType *ot);
void FILE_OT_find_missing_files(struct wmOperatorType *ot);
+void INFO_OT_reports_display_update(struct wmOperatorType *ot);
+
#endif /* ED_INFO_INTERN_H */
diff --git a/source/blender/editors/space_info/info_ops.c b/source/blender/editors/space_info/info_ops.c
index 072c5bf1573..62e82f83e58 100644
--- a/source/blender/editors/space_info/info_ops.c
+++ b/source/blender/editors/space_info/info_ops.c
@@ -31,14 +31,12 @@
#include "DNA_packedFile_types.h"
#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_math.h"
#include "BLI_bpath.h"
#include "BKE_context.h"
@@ -49,9 +47,6 @@
#include "BKE_report.h"
#include "BKE_screen.h"
-#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -60,14 +55,12 @@
#include "BIF_glutil.h"
#include "UI_interface.h"
-#include "UI_resources.h"
#include "IMB_imbuf_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
-#include "WM_types.h"
#include "info_intern.h"
@@ -278,7 +271,7 @@ static int find_missing_files_exec(bContext *C, wmOperator *op)
{
char *path;
- path= RNA_string_get_alloc(op->ptr, "path", NULL, 0);
+ path= RNA_string_get_alloc(op->ptr, "filepath", NULL, 0);
findMissingFiles(path, G.sce);
MEM_freeN(path);
@@ -306,5 +299,102 @@ void FILE_OT_find_missing_files(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH);
+}
+
+/********************* report box operator *********************/
+
+/* Hard to decide whether to keep this as an operator,
+ * or turn it into a hardcoded ui control feature,
+ * handling TIMER events for all regions in interface_handlers.c
+ * Not sure how good that is to be accessing UI data from
+ * inactive regions, so use this for now. --matt
+ */
+
+#define INFO_TIMEOUT 5.0
+#define INFO_COLOR_TIMEOUT 3.0
+#define ERROR_TIMEOUT 10.0
+#define ERROR_COLOR_TIMEOUT 6.0
+#define COLLAPSE_TIMEOUT 0.2
+static int update_reports_display_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ wmWindowManager *wm= CTX_wm_manager(C);
+ ReportList *reports= CTX_wm_reports(C);
+ Report *report;
+ ReportTimerInfo *rti;
+ float progress=0.0, color_progress=0.0;
+ float neutral_col[3] = {0.35, 0.35, 0.35};
+ float neutral_grey= 0.6;
+ float timeout=0.0, color_timeout=0.0;
+
+ /* escape if not our timer */
+ if(reports->reporttimer==NULL || reports->reporttimer != event->customdata)
+ return OPERATOR_PASS_THROUGH;
+
+ report= BKE_reports_last_displayable(reports);
+ rti = (ReportTimerInfo *)reports->reporttimer->customdata;
+
+ timeout = (report->type & RPT_ERROR_ALL)?ERROR_TIMEOUT:INFO_TIMEOUT;
+ color_timeout = (report->type & RPT_ERROR_ALL)?ERROR_COLOR_TIMEOUT:INFO_COLOR_TIMEOUT;
+
+ /* clear the report display after timeout */
+ if (reports->reporttimer->duration > timeout) {
+ WM_event_remove_timer(wm, NULL, reports->reporttimer);
+ reports->reporttimer = NULL;
+
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_INFO, NULL);
+
+ return (OPERATOR_FINISHED|OPERATOR_PASS_THROUGH);
+ }
+
+ if (rti->widthfac == 0.0) {
+ /* initialise colours based on report type */
+ if(report->type & RPT_ERROR_ALL) {
+ rti->col[0] = 1.0;
+ rti->col[1] = 0.2;
+ rti->col[2] = 0.0;
+ } else if(report->type & RPT_WARNING_ALL) {
+ rti->col[0] = 1.0;
+ rti->col[1] = 1.0;
+ rti->col[2] = 0.0;
+ } else if(report->type & RPT_INFO_ALL) {
+ rti->col[0] = 0.3;
+ rti->col[1] = 0.45;
+ rti->col[2] = 0.7;
+ }
+ rti->greyscale = 0.75;
+ rti->widthfac=1.0;
+ }
+
+ progress = reports->reporttimer->duration / timeout;
+ color_progress = reports->reporttimer->duration / color_timeout;
+
+ /* fade colours out sharply according to progress through fade-out duration */
+ interp_v3_v3v3(rti->col, rti->col, neutral_col, color_progress);
+ rti->greyscale = interpf(neutral_grey, rti->greyscale, color_progress);
+
+ /* collapse report at end of timeout */
+ if (progress*timeout > timeout - COLLAPSE_TIMEOUT) {
+ rti->widthfac = (progress*timeout - (timeout - COLLAPSE_TIMEOUT)) / COLLAPSE_TIMEOUT;
+ rti->widthfac = 1.0 - rti->widthfac;
+ }
+
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_INFO, NULL);
+
+ return (OPERATOR_FINISHED|OPERATOR_PASS_THROUGH);
+}
+
+void INFO_OT_reports_display_update(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Update Reports Display";
+ ot->idname= "INFO_OT_reports_display_update";
+
+ /* api callbacks */
+ ot->invoke= update_reports_display_invoke;
+
+ /* flags */
+ ot->flag= 0;
+
+ /* properties */
}
diff --git a/source/blender/editors/space_info/info_stats.c b/source/blender/editors/space_info/info_stats.c
index 41fc87151bd..68058a5315d 100644
--- a/source/blender/editors/space_info/info_stats.c
+++ b/source/blender/editors/space_info/info_stats.c
@@ -27,15 +27,11 @@
#include "MEM_guardedalloc.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_curve_types.h"
#include "DNA_group_types.h"
#include "DNA_lattice_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
-#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
#include "BKE_anim.h"
diff --git a/source/blender/editors/space_info/space_info.c b/source/blender/editors/space_info/space_info.c
index f6cc25e9074..0f483f4bcec 100644
--- a/source/blender/editors/space_info/space_info.c
+++ b/source/blender/editors/space_info/space_info.c
@@ -29,10 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -42,10 +38,10 @@
#include "BKE_context.h"
#include "BKE_colortools.h"
+#include "BKE_global.h"
#include "BKE_screen.h"
#include "BKE_utildefines.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
@@ -53,12 +49,8 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
-
-#include "ED_markers.h"
-#include "ED_object.h"
+#include "UI_interface.h"
#include "info_intern.h" // own include
@@ -120,11 +112,9 @@ static void info_main_area_init(wmWindowManager *wm, ARegion *ar)
static void info_main_area_draw(const bContext *C, ARegion *ar)
{
- float col[3];
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
}
@@ -136,11 +126,15 @@ void info_operatortypes(void)
WM_operatortype_append(FILE_OT_make_paths_absolute);
WM_operatortype_append(FILE_OT_report_missing_files);
WM_operatortype_append(FILE_OT_find_missing_files);
+
+ WM_operatortype_append(INFO_OT_reports_display_update);
}
void info_keymap(struct wmKeyConfig *keyconf)
{
+ wmKeyMap *keymap= WM_keymap_find(keyconf, "Window", 0, 0);
+ WM_keymap_verify_item(keymap, "INFO_OT_reports_display_update", TIMER, KM_ANY, KM_ANY, 0);
}
/* add handlers, stuff you only do once or on area/region changes */
@@ -167,6 +161,10 @@ static void info_header_listener(ARegion *ar, wmNotifier *wmn)
if(ELEM(wmn->data, ND_SCREENCAST, ND_ANIMPLAY))
ED_region_tag_redraw(ar);
break;
+ case NC_WM:
+ if(wmn->data == ND_JOB)
+ ED_region_tag_redraw(ar);
+ break;
case NC_SCENE:
if(wmn->data==ND_RENDER_RESULT)
ED_region_tag_redraw(ar);
@@ -182,6 +180,31 @@ static void info_header_listener(ARegion *ar, wmNotifier *wmn)
}
+static void recent_files_menu(const bContext *C, Menu *menu)
+{
+ struct RecentFile *recent;
+ uiLayout *layout= menu->layout;
+ uiLayoutSetOperatorContext(layout, WM_OP_EXEC_REGION_WIN);
+ if (G.recent_files.first) {
+ for(recent = G.recent_files.first; (recent); recent = recent->next) {
+ uiItemStringO(layout, BLI_path_basename(recent->filepath), ICON_FILE_BLEND, "WM_OT_open_mainfile", "filepath", recent->filepath);
+ }
+ } else {
+ uiItemL(layout, "No Recent Files", 0);
+ }
+}
+
+void recent_files_menu_register()
+{
+ MenuType *mt;
+
+ mt= MEM_callocN(sizeof(MenuType), "spacetype info menu recent files");
+ strcpy(mt->idname, "INFO_MT_file_open_recent");
+ strcpy(mt->label, "Open Recent...");
+ mt->draw= recent_files_menu;
+ WM_menutype_add(mt);
+}
+
/* only called once, from space/spacetypes.c */
void ED_spacetype_info(void)
{
@@ -220,7 +243,8 @@ void ED_spacetype_info(void)
BLI_addhead(&st->regiontypes, art);
-
+ recent_files_menu_register();
+
BKE_spacetype_register(st);
}
diff --git a/source/blender/editors/space_logic/CMakeLists.txt b/source/blender/editors/space_logic/CMakeLists.txt
new file mode 100644
index 00000000000..91087d57f11
--- /dev/null
+++ b/source/blender/editors/space_logic/CMakeLists.txt
@@ -0,0 +1,39 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../editors/interface
+)
+
+IF(WITH_GAMEENGINE)
+ ADD_DEFINITIONS(-DGAMEBLENDER)
+ENDIF(WITH_GAMEENGINE)
+
+BLENDERLIB(bf_editor_space_logic "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_logic/logic_buttons.c b/source/blender/editors/space_logic/logic_buttons.c
index 21f43af7980..6fb019cda35 100644
--- a/source/blender/editors/space_logic/logic_buttons.c
+++ b/source/blender/editors/space_logic/logic_buttons.c
@@ -28,11 +28,6 @@
#include <stdio.h>
#include "DNA_object_types.h"
-#include "DNA_node_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_meshdata_types.h"
#include "MEM_guardedalloc.h"
@@ -49,9 +44,7 @@
#include "BKE_screen.h"
#include "BKE_utildefines.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
-#include "ED_util.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -63,7 +56,6 @@
#include "WM_types.h"
#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
#include "interface_intern.h"
diff --git a/source/blender/editors/space_logic/logic_header.c b/source/blender/editors/space_logic/logic_header.c
index 789c00a6aa5..3e38eb815fb 100644
--- a/source/blender/editors/space_logic/logic_header.c
+++ b/source/blender/editors/space_logic/logic_header.c
@@ -29,10 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -46,8 +42,6 @@
#include "ED_types.h"
#include "ED_util.h"
-#include "WM_api.h"
-#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
diff --git a/source/blender/editors/space_logic/logic_intern.h b/source/blender/editors/space_logic/logic_intern.h
index 6a4888c3bf1..3b2b6497cdc 100644
--- a/source/blender/editors/space_logic/logic_intern.h
+++ b/source/blender/editors/space_logic/logic_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -54,6 +54,7 @@ void LOGIC_OT_links_cut(struct wmOperatorType *ot);
/* logic_window.c */
void logic_buttons(struct bContext *C, struct ARegion *ar);
+void make_unique_prop_names(struct bContext *C, char *str);
#endif /* ED_LOGIC_INTERN_H */
diff --git a/source/blender/editors/space_logic/logic_ops.c b/source/blender/editors/space_logic/logic_ops.c
new file mode 100644
index 00000000000..2a179ac281c
--- /dev/null
+++ b/source/blender/editors/space_logic/logic_ops.c
@@ -0,0 +1,697 @@
+/**
+ * $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) 2009 Blender Foundation.
+ * All rights reserved.
+ *
+ *
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+#include <stddef.h>
+
+#include "DNA_object_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_sensor_types.h"
+#include "DNA_controller_types.h"
+#include "DNA_actuator_types.h"
+
+#include "BLI_blenlib.h"
+
+#include "BKE_context.h"
+#include "BKE_main.h"
+#include "BKE_sca.h"
+
+#include "ED_object.h"
+#include "ED_screen.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "logic_intern.h"
+
+/* ************* Generic Operator Helpers ************* */
+
+static int edit_sensor_poll(bContext *C)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "sensor", &RNA_Sensor);
+
+ if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+ return 1;
+}
+
+static int edit_controller_poll(bContext *C)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "controller", &RNA_Controller);
+
+ if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+ return 1;
+}
+
+static int edit_actuator_poll(bContext *C)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "actuator", &RNA_Actuator);
+
+ if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+ return 1;
+}
+
+static void edit_sensor_properties(wmOperatorType *ot)
+{
+ RNA_def_string(ot->srna, "sensor", "", 32, "Sensor", "Name of the sensor to edit");
+ RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the object the sensor belongs to");
+}
+
+static int edit_sensor_invoke_properties(bContext *C, wmOperator *op)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "sensor", &RNA_Sensor);
+
+ if (RNA_property_is_set(op->ptr, "sensor") && RNA_property_is_set(op->ptr, "object") )
+ return 1;
+
+ if (ptr.data) {
+ bSensor *sens = ptr.data;
+ Object *ob = ptr.id.data;
+
+ RNA_string_set(op->ptr, "sensor", sens->name);
+ RNA_string_set(op->ptr, "object", ob->id.name+2);
+ return 1;
+ }
+
+ return 0;
+}
+
+static Object *edit_object_property_get(bContext *C, wmOperator *op)
+{
+ char ob_name[32];
+ Object *ob;
+
+ RNA_string_get(op->ptr, "object", ob_name);
+
+ /* if ob_name is valid try to find the object with this name
+ otherwise gets the active object */
+ if (BLI_strnlen(ob_name, 32) > 0)
+ ob = BLI_findstring(&(CTX_data_main(C)->object), ob_name, offsetof(ID, name) + 2);
+ else
+ ob= ED_object_active_context(C);
+
+ return ob;
+}
+
+static bSensor *edit_sensor_property_get(bContext *C, wmOperator *op, Object **ob)
+{
+ char sensor_name[32];
+ bSensor *sens;
+
+ RNA_string_get(op->ptr, "sensor", sensor_name);
+
+ *ob= edit_object_property_get(C, op);
+ if (!*ob) return NULL;
+
+ sens = BLI_findstring(&((*ob)->sensors), sensor_name, offsetof(bSensor, name));
+ return sens;
+}
+
+static void edit_controller_properties(wmOperatorType *ot)
+{
+ RNA_def_string(ot->srna, "controller", "", 32, "Controller", "Name of the controller to edit");
+ RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the object the controller belongs to");
+}
+
+static int edit_controller_invoke_properties(bContext *C, wmOperator *op)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "controller", &RNA_Controller);
+
+ if (RNA_property_is_set(op->ptr, "controller") && RNA_property_is_set(op->ptr, "object") )
+ return 1;
+
+ if (ptr.data) {
+ bController *cont = ptr.data;
+ Object *ob = ptr.id.data;
+
+ RNA_string_set(op->ptr, "controller", cont->name);
+ RNA_string_set(op->ptr, "object", ob->id.name+2);
+ return 1;
+ }
+
+ return 0;
+}
+
+static bController *edit_controller_property_get(bContext *C, wmOperator *op, Object **ob)
+{
+ char controller_name[32];
+ bController *cont;
+
+ RNA_string_get(op->ptr, "controller", controller_name);
+
+ *ob= edit_object_property_get(C, op);
+ if (!*ob) return NULL;
+
+ cont = BLI_findstring(&((*ob)->controllers), controller_name, offsetof(bController, name));
+ return cont;
+}
+
+static void edit_actuator_properties(wmOperatorType *ot)
+{
+ RNA_def_string(ot->srna, "actuator", "", 32, "Actuator", "Name of the actuator to edit");
+ RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the object the actuator belongs to");
+}
+
+static int edit_actuator_invoke_properties(bContext *C, wmOperator *op)
+{
+ PointerRNA ptr= CTX_data_pointer_get_type(C, "actuator", &RNA_Actuator);
+
+ if (RNA_property_is_set(op->ptr, "actuator") && RNA_property_is_set(op->ptr, "object") )
+ return 1;
+
+ if (ptr.data) {
+ bActuator *act = ptr.data;
+ Object *ob = ptr.id.data;
+
+ RNA_string_set(op->ptr, "actuator",act->name);
+ RNA_string_set(op->ptr, "object", ob->id.name+2);
+ return 1;
+ }
+
+ return 0;
+}
+
+static bActuator *edit_actuator_property_get(bContext *C, wmOperator *op, Object **ob)
+{
+ char actuator_name[32];
+ bActuator *act;
+
+ RNA_string_get(op->ptr, "actuator", actuator_name);
+
+ *ob= edit_object_property_get(C, op);
+ if (!*ob) return NULL;
+
+ act = BLI_findstring(&((*ob)->actuators), actuator_name, offsetof(bActuator, name));
+ return act;
+}
+
+static int logicbricks_move_property_get(wmOperator *op)
+{
+ int type = RNA_enum_get(op->ptr, "direction");
+
+ if (type == 1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+/* ************* Add/Remove Sensor Operator ************* */
+
+static int sensor_remove_exec(bContext *C, wmOperator *op)
+{
+ Object *ob=NULL;
+ bSensor *sens = edit_sensor_property_get(C, op, &ob);
+
+ if (!sens)
+ return OPERATOR_CANCELLED;
+
+ BLI_remlink(&(ob->sensors), sens);
+ free_sensor(sens);
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+ static int sensor_remove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_sensor_invoke_properties(C, op))
+ return sensor_remove_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
+void LOGIC_OT_sensor_remove(wmOperatorType *ot)
+{
+ ot->name= "Remove Sensor";
+ ot->description= "Remove a sensor from the active object";
+ ot->idname= "LOGIC_OT_sensor_remove";
+
+ ot->invoke= sensor_remove_invoke;
+ ot->exec= sensor_remove_exec;
+ ot->poll= edit_sensor_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_sensor_properties(ot);
+}
+
+static int sensor_add_exec(bContext *C, wmOperator *op)
+{
+ Object *ob;
+ bSensor *sens;
+ PointerRNA sens_ptr;
+ PropertyRNA *prop;
+ const char *sens_name;
+ char name[32];
+ int type= RNA_enum_get(op->ptr, "type");
+
+ ob= edit_object_property_get(C, op);
+ if (!ob)
+ return OPERATOR_CANCELLED;
+
+ sens= new_sensor(type);
+ BLI_addtail(&(ob->sensors), sens);
+
+ /* set the sensor name based on rna type enum */
+ RNA_pointer_create((ID *)ob, &RNA_Sensor, sens, &sens_ptr);
+ prop = RNA_struct_find_property(&sens_ptr, "type");
+
+ RNA_string_get(op->ptr, "name", name);
+ if(BLI_strnlen(name, 32) < 1){
+ RNA_property_enum_name(C, &sens_ptr, prop, RNA_property_enum_get(&sens_ptr, prop), &sens_name);
+ BLI_strncpy(sens->name, sens_name, sizeof(sens->name));
+ }
+ else
+ BLI_strncpy(sens->name, name, sizeof(sens->name));
+
+ make_unique_prop_names(C, sens->name);
+ ob->scaflag |= OB_SHOWSENS;
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void LOGIC_OT_sensor_add(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+
+ /* identifiers */
+ ot->name= "Add Sensor";
+ ot->description = "Add a sensor to the active object";
+ ot->idname= "LOGIC_OT_sensor_add";
+
+ /* api callbacks */
+ ot->invoke= WM_menu_invoke;
+ ot->exec= sensor_add_exec;
+ ot->poll= ED_operator_object_active_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, SENS_ALWAYS, "Type", "Type of sensor to add");
+ RNA_def_enum_funcs(prop, rna_Sensor_type_itemf);
+ RNA_def_string(ot->srna, "name", "", 32, "Name", "Name of the Sensor to add");
+ RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the Object to add the Sensor to");
+}
+
+/* ************* Add/Remove Controller Operator ************* */
+
+static int controller_remove_exec(bContext *C, wmOperator *op)
+{
+ Object *ob = NULL;
+ bController *cont = edit_controller_property_get(C, op, &ob);
+
+ if (!cont)
+ return OPERATOR_CANCELLED;
+
+ BLI_remlink(&(ob->controllers), cont);
+ unlink_controller(cont);
+ free_controller(cont);
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+ static int controller_remove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_controller_invoke_properties(C, op))
+ return controller_remove_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
+void LOGIC_OT_controller_remove(wmOperatorType *ot)
+{
+ ot->name= "Remove Controller";
+ ot->description= "Remove a controller from the active object";
+ ot->idname= "LOGIC_OT_controller_remove";
+
+ ot->invoke= controller_remove_invoke;
+ ot->exec= controller_remove_exec;
+ ot->poll= edit_controller_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_controller_properties(ot);
+}
+
+static int controller_add_exec(bContext *C, wmOperator *op)
+{
+ Object *ob;
+ bController *cont;
+ PointerRNA cont_ptr;
+ PropertyRNA *prop;
+ const char *cont_name;
+ int bit;
+ char name[32];
+ int type= RNA_enum_get(op->ptr, "type");
+
+ ob= edit_object_property_get(C, op);
+ if(!ob)
+ return OPERATOR_CANCELLED;
+
+ cont= new_controller(type);
+ BLI_addtail(&(ob->controllers), cont);
+
+ /* set the controller name based on rna type enum */
+ RNA_pointer_create((ID *)ob, &RNA_Controller, cont, &cont_ptr);
+ prop = RNA_struct_find_property(&cont_ptr, "type");
+
+ RNA_string_get(op->ptr, "name", name);
+ if(BLI_strnlen(name, 32) < 1){
+ RNA_property_enum_name(C, &cont_ptr, prop, RNA_property_enum_get(&cont_ptr, prop), &cont_name);
+ BLI_strncpy(cont->name, cont_name, sizeof(cont->name));
+ }
+ else
+ BLI_strncpy(cont->name, name, sizeof(cont->name));
+
+ make_unique_prop_names(C, cont->name);
+ /* set the controller state mask from the current object state.
+ A controller is always in a single state, so select the lowest bit set
+ from the object state */
+ for (bit=0; bit<OB_MAX_STATES; bit++) {
+ if (ob->state & (1<<bit))
+ break;
+ }
+ cont->state_mask = (1<<bit);
+ if (cont->state_mask == 0) {
+ /* shouldn't happen, object state is never 0 */
+ cont->state_mask = 1;
+ }
+
+ ob->scaflag |= OB_SHOWCONT;
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void LOGIC_OT_controller_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add Controller";
+ ot->description = "Add a controller to the active object";
+ ot->idname= "LOGIC_OT_controller_add";
+
+ /* api callbacks */
+ ot->invoke= WM_menu_invoke;
+ ot->exec= controller_add_exec;
+ ot->poll= ED_operator_object_active_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_enum(ot->srna, "type", controller_type_items, CONT_LOGIC_AND, "Type", "Type of controller to add");
+ RNA_def_string(ot->srna, "name", "", 32, "Name", "Name of the Controller to add");
+ RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the Object to add the Controller to");
+}
+
+/* ************* Add/Remove Actuator Operator ************* */
+
+static int actuator_remove_exec(bContext *C, wmOperator *op)
+{
+ Object *ob=NULL;
+ bActuator *act = edit_actuator_property_get(C, op, &ob);
+
+ if (!act)
+ return OPERATOR_CANCELLED;
+
+ BLI_remlink(&(ob->actuators), act);
+ unlink_actuator(act);
+ free_actuator(act);
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+static int actuator_remove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_actuator_invoke_properties(C, op))
+ return actuator_remove_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
+void LOGIC_OT_actuator_remove(wmOperatorType *ot)
+{
+ ot->name= "Remove Actuator";
+ ot->description= "Remove a actuator from the active object";
+ ot->idname= "LOGIC_OT_actuator_remove";
+
+ ot->invoke= actuator_remove_invoke;
+ ot->exec= actuator_remove_exec;
+ ot->poll= edit_actuator_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_actuator_properties(ot);
+}
+
+static int actuator_add_exec(bContext *C, wmOperator *op)
+{
+ Object *ob;
+ bActuator *act;
+ PointerRNA act_ptr;
+ PropertyRNA *prop;
+ const char *act_name;
+ char name[32];
+ int type= RNA_enum_get(op->ptr, "type");
+
+ ob= edit_object_property_get(C, op);
+ if(!ob)
+ return OPERATOR_CANCELLED;
+
+ act= new_actuator(type);
+ BLI_addtail(&(ob->actuators), act);
+
+ /* set the actuator name based on rna type enum */
+ RNA_pointer_create((ID *)ob, &RNA_Actuator, act, &act_ptr);
+ prop = RNA_struct_find_property(&act_ptr, "type");
+
+ RNA_string_get(op->ptr, "name", name);
+ if (BLI_strnlen(name, 32) < 1){
+ RNA_property_enum_name(C, &act_ptr, prop, RNA_property_enum_get(&act_ptr, prop), &act_name);
+ BLI_strncpy(act->name, act_name, sizeof(act->name));
+ }
+ else
+ BLI_strncpy(act->name, name, sizeof(act->name));
+
+ make_unique_prop_names(C, act->name);
+ ob->scaflag |= OB_SHOWACT;
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void LOGIC_OT_actuator_add(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+
+ /* identifiers */
+ ot->name= "Add Actuator";
+ ot->description = "Add a actuator to the active object";
+ ot->idname= "LOGIC_OT_actuator_add";
+
+ /* api callbacks */
+ ot->invoke= WM_menu_invoke;
+ ot->exec= actuator_add_exec;
+ ot->poll= ED_operator_object_active_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, CONT_LOGIC_AND, "Type", "Type of actuator to add");
+ RNA_def_enum_funcs(prop, rna_Actuator_type_itemf);
+ RNA_def_string(ot->srna, "name", "", 32, "Name", "Name of the Actuator to add");
+ RNA_def_string(ot->srna, "object", "", 32, "Object", "Name of the Object to add the Actuator to");
+}
+
+/* ************* Move Logic Bricks Operator ************* */
+static EnumPropertyItem logicbricks_move_direction[] ={
+ {1, "UP", 0, "Move Up", ""},
+ {2, "DOWN", 0, "Move Down", ""},
+ {0, NULL, 0, NULL, NULL}};
+
+
+static int sensor_move_exec(bContext *C, wmOperator *op)
+{
+ Object *ob=NULL;
+ bSensor *sens= edit_sensor_property_get(C, op, &ob);
+ int move_up= logicbricks_move_property_get(op);
+
+ if (!sens)
+ return OPERATOR_CANCELLED;
+
+ sca_move_sensor(sens, ob, move_up);
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+static int sensor_move_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_sensor_invoke_properties(C, op)) {
+ return sensor_move_exec(C, op);
+ }
+ else
+ return OPERATOR_CANCELLED;
+}
+
+void LOGIC_OT_sensor_move(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Move Sensor";
+ ot->description = "Move Densor";
+ ot->idname= "LOGIC_OT_sensor_move";
+
+ /* api callbacks */
+ ot->invoke= sensor_move_invoke;
+ ot->exec= sensor_move_exec;
+ ot->poll= edit_sensor_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ edit_sensor_properties(ot);
+ RNA_def_enum(ot->srna, "direction", logicbricks_move_direction, 1, "Direction", "Move Up or Down");
+}
+
+static int controller_move_exec(bContext *C, wmOperator *op)
+{
+ Object *ob=NULL;
+ bController *cont= edit_controller_property_get(C, op, &ob);
+ int move_up= logicbricks_move_property_get(op);
+
+ if (!cont)
+ return OPERATOR_CANCELLED;
+
+ sca_move_controller(cont, ob, move_up);
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+static int controller_move_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_controller_invoke_properties(C, op)) {
+ return controller_move_exec(C, op);
+ }
+ else
+ return OPERATOR_CANCELLED;
+}
+
+void LOGIC_OT_controller_move(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Move Controller";
+ ot->description = "Move Controller";
+ ot->idname= "LOGIC_OT_controller_move";
+
+ /* api callbacks */
+ ot->invoke= controller_move_invoke;
+ ot->exec= controller_move_exec;
+ ot->poll= edit_controller_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ edit_controller_properties(ot);
+ RNA_def_enum(ot->srna, "direction", logicbricks_move_direction, 1, "Direction", "Move Up or Down");
+}
+
+static int actuator_move_exec(bContext *C, wmOperator *op)
+{
+ Object *ob=NULL;
+ bActuator *act = edit_actuator_property_get(C, op, &ob);
+ int move_up= logicbricks_move_property_get(op);
+
+ if (!act)
+ return OPERATOR_CANCELLED;
+
+ sca_move_actuator(act, ob, move_up);
+
+ WM_event_add_notifier(C, NC_LOGIC, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+static int actuator_move_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (edit_actuator_invoke_properties(C, op)) {
+ return actuator_move_exec(C, op);
+ }
+ else
+ return OPERATOR_CANCELLED;
+}
+
+void LOGIC_OT_actuator_move(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Move Actuator";
+ ot->description = "Move Actuator";
+ ot->idname= "LOGIC_OT_actuator_move";
+
+ /* api callbacks */
+ ot->invoke= actuator_move_invoke;
+ ot->exec= actuator_move_exec;
+ ot->poll= edit_actuator_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ edit_actuator_properties(ot);
+ RNA_def_enum(ot->srna, "direction", logicbricks_move_direction, 1, "Direction", "Move Up or Down");
+}
+
+
+void ED_operatortypes_logic(void)
+{
+ WM_operatortype_append(LOGIC_OT_sensor_remove);
+ WM_operatortype_append(LOGIC_OT_sensor_add);
+ WM_operatortype_append(LOGIC_OT_sensor_move);
+ WM_operatortype_append(LOGIC_OT_controller_remove);
+ WM_operatortype_append(LOGIC_OT_controller_add);
+ WM_operatortype_append(LOGIC_OT_controller_move);
+ WM_operatortype_append(LOGIC_OT_actuator_remove);
+ WM_operatortype_append(LOGIC_OT_actuator_add);
+ WM_operatortype_append(LOGIC_OT_actuator_move);
+}
diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c
index 7539f721883..c4a42d89758 100644
--- a/source/blender/editors/space_logic/logic_window.c
+++ b/source/blender/editors/space_logic/logic_window.c
@@ -33,16 +33,12 @@
#include "DNA_actuator_types.h"
#include "DNA_controller_types.h"
-#include "DNA_object_types.h"
#include "DNA_property_types.h"
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_sensor_types.h"
-#include "DNA_sound_types.h"
-#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_action_types.h"
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -58,19 +54,16 @@
#include "BKE_sca.h"
#include "BKE_utildefines.h"
-#include "ED_screen.h"
-#include "ED_types.h"
#include "ED_util.h"
-#include "WM_api.h"
#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
+
+#include "RNA_access.h"
/* XXX BAD BAD */
#include "../interface/interface_intern.h"
@@ -201,8 +194,9 @@ static void make_unique_prop_names_cb(bContext *C, void *strv, void *redraw_view
}
-static void sca_move_sensor(bContext *C, void *datav, void *move_up)
+static void old_sca_move_sensor(bContext *C, void *datav, void *move_up)
{
+ /* deprecated, no longer using it (moved to sca.c) */
Scene *scene= CTX_data_scene(C);
bSensor *sens_to_delete= datav;
int val;
@@ -253,8 +247,9 @@ static void sca_move_sensor(bContext *C, void *datav, void *move_up)
}
}
-static void sca_move_controller(bContext *C, void *datav, void *move_up)
+static void old_sca_move_controller(bContext *C, void *datav, void *move_up)
{
+ /* deprecated, no longer using it (moved to sca.c) */
Scene *scene= CTX_data_scene(C);
bController *controller_to_del= datav;
int val;
@@ -308,8 +303,9 @@ static void sca_move_controller(bContext *C, void *datav, void *move_up)
}
}
-static void sca_move_actuator(bContext *C, void *datav, void *move_up)
+static void old_sca_move_actuator(bContext *C, void *datav, void *move_up)
{
+ /* deprecated, no longer using it (moved to sca.c) */
Scene *scene= CTX_data_scene(C);
bActuator *actuator_to_move= datav;
int val;
@@ -455,8 +451,8 @@ void do_logic_buts(bContext *C, void *arg, int event)
case B_SET_STATE_BIT:
for(ob=G.main->object.first; ob; ob=ob->id.next) {
- if(ob->scaflag & OB_SETSTBIT) {
- ob->scaflag &= ~OB_SETSTBIT;
+ if(ob->scaflag & OB_ALLSTATE) {
+ ob->scaflag &= ~OB_ALLSTATE;
ob->state = 0x3FFFFFFF;
}
}
@@ -648,17 +644,17 @@ static char *controller_name(int type)
{
switch (type) {
case CONT_LOGIC_AND:
- return "AND";
+ return "And";
case CONT_LOGIC_OR:
- return "OR";
+ return "Or";
case CONT_LOGIC_NAND:
- return "NAND";
+ return "Nand";
case CONT_LOGIC_NOR:
- return "NOR";
+ return "Nor";
case CONT_LOGIC_XOR:
- return "XOR";
+ return "Xor";
case CONT_LOGIC_XNOR:
- return "XNOR";
+ return "Xnor";
case CONT_EXPRESSION:
return "Expression";
case CONT_PYTHON:
@@ -682,7 +678,7 @@ static char *actuator_name(int type)
case ACT_OBJECT:
return "Motion";
case ACT_IPO:
- return "Ipo";
+ return "F-Curve";
case ACT_LAMP:
return "Lamp";
case ACT_CAMERA:
@@ -710,7 +706,7 @@ static char *actuator_name(int type)
case ACT_VISIBILITY:
return "Visibility";
case ACT_2DFILTER:
- return "2D Filter";
+ return "Filter 2D";
case ACT_PARENT:
return "Parent";
case ACT_STATE:
@@ -731,21 +727,21 @@ static char *actuator_pup(Object *owner)
case OB_ARMATURE:
return "Actuators %t|Action %x15|Armature %x23|Motion %x0|Constraint %x9|Ipo %x1"
"|Camera %x3|Sound %x5|Property %x6|Edit Object %x10"
- "|Scene %x11|Random %x13|Message %x14|Game %x17"
+ "|Scene %x11|Random %x13|Message %x14|Game %x17"
"|Visibility %x18|2D Filter %x19|Parent %x20|State %x22";
break;
case OB_MESH:
return "Actuators %t|Shape Action %x21|Motion %x0|Constraint %x9|Ipo %x1"
"|Camera %x3|Sound %x5|Property %x6|Edit Object %x10"
- "|Scene %x11|Random %x13|Message %x14|Game %x17"
+ "|Scene %x11|Random %x13|Message %x14|Game %x17"
"|Visibility %x18|2D Filter %x19|Parent %x20|State %x22";
break;
default:
return "Actuators %t|Motion %x0|Constraint %x9|Ipo %x1"
"|Camera %x3|Sound %x5|Property %x6|Edit Object %x10"
- "|Scene %x11|Random %x13|Message %x14|Game %x17"
+ "|Scene %x11|Random %x13|Message %x14|Game %x17"
"|Visibility %x18|2D Filter %x19|Parent %x20|State %x22";
}
}
@@ -916,8 +912,15 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
ob= G.main->object.first;
nr= 0;
+
+ /* make the active object always the first one of the list */
+ if (obact) {
+ idar[0]= (ID *)obact;
+ nr++;
+ }
+
while(ob) {
- if( ob->scavisflag ) {
+ if( (ob->scavisflag) && (ob != obact)) {
idar[nr]= (ID *)ob;
nr++;
}
@@ -2125,7 +2128,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
break;
}
- case ACT_SOUND:
+ case ACT_SOUND:
{
sa = act->data;
sa->sndnr = 0;
@@ -2177,27 +2180,27 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
}
case ACT_CAMERA:
- ysize= 48;
+ ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- ca= act->data;
+ ca= act->data;
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+10, yco-24, (width-20)/2, 19, &(ca->ob), "Look at this Object");
- uiDefButF(block, NUM, 0, "Height:", xco+10+(width-20)/2, yco-24, (width-20)/2, 19, &ca->height, 0.0, 20.0, 0, 0, "");
+ uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+10, yco-24, (width-20)/2, 19, &(ca->ob), "Look at this Object");
+ uiDefButF(block, NUM, 0, "Height:", xco+10+(width-20)/2, yco-24, (width-20)/2, 19, &ca->height, 0.0, 20.0, 0, 0, "");
- uiDefButF(block, NUM, 0, "Min:", xco+10, yco-44, (width-60)/2, 19, &ca->min, 0.0, 20.0, 0, 0, "");
+ uiDefButF(block, NUM, 0, "Min:", xco+10, yco-44, (width-60)/2, 19, &ca->min, 0.0, 20.0, 0, 0, "");
- if(ca->axis==0) ca->axis= 'x';
- uiDefButS(block, ROW, 0, "X", xco+10+(width-60)/2, yco-44, 20, 19, &ca->axis, 4.0, (float)'x', 0, 0, "Camera tries to get behind the X axis");
- uiDefButS(block, ROW, 0, "Y", xco+30+(width-60)/2, yco-44, 20, 19, &ca->axis, 4.0, (float)'y', 0, 0, "Camera tries to get behind the Y axis");
+ if(ca->axis==0) ca->axis= 'x';
+ uiDefButS(block, ROW, 0, "X", xco+10+(width-60)/2, yco-44, 20, 19, &ca->axis, 4.0, (float)'x', 0, 0, "Camera tries to get behind the X axis");
+ uiDefButS(block, ROW, 0, "Y", xco+30+(width-60)/2, yco-44, 20, 19, &ca->axis, 4.0, (float)'y', 0, 0, "Camera tries to get behind the Y axis");
- uiDefButF(block, NUM, 0, "Max:", xco+20+(width)/2, yco-44, (width-60)/2, 19, &ca->max, 0.0, 20.0, 0, 0, "");
+ uiDefButF(block, NUM, 0, "Max:", xco+20+(width)/2, yco-44, (width-60)/2, 19, &ca->max, 0.0, 20.0, 0, 0, "");
- yco-= ysize;
+ yco-= ysize;
- break;
+ break;
case ACT_EDIT_OBJECT:
@@ -2288,11 +2291,11 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
str= "Edit Object %t|Add Object %x0|End Object %x1|Replace Mesh %x2|Track to %x3|Dynamics %x4";
uiDefButS(block, MENU, B_REDR, str, xco+40, yco-24, (width-80), 19, &eoa->type, 0.0, 0.0, 0, 0, "");
- yco-= ysize;
+ yco-= ysize;
- break;
+ break;
- case ACT_CONSTRAINT:
+ case ACT_CONSTRAINT:
coa= act->data;
if (coa->type == ACT_CONST_TYPE_LOC) {
@@ -2425,79 +2428,79 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
}
str= "Constraint Type %t|Location %x0|Distance %x1|Orientation %x2|Force field %x3";
but = uiDefButS(block, MENU, B_REDR, str, xco+40, yco-23, (width-80), 19, &coa->type, 0.0, 0.0, 0, 0, "");
- yco-= ysize;
- break;
+ yco-= ysize;
+ break;
case ACT_SCENE:
- sca= act->data;
+ sca= act->data;
- if(sca->type==ACT_SCENE_RESTART) {
- ysize= 28;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- }
- else if(sca->type==ACT_SCENE_CAMERA) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ if(sca->type==ACT_SCENE_RESTART) {
+ ysize= 28;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ }
+ else if(sca->type==ACT_SCENE_CAMERA) {
+
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+40, yco-44, (width-80), 19, &(sca->camera), "Set this Camera. Leave empty to refer to self object");
- }
- else if(sca->type==ACT_SCENE_SET) {
+ uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+40, yco-44, (width-80), 19, &(sca->camera), "Set this Camera. Leave empty to refer to self object");
+ }
+ else if(sca->type==ACT_SCENE_SET) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Set this Scene");
- }
+ uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Set this Scene");
+ }
else if(sca->type==ACT_SCENE_ADD_FRONT) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Add an Overlay Scene");
- }
+ uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Add an Overlay Scene");
+ }
else if(sca->type==ACT_SCENE_ADD_BACK) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Add a Background Scene");
- }
+ uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Add a Background Scene");
+ }
else if(sca->type==ACT_SCENE_REMOVE) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Remove a Scene");
- }
+ uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Remove a Scene");
+ }
else if(sca->type==ACT_SCENE_SUSPEND) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Pause a Scene");
- }
+ uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Pause a Scene");
+ }
else if(sca->type==ACT_SCENE_RESUME) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Unpause a Scene");
- }
+ uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Unpause a Scene");
+ }
str= "Scene %t|Restart %x0|Set Scene %x1|Set Camera %x2|Add OverlayScene %x3|Add BackgroundScene %x4|Remove Scene %x5|Suspend Scene %x6|Resume Scene %x7";
uiDefButS(block, MENU, B_REDR, str, xco+40, yco-24, (width-80), 19, &sca->type, 0.0, 0.0, 0, 0, "");
- yco-= ysize;
- break;
+ yco-= ysize;
+ break;
case ACT_GAME:
{
gma = act->data;
@@ -2507,7 +2510,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
ysize = 48;
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefBut(block, TEX, 1, "File: ", xco+10, yco-44,width-20,19, &(gma->filename), 0, 63, 0, 0, "Load this blend file, use the \"//\" prefix for a path relative to the current blend file");
+ uiDefBut(block, TEX, 1, "File: ", xco+10, yco-44,width-20,19, &(gma->filename), 0, 63, 0, 0, "Load this blend file, use the \"//\" prefix for a path relative to the current blend file");
// uiDefBut(block, TEX, 1, "Anim: ", xco+10, yco-64,width-20,19, &(gma->loadaniname), 0, 63, 0, 0, "Use this loadinganimation");
}
/* else if (gma->type == ACT_GAME_START)
@@ -2516,7 +2519,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefBut(block, TEX, 1, "File: ", xco+10, yco-44,width-20,19, &(gma->filename), 0, 63, 0, 0, "Load this file");
+ uiDefBut(block, TEX, 1, "File: ", xco+10, yco-44,width-20,19, &(gma->filename), 0, 63, 0, 0, "Load this file");
uiDefBut(block, TEX, 1, "Anim: ", xco+10, yco-64,width-20,19, &(gma->loadaniname), 0, 63, 0, 0, "Use this loadinganimation");
}
*/ else if (ELEM4(gma->type, ACT_GAME_RESTART, ACT_GAME_QUIT, ACT_GAME_SAVECFG, ACT_GAME_LOADCFG))
@@ -2759,16 +2762,16 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
if (ma->bodyType == ACT_MESG_MESG)
{
- /* line 3: Message Body */
- uiDefBut(block, TEX, 1, "Body: ",
- (xco+10+(0.20*(width-20))),(yco-(myline++*24)),(0.8*(width-20)),19,
- &ma->body, 0, 31, 0, 0,
- "Optional message body Text");
+ /* line 3: Message Body */
+ uiDefBut(block, TEX, 1, "Body: ",
+ (xco+10+(0.20*(width-20))),(yco-(myline++*24)),(0.8*(width-20)),19,
+ &ma->body, 0, 31, 0, 0,
+ "Optional message body Text");
} else
{
/* line 3: Property body (set by property) */
uiDefBut(block, TEX, 1, "Propname: ",
- (xco+10+(0.20*(width-20))),(yco-(myline++*24)),(0.8*(width-20)),19,
+ (xco+10+(0.20*(width-20))),(yco-(myline++*24)),(0.8*(width-20)),19,
&ma->body, 0, 31, 0, 0,
"The message body will be set by the Property Value");
}
@@ -2783,7 +2786,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
{
ysize +=20;
}
- glRects( xco, yco-ysize, xco+width, yco );
+ glRects( xco, yco-ysize, xco+width, yco );
uiEmboss( (float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1 );
switch(tdfa->type)
@@ -2826,16 +2829,16 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
uiDefButS(block, MENU, B_REDR, str, xco+30,yco-24,width-60, 19, &tdfa->type, 0.0, 0.0, 0.0, 0.0, "2D filter type");
yco -= ysize;
- break;
+ break;
case ACT_PARENT:
- parAct = act->data;
+ parAct = act->data;
- if(parAct->type==ACT_PARENT_SET) {
+ if(parAct->type==ACT_PARENT_SET) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+95, yco-24, (width-100), 19, &(parAct->ob), "Set this object as parent");
+ ysize= 48;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+95, yco-24, (width-100), 19, &(parAct->ob), "Set this object as parent");
uiBlockBeginAlign(block);
uiDefButBitS(block, TOGN, ACT_PARENT_COMPOUND, B_REDR,
"Compound",
@@ -2848,21 +2851,21 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
0.0, 0.0, 0, 0,
"Make this object ghost while parented (only if not compound)");
uiBlockEndAlign(block);
- }
- else if(parAct->type==ACT_PARENT_REMOVE) {
+ }
+ else if(parAct->type==ACT_PARENT_REMOVE) {
- ysize= 28;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- }
+ ysize= 28;
+ glRects(xco, yco-ysize, xco+width, yco);
+ uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
+ }
str= "Parent %t|Set Parent %x0|Remove Parent %x1";
uiDefButI(block, MENU, B_REDR, str, xco+5, yco-24, parAct->type==1?(width-80):90, 19, &parAct->type, 0.0, 0.0, 0, 0, "");
- yco-= ysize;
- break;
+ yco-= ysize;
+ break;
case ACT_ARMATURE:
- armAct = act->data;
+ armAct = act->data;
if (ob->type == OB_ARMATURE) {
str= "Constraint %t|Run armature %x0|Enable %x1|Disable %x2|Set target %x3|Set weight %x4";
@@ -2897,13 +2900,13 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh
break;
}
}
- }
+ }
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- yco-= ysize;
- break;
+ yco-= ysize;
+ break;
- default:
+ default:
ysize= 4;
glRects(xco, yco-ysize, xco+width, yco);
@@ -3177,6 +3180,1538 @@ static int is_sensor_linked(uiBlock *block, bSensor *sens)
/* never used, see CVS 1.120 for the code */
/* static uiBlock *freecamera_menu(void) */
+/* Sensors code */
+
+static void draw_sensor_header(uiLayout *layout, PointerRNA *ptr, PointerRNA *logic_ptr)
+{
+ uiLayout *box, *row, *subrow;
+ bSensor *sens= (bSensor *)ptr->data;
+
+ box= uiLayoutBox(layout);
+ row= uiLayoutRow(box, 0);
+
+ uiItemR(row, ptr, "expanded", UI_ITEM_R_NO_BG, "", 0);
+ if(RNA_boolean_get(ptr, "expanded")) {
+ uiItemR(row, ptr, "type", 0, "", 0);
+ uiItemR(row, ptr, "name", 0, "", 0);
+ } else {
+ uiItemL(row, sensor_name(sens->type), 0);
+ uiItemL(row, sens->name, 0);
+ }
+
+ subrow= uiLayoutRow(row, 0);
+ uiLayoutSetActive(subrow, ((RNA_boolean_get(logic_ptr, "sensors_show_active_states")
+ && RNA_boolean_get(ptr, "expanded")) || RNA_boolean_get(ptr, "pinned")));
+ uiItemR(subrow, ptr, "pinned", UI_ITEM_R_NO_BG, "", 0);
+
+ if(RNA_boolean_get(ptr, "expanded")==0) {
+ subrow= uiLayoutRow(row, 1);
+ uiItemEnumO(subrow, "LOGIC_OT_sensor_move", "", ICON_TRIA_UP, "direction", 1); // up
+ uiItemEnumO(subrow, "LOGIC_OT_sensor_move", "", ICON_TRIA_DOWN, "direction", 2); // down
+ }
+
+ uiItemO(row, "", ICON_X, "LOGIC_OT_sensor_remove");
+}
+
+static void draw_sensor_internal_header(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *box, *split, *row;
+
+ box= uiLayoutBox(layout);
+ split = uiLayoutSplit(box, 0.45, 0);
+
+ row= uiLayoutRow(split, 1);
+ uiItemR(row, ptr, "pulse_true_level", 0, "", ICON_DOTSUP);
+ uiItemR(row, ptr, "pulse_false_level", 0, "", ICON_DOTSDOWN);
+ uiItemR(row, ptr, "frequency", 0, "Freq", 0);
+
+ row= uiLayoutRow(split, 1);
+ uiItemR(row, ptr, "level", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "tap", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ row= uiLayoutRow(split, 1);
+ uiItemR(row, ptr, "invert", UI_ITEM_R_TOGGLE, "Invert", 0);
+}
+/* sensors in alphabetical order */
+
+static void draw_sensor_actuator(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob = (Object *)ptr->id.data;
+ PointerRNA settings_ptr;
+
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+ uiItemPointerR(layout, ptr, "actuator", &settings_ptr, "actuators", NULL, ICON_LOGIC);
+}
+
+static void draw_sensor_armature(uiLayout *layout, PointerRNA *ptr)
+{
+ bSensor *sens = (bSensor*)ptr->data;
+ bArmatureSensor *as = (bArmatureSensor *) sens->data;
+ Object *ob = (Object *)ptr->id.data;
+ PointerRNA pose_ptr, pchan_ptr;
+ PropertyRNA *bones_prop= NULL;
+ uiLayout *row;
+
+ if(ob->type != OB_ARMATURE){
+ uiItemL(layout, "Sensor only available for armatures", 0);
+ return;
+ }
+
+ if (ob->pose) {
+ RNA_pointer_create((ID *)ob, &RNA_Pose, ob->pose, &pose_ptr);
+ bones_prop = RNA_struct_find_property(&pose_ptr, "bones");
+ }
+
+ if (&pose_ptr.data) {
+ uiItemPointerR(layout, ptr, "bone", &pose_ptr, "bones", NULL, ICON_BONE_DATA);
+
+ if (RNA_property_collection_lookup_string(&pose_ptr, bones_prop, as->posechannel, &pchan_ptr))
+ uiItemPointerR(layout, ptr, "constraint", &pchan_ptr, "constraints", NULL, ICON_CONSTRAINT_BONE);
+ }
+ row = uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "test_type", 0, NULL, 0);
+ uiItemR(row, ptr, "value", 0, NULL, 0);
+}
+
+static void draw_sensor_collision(uiLayout *layout, PointerRNA *ptr, bContext *C)
+{
+ uiLayout *row, *split;
+ PointerRNA main_ptr;
+
+ RNA_main_pointer_create(CTX_data_main(C), &main_ptr);
+
+ split = uiLayoutSplit(layout, 0.3, 0);
+ row = uiLayoutRow(split, 1);
+ uiItemR(row, ptr, "pulse", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "collision_type", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ switch (RNA_enum_get(ptr, "collision_type")) {
+ case SENS_COLLISION_PROPERTY:
+ uiItemR(split, ptr, "property", 0, NULL, 0);
+ break;
+ case SENS_COLLISION_MATERIAL:
+ uiItemPointerR(split, ptr, "material", &main_ptr, "materials", NULL, ICON_MATERIAL_DATA);
+ break;
+ }
+}
+
+static void draw_sensor_delay(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *row;
+
+ row= uiLayoutRow(layout, 0);
+
+ uiItemR(row, ptr, "delay", 0, NULL, 0);
+ uiItemR(row, ptr, "duration", 0, NULL, 0);
+ uiItemR(row, ptr, "repeat", 0, NULL, 0);
+}
+
+static void draw_sensor_joystick(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *col, *row;
+
+ uiItemR(layout, ptr, "joystick_index", 0, NULL, 0);
+ uiItemR(layout, ptr, "event_type", 0, NULL, 0);
+
+ switch (RNA_enum_get(ptr, "event_type")) {
+ case SENS_JOY_BUTTON:
+ uiItemR(layout, ptr, "all_events", 0, NULL, 0);
+
+ col = uiLayoutColumn(layout, 0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "all_events")==0);
+ uiItemR(col, ptr, "button_number", 0, NULL, 0);
+ break;
+ case SENS_JOY_AXIS:
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "axis_number", 0, NULL, 0);
+ uiItemR(row, ptr, "axis_threshold", 0, NULL, 0);
+
+ uiItemR(layout, ptr, "all_events", 0, NULL, 0);
+ col = uiLayoutColumn(layout, 0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "all_events")==0);
+ uiItemR(col, ptr, "axis_direction", 0, NULL, 0);
+ break;
+ case SENS_JOY_HAT:
+ uiItemR(layout, ptr, "hat_number", 0, NULL, 0);
+ uiItemR(layout, ptr, "all_events", 0, NULL, 0);
+
+ col = uiLayoutColumn(layout, 0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "all_events")==0);
+ uiItemR(col, ptr, "hat_direction", 0, NULL, 0);
+ break;
+ case SENS_JOY_AXIS_SINGLE:
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "single_axis_number", 0, NULL, 0);
+ uiItemR(row, ptr, "axis_threshold", 0, NULL, 0);
+ break;
+ }
+}
+
+static void draw_sensor_keyboard(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob = (Object *)ptr->id.data;
+ PointerRNA settings_ptr;
+ uiLayout *row, *col;
+
+ row = uiLayoutRow(layout, 0);
+ uiItemL(row, "Key:", 0);
+ col = uiLayoutColumn(row, 0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "all_keys")==0);
+ uiItemR(col, ptr, "key", UI_ITEM_R_EVENT, "", 0);
+ col = uiLayoutColumn(row, 0);
+ uiItemR(col, ptr, "all_keys", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ col = uiLayoutColumn(layout, 0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "all_keys")==0);
+ row = uiLayoutRow(col, 0);
+ uiItemL(row, "First Modifier:", 0);
+ uiItemR(row, ptr, "modifier_key", UI_ITEM_R_EVENT, "", 0);
+
+ row = uiLayoutRow(col, 0);
+ uiItemL(row, "Second Modifier:", 0);
+ uiItemR(row, ptr, "second_modifier_key", UI_ITEM_R_EVENT, "", 0);
+
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+ uiItemPointerR(layout, ptr, "target", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(layout, ptr, "log", &settings_ptr, "properties", NULL, 0);
+}
+
+static void draw_sensor_message(uiLayout *layout, PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "subject", 0, NULL, 0);
+}
+
+static void draw_sensor_mouse(uiLayout *layout, PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "mouse_event", 0, NULL, 0);
+}
+
+static void draw_sensor_near(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *row;
+
+ uiItemR(layout, ptr, "property", 0, NULL, 0);
+
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "distance", 0, NULL, 0);
+ uiItemR(row, ptr, "reset_distance", 0, NULL, 0);
+}
+
+static void draw_sensor_property(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob = (Object *)ptr->id.data;
+ PointerRNA settings_ptr;
+
+ uiLayout *row;
+ uiItemR(layout, ptr, "evaluation_type", 0, NULL, 0);
+
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+ uiItemPointerR(layout, ptr, "property", &settings_ptr, "properties", NULL, 0);
+
+ switch (RNA_enum_get(ptr, "evaluation_type")) {
+ case SENS_PROP_INTERVAL:
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "min_value", 0, NULL, 0);
+ uiItemR(row, ptr, "max_value", 0, NULL, 0);
+ break;
+ case SENS_PROP_EQUAL:
+ uiItemR(layout, ptr, "value", 0, NULL, 0);
+ break;
+ case SENS_PROP_NEQUAL:
+ uiItemR(layout, ptr, "value", 0, NULL, 0);
+ break;
+ case SENS_PROP_CHANGED:
+ break;
+ }
+}
+
+static void draw_sensor_radar(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *row;
+
+ uiItemR(layout, ptr, "property", 0, NULL, 0);
+ uiItemR(layout, ptr, "axis", 0, NULL, 0);
+
+ row= uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "angle", 0, NULL, 0);
+ uiItemR(row, ptr, "distance", 0, NULL, 0);
+}
+
+static void draw_sensor_random(uiLayout *layout, PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "seed", 0, NULL, 0);
+}
+
+static void draw_sensor_ray(uiLayout *layout, PointerRNA *ptr, bContext *C)
+{
+ uiLayout *split, *row;
+ PointerRNA main_ptr;
+
+ RNA_main_pointer_create(CTX_data_main(C), &main_ptr);
+ split= uiLayoutSplit(layout, 0.3, 0);
+ uiItemR(split, ptr, "ray_type", 0, "", 0);
+ switch (RNA_enum_get(ptr, "ray_type")) {
+ case SENS_RAY_PROPERTY:
+ uiItemR(split, ptr, "property", 0, "", 0);
+ break;
+ case SENS_RAY_MATERIAL:
+ uiItemPointerR(split, ptr, "material", &main_ptr, "materials", "", ICON_MATERIAL_DATA);
+ break;
+ }
+
+ split= uiLayoutSplit(layout, 0.3, 0);
+ uiItemR(split, ptr, "axis", 0, "", 0);
+ row= uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "range", 0, NULL, 0);
+ uiItemR(row, ptr, "x_ray_mode", UI_ITEM_R_TOGGLE, NULL, 0);
+}
+
+static void draw_sensor_touch(uiLayout *layout, PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "material", 0, NULL, 0);
+}
+
+void draw_brick_sensor(uiLayout *layout, PointerRNA *ptr, bContext *C)
+{
+ uiLayout *box;
+
+ if (!RNA_boolean_get(ptr, "expanded"))
+ return;
+
+ draw_sensor_internal_header(layout, ptr);
+
+ box = uiLayoutBox(layout);
+
+ switch (RNA_enum_get(ptr, "type")) {
+
+ case SENS_ACTUATOR:
+ draw_sensor_actuator(box, ptr);
+ break;
+ case SENS_ALWAYS:
+ break;
+ case SENS_ARMATURE:
+ draw_sensor_armature(box, ptr);
+ break;
+ case SENS_COLLISION:
+ draw_sensor_collision(box, ptr, C);
+ break;
+ case SENS_DELAY:
+ draw_sensor_delay(box, ptr);
+ break;
+ case SENS_JOYSTICK:
+ draw_sensor_joystick(box, ptr);
+ break;
+ case SENS_KEYBOARD:
+ draw_sensor_keyboard(box, ptr);
+ break;
+ case SENS_MESSAGE:
+ draw_sensor_message(box, ptr);
+ break;
+ case SENS_MOUSE:
+ draw_sensor_mouse(box, ptr);
+ break;
+ case SENS_NEAR:
+ draw_sensor_near(box, ptr);
+ break;
+ case SENS_PROPERTY:
+ draw_sensor_property(box, ptr);
+ break;
+ case SENS_RADAR:
+ draw_sensor_radar(box, ptr);
+ break;
+ case SENS_RANDOM:
+ draw_sensor_random(box, ptr);
+ break;
+ case SENS_RAY:
+ draw_sensor_ray(box, ptr, C);
+ break;
+ case SENS_TOUCH:
+ draw_sensor_touch(box, ptr);
+ break;
+ }
+}
+
+/* Controller code */
+static void draw_controller_header(uiLayout *layout, PointerRNA *ptr, int xco, int width, int yco)
+{
+ uiLayout *box, *row, *subrow;
+ bController *cont= (bController *)ptr->data;
+
+ char state[3];
+ sprintf(state, "%d", RNA_int_get(ptr, "state"));
+
+ box= uiLayoutBox(layout);
+ row= uiLayoutRow(box, 0);
+
+ uiItemR(row, ptr, "expanded", UI_ITEM_R_NO_BG, "", 0);
+ if(RNA_boolean_get(ptr, "expanded")) {
+ uiItemR(row, ptr, "type", 0, "", 0);
+ uiItemR(row, ptr, "name", 0, "", 0);
+ /* XXX provisory for Blender 2.50Beta */
+ uiDefBlockBut(uiLayoutGetBlock(layout), controller_state_mask_menu, cont, state, (short)(xco+width-44), yco, 22+22, UI_UNIT_Y, "Set controller state index (from 1 to 30)");
+ } else {
+ uiItemL(row, controller_name(cont->type), 0);
+ uiItemL(row, cont->name, 0);
+ uiItemL(row, state, 0);
+ }
+
+ uiItemR(row, ptr, "priority", 0, "", 0);
+
+ if(RNA_boolean_get(ptr, "expanded")==0) {
+ subrow= uiLayoutRow(row, 1);
+ uiItemEnumO(subrow, "LOGIC_OT_controller_move", "", ICON_TRIA_UP, "direction", 1); // up
+ uiItemEnumO(subrow, "LOGIC_OT_controller_move", "", ICON_TRIA_DOWN, "direction", 2); // down
+ }
+ uiItemO(row, "", ICON_X, "LOGIC_OT_controller_remove");
+}
+
+static void draw_controller_expression(uiLayout *layout, PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "expression", 0, "", 0);
+}
+
+static void draw_controller_python(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *split, *subsplit;
+
+ split = uiLayoutSplit(layout, 0.3, 1);
+ uiItemR(split, ptr, "mode", 0, "", 0);
+ if (RNA_enum_get(ptr, "mode") == CONT_PY_SCRIPT) {
+ uiItemR(split, ptr, "text", 0, "", 0);
+ }
+ else {
+ subsplit = uiLayoutSplit(split, 0.8, 0);
+ uiItemR(subsplit, ptr, "module", 0, "", 0);
+ uiItemR(subsplit, ptr, "debug", UI_ITEM_R_TOGGLE, NULL, 0);
+ }
+}
+
+static void draw_controller_state(uiLayout *layout, PointerRNA *ptr)
+{
+
+}
+
+void draw_brick_controller(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *box;
+
+ if (!RNA_boolean_get(ptr, "expanded"))
+ return;
+
+ box = uiLayoutBox(layout);
+
+ draw_controller_state(box, ptr);
+
+ switch (RNA_enum_get(ptr, "type")) {
+ case CONT_LOGIC_AND:
+ break;
+ case CONT_LOGIC_OR:
+ break;
+ case CONT_EXPRESSION:
+ draw_controller_expression(box, ptr);
+ break;
+ case CONT_PYTHON:
+ draw_controller_python(box, ptr);
+ break;
+ case CONT_LOGIC_NAND:
+ break;
+ case CONT_LOGIC_NOR:
+ break;
+ case CONT_LOGIC_XOR:
+ break;
+ case CONT_LOGIC_XNOR:
+ break;
+ }
+}
+
+/* Actuator code */
+static void draw_actuator_header(uiLayout *layout, PointerRNA *ptr, PointerRNA *logic_ptr)
+{
+ uiLayout *box, *row, *subrow;
+ bActuator *act= (bActuator *)ptr->data;
+
+ box= uiLayoutBox(layout);
+ row= uiLayoutRow(box, 0);
+
+ uiItemR(row, ptr, "expanded", UI_ITEM_R_NO_BG, "", 0);
+ if(RNA_boolean_get(ptr, "expanded")) {
+ uiItemR(row, ptr, "type", 0, "", 0);
+ uiItemR(row, ptr, "name", 0, "", 0);
+ } else {
+ uiItemL(row, actuator_name(act->type), 0);
+ uiItemL(row, act->name, 0);
+ }
+
+ subrow= uiLayoutRow(row, 0);
+ uiLayoutSetActive(subrow, ((RNA_boolean_get(logic_ptr, "actuators_show_active_states")
+ && RNA_boolean_get(ptr, "expanded")) || RNA_boolean_get(ptr, "pinned")));
+ uiItemR(subrow, ptr, "pinned", UI_ITEM_R_NO_BG, "", 0);
+
+ if(RNA_boolean_get(ptr, "expanded")==0) {
+ subrow= uiLayoutRow(row, 1);
+ uiItemEnumO(subrow, "LOGIC_OT_actuator_move", "", ICON_TRIA_UP, "direction", 1); // up
+ uiItemEnumO(subrow, "LOGIC_OT_actuator_move", "", ICON_TRIA_DOWN, "direction", 2); // down
+ }
+ uiItemO(row, "", ICON_X, "LOGIC_OT_actuator_remove");
+}
+
+static void draw_actuator_action(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob = (Object *)ptr->id.data;
+ PointerRNA settings_ptr;
+ uiLayout *row;
+
+ if(ob->type != OB_ARMATURE){
+ uiItemL(layout, "Actuator only available for armatures", 0);
+ return;
+ }
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+
+ row= uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "mode", 0, "", 0);
+ uiItemR(row, ptr, "action", 0, NULL, 0);
+ uiItemR(row, ptr, "continue_last_frame", 0, NULL, 0);
+
+ row= uiLayoutRow(layout, 0);
+ if((RNA_enum_get(ptr, "mode") == ACT_ACTION_FROM_PROP))
+ uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, 0);
+
+ else {
+ uiItemR(row, ptr, "frame_start", 0, NULL, 0);
+ uiItemR(row, ptr, "frame_end", 0, NULL, 0);
+ }
+
+ row= uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "blendin", 0, NULL, 0);
+ uiItemR(row, ptr, "priority", 0, NULL, 0);
+
+ row= uiLayoutRow(layout, 0);
+ uiItemPointerR(layout, ptr, "frame_property", &settings_ptr, "properties", NULL, 0);
+
+#ifdef __NLA_ACTION_BY_MOTION_ACTUATOR
+ uiItemR(row, "stride_length", 0, NULL, 0);
+#endif
+}
+
+static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr)
+{
+ bActuator *act = (bActuator*)ptr->data;
+ bArmatureActuator *aa = (bArmatureActuator *) act->data;
+ Object *ob = (Object *)ptr->id.data;
+ PointerRNA pose_ptr, pchan_ptr;
+ PropertyRNA *bones_prop;
+
+ if(ob->type != OB_ARMATURE){
+ uiItemL(layout, "Actuator only available for armatures", 0);
+ return;
+ }
+
+ if (ob->pose) {
+ RNA_pointer_create((ID *)ob, &RNA_Pose, ob->pose, &pose_ptr);
+ bones_prop = RNA_struct_find_property(&pose_ptr, "bones");
+ }
+
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+
+ switch (RNA_enum_get(ptr, "mode"))
+ {
+ case ACT_ARM_RUN:
+ break;
+ case ACT_ARM_ENABLE:
+ case ACT_ARM_DISABLE:
+ if (&pose_ptr.data) {
+ uiItemPointerR(layout, ptr, "bone", &pose_ptr, "bones", NULL, ICON_BONE_DATA);
+
+ if (RNA_property_collection_lookup_string(&pose_ptr, bones_prop, aa->posechannel, &pchan_ptr))
+ uiItemPointerR(layout, ptr, "constraint", &pchan_ptr, "constraints", NULL, ICON_CONSTRAINT_BONE);
+ }
+ break;
+ case ACT_ARM_SETTARGET:
+ if (&pose_ptr.data) {
+ uiItemPointerR(layout, ptr, "bone", &pose_ptr, "bones", NULL, ICON_BONE_DATA);
+
+ if (RNA_property_collection_lookup_string(&pose_ptr, bones_prop, aa->posechannel, &pchan_ptr))
+ uiItemPointerR(layout, ptr, "constraint", &pchan_ptr, "constraints", NULL, ICON_CONSTRAINT_BONE);
+ }
+
+ uiItemR(layout, ptr, "target", 0, NULL, 0);
+ uiItemR(layout, ptr, "secondary_target", 0, NULL, 0);
+ break;
+ case ACT_ARM_SETWEIGHT:
+ if (&pose_ptr.data) {
+ uiItemPointerR(layout, ptr, "bone", &pose_ptr, "bones", NULL, ICON_BONE_DATA);
+
+ if (RNA_property_collection_lookup_string(&pose_ptr, bones_prop, aa->posechannel, &pchan_ptr))
+ uiItemPointerR(layout, ptr, "constraint", &pchan_ptr, "constraints", NULL, ICON_CONSTRAINT_BONE);
+ }
+
+ uiItemR(layout, ptr, "weight", 0, NULL, 0);
+ break;
+ }
+}
+
+static void draw_actuator_camera(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *row;
+ uiItemR(layout, ptr, "object", 0, NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "height", 0, NULL, 0);
+ uiItemR(row, ptr, "axis", 0, NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "min", 0, NULL, 0);
+ uiItemR(row, ptr, "max", 0, NULL, 0);
+}
+
+static void draw_actuator_constraint(uiLayout *layout, PointerRNA *ptr, bContext *C)
+{
+ uiLayout *row, *col, *subcol, *split;
+ PointerRNA main_ptr;
+
+ RNA_main_pointer_create(CTX_data_main(C), &main_ptr);
+
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ switch (RNA_enum_get(ptr, "mode"))
+ {
+ case ACT_CONST_TYPE_LOC:
+ uiItemR(layout, ptr, "limit", 0, NULL, 0);
+
+ row = uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "limit_min", 0, NULL, 0);
+ uiItemR(row, ptr, "limit_max", 0, NULL, 0);
+
+ uiItemR(layout, ptr, "damping", UI_ITEM_R_SLIDER, NULL, 0);
+ break;
+
+ case ACT_CONST_TYPE_DIST:
+ split = uiLayoutSplit(layout, 0.8, 0);
+ uiItemR(split, ptr, "direction", 0, NULL, 0);
+ row = uiLayoutRow(split, 1);
+ uiItemR(row, ptr, "local", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "normal", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+ col = uiLayoutColumn(row, 0);
+ uiItemL(col, "Range:", 0);
+ uiItemR(col, ptr, "range", 0, "", 0);
+
+ col = uiLayoutColumn(row, 1);
+ uiItemR(col, ptr, "force_distance", UI_ITEM_R_TOGGLE, NULL, 0);
+ subcol = uiLayoutColumn(col, 0);
+ uiLayoutSetActive(subcol, RNA_boolean_get(ptr, "force_distance")==1);
+ uiItemR(subcol, ptr, "distance", 0, "", 0);
+
+ uiItemR(layout, ptr, "damping", UI_ITEM_R_SLIDER , NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.15, 0);
+ uiItemR(split, ptr, "detect_material", UI_ITEM_R_TOGGLE, NULL, 0);
+ if (RNA_boolean_get(ptr, "detect_material"))
+ uiItemPointerR(split, ptr, "material", &main_ptr, "materials", NULL, ICON_MATERIAL_DATA);
+ else
+ uiItemR(split, ptr, "property", 0, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.15, 0);
+ uiItemR(split, ptr, "persistent", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ row = uiLayoutRow(split, 1);
+ uiItemR(row, ptr, "time", 0, NULL, 0);
+ uiItemR(row, ptr, "damping_rotation", UI_ITEM_R_SLIDER, NULL, 0);
+ break;
+
+ case ACT_CONST_TYPE_ORI:
+ uiItemR(layout, ptr, "direction_axis", 0, NULL, 0);
+
+ row=uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "damping", UI_ITEM_R_SLIDER , NULL, 0);
+ uiItemR(row, ptr, "time", 0, NULL, 0);
+
+ row=uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "max_rotation", 0, NULL, 0);
+
+ row=uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "min_angle", 0, NULL, 0);
+ uiItemR(row, ptr, "max_angle", 0, NULL, 0);
+ break;
+
+ case ACT_CONST_TYPE_FH:
+ split=uiLayoutSplit(layout, 0.75, 0);
+ row= uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "fh_damping", UI_ITEM_R_SLIDER , NULL, 0);
+
+ uiItemR(row, ptr, "fh_height", 0, NULL, 0);
+ uiItemR(split, ptr, "fh_paralel_axis", UI_ITEM_R_TOGGLE , NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "direction_axis", 0, NULL, 0);
+ split = uiLayoutSplit(row, 0.9, 0);
+ uiItemR(split, ptr, "spring", 0, NULL, 0);
+ uiItemR(split, ptr, "fh_normal", UI_ITEM_R_TOGGLE , NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.15, 0);
+ uiItemR(split, ptr, "detect_material", UI_ITEM_R_TOGGLE, NULL, 0);
+ if (RNA_boolean_get(ptr, "detect_material"))
+ uiItemPointerR(split, ptr, "material", &main_ptr, "materials", NULL, ICON_MATERIAL_DATA);
+ else
+ uiItemR(split, ptr, "property", 0, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.15, 0);
+ uiItemR(split, ptr, "persistent", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "time", 0, NULL, 0);
+ uiItemR(row, ptr, "damping_rotation", UI_ITEM_R_SLIDER, NULL, 0);
+ break;
+ }
+}
+
+static void draw_actuator_edit_object(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob = (Object *)ptr->id.data;
+ uiLayout *row, *split, *subsplit;
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+
+ switch (RNA_enum_get(ptr, "mode"))
+ {
+ case ACT_EDOB_ADD_OBJECT:
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "object", 0, NULL, 0);
+ uiItemR(row, ptr, "time", 0, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "linear_velocity", 0, NULL, 0);
+ uiItemR(split, ptr, "local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "angular_velocity", 0, NULL, 0);
+ uiItemR(split, ptr, "local_angular_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+ break;
+ case ACT_EDOB_END_OBJECT:
+ break;
+ case ACT_EDOB_REPLACE_MESH:
+ if(ob->type != OB_MESH) {
+ uiItemL(layout, "Mode only available for mesh objects", 0);
+ break;
+ }
+ split = uiLayoutSplit(layout, 0.6, 0);
+ uiItemR(split, ptr, "mesh", 0, NULL, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "replace_display_mesh", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "replace_physics_mesh", UI_ITEM_R_TOGGLE, NULL, 0);
+ break;
+ case ACT_EDOB_TRACK_TO:
+ split = uiLayoutSplit(layout, 0.5, 0);
+ uiItemR(split, ptr, "track_object", 0, NULL, 0);
+ subsplit = uiLayoutSplit(split, 0.7, 0);
+ uiItemR(subsplit, ptr, "time", 0, NULL, 0);
+ uiItemR(subsplit, ptr, "enable_3d_tracking", UI_ITEM_R_TOGGLE, NULL, 0);
+ break;
+ case ACT_EDOB_DYNAMICS:
+ if(ob->type != OB_MESH) {
+ uiItemL(layout, "Mode only available for mesh objects", 0);
+ break;
+ }
+ uiItemR(layout, ptr, "dynamic_operation", 0, NULL, 0);
+ if (RNA_enum_get(ptr, "dynamic_operation") == ACT_EDOB_SET_MASS)
+ uiItemR(layout, ptr, "mass", 0, NULL, 0);
+ break;
+ }
+}
+
+static void draw_actuator_filter_2d(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *row, *split;
+
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ switch (RNA_enum_get(ptr, "mode"))
+ {
+ case ACT_2DFILTER_CUSTOMFILTER:
+ uiItemR(layout, ptr, "filter_pass", 0, NULL, 0);
+ uiItemR(layout, ptr, "glsl_shader", 0, NULL, 0);
+ break;
+ case ACT_2DFILTER_MOTIONBLUR:
+ split=uiLayoutSplit(layout, 0.75, 1);
+ row= uiLayoutRow(split, 0);
+ uiLayoutSetActive(row, RNA_boolean_get(ptr, "enable_motion_blur")==1);
+ uiItemR(row, ptr, "motion_blur_value", 0, NULL, 0);
+ uiItemR(split, ptr, "enable_motion_blur", UI_ITEM_R_TOGGLE, NULL, 0);
+ break;
+ default: // all other 2D Filters
+ uiItemR(layout, ptr, "filter_pass", 0, NULL, 0);
+ break;
+ }
+}
+
+static void draw_actuator_game(uiLayout *layout, PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ if (RNA_enum_get(ptr, "mode") == ACT_GAME_LOAD)
+ uiItemR(layout, ptr, "filename", 0, NULL, 0);
+}
+
+static void draw_actuator_ipo(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob;
+ PointerRNA settings_ptr;
+ uiLayout *row, *subrow, *col;
+
+ ob = (Object *)ptr->id.data;
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+
+ row= uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "play_type", 0, "", 0);
+ subrow= uiLayoutRow(row, 1);
+ uiItemR(subrow, ptr, "force", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(subrow, ptr, "add", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ col = uiLayoutColumn(subrow, 0);
+ uiLayoutSetActive(col, (RNA_boolean_get(ptr, "add") || RNA_boolean_get(ptr, "force")));
+ uiItemR(col, ptr, "local", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ row= uiLayoutRow(layout, 0);
+ if((RNA_enum_get(ptr, "play_type") == ACT_IPO_FROM_PROP))
+ uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, 0);
+
+ else {
+ uiItemR(row, ptr, "frame_start", 0, NULL, 0);
+ uiItemR(row, ptr, "frame_end", 0, NULL, 0);
+ }
+ uiItemR(row, ptr, "child", 0, NULL, 0);
+
+ row= uiLayoutRow(layout, 0);
+ uiItemPointerR(row, ptr, "frame_property", &settings_ptr, "properties", NULL, 0);
+}
+
+static void draw_actuator_message(uiLayout *layout, PointerRNA *ptr, bContext *C)
+{
+ Object *ob;
+ PointerRNA main_ptr, settings_ptr;
+ uiLayout *row;
+
+ RNA_main_pointer_create(CTX_data_main(C), &main_ptr);
+
+ ob = (Object *)ptr->id.data;
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+
+ uiItemPointerR(layout, ptr, "to_property", &main_ptr, "objects", NULL, ICON_OBJECT_DATA);
+ uiItemR(layout, ptr, "subject", 0, NULL, 0);
+
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "body_type", 0, NULL, 0);
+
+ if(RNA_enum_get(ptr, "body_type") == ACT_MESG_MESG)
+ uiItemR(row, ptr, "body_message", 0, "", 0);
+ else // mode == ACT_MESG_PROP
+ uiItemPointerR(row, ptr, "body_property", &settings_ptr, "properties", "", 0);
+}
+
+static void draw_actuator_motion(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob;
+ PointerRNA settings_ptr;
+ uiLayout *split, *row, *col, *subcol;
+ int physics_type;
+
+ ob = (Object *)ptr->id.data;
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+ physics_type = RNA_enum_get(&settings_ptr, "physics_type");
+
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+
+ switch (RNA_enum_get(ptr, "mode")) {
+ case ACT_OBJECT_NORMAL:
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "loc", 0, NULL, 0);
+ uiItemR(split, ptr, "local_location", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "rot", 0, NULL, 0);
+ uiItemR(split, ptr, "local_rotation", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ if (ELEM3(physics_type, OB_BODY_TYPE_DYNAMIC, OB_BODY_TYPE_RIGID, OB_BODY_TYPE_SOFT)) {
+ uiItemL(layout, "Dynamic Object Settings:", 0);
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "force", 0, NULL, 0);
+ uiItemR(split, ptr, "local_force", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "torque", 0, NULL, 0);
+ uiItemR(split, ptr, "local_torque", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "linear_velocity", 0, NULL, 0);
+ row = uiLayoutRow(split, 1);
+ uiItemR(row, ptr, "local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "add_linear_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "angular_velocity", 0, NULL, 0);
+ uiItemR(split, ptr, "local_angular_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ uiItemR(layout, ptr, "damping", 0, NULL, 0);
+ }
+ break;
+ case ACT_OBJECT_SERVO:
+ uiItemR(layout, ptr, "reference_object", 0, NULL, 0);
+
+ split = uiLayoutSplit(layout, 0.9, 0);
+ row = uiLayoutRow(split, 0);
+ uiItemR(row, ptr, "linear_velocity", 0, NULL, 0);
+ uiItemR(split, ptr, "local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+ col = uiLayoutColumn(row, 0);
+ uiItemR(col, ptr, "servo_limit_x", UI_ITEM_R_TOGGLE, NULL, 0);
+ subcol = uiLayoutColumn(col, 1);
+ uiLayoutSetActive(subcol, RNA_boolean_get(ptr, "servo_limit_x")==1);
+ uiItemR(subcol, ptr, "force_max_x", 0, NULL, 0);
+ uiItemR(subcol, ptr, "force_min_x", 0, NULL, 0);
+
+ col = uiLayoutColumn(row, 0);
+ uiItemR(col, ptr, "servo_limit_y", UI_ITEM_R_TOGGLE, NULL, 0);
+ subcol = uiLayoutColumn(col, 1);
+ uiLayoutSetActive(subcol, RNA_boolean_get(ptr, "servo_limit_y")==1);
+ uiItemR(subcol, ptr, "force_max_y", 0, NULL, 0);
+ uiItemR(subcol, ptr, "force_min_y", 0, NULL, 0);
+
+ col = uiLayoutColumn(row, 0);
+ uiItemR(col, ptr, "servo_limit_z", UI_ITEM_R_TOGGLE, NULL, 0);
+ subcol = uiLayoutColumn(col, 1);
+ uiLayoutSetActive(subcol, RNA_boolean_get(ptr, "servo_limit_z")==1);
+ uiItemR(subcol, ptr, "force_max_z", 0, NULL, 0);
+ uiItemR(subcol, ptr, "force_min_z", 0, NULL, 0);
+
+ //XXXACTUATOR missing labels from original 2.49 ui (e.g. Servo, Min, Max, Fast)
+ //Layout designers willing to help on that, please compare with 2.49 ui
+ // (since the old code is going to be deleted ... soon)
+
+ col = uiLayoutColumn(layout, 1);
+ uiItemR(col, ptr, "proportional_coefficient", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "integral_coefficient", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "derivate_coefficient", UI_ITEM_R_SLIDER, NULL, 0);
+ break;
+ }
+}
+
+static void draw_actuator_parent(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *row;
+
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "object", 0, NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "compound", 0, NULL, 0);
+ uiItemR(row, ptr, "ghost", 0, NULL, 0);
+}
+
+static void draw_actuator_property(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob = (Object *)ptr->id.data;
+ bActuator *act = (bActuator *)ptr->data;
+ bPropertyActuator *pa = (bPropertyActuator *) act->data;
+ Object *ob_from= pa->ob;
+ PointerRNA settings_ptr, obj_settings_ptr;
+
+ uiLayout *row, *subrow;
+
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemPointerR(layout, ptr, "property", &settings_ptr, "properties", NULL, 0);
+
+ switch(RNA_enum_get(ptr, "mode"))
+ {
+ case ACT_PROP_TOGGLE:
+ break;
+ case ACT_PROP_ADD:
+ uiItemR(layout, ptr, "value", 0, NULL, 0);
+ break;
+ case ACT_PROP_ASSIGN:
+ uiItemR(layout, ptr, "value", 0, NULL, 0);
+ break;
+ case ACT_PROP_COPY:
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "object", 0, NULL, 0);
+ if(ob_from){
+ RNA_pointer_create((ID *)ob_from, &RNA_GameObjectSettings, ob_from, &obj_settings_ptr);
+ uiItemPointerR(row, ptr, "object_property", &obj_settings_ptr, "properties", NULL, 0);
+ }else
+ {
+ subrow= uiLayoutRow(row, 0);
+ uiLayoutSetActive(subrow, 0);
+ uiItemR(subrow, ptr, "object_property", 0, NULL, 0);
+ }
+ break;
+ }
+}
+
+static void draw_actuator_random(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob;
+ PointerRNA settings_ptr;
+ uiLayout *row;
+
+ ob = (Object *)ptr->id.data;
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+
+ row = uiLayoutRow(layout, 0);
+
+ uiItemR(row, ptr, "seed", 0, NULL, 0);
+ uiItemR(row, ptr, "distribution", 0, NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+
+ switch (RNA_enum_get(ptr, "distribution")){
+ case ACT_RANDOM_BOOL_CONST:
+ uiItemR(row, ptr, "always_true", UI_ITEM_R_TOGGLE, NULL, 0);
+ break;
+
+ case ACT_RANDOM_BOOL_UNIFORM:
+ uiItemL(row, "Choose between true and false, 50% chance each", 0);
+ break;
+
+ case ACT_RANDOM_BOOL_BERNOUILLI:
+ uiItemR(row, ptr, "chance", 0, NULL, 0);
+ break;
+
+ case ACT_RANDOM_INT_CONST:
+ uiItemR(row, ptr, "int_value", 0, NULL, 0);
+ break;
+
+ case ACT_RANDOM_INT_UNIFORM:
+ uiItemR(row, ptr, "int_min", 0, NULL, 0);
+ uiItemR(row, ptr, "int_max", 0, NULL, 0);
+ break;
+
+ case ACT_RANDOM_INT_POISSON:
+ uiItemR(row, ptr, "int_mean", 0, NULL, 0);
+ break;
+
+ case ACT_RANDOM_FLOAT_CONST:
+ uiItemR(row, ptr, "float_value", 0, NULL, 0);
+ break;
+
+ case ACT_RANDOM_FLOAT_UNIFORM:
+ uiItemR(row, ptr, "float_min", 0, NULL, 0);
+ uiItemR(row, ptr, "float_max", 0, NULL, 0);
+ break;
+
+ case ACT_RANDOM_FLOAT_NORMAL:
+ uiItemR(row, ptr, "float_mean", 0, NULL, 0);
+ uiItemR(row, ptr, "standard_derivation", 0, NULL, 0);
+ break;
+
+ case ACT_RANDOM_FLOAT_NEGATIVE_EXPONENTIAL:
+ uiItemR(row, ptr, "half_life_time", 0, NULL, 0);
+ break;
+ }
+}
+
+static void draw_actuator_scene(uiLayout *layout, PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+
+ switch (RNA_enum_get(ptr, "mode")) {
+ case ACT_SCENE_CAMERA:
+ uiItemR(layout, ptr, "camera", 0, NULL, 0);
+ break;
+ case ACT_SCENE_RESTART:
+ break;
+ default: // ACT_SCENE_SET|ACT_SCENE_ADD_FRONT|ACT_SCENE_ADD_BACK|ACT_SCENE_REMOVE|ACT_SCENE_SUSPEND|ACT_SCENE_RESUME
+ uiItemR(layout, ptr, "scene", 0, NULL, 0);
+ break;
+ }
+}
+
+static void draw_actuator_shape_action(uiLayout *layout, PointerRNA *ptr)
+{
+ Object *ob = (Object *)ptr->id.data;
+ PointerRNA settings_ptr;
+ uiLayout *row;
+
+ if(ob->type != OB_MESH){
+ uiItemL(layout, "Actuator only available for mesh objects", 0);
+ return;
+ }
+
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+
+ row= uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "mode", 0, "", 0);
+ uiItemR(row, ptr, "action", 0, NULL, 0);
+ uiItemR(row, ptr, "continue_last_frame", 0, NULL, 0);
+
+ row= uiLayoutRow(layout, 0);
+ if((RNA_enum_get(ptr, "mode") == ACT_ACTION_FROM_PROP))
+ uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, 0);
+
+ else {
+ uiItemR(row, ptr, "frame_start", 0, NULL, 0);
+ uiItemR(row, ptr, "frame_end", 0, NULL, 0);
+ }
+
+ row= uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "blendin", 0, NULL, 0);
+ uiItemR(row, ptr, "priority", 0, NULL, 0);
+
+ row= uiLayoutRow(layout, 0);
+ uiItemPointerR(row, ptr, "frame_property", &settings_ptr, "properties", NULL, 0);
+
+#ifdef __NLA_ACTION_BY_MOTION_ACTUATOR
+ uiItemR(row, "stride_length", 0, NULL, 0);
+#endif
+}
+
+static void draw_actuator_sound(uiLayout *layout, PointerRNA *ptr, bContext *C)
+{
+ uiLayout *row, *col;
+
+ uiTemplateID(layout, C, ptr, "sound", NULL, "SOUND_OT_open", NULL, NULL);
+ if (!RNA_pointer_get(ptr, "sound").data)
+ {
+ uiItemL(layout, "Select a sound from the list or load a new one", 0);
+ return;
+ }
+ uiItemR(layout, ptr, "mode", 0, NULL, 0);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "volume", 0, NULL, 0);
+ uiItemR(row, ptr, "pitch", 0, NULL, 0);
+
+ uiItemR(layout, ptr, "enable_sound_3d", 0, NULL, 0);
+
+ col = uiLayoutColumn(layout, 0);
+ uiLayoutSetActive(col, RNA_boolean_get(ptr, "enable_sound_3d")==1);
+
+ row = uiLayoutRow(col, 0);
+ uiItemR(row, ptr, "minimum_gain_3d", 0, NULL, 0);
+ uiItemR(row, ptr, "maximum_gain_3d", 0, NULL, 0);
+
+ row = uiLayoutRow(col, 0);
+ uiItemR(row, ptr, "reference_distance_3d", 0, NULL, 0);
+ uiItemR(row, ptr, "max_distance_3d", 0, NULL, 0);
+
+ row = uiLayoutRow(col, 0);
+ uiItemR(row, ptr, "rolloff_factor_3d", 0, NULL, 0);
+ uiItemR(row, ptr, "cone_outer_gain_3d", 0, NULL, 0);
+
+ row = uiLayoutRow(col, 0);
+ uiItemR(row, ptr, "cone_outer_angle_3d", 0, NULL, 0);
+ uiItemR(row, ptr, "cone_inner_angle_3d", 0, NULL, 0);
+}
+
+static void draw_actuator_state(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *split;
+ Object *ob = (Object *)ptr->id.data;
+ PointerRNA settings_ptr;
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+
+ split = uiLayoutSplit(layout, 0.35, 0);
+ uiItemR(split, ptr, "operation", 0, NULL, 0);
+
+ uiTemplateLayers(split, ptr, "state", &settings_ptr, "used_state", 0);
+}
+
+static void draw_actuator_visibility(uiLayout *layout, PointerRNA *ptr)
+{
+ uiLayout *row;
+ row = uiLayoutRow(layout, 0);
+
+ uiItemR(row, ptr, "visible", 0, NULL, 0);
+ uiItemR(row, ptr, "occlusion", 0, NULL, 0);
+ uiItemR(row, ptr, "children", 0, NULL, 0);
+}
+
+void draw_brick_actuator(uiLayout *layout, PointerRNA *ptr, bContext *C)
+{
+ uiLayout *box;
+
+ if (!RNA_boolean_get(ptr, "expanded"))
+ return;
+
+ box = uiLayoutBox(layout);
+
+ switch (RNA_enum_get(ptr, "type")) {
+ case ACT_ACTION:
+ draw_actuator_action(box, ptr);
+ break;
+ case ACT_ARMATURE:
+ draw_actuator_armature(box, ptr);
+ break;
+ case ACT_CAMERA:
+ draw_actuator_camera(box, ptr);
+ break;
+ case ACT_CONSTRAINT:
+ draw_actuator_constraint(box, ptr, C);
+ break;
+ case ACT_EDIT_OBJECT:
+ draw_actuator_edit_object(box, ptr);
+ break;
+ case ACT_2DFILTER:
+ draw_actuator_filter_2d(box, ptr);
+ break;
+ case ACT_GAME:
+ draw_actuator_game(box, ptr);
+ break;
+ case ACT_IPO:
+ draw_actuator_ipo(box, ptr);
+ break;
+ case ACT_MESSAGE:
+ draw_actuator_message(box, ptr, C);
+ break;
+ case ACT_OBJECT:
+ draw_actuator_motion(box, ptr);
+ break;
+ case ACT_PARENT:
+ draw_actuator_parent(box, ptr);
+ break;
+ case ACT_PROPERTY:
+ draw_actuator_property(box, ptr);
+ break;
+ case ACT_RANDOM:
+ draw_actuator_random(box, ptr);
+ break;
+ case ACT_SCENE:
+ draw_actuator_scene(box, ptr);
+ break;
+ case ACT_SHAPEACTION:
+ draw_actuator_shape_action(box, ptr);
+ break;
+ case ACT_SOUND:
+ draw_actuator_sound(box, ptr, C);
+ break;
+ case ACT_STATE:
+ draw_actuator_state(box, ptr);
+ break;
+ case ACT_VISIBILITY:
+ draw_actuator_visibility(box, ptr);
+ break;
+ }
+}
+
+static void logic_buttons_new(bContext *C, ARegion *ar)
+{
+ SpaceLogic *slogic= CTX_wm_space_logic(C);
+ Object *ob= CTX_data_active_object(C);
+ Object *act_ob= ob;
+ ID **idar;
+
+ PointerRNA logic_ptr, settings_ptr;
+
+ uiLayout *layout, *row, *box;
+ uiBlock *block;
+ uiBut *but;
+ char name[32];
+ short a, count;
+ int xco, yco, width;
+
+ if(ob==NULL) return;
+
+ RNA_pointer_create(NULL, &RNA_SpaceLogicEditor, slogic, &logic_ptr);
+ idar= get_selected_and_linked_obs(C, &count, slogic->scaflag);
+
+ sprintf(name, "buttonswin %p", ar);
+ block= uiBeginBlock(C, ar, name, UI_EMBOSS);
+ uiBlockSetHandleFunc(block, do_logic_buts, NULL);
+
+ /* loop over all objects and set visible/linked flags for the logic bricks */
+ for(a=0; a<count; a++) {
+ bActuator *act;
+ bSensor *sens;
+ bController *cont;
+ int iact;
+ short flag;
+
+ ob= (Object *)idar[a];
+
+ /* clean ACT_LINKED and ACT_VISIBLE of all potentially visible actuators so that we can determine which is actually linked/visible */
+ act = ob->actuators.first;
+ while(act) {
+ act->flag &= ~(ACT_LINKED|ACT_VISIBLE);
+ act = act->next;
+ }
+ /* same for sensors */
+ sens= ob->sensors.first;
+ while(sens) {
+ sens->flag &= ~(SENS_VISIBLE);
+ sens = sens->next;
+ }
+
+ /* mark the linked and visible actuators */
+ cont= ob->controllers.first;
+ while(cont) {
+ flag = ACT_LINKED;
+
+ /* this controller is visible, mark all its actuator */
+ if ((ob->scaflag & OB_ALLSTATE) || (ob->state & cont->state_mask))
+ flag |= ACT_VISIBLE;
+
+ for (iact=0; iact<cont->totlinks; iact++) {
+ act = cont->links[iact];
+ if (act)
+ act->flag |= flag;
+ }
+ cont = cont->next;
+ }
+ }
+
+ /* ****************** Controllers ****************** */
+
+ xco= 420; yco= 170; width= 300;
+ layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, xco, yco, width, 20, U.uistyles.first);
+ row = uiLayoutRow(layout, 1);
+
+ uiDefBlockBut(block, controller_menu, NULL, "Controllers", xco-10, yco, 300, UI_UNIT_Y, ""); /* replace this with uiLayout stuff later */
+
+ uiItemR(row, &logic_ptr, "controllers_show_selected_objects", 0, "Sel", 0);
+ uiItemR(row, &logic_ptr, "controllers_show_active_objects", 0, "Act", 0);
+ uiItemR(row, &logic_ptr, "controllers_show_linked_controller", 0, "Link", 0);
+
+ for(a=0; a<count; a++) {
+ bController *cont;
+ PointerRNA ptr;
+ uiLayout *split, *subsplit, *col;
+
+
+ ob= (Object *)idar[a];
+
+ /* only draw the controller common header if "visible" */
+ if( (ob->scavisflag & OB_VIS_CONT) == 0) continue;
+
+ /* Drawing the Controller Header common to all Selected Objects */
+
+ RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
+
+ split= uiLayoutSplit(layout, 0.05, 0);
+ uiItemR(split, &settings_ptr, "show_state_panel", UI_ITEM_R_NO_BG, "", ICON_DISCLOSURE_TRI_RIGHT);
+
+ row = uiLayoutRow(split, 1);
+ uiDefButBitS(block, TOG, OB_SHOWCONT, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide controllers");
+ if (ob == act_ob)
+ uiItemMenuEnumO(row, "LOGIC_OT_controller_add", "type", "Add Controller", 0);
+
+ if (RNA_boolean_get(&settings_ptr, "show_state_panel")) {
+
+ box= uiLayoutBox(layout);
+ split= uiLayoutSplit(box, 0.2, 0);
+
+ col= uiLayoutColumn(split, 0);
+ uiItemL(col, "Visible", 0);
+ uiItemL(col, "Initial", 0);
+
+ subsplit= uiLayoutSplit(split, 0.85, 0);
+ col= uiLayoutColumn(subsplit, 0);
+ row= uiLayoutRow(col, 0);
+ uiLayoutSetActive(row, RNA_boolean_get(&settings_ptr, "all_states")==0);
+ uiTemplateLayers(row, &settings_ptr, "visible_state", &settings_ptr, "used_state", 0);
+ row= uiLayoutRow(col, 0);
+ uiTemplateLayers(row, &settings_ptr, "initial_state", &settings_ptr, "used_state", 0);
+
+ col= uiLayoutColumn(subsplit, 0);
+ uiItemR(col, &settings_ptr, "all_states", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(col, &settings_ptr, "debug_state", 0, "", 0);
+ }
+
+ /* End of Drawing the Controller Header common to all Selected Objects */
+
+ if ((ob->scaflag & OB_SHOWCONT) == 0) continue;
+
+
+ uiItemS(layout);
+
+ for(cont= ob->controllers.first; cont; cont=cont->next) {
+ RNA_pointer_create((ID *)ob, &RNA_Controller, cont, &ptr);
+
+ if (!(ob->scaflag & OB_ALLSTATE) && !(ob->state & cont->state_mask))
+ continue;
+
+ /* use two nested splits to align inlinks/links properly */
+ split = uiLayoutSplit(layout, 0.05, 0);
+
+ /* put inlink button to the left */
+ col = uiLayoutColumn(split, 0);
+ uiLayoutSetAlignment(col, UI_LAYOUT_ALIGN_LEFT);
+ uiDefIconBut(block, INLINK, 0, ICON_INLINK, 0, 0, UI_UNIT_X, UI_UNIT_Y, cont, LINK_CONTROLLER, 0, 0, 0, "");
+
+ //col = uiLayoutColumn(split, 1);
+ /* nested split for middle and right columns */
+ subsplit = uiLayoutSplit(split, 0.95, 0);
+
+ col = uiLayoutColumn(subsplit, 1);
+ uiLayoutSetContextPointer(col, "controller", &ptr);
+
+ /* should make UI template for controller header.. function will do for now */
+// draw_controller_header(col, &ptr);
+ draw_controller_header(col, &ptr, xco, width, yco); //provisory for 2.50 beta
+
+ /* draw the brick contents */
+ draw_brick_controller(col, &ptr);
+
+
+ /* put link button to the right */
+ col = uiLayoutColumn(subsplit, 0);
+ uiLayoutSetAlignment(col, UI_LAYOUT_ALIGN_LEFT);
+ but= uiDefIconBut(block, LINK, 0, ICON_LINK, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+ uiSetButLink(but, NULL, (void ***)&(cont->links), &cont->totlinks, LINK_CONTROLLER, LINK_ACTUATOR);
+ }
+ }
+ uiBlockLayoutResolve(block, NULL, &yco); /* stores final height in yco */
+
+
+ /* ****************** Sensors ****************** */
+
+ xco= 10; yco= 170; width= 340;
+ layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, xco, yco, width, 20, U.uistyles.first);
+ row = uiLayoutRow(layout, 1);
+
+ uiDefBlockBut(block, sensor_menu, NULL, "Sensors", xco-10, yco, 300, UI_UNIT_Y, ""); /* replace this with uiLayout stuff later */
+
+ uiItemR(row, &logic_ptr, "sensors_show_selected_objects", 0, "Sel", 0);
+ uiItemR(row, &logic_ptr, "sensors_show_active_objects", 0, "Act", 0);
+ uiItemR(row, &logic_ptr, "sensors_show_linked_controller", 0, "Link", 0);
+ uiItemR(row, &logic_ptr, "sensors_show_active_states", 0, "State", 0);
+
+ for(a=0; a<count; a++) {
+ bSensor *sens;
+ PointerRNA ptr;
+
+ ob= (Object *)idar[a];
+
+ /* only draw the sensor common header if "visible" */
+ if((ob->scavisflag & OB_VIS_SENS) == 0) continue;
+
+ row = uiLayoutRow(layout, 1);
+ uiDefButBitS(block, TOG, OB_SHOWSENS, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide sensors");
+ if (ob == act_ob)
+ uiItemMenuEnumO(row, "LOGIC_OT_sensor_add", "type", "Add Sensor", 0);
+
+ if ((ob->scaflag & OB_SHOWSENS) == 0) continue;
+
+ uiItemS(layout);
+
+ for(sens= ob->sensors.first; sens; sens=sens->next) {
+ RNA_pointer_create((ID *)ob, &RNA_Sensor, sens, &ptr);
+
+ if ((ob->scaflag & OB_ALLSTATE) ||
+ !(slogic->scaflag & BUTS_SENS_STATE) ||
+ (sens->totlinks == 0) || /* always display sensor without links so that is can be edited */
+ (sens->flag & SENS_PIN && slogic->scaflag & BUTS_SENS_STATE) || /* states can hide some sensors, pinned sensors ignore the visible state */
+ (is_sensor_linked(block, sens))
+ )
+ { // gotta check if the current state is visible or not
+ uiLayout *split, *col;
+
+ /* make as visible, for move operator */
+ sens->flag |= SENS_VISIBLE;
+
+ split = uiLayoutSplit(layout, 0.95, 0);
+ col = uiLayoutColumn(split, 1);
+ uiLayoutSetContextPointer(col, "sensor", &ptr);
+
+ /* should make UI template for sensor header.. function will do for now */
+ draw_sensor_header(col, &ptr, &logic_ptr);
+
+ /* draw the brick contents */
+ draw_brick_sensor(col, &ptr, C);
+
+ /* put link button to the right */
+ col = uiLayoutColumn(split, 0);
+ /* use oldskool uiButtons for links for now */
+ but= uiDefIconBut(block, LINK, 0, ICON_LINK, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+ uiSetButLink(but, NULL, (void ***)&(sens->links), &sens->totlinks, LINK_SENSOR, LINK_CONTROLLER);
+ }
+ }
+ }
+ uiBlockLayoutResolve(block, NULL, &yco); /* stores final height in yco */
+
+ /* ****************** Actuators ****************** */
+
+ xco= 800; yco= 170; width= 340;
+ layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, xco, yco, width, 20, U.uistyles.first);
+ row = uiLayoutRow(layout, 1);
+
+ uiDefBlockBut(block, actuator_menu, NULL, "Actuators", xco-10, yco, 300, UI_UNIT_Y, ""); /* replace this with uiLayout stuff later */
+
+ uiItemR(row, &logic_ptr, "actuators_show_selected_objects", 0, "Sel", 0);
+ uiItemR(row, &logic_ptr, "actuators_show_active_objects", 0, "Act", 0);
+ uiItemR(row, &logic_ptr, "actuators_show_linked_controller", 0, "Link", 0);
+ uiItemR(row, &logic_ptr, "actuators_show_active_states", 0, "State", 0);
+
+ for(a=0; a<count; a++) {
+ bActuator *act;
+ PointerRNA ptr;
+
+ ob= (Object *)idar[a];
+
+ /* only draw the actuator common header if "visible" */
+ if( (ob->scavisflag & OB_VIS_ACT) == 0) continue;
+
+ row = uiLayoutRow(layout, 1);
+ uiDefButBitS(block, TOG, OB_SHOWACT, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide actuators");
+ if (ob == act_ob)
+ uiItemMenuEnumO(row, "LOGIC_OT_actuator_add", "type", "Add Actuator", 0);
+
+ if ((ob->scaflag & OB_SHOWACT) == 0) continue;
+
+ uiItemS(layout);
+
+ for(act= ob->actuators.first; act; act=act->next) {
+
+ RNA_pointer_create((ID *)ob, &RNA_Actuator, act, &ptr);
+
+ if ((ob->scaflag & OB_ALLSTATE) ||
+ !(slogic->scaflag & BUTS_ACT_STATE) ||
+ !(act->flag & ACT_LINKED) || /* always display actuators without links so that is can be edited */
+ (act->flag & ACT_VISIBLE) || /* this actuator has visible connection, display it */
+ (act->flag & ACT_PIN && slogic->scaflag & BUTS_ACT_STATE) /* states can hide some sensors, pinned sensors ignore the visible state */
+ )
+ { // gotta check if the current state is visible or not
+ uiLayout *split, *col;
+
+ /* make as visible, for move operator */
+ act->flag |= ACT_VISIBLE;
+
+ split = uiLayoutSplit(layout, 0.05, 0);
+
+ /* put inlink button to the left */
+ col = uiLayoutColumn(split, 0);
+ uiDefIconBut(block, INLINK, 0, ICON_INLINK, 0, 0, UI_UNIT_X, UI_UNIT_Y, act, LINK_ACTUATOR, 0, 0, 0, "");
+
+ col = uiLayoutColumn(split, 1);
+ uiLayoutSetContextPointer(col, "actuator", &ptr);
+
+ /* should make UI template for actuator header.. function will do for now */
+ draw_actuator_header(col, &ptr, &logic_ptr);
+
+ /* draw the brick contents */
+ draw_brick_actuator(col, &ptr, C);
+
+ }
+ }
+ }
+ uiBlockLayoutResolve(block, NULL, &yco); /* stores final height in yco */
+
+
+ uiComposeLinks(block);
+
+ uiEndBlock(C, block);
+ uiDrawBlock(C, block);
+
+ if(idar) MEM_freeN(idar);
+}
void logic_buttons(bContext *C, ARegion *ar)
{
@@ -3188,13 +4723,20 @@ void logic_buttons(bContext *C, ARegion *ar)
bActuator *act;
uiBlock *block;
uiBut *but;
+ PointerRNA logic_ptr;
int a, iact, stbit, offset;
- short xco, yco, count, width, ycoo;
+ int xco, yco, width, ycoo;
+ short count;
char name[32];
/* pin is a bool used for actuator and sensor drawing with states
* pin so changing states dosnt hide the logic brick */
char pin;
+ if (G.rt == 0) {
+ logic_buttons_new(C, ar);
+ return;
+ }
+
if(ob==NULL) return;
// uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
@@ -3202,6 +4744,8 @@ void logic_buttons(bContext *C, ARegion *ar)
block= uiBeginBlock(C, ar, name, UI_EMBOSS);
uiBlockSetHandleFunc(block, do_logic_buts, NULL);
+ RNA_pointer_create(NULL, &RNA_SpaceLogicEditor, slogic, &logic_ptr);
+
idar= get_selected_and_linked_obs(C, &count, slogic->scaflag);
/* clean ACT_LINKED and ACT_VISIBLE of all potentially visible actuators so that
@@ -3285,7 +4829,7 @@ void logic_buttons(bContext *C, ARegion *ar)
}
}
uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, OB_SETSTBIT, B_SET_STATE_BIT, "All",(short)(xco+226), yco-10, 22, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Set all state bits");
+ uiDefButBitS(block, TOG, OB_ALLSTATE, B_SET_STATE_BIT, "All",(short)(xco+226), yco-10, 22, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Set all state bits");
uiDefButBitS(block, TOG, OB_INITSTBIT, B_INIT_STATE_BIT, "Ini",(short)(xco+248), yco-10, 22, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Set the initial state");
uiDefButBitS(block, TOG, OB_DEBUGSTATE, 0, "D",(short)(xco+270), yco-10, 15, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Print state debug info");
uiBlockEndAlign(block);
@@ -3332,15 +4876,15 @@ void logic_buttons(bContext *C, ARegion *ar)
cpack(0x999999);
glRecti(xco+22, yco, xco+width-22,yco+19);
but= uiDefBut(block, LABEL, 0, controller_name(cont->type), (short)(xco+22), yco, 70, UI_UNIT_Y, cont, 0, 0, 0, 0, "Controller type");
- //uiButSetFunc(but, sca_move_controller, cont, NULL);
+ //uiButSetFunc(but, old_sca_move_controller, cont, NULL);
but= uiDefBut(block, LABEL, 0, cont->name,(short)(xco+92), yco,(short)(width-158), UI_UNIT_Y, cont, 0, 0, 0, 0, "Controller name");
- //uiButSetFunc(but, sca_move_controller, cont, NULL);
+ //uiButSetFunc(but, old_sca_move_controller, cont, NULL);
uiBlockBeginAlign(block);
but= uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_UP, (short)(xco+width-(110+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick up");
- uiButSetFunc(but, sca_move_controller, cont, (void *)TRUE);
+ uiButSetFunc(but, old_sca_move_controller, cont, (void *)TRUE);
but= uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_DOWN, (short)(xco+width-(88+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick down");
- uiButSetFunc(but, sca_move_controller, cont, (void *)FALSE);
+ uiButSetFunc(but, old_sca_move_controller, cont, (void *)FALSE);
uiBlockEndAlign(block);
ycoo= yco;
@@ -3361,7 +4905,7 @@ void logic_buttons(bContext *C, ARegion *ar)
yco-= 6;
}
}
-
+
/* ******************************* */
xco= 10; yco= 170; width= 300;
@@ -3424,15 +4968,15 @@ void logic_buttons(bContext *C, ARegion *ar)
set_col_sensor(sens->type, 1);
glRecti(xco+22, yco, xco+width-22,yco+19);
but= uiDefBut(block, LABEL, 0, sensor_name(sens->type), (short)(xco+22), yco, 80, UI_UNIT_Y, sens, 0, 0, 0, 0, "");
- //uiButSetFunc(but, sca_move_sensor, sens, NULL);
+ //uiButSetFunc(but, old_sca_move_sensor, sens, NULL);
but= uiDefBut(block, LABEL, 0, sens->name, (short)(xco+102), yco, (short)(width-(pin?146:124)), UI_UNIT_Y, sens, 0, 31, 0, 0, "");
- //uiButSetFunc(but, sca_move_sensor, sens, NULL);
+ //uiButSetFunc(but, old_sca_move_sensor, sens, NULL);
uiBlockBeginAlign(block);
but= uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_UP, (short)(xco+width-(66+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick up");
- uiButSetFunc(but, sca_move_sensor, sens, (void *)TRUE);
+ uiButSetFunc(but, old_sca_move_sensor, sens, (void *)TRUE);
but= uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_DOWN, (short)(xco+width-(44+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick down");
- uiButSetFunc(but, sca_move_sensor, sens, (void *)FALSE);
+ uiButSetFunc(but, old_sca_move_sensor, sens, (void *)FALSE);
uiBlockEndAlign(block);
}
@@ -3446,10 +4990,8 @@ void logic_buttons(bContext *C, ARegion *ar)
yco-= 6;
}
}
-
/* ******************************* */
xco= 800; yco= 170; width= 300;
-
uiDefBlockBut(block, actuator_menu, NULL, "Actuators", xco-10, yco+35, 90, UI_UNIT_Y, "");
uiBlockBeginAlign(block);
@@ -3504,15 +5046,15 @@ void logic_buttons(bContext *C, ARegion *ar)
set_col_actuator(act->type, 1);
glRecti((short)(xco+22), yco, (short)(xco+width-22),(short)(yco+19));
but= uiDefBut(block, LABEL, 0, actuator_name(act->type), (short)(xco+22), yco, 90, UI_UNIT_Y, act, 0, 0, 0, 0, "Actuator type");
- // uiButSetFunc(but, sca_move_actuator, act, NULL);
+ // uiButSetFunc(but, old_sca_move_actuator, act, NULL);
but= uiDefBut(block, LABEL, 0, act->name, (short)(xco+112), yco, (short)(width-(pin?156:134)), UI_UNIT_Y, act, 0, 0, 0, 0, "Actuator name");
- // uiButSetFunc(but, sca_move_actuator, act, NULL);
+ // uiButSetFunc(but, old_sca_move_actuator, act, NULL);
uiBlockBeginAlign(block);
but= uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_UP, (short)(xco+width-(66+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick up");
- uiButSetFunc(but, sca_move_actuator, act, (void *)TRUE);
+ uiButSetFunc(but, old_sca_move_actuator, act, (void *)TRUE);
but= uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_DOWN, (short)(xco+width-(44+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick down");
- uiButSetFunc(but, sca_move_actuator, act, (void *)FALSE);
+ uiButSetFunc(but, old_sca_move_actuator, act, (void *)FALSE);
uiBlockEndAlign(block);
ycoo= yco;
diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c
index ab37cad2bd8..ed3d956ce01 100644
--- a/source/blender/editors/space_logic/space_logic.c
+++ b/source/blender/editors/space_logic/space_logic.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,13 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_image_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -46,18 +39,15 @@
#include "BKE_screen.h"
#include "BKE_utildefines.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "RNA_access.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -192,6 +182,7 @@ void logic_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "LOGIC_OT_properties", NKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "LOGIC_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_menu(keymap, "LOGIC_MT_logicbricks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
}
static void logic_refresh(const bContext *C, ScrArea *sa)
@@ -205,6 +196,9 @@ static void logic_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch(wmn->category) {
+ case NC_LOGIC:
+ ED_region_tag_redraw(ar);
+ break;
case NC_SCENE:
switch(wmn->data) {
case ND_FRAME:
@@ -254,11 +248,9 @@ static void logic_main_area_draw(const bContext *C, ARegion *ar)
// SpaceLogic *slogic= CTX_wm_space_logic(C);
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
- float col[3];
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
@@ -304,15 +296,8 @@ static void logic_header_area_init(wmWindowManager *wm, ARegion *ar)
static void logic_header_area_draw(const bContext *C, ARegion *ar)
{
- float col[3];
-
/* clear */
- if(ED_screen_area_active(C))
- UI_GetThemeColor3fv(TH_HEADER, col);
- else
- UI_GetThemeColor3fv(TH_HEADERDESEL, col);
-
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(ED_screen_area_active(C)?TH_HEADER:TH_HEADERDESEL);
glClear(GL_COLOR_BUFFER_BIT);
/* set view2d view matrix for scrolling (without scrollers) */
diff --git a/source/blender/editors/space_nla/CMakeLists.txt b/source/blender/editors/space_nla/CMakeLists.txt
new file mode 100644
index 00000000000..be8020b0793
--- /dev/null
+++ b/source/blender/editors/space_nla/CMakeLists.txt
@@ -0,0 +1,34 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_space_nla "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c
index 4f944d1b855..81d4e8b6b01 100644
--- a/source/blender/editors/space_nla/nla_buttons.c
+++ b/source/blender/editors/space_nla/nla_buttons.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,12 +32,6 @@
#include <float.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -66,17 +60,12 @@
#include "WM_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "ED_anim_api.h"
-#include "ED_keyframing.h"
#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "nla_intern.h" // own include
@@ -248,19 +237,19 @@ static void nla_panel_animdata (const bContext *C, Panel *pa)
/* Active Action Properties ------------------------------------- */
/* action */
row= uiLayoutRow(layout, 1);
- uiTemplateID(row, (bContext *)C, &adt_ptr, "action", "ACTION_OT_new", NULL, NULL /*"ACTION_OT_unlink"*/); // XXX: need to make these operators
+ uiTemplateID(row, (bContext *)C, &adt_ptr, "action", "ACTION_OT_new", NULL, NULL /*"ACTION_OT_unlink"*/, NULL); // XXX: need to make these operators
/* extrapolation */
row= uiLayoutRow(layout, 1);
- uiItemR(row, NULL, 0, &adt_ptr, "action_extrapolation", 0);
+ uiItemR(row, &adt_ptr, "action_extrapolation", 0, NULL, 0);
/* blending */
row= uiLayoutRow(layout, 1);
- uiItemR(row, NULL, 0, &adt_ptr, "action_blending", 0);
+ uiItemR(row, &adt_ptr, "action_blending", 0, NULL, 0);
/* influence */
row= uiLayoutRow(layout, 1);
- uiItemR(row, NULL, 0, &adt_ptr, "action_influence", 0);
+ uiItemR(row, &adt_ptr, "action_influence", 0, NULL, 0);
}
/* active NLA-Track */
@@ -280,7 +269,7 @@ static void nla_panel_track (const bContext *C, Panel *pa)
/* Info - Active NLA-Context:Track ---------------------- */
row= uiLayoutRow(layout, 1);
- uiItemR(row, NULL, ICON_NLA, &nlt_ptr, "name", 0);
+ uiItemR(row, &nlt_ptr, "name", 0, NULL, ICON_NLA);
}
/* generic settings for active NLA-Strip */
@@ -300,41 +289,41 @@ static void nla_panel_properties(const bContext *C, Panel *pa)
/* Strip Properties ------------------------------------- */
/* strip type */
row= uiLayoutColumn(layout, 1);
- uiItemR(row, NULL, ICON_NLA, &strip_ptr, "name", 0); // XXX icon?
- uiItemR(row, NULL, 0, &strip_ptr, "type", 0);
+ uiItemR(row, &strip_ptr, "name", 0, NULL, ICON_NLA); // XXX icon?
+ uiItemR(row, &strip_ptr, "type", 0, NULL, 0);
/* strip extents */
column= uiLayoutColumn(layout, 1);
uiItemL(column, "Strip Extents:", 0);
- uiItemR(column, NULL, 0, &strip_ptr, "start_frame", 0);
- uiItemR(column, NULL, 0, &strip_ptr, "end_frame", 0);
+ uiItemR(column, &strip_ptr, "frame_start", 0, NULL, 0);
+ uiItemR(column, &strip_ptr, "frame_end", 0, NULL, 0);
/* extrapolation */
row= uiLayoutRow(layout, 1);
- uiItemR(row, NULL, 0, &strip_ptr, "extrapolation", 0);
+ uiItemR(row, &strip_ptr, "extrapolation", 0, NULL, 0);
/* blending */
row= uiLayoutRow(layout, 1);
- uiItemR(row, NULL, 0, &strip_ptr, "blending", 0);
+ uiItemR(row, &strip_ptr, "blending", 0, NULL, 0);
/* blend in/out + autoblending
* - blend in/out can only be set when autoblending is off
*/
column= uiLayoutColumn(layout, 1);
uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "animated_influence")==0);
- uiItemR(column, NULL, 0, &strip_ptr, "auto_blending", 0); // XXX as toggle?
+ uiItemR(column, &strip_ptr, "auto_blending", 0, NULL, 0); // XXX as toggle?
subcol= uiLayoutColumn(column, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(&strip_ptr, "auto_blending")==0);
- uiItemR(subcol, NULL, 0, &strip_ptr, "blend_in", 0);
- uiItemR(subcol, NULL, 0, &strip_ptr, "blend_out", 0);
+ uiItemR(subcol, &strip_ptr, "blend_in", 0, NULL, 0);
+ uiItemR(subcol, &strip_ptr, "blend_out", 0, NULL, 0);
/* settings */
column= uiLayoutColumn(layout, 1);
uiLayoutSetActive(column, !(RNA_boolean_get(&strip_ptr, "animated_influence") || RNA_boolean_get(&strip_ptr, "animated_time")));
uiItemL(column, "Playback Settings:", 0);
- uiItemR(column, NULL, 0, &strip_ptr, "muted", 0);
- uiItemR(column, NULL, 0, &strip_ptr, "reversed", 0);
+ uiItemR(column, &strip_ptr, "muted", 0, NULL, 0);
+ uiItemR(column, &strip_ptr, "reversed", 0, NULL, 0);
}
@@ -356,22 +345,22 @@ static void nla_panel_actclip(const bContext *C, Panel *pa)
/* Strip Properties ------------------------------------- */
/* action pointer */
row= uiLayoutRow(layout, 1);
- uiItemR(row, NULL, ICON_ACTION, &strip_ptr, "action", 0);
+ uiItemR(row, &strip_ptr, "action", 0, NULL, ICON_ACTION);
/* action extents */
// XXX custom names were used here (to avoid the prefixes)... probably not necessary in future?
column= uiLayoutColumn(layout, 1);
uiItemL(column, "Action Extents:", 0);
- uiItemR(column, "Start Frame", 0, &strip_ptr, "action_start_frame", 0);
- uiItemR(column, "End Frame", 0, &strip_ptr, "action_end_frame", 0);
+ uiItemR(column, &strip_ptr, "action_frame_start", 0, "Start Frame", 0);
+ uiItemR(column, &strip_ptr, "action_frame_end", 0, "End Frame", 0);
uiItemO(column, NULL, 0, "NLA_OT_action_sync_length");
/* action usage */
column= uiLayoutColumn(layout, 1);
uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "animated_time")==0);
uiItemL(column, "Playback Settings:", 0);
- uiItemR(column, NULL, 0, &strip_ptr, "scale", 0);
- uiItemR(column, NULL, 0, &strip_ptr, "repeat", 0);
+ uiItemR(column, &strip_ptr, "scale", 0, NULL, 0);
+ uiItemR(column, &strip_ptr, "repeat", 0, NULL, 0);
}
/* evaluation settings for active NLA-Strip */
@@ -379,7 +368,7 @@ static void nla_panel_evaluation(const bContext *C, Panel *pa)
{
PointerRNA strip_ptr;
uiLayout *layout= pa->layout;
- uiLayout *column, *subcolumn;
+ uiLayout *column, *subcolumn, *subrow;
uiBlock *block;
/* check context and also validity of pointer */
@@ -390,19 +379,22 @@ static void nla_panel_evaluation(const bContext *C, Panel *pa)
uiBlockSetHandleFunc(block, do_nla_region_buttons, NULL);
column= uiLayoutColumn(layout, 1);
- uiItemR(column, NULL, 0, &strip_ptr, "animated_influence", 0);
+ uiItemR(column, &strip_ptr, "animated_influence", 0, NULL, 0);
subcolumn= uiLayoutColumn(column, 1);
uiLayoutSetEnabled(subcolumn, RNA_boolean_get(&strip_ptr, "animated_influence"));
- uiItemR(subcolumn, NULL, 0, &strip_ptr, "influence", 0);
+ uiItemR(subcolumn, &strip_ptr, "influence", 0, NULL, 0);
column= uiLayoutColumn(layout, 1);
- uiItemR(column, NULL, 0, &strip_ptr, "animated_time", 0);
-
+ subrow= uiLayoutRow(column, 0);
+ uiItemR(subrow, &strip_ptr, "animated_time", 0, NULL, 0);
+ uiItemR(subrow, &strip_ptr, "animated_time_cyclic", 0, NULL, 0);
+
subcolumn= uiLayoutColumn(column, 1);
- uiLayoutSetEnabled(subcolumn, RNA_boolean_get(&strip_ptr, "animated_time"));
- uiItemR(subcolumn, NULL, 0, &strip_ptr, "strip_time", 0);
+ subrow= uiLayoutRow(subcolumn, 0);
+ uiLayoutSetEnabled(subrow, RNA_boolean_get(&strip_ptr, "animated_time"));
+ uiItemR(subcolumn, &strip_ptr, "strip_time", 0, NULL, 0);
}
/* F-Modifiers for active NLA-Strip */
@@ -430,6 +422,11 @@ static void nla_panel_modifiers(const bContext *C, Panel *pa)
// XXX for now, this will be a operator button which calls a temporary 'add modifier' operator
// FIXME: we need to set the only-active property so that this will only add modifiers for the active strip (not all selected)
uiDefButO(block, BUT, "NLA_OT_fmodifier_add", WM_OP_INVOKE_REGION_WIN, "Add Modifier", 10, 0, 150, 20, "Adds a new F-Modifier for the active NLA Strip");
+
+ /* copy/paste (as sub-row)*/
+ row= uiLayoutRow(row, 1);
+ uiItemO(row, "", ICON_COPYDOWN, "NLA_OT_fmodifier_copy");
+ uiItemO(row, "", ICON_PASTEDOWN, "NLA_OT_fmodifier_paste");
}
/* draw each modifier */
diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c
index 9708e12e738..cf98decb825 100644
--- a/source/blender/editors/space_nla/nla_channels.c
+++ b/source/blender/editors/space_nla/nla_channels.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,24 +31,9 @@
#include <stdlib.h>
#include <math.h>
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_meta_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
-#include "DNA_world_types.h"
#include "MEM_guardedalloc.h"
@@ -65,8 +50,6 @@
#include "ED_anim_api.h"
#include "ED_keyframes_edit.h"
-#include "ED_markers.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "RNA_access.h"
@@ -75,9 +58,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
-#include "UI_interface_icons.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
#include "nla_intern.h" // own include
@@ -136,7 +116,7 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho
if (adt) adt->flag |= ADT_UI_SELECTED;
}
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
break;
case ANIMTYPE_OBJECT:
@@ -177,7 +157,7 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho
adt->flag |= ADT_UI_ACTIVE;
/* notifiers - channel was selected */
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
}
break;
@@ -214,7 +194,7 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho
ale->adt->flag |= ADT_UI_ACTIVE;
}
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
break;
@@ -240,21 +220,21 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho
nlt->flag ^= NLATRACK_PROTECTED;
/* notifier flags - channel was edited */
- notifierFlags |= ND_ANIMCHAN_EDIT;
+ notifierFlags |= (ND_ANIMCHAN|NA_EDITED);
}
else if (x >= (v2d->cur.xmax-2*NLACHANNEL_BUTTON_WIDTH)) {
/* toggle mute */
nlt->flag ^= NLATRACK_MUTED;
/* notifier flags - channel was edited */
- notifierFlags |= ND_ANIMCHAN_EDIT;
+ notifierFlags |= (ND_ANIMCHAN|NA_EDITED);
}
else if (x <= ((NLACHANNEL_BUTTON_WIDTH*2)+offset)) {
/* toggle 'solo' */
BKE_nlatrack_solo_toggle(adt, nlt);
/* notifier flags - channel was edited */
- notifierFlags |= ND_ANIMCHAN_EDIT;
+ notifierFlags |= (ND_ANIMCHAN|NA_EDITED);
}
else if (nlaedit_is_tweakmode_on(ac) == 0) {
/* set selection */
@@ -273,7 +253,7 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho
ANIM_set_active_channel(ac, ac->data, ac->datatype, filter, nlt, ANIMTYPE_NLATRACK);
/* notifier flags - channel was selected */
- notifierFlags |= ND_ANIMCHAN_SELECT;
+ notifierFlags |= (ND_ANIMCHAN|NA_SELECTED);
}
}
break;
@@ -426,7 +406,7 @@ static int nlaedit_add_tracks_exec (bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -482,7 +462,7 @@ static int nlaedit_delete_tracks_exec (bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c
index 3a9d668e7f8..2314b5ddcfa 100644
--- a/source/blender/editors/space_nla/nla_draw.c
+++ b/source/blender/editors/space_nla/nla_draw.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,26 +32,10 @@
#include <math.h>
#include <float.h>
-#include "DNA_listBase.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_object_types.h"
#include "DNA_screen_types.h"
-#include "DNA_scene_types.h"
#include "DNA_space_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_meta_types.h"
-#include "DNA_particle_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
-#include "DNA_world_types.h"
-#include "DNA_vec_types.h"
#include "MEM_guardedalloc.h"
@@ -69,13 +53,10 @@
#include "ED_anim_api.h"
#include "ED_keyframes_draw.h"
-#include "ED_space_api.h"
-#include "ED_screen.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "WM_api.h"
#include "WM_types.h"
#include "UI_interface.h"
@@ -83,7 +64,6 @@
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "ED_markers.h"
#include "nla_intern.h" // own include
@@ -810,7 +790,7 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie
fdrawline((float)(v2d->cur.xmax-offset), yminc,
(float)(v2d->cur.xmax-offset), ymaxc);
- offset += 16;;
+ offset += 16;
/* 'tweaking action' indicator - not a button */
UI_icon_draw((float)(v2d->cur.xmax-offset), ydatac, ICON_EDIT);
@@ -825,7 +805,7 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie
glEnd(); // GL_LINES
/* 'push down' icon for normal active-actions */
- UI_icon_draw((float)NLACHANNEL_NAMEWIDTH-offset, ydatac, ICON_FREEZE);
+ UI_icon_draw((float)v2d->cur.xmax-offset, ydatac, ICON_FREEZE);
}
}
diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c
index 543fa1dfed7..38c6ecdca22 100644
--- a/source/blender/editors/space_nla/nla_edit.c
+++ b/source/blender/editors/space_nla/nla_edit.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,13 +31,7 @@
#include <math.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_nla_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -59,7 +53,6 @@
#include "ED_anim_api.h"
#include "ED_keyframes_edit.h"
#include "ED_markers.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_transform.h"
@@ -71,8 +64,6 @@
#include "WM_types.h"
#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "nla_intern.h" // own include
#include "nla_private.h" // FIXME... maybe this shouldn't be included?
@@ -269,7 +260,7 @@ static int nlaedit_add_actionclip_exec (bContext *C, wmOperator *op)
cfra= (float)CFRA;
/* get action to use */
- act= BLI_findlink(&CTX_data_main(C)->action, RNA_enum_get(op->ptr, "type"));
+ act= BLI_findlink(&CTX_data_main(C)->action, RNA_enum_get(op->ptr, "action"));
if (act == NULL) {
BKE_report(op->reports, RPT_ERROR, "No valid Action to add.");
@@ -320,7 +311,7 @@ static int nlaedit_add_actionclip_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -345,7 +336,7 @@ void NLA_OT_actionclip_add (wmOperatorType *ot)
/* props */
// TODO: this would be nicer as an ID-pointer...
- prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, 0, "Type", "");
+ prop= RNA_def_enum(ot->srna, "action", DummyRNA_NULL_items, 0, "Action", "");
RNA_def_enum_funcs(prop, RNA_action_itemf);
ot->prop= prop;
}
@@ -439,7 +430,7 @@ static int nlaedit_add_transition_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -506,7 +497,7 @@ static int nlaedit_add_meta_exec (bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -558,7 +549,7 @@ static int nlaedit_remove_meta_exec (bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -648,7 +639,7 @@ static int nlaedit_duplicate_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -736,7 +727,7 @@ static int nlaedit_delete_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -881,7 +872,7 @@ static int nlaedit_split_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -912,6 +903,7 @@ static int nlaedit_bake_exec (bContext *C, wmOperator *op)
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
int filter;
+// int flag = 0;
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -923,7 +915,7 @@ static int nlaedit_bake_exec (bContext *C, wmOperator *op)
/* for each AnimData block, bake strips to animdata... */
for (ale= anim_data.first; ale; ale= ale->next) {
- // FIXME
+ //BKE_nla_bake(ac.scene, ale->id, ale->data, flag);
}
/* free temp data */
@@ -933,7 +925,7 @@ static int nlaedit_bake_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -995,7 +987,7 @@ static int nlaedit_toggle_mute_exec (bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1069,7 +1061,7 @@ static int nlaedit_move_up_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1143,7 +1135,7 @@ static int nlaedit_move_down_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1219,7 +1211,7 @@ static int nlaedit_sync_actlen_exec (bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1247,10 +1239,10 @@ void NLA_OT_action_sync_length (wmOperatorType *ot)
/* Reset the scaling of the selected strips to 1.0f */
/* apply scaling to keyframe */
-static short bezt_apply_nlamapping (BeztEditData *bed, BezTriple *bezt)
+static short bezt_apply_nlamapping (KeyframeEditData *ked, BezTriple *bezt)
{
- /* NLA-strip which has this scaling is stored in bed->data */
- NlaStrip *strip= (NlaStrip *)bed->data;
+ /* NLA-strip which has this scaling is stored in ked->data */
+ NlaStrip *strip= (NlaStrip *)ked->data;
/* adjust all the times */
bezt->vec[0][0]= nlastrip_get_frame(strip, bezt->vec[0][0], NLATIME_CONVERT_MAP);
@@ -1269,7 +1261,7 @@ static int nlaedit_apply_scale_exec (bContext *C, wmOperator *op)
bAnimListElem *ale;
int filter;
- BeztEditData bed;
+ KeyframeEditData ked;
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -1280,7 +1272,7 @@ static int nlaedit_apply_scale_exec (bContext *C, wmOperator *op)
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* init the editing data */
- memset(&bed, 0, sizeof(BeztEditData));
+ memset(&ked, 0, sizeof(KeyframeEditData));
/* for each NLA-Track, apply scale of all selected strips */
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1303,8 +1295,8 @@ static int nlaedit_apply_scale_exec (bContext *C, wmOperator *op)
}
/* setup iterator, and iterate over all the keyframes in the action, applying this scaling */
- bed.data= strip;
- ANIM_animchanneldata_keys_bezier_loop(&bed, strip->act, ALE_ACT, NULL, bezt_apply_nlamapping, calchandles_fcurve, 0);
+ ked.data= strip;
+ ANIM_animchanneldata_keyframes_loop(&ked, strip->act, ALE_ACT, NULL, bezt_apply_nlamapping, calchandles_fcurve, 0);
/* clear scale of strip now that it has been applied,
* and recalculate the extents of the action now that it has been scaled
@@ -1320,7 +1312,7 @@ static int nlaedit_apply_scale_exec (bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1383,7 +1375,7 @@ static int nlaedit_clear_scale_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1524,7 +1516,7 @@ static int nlaedit_snap_exec (bContext *C, wmOperator *op)
ED_nla_postop_refresh(&ac);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1575,7 +1567,7 @@ static int nla_fmodifier_add_invoke (bContext *C, wmOperator *op, wmEvent *event
continue;
/* add entry to add this type of modifier */
- uiItemEnumO(layout, fmi->name, 0, "NLA_OT_fmodifier_add", "type", i);
+ uiItemEnumO(layout, "NLA_OT_fmodifier_add", fmi->name, 0, "type", i);
}
uiItemS(layout);
@@ -1608,12 +1600,19 @@ static int nla_fmodifier_add_exec(bContext *C, wmOperator *op)
for (ale= anim_data.first; ale; ale= ale->next) {
NlaTrack *nlt= (NlaTrack *)ale->data;
NlaStrip *strip;
- int i = 1;
- for (strip= nlt->strips.first; strip; strip=strip->next, i++) {
- /* only add F-Modifier if on active strip? */
- if ((onlyActive) && (strip->flag & NLASTRIP_FLAG_ACTIVE)==0)
- continue;
+ for (strip= nlt->strips.first; strip; strip=strip->next) {
+ /* can F-Modifier be added to the current strip? */
+ if (onlyActive) {
+ /* if not active, cannot add since we're only adding to active strip */
+ if ((strip->flag & NLASTRIP_FLAG_ACTIVE)==0)
+ continue;
+ }
+ else {
+ /* strip must be selected, since we're not just doing active */
+ if ((strip->flag & NLASTRIP_FLAG_SELECT)==0)
+ continue;
+ }
/* add F-Modifier of specified type to selected, and make it the active one */
fcm= add_fmodifier(&strip->modifiers, type);
@@ -1621,10 +1620,9 @@ static int nla_fmodifier_add_exec(bContext *C, wmOperator *op)
if (fcm)
set_active_fmodifier(&strip->modifiers, fcm);
else {
- char errormsg[128];
- sprintf(errormsg, "Modifier couldn't be added to (%s : %d). See console for details.", nlt->name, i);
-
- BKE_report(op->reports, RPT_ERROR, errormsg);
+ BKE_reportf(op->reports, RPT_ERROR,
+ "Modifier couldn't be added to (%s : %s). See console for details.",
+ nlt->name, strip->name);
}
}
}
@@ -1633,8 +1631,7 @@ static int nla_fmodifier_add_exec(bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* set notifier that things have changed */
- // FIXME: this doesn't really do it justice...
- WM_event_add_notifier(C, NC_ANIMATION, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1659,4 +1656,125 @@ void NLA_OT_fmodifier_add (wmOperatorType *ot)
RNA_def_boolean(ot->srna, "only_active", 0, "Only Active", "Only add F-Modifier of the specified type to the active strip.");
}
+/* ******************** Copy F-Modifiers Operator *********************** */
+
+static int nla_fmodifier_copy_exec(bContext *C, wmOperator *op)
+{
+ bAnimContext ac;
+ ListBase anim_data = {NULL, NULL};
+ bAnimListElem *ale;
+ int filter, ok=0;
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* clear buffer first */
+ free_fmodifiers_copybuf();
+
+ /* get a list of the editable tracks being shown in the NLA */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ /* for each NLA-Track, add the specified modifier to all selected strips */
+ for (ale= anim_data.first; ale; ale= ale->next) {
+ NlaTrack *nlt= (NlaTrack *)ale->data;
+ NlaStrip *strip;
+
+ for (strip= nlt->strips.first; strip; strip=strip->next) {
+ /* only add F-Modifier if on active strip? */
+ if ((strip->flag & NLASTRIP_FLAG_ACTIVE)==0)
+ continue;
+
+ // TODO: when 'active' vs 'all' boolean is added, change last param!
+ ok += ANIM_fmodifiers_copy_to_buf(&strip->modifiers, 0);
+ }
+ }
+
+ /* successful or not? */
+ if (ok == 0) {
+ BKE_report(op->reports, RPT_ERROR, "No F-Modifiers available to be copied");
+ return OPERATOR_CANCELLED;
+ }
+ else
+ return OPERATOR_FINISHED;
+}
+
+void NLA_OT_fmodifier_copy (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Copy F-Modifiers";
+ ot->idname= "NLA_OT_fmodifier_copy";
+ ot->description= "Copy the F-Modifier(s) of the active NLA-Strip.";
+
+ /* api callbacks */
+ ot->exec= nla_fmodifier_copy_exec;
+ ot->poll= nlaop_poll_tweakmode_off;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* id-props */
+ //ot->prop = RNA_def_boolean(ot->srna, "all", 1, "All F-Modifiers", "Copy all the F-Modifiers, instead of just the active one");
+}
+
+/* ******************** Paste F-Modifiers Operator *********************** */
+
+static int nla_fmodifier_paste_exec(bContext *C, wmOperator *op)
+{
+ bAnimContext ac;
+ ListBase anim_data = {NULL, NULL};
+ bAnimListElem *ale;
+ int filter, ok=0;
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* get a list of the editable tracks being shown in the NLA */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_SEL | ANIMFILTER_FOREDIT);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ /* for each NLA-Track, add the specified modifier to all selected strips */
+ for (ale= anim_data.first; ale; ale= ale->next) {
+ NlaTrack *nlt= (NlaTrack *)ale->data;
+ NlaStrip *strip;
+
+ for (strip= nlt->strips.first; strip; strip=strip->next) {
+ // TODO: do we want to replace existing modifiers? add user pref for that!
+ ok += ANIM_fmodifiers_paste_from_buf(&strip->modifiers, 0);
+ }
+ }
+
+ /* clean up */
+ BLI_freelistN(&anim_data);
+
+ /* successful or not? */
+ if (ok) {
+ /* set notifier that things have changed */
+ /* set notifier that things have changed */
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
+ return OPERATOR_FINISHED;
+ }
+ else {
+ BKE_report(op->reports, RPT_ERROR, "No F-Modifiers to paste");
+ return OPERATOR_CANCELLED;
+ }
+}
+
+void NLA_OT_fmodifier_paste (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Paste F-Modifiers";
+ ot->idname= "NLA_OT_fmodifier_paste";
+ ot->description= "Add copied F-Modifiers to the selected NLA-Strips";
+
+ /* api callbacks */
+ ot->exec= nla_fmodifier_paste_exec;
+ ot->poll= nlaop_poll_tweakmode_off;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
/* *********************************************** */
diff --git a/source/blender/editors/space_nla/nla_intern.h b/source/blender/editors/space_nla/nla_intern.h
index 1af2d2a1635..7570969158b 100644
--- a/source/blender/editors/space_nla/nla_intern.h
+++ b/source/blender/editors/space_nla/nla_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -111,6 +111,8 @@ void NLA_OT_clear_scale(wmOperatorType *ot);
void NLA_OT_snap(wmOperatorType *ot);
void NLA_OT_fmodifier_add(wmOperatorType *ot);
+void NLA_OT_fmodifier_copy(wmOperatorType *ot);
+void NLA_OT_fmodifier_paste(wmOperatorType *ot);
/* **************************************** */
diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c
index 10ff10f46fd..dfb50ee33e5 100644
--- a/source/blender/editors/space_nla/nla_ops.c
+++ b/source/blender/editors/space_nla/nla_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,14 +29,7 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_nla_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -51,7 +44,6 @@
#include "BKE_screen.h"
#include "ED_anim_api.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_transform.h"
@@ -60,9 +52,6 @@
#include "RNA_access.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "nla_intern.h" // own include
@@ -165,6 +154,8 @@ void nla_operatortypes(void)
WM_operatortype_append(NLA_OT_snap);
WM_operatortype_append(NLA_OT_fmodifier_add);
+ WM_operatortype_append(NLA_OT_fmodifier_copy);
+ WM_operatortype_append(NLA_OT_fmodifier_paste);
}
/* ************************** registration - keymaps **********************************/
@@ -186,6 +177,7 @@ static void nla_keymap_channels (wmKeyConfig *keyconf, wmKeyMap *keymap)
/* delete tracks */
WM_keymap_add_item(keymap, "NLA_OT_delete_tracks", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NLA_OT_delete_tracks", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NLA_OT_delete_tracks", BACKSPACEKEY, KM_PRESS, 0, 0);
/* General Animation Channels keymap (see anim_channels.c) ----------------------- */
/* selection */
@@ -255,6 +247,7 @@ static void nla_keymap_main (wmKeyConfig *keyconf, wmKeyMap *keymap)
/* delete */
WM_keymap_add_item(keymap, "NLA_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NLA_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NLA_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
/* split */
WM_keymap_add_item(keymap, "NLA_OT_split", YKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/space_nla/nla_select.c b/source/blender/editors/space_nla/nla_select.c
index 7729573070d..55463580115 100644
--- a/source/blender/editors/space_nla/nla_select.c
+++ b/source/blender/editors/space_nla/nla_select.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,13 +30,7 @@
#include <stdio.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_nla_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -52,8 +46,6 @@
#include "ED_anim_api.h"
#include "ED_keyframes_edit.h"
-#include "ED_markers.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "RNA_access.h"
@@ -62,8 +54,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
#include "nla_intern.h" // own include
@@ -80,7 +70,7 @@ static short selmodes_to_flagmodes (short sel)
break;
case SELECT_INVERT:
- return ACHANNEL_SETFLAG_TOGGLE;
+ return ACHANNEL_SETFLAG_INVERT;
break;
case SELECT_ADD:
@@ -186,7 +176,7 @@ static int nlaedit_deselectall_exec(bContext *C, wmOperator *op)
deselect_nla_strips(&ac, DESELECT_STRIPS_TEST, SELECT_ADD);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -323,7 +313,7 @@ static int nlaedit_borderselect_exec(bContext *C, wmOperator *op)
borderselect_nla_strips(&ac, rect, mode, selectmode);
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -580,7 +570,7 @@ static int nlaedit_clickselect_invoke(bContext *C, wmOperator *op, wmEvent *even
}
/* set notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_SELECT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_SELECTED, NULL);
/* for tweak grab to work */
return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c
index 6ea843a00de..64933e3c11a 100644
--- a/source/blender/editors/space_nla/space_nla.c
+++ b/source/blender/editors/space_nla/space_nla.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,11 +30,7 @@
#include <stdio.h>
#include "DNA_anim_types.h"
-#include "DNA_nla_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -54,7 +50,6 @@
#include "ED_anim_api.h"
#include "ED_markers.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
@@ -62,7 +57,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -159,10 +153,10 @@ static SpaceLink *nla_new(const bContext *C)
ar->v2d.cur = ar->v2d.tot;
ar->v2d.min[0]= 0.0f;
- ar->v2d.min[1]= 0.0f;
+ ar->v2d.min[1]= 0.0f;
ar->v2d.max[0]= MAXFRAMEF;
- ar->v2d.max[1]= 10000.0f;
+ ar->v2d.max[1]= 10000.0f;
ar->v2d.minzoom= 0.01f;
ar->v2d.maxzoom= 50;
@@ -233,11 +227,9 @@ static void nla_channel_area_draw(const bContext *C, ARegion *ar)
bAnimContext ac;
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
- float col[3];
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
@@ -279,12 +271,10 @@ static void nla_main_area_draw(const bContext *C, ARegion *ar)
View2D *v2d= &ar->v2d;
View2DGrid *grid;
View2DScrollers *scrollers;
- float col[3];
short unit=0, flag=0;
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt
new file mode 100644
index 00000000000..0c8f9fc1ee2
--- /dev/null
+++ b/source/blender/editors/space_node/CMakeLists.txt
@@ -0,0 +1,42 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../../imbuf
+ ../include
+ ../../../../intern/guardedalloc
+ ../../../../intern/opennl/extern
+ ../../makesdna
+ ../../makesrna
+ ../../nodes
+ ../../render/extern/include
+ ../../windowmanager
+)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_editor_space_node "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index 9f02702372f..082f3f97dfd 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -34,23 +34,12 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "DNA_ID.h"
#include "DNA_node_types.h"
-#include "DNA_image_types.h"
#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_action_types.h"
-#include "DNA_color_types.h"
-#include "DNA_customdata_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_ipo_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_text_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_context.h"
#include "BKE_curve.h"
@@ -73,22 +62,15 @@
#include "MEM_guardedalloc.h"
-#include "ED_node.h"
-#include "ED_space_api.h"
-#include "ED_screen.h"
-#include "ED_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_view2d.h"
#include "UI_interface.h"
#include "UI_resources.h"
-#include "RE_pipeline.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -99,7 +81,7 @@
void node_buts_group(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiTemplateIDBrowse(layout, C, ptr, "nodetree", NULL, NULL, "");
+ uiTemplateIDBrowse(layout, C, ptr, "nodetree", NULL, NULL, "", NULL);
}
static void node_buts_value(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -111,7 +93,7 @@ static void node_buts_value(uiLayout *layout, bContext *C, PointerRNA *ptr)
prop = RNA_struct_find_property(ptr, "outputs");
RNA_property_collection_lookup_int(ptr, prop, 0, &sockptr);
- uiItemR(layout, "", 0, &sockptr, "default_value", 0);
+ uiItemR(layout, &sockptr, "default_value", 0, "", 0);
}
static void node_buts_rgb(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -125,8 +107,8 @@ static void node_buts_rgb(uiLayout *layout, bContext *C, PointerRNA *ptr)
RNA_property_collection_lookup_int(ptr, prop, 0, &sockptr);
col = uiLayoutColumn(layout, 0);
- uiTemplateColorWheel(col, &sockptr, "default_value", 1, 0);
- uiItemR(col, "", 0, &sockptr, "default_value", 0);
+ uiTemplateColorWheel(col, &sockptr, "default_value", 1, 0, 0, 0);
+ uiItemR(col, &sockptr, "default_value", 0, "", 0);
}
static void node_buts_mix_rgb(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -136,9 +118,9 @@ static void node_buts_mix_rgb(uiLayout *layout, bContext *C, PointerRNA *ptr)
bNodeTree *ntree= (bNodeTree*)ptr->id.data;
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, ptr, "blend_type", 0);
+ uiItemR(row, ptr, "blend_type", 0, "", 0);
if(ntree->type == NTREE_COMPOSIT)
- uiItemR(row, "", ICON_IMAGE_RGB_ALPHA, ptr, "alpha", 0);
+ uiItemR(row, ptr, "alpha", 0, "", ICON_IMAGE_RGB_ALPHA);
}
static void node_buts_time(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -159,8 +141,8 @@ static void node_buts_time(uiLayout *layout, bContext *C, PointerRNA *ptr)
uiTemplateCurveMapping(layout, ptr, "curve", 's', 0, 0);
row= uiLayoutRow(layout, 1);
- uiItemR(row, "Sta", 0, ptr, "start", 0);
- uiItemR(row, "End", 0, ptr, "end", 0);
+ uiItemR(row, ptr, "start", 0, "Sta", 0);
+ uiItemR(row, ptr, "end", 0, "End", 0);
}
static void node_buts_colorramp(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -278,17 +260,17 @@ static void node_buts_texture(uiLayout *layout, bContext *C, PointerRNA *ptr)
(node->type != TEX_NODE_TEXTURE)
);
- uiItemR(layout, "", 0, ptr, "texture", 0);
+ uiItemR(layout, ptr, "texture", 0, "", 0);
if(multi) {
/* Number Drawing not optimal here, better have a list*/
- uiItemR(layout, "", 0, ptr, "node_output", 0);
+ uiItemR(layout, ptr, "node_output", 0, "", 0);
}
}
static void node_buts_math(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, "", 0, ptr, "operation", 0);
+ uiItemR(layout, ptr, "operation", 0, "", 0);
}
/* ****************** BUTTON CALLBACKS FOR SHADER NODES ***************** */
@@ -324,14 +306,14 @@ static void node_shader_buts_material(uiLayout *layout, bContext *C, PointerRNA
bNode *node= ptr->data;
uiLayout *col;
- uiTemplateID(layout, C, ptr, "material", "MATERIAL_OT_new", NULL, NULL);
+ uiTemplateID(layout, C, ptr, "material", "MATERIAL_OT_new", NULL, NULL, NULL);
if(!node->id) return;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "diffuse", 0);
- uiItemR(col, NULL, 0, ptr, "specular", 0);
- uiItemR(col, NULL, 0, ptr, "invert_normal", 0);
+ uiItemR(col, ptr, "diffuse", 0, NULL, 0);
+ uiItemR(col, ptr, "specular", 0, NULL, 0);
+ uiItemR(col, ptr, "invert_normal", 0, NULL, 0);
}
static void node_shader_buts_mapping(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -340,38 +322,48 @@ static void node_shader_buts_mapping(uiLayout *layout, bContext *C, PointerRNA *
uiItemL(layout, "Location:", 0);
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, ptr, "location", 0);
+ uiItemR(row, ptr, "location", 0, "", 0);
uiItemL(layout, "Rotation:", 0);
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, ptr, "rotation", 0);
+ uiItemR(row, ptr, "rotation", 0, "", 0);
uiItemL(layout, "Scale:", 0);
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, ptr, "scale", 0);
+ uiItemR(row, ptr, "scale", 0, "", 0);
row= uiLayoutRow(layout, 1);
- uiItemR(row, "Min", 0, ptr, "clamp_minimum", 0);
- uiItemR(row, "", 0, ptr, "minimum", 0);
+ uiItemR(row, ptr, "clamp_minimum", 0, "Min", 0);
+ uiItemR(row, ptr, "minimum", 0, "", 0);
row= uiLayoutRow(layout, 1);
- uiItemR(row, "Max", 0, ptr, "clamp_maximum", 0);
- uiItemR(row, "", 0, ptr, "maximum", 0);
+ uiItemR(row, ptr, "clamp_maximum", 0, "Max", 0);
+ uiItemR(row, ptr, "maximum", 0, "", 0);
}
static void node_shader_buts_vect_math(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, "", 0, ptr, "operation", 0);
+ uiItemR(layout, ptr, "operation", 0, "", 0);
}
static void node_shader_buts_geometry(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
+ PointerRNA obptr= CTX_data_pointer_get(C, "active_object");
uiLayout *col;
-
+
col= uiLayoutColumn(layout, 0);
- uiItemR(col, "UV", 0, ptr, "uv_layer", 0);
- uiItemR(col, "VCol", 0, ptr, "color_layer", 0);
+
+ if(obptr.data && RNA_enum_get(&obptr, "type") == OB_MESH) {
+ PointerRNA dataptr= RNA_pointer_get(&obptr, "data");
+
+ uiItemPointerR(col, ptr, "uv_layer", &dataptr, "uv_textures", "", 0);
+ uiItemPointerR(col, ptr, "color_layer", &dataptr, "vertex_colors", "", 0);
+ }
+ else {
+ uiItemR(col, ptr, "uv_layer", 0, "UV", 0);
+ uiItemR(col, ptr, "color_layer", 0, "VCol", 0);
+ }
}
static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -475,7 +467,7 @@ static void node_composit_buts_image(uiLayout *layout, bContext *C, PointerRNA *
PointerRNA imaptr;
PropertyRNA *prop;
- uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL);
+ uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL, NULL);
if(!node->id) return;
@@ -485,21 +477,21 @@ static void node_composit_buts_image(uiLayout *layout, bContext *C, PointerRNA *
col= uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, &imaptr, "source", 0);
+ uiItemR(col, &imaptr, "source", 0, NULL, 0);
if (ELEM(RNA_enum_get(&imaptr, "source"), IMA_SRC_SEQUENCE, IMA_SRC_MOVIE)) {
col= uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "frames", 0);
- uiItemR(col, NULL, 0, ptr, "start", 0);
- uiItemR(col, NULL, 0, ptr, "offset", 0);
- uiItemR(col, NULL, 0, ptr, "cyclic", 0);
- uiItemR(col, NULL, 0, ptr, "auto_refresh", UI_ITEM_R_ICON_ONLY);
+ uiItemR(col, ptr, "frames", 0, NULL, 0);
+ uiItemR(col, ptr, "start", 0, NULL, 0);
+ uiItemR(col, ptr, "offset", 0, NULL, 0);
+ uiItemR(col, ptr, "cyclic", 0, NULL, 0);
+ uiItemR(col, ptr, "auto_refresh", UI_ITEM_R_ICON_ONLY, NULL, 0);
}
col= uiLayoutColumn(layout, 0);
if (RNA_enum_get(&imaptr, "type")== IMA_TYPE_MULTILAYER)
- uiItemR(col, NULL, 0, ptr, "layer", 0);
+ uiItemR(col, ptr, "layer", 0, NULL, 0);
}
static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -512,13 +504,13 @@ static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, Point
const char *layer_name;
char scene_name[19];
- uiTemplateID(layout, C, ptr, "scene", NULL, NULL, NULL);
+ uiTemplateID(layout, C, ptr, "scene", NULL, NULL, NULL, NULL);
if(!node->id) return;
col= uiLayoutColumn(layout, 0);
row = uiLayoutRow(col, 0);
- uiItemR(row, "", 0, ptr, "layer", 0);
+ uiItemR(row, ptr, "layer", 0, "", 0);
prop = RNA_struct_find_property(ptr, "layer");
if (!(RNA_property_enum_identifier(C, ptr, prop, RNA_property_enum_get(ptr, prop), &layer_name)))
@@ -527,10 +519,10 @@ static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, Point
scn_ptr = RNA_pointer_get(ptr, "scene");
RNA_string_get(&scn_ptr, "name", scene_name);
- WM_operator_properties_create(&op_ptr, "SCREEN_OT_render");
+ WM_operator_properties_create(&op_ptr, "RENDER_OT_render");
RNA_string_set(&op_ptr, "layer", layer_name);
RNA_string_set(&op_ptr, "scene", scene_name);
- uiItemFullO(row, "", ICON_RENDER_STILL, "SCREEN_OT_render", op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(row, "RENDER_OT_render", "", ICON_RENDER_STILL, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
}
@@ -541,21 +533,21 @@ static void node_composit_buts_blur(uiLayout *layout, bContext *C, PointerRNA *p
col= uiLayoutColumn(layout, 0);
- uiItemR(col, "", 0, ptr, "filter_type", 0);
+ uiItemR(col, ptr, "filter_type", 0, "", 0);
if (RNA_enum_get(ptr, "filter_type")!= R_FILTER_FAST_GAUSS) {
- uiItemR(col, NULL, 0, ptr, "bokeh", 0);
- uiItemR(col, NULL, 0, ptr, "gamma", 0);
+ uiItemR(col, ptr, "bokeh", 0, NULL, 0);
+ uiItemR(col, ptr, "gamma", 0, NULL, 0);
}
- uiItemR(col, NULL, 0, ptr, "relative", 0);
+ uiItemR(col, ptr, "relative", 0, NULL, 0);
col= uiLayoutColumn(layout, 1);
if (RNA_boolean_get(ptr, "relative")) {
- uiItemR(col, "X", 0, ptr, "factor_x", 0);
- uiItemR(col, "Y", 0, ptr, "factor_y", 0);
+ uiItemR(col, ptr, "factor_x", 0, "X", 0);
+ uiItemR(col, ptr, "factor_y", 0, "Y", 0);
}
else {
- uiItemR(col, "X", 0, ptr, "sizex", 0);
- uiItemR(col, "Y", 0, ptr, "sizey", 0);
+ uiItemR(col, ptr, "sizex", 0, "X", 0);
+ uiItemR(col, ptr, "sizey", 0, "Y", 0);
}
}
@@ -563,24 +555,24 @@ static void node_composit_buts_dblur(uiLayout *layout, bContext *C, PointerRNA *
{
uiLayout *col;
- uiItemR(layout, NULL, 0, ptr, "iterations", 0);
- uiItemR(layout, NULL, 0, ptr, "wrap", 0);
+ uiItemR(layout, ptr, "iterations", 0, NULL, 0);
+ uiItemR(layout, ptr, "wrap", 0, NULL, 0);
col= uiLayoutColumn(layout, 1);
uiItemL(col, "Center:", 0);
- uiItemR(col, "X", 0, ptr, "center_x", 0);
- uiItemR(col, "Y", 0, ptr, "center_y", 0);
+ uiItemR(col, ptr, "center_x", 0, "X", 0);
+ uiItemR(col, ptr, "center_y", 0, "Y", 0);
uiItemS(layout);
col= uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "distance", 0);
- uiItemR(col, NULL, 0, ptr, "angle", 0);
+ uiItemR(col, ptr, "distance", 0, NULL, 0);
+ uiItemR(col, ptr, "angle", 0, NULL, 0);
uiItemS(layout);
- uiItemR(layout, NULL, 0, ptr, "spin", 0);
- uiItemR(layout, NULL, 0, ptr, "zoom", 0);
+ uiItemR(layout, ptr, "spin", 0, NULL, 0);
+ uiItemR(layout, ptr, "zoom", 0, NULL, 0);
}
static void node_composit_buts_bilateralblur(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -588,9 +580,9 @@ static void node_composit_buts_bilateralblur(uiLayout *layout, bContext *C, Poin
uiLayout *col;
col= uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "iterations", 0);
- uiItemR(col, NULL, 0, ptr, "sigma_color", 0);
- uiItemR(col, NULL, 0, ptr, "sigma_space", 0);
+ uiItemR(col, ptr, "iterations", 0, NULL, 0);
+ uiItemR(col, ptr, "sigma_color", 0, NULL, 0);
+ uiItemR(col, ptr, "sigma_space", 0, NULL, 0);
}
static void node_composit_buts_defocus(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -599,59 +591,59 @@ static void node_composit_buts_defocus(uiLayout *layout, bContext *C, PointerRNA
col= uiLayoutColumn(layout, 0);
uiItemL(col, "Bokeh Type:", 0);
- uiItemR(col, "", 0, ptr, "bokeh", 0);
- uiItemR(col, NULL, 0, ptr, "angle", 0);
+ uiItemR(col, ptr, "bokeh", 0, "", 0);
+ uiItemR(col, ptr, "angle", 0, NULL, 0);
- uiItemR(layout, NULL, 0, ptr, "gamma_correction", 0);
+ uiItemR(layout, ptr, "gamma_correction", 0, NULL, 0);
col = uiLayoutColumn(layout, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_zbuffer")==1);
- uiItemR(col, NULL, 0, ptr, "f_stop", 0);
+ uiItemR(col, ptr, "f_stop", 0, NULL, 0);
- uiItemR(layout, NULL, 0, ptr, "max_blur", 0);
- uiItemR(layout, NULL, 0, ptr, "threshold", 0);
+ uiItemR(layout, ptr, "max_blur", 0, NULL, 0);
+ uiItemR(layout, ptr, "threshold", 0, NULL, 0);
col = uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "preview", 0);
+ uiItemR(col, ptr, "preview", 0, NULL, 0);
sub = uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "preview"));
- uiItemR(sub, NULL, 0, ptr, "samples", 0);
+ uiItemR(sub, ptr, "samples", 0, NULL, 0);
col = uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "use_zbuffer", 0);
+ uiItemR(col, ptr, "use_zbuffer", 0, NULL, 0);
sub = uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_zbuffer")==0);
- uiItemR(sub, NULL, 0, ptr, "z_scale", 0);
+ uiItemR(sub, ptr, "z_scale", 0, NULL, 0);
}
/* qdn: glare node */
static void node_composit_buts_glare(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, "", 0, ptr, "glare_type", 0);
- uiItemR(layout, "", 0, ptr, "quality", 0);
+ uiItemR(layout, ptr, "glare_type", 0, "", 0);
+ uiItemR(layout, ptr, "quality", 0, "", 0);
if (RNA_enum_get(ptr, "glare_type")!= 1) {
- uiItemR(layout, NULL, 0, ptr, "iterations", 0);
+ uiItemR(layout, ptr, "iterations", 0, NULL, 0);
if (RNA_enum_get(ptr, "glare_type")!= 0)
- uiItemR(layout, NULL, 0, ptr, "color_modulation", UI_ITEM_R_SLIDER);
+ uiItemR(layout, ptr, "color_modulation", UI_ITEM_R_SLIDER, NULL, 0);
}
- uiItemR(layout, NULL, 0, ptr, "mix", 0);
- uiItemR(layout, NULL, 0, ptr, "threshold", 0);
+ uiItemR(layout, ptr, "mix", 0, NULL, 0);
+ uiItemR(layout, ptr, "threshold", 0, NULL, 0);
if (RNA_enum_get(ptr, "glare_type")== 2) {
- uiItemR(layout, NULL, 0, ptr, "streaks", 0);
- uiItemR(layout, NULL, 0, ptr, "angle_offset", 0);
+ uiItemR(layout, ptr, "streaks", 0, NULL, 0);
+ uiItemR(layout, ptr, "angle_offset", 0, NULL, 0);
}
if (RNA_enum_get(ptr, "glare_type")== 0 || RNA_enum_get(ptr, "glare_type")== 2) {
- uiItemR(layout, NULL, 0, ptr, "fade", UI_ITEM_R_SLIDER);
+ uiItemR(layout, ptr, "fade", UI_ITEM_R_SLIDER, NULL, 0);
if (RNA_enum_get(ptr, "glare_type")== 0)
- uiItemR(layout, NULL, 0, ptr, "rotate_45", 0);
+ uiItemR(layout, ptr, "rotate_45", 0, NULL, 0);
}
if (RNA_enum_get(ptr, "glare_type")== 1) {
- uiItemR(layout, NULL, 0, ptr, "size", 0);
+ uiItemR(layout, ptr, "size", 0, NULL, 0);
}
}
@@ -660,17 +652,17 @@ static void node_composit_buts_tonemap(uiLayout *layout, bContext *C, PointerRNA
uiLayout *col;
col = uiLayoutColumn(layout, 0);
- uiItemR(col, "", 0, ptr, "tonemap_type", 0);
+ uiItemR(col, ptr, "tonemap_type", 0, "", 0);
if (RNA_enum_get(ptr, "tonemap_type")== 0) {
- uiItemR(col, NULL, 0, ptr, "key", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "offset", 0);
- uiItemR(col, NULL, 0, ptr, "gamma", 0);
+ uiItemR(col, ptr, "key", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "offset", 0, NULL, 0);
+ uiItemR(col, ptr, "gamma", 0, NULL, 0);
}
else {
- uiItemR(col, NULL, 0, ptr, "intensity", 0);
- uiItemR(col, NULL, 0, ptr, "contrast", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "adaptation", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "correction", UI_ITEM_R_SLIDER);
+ uiItemR(col, ptr, "intensity", 0, NULL, 0);
+ uiItemR(col, ptr, "contrast", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "adaptation", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "correction", UI_ITEM_R_SLIDER, NULL, 0);
}
}
@@ -679,12 +671,12 @@ static void node_composit_buts_lensdist(uiLayout *layout, bContext *C, PointerRN
uiLayout *col;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "projector", 0);
+ uiItemR(col, ptr, "projector", 0, NULL, 0);
col = uiLayoutColumn(col, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "projector")==0);
- uiItemR(col, NULL, 0, ptr, "jitter", 0);
- uiItemR(col, NULL, 0, ptr, "fit", 0);
+ uiItemR(col, ptr, "jitter", 0, NULL, 0);
+ uiItemR(col, ptr, "fit", 0, NULL, 0);
}
static void node_composit_buts_vecblur(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -692,38 +684,38 @@ static void node_composit_buts_vecblur(uiLayout *layout, bContext *C, PointerRNA
uiLayout *col;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "samples", 0);
- uiItemR(col, "Blur", 0, ptr, "factor", 0);
+ uiItemR(col, ptr, "samples", 0, NULL, 0);
+ uiItemR(col, ptr, "factor", 0, "Blur", 0);
col= uiLayoutColumn(layout, 1);
uiItemL(col, "Speed:", 0);
- uiItemR(col, "Min", 0, ptr, "min_speed", 0);
- uiItemR(col, "Max", 0, ptr, "max_speed", 0);
+ uiItemR(col, ptr, "min_speed", 0, "Min", 0);
+ uiItemR(col, ptr, "max_speed", 0, "Max", 0);
- uiItemR(layout, NULL, 0, ptr, "curved", 0);
+ uiItemR(layout, ptr, "curved", 0, NULL, 0);
}
static void node_composit_buts_filter(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, "", 0, ptr, "filter_type", 0);
+ uiItemR(layout, ptr, "filter_type", 0, "", 0);
}
static void node_composit_buts_flip(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, "", 0, ptr, "axis", 0);
+ uiItemR(layout, ptr, "axis", 0, "", 0);
}
static void node_composit_buts_crop(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
uiLayout *col;
- uiItemR(layout, NULL, 0, ptr, "crop_size", 0);
+ uiItemR(layout, ptr, "crop_size", 0, NULL, 0);
col= uiLayoutColumn(layout, 1);
- uiItemR(col, "Left", 0, ptr, "x1", 0);
- uiItemR(col, "Right", 0, ptr, "x2", 0);
- uiItemR(col, "Up", 0, ptr, "y1", 0);
- uiItemR(col, "Down", 0, ptr, "y2", 0);
+ uiItemR(col, ptr, "x1", 0, "Left", 0);
+ uiItemR(col, ptr, "x2", 0, "Right", 0);
+ uiItemR(col, ptr, "y1", 0, "Up", 0);
+ uiItemR(col, ptr, "y2", 0, "Down", 0);
}
static void node_composit_buts_splitviewer(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -732,8 +724,8 @@ static void node_composit_buts_splitviewer(uiLayout *layout, bContext *C, Pointe
col= uiLayoutColumn(layout, 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, ptr, "axis", UI_ITEM_R_EXPAND);
- uiItemR(col, NULL, 0, ptr, "factor", 0);
+ uiItemR(row, ptr, "axis", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(col, ptr, "factor", 0, NULL, 0);
}
static void node_composit_buts_map_value(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -741,20 +733,20 @@ static void node_composit_buts_map_value(uiLayout *layout, bContext *C, PointerR
uiLayout *sub, *col;
col =uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "offset", 0);
- uiItemR(col, NULL, 0, ptr, "size", 0);
+ uiItemR(col, ptr, "offset", 0, NULL, 0);
+ uiItemR(col, ptr, "size", 0, NULL, 0);
col =uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "use_min", 0);
+ uiItemR(col, ptr, "use_min", 0, NULL, 0);
sub =uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_min"));
- uiItemR(sub, "", 0, ptr, "min", 0);
+ uiItemR(sub, ptr, "min", 0, "", 0);
col =uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "use_max", 0);
+ uiItemR(col, ptr, "use_max", 0, NULL, 0);
sub =uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_max"));
- uiItemR(sub, "", 0, ptr, "max", 0);
+ uiItemR(sub, ptr, "max", 0, "", 0);
}
static void node_composit_buts_alphaover(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -762,8 +754,8 @@ static void node_composit_buts_alphaover(uiLayout *layout, bContext *C, PointerR
uiLayout *col;
col =uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "convert_premul", 0);
- uiItemR(col, NULL, 0, ptr, "premul", 0);
+ uiItemR(col, ptr, "convert_premul", 0, NULL, 0);
+ uiItemR(col, ptr, "premul", 0, NULL, 0);
}
static void node_composit_buts_hue_sat(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -771,14 +763,14 @@ static void node_composit_buts_hue_sat(uiLayout *layout, bContext *C, PointerRNA
uiLayout *col;
col =uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "hue", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "sat", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "val", UI_ITEM_R_SLIDER);
+ uiItemR(col, ptr, "hue", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "sat", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "val", UI_ITEM_R_SLIDER, NULL, 0);
}
static void node_composit_buts_dilateerode(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, NULL, 0, ptr, "distance", 0);
+ uiItemR(layout, ptr, "distance", 0, NULL, 0);
}
static void node_composit_buts_diff_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -786,8 +778,8 @@ static void node_composit_buts_diff_matte(uiLayout *layout, bContext *C, Pointer
uiLayout *col;
col =uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "tolerance", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "falloff", UI_ITEM_R_SLIDER);
+ uiItemR(col, ptr, "tolerance", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "falloff", UI_ITEM_R_SLIDER, NULL, 0);
}
static void node_composit_buts_distance_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -795,18 +787,34 @@ static void node_composit_buts_distance_matte(uiLayout *layout, bContext *C, Poi
uiLayout *col;
col =uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "tolerance", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "falloff", UI_ITEM_R_SLIDER);
+ uiItemR(col, ptr, "tolerance", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "falloff", UI_ITEM_R_SLIDER, NULL, 0);
}
static void node_composit_buts_color_spill(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
uiLayout *row, *col;
- col =uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "factor", 0);
- row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, ptr, "channel", UI_ITEM_R_EXPAND);
+ uiItemL(layout, "Despill Channel:", 0);
+ row =uiLayoutRow(layout,0);
+ uiItemR(row, ptr, "channel", UI_ITEM_R_EXPAND, NULL, 0);
+
+ col= uiLayoutColumn(layout, 0);
+ uiItemR(col, ptr, "algorithm", 0, NULL, 0);
+
+ if(RNA_enum_get(ptr, "algorithm")==0) {
+ uiItemL(col, "Limiting Channel:", 0);
+ row=uiLayoutRow(col,0);
+ uiItemR(row, ptr, "limit_channel", UI_ITEM_R_EXPAND, NULL, 0);
+ }
+
+ uiItemR(col, ptr, "ratio", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "unspill", 0, NULL, 0);
+ if (RNA_enum_get(ptr, "unspill")== 1) {
+ uiItemR(col, ptr, "unspill_red", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "unspill_green", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "unspill_blue", UI_ITEM_R_SLIDER, NULL, 0);
+ }
}
static void node_composit_buts_chroma_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -814,13 +822,13 @@ static void node_composit_buts_chroma_matte(uiLayout *layout, bContext *C, Point
uiLayout *col;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "acceptance", 0);
- uiItemR(col, NULL, 0, ptr, "cutoff", 0);
+ uiItemR(col, ptr, "acceptance", 0, NULL, 0);
+ uiItemR(col, ptr, "cutoff", 0, NULL, 0);
col= uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "lift", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "gain", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "shadow_adjust", UI_ITEM_R_SLIDER);
+ uiItemR(col, ptr, "lift", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "gain", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "shadow_adjust", UI_ITEM_R_SLIDER, NULL, 0);
}
static void node_composit_buts_color_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -828,24 +836,35 @@ static void node_composit_buts_color_matte(uiLayout *layout, bContext *C, Pointe
uiLayout *col;
col= uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "h", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "s", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "v", UI_ITEM_R_SLIDER);
+ uiItemR(col, ptr, "h", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "s", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "v", UI_ITEM_R_SLIDER, NULL, 0);
}
static void node_composit_buts_channel_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
uiLayout *col, *row;
+ uiItemL(layout, "Color Space:", 0);
row= uiLayoutRow(layout, 0);
- uiItemR(row, NULL, 0, ptr, "color_space", UI_ITEM_R_EXPAND);
+ uiItemR(row, ptr, "color_space", UI_ITEM_R_EXPAND, NULL, 0);
- row= uiLayoutRow(layout, 0);
- uiItemR(row, NULL, 0, ptr, "channel", UI_ITEM_R_EXPAND);
+ col=uiLayoutColumn(layout, 0);
+ uiItemL(col, "Key Channel:", 0);
+ row= uiLayoutRow(col, 0);
+ uiItemR(row, ptr, "channel", UI_ITEM_R_EXPAND, NULL, 0);
- col =uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "high", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "low", UI_ITEM_R_SLIDER);
+ col =uiLayoutColumn(layout, 0);
+
+ uiItemR(col, ptr, "algorithm", 0, NULL, 0);
+ if(RNA_enum_get(ptr, "algorithm")==0) {
+ uiItemL(col, "Limiting Channel:", 0);
+ row=uiLayoutRow(col,0);
+ uiItemR(row, ptr, "limit_channel", UI_ITEM_R_EXPAND, NULL, 0);
+ }
+
+ uiItemR(col, ptr, "high", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "low", UI_ITEM_R_SLIDER, NULL, 0);
}
static void node_composit_buts_luma_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -853,18 +872,18 @@ static void node_composit_buts_luma_matte(uiLayout *layout, bContext *C, Pointer
uiLayout *col;
col= uiLayoutColumn(layout, 1);
- uiItemR(col, NULL, 0, ptr, "high", UI_ITEM_R_SLIDER);
- uiItemR(col, NULL, 0, ptr, "low", UI_ITEM_R_SLIDER);
+ uiItemR(col, ptr, "high", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "low", UI_ITEM_R_SLIDER, NULL, 0);
}
static void node_composit_buts_map_uv(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, NULL, 0, ptr, "alpha", 0);
+ uiItemR(layout, ptr, "alpha", 0, NULL, 0);
}
static void node_composit_buts_id_mask(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, NULL, 0, ptr, "index", 0);
+ uiItemR(layout, ptr, "index", 0, NULL, 0);
}
static void node_composit_buts_file_output(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -872,26 +891,31 @@ static void node_composit_buts_file_output(uiLayout *layout, bContext *C, Pointe
uiLayout *col, *row;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, "", 0, ptr, "filename", 0);
- uiItemR(col, "", 0, ptr, "image_type", 0);
+ uiItemR(col, ptr, "filepath", 0, "", 0);
+ uiItemR(col, ptr, "image_type", 0, "", 0);
row= uiLayoutRow(layout, 0);
if (RNA_enum_get(ptr, "image_type")== R_OPENEXR) {
- uiItemR(row, NULL, 0, ptr, "exr_half", 0);
- uiItemR(row, "", 0, ptr, "exr_codec", 0);
+ uiItemR(row, ptr, "exr_half", 0, NULL, 0);
+ uiItemR(row, ptr, "exr_codec", 0, "", 0);
}
else if (RNA_enum_get(ptr, "image_type")== R_JPEG90) {
- uiItemR(row, NULL, 0, ptr, "quality", UI_ITEM_R_SLIDER);
+ uiItemR(row, ptr, "quality", UI_ITEM_R_SLIDER, NULL, 0);
}
row= uiLayoutRow(layout, 1);
- uiItemR(row, "Start", 0, ptr, "start_frame", 0);
- uiItemR(row, "End", 0, ptr, "end_frame", 0);
+ uiItemR(row, ptr, "frame_start", 0, "Start", 0);
+ uiItemR(row, ptr, "frame_end", 0, "End", 0);
}
static void node_composit_buts_scale(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, "", 0, ptr, "space", 0);
+ uiItemR(layout, ptr, "space", 0, "", 0);
+}
+
+static void node_composit_buts_rotate(uiLayout *layout, bContext *C, PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "filter", 0, "", 0);
}
static void node_composit_buts_invert(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -899,61 +923,61 @@ static void node_composit_buts_invert(uiLayout *layout, bContext *C, PointerRNA
uiLayout *col;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, NULL, 0, ptr, "rgb", 0);
- uiItemR(col, NULL, 0, ptr, "alpha", 0);
+ uiItemR(col, ptr, "rgb", 0, NULL, 0);
+ uiItemR(col, ptr, "alpha", 0, NULL, 0);
}
static void node_composit_buts_premulkey(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, "", 0, ptr, "mapping", 0);
+ uiItemR(layout, ptr, "mapping", 0, "", 0);
}
static void node_composit_buts_view_levels(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, NULL, 0, ptr, "channel", UI_ITEM_R_EXPAND);
+ uiItemR(layout, ptr, "channel", UI_ITEM_R_EXPAND, NULL, 0);
}
static void node_composit_buts_colorbalance(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
uiLayout *split, *col, *row;
- uiItemR(layout, NULL, 0, ptr, "correction_formula", 0);
+ uiItemR(layout, ptr, "correction_formula", 0, NULL, 0);
if (RNA_enum_get(ptr, "correction_formula")== 0) {
split = uiLayoutSplit(layout, 0, 0);
col = uiLayoutColumn(split, 0);
- uiTemplateColorWheel(col, ptr, "lift", 1, 1);
+ uiTemplateColorWheel(col, ptr, "lift", 1, 1, 0, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, ptr, "lift", 0);
+ uiItemR(row, ptr, "lift", 0, NULL, 0);
col = uiLayoutColumn(split, 0);
- uiTemplateColorWheel(col, ptr, "gamma", 1, 1);
+ uiTemplateColorWheel(col, ptr, "gamma", 1, 1, 1, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, ptr, "gamma", 0);
+ uiItemR(row, ptr, "gamma", 0, NULL, 0);
col = uiLayoutColumn(split, 0);
- uiTemplateColorWheel(col, ptr, "gain", 1, 1);
+ uiTemplateColorWheel(col, ptr, "gain", 1, 1, 1, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, ptr, "gain", 0);
+ uiItemR(row, ptr, "gain", 0, NULL, 0);
} else {
split = uiLayoutSplit(layout, 0, 0);
col = uiLayoutColumn(split, 0);
- uiTemplateColorWheel(col, ptr, "offset", 1, 1);
+ uiTemplateColorWheel(col, ptr, "offset", 1, 1, 0, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, ptr, "offset", 0);
+ uiItemR(row, ptr, "offset", 0, NULL, 0);
col = uiLayoutColumn(split, 0);
- uiTemplateColorWheel(col, ptr, "power", 1, 1);
+ uiTemplateColorWheel(col, ptr, "power", 1, 1, 0, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, ptr, "power", 0);
+ uiItemR(row, ptr, "power", 0, NULL, 0);
col = uiLayoutColumn(split, 0);
- uiTemplateColorWheel(col, ptr, "slope", 1, 1);
+ uiTemplateColorWheel(col, ptr, "slope", 1, 1, 0, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, ptr, "slope", 0);
+ uiItemR(row, ptr, "slope", 0, NULL, 0);
}
}
@@ -1071,6 +1095,9 @@ static void node_composit_set_butfunc(bNodeType *ntype)
case CMP_NODE_SCALE:
ntype->uifunc= node_composit_buts_scale;
break;
+ case CMP_NODE_ROTATE:
+ ntype->uifunc=node_composit_buts_rotate;
+ break;
case CMP_NODE_CHANNEL_MATTE:
ntype->uifunc= node_composit_buts_channel_matte;
break;
@@ -1094,13 +1121,13 @@ static void node_composit_set_butfunc(bNodeType *ntype)
break;
case CMP_NODE_VIEW_LEVELS:
ntype->uifunc=node_composit_buts_view_levels;
- break;
+ break;
case CMP_NODE_COLORBALANCE:
ntype->uifunc=node_composit_buts_colorbalance;
- break;
+ break;
case CMP_NODE_HUECORRECT:
ntype->uifunc=node_composit_buts_huecorrect;
- break;
+ break;
default:
ntype->uifunc= NULL;
}
@@ -1113,12 +1140,12 @@ static void node_texture_buts_bricks(uiLayout *layout, bContext *C, PointerRNA *
uiLayout *col;
col= uiLayoutColumn(layout, 1);
- uiItemR(col, "Offset", 0, ptr, "offset", 0);
- uiItemR(col, "Frequency", 0, ptr, "offset_frequency", 0);
+ uiItemR(col, ptr, "offset", 0, "Offset", 0);
+ uiItemR(col, ptr, "offset_frequency", 0, "Frequency", 0);
col= uiLayoutColumn(layout, 1);
- uiItemR(col, "Squash", 0, ptr, "squash", 0);
- uiItemR(col, "Frequency", 0, ptr, "squash_frequency", 0);
+ uiItemR(col, ptr, "squash", 0, "Squash", 0);
+ uiItemR(col, ptr, "squash_frequency", 0, "Frequency", 0);
}
static void node_texture_buts_proc(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -1135,54 +1162,54 @@ static void node_texture_buts_proc(uiLayout *layout, bContext *C, PointerRNA *pt
switch( tex->type ) {
case TEX_BLEND:
- uiItemR(col, "", 0, &tex_ptr, "progression", 0);
+ uiItemR(col, &tex_ptr, "progression", 0, "", 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, &tex_ptr, "flip_axis", UI_ITEM_R_EXPAND);
+ uiItemR(row, &tex_ptr, "flip_axis", UI_ITEM_R_EXPAND, NULL, 0);
break;
case TEX_MARBLE:
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, &tex_ptr, "stype", UI_ITEM_R_EXPAND);
+ uiItemR(row, &tex_ptr, "stype", UI_ITEM_R_EXPAND, NULL, 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND);
+ uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, &tex_ptr, "noisebasis2", UI_ITEM_R_EXPAND);
+ uiItemR(row, &tex_ptr, "noisebasis2", UI_ITEM_R_EXPAND, NULL, 0);
break;
case TEX_WOOD:
- uiItemR(col, "", 0, &tex_ptr, "noise_basis", 0);
- uiItemR(col, "", 0, &tex_ptr, "stype", 0);
+ uiItemR(col, &tex_ptr, "noise_basis", 0, "", 0);
+ uiItemR(col, &tex_ptr, "stype", 0, "", 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, &tex_ptr, "noisebasis2", UI_ITEM_R_EXPAND);
+ uiItemR(row, &tex_ptr, "noisebasis2", UI_ITEM_R_EXPAND, NULL, 0);
row= uiLayoutRow(col, 0);
uiLayoutSetActive(row, !(RNA_enum_get(&tex_ptr, "stype")==TEX_BAND || RNA_enum_get(&tex_ptr, "stype")==TEX_RING));
- uiItemR(row, NULL, 0, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND);
+ uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, 0);
break;
case TEX_CLOUDS:
- uiItemR(col, "", 0, &tex_ptr, "noise_basis", 0);
+ uiItemR(col, &tex_ptr, "noise_basis", 0, "", 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, &tex_ptr, "stype", UI_ITEM_R_EXPAND);
+ uiItemR(row, &tex_ptr, "stype", UI_ITEM_R_EXPAND, NULL, 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, NULL, 0, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND);
- uiItemR(col, "Depth", 0, &tex_ptr, "noise_depth", UI_ITEM_R_EXPAND);
+ uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(col, &tex_ptr, "noise_depth", UI_ITEM_R_EXPAND, "Depth", 0);
break;
case TEX_DISTNOISE:
- uiItemR(col, "", 0, &tex_ptr, "noise_basis", 0);
- uiItemR(col, "", 0, &tex_ptr, "noise_distortion", 0);
+ uiItemR(col, &tex_ptr, "noise_basis", 0, "", 0);
+ uiItemR(col, &tex_ptr, "noise_distortion", 0, "", 0);
break;
}
}
static void node_texture_buts_image(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL);
+ uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL, NULL);
}
static void node_texture_buts_output(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- uiItemR(layout, "", 0, ptr, "output_name", 0);
+ uiItemR(layout, ptr, "output_name", 0, "", 0);
}
/* only once called */
@@ -1276,14 +1303,17 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
+ /* keep this, saves us from a version patch */
+ if(snode->zoom==0.0f) snode->zoom= 1.0f;
+
/* somehow the offset has to be calculated inverse */
glaDefine2DArea(&ar->winrct);
/* ortho at pixel level curarea */
wmOrtho2(-0.375, ar->winx-0.375, -0.375, ar->winy-0.375);
- x = (ar->winx-ibuf->x)/2 + snode->xof;
- y = (ar->winy-ibuf->y)/2 + snode->yof;
+ x = (ar->winx-snode->zoom*ibuf->x)/2 + snode->xof;
+ y = (ar->winy-snode->zoom*ibuf->y)/2 + snode->yof;
if(!ibuf->rect) {
if(color_manage)
@@ -1293,8 +1323,11 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
IMB_rect_from_float(ibuf);
}
- if(ibuf->rect)
+ if(ibuf->rect) {
+ glPixelZoom(snode->zoom, snode->zoom);
glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+ glPixelZoom(1.0f, 1.0f);
+ }
glMatrixMode(GL_PROJECTION);
glPopMatrix();
diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c
index cbd3ad73024..41cf689407b 100644
--- a/source/blender/editors/space_node/node_buttons.c
+++ b/source/blender/editors/space_node/node_buttons.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,13 +31,8 @@
#include <math.h>
#include <float.h>
-#include "DNA_ID.h"
-#include "DNA_gpencil_types.h"
#include "DNA_node_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -61,16 +56,12 @@
#include "WM_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "ED_gpencil.h"
#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "node_intern.h" // own include
@@ -123,7 +114,7 @@ static void active_node_panel(const bContext *C, Panel *pa)
uiBlockSetHandleFunc(block, do_node_region_buttons, NULL);
/* draw this node's name, etc. */
- uiItemR(layout, NULL, ICON_NODE, &ptr, "name", 0);
+ uiItemR(layout, &ptr, "name", 0, NULL, ICON_NODE);
// TODO: a separator would be nice...
/* draw this node's settings */
diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c
index 5928e5cf20e..5eb6d9cf94a 100644
--- a/source/blender/editors/space_node/node_draw.c
+++ b/source/blender/editors/space_node/node_draw.c
@@ -30,23 +30,12 @@
#include <stdio.h>
#include <string.h>
-#include "DNA_ID.h"
#include "DNA_node_types.h"
-#include "DNA_image_types.h"
#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_action_types.h"
-#include "DNA_color_types.h"
-#include "DNA_customdata_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_ipo_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_text_types.h"
-#include "DNA_userdef_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -73,9 +62,6 @@
#include "WM_types.h"
#include "ED_gpencil.h"
-#include "ED_screen.h"
-#include "ED_util.h"
-#include "ED_types.h"
#include "UI_interface.h"
#include "UI_interface_icons.h"
@@ -121,6 +107,44 @@ void ED_node_changed_update(ID *id, bNode *node)
}
}
+static int has_nodetree(bNodeTree *ntree, bNodeTree *lookup)
+{
+ bNode *node;
+
+ if(ntree == lookup)
+ return 1;
+
+ for(node=ntree->nodes.first; node; node=node->next)
+ if(node->type == NODE_GROUP && node->id)
+ if(has_nodetree((bNodeTree*)node->id, lookup))
+ return 1;
+
+ return 0;
+}
+
+void ED_node_generic_update(Main *bmain, Scene *scene, bNodeTree *ntree, bNode *node)
+{
+ Material *ma;
+ Tex *tex;
+ Scene *sce;
+
+ /* look through all datablocks, to support groups */
+ for(ma=bmain->mat.first; ma; ma=ma->id.next)
+ if(ma->nodetree && ma->use_nodes && has_nodetree(ma->nodetree, ntree))
+ ED_node_changed_update(&ma->id, node);
+
+ for(tex=bmain->tex.first; tex; tex=tex->id.next)
+ if(tex->nodetree && tex->use_nodes && has_nodetree(tex->nodetree, ntree))
+ ED_node_changed_update(&tex->id, node);
+
+ for(sce=bmain->scene.first; sce; sce=sce->id.next)
+ if(sce->nodetree && sce->use_nodes && has_nodetree(sce->nodetree, ntree))
+ ED_node_changed_update(&sce->id, node);
+
+ if(ntree->type == NTREE_TEXTURE)
+ ntreeTexCheckCyclics(ntree);
+}
+
static void do_node_internal_buttons(bContext *C, void *node_v, int event)
{
if(event==B_NODE_EXEC) {
@@ -373,9 +397,6 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
rctf *rect= &gnode->totr;
int counter;
- /* init ui blocks for sub-nodetrees */
- node_uiblocks_init(C, ngroup);
-
/* center them, is a bit of abuse of locx and locy though */
for(node= ngroup->nodes.first; node; node= node->next) {
node->locx+= gnode->locx;
@@ -562,7 +583,7 @@ static uiBlock *socket_vector_menu(bContext *C, ARegion *ar, void *socket_v)
layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, sock->locx, sock->locy-8, 140, 20, U.uistyles.first), 0);
- uiItemR(layout, "", 0, &ptr, "default_value", UI_ITEM_R_EXPAND);
+ uiItemR(layout, &ptr, "default_value", UI_ITEM_R_EXPAND, "", 0);
return block;
}
@@ -605,13 +626,7 @@ static void node_draw_preview(bNodePreview *preview, rctf *prv)
}
}
-// if(GPU_type_matches(GPU_DEVICE_NVIDIA, GPU_OS_MAC, GPU_DRIVER_OFFICIAL)) { XXX
-// float zoomx= curarea->winx/(float)(G.v2d->cur.xmax-G.v2d->cur.xmin);
-// float zoomy= curarea->winy/(float)(G.v2d->cur.ymax-G.v2d->cur.ymin);
-// glPixelZoom(zoomx*xscale, zoomy*yscale);
-// }
-// else
- glPixelZoom(xscale, yscale);
+ glPixelZoom(xscale, yscale);
glEnable(GL_BLEND);
glBlendFunc( GL_ONE, GL_ONE_MINUS_SRC_ALPHA ); /* premul graphics */
@@ -640,6 +655,19 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
bNodeTree *ntree = snode->nodetree;
PointerRNA ptr;
+ /* hurmf... another candidate for callback, have to see how this works first */
+ if(node->id && node->block && snode->treetype==NTREE_SHADER)
+ nodeShaderSynchronizeID(node, 0);
+
+ /* skip if out of view */
+ if (node->totr.xmax < ar->v2d.cur.xmin || node->totr.xmin > ar->v2d.cur.xmax ||
+ node->totr.ymax < ar->v2d.cur.ymin || node->totr.ymin > ar->v2d.cur.ymax) {
+
+ uiEndBlock(C, node->block);
+ node->block= NULL;
+ return;
+ }
+
uiSetRoundBox(15-4);
ui_dropshadow(rct, BASIS_RAD, snode->aspect, node->flag & SELECT);
@@ -662,42 +690,32 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
icon_id= ICON_MATERIAL;
else
icon_id= ICON_MATERIAL_DATA;
- iconofs-=18.0f;
- glEnable(GL_BLEND);
- UI_icon_draw_aspect(iconofs, rct->ymax-NODE_DY, icon_id, 1.0f, 0.5f);
- glDisable(GL_BLEND);
+ iconofs-=22.0f;
+ uiDefIconBut(node->block, LABEL, B_REDR, icon_id, iconofs, rct->ymax-NODE_DY,
+ UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, "");
}
if(node->type == NODE_GROUP) {
- iconofs-=18.0f;
- glEnable(GL_BLEND);
- if(node->id->lib) {
- float rgb[3] = {1.0f, 0.7f, 0.3f};
- UI_icon_draw_aspect_color(iconofs, rct->ymax-NODE_DY, ICON_NODETREE, 1.0f, rgb);
- }
- else {
- UI_icon_draw_aspect(iconofs, rct->ymax-NODE_DY, ICON_NODETREE, 1.0f, 0.5f);
- }
- glDisable(GL_BLEND);
+ iconofs-=15.0f;
+ uiDefIconBut(node->block, LABEL, B_REDR, ICON_NODETREE, iconofs, rct->ymax-NODE_DY,
+ UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, "");
}
if(node->typeinfo->flag & NODE_OPTIONS) {
- iconofs-=18.0f;
- glEnable(GL_BLEND);
- UI_icon_draw_aspect(iconofs, rct->ymax-NODE_DY, ICON_BUTS, 1.0f, 0.5f);
- glDisable(GL_BLEND);
+ iconofs-=15.0f;
+ uiDefIconBut(node->block, LABEL, B_REDR, ICON_BUTS, iconofs, rct->ymax-NODE_DY,
+ UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, "");
}
{ /* always hide/reveal unused sockets */
int shade;
- iconofs-=18.0f;
+ iconofs-=15.0f;
// XXX re-enable
/*if(node_has_hidden_sockets(node))
shade= -40;
else*/
shade= -90;
- glEnable(GL_BLEND);
- UI_icon_draw_aspect(iconofs, rct->ymax-NODE_DY, ICON_PLUS, 1.0f, 0.5f);
- glDisable(GL_BLEND);
+ uiDefIconBut(node->block, LABEL, B_REDR, ICON_PLUS, iconofs, rct->ymax-NODE_DY,
+ UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 1.0, 0.5, "");
}
/* title */
@@ -715,10 +733,10 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
UI_ThemeColor(TH_TEXT);
if(node->flag & NODE_CUSTOM_NAME)
- BLI_strncpy(showname, node->name, 32);
+ BLI_strncpy(showname, node->name, sizeof(showname));
else
/* todo: auto name display for node types */
- BLI_strncpy(showname, node->name, 32);
+ BLI_strncpy(showname, node->name, sizeof(showname));
//if(node->flag & NODE_MUTED)
// sprintf(showname, "[%s]", showname);
@@ -750,10 +768,6 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
node_draw_mute_line(v2d, snode, node);
- /* hurmf... another candidate for callback, have to see how this works first */
- if(node->id && node->block && snode->treetype==NTREE_SHADER)
- nodeShaderSynchronizeID(node, 0);
-
/* socket inputs, buttons */
for(sock= node->inputs.first; sock; sock= sock->next) {
if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
@@ -824,6 +838,8 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
node_draw_preview(node->preview, &node->prvr);
BLI_unlock_thread(LOCK_PREVIEW);
}
+
+ UI_ThemeClearColor(color_id);
uiEndBlock(C, node->block);
uiDrawBlock(C, node->block);
@@ -877,10 +893,10 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
if(node->flag & NODE_CUSTOM_NAME)
- BLI_strncpy(showname, node->name, 128);
+ BLI_strncpy(showname, node->name, sizeof(showname));
else
/* todo: auto name display */
- BLI_strncpy(showname, node->name, 128);
+ BLI_strncpy(showname, node->name, sizeof(showname));
//if(node->flag & NODE_MUTED)
// sprintf(showname, "[%s]", showname);
@@ -1022,9 +1038,9 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
UI_ThemeColor(TH_TEXT_HI);
if (gnode->flag & NODE_CUSTOM_NAME)
- strcat(showname, gnode->name);
+ BLI_strncpy(showname, gnode->name, sizeof(showname));
else
- strcpy(showname, ngroup->id.name+2);
+ BLI_strncpy(showname, ngroup->id.name+2, sizeof(showname));
// XXX this shows some scaling artifacts
UI_DrawString(rect.xmin+8.0f, rect.ymax+5.0f, showname);
@@ -1046,14 +1062,12 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
{
- float col[3];
View2DScrollers *scrollers;
SpaceNode *snode= CTX_wm_space_node(C);
Scene *scene= CTX_data_scene(C);
int color_manage = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
@@ -1078,8 +1092,16 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
if(snode->nodetree) {
bNode *node;
+ /* init ui blocks for opened node group trees first
+ * so they're in the correct depth stack order */
+ for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ if(node->flag & NODE_GROUP_EDIT)
+ node_uiblocks_init(C, (bNodeTree *)node->id);
+ }
+
node_uiblocks_init(C, snode->nodetree);
+
/* for now, we set drawing coordinates on each redraw */
for(node= snode->nodetree->nodes.first; node; node= node->next) {
if(node->flag & NODE_GROUP_EDIT)
@@ -1101,14 +1123,14 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
/* draw grease-pencil ('canvas' strokes) */
if (/*(snode->flag & SNODE_DISPGP) &&*/ (snode->nodetree))
- draw_gpencil_2dview((bContext*)C, 1);
+ draw_gpencil_view2d((bContext*)C, 1);
/* reset view matrix */
UI_view2d_view_restore(C);
/* draw grease-pencil (screen strokes, and also paintbuffer) */
if (/*(snode->flag & SNODE_DISPGP) && */(snode->nodetree))
- draw_gpencil_2dview((bContext*)C, 0);
+ draw_gpencil_view2d((bContext*)C, 0);
/* scrollers */
scrollers= UI_view2d_scrollers_calc(C, v2d, 10, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 473f706f6f8..cea88c33c5b 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,22 +31,14 @@
#include <stdlib.h>
#include <math.h>
#include <string.h>
+#include <errno.h>
#include "MEM_guardedalloc.h"
-#include "DNA_action_types.h"
-#include "DNA_brush_types.h"
-#include "DNA_color_types.h"
-#include "DNA_image_types.h"
-#include "DNA_ipo_types.h"
#include "DNA_object_types.h"
#include "DNA_material_types.h"
-#include "DNA_texture_types.h"
#include "DNA_node_types.h"
-#include "DNA_space_types.h"
-#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_context.h"
#include "BKE_colortools.h"
@@ -73,11 +65,8 @@
#include "IMB_imbuf_types.h"
#include "ED_node.h"
-#include "ED_render.h"
#include "ED_screen.h"
-#include "ED_space_api.h"
-#include "ED_transform.h"
-#include "ED_types.h"
+#include "ED_render.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -87,7 +76,7 @@
#include "UI_interface.h"
#include "UI_view2d.h"
-
+
#include "node_intern.h"
#define SOCK_IN 1
@@ -101,6 +90,7 @@ typedef struct CompoJob {
bNodeTree *localtree;
short *stop;
short *do_update;
+ float *progress;
} CompoJob;
/* called by compo, only to check job 'stop' value */
@@ -146,9 +136,16 @@ static void compo_updatejob(void *cjv)
ntreeLocalSync(cj->localtree, cj->ntree);
}
+static void compo_progressjob(void *cjv, float progress)
+{
+ CompoJob *cj= cjv;
+
+ *(cj->progress) = progress;
+}
+
/* only this runs inside thread */
-static void compo_startjob(void *cjv, short *stop, short *do_update)
+static void compo_startjob(void *cjv, short *stop, short *do_update, float *progress)
{
CompoJob *cj= cjv;
bNodeTree *ntree= cj->localtree;
@@ -158,11 +155,14 @@ static void compo_startjob(void *cjv, short *stop, short *do_update)
cj->stop= stop;
cj->do_update= do_update;
+ cj->progress= progress;
ntree->test_break= compo_breakjob;
ntree->tbh= cj;
ntree->stats_draw= compo_redrawjob;
ntree->sdh= cj;
+ ntree->progress= compo_progressjob;
+ ntree->prh= cj;
// XXX BIF_store_spare();
@@ -170,6 +170,7 @@ static void compo_startjob(void *cjv, short *stop, short *do_update)
ntree->test_break= NULL;
ntree->stats_draw= NULL;
+ ntree->progress= NULL;
}
@@ -179,7 +180,7 @@ void snode_composite_job(const bContext *C, ScrArea *sa)
wmJob *steve;
CompoJob *cj;
- steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, WM_JOB_EXCL_RENDER);
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Compositing", WM_JOB_EXCL_RENDER|WM_JOB_PROGRESS);
cj= MEM_callocN(sizeof(CompoJob), "compo job");
/* customdata for preview thread */
@@ -189,7 +190,7 @@ void snode_composite_job(const bContext *C, ScrArea *sa)
/* setup job */
WM_jobs_customdata(steve, cj, compo_freejob);
WM_jobs_timer(steve, 0.1, NC_SCENE, NC_SCENE|ND_COMPO_RESULT);
- WM_jobs_callbacks(steve, compo_startjob, compo_initjob, compo_updatejob);
+ WM_jobs_callbacks(steve, compo_startjob, compo_initjob, compo_updatejob, NULL);
WM_jobs_start(CTX_wm_manager(C), steve);
@@ -401,11 +402,13 @@ void snode_set_context(SpaceNode *snode, Scene *scene)
snode->from= (ID*)give_current_material(ob, ob->actcol);
/* from is not set fully for material nodes, should be ID + Node then */
+ snode->id= &tx->id;
}
}
else if(snode->texfrom==SNODE_TEX_WORLD) {
tx= give_current_world_texture(scene->world);
snode->from= (ID *)scene->world;
+ snode->id= &tx->id;
}
else {
Brush *brush= NULL;
@@ -415,11 +418,12 @@ void snode_set_context(SpaceNode *snode, Scene *scene)
else
brush= paint_brush(&scene->toolsettings->imapaint.paint);
- snode->from= (ID *)brush;
- tx= give_current_brush_texture(brush);
+ if (brush) {
+ snode->from= (ID *)brush;
+ tx= give_current_brush_texture(brush);
+ snode->id= &tx->id;
+ }
}
-
- snode->id= &tx->id;
}
if(snode->id)
@@ -546,6 +550,8 @@ static int node_group_edit_exec(bContext *C, wmOperator *op)
SpaceNode *snode = CTX_wm_space_node(C);
bNode *gnode;
+ ED_preview_kill_jobs(C);
+
gnode= nodeGetActive(snode->edittree);
snode_make_group_editable(snode, gnode);
@@ -591,6 +597,8 @@ static int node_group_ungroup_exec(bContext *C, wmOperator *op)
SpaceNode *snode = CTX_wm_space_node(C);
bNode *gnode;
+ ED_preview_kill_jobs(C);
+
/* are we inside of a group? */
gnode= node_tree_get_editgroup(snode->nodetree);
if(gnode)
@@ -697,68 +705,125 @@ static bNode *visible_node(SpaceNode *snode, rctf *rct)
return tnode;
}
-#if 0
-static void snode_bg_viewmove(SpaceNode *snode)
+/* **************************** */
+
+typedef struct NodeViewMove {
+ short mvalo[2];
+ int xmin, ymin, xmax, ymax;
+} NodeViewMove;
+
+static int snode_bg_viewmove_modal(bContext *C, wmOperator *op, wmEvent *event)
{
- ScrArea *sa;
+ SpaceNode *snode= CTX_wm_space_node(C);
+ ARegion *ar= CTX_wm_region(C);
+ NodeViewMove *nvm= op->customdata;
+
+ switch (event->type) {
+ case MOUSEMOVE:
+
+ snode->xof -= (nvm->mvalo[0]-event->mval[0]);
+ snode->yof -= (nvm->mvalo[1]-event->mval[1]);
+ nvm->mvalo[0]= event->mval[0];
+ nvm->mvalo[1]= event->mval[1];
+
+ /* prevent dragging image outside of the window and losing it! */
+ CLAMP(snode->xof, nvm->xmin, nvm->xmax);
+ CLAMP(snode->yof, nvm->ymin, nvm->ymax);
+
+ ED_region_tag_redraw(ar);
+
+ break;
+
+ case LEFTMOUSE:
+ case MIDDLEMOUSE:
+ case RIGHTMOUSE:
+
+ MEM_freeN(nvm);
+ op->customdata= NULL;
+
+ return OPERATOR_FINISHED;
+ }
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int snode_bg_viewmove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ ARegion *ar= CTX_wm_region(C);
+ NodeViewMove *nvm;
Image *ima;
ImBuf *ibuf;
- Window *win;
- short mval[2], mvalo[2];
- short rectx, recty, xmin, xmax, ymin, ymax, pad;
- int oldcursor;
+ int pad= 10;
ima= BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
ibuf= BKE_image_get_ibuf(ima, NULL);
- sa = snode->area;
+ if(ibuf == NULL)
+ return OPERATOR_CANCELLED;
+
+ nvm= MEM_callocN(sizeof(NodeViewMove), "NodeViewMove struct");
+ op->customdata= nvm;
+ nvm->mvalo[0]= event->mval[0];
+ nvm->mvalo[1]= event->mval[1];
+
+ nvm->xmin = -(ar->winx/2) - ibuf->x/2 + pad;
+ nvm->xmax = ar->winx/2 + ibuf->x/2 - pad;
+ nvm->ymin = -(ar->winy/2) - ibuf->y/2 + pad;
+ nvm->ymax = ar->winy/2 + ibuf->y/2 - pad;
- if(ibuf) {
- rectx = ibuf->x;
- recty = ibuf->y;
- } else {
- rectx = recty = 1;
- }
+ /* add modal handler */
+ WM_event_add_modal_handler(C, op);
- pad = 10;
- xmin = -(sa->winx/2) - rectx/2 + pad;
- xmax = sa->winx/2 + rectx/2 - pad;
- ymin = -(sa->winy/2) - recty/2 + pad;
- ymax = sa->winy/2 + recty/2 - pad;
+ return OPERATOR_RUNNING_MODAL;
+}
+
+
+void NODE_OT_backimage_move(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Background Image Move";
+ ot->idname= "NODE_OT_backimage_move";
- getmouseco_sc(mvalo);
+ /* api callbacks */
+ ot->invoke= snode_bg_viewmove_invoke;
+ ot->modal= snode_bg_viewmove_modal;
+ ot->poll= ED_operator_node_active;
- /* store the old cursor to temporarily change it */
- oldcursor=get_cursor();
- win=winlay_get_active_window();
+ /* flags */
+ ot->flag= OPTYPE_BLOCKING;
+}
+
+static int backimage_zoom(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode= CTX_wm_space_node(C);
+ ARegion *ar= CTX_wm_region(C);
+ float fac= RNA_float_get(op->ptr, "factor");
+
+ snode->zoom *= fac;
+ ED_region_tag_redraw(ar);
+
+ return OPERATOR_FINISHED;
+}
+
+
+void NODE_OT_backimage_zoom(wmOperatorType *ot)
+{
- SetBlenderCursor(BC_NSEW_SCROLLCURSOR);
+ /* identifiers */
+ ot->name= "Background Image Zoom";
+ ot->idname= "NODE_OT_backimage_zoom";
- while(get_mbut()&(L_MOUSE|M_MOUSE)) {
-
- getmouseco_sc(mval);
-
- if(mvalo[0]!=mval[0] || mvalo[1]!=mval[1]) {
-
- snode->xof -= (mvalo[0]-mval[0]);
- snode->yof -= (mvalo[1]-mval[1]);
-
- /* prevent dragging image outside of the window and losing it! */
- CLAMP(snode->xof, xmin, xmax);
- CLAMP(snode->yof, ymin, ymax);
-
- mvalo[0]= mval[0];
- mvalo[1]= mval[1];
-
- scrarea_do_windraw(curarea);
- screen_swapbuffers();
- }
- else BIF_wait_for_statechange();
- }
+ /* api callbacks */
+ ot->exec= backimage_zoom;
+ ot->poll= ED_operator_node_active;
- window_set_cursor(win, oldcursor);
+ /* flags */
+ ot->flag= OPTYPE_BLOCKING;
+
+ /* internal */
+ RNA_def_float(ot->srna, "factor", 1.2f, 0.0f, 10.0f, "Factor", "", 0.0f, 10.0f);
}
-#endif
+
/* ********************** size widget operator ******************** */
@@ -875,6 +940,79 @@ void node_deselectall(SpaceNode *snode)
node->flag &= ~SELECT;
}
+/* return 1 if we need redraw otherwise zero. */
+int node_select_same_type(SpaceNode *snode)
+{
+ bNode *nac, *p;
+ int redraw;
+
+ /* search for the active node. */
+ for (nac= snode->edittree->nodes.first; nac; nac= nac->next) {
+ if (nac->flag & SELECT)
+ break;
+ }
+
+ /* no active node, return. */
+ if (!nac)
+ return(0);
+
+ redraw= 0;
+ for (p= snode->edittree->nodes.first; p; p= p->next) {
+ if (p->type != nac->type && p->flag & SELECT) {
+ /* if it's selected but different type, unselect */
+ redraw= 1;
+ p->flag &= ~SELECT;
+ }
+ else if (p->type == nac->type && (!(p->flag & SELECT))) {
+ /* if it's the same type and is not selected, select! */
+ redraw= 1;
+ p->flag |= SELECT;
+ }
+ }
+ return(redraw);
+}
+
+/* return 1 if we need redraw, otherwise zero.
+ * dir can be 0 == next or 0 != prev.
+ */
+int node_select_same_type_np(SpaceNode *snode, int dir)
+{
+ bNode *nac, *p;
+
+ /* search the active one. */
+ for (nac= snode->edittree->nodes.first; nac; nac= nac->next) {
+ if (nac->flag & SELECT)
+ break;
+ }
+
+ /* no active node, return. */
+ if (!nac)
+ return(0);
+
+ if (dir == 0)
+ p= nac->next;
+ else
+ p= nac->prev;
+
+ while (p) {
+ /* Now search the next with the same type. */
+ if (p->type == nac->type)
+ break;
+
+ if (dir == 0)
+ p= p->next;
+ else
+ p= p->prev;
+ }
+
+ if (p) {
+ node_deselectall(snode);
+ p->flag |= SELECT;
+ return(1);
+ }
+ return(0);
+}
+
int node_has_hidden_sockets(bNode *node)
{
bNodeSocket *sock;
@@ -903,31 +1041,101 @@ static void node_link_viewer(SpaceNode *snode, bNode *tonode)
if( ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
if(node->flag & NODE_DO_OUTPUT)
break;
+ /* no viewer, we make one active */
+ if(node==NULL) {
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
+ if( ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
+ node->flag |= NODE_DO_OUTPUT;
+ break;
+ }
+ }
+ }
if(node) {
bNodeLink *link;
-
- /* get link to viewer */
+ bNodeSocket *sock= NULL;
+
+ /* try to find an already connected socket to cycle to the next */
for(link= snode->edittree->links.first; link; link= link->next)
- if(link->tonode==node)
- break;
+ if(link->tonode==node && link->fromnode==tonode)
+ if(link->tosock==node->inputs.first)
+ break;
if(link) {
- link->fromnode= tonode;
- link->fromsock= tonode->outputs.first;
+ /* unlink existing connection */
+ sock= link->fromsock;
+ nodeRemLink(snode->edittree, link);
+
+ /* find a socket after the previously connected socket */
+ for(sock=sock->next; sock; sock= sock->next)
+ if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
+ break;
+ }
+
+ /* find a socket starting from the first socket */
+ if(!sock) {
+ for(sock= tonode->outputs.first; sock; sock= sock->next)
+ if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
+ break;
+ }
+
+ if(sock) {
+ /* get link to viewer */
+ for(link= snode->edittree->links.first; link; link= link->next)
+ if(link->tonode==node && link->tosock==node->inputs.first)
+ break;
+
+ if(link==NULL) {
+ nodeAddLink(snode->edittree, tonode, sock, node, node->inputs.first);
+ }
+ else {
+ link->fromnode= tonode;
+ link->fromsock= sock;
+ }
+ ntreeSolveOrder(snode->edittree);
NodeTagChanged(snode->edittree, node);
}
}
}
-void node_active_link_viewer(SpaceNode *snode)
+static int node_active_link_viewer(bContext *C, wmOperator *op)
{
- bNode *node= editnode_get_active(snode->edittree);
- if(node)
- node_link_viewer(snode, node);
+ SpaceNode *snode= CTX_wm_space_node(C);
+ bNode *node;
+
+ node= editnode_get_active(snode->edittree);
+
+ if(!node)
+ return OPERATOR_CANCELLED;
+
+ ED_preview_kill_jobs(C);
+
+ node_link_viewer(snode, node);
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
}
+
+
+void NODE_OT_link_viewer(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Link to Viewer Node";
+ ot->description = "Link to Viewer Node";
+ ot->idname= "NODE_OT_link_viewer";
+
+ /* api callbacks */
+ ot->exec= node_active_link_viewer;
+ ot->poll= ED_operator_node_active;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
+
/* return 0, nothing done */
/*static*/ int node_mouse_groupheader(SpaceNode *snode)
{
@@ -1267,6 +1475,8 @@ static int node_duplicate_exec(bContext *C, wmOperator *op)
{
SpaceNode *snode= CTX_wm_space_node(C);
+ ED_preview_kill_jobs(C);
+
ntreeCopyTree(snode->edittree, 1); /* 1 == internally selected nodes */
ntreeSolveOrder(snode->edittree);
@@ -1425,7 +1635,7 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
static int node_link_init(SpaceNode *snode, NodeLinkDrag *nldrag)
{
bNodeLink *link;
-
+
/* output indicated? */
if(find_indicated_socket(snode, &nldrag->node, &nldrag->sock, SOCK_OUT)) {
if(nodeCountSocketLinks(snode->edittree, nldrag->sock) < nldrag->sock->limit)
@@ -1479,6 +1689,8 @@ static int node_link_invoke(bContext *C, wmOperator *op, wmEvent *event)
UI_view2d_region_to_view(&ar->v2d, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin,
&snode->mx, &snode->my);
+ ED_preview_kill_jobs(C);
+
nldrag->in_out= node_link_init(snode, nldrag);
if(nldrag->in_out) {
@@ -1525,6 +1737,8 @@ static int node_make_link_exec(bContext *C, wmOperator *op)
SpaceNode *snode= CTX_wm_space_node(C);
int replace = RNA_boolean_get(op->ptr, "replace");
+ ED_preview_kill_jobs(C);
+
snode_autoconnect(snode, 0, replace);
node_tree_verify_groups(snode->nodetree);
@@ -1588,6 +1802,8 @@ static int cut_links_exec(bContext *C, wmOperator *op)
if(i>1) {
bNodeLink *link, *next;
+
+ ED_preview_kill_jobs(C);
for(link= snode->edittree->links.first; link; link= next) {
next= link->next;
@@ -1633,13 +1849,15 @@ void NODE_OT_links_cut(wmOperatorType *ot)
/* ******************************** */
// XXX some code needing updating to operators...
-/* goes over all scenes, reads render layerss */
-void node_read_renderlayers(SpaceNode *snode)
+/* goes over all scenes, reads render layers */
+static int node_read_renderlayers_exec(bContext *C, wmOperator *op)
{
- Scene *curscene= NULL; // XXX
- Scene *scene;
+ SpaceNode *snode= CTX_wm_space_node(C);
+ Scene *curscene= CTX_data_scene(C), *scene;
bNode *node;
+ ED_preview_kill_jobs(C);
+
/* first tag scenes unread */
for(scene= G.main->scene.first; scene; scene= scene->id.next)
scene->id.flag |= LIB_DOIT;
@@ -1655,26 +1873,57 @@ void node_read_renderlayers(SpaceNode *snode)
}
}
- // XXX snode_notify(snode);
+ snode_notify(C, snode);
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_read_renderlayers(wmOperatorType *ot)
+{
+
+ ot->name= "Read Render Layers";
+ ot->idname= "NODE_OT_read_renderlayers";
+
+ ot->exec= node_read_renderlayers_exec;
+
+ ot->poll= ED_operator_node_active;
+
+ /* flags */
+ ot->flag= 0;
}
-void node_read_fullsamplelayers(SpaceNode *snode)
+static int node_read_fullsamplelayers_exec(bContext *C, wmOperator *op)
{
- Scene *curscene= NULL; // XXX
- Render *re= RE_NewRender(curscene->id.name, RE_SLOT_VIEW);
+ SpaceNode *snode= CTX_wm_space_node(C);
+ Scene *curscene= CTX_data_scene(C);
+ Render *re= RE_NewRender(curscene->id.name);
- WM_cursor_wait(1);
+// WM_cursor_wait(1);
- //BIF_init_render_callbacks(re, 1);
RE_MergeFullSample(re, curscene, snode->nodetree);
- //BIF_end_render_callbacks();
+ snode_notify(C, snode);
+
+// WM_cursor_wait(0);
+ return OPERATOR_FINISHED;
+}
+
+
+void NODE_OT_read_fullsamplelayers(wmOperatorType *ot)
+{
+
+ ot->name= "Read Full Sample Layers";
+ ot->idname= "NODE_OT_read_fullsamplelayers";
- // allqueue(REDRAWNODE, 1);
- // allqueue(REDRAWIMAGE, 1);
+ ot->exec= node_read_fullsamplelayers_exec;
- WM_cursor_wait(0);
+ ot->poll= ED_operator_node_active;
+
+ /* flags */
+ ot->flag= 0;
}
+
+/* ************************* */
+
void imagepaint_composite_tags(bNodeTree *ntree, Image *image, ImageUser *iuser)
{
bNode *node;
@@ -1725,6 +1974,8 @@ static int node_group_make_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
}
+
+ ED_preview_kill_jobs(C);
gnode= nodeMakeGroupFromSelected(snode->nodetree);
if(gnode==NULL) {
@@ -1758,49 +2009,144 @@ void NODE_OT_group_make(wmOperatorType *ot)
/* ****************** Hide operator *********************** */
-static int node_hide_exec(bContext *C, wmOperator *op)
+static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag)
{
- SpaceNode *snode= CTX_wm_space_node(C);
+ int tot_eq= 0, tot_neq= 0;
bNode *node;
- int nothidden=0, ishidden=0;
-
- /* sanity checking (poll callback checks this already) */
- if((snode == NULL) || (snode->edittree == NULL))
- return OPERATOR_CANCELLED;
-
+
for(node= snode->edittree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
- if(node->flag & NODE_HIDDEN)
- ishidden++;
+
+ if(toggle_flag== NODE_PREVIEW && (node->typeinfo->flag & NODE_PREVIEW)==0)
+ continue;
+
+ if(node->flag & toggle_flag)
+ tot_eq++;
else
- nothidden++;
+ tot_neq++;
}
}
for(node= snode->edittree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
- if( (ishidden && nothidden) || ishidden==0)
- node->flag |= NODE_HIDDEN;
- else
- node->flag &= ~NODE_HIDDEN;
+
+ if(toggle_flag== NODE_PREVIEW && (node->typeinfo->flag & NODE_PREVIEW)==0)
+ continue;
+
+ if( (tot_eq && tot_neq) || tot_eq==0)
+ node->flag |= toggle_flag;
+ else
+ node->flag &= ~toggle_flag;
}
}
+}
+
+static int node_hide_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode= CTX_wm_space_node(C);
+
+ /* sanity checking (poll callback checks this already) */
+ if((snode == NULL) || (snode->edittree == NULL))
+ return OPERATOR_CANCELLED;
+
+ node_flag_toggle_exec(snode, NODE_HIDDEN);
snode_notify(C, snode);
return OPERATOR_FINISHED;
}
-void NODE_OT_hide(wmOperatorType *ot)
+void NODE_OT_hide_toggle(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Hide";
- ot->description= "Toggle hiding of the nodes";
- ot->idname= "NODE_OT_hide";
+ ot->description= "Toggle hiding of selected nodes";
+ ot->idname= "NODE_OT_hide_toggle";
/* callbacks */
ot->exec= node_hide_exec;
ot->poll= ED_operator_node_active;
-
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int node_preview_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode= CTX_wm_space_node(C);
+
+ /* sanity checking (poll callback checks this already) */
+ if((snode == NULL) || (snode->edittree == NULL))
+ return OPERATOR_CANCELLED;
+
+ ED_preview_kill_jobs(C);
+
+ node_flag_toggle_exec(snode, NODE_PREVIEW);
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_preview_toggle(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Toggle Node Preview";
+ ot->description= "Toggle preview display for selected nodes";
+ ot->idname= "NODE_OT_preview_toggle";
+
+ /* callbacks */
+ ot->exec= node_preview_exec;
+ ot->poll= ED_operator_node_active;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int node_socket_toggle_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode= CTX_wm_space_node(C);
+ bNode *node;
+ int hidden= 0;
+
+ /* sanity checking (poll callback checks this already) */
+ if((snode == NULL) || (snode->edittree == NULL))
+ return OPERATOR_CANCELLED;
+
+ ED_preview_kill_jobs(C);
+
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
+ if(node->flag & SELECT) {
+ if(node_has_hidden_sockets(node)) {
+ hidden= 1;
+ break;
+ }
+ }
+ }
+
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
+ if(node->flag & SELECT) {
+ node_set_hidden_sockets(snode, node, !hidden);
+ }
+ }
+
+ node_tree_verify_groups(snode->nodetree);
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_hide_socket_toggle(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Toggle Hidden Node Sockets";
+ ot->description= "Toggle unused node socket display";
+ ot->idname= "NODE_OT_hide_socket_toggle";
+
+ /* callbacks */
+ ot->exec= node_socket_toggle_exec;
+ ot->poll= ED_operator_node_active;
+
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
@@ -1816,6 +2162,8 @@ static int node_mute_exec(bContext *C, wmOperator *op)
if(node_tree_get_editgroup(snode->nodetree))
return OPERATOR_CANCELLED;
+ ED_preview_kill_jobs(C);
+
for(node= snode->edittree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
if(node->inputs.first && node->outputs.first) {
@@ -1830,12 +2178,12 @@ static int node_mute_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-void NODE_OT_mute(wmOperatorType *ot)
+void NODE_OT_mute_toggle(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Mute";
+ ot->name= "Toggle Node Mute";
ot->description= "Toggle muting of the nodes";
- ot->idname= "NODE_OT_mute";
+ ot->idname= "NODE_OT_mute_toggle";
/* callbacks */
ot->exec= node_mute_exec;
@@ -1852,6 +2200,8 @@ static int node_delete_exec(bContext *C, wmOperator *op)
SpaceNode *snode= CTX_wm_space_node(C);
bNode *node, *next;
+ ED_preview_kill_jobs(C);
+
for(node= snode->edittree->nodes.first; node; node= next) {
next= node->next;
if(node->flag & SELECT) {
@@ -1912,4 +2262,95 @@ void NODE_OT_show_cyclic_dependencies(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
+/* ****************** Add File Node Operator ******************* */
+
+static int node_add_file_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene= CTX_data_scene(C);
+ SpaceNode *snode= CTX_wm_space_node(C);
+ bNode *node;
+ Image *ima= NULL;
+ int ntype=0;
+
+ /* check input variables */
+ if (RNA_property_is_set(op->ptr, "filepath"))
+ {
+ char path[FILE_MAX];
+ RNA_string_get(op->ptr, "filepath", path);
+
+ errno= 0;
+
+ ima= BKE_add_image_file(path, scene ? scene->r.cfra : 1);
+
+ if(!ima) {
+ BKE_reportf(op->reports, RPT_ERROR, "Can't read: \"%s\", %s.", path, errno ? strerror(errno) : "Unsupported image format");
+ return OPERATOR_CANCELLED;
+ }
+ }
+ else if(RNA_property_is_set(op->ptr, "name"))
+ {
+ char name[32];
+ RNA_string_get(op->ptr, "name", name);
+ ima= (Image *)find_id("IM", name);
+
+ if(!ima) {
+ BKE_reportf(op->reports, RPT_ERROR, "Image named \"%s\", not found.", name);
+ return OPERATOR_CANCELLED;
+ }
+ }
+
+ node_deselectall(snode);
+
+ if (snode->nodetree->type==NTREE_COMPOSIT)
+ ntype = CMP_NODE_IMAGE;
+
+ ED_preview_kill_jobs(C);
+
+ node = node_add_node(snode, scene, ntype, snode->mx, snode->my);
+
+ if (!node) {
+ BKE_report(op->reports, RPT_ERROR, "Could not add an image node.");
+ return OPERATOR_CANCELLED;
+ }
+
+ node->id = (ID *)ima;
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+static int node_add_file_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ ARegion *ar= CTX_wm_region(C);
+ SpaceNode *snode= CTX_wm_space_node(C);
+
+ /* convert mouse coordinates to v2d space */
+ UI_view2d_region_to_view(&ar->v2d, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin,
+ &snode->mx, &snode->my);
+
+ if (RNA_property_is_set(op->ptr, "filepath") || RNA_property_is_set(op->ptr, "name"))
+ return node_add_file_exec(C, op);
+ else
+ return WM_operator_filesel(C, op, event);
+}
+
+void NODE_OT_add_file(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Add File Node";
+ ot->description= "Add a file node to the current node editor";
+ ot->idname= "NODE_OT_add_file";
+
+ /* callbacks */
+ ot->exec= node_add_file_exec;
+ ot->invoke= node_add_file_invoke;
+ ot->poll= ED_operator_node_active;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH); //XXX TODO, relative_path
+ RNA_def_string(ot->srna, "name", "Image", 24, "Name", "Datablock name to assign.");
+}
diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c
index 168d2524995..3ed719eccc0 100644
--- a/source/blender/editors/space_node/node_header.c
+++ b/source/blender/editors/space_node/node_header.c
@@ -31,11 +31,8 @@
#include "DNA_space_types.h"
#include "DNA_node_types.h"
-#include "DNA_material_types.h"
-#include "DNA_texture_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -47,9 +44,6 @@
#include "BKE_main.h"
#include "BKE_utildefines.h"
-#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -58,8 +52,6 @@
#include "BIF_glutil.h"
#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "node_intern.h"
diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h
index 3a9a2e8ad83..77fda0627e7 100644
--- a/source/blender/editors/space_node/node_intern.h
+++ b/source/blender/editors/space_node/node_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -62,6 +62,9 @@ void NODE_OT_select_linked_from(wmOperatorType *ot);
void NODE_OT_visibility_toggle(struct wmOperatorType *ot);
void NODE_OT_view_all(struct wmOperatorType *ot);
void NODE_OT_select_border(struct wmOperatorType *ot);
+void NODE_OT_select_same_type(struct wmOperatorType *ot);
+void NODE_OT_select_same_type_next(wmOperatorType *ot);
+void NODE_OT_select_same_type_prev(wmOperatorType *ot);
/* drawnode.c */
void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link);
@@ -80,11 +83,15 @@ void snode_set_context(SpaceNode *snode, Scene *scene);
void snode_make_group_editable(SpaceNode *snode, bNode *gnode);
void node_set_active(SpaceNode *snode, bNode *node);
void node_deselectall(SpaceNode *snode);
+int node_select_same_type(SpaceNode *snode);
+int node_select_same_type_np(SpaceNode *snode, int dir);
void snode_composite_job(const struct bContext *C, ScrArea *sa);
bNode *node_tree_get_editgroup(bNodeTree *ntree);
void node_tree_verify_groups(bNodeTree *nodetree);
void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace);
int node_has_hidden_sockets(bNode *node);
+void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set);
+
void NODE_OT_duplicate(struct wmOperatorType *ot);
void NODE_OT_delete(struct wmOperatorType *ot);
@@ -98,10 +105,19 @@ void NODE_OT_group_make(struct wmOperatorType *ot);
void NODE_OT_group_ungroup(struct wmOperatorType *ot);
void NODE_OT_group_edit(struct wmOperatorType *ot);
-void NODE_OT_mute(struct wmOperatorType *ot);
-void NODE_OT_hide(struct wmOperatorType *ot);
+void NODE_OT_mute_toggle(struct wmOperatorType *ot);
+void NODE_OT_hide_toggle(struct wmOperatorType *ot);
+void NODE_OT_hide_socket_toggle(struct wmOperatorType *ot);
+void NODE_OT_preview_toggle(struct wmOperatorType *ot);
void NODE_OT_show_cyclic_dependencies(struct wmOperatorType *ot);
+void NODE_OT_link_viewer(struct wmOperatorType *ot);
+void NODE_OT_read_fullsamplelayers(struct wmOperatorType *ot);
+void NODE_OT_read_renderlayers(struct wmOperatorType *ot);
+void NODE_OT_backimage_move(struct wmOperatorType *ot);
+void NODE_OT_backimage_zoom(struct wmOperatorType *ot);
+
+void NODE_OT_add_file(struct wmOperatorType *ot);
// XXXXXX
diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c
index 4ce56f96146..654fdc6800e 100644
--- a/source/blender/editors/space_node/node_ops.c
+++ b/source/blender/editors/space_node/node_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -27,20 +27,15 @@
*/
#include "DNA_node_types.h"
-#include "DNA_material_types.h"
-#include "DNA_texture_types.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
#include "BKE_context.h"
#include "BKE_node.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_transform.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -56,11 +51,16 @@ void node_operatortypes(void)
WM_operatortype_append(NODE_OT_select_linked_to);
WM_operatortype_append(NODE_OT_select_linked_from);
WM_operatortype_append(NODE_OT_select_border);
-
+ WM_operatortype_append(NODE_OT_select_same_type);
+ WM_operatortype_append(NODE_OT_select_same_type_next);
+ WM_operatortype_append(NODE_OT_select_same_type_prev);
+
WM_operatortype_append(NODE_OT_view_all);
WM_operatortype_append(NODE_OT_visibility_toggle);
- WM_operatortype_append(NODE_OT_mute);
- WM_operatortype_append(NODE_OT_hide);
+ WM_operatortype_append(NODE_OT_mute_toggle);
+ WM_operatortype_append(NODE_OT_hide_toggle);
+ WM_operatortype_append(NODE_OT_preview_toggle);
+ WM_operatortype_append(NODE_OT_hide_socket_toggle);
WM_operatortype_append(NODE_OT_show_cyclic_dependencies);
WM_operatortype_append(NODE_OT_duplicate);
@@ -74,17 +74,30 @@ void node_operatortypes(void)
WM_operatortype_append(NODE_OT_group_make);
WM_operatortype_append(NODE_OT_group_ungroup);
WM_operatortype_append(NODE_OT_group_edit);
+
+ WM_operatortype_append(NODE_OT_link_viewer);
+
+ WM_operatortype_append(NODE_OT_read_renderlayers);
+ WM_operatortype_append(NODE_OT_read_fullsamplelayers);
+
+ WM_operatortype_append(NODE_OT_backimage_move);
+ WM_operatortype_append(NODE_OT_backimage_zoom);
+
+ WM_operatortype_append(NODE_OT_add_file);
}
void ED_operatormacros_node(void)
{
wmOperatorType *ot;
- wmOperatorTypeMacro *otmacro;
ot= WM_operatortype_append_macro("NODE_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
- otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
- RNA_enum_set(otmacro->ptr, "proportional", 0);
+ WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
+
+ ot= WM_operatortype_append_macro("NODE_OT_select_link_viewer", "Link Viewer", OPTYPE_UNDO);
+ WM_operatortype_macro_define(ot, "NODE_OT_select");
+ WM_operatortype_macro_define(ot, "NODE_OT_link_viewer");
+
}
void node_keymap(struct wmKeyConfig *keyconf)
@@ -117,14 +130,25 @@ void node_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "NODE_OT_visibility_toggle", LEFTMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_select_link_viewer", LEFTMOUSE, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+
+ WM_keymap_add_item(keymap, "NODE_OT_backimage_move", MIDDLEMOUSE, KM_PRESS, KM_ALT, 0);
+ kmi= WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, 0, 0);
+ RNA_float_set(kmi->ptr, "factor", 0.83333f);
+ kmi= WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, KM_ALT, 0);
+ RNA_float_set(kmi->ptr, "factor", 1.2f);
+
+
WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, 0, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, KM_CTRL, 0)->ptr, "replace", 1);
WM_keymap_add_menu(keymap, "NODE_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "NODE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_hide", HKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_mute", MKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_hide_toggle", HKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_mute_toggle", MKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_preview_toggle", HKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_hide_socket_toggle", HKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "NODE_OT_show_cyclic_dependencies", CKEY, KM_PRESS, 0, 0);
@@ -132,14 +156,21 @@ void node_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "NODE_OT_select_border", BKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_select_all", AKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_select_linked_to", LKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "NODE_OT_select_linked_from", LKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_select_same_type", GKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_select_same_type_next", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_select_same_type_prev", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "NODE_OT_group_make", GKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "NODE_OT_group_ungroup", GKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "NODE_OT_group_edit", TABKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_read_renderlayers", RKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_read_fullsamplelayers", RKEY, KM_PRESS, KM_SHIFT, 0);
+
transform_keymap_for_space(keyconf, keymap, SPACE_NODE);
}
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index 055290fbb66..ccd1555e1a2 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,11 +29,7 @@
#include <stdio.h>
#include "DNA_node_types.h"
-#include "DNA_material_types.h"
-#include "DNA_texture_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "BKE_context.h"
#include "BKE_node.h"
@@ -42,7 +38,6 @@
#include "BLI_rect.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_types.h"
@@ -117,9 +112,6 @@ static int node_select_exec(bContext *C, wmOperator *op)
/* perform the select */
node= node_mouse_select(snode, ar, mval, extend);
- /* need refresh/a notifier vs compo notifier */
- WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); /* Do we need to pass the scene? */
-
/* WATCH THIS, there are a few other ways to change the active material */
if(node) {
if (node->id && ELEM(GS(node->id->name), ID_MA, ID_TE)) {
@@ -127,8 +119,8 @@ static int node_select_exec(bContext *C, wmOperator *op)
}
}
- /* send notifiers */
- WM_event_add_notifier(C, NC_NODE|ND_NODE_SELECT, NULL);
+ /* send notifiers */
+ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
/* allow tweak event to work too */
return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
@@ -196,7 +188,7 @@ static int node_borderselect_exec(bContext *C, wmOperator *op)
}
}
- WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); /* Do we need to pass the scene? */
+ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -272,7 +264,7 @@ static int node_select_all_exec(bContext *C, wmOperator *op)
node->flag |= NODE_SELECT;
}
- WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL);
+ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -312,7 +304,7 @@ static int node_select_linked_to_exec(bContext *C, wmOperator *op)
node->flag |= NODE_SELECT;
}
- WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL);
+ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -352,7 +344,7 @@ static int node_select_linked_from_exec(bContext *C, wmOperator *op)
node->flag |= NODE_SELECT;
}
- WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL);
+ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -371,3 +363,78 @@ void NODE_OT_select_linked_from(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
+/* ****** Select Same Type ****** */
+
+static int node_select_same_type_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ node_select_same_type(snode);
+ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_select_same_type(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Select Same Type";
+ ot->description = "Select all the same type";
+ ot->idname = "NODE_OT_select_same_type";
+
+ /* api callbacks */
+ ot->exec = node_select_same_type_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* ****** Select The Next/Prev Node Of The Same Type ****** */
+
+static int node_select_same_type_next_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ node_select_same_type_np(snode, 0);
+ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_select_same_type_next(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Select Same Type Next";
+ ot->description = "Select the next node of the same type.";
+ ot->idname = "NODE_OT_select_same_type_next";
+
+ /* api callbacks */
+ ot->exec = node_select_same_type_next_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int node_select_same_type_prev_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ node_select_same_type_np(snode, 1);
+ WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_select_same_type_prev(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Select Same Type Prev";
+ ot->description = "Select the prev node of the same type.";
+ ot->idname = "NODE_OT_select_same_type_prev";
+
+ /* api callbacks */
+ ot->exec = node_select_same_type_prev_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
diff --git a/source/blender/editors/space_node/node_state.c b/source/blender/editors/space_node/node_state.c
index e754903efc5..6b3cfd11135 100644
--- a/source/blender/editors/space_node/node_state.c
+++ b/source/blender/editors/space_node/node_state.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,11 +29,7 @@
#include <stdio.h>
#include "DNA_node_types.h"
-#include "DNA_material_types.h"
-#include "DNA_texture_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "BKE_context.h"
#include "BKE_node.h"
@@ -41,9 +37,7 @@
#include "BLI_rect.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
-#include "ED_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -57,12 +51,13 @@
/* **************** Node Header Buttons ************** */
-static void node_hide_unhide_sockets(SpaceNode *snode, bNode *node)
-{
+/* note: call node_tree_verify_groups(snode->nodetree) after this
+ */
+void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set)
+{
bNodeSocket *sock;
-
- /* unhide all */
- if( node_has_hidden_sockets(node) ) {
+
+ if(set==0) {
for(sock= node->inputs.first; sock; sock= sock->next)
sock->flag &= ~SOCK_HIDDEN;
for(sock= node->outputs.first; sock; sock= sock->next)
@@ -70,7 +65,7 @@ static void node_hide_unhide_sockets(SpaceNode *snode, bNode *node)
}
else {
bNode *gnode= node_tree_get_editgroup(snode->nodetree);
-
+
/* hiding inside group should not break links in other group users */
if(gnode) {
nodeGroupSocketUseFlags((bNodeTree *)gnode->id);
@@ -95,7 +90,11 @@ static void node_hide_unhide_sockets(SpaceNode *snode, bNode *node)
}
}
}
+}
+static void node_hide_unhide_sockets(SpaceNode *snode, bNode *node)
+{
+ node_set_hidden_sockets(snode, node, !node_has_hidden_sockets(node));
node_tree_verify_groups(snode->nodetree);
}
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index fb36c53e9fa..5b681958a3a 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,10 +32,7 @@
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_material_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -49,7 +46,6 @@
#include "BKE_node.h"
#include "ED_render.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
@@ -57,7 +53,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -141,8 +136,8 @@ static SpaceLink *node_new(const bContext *C)
ar->v2d.max[0]= 32000.0f;
ar->v2d.max[1]= 32000.0f;
- ar->v2d.minzoom= 0.2f;
- ar->v2d.maxzoom= 1.21f;
+ ar->v2d.minzoom= 0.09f;
+ ar->v2d.maxzoom= 2.31f;
ar->v2d.scroll= (V2D_SCROLL_RIGHT|V2D_SCROLL_BOTTOM);
ar->v2d.keepzoom= V2D_LIMITZOOM|V2D_KEEPASPECT;
@@ -205,7 +200,8 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn)
ED_area_tag_redraw(sa);
break;
case NC_NODE:
- ED_area_tag_refresh(sa);
+ if (wmn->action == NA_EDITED)
+ ED_area_tag_refresh(sa);
break;
}
}
@@ -268,6 +264,7 @@ static void node_buttons_area_draw(const bContext *C, ARegion *ar)
static void node_main_area_init(wmWindowManager *wm, ARegion *ar)
{
wmKeyMap *keymap;
+ ListBase *lb;
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
@@ -277,6 +274,11 @@ static void node_main_area_init(wmWindowManager *wm, ARegion *ar)
keymap= WM_keymap_find(wm->defaultconf, "Node Editor", SPACE_NODE, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+
+ /* add drop boxes */
+ lb = WM_dropboxmap_find("Node Editor", SPACE_NODE, RGN_TYPE_WINDOW);
+
+ WM_event_add_dropbox_handler(&ar->handlers, lb);
}
static void node_main_area_draw(const bContext *C, ARegion *ar)
@@ -286,6 +288,47 @@ static void node_main_area_draw(const bContext *C, ARegion *ar)
drawnodespace(C, ar, v2d);
}
+
+/* ************* dropboxes ************* */
+
+static int node_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+{
+ if(drag->type==WM_DRAG_ID) {
+ ID *id= (ID *)drag->poin;
+ if( GS(id->name)==ID_IM )
+ return 1;
+ }
+ else if(drag->type==WM_DRAG_PATH){
+ if(ELEM(drag->icon, 0, ICON_FILE_IMAGE)) /* rule might not work? */
+ return 1;
+ }
+ return 0;
+}
+
+static void node_id_path_drop_copy(wmDrag *drag, wmDropBox *drop)
+{
+ ID *id= (ID *)drag->poin;
+
+ if(id) {
+ RNA_string_set(drop->ptr, "name", id->name+2);
+ }
+ if (drag->path[0]) {
+ RNA_string_set(drop->ptr, "filepath", drag->path);
+ }
+}
+
+/* this region dropbox definition */
+static void node_dropboxes(void)
+{
+ ListBase *lb= WM_dropboxmap_find("Node Editor", SPACE_NODE, RGN_TYPE_WINDOW);
+
+ WM_dropbox_add(lb, "NODE_OT_add_file", node_drop_poll, node_id_path_drop_copy);
+
+}
+
+/* ************* end drop *********** */
+
+
/* add handlers, stuff you only do once or on area/region changes */
static void node_header_area_init(wmWindowManager *wm, ARegion *ar)
{
@@ -297,7 +340,7 @@ static void node_header_area_draw(const bContext *C, ARegion *ar)
SpaceNode *snode= CTX_wm_space_node(C);
Scene *scene= CTX_data_scene(C);
- /* find and set the context */
+ /* find and set the context */
snode_set_context(snode, scene);
ED_region_header(C, ar);
@@ -346,6 +389,7 @@ static int node_context(const bContext *C, const char *member, bContextDataResul
CTX_data_list_add(result, &snode->edittree->id, &RNA_Node, node);
}
}
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
@@ -370,6 +414,7 @@ void ED_spacetype_node(void)
st->listener= node_area_listener;
st->refresh= node_area_refresh;
st->context= node_context;
+ st->dropboxes = node_dropboxes;
/* regions: main window */
art= MEM_callocN(sizeof(ARegionType), "spacetype node region");
diff --git a/source/blender/editors/space_outliner/CMakeLists.txt b/source/blender/editors/space_outliner/CMakeLists.txt
new file mode 100644
index 00000000000..78c4fcbdd8d
--- /dev/null
+++ b/source/blender/editors/space_outliner/CMakeLists.txt
@@ -0,0 +1,36 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../../imbuf
+ ../include
+ ../../../../intern/guardedalloc
+ ../../../../intern/opennl/extern
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_space_outliner "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c
index 8a07e99e280..95e2cb920fc 100644
--- a/source/blender/editors/space_outliner/outliner.c
+++ b/source/blender/editors/space_outliner/outliner.c
@@ -27,6 +27,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
+#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
@@ -34,34 +35,29 @@
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_curve_types.h"
#include "DNA_camera_types.h"
-#include "DNA_image_types.h"
-#include "DNA_ipo_types.h"
#include "DNA_group_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_nla_types.h"
-#include "DNA_object_types.h"
-#include "DNA_outliner_types.h"
#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_text_types.h"
#include "DNA_world_types.h"
#include "DNA_sequence_types.h"
#include "BLI_blenlib.h"
+#if defined WIN32 && !defined _LIBC
+# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */
+#else
+# define _GNU_SOURCE
+# include <fnmatch.h>
+#endif
+
#include "IMB_imbuf_types.h"
#include "BKE_animsys.h"
@@ -87,7 +83,6 @@
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_util.h"
-#include "ED_types.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -103,16 +98,10 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "ED_armature.h"
#include "ED_keyframing.h"
-#include "ED_object.h"
-#include "ED_particle.h"
-#include "ED_screen.h"
-#include "ED_view3d.h"
#include "outliner_intern.h"
-#include "PIL_time.h"
#define OL_H 19
@@ -134,7 +123,7 @@
/* ************* XXX **************** */
-static void error() {}
+static void error(const char *dummy, ...) {}
/* ********************************** */
@@ -144,6 +133,7 @@ static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene
static void outliner_do_object_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb,
void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *));
+static int group_select_flag(Group *gr);
/* ******************** PERSISTANT DATA ***************** */
@@ -445,78 +435,91 @@ static void outliner_sort(SpaceOops *soops, ListBase *lb)
static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv,
TreeElement *parent, short type, short index);
+#define LOG2I(x) (int)(log(x)/log(2.0))
static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl)
{
- TreeStoreElem *tselem= TREESTORE(tenla);
- TreeElement *te;
+ TreeStoreElem *tselem = NULL;
+ TreeElement *te = NULL;
+
+ /* log stuff is to convert bitflags (powers of 2) to small integers,
+ * in order to not overflow short tselem->nr */
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_COMBINED);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_COMBINED));
te->name= "Combined";
te->directdata= &srl->passflag;
/* save cpu cycles, but we add the first to invoke an open/close triangle */
+ tselem = TREESTORE(tenla);
if(tselem->flag & TSE_CLOSED)
return;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_Z);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_Z));
te->name= "Z";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_VECTOR);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_VECTOR));
te->name= "Vector";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_NORMAL);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_NORMAL));
te->name= "Normal";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_UV);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_UV));
te->name= "UV";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_MIST);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_MIST));
te->name= "Mist";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_INDEXOB);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXOB));
te->name= "Index Object";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_RGBA);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA));
te->name= "Color";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_DIFFUSE);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_DIFFUSE));
te->name= "Diffuse";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_SPEC);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SPEC));
te->name= "Specular";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_SHADOW);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SHADOW));
te->name= "Shadow";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_AO);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_AO));
te->name= "AO";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_REFLECT);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFLECT));
te->name= "Reflection";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_REFRACT);
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFRACT));
te->name= "Refraction";
te->directdata= &srl->passflag;
- te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, SCE_PASS_RADIO);
- te->name= "Radiosity";
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDIRECT));
+ te->name= "Indirect";
+ te->directdata= &srl->passflag;
+
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_ENVIRONMENT));
+ te->name= "Environment";
+ te->directdata= &srl->passflag;
+
+ te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_EMIT));
+ te->name= "Emit";
te->directdata= &srl->passflag;
-
}
+#undef LOG2I
/* special handling of hierarchical non-lib data */
static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone,
@@ -1245,6 +1248,86 @@ void add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index)
}
}
+static int outliner_filter_has_name(TreeElement *te, char *name, int flags)
+{
+#if 0
+ int found= 0;
+
+ /* determine if match */
+ if (flags & SO_FIND_CASE_SENSITIVE) {
+ if (flags & SO_FIND_COMPLETE)
+ found= strcmp(te->name, name) == 0;
+ else
+ found= strstr(te->name, name) != NULL;
+ }
+ else {
+ if (flags & SO_FIND_COMPLETE)
+ found= BLI_strcasecmp(te->name, name) == 0;
+ else
+ found= BLI_strcasestr(te->name, name) != NULL;
+ }
+#else
+
+ int fn_flag= 0;
+ int found= 0;
+
+ if ((flags & SO_FIND_CASE_SENSITIVE) == 0)
+ fn_flag |= FNM_CASEFOLD;
+
+ if (flags & SO_FIND_COMPLETE) {
+ found= fnmatch(name, te->name, fn_flag)==0;
+ }
+ else {
+ char fn_name[sizeof(((struct SpaceOops *)NULL)->search_string) + 2];
+ sprintf(fn_name, "*%s*", name);
+ found= fnmatch(fn_name, te->name, fn_flag)==0;
+ }
+ return found;
+#endif
+}
+
+static int outliner_filter_tree(SpaceOops *soops, ListBase *lb)
+{
+ TreeElement *te, *ten;
+ TreeStoreElem *tselem;
+
+ /* although we don't have any search string, we return TRUE
+ * since the entire tree is ok then...
+ */
+ if (soops->search_string[0]==0)
+ return 1;
+
+ for (te= lb->first; te; te= ten) {
+ ten= te->next;
+
+ if (0==outliner_filter_has_name(te, soops->search_string, soops->search_flags)) {
+ /* item isn't something we're looking for, but...
+ * - if the subtree is expanded, check if there are any matches that can be easily found
+ * so that searching for "cu" in the default scene will still match the Cube
+ * - otherwise, we can't see within the subtree and the item doesn't match,
+ * so these can be safely ignored (i.e. the subtree can get freed)
+ */
+ tselem= TREESTORE(te);
+
+ if ((tselem->flag & TSE_CLOSED) || outliner_filter_tree(soops, &te->subtree)==0) {
+ outliner_free_tree(&te->subtree);
+ BLI_remlink(lb, te);
+
+ if(te->flag & TE_FREE_NAME) MEM_freeN(te->name);
+ MEM_freeN(te);
+ }
+ }
+ else {
+ /* filter subtree too */
+ outliner_filter_tree(soops, &te->subtree);
+ }
+ }
+
+ /* if there are still items in the list, that means that there were still some matches */
+ return (lb->first != NULL);
+}
+
+
static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
{
Base *base;
@@ -1328,7 +1411,7 @@ static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
GroupObject *go;
for(group= mainvar->group.first; group; group= group->id.next) {
- if(group->id.us) {
+ if(group->gobject.first) {
te= outliner_add_element(soops, &soops->tree, group, NULL, 0, 0);
tselem= TREESTORE(te);
@@ -1426,6 +1509,7 @@ static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
}
outliner_sort(soops, &soops->tree);
+ outliner_filter_tree(soops, &soops->tree);
}
/* **************** INTERACTIVE ************* */
@@ -1550,8 +1634,6 @@ void OUTLINER_OT_selectability_toggle(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-/* --- */
-
void object_toggle_renderability_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
{
Base *base= (Base *)te->directdata;
@@ -1845,7 +1927,8 @@ static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *so
/* we search for the object parent */
ob= (Object *)outliner_search_back(soops, te, ID_OB);
- if(ob==NULL || ob!=OBACT) return 0; // just paranoia
+ // note: ob->matbits can be NULL when a local object points to a library mesh.
+ if(ob==NULL || ob!=OBACT || ob->matbits==NULL) return 0; // just paranoia
/* searching in ob mat array? */
tes= te->parent;
@@ -2140,7 +2223,7 @@ static int tree_element_active_psys(bContext *C, Scene *scene, TreeElement *te,
if(set) {
Object *ob= (Object *)tselem->id;
- WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
// XXX extern_set_butspace(F7KEY, 0);
}
@@ -2265,7 +2348,6 @@ static int tree_element_active_keymap_item(bContext *C, TreeElement *te, TreeSto
/* Context can be NULL when set==0 */
static int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set)
{
-
switch(tselem->type) {
case TSE_DEFGROUP:
return tree_element_active_defgroup(C, scene, te, tselem, set);
@@ -2343,12 +2425,46 @@ static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, Spa
ED_screen_set_scene(C, (Scene *)tselem->id);
}
}
+ else if(te->idcode==ID_GR) {
+ Group *gr= (Group *)tselem->id;
+ GroupObject *gob;
+
+ if(extend) {
+ int sel= BA_SELECT;
+ for(gob= gr->gobject.first; gob; gob= gob->next) {
+ if(gob->ob->flag & SELECT) {
+ sel= BA_DESELECT;
+ break;
+ }
+ }
+
+ for(gob= gr->gobject.first; gob; gob= gob->next) {
+ ED_base_object_select(object_in_scene(gob->ob, scene), sel);
+ }
+ }
+ else {
+ scene_deselect_all(scene);
+
+ for(gob= gr->gobject.first; gob; gob= gob->next) {
+ if((gob->ob->flag & SELECT) == 0)
+ ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT);
+ }
+ }
+
+ WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+ }
else if(ELEM5(te->idcode, ID_ME, ID_CU, ID_MB, ID_LT, ID_AR)) {
Object *obedit= CTX_data_edit_object(C);
if(obedit)
ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
else {
- ED_object_enter_editmode(C, EM_WAITCURSOR);
+ Object *ob= CTX_data_active_object(C);
+
+ /* Don't allow edit mode if the object is hide!
+ * check the bug #22153 and #21609
+ */
+ if (ob && (!(ob->restrictflag & OB_RESTRICT_VIEW)))
+ ED_object_enter_editmode(C, EM_WAITCURSOR);
// XXX extern_set_butspace(F9KEY, 0);
}
} else { // rest of types
@@ -2655,17 +2771,7 @@ static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *na
TreeElement *te, *tes;
for (te= lb->first; te; te= te->next) {
- int found;
-
- /* determine if match */
- if(flags==OL_FIND)
- found= BLI_strcasestr(te->name, name)!=NULL;
- else if(flags==OL_FIND_CASE)
- found= strstr(te->name, name)!=NULL;
- else if(flags==OL_FIND_COMPLETE)
- found= BLI_strcasecmp(te->name, name)==0;
- else
- found= strcmp(te->name, name)==0;
+ int found = outliner_filter_has_name(te, name, flags);
if(found) {
/* name is right, but is element the previous one? */
@@ -2721,7 +2827,7 @@ void outliner_find_panel(Scene *scene, ARegion *ar, SpaceOops *soops, int again,
TreeElement *last_find;
TreeStoreElem *tselem;
int ytop, xdelta, prevFound=0;
- char name[33];
+ char name[32];
/* get last found tree-element based on stored search_tse */
last_find= outliner_find_tse(soops, &soops->search_tse);
@@ -2729,7 +2835,7 @@ void outliner_find_panel(Scene *scene, ARegion *ar, SpaceOops *soops, int again,
/* determine which type of search to do */
if (again && last_find) {
/* no popup panel - previous + user wanted to search for next after previous */
- BLI_strncpy(name, soops->search_string, 33);
+ BLI_strncpy(name, soops->search_string, sizeof(name));
flags= soops->search_flags;
/* try to find matching element */
@@ -3018,7 +3124,6 @@ static void unlink_group_cb(bContext *C, Scene *scene, TreeElement *te, TreeStor
if( GS(tsep->id->name)==ID_OB) {
Object *ob= (Object *)tsep->id;
ob->dup_group= NULL;
- group->id.us--;
}
}
else {
@@ -3328,6 +3433,9 @@ static EnumPropertyItem prop_group_op_types[] = {
{1, "UNLINK", 0, "Unlink", ""},
{2, "LOCAL", 0, "Make Local", ""},
{3, "LINK", 0, "Link Group Objects to Scene", ""},
+ {4, "TOGVIS", 0, "Toggle Visible", ""},
+ {5, "TOGSEL", 0, "Toggle Selectable", ""},
+ {6, "TOGREN", 0, "Toggle Renderable", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -3354,7 +3462,7 @@ static int outliner_group_operation_exec(bContext *C, wmOperator *op)
else if(event==3) {
outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb);
ED_undo_push(C, "Link Group Objects to Scene");
- }
+ }
WM_event_add_notifier(C, NC_GROUP, NULL);
@@ -3786,7 +3894,7 @@ static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short m
short groupmode= KSP_GROUP_KSNAME;
/* check if RNA-property described by this selected element is an animateable prop */
- if ((tselem->type == TSE_RNA_PROPERTY) && RNA_property_animateable(&te->rnaptr, te->directdata)) {
+ if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) {
/* get id + path + index info from the selected element */
tree_element_to_path(soops, te, tselem,
&id, &path, &array_index, &flag, &groupmode);
@@ -3794,7 +3902,7 @@ static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short m
/* only if ID and path were set, should we perform any actions */
if (id && path) {
- int arraylen;
+ int arraylen = 1;
/* array checks */
if (flag & KSP_FLAG_WHOLE_ARRAY) {
@@ -4101,11 +4209,11 @@ static void tselem_draw_icon_uibut(struct DrawIconArg *arg, int icon)
if(arg->x >= arg->xmax)
UI_icon_draw(arg->x, arg->y, icon);
else {
- uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-4, arg->y, ICON_DEFAULT_WIDTH, ICON_DEFAULT_WIDTH, NULL, 0.0, 0.0, 1.0, arg->alpha, "");
+ uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-4, arg->y, ICON_DEFAULT_WIDTH, ICON_DEFAULT_WIDTH, NULL, 0.0, 0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : "");
if(arg->id)
uiButSetDragID(but, arg->id);
}
-
+
}
static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha)
@@ -4210,6 +4318,8 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
UI_icon_draw(x, y, ICON_MOD_SMOKE); break;
case eModifierType_Solidify:
UI_icon_draw(x, y, ICON_MOD_SOLIDIFY); break;
+ case eModifierType_Screw:
+ UI_icon_draw(x, y, ICON_MOD_SCREW); break;
default:
UI_icon_draw(x, y, ICON_DOT); break;
}
@@ -4226,7 +4336,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
case TSE_R_LAYER_BASE:
UI_icon_draw(x, y, ICON_RENDERLAYERS); break;
case TSE_R_LAYER:
- UI_icon_draw(x, y, ICON_RENDER_RESULT); break;
+ UI_icon_draw(x, y, ICON_RENDERLAYERS); break;
case TSE_LINKED_LAMP:
UI_icon_draw(x, y, ICON_LAMP_DATA); break;
case TSE_LINKED_MAT:
@@ -4427,6 +4537,18 @@ static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene
active= 2;
}
}
+ else if(te->idcode==ID_GR) {
+ Group *gr = (Group *)tselem->id;
+
+ if(group_select_flag(gr)) {
+ char col[4];
+ UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col);
+ col[3]= 100;
+ glColor4ubv((GLubyte *)col);
+
+ active= 2;
+ }
+ }
else if(te->idcode==ID_OB) {
Object *ob= (Object *)tselem->id;
@@ -4721,6 +4843,16 @@ static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2)
Base *base;
Scene *scene = (Scene *)poin;
Object *ob = (Object *)poin2;
+ Object *obedit= CTX_data_edit_object(C);
+
+ /* Don't allow hide an objet in edit mode,
+ * check the bug #22153 and #21609
+ */
+ if (obedit && obedit == ob) {
+ if (ob->restrictflag & OB_RESTRICT_VIEW)
+ ob->restrictflag &= ~OB_RESTRICT_VIEW;
+ return;
+ }
/* deselect objects that are invisible */
if (ob->restrictflag & OB_RESTRICT_VIEW) {
@@ -4772,11 +4904,9 @@ static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *poin2)
static void restrictbutton_modifier_cb(bContext *C, void *poin, void *poin2)
{
- Scene *scene = (Scene *)poin;
Object *ob = (Object *)poin2;
DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- object_handle_update(scene, ob);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
}
@@ -4786,6 +4916,73 @@ static void restrictbutton_bone_cb(bContext *C, void *poin, void *poin2)
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
}
+
+static int group_restrict_flag(Group *gr, int flag)
+{
+ GroupObject *gob;
+
+ for(gob= gr->gobject.first; gob; gob= gob->next) {
+ if((gob->ob->restrictflag & flag) == 0)
+ return 0;
+ }
+
+ return 1;
+}
+
+static int group_select_flag(Group *gr)
+{
+ GroupObject *gob;
+
+ for(gob= gr->gobject.first; gob; gob= gob->next)
+ if((gob->ob->flag & SELECT))
+ return 1;
+
+ return 0;
+}
+
+static void restrictbutton_gr_restrict_flag(bContext *C, void *poin, void *poin2, int flag)
+{
+ Scene *scene = (Scene *)poin;
+ GroupObject *gob;
+ Group *gr = (Group *)poin2;
+
+ if(group_restrict_flag(gr, flag)) {
+ for(gob= gr->gobject.first; gob; gob= gob->next) {
+ gob->ob->restrictflag &= ~flag;
+
+ if(flag==OB_RESTRICT_VIEW)
+ if(gob->ob->flag & SELECT)
+ ED_base_object_select(object_in_scene(gob->ob, scene), BA_DESELECT);
+ }
+ }
+ else {
+ for(gob= gr->gobject.first; gob; gob= gob->next) {
+ gob->ob->restrictflag |= flag;
+
+ if(flag==OB_RESTRICT_VIEW)
+ if((gob->ob->flag & SELECT) == 0)
+ ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT);
+ }
+ }
+}
+
+static void restrictbutton_gr_restrict_view(bContext *C, void *poin, void *poin2)
+{
+ restrictbutton_gr_restrict_flag(C, poin, poin2, OB_RESTRICT_VIEW);
+ WM_event_add_notifier(C, NC_GROUP, NULL);
+}
+static void restrictbutton_gr_restrict_select(bContext *C, void *poin, void *poin2)
+{
+ restrictbutton_gr_restrict_flag(C, poin, poin2, OB_RESTRICT_SELECT);
+ WM_event_add_notifier(C, NC_GROUP, NULL);
+}
+static void restrictbutton_gr_restrict_render(bContext *C, void *poin, void *poin2)
+{
+ restrictbutton_gr_restrict_flag(C, poin, poin2, OB_RESTRICT_RENDER);
+ WM_event_add_notifier(C, NC_GROUP, NULL);
+}
+
+
static void namebutton_cb(bContext *C, void *tsep, char *oldname)
{
SpaceOops *soops= CTX_wm_space_outliner(C);
@@ -4816,7 +5013,7 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname)
if (te->idcode == ID_LI) {
char expanded[FILE_MAXDIR + FILE_MAXFILE];
BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE);
- BLI_convertstringcode(expanded, G.sce);
+ BLI_path_abs(expanded, G.sce);
if (!BLI_exists(expanded)) {
error("This path does not exist, correct this before saving");
}
@@ -4903,29 +5100,57 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
TreeElement *te;
TreeStoreElem *tselem;
Object *ob = NULL;
+ Group *gr = NULL;
for(te= lb->first; te; te= te->next) {
tselem= TREESTORE(te);
if(te->ys+2*OL_H >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {
/* objects have toggle-able restriction flags */
if(tselem->type==0 && te->idcode==ID_OB) {
+ PointerRNA ptr;
+
ob = (Object *)tselem->id;
+ RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr);
uiBlockSetEmboss(block, UI_EMBOSSN);
- bt= uiDefIconButBitS(block, ICONTOG, OB_RESTRICT_VIEW, 0, ICON_RESTRICT_VIEW_OFF,
- (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (short)te->ys, 17, OL_H-1, &(ob->restrictflag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+ bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF,
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (short)te->ys, 17, OL_H-1,
+ &ptr, "restrict_view", -1, 0, 0, -1, -1, NULL);
uiButSetFunc(bt, restrictbutton_view_cb, scene, ob);
- bt= uiDefIconButBitS(block, ICONTOG, OB_RESTRICT_SELECT, 0, ICON_RESTRICT_SELECT_OFF,
- (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (short)te->ys, 17, OL_H-1, &(ob->restrictflag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
+ bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF,
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (short)te->ys, 17, OL_H-1,
+ &ptr, "restrict_select", -1, 0, 0, -1, -1, NULL);
uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob);
- bt= uiDefIconButBitS(block, ICONTOG, OB_RESTRICT_RENDER, 0, ICON_RESTRICT_RENDER_OFF,
- (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (short)te->ys, 17, OL_H-1, &(ob->restrictflag), 0, 0, 0, 0, "Restrict/Allow renderability");
+ bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF,
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (short)te->ys, 17, OL_H-1,
+ &ptr, "restrict_render", -1, 0, 0, -1, -1, NULL);
uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob);
uiBlockSetEmboss(block, UI_EMBOSS);
+
}
+ if(tselem->type==0 && te->idcode==ID_GR){
+ int restrict_bool;
+ gr = (Group *)tselem->id;
+
+ uiBlockSetEmboss(block, UI_EMBOSSN);
+
+ restrict_bool= group_restrict_flag(gr, OB_RESTRICT_VIEW);
+ bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_VIEW_ON : ICON_RESTRICT_VIEW_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (short)te->ys, 17, OL_H-1, 0, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+ uiButSetFunc(bt, restrictbutton_gr_restrict_view, scene, gr);
+
+ restrict_bool= group_restrict_flag(gr, OB_RESTRICT_SELECT);
+ bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_SELECT_ON : ICON_RESTRICT_SELECT_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (short)te->ys, 17, OL_H-1, 0, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
+ uiButSetFunc(bt, restrictbutton_gr_restrict_select, scene, gr);
+
+ restrict_bool= group_restrict_flag(gr, OB_RESTRICT_RENDER);
+ bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_RENDER_ON : ICON_RESTRICT_RENDER_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (short)te->ys, 17, OL_H-1, 0, 0, 0, 0, 0, "Restrict/Allow renderability");
+ uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr);
+
+ uiBlockSetEmboss(block, UI_EMBOSS);
+ }
/* scene render layers and passes have toggle-able flags too! */
else if(tselem->type==TSE_R_LAYER) {
uiBlockSetEmboss(block, UI_EMBOSSN);
@@ -4938,16 +5163,18 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
}
else if(tselem->type==TSE_R_PASS) {
int *layflag= te->directdata;
+ int passflag= 1<<tselem->nr;
+
uiBlockSetEmboss(block, UI_EMBOSSN);
- /* NOTE: tselem->nr is short! */
- bt= uiDefIconButBitI(block, ICONTOG, tselem->nr, 0, ICON_CHECKBOX_HLT-1,
+
+ bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1,
(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (short)te->ys, 17, OL_H-1, layflag, 0, 0, 0, 0, "Render this Pass");
uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
layflag++; /* is lay_xor */
- if(ELEM6(tselem->nr, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_RADIO))
- bt= uiDefIconButBitI(block, TOG, tselem->nr, 0, (*layflag & tselem->nr)?ICON_DOT:ICON_BLANK1,
+ if(ELEM8(passflag, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT))
+ bt= uiDefIconButBitI(block, TOG, passflag, 0, (*layflag & passflag)?ICON_DOT:ICON_BLANK1,
(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (short)te->ys, 17, OL_H-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined");
uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h
index c3a0165f945..fa3078a365b 100644
--- a/source/blender/editors/space_outliner/outliner_intern.h
+++ b/source/blender/editors/space_outliner/outliner_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -45,7 +45,8 @@ typedef struct TreeElement {
ListBase subtree;
float xs, ys; // do selection
int store_index; // offset in tree store
- short flag, index; // flag for non-saved stuff, index for data arrays
+ short flag; // flag for non-saved stuff
+ short index; // index for data arrays
short idcode; // from TreeStore id
short xend; // width of item display, for select
char *name;
@@ -98,12 +99,6 @@ typedef struct TreeElement {
#define TSE_KEYMAP 34
#define TSE_KEYMAP_ITEM 35
-/* outliner search flags */
-#define OL_FIND 0
-#define OL_FIND_CASE 1
-#define OL_FIND_COMPLETE 2
-#define OL_FIND_COMPLETE_CASE 3
-
/* button events */
#define OL_NAMEBUTTON 1
@@ -146,21 +141,5 @@ void OUTLINER_OT_keyingset_remove_selected(struct wmOperatorType *ot);
void OUTLINER_OT_drivers_add_selected(struct wmOperatorType *ot);
void OUTLINER_OT_drivers_delete_selected(struct wmOperatorType *ot);
-#if 0
-extern void outliner_mouse_event(Scene *scene, ARegion *ar, SpaceOops *soops, short event);
-extern void outliner_toggle_visible(SpaceOops *soops);
-extern void outliner_show_active(ARegion *ar, SpaceOops *soops);
-extern void outliner_show_hierarchy(Scene *scene, SpaceOops *soops);
-extern void outliner_one_level(SpaceOops *soops, int add);
-extern void outliner_select(Scene *scene, SpaceOops *soops);
-extern void outliner_toggle_selected(Scene *scene, SpaceOops *soops);
-extern void outliner_toggle_visibility(Scene *scene, SpaceOops *soops);
-extern void outliner_toggle_selectability(Scene *scene, SpaceOops *soops);
-extern void outliner_toggle_renderability(Scene *scene, SpaceOops *soops);
-extern void outliner_del(Scene *scene, SpaceOops *soops);
-extern void outliner_page_up_down(Scene *scene, ARegion *ar, SpaceOops *soops, int up);
-extern void outliner_find_panel(Scene *scene, ARegion *ar, SpaceOops *soops, int again, int flags);
-#endif
-
#endif /* ED_OUTLINER_INTERN_H */
diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c
index fdfb89d32e3..d23e950a033 100644
--- a/source/blender/editors/space_outliner/outliner_ops.c
+++ b/source/blender/editors/space_outliner/outliner_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,15 +29,12 @@
#include <stdlib.h>
#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
-#include "ED_screen.h"
#include "outliner_intern.h"
@@ -78,6 +75,8 @@ void outliner_keymap(wmKeyConfig *keyconf)
{
wmKeyMap *keymap= WM_keymap_find(keyconf, "Outliner", SPACE_OUTLINER, 0);
+ WM_keymap_add_item(keymap, "OUTLINER_OT_item_rename", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
+
RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "extend", 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", 1);
diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c
index 27d6c83cdb8..1c86eb4df70 100644
--- a/source/blender/editors/space_outliner/space_outliner.c
+++ b/source/blender/editors/space_outliner/space_outliner.c
@@ -29,16 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_color_types.h"
-#include "DNA_object_types.h"
-#include "DNA_outliner_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_vec_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -52,7 +42,6 @@
#include "BKE_texture.h"
#include "BKE_utildefines.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "WM_api.h"
@@ -61,12 +50,9 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "RNA_access.h"
-#include "RNA_types.h"
#include "outliner_intern.h"
@@ -85,11 +71,9 @@ static void outliner_main_area_draw(const bContext *C, ARegion *ar)
{
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
- float col[3];
/* clear */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
draw_outliner(C);
diff --git a/source/blender/editors/space_script/CMakeLists.txt b/source/blender/editors/space_script/CMakeLists.txt
new file mode 100644
index 00000000000..58b3affe2d4
--- /dev/null
+++ b/source/blender/editors/space_script/CMakeLists.txt
@@ -0,0 +1,40 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+IF(WITH_PYTHON)
+ SET(INC ${INC} ${PYTHON_INC} ../../python)
+ELSE(WITH_PYTHON)
+ ADD_DEFINITIONS(-DDISABLE_PYTHON)
+ENDIF(WITH_PYTHON)
+
+BLENDERLIB(bf_editor_space_script "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_script/script_edit.c b/source/blender/editors/space_script/script_edit.c
index cc90330459b..71b37e514d7 100644
--- a/source/blender/editors/space_script/script_edit.c
+++ b/source/blender/editors/space_script/script_edit.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,9 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_space_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -41,6 +38,7 @@
#include "BKE_global.h"
#include "BKE_screen.h"
#include "BKE_utildefines.h"
+#include "BKE_report.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -49,25 +47,21 @@
#include "RNA_define.h"
#include "ED_screen.h"
-#include "ED_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "script_intern.h" // own include
-
+#ifndef DISABLE_PYTHON
#include "BPY_extern.h" /* BPY_run_python_script */
+#endif
static int run_pyfile_exec(bContext *C, wmOperator *op)
{
- ARegion *ar= CTX_wm_region(C);
-
-
char path[512];
- RNA_string_get(op->ptr, "path", path);
+ RNA_string_get(op->ptr, "filepath", path);
#ifndef DISABLE_PYTHON
if(BPY_run_python_script(C, path, NULL, op->reports)) {
+ ARegion *ar= CTX_wm_region(C);
ED_region_tag_redraw(ar);
return OPERATOR_FINISHED;
}
@@ -87,6 +81,34 @@ void SCRIPT_OT_python_file_run(wmOperatorType *ot)
ot->exec= run_pyfile_exec;
ot->poll= ED_operator_areaactive;
- RNA_def_string_file_path(ot->srna, "path", "", 512, "Path", "");
+ RNA_def_string_file_path(ot->srna, "filepath", "", 512, "Path", "");
}
+
+static int script_reload_exec(bContext *C, wmOperator *op)
+{
+#ifndef DISABLE_PYTHON
+ /* TODO, this crashes on netrender and keying sets, need to look into why
+ * disable for now unless running in debug mode */
+ if(G.f & G_DEBUG) {
+ BPY_eval_string(C, "__import__('bpy').utils.load_scripts(reload_scripts=True)");
+ }
+ else {
+ BKE_reportf(op->reports, RPT_ERROR, "reloading is currently unstable, only operates in debug mode.\n");
+ return OPERATOR_CANCELLED;
+ }
+ return OPERATOR_FINISHED;
+#endif
+ return OPERATOR_CANCELLED;
+}
+
+void SCRIPT_OT_reload(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Reload Scripts";
+ ot->description= "Reload Scripts";
+ ot->idname= "SCRIPT_OT_reload";
+
+ /* api callbacks */
+ ot->exec= script_reload_exec;
+}
diff --git a/source/blender/editors/space_script/script_header.c b/source/blender/editors/space_script/script_header.c
index 2c08fd97bac..9c23d1b8131 100644
--- a/source/blender/editors/space_script/script_header.c
+++ b/source/blender/editors/space_script/script_header.c
@@ -29,10 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -45,8 +41,6 @@
#include "ED_types.h"
#include "ED_util.h"
-#include "WM_api.h"
-#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
diff --git a/source/blender/editors/space_script/script_intern.h b/source/blender/editors/space_script/script_intern.h
index c24aae600c8..ed625bb8ec6 100644
--- a/source/blender/editors/space_script/script_intern.h
+++ b/source/blender/editors/space_script/script_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -39,6 +39,7 @@ void script_operatortypes(void);
void script_keymap(struct wmKeyConfig *keyconf);
/* script_edit.c */
+void SCRIPT_OT_reload(struct wmOperatorType *ot);
void SCRIPT_OT_python_file_run(struct wmOperatorType *ot);
#endif /* ED_SCRIPT_INTERN_H */
diff --git a/source/blender/editors/space_script/script_ops.c b/source/blender/editors/space_script/script_ops.c
index e6d2990677f..15140f080e7 100644
--- a/source/blender/editors/space_script/script_ops.c
+++ b/source/blender/editors/space_script/script_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,11 +31,8 @@
#include "MEM_guardedalloc.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -45,12 +42,10 @@
#include "BKE_utildefines.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_screen.h"
#include "script_intern.h"
@@ -60,6 +55,7 @@
void script_operatortypes(void)
{
WM_operatortype_append(SCRIPT_OT_python_file_run);
+ WM_operatortype_append(SCRIPT_OT_reload);
}
void script_keymap(wmKeyConfig *keyconf)
@@ -67,6 +63,6 @@ void script_keymap(wmKeyConfig *keyconf)
wmKeyMap *keymap= WM_keymap_find(keyconf, "Script", SPACE_SCRIPT, 0);
/* TODO - this is just while we have no way to load a text datablock */
- RNA_string_set(WM_keymap_add_item(keymap, "SCRIPT_OT_python_file_run", PKEY, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0)->ptr, "path", "test.py");
+ RNA_string_set(WM_keymap_add_item(keymap, "SCRIPT_OT_python_file_run", PKEY, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0)->ptr, "filepath", "test.py");
}
diff --git a/source/blender/editors/space_script/space_script.c b/source/blender/editors/space_script/space_script.c
index 4f7c0dc364b..0aba1df47e9 100644
--- a/source/blender/editors/space_script/space_script.c
+++ b/source/blender/editors/space_script/space_script.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,10 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -44,7 +40,6 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
@@ -52,13 +47,12 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "ED_markers.h"
-
+#ifndef DISABLE_PYTHON
#include "BPY_extern.h"
+#endif
#include "script_intern.h" // own include
@@ -147,11 +141,9 @@ static void script_main_area_draw(const bContext *C, ARegion *ar)
/* draw entirely, view changes should be handled here */
SpaceScript *sscript= (SpaceScript*)CTX_wm_space_data(C);
View2D *v2d= &ar->v2d;
- float col[3];
-
+
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
diff --git a/source/blender/editors/space_sequencer/CMakeLists.txt b/source/blender/editors/space_sequencer/CMakeLists.txt
new file mode 100644
index 00000000000..383cc05b7f7
--- /dev/null
+++ b/source/blender/editors/space_sequencer/CMakeLists.txt
@@ -0,0 +1,36 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../../imbuf
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+ ../../../../intern/audaspace/intern
+)
+
+BLENDERLIB(bf_editor_space_sequencer "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index bd1053d8d77..01a99ed2b1f 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -41,18 +41,9 @@
#include "BLI_math.h"
#include "BLI_storage_types.h"
-#include "IMB_imbuf_types.h"
-#include "IMB_imbuf.h"
-#include "DNA_ipo_types.h"
-#include "DNA_curve_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_sequence_types.h"
-#include "DNA_view2d_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_sound_types.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -71,23 +62,13 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
/* for menu/popup icons etc etc*/
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "ED_anim_api.h"
-#include "ED_space_api.h"
-#include "ED_types.h"
#include "ED_screen.h"
-#include "ED_util.h"
-#include "ED_fileselect.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
#include "BKE_sound.h"
@@ -105,13 +86,11 @@
static void sequencer_generic_props__internal(wmOperatorType *ot, int flag)
{
- RNA_def_string(ot->srna, "name", "", MAX_ID_NAME-2, "Name", "Name of the new sequence strip");
-
if(flag & SEQPROP_STARTFRAME)
- RNA_def_int(ot->srna, "start_frame", 0, INT_MIN, INT_MAX, "Start Frame", "Start frame of the sequence strip", INT_MIN, INT_MAX);
+ RNA_def_int(ot->srna, "frame_start", 0, INT_MIN, INT_MAX, "Start Frame", "Start frame of the sequence strip", INT_MIN, INT_MAX);
if(flag & SEQPROP_ENDFRAME)
- RNA_def_int(ot->srna, "end_frame", 0, INT_MIN, INT_MAX, "End Frame", "End frame for the color strip", INT_MIN, INT_MAX); /* not useual since most strips have a fixed length */
+ RNA_def_int(ot->srna, "frame_end", 0, INT_MIN, INT_MAX, "End Frame", "End frame for the color strip", INT_MIN, INT_MAX); /* not useual since most strips have a fixed length */
RNA_def_int(ot->srna, "channel", 1, 1, MAXSEQ, "Channel", "Channel to place this strip into", 1, MAXSEQ);
@@ -121,6 +100,20 @@ static void sequencer_generic_props__internal(wmOperatorType *ot, int flag)
RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", "");
}
+static void sequencer_generic_invoke_path__internal(bContext *C, wmOperator *op, const char *identifier)
+{
+ if(RNA_struct_find_property(op->ptr, identifier)) {
+ Scene *scene= CTX_data_scene(C);
+ Sequence *last_seq= seq_active_get(scene);
+ if(last_seq && last_seq->strip && SEQ_HAS_PATH(last_seq)) {
+ char path[sizeof(last_seq->strip->dir)];
+ BLI_strncpy(path, last_seq->strip->dir, sizeof(path));
+ BLI_path_abs(path, G.sce);
+ RNA_string_set(op->ptr, identifier, path);
+ }
+ }
+}
+
static void sequencer_generic_invoke_xy__internal(bContext *C, wmOperator *op, wmEvent *event, int flag)
{
ARegion *ar= CTX_wm_region(C);
@@ -136,29 +129,36 @@ static void sequencer_generic_invoke_xy__internal(bContext *C, wmOperator *op, w
UI_view2d_region_to_view(v2d, mval[0], mval[1], &mval_v2d[0], &mval_v2d[1]);
RNA_int_set(op->ptr, "channel", (int)mval_v2d[1]+0.5f);
- RNA_int_set(op->ptr, "start_frame", (int)mval_v2d[0]);
-
- if ((flag & SEQPROP_ENDFRAME) && RNA_property_is_set(op->ptr, "end_frame")==0)
- RNA_int_set(op->ptr, "end_frame", (int)mval_v2d[0] + 25); // XXX arbitary but ok for now.
+ RNA_int_set(op->ptr, "frame_start", (int)mval_v2d[0]);
+ if ((flag & SEQPROP_ENDFRAME) && RNA_property_is_set(op->ptr, "frame_end")==0)
+ RNA_int_set(op->ptr, "frame_end", (int)mval_v2d[0] + 25); // XXX arbitary but ok for now.
+
+ sequencer_generic_invoke_path__internal(C, op, "filepath");
+ sequencer_generic_invoke_path__internal(C, op, "directory");
}
static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op)
{
+ int is_file= -1;
memset(seq_load, 0, sizeof(SeqLoadInfo));
- seq_load->start_frame= RNA_int_get(op->ptr, "start_frame");
+ seq_load->start_frame= RNA_int_get(op->ptr, "frame_start");
seq_load->end_frame= seq_load->start_frame; /* un-set */
seq_load->channel= RNA_int_get(op->ptr, "channel");
seq_load->len= 1; // images only, if endframe isnt set!
- RNA_string_get(op->ptr, "name", seq_load->name+2);
-
- RNA_string_get(op->ptr, "path", seq_load->path); /* full path, file is set by the caller */
+ if(RNA_struct_find_property(op->ptr, "filepath")) {
+ RNA_string_get(op->ptr, "filepath", seq_load->path); /* full path, file is set by the caller */
+ is_file= 1;
+ } else if (RNA_struct_find_property(op->ptr, "directory")) {
+ RNA_string_get(op->ptr, "directory", seq_load->path); /* full path, file is set by the caller */
+ is_file= 0;
+ }
- if (RNA_struct_find_property(op->ptr, "end_frame")) {
- seq_load->end_frame = RNA_int_get(op->ptr, "end_frame");
+ if (RNA_struct_find_property(op->ptr, "frame_end")) {
+ seq_load->end_frame = RNA_int_get(op->ptr, "frame_end");
}
if (RNA_struct_find_property(op->ptr, "replace_sel") && RNA_boolean_get(op->ptr, "replace_sel"))
@@ -172,6 +172,20 @@ static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op)
/* always use this for ops */
seq_load->flag |= SEQ_LOAD_FRAME_ADVANCE;
+
+
+ if(is_file==1) {
+ BLI_strncpy(seq_load->name, BLI_path_basename(seq_load->path), sizeof(seq_load->name));
+ }
+ else if(RNA_struct_find_property(op->ptr, "files")) {
+ /* used for image strip */
+ /* best guess, first images name */
+ RNA_BEGIN(op->ptr, itemptr, "files") {
+ RNA_string_get(&itemptr, "name", seq_load->name);
+ break;
+ }
+ RNA_END;
+ }
}
/* add scene operator */
@@ -188,10 +202,10 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
int start_frame, channel; /* operator props */
- start_frame= RNA_int_get(op->ptr, "start_frame");
+ start_frame= RNA_int_get(op->ptr, "frame_start");
channel= RNA_int_get(op->ptr, "channel");
- sce_seq= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "type"));
+ sce_seq= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "scene"));
if (sce_seq==NULL) {
BKE_report(op->reports, RPT_ERROR, "Scene not found");
@@ -199,9 +213,11 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
}
seq = alloc_sequence(ed->seqbasep, start_frame, channel);
-
seq->type= SEQ_SCENE;
+ seq->blend_mode= SEQ_CROSS; /* so alpha adjustment fade to the strip below */
+
seq->scene= sce_seq;
+ seq->sfra= sce_seq->r.sfra;
/* basic defaults */
seq->strip= strip= MEM_callocN(sizeof(Strip), "strip");
@@ -210,17 +226,17 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
- if(RNA_property_is_set(op->ptr, "name"))
- RNA_string_get(op->ptr, "name", seq->name+2);
- else
- strcpy(seq->name+2, sce_seq->id.name+2);
-
+ strcpy(seq->name+2, sce_seq->id.name+2);
+ seqbase_unique_name_recursive(&ed->seqbase, seq);
+
+ seq->scene_sound = sound_scene_add_scene_sound(scene, seq, start_frame, start_frame + strip->len, 0);
+
calc_sequence_disp(scene, seq);
sort_seq(scene);
if (RNA_boolean_get(op->ptr, "replace_sel")) {
deselect_all_seq(scene);
- active_seq_set(scene, seq);
+ seq_active_set(scene, seq);
seq->flag |= SELECT;
}
@@ -232,6 +248,11 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_scene_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ if(!ED_operator_sequencer_active(C)) {
+ BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
+ return OPERATOR_CANCELLED;
+ }
+
sequencer_generic_invoke_xy__internal(C, op, event, 0);
return sequencer_add_scene_strip_exec(C, op);
// needs a menu
@@ -252,14 +273,15 @@ void SEQUENCER_OT_scene_strip_add(struct wmOperatorType *ot)
ot->invoke= sequencer_add_scene_strip_invoke;
ot->exec= sequencer_add_scene_strip_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME);
- prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, 0, "Type", "");
+ prop= RNA_def_enum(ot->srna, "scene", DummyRNA_NULL_items, 0, "Scene", "");
RNA_def_enum_funcs(prop, RNA_scene_itemf);
+ ot->prop= prop;
}
static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoadFunc seq_load_func)
@@ -282,7 +304,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad
char dir_only[FILE_MAX];
char file_only[FILE_MAX];
- BLI_split_dirfile_basic(seq_load.path, dir_only, NULL);
+ BLI_split_dirfile(seq_load.path, dir_only, NULL);
RNA_BEGIN(op->ptr, itemptr, "files") {
RNA_string_get(&itemptr, "name", file_only);
@@ -318,9 +340,20 @@ static int sequencer_add_movie_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_movie_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
+{
+ if(!ED_operator_sequencer_active(C)) {
+ BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
+ return OPERATOR_CANCELLED;
+ }
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
sequencer_generic_invoke_xy__internal(C, op, event, 0);
- return WM_operator_filesel(C, op, event);
+
+ WM_event_add_fileselect(C, op);
+ return OPERATOR_RUNNING_MODAL;
+
//return sequencer_add_movie_strip_exec(C, op);
}
@@ -337,12 +370,12 @@ void SEQUENCER_OT_movie_strip_add(struct wmOperatorType *ot)
ot->invoke= sequencer_add_movie_strip_invoke;
ot->exec= sequencer_add_movie_strip_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_FILES);
RNA_def_boolean(ot->srna, "sound", TRUE, "Sound", "Load sound with the movie");
}
@@ -355,9 +388,20 @@ static int sequencer_add_sound_strip_exec(bContext *C, wmOperator *op)
}
static int sequencer_add_sound_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
+{
+ if(!ED_operator_sequencer_active(C)) {
+ BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
+ return OPERATOR_CANCELLED;
+ }
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
sequencer_generic_invoke_xy__internal(C, op, event, 0);
- return WM_operator_filesel(C, op, event);
+
+ WM_event_add_fileselect(C, op);
+ return OPERATOR_RUNNING_MODAL;
+
//return sequencer_add_sound_strip_exec(C, op);
}
@@ -374,12 +418,12 @@ void SEQUENCER_OT_sound_strip_add(struct wmOperatorType *ot)
ot->invoke= sequencer_add_sound_strip_invoke;
ot->exec= sequencer_add_sound_strip_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_FILES);
RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory.");
}
@@ -403,26 +447,26 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
seq_load.len= RNA_property_collection_length(op->ptr, RNA_struct_find_property(op->ptr, "files"));
if(seq_load.len==0)
- seq_load.len= 1;
+ return OPERATOR_CANCELLED;
if(seq_load.flag & SEQ_LOAD_REPLACE_SEL)
deselect_all_seq(scene);
-
+
/* main adding function */
seq= sequencer_add_image_strip(C, ed->seqbasep, &seq_load);
strip= seq->strip;
se= strip->stripdata;
- if(seq_load.len > 1) {
- RNA_BEGIN(op->ptr, itemptr, "files") {
- RNA_string_get(&itemptr, "name", se->name);
- se++;
- }
- RNA_END;
+ RNA_BEGIN(op->ptr, itemptr, "files") {
+ char *filename= RNA_string_get_alloc(&itemptr, "name", NULL, 0);
+ BLI_strncpy(se->name, filename, sizeof(se->name));
+ MEM_freeN(filename);
+ se++;
}
- else {
- BLI_split_dirfile_basic(seq_load.path, NULL, se->name);
+ RNA_END;
+
+ if(seq_load.len == 1) {
if(seq_load.start_frame < seq_load.end_frame) {
seq->endstill= seq_load.end_frame - seq_load.start_frame;
}
@@ -442,8 +486,19 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_image_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ if(!ED_operator_sequencer_active(C)) {
+ BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
+ return OPERATOR_CANCELLED;
+ }
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
sequencer_generic_invoke_xy__internal(C, op, event, SEQPROP_ENDFRAME);
- return WM_operator_filesel(C, op, event);
+
+ WM_event_add_fileselect(C, op);
+ return OPERATOR_RUNNING_MODAL;
+
//return sequencer_add_image_strip_exec(C, op);
}
@@ -460,12 +515,12 @@ void SEQUENCER_OT_image_strip_add(struct wmOperatorType *ot)
ot->invoke= sequencer_add_image_strip_invoke;
ot->exec= sequencer_add_image_strip_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH);
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME|SEQPROP_FILES);
}
@@ -486,13 +541,13 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
Sequence *seq1, *seq2, *seq3;
char *error_msg;
- start_frame= RNA_int_get(op->ptr, "start_frame");
- end_frame= RNA_int_get(op->ptr, "end_frame");
+ start_frame= RNA_int_get(op->ptr, "frame_start");
+ end_frame= RNA_int_get(op->ptr, "frame_end");
channel= RNA_int_get(op->ptr, "channel");
type= RNA_enum_get(op->ptr, "type");
- // XXX We need unique names and move to invoke
+ // XXX move to invoke
if(!seq_effect_find_selected(scene, NULL, type, &seq1, &seq2, &seq3, &error_msg)) {
BKE_report(op->reports, RPT_ERROR, error_msg);
return OPERATOR_CANCELLED;
@@ -508,11 +563,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
seq = alloc_sequence(ed->seqbasep, start_frame, channel);
seq->type= type;
- if(RNA_property_is_set(op->ptr, "name"))
- RNA_string_get(op->ptr, "name", seq->name+2);
- else
- strcpy(seq->name+2, give_seqname(seq));
-
+ BLI_strncpy(seq->name+2, give_seqname(seq), sizeof(seq->name)-2);
seqbase_unique_name_recursive(&ed->seqbase, seq);
sh = get_sequence_effect(seq);
@@ -541,7 +592,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
if (seq->type==SEQ_PLUGIN) {
char path[FILE_MAX];
- RNA_string_get(op->ptr, "path", path);
+ RNA_string_get(op->ptr, "filepath", path);
sh.init_plugin(seq, path);
@@ -555,6 +606,18 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
else if (seq->type==SEQ_COLOR) {
SolidColorVars *colvars= (SolidColorVars *)seq->effectdata;
RNA_float_get_array(op->ptr, "color", colvars->col);
+ seq->blend_mode= SEQ_CROSS; /* so alpha adjustment fade to the strip below */
+
+ }
+
+ // XXX, this conflicts with giving a channel with invoke, perhaps we should have an active channel
+ // but for now this is much more usable
+ if(seq->seq1 || seq->seq2 || seq->seq3) {
+ int chan= MAX3( seq->seq1 ? seq->seq1->machine : 0,
+ seq->seq2 ? seq->seq2->machine : 0,
+ seq->seq3 ? seq->seq3->machine : 0);
+ if(chan < MAXSEQ)
+ seq->machine= chan;
}
if(seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene);
@@ -568,7 +631,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
if (RNA_boolean_get(op->ptr, "replace_sel")) {
deselect_all_seq(scene);
- active_seq_set(scene, seq);
+ seq_active_set(scene, seq);
seq->flag |= SELECT;
}
@@ -581,9 +644,18 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
/* add color */
static int sequencer_add_effect_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ if(!ED_operator_sequencer_active(C)) {
+ BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
+ return OPERATOR_CANCELLED;
+ }
+
sequencer_generic_invoke_xy__internal(C, op, event, SEQPROP_ENDFRAME);
if (RNA_property_is_set(op->ptr, "type") && RNA_enum_get(op->ptr, "type")==SEQ_PLUGIN) {
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
/* only plugins need the file selector */
return WM_operator_filesel(C, op, event);
}
@@ -603,12 +675,12 @@ void SEQUENCER_OT_effect_strip_add(struct wmOperatorType *ot)
ot->invoke= sequencer_add_effect_strip_invoke;
ot->exec= sequencer_add_effect_strip_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME);
RNA_def_enum(ot->srna, "type", sequencer_prop_effect_types, SEQ_CROSS, "Type", "Sequencer effect type");
RNA_def_float_vector(ot->srna, "color", 3, NULL, 0.0f, 1.0f, "Color", "Initialize the strip with this color (only used when type='COLOR')", 0.0f, 1.0f);
diff --git a/source/blender/editors/space_sequencer/sequencer_buttons.c b/source/blender/editors/space_sequencer/sequencer_buttons.c
index d6b52e83090..a2aa7e649b9 100644
--- a/source/blender/editors/space_sequencer/sequencer_buttons.c
+++ b/source/blender/editors/space_sequencer/sequencer_buttons.c
@@ -27,11 +27,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -43,21 +38,14 @@
#include "BKE_screen.h"
#include "BKE_utildefines.h"
-#include "IMB_imbuf.h"
-#include "IMB_imbuf_types.h"
#include "ED_screen.h"
-#include "ED_sequencer.h"
-#include "ED_util.h"
-#include "RNA_access.h"
#include "WM_api.h"
#include "WM_types.h"
#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "sequencer_intern.h"
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index c1a023d0009..4f52a17f623 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -35,12 +35,9 @@
#include "IMB_imbuf_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_sequence_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_view2d_types.h"
#include "DNA_userdef_types.h"
#include "BKE_context.h"
@@ -51,7 +48,6 @@
#include "BKE_utildefines.h"
#include "BKE_sound.h"
-#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "BIF_gl.h"
@@ -59,8 +55,6 @@
#include "ED_anim_api.h"
#include "ED_markers.h"
-#include "ED_space_api.h"
-#include "ED_sequencer.h"
#include "ED_types.h"
#include "UI_interface.h"
@@ -132,6 +126,7 @@ static void get_seq_color3ubv(Scene *curscene, Sequence *seq, char *col)
case SEQ_ALPHAUNDER:
case SEQ_OVERDROP:
case SEQ_GLOW:
+ case SEQ_MULTICAM:
/* slightly offset hue to distinguish different effects */
UI_GetThemeColor3ubv(TH_SEQ_EFFECT, col);
@@ -205,46 +200,86 @@ static void drawseqwave(Sequence *seq, float x1, float y1, float x2, float y2, f
}
}
+static void drawmeta_stipple(int value)
+{
+ if(value) {
+ glEnable(GL_POLYGON_STIPPLE);
+ glPolygonStipple(stipple_halftone);
+
+ glEnable(GL_LINE_STIPPLE);
+ glLineStipple(1, 0x8888);
+ }
+ else {
+ glDisable(GL_POLYGON_STIPPLE);
+ glDisable(GL_LINE_STIPPLE);
+ }
+}
+
static void drawmeta_contents(Scene *scene, Sequence *seqm, float x1, float y1, float x2, float y2)
{
/* Note, this used to use WHILE_SEQ, but it messes up the seq->depth value, (needed by transform when doing overlap checks)
* so for now, just use the meta's immediate children, could be fixed but its only drawing - Campbell */
Sequence *seq;
- float dx;
- int nr;
- char col[3];
-
- nr= BLI_countlist(&seqm->seqbase);
+ char col[4];
- dx= (x2-x1)/nr;
+ int chan_min= MAXSEQ;
+ int chan_max= 0;
+ int chan_range= 0;
+ float draw_range= y2 - y1;
+ float draw_height;
- if (seqm->flag & SEQ_MUTE) {
- glEnable(GL_POLYGON_STIPPLE);
- glPolygonStipple(stipple_halftone);
-
- glEnable(GL_LINE_STIPPLE);
- glLineStipple(1, 0x8888);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ if(seqm->flag & SEQ_MUTE)
+ drawmeta_stipple(1);
+
+ for (seq= seqm->seqbase.first; seq; seq= seq->next) {
+ chan_min= MIN2(chan_min, seq->machine);
+ chan_max= MAX2(chan_max, seq->machine);
}
-
+
+ chan_range= (chan_max - chan_min) + 1;
+ draw_height= draw_range / chan_range;
+
+ col[3]= 196; /* alpha, used for all meta children */
+
for (seq= seqm->seqbase.first; seq; seq= seq->next) {
- get_seq_color3ubv(scene, seq, col);
-
- glColor3ubv((GLubyte *)col);
+ if((seq->startdisp > x2 || seq->enddisp < x1) == 0) {
+ float y_chan= (seq->machine - chan_min) / (float)(chan_range) * draw_range;
+ float x1_chan= seq->startdisp;
+ float x2_chan= seq->enddisp;
+ float y1_chan, y2_chan;
- glRectf(x1, y1, x1+0.9*dx, y2);
-
- UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -30);
- glColor3ubv((GLubyte *)col);
+ if((seqm->flag & SEQ_MUTE) == 0 && (seq->flag & SEQ_MUTE))
+ drawmeta_stipple(1);
- fdrawbox(x1, y1, x1+0.9*dx, y2);
-
- x1+= dx;
+ get_seq_color3ubv(scene, seq, col);
+
+ glColor4ubv((GLubyte *)col);
+
+ /* clamp within parent sequence strip bounds */
+ if(x1_chan < x1) x1_chan= x1;
+ if(x2_chan > x2) x2_chan= x2;
+
+ y1_chan= y1 + y_chan + (draw_height * SEQ_STRIP_OFSBOTTOM);
+ y2_chan= y1 + y_chan + (draw_height * SEQ_STRIP_OFSTOP);
+
+ glRectf(x1_chan, y1_chan, x2_chan, y2_chan);
+
+ UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -30);
+ glColor4ubv((GLubyte *)col);
+ fdrawbox(x1_chan, y1_chan, x2_chan, y2_chan);
+
+ if((seqm->flag & SEQ_MUTE) == 0 && (seq->flag & SEQ_MUTE))
+ drawmeta_stipple(0);
+ }
}
+
+ if (seqm->flag & SEQ_MUTE)
+ drawmeta_stipple(0);
- if (seqm->flag & SEQ_MUTE) {
- glDisable(GL_POLYGON_STIPPLE);
- glDisable(GL_LINE_STIPPLE);
- }
+ glDisable(GL_BLEND);
}
/* draw a handle, for each end of a sequence strip */
@@ -330,11 +365,11 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, float pixelx, short dire
}
}
-static void draw_seq_extensions(Scene *scene, SpaceSeq *sseq, Sequence *seq)
+static void draw_seq_extensions(Scene *scene, ARegion *ar, SpaceSeq *sseq, Sequence *seq)
{
float x1, x2, y1, y2, pixely, a;
char col[3], blendcol[3];
- View2D *v2d;
+ View2D *v2d= &ar->v2d;
if(seq->type >= SEQ_EFFECT) return;
@@ -343,8 +378,7 @@ static void draw_seq_extensions(Scene *scene, SpaceSeq *sseq, Sequence *seq)
y1= seq->machine+SEQ_STRIP_OFSBOTTOM;
y2= seq->machine+SEQ_STRIP_OFSTOP;
-
- v2d = &sseq->v2d;
+
pixely = (v2d->cur.ymax - v2d->cur.ymin)/(v2d->mask.ymax - v2d->mask.ymin);
blendcol[0] = blendcol[1] = blendcol[2] = 120;
@@ -438,40 +472,49 @@ static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float
{
rctf rect;
char str[32 + FILE_MAXDIR+FILE_MAXFILE];
+ const char *name= seq->name+2;
- if(seq->name[2]) {
- sprintf(str, "%d | %s: %s", seq->len, give_seqname(seq), seq->name+2);
+ if(name[0]=='\0')
+ name= give_seqname(seq);
+
+ if(seq->type == SEQ_META) {
+ sprintf(str, "%d | %s", seq->len, name);
}
- else{
- if(seq->type == SEQ_META) {
- sprintf(str, "%d | %s", seq->len, give_seqname(seq));
- }
- else if(seq->type == SEQ_SCENE) {
- if(seq->scene) sprintf(str, "%d | %s: %s", seq->len, give_seqname(seq), seq->scene->id.name+2);
- else sprintf(str, "%d | %s", seq->len, give_seqname(seq));
-
- }
- else if(seq->type == SEQ_IMAGE) {
- sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name);
- }
- else if(seq->type & SEQ_EFFECT) {
- int can_float = (seq->type != SEQ_PLUGIN)
- || (seq->plugin && seq->plugin->version >= 4);
-
- if(seq->seq3!=seq->seq2 && seq->seq1!=seq->seq3)
- sprintf(str, "%d | %s: %d>%d (use %d)%s", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine, seq->seq3->machine, can_float ? "" : " No float, upgrade plugin!");
- else if (seq->seq1 && seq->seq2)
- sprintf(str, "%d | %s: %d>%d%s", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine, can_float ? "" : " No float, upgrade plugin!");
- else
- sprintf(str, "%d | %s", seq->len, give_seqname(seq));
+ else if(seq->type == SEQ_SCENE) {
+ if(seq->scene) {
+ if(seq->scene_camera) {
+ sprintf(str, "%d | %s: %s (%s)", seq->len, name, seq->scene->id.name+2, ((ID *)seq->scene_camera)->name+2);
+ } else {
+ sprintf(str, "%d | %s: %s", seq->len, name, seq->scene->id.name+2);
+ }
}
- else if (seq->type == SEQ_SOUND) {
- sprintf(str, "%d | %s", seq->len, seq->sound->name);
- }
- else if (seq->type == SEQ_MOVIE) {
- sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name);
+ else {
+ sprintf(str, "%d | %s", seq->len, name);
}
}
+ else if(seq->type == SEQ_MULTICAM) {
+ sprintf(str, "Cam: %d", seq->multicam_source);
+ }
+ else if(seq->type == SEQ_IMAGE) {
+ sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name);
+ }
+ else if(seq->type & SEQ_EFFECT) {
+ int can_float = (seq->type != SEQ_PLUGIN)
+ || (seq->plugin && seq->plugin->version >= 4);
+
+ if(seq->seq3!=seq->seq2 && seq->seq1!=seq->seq3)
+ sprintf(str, "%d | %s: %d>%d (use %d)%s", seq->len, name, seq->seq1->machine, seq->seq2->machine, seq->seq3->machine, can_float ? "" : " No float, upgrade plugin!");
+ else if (seq->seq1 && seq->seq2)
+ sprintf(str, "%d | %s: %d>%d%s", seq->len, name, seq->seq1->machine, seq->seq2->machine, can_float ? "" : " No float, upgrade plugin!");
+ else
+ sprintf(str, "%d | %s", seq->len, name);
+ }
+ else if (seq->type == SEQ_SOUND) {
+ sprintf(str, "%d | %s", seq->len, seq->sound->name);
+ }
+ else if (seq->type == SEQ_MOVIE) {
+ sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name);
+ }
if(seq->flag & SELECT){
cpack(0xFFFFFF);
@@ -581,7 +624,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, SpaceSeq *sseq, Sequence *
/* draw additional info and controls */
if (!is_single_image)
- draw_seq_extensions(scene, sseq, seq);
+ draw_seq_extensions(scene, ar, sseq, seq);
draw_seq_handle(v2d, seq, pixelx, SEQ_LEFTHANDLE);
draw_seq_handle(v2d, seq, pixelx, SEQ_RIGHTHANDLE);
@@ -615,13 +658,12 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, SpaceSeq *sseq, Sequence *
glDisable(GL_LINE_STIPPLE);
}
+ if(seq->type==SEQ_META) drawmeta_contents(scene, seq, x1, y1, x2, y2);
+
/* calculate if seq is long enough to print a name */
x1= seq->startdisp+seq->handsize;
x2= seq->enddisp-seq->handsize;
- /* but first the contents of a meta */
- if(seq->type==SEQ_META) drawmeta_contents(scene, seq, x1, y1+0.15, x2, y2-0.15);
-
/* info text on the strip */
if(x1<v2d->cur.xmin) x1= v2d->cur.xmin;
else if(x1>v2d->cur.xmax) x1= v2d->cur.xmax;
@@ -647,7 +689,7 @@ void set_special_seq_update(int val)
else special_seq_update= 0;
}
-void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq)
+void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq, int cfra, int frame_ofs)
{
extern void gl_round_box(int mode, float minx, float miny, float maxx, float maxy, float rad);
struct ImBuf *ibuf;
@@ -678,14 +720,19 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
recty = viewrecty + 0.5f;
if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
- viewrectx *= (float)scene->r.xasp / (float)scene->r.yasp;
+ viewrectx *= scene->r.xasp / scene->r.yasp;
viewrectx /= proxy_size / 100.0;
viewrecty /= proxy_size / 100.0;
}
- /* XXX TODO: take color from theme */
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
+ if(frame_ofs == 0) {
+ /* XXX TODO: take color from theme */
+ glClearColor(0.0, 0.0, 0.0, 0.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ }
+
+ /* without this colors can flicker from previous opengl state */
+ glColor4ub(255, 255, 255, 255);
UI_view2d_totRect_set(v2d, viewrectx + 0.5f, viewrecty + 0.5f);
UI_view2d_curRect_validate(v2d);
@@ -700,13 +747,13 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
else {
recursive= 1;
if (special_seq_update) {
- ibuf= give_ibuf_seq_direct(scene, rectx, recty, (scene->r.cfra), proxy_size, special_seq_update);
+ ibuf= give_ibuf_seq_direct(scene, rectx, recty, cfra + frame_ofs, proxy_size, special_seq_update);
}
else if (!U.prefetchframes) { // XXX || (G.f & G_PLAYANIM) == 0) {
- ibuf= (ImBuf *)give_ibuf_seq(scene, rectx, recty, (scene->r.cfra), sseq->chanshown, proxy_size);
+ ibuf= (ImBuf *)give_ibuf_seq(scene, rectx, recty, cfra + frame_ofs, sseq->chanshown, proxy_size);
}
else {
- ibuf= (ImBuf *)give_ibuf_seq_threaded(scene, rectx, recty, (scene->r.cfra), sseq->chanshown, proxy_size);
+ ibuf= (ImBuf *)give_ibuf_seq_threaded(scene, rectx, recty, cfra + frame_ofs, sseq->chanshown, proxy_size);
}
recursive= 0;
@@ -750,11 +797,6 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
}
if(ibuf->rect_float && ibuf->rect==NULL) {
- if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) {
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
- } else {
- ibuf->profile = IB_PROFILE_NONE;
- }
IMB_rect_from_float(ibuf);
}
@@ -771,11 +813,26 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, ibuf->x, ibuf->y, 0, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0f, 0.0f); glVertex2f(v2d->tot.xmin, v2d->tot.ymin);
- glTexCoord2f(0.0f, 1.0f);glVertex2f(v2d->tot.xmin, v2d->tot.ymax);
+ glBegin(GL_QUADS);
+
+ if(frame_ofs) {
+ rctf tot_clip;
+ tot_clip.xmin= v2d->tot.xmin + (ABS(v2d->tot.xmax - v2d->tot.xmin) * scene->ed->over_border.xmin);
+ tot_clip.ymin= v2d->tot.ymin + (ABS(v2d->tot.ymax - v2d->tot.ymin) * scene->ed->over_border.ymin);
+ tot_clip.xmax= v2d->tot.xmin + (ABS(v2d->tot.xmax - v2d->tot.xmin) * scene->ed->over_border.xmax);
+ tot_clip.ymax= v2d->tot.ymin + (ABS(v2d->tot.ymax - v2d->tot.ymin) * scene->ed->over_border.ymax);
+
+ glTexCoord2f(scene->ed->over_border.xmin, scene->ed->over_border.ymin);glVertex2f(tot_clip.xmin, tot_clip.ymin);
+ glTexCoord2f(scene->ed->over_border.xmin, scene->ed->over_border.ymax);glVertex2f(tot_clip.xmin, tot_clip.ymax);
+ glTexCoord2f(scene->ed->over_border.xmax, scene->ed->over_border.ymax);glVertex2f(tot_clip.xmax, tot_clip.ymax);
+ glTexCoord2f(scene->ed->over_border.xmax, scene->ed->over_border.ymin);glVertex2f(tot_clip.xmax, tot_clip.ymin);
+ }
+ else {
+ glTexCoord2f(0.0f, 0.0f);glVertex2f(v2d->tot.xmin, v2d->tot.ymin);
+ glTexCoord2f(0.0f, 1.0f);glVertex2f(v2d->tot.xmin, v2d->tot.ymax);
glTexCoord2f(1.0f, 1.0f);glVertex2f(v2d->tot.xmax, v2d->tot.ymax);
- glTexCoord2f(1.0f, 0.0f);glVertex2f(v2d->tot.xmax, v2d->tot.ymin);
+ glTexCoord2f(1.0f, 0.0f);glVertex2f(v2d->tot.xmax, v2d->tot.ymin);
+ }
glEnd( );
glBindTexture(GL_TEXTURE_2D, last_texid);
glDisable(GL_TEXTURE_2D);
@@ -783,7 +840,7 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
/* safety border */
if (sseq->mainb == SEQ_DRAW_IMG_IMBUF &&
- (sseq->flag & SEQ_DRAW_SAFE_MARGINS) != 0) {
+ (sseq->flag & SEQ_DRAW_SAFE_MARGINS) != 0) {
float fac= 0.1;
float x1 = v2d->tot.xmin;
float y1 = v2d->tot.ymin;
@@ -820,7 +877,7 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
/* draw grease-pencil (screen aligned) */
// if (sseq->flag & SEQ_DRAW_GPENCIL)
-// XXX draw_gpencil_2dview(sa, 0);
+// XXX draw_gpencil_view2d(sa, 0);
/* ortho at pixel level */
UI_view2d_view_restore(C);
@@ -898,7 +955,7 @@ static void draw_seq_strips(const bContext *C, Editing *ed, ARegion *ar)
Scene *scene= CTX_data_scene(C);
SpaceSeq *sseq= CTX_wm_space_seq(C);
View2D *v2d= &ar->v2d;
- Sequence *last_seq = active_seq_get(scene);
+ Sequence *last_seq = seq_active_get(scene);
int sel = 0, j;
float pixelx = (v2d->cur.xmax - v2d->cur.xmin)/(v2d->mask.xmax - v2d->mask.xmin);
@@ -930,6 +987,33 @@ static void draw_seq_strips(const bContext *C, Editing *ed, ARegion *ar)
draw_seq_strip(scene, ar, sseq, last_seq, 120, pixelx);
}
+static void seq_draw_sfra_efra(const bContext *C, SpaceSeq *sseq, ARegion *ar)
+{
+ View2D *v2d= UI_view2d_fromcontext(C);
+ Scene *scene= CTX_data_scene(C);
+
+ glEnable(GL_BLEND);
+
+ /* draw darkened area outside of active timeline
+ * frame range used is preview range or scene range */
+ UI_ThemeColorShadeAlpha(TH_BACK, -25, -100);
+
+ if (PSFRA < PEFRA) {
+ glRectf(v2d->cur.xmin, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax);
+ glRectf((float)PEFRA, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax);
+ }
+ else {
+ glRectf(v2d->cur.xmin, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax);
+ }
+
+ UI_ThemeColorShade(TH_BACK, -60);
+ /* thin lines where the actual frames are */
+ fdrawline((float)PSFRA, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax);
+ fdrawline((float)PEFRA, v2d->cur.ymin, (float)PEFRA, v2d->cur.ymax);
+
+ glDisable(GL_BLEND);
+}
+
/* Draw Timeline/Strip Editor Mode for Sequencer */
void draw_timeline_seq(const bContext *C, ARegion *ar)
{
@@ -963,7 +1047,8 @@ void draw_timeline_seq(const bContext *C, ARegion *ar)
/* regular grid-pattern over the rest of the view (i.e. frame grid lines) */
UI_view2d_constant_grid_draw(C, v2d);
-
+
+ seq_draw_sfra_efra(C, sseq, ar);
/* sequence strips (if there is data available to be drawn) */
if (ed) {
@@ -987,6 +1072,19 @@ void draw_timeline_seq(const bContext *C, ARegion *ar)
/* preview range */
UI_view2d_view_ortho(C, v2d);
ANIM_draw_previewrange(C, v2d);
+
+ /* overlap playhead */
+ if(scene->ed && scene->ed->over_flag & SEQ_EDIT_OVERLAY_SHOW) {
+ int cfra_over= (scene->ed->over_flag & SEQ_EDIT_OVERLAY_ABS) ? scene->ed->over_cfra : scene->r.cfra + scene->ed->over_ofs;
+ glColor3f(0.2, 0.2, 0.2);
+ // glRectf(cfra_over, v2d->cur.ymin, scene->ed->over_ofs + scene->r.cfra + 1, v2d->cur.ymax);
+
+ glBegin(GL_LINES);
+ glVertex2f(cfra_over, v2d->cur.ymin);
+ glVertex2f(cfra_over, v2d->cur.ymax);
+ glEnd();
+
+ }
/* reset view matrix */
UI_view2d_view_restore(C);
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index ce8d99da3a9..d3d2fd7e220 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -42,18 +42,10 @@
#include "BLI_math.h"
#include "BLI_storage_types.h"
-#include "IMB_imbuf_types.h"
-#include "IMB_imbuf.h"
#include "DNA_ipo_types.h"
-#include "DNA_curve_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_sequence_types.h"
-#include "DNA_view2d_types.h"
#include "DNA_userdef_types.h"
-#include "DNA_sound_types.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -70,37 +62,24 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "RNA_access.h"
#include "RNA_define.h"
/* for menu/popup icons etc etc*/
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "ED_anim_api.h"
-#include "ED_space_api.h"
-#include "ED_types.h"
#include "ED_screen.h"
#include "ED_transform.h"
-#include "ED_util.h"
#include "ED_sequencer.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
/* own include */
#include "sequencer_intern.h"
-/* XXX */
-//static Sequence *_last_seq=0;
-//static int _last_seq_init=0;
-/* XXX */
-static void error() {}
+static void error(const char *dummy) {}
static void waitcursor(int val) {}
-static void activate_fileselect() {}
-static int pupmenu() {return 0;}
-static int okee() {return 0;}
+static void activate_fileselect(int d1, char *d2, char *d3, void *d4) {}
+static int pupmenu(const char *dummy) {return 0;}
+static int okee(const char *dummy) {return 0;}
/* XXX */
@@ -120,6 +99,7 @@ EnumPropertyItem sequencer_prop_effect_types[] = {
{SEQ_TRANSFORM, "TRANSFORM", 0, "Transform", "Transform effect strip type"},
{SEQ_COLOR, "COLOR", 0, "Color", "Color effect strip type"},
{SEQ_SPEED, "SPEED", 0, "Speed", "Color effect strip type"},
+ {SEQ_MULTICAM, "MULTICAM", 0, "Multicam Selector", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -183,7 +163,7 @@ static void change_plugin_seq(Scene *scene, char *str) /* called from fileselect
{
Editing *ed= seq_give_editing(scene, FALSE);
struct SeqEffectHandle sh;
- Sequence *last_seq= active_seq_get(scene);
+ Sequence *last_seq= seq_active_get(scene);
if(last_seq && last_seq->type != SEQ_PLUGIN) return;
@@ -409,7 +389,7 @@ void deselect_all_seq(Scene *scene)
if(ed==NULL) return;
SEQP_BEGIN(ed, seq) {
- seq->flag &= SEQ_DESEL;
+ seq->flag &= ~SEQ_ALLSEL;
}
SEQ_END
@@ -422,9 +402,9 @@ void recurs_sel_seq(Sequence *seqm)
seq= seqm->seqbase.first;
while(seq) {
- if(seqm->flag & (SEQ_LEFTSEL+SEQ_RIGHTSEL)) seq->flag &= SEQ_DESEL;
+ if(seqm->flag & (SEQ_LEFTSEL+SEQ_RIGHTSEL)) seq->flag &= ~SEQ_ALLSEL;
else if(seqm->flag & SELECT) seq->flag |= SELECT;
- else seq->flag &= SEQ_DESEL;
+ else seq->flag &= ~SEQ_ALLSEL;
if(seq->seqbase.first) recurs_sel_seq(seq);
@@ -457,7 +437,7 @@ static void reload_sound_strip(Scene *scene, char *name)
Editing *ed;
Sequence *seq, *seqact;
SpaceFile *sfile;
- Sequence *last_seq= active_seq_get(scene);
+ Sequence *last_seq= seq_active_get(scene);
ed= scene->ed;
@@ -499,7 +479,7 @@ static void reload_image_strip(Scene *scene, char *name)
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq=NULL, *seqact;
SpaceFile *sfile=NULL;
- Sequence *last_seq= active_seq_get(scene);
+ Sequence *last_seq= seq_active_get(scene);
@@ -535,7 +515,7 @@ static void reload_image_strip(Scene *scene, char *name)
void change_sequence(Scene *scene)
{
Editing *ed= seq_give_editing(scene, FALSE);
- Sequence *last_seq= active_seq_get(scene);
+ Sequence *last_seq= seq_active_get(scene);
Scene *sce;
short event;
@@ -573,17 +553,17 @@ void change_sequence(Scene *scene)
U.plugseqdir, change_plugin_seq);
}
else if(event==12);
- /* recalculate: only new_stripdata */
+ /* recalculate: only new_stripdata */
else {
/* free previous effect and init new effect */
struct SeqEffectHandle sh;
if (get_sequence_effect_num_inputs(
- last_seq->type)
- < get_sequence_effect_num_inputs(
- event_to_efftype(event))) {
+ last_seq->type)
+ < get_sequence_effect_num_inputs(
+ event_to_efftype(event))) {
error("New effect needs more "
- "input strips!");
+ "input strips!");
} else {
sh = get_sequence_effect(last_seq);
sh.free(last_seq);
@@ -602,9 +582,9 @@ void change_sequence(Scene *scene)
else if(last_seq->type == SEQ_IMAGE) {
if(okee("Change images")) {
activate_fileselect(FILE_SPECIAL,
- "Select Images",
- ed->act_imagedir,
- reload_image_strip);
+ "Select Images",
+ ed->act_imagedir,
+ reload_image_strip);
}
}
else if(last_seq->type == SEQ_MOVIE) {
@@ -637,7 +617,7 @@ int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequen
*error_str= NULL;
if (!activeseq)
- seq2= active_seq_get(scene);
+ seq2= seq_active_get(scene);
for(seq=ed->seqbasep->first; seq; seq=seq->next) {
if(seq->flag & SELECT) {
@@ -646,13 +626,13 @@ int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequen
return 0;
}
if((seq != activeseq) && (seq != seq2)) {
- if(seq2==0) seq2= seq;
- else if(seq1==0) seq1= seq;
- else if(seq3==0) seq3= seq;
- else {
+ if(seq2==0) seq2= seq;
+ else if(seq1==0) seq1= seq;
+ else if(seq3==0) seq3= seq;
+ else {
*error_str= "Can't apply effect to more than 3 sequence strips";
return 0;
- }
+ }
}
}
}
@@ -697,36 +677,6 @@ int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequen
return 1;
}
-void reassign_inputs_seq_effect(Scene *scene)
-{
- Editing *ed= seq_give_editing(scene, FALSE);
- Sequence *seq1, *seq2, *seq3, *last_seq = active_seq_get(scene);
- char *error_msg;
-
- if(last_seq==0 || !(last_seq->type & SEQ_EFFECT)) return;
- if(ed==NULL) return;
-
- if(!seq_effect_find_selected(scene, last_seq, last_seq->type, &seq1, &seq2, &seq3, &error_msg)) {
- //BKE_report(op->reports, RPT_ERROR, error_msg); // XXX operatorify
- return;
- }
- /* see reassigning would create a cycle */
- if( seq_is_predecessor(seq1, last_seq) ||
- seq_is_predecessor(seq2, last_seq) ||
- seq_is_predecessor(seq3, last_seq)
- ) {
- //BKE_report(op->reports, RPT_ERROR, "Can't reassign inputs: no cycles allowed"); // XXX operatorify
- return;
- }
-
- last_seq->seq1 = seq1;
- last_seq->seq2 = seq2;
- last_seq->seq3 = seq3;
-
- update_changed_seq_and_deps(scene, last_seq, 1, 1);
-
-}
-
static Sequence *del_seq_find_replace_recurs(Scene *scene, Sequence *seq)
{
Sequence *seq1, *seq2, *seq3;
@@ -769,7 +719,7 @@ static Sequence *del_seq_find_replace_recurs(Scene *scene, Sequence *seq)
static void recurs_del_seq_flag(Scene *scene, ListBase *lb, short flag, short deleteall)
{
Sequence *seq, *seqn;
- Sequence *last_seq = active_seq_get(scene);
+ Sequence *last_seq = seq_active_get(scene);
seq= lb->first;
while(seq) {
@@ -779,139 +729,16 @@ static void recurs_del_seq_flag(Scene *scene, ListBase *lb, short flag, short de
seq->sound->id.us--;
BLI_remlink(lb, seq);
- if(seq==last_seq) active_seq_set(scene, NULL);
+ if(seq==last_seq) seq_active_set(scene, NULL);
if(seq->type==SEQ_META) recurs_del_seq_flag(scene, &seq->seqbase, flag, 1);
- if(seq->ipo) seq->ipo->id.us--;
+ /* if(seq->ipo) seq->ipo->id.us--; */
+ /* XXX, remove fcurve */
seq_free_sequence(scene, seq);
}
seq= seqn;
}
}
-static Sequence *dupli_seq(struct Scene *scene, Sequence *seq)
-{
- Sequence *seqn = MEM_dupallocN(seq);
-
- seq->tmp = seqn;
- seqn->strip= MEM_dupallocN(seq->strip);
-
- // XXX: add F-Curve duplication stuff?
-
- seqn->strip->tstripdata = 0;
- seqn->strip->tstripdata_startstill = 0;
- seqn->strip->tstripdata_endstill = 0;
- seqn->strip->ibuf_startstill = 0;
- seqn->strip->ibuf_endstill = 0;
-
- if (seq->strip->crop) {
- seqn->strip->crop = MEM_dupallocN(seq->strip->crop);
- }
-
- if (seq->strip->transform) {
- seqn->strip->transform = MEM_dupallocN(seq->strip->transform);
- }
-
- if (seq->strip->proxy) {
- seqn->strip->proxy = MEM_dupallocN(seq->strip->proxy);
- }
-
- if (seq->strip->color_balance) {
- seqn->strip->color_balance
- = MEM_dupallocN(seq->strip->color_balance);
- }
-
- if(seq->type==SEQ_META) {
- seqn->strip->stripdata = 0;
-
- seqn->seqbase.first= seqn->seqbase.last= 0;
- /* WATCH OUT!!! - This metastrip is not recursively duplicated here - do this after!!! */
- /* - recurs_dupli_seq(&seq->seqbase,&seqn->seqbase);*/
- } else if(seq->type == SEQ_SCENE) {
- seqn->strip->stripdata = 0;
- } else if(seq->type == SEQ_MOVIE) {
- seqn->strip->stripdata =
- MEM_dupallocN(seq->strip->stripdata);
- seqn->anim= 0;
- } else if(seq->type == SEQ_SOUND) {
- seqn->strip->stripdata =
- MEM_dupallocN(seq->strip->stripdata);
- if(seq->scene_sound)
- seqn->scene_sound = sound_add_scene_sound(scene, seqn, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs);
-
- seqn->sound->id.us++;
- } else if(seq->type == SEQ_IMAGE) {
- seqn->strip->stripdata =
- MEM_dupallocN(seq->strip->stripdata);
- } else if(seq->type >= SEQ_EFFECT) {
- if(seq->seq1 && seq->seq1->tmp) seqn->seq1= seq->seq1->tmp;
- if(seq->seq2 && seq->seq2->tmp) seqn->seq2= seq->seq2->tmp;
- if(seq->seq3 && seq->seq3->tmp) seqn->seq3= seq->seq3->tmp;
-
- if (seq->type & SEQ_EFFECT) {
- struct SeqEffectHandle sh;
- sh = get_sequence_effect(seq);
- if(sh.copy)
- sh.copy(seq, seqn);
- }
-
- seqn->strip->stripdata = 0;
-
- } else {
- fprintf(stderr, "Aiiiiekkk! sequence type not "
- "handled in duplicate!\nExpect a crash"
- " now...\n");
- }
-
- seqbase_unique_name_recursive(&scene->ed->seqbase, seqn);
-
- return seqn;
-}
-
-static Sequence * deep_dupli_seq(struct Scene *scene, Sequence * seq)
-{
- Sequence * seqn = dupli_seq(scene, seq);
- if (seq->type == SEQ_META) {
- Sequence * s;
- for(s= seq->seqbase.first; s; s = s->next) {
- Sequence * n = deep_dupli_seq(scene, s);
- if (n) {
- BLI_addtail(&seqn->seqbase, n);
- }
- }
- }
- return seqn;
-}
-
-
-static void recurs_dupli_seq(Scene *scene, ListBase *old, ListBase *new, int do_context)
-{
- Sequence *seq;
- Sequence *seqn = 0;
- Sequence *last_seq = active_seq_get(scene);
-
- for(seq= old->first; seq; seq= seq->next) {
- seq->tmp= NULL;
- if(seq->flag & SELECT) {
- seqn = dupli_seq(scene, seq);
- if (seqn) { /*should never fail */
- if(do_context) {
- seq->flag &= SEQ_DESEL;
- seqn->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL+SEQ_LOCK);
- }
-
- BLI_addtail(new, seqn);
- if(seq->type==SEQ_META)
- recurs_dupli_seq(scene, &seq->seqbase,&seqn->seqbase, do_context);
-
- if(do_context) {
- if (seq == last_seq) {
- active_seq_set(scene, seqn);
- }
- }
- }
- }
- }
-}
static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe)
{
@@ -960,12 +787,12 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe)
}
}
- reload_sequence_new_file(scene, seq);
+ reload_sequence_new_file(scene, seq, FALSE);
calc_sequence(scene, seq);
if (!skip_dup) {
/* Duplicate AFTER the first change */
- seqn = deep_dupli_seq(scene, seq);
+ seqn = seq_dupli_recursive(scene, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
}
if (seqn) {
@@ -999,7 +826,7 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe)
seqn->startstill = 0;
}
- reload_sequence_new_file(scene, seqn);
+ reload_sequence_new_file(scene, seqn, FALSE);
calc_sequence(scene, seqn);
}
return seqn;
@@ -1054,7 +881,7 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence * seq, int cutframe)
if (!skip_dup) {
/* Duplicate AFTER the first change */
- seqn = deep_dupli_seq(scene, seq);
+ seqn = seq_dupli_recursive(scene, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
}
if (seqn) {
@@ -1192,7 +1019,8 @@ void set_filter_seq(Scene *scene)
if(seq->flag & SELECT) {
if(seq->type==SEQ_MOVIE) {
seq->flag |= SEQ_FILTERY;
- reload_sequence_new_file(scene, seq);
+ reload_sequence_new_file(scene, seq, FALSE);
+ calc_sequence(scene, seq);
}
}
@@ -1203,7 +1031,7 @@ void set_filter_seq(Scene *scene)
void seq_remap_paths(Scene *scene)
{
- Sequence *seq, *last_seq = active_seq_get(scene);
+ Sequence *seq, *last_seq = seq_active_get(scene);
Editing *ed= seq_give_editing(scene, FALSE);
char from[FILE_MAX], to[FILE_MAX], stripped[FILE_MAX];
@@ -1284,6 +1112,20 @@ static int seq_get_snaplimit(View2D *v2d)
#endif
/* Operator functions */
+int sequencer_edit_poll(bContext *C)
+{
+ return (seq_give_editing(CTX_data_scene(C), FALSE) != NULL);
+}
+
+int sequencer_view_poll(bContext *C)
+{
+ SpaceSeq *sseq= CTX_wm_space_seq(C);
+ Editing *ed= seq_give_editing(CTX_data_scene(C), FALSE);
+ if (ed && sseq && (sseq->mainb == SEQ_DRAW_IMG_IMBUF))
+ return 1;
+
+ return 0;
+}
/* snap operator*/
static int sequencer_snap_exec(bContext *C, wmOperator *op)
@@ -1293,8 +1135,6 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq;
int snap_frame;
-
- if(ed==NULL) return OPERATOR_CANCELLED;
snap_frame= RNA_int_get(op->ptr, "frame");
@@ -1303,7 +1143,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
/* also check metas */
SEQP_BEGIN(ed, seq) {
if (seq->flag & SELECT && !(seq->depth==0 && seq->flag & SEQ_LOCK) &&
- seq_tx_test(seq)) {
+ seq_tx_test(seq)) {
if((seq->flag & (SEQ_LEFTSEL+SEQ_RIGHTSEL))==0) {
seq->start= snap_frame-seq->startofs+seq->startstill;
} else {
@@ -1368,8 +1208,7 @@ void SEQUENCER_OT_snap(struct wmOperatorType *ot)
/* api callbacks */
ot->invoke= sequencer_snap_invoke;
ot->exec= sequencer_snap_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1385,9 +1224,6 @@ static int sequencer_mute_exec(bContext *C, wmOperator *op)
Sequence *seq;
int selected;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
selected= !RNA_boolean_get(op->ptr, "unselected");
for(seq= ed->seqbasep->first; seq; seq= seq->next) {
@@ -1418,8 +1254,7 @@ void SEQUENCER_OT_mute(struct wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_mute_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1436,9 +1271,6 @@ static int sequencer_unmute_exec(bContext *C, wmOperator *op)
Sequence *seq;
int selected;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
selected= !RNA_boolean_get(op->ptr, "unselected");
for(seq= ed->seqbasep->first; seq; seq= seq->next) {
@@ -1463,14 +1295,13 @@ static int sequencer_unmute_exec(bContext *C, wmOperator *op)
void SEQUENCER_OT_unmute(struct wmOperatorType *ot)
{
/* identifiers */
- ot->name= "UnMute Strips";
+ ot->name= "Un-Mute Strips";
ot->idname= "SEQUENCER_OT_unmute";
- ot->description="UnMute unselected rather than selected strips";
+ ot->description="Un-Mute unselected rather than selected strips";
/* api callbacks */
ot->exec= sequencer_unmute_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1486,9 +1317,6 @@ static int sequencer_lock_exec(bContext *C, wmOperator *op)
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
for(seq= ed->seqbasep->first; seq; seq= seq->next) {
if (seq->flag & SELECT) {
seq->flag |= SEQ_LOCK;
@@ -1509,8 +1337,7 @@ void SEQUENCER_OT_lock(struct wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_lock_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1523,9 +1350,6 @@ static int sequencer_unlock_exec(bContext *C, wmOperator *op)
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
for(seq= ed->seqbasep->first; seq; seq= seq->next) {
if (seq->flag & SELECT) {
seq->flag &= ~SEQ_LOCK;
@@ -1546,8 +1370,7 @@ void SEQUENCER_OT_unlock(struct wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_unlock_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1560,9 +1383,6 @@ static int sequencer_reload_exec(bContext *C, wmOperator *op)
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
for(seq= ed->seqbasep->first; seq; seq= seq->next) {
if(seq->flag & SELECT) {
update_changed_seq_and_deps(scene, seq, 0, 1);
@@ -1583,8 +1403,7 @@ void SEQUENCER_OT_reload(struct wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_reload_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1595,9 +1414,6 @@ static int sequencer_refresh_all_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
-
- if(ed==NULL)
- return OPERATOR_CANCELLED;
free_imbuf_seq(scene, &ed->seqbase, FALSE);
@@ -1615,13 +1431,73 @@ void SEQUENCER_OT_refresh_all(struct wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_refresh_all_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
+static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene= CTX_data_scene(C);
+ Sequence *seq1, *seq2, *seq3, *last_seq = seq_active_get(scene);
+ char *error_msg;
+
+ if(!seq_effect_find_selected(scene, last_seq, last_seq->type, &seq1, &seq2, &seq3, &error_msg)) {
+ BKE_report(op->reports, RPT_ERROR, error_msg);
+ return OPERATOR_CANCELLED;
+ }
+ /* see reassigning would create a cycle */
+ if( seq_is_predecessor(seq1, last_seq) ||
+ seq_is_predecessor(seq2, last_seq) ||
+ seq_is_predecessor(seq3, last_seq)
+ ) {
+ BKE_report(op->reports, RPT_ERROR, "Can't reassign inputs: no cycles allowed");
+ return OPERATOR_CANCELLED;
+ }
+
+ last_seq->seq1 = seq1;
+ last_seq->seq2 = seq2;
+ last_seq->seq3 = seq3;
+
+ update_changed_seq_and_deps(scene, last_seq, 1, 1);
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+ return OPERATOR_FINISHED;
+}
+
+int sequencer_effect_poll(bContext *C)
+{
+ Scene *scene= CTX_data_scene(C);
+ Editing *ed= seq_give_editing(scene, FALSE);
+
+ if(ed) {
+ Sequence *last_seq= seq_active_get(scene);
+ if(last_seq && (last_seq->type & SEQ_EFFECT)) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+void SEQUENCER_OT_reassign_inputs(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Reassign Inputs";
+ ot->idname= "SEQUENCER_OT_reassign_inputs";
+ ot->description="Reassign the inputs for the effects strip";
+
+ /* api callbacks */
+ ot->exec= sequencer_reassign_inputs_exec;
+ ot->poll= sequencer_effect_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
/* cut operator */
static EnumPropertyItem prop_cut_types[] = {
{SEQ_CUT_SOFT, "SOFT", 0, "Soft", ""},
@@ -1637,9 +1513,6 @@ static int sequencer_cut_exec(bContext *C, wmOperator *op)
ListBase newlist;
int changed;
-
- if(ed==NULL)
- return OPERATOR_CANCELLED;
cut_frame= RNA_int_get(op->ptr, "frame");
cut_hard= RNA_enum_get(op->ptr, "type");
@@ -1663,11 +1536,11 @@ static int sequencer_cut_exec(bContext *C, wmOperator *op)
SEQP_BEGIN(ed, seq) {
if (cut_side==SEQ_SIDE_LEFT) {
if ( seq->startdisp >= cut_frame ) {
- seq->flag &= SEQ_DESEL;
+ seq->flag &= ~SEQ_ALLSEL;
}
} else {
if ( seq->enddisp <= cut_frame ) {
- seq->flag &= SEQ_DESEL;
+ seq->flag &= ~SEQ_ALLSEL;
}
}
}
@@ -1688,11 +1561,12 @@ static int sequencer_cut_invoke(bContext *C, wmOperator *op, wmEvent *event)
Scene *scene = CTX_data_scene(C);
ARegion *ar= CTX_wm_region(C);
View2D *v2d= UI_view2d_fromcontext(C);
-
- int cut_side, cut_frame;
-
- cut_frame= CFRA;
- cut_side= mouse_frame_side(v2d, event->x - ar->winrct.xmin, cut_frame);
+
+ int cut_side= SEQ_SIDE_BOTH;
+ int cut_frame= CFRA;
+
+ if (ED_operator_sequencer_active(C) && v2d)
+ cut_side= mouse_frame_side(v2d, event->x - ar->winrct.xmin, cut_frame);
RNA_int_set(op->ptr, "frame", cut_frame);
RNA_enum_set(op->ptr, "side", cut_side);
@@ -1712,8 +1586,7 @@ void SEQUENCER_OT_cut(struct wmOperatorType *ot)
/* api callbacks */
ot->invoke= sequencer_cut_invoke;
ot->exec= sequencer_cut_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1724,25 +1597,37 @@ void SEQUENCER_OT_cut(struct wmOperatorType *ot)
}
/* duplicate operator */
+static int apply_unique_name_cb(Sequence *seq, void *arg_pt)
+{
+ Scene *scene= (Scene *)arg_pt;
+ char name[sizeof(seq->name)-2];
+
+ strcpy(name, seq->name+2);
+ seqbase_unique_name_recursive(&scene->ed->seqbase, seq);
+ seq_dupe_animdata(scene, name, seq->name+2);
+ return 1;
+
+}
+
static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
- ListBase new= {NULL, NULL};
+ ListBase nseqbase= {NULL, NULL};
if(ed==NULL)
return OPERATOR_CANCELLED;
- recurs_dupli_seq(scene, ed->seqbasep, &new, TRUE);
+ seqbase_dupli_recursive(scene, &nseqbase, ed->seqbasep, SEQ_DUPE_CONTEXT);
- if(new.first) {
- Sequence * seq= new.first;
- /* rely on the new list being added at the end */
- addlisttolist(ed->seqbasep, &new);
+ if(nseqbase.first) {
+ Sequence * seq= nseqbase.first;
+ /* rely on the nseqbase list being added at the end */
+ addlisttolist(ed->seqbasep, &nseqbase);
for( ; seq; seq= seq->next)
- seqbase_unique_name_recursive(&ed->seqbase, seq);
+ seq_recursive_apply(seq, apply_unique_name_cb, scene);
WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
@@ -1763,7 +1648,6 @@ static int sequencer_add_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *
void SEQUENCER_OT_duplicate(wmOperatorType *ot)
{
-
/* identifiers */
ot->name= "Duplicate";
ot->idname= "SEQUENCER_OT_duplicate";
@@ -1772,7 +1656,6 @@ void SEQUENCER_OT_duplicate(wmOperatorType *ot)
/* api callbacks */
ot->invoke= sequencer_add_duplicate_invoke;
ot->exec= sequencer_add_duplicate_exec;
-
ot->poll= ED_operator_sequencer_active;
/* flags */
@@ -1791,10 +1674,7 @@ static int sequencer_delete_exec(bContext *C, wmOperator *op)
MetaStack *ms;
int nothingSelected = TRUE;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
- seq=active_seq_get(scene);
+ seq=seq_active_get(scene);
if (seq && seq->flag & SELECT) { /* avoid a loop since this is likely to be selected */
nothingSelected = FALSE;
} else {
@@ -1854,8 +1734,7 @@ void SEQUENCER_OT_delete(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_operator_confirm;
ot->exec= sequencer_delete_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1874,10 +1753,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
int start_ofs, cfra, frame_end;
int step= RNA_int_get(op->ptr, "length");
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
- seq= ed->seqbasep->first;
+ seq= ed->seqbasep->first; /* poll checks this is valid */
while (seq) {
if((seq->flag & SELECT) && (seq->type == SEQ_IMAGE) && (seq->len > 1)) {
@@ -1885,7 +1761,8 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
see seq_free_sequence below for the real free'ing */
seq_next = seq->next;
BLI_remlink(ed->seqbasep, seq);
- if(seq->ipo) seq->ipo->id.us--;
+ /* if(seq->ipo) seq->ipo->id.us--; */
+ /* XXX, remove fcurve and assign to split image strips */
start_ofs = cfra = seq_tx_get_final_left(seq, 0);
frame_end = seq_tx_get_final_right(seq, 0);
@@ -1909,11 +1786,16 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
strip_new->stripdata= se_new= MEM_callocN(sizeof(StripElem)*1, "stripelem");
strncpy(se_new->name, se->name, FILE_MAXFILE-1);
calc_sequence(scene, seq_new);
- seq_new->flag &= ~SEQ_OVERLAP;
- if (seq_test_overlap(ed->seqbasep, seq_new)) {
- shuffle_seq(ed->seqbasep, seq_new, scene);
+
+ if(step > 1) {
+ seq_new->flag &= ~SEQ_OVERLAP;
+ if (seq_test_overlap(ed->seqbasep, seq_new)) {
+ shuffle_seq(ed->seqbasep, seq_new, scene);
+ }
}
+ /* XXX, COPY FCURVES */
+ strncpy(seq_new->name+2, seq->name+2, sizeof(seq->name)-2);
seqbase_unique_name_recursive(&scene->ed->seqbase, seq_new);
cfra++;
@@ -1946,8 +1828,7 @@ void SEQUENCER_OT_images_separate(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_operator_props_popup;
ot->exec= sequencer_separate_images_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1963,12 +1844,9 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
- Sequence *last_seq= active_seq_get(scene);
+ Sequence *last_seq= seq_active_get(scene);
MetaStack *ms;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
if(last_seq && last_seq->type==SEQ_META && last_seq->flag & SELECT) {
/* Enter Metastrip */
ms= MEM_mallocN(sizeof(MetaStack), "metastack");
@@ -1978,7 +1856,7 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *op)
ed->seqbasep= &last_seq->seqbase;
- active_seq_set(scene, NULL);
+ seq_active_set(scene, NULL);
}
else {
@@ -1998,7 +1876,7 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *op)
for(seq= ed->seqbasep->first; seq; seq= seq->next)
calc_sequence(scene, seq);
- active_seq_set(scene, ms->parseq);
+ seq_active_set(scene, ms->parseq);
ms->parseq->flag |= SELECT;
recurs_sel_seq(ms->parseq);
@@ -2022,8 +1900,7 @@ void SEQUENCER_OT_meta_toggle(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_meta_toggle_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2036,13 +1913,9 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
- Sequence *seq, *seqm, *next;
-
+ Sequence *seq, *seqm, *next, *last_seq = seq_active_get(scene);
int channel_max= 1;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
if(seqbase_isolated_sel_check(ed->seqbasep)==FALSE) {
BKE_report(op->reports, RPT_ERROR, "Please select all related strips");
return OPERATOR_CANCELLED;
@@ -2065,14 +1938,14 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op)
}
seq= next;
}
- seqm->machine= channel_max;
+ seqm->machine= last_seq ? last_seq->machine : channel_max;
calc_sequence(scene, seqm);
seqm->strip= MEM_callocN(sizeof(Strip), "metastrip");
seqm->strip->len= seqm->len;
seqm->strip->us= 1;
- active_seq_set(scene, seqm);
+ seq_active_set(scene, seqm);
if( seq_test_overlap(ed->seqbasep, seqm) ) shuffle_seq(ed->seqbasep, seqm, scene);
@@ -2095,8 +1968,7 @@ void SEQUENCER_OT_meta_make(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_operator_confirm;
ot->exec= sequencer_meta_make_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2118,7 +1990,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
- Sequence *seq, *last_seq = active_seq_get(scene); /* last_seq checks ed==NULL */
+ Sequence *seq, *last_seq = seq_active_get(scene); /* last_seq checks ed==NULL */
if(last_seq==NULL || last_seq->type!=SEQ_META)
return OPERATOR_CANCELLED;
@@ -2167,8 +2039,7 @@ void SEQUENCER_OT_meta_separate(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_operator_confirm;
ot->exec= sequencer_meta_separate_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2200,7 +2071,6 @@ void SEQUENCER_OT_view_all(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_view_all_exec;
-
ot->poll= ED_operator_sequencer_active;
/* flags */
@@ -2237,7 +2107,7 @@ static int sequencer_view_all_preview_exec(bContext *C, wmOperator *op)
imgheight= (scene->r.size*scene->r.ysch)/100;
/* Apply aspect, dosnt need to be that accurate */
- imgwidth= (int)(imgwidth * ((float)scene->r.xasp / (float)scene->r.yasp));
+ imgwidth= (int)(imgwidth * (scene->r.xasp / scene->r.yasp));
if (((imgwidth >= width) || (imgheight >= height)) &&
((width > 0) && (height > 0))) {
@@ -2267,13 +2137,49 @@ void SEQUENCER_OT_view_all_preview(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_view_all_preview_exec;
-
ot->poll= ED_operator_sequencer_active;
/* flags */
ot->flag= OPTYPE_REGISTER;
}
+
+static int sequencer_view_zoom_ratio_exec(bContext *C, wmOperator *op)
+{
+ RenderData *r= &CTX_data_scene(C)->r;
+ View2D *v2d= UI_view2d_fromcontext(C);
+
+ float ratio= RNA_float_get(op->ptr, "ratio");
+
+ float winx= (int)(r->size * r->xsch)/100;
+ float winy= (int)(r->size * r->ysch)/100;
+
+ float facx= (v2d->mask.xmax - v2d->mask.xmin) / winx;
+ float facy= (v2d->mask.ymax - v2d->mask.ymin) / winy;
+
+ BLI_resize_rctf(&v2d->cur, winx*facx*ratio, winy*facy*ratio);
+
+ ED_region_tag_redraw(CTX_wm_region(C));
+
+ return OPERATOR_FINISHED;
+}
+
+void SEQUENCER_OT_view_zoom_ratio(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Sequencer View Zoom Ratio";
+ ot->idname= "SEQUENCER_OT_view_zoom_ratio";
+
+ /* api callbacks */
+ ot->exec= sequencer_view_zoom_ratio_exec;
+ ot->poll= ED_operator_sequencer_active;
+
+ /* properties */
+ RNA_def_float(ot->srna, "ratio", 1.0f, 0.0f, FLT_MAX,
+ "Ratio", "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out.", -FLT_MAX, FLT_MAX);
+}
+
+
#if 0
static EnumPropertyItem view_type_items[] = {
{SEQ_VIEW_SEQUENCE, "SEQUENCER", ICON_SEQ_SEQUENCER, "Sequencer", ""},
@@ -2384,7 +2290,6 @@ void SEQUENCER_OT_view_selected(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_view_selected_exec;
-
ot->poll= ED_operator_sequencer_active;
/* flags */
@@ -2470,7 +2375,7 @@ void SEQUENCER_OT_next_edit(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_next_edit_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2500,7 +2405,7 @@ void SEQUENCER_OT_previous_edit(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_previous_edit_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2541,11 +2446,10 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
- Sequence *active_seq = active_seq_get(scene);
+ Sequence *active_seq = seq_active_get(scene);
Sequence *seq, *iseq;
int side= RNA_enum_get(op->ptr, "side");
- if(ed==NULL) return OPERATOR_CANCELLED;
if(active_seq==NULL) return OPERATOR_CANCELLED;
seq = find_next_prev_sequence(scene, active_seq, side, -1);
@@ -2553,9 +2457,9 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op)
if(seq) {
/* disallow effect strips */
- if ((seq->type!=SEQ_COLOR) && (seq->effectdata || seq->seq1 || seq->seq2 || seq->seq3))
+ if (get_sequence_effect_num_inputs(seq->type) >= 1 && (seq->effectdata || seq->seq1 || seq->seq2 || seq->seq3))
return OPERATOR_CANCELLED;
- if ((active_seq->type!=SEQ_COLOR) && (active_seq->effectdata || active_seq->seq1 || active_seq->seq2 || active_seq->seq3))
+ if ((get_sequence_effect_num_inputs(active_seq->type) >= 1) && (active_seq->effectdata || active_seq->seq1 || active_seq->seq2 || active_seq->seq3))
return OPERATOR_CANCELLED;
switch (side) {
@@ -2605,7 +2509,7 @@ void SEQUENCER_OT_swap(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_swap_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2618,7 +2522,7 @@ static int sequencer_rendersize_exec(bContext *C, wmOperator *op)
{
int retval = OPERATOR_CANCELLED;
Scene *scene= CTX_data_scene(C);
- Sequence *active_seq = active_seq_get(scene);
+ Sequence *active_seq = seq_active_get(scene);
if(active_seq==NULL)
return OPERATOR_CANCELLED;
@@ -2655,7 +2559,7 @@ void SEQUENCER_OT_rendersize(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_rendersize_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2684,9 +2588,6 @@ static int sequencer_copy_exec(bContext *C, wmOperator *op)
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
seq_free_clipboard();
if(seqbase_isolated_sel_check(ed->seqbasep)==FALSE) {
@@ -2694,7 +2595,7 @@ static int sequencer_copy_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- recurs_dupli_seq(scene, ed->seqbasep, &seqbase_clipboard, FALSE);
+ seqbase_dupli_recursive(scene, &seqbase_clipboard, ed->seqbasep, SEQ_DUPE_UNIQUE_NAME);
seqbase_clipboard_frame= scene->r.cfra;
/* Need to remove anything that references the current scene */
@@ -2714,7 +2615,7 @@ void SEQUENCER_OT_copy(wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_copy_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2741,23 +2642,23 @@ static int sequencer_paste_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, TRUE); /* create if needed */
- ListBase new = {NULL, NULL};
+ ListBase nseqbase = {NULL, NULL};
int ofs;
Sequence *iseq;
deselect_all_seq(scene);
ofs = scene->r.cfra - seqbase_clipboard_frame;
- recurs_dupli_seq(scene, &seqbase_clipboard, &new, FALSE);
+ seqbase_dupli_recursive(scene, &nseqbase, &seqbase_clipboard, SEQ_DUPE_UNIQUE_NAME);
/* transform pasted strips before adding */
if(ofs) {
- for(iseq= new.first; iseq; iseq= iseq->next) {
+ for(iseq= nseqbase.first; iseq; iseq= iseq->next) {
seq_offset(scene, iseq, ofs);
}
}
- addlisttolist(ed->seqbasep, &new);
+ addlisttolist(ed->seqbasep, &nseqbase);
WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
@@ -2780,3 +2681,113 @@ void SEQUENCER_OT_paste(wmOperatorType *ot)
/* properties */
}
+
+static int sequencer_swap_data_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene= CTX_data_scene(C);
+ Sequence *seq_act;
+ Sequence *seq_other;
+
+ if(seq_active_pair_get(scene, &seq_act, &seq_other) == 0) {
+ BKE_report(op->reports, RPT_ERROR, "Must select 2 strips");
+ return OPERATOR_CANCELLED;
+ }
+
+ if(seq_swap(seq_act, seq_other) == 0) {
+ BKE_report(op->reports, RPT_ERROR, "Strips were not compatible");
+ return OPERATOR_CANCELLED;
+ }
+
+ sound_remove_scene_sound(scene, seq_act->scene_sound);
+ sound_remove_scene_sound(scene, seq_other->scene_sound);
+
+ seq_act->scene_sound= NULL;
+ seq_other->scene_sound= NULL;
+
+ calc_sequence(scene, seq_act);
+ calc_sequence(scene, seq_other);
+
+ if(seq_act->sound) sound_add_scene_sound(scene, seq_act, seq_act->startdisp, seq_act->enddisp, seq_act->startofs + seq_act->anim_startofs);
+ if(seq_other->sound) sound_add_scene_sound(scene, seq_other, seq_other->startdisp, seq_other->enddisp, seq_other->startofs + seq_other->anim_startofs);
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+ return OPERATOR_FINISHED;
+}
+
+void SEQUENCER_OT_swap_data(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Sequencer Swap Data";
+ ot->idname= "SEQUENCER_OT_swap_data";
+ ot->description="Swap 2 sequencer strips";
+
+ /* api callbacks */
+ ot->exec= sequencer_swap_data_exec;
+ ot->poll= ED_operator_sequencer_active;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+}
+
+/* borderselect operator */
+static int view_ghost_border_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene= CTX_data_scene(C);
+ Editing *ed= seq_give_editing(scene, FALSE);
+ View2D *v2d= UI_view2d_fromcontext(C);
+
+ rctf rect;
+
+ /* convert coordinates of rect to 'tot' rect coordinates */
+ UI_view2d_region_to_view(v2d, RNA_int_get(op->ptr, "xmin"), RNA_int_get(op->ptr, "ymin"), &rect.xmin, &rect.ymin);
+ UI_view2d_region_to_view(v2d, RNA_int_get(op->ptr, "xmax"), RNA_int_get(op->ptr, "ymax"), &rect.xmax, &rect.ymax);
+
+ if(ed==NULL)
+ return OPERATOR_CANCELLED;
+
+ rect.xmin /= (float)(ABS(v2d->tot.xmax - v2d->tot.xmin));
+ rect.ymin /= (float)(ABS(v2d->tot.ymax - v2d->tot.ymin));
+
+ rect.xmax /= (float)(ABS(v2d->tot.xmax - v2d->tot.xmin));
+ rect.ymax /= (float)(ABS(v2d->tot.ymax - v2d->tot.ymin));
+
+ rect.xmin+=0.5;
+ rect.xmax+=0.5;
+ rect.ymin+=0.5;
+ rect.ymax+=0.5;
+
+ CLAMP(rect.xmin, 0.0f, 1.0f);
+ CLAMP(rect.ymin, 0.0f, 1.0f);
+ CLAMP(rect.xmax, 0.0f, 1.0f);
+ CLAMP(rect.ymax, 0.0f, 1.0f);
+
+ scene->ed->over_border= rect;
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+ return OPERATOR_FINISHED;
+}
+
+/* ****** Border Select ****** */
+void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Border Offset View";
+ ot->idname= "SEQUENCER_OT_view_ghost_border";
+ ot->description="Enable border select mode";
+
+ /* api callbacks */
+ ot->invoke= WM_border_select_invoke;
+ ot->exec= view_ghost_border_exec;
+ ot->modal= WM_border_select_modal;
+ ot->poll= sequencer_view_poll;
+
+ /* flags */
+ ot->flag= 0;
+
+ /* rna */
+ WM_operator_properties_gesture_border(ot, FALSE);
+}
diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h
index e9f7da95a81..bf0dfff8e98 100644
--- a/source/blender/editors/space_sequencer/sequencer_intern.h
+++ b/source/blender/editors/space_sequencer/sequencer_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -48,7 +48,7 @@ struct ARegion *sequencer_has_buttons_region(struct ScrArea *sa);
/* sequencer_draw.c */
void draw_timeline_seq(const struct bContext *C, struct ARegion *ar);
-void draw_image_seq(const struct bContext* C, struct Scene *scene,struct ARegion *ar, struct SpaceSeq *sseq);
+void draw_image_seq(const struct bContext* C, struct Scene *scene,struct ARegion *ar, struct SpaceSeq *sseq, int cfra, int offset);
void seq_reset_imageofs(struct SpaceSeq *sseq);
@@ -67,6 +67,10 @@ int event_to_efftype(int event);
int seq_effect_find_selected(struct Scene *scene, struct Sequence *activeseq, int type, struct Sequence **selseq1, struct Sequence **selseq2, struct Sequence **selseq3, char **error_str);
struct Sequence *alloc_sequence(struct ListBase *lb, int cfra, int machine);
+/* operator helpers */
+int sequencer_edit_poll(struct bContext *C);
+int sequencer_view_poll(struct bContext *C);
+
/* externs */
extern EnumPropertyItem sequencer_prop_effect_types[];
extern EnumPropertyItem prop_side_types[];
@@ -82,6 +86,7 @@ void SEQUENCER_OT_lock(struct wmOperatorType *ot);
void SEQUENCER_OT_unlock(struct wmOperatorType *ot);
void SEQUENCER_OT_reload(struct wmOperatorType *ot);
void SEQUENCER_OT_refresh_all(struct wmOperatorType *ot);
+void SEQUENCER_OT_reassign_inputs(struct wmOperatorType *ot);
void SEQUENCER_OT_duplicate(struct wmOperatorType *ot);
void SEQUENCER_OT_delete(struct wmOperatorType *ot);
void SEQUENCER_OT_images_separate(struct wmOperatorType *ot);
@@ -92,11 +97,14 @@ void SEQUENCER_OT_snap(struct wmOperatorType *ot);
void SEQUENCER_OT_previous_edit(struct wmOperatorType *ot);
void SEQUENCER_OT_next_edit(struct wmOperatorType *ot);
void SEQUENCER_OT_swap(struct wmOperatorType *ot);
+void SEQUENCER_OT_swap_data(struct wmOperatorType *ot);
void SEQUENCER_OT_rendersize(struct wmOperatorType *ot);
void SEQUENCER_OT_view_toggle(struct wmOperatorType *ot);
void SEQUENCER_OT_view_all(struct wmOperatorType *ot);
void SEQUENCER_OT_view_selected(struct wmOperatorType *ot);
+void SEQUENCER_OT_view_zoom_ratio(struct wmOperatorType *ot);
+void SEQUENCER_OT_view_ghost_border(struct wmOperatorType *ot);
void SEQUENCER_OT_copy(struct wmOperatorType *ot);
void SEQUENCER_OT_paste(struct wmOperatorType *ot);
@@ -127,22 +135,20 @@ void SEQUENCER_OT_effect_strip_add(struct wmOperatorType *ot);
/* RNA enums, just to be more readable */
enum {
SEQ_SIDE_NONE=0,
- SEQ_SIDE_LEFT,
- SEQ_SIDE_RIGHT,
+ SEQ_SIDE_LEFT,
+ SEQ_SIDE_RIGHT,
SEQ_SIDE_BOTH,
};
enum {
- SEQ_CUT_SOFT,
- SEQ_CUT_HARD,
+ SEQ_CUT_SOFT,
+ SEQ_CUT_HARD,
};
enum {
- SEQ_SELECTED,
- SEQ_UNSELECTED,
+ SEQ_SELECTED,
+ SEQ_UNSELECTED,
};
/* defines used internally */
-#define SEQ_ALLSEL (SELECT+SEQ_LEFTSEL+SEQ_RIGHTSEL)
-#define SEQ_DESEL ~SEQ_ALLSEL
#define SCE_MARKERS 0 // XXX - dummy
/* sequencer_ops.c */
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c
index 787d5712640..82f70eafc0a 100644
--- a/source/blender/editors/space_sequencer/sequencer_ops.c
+++ b/source/blender/editors/space_sequencer/sequencer_ops.c
@@ -1,6 +1,6 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,11 +32,7 @@
#include "MEM_guardedalloc.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -45,13 +41,10 @@
#include "BKE_global.h"
#include "BKE_utildefines.h"
-#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_screen.h"
#include "ED_transform.h" /* transform keymap */
#include "sequencer_intern.h"
@@ -70,6 +63,7 @@ void sequencer_operatortypes(void)
WM_operatortype_append(SEQUENCER_OT_unlock);
WM_operatortype_append(SEQUENCER_OT_reload);
WM_operatortype_append(SEQUENCER_OT_refresh_all);
+ WM_operatortype_append(SEQUENCER_OT_reassign_inputs);
WM_operatortype_append(SEQUENCER_OT_duplicate);
WM_operatortype_append(SEQUENCER_OT_delete);
WM_operatortype_append(SEQUENCER_OT_images_separate);
@@ -80,12 +74,15 @@ void sequencer_operatortypes(void)
WM_operatortype_append(SEQUENCER_OT_next_edit);
WM_operatortype_append(SEQUENCER_OT_previous_edit);
WM_operatortype_append(SEQUENCER_OT_swap);
+ WM_operatortype_append(SEQUENCER_OT_swap_data);
WM_operatortype_append(SEQUENCER_OT_rendersize);
WM_operatortype_append(SEQUENCER_OT_view_all);
WM_operatortype_append(SEQUENCER_OT_view_selected);
WM_operatortype_append(SEQUENCER_OT_view_all_preview);
WM_operatortype_append(SEQUENCER_OT_view_toggle);
+ WM_operatortype_append(SEQUENCER_OT_view_zoom_ratio);
+ WM_operatortype_append(SEQUENCER_OT_view_ghost_border);
/* sequencer_select.c */
WM_operatortype_append(SEQUENCER_OT_select_all_toggle);
@@ -117,6 +114,9 @@ void sequencer_keymap(wmKeyConfig *keyconf)
wmKeyMap *keymap= WM_keymap_find(keyconf, "SequencerCommon", SPACE_SEQ, 0);
wmKeyMapItem *kmi;
+ kmi= WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.show_overlay");
+
/* operators common to sequence and preview view */
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_toggle", TABKEY, KM_PRESS, KM_CTRL, 0);
@@ -139,12 +139,14 @@ void sequencer_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "SEQUENCER_OT_lock", LKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_unlock", LKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0);
+ WM_keymap_add_item(keymap, "SEQUENCER_OT_reassign_inputs", RKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
@@ -225,9 +227,28 @@ void sequencer_keymap(wmKeyConfig *keyconf)
WM_keymap_add_menu(keymap, "SEQUENCER_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
+ kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", OKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.overlay_frame");
+ RNA_int_set(kmi->ptr, "value", 0);
+
transform_keymap_for_space(keyconf, keymap, SPACE_SEQ);
keymap= WM_keymap_find(keyconf, "SequencerPreview", SPACE_SEQ, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", HOMEKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0);
+
+
+ keymap= WM_keymap_find(keyconf, "SequencerPreview", SPACE_SEQ, 0);
+
+ WM_keymap_add_item(keymap, "SEQUENCER_OT_view_ghost_border", OKEY, KM_PRESS, 0, 0);
+
+ /* would prefer to use numpad keys for job */
+ RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 8.0f);
+ RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 4.0f);
+ RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 2.0f);
+ RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD1, KM_PRESS, 0, 0)->ptr, "ratio", 1.0f);
+ RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f);
+ RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f);
+ RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f);
}
diff --git a/source/blender/editors/space_sequencer/sequencer_scopes.c b/source/blender/editors/space_sequencer/sequencer_scopes.c
index 0257ea5d9ca..d9d027823bc 100644
--- a/source/blender/editors/space_sequencer/sequencer_scopes.c
+++ b/source/blender/editors/space_sequencer/sequencer_scopes.c
@@ -35,16 +35,16 @@
static void rgb_to_yuv(float rgb[3], float yuv[3])
{
- yuv[0]= 0.299*rgb[0] + 0.587*rgb[1] + 0.114*rgb[2];
- yuv[1]= 0.492*(rgb[2] - yuv[0]);
- yuv[2]= 0.877*(rgb[0] - yuv[0]);
+ yuv[0]= 0.299*rgb[0] + 0.587*rgb[1] + 0.114*rgb[2];
+ yuv[1]= 0.492*(rgb[2] - yuv[0]);
+ yuv[2]= 0.877*(rgb[0] - yuv[0]);
- /* Normalize */
- yuv[1]*= 255.0/(122*2.0);
- yuv[1]+= 0.5;
+ /* Normalize */
+ yuv[1]*= 255.0/(122*2.0);
+ yuv[1]+= 0.5;
- yuv[2]*= 255.0/(157*2.0);
- yuv[2]+= 0.5;
+ yuv[2]*= 255.0/(157*2.0);
+ yuv[2]+= 0.5;
}
static void scope_put_pixel(unsigned char* table, unsigned char * pos)
@@ -580,7 +580,7 @@ static void vectorscope_put_cross(unsigned char r, unsigned char g,
rgb_to_yuv(rgb, yuv);
p = tgt + 4 * (w * (int) ((yuv[2] * (h - 3) + 1))
- + (int) ((yuv[1] * (w - 3) + 1)));
+ + (int) ((yuv[1] * (w - 3) + 1)));
if (r == 0 && g == 0 && b == 0) {
r = 255;
@@ -631,7 +631,7 @@ static struct ImBuf *make_vectorscope_view_from_ibuf_byte(struct ImBuf * ibuf)
rgb_to_yuv(rgb, yuv);
p = tgt + 4 * (w * (int) ((yuv[2] * (h - 3) + 1))
- + (int) ((yuv[1] * (w - 3) + 1)));
+ + (int) ((yuv[1] * (w - 3) + 1)));
scope_put_pixel(wtable, (unsigned char*)p);
}
}
@@ -681,7 +681,7 @@ static struct ImBuf *make_vectorscope_view_from_ibuf_float(struct ImBuf * ibuf)
rgb_to_yuv(rgb, yuv);
p = tgt + 4 * (w * (int) ((yuv[2] * (h - 3) + 1))
- + (int) ((yuv[1] * (w - 3) + 1)));
+ + (int) ((yuv[1] * (w - 3) + 1)));
scope_put_pixel(wtable, (unsigned char*)p);
}
}
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index 437871c7fe8..83fa8bffd58 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -40,13 +40,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "DNA_curve_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_sequence_types.h"
-#include "DNA_view2d_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -59,27 +53,18 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "RNA_access.h"
#include "RNA_define.h"
/* for menu/popup icons etc etc*/
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "ED_anim_api.h"
-#include "ED_space_api.h"
#include "ED_types.h"
#include "ED_screen.h"
-#include "ED_util.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
/* own include */
#include "sequencer_intern.h"
-static void *find_nearest_marker() {return NULL;}
-static void deselect_markers() {}
+static void *find_nearest_marker(int d1, int d2) {return NULL;}
void select_surrounding_handles(Scene *scene, Sequence *test) /* XXX BRING BACK */
{
@@ -181,7 +166,7 @@ void select_single_seq(Scene *scene, Sequence *seq, int deselect_all) /* BRING B
if(deselect_all)
deselect_all_seq(scene);
- active_seq_set(scene, seq);
+ seq_active_set(scene, seq);
if((seq->type==SEQ_IMAGE) || (seq->type==SEQ_MOVIE)) {
if(seq->strip)
@@ -200,7 +185,7 @@ void select_single_seq(Scene *scene, Sequence *seq, int deselect_all) /* BRING B
void select_neighbor_from_last(Scene *scene, int lr)
{
- Sequence *seq= active_seq_get(scene);
+ Sequence *seq= seq_active_get(scene);
Sequence *neighbor;
int change = 0;
if (seq) {
@@ -237,9 +222,6 @@ static int sequencer_deselect_exec(bContext *C, wmOperator *op)
Sequence *seq;
int desel = 0;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
for(seq= ed->seqbasep->first; seq; seq=seq->next) {
if(seq->flag & SEQ_ALLSEL) {
desel= 1;
@@ -249,7 +231,7 @@ static int sequencer_deselect_exec(bContext *C, wmOperator *op)
for(seq= ed->seqbasep->first; seq; seq=seq->next) {
if (desel) {
- seq->flag &= SEQ_DESEL;
+ seq->flag &= ~SEQ_ALLSEL;
}
else {
seq->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL);
@@ -257,7 +239,7 @@ static int sequencer_deselect_exec(bContext *C, wmOperator *op)
}
}
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
@@ -271,8 +253,7 @@ void SEQUENCER_OT_select_all_toggle(struct wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_deselect_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -286,12 +267,9 @@ static int sequencer_select_inverse_exec(bContext *C, wmOperator *op)
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq;
- if(ed==NULL)
- return OPERATOR_CANCELLED;
-
for(seq= ed->seqbasep->first; seq; seq=seq->next) {
if (seq->flag & SELECT) {
- seq->flag &= SEQ_DESEL;
+ seq->flag &= ~SEQ_ALLSEL;
}
else {
seq->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL);
@@ -299,7 +277,7 @@ static int sequencer_select_inverse_exec(bContext *C, wmOperator *op)
}
}
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
@@ -313,8 +291,7 @@ void SEQUENCER_OT_select_inverse(struct wmOperatorType *ot)
/* api callbacks */
ot->exec= sequencer_select_inverse_exec;
-
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -363,7 +340,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
marker->flag |= SELECT;
}
else {
- deselect_markers(0, 0);
+ /* deselect_markers(0, 0); */ /* XXX, in 2.4x, seq selection used to deselect all, need to re-thnik this for 2.5 */
marker->flag |= SELECT;
}
@@ -388,6 +365,24 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
}
SEQ_END
+
+ {
+ SpaceSeq *sseq= CTX_wm_space_seq(C);
+ if (sseq && sseq->flag & SEQ_MARKER_TRANS) {
+ TimeMarker *marker;
+
+ for (marker= scene->markers.first; marker; marker= marker->next) {
+ if( ((x < CFRA) && marker->frame < CFRA) ||
+ ((x >= CFRA) && marker->frame >= CFRA)
+ ) {
+ marker->flag |= SELECT;
+ }
+ else {
+ marker->flag &= ~SELECT;
+ }
+ }
+ }
+ }
} else {
// seq= find_nearest_seq(scene, v2d, &hand, mval);
@@ -397,7 +392,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
deselect_all_seq(scene);
if(seq) {
- active_seq_set(scene, seq);
+ seq_active_set(scene, seq);
if ((seq->type == SEQ_IMAGE) || (seq->type == SEQ_MOVIE)) {
if(seq->strip) {
@@ -414,7 +409,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
switch(hand) {
case SEQ_SIDE_NONE:
if (linked_handle==0)
- seq->flag &= SEQ_DESEL;
+ seq->flag &= ~SEQ_ALLSEL;
break;
case SEQ_SIDE_LEFT:
seq->flag ^= SEQ_LEFTSEL;
@@ -510,7 +505,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
#endif
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
/* allowing tweaks */
return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
@@ -600,7 +595,7 @@ static int sequencer_select_more_exec(bContext *C, wmOperator *op)
if(!select_more_less_seq__internal(scene, 0, 0))
return OPERATOR_CANCELLED;
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
@@ -610,11 +605,11 @@ void SEQUENCER_OT_select_more(wmOperatorType *ot)
/* identifiers */
ot->name= "Select More";
ot->idname= "SEQUENCER_OT_select_more";
- ot->description="DOC_BROKEN";
+ ot->description="Select more strips adjacent to the current selection";
/* api callbacks */
ot->exec= sequencer_select_more_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -631,7 +626,7 @@ static int sequencer_select_less_exec(bContext *C, wmOperator *op)
if(!select_more_less_seq__internal(scene, 1, 0))
return OPERATOR_CANCELLED;
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
@@ -641,11 +636,11 @@ void SEQUENCER_OT_select_less(wmOperatorType *ot)
/* identifiers */
ot->name= "Select less";
ot->idname= "SEQUENCER_OT_select_less";
- ot->description="DOC_BROKEN";
+ ot->description="Shrink the current selection of adjacent selected strips";
/* api callbacks */
ot->exec= sequencer_select_less_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -686,7 +681,7 @@ static int sequencer_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEv
selected = select_more_less_seq__internal(scene, 1, 1);
}
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
@@ -696,7 +691,7 @@ void SEQUENCER_OT_select_linked_pick(wmOperatorType *ot)
/* identifiers */
ot->name= "Select pick linked";
ot->idname= "SEQUENCER_OT_select_linked_pick";
- ot->description="DOC_BROKEN";
+ ot->description="Select a chain of linked strips nearest to the mouse pointer";
/* api callbacks */
ot->invoke= sequencer_select_linked_pick_invoke;
@@ -721,7 +716,7 @@ static int sequencer_select_linked_exec(bContext *C, wmOperator *op)
selected = select_more_less_seq__internal(scene, 1, 1);
}
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
@@ -731,11 +726,11 @@ void SEQUENCER_OT_select_linked(wmOperatorType *ot)
/* identifiers */
ot->name= "Select linked";
ot->idname= "SEQUENCER_OT_select_linked";
- ot->description="DOC_BROKEN";
+ ot->description="Select all strips adjacent to the current selection";
/* api callbacks */
ot->exec= sequencer_select_linked_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -752,8 +747,6 @@ static int sequencer_select_handles_exec(bContext *C, wmOperator *op)
Sequence *seq;
int sel_side= RNA_enum_get(op->ptr, "side");
- if (ed==NULL)
- return OPERATOR_CANCELLED;
for(seq= ed->seqbasep->first; seq; seq=seq->next) {
if (seq->flag & SELECT) {
@@ -773,7 +766,7 @@ static int sequencer_select_handles_exec(bContext *C, wmOperator *op)
}
}
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
@@ -783,11 +776,11 @@ void SEQUENCER_OT_select_handles(wmOperatorType *ot)
/* identifiers */
ot->name= "Select Handles";
ot->idname= "SEQUENCER_OT_select_handles";
- ot->description="DOC_BROKEN";
+ ot->description="Select manipulator handles on the sides of the selected strip";
/* api callbacks */
ot->exec= sequencer_select_handles_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -801,7 +794,7 @@ static int sequencer_select_active_side_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, 0);
- Sequence *seq_act= active_seq_get(scene);
+ Sequence *seq_act= seq_active_get(scene);
if (ed==NULL || seq_act==NULL)
return OPERATOR_CANCELLED;
@@ -810,7 +803,7 @@ static int sequencer_select_active_side_exec(bContext *C, wmOperator *op)
select_active_side(ed->seqbasep, RNA_enum_get(op->ptr, "side"), seq_act->machine, seq_act->startdisp);
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
@@ -820,11 +813,11 @@ void SEQUENCER_OT_select_active_side(wmOperatorType *ot)
/* identifiers */
ot->name= "Select Active Side";
ot->idname= "SEQUENCER_OT_select_active_side";
- ot->description="DOC_BROKEN";
+ ot->description="Select strips on the nominated side of the active strip";
/* api callbacks */
ot->exec= sequencer_select_active_side_exec;
- ot->poll= ED_operator_sequencer_active;
+ ot->poll= sequencer_edit_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -867,12 +860,12 @@ static int sequencer_borderselect_exec(bContext *C, wmOperator *op)
if(BLI_isect_rctf(&rq, &rectf, 0)) {
if(selecting) seq->flag |= SELECT;
- else seq->flag &= SEQ_DESEL;
+ else seq->flag &= ~SEQ_ALLSEL;
recurs_sel_seq(seq);
}
}
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER|NA_SELECTED, scene);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index ba405f74ba6..586b76268e4 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,36 +29,27 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "BLI_rand.h"
-#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_screen.h"
#include "BKE_sequencer.h"
+#include "BKE_global.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
-
-#include "BIF_gl.h"
+#include "ED_view3d.h" /* only for sequencer view3d drawing callback */
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "ED_markers.h"
-
#include "sequencer_intern.h" // own include
/* ******************** manage regions ********************* */
@@ -110,44 +101,44 @@ void ED_sequencer_update_view(bContext *C, int view)
switch (view) {
case SEQ_VIEW_SEQUENCE:
- if (ar_main->flag & RGN_FLAG_HIDDEN) {
+ if (ar_main && (ar_main->flag & RGN_FLAG_HIDDEN)) {
ar_main->flag &= ~RGN_FLAG_HIDDEN;
ar_main->v2d.flag &= ~V2D_IS_INITIALISED;
}
- if (!(ar_preview->flag & RGN_FLAG_HIDDEN)) {
+ if (ar_preview && !(ar_preview->flag & RGN_FLAG_HIDDEN)) {
ar_preview->flag |= RGN_FLAG_HIDDEN;
ar_preview->v2d.flag &= ~V2D_IS_INITIALISED;
WM_event_remove_handlers(C, &ar_preview->handlers);
}
- ar_main->alignment= RGN_ALIGN_NONE;
- ar_preview->alignment= RGN_ALIGN_NONE;
+ if (ar_main) ar_main->alignment= RGN_ALIGN_NONE;
+ if (ar_preview) ar_preview->alignment= RGN_ALIGN_NONE;
break;
case SEQ_VIEW_PREVIEW:
- if (!(ar_main->flag & RGN_FLAG_HIDDEN)) {
+ if (ar_main && !(ar_main->flag & RGN_FLAG_HIDDEN)) {
ar_main->flag |= RGN_FLAG_HIDDEN;
ar_main->v2d.flag &= ~V2D_IS_INITIALISED;
WM_event_remove_handlers(C, &ar_main->handlers);
}
- if (ar_preview->flag & RGN_FLAG_HIDDEN) {
+ if (ar_preview && (ar_preview->flag & RGN_FLAG_HIDDEN)) {
ar_preview->flag &= ~RGN_FLAG_HIDDEN;
ar_preview->v2d.flag &= ~V2D_IS_INITIALISED;
ar_preview->v2d.cur = ar_preview->v2d.tot;
}
- ar_main->alignment= RGN_ALIGN_NONE;
- ar_preview->alignment= RGN_ALIGN_NONE;
+ if (ar_main) ar_main->alignment= RGN_ALIGN_NONE;
+ if (ar_preview) ar_preview->alignment= RGN_ALIGN_NONE;
break;
case SEQ_VIEW_SEQUENCE_PREVIEW:
- if (ar_main->flag & RGN_FLAG_HIDDEN) {
+ if (ar_main && (ar_main->flag & RGN_FLAG_HIDDEN)) {
ar_main->flag &= ~RGN_FLAG_HIDDEN;
ar_main->v2d.flag &= ~V2D_IS_INITIALISED;
}
- if (ar_preview->flag & RGN_FLAG_HIDDEN) {
+ if (ar_preview && (ar_preview->flag & RGN_FLAG_HIDDEN)) {
ar_preview->flag &= ~RGN_FLAG_HIDDEN;
ar_preview->v2d.flag &= ~V2D_IS_INITIALISED;
ar_preview->v2d.cur = ar_preview->v2d.tot;
}
- ar_main->alignment= RGN_ALIGN_NONE;
- ar_preview->alignment= RGN_ALIGN_TOP;
+ if (ar_main) ar_main->alignment= RGN_ALIGN_NONE;
+ if (ar_preview) ar_preview->alignment= RGN_ALIGN_TOP;
break;
}
@@ -195,15 +186,15 @@ static SpaceLink *sequencer_new(const bContext *C)
/* for now, aspect ratio should be maintained, and zoom is clamped within sane default limits */
ar->v2d.keepzoom= V2D_KEEPASPECT | V2D_KEEPZOOM;
ar->v2d.minzoom= 0.00001f;
- ar->v2d.maxzoom= 100000.0f;
- ar->v2d.tot.xmin= -960.0f; /* 1920 width centered */
- ar->v2d.tot.ymin= -540.0f; /* 1080 height centered */
- ar->v2d.tot.xmax= 960.0f;
- ar->v2d.tot.ymax= 540.0f;
- ar->v2d.min[0]= 0.0f;
- ar->v2d.min[1]= 0.0f;
- ar->v2d.max[0]= 12000.0f;
- ar->v2d.max[1]= 12000.0f;
+ ar->v2d.maxzoom= 100000.0f;
+ ar->v2d.tot.xmin= -960.0f; /* 1920 width centered */
+ ar->v2d.tot.ymin= -540.0f; /* 1080 height centered */
+ ar->v2d.tot.xmax= 960.0f;
+ ar->v2d.tot.ymax= 540.0f;
+ ar->v2d.min[0]= 0.0f;
+ ar->v2d.min[1]= 0.0f;
+ ar->v2d.max[0]= 12000.0f;
+ ar->v2d.max[1]= 12000.0f;
ar->v2d.cur= ar->v2d.tot;
ar->v2d.align= V2D_ALIGN_FREE;
ar->v2d.keeptot= V2D_KEEPTOT_FREE;
@@ -315,7 +306,7 @@ static int image_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
static int movie_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
{
if(drag->type==WM_DRAG_PATH)
- if(ELEM(drag->icon, ICON_FILE_MOVIE, ICON_FILE_BLANK)) /* rule might not work? */
+ if(ELEM3(drag->icon, 0, ICON_FILE_MOVIE, ICON_FILE_BLANK)) /* rule might not work? */
return 1;
return 0;
}
@@ -331,7 +322,7 @@ static int sound_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
static void sequencer_drop_copy(wmDrag *drag, wmDropBox *drop)
{
/* copy drag path to properties */
- RNA_string_set(drop->ptr, "path", drag->path);
+ RNA_string_set(drop->ptr, "filepath", drag->path);
}
/* this region dropbox definition */
@@ -364,9 +355,9 @@ static void sequencer_main_area_listener(ARegion *ar, wmNotifier *wmn)
case NC_SCENE:
switch(wmn->data) {
case ND_FRAME:
+ case ND_FRAME_RANGE:
case ND_MARKERS:
case ND_SEQUENCER:
- case ND_SEQUENCER_SELECT:
ED_region_tag_redraw(ar);
break;
}
@@ -405,7 +396,21 @@ static void sequencer_preview_area_draw(const bContext *C, ARegion *ar)
/* XXX temp fix for wrong setting in sseq->mainb */
if (sseq->mainb == SEQ_DRAW_SEQUENCE) sseq->mainb = SEQ_DRAW_IMG_IMBUF;
- draw_image_seq(C, scene, ar, sseq);
+
+ draw_image_seq(C, scene, ar, sseq, scene->r.cfra, 0);
+
+ if(scene->ed && scene->ed->over_flag & SEQ_EDIT_OVERLAY_SHOW && sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
+ int over_cfra;
+
+ if(scene->ed->over_flag & SEQ_EDIT_OVERLAY_ABS)
+ over_cfra= scene->ed->over_cfra;
+ else
+ over_cfra= scene->r.cfra + scene->ed->over_ofs;
+
+ if(over_cfra != scene->r.cfra)
+ draw_image_seq(C, scene, ar, sseq, scene->r.cfra, over_cfra - scene->r.cfra);
+ }
+
}
static void sequencer_preview_area_listener(ARegion *ar, wmNotifier *wmn)
@@ -417,7 +422,6 @@ static void sequencer_preview_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_FRAME:
case ND_MARKERS:
case ND_SEQUENCER:
- case ND_SEQUENCER_SELECT:
ED_region_tag_redraw(ar);
break;
}
@@ -459,7 +463,6 @@ static void sequencer_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
switch(wmn->data) {
case ND_FRAME:
case ND_SEQUENCER:
- case ND_SEQUENCER_SELECT:
ED_region_tag_redraw(ar);
break;
}
@@ -540,5 +543,10 @@ void ED_spacetype_sequencer(void)
BLI_addhead(&st->regiontypes, art);
BKE_spacetype_register(st);
+
+ /* set the sequencer callback when not in background mode */
+ if(G.background==0) {
+ sequencer_view3d_cb= ED_view3d_draw_offscreen_imbuf_simple;
+ }
}
diff --git a/source/blender/editors/space_sound/CMakeLists.txt b/source/blender/editors/space_sound/CMakeLists.txt
new file mode 100644
index 00000000000..60c8f5e44bd
--- /dev/null
+++ b/source/blender/editors/space_sound/CMakeLists.txt
@@ -0,0 +1,34 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_space_sound "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_sound/sound_header.c b/source/blender/editors/space_sound/sound_header.c
index 2e6bf599692..acc9645af9d 100644
--- a/source/blender/editors/space_sound/sound_header.c
+++ b/source/blender/editors/space_sound/sound_header.c
@@ -29,10 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -45,8 +41,6 @@
#include "ED_types.h"
#include "ED_util.h"
-#include "WM_api.h"
-#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
diff --git a/source/blender/editors/space_sound/sound_intern.h b/source/blender/editors/space_sound/sound_intern.h
index fd64ccb22b1..7117e7d6df9 100644
--- a/source/blender/editors/space_sound/sound_intern.h
+++ b/source/blender/editors/space_sound/sound_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/space_sound/space_sound.c b/source/blender/editors/space_sound/space_sound.c
index f0ec9b3ebb9..174d686cf73 100644
--- a/source/blender/editors/space_sound/space_sound.c
+++ b/source/blender/editors/space_sound/space_sound.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,10 +30,7 @@
#include <stdio.h>
#include "DNA_sound_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -45,7 +42,6 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
@@ -53,11 +49,9 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "ED_markers.h"
#include "sound_intern.h" // own include
@@ -156,11 +150,9 @@ static void sound_main_area_draw(const bContext *C, ARegion *ar)
/* draw entirely, view changes should be handled here */
// SpaceSound *ssound= (SpaceSound*)CTX_wm_space_data(C);
View2D *v2d= &ar->v2d;
- float col[3];
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
diff --git a/source/blender/editors/space_text/CMakeLists.txt b/source/blender/editors/space_text/CMakeLists.txt
new file mode 100644
index 00000000000..0616cf5147a
--- /dev/null
+++ b/source/blender/editors/space_text/CMakeLists.txt
@@ -0,0 +1,41 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenfont
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+IF(WITH_PYTHON)
+ SET(INC ${INC} ${PYTHON_INC} ../../python)
+ELSE(WITH_PYTHON)
+ ADD_DEFINITIONS(-DDISABLE_PYTHON)
+ENDIF(WITH_PYTHON)
+
+BLENDERLIB(bf_editor_text "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c
index 44aeb9158f0..7f3741e8e17 100644
--- a/source/blender/editors/space_text/space_text.c
+++ b/source/blender/editors/space_text/space_text.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,10 +31,6 @@
#include "DNA_text_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -46,7 +42,6 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
@@ -60,7 +55,6 @@
#include "RNA_access.h"
-#include "ED_markers.h"
#include "text_intern.h" // own include
@@ -124,15 +118,13 @@ static void text_listener(ScrArea *sa, wmNotifier *wmn)
/* context changes */
switch(wmn->category) {
case NC_TEXT:
- if(!wmn->reference || wmn->reference == st->text) {
+ if(!wmn->reference || wmn->reference == st->text || wmn->data == ND_DISPLAY || wmn->action == NA_EDITED) {
ED_area_tag_redraw(sa);
if(wmn->action == NA_EDITED)
if(st->text)
text_update_edited(st->text);
}
- else if(wmn->data == ND_DISPLAY)
- ED_area_tag_redraw(sa);
break;
case NC_SPACE:
@@ -223,19 +215,19 @@ static void text_keymap(struct wmKeyConfig *keyconf)
#endif
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.font_size");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
RNA_boolean_set(kmi->ptr, "reverse", 0);
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.font_size");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
RNA_boolean_set(kmi->ptr, "reverse", 1);
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.font_size");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
RNA_boolean_set(kmi->ptr, "reverse", 0);
kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.font_size");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
RNA_boolean_set(kmi->ptr, "reverse", 1);
WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
@@ -313,6 +305,8 @@ static void text_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "TEXT_OT_line_break", RETKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "TEXT_OT_line_break", PADENTER, KM_PRESS, 0, 0);
+ WM_keymap_add_menu(keymap, "TEXT_MT_toolbox", RIGHTMOUSE, KM_PRESS, KM_ANY, 0);
+
WM_keymap_add_item(keymap, "TEXT_OT_line_number", KM_TEXTINPUT, KM_ANY, KM_ANY, 0);
WM_keymap_add_item(keymap, "TEXT_OT_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
}
@@ -340,12 +334,18 @@ static int text_context(const bContext *C, const char *member, bContextDataResul
static void text_main_area_init(wmWindowManager *wm, ARegion *ar)
{
wmKeyMap *keymap;
+ ListBase *lb;
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy);
/* own keymap */
keymap= WM_keymap_find(wm->defaultconf, "Text", SPACE_TEXT, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+
+ /* add drop boxes */
+ lb = WM_dropboxmap_find("Text", SPACE_TEXT, RGN_TYPE_WINDOW);
+
+ WM_event_add_dropbox_handler(&ar->handlers, lb);
}
static void text_main_area_draw(const bContext *C, ARegion *ar)
@@ -353,11 +353,9 @@ static void text_main_area_draw(const bContext *C, ARegion *ar)
/* draw entirely, view changes should be handled here */
SpaceText *st= CTX_wm_space_text(C);
//View2D *v2d= &ar->v2d;
- float col[3];
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
// UI_view2d_view_ortho(C, v2d);
@@ -376,6 +374,36 @@ static void text_cursor(wmWindow *win, ScrArea *sa, ARegion *ar)
WM_cursor_set(win, BC_TEXTEDITCURSOR);
}
+
+
+/* ************* dropboxes ************* */
+
+static int text_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+{
+ if(drag->type==WM_DRAG_PATH)
+ if(ELEM(drag->icon, 0, ICON_FILE_BLANK)) /* rule might not work? */
+ return 1;
+ return 0;
+}
+
+static void text_drop_copy(wmDrag *drag, wmDropBox *drop)
+{
+ /* copy drag path to properties */
+ RNA_string_set(drop->ptr, "filepath", drag->path);
+}
+
+/* this region dropbox definition */
+static void text_dropboxes(void)
+{
+ ListBase *lb= WM_dropboxmap_find("Text", SPACE_TEXT, RGN_TYPE_WINDOW);
+
+ WM_dropbox_add(lb, "TEXT_OT_open", text_drop_poll, text_drop_copy);
+
+}
+
+/* ************* end drop *********** */
+
+
/****************** header region ******************/
/* add handlers, stuff you only do once or on area/region changes */
@@ -421,6 +449,7 @@ void ED_spacetype_text(void)
st->keymap= text_keymap;
st->listener= text_listener;
st->context= text_context;
+ st->dropboxes = text_dropboxes;
/* regions: main window */
art= MEM_callocN(sizeof(ARegionType), "spacetype text region");
@@ -435,7 +464,7 @@ void ED_spacetype_text(void)
art= MEM_callocN(sizeof(ARegionType), "spacetype text region");
art->regionid = RGN_TYPE_UI;
art->prefsizex= UI_COMPACT_PANEL_WIDTH;
- art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D;
+ art->keymapflag= ED_KEYMAP_UI;
art->init= text_properties_area_init;
art->draw= text_properties_area_draw;
diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c
index 8f9f475b9c8..873deb30511 100644
--- a/source/blender/editors/space_text/text_draw.c
+++ b/source/blender/editors/space_text/text_draw.c
@@ -60,18 +60,15 @@
#include "text_intern.h"
/******************** text font drawing ******************/
+static int mono= -1; // XXX needs proper storage and change all the BLF_* here
static void text_font_begin(SpaceText *st)
{
- static int mono= -1; // XXX needs proper storage
-
if(mono == -1)
mono= BLF_load_mem("monospace", (unsigned char*)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
- BLF_set(mono);
- BLF_aspect(1.0);
-
- BLF_size(st->lheight, 72);
+ BLF_aspect(mono, 1.0);
+ BLF_size(mono, st->lheight, 72);
}
static void text_font_end(SpaceText *st)
@@ -80,10 +77,10 @@ static void text_font_end(SpaceText *st)
static int text_font_draw(SpaceText *st, int x, int y, char *str)
{
- BLF_position(x, y, 0);
- BLF_draw(str);
+ BLF_position(mono, x, y, 0);
+ BLF_draw(mono, str);
- return BLF_width(str);
+ return BLF_width(mono, str);
}
static int text_font_draw_character(SpaceText *st, int x, int y, char c)
@@ -93,15 +90,15 @@ static int text_font_draw_character(SpaceText *st, int x, int y, char c)
str[0]= c;
str[1]= '\0';
- BLF_position(x, y, 0);
- BLF_draw(str);
+ BLF_position(mono, x, y, 0);
+ BLF_draw(mono, str);
return st->cwidth;
}
int text_font_width(SpaceText *st, char *str)
{
- return BLF_width(str);
+ return BLF_width(mono, str);
}
/****************** flatten string **********************/
@@ -227,6 +224,24 @@ static int find_specialvar(char *string)
return i;
}
+static int find_bool(char *string)
+{
+ int i = 0;
+ /* Check for "False" */
+ if(string[0]=='F' && string[1]=='a' && string[2]=='l' && string[3]=='s' && string[4]=='e')
+ i = 5;
+ /* Check for "True" */
+ else if(string[0]=='T' && string[1]=='r' && string[2]=='u' && string[3]=='e')
+ i = 4;
+ /* Check for "None" */
+ else if(string[0]=='N' && string[1]=='o' && string[2]=='n' && string[3]=='e')
+ i = 4;
+ /* If next source char is an identifier (eg. 'i' in "definate") no match */
+ if(i==0 || text_check_identifier(string[i]))
+ return -1;
+ return i;
+}
+
/* Ensures the format string for the given line is long enough, reallocating
as needed. Allocation is done here, alone, to ensure consistency. */
int text_check_format_len(TextLine *line, unsigned int len)
@@ -249,14 +264,14 @@ int text_check_format_len(TextLine *line, unsigned int len)
/* Formats the specified line. If do_next is set, the process will move on to
the succeeding line if it is affected (eg. multiline strings). Format strings
may contain any of the following characters:
- '_' Whitespace
- '#' Comment text
- '!' Punctuation and other symbols
- 'n' Numerals
- 'l' String letters
- 'v' Special variables (class, def)
- 'b' Built-in names (print, for, etc.)
- 'q' Other text (identifiers, etc.)
+ '_' Whitespace
+ '#' Comment text
+ '!' Punctuation and other symbols
+ 'n' Numerals
+ 'l' String letters
+ 'v' Special variables (class, def)
+ 'b' Built-in names (print, for, etc.)
+ 'q' Other text (identifiers, etc.)
It is terminated with a null-terminator '\0' followed by a continuation
flag indicating whether the line is part of a multi-line string. */
@@ -338,6 +353,17 @@ static void txt_format_line(SpaceText *st, TextLine *line, int do_next)
/* Numbers (digits not part of an identifier and periods followed by digits) */
else if((prev != 'q' && text_check_digit(*str)) || (*str == '.' && text_check_digit(*(str+1))))
*fmt = 'n';
+ /* Booleans */
+ else if(prev != 'q' && (i=find_bool(str)) != -1)
+ if(i>0) {
+ while(i>1) {
+ *fmt = 'n'; fmt++; str++;
+ i--;
+ }
+ *fmt = 'n';
+ }
+ else
+ *fmt = 'q';
/* Punctuation */
else if(text_check_delim(*str))
*fmt = '!';
@@ -1237,7 +1263,7 @@ void draw_text_main(SpaceText *st, ARegion *ar)
}
text_font_begin(st);
- st->cwidth= BLF_fixed_width();
+ st->cwidth= BLF_fixed_width(mono);
st->cwidth= MAX2(st->cwidth, 1);
/* draw line numbers background */
@@ -1307,7 +1333,7 @@ void draw_text_main(SpaceText *st, ARegion *ar)
void text_update_character_width(SpaceText *st)
{
text_font_begin(st);
- st->cwidth= BLF_fixed_width();
+ st->cwidth= BLF_fixed_width(mono);
st->cwidth= MAX2(st->cwidth, 1);
text_font_end(st);
}
@@ -1318,11 +1344,13 @@ void text_update_cursor_moved(bContext *C)
{
ScrArea *sa= CTX_wm_area(C);
SpaceText *st= CTX_wm_space_text(C);
- Text *text= st->text;
+ Text *text;
ARegion *ar;
int i, x, winx= 0;
- if(!st) return;
+ if(!st || !st->text || st->text->curl) return;
+
+ text= st->text;
for(ar=sa->regionbase.first; ar; ar= ar->next)
if(ar->regiontype==RGN_TYPE_WINDOW)
@@ -1330,8 +1358,6 @@ void text_update_cursor_moved(bContext *C)
winx -= TXT_SCROLL_WIDTH;
- if(!text || !text->curl) return;
-
text_update_character_width(st);
i= txt_get_span(text->lines.first, text->sell);
diff --git a/source/blender/editors/space_text/text_header.c b/source/blender/editors/space_text/text_header.c
index f9b11022cd1..3b1c882ff2f 100644
--- a/source/blender/editors/space_text/text_header.c
+++ b/source/blender/editors/space_text/text_header.c
@@ -42,10 +42,6 @@
#include "BLI_winstuff.h"
#endif
-#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_text_types.h"
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
@@ -61,20 +57,13 @@
#include "BKE_text.h"
#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
-#include "WM_api.h"
#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
-#include "RNA_access.h"
#ifndef DISABLE_PYTHON
#include "BPY_extern.h"
@@ -136,7 +125,7 @@ void TEXT_OT_properties(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Properties";
- ot->description= "Toggle text properties panel";
+ ot->description= "Toggle text properties panel";
ot->idname= "TEXT_OT_properties";
/* api callbacks */
@@ -214,10 +203,10 @@ void TEXT_OT_properties(wmOperatorType *ot)
uiPopupMenu *pup;
pup= uiPupMenuBegin(C, "Text", 0);
- uiItemEnumO(layout, "Top of File", 0, "TEXT_OT_move", "type", FILE_TOP);
- uiItemEnumO(layout, "Bottom of File", 0, "TEXT_OT_move", "type", FILE_BOTTOM);
- uiItemEnumO(layout, "Page Up", 0, "TEXT_OT_move", "type", PREV_PAGE);
- uiItemEnumO(layout, "Page Down", 0, "TEXT_OT_move", "type", NEXT_PAGE);
+ uiItemEnumO(layout, "TEXT_OT_move", "Top of File", 0, "type", FILE_TOP);
+ uiItemEnumO(layout, "TEXT_OT_move", "Bottom of File", 0, "type", FILE_BOTTOM);
+ uiItemEnumO(layout, "TEXT_OT_move", "Page Up", 0, "type", PREV_PAGE);
+ uiItemEnumO(layout, "TEXT_OT_move", "Page Down", 0, "type", NEXT_PAGE);
uiPupMenuEnd(C, pup);
}
#endif
diff --git a/source/blender/editors/space_text/text_intern.h b/source/blender/editors/space_text/text_intern.h
index e8cecab8404..a93f30ac62a 100644
--- a/source/blender/editors/space_text/text_intern.h
+++ b/source/blender/editors/space_text/text_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -99,7 +99,7 @@ void text_pop_suggest_list();
/* text_ops.c */
enum { LINE_BEGIN, LINE_END, FILE_TOP, FILE_BOTTOM, PREV_CHAR, NEXT_CHAR,
- PREV_WORD, NEXT_WORD, PREV_LINE, NEXT_LINE, PREV_PAGE, NEXT_PAGE };
+ PREV_WORD, NEXT_WORD, PREV_LINE, NEXT_LINE, PREV_PAGE, NEXT_PAGE };
enum { DEL_NEXT_CHAR, DEL_PREV_CHAR, DEL_NEXT_WORD, DEL_PREV_WORD };
void TEXT_OT_new(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c
index be1151219a2..a684c4dce0e 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -35,13 +35,7 @@
#include "MEM_guardedalloc.h"
#include "DNA_constraint_types.h"
-#include "DNA_object_types.h"
-#include "DNA_action_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_text_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_blenlib.h"
#include "PIL_time.h"
@@ -196,6 +190,9 @@ void TEXT_OT_new(wmOperatorType *ot)
/* api callbacks */
ot->exec= new_exec;
ot->poll= text_new_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_UNDO;
}
/******************* open operator *********************/
@@ -221,8 +218,9 @@ static int open_exec(bContext *C, wmOperator *op)
PropertyPointerRNA *pprop;
PointerRNA idptr;
char str[FILE_MAX];
+ short internal = RNA_int_get(op->ptr, "internal");
- RNA_string_get(op->ptr, "path", str);
+ RNA_string_get(op->ptr, "filepath", str);
text= add_text(str, G.sce);
@@ -250,6 +248,13 @@ static int open_exec(bContext *C, wmOperator *op)
st->text= text;
st->top= 0;
}
+
+ if (internal) {
+ if(text->name)
+ MEM_freeN(text->name);
+
+ text->name = NULL;
+ }
WM_event_add_notifier(C, NC_TEXT|NA_ADDED, text);
@@ -263,11 +268,11 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
Text *text= CTX_data_edit_text(C);
char *path= (text && text->name)? text->name: G.sce;
- if(RNA_property_is_set(op->ptr, "path"))
+ if(RNA_property_is_set(op->ptr, "filepath"))
return open_exec(C, op);
open_init(C, op);
- RNA_string_set(op->ptr, "path", path);
+ RNA_string_set(op->ptr, "filepath", path);
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
@@ -286,8 +291,12 @@ void TEXT_OT_open(wmOperatorType *ot)
ot->cancel= open_cancel;
ot->poll= text_new_poll;
+ /* flags */
+ ot->flag= OPTYPE_UNDO;
+
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|TEXTFILE|PYSCRIPTFILE, FILE_SPECIAL, FILE_OPENFILE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|TEXTFILE|PYSCRIPTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH); //XXX TODO, relative_path
+ RNA_def_boolean(ot->srna, "internal", 0, "Make internal", "Make text file internal after loading");
}
/******************* reload operator *********************/
@@ -366,6 +375,9 @@ void TEXT_OT_unlink(wmOperatorType *ot)
ot->exec= unlink_exec;
ot->invoke= WM_operator_confirm;
ot->poll= text_edit_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_UNDO;
}
/******************* make internal operator *********************/
@@ -397,6 +409,9 @@ void TEXT_OT_make_internal(wmOperatorType *ot)
/* api callbacks */
ot->exec= make_internal_exec;
ot->poll= text_edit_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_UNDO;
}
/******************* save operator *********************/
@@ -420,7 +435,7 @@ static void txt_write_file(Text *text, ReportList *reports)
char file[FILE_MAXDIR+FILE_MAXFILE];
BLI_strncpy(file, text->name, FILE_MAXDIR+FILE_MAXFILE);
- BLI_convertstringcode(file, G.sce);
+ BLI_path_abs(file, G.sce);
fp= fopen(file, "w");
if(fp==NULL) {
@@ -479,7 +494,7 @@ static int save_as_exec(bContext *C, wmOperator *op)
if(!text)
return OPERATOR_CANCELLED;
- RNA_string_get(op->ptr, "path", str);
+ RNA_string_get(op->ptr, "filepath", str);
if(text->name) MEM_freeN(text->name);
text->name= BLI_strdup(str);
@@ -498,7 +513,7 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
Text *text= CTX_data_edit_text(C);
char *str;
- if(RNA_property_is_set(op->ptr, "path"))
+ if(RNA_property_is_set(op->ptr, "filepath"))
return save_as_exec(C, op);
if(text->name)
@@ -508,7 +523,7 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
else
str= G.sce;
- RNA_string_set(op->ptr, "path", str);
+ RNA_string_set(op->ptr, "filepath", str);
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
@@ -527,7 +542,7 @@ void TEXT_OT_save_as(wmOperatorType *ot)
ot->poll= text_edit_poll;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|TEXTFILE|PYSCRIPTFILE, FILE_SPECIAL, FILE_SAVE);
+ WM_operator_properties_filesel(ot, FOLDERFILE|TEXTFILE|PYSCRIPTFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH); //XXX TODO, relative_path
}
/******************* run script operator *********************/
@@ -746,7 +761,7 @@ void TEXT_OT_paste(wmOperatorType *ot)
/* api callbacks */
ot->exec= paste_exec;
ot->poll= text_edit_poll;
-
+
/* properties */
RNA_def_boolean(ot->srna, "selection", 0, "Selection", "Paste text selected elsewhere rather than copied, X11 only.");
}
@@ -1592,10 +1607,12 @@ static int jump_exec(bContext *C, wmOperator *op)
int line= RNA_int_get(op->ptr, "line");
short nlines= txt_get_span(text->lines.first, text->lines.last)+1;
- if(line < 1 || line > nlines)
- return OPERATOR_CANCELLED;
-
- txt_move_toline(text, line-1, 0);
+ if(line < 1)
+ txt_move_toline(text, 1, 0);
+ else if(line > nlines)
+ txt_move_toline(text, nlines-1, 0);
+ else
+ txt_move_toline(text, line-1, 0);
text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
@@ -1603,6 +1620,12 @@ static int jump_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int jump_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ return WM_operator_props_dialog_popup(C,op,200,100);
+
+}
+
void TEXT_OT_jump(wmOperatorType *ot)
{
/* identifiers */
@@ -1611,7 +1634,7 @@ void TEXT_OT_jump(wmOperatorType *ot)
ot->description= "Jump cursor to line";
/* api callbacks */
- ot->invoke= WM_operator_props_popup;
+ ot->invoke= jump_invoke;
ot->exec= jump_exec;
ot->poll= text_edit_poll;
@@ -1699,7 +1722,7 @@ static void screen_skip(SpaceText *st, int lines)
{
int last;
- st->top += lines;
+ st->top += lines;
last= txt_get_span(st->text->lines.first, st->text->lines.last);
last= last - (st->viewlines/2);
@@ -1849,9 +1872,9 @@ void TEXT_OT_scroll(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Scroll";
- /*don't really see the difference between this and
- scroll_bar. Both do basically the same thing (aside
- from keymaps).*/
+ /*don't really see the difference between this and
+ scroll_bar. Both do basically the same thing (aside
+ from keymaps).*/
ot->idname= "TEXT_OT_scroll";
ot->description= "Scroll text screen";
@@ -1902,9 +1925,9 @@ void TEXT_OT_scroll_bar(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Scrollbar";
- /*don't really see the difference between this and
- scroll. Both do basically the same thing (aside
- from keymaps).*/
+ /*don't really see the difference between this and
+ scroll. Both do basically the same thing (aside
+ from keymaps).*/
ot->idname= "TEXT_OT_scroll_bar";
ot->description= "Scroll text screen";
@@ -2542,7 +2565,7 @@ int text_file_modified(Text *text)
return 0;
BLI_strncpy(file, text->name, FILE_MAXDIR+FILE_MAXFILE);
- BLI_convertstringcode(file, G.sce);
+ BLI_path_abs(file, G.sce);
if(!BLI_exists(file))
return 2;
@@ -2570,7 +2593,7 @@ static void text_ignore_modified(Text *text)
if(!text || !text->name) return;
BLI_strncpy(file, text->name, FILE_MAXDIR+FILE_MAXFILE);
- BLI_convertstringcode(file, G.sce);
+ BLI_path_abs(file, G.sce);
if(!BLI_exists(file)) return;
@@ -2614,25 +2637,25 @@ static int resolve_conflict_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* modified locally and externally, ahhh. offer more possibilites. */
pup= uiPupMenuBegin(C, "File Modified Outside and Inside Blender", 0);
layout= uiPupMenuLayout(pup);
- uiItemEnumO(layout, "Reload from disk (ignore local changes)", 0, op->type->idname, "resolution", RESOLVE_RELOAD);
- uiItemEnumO(layout, "Save to disk (ignore outside changes)", 0, op->type->idname, "resolution", RESOLVE_SAVE);
- uiItemEnumO(layout, "Make text internal (separate copy)", 0, op->type->idname, "resolution", RESOLVE_MAKE_INTERNAL);
+ uiItemEnumO(layout, op->type->idname, "Reload from disk (ignore local changes)", 0, "resolution", RESOLVE_RELOAD);
+ uiItemEnumO(layout, op->type->idname, "Save to disk (ignore outside changes)", 0, "resolution", RESOLVE_SAVE);
+ uiItemEnumO(layout, op->type->idname, "Make text internal (separate copy)", 0, "resolution", RESOLVE_MAKE_INTERNAL);
uiPupMenuEnd(C, pup);
}
else {
pup= uiPupMenuBegin(C, "File Modified Outside Blender", 0);
layout= uiPupMenuLayout(pup);
- uiItemEnumO(layout, "Reload from disk", 0, op->type->idname, "resolution", RESOLVE_RELOAD);
- uiItemEnumO(layout, "Make text internal (separate copy)", 0, op->type->idname, "resolution", RESOLVE_MAKE_INTERNAL);
- uiItemEnumO(layout, "Ignore", 0, op->type->idname, "resolution", RESOLVE_IGNORE);
+ uiItemEnumO(layout, op->type->idname, "Reload from disk", 0, "resolution", RESOLVE_RELOAD);
+ uiItemEnumO(layout, op->type->idname, "Make text internal (separate copy)", 0, "resolution", RESOLVE_MAKE_INTERNAL);
+ uiItemEnumO(layout, op->type->idname, "Ignore", 0, "resolution", RESOLVE_IGNORE);
uiPupMenuEnd(C, pup);
}
break;
case 2:
pup= uiPupMenuBegin(C, "File Deleted Outside Blender", 0);
layout= uiPupMenuLayout(pup);
- uiItemEnumO(layout, "Make text internal", 0, op->type->idname, "resolution", RESOLVE_MAKE_INTERNAL);
- uiItemEnumO(layout, "Recreate file", 0, op->type->idname, "resolution", RESOLVE_SAVE);
+ uiItemEnumO(layout, op->type->idname, "Make text internal", 0, "resolution", RESOLVE_MAKE_INTERNAL);
+ uiItemEnumO(layout, op->type->idname, "Recreate file", 0, "resolution", RESOLVE_SAVE);
uiPupMenuEnd(C, pup);
break;
}
diff --git a/source/blender/editors/space_text/text_python.c b/source/blender/editors/space_text/text_python.c
index c5d56408b1e..aee1a7ecfd6 100644
--- a/source/blender/editors/space_text/text_python.c
+++ b/source/blender/editors/space_text/text_python.c
@@ -39,7 +39,6 @@
#include "BLI_blenlib.h"
-#include "WM_api.h"
#include "WM_types.h"
#include "text_intern.h"
diff --git a/source/blender/editors/space_time/CMakeLists.txt b/source/blender/editors/space_time/CMakeLists.txt
new file mode 100644
index 00000000000..39b7ba355b9
--- /dev/null
+++ b/source/blender/editors/space_time/CMakeLists.txt
@@ -0,0 +1,34 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_space_time "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c
index 0dc4bff0ebf..b73c08e6542 100644
--- a/source/blender/editors/space_time/space_time.c
+++ b/source/blender/editors/space_time/space_time.c
@@ -30,10 +30,8 @@
#include <stdio.h>
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
+#include "DNA_particle_types.h"
#include "MEM_guardedalloc.h"
@@ -43,13 +41,12 @@
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_screen.h"
+#include "BKE_pointcache.h"
#include "BKE_utildefines.h"
#include "ED_anim_api.h"
#include "ED_keyframes_draw.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
-#include "ED_util.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -57,7 +54,6 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
@@ -90,6 +86,174 @@ static void time_draw_sfra_efra(const bContext *C, SpaceTime *stime, ARegion *ar
fdrawline((float)PEFRA, v2d->cur.ymin, (float)PEFRA, v2d->cur.ymax);
}
+#define CACHE_DRAW_HEIGHT 3.0f
+
+static void time_draw_cache(const bContext *C, SpaceTime *stime, ARegion *ar)
+{
+ SpaceTimeCache *stc;
+ float yoffs=0.f;
+
+ if (!(stime->cache_display & TIME_CACHE_DISPLAY))
+ return;
+
+ for (stc= stime->caches.first; stc; stc=stc->next) {
+ float col[4];
+
+ if (!stc->array || !stc->ok)
+ continue;
+
+ glPushMatrix();
+ glTranslatef(0.0, (float)V2D_SCROLL_HEIGHT+yoffs, 0.0);
+ glScalef(1.0, CACHE_DRAW_HEIGHT, 0.0);
+
+ switch(stc->type) {
+ case PTCACHE_TYPE_SOFTBODY:
+ col[0] = 1.0; col[1] = 0.4; col[2] = 0.02;
+ col[3] = 0.1;
+ break;
+ case PTCACHE_TYPE_PARTICLES:
+ col[0] = 1.0; col[1] = 0.1; col[2] = 0.02;
+ col[3] = 0.1;
+ break;
+ case PTCACHE_TYPE_CLOTH:
+ col[0] = 0.1; col[1] = 0.1; col[2] = 0.75;
+ col[3] = 0.1;
+ break;
+ case PTCACHE_TYPE_SMOKE_DOMAIN:
+ case PTCACHE_TYPE_SMOKE_HIGHRES:
+ col[0] = 0.2; col[1] = 0.2; col[2] = 0.2;
+ col[3] = 0.1;
+ break;
+ }
+ glColor4fv(col);
+
+ glEnable(GL_BLEND);
+
+ glRectf((float)stc->startframe, 0.0, (float)stc->endframe, 1.0);
+
+ col[3] = 0.4;
+ if (stc->flag & PTCACHE_BAKED) {
+ col[0] -= 0.4; col[1] -= 0.4; col[2] -= 0.4;
+ }
+ glColor4fv(col);
+
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glVertexPointer(2, GL_FLOAT, 0, stc->array);
+ glDrawArrays(GL_QUADS, 0, stc->len);
+ glDisableClientState(GL_VERTEX_ARRAY);
+
+ glDisable(GL_BLEND);
+
+ glPopMatrix();
+
+ yoffs += CACHE_DRAW_HEIGHT;
+ }
+}
+
+static void time_cache_free(SpaceTime *stime)
+{
+ SpaceTimeCache *stc;
+
+ for (stc= stime->caches.first; stc; stc=stc->next) {
+ if (stc->array) {
+ MEM_freeN(stc->array);
+ stc->array = NULL;
+ }
+ }
+
+ BLI_freelistN(&stime->caches);
+}
+
+static void time_cache_refresh(const bContext *C, SpaceTime *stime, ARegion *ar)
+{
+ Object *ob = CTX_data_active_object(C);
+ PTCacheID *pid;
+ ListBase pidlist;
+
+ time_cache_free(stime);
+
+ if (!(stime->cache_display & TIME_CACHE_DISPLAY) || (!ob))
+ return;
+
+ BKE_ptcache_ids_from_object(&pidlist, ob, NULL, 0);
+
+ /* iterate over pointcaches on the active object,
+ * add spacetimecache and vertex array for each */
+ for(pid=pidlist.first; pid; pid=pid->next) {
+ SpaceTimeCache *stc;
+ float *fp, *array;
+ int i, len;
+
+ switch(pid->type) {
+ case PTCACHE_TYPE_SOFTBODY:
+ if (!(stime->cache_display & TIME_CACHE_SOFTBODY)) continue;
+ break;
+ case PTCACHE_TYPE_PARTICLES:
+ if (!(stime->cache_display & TIME_CACHE_PARTICLES)) continue;
+ break;
+ case PTCACHE_TYPE_CLOTH:
+ if (!(stime->cache_display & TIME_CACHE_CLOTH)) continue;
+ break;
+ case PTCACHE_TYPE_SMOKE_DOMAIN:
+ case PTCACHE_TYPE_SMOKE_HIGHRES:
+ if (!(stime->cache_display & TIME_CACHE_SMOKE)) continue;
+ break;
+ }
+
+ stc= MEM_callocN(sizeof(SpaceTimeCache), "spacetimecache");
+
+ stc->type = pid->type;
+
+ if (pid->cache->flag & PTCACHE_BAKED)
+ stc->flag |= PTCACHE_BAKED;
+ if (pid->cache->flag & PTCACHE_DISK_CACHE)
+ stc->flag |= PTCACHE_DISK_CACHE;
+
+ /* first allocate with maximum number of frames needed */
+ BKE_ptcache_id_time(pid, CTX_data_scene(C), 0, &stc->startframe, &stc->endframe, NULL);
+ len = (stc->endframe - stc->startframe + 1)*4;
+ fp = array = MEM_callocN(len*2*sizeof(float), "temporary timeline cache array");
+
+ /* fill the vertex array with a quad for each cached frame */
+ for (i=stc->startframe; i<=stc->endframe; i++) {
+
+ if (BKE_ptcache_id_exist(pid, i)) {
+ fp[0] = (float)i;
+ fp[1] = 0.0;
+ fp+=2;
+
+ fp[0] = (float)i;
+ fp[1] = 1.0;
+ fp+=2;
+
+ fp[0] = (float)(i+1);
+ fp[1] = 1.0;
+ fp+=2;
+
+ fp[0] = (float)(i+1);
+ fp[1] = 0.0;
+ fp+=2;
+ }
+ }
+ /* update with final number of frames */
+ stc->len = (i-stc->startframe)*4;
+ stc->array = MEM_mallocN(stc->len*2*sizeof(float), "SpaceTimeCache array");
+ memcpy(stc->array, array, stc->len*2*sizeof(float));
+
+ MEM_freeN(array);
+ array = NULL;
+
+ stc->ok = 1;
+
+ BLI_addtail(&stime->caches, stc);
+ }
+
+ /* todo: sort time->caches list for consistent order */
+ // ...
+
+ BLI_freelistN(&pidlist);
+}
+
/* helper function - find actkeycolumn that occurs on cframe, or the nearest one if not found */
static ActKeyColumn *time_cfra_find_ak (ActKeyColumn *ak, float cframe)
{
@@ -212,6 +376,66 @@ static void time_draw_keyframes(const bContext *C, SpaceTime *stime, ARegion *ar
/* ---------------- */
+static void time_refresh(const bContext *C, ScrArea *sa)
+{
+ SpaceTime *stime = (SpaceTime *)sa->spacedata.first;
+ ARegion *ar;
+
+ /* find the main timeline region and refresh cache display*/
+ for (ar= sa->regionbase.first; ar; ar= ar->next) {
+ if (ar->regiontype==RGN_TYPE_WINDOW) {
+ time_cache_refresh(C, stime, ar);
+ break;
+ }
+ }
+}
+
+/* editor level listener */
+static void time_listener(ScrArea *sa, wmNotifier *wmn)
+{
+
+ /* mainly for updating cache display */
+ switch (wmn->category) {
+ case NC_OBJECT:
+ switch (wmn->data) {
+ case ND_POINTCACHE:
+ ED_area_tag_refresh(sa);
+ ED_area_tag_redraw(sa);
+ break;
+ }
+ break;
+ case NC_SCENE:
+ switch (wmn->data) {
+ case ND_OB_ACTIVE:
+ case ND_FRAME:
+ ED_area_tag_refresh(sa);
+ break;
+ case ND_FRAME_RANGE:
+ {
+ ARegion *ar;
+ Scene *scene = wmn->reference;
+
+ for (ar= sa->regionbase.first; ar; ar= ar->next) {
+ if (ar->regiontype==RGN_TYPE_WINDOW) {
+ ar->v2d.tot.xmin= (float)(SFRA - 4);
+ ar->v2d.tot.xmax= (float)(EFRA + 4);
+ break;
+ }
+ }
+ }
+ break;
+ }
+ case NC_SPACE:
+ switch (wmn->data) {
+ case ND_SPACE_CHANGED:
+ ED_area_tag_refresh(sa);
+ break;
+ }
+ }
+}
+
+/* ---------------- */
+
/* add handlers, stuff you only do once or on area/region changes */
static void time_main_area_init(wmWindowManager *wm, ARegion *ar)
{
@@ -232,18 +456,16 @@ static void time_main_area_draw(const bContext *C, ARegion *ar)
View2DGrid *grid;
View2DScrollers *scrollers;
int unit, flag=0;
- float col[3];
/* clear and setup matrix */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
/* start and end frame */
time_draw_sfra_efra(C, stime, ar);
-
+
/* grid */
unit= (stime->flag & TIME_DRAWFRAMES)? V2D_UNIT_FRAMES: V2D_UNIT_SECONDS;
grid= UI_view2d_grid_calc(C, v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY, ar->winx, ar->winy);
@@ -251,7 +473,8 @@ static void time_main_area_draw(const bContext *C, ARegion *ar)
UI_view2d_grid_free(grid);
/* keyframes */
- time_draw_keyframes(C, stime, ar);
+ if(!G.rendering) /* ANIM_nla_mapping_apply_fcurve() modifies curve data while rendering, possible race condition */
+ time_draw_keyframes(C, stime, ar);
/* current frame */
if ((stime->flag & TIME_DRAWFRAMES)==0) flag |= DRAWCFRA_UNIT_SECONDS;
@@ -262,6 +485,9 @@ static void time_main_area_draw(const bContext *C, ARegion *ar)
UI_view2d_view_orthoSpecial(C, v2d, 1);
draw_markers_time(C, 0);
+ /* caches */
+ time_draw_cache(C, stime, ar);
+
/* reset view matrix */
UI_view2d_view_restore(C);
@@ -285,7 +511,6 @@ static void time_main_area_listener(ARegion *ar, wmNotifier *wmn)
break;
case NC_SCENE:
- /* any scene change for now */
ED_region_tag_redraw(ar);
break;
@@ -385,13 +610,23 @@ static SpaceLink *time_new(const bContext *C)
/* not spacelink itself */
static void time_free(SpaceLink *sl)
{
+ SpaceTime *stime= (SpaceTime *)sl;
+
+ time_cache_free(stime);
}
/* spacetype; init callback in ED_area_initialize() */
/* init is called to (re)initialize an existing editor (file read, screen changes) */
/* validate spacedata, add own area level handlers */
static void time_init(wmWindowManager *wm, ScrArea *sa)
{
+ SpaceTime *stime= (SpaceTime *)sa->spacedata.first;
+ time_cache_free(stime);
+
+ /* enable all cache display */
+ stime->cache_display |= TIME_CACHE_DISPLAY;
+ stime->cache_display |= (TIME_CACHE_SOFTBODY|TIME_CACHE_PARTICLES);
+ stime->cache_display |= (TIME_CACHE_CLOTH|TIME_CACHE_SMOKE);
}
static SpaceLink *time_duplicate(SpaceLink *sl)
@@ -399,6 +634,8 @@ static SpaceLink *time_duplicate(SpaceLink *sl)
SpaceTime *stime= (SpaceTime *)sl;
SpaceTime *stimen= MEM_dupallocN(stime);
+ time_cache_free(stimen);
+
return (SpaceLink *)stimen;
}
@@ -418,6 +655,8 @@ void ED_spacetype_time(void)
st->duplicate= time_duplicate;
st->operatortypes= time_operatortypes;
st->keymap= NULL;
+ st->listener= time_listener;
+ st->refresh= time_refresh;
/* regions: main window */
art= MEM_callocN(sizeof(ARegionType), "spacetype time region");
diff --git a/source/blender/editors/space_time/time_intern.h b/source/blender/editors/space_time/time_intern.h
index 5fe55444d45..31164d0c27a 100644
--- a/source/blender/editors/space_time/time_intern.h
+++ b/source/blender/editors/space_time/time_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c
index 08e84140f0e..68036d0ea33 100644
--- a/source/blender/editors/space_time/time_ops.c
+++ b/source/blender/editors/space_time/time_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,22 +32,15 @@
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_blenlib.h"
#include "BKE_context.h"
#include "BKE_utildefines.h"
-#include "UI_interface.h"
-#include "UI_view2d.h"
#include "ED_screen.h"
-#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
diff --git a/source/blender/editors/space_userpref/CMakeLists.txt b/source/blender/editors/space_userpref/CMakeLists.txt
new file mode 100644
index 00000000000..1752f39cfa5
--- /dev/null
+++ b/source/blender/editors/space_userpref/CMakeLists.txt
@@ -0,0 +1,34 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenkernel
+ ../../blenlib
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_space_userpref "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_userpref/SConscript b/source/blender/editors/space_userpref/SConscript
index 1b808a5a7c0..3ba1543b840 100644
--- a/source/blender/editors/space_userpref/SConscript
+++ b/source/blender/editors/space_userpref/SConscript
@@ -8,7 +8,4 @@ incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
defs = []
-if env['WITH_BF_GAMEENGINE']:
- defs.append('GAMEBLENDER=1')
-
env.BlenderLib ( 'bf_editors_space_userpref', sources, Split(incs), defs, libtype=['core'], priority=[70] )
diff --git a/source/blender/editors/space_userpref/space_userpref.c b/source/blender/editors/space_userpref/space_userpref.c
index 0a8eee1c7dd..4d6d303625b 100644
--- a/source/blender/editors/space_userpref/space_userpref.c
+++ b/source/blender/editors/space_userpref/space_userpref.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,8 +29,6 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_space_types.h"
-#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -39,7 +37,6 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
diff --git a/source/blender/editors/space_userpref/userpref_intern.h b/source/blender/editors/space_userpref/userpref_intern.h
index 8c84cfdede4..206c8efe70e 100644
--- a/source/blender/editors/space_userpref/userpref_intern.h
+++ b/source/blender/editors/space_userpref/userpref_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/space_view3d/CMakeLists.txt b/source/blender/editors/space_view3d/CMakeLists.txt
new file mode 100644
index 00000000000..733c81676d1
--- /dev/null
+++ b/source/blender/editors/space_view3d/CMakeLists.txt
@@ -0,0 +1,51 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../include
+ ../../blenfont
+ ../../blenkernel
+ ../../blenlib
+ ../../bmesh
+ ../../gpu
+ ../../imbuf
+ ../../../../intern/guardedalloc
+ ../../../../intern/smoke/extern
+ ../../makesdna
+ ../../makesrna
+ ../../render/extern/include
+ ../../windowmanager
+)
+
+IF(WITH_GAMEENGINE)
+ SET(INC ${INC} ../../../kernel/gen_system)
+ ADD_DEFINITIONS(-DGAMEBLENDER)
+ENDIF(WITH_GAMEENGINE)
+
+IF(WIN32)
+ SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+ADD_DEFINITIONS(-DGLEW_STATIC)
+
+BLENDERLIB(bf_editor_space_view3d "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_view3d/SConscript b/source/blender/editors/space_view3d/SConscript
index ecff3c96d14..907afc12020 100644
--- a/source/blender/editors/space_view3d/SConscript
+++ b/source/blender/editors/space_view3d/SConscript
@@ -13,5 +13,7 @@ incs += ' #source/kernel/gen_system'
if env['WITH_BF_GAMEENGINE']:
defs.append('GAMEBLENDER=1')
+if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
+ incs += ' ' + env['BF_PTHREADS_INC']
env.BlenderLib ( 'bf_editors_space_view3d', sources, Split(incs), defines = defs, libtype=['core'], priority=[40] )
diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c
index 721ab12dbc1..1bc51de4471 100644
--- a/source/blender/editors/space_view3d/drawanimviz.c
+++ b/source/blender/editors/space_view3d/drawanimviz.c
@@ -31,23 +31,13 @@
#include <string.h>
#include <math.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_ID.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
@@ -72,11 +62,8 @@
#include "BIF_glutil.h"
#include "ED_armature.h"
-#include "ED_anim_api.h"
#include "ED_keyframes_draw.h"
-#include "WM_api.h"
-#include "WM_types.h"
#include "BLF_api.h"
#include "UI_resources.h"
@@ -212,6 +199,21 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
glVertex3fv(mpv->co);
glEnd();
+ /* Draw big green dot where the current frame is */
+ // NOTE: only do this when drawing keyframes for now...
+ if (avs->path_viewflag & MOTIONPATH_VIEW_KFRAS) {
+ UI_ThemeColor(TH_CFRAME);
+ glPointSize(6.0f);
+
+ glBegin(GL_POINTS);
+ mpv = mpv_start + (CFRA - sfra);
+ glVertex3fv(mpv->co);
+ glEnd();
+
+ glPointSize(1.0f);
+ UI_ThemeColor(TH_TEXT_HI);
+ }
+
/* Draw frame numbers at each framestep value */
if (avs->path_viewflag & MOTIONPATH_VIEW_FNUMS) {
for (i=0, mpv=mpv_start; i < len; i+=stepsize, mpv+=stepsize) {
@@ -233,9 +235,9 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
}
}
}
-
+
/* Keyframes - dots and numbers */
- if (avs->path_viewflag & MOTIONPATH_VIEW_KFNOS) {
+ if (avs->path_viewflag & MOTIONPATH_VIEW_KFRAS) {
AnimData *adt= BKE_animdata_from_id(&ob->id);
DLRBT_Tree keys;
@@ -243,8 +245,10 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
BLI_dlrbTree_init(&keys);
if (adt) {
- /* for now, it is assumed that keyframes for bones are all grouped in a single group */
- if (pchan) {
+ /* it is assumed that keyframes for bones are all grouped in a single group
+ * unless an option is set to always use the whole action
+ */
+ if ((pchan) && (avs->path_viewflag & MOTIONPATH_VIEW_KFACT)==0) {
bActionGroup *agrp= action_groups_find_named(adt->action, pchan->name);
if (agrp) {
@@ -274,7 +278,7 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
glPointSize(1.0f);
/* Draw frame numbers of keyframes */
- if (avs->path_viewflag & MOTIONPATH_VIEW_FNUMS) {
+ if (avs->path_viewflag & MOTIONPATH_VIEW_KFNOS) {
for (i=0, mpv=mpv_start; i < len; i++, mpv++) {
float mframe= (float)(sfra + i);
diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c
index 9df9cad1ac0..e8f4fc7890f 100644
--- a/source/blender/editors/space_view3d/drawarmature.c
+++ b/source/blender/editors/space_view3d/drawarmature.c
@@ -31,24 +31,14 @@
#include <string.h>
#include <math.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_ID.h"
-#include "DNA_nla_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
@@ -74,8 +64,6 @@
#include "ED_armature.h"
#include "ED_keyframes_draw.h"
-#include "WM_api.h"
-#include "WM_types.h"
#include "BLF_api.h"
#include "UI_resources.h"
@@ -1205,7 +1193,7 @@ static void draw_bone(int dt, int armflag, int boneflag, int constflag, unsigned
{
/* Draw a 3d octahedral bone, we use normalized space based on length,
- for glDisplayLists */
+ for glDisplayLists */
glScalef(length, length, length);
@@ -1559,7 +1547,7 @@ static void bone_matrix_translate_y(float mat[][4], float y)
VECCOPY(trans, mat[1]);
mul_v3_fl(trans, y);
- add_v3_v3v3(mat[3], mat[3], trans);
+ add_v3_v3(mat[3], trans);
}
/* assumes object is Armature with pose */
@@ -1894,16 +1882,16 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
/* Draw additional axes on the bone tail */
if ( (arm->flag & ARM_DRAWAXES) && (arm->flag & ARM_POSEMODE) ) {
+ float mat[4][4];
glPushMatrix();
copy_m4_m4(bmat, pchan->pose_mat);
bone_matrix_translate_y(bmat, pchan->bone->length);
glMultMatrixf(bmat);
- /* do cached text draw immediate to include transform */
- view3d_cached_text_draw_begin();
- drawaxes(pchan->bone->length*0.25f, 0, OB_ARROWS);
- view3d_cached_text_draw_end(v3d, ar, 1, bmat);
+ mul_m4_m4m4(mat, bmat, rv3d->viewmatob);
+ drawaxes(rv3d, mat, pchan->bone->length*0.25f, 0, OB_ARROWS);
+
glPopMatrix();
}
}
@@ -1929,7 +1917,7 @@ static void get_matrix_editbone(EditBone *eBone, float bmat[][4])
vec_roll_to_mat3(delta, eBone->roll, mat);
copy_m4_m3(bmat, mat);
- add_v3_v3v3(bmat[3], bmat[3], eBone->head);
+ add_v3_v3(bmat[3], eBone->head);
}
static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
@@ -2090,15 +2078,16 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
}
/* Draw additional axes */
if (arm->flag & ARM_DRAWAXES) {
+ float mat[4][4];
glPushMatrix();
get_matrix_editbone(eBone, bmat);
bone_matrix_translate_y(bmat, eBone->length);
glMultMatrixf(bmat);
+ mul_m4_m4m4(mat, bmat, rv3d->viewmatob);
+
/* do cached text draw immediate to include transform */
- view3d_cached_text_draw_begin();
- drawaxes(eBone->length*0.25f, 0, OB_ARROWS);
- view3d_cached_text_draw_end(v3d, ar, 1, bmat);
+ drawaxes(rv3d, mat, eBone->length*0.25f, 0, OB_ARROWS);
glPopMatrix();
}
@@ -2406,7 +2395,7 @@ int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, in
bArmature *arm= ob->data;
int retval= 0;
- if(G.f & G_RENDER_SHADOW)
+ if(v3d->flag2 & V3D_RENDER_OVERRIDE)
return 1;
if(dt>OB_WIRE && arm->drawtype!=ARM_LINE) {
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index e93e05a0a55..e46a5f5efae 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -35,20 +35,13 @@
#include "BLI_edgehash.h"
#include "BLI_editVert.h"
-#include "IMB_imbuf.h"
-#include "IMB_imbuf_types.h"
-#include "DNA_image_types.h"
-#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
-#include "DNA_object_types.h"
#include "DNA_property_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
#include "BKE_bmfont.h"
@@ -70,9 +63,8 @@
#include "BIF_glutil.h"
#include "UI_resources.h"
-#include "UI_interface_icons.h"
-#include "gpu_buffers.h"
+#include "GPU_buffers.h"
#include "GPU_extensions.h"
#include "GPU_draw.h"
@@ -440,7 +432,7 @@ static int draw_tface__set_draw(MTFace *tface, MCol *mcol, int matnr)
} else if (tface && tface->mode&TF_OBCOL) {
return 2; /* Don't set color */
} else if (!mcol) {
- return 2; /* Don't set color */
+ return 1; /* Don't set color */
} else {
return 1; /* Set color from mcol */
}
@@ -475,9 +467,9 @@ static void add_tface_color_layer(DerivedMesh *dm)
}
} else if (tface && tface->mode&TF_OBCOL) {
for(j=0;j<4;j++) {
- finalCol[i*4+j].r = Gtexdraw.obcol[0];
- finalCol[i*4+j].g = Gtexdraw.obcol[1];
- finalCol[i*4+j].b = Gtexdraw.obcol[2];
+ finalCol[i*4+j].r = FTOCHAR(Gtexdraw.obcol[0]);
+ finalCol[i*4+j].g = FTOCHAR(Gtexdraw.obcol[1]);
+ finalCol[i*4+j].b = FTOCHAR(Gtexdraw.obcol[2]);
}
} else if (!mcol) {
if (tface) {
@@ -496,9 +488,9 @@ static void add_tface_color_layer(DerivedMesh *dm)
else copy_v3_v3(col, &ma->r);
for(j=0;j<4;j++) {
- finalCol[i*4+j].b = col[2];
- finalCol[i*4+j].g = col[1];
- finalCol[i*4+j].r = col[0];
+ finalCol[i*4+j].b = FTOCHAR(col[2]);
+ finalCol[i*4+j].g = FTOCHAR(col[1]);
+ finalCol[i*4+j].r = FTOCHAR(col[0]);
}
}
else
@@ -568,7 +560,7 @@ static int draw_em_tf_mapped__set_draw(void *userData, int index)
mtf.unwrap = tpoly->unwrap;
}
- return draw_tface__set_draw(&mtf, has_vcol, matnr);
+ return draw_tface__set_draw_legacy(&mtf, has_vcol, matnr);
}
static int wpaint__setSolidDrawOptions(void *userData, int index, int *drawSmooth_r)
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 8dbaeed97fa..b737a65e2be 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -28,40 +28,18 @@
#include <string.h>
#include <math.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
-#include "IMB_imbuf.h"
-
-
-
-
-#include "DNA_armature_types.h"
-#include "DNA_boid_types.h"
#include "DNA_camera_types.h"
#include "DNA_curve_types.h"
#include "DNA_constraint_types.h" // for drawing constraint
-#include "DNA_effect_types.h"
#include "DNA_lamp_types.h"
#include "DNA_lattice_types.h"
#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_meta_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
-#include "DNA_object_fluidsim.h"
-#include "DNA_particle_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
#include "DNA_smoke_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
#include "DNA_world_types.h"
#include "BLI_blenlib.h"
@@ -103,7 +81,6 @@
#include "BIF_glutil.h"
#include "GPU_draw.h"
-#include "GPU_material.h"
#include "GPU_extensions.h"
#include "ED_mesh.h"
@@ -111,10 +88,8 @@
#include "ED_screen.h"
#include "ED_sculpt.h"
#include "ED_types.h"
-#include "ED_util.h"
#include "UI_resources.h"
-#include "UI_interface_icons.h"
#include "WM_api.h"
#include "wm_subwindow.h"
@@ -128,13 +103,6 @@
((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || \
(vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX))
-#define CHECK_OB_DRAWFACEDOT(sce, vd, dt) \
-( (sce->toolsettings->selectmode & SCE_SELECT_FACE) && \
- (vd->drawtype<=OB_SOLID) && \
- (G.f & G_BACKBUFSEL)==0 && \
- (((vd->drawtype==OB_SOLID) && (dt>=OB_SOLID) && (vd->flag2 & V3D_SOLID_TEX) && (vd->flag & V3D_ZBUF_SELECT)) == 0) \
- )
-
static void draw_bounding_volume(Scene *scene, Object *ob);
static void drawcube_size(float size);
@@ -142,6 +110,26 @@ static void drawcircle_size(float size);
static void draw_empty_sphere(float size);
static void draw_empty_cone(float size);
+static int check_ob_drawface_dot(Scene *sce, View3D *vd, char dt)
+{
+ if((sce->toolsettings->selectmode & SCE_SELECT_FACE) == 0)
+ return 0;
+
+ if(G.f & G_BACKBUFSEL)
+ return 0;
+
+ if((vd->flag & V3D_ZBUF_SELECT) == 0)
+ return 1;
+
+ /* if its drawing textures with zbuf sel, then dont draw dots */
+ if(dt==OB_TEXTURE && vd->drawtype==OB_TEXTURE)
+ return 0;
+
+ if(vd->drawtype>=OB_SOLID && vd->flag2 & V3D_SOLID_TEX)
+ return 0;
+
+ return 1;
+}
/* ************* only use while object drawing **************
* or after running ED_view3d_init_mats_rv3d
@@ -334,16 +322,114 @@ static float cosval[32] ={
1.00000000
};
+static void draw_xyz_wire(RegionView3D *rv3d, float mat[][4], float *c, float size, int axis)
+{
+ float v1[3]= {0.f, 0.f, 0.f}, v2[3] = {0.f, 0.f, 0.f};
+ float imat[4][4];
+ float dim;
+ float dx[3], dy[3];
+
+ /* hrms, really only works properly after glLoadMatrixf(rv3d->viewmat); */
+ float pixscale= rv3d->persmat[0][3]*c[0]+ rv3d->persmat[1][3]*c[1]+ rv3d->persmat[2][3]*c[2] + rv3d->persmat[3][3];
+ pixscale*= rv3d->pixsize;
+
+ /* halfway blend between fixed size in worldspace vs viewspace -
+ * alleviates some of the weirdness due to not using viewmat for gl matrix */
+ dim = (0.05*size*0.5) + (size*10.f*pixscale*0.5);
+
+ invert_m4_m4(imat, mat);
+ normalize_v3(imat[0]);
+ normalize_v3(imat[1]);
+
+ copy_v3_v3(dx, imat[0]);
+ copy_v3_v3(dy, imat[1]);
+
+ mul_v3_fl(dx, dim);
+ mul_v3_fl(dy, dim);
+
+ switch(axis) {
+ case 0: /* x axis */
+ glBegin(GL_LINES);
+
+ /* bottom left to top right */
+ sub_v3_v3v3(v1, c, dx);
+ sub_v3_v3(v1, dy);
+ add_v3_v3v3(v2, c, dx);
+ add_v3_v3(v2, dy);
+
+ glVertex3fv(v1);
+ glVertex3fv(v2);
+
+ /* top left to bottom right */
+ mul_v3_fl(dy, 2.f);
+ add_v3_v3(v1, dy);
+ sub_v3_v3(v2, dy);
+
+ glVertex3fv(v1);
+ glVertex3fv(v2);
+
+ glEnd();
+ break;
+ case 1: /* y axis */
+ glBegin(GL_LINES);
+
+ /* bottom left to top right */
+ mul_v3_fl(dx, 0.75f);
+ sub_v3_v3v3(v1, c, dx);
+ sub_v3_v3(v1, dy);
+ add_v3_v3v3(v2, c, dx);
+ add_v3_v3(v2, dy);
+
+ glVertex3fv(v1);
+ glVertex3fv(v2);
+
+ /* top left to center */
+ mul_v3_fl(dy, 2.f);
+ add_v3_v3(v1, dy);
+ copy_v3_v3(v2, c);
+
+ glVertex3fv(v1);
+ glVertex3fv(v2);
+
+ glEnd();
+ break;
+ case 2: /* z axis */
+ glBegin(GL_LINE_STRIP);
+
+ /* start at top left */
+ sub_v3_v3v3(v1, c, dx);
+ add_v3_v3v3(v1, c, dy);
+
+ glVertex3fv(v1);
+
+ mul_v3_fl(dx, 2.f);
+ add_v3_v3(v1, dx);
+
+ glVertex3fv(v1);
+
+ mul_v3_fl(dy, 2.f);
+ sub_v3_v3(v1, dx);
+ sub_v3_v3(v1, dy);
+
+ glVertex3fv(v1);
+
+ add_v3_v3(v1, dx);
+
+ glVertex3fv(v1);
+
+ glEnd();
+ break;
+ }
+
+}
+
/* flag is same as for draw_object */
-void drawaxes(float size, int flag, char drawtype)
+void drawaxes(RegionView3D *rv3d, float mat[][4], float size, int flag, char drawtype)
{
int axis;
float v1[3]= {0.0, 0.0, 0.0};
float v2[3]= {0.0, 0.0, 0.0};
float v3[3]= {0.0, 0.0, 0.0};
-
- if(G.f & G_RENDER_SHADOW)
- return;
switch(drawtype) {
@@ -424,12 +510,12 @@ void drawaxes(float size, int flag, char drawtype)
glVertex3fv(v1);
glVertex3fv(v2);
- v1[axis]= size*0.8;
- v1[arrow_axis]= -size*0.125;
+ v1[axis]= size*0.85;
+ v1[arrow_axis]= -size*0.08;
glVertex3fv(v1);
glVertex3fv(v2);
- v1[arrow_axis]= size*0.125;
+ v1[arrow_axis]= size*0.08;
glVertex3fv(v1);
glVertex3fv(v2);
@@ -437,15 +523,7 @@ void drawaxes(float size, int flag, char drawtype)
v2[axis]+= size*0.125;
- // patch for 3d cards crashing on glSelect for text drawing (IBM)
- if((flag & DRAW_PICKING) == 0) {
- if (axis==0)
- view3d_cached_text_draw_add(v2[0], v2[1], v2[2], "x", 0, V3D_CACHE_TEXT_ZBUF);
- else if (axis==1)
- view3d_cached_text_draw_add(v2[0], v2[1], v2[2], "y", 0, V3D_CACHE_TEXT_ZBUF);
- else
- view3d_cached_text_draw_add(v2[0], v2[1], v2[2], "z", 0, V3D_CACHE_TEXT_ZBUF);
- }
+ draw_xyz_wire(rv3d, mat, v2, size, axis);
}
break;
}
@@ -554,14 +632,14 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa
}
if(tot) {
+#if 0
bglMats mats; /* ZBuffer depth vars */
double ux, uy, uz;
float depth;
if(v3d->zbuf)
bgl_get_mats(&mats);
-
-
+#endif
if(rv3d->rflag & RV3D_CLIPPING)
for(a=0; a<6; a++)
glDisable(GL_CLIP_PLANE0+a);
@@ -578,7 +656,7 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa
else glDepthMask(0);
for(vos= strings->first; vos; vos= vos->next) {
-
+#if 0 // too slow, reading opengl info while drawing is very bad, better to see if we cn use the zbuffer while in pixel space - campbell
if(v3d->zbuf && (vos->flag & V3D_CACHE_TEXT_ZBUF)) {
gluProject(vos->vec[0], vos->vec[1], vos->vec[2], mats.modelview, mats.projection, (GLint *)mats.viewport, &ux, &uy, &uz);
glReadPixels(ar->winrct.xmin+vos->mval[0]+vos->xoffs, ar->winrct.ymin+vos->mval[1], 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth);
@@ -586,7 +664,7 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa
if(uz > depth)
continue;
}
-
+#endif
if(vos->mval[0]!=IS_CLIPPED) {
glColor3fv(vos->col);
BLF_draw_default((float)vos->mval[0]+vos->xoffs, (float)vos->mval[1], (depth_write)? 0.0f: 2.0f, vos->str);
@@ -697,9 +775,7 @@ static void drawshadbuflimits(Lamp *la, float mat[][4])
{
float sta[3], end[3], lavec[3];
- lavec[0]= -mat[2][0];
- lavec[1]= -mat[2][1];
- lavec[2]= -mat[2][2];
+ negate_v3_v3(lavec, mat[2]);
normalize_v3(lavec);
sta[0]= mat[3][0]+ la->clipsta*lavec[0];
@@ -794,25 +870,17 @@ static void spotvolume(float *lvec, float *vvec, float inp)
static void draw_spot_cone(Lamp *la, float x, float z)
{
- float vec[3];
-
z= fabs(z);
glBegin(GL_TRIANGLE_FAN);
glVertex3f(0.0f, 0.0f, -x);
if(la->mode & LA_SQUARE) {
- vec[0]= z;
- vec[1]= z;
- vec[2]= 0.0;
-
- glVertex3fv(vec);
- vec[1]= -z;
- glVertex3fv(vec);
- vec[0]= -z;
- glVertex3fv(vec);
- vec[1]= z;
- glVertex3fv(vec);
+ glVertex3f(z, z, 0);
+ glVertex3f(-z, z, 0);
+ glVertex3f(-z, -z, 0);
+ glVertex3f(z, -z, 0);
+ glVertex3f(z, z, 0);
}
else {
float angle;
@@ -866,9 +934,6 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
float imat[4][4], curcol[4];
char col[4];
int drawcone= (dt>OB_WIRE && !(G.f & G_PICKSEL) && la->type == LA_SPOT && (la->mode & LA_SHOW_CONE));
-
- if(G.f & G_RENDER_SHADOW)
- return;
if(drawcone && !v3d->transp) {
/* in this case we need to draw delayed */
@@ -915,21 +980,23 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
/* Outer circle */
circrad = 3.0f*lampsize;
+ setlinestyle(3);
+
drawcircball(GL_LINE_LOOP, vec, circrad, imat);
- }
- else
- circrad = 0.0f;
-
- setlinestyle(3);
- /* draw dashed outer circle if shadow is on. remember some lamps can't have certain shadows! */
- if (la->type!=LA_HEMI) {
- if ((la->mode & LA_SHAD_RAY) ||
- ((la->mode & LA_SHAD_BUF) && (la->type==LA_SPOT)) )
- {
- drawcircball(GL_LINE_LOOP, vec, circrad + 3.0f*pixsize, imat);
+ /* draw dashed outer circle if shadow is on. remember some lamps can't have certain shadows! */
+ if(la->type!=LA_HEMI) {
+ if( (la->mode & LA_SHAD_RAY) ||
+ ((la->mode & LA_SHAD_BUF) && (la->type==LA_SPOT))
+ ) {
+ drawcircball(GL_LINE_LOOP, vec, circrad + 3.0f*pixsize, imat);
+ }
}
}
+ else {
+ setlinestyle(3);
+ circrad = 0.0f;
+ }
/* draw the pretty sun rays */
if(la->type==LA_SUN) {
@@ -1002,17 +1069,20 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
/* draw the circle/square at the end of the cone */
glTranslatef(0.0, 0.0 , x);
if(la->mode & LA_SQUARE) {
- vvec[0]= fabs(z);
- vvec[1]= fabs(z);
- vvec[2]= 0.0;
+ float tvec[3];
+ float z_abs= fabs(z);
+
+ tvec[0]= tvec[1]= z_abs;
+ tvec[2]= 0.0;
+
glBegin(GL_LINE_LOOP);
- glVertex3fv(vvec);
- vvec[1]= -fabs(z);
- glVertex3fv(vvec);
- vvec[0]= -fabs(z);
- glVertex3fv(vvec);
- vvec[1]= fabs(z);
- glVertex3fv(vvec);
+ glVertex3fv(tvec);
+ tvec[1]= -z_abs; /* neg */
+ glVertex3fv(tvec);
+ tvec[0]= -z_abs; /* neg */
+ glVertex3fv(tvec);
+ tvec[1]= z_abs; /* pos */
+ glVertex3fv(tvec);
glEnd();
}
else circ(0.0, 0.0, fabs(z));
@@ -1029,6 +1099,22 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
if(drawcone)
draw_transp_spot_volume(la, x, z);
+
+ /* draw clip start, useful for wide cones where its not obvious where the start is */
+ glTranslatef(0.0, 0.0 , -x); /* reverse translation above */
+ if(la->type==LA_SPOT && (la->mode & LA_SHAD_BUF) ) {
+ float lvec_clip[3];
+ float vvec_clip[3];
+ float clipsta_fac= la->clipsta / -x;
+
+ interp_v3_v3v3(lvec_clip, vec, lvec, clipsta_fac);
+ interp_v3_v3v3(vvec_clip, vec, vvec, clipsta_fac);
+
+ glBegin(GL_LINE_STRIP);
+ glVertex3fv(lvec_clip);
+ glVertex3fv(vvec_clip);
+ glEnd();
+ }
}
else if ELEM(la->type, LA_HEMI, LA_SUN) {
@@ -1166,9 +1252,6 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob
float nobmat[4][4], vec[8][4], fac, facx, facy, depth;
int i;
- if(G.f & G_RENDER_SHADOW)
- return;
-
cam= ob->data;
glDisable(GL_LIGHTING);
@@ -1344,14 +1427,16 @@ static void drawlattice(Scene *scene, View3D *v3d, Object *ob)
Lattice *lt= ob->data;
DispList *dl;
int u, v, w;
- int use_wcol= 0;
+ int use_wcol= 0, is_edit= (lt->editlatt != NULL);
/* now we default make displist, this will modifiers work for non animated case */
if(ob->disp.first==NULL)
lattice_calc_modifiers(scene, ob);
dl= find_displist(&ob->disp, DL_VERTS);
- if(lt->editlatt) {
+ if(is_edit) {
+ lt= lt->editlatt;
+
cpack(0x004000);
if(ob->defbase.first && lt->dvert) {
@@ -1360,8 +1445,6 @@ static void drawlattice(Scene *scene, View3D *v3d, Object *ob)
}
}
- if(lt->editlatt) lt= lt->editlatt;
-
glBegin(GL_LINES);
for(w=0; w<lt->pntsw; w++) {
int wxt = (w==0 || w==lt->pntsw-1);
@@ -1391,7 +1474,7 @@ static void drawlattice(Scene *scene, View3D *v3d, Object *ob)
if(use_wcol)
glShadeModel(GL_FLAT);
- if( ((Lattice *)ob->data)->editlatt ) {
+ if(is_edit) {
if(v3d->zbuf) glDisable(GL_DEPTH_TEST);
lattice_draw_verts(lt, dl, 0);
@@ -1986,7 +2069,7 @@ static int draw_dm_creases__setDrawOptions(void *userData, int index)
return 0;
if (!BM_TestHFlag(eed, BM_HIDDEN) && *crease!=0.0) {
- UI_ThemeColorBlend(TH_WIRE, TH_EDGE_SELECT, *crease);
+ UI_ThemeColorBlend(TH_WIRE, TH_EDGE_CREASE, *crease);
return 1;
} else {
return 0;
@@ -2096,7 +2179,7 @@ static void draw_em_fancy_verts(Scene *scene, View3D *v3d, Object *obedit,
draw_dm_verts(em, cageDM, sel, eve_act);
}
- if( CHECK_OB_DRAWFACEDOT(scene, v3d, obedit->dt) ) {
+ if(check_ob_drawface_dot(scene, v3d, obedit->dt)) {
glPointSize(fsize);
glColor4ubv((GLubyte *)fcol);
draw_dm_face_centers(em, cageDM, sel);
@@ -2187,7 +2270,8 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d,
float area, col[3]; /* area of the face, color of the text to draw */
float grid= unit->system ? unit->scale_length : v3d->grid;
int do_split= unit->flag & USER_UNIT_OPT_SPLIT;
- if(G.f & (G_RENDER_OGL|G_RENDER_SHADOW))
+
+ if(v3d->flag2 & V3D_RENDER_OVERRIDE)
return;
/* make the precision of the pronted value proportionate to the gridsize */
@@ -2430,7 +2514,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
else {
if (cageDM!=finalDM) {
UI_ThemeColorBlend(TH_WIRE, TH_BACK, 0.7);
- finalDM->drawEdges(finalDM, 1);
+ finalDM->drawEdges(finalDM, 1, 0);
}
}
@@ -2566,7 +2650,7 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm)
GPU_disable_material();
}
else {
- dm->drawEdges(dm, 0);
+ dm->drawEdges(dm, 0, 1);
}
glLineWidth(1.0);
@@ -2610,7 +2694,8 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
if (ob==OBACT && paint_facesel_test(ob)) draw_wire = 0;
if(dt==OB_BOUNDBOX) {
- draw_bounding_volume(scene, ob);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE && v3d->drawtype >= OB_WIRE)==0)
+ draw_bounding_volume(scene, ob);
}
else if(hasHaloMat || (totface==0 && totedge==0)) {
glPointSize(1.5);
@@ -2624,8 +2709,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
CHECK_OB_DRAWTEXTURE(v3d, dt))
{
int faceselect= (ob==OBACT && paint_facesel_test(ob));
-
- if ((v3d->flag&V3D_SELECT_OUTLINE) && (base->flag&SELECT) && !(G.f&G_PICKSEL || paint_facesel_test(ob)) && !draw_wire) {
+ if ((v3d->flag&V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && (base->flag&SELECT) && !(G.f&G_PICKSEL || paint_facesel_test(ob)) && !draw_wire) {
draw_mesh_object_outline(v3d, ob, dm);
}
@@ -2649,7 +2733,8 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
else
UI_ThemeColor(TH_WIRE);
- dm->drawLooseEdges(dm);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0)
+ dm->drawLooseEdges(dm);
}
}
else if(dt==OB_SOLID) {
@@ -2667,7 +2752,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glEnable(GL_LINE_STIPPLE);
glLineStipple(1, 0x8888);
- dm->drawEdges(dm, 1);
+ dm->drawEdges(dm, 1, 0);
bglPolygonOffset(rv3d->dist, 0.0);
glDepthMask(1);
@@ -2680,7 +2765,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
else {
Paint *p;
- if((v3d->flag&V3D_SELECT_OUTLINE) && (base->flag&SELECT) && !draw_wire && !ob->sculpt)
+ if((v3d->flag&V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && (base->flag&SELECT) && !draw_wire && !ob->sculpt)
draw_mesh_object_outline(v3d, ob, dm);
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, me->flag & ME_TWOSIDED );
@@ -2694,9 +2779,11 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
int fast= (p->flags & PAINT_FAST_NAVIGATE) && (rv3d->rflag & RV3D_NAVIGATING);
if(ob->sculpt->partial_redraw) {
- sculpt_get_redraw_planes(planes, ar, rv3d, ob);
- fpl = planes;
- ob->sculpt->partial_redraw = 0;
+ if(ar->do_draw & RGN_DRAW_PARTIAL) {
+ sculpt_get_redraw_planes(planes, ar, rv3d, ob);
+ fpl = planes;
+ ob->sculpt->partial_redraw = 0;
+ }
}
dm->drawFacesSolid(dm, fpl, fast, GPU_enable_material);
@@ -2714,7 +2801,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
} else {
UI_ThemeColor(TH_WIRE);
}
- if(!ob->sculpt)
+ if(!ob->sculpt && (v3d->flag2 & V3D_RENDER_OVERRIDE)==0)
dm->drawLooseEdges(dm);
}
}
@@ -2764,7 +2851,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
dm= mesh_get_derived_final(scene, ob, v3d->customdata_mask);
}
- if ((v3d->flag&V3D_SELECT_OUTLINE) && (base->flag&SELECT) && !draw_wire) {
+ if ((v3d->flag&V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && (base->flag&SELECT) && !draw_wire) {
draw_mesh_object_outline(v3d, ob, dm);
}
@@ -2781,7 +2868,8 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
} else {
UI_ThemeColor(TH_WIRE);
}
- dm->drawLooseEdges(dm);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0)
+ dm->drawLooseEdges(dm);
}
}
@@ -2835,8 +2923,9 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glDepthMask(0); // disable write in zbuffer, selected edge wires show better
}
- dm->drawEdges(dm, (dt==OB_WIRE || totface==0));
-
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE && v3d->drawtype >= OB_SOLID)==0)
+ dm->drawEdges(dm, (dt==OB_WIRE || totface==0), me->drawflag & ME_ALLEDGES);
+
if (dt!=OB_WIRE && draw_wire==2) {
glDepthMask(1);
bglPolygonOffset(rv3d->dist, 0.0);
@@ -3053,8 +3142,7 @@ static void drawDispListsolid(ListBase *lb, Object *ob, int glsl)
case DL_POLY:
if(ob->type==OB_SURF) {
int nr;
-
- UI_ThemeColor(TH_WIRE);
+
glDisable(GL_LIGHTING);
/* for some reason glDrawArrays crashes here in half of the platforms (not osx) */
@@ -3176,6 +3264,41 @@ static void drawDispListshaded(ListBase *lb, Object *ob)
glDisableClientState(GL_COLOR_ARRAY);
}
+static void drawCurveDMWired(Object *ob)
+{
+ DerivedMesh *dm = ob->derivedFinal;
+ dm->drawEdges (dm, 1, 0);
+}
+
+/* return 1 when nothing was drawn */
+static int drawCurveDerivedMesh(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, int dt)
+{
+ Object *ob= base->object;
+ DerivedMesh *dm = ob->derivedFinal;
+
+ if (!dm) {
+ return 1;
+ }
+
+ if(dt>OB_WIRE && dm->getNumFaces(dm)) {
+ int glsl = draw_glsl_material(scene, ob, v3d, dt);
+ GPU_begin_object_materials(v3d, rv3d, scene, ob, glsl, NULL);
+
+ if (!glsl)
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
+
+ glEnable(GL_LIGHTING);
+ dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material);
+ glDisable(GL_LIGHTING);
+ GPU_end_object_materials();
+ } else {
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE && v3d->drawtype >= OB_SOLID)==0)
+ drawCurveDMWired (ob);
+ }
+
+ return 0;
+}
+
/* returns 1 when nothing was drawn */
static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, int dt)
{
@@ -3187,6 +3310,10 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas
solid= (dt > OB_WIRE);
+ if (drawCurveDerivedMesh(scene, v3d, rv3d, base, dt) == 0) {
+ return 0;
+ }
+
switch(ob->type) {
case OB_FONT:
case OB_CURVE:
@@ -3547,12 +3674,11 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
select=1;
}
+ psys_update_children(&sim);
+
psys->flag|=PSYS_DRAWING;
- if(part->type==PART_HAIR && !psys->childcache)
- totchild=0;
- else
- totchild=psys->totchild*part->disp/100;
+ totchild=psys->totchild*part->disp/100;
ma= give_current_material(ob,part->omat);
@@ -3587,11 +3713,18 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
totpart=psys->totpart;
- //if(part->flag&PART_GLOB_TIME)
cfra=bsystem_time(scene, 0, (float)CFRA, 0.0f);
- if(draw_as==PART_DRAW_PATH && psys->pathcache==NULL && psys->childcache==NULL)
- draw_as=PART_DRAW_DOT;
+ if(draw_as==PART_DRAW_PATH) {
+ if(psys->pathcache==NULL && psys->childcache==NULL)
+ psys_update_path_cache(&sim, cfra);
+
+ /* can't create pathcache for some reason*/
+ if(psys->pathcache==NULL && psys->childcache==NULL)
+ draw_as=PART_DRAW_DOT;
+ else if(psys->childcache==NULL)
+ totchild = 0;
+ }
/* 3. */
switch(draw_as){
@@ -3895,7 +4028,8 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
setlinestyle(0);
}
- if((part->draw & PART_DRAW_NUM || part->draw & PART_DRAW_HEALTH) && !(G.f & G_RENDER_SHADOW)){
+
+ if((part->draw & PART_DRAW_NUM || part->draw & PART_DRAW_HEALTH) && (v3d->flag2 & V3D_RENDER_OVERRIDE)==0){
float vec_txt[3];
char *val_pos= val;
val[0]= '\0';
@@ -3924,7 +4058,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
float *cd2=0,*cdata2=0;
/* setup gl flags */
- if(ob_dt > OB_WIRE) {
+ if (1) { //ob_dt > OB_WIRE) {
glEnableClientState(GL_NORMAL_ARRAY);
if(part->draw&PART_DRAW_MAT_COL)
@@ -3934,15 +4068,15 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
}
- else {
+ /*else {
glDisableClientState(GL_NORMAL_ARRAY);
glDisable(GL_COLOR_MATERIAL);
glDisable(GL_LIGHTING);
UI_ThemeColor(TH_WIRE);
- }
+ }*/
- if(totchild && (part->draw&PART_DRAW_PARENT)==0)
+ if(totchild && ((part->draw&PART_DRAW_PARENT)==0 || psys_in_edit_mode(scene, psys)))
totpart=0;
else if(psys->pathcache==NULL)
totpart=0;
@@ -3954,7 +4088,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
if(path->steps > 0) {
glVertexPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->co);
- if(ob_dt > OB_WIRE) {
+ if(1) { //ob_dt > OB_WIRE) {
glNormalPointer(GL_FLOAT, sizeof(ParticleCacheKey), path->vel);
if(part->draw&PART_DRAW_MAT_COL)
glColorPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->col);
@@ -3970,7 +4104,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
path=cache[a];
glVertexPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->co);
- if(ob_dt > OB_WIRE) {
+ if(1) { //ob_dt > OB_WIRE) {
glNormalPointer(GL_FLOAT, sizeof(ParticleCacheKey), path->vel);
if(part->draw&PART_DRAW_MAT_COL)
glColorPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->col);
@@ -3981,7 +4115,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
/* restore & clean up */
- if(ob_dt > OB_WIRE) {
+ if(1) { //ob_dt > OB_WIRE) {
if(part->draw&PART_DRAW_MAT_COL)
glDisable(GL_COLOR_ARRAY);
glDisable(GL_COLOR_MATERIAL);
@@ -3992,6 +4126,20 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
cd2=cdata2=0;
glLineWidth(1.0f);
+
+ if((part->draw & PART_DRAW_NUM) && (v3d->flag2 & V3D_RENDER_OVERRIDE)==0){
+ cache=psys->pathcache;
+
+ for(a=0, pa=psys->particles; a<totpart; a++, pa++){
+ float vec_txt[3];
+ val[0]= '\0';
+
+ sprintf(val, "%i", a);
+ /* use worldspace beause object matrix is alredy applied */
+ mul_v3_m4v3(vec_txt, ob->imat, cache[a]->co);
+ view3d_cached_text_draw_add(vec_txt[0], vec_txt[1], vec_txt[2], val, 10, V3D_CACHE_TEXT_WORLDSPACE);
+ }
+ }
}
else if(pdd && ELEM(draw_as, 0, PART_DRAW_CIRC)==0){
glDisableClientState(GL_COLOR_ARRAY);
@@ -4414,23 +4562,21 @@ static void ob_draw_RE_motion(float com[3],float rotscale[3][3],float itw,float
}
/*place to add drawers */
-unsigned int nurbcol[8]= {
- 0, 0x9090, 0x409030, 0x603080, 0, 0x40fff0, 0x40c033, 0xA090F0 };
static void tekenhandlesN(Nurb *nu, short sel, short hide_handles)
{
BezTriple *bezt;
float *fp;
- unsigned int *col;
+ int basecol;
int a;
if(nu->hide || hide_handles) return;
-
+
glBegin(GL_LINES);
if(nu->type == CU_BEZIER) {
- if(sel) col= nurbcol+4;
- else col= nurbcol;
+ if(sel) basecol= TH_HANDLE_SEL_FREE;
+ else basecol= TH_HANDLE_FREE;
bezt= nu->bezt;
a= nu->pntsu;
@@ -4438,26 +4584,26 @@ static void tekenhandlesN(Nurb *nu, short sel, short hide_handles)
if(bezt->hide==0) {
if( (bezt->f2 & SELECT)==sel) {
fp= bezt->vec[0];
-
- cpack(col[(int)bezt->h1]);
+
+ UI_ThemeColor(basecol + bezt->h1);
glVertex3fv(fp);
glVertex3fv(fp+3);
- cpack(col[(int)bezt->h2]);
+ UI_ThemeColor(basecol + bezt->h2);
glVertex3fv(fp+3);
glVertex3fv(fp+6);
}
else if( (bezt->f1 & SELECT)==sel) {
fp= bezt->vec[0];
-
- cpack(col[(int)bezt->h1]);
+
+ UI_ThemeColor(basecol + bezt->h1);
glVertex3fv(fp);
glVertex3fv(fp+3);
}
else if( (bezt->f3 & SELECT)==sel) {
fp= bezt->vec[1];
-
- cpack(col[(int)bezt->h2]);
+
+ UI_ThemeColor(basecol + bezt->h2);
glVertex3fv(fp);
glVertex3fv(fp+3);
}
@@ -4468,17 +4614,54 @@ static void tekenhandlesN(Nurb *nu, short sel, short hide_handles)
glEnd();
}
-static void tekenvertsN(Nurb *nu, short sel, short hide_handles)
+static void tekenhandlesN_active(Nurb *nu)
+{
+ BezTriple *bezt;
+ float *fp;
+ int a;
+
+ if(nu->hide) return;
+
+ UI_ThemeColor(TH_ACTIVE_SPLINE);
+ glLineWidth(2);
+
+ glBegin(GL_LINES);
+
+ if(nu->type == CU_BEZIER) {
+ bezt= nu->bezt;
+ a= nu->pntsu;
+ while(a--) {
+ if(bezt->hide==0) {
+ fp= bezt->vec[0];
+
+ glVertex3fv(fp);
+ glVertex3fv(fp+3);
+
+ glVertex3fv(fp+3);
+ glVertex3fv(fp+6);
+ }
+ bezt++;
+ }
+ }
+ glEnd();
+
+ glColor3ub(0,0,0);
+ glLineWidth(1);
+}
+
+static void tekenvertsN(Nurb *nu, short sel, short hide_handles, void *lastsel)
{
BezTriple *bezt;
BPoint *bp;
float size;
- int a;
+ int a, color;
if(nu->hide) return;
- if(sel) UI_ThemeColor(TH_VERTEX_SELECT);
- else UI_ThemeColor(TH_VERTEX);
+ if(sel) color= TH_VERTEX_SELECT;
+ else color= TH_VERTEX;
+
+ UI_ThemeColor(color);
size= UI_GetThemeValuef(TH_VERTEX_SIZE);
glPointSize(size);
@@ -4491,7 +4674,17 @@ static void tekenvertsN(Nurb *nu, short sel, short hide_handles)
a= nu->pntsu;
while(a--) {
if(bezt->hide==0) {
- if (hide_handles) {
+ if (sel == 1 && bezt == lastsel) {
+ UI_ThemeColor(TH_LASTSEL_POINT);
+ bglVertex3fv(bezt->vec[1]);
+
+ if (!hide_handles) {
+ if(bezt->f1 & SELECT) bglVertex3fv(bezt->vec[0]);
+ if(bezt->f3 & SELECT) bglVertex3fv(bezt->vec[2]);
+ }
+
+ UI_ThemeColor(color);
+ } else if (hide_handles) {
if((bezt->f2 & SELECT)==sel) bglVertex3fv(bezt->vec[1]);
} else {
if((bezt->f1 & SELECT)==sel) bglVertex3fv(bezt->vec[0]);
@@ -4507,7 +4700,13 @@ static void tekenvertsN(Nurb *nu, short sel, short hide_handles)
a= nu->pntsu*nu->pntsv;
while(a--) {
if(bp->hide==0) {
- if((bp->f1 & SELECT)==sel) bglVertex3fv(bp->vec);
+ if (bp == lastsel) {
+ UI_ThemeColor(TH_LASTSEL_POINT);
+ bglVertex3fv(bp->vec);
+ UI_ThemeColor(color);
+ } else {
+ if((bp->f1 & SELECT)==sel) bglVertex3fv(bp->vec);
+ }
}
bp++;
}
@@ -4517,18 +4716,94 @@ static void tekenvertsN(Nurb *nu, short sel, short hide_handles)
glPointSize(1.0);
}
+static void editnurb_draw_active_poly(Nurb *nu)
+{
+ BPoint *bp;
+ int a, b;
+
+ UI_ThemeColor(TH_ACTIVE_SPLINE);
+ glLineWidth(2);
+
+ bp= nu->bp;
+ for(b=0; b<nu->pntsv; b++) {
+ if(nu->flagu & 1) glBegin(GL_LINE_LOOP);
+ else glBegin(GL_LINE_STRIP);
+
+ for(a=0; a<nu->pntsu; a++, bp++) {
+ glVertex3fv(bp->vec);
+ }
+
+ glEnd();
+ }
+
+ glColor3ub(0,0,0);
+ glLineWidth(1);
+}
+
+static void editnurb_draw_active_nurbs(Nurb *nu)
+{
+ BPoint *bp, *bp1;
+ int a, b, ofs;
+
+ UI_ThemeColor(TH_ACTIVE_SPLINE);
+ glLineWidth(2);
+
+ glBegin(GL_LINES);
+ bp= nu->bp;
+ for(b=0; b<nu->pntsv; b++) {
+ bp1= bp;
+ bp++;
+
+ for(a=nu->pntsu-1; a>0; a--, bp++) {
+ if(bp->hide==0 && bp1->hide==0) {
+ glVertex3fv(bp->vec);
+ glVertex3fv(bp1->vec);
+ }
+ bp1= bp;
+ }
+ }
+
+ if(nu->pntsv > 1) { /* surface */
+
+ ofs= nu->pntsu;
+ for(b=0; b<nu->pntsu; b++) {
+ bp1= nu->bp+b;
+ bp= bp1+ofs;
+ for(a=nu->pntsv-1; a>0; a--, bp+=ofs) {
+ if(bp->hide==0 && bp1->hide==0) {
+ glVertex3fv(bp->vec);
+ glVertex3fv(bp1->vec);
+ }
+ bp1= bp;
+ }
+ }
+ }
+
+ glEnd();
+
+ glColor3ub(0,0,0);
+ glLineWidth(1);
+}
+
static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
{
Nurb *nu;
BPoint *bp, *bp1;
- int a, b, ofs;
-
+ int a, b, ofs, index;
+ Curve *cu= (Curve*)ob->data;
+
+ index= 0;
nu= nurb;
while(nu) {
if(nu->hide==0) {
switch(nu->type) {
case CU_POLY:
- cpack(nurbcol[3]);
+ if (!sel && index== cu->actnu) {
+ /* we should draw active spline highlight below everything */
+ editnurb_draw_active_poly(nu);
+ }
+
+ UI_ThemeColor(TH_NURB_ULINE);
bp= nu->bp;
for(b=0; b<nu->pntsv; b++) {
if(nu->flagu & 1) glBegin(GL_LINE_LOOP);
@@ -4542,6 +4817,10 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
}
break;
case CU_NURBS:
+ if (!sel && index== cu->actnu) {
+ /* we should draw active spline highlight below everything */
+ editnurb_draw_active_nurbs(nu);
+ }
bp= nu->bp;
for(b=0; b<nu->pntsv; b++) {
@@ -4551,7 +4830,7 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
if(bp->hide==0 && bp1->hide==0) {
if(sel) {
if( (bp->f1 & SELECT) && ( bp1->f1 & SELECT ) ) {
- cpack(nurbcol[5]);
+ UI_ThemeColor(TH_NURB_SEL_ULINE);
glBegin(GL_LINE_STRIP);
glVertex3fv(bp->vec);
@@ -4562,7 +4841,7 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
else {
if( (bp->f1 & SELECT) && ( bp1->f1 & SELECT) );
else {
- cpack(nurbcol[1]);
+ UI_ThemeColor(TH_NURB_ULINE);
glBegin(GL_LINE_STRIP);
glVertex3fv(bp->vec);
@@ -4584,7 +4863,7 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
if(bp->hide==0 && bp1->hide==0) {
if(sel) {
if( (bp->f1 & SELECT) && ( bp1->f1 & SELECT) ) {
- cpack(nurbcol[7]);
+ UI_ThemeColor(TH_NURB_SEL_VLINE);
glBegin(GL_LINE_STRIP);
glVertex3fv(bp->vec);
@@ -4595,7 +4874,7 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
else {
if( (bp->f1 & SELECT) && ( bp1->f1 & SELECT) );
else {
- cpack(nurbcol[3]);
+ UI_ThemeColor(TH_NURB_VLINE);
glBegin(GL_LINE_STRIP);
glVertex3fv(bp->vec);
@@ -4612,6 +4891,8 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
break;
}
}
+
+ ++index;
nu= nu->next;
}
}
@@ -4624,6 +4905,7 @@ static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
Nurb *nu;
BevList *bl;
short hide_handles = (cu->drawflag & CU_HIDE_HANDLES);
+ int index;
// XXX retopo_matrix_update(v3d);
@@ -4633,11 +4915,15 @@ static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
if(v3d->zbuf) glDisable(GL_DEPTH_TEST);
- /* first non-selected handles */
+ /* first non-selected and active handles */
+ index= 0;
for(nu=nurb; nu; nu=nu->next) {
if(nu->type == CU_BEZIER) {
+ if (index == cu->actnu && !hide_handles)
+ tekenhandlesN_active(nu);
tekenhandlesN(nu, 0, hide_handles);
}
+ ++index;
}
draw_editnurb(ob, nurb, 0);
draw_editnurb(ob, nurb, 1);
@@ -4645,7 +4931,7 @@ static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
for(nu=nurb; nu; nu=nu->next) {
if(nu->type == CU_BEZIER && (cu->drawflag & CU_HIDE_HANDLES)==0)
tekenhandlesN(nu, 1, hide_handles);
- tekenvertsN(nu, 0, hide_handles);
+ tekenvertsN(nu, 0, hide_handles, NULL);
}
if(v3d->zbuf) glEnable(GL_DEPTH_TEST);
@@ -4667,8 +4953,8 @@ static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
mul_qt_v3(bevp->quat, vec_a);
mul_qt_v3(bevp->quat, vec_b);
- add_v3_v3v3(vec_a, vec_a, bevp->vec);
- add_v3_v3v3(vec_b, vec_b, bevp->vec);
+ add_v3_v3(vec_a, bevp->vec);
+ add_v3_v3(vec_b, bevp->vec);
VECSUBFAC(vec_a, vec_a, bevp->dir, fac);
VECSUBFAC(vec_b, vec_b, bevp->dir, fac);
@@ -4688,7 +4974,7 @@ static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
if(v3d->zbuf) glDisable(GL_DEPTH_TEST);
for(nu=nurb; nu; nu=nu->next) {
- tekenvertsN(nu, 1, hide_handles);
+ tekenvertsN(nu, 1, hide_handles, cu->lastsel);
}
if(v3d->zbuf) glEnable(GL_DEPTH_TEST);
@@ -4935,6 +5221,8 @@ static int drawmball(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
}
if(ml==NULL) return 1;
+
+ if(v3d->flag2 & V3D_RENDER_OVERRIDE) return 0;
/* in case solid draw, reset wire colors */
if(ob->flag & SELECT) {
@@ -4986,9 +5274,6 @@ static void draw_forcefield(Scene *scene, Object *ob, RegionView3D *rv3d)
int curcol;
float size;
- if(G.f & G_RENDER_SHADOW)
- return;
-
/* XXX why? */
if(ob!=scene->obedit && (ob->flag & SELECT)) {
if(ob==OBACT) curcol= TH_ACTIVE;
@@ -5077,13 +5362,13 @@ static void draw_forcefield(Scene *scene, Object *ob, RegionView3D *rv3d)
/*path end*/
setlinestyle(3);
- where_on_path(ob, 1.0f, guidevec1, guidevec2, NULL, NULL);
+ where_on_path(ob, 1.0f, guidevec1, guidevec2, NULL, NULL, NULL);
UI_ThemeColorBlend(curcol, TH_BACK, 0.5);
drawcircball(GL_LINE_LOOP, guidevec1, mindist, imat);
/*path beginning*/
setlinestyle(0);
- where_on_path(ob, 0.0f, guidevec1, guidevec2, NULL, NULL);
+ where_on_path(ob, 0.0f, guidevec1, guidevec2, NULL, NULL, NULL);
UI_ThemeColorBlend(curcol, TH_BACK, 0.5);
drawcircball(GL_LINE_LOOP, guidevec1, mindist, imat);
@@ -5236,7 +5521,7 @@ static void draw_bounding_volume(Scene *scene, Object *ob)
bb= mesh_get_bb(ob);
}
else if ELEM3(ob->type, OB_CURVE, OB_SURF, OB_FONT) {
- bb= ( (Curve *)ob->data )->bb;
+ bb= ob->bb ? ob->bb : ( (Curve *)ob->data )->bb;
}
else if(ob->type==OB_MBALL) {
bb= ob->bb;
@@ -5303,9 +5588,22 @@ static void drawSolidSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
if(ELEM3(ob->type, OB_FONT,OB_CURVE, OB_SURF)) {
Curve *cu = ob->data;
- if (displist_has_faces(&cu->disp) && boundbox_clip(rv3d, ob->obmat, cu->bb)) {
+ DerivedMesh *dm = ob->derivedFinal;
+ int hasfaces= 0;
+
+ if (dm) {
+ hasfaces= dm->getNumFaces(dm);
+ } else {
+ hasfaces= displist_has_faces(&cu->disp);
+ }
+
+ if (hasfaces && boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
draw_index_wire= 0;
- drawDispListwire(&cu->disp);
+ if (dm) {
+ draw_mesh_object_outline(v3d, ob, dm);
+ } else {
+ drawDispListwire(&cu->disp);
+ }
draw_index_wire= 1;
}
} else if (ob->type==OB_MBALL) {
@@ -5350,10 +5648,16 @@ static void drawWireExtra(Scene *scene, RegionView3D *rv3d, Object *ob)
if (ELEM3(ob->type, OB_FONT, OB_CURVE, OB_SURF)) {
Curve *cu = ob->data;
- if (boundbox_clip(rv3d, ob->obmat, cu->bb)) {
+ if (boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
if (ob->type==OB_CURVE)
draw_index_wire= 0;
- drawDispListwire(&cu->disp);
+
+ if (ob->derivedFinal) {
+ drawCurveDMWired(ob);
+ } else {
+ drawDispListwire(&cu->disp);
+ }
+
if (ob->type==OB_CURVE)
draw_index_wire= 1;
}
@@ -5404,9 +5708,6 @@ void drawRBpivot(bRigidBodyJointConstraint *data)
float eu[3]= {radsPerDeg*data->axX, radsPerDeg*data->axY, radsPerDeg*data->axZ};
float mat[4][4];
- if(G.f & G_RENDER_SHADOW)
- return;
-
eul_to_mat4(mat,eu);
glLineWidth (4.0f);
setlinestyle(2);
@@ -5457,6 +5758,9 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
if (ob!=scene->obedit) {
if (ob->restrictflag & OB_RESTRICT_VIEW)
return;
+ if ((ob->restrictflag & OB_RESTRICT_RENDER) &&
+ (v3d->flag2 & V3D_RENDER_OVERRIDE))
+ return;
}
/* XXX particles are not safe for simultaneous threaded render */
@@ -5672,7 +5976,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
}
/* draw outline for selected solid objects, mesh does itself */
- if((v3d->flag & V3D_SELECT_OUTLINE) && ob->type!=OB_MESH) {
+ if((v3d->flag & V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && ob->type!=OB_MESH) {
if(dt>OB_WIRE && dt<OB_TEXTURE && (ob->mode & OB_MODE_EDIT)==0 && (flag & DRAW_SCENESET)==0) {
if (!(ob->dtx&OB_DRAWWIRE) && (ob->flag&SELECT) && !(flag&DRAW_PICKING)) {
@@ -5771,9 +6075,11 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
set_inverted_drawing(0);
}
}
- else if(dt==OB_BOUNDBOX)
- draw_bounding_volume(scene, ob);
- else if(boundbox_clip(rv3d, ob->obmat, cu->bb))
+ else if(dt==OB_BOUNDBOX) {
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE && v3d->drawtype >= OB_WIRE)==0)
+ draw_bounding_volume(scene, ob);
+ }
+ else if(boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb))
empty_object= drawDispList(scene, v3d, rv3d, base, dt);
break;
@@ -5784,14 +6090,16 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
if(cu->editnurb) {
drawnurb(scene, v3d, rv3d, base, cu->editnurb->first, dt);
}
- else if(dt==OB_BOUNDBOX)
- draw_bounding_volume(scene, ob);
- else if(boundbox_clip(rv3d, ob->obmat, cu->bb)) {
+ else if(dt==OB_BOUNDBOX) {
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE && v3d->drawtype >= OB_WIRE)==0)
+ draw_bounding_volume(scene, ob);
+ }
+ else if(boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
empty_object= drawDispList(scene, v3d, rv3d, base, dt);
if(cu->path)
curve_draw_speed(scene, ob);
- }
+ }
break;
case OB_MBALL:
{
@@ -5799,51 +6107,69 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
if(mb->editelems)
drawmball(scene, v3d, rv3d, base, dt);
- else if(dt==OB_BOUNDBOX)
- draw_bounding_volume(scene, ob);
+ else if(dt==OB_BOUNDBOX) {
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE && v3d->drawtype >= OB_WIRE)==0)
+ draw_bounding_volume(scene, ob);
+ }
else
empty_object= drawmball(scene, v3d, rv3d, base, dt);
break;
}
case OB_EMPTY:
- drawaxes(ob->empty_drawsize, flag, ob->empty_drawtype);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0)
+ drawaxes(rv3d, rv3d->viewmatob, ob->empty_drawsize, flag, ob->empty_drawtype);
break;
case OB_LAMP:
- drawlamp(scene, v3d, rv3d, base, dt, flag);
- if(dtx || (base->flag & SELECT)) glMultMatrixf(ob->obmat);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+ drawlamp(scene, v3d, rv3d, base, dt, flag);
+ if(dtx || (base->flag & SELECT)) glMultMatrixf(ob->obmat);
+ }
break;
case OB_CAMERA:
- drawcamera(scene, v3d, rv3d, ob, flag);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0 || (rv3d->persp==RV3D_CAMOB && v3d->camera==ob)) /* special exception for active camera */
+ drawcamera(scene, v3d, rv3d, ob, flag);
break;
case OB_LATTICE:
- drawlattice(scene, v3d, ob);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+ drawlattice(scene, v3d, ob);
+ }
break;
case OB_ARMATURE:
- if(dt>OB_WIRE) GPU_enable_material(0, NULL); // we use default material
- empty_object= draw_armature(scene, v3d, ar, base, dt, flag);
- if(dt>OB_WIRE) GPU_disable_material();
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+ if(dt>OB_WIRE) GPU_enable_material(0, NULL); // we use default material
+ empty_object= draw_armature(scene, v3d, ar, base, dt, flag);
+ if(dt>OB_WIRE) GPU_disable_material();
+ }
break;
default:
- drawaxes(1.0, flag, OB_ARROWS);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+ drawaxes(rv3d, rv3d->viewmatob, 1.0, flag, OB_ARROWS);
+ }
}
- if(ob->soft /*&& flag & OB_SBMOTION*/){
- float mrt[3][3],msc[3][3],mtr[3][3];
- SoftBody *sb = 0;
- float tipw = 0.5f, tiph = 0.5f,drawsize = 4.0f;
- if ((sb= ob->soft)){
- if(sb->solverflags & SBSO_ESTIMATEIPO){
- glLoadMatrixf(rv3d->viewmat);
- copy_m3_m3(msc,sb->lscale);
- copy_m3_m3(mrt,sb->lrot);
- mul_m3_m3m3(mtr,mrt,msc);
- ob_draw_RE_motion(sb->lcom,mtr,tipw,tiph,drawsize);
- glMultMatrixf(ob->obmat);
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
+
+ if(ob->soft /*&& flag & OB_SBMOTION*/){
+ float mrt[3][3],msc[3][3],mtr[3][3];
+ SoftBody *sb = 0;
+ float tipw = 0.5f, tiph = 0.5f,drawsize = 4.0f;
+ if ((sb= ob->soft)){
+ if(sb->solverflags & SBSO_ESTIMATEIPO){
+
+ glLoadMatrixf(rv3d->viewmat);
+ copy_m3_m3(msc,sb->lscale);
+ copy_m3_m3(mrt,sb->lrot);
+ mul_m3_m3m3(mtr,mrt,msc);
+ ob_draw_RE_motion(sb->lcom,mtr,tipw,tiph,drawsize);
+ glMultMatrixf(ob->obmat);
+ }
}
}
- }
- if(ob->pd && ob->pd->forcefield) draw_forcefield(scene, ob, rv3d);
+ if(ob->pd && ob->pd->forcefield) {
+ draw_forcefield(scene, ob, rv3d);
+ }
+ }
/* code for new particle system */
if( (warning_recursive==0) &&
@@ -5852,7 +6178,6 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
(ob!=scene->obedit)
) {
ParticleSystem *psys;
- PTCacheEdit *edit = PE_get_current(scene, ob);
if(col || (ob->flag & SELECT)) cpack(0xFFFFFF); /* for visibility, also while wpaint */
//glDepthMask(GL_FALSE);
@@ -5863,9 +6188,11 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
for(psys=ob->particlesystem.first; psys; psys=psys->next) {
/* run this so that possible child particles get cached */
- if(ob->mode & OB_MODE_PARTICLE_EDIT && ob==OBACT)
+ if(ob->mode & OB_MODE_PARTICLE_EDIT && ob==OBACT) {
+ PTCacheEdit *edit = PE_create_current(scene, ob);
if(edit && edit->psys == psys)
draw_update_ptcache_edit(scene, ob, edit);
+ }
draw_new_particle_system(scene, v3d, rv3d, base, psys, dt);
}
@@ -5885,7 +6212,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
) {
if(ob->mode & OB_MODE_PARTICLE_EDIT && ob==OBACT) {
- PTCacheEdit *edit = PE_get_current(scene, ob);
+ PTCacheEdit *edit = PE_create_current(scene, ob);
if(edit) {
glLoadMatrixf(rv3d->viewmat);
draw_ptcache_edit(scene, v3d, rv3d, ob, edit, dt);
@@ -5999,7 +6326,8 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
}
}
- {
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+
bConstraint *con;
for(con=ob->constraints.first; con; con= con->next)
{
@@ -6010,27 +6338,31 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
drawRBpivot(data);
}
}
- }
- /* draw extra: after normal draw because of makeDispList */
- if(dtx && !(G.f & (G_RENDER_OGL|G_RENDER_SHADOW))) {
- if(dtx & OB_AXIS) {
- drawaxes(1.0f, flag, OB_ARROWS);
- }
- if(dtx & OB_BOUNDBOX) draw_bounding_volume(scene, ob);
- if(dtx & OB_TEXSPACE) drawtexspace(ob);
- if(dtx & OB_DRAWNAME) {
- /* patch for several 3d cards (IBM mostly) that crash on glSelect with text drawing */
- /* but, we also dont draw names for sets or duplicators */
- if(flag == 0) {
- view3d_cached_text_draw_add(0.0f, 0.0f, 0.0f, ob->id.name+2, 10, 0);
+ /* draw extra: after normal draw because of makeDispList */
+ if(dtx && (G.f & G_RENDER_OGL)==0) {
+
+ if(dtx & OB_AXIS) {
+ drawaxes(rv3d, rv3d->viewmatob, 1.0f, flag, OB_ARROWS);
+ }
+ if(dtx & OB_BOUNDBOX) {
+ if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0)
+ draw_bounding_volume(scene, ob);
+ }
+ if(dtx & OB_TEXSPACE) drawtexspace(ob);
+ if(dtx & OB_DRAWNAME) {
+ /* patch for several 3d cards (IBM mostly) that crash on glSelect with text drawing */
+ /* but, we also dont draw names for sets or duplicators */
+ if(flag == 0) {
+ view3d_cached_text_draw_add(0.0f, 0.0f, 0.0f, ob->id.name+2, 10, 0);
+ }
}
+ /*if(dtx & OB_DRAWIMAGE) drawDispListwire(&ob->disp);*/
+ if((dtx & OB_DRAWWIRE) && dt>=OB_SOLID) drawWireExtra(scene, rv3d, ob);
}
- /*if(dtx & OB_DRAWIMAGE) drawDispListwire(&ob->disp);*/
- if((dtx & OB_DRAWWIRE) && dt>=OB_SOLID) drawWireExtra(scene, rv3d, ob);
}
- if(dt<OB_SHADED) {
+ if(dt<OB_SHADED && (v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
if((ob->gameflag & OB_DYNAMIC) ||
((ob->gameflag & OB_BOUNDS) && (ob->boundtype == OB_BOUND_SPHERE))) {
float imat[4][4], vec[3];
@@ -6053,13 +6385,15 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
if(warning_recursive) return;
if(base->flag & OB_FROMDUPLI) return;
- if(G.f & G_RENDER_SHADOW) return;
+ if(v3d->flag2 & V3D_RENDER_OVERRIDE) return;
/* object centers, need to be drawn in viewmat space for speed, but OK for picking select */
if(ob!=OBACT || !(ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
int do_draw_center= -1; /* defines below are zero or positive... */
- if((scene->basact)==base)
+ if(v3d->flag2 & V3D_RENDER_OVERRIDE) {
+ /* dont draw */
+ } else if((scene->basact)==base)
do_draw_center= ACTIVE;
else if(base->flag & SELECT)
do_draw_center= SELECT;
@@ -6076,15 +6410,15 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
else if((flag & DRAW_CONSTCOLOR)==0) {
/* we don't draw centers for duplicators and sets */
if(U.obcenter_dia > 0) {
- /* check > 0 otherwise grease pencil can draw into the circle select which is annoying. */
- drawcentercircle(v3d, rv3d, ob->obmat[3], do_draw_center, ob->id.lib || ob->id.us>1);
+ /* check > 0 otherwise grease pencil can draw into the circle select which is annoying. */
+ drawcentercircle(v3d, rv3d, ob->obmat[3], do_draw_center, ob->id.lib || ob->id.us>1);
}
}
}
}
/* not for sets, duplicators or picking */
- if(flag==0 && (!(v3d->flag & V3D_HIDE_HELPLINES))) {
+ if(flag==0 && (v3d->flag & V3D_HIDE_HELPLINES)== 0 && (v3d->flag2 & V3D_RENDER_OVERRIDE)== 0) {
ListBase *list;
/* draw hook center and offset line */
@@ -6225,7 +6559,7 @@ static void bbs_mesh_solid_EM(BMEditMesh *em, Scene *scene, View3D *v3d,
ptrs[1] = (void*)(intptr_t) 1;
dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, ptrs, 0);
- if( CHECK_OB_DRAWFACEDOT(scene, v3d, ob->dt) ) {
+ if(check_ob_drawface_dot(scene, v3d, ob->dt)) {
glPointSize(UI_GetThemeValuef(TH_FACEDOT_SIZE));
bglBegin(GL_POINTS);
@@ -6345,9 +6679,9 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r
if(dt<=OB_WIRE) {
if(dm)
- dm->drawEdges(dm, 1);
+ dm->drawEdges(dm, 1, 0);
else if(edm)
- edm->drawEdges(edm, 1);
+ edm->drawEdges(edm, 1, 0);
}
else {
if(outline)
@@ -6391,7 +6725,7 @@ void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
draw_object_mesh_instance(scene, v3d, rv3d, ob, dt, outline);
break;
case OB_EMPTY:
- drawaxes(ob->empty_drawsize, 0, ob->empty_drawtype);
+ drawaxes(rv3d, rv3d->viewmatob, ob->empty_drawsize, 0, ob->empty_drawtype);
break;
}
}
diff --git a/source/blender/editors/space_view3d/drawvolume.c b/source/blender/editors/space_view3d/drawvolume.c
index 004d4a022f6..420f2d77fed 100644
--- a/source/blender/editors/space_view3d/drawvolume.c
+++ b/source/blender/editors/space_view3d/drawvolume.c
@@ -29,41 +29,15 @@
#include <string.h>
#include <math.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "MEM_guardedalloc.h"
-#include "IMB_imbuf.h"
-
-
-
-
-#include "DNA_armature_types.h"
-#include "DNA_boid_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_constraint_types.h" // for drawing constraint
-#include "DNA_effect_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_lattice_types.h"
-#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_meta_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
-#include "DNA_object_fluidsim.h"
-#include "DNA_particle_types.h"
-#include "DNA_space_types.h"
+
+
+
+
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_smoke_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_world_types.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
@@ -99,23 +73,13 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "GPU_draw.h"
-#include "GPU_material.h"
#include "GPU_extensions.h"
#include "ED_mesh.h"
-#include "ED_particle.h"
-#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
-#include "UI_resources.h"
-#include "UI_interface_icons.h"
-#include "WM_api.h"
#include "BLF_api.h"
-#include "GPU_extensions.h"
#include "view3d_intern.h" // own include
@@ -248,7 +212,7 @@ void draw_volume(Scene *scene, ARegion *ar, View3D *v3d, Base *base, GPUTexture
{{-1.0f, 1.0f, -1.0f}, {2.0f, 0.0f, 0.0f}}
};
- /* Fragment program to calculate the 3dview of smoke */
+ /* Fragment program to calculate the view3d of smoke */
/* using 2 textures, density and shadow */
const char *text = "!!ARBfp1.0\n"
"PARAM dx = program.local[0];\n"
@@ -272,6 +236,11 @@ void draw_volume(Scene *scene, ARegion *ar, View3D *v3d, Base *base, GPUTexture
float size[3];
+ if(!tex) {
+ printf("Could not allocate 3D texture for 3D View smoke drawing.\n");
+ return;
+ }
+
tstart();
VECSUB(size, max, min);
@@ -380,6 +349,11 @@ void draw_volume(Scene *scene, ARegion *ar, View3D *v3d, Base *base, GPUTexture
}
}
+ if(i >= 8) {
+ /* fallback, avoid using buffer over-run */
+ i= 0;
+ }
+
// printf("i: %d\n", i);
// printf("point %f, %f, %f\n", cv[i][0], cv[i][1], cv[i][2]);
@@ -397,7 +371,7 @@ void draw_volume(Scene *scene, ARegion *ar, View3D *v3d, Base *base, GPUTexture
glProgramLocalParameter4fARB (GL_FRAGMENT_PROGRAM_ARB, 1, 7.0, 7.0, 7.0, 1.0);
}
else
- printf("Your gfx card does not support 3dview smoke drawing.\n");
+ printf("Your gfx card does not support 3D View smoke drawing.\n");
GPU_texture_bind(tex, 0);
if(tex_shadow)
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index fc67881367f..caad2afba7f 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -29,13 +29,8 @@
#include <string.h>
#include <stdio.h>
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_view3d_types.h"
#include "MEM_guardedalloc.h"
@@ -50,22 +45,20 @@
#include "BKE_utildefines.h"
#include "BKE_image.h"
-#include "ED_armature.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_object.h"
#include "BIF_gl.h"
+
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "RNA_access.h"
+#include "UI_resources.h"
+
#include "view3d_intern.h" // own include
/* ******************** manage regions ********************* */
@@ -230,7 +223,7 @@ static SpaceLink *view3d_new(const bContext *C)
ar= MEM_callocN(sizeof(ARegion), "toolshelf for view3d");
BLI_addtail(&v3d->regionbase, ar);
- ar->regiontype= RGN_TYPE_UI;
+ ar->regiontype= RGN_TYPE_TOOLS;
ar->alignment= RGN_ALIGN_LEFT;
ar->flag = RGN_FLAG_HIDDEN;
@@ -238,7 +231,7 @@ static SpaceLink *view3d_new(const bContext *C)
ar= MEM_callocN(sizeof(ARegion), "tool properties for view3d");
BLI_addtail(&v3d->regionbase, ar);
- ar->regiontype= RGN_TYPE_UI;
+ ar->regiontype= RGN_TYPE_TOOL_PROPS;
ar->alignment= RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV;
ar->flag = RGN_FLAG_HIDDEN;
@@ -420,10 +413,16 @@ static int view3d_mat_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
static int view3d_ima_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
{
- if(drag->type==WM_DRAG_ID) {
- ID *id= (ID *)drag->poin;
- if( GS(id->name)==ID_IM )
- return 1;
+ if( ED_view3d_give_base_under_cursor(C, event->mval) ) {
+ if(drag->type==WM_DRAG_ID) {
+ ID *id= (ID *)drag->poin;
+ if( GS(id->name)==ID_IM )
+ return 1;
+ }
+ else if(drag->type==WM_DRAG_PATH){
+ if(ELEM(drag->icon, 0, ICON_FILE_IMAGE)) /* rule might not work? */
+ return 1;
+ }
}
return 0;
}
@@ -444,10 +443,20 @@ static void view3d_ob_drop_copy(wmDrag *drag, wmDropBox *drop)
static void view3d_id_drop_copy(wmDrag *drag, wmDropBox *drop)
{
ID *id= (ID *)drag->poin;
-
+
RNA_string_set(drop->ptr, "name", id->name+2);
}
+static void view3d_id_path_drop_copy(wmDrag *drag, wmDropBox *drop)
+{
+ ID *id= (ID *)drag->poin;
+
+ if(id)
+ RNA_string_set(drop->ptr, "name", id->name+2);
+ if(drag->path[0])
+ RNA_string_set(drop->ptr, "filepath", drag->path);
+}
+
/* region dropbox definition */
static void view3d_dropboxes(void)
@@ -456,7 +465,7 @@ static void view3d_dropboxes(void)
WM_dropbox_add(lb, "OBJECT_OT_add_named_cursor", view3d_ob_drop_poll, view3d_ob_drop_copy);
WM_dropbox_add(lb, "OBJECT_OT_drop_named_material", view3d_mat_drop_poll, view3d_id_drop_copy);
- WM_dropbox_add(lb, "MESH_OT_drop_named_image", view3d_ima_drop_poll, view3d_id_drop_copy);
+ WM_dropbox_add(lb, "MESH_OT_drop_named_image", view3d_ima_drop_poll, view3d_id_path_drop_copy);
}
@@ -514,13 +523,19 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
switch(wmn->category) {
case NC_ANIMATION:
switch(wmn->data) {
- case ND_KEYFRAME_EDIT:
case ND_KEYFRAME_PROP:
- case ND_NLA_EDIT:
case ND_NLA_ACTCHANGE:
- case ND_ANIMCHAN_SELECT:
ED_region_tag_redraw(ar);
break;
+ case ND_NLA:
+ case ND_KEYFRAME:
+ if (wmn->action == NA_EDITED)
+ ED_region_tag_redraw(ar);
+ break;
+ case ND_ANIMCHAN:
+ if (wmn->action == NA_SELECTED)
+ ED_region_tag_redraw(ar);
+ break;
}
break;
case NC_SCENE:
@@ -548,8 +563,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_MODIFIER:
case ND_CONSTRAINT:
case ND_KEYS:
- case ND_PARTICLE_SELECT:
- case ND_PARTICLE_DATA:
+ case ND_PARTICLE:
ED_region_tag_redraw(ar);
break;
}
@@ -573,7 +587,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
break;
case NC_BRUSH:
if(wmn->action == NA_EDITED)
- ED_region_tag_redraw(ar);
+ ED_region_tag_redraw_overlay(ar);
break;
case NC_MATERIAL:
switch(wmn->data) {
@@ -601,9 +615,18 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
* more context than just the region */
ED_region_tag_redraw(ar);
break;
+ case NC_TEXTURE:
+ /* same as above */
+ ED_region_tag_redraw(ar);
+ break;
case NC_SPACE:
- if(wmn->data == ND_SPACE_VIEW3D)
+ if(wmn->data == ND_SPACE_VIEW3D) {
+ if (wmn->subtype == NS_VIEW3D_GPU) {
+ RegionView3D *rv3d= ar->regiondata;
+ rv3d->rflag |= RV3D_GPULIGHT_UPDATE;
+ }
ED_region_tag_redraw(ar);
+ }
break;
case NC_ID:
if(wmn->action == NA_RENAME)
@@ -691,12 +714,15 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
switch(wmn->category) {
case NC_ANIMATION:
switch(wmn->data) {
- case ND_KEYFRAME_EDIT:
case ND_KEYFRAME_PROP:
- case ND_NLA_EDIT:
case ND_NLA_ACTCHANGE:
ED_region_tag_redraw(ar);
break;
+ case ND_NLA:
+ case ND_KEYFRAME:
+ if (wmn->action == NA_EDITED)
+ ED_region_tag_redraw(ar);
+ break;
}
break;
case NC_SCENE:
@@ -723,6 +749,7 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_POSE:
case ND_DRAW:
case ND_KEYS:
+ case ND_MODIFIER:
ED_region_tag_redraw(ar);
break;
}
@@ -734,6 +761,8 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
ED_region_tag_redraw(ar);
break;
}
+ if (wmn->action == NA_EDITED)
+ ED_region_tag_redraw(ar);
break;
case NC_TEXTURE:
/* for brush textures */
@@ -774,6 +803,25 @@ static void view3d_tools_area_draw(const bContext *C, ARegion *ar)
ED_region_panels(C, ar, 1, CTX_data_mode_string(C), -1);
}
+static void view3d_props_area_listener(ARegion *ar, wmNotifier *wmn)
+{
+ /* context changes */
+ switch(wmn->category) {
+ case NC_WM:
+ if(wmn->data == ND_HISTORY)
+ ED_region_tag_redraw(ar);
+ break;
+ case NC_SCENE:
+ if(wmn->data == ND_MODE)
+ ED_region_tag_redraw(ar);
+ break;
+ case NC_SPACE:
+ if(wmn->data == ND_SPACE_VIEW3D)
+ ED_region_tag_redraw(ar);
+ break;
+ }
+}
+
static int view3d_context(const bContext *C, const char *member, bContextDataResult *result)
{
View3D *v3d= CTX_wm_view3d(C);
@@ -802,7 +850,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes
}
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
else if(CTX_data_equals(member, "selected_editable_objects") || CTX_data_equals(member, "selected_editable_bases")) {
@@ -820,7 +868,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes
}
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
else if(CTX_data_equals(member, "visible_objects") || CTX_data_equals(member, "visible_bases")) {
@@ -836,7 +884,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes
}
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
else if(CTX_data_equals(member, "selectable_objects") || CTX_data_equals(member, "selectable_bases")) {
@@ -852,7 +900,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes
}
}
}
-
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
else if(CTX_data_equals(member, "active_base")) {
@@ -948,7 +996,10 @@ void ED_spacetype_view3d(void)
art->draw= view3d_tools_area_draw;
BLI_addhead(&st->regiontypes, art);
+#if 0
+ /* unfinished still */
view3d_toolshelf_register(art);
+#endif
/* regions: tool properties */
art= MEM_callocN(sizeof(ARegionType), "spacetype view3d region");
@@ -956,7 +1007,7 @@ void ED_spacetype_view3d(void)
art->prefsizex= 0;
art->prefsizey= 120;
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES;
- art->listener= view3d_buttons_area_listener;
+ art->listener= view3d_props_area_listener;
art->init= view3d_tools_area_init;
art->draw= view3d_tools_area_draw;
BLI_addhead(&st->regiontypes, art);
diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c
index e679310b224..93a045dad9d 100644
--- a/source/blender/editors/space_view3d/view3d_buttons.c
+++ b/source/blender/editors/space_view3d/view3d_buttons.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,24 +31,13 @@
#include <math.h>
#include <float.h>
-#include "DNA_ID.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_curve_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_gpencil_types.h"
-#include "DNA_lamp_types.h"
#include "DNA_lattice_types.h"
#include "DNA_meta_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_world_types.h"
#include "MEM_guardedalloc.h"
@@ -79,24 +68,15 @@
#include "WM_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "ED_armature.h"
-#include "ED_curve.h"
-#include "ED_image.h"
#include "ED_gpencil.h"
-#include "ED_keyframing.h"
#include "ED_mesh.h"
-#include "ED_object.h"
-#include "ED_particle.h"
#include "ED_screen.h"
#include "ED_transform.h"
-#include "ED_types.h"
-#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "view3d_intern.h" // own include
@@ -147,7 +127,7 @@ typedef struct {
float ob_scale[3]; // need temp space due to linked values
float ob_dims[3];
short link_scale;
- float ve_median[5];
+ float ve_median[6];
int curdef;
float *defweightp;
} TransformProperties;
@@ -159,12 +139,12 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
uiBlock *block= (layout)? uiLayoutAbsoluteBlock(layout): NULL;
MDeformVert *dvert=NULL;
TransformProperties *tfp= v3d->properties_storage;
- float median[5], ve_median[5];
- int tot, totw, totweight, totedge;
+ float median[6], ve_median[6];
+ int tot, totw, totweight, totedge, totradius;
char defstr[320];
- median[0]= median[1]= median[2]= median[3]= median[4]= 0.0;
- tot= totw= totweight= totedge= 0;
+ median[0]= median[1]= median[2]= median[3]= median[4]= median[5]= 0.0;
+ tot= totw= totweight= totedge= totradius= 0;
defstr[0]= 0;
if(ob->type==OB_MESH) {
@@ -179,7 +159,7 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
if(BM_TestHFlag(eve, BM_SELECT)) {
evedef= eve;
tot++;
- add_v3_v3v3(median, median, eve->co);
+ add_v3_v3(median, eve->co);
}
}
@@ -233,18 +213,20 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
a= nu->pntsu;
while(a--) {
if(bezt->f2 & SELECT) {
- add_v3_v3v3(median, median, bezt->vec[1]);
+ add_v3_v3(median, bezt->vec[1]);
tot++;
median[4]+= bezt->weight;
totweight++;
+ median[5]+= bezt->radius;
+ totradius++;
}
else {
if(bezt->f1 & SELECT) {
- add_v3_v3v3(median, median, bezt->vec[0]);
+ add_v3_v3(median, bezt->vec[0]);
tot++;
}
if(bezt->f3 & SELECT) {
- add_v3_v3v3(median, median, bezt->vec[2]);
+ add_v3_v3(median, bezt->vec[2]);
tot++;
}
}
@@ -256,12 +238,14 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
a= nu->pntsu*nu->pntsv;
while(a--) {
if(bp->f1 & SELECT) {
- add_v3_v3v3(median, median, bp->vec);
+ add_v3_v3(median, bp->vec);
median[3]+= bp->vec[3];
totw++;
tot++;
median[4]+= bp->weight;
totweight++;
+ median[5]+= bp->radius;
+ totradius++;
}
bp++;
}
@@ -278,7 +262,7 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
bp= lt->editlatt->def;
while(a--) {
if(bp->f1 & SELECT) {
- add_v3_v3v3(median, median, bp->vec);
+ add_v3_v3(median, bp->vec);
tot++;
median[4]+= bp->weight;
totweight++;
@@ -295,6 +279,7 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
if(totedge) median[3] /= (float)totedge;
else if(totw) median[3] /= (float)totw;
if(totweight) median[4] /= (float)totweight;
+ if(totradius) median[5] /= (float)totradius;
if(v3d->flag & V3D_GLOBAL_STATS)
mul_m4_v3(ob->obmat, median);
@@ -324,6 +309,8 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
uiBlockEndAlign(block);
if(totweight)
uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:", 0, 0, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "");
+ if(totradius)
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:", 0, 0, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 10, 3, "Radius of curve CPs");
}
else {
uiBlockBeginAlign(block);
@@ -332,6 +319,8 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
uiBlockEndAlign(block);
if(totweight)
uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:", 0, 20, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "");
+ if(totradius)
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:", 0, 20, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 10, 3, "Radius of curve CPs");
}
}
else {
@@ -349,6 +338,8 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
uiBlockEndAlign(block);
if(totweight)
uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:", 0, 0, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "Weight is used for SoftBody Goal");
+ if(totradius)
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:", 0, 0, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 10, 3, "Radius of curve CPs");
uiBlockEndAlign(block);
}
else {
@@ -358,6 +349,8 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
uiBlockEndAlign(block);
if(totweight)
uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:", 0, 20, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "Weight is used for SoftBody Goal");
+ if(totradius)
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:", 0, 0, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 10, 3, "Radius of curve CPs");
uiBlockEndAlign(block);
}
}
@@ -379,6 +372,7 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
sub_v3_v3v3(median, ve_median, median);
median[3]= ve_median[3]-median[3];
median[4]= ve_median[4]-median[4];
+ median[5]= ve_median[5]-median[5];
if(ob->type==OB_MESH) {
Mesh *me= ob->data;
@@ -389,7 +383,7 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
BM_ITER(eve, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
if(BM_TestHFlag(eve, BM_SELECT)) {
- add_v3_v3v3(eve->co, eve->co, median);
+ add_v3_v3(eve->co, median);
}
}
@@ -424,17 +418,18 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
a= nu->pntsu;
while(a--) {
if(bezt->f2 & SELECT) {
- add_v3_v3v3(bezt->vec[0], bezt->vec[0], median);
- add_v3_v3v3(bezt->vec[1], bezt->vec[1], median);
- add_v3_v3v3(bezt->vec[2], bezt->vec[2], median);
+ add_v3_v3(bezt->vec[0], median);
+ add_v3_v3(bezt->vec[1], median);
+ add_v3_v3(bezt->vec[2], median);
bezt->weight+= median[4];
+ bezt->radius+= median[5];
}
else {
if(bezt->f1 & SELECT) {
- add_v3_v3v3(bezt->vec[0], bezt->vec[0], median);
+ add_v3_v3(bezt->vec[0], median);
}
if(bezt->f3 & SELECT) {
- add_v3_v3v3(bezt->vec[2], bezt->vec[2], median);
+ add_v3_v3(bezt->vec[2], median);
}
}
bezt++;
@@ -445,9 +440,10 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
a= nu->pntsu*nu->pntsv;
while(a--) {
if(bp->f1 & SELECT) {
- add_v3_v3v3(bp->vec, bp->vec, median);
+ add_v3_v3(bp->vec, median);
bp->vec[3]+= median[3];
bp->weight+= median[4];
+ bp->radius+= median[5];
}
bp++;
}
@@ -467,7 +463,7 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
bp= lt->editlatt->def;
while(a--) {
if(bp->f1 & SELECT) {
- add_v3_v3v3(bp->vec, bp->vec, median);
+ add_v3_v3(bp->vec, median);
bp->weight+= median[4];
}
bp++;
@@ -752,57 +748,57 @@ static void v3d_transform_butsR(uiLayout *layout, PointerRNA *ptr)
uiLayoutSetActive(split, !(bone->parent && bone->flag & BONE_CONNECTED));
}
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, "Location", 0, ptr, "location", 0);
+ uiItemR(colsub, ptr, "location", 0, "Location", 0);
colsub = uiLayoutColumn(split, 1);
uiItemL(colsub, "", 0);
- uiItemR(colsub, "", ICON_LOCKED, ptr, "lock_location", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY);
+ uiItemR(colsub, ptr, "lock_location", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
split = uiLayoutSplit(layout, 0.8, 0);
switch(RNA_enum_get(ptr, "rotation_mode")) {
case ROT_MODE_QUAT: /* quaternion */
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, "Rotation", 0, ptr, "rotation_quaternion", 0);
+ uiItemR(colsub, ptr, "rotation_quaternion", 0, "Rotation", 0);
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, "4L", 0, ptr, "lock_rotations_4d", UI_ITEM_R_TOGGLE);
+ uiItemR(colsub, ptr, "lock_rotations_4d", UI_ITEM_R_TOGGLE, "4L", 0);
if (RNA_boolean_get(ptr, "lock_rotations_4d"))
- uiItemR(colsub, "", ICON_LOCKED, ptr, "lock_rotation_w", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY);
+ uiItemR(colsub, ptr, "lock_rotation_w", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
else
uiItemL(colsub, "", 0);
- uiItemR(colsub, "", ICON_LOCKED, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY);
+ uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
break;
case ROT_MODE_AXISANGLE: /* axis angle */
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, "Rotation", 0, ptr, "rotation_axis_angle", 0);
+ uiItemR(colsub, ptr, "rotation_axis_angle", 0, "Rotation", 0);
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, "4L", 0, ptr, "lock_rotations_4d", UI_ITEM_R_TOGGLE);
+ uiItemR(colsub, ptr, "lock_rotations_4d", UI_ITEM_R_TOGGLE, "4L", 0);
if (RNA_boolean_get(ptr, "lock_rotations_4d"))
- uiItemR(colsub, "", ICON_LOCKED, ptr, "lock_rotation_w", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY);
+ uiItemR(colsub, ptr, "lock_rotation_w", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
else
uiItemL(colsub, "", 0);
- uiItemR(colsub, "", ICON_LOCKED, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY);
+ uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
break;
default: /* euler rotations */
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, "Rotation", 0, ptr, "rotation_euler", 0);
+ uiItemR(colsub, ptr, "rotation_euler", 0, "Rotation", 0);
colsub = uiLayoutColumn(split, 1);
uiItemL(colsub, "", 0);
- uiItemR(colsub, "", ICON_LOCKED, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY);
+ uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
break;
}
- uiItemR(layout, "", 0, ptr, "rotation_mode", 0);
+ uiItemR(layout, ptr, "rotation_mode", 0, "", 0);
split = uiLayoutSplit(layout, 0.8, 0);
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, "Scale", 0, ptr, "scale", 0);
+ uiItemR(colsub, ptr, "scale", 0, "Scale", 0);
colsub = uiLayoutColumn(split, 1);
uiItemL(colsub, "", 0);
- uiItemR(colsub, "", ICON_LOCKED, ptr, "lock_scale", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY);
+ uiItemR(colsub, ptr, "lock_scale", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
if (ptr->type == &RNA_Object) {
Object *ob = ptr->data;
if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL))
- uiItemR(layout, "Dimensions", 0, ptr, "dimensions", 0);
+ uiItemR(layout, ptr, "dimensions", 0, "Dimensions", 0);
}
}
@@ -928,18 +924,18 @@ static void v3d_editarmature_buts(uiLayout *layout, View3D *v3d, Object *ob, flo
col= uiLayoutColumn(layout, 0);
- uiItemR(col, "Head", 0, &eboneptr, "head", 0);
+ uiItemR(col, &eboneptr, "head", 0, "Head", 0);
if (ebone->parent && ebone->flag & BONE_CONNECTED ) {
PointerRNA parptr = RNA_pointer_get(&eboneptr, "parent");
- uiItemR(col, "Radius", 0, &parptr, "tail_radius", 0);
+ uiItemR(col, &parptr, "tail_radius", 0, "Radius", 0);
} else {
- uiItemR(col, "Radius", 0, &eboneptr, "head_radius", 0);
+ uiItemR(col, &eboneptr, "head_radius", 0, "Radius", 0);
}
- uiItemR(col, "Tail", 0, &eboneptr, "tail", 0);
- uiItemR(col, "Radius", 0, &eboneptr, "tail_radius", 0);
+ uiItemR(col, &eboneptr, "tail", 0, "Tail", 0);
+ uiItemR(col, &eboneptr, "tail_radius", 0, "Radius", 0);
- uiItemR(col, "Roll", 0, &eboneptr, "roll", 0);
+ uiItemR(col, &eboneptr, "roll", 0, "Roll", 0);
}
static void v3d_editmetaball_buts(uiLayout *layout, Object *ob, float lim)
@@ -958,12 +954,12 @@ static void v3d_editmetaball_buts(uiLayout *layout, Object *ob, float lim)
RNA_pointer_create(&mball->id, &RNA_MetaElement, mball->lastelem, &ptr);
col= uiLayoutColumn(layout, 0);
- uiItemR(col, "Location", 0, &ptr, "location", 0);
+ uiItemR(col, &ptr, "location", 0, "Location", 0);
- uiItemR(col, "Radius", 0, &ptr, "radius", 0);
- uiItemR(col, "Stiffness", 0, &ptr, "stiffness", 0);
+ uiItemR(col, &ptr, "radius", 0, "Radius", 0);
+ uiItemR(col, &ptr, "stiffness", 0, "Stiffness", 0);
- uiItemR(col, "Type", 0, &ptr, "type", 0);
+ uiItemR(col, &ptr, "type", 0, "Type", 0);
col= uiLayoutColumn(layout, 1);
switch (RNA_enum_get(&ptr, "type")) {
@@ -971,24 +967,24 @@ static void v3d_editmetaball_buts(uiLayout *layout, Object *ob, float lim)
break;
case MB_CUBE:
uiItemL(col, "Size:", 0);
- uiItemR(col, "X", 0, &ptr, "size_x", 0);
- uiItemR(col, "Y", 0, &ptr, "size_y", 0);
- uiItemR(col, "Z", 0, &ptr, "size_z", 0);
+ uiItemR(col, &ptr, "size_x", 0, "X", 0);
+ uiItemR(col, &ptr, "size_y", 0, "Y", 0);
+ uiItemR(col, &ptr, "size_z", 0, "Z", 0);
break;
case MB_TUBE:
uiItemL(col, "Size:", 0);
- uiItemR(col, "X", 0, &ptr, "size_x", 0);
+ uiItemR(col, &ptr, "size_x", 0, "X", 0);
break;
case MB_PLANE:
uiItemL(col, "Size:", 0);
- uiItemR(col, "X", 0, &ptr, "size_x", 0);
- uiItemR(col, "Y", 0, &ptr, "size_y", 0);
+ uiItemR(col, &ptr, "size_x", 0, "X", 0);
+ uiItemR(col, &ptr, "size_y", 0, "Y", 0);
break;
case MB_ELIPSOID:
uiItemL(col, "Size:", 0);
- uiItemR(col, "X", 0, &ptr, "size_x", 0);
- uiItemR(col, "Y", 0, &ptr, "size_y", 0);
- uiItemR(col, "Z", 0, &ptr, "size_z", 0);
+ uiItemR(col, &ptr, "size_x", 0, "X", 0);
+ uiItemR(col, &ptr, "size_y", 0, "Y", 0);
+ uiItemR(col, &ptr, "size_z", 0, "Z", 0);
break;
}
}
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index a9ab286b2dc..8cc8c976981 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,19 +30,13 @@
#include <stdio.h>
#include <math.h>
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
#include "DNA_customdata_types.h"
#include "DNA_group_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
#include "DNA_world_types.h"
#include "MEM_guardedalloc.h"
@@ -75,27 +69,24 @@
#include "BIF_glutil.h"
#include "WM_api.h"
-#include "WM_types.h"
#include "BLF_api.h"
#include "ED_armature.h"
#include "ED_keyframing.h"
#include "ED_gpencil.h"
-#include "ED_mesh.h"
#include "ED_screen.h"
#include "ED_space_api.h"
#include "ED_screen_types.h"
-#include "ED_util.h"
#include "ED_transform.h"
-#include "ED_types.h"
+#include "ED_gpencil.h"
#include "UI_interface.h"
#include "UI_interface_icons.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "GPU_draw.h"
#include "GPU_material.h"
+#include "GPU_extensions.h"
#include "view3d_intern.h" // own include
@@ -303,7 +294,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u
while(i--) {
scalar= bUnit_GetScaler(usys, i);
- dx_scalar = dx * scalar * unit->scale_length;
+ dx_scalar = dx * scalar / unit->scale_length;
if (dx_scalar < (GRID_MIN_PX*2))
continue;
@@ -476,11 +467,11 @@ static void drawfloor(Scene *scene, View3D *v3d)
if (draw_line) {
glBegin(GL_LINE_STRIP);
- vert[0]= a*v3d->grid;
- vert[1]= grid;
- glVertex3fv(vert);
- vert[1]= -grid;
- glVertex3fv(vert);
+ vert[0]= a*v3d->grid;
+ vert[1]= grid;
+ glVertex3fv(vert);
+ vert[1]= -grid;
+ glVertex3fv(vert);
glEnd();
}
}
@@ -515,11 +506,11 @@ static void drawfloor(Scene *scene, View3D *v3d)
if (draw_line) {
glBegin(GL_LINE_STRIP);
- vert[1]= a*v3d->grid;
- vert[0]= grid;
- glVertex3fv(vert );
- vert[0]= -grid;
- glVertex3fv(vert);
+ vert[1]= a*v3d->grid;
+ vert[0]= grid;
+ glVertex3fv(vert );
+ vert[0]= -grid;
+ glVertex3fv(vert);
glEnd();
}
}
@@ -830,7 +821,7 @@ static void draw_selected_name(Scene *scene, Object *ob, View3D *v3d)
}
/* colour depends on whether there is a keyframe */
- if (id_frame_has_keyframe((ID *)ob, /*frame_to_float(scene, CFRA)*/(float)(CFRA), v3d->keyflags))
+ if (id_frame_has_keyframe((ID *)ob, /*BKE_curframe(scene)*/(float)(CFRA), v3d->keyflags))
UI_ThemeColor(TH_VERTEX_SELECT);
else
UI_ThemeColor(TH_TEXT_HI);
@@ -855,7 +846,7 @@ static void draw_selected_name(Scene *scene, Object *ob, View3D *v3d)
static void view3d_get_viewborder_size(Scene *scene, ARegion *ar, float size_r[2])
{
float winmax= MAX2(ar->winx, ar->winy);
- float aspect= (float) (scene->r.xsch*scene->r.xasp)/(scene->r.ysch*scene->r.yasp);
+ float aspect= (scene->r.xsch*scene->r.xasp) / (scene->r.ysch*scene->r.yasp);
if(aspect>1.0) {
size_r[0]= winmax;
@@ -866,14 +857,16 @@ static void view3d_get_viewborder_size(Scene *scene, ARegion *ar, float size_r[2
}
}
-void calc_viewborder(Scene *scene, ARegion *ar, View3D *v3d, rctf *viewborder_r)
+void calc_viewborder(Scene *scene, ARegion *ar, RegionView3D *rv3d, View3D *v3d, rctf *viewborder_r)
{
- RegionView3D *rv3d= ar->regiondata;
float zoomfac, size[2];
float dx= 0.0f, dy= 0.0f;
view3d_get_viewborder_size(scene, ar, size);
+ if (rv3d == NULL)
+ rv3d = ar->regiondata;
+
/* magic zoom calculation, no idea what
* it signifies, if you find out, tell me! -zr
*/
@@ -982,13 +975,14 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d)
float x3, y3, x4, y4;
rctf viewborder;
Camera *ca= NULL;
+ RegionView3D *rv3d= (RegionView3D *)ar->regiondata;
if(v3d->camera==NULL)
return;
if(v3d->camera->type==OB_CAMERA)
ca = v3d->camera->data;
- calc_viewborder(scene, ar, v3d, &viewborder);
+ calc_viewborder(scene, ar, rv3d, v3d, &viewborder);
x1= viewborder.xmin;
y1= viewborder.ymin;
x2= viewborder.xmax;
@@ -1077,7 +1071,7 @@ void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d)
rcti winrct;
if(base && (base->object->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT) ||
- paint_facesel_test(base->object)));
+ paint_facesel_test(base->object)));
else if((base && (base->object->mode & OB_MODE_TEXTURE_PAINT)) &&
scene->toolsettings && (scene->toolsettings->imapaint.flag & IMAGEPAINT_PROJECT_DISABLE));
else if((base && (base->object->mode & OB_MODE_PARTICLE_EDIT)) && v3d->drawtype>OB_WIRE && (v3d->flag & V3D_ZBUF_SELECT));
@@ -1317,7 +1311,7 @@ static void draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d)
if(rv3d->persp==RV3D_CAMOB) {
rctf vb;
- calc_viewborder(scene, ar, v3d, &vb);
+ calc_viewborder(scene, ar, rv3d, v3d, &vb);
x1= vb.xmin;
y1= vb.ymin;
@@ -1362,7 +1356,7 @@ static void draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d)
int mip= 0;
if(ibuf->mipmap[0]==NULL)
- IMB_makemipmap(ibuf, 0, 0);
+ IMB_makemipmap(ibuf, 0);
while(tzoom < 1.0f && mip<8 && ibuf->mipmap[mip]) {
tzoom*= 2.0f;
@@ -1492,11 +1486,19 @@ int dupli_ob_sort(void *arg1, void *arg2)
}
#endif
+
+static DupliObject *dupli_step(DupliObject *dob)
+{
+ while(dob && dob->no_draw)
+ dob= dob->next;
+ return dob;
+}
+
static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int color)
-{
+{
RegionView3D *rv3d= ar->regiondata;
ListBase *lb;
- DupliObject *dob;
+ DupliObject *dob_prev= NULL, *dob, *dob_next;
Base tbase;
BoundBox bb, *bb_tmp; /* use a copy because draw_object, calls clear_mesh_caches */
GLuint displist=0;
@@ -1508,72 +1510,81 @@ static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Bas
tbase.flag= OB_FROMDUPLI|base->flag;
lb= object_duplilist(scene, base->object);
// BLI_sortlist(lb, dupli_ob_sort); // might be nice to have if we have a dupli list with mixed objects.
-
- for(dob= lb->first; dob; dob= dob->next) {
- if(dob->no_draw);
- else {
- tbase.object= dob->ob;
-
- /* extra service: draw the duplicator in drawtype of parent */
- /* MIN2 for the drawtype to allow bounding box objects in groups for lods */
- dt= tbase.object->dt; tbase.object->dt= MIN2(tbase.object->dt, base->object->dt);
- dtx= tbase.object->dtx; tbase.object->dtx= base->object->dtx;
-
- /* negative scale flag has to propagate */
- transflag= tbase.object->transflag;
- if(base->object->transflag & OB_NEG_SCALE)
- tbase.object->transflag ^= OB_NEG_SCALE;
-
- UI_ThemeColorBlend(color, TH_BACK, 0.5);
-
- /* generate displist, test for new object */
- if(use_displist==1 && dob->prev && dob->prev->ob!=dob->ob) {
- use_displist= -1;
+
+ dob=dupli_step(lb->first);
+ if(dob) dob_next= dupli_step(dob->next);
+
+ for( ; dob ; dob_prev= dob, dob= dob_next, dob_next= dob_next ? dupli_step(dob_next->next) : NULL) {
+ tbase.object= dob->ob;
+
+ /* extra service: draw the duplicator in drawtype of parent */
+ /* MIN2 for the drawtype to allow bounding box objects in groups for lods */
+ dt= tbase.object->dt; tbase.object->dt= MIN2(tbase.object->dt, base->object->dt);
+ dtx= tbase.object->dtx; tbase.object->dtx= base->object->dtx;
+
+ /* negative scale flag has to propagate */
+ transflag= tbase.object->transflag;
+ if(base->object->transflag & OB_NEG_SCALE)
+ tbase.object->transflag ^= OB_NEG_SCALE;
+
+ UI_ThemeColorBlend(color, TH_BACK, 0.5);
+
+ /* generate displist, test for new object */
+ if(dob_prev && dob_prev->ob != dob->ob) {
+ if(use_displist==1)
glDeleteLists(displist, 1);
- }
- /* generate displist */
- if(use_displist == -1) {
-
- /* lamp drawing messes with matrices, could be handled smarter... but this works */
-
- /* note, since this was added, its checked dob->type==OB_DUPLIGROUP
- * however this is very slow, it was probably needed for the NLA
- * offset feature (used in group-duplicate.blend but no longer works in 2.5)
- * so for now it should be ok to - campbell */
- if(dob->ob->type==OB_LAMP || (dob->type==OB_DUPLIGROUP && dob->animated) || !(bb_tmp= object_get_boundbox(dob->ob)))
- use_displist= 0;
- else {
- bb= *bb_tmp; /* must make a copy */
-
- /* disable boundbox check for list creation */
- object_boundbox_flag(dob->ob, OB_BB_DISABLED, 1);
- /* need this for next part of code */
- unit_m4(dob->ob->obmat); /* obmat gets restored */
-
- displist= glGenLists(1);
- glNewList(displist, GL_COMPILE);
- draw_object(scene, ar, v3d, &tbase, DRAW_CONSTCOLOR);
- glEndList();
-
- use_displist= 1;
- object_boundbox_flag(dob->ob, OB_BB_DISABLED, 0);
- }
- }
- if(use_displist) {
- glMultMatrixf(dob->mat);
- if(boundbox_clip(rv3d, dob->mat, &bb))
- glCallList(displist);
- glLoadMatrixf(rv3d->viewmat);
+
+ use_displist= -1;
+ }
+
+ /* generate displist */
+ if(use_displist == -1) {
+
+ /* note, since this was added, its checked dob->type==OB_DUPLIGROUP
+ * however this is very slow, it was probably needed for the NLA
+ * offset feature (used in group-duplicate.blend but no longer works in 2.5)
+ * so for now it should be ok to - campbell */
+
+ if( (dob_next==NULL || dob_next->ob != dob->ob) || /* if this is the last no need to make a displist */
+ (dob->ob->type == OB_LAMP) || /* lamp drawing messes with matrices, could be handled smarter... but this works */
+ (dob->type == OB_DUPLIGROUP && dob->animated) ||
+ !(bb_tmp= object_get_boundbox(dob->ob))
+ ) {
+ // printf("draw_dupli_objects_color: skipping displist for %s\n", dob->ob->id.name+2);
+ use_displist= 0;
}
else {
- copy_m4_m4(dob->ob->obmat, dob->mat);
+ // printf("draw_dupli_objects_color: using displist for %s\n", dob->ob->id.name+2);
+ bb= *bb_tmp; /* must make a copy */
+
+ /* disable boundbox check for list creation */
+ object_boundbox_flag(dob->ob, OB_BB_DISABLED, 1);
+ /* need this for next part of code */
+ unit_m4(dob->ob->obmat); /* obmat gets restored */
+
+ displist= glGenLists(1);
+ glNewList(displist, GL_COMPILE);
draw_object(scene, ar, v3d, &tbase, DRAW_CONSTCOLOR);
+ glEndList();
+
+ use_displist= 1;
+ object_boundbox_flag(dob->ob, OB_BB_DISABLED, 0);
}
-
- tbase.object->dt= dt;
- tbase.object->dtx= dtx;
- tbase.object->transflag= transflag;
}
+ if(use_displist) {
+ glMultMatrixf(dob->mat);
+ if(boundbox_clip(rv3d, dob->mat, &bb))
+ glCallList(displist);
+ glLoadMatrixf(rv3d->viewmat);
+ }
+ else {
+ copy_m4_m4(dob->ob->obmat, dob->mat);
+ draw_object(scene, ar, v3d, &tbase, DRAW_CONSTCOLOR);
+ }
+
+ tbase.object->dt= dt;
+ tbase.object->dtx= dtx;
+ tbase.object->transflag= transflag;
}
/* Transp afterdraw disabled, afterdraw only stores base pointers, and duplis can be same obj */
@@ -1647,7 +1658,7 @@ void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d)
v3d->zbuf= TRUE;
glEnable(GL_DEPTH_TEST);
- draw_gpencil_3dview_ext(scene, ar, 1);
+ draw_gpencil_view3d_ext(scene, ar, 1);
v3d->zbuf= zbuf;
@@ -1791,6 +1802,8 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d)
Scene *sce;
Base *base;
Object *ob;
+ ARegion ar;
+ RegionView3D rv3d;
shadows.first= shadows.last= NULL;
@@ -1818,23 +1831,36 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d)
for(shadow=shadows.first; shadow; shadow=shadow->next) {
/* this needs to be done better .. */
float viewmat[4][4], winmat[4][4];
- int drawtype, lay, winsize, flag2;
+ int drawtype, lay, winsize, flag2=v3d->flag2;
drawtype= v3d->drawtype;
lay= v3d->lay;
- flag2= v3d->flag2 & V3D_SOLID_TEX;
v3d->drawtype = OB_SOLID;
v3d->lay &= GPU_lamp_shadow_layer(shadow->lamp);
v3d->flag2 &= ~V3D_SOLID_TEX;
+ v3d->flag2 |= V3D_RENDER_OVERRIDE;
GPU_lamp_shadow_buffer_bind(shadow->lamp, viewmat, &winsize, winmat);
-// XXX drawview3d_render(v3d, viewmat, winsize, winsize, winmat, 1);
+
+ memset(&ar, 0, sizeof(ar));
+ memset(&rv3d, 0, sizeof(rv3d));
+
+ ar.regiondata= &rv3d;
+ ar.regiontype= RGN_TYPE_WINDOW;
+ rv3d.persp= RV3D_CAMOB;
+ copy_m4_m4(rv3d.winmat, winmat);
+ copy_m4_m4(rv3d.viewmat, viewmat);
+ invert_m4_m4(rv3d.viewinv, rv3d.viewmat);
+ mul_m4_m4m4(rv3d.persmat, rv3d.viewmat, rv3d.winmat);
+ invert_m4_m4(rv3d.persinv, rv3d.viewinv);
+
+ ED_view3d_draw_offscreen(scene, v3d, &ar, winsize, winsize, viewmat, winmat);
GPU_lamp_shadow_buffer_unbind(shadow->lamp);
v3d->drawtype= drawtype;
v3d->lay= lay;
- v3d->flag2 |= flag2;
+ v3d->flag2 = flag2;
}
BLI_freelistN(&shadows);
@@ -1862,7 +1888,7 @@ static CustomDataMask get_viewedit_datamask(bScreen *screen, Scene *scene, Objec
}
if((view->drawtype == OB_TEXTURE) || ((view->drawtype == OB_SOLID) && (view->flag2 & V3D_SOLID_TEX))) {
mask |= CD_MASK_MTFACE | CD_MASK_MCOL;
-
+
if(scene->gm.matmode == GAME_MAT_GLSL)
mask |= CD_MASK_ORCO;
}
@@ -1937,19 +1963,20 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx,
bwiny= ar->winy;
ar->winx= winx;
ar->winy= winy;
-
+
/* set flags */
G.f |= G_RENDER_OGL;
- GPU_free_images();
+
+ /* free images which can have changed on frame-change
+ * warning! can be slow so only free animated images - campbell */
+ GPU_free_images_anim();
/* set background color, fallback on the view background color */
if(scene->world) {
glClearColor(scene->world->horr, scene->world->horg, scene->world->horb, 0.0);
}
else {
- float col[3];
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
+ UI_ThemeClearColor(TH_BACK);
}
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
@@ -2000,22 +2027,111 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx,
}
/* draw grease-pencil stuff */
- draw_gpencil_3dview_ext(scene, ar, 1);
+ draw_gpencil_view3d_ext(scene, ar, 1);
ED_region_pixelspace(ar);
/* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */
- draw_gpencil_3dview_ext(scene, ar, 0);
+ draw_gpencil_view3d_ext(scene, ar, 0);
- GPU_free_images();
+ /* freeing the images again here could be done after the operator runs, leaving for now */
+ GPU_free_images_anim();
/* restore size */
ar->winx= bwinx;
ar->winy= bwiny;
glPopMatrix();
+
+ glColor4ub(255, 255, 255, 255); // XXX, without this the sequencer flickers with opengl draw enabled, need to find out why - campbell
+
+ G.f &= ~G_RENDER_OGL;
}
+/* utility func for ED_view3d_draw_offscreen */
+ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar, int sizex, int sizey)
+{
+ RegionView3D *rv3d= ar->regiondata;
+ ImBuf *ibuf;
+ GPUOffScreen *ofs;
+
+ /* bind */
+ ofs= GPU_offscreen_create(sizex, sizey);
+ if(ofs == NULL)
+ return NULL;
+
+ GPU_offscreen_bind(ofs);
+
+ /* render 3d view */
+ if(rv3d->persp==RV3D_CAMOB && v3d->camera) {
+ float winmat[4][4];
+ float _clipsta, _clipend, _lens, _yco, _dx, _dy;
+ rctf _viewplane;
+
+ object_camera_matrix(&scene->r, v3d->camera, sizex, sizey, 0, winmat, &_viewplane, &_clipsta, &_clipend, &_lens, &_yco, &_dx, &_dy);
+
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat);
+ }
+ else {
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, NULL);
+ }
+
+ /* read in pixels & stamp */
+ ibuf= IMB_allocImBuf(sizex, sizey, 24, IB_rect, 0);
+ glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+
+ //if((scene->r.stamp & R_STAMP_ALL) && (scene->r.stamp & R_STAMP_DRAW))
+ // BKE_stamp_buf(scene, NULL, rr->rectf, rr->rectx, rr->recty, 4);
+
+ /* unbind */
+ GPU_offscreen_unbind(ofs);
+ GPU_offscreen_free(ofs);
+
+ return ibuf;
+}
+
+/* creates own 3d views, used by the sequencer */
+ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Scene *scene, int width, int height, int drawtype)
+{
+ View3D v3d;
+ ARegion ar;
+ RegionView3D rv3d;
+
+ memset(&v3d, 0, sizeof(v3d));
+ memset(&ar, 0, sizeof(ar));
+ memset(&rv3d, 0, sizeof(rv3d));
+
+ /* connect data */
+ v3d.regionbase.first= v3d.regionbase.last= &ar;
+ ar.regiondata= &rv3d;
+ ar.regiontype= RGN_TYPE_WINDOW;
+
+ v3d.camera= scene->camera;
+ v3d.lay= scene->lay;
+ v3d.drawtype = drawtype;
+ v3d.flag2 = V3D_RENDER_OVERRIDE;
+
+ rv3d.persp= RV3D_CAMOB;
+
+ copy_m4_m4(rv3d.viewinv, v3d.camera->obmat);
+ normalize_m4(rv3d.viewinv);
+ invert_m4_m4(rv3d.viewmat, rv3d.viewinv);
+
+ {
+ float _yco, _dx, _dy;
+ rctf _viewplane;
+ object_camera_matrix(&scene->r, v3d.camera, width, height, 0, rv3d.winmat, &_viewplane, &v3d.near, &v3d.far, &v3d.lens, &_yco, &_dx, &_dy);
+ }
+
+ mul_m4_m4m4(rv3d.persmat, rv3d.viewmat, rv3d.winmat);
+ invert_m4_m4(rv3d.persinv, rv3d.viewinv);
+
+ return ED_view3d_draw_offscreen_imbuf(scene, &v3d, &ar, width, height);
+
+ // seq_view3d_cb(scene, cfra, render_size, seqrectx, seqrecty);
+}
+
+
/* NOTE: the info that this uses is updated in ED_refresh_viewport_fps(),
* which currently gets called during SCREEN_OT_animation_step.
*/
@@ -2053,15 +2169,15 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar)
fps = fps / tot;
}
#endif
-
+
/* is this more then half a frame behind? */
if (fps+0.5 < FPS) {
UI_ThemeColor(TH_REDALERT);
- sprintf(printable, "fps: %.2f", (float)fps);
+ BLI_snprintf(printable, sizeof(printable), "fps: %.2f", (float)fps);
}
else {
UI_ThemeColor(TH_TEXT_HI);
- sprintf(printable, "fps: %i", (int)(fps+0.5));
+ BLI_snprintf(printable, sizeof(printable), "fps: %i", (int)(fps+0.5));
}
BLF_draw_default(22, ar->winy-17, 0.0f, printable);
@@ -2075,22 +2191,26 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
Scene *sce;
Base *base;
Object *ob;
- float col[3];
int retopo= 0, sculptparticle= 0;
Object *obact = OBACT;
char *grid_unit= NULL;
/* from now on all object derived meshes check this */
v3d->customdata_mask= get_viewedit_datamask(CTX_wm_screen(C), scene, obact);
-
+
/* shadow buffers, before we setup matrices */
if(draw_glsl_material(scene, NULL, v3d, v3d->drawtype))
gpu_update_lamps_shadows(scene, v3d);
+
+ /* reset default OpenGL lights if needed (i.e. after preferences have been altered) */
+ if (rv3d->rflag & RV3D_GPULIGHT_UPDATE) {
+ rv3d->rflag &= ~RV3D_GPULIGHT_UPDATE;
+ GPU_default_lights();
+ }
/* clear background */
- UI_GetThemeColor3fv(TH_BACK, col);
- glClearColor(col[0], col[1], col[2], 0.0);
- glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+ UI_ThemeClearColor(TH_BACK);
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
/* setup view matrices */
view3d_main_area_setup_view(scene, v3d, ar, NULL, NULL);
@@ -2115,35 +2235,38 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
// needs to be done always, gridview is adjusted in drawgrid() now
rv3d->gridview= v3d->grid;
- if(rv3d->view==0 || rv3d->persp!=0) {
- drawfloor(scene, v3d);
- if(rv3d->persp==2) {
- if(scene->world) {
- if(scene->world->mode & WO_STARS) {
- RE_make_stars(NULL, scene, star_stuff_init_func, star_stuff_vertex_func,
- star_stuff_term_func);
+ if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+
+ if(rv3d->view==0 || rv3d->persp != RV3D_ORTHO) {
+ drawfloor(scene, v3d);
+ if(rv3d->persp==RV3D_CAMOB) {
+ if(scene->world) {
+ if(scene->world->mode & WO_STARS) {
+ RE_make_stars(NULL, scene, star_stuff_init_func, star_stuff_vertex_func,
+ star_stuff_term_func);
+ }
}
+ if(v3d->flag & V3D_DISPBGPICS) draw_bgpic(scene, ar, v3d);
}
- if(v3d->flag & V3D_DISPBGPICS) draw_bgpic(scene, ar, v3d);
}
- }
- else {
- ED_region_pixelspace(ar);
- drawgrid(&scene->unit, ar, v3d, &grid_unit);
- /* XXX make function? replaces persp(1) */
- glMatrixMode(GL_PROJECTION);
- glLoadMatrixf(rv3d->winmat);
- glMatrixMode(GL_MODELVIEW);
- glLoadMatrixf(rv3d->viewmat);
-
- if(v3d->flag & V3D_DISPBGPICS) {
- draw_bgpic(scene, ar, v3d);
+ else {
+ ED_region_pixelspace(ar);
+ drawgrid(&scene->unit, ar, v3d, &grid_unit);
+ /* XXX make function? replaces persp(1) */
+ glMatrixMode(GL_PROJECTION);
+ glLoadMatrixf(rv3d->winmat);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadMatrixf(rv3d->viewmat);
+
+ if(v3d->flag & V3D_DISPBGPICS) {
+ draw_bgpic(scene, ar, v3d);
+ }
}
}
if(rv3d->rflag & RV3D_CLIPPING)
view3d_set_clipping(rv3d);
-
+
/* draw set first */
if(scene->set) {
for(SETLOOPER(scene->set, base)) {
@@ -2164,7 +2287,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
/* extra service in layerbuttons, showing used layers */
v3d->lay_used = 0;
-
+
/* then draw not selected and the duplis, but skip editmode object */
for(base= scene->base.first; base; base= base->next) {
v3d->lay_used |= base->lay;
@@ -2201,8 +2324,6 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
// REEB_draw();
-// if(scene->radio) RAD_drawall(v3d->drawtype>=OB_SOLID);
-
/* Transp and X-ray afterdraw stuff */
view3d_draw_transp(scene, ar, v3d);
view3d_draw_xray(scene, ar, v3d, 1); // clears zbuffer if it is used!
@@ -2227,12 +2348,14 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
glDisable(GL_DEPTH_TEST);
}
- /* draw grease-pencil stuff (3d-space strokes) */
- //if (v3d->flag2 & V3D_DISPGP)
- draw_gpencil_3dview((bContext *)C, 1);
-
- BDR_drawSketch(C);
-
+ if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+ /* draw grease-pencil stuff (3d-space strokes) */
+ //if (v3d->flag2 & V3D_DISPGP)
+ draw_gpencil_view3d((bContext *)C, 1);
+
+ BDR_drawSketch(C);
+ }
+
ED_region_pixelspace(ar);
// retopo_paint_view_update(v3d);
@@ -2240,14 +2363,17 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
/* Draw particle edit brush XXX (removed) */
- if(rv3d->persp>1) drawviewborder(scene, ar, v3d);
+
+ if(rv3d->persp==RV3D_CAMOB) drawviewborder(scene, ar, v3d);
if(rv3d->rflag & RV3D_FLYMODE) drawviewborder_flymode(ar);
-
- /* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */
-// if (v3d->flag2 & V3D_DISPGP)
- draw_gpencil_3dview((bContext *)C, 0);
- drawcursor(scene, ar, v3d);
+ if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+ /* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */
+ // if (v3d->flag2 & V3D_DISPGP)
+ draw_gpencil_view3d((bContext *)C, 0);
+
+ drawcursor(scene, ar, v3d);
+ }
if(U.uiflag & USER_SHOW_ROTVIEWICON)
draw_view_axis(rv3d);
@@ -2262,7 +2388,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
}
if (grid_unit) { /* draw below the viewport name */
UI_ThemeColor(TH_TEXT_HI);
- BLF_draw_default(10, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, grid_unit);
+ BLF_draw_default(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, grid_unit);
}
ob= OBACT;
@@ -2275,5 +2401,3 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
v3d->flag |= V3D_INVALID_BACKBUF;
}
-
-
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 9e598b2c7ae..0cf2bc492ee 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,17 +31,9 @@
#include <math.h>
#include <float.h>
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_lamp_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_world_types.h"
#include "MEM_guardedalloc.h"
@@ -61,7 +53,6 @@
#include "BKE_utildefines.h"
#include "BKE_tessmesh.h"
-#include "RE_pipeline.h" // make_stars
#include "BIF_gl.h"
@@ -73,15 +64,10 @@
#include "ED_particle.h"
#include "ED_retopo.h"
-#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_transform.h"
-#include "ED_types.h"
#include "ED_mesh.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
#include "PIL_time.h" /* smoothview */
@@ -557,9 +543,9 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y)
conjugate_qt(q1); /* conj == inv for unit quat */
VECCOPY(rv3d->ofs, vod->ofs);
- sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs);
+ sub_v3_v3(rv3d->ofs, vod->dyn_ofs);
mul_qt_v3(q1, rv3d->ofs);
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs);
+ add_v3_v3(rv3d->ofs, vod->dyn_ofs);
}
}
else {
@@ -590,9 +576,9 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y)
if (vod->use_dyn_ofs) {
conjugate_qt(q1); /* conj == inv for unit quat */
- sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs);
+ sub_v3_v3(rv3d->ofs, vod->dyn_ofs);
mul_qt_v3(q1, rv3d->ofs);
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs);
+ add_v3_v3(rv3d->ofs, vod->dyn_ofs);
}
/* Perform the orbital rotation */
@@ -604,9 +590,9 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y)
if (vod->use_dyn_ofs) {
conjugate_qt(q1);
- sub_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs);
+ sub_v3_v3(rv3d->ofs, vod->dyn_ofs);
mul_qt_v3(q1, rv3d->ofs);
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, vod->dyn_ofs);
+ add_v3_v3(rv3d->ofs, vod->dyn_ofs);
}
}
@@ -706,8 +692,15 @@ static int viewrotate_invoke(bContext *C, wmOperator *op, wmEvent *event)
if (U.uiflag & USER_AUTOPERSP)
vod->rv3d->persp= RV3D_PERSP;
- else if(vod->rv3d->persp==RV3D_CAMOB)
+ else if(vod->rv3d->persp==RV3D_CAMOB) {
+
+ /* changed since 2.4x, use the camera view */
+ View3D *v3d = CTX_wm_view3d(C);
+ if(v3d->camera)
+ view3d_settings_from_ob(v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, NULL);
+
vod->rv3d->persp= RV3D_PERSP;
+ }
ED_region_tag_redraw(vod->ar);
}
@@ -736,7 +729,19 @@ static int viewrotate_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
}
-static int ED_operator_view3d_rotate(bContext *C)
+static int view3d_camera_active_poll(bContext *C)
+{
+ if(ED_operator_view3d_active(C)) {
+ RegionView3D *rv3d= CTX_wm_region_view3d(C);
+ if(rv3d && rv3d->persp==RV3D_CAMOB) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+static int view3d_rotate_poll(bContext *C)
{
if (!ED_operator_view3d_active(C)) {
return 0;
@@ -762,7 +767,7 @@ void VIEW3D_OT_rotate(wmOperatorType *ot)
/* api callbacks */
ot->invoke= viewrotate_invoke;
ot->modal= viewrotate_modal;
- ot->poll= ED_operator_view3d_rotate;
+ ot->poll= view3d_rotate_poll;
/* flags */
ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER;
@@ -816,7 +821,7 @@ static void viewmove_apply(ViewOpsData *vod, int x, int y)
float dvec[3];
window_to_3d_delta(vod->ar, dvec, x-vod->oldx, y-vod->oldy);
- add_v3_v3v3(vod->rv3d->ofs, vod->rv3d->ofs, dvec);
+ add_v3_v3(vod->rv3d->ofs, dvec);
if(vod->rv3d->viewlock & RV3D_BOXVIEW)
view3d_boxview_sync(vod->sa, vod->ar);
@@ -1037,7 +1042,7 @@ static void viewzoom_apply(ViewOpsData *vod, int x, int y, short viewzoom)
vod->rv3d->dist = vod->dist0;
copy_m3_m4(mat, vod->rv3d->viewinv);
mul_m3_v3(mat, upvec);
- add_v3_v3v3(vod->rv3d->ofs, vod->rv3d->ofs, upvec);
+ add_v3_v3(vod->rv3d->ofs, upvec);
} else {
/* these limits were in old code too */
if(vod->rv3d->dist<0.001*vod->grid) vod->rv3d->dist= 0.001*vod->grid;
@@ -1119,7 +1124,7 @@ static int viewzoom_exec(bContext *C, wmOperator *op)
else {
if(rv3d->persp==RV3D_CAMOB) {
rv3d->camzoom+= 10;
- if(rv3d->camzoom>300) rv3d->camzoom= 300;
+ if(rv3d->camzoom>600) rv3d->camzoom= 600;
}
else if(rv3d->dist> 0.001*v3d->grid) {
view_zoom_mouseloc(CTX_wm_region(C), .83333f, mx, my);
@@ -1172,8 +1177,8 @@ static int viewzoom_invoke(bContext *C, wmOperator *op, wmEvent *event)
else {
/* Set y move = x move as MOUSEZOOM uses only x axis to pass magnification value */
- vod->origy = vod->oldy = event->x;
- viewzoom_apply(vod, event->x, event->prevx, USER_ZOOM_DOLLY);
+ vod->origy = vod->oldy = vod->origy + event->x - event->prevx;
+ viewzoom_apply(vod, event->prevx, event->prevy, USER_ZOOM_DOLLY);
}
request_depth_update(CTX_wm_region_view3d(C));
@@ -1250,7 +1255,17 @@ static int viewhome_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.
minmax_object(base->object, min, max);
}
}
- if(!onedone) return OPERATOR_FINISHED; /* TODO - should this be cancel? */
+ if(!onedone) {
+ ED_region_tag_redraw(ar);
+ /* TODO - should this be cancel?
+ * I think no, because we always move the cursor, with or without
+ * object, but in this case there is no change in the scene,
+ * only the cursor so I choice a ED_region_tag like
+ * smooth_view do for the center_cursor.
+ * See bug #22640
+ */
+ return OPERATOR_FINISHED;
+ }
afm[0]= (max[0]-min[0]);
afm[1]= (max[1]-min[1]);
@@ -1278,9 +1293,9 @@ static int viewhome_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.
rv3d->persp= RV3D_PERSP;
smooth_view(C, NULL, v3d->camera, new_ofs, NULL, &new_dist, NULL);
}
- else {
- smooth_view(C, NULL, NULL, new_ofs, NULL, &new_dist, NULL);
- }
+ else {
+ smooth_view(C, NULL, NULL, new_ofs, NULL, &new_dist, NULL);
+ }
}
// XXX BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT);
@@ -1292,6 +1307,18 @@ static int viewhome_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.
return OPERATOR_FINISHED;
}
+static int viewhome_poll(bContext *C)
+{
+ if(ED_operator_view3d_active(C)) {
+ RegionView3D *rv3d= CTX_wm_region_view3d(C); //XXX, when accessed from a header menu this doesnt work!
+ if(rv3d && rv3d->persp!=RV3D_CAMOB) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
void VIEW3D_OT_view_all(wmOperatorType *ot)
{
/* identifiers */
@@ -1301,7 +1328,7 @@ void VIEW3D_OT_view_all(wmOperatorType *ot)
/* api callbacks */
ot->exec= viewhome_exec;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= viewhome_poll;
/* flags */
ot->flag= 0;
@@ -1309,6 +1336,7 @@ void VIEW3D_OT_view_all(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "center", 0, "Center", "");
}
+
static int viewselected_exec(bContext *C, wmOperator *op) /* like a localview without local!, was centerview() in 2.4x */
{
ARegion *ar= CTX_wm_region(C);
@@ -1354,11 +1382,12 @@ static int viewselected_exec(bContext *C, wmOperator *op) /* like a localview wi
for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
if(pchan->bone->flag & BONE_SELECTED) {
if(pchan->bone->layer & arm->layer) {
+ bPoseChannel *pchan_tx= pchan->custom_tx ? pchan->custom_tx : pchan;
ok= 1;
- VECCOPY(vec, pchan->pose_head);
+ VECCOPY(vec, pchan_tx->pose_head);
mul_m4_v3(ob->obmat, vec);
DO_MINMAX(vec, min, max);
- VECCOPY(vec, pchan->pose_tail);
+ VECCOPY(vec, pchan_tx->pose_tail);
mul_m4_v3(ob->obmat, vec);
DO_MINMAX(vec, min, max);
}
@@ -1457,16 +1486,10 @@ static int viewcenter_cursor_exec(bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
if (rv3d) {
- if (rv3d->persp==RV3D_CAMOB) {
- /* center the camera offset */
- rv3d->camdx= rv3d->camdy= 0.0;
- }
- else {
- /* non camera center */
- float new_ofs[3];
- negate_v3_v3(new_ofs, give_cursor(scene, v3d));
- smooth_view(C, NULL, NULL, new_ofs, NULL, NULL, NULL);
- }
+ /* non camera center */
+ float new_ofs[3];
+ negate_v3_v3(new_ofs, give_cursor(scene, v3d));
+ smooth_view(C, NULL, NULL, new_ofs, NULL, NULL, NULL);
if (rv3d->viewlock & RV3D_BOXVIEW)
view3d_boxview_copy(CTX_wm_area(C), CTX_wm_region(C));
@@ -1490,12 +1513,39 @@ void VIEW3D_OT_view_center_cursor(wmOperatorType *ot)
ot->flag= 0;
}
+static int view3d_center_camera_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.4x */
+{
+ RegionView3D *rv3d= CTX_wm_region_view3d(C);
+
+ rv3d->camdx= rv3d->camdy= 0.0f;
+
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C));
+
+ return OPERATOR_FINISHED;
+}
+
+void VIEW3D_OT_view_center_camera(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "View Camera Center";
+ ot->description = "Center the camera view";
+ ot->idname= "VIEW3D_OT_view_center_camera";
+
+ /* api callbacks */
+ ot->exec= view3d_center_camera_exec;
+ ot->poll= view3d_camera_active_poll;
+
+ /* flags */
+ ot->flag= 0;
+}
+
/* ********************* Set render border operator ****************** */
static int render_border_exec(bContext *C, wmOperator *op)
{
View3D *v3d = CTX_wm_view3d(C);
ARegion *ar= CTX_wm_region(C);
+ RegionView3D *rv3d= ED_view3d_context_rv3d(C);
Scene *scene= CTX_data_scene(C);
rcti rect;
@@ -1508,7 +1558,7 @@ static int render_border_exec(bContext *C, wmOperator *op)
rect.ymax= RNA_int_get(op->ptr, "ymax");
/* calculate range */
- calc_viewborder(scene, ar, v3d, &vb);
+ calc_viewborder(scene, ar, rv3d, v3d, &vb);
scene->r.border.xmin= ((float)rect.xmin-vb.xmin)/(vb.xmax-vb.xmin);
scene->r.border.ymin= ((float)rect.ymin-vb.ymin)/(vb.ymax-vb.ymin);
@@ -1539,15 +1589,6 @@ static int render_border_exec(bContext *C, wmOperator *op)
}
-static int view3d_render_border_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- RegionView3D *rv3d= CTX_wm_region_view3d(C);
-
- /* if not in camera view do not exec the operator*/
- if (rv3d->persp == RV3D_CAMOB) return WM_border_select_invoke(C, op, event);
- else return OPERATOR_PASS_THROUGH;
-}
-
void VIEW3D_OT_render_border(wmOperatorType *ot)
{
/* identifiers */
@@ -1556,11 +1597,11 @@ void VIEW3D_OT_render_border(wmOperatorType *ot)
ot->idname= "VIEW3D_OT_render_border";
/* api callbacks */
- ot->invoke= view3d_render_border_invoke;
+ ot->invoke= WM_border_select_invoke;
ot->exec= render_border_exec;
ot->modal= WM_border_select_modal;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= view3d_camera_active_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1688,7 +1729,7 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
window_to_3d_delta(ar, dvec, (rect.xmin+rect.xmax-vb[0])/2, (rect.ymin+rect.ymax-vb[1])/2);
/* center the view to the center of the rectangle */
- sub_v3_v3v3(new_ofs, new_ofs, dvec);
+ sub_v3_v3(new_ofs, dvec);
}
/* work out the ratios, so that everything selected fits when we zoom */
@@ -1906,7 +1947,8 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
if(v3d->camera==NULL) {
v3d->camera= scene_find_camera(scene);
- /*handle_view3d_lock();*/
+ if (v3d->camera == NULL)
+ return OPERATOR_CANCELLED;
}
rv3d->persp= RV3D_CAMOB;
smooth_view(C, NULL, v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, &v3d->lens);
@@ -2005,7 +2047,7 @@ void VIEW3D_OT_view_orbit(wmOperatorType *ot)
/* api callbacks */
ot->exec= vieworbit_exec;
- ot->poll= ED_operator_view3d_rotate;
+ ot->poll= view3d_rotate_poll;
/* flags */
ot->flag= 0;
@@ -2311,7 +2353,7 @@ static int set_3dcursor_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(depth_used==0) {
window_to_3d_delta(ar, dvec, mval[0]-mx, mval[1]-my);
- sub_v3_v3v3(fp, fp, dvec);
+ sub_v3_v3(fp, dvec);
}
}
else {
@@ -2390,8 +2432,8 @@ void VIEW3D_OT_manipulator(wmOperatorType *ot)
ot->poll= ED_operator_view3d_active;
- /* rna later */
- RNA_def_boolean_vector(ot->srna, "constraint_axis", 3, NULL, "Constraint Axis", "");
+ /* properties to pass to transform */
+ Transform_Properties(ot, P_CONSTRAINT);
}
static int enable_manipulator_invoke(bContext *C, wmOperator *op, wmEvent *event)
@@ -2647,21 +2689,21 @@ float m_dist;
void viewmoveNDOFfly(ARegion *ar, View3D *v3d, int mode)
{
RegionView3D *rv3d= ar->regiondata;
- int i;
- float phi;
- float dval[7];
+ int i;
+ float phi;
+ float dval[7];
// static fval[6] for low pass filter; device input vector is dval[6]
static float fval[6];
- float tvec[3],rvec[3];
- float q1[4];
+ float tvec[3],rvec[3];
+ float q1[4];
float mat[3][3];
float upvec[3];
- /*----------------------------------------------------
+ /*----------------------------------------------------
* sometimes this routine is called from headerbuttons
- * viewmove needs to refresh the screen
- */
+ * viewmove needs to refresh the screen
+ */
// XXX areawinset(ar->win);
@@ -2719,7 +2761,7 @@ void viewmoveNDOFfly(ARegion *ar, View3D *v3d, int mode)
upvec[2] = rv3d->dist;
copy_m3_m4(mat, rv3d->viewinv);
mul_m3_v3(mat, upvec);
- sub_v3_v3v3(rv3d->ofs, rv3d->ofs, upvec);
+ sub_v3_v3(rv3d->ofs, upvec);
rv3d->dist = 0.0;
}
@@ -2761,12 +2803,12 @@ void viewmoveNDOFfly(ARegion *ar, View3D *v3d, int mode)
// translate the view
- sub_v3_v3v3(rv3d->ofs, rv3d->ofs, tvec);
+ sub_v3_v3(rv3d->ofs, tvec);
/*----------------------------------------------------
- * refresh the screen XXX
- */
+ * refresh the screen XXX
+ */
// update render preview window
@@ -2796,10 +2838,10 @@ void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode)
float mat[3][3];
float upvec[3];
- /* Sensitivity will control how fast the view rotates. The value was
- * obtained experimentally by tweaking until the author didn't get dizzy watching.
- * Perhaps this should be a configurable user parameter.
- */
+ /* Sensitivity will control how fast the view rotates. The value was
+ * obtained experimentally by tweaking until the author didn't get dizzy watching.
+ * Perhaps this should be a configurable user parameter.
+ */
float psens = 0.005f * (float) U.ndof_pan; /* pan sensitivity */
float rsens = 0.005f * (float) U.ndof_rotate; /* rotate sensitivity */
float zsens = 0.3f; /* zoom sensitivity */
@@ -2822,19 +2864,19 @@ void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode)
upvec[2] = rv3d->dist;
copy_m3_m4(mat, rv3d->viewinv);
mul_m3_v3(mat, upvec);
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, upvec);
+ add_v3_v3(rv3d->ofs, upvec);
}
- /*----------------------------------------------------
+ /*----------------------------------------------------
* sometimes this routine is called from headerbuttons
- * viewmove needs to refresh the screen
- */
+ * viewmove needs to refresh the screen
+ */
// XXX areawinset(curarea->win);
- /*----------------------------------------------------
- * record how much time has passed. clamp at 10 Hz
- * pretend the previous frame occured at the clamped time
- */
+ /*----------------------------------------------------
+ * record how much time has passed. clamp at 10 Hz
+ * pretend the previous frame occured at the clamped time
+ */
// now = PIL_check_seconds_timer();
// frametime = (now - prevTime);
// if (frametime > 0.1f){ /* if more than 1/10s */
@@ -2843,13 +2885,13 @@ void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode)
// prevTime = now;
// sbadjust *= 60 * frametime; /* normalize ndof device adjustments to 100Hz for framerate independence */
- /* fetch the current state of the ndof device & enforce dominant mode if selected */
+ /* fetch the current state of the ndof device & enforce dominant mode if selected */
// XXX getndof(fval);
if (v3d->ndoffilter)
filterNDOFvalues(fval);
- // put scaling back here, was previously in ghostwinlay
+ // put scaling back here, was previously in ghostwinlay
fval[0] = fval[0] * (1.0f/600.0f);
fval[1] = fval[1] * (1.0f/600.0f);
fval[2] = fval[2] * (1.0f/1100.0f);
@@ -2858,7 +2900,7 @@ void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode)
fval[5] = fval[5] * 0.00005f;
fval[6] = fval[6] / 1000000.0f;
- // scale more if not in perspective mode
+ // scale more if not in perspective mode
if (rv3d->persp == RV3D_ORTHO) {
fval[0] = fval[0] * 0.05f;
fval[1] = fval[1] * 0.05f;
@@ -2869,7 +2911,7 @@ void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode)
zsens *= 8;
}
- /* set object offset */
+ /* set object offset */
if (ob) {
obofs[0] = -ob->obmat[3][0];
obofs[1] = -ob->obmat[3][1];
@@ -2879,102 +2921,102 @@ void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode)
VECCOPY(obofs, rv3d->ofs);
}
- /* calc an adjustment based on distance from camera
- disabled per patch 14402 */
- d = 1.0f;
+ /* calc an adjustment based on distance from camera
+ disabled per patch 14402 */
+ d = 1.0f;
/* if (ob) {
- sub_v3_v3v3(diff, obofs, rv3d->ofs);
- d = len_v3(diff);
- }
+ sub_v3_v3v3(diff, obofs, rv3d->ofs);
+ d = len_v3(diff);
+ }
*/
- reverse = (rv3d->persmat[2][1] < 0.0f) ? -1.0f : 1.0f;
-
- /*----------------------------------------------------
- * ndof device pan
- */
- psens *= 1.0f + d;
- curareaX = sbadjust * psens * fval[0];
- curareaY = sbadjust * psens * fval[1];
- dvec[0] = curareaX * rv3d->persinv[0][0] + curareaY * rv3d->persinv[1][0];
- dvec[1] = curareaX * rv3d->persinv[0][1] + curareaY * rv3d->persinv[1][1];
- dvec[2] = curareaX * rv3d->persinv[0][2] + curareaY * rv3d->persinv[1][2];
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, dvec);
-
- /*----------------------------------------------------
- * ndof device dolly
- */
- len = zsens * sbadjust * fval[2];
-
- if (rv3d->persp==RV3D_CAMOB) {
- if(rv3d->persp==RV3D_CAMOB) { /* This is stupid, please fix - TODO */
- rv3d->camzoom+= 10.0f * -len;
- }
- if (rv3d->camzoom < minZoom) rv3d->camzoom = minZoom;
- else if (rv3d->camzoom > maxZoom) rv3d->camzoom = maxZoom;
- }
- else if ((rv3d->dist> 0.001*v3d->grid) && (rv3d->dist<10.0*v3d->far)) {
- rv3d->dist*=(1.0 + len);
- }
-
-
- /*----------------------------------------------------
- * ndof device turntable
- * derived from the turntable code in viewmove
- */
-
- /* Get the 3x3 matrix and its inverse from the quaternion */
- quat_to_mat3( m,rv3d->viewquat);
- invert_m3_m3(m_inv,m);
-
- /* Determine the direction of the x vector (for rotating up and down) */
- /* This can likely be compuated directly from the quaternion. */
- mul_m3_v3(m_inv,xvec);
- mul_m3_v3(m_inv,yvec);
- mul_m3_v3(m_inv,zvec);
-
- /* Perform the up/down rotation */
- phi = sbadjust * rsens * /*0.5f * */ fval[3]; /* spin vertically half as fast as horizontally */
- q1[0] = cos(phi);
- mul_v3_v3fl(q1+1, xvec, sin(phi));
- mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1);
-
- if (use_sel) {
- conjugate_qt(q1); /* conj == inv for unit quat */
- sub_v3_v3v3(rv3d->ofs, rv3d->ofs, obofs);
- mul_qt_v3(q1, rv3d->ofs);
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, obofs);
- }
-
- /* Perform the orbital rotation */
- /* Perform the orbital rotation
- If the seen Up axis is parallel to the zoom axis, rotation should be
- achieved with a pure Roll motion (no Spin) on the device. When you start
- to tilt, moving from Top to Side view, Spinning will increasingly become
- more relevant while the Roll component will decrease. When a full
- Side view is reached, rotations around the world's Up axis are achieved
- with a pure Spin-only motion. In other words the control of the spinning
- around the world's Up axis should move from the device's Spin axis to the
- device's Roll axis depending on the orientation of the world's Up axis
- relative to the screen. */
- //phi = sbadjust * rsens * reverse * fval[4]; /* spin the knob, y axis */
- phi = sbadjust * rsens * (yvec[2] * fval[4] + zvec[2] * fval[5]);
- q1[0] = cos(phi);
- q1[1] = q1[2] = 0.0;
- q1[3] = sin(phi);
- mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1);
-
- if (use_sel) {
- conjugate_qt(q1);
- sub_v3_v3v3(rv3d->ofs, rv3d->ofs, obofs);
- mul_qt_v3(q1, rv3d->ofs);
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, obofs);
- }
-
- /*----------------------------------------------------
- * refresh the screen
- */
+ reverse = (rv3d->persmat[2][1] < 0.0f) ? -1.0f : 1.0f;
+
+ /*----------------------------------------------------
+ * ndof device pan
+ */
+ psens *= 1.0f + d;
+ curareaX = sbadjust * psens * fval[0];
+ curareaY = sbadjust * psens * fval[1];
+ dvec[0] = curareaX * rv3d->persinv[0][0] + curareaY * rv3d->persinv[1][0];
+ dvec[1] = curareaX * rv3d->persinv[0][1] + curareaY * rv3d->persinv[1][1];
+ dvec[2] = curareaX * rv3d->persinv[0][2] + curareaY * rv3d->persinv[1][2];
+ add_v3_v3(rv3d->ofs, dvec);
+
+ /*----------------------------------------------------
+ * ndof device dolly
+ */
+ len = zsens * sbadjust * fval[2];
+
+ if (rv3d->persp==RV3D_CAMOB) {
+ if(rv3d->persp==RV3D_CAMOB) { /* This is stupid, please fix - TODO */
+ rv3d->camzoom+= 10.0f * -len;
+ }
+ if (rv3d->camzoom < minZoom) rv3d->camzoom = minZoom;
+ else if (rv3d->camzoom > maxZoom) rv3d->camzoom = maxZoom;
+ }
+ else if ((rv3d->dist> 0.001*v3d->grid) && (rv3d->dist<10.0*v3d->far)) {
+ rv3d->dist*=(1.0 + len);
+ }
+
+
+ /*----------------------------------------------------
+ * ndof device turntable
+ * derived from the turntable code in viewmove
+ */
+
+ /* Get the 3x3 matrix and its inverse from the quaternion */
+ quat_to_mat3( m,rv3d->viewquat);
+ invert_m3_m3(m_inv,m);
+
+ /* Determine the direction of the x vector (for rotating up and down) */
+ /* This can likely be compuated directly from the quaternion. */
+ mul_m3_v3(m_inv,xvec);
+ mul_m3_v3(m_inv,yvec);
+ mul_m3_v3(m_inv,zvec);
+
+ /* Perform the up/down rotation */
+ phi = sbadjust * rsens * /*0.5f * */ fval[3]; /* spin vertically half as fast as horizontally */
+ q1[0] = cos(phi);
+ mul_v3_v3fl(q1+1, xvec, sin(phi));
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1);
+
+ if (use_sel) {
+ conjugate_qt(q1); /* conj == inv for unit quat */
+ sub_v3_v3(rv3d->ofs, obofs);
+ mul_qt_v3(q1, rv3d->ofs);
+ add_v3_v3(rv3d->ofs, obofs);
+ }
+
+ /* Perform the orbital rotation */
+ /* Perform the orbital rotation
+ If the seen Up axis is parallel to the zoom axis, rotation should be
+ achieved with a pure Roll motion (no Spin) on the device. When you start
+ to tilt, moving from Top to Side view, Spinning will increasingly become
+ more relevant while the Roll component will decrease. When a full
+ Side view is reached, rotations around the world's Up axis are achieved
+ with a pure Spin-only motion. In other words the control of the spinning
+ around the world's Up axis should move from the device's Spin axis to the
+ device's Roll axis depending on the orientation of the world's Up axis
+ relative to the screen. */
+ //phi = sbadjust * rsens * reverse * fval[4]; /* spin the knob, y axis */
+ phi = sbadjust * rsens * (yvec[2] * fval[4] + zvec[2] * fval[5]);
+ q1[0] = cos(phi);
+ q1[1] = q1[2] = 0.0;
+ q1[3] = sin(phi);
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, q1);
+
+ if (use_sel) {
+ conjugate_qt(q1);
+ sub_v3_v3(rv3d->ofs, obofs);
+ mul_qt_v3(q1, rv3d->ofs);
+ add_v3_v3(rv3d->ofs, obofs);
+ }
+
+ /*----------------------------------------------------
+ * refresh the screen
+ */
// XXX scrarea_do_windraw(curarea);
}
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index c9edeb24aa0..71a7031e407 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -30,19 +30,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include "DNA_armature_types.h"
-#include "DNA_ID.h"
-#include "DNA_image_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_userdef_types.h" /* U.smooth_viewtx */
-#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
@@ -67,9 +55,6 @@
#include "BKE_utildefines.h" /* for VECCOPY */
#include "BKE_tessmesh.h"
-#include "ED_armature.h"
-#include "ED_particle.h"
-#include "ED_object.h"
#include "ED_mesh.h"
#include "ED_util.h"
#include "ED_screen.h"
@@ -79,7 +64,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
@@ -91,9 +75,7 @@
#include "BLI_editVert.h"
#include "UI_interface.h"
-#include "UI_interface_icons.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "view3d_intern.h"
@@ -156,11 +138,12 @@ static void handle_view3d_lock(bContext *C)
if(v3d->localvd==NULL && v3d->scenelock && sa->spacetype==SPACE_VIEW3D) {
/* copy to scene */
scene->lay= v3d->lay;
+ scene->layact= v3d->layact;
scene->camera= v3d->camera;
/* not through notifiery, listener don't have context
and non-open screens or spaces need to be updated too */
- ED_view3d_scene_layers_update(bmain, scene);
+ BKE_screen_view3d_main_sync(&bmain->screen, scene);
/* notifiers for scene update */
WM_event_add_notifier(C, NC_SCENE|ND_LAYER, scene);
@@ -178,14 +161,18 @@ static int layers_exec(bContext *C, wmOperator *op)
if(nr < 0)
return OPERATOR_CANCELLED;
-
-
+
if(nr == 0) {
/* all layers */
- v3d->lay |= (1<<20)-1;
-
if(!v3d->layact)
v3d->layact= 1;
+
+ if (toggle && v3d->lay == ((1<<20)-1)) {
+ /* return to active layer only */
+ v3d->lay = v3d->layact;
+ } else {
+ v3d->lay |= (1<<20)-1;
+ }
}
else {
int bit;
@@ -398,25 +385,25 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event)
if( shift==0 || v3d->twtype==0) {
v3d->twtype= V3D_MANIP_TRANSLATE;
}
- ED_area_tag_redraw(sa);
- break;
+ ED_area_tag_redraw(sa);
+ break;
case B_MAN_ROT:
if( shift==0 || v3d->twtype==0) {
- v3d->twtype= V3D_MANIP_ROTATE;
+ v3d->twtype= V3D_MANIP_ROTATE;
}
- ED_area_tag_redraw(sa);
+ ED_area_tag_redraw(sa);
break;
case B_MAN_SCALE:
if( shift==0 || v3d->twtype==0) {
- v3d->twtype= V3D_MANIP_SCALE;
+ v3d->twtype= V3D_MANIP_SCALE;
}
- ED_area_tag_redraw(sa);
+ ED_area_tag_redraw(sa);
break;
case B_NDOF:
- ED_area_tag_redraw(sa);
+ ED_area_tag_redraw(sa);
break;
case B_MAN_MODE:
- ED_area_tag_redraw(sa);
+ ED_area_tag_redraw(sa);
break;
default:
break;
@@ -450,7 +437,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
uiBlock *block;
uiLayout *row;
- RNA_pointer_create(&screen->id, &RNA_Space3DView, v3d, &v3dptr);
+ RNA_pointer_create(&screen->id, &RNA_SpaceView3D, v3d, &v3dptr);
RNA_pointer_create(&scene->id, &RNA_ToolSettings, ts, &toolsptr);
RNA_pointer_create(&scene->id, &RNA_Scene, scene, &sceneptr);
@@ -488,7 +475,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
uiBlockEndAlign(block);
/* Draw type */
- uiItemR(layout, "", 0, &v3dptr, "viewport_shading", UI_ITEM_R_ICON_ONLY);
+ uiItemR(layout, &v3dptr, "viewport_shading", UI_ITEM_R_ICON_ONLY, "", 0);
if (obedit==NULL && ((ob && ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)))) {
/* Manipulators aren't used in weight paint mode */
@@ -496,13 +483,13 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
PointerRNA meshptr;
RNA_pointer_create(&ob->id, &RNA_Mesh, ob->data, &meshptr);
- uiItemR(layout, "", 0, &meshptr, "use_paint_mask", UI_ITEM_R_ICON_ONLY);
+ uiItemR(layout, &meshptr, "use_paint_mask", UI_ITEM_R_ICON_ONLY, "", 0);
} else {
char *str_menu;
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, &v3dptr, "pivot_point", UI_ITEM_R_ICON_ONLY);
- uiItemR(row, "", 0, &v3dptr, "pivot_point_align", UI_ITEM_R_ICON_ONLY);
+ uiItemR(row, &v3dptr, "pivot_point", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(row, &v3dptr, "pivot_point_align", UI_ITEM_R_ICON_ONLY, "", 0);
/* NDOF */
/* Not implemented yet
@@ -510,14 +497,14 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
uiDefIconTextButC(block, ICONTEXTROW,B_NDOF, ICON_NDOF_TURN, ndof_pup(), 0,0,XIC+10,YIC, &(v3d->ndofmode), 0, 3.0, 0, 0, "Ndof mode");
uiDefIconButC(block, TOG, B_NDOF, ICON_NDOF_DOM,
- 0,0,XIC,YIC,
- &v3d->ndoffilter, 0, 1, 0, 0, "dominant axis");
+ 0,0,XIC,YIC,
+ &v3d->ndoffilter, 0, 1, 0, 0, "dominant axis");
}
*/
/* Transform widget / manipulators */
row= uiLayoutRow(layout, 1);
- uiItemR(row, "", 0, &v3dptr, "manipulator", UI_ITEM_R_ICON_ONLY);
+ uiItemR(row, &v3dptr, "manipulator", UI_ITEM_R_ICON_ONLY, "", 0);
block= uiLayoutGetBlock(row);
if(v3d->twflag & V3D_USE_MANIPULATOR) {
@@ -540,12 +527,12 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
/* Layers */
if (v3d->scenelock)
- uiTemplateLayers(layout, &sceneptr, "visible_layers", &v3dptr, "used_layers", ob_lay);
+ uiTemplateLayers(layout, &sceneptr, "layers", &v3dptr, "used_layers", ob_lay);
else
- uiTemplateLayers(layout, &v3dptr, "visible_layers", &v3dptr, "used_layers", ob_lay);
+ uiTemplateLayers(layout, &v3dptr, "layers", &v3dptr, "used_layers", ob_lay);
/* Scene lock */
- uiItemR(layout, "", 0, &v3dptr, "lock_camera_and_layers", UI_ITEM_R_ICON_ONLY);
+ uiItemR(layout, &v3dptr, "lock_camera_and_layers", UI_ITEM_R_ICON_ONLY, "", 0);
}
/* selection modus, dont use python for this since it cant do the toggle buttons with shift+click as well as clicking to set one. */
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index d56d70d1fbc..3e8bc71c351 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -75,6 +75,7 @@ void VIEW3D_OT_view_all(struct wmOperatorType *ot);
void VIEW3D_OT_viewnumpad(struct wmOperatorType *ot);
void VIEW3D_OT_view_selected(struct wmOperatorType *ot);
void VIEW3D_OT_view_center_cursor(struct wmOperatorType *ot);
+void VIEW3D_OT_view_center_camera(struct wmOperatorType *ot);
void VIEW3D_OT_view_pan(struct wmOperatorType *ot);
void VIEW3D_OT_view_persportho(struct wmOperatorType *ot);
void VIEW3D_OT_add_background_image(struct wmOperatorType *ot);
@@ -104,7 +105,7 @@ void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, int
int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt);
void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, int dt, int outline);
void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob);
-void drawaxes(float size, int flag, char drawtype);
+void drawaxes(struct RegionView3D *rv3d, float mat[][4], float size, int flag, char drawtype);
void view3d_cached_text_draw_begin(void);
void view3d_cached_text_draw_add(float x, float y, float z, char *str, short xoffs, short flag);
@@ -125,7 +126,7 @@ void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d);
void view3d_clr_clipping(void);
void view3d_set_clipping(RegionView3D *rv3d);
void add_view3d_after(View3D *v3d, Base *base, int type, int flag);
-void calc_viewborder(Scene *scene, struct ARegion *ar, View3D *v3d, rctf *viewborder_r);
+void calc_viewborder(Scene *scene, struct ARegion *ar, struct RegionView3D *rv3d, View3D *v3d, rctf *viewborder_r);
void circf(float x, float y, float rad);
void circ(float x, float y, float rad);
@@ -139,6 +140,8 @@ void VIEW3D_OT_select_border(struct wmOperatorType *ot);
void VIEW3D_OT_select_lasso(struct wmOperatorType *ot);
/* view3d_view.c */
+void view3d_settings_from_ob(struct Object *ob, float *ofs, float *quat, float *dist, float *lens);
+
void VIEW3D_OT_smoothview(struct wmOperatorType *ot);
void VIEW3D_OT_setcameratoview(struct wmOperatorType *ot);
void VIEW3D_OT_setobjectascamera(struct wmOperatorType *ot);
@@ -175,7 +178,6 @@ int minmax_verts(Object *obedit, float *min, float *max);
void VIEW3D_OT_snap_selected_to_grid(struct wmOperatorType *ot);
void VIEW3D_OT_snap_selected_to_cursor(struct wmOperatorType *ot);
-void VIEW3D_OT_snap_selected_to_center(struct wmOperatorType *ot);
void VIEW3D_OT_snap_cursor_to_grid(struct wmOperatorType *ot);
void VIEW3D_OT_snap_cursor_to_center(struct wmOperatorType *ot);
void VIEW3D_OT_snap_cursor_to_selected(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c
index 792153cab08..faeab482f72 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -35,9 +35,7 @@
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -47,12 +45,10 @@
#include "BKE_utildefines.h"
#include "RNA_access.h"
-#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_screen.h"
#include "ED_transform.h"
#include "view3d_intern.h"
@@ -74,6 +70,7 @@ void view3d_operatortypes(void)
WM_operatortype_append(VIEW3D_OT_remove_background_image);
WM_operatortype_append(VIEW3D_OT_view_selected);
WM_operatortype_append(VIEW3D_OT_view_center_cursor);
+ WM_operatortype_append(VIEW3D_OT_view_center_camera);
WM_operatortype_append(VIEW3D_OT_select);
WM_operatortype_append(VIEW3D_OT_select_border);
WM_operatortype_append(VIEW3D_OT_clip_border);
@@ -97,7 +94,6 @@ void view3d_operatortypes(void)
WM_operatortype_append(VIEW3D_OT_snap_selected_to_grid);
WM_operatortype_append(VIEW3D_OT_snap_selected_to_cursor);
- WM_operatortype_append(VIEW3D_OT_snap_selected_to_center);
WM_operatortype_append(VIEW3D_OT_snap_cursor_to_grid);
WM_operatortype_append(VIEW3D_OT_snap_cursor_to_center);
WM_operatortype_append(VIEW3D_OT_snap_cursor_to_selected);
@@ -119,7 +115,8 @@ void view3d_keymap(wmKeyConfig *keyconf)
/* only for region 3D window */
keymap= WM_keymap_find(keyconf, "3D View", SPACE_VIEW3D, 0);
- WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0);
+ kmi = WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0);
+ RNA_boolean_set(kmi->ptr, "release_confirm", 1);
/*
* Doesn't work with KM_SHIFT, have to use KM_ANY and filter in invoke
* */
@@ -154,7 +151,8 @@ void view3d_keymap(wmKeyConfig *keyconf)
RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELINMOUSE, KM_PRESS, 0, 0)->ptr, "delta", 1);
RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELOUTMOUSE, KM_PRESS, 0, 0)->ptr, "delta", -1);
- RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, 0, 0)->ptr, "center", 0);
+ WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_camera", HOMEKEY, KM_PRESS, 0, 0); /* only with camera view */
+ RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, 0, 0)->ptr, "center", 0); /* only without camera view */
RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "center", 1);
/* numpad view hotkeys*/
@@ -186,25 +184,25 @@ void view3d_keymap(wmKeyConfig *keyconf)
RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELUPMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPUP);
RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPDOWN);
- /* active aligned, replaces '*' key in 2.4x */
- kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT);
- RNA_boolean_set(kmi->ptr, "align_active", TRUE);
- kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
- RNA_boolean_set(kmi->ptr, "align_active", TRUE);
- kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
- RNA_boolean_set(kmi->ptr, "align_active", TRUE);
- kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BACK);
- RNA_boolean_set(kmi->ptr, "align_active", TRUE);
- kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_LEFT);
- RNA_boolean_set(kmi->ptr, "align_active", TRUE);
- kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
- RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ /* active aligned, replaces '*' key in 2.4x */
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_SHIFT, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_SHIFT, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BACK);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_LEFT);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
WM_keymap_add_item(keymap, "VIEW3D_OT_localview", PADSLASHKEY, KM_PRESS, 0, 0);
@@ -224,12 +222,12 @@ void view3d_keymap(wmKeyConfig *keyconf)
/* drawtype */
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", ZKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.viewport_shading");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.viewport_shading");
RNA_string_set(kmi->ptr, "value_1", "SOLID");
RNA_string_set(kmi->ptr, "value_2", "WIREFRAME");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", ZKEY, KM_PRESS, KM_ALT, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.viewport_shading");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.viewport_shading");
RNA_string_set(kmi->ptr, "value_1", "TEXTURED");
RNA_string_set(kmi->ptr, "value_2", "SOLID");
@@ -270,29 +268,29 @@ void view3d_keymap(wmKeyConfig *keyconf)
/* context ops */
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.pivot_point");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point");
RNA_string_set(kmi->ptr, "value", "BOUNDING_BOX_CENTER");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, KM_CTRL, 0); /* 2.4x allowed Comma+Shift too, rather not use both */
- RNA_string_set(kmi->ptr, "path", "space_data.pivot_point");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point");
RNA_string_set(kmi->ptr, "value", "MEDIAN_POINT");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", COMMAKEY, KM_PRESS, KM_ALT, 0); /* new in 2.5 */
- RNA_string_set(kmi->ptr, "path", "space_data.pivot_point_align");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point_align");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SPACEKEY, KM_PRESS, KM_CTRL, 0); /* new in 2.5 */
- RNA_string_set(kmi->ptr, "path", "space_data.manipulator");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.manipulator");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PERIODKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.pivot_point");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point");
RNA_string_set(kmi->ptr, "value", "CURSOR");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PERIODKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.pivot_point");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point");
RNA_string_set(kmi->ptr, "value", "INDIVIDUAL_ORIGINS");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PERIODKEY, KM_PRESS, KM_ALT, 0);
- RNA_string_set(kmi->ptr, "path", "space_data.pivot_point");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point");
RNA_string_set(kmi->ptr, "value", "ACTIVE_ELEMENT");
transform_keymap_for_space(keyconf, keymap, SPACE_VIEW3D);
diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c
index 4a103da6d3c..ac6d61fce18 100644
--- a/source/blender/editors/space_view3d/view3d_toolbar.c
+++ b/source/blender/editors/space_view3d/view3d_toolbar.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,23 +31,8 @@
#include <math.h>
#include <float.h>
-#include "DNA_ID.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_lattice_types.h"
-#include "DNA_meta_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_world_types.h"
#include "MEM_guardedalloc.h"
@@ -76,23 +61,12 @@
#include "WM_types.h"
#include "RNA_access.h"
-#include "RNA_define.h"
-
-#include "ED_armature.h"
-#include "ED_curve.h"
-#include "ED_image.h"
-#include "ED_keyframing.h"
-#include "ED_mesh.h"
-#include "ED_object.h"
-#include "ED_particle.h"
+
#include "ED_screen.h"
-#include "ED_transform.h"
-#include "ED_types.h"
#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
-#include "UI_view2d.h"
#include "view3d_intern.h" // own include
@@ -282,7 +256,7 @@ static void view3d_panel_tool_shelf(const bContext *C, Panel *pa)
for(ct= st->toolshelf.first; ct; ct= ct->next) {
if(0==strncmp(context, ct->context, OP_MAX_TYPENAME)) {
col= uiLayoutColumn(pa->layout, 1);
- uiItemFullO(col, NULL, 0, ct->opname, NULL, WM_OP_INVOKE_REGION_WIN, 0);
+ uiItemFullO(col, ct->opname, NULL, 0, NULL, WM_OP_INVOKE_REGION_WIN, 0);
}
}
}
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 759a7ce08b8..4471c051aa7 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -32,17 +32,9 @@
#include <float.h>
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
#include "DNA_lamp_types.h"
-#include "DNA_object_types.h"
-#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_world_types.h"
#include "MEM_guardedalloc.h"
@@ -63,7 +55,6 @@
#include "BKE_utildefines.h"
#include "BKE_depsgraph.h" /* for fly mode updating */
-#include "RE_pipeline.h" // make_stars
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -72,17 +63,12 @@
#include "WM_types.h"
#include "ED_keyframing.h"
-#include "ED_mesh.h"
#include "ED_screen.h"
-#include "ED_view3d.h"
#include "ED_armature.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
-
#include "GPU_draw.h"
+
#include "PIL_time.h" /* smoothview */
#if GAMEBLENDER == 1
@@ -152,37 +138,32 @@ static void object_lens_clip_settings(Object *ob, float *lens, float *clipsta, f
*
* The dist is not modified for this function, if NULL its assimed zero
* */
-static void view_settings_from_ob(Object *ob, float *ofs, float *quat, float *dist, float *lens)
-{
- float bmat[4][4];
- float imat[4][4];
- float tmat[3][3];
-
+void view3d_settings_from_ob(Object *ob, float *ofs, float *quat, float *dist, float *lens)
+{
if (!ob) return;
-
+
/* Offset */
if (ofs)
negate_v3_v3(ofs, ob->obmat[3]);
/* Quat */
if (quat) {
- copy_m4_m4(bmat, ob->obmat);
- normalize_m4(bmat);
- invert_m4_m4(imat, bmat);
- copy_m3_m4(tmat, imat);
- mat3_to_quat( quat,tmat);
+ float imat[4][4];
+ invert_m4_m4(imat, ob->obmat);
+ mat4_to_quat(quat, imat);
}
-
+
if (dist) {
- float vec[3];
- copy_m3_m4(tmat, ob->obmat);
-
- vec[0]= vec[1] = 0.0;
- vec[2]= -(*dist);
- mul_m3_v3(tmat, vec);
- sub_v3_v3v3(ofs, ofs, vec);
+ float vec[3] = {0.0f, 0.0f, -(*dist)};
+ float tquat[4];
+
+ mat4_to_quat(tquat, ob->obmat);
+
+ mul_qt_v3(tquat, vec);
+
+ sub_v3_v3(ofs, vec);
}
-
+
/* Lens */
if (lens)
object_lens_clip_settings(ob, lens, NULL, NULL);
@@ -226,7 +207,7 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo
if(lens) sms.new_lens= *lens;
if (camera) {
- view_settings_from_ob(camera, sms.new_ofs, sms.new_quat, &sms.new_dist, &sms.new_lens);
+ view3d_settings_from_ob(camera, sms.new_ofs, sms.new_quat, &sms.new_dist, &sms.new_lens);
sms.to_camera= 1; /* restore view3d values in end */
}
@@ -260,20 +241,20 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo
* the angle between quats
* this means small rotations wont lag */
if (quat && !ofs && !dist) {
- float vec1[3], vec2[3];
+ float vec1[3], vec2[3];
- VECCOPY(vec1, sms.new_quat);
- VECCOPY(vec2, sms.orig_quat);
- normalize_v3(vec1);
- normalize_v3(vec2);
- /* scale the time allowed by the rotation */
- sms.time_allowed *= angle_normalized_v3v3(vec1, vec2)/(M_PI/2);
+ VECCOPY(vec1, sms.new_quat);
+ VECCOPY(vec2, sms.orig_quat);
+ normalize_v3(vec1);
+ normalize_v3(vec2);
+ /* scale the time allowed by the rotation */
+ sms.time_allowed *= angle_normalized_v3v3(vec1, vec2)/(M_PI/2);
}
/* original values */
if (oldcamera) {
sms.orig_dist= rv3d->dist; // below function does weird stuff with it...
- view_settings_from_ob(oldcamera, sms.orig_ofs, sms.orig_quat, &sms.orig_dist, &sms.orig_lens);
+ view3d_settings_from_ob(oldcamera, sms.orig_ofs, sms.orig_quat, &sms.orig_dist, &sms.orig_lens);
}
else {
VECCOPY(sms.orig_ofs, rv3d->ofs);
@@ -377,7 +358,7 @@ static int view3d_smoothview_invoke(bContext *C, wmOperator *op, wmEvent *event)
v3d->lens = sms->new_lens*step + sms->orig_lens*step_inv;
}
- ED_region_tag_redraw(CTX_wm_region(C));
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, v3d);
return OPERATOR_FINISHED;
}
@@ -540,7 +521,7 @@ void viewline(ARegion *ar, View3D *v3d, float mval[2], float ray_start[3], float
float vec[4];
int a;
- if(rv3d->persp != RV3D_ORTHO){
+ if(!get_view3d_ortho(v3d, rv3d)) {
vec[0]= 2.0f * mval[0] / ar->winx - 1;
vec[1]= 2.0f * mval[1] / ar->winy - 1;
vec[2]= -1.0f;
@@ -550,7 +531,7 @@ void viewline(ARegion *ar, View3D *v3d, float mval[2], float ray_start[3], float
mul_v3_fl(vec, 1.0f / vec[3]);
copy_v3_v3(ray_start, rv3d->viewinv[3]);
- sub_v3_v3v3(vec, vec, ray_start);
+ sub_v3_v3(vec, ray_start);
normalize_v3(vec);
VECADDFAC(ray_start, rv3d->viewinv[3], vec, v3d->near);
@@ -692,8 +673,8 @@ void view3d_unproject(bglMats *mats, float out[3], const short x, const short y,
{
double ux, uy, uz;
- gluUnProject(x,y,z, mats->modelview, mats->projection,
- (GLint *)mats->viewport, &ux, &uy, &uz );
+ gluUnProject(x,y,z, mats->modelview, mats->projection,
+ (GLint *)mats->viewport, &ux, &uy, &uz );
out[0] = ux;
out[1] = uy;
out[2] = uz;
@@ -902,24 +883,59 @@ int get_view3d_ortho(View3D *v3d, RegionView3D *rv3d)
Camera *cam;
if(rv3d->persp==RV3D_CAMOB) {
- if(v3d->camera && v3d->camera->type==OB_CAMERA) {
- cam= v3d->camera->data;
-
- if(cam && cam->type==CAM_ORTHO)
- return 1;
- else
- return 0;
- }
- else
- return 0;
+ if(v3d->camera && v3d->camera->type==OB_CAMERA) {
+ cam= v3d->camera->data;
+
+ if(cam && cam->type==CAM_ORTHO)
+ return 1;
+ else
+ return 0;
+ }
+ else
+ return 0;
}
if(rv3d->persp==RV3D_ORTHO)
- return 1;
+ return 1;
return 0;
}
+/* copies logic of get_view3d_viewplane(), keep in sync */
+int get_view3d_cliprange(View3D *v3d, RegionView3D *rv3d, float *clipsta, float *clipend)
+{
+ int orth= 0;
+
+ *clipsta= v3d->near;
+ *clipend= v3d->far;
+
+ if(rv3d->persp==RV3D_CAMOB) {
+ if(v3d->camera) {
+ if(v3d->camera->type==OB_LAMP ) {
+ Lamp *la= v3d->camera->data;
+ *clipsta= la->clipsta;
+ *clipend= la->clipend;
+ }
+ else if(v3d->camera->type==OB_CAMERA) {
+ Camera *cam= v3d->camera->data;
+ *clipsta= cam->clipsta;
+ *clipend= cam->clipend;
+
+ if(cam->type==CAM_ORTHO)
+ orth= 1;
+ }
+ }
+ }
+
+ if(rv3d->persp==RV3D_ORTHO) {
+ *clipend *= 0.5; // otherwise too extreme low zbuffer quality
+ *clipsta= - *clipend;
+ orth= 1;
+ }
+
+ return orth;
+}
+
/* also exposed in previewrender.c */
int get_view3d_viewplane(View3D *v3d, RegionView3D *rv3d, int winxi, int winyi, rctf *viewplane, float *clipsta, float *clipend, float *pixsize)
{
@@ -1101,7 +1117,7 @@ static void obmat_to_viewmat(View3D *v3d, RegionView3D *rv3d, Object *ob, short
rv3d->persp=RV3D_PERSP;
rv3d->dist= 0.0;
- view_settings_from_ob(v3d->camera, rv3d->ofs, NULL, NULL, &v3d->lens);
+ view3d_settings_from_ob(v3d->camera, rv3d->ofs, NULL, NULL, &v3d->lens);
smooth_view(NULL, NULL, NULL, orig_ofs, new_quat, &orig_dist, &orig_lens); // XXX
rv3d->persp=RV3D_CAMOB; /* just to be polite, not needed */
@@ -1364,56 +1380,7 @@ static unsigned int free_localbit(void)
return 0;
}
-static void copy_view3d_lock_space(View3D *v3d, Scene *scene)
-{
- int bit;
-
- if(v3d->scenelock && v3d->localvd==NULL) {
- v3d->lay= scene->lay;
- v3d->camera= scene->camera;
-
- if(v3d->camera==NULL) {
- ARegion *ar;
-
- for(ar=v3d->regionbase.first; ar; ar= ar->next) {
- if(ar->regiontype == RGN_TYPE_WINDOW) {
- RegionView3D *rv3d= ar->regiondata;
- if(rv3d->persp==RV3D_CAMOB)
- rv3d->persp= RV3D_PERSP;
- }
- }
- }
-
- if((v3d->lay & v3d->layact) == 0) {
- for(bit= 0; bit<32; bit++) {
- if(v3d->lay & (1<<bit)) {
- v3d->layact= 1<<bit;
- break;
- }
- }
- }
- }
-}
-
-void ED_view3d_scene_layers_update(Main *bmain, Scene *scene)
-{
- bScreen *sc;
- ScrArea *sa;
- SpaceLink *sl;
-
- /* from scene copy to the other views */
- for(sc=bmain->screen.first; sc; sc=sc->id.next) {
- if(sc->scene!=scene)
- continue;
-
- for(sa=sc->areabase.first; sa; sa=sa->next)
- for(sl=sa->spacedata.first; sl; sl=sl->next)
- if(sl->spacetype==SPACE_VIEW3D)
- copy_view3d_lock_space((View3D*)sl, scene);
- }
-}
-
-int ED_view3d_scene_layer_set(int lay, const int *values)
+int ED_view3d_scene_layer_set(int lay, const int *values, int *active)
{
int i, tot= 0;
@@ -1426,10 +1393,28 @@ int ED_view3d_scene_layer_set(int lay, const int *values)
return lay;
for(i=0; i<20; i++) {
- if(values[i]) lay |= (1<<i);
+
+ if (active) {
+ /* if this value has just been switched on, make that layer active */
+ if (values[i] && (lay & (1<<i))==0) {
+ *active = (1<<i);
+ }
+ }
+
+ if (values[i]) lay |= (1<<i);
else lay &= ~(1<<i);
}
+ /* ensure always an active layer */
+ if (active && (lay & *active)==0) {
+ for(i=0; i<20; i++) {
+ if(lay & (1<<i)) {
+ *active= 1<<i;
+ break;
+ }
+ }
+ }
+
return lay;
}
@@ -1725,7 +1710,19 @@ extern void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *cam_f
int game_engine_poll(bContext *C)
{
- return CTX_data_mode_enum(C)==CTX_MODE_OBJECT ? 1:0;
+ /* we need a context and area to launch BGE
+ it's a temporary solution to avoid crash at load time
+ if we try to auto run the BGE. Ideally we want the
+ context to be set as soon as we load the file. */
+
+ if(CTX_wm_window(C)==NULL) return 0;
+ if(CTX_wm_screen(C)==NULL) return 0;
+ if(CTX_wm_area(C)==NULL) return 0;
+
+ if(CTX_data_mode_enum(C)!=CTX_MODE_OBJECT)
+ return 0;
+
+ return 1;
}
int ED_view3d_context_activate(bContext *C)
@@ -1735,7 +1732,8 @@ int ED_view3d_context_activate(bContext *C)
ARegion *ar;
RegionView3D *rv3d;
- if(sa->spacetype != SPACE_VIEW3D)
+ /* sa can be NULL when called from python */
+ if(sa==NULL || sa->spacetype != SPACE_VIEW3D)
for(sa=sc->areabase.first; sa; sa= sa->next)
if(sa->spacetype==SPACE_VIEW3D)
break;
@@ -1782,7 +1780,7 @@ static int game_engine_exec(bContext *C, wmOperator *op)
if(rv3d->persp==RV3D_CAMOB && startscene->gm.framing.type == SCE_GAMEFRAMING_BARS && startscene->gm.stereoflag != STEREO_DOME) { /* Letterbox */
rctf cam_framef;
- calc_viewborder(startscene, ar, CTX_wm_view3d(C), &cam_framef);
+ calc_viewborder(startscene, ar, rv3d, CTX_wm_view3d(C), &cam_framef);
cam_frame.xmin = cam_framef.xmin + ar->winrct.xmin;
cam_frame.xmax = cam_framef.xmax + ar->winrct.xmin;
cam_frame.ymin = cam_framef.ymin + ar->winrct.ymin;
@@ -1894,6 +1892,7 @@ void fly_modal_keymap(wmKeyConfig *keyconf)
WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CONFIRM);
WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
+ WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, 0, 0, FLY_MODAL_ACCELERATE);
@@ -2006,7 +2005,7 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even
fly->axis= 2;
fly->pan_view= FALSE;
fly->xlock= FALSE;
- fly->zlock= TRUE;
+ fly->zlock= FALSE;
fly->xlock_momentum=0.0f;
fly->zlock_momentum=0.0f;
fly->grid= 1.0f;
@@ -2059,12 +2058,12 @@ static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *even
if (fly->rv3d->persp==RV3D_ORTHO)
fly->rv3d->persp= RV3D_PERSP; /*if ortho projection, make perspective */
QUATCOPY(fly->rot_backup, fly->rv3d->viewquat);
- VECCOPY(fly->ofs_backup, fly->rv3d->ofs);
- fly->rv3d->dist= 0.0;
+ copy_v3_v3(fly->ofs_backup, fly->rv3d->ofs);
+ fly->rv3d->dist= 0.0f;
upvec[2]= fly->dist_backup; /*x and y are 0*/
mul_m3_v3(mat, upvec);
- sub_v3_v3v3(fly->rv3d->ofs, fly->rv3d->ofs, upvec);
+ sub_v3_v3(fly->rv3d->ofs, upvec);
/*Done with correcting for the dist*/
}
@@ -2135,7 +2134,7 @@ static int flyEnd(bContext *C, FlyInfo *fly)
upvec[2]= fly->dist_backup; /*x and y are 0*/
copy_m3_m4(mat, rv3d->viewinv);
mul_m3_v3(mat, upvec);
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, upvec);
+ add_v3_v3(rv3d->ofs, upvec);
/*Done with correcting for the dist */
}
@@ -2241,12 +2240,12 @@ static void flyEvent(FlyInfo *fly, wmEvent *event)
break;
case FLY_MODAL_DIR_UP:
- if (fly->speed < 0.0f) fly->speed= -fly->speed;
+ if (fly->speed > 0.0f) fly->speed= -fly->speed;
fly->axis= 1;
break;
case FLY_MODAL_DIR_DOWN:
- if (fly->speed > 0.0f) fly->speed= -fly->speed;
+ if (fly->speed < 0.0f) fly->speed= -fly->speed;
fly->axis= 1;
break;
@@ -2276,8 +2275,13 @@ static void flyEvent(FlyInfo *fly, wmEvent *event)
}
}
-static int flyApply(FlyInfo *fly)
+static int flyApply(bContext *C, FlyInfo *fly)
{
+
+#define FLY_ROTATE_FAC 2.5f /* more is faster */
+#define FLY_ZUP_CORRECT_FAC 0.1f /* ammount to correct per step */
+#define FLY_ZUP_CORRECT_ACCEL 0.05f /* increase upright momentum each step */
+
/*
fly mode - Shift+F
a fly loop where the user can move move the view as if they are flying
@@ -2393,7 +2397,7 @@ static int flyApply(FlyInfo *fly)
upvec[1]=0;
upvec[2]=0;
mul_m3_v3(mat, upvec);
- axis_angle_to_quat( tmp_quat, upvec, (float)moffset[1]*-time_redraw*20); /* Rotate about the relative up vec */
+ axis_angle_to_quat( tmp_quat, upvec, (float)moffset[1] * time_redraw * -FLY_ROTATE_FAC); /* Rotate about the relative up vec */
mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
if (fly->xlock) fly->xlock = 2; /*check for rotation*/
@@ -2425,7 +2429,7 @@ static int flyApply(FlyInfo *fly)
mul_m3_v3(mat, upvec);
}
- axis_angle_to_quat( tmp_quat, upvec, (float)moffset[0]*time_redraw*20); /* Rotate about the relative up vec */
+ axis_angle_to_quat( tmp_quat, upvec, (float)moffset[0] * time_redraw * FLY_ROTATE_FAC); /* Rotate about the relative up vec */
mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
if (fly->xlock) fly->xlock = 2;/*check for rotation*/
@@ -2446,10 +2450,10 @@ static int flyApply(FlyInfo *fly)
upvec[2]=1;
mul_m3_v3(mat, upvec);
- axis_angle_to_quat( tmp_quat, upvec, roll*time_redraw_clamped*fly->zlock_momentum*0.1); /* Rotate about the relative up vec */
+ axis_angle_to_quat( tmp_quat, upvec, roll*time_redraw_clamped*fly->zlock_momentum * FLY_ZUP_CORRECT_FAC); /* Rotate about the relative up vec */
mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
- fly->zlock_momentum += 0.05f;
+ fly->zlock_momentum += FLY_ZUP_CORRECT_ACCEL;
} else {
fly->zlock=1; /* dont check until the view rotates again */
fly->zlock_momentum= 0.0f;
@@ -2505,7 +2509,7 @@ static int flyApply(FlyInfo *fly)
if (lock_ob->protectflag & OB_LOCK_LOCZ) dvec[2] = 0.0;
}
- add_v3_v3v3(rv3d->ofs, rv3d->ofs, dvec);
+ add_v3_v3(rv3d->ofs, dvec);
/* todo, dynamic keys */
#if 0
@@ -2524,7 +2528,7 @@ static int flyApply(FlyInfo *fly)
ID *id_key;
/* transform the parent or the camera? */
if(fly->root_parent) {
- Object *ob_update;
+ Object *ob_update;
float view_mat[4][4];
float prev_view_imat[4][4];
@@ -2559,13 +2563,10 @@ static int flyApply(FlyInfo *fly)
/* record the motion */
if (autokeyframe_cfra_can_key(scene, id_key)) {
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
- int cfra = CFRA;
+ ListBase dsources = {NULL, NULL};
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= id_key;
+ /* add datasource override for the camera object */
+ ANIM_relative_keyingset_add_source(&dsources, id_key, NULL, NULL);
/* insert keyframes
* 1) on the first frame
@@ -2574,12 +2575,15 @@ static int flyApply(FlyInfo *fly)
*/
if (fly->xlock || fly->zlock || moffset[0] || moffset[1]) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
}
if (fly->speed) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
}
+
+ /* free temp data */
+ BLI_freelistN(&dsources);
}
}
} else
@@ -2642,7 +2646,7 @@ static int fly_modal(bContext *C, wmOperator *op, wmEvent *event)
flyEvent(fly, event);
if(event->type==TIMER && event->customdata == fly->timer)
- flyApply(fly);
+ flyApply(C, fly);
if(fly->redraw) {
ED_region_tag_redraw(CTX_wm_region(C));
@@ -2702,7 +2706,7 @@ void view3d_align_axis_to_vector(View3D *v3d, RegionView3D *rv3d, int axisidx, f
VECCOPY(orig_ofs, rv3d->ofs);
rv3d->persp= RV3D_PERSP;
rv3d->dist= 0.0;
- view_settings_from_ob(v3d->camera, rv3d->ofs, NULL, NULL, &v3d->lens);
+ view3d_settings_from_ob(v3d->camera, rv3d->ofs, NULL, NULL, &v3d->lens);
smooth_view(NULL, NULL, NULL, orig_ofs, new_quat, &orig_dist, &orig_lens); // XXX
} else {
if (rv3d->persp==RV3D_CAMOB) rv3d->persp= RV3D_PERSP; /* switch out of camera mode */
diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt
new file mode 100644
index 00000000000..1642648e056
--- /dev/null
+++ b/source/blender/editors/transform/CMakeLists.txt
@@ -0,0 +1,35 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../../bmesh
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_transform "${SRC}" "${INC}")
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 5adda8d09e5..5ed8ff8c8a7 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -33,10 +33,6 @@
#include <math.h>
#include <float.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#ifndef WIN32
#include <unistd.h>
#else
@@ -47,20 +43,9 @@
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
-#include "DNA_action_types.h" /* for some special action-editor settings */
#include "DNA_constraint_types.h"
-#include "DNA_ipo_types.h" /* some silly ipo flag */
-#include "DNA_listBase.h"
#include "DNA_meshdata_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h" /* PET modes */
-#include "DNA_screen_types.h" /* area dimensions */
-#include "DNA_texture_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
@@ -98,7 +83,6 @@
#include "ED_screen.h"
#include "ED_space_api.h"
#include "ED_markers.h"
-#include "ED_util.h"
#include "ED_view3d.h"
#include "ED_mesh.h"
@@ -112,7 +96,6 @@
#include "BLI_ghash.h"
#include "BLI_linklist.h"
-#include "PIL_time.h" /* sleep */
#include "UI_resources.h"
@@ -219,17 +202,33 @@ void projectIntView(TransInfo *t, float *vec, int *adr)
UI_view2d_to_region_no_clip(t->view, v[0], v[1], adr, adr+1);
}
- else if(ELEM3(t->spacetype, SPACE_IPO, SPACE_NLA, SPACE_ACTION)) {
+ else if(t->spacetype == SPACE_ACTION) {
+ SpaceAction *sact = t->sa->spacedata.first;
+ int out[2] = {0, 0};
+
+ if (sact->flag & SACTION_DRAWTIME) {
+ //vec[0] = vec[0]/((t->scene->r.frs_sec / t->scene->r.frs_sec_base));
+
+ UI_view2d_to_region_no_clip((View2D *)t->view, vec[0], vec[1], out, out+1);
+ }
+ else {
+ UI_view2d_to_region_no_clip((View2D *)t->view, vec[0], vec[1], out, out+1);
+ }
+
+ adr[0]= out[0];
+ adr[1]= out[1];
+ }
+ else if(ELEM(t->spacetype, SPACE_IPO, SPACE_NLA)) {
int out[2] = {0, 0};
- UI_view2d_view_to_region((View2D *)t->view, vec[0], vec[1], out, out+1);
+ UI_view2d_to_region_no_clip((View2D *)t->view, vec[0], vec[1], out, out+1);
adr[0]= out[0];
adr[1]= out[1];
}
else if(t->spacetype==SPACE_SEQ) { /* XXX not tested yet, but should work */
int out[2] = {0, 0};
- UI_view2d_view_to_region((View2D *)t->view, vec[0], vec[1], out, out+1);
+ UI_view2d_to_region_no_clip((View2D *)t->view, vec[0], vec[1], out, out+1);
adr[0]= out[0];
adr[1]= out[1];
}
@@ -259,9 +258,8 @@ void projectFloatView(TransInfo *t, float *vec, float *adr)
void applyAspectRatio(TransInfo *t, float *vec)
{
- SpaceImage *sima= t->sa->spacedata.first;
-
if ((t->spacetype==SPACE_IMAGE) && (t->mode==TFM_TRANSLATION)) {
+ SpaceImage *sima= t->sa->spacedata.first;
float aspx, aspy;
if((sima->flag & SI_COORDFLOATS)==0) {
@@ -280,9 +278,8 @@ void applyAspectRatio(TransInfo *t, float *vec)
void removeAspectRatio(TransInfo *t, float *vec)
{
- SpaceImage *sima= t->sa->spacedata.first;
-
if ((t->spacetype==SPACE_IMAGE) && (t->mode==TFM_TRANSLATION)) {
+ SpaceImage *sima= t->sa->spacedata.first;
float aspx, aspy;
if((sima->flag & SI_COORDFLOATS)==0) {
@@ -314,14 +311,14 @@ static void viewRedrawForce(const bContext *C, TransInfo *t)
}
else if (t->spacetype == SPACE_ACTION) {
//SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first;
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
else if (t->spacetype == SPACE_IPO) {
//SpaceIpo *sipo= (SpaceIpo *)t->sa->spacedata.first;
- WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
else if (t->spacetype == SPACE_NLA) {
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_EDIT, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
}
else if(t->spacetype == SPACE_NODE)
{
@@ -347,7 +344,7 @@ static void viewRedrawPost(TransInfo *t)
if(t->spacetype == SPACE_VIEW3D) {
/* if autokeying is enabled, send notifiers that keyframes were added */
if (IS_AUTOKEY_ON(t->scene))
- WM_main_add_notifier(NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
+ WM_main_add_notifier(NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
#if 0 // TRANSFORM_FIX_ME
@@ -482,6 +479,8 @@ static void view_editmove(unsigned short event)
#define TFM_MODAL_REMOVE_SNAP 17
/* 18 and 19 used by numinput, defined in transform.h
* */
+#define TFM_MODAL_PROPSIZE_UP 20
+#define TFM_MODAL_PROPSIZE_DOWN 21
/* called in transform_ops.c, on each regeneration of keymaps */
wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
@@ -506,6 +505,8 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
{TFM_MODAL_REMOVE_SNAP, "REMOVE_SNAP", 0, "Remove Last Snap Point", ""},
{NUM_MODAL_INCREMENT_UP, "INCREMENT_UP", 0, "Numinput Increment Up", ""},
{NUM_MODAL_INCREMENT_DOWN, "INCREMENT_DOWN", 0, "Numinput Increment Down", ""},
+ {TFM_MODAL_PROPSIZE_UP, "PROPORTIONAL_SIZE_UP", 0, "Increase Proportional Influence", ""},
+ {TFM_MODAL_PROPSIZE_DOWN, "PROPORTIONAL_SIZE_DOWN", 0, "Decrease Poportional Influence", ""},
{0, NULL, 0, NULL, NULL}};
wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "Transform Modal Map");
@@ -535,6 +536,11 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
WM_modalkeymap_add_item(keymap, UPARROWKEY, KM_PRESS, 0, 0, NUM_MODAL_INCREMENT_UP);
WM_modalkeymap_add_item(keymap, DOWNARROWKEY, KM_PRESS, 0, 0, NUM_MODAL_INCREMENT_DOWN);
+
+ WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
+ WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
+ WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
+ WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
return keymap;
}
@@ -559,7 +565,7 @@ int transformEvent(TransInfo *t, wmEvent *event)
t->redraw |= TREDRAW_SOFT;
if (t->state == TRANS_STARTING) {
- t->state = TRANS_RUNNING;
+ t->state = TRANS_RUNNING;
}
applyMouseInput(t, &t->mouse, t->mval, t->values);
@@ -715,6 +721,20 @@ int transformEvent(TransInfo *t, wmEvent *event)
removeSnapPoint(t);
t->redraw |= TREDRAW_HARD;
break;
+ case TFM_MODAL_PROPSIZE_UP:
+ if(t->flag & T_PROP_EDIT) {
+ t->prop_size*= 1.1f;
+ calculatePropRatio(t);
+ }
+ t->redraw |= TREDRAW_HARD;
+ break;
+ case TFM_MODAL_PROPSIZE_DOWN:
+ if (t->flag & T_PROP_EDIT) {
+ t->prop_size*= 0.90909090f;
+ calculatePropRatio(t);
+ }
+ t->redraw |= TREDRAW_HARD;
+ break;
default:
handled = 0;
break;
@@ -939,10 +959,6 @@ int transformEvent(TransInfo *t, wmEvent *event)
if (t->flag & T_AUTOIK) {
transform_autoik_update(t, 1);
}
- else if(t->flag & T_PROP_EDIT) {
- t->prop_size*= 1.1f;
- calculatePropRatio(t);
- }
else view_editmove(event->type);
t->redraw= 1;
break;
@@ -958,10 +974,6 @@ int transformEvent(TransInfo *t, wmEvent *event)
if (t->flag & T_AUTOIK) {
transform_autoik_update(t, -1);
}
- else if (t->flag & T_PROP_EDIT) {
- t->prop_size*= 0.90909090f;
- calculatePropRatio(t);
- }
else view_editmove(event->type);
t->redraw= 1;
break;
@@ -1045,10 +1057,13 @@ int transformEvent(TransInfo *t, wmEvent *event)
}
/* confirm transform if launch key is released after mouse move */
- /* XXX Keyrepeat bug in Xorg fucks this up, will test when fixed */
- if (event->type == LEFTMOUSE /*t->launch_event*/ && t->state != TRANS_STARTING)
+ if (t->flag & T_RELEASE_CONFIRM)
{
- t->state = TRANS_CONFIRM;
+ /* XXX Keyrepeat bug in Xorg fucks this up, will test when fixed */
+ if (event->type == t->launch_event && (t->launch_event == LEFTMOUSE || t->launch_event == RIGHTMOUSE))
+ {
+ t->state = TRANS_CONFIRM;
+ }
}
}
@@ -1456,6 +1471,22 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
t->launch_event = event ? event->type : -1;
+ if (t->launch_event == EVT_TWEAK_R)
+ {
+ t->launch_event = RIGHTMOUSE;
+ }
+ else if (t->launch_event == EVT_TWEAK_L)
+ {
+ t->launch_event = LEFTMOUSE;
+ }
+
+ // XXX Remove this when wm_operator_call_internal doesn't use window->eventstate (which can have type = 0)
+ // For manipulator only, so assume LEFTMOUSE
+ if (t->launch_event == 0)
+ {
+ t->launch_event = LEFTMOUSE;
+ }
+
if (!initTransInfo(C, t, op, event)) // internal data, mouse, vectors
{
return 0;
@@ -1486,6 +1517,28 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
return 0;
}
+ /* Stupid code to have Ctrl-Click on manipulator work ok */
+ if(event)
+ {
+ wmKeyMap *keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap);
+ wmKeyMapItem *kmi;
+
+ for (kmi = keymap->items.first; kmi; kmi = kmi->next)
+ {
+ if (kmi->propvalue == TFM_MODAL_SNAP_INV_ON && kmi->val == KM_PRESS)
+ {
+ if ((ELEM(kmi->type, LEFTCTRLKEY, RIGHTCTRLKEY) && event->ctrl) ||
+ (ELEM(kmi->type, LEFTSHIFTKEY, RIGHTSHIFTKEY) && event->shift) ||
+ (ELEM(kmi->type, LEFTALTKEY, RIGHTALTKEY) && event->alt) ||
+ (kmi->type == COMMANDKEY && event->oskey)) {
+ t->modifiers |= MOD_SNAP_INVERT;
+ }
+ break;
+ }
+ }
+
+ }
+
initSnapping(t, op); // Initialize snapping data AFTER mode flags
/* EVIL! posemode code can switch translation to rotate when 1 bone is selected. will be removed (ton) */
@@ -1897,39 +1950,50 @@ static void constraintTransLim(TransInfo *t, TransData *td)
}
}
+static void constraintob_from_transdata(bConstraintOb *cob, TransData *td)
+{
+ /* Make a temporary bConstraintOb for use by limit constraints
+ * - they only care that cob->matrix is correctly set ;-)
+ * - current space should be local
+ */
+ memset(cob, 0, sizeof(bConstraintOb));
+ if (td->rotOrder == ROT_MODE_QUAT) {
+ /* quats */
+ if (td->ext) {
+ /* objects and bones do normalization first too, otherwise
+ we don't necessarily end up with a rotation matrix, and
+ then conversion back to quat gives a different result */
+ float quat[4];
+ copy_qt_qt(quat, td->ext->quat);
+ normalize_qt(quat);
+ quat_to_mat4(cob->matrix, quat);
+ }
+ else
+ return;
+ }
+ else if (td->rotOrder == ROT_MODE_AXISANGLE) {
+ /* axis angle */
+ if (td->ext)
+ axis_angle_to_mat4(cob->matrix, &td->ext->quat[1], td->ext->quat[0]);
+ else
+ return;
+ }
+ else {
+ /* eulers */
+ if (td->ext)
+ eulO_to_mat4(cob->matrix, td->ext->rot, td->rotOrder);
+ else
+ return;
+ }
+}
+
static void constraintRotLim(TransInfo *t, TransData *td)
{
if (td->con) {
bConstraintTypeInfo *cti= get_constraint_typeinfo(CONSTRAINT_TYPE_ROTLIMIT);
bConstraintOb cob;
bConstraint *con;
-
- /* Make a temporary bConstraintOb for using these limit constraints
- * - they only care that cob->matrix is correctly set ;-)
- * - current space should be local
- */
- memset(&cob, 0, sizeof(bConstraintOb));
- if (td->rotOrder == ROT_MODE_QUAT) {
- /* quats */
- if (td->ext)
- quat_to_mat4( cob.matrix,td->ext->quat);
- else
- return;
- }
- else if (td->rotOrder == ROT_MODE_AXISANGLE) {
- /* axis angle */
- if (td->ext)
- axis_angle_to_mat4( cob.matrix,&td->ext->quat[1], td->ext->quat[0]);
- else
- return;
- }
- else {
- /* eulers */
- if (td->ext)
- eulO_to_mat4( cob.matrix,td->ext->rot, td->rotOrder);
- else
- return;
- }
+ int dolimit = 0;
/* Evaluate valid constraints */
for (con= td->con; con; con= con->next) {
@@ -1945,6 +2009,16 @@ static void constraintRotLim(TransInfo *t, TransData *td)
/* only use it if it's tagged for this purpose */
if ((data->flag2 & LIMIT_TRANSFORM)==0)
continue;
+
+ /* skip incompatable spacetypes */
+ if (!ELEM(con->ownspace, CONSTRAINT_SPACE_WORLD, CONSTRAINT_SPACE_LOCAL))
+ continue;
+
+ /* only do conversion if necessary, to preserve quats and eulers */
+ if(!dolimit) {
+ constraintob_from_transdata(&cob, td);
+ dolimit= 1;
+ }
/* do space conversions */
if (con->ownspace == CONSTRAINT_SPACE_WORLD) {
@@ -1952,10 +2026,6 @@ static void constraintRotLim(TransInfo *t, TransData *td)
copy_m4_m4(tmat, cob.matrix);
mul_m4_m3m4(cob.matrix, td->mtx, tmat);
}
- else if (con->ownspace != CONSTRAINT_SPACE_LOCAL) {
- /* skip... incompatable spacetype */
- continue;
- }
/* do constraint */
cti->evaluate_constraint(con, &cob, NULL);
@@ -1969,18 +2039,20 @@ static void constraintRotLim(TransInfo *t, TransData *td)
}
}
- /* copy results from cob->matrix */
- if (td->rotOrder == ROT_MODE_QUAT) {
- /* quats */
- mat4_to_quat( td->ext->quat,cob.matrix);
- }
- else if (td->rotOrder == ROT_MODE_AXISANGLE) {
- /* axis angle */
- mat4_to_axis_angle( &td->ext->quat[1], &td->ext->quat[0],cob.matrix);
- }
- else {
- /* eulers */
- mat4_to_eulO( td->ext->rot, td->rotOrder,cob.matrix);
+ if(dolimit) {
+ /* copy results from cob->matrix */
+ if (td->rotOrder == ROT_MODE_QUAT) {
+ /* quats */
+ mat4_to_quat( td->ext->quat,cob.matrix);
+ }
+ else if (td->rotOrder == ROT_MODE_AXISANGLE) {
+ /* axis angle */
+ mat4_to_axis_angle( &td->ext->quat[1], &td->ext->quat[0],cob.matrix);
+ }
+ else {
+ /* eulers */
+ mat4_to_eulO( td->ext->rot, td->rotOrder,cob.matrix);
+ }
}
}
}
@@ -2064,6 +2136,16 @@ static void constraintSizeLim(TransInfo *t, TransData *td)
/* ************************** WARP *************************** */
+void postInputWarp(TransInfo *t, float values[3])
+{
+ mul_v3_fl(values, (float)(M_PI * 2));
+
+ if (t->customData) /* non-null value indicates reversed input */
+ {
+ negate_v3(values);
+ }
+}
+
void initWarp(TransInfo *t)
{
float max[3], min[3];
@@ -2073,13 +2155,14 @@ void initWarp(TransInfo *t)
t->transform = Warp;
t->handleEvent = handleEventWarp;
+ setInputPostFct(&t->mouse, postInputWarp);
initMouseInputMode(t, &t->mouse, INPUT_HORIZONTAL_RATIO);
t->idx_max = 0;
t->num.idx_max = 0;
t->snap[0] = 0.0f;
- t->snap[1] = 5.0f;
- t->snap[2] = 1.0f;
+ t->snap[1] = 5.0f / 180 * M_PI;
+ t->snap[2] = 1.0f / 180 * M_PI;
t->num.increment = 1.0f;
@@ -2091,7 +2174,7 @@ void initWarp(TransInfo *t)
VECCOPY(center, t->data[i].center);
mul_m3_v3(t->data[i].mtx, center);
mul_m4_v3(t->viewmat, center);
- sub_v3_v3v3(center, center, t->viewmat[3]);
+ sub_v3_v3(center, t->viewmat[3]);
if (i)
minmax_v3_v3v3(min, max, center);
else {
@@ -2147,20 +2230,15 @@ int Warp(TransInfo *t, short mval[2])
VECCOPY(cursor, curs);
VECCOPY(gcursor, cursor);
if (t->flag & T_EDIT) {
- sub_v3_v3v3(cursor, cursor, t->obedit->obmat[3]);
- sub_v3_v3v3(gcursor, gcursor, t->obedit->obmat[3]);
+ sub_v3_v3(cursor, t->obedit->obmat[3]);
+ sub_v3_v3(gcursor, t->obedit->obmat[3]);
mul_m3_v3(t->data->smtx, gcursor);
}
mul_m4_v3(t->viewmat, cursor);
- sub_v3_v3v3(cursor, cursor, t->viewmat[3]);
+ sub_v3_v3(cursor, t->viewmat[3]);
- /* amount of degrees for warp */
- circumfac = 360.0f * t->values[0];
-
- if (t->customData) /* non-null value indicates reversed input */
- {
- circumfac *= -1;
- }
+ /* amount of radians for warp */
+ circumfac = t->values[0];
snapGrid(t, &circumfac);
applyNumInput(&t->num, &circumfac);
@@ -2172,13 +2250,17 @@ int Warp(TransInfo *t, short mval[2])
outputNumInput(&(t->num), c);
sprintf(str, "Warp: %s", c);
+
+ circumfac = circumfac / 180 * M_PI;
}
else {
/* default header print */
- sprintf(str, "Warp: %.3f", circumfac);
+ sprintf(str, "Warp: %.3f", circumfac * 180 / M_PI);
}
- circumfac*= (float)(-M_PI/360.0);
+ t->values[0] = circumfac;
+
+ circumfac /= 2; /* only need 180 on each side to make 360 */
for(i = 0; i < t->total; i++, td++) {
float loc[3];
@@ -2192,7 +2274,7 @@ int Warp(TransInfo *t, short mval[2])
VECCOPY(vec, td->iloc);
mul_m3_v3(td->mtx, vec);
mul_m4_v3(t->viewmat, vec);
- sub_v3_v3v3(vec, vec, t->viewmat[3]);
+ sub_v3_v3(vec, t->viewmat[3]);
dist= vec[0]-cursor[0];
@@ -2208,10 +2290,10 @@ int Warp(TransInfo *t, short mval[2])
loc[2]= vec[2];
mul_m4_v3(t->viewinv, loc);
- sub_v3_v3v3(loc, loc, t->viewinv[3]);
+ sub_v3_v3(loc, t->viewinv[3]);
mul_m3_v3(td->smtx, loc);
- sub_v3_v3v3(loc, loc, td->iloc);
+ sub_v3_v3(loc, td->iloc);
mul_v3_fl(loc, td->factor);
add_v3_v3v3(td->loc, td->iloc, loc);
}
@@ -2225,12 +2307,18 @@ int Warp(TransInfo *t, short mval[2])
/* ************************** SHEAR *************************** */
+void postInputShear(TransInfo *t, float values[3])
+{
+ mul_v3_fl(values, 0.05f);
+}
+
void initShear(TransInfo *t)
{
t->mode = TFM_SHEAR;
t->transform = Shear;
t->handleEvent = handleEventShear;
+ setInputPostFct(&t->mouse, postInputShear);
initMouseInputMode(t, &t->mouse, INPUT_HORIZONTAL_ABSOLUTE);
t->idx_max = 0;
@@ -2281,7 +2369,7 @@ int Shear(TransInfo *t, short mval[2])
copy_m3_m4(persmat, t->viewmat);
invert_m3_m3(persinv, persmat);
- value = 0.05f * t->values[0];
+ value = t->values[0];
snapGrid(t, &value);
@@ -2330,8 +2418,8 @@ int Shear(TransInfo *t, short mval[2])
mul_m3_v3(tmat, vec);
- add_v3_v3v3(vec, vec, t->center);
- sub_v3_v3v3(vec, vec, td->center);
+ add_v3_v3(vec, t->center);
+ sub_v3_v3(vec, td->center);
mul_v3_fl(vec, td->factor);
@@ -2482,16 +2570,16 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3]) {
if ((t->flag & T_V3D_ALIGN)==0) { // align mode doesn't resize objects itself
if((td->flag & TD_SINGLESIZE) && !(t->con.mode & CON_APPLY)){
/* scale val and reset size */
- *td->val = td->ival * (1 + (fsize[0] - 1) * td->factor);
+ *td->val = td->ival * (1 + (fsize[0] - 1) * td->factor);
td->ext->size[0] = td->ext->isize[0];
td->ext->size[1] = td->ext->isize[1];
td->ext->size[2] = td->ext->isize[2];
- }
+ }
else {
/* Reset val if SINGLESIZE but using a constraint */
if (td->flag & TD_SINGLESIZE)
- *td->val = td->ival;
+ *td->val = td->ival;
td->ext->size[0] = td->ext->isize[0] * (1 + (fsize[0] - 1) * td->factor);
td->ext->size[1] = td->ext->isize[1] * (1 + (fsize[1] - 1) * td->factor);
@@ -2510,11 +2598,11 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3]) {
mul_m3_v3(tmat, vec);
- add_v3_v3v3(vec, vec, center);
+ add_v3_v3(vec, center);
if (t->flag & T_POINTS)
- sub_v3_v3v3(vec, vec, td->iloc);
+ sub_v3_v3(vec, td->iloc);
else
- sub_v3_v3v3(vec, vec, td->center);
+ sub_v3_v3(vec, td->center);
mul_v3_fl(vec, td->factor);
@@ -2652,6 +2740,8 @@ int ToSphere(TransInfo *t, short mval[2])
else if (ratio > 1)
ratio = 1.0f;
+ t->values[0] = ratio;
+
/* header print for NumInput */
if (hasNumInput(&t->num)) {
char c[20];
@@ -2696,11 +2786,19 @@ int ToSphere(TransInfo *t, short mval[2])
/* ************************** ROTATION *************************** */
+void postInputRotation(TransInfo *t, float values[3])
+{
+ if ((t->con.mode & CON_APPLY) && t->con.applyRot) {
+ t->con.applyRot(t, NULL, t->axis, values);
+ }
+}
+
void initRotation(TransInfo *t)
{
t->mode = TFM_ROTATION;
t->transform = Rotation;
+ setInputPostFct(&t->mouse, postInputRotation);
initMouseInputMode(t, &t->mouse, INPUT_ANGLE);
t->ndof.axis = 16;
@@ -2792,7 +2890,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
mul_m3_v3(mat, vec); // Applying rotation
mul_m3_v3(imtx, vec); // To Local space
- add_v3_v3v3(vec, vec, center);
+ add_v3_v3(vec, center);
/* vec now is the location where the object has to be */
sub_v3_v3v3(vec, vec, td->center); // Translation needed from the initial location
@@ -2864,9 +2962,9 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
/* translation */
sub_v3_v3v3(vec, td->center, center);
mul_m3_v3(mat, vec);
- add_v3_v3v3(vec, vec, center);
+ add_v3_v3(vec, center);
/* vec now is the location where the object has to be */
- sub_v3_v3v3(vec, vec, td->center);
+ sub_v3_v3(vec, td->center);
mul_m3_v3(td->smtx, vec);
protectedTransBits(td->protectflag, vec);
@@ -2880,7 +2978,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
/* rotation */
if ((t->flag & T_V3D_ALIGN)==0) { // align mode doesn't rotate objects itself
/* euler or quaternion? */
- if ((td->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) {
+ if ((td->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) {
mul_serie_m3(fmat, td->mtx, mat, td->smtx, 0, 0, 0, 0, 0);
mat3_to_quat( quat,fmat); // Actual transform
@@ -2973,7 +3071,7 @@ int Rotation(TransInfo *t, short mval[2])
snapGrid(t, &final);
if ((t->con.mode & CON_APPLY) && t->con.applyRot) {
- t->con.applyRot(t, NULL, t->axis, &final);
+ t->con.applyRot(t, NULL, t->axis, NULL);
} else {
/* reset axis if constraint is not set */
negate_v3_v3(t->axis, t->viewinv[2]);
@@ -3004,12 +3102,10 @@ int Rotation(TransInfo *t, short mval[2])
sprintf(str, "Rot: %.2f%s %s", 180.0*final/M_PI, t->con.text, t->proptext);
}
+ t->values[0] = final;
+
vec_rot_to_mat3( mat, t->axis, final);
- // TRANSFORM_FIX_ME
-// t->values[0] = final; // used in manipulator
-// copy_m3_m3(t->mat, mat); // used in manipulator
-
applyRotation(t, final, t->axis);
recalcData(t);
@@ -3620,7 +3716,7 @@ int PushPull(TransInfo *t, short mval[2])
if (isLockConstraint(t)) {
float dvec[3];
project_v3_v3v3(dvec, vec, axis);
- sub_v3_v3v3(vec, vec, dvec);
+ sub_v3_v3(vec, dvec);
}
else {
project_v3_v3v3(vec, vec, axis);
@@ -3772,7 +3868,7 @@ void initBevelWeight(TransInfo *t)
t->num.increment = t->snap[1];
- t->flag |= T_NO_CONSTRAINT;
+ t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
int BevelWeight(TransInfo *t, short mval[2])
@@ -3845,7 +3941,7 @@ void initCrease(TransInfo *t)
t->num.increment = t->snap[1];
- t->flag |= T_NO_CONSTRAINT;
+ t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
int Crease(TransInfo *t, short mval[2])
@@ -4526,7 +4622,7 @@ static int createSlideVerts(TransInfo *t)
// populate the SlideVerts
- vertgh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ vertgh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "createSlideVerts gh");
look = vertlist;
while(look) {
i=0;
@@ -4680,7 +4776,7 @@ static int createSlideVerts(TransInfo *t)
sub_v3_v3v3(vec, co2, co);
}
- add_v3_v3v3(start, start, vec);
+ add_v3_v3(start, vec);
if (v3d) {
view3d_project_float(t->ar, tempsv->down->v1->co, co, projectMat);
@@ -4693,7 +4789,7 @@ static int createSlideVerts(TransInfo *t)
sub_v3_v3v3(vec, co, co2);
}
- add_v3_v3v3(end, end, vec);
+ add_v3_v3(end, vec);
totvec += 1.0f;
nearest = (EditVert*)look->link;
@@ -4705,7 +4801,7 @@ static int createSlideVerts(TransInfo *t)
look = look->next;
}
- add_v3_v3v3(start, start, end);
+ add_v3_v3(start, end);
mul_v3_fl(start, 0.5*(1.0/totvec));
VECCOPY(vec, start);
start[0] = t->mval[0];
@@ -4727,7 +4823,7 @@ static int createSlideVerts(TransInfo *t)
for (uvlay_idx=0; uvlay_idx<uvlay_tot; uvlay_idx++) {
- uvarray[uvlay_idx] = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp);
+ uvarray[uvlay_idx] = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "createSlideVerts2 gh");
for(ev=em->verts.first;ev;ev=ev->next) {
ev->tmp.l = 0;
@@ -4886,7 +4982,7 @@ void initEdgeSlide(TransInfo *t)
t->num.increment = t->snap[1];
- t->flag |= T_NO_CONSTRAINT;
+ t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
int doEdgeSlide(TransInfo *t, float perc)
@@ -5507,27 +5603,27 @@ static short getAnimEdit_DrawTime(TransInfo *t)
/* This function is used by Animation Editor specific transform functions to do
* the Snap Keyframe to Nearest Frame/Marker
*/
-static void doAnimEdit_SnapFrame(TransInfo *t, TransData *td, AnimData *adt, short autosnap)
+static void doAnimEdit_SnapFrame(TransInfo *t, TransData *td, TransData2D *td2d, AnimData *adt, short autosnap)
{
/* snap key to nearest frame? */
if (autosnap == SACTSNAP_FRAME) {
const Scene *scene= t->scene;
- const short doTime= getAnimEdit_DrawTime(t);
+ const short doTime= 0; //XXX doesn't work - getAnimEdit_DrawTime(t);
const double secf= FPS;
double val;
-
+
/* convert frame to nla-action time (if needed) */
if (adt)
val= BKE_nla_tweakedit_remap(adt, *(td->val), NLATIME_CONVERT_MAP);
else
val= *(td->val);
-
+
/* do the snapping to nearest frame/second */
if (doTime)
val= (float)( floor((val/secf) + 0.5f) * secf );
else
val= (float)( floor(val+0.5f) );
-
+
/* convert frame out of nla-action time */
if (adt)
*(td->val)= BKE_nla_tweakedit_remap(adt, val, NLATIME_CONVERT_UNMAP);
@@ -5537,23 +5633,34 @@ static void doAnimEdit_SnapFrame(TransInfo *t, TransData *td, AnimData *adt, sho
/* snap key to nearest marker? */
else if (autosnap == SACTSNAP_MARKER) {
float val;
-
+
/* convert frame to nla-action time (if needed) */
if (adt)
val= BKE_nla_tweakedit_remap(adt, *(td->val), NLATIME_CONVERT_MAP);
else
val= *(td->val);
-
+
/* snap to nearest marker */
// TODO: need some more careful checks for where data comes from
val= (float)ED_markers_find_nearest_marker_time(&t->scene->markers, val);
-
+
/* convert frame out of nla-action time */
if (adt)
*(td->val)= BKE_nla_tweakedit_remap(adt, val, NLATIME_CONVERT_UNMAP);
else
*(td->val)= val;
}
+
+ /* if the handles are to be moved too (as side-effect of keyframes moving, to keep the general effect)
+ * offset them by the same amount so that the general angles are maintained (i.e. won't change while
+ * handles are free-to-roam and keyframes are snap-locked)
+ */
+ if ((td->flag & TD_MOVEHANDLE1) && td2d->h1) {
+ td2d->h1[0] = td2d->ih1[0] + *td->val - td->ival;
+ }
+ if ((td->flag & TD_MOVEHANDLE2) && td2d->h2) {
+ td2d->h2[0] = td2d->ih2[0] + *td->val - td->ival;
+ }
}
/* ----------------- Translation ----------------------- */
@@ -5616,6 +5723,7 @@ static void headerTimeTranslate(TransInfo *t, char *str)
static void applyTimeTranslate(TransInfo *t, float sval)
{
TransData *td = t->data;
+ TransData2D *td2d = t->data2d;
Scene *scene = t->scene;
int i;
@@ -5624,16 +5732,18 @@ static void applyTimeTranslate(TransInfo *t, float sval)
const short autosnap= getAnimEdit_SnapMode(t);
- float deltax, val;
+ float deltax, val, valprev;
/* it doesn't matter whether we apply to t->data or t->data2d, but t->data2d is more convenient */
- for (i = 0 ; i < t->total; i++, td++) {
+ for (i = 0 ; i < t->total; i++, td++, td2d++) {
/* it is assumed that td->extra is a pointer to the AnimData,
* whose active action is where this keyframe comes from
* (this is only valid when not in NLA)
*/
AnimData *adt= (t->spacetype != SPACE_NLA) ? td->extra : NULL;
+ valprev = *td->val;
+
/* check if any need to apply nla-mapping */
if (adt && t->spacetype != SPACE_SEQ) {
deltax = t->values[0];
@@ -5663,7 +5773,7 @@ static void applyTimeTranslate(TransInfo *t, float sval)
}
/* apply nearest snapping */
- doAnimEdit_SnapFrame(t, td, adt, autosnap);
+ doAnimEdit_SnapFrame(t, td, td2d, adt, autosnap);
}
}
@@ -5807,6 +5917,7 @@ int TimeSlide(TransInfo *t, short mval[2])
UI_view2d_region_to_view(v2d, t->imval[0], t->imval[0], &sval[0], &sval[1]);
/* t->values[0] stores cval[0], which is the current mouse-pointer location (in frames) */
+ // XXX Need to be able to repeat this
t->values[0] = cval[0];
/* handle numeric-input stuff */
@@ -5873,6 +5984,7 @@ static void headerTimeScale(TransInfo *t, char *str) {
static void applyTimeScale(TransInfo *t) {
Scene *scene = t->scene;
TransData *td = t->data;
+ TransData2D *td2d = t->data2d;
int i;
const short autosnap= getAnimEdit_SnapMode(t);
@@ -5880,7 +5992,7 @@ static void applyTimeScale(TransInfo *t) {
const double secf= FPS;
- for (i = 0 ; i < t->total; i++, td++) {
+ for (i = 0 ; i < t->total; i++, td++, td2d++) {
/* it is assumed that td->extra is a pointer to the AnimData,
* whose active action is where this keyframe comes from
* (this is only valid when not in NLA)
@@ -5906,7 +6018,7 @@ static void applyTimeScale(TransInfo *t) {
*(td->val) += startx;
/* apply nearest snapping */
- doAnimEdit_SnapFrame(t, td, adt, autosnap);
+ doAnimEdit_SnapFrame(t, td, td2d, adt, autosnap);
}
}
@@ -5941,11 +6053,11 @@ void BIF_TransformSetUndo(char *str)
void NDofTransform()
{
#if 0 // TRANSFORM_FIX_ME
- float fval[7];
- float maxval = 50.0f; // also serves as threshold
- int axis = -1;
- int mode = 0;
- int i;
+ float fval[7];
+ float maxval = 50.0f; // also serves as threshold
+ int axis = -1;
+ int mode = 0;
+ int i;
getndof(fval);
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 7bf0a99103c..487609e0ad8 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -109,25 +109,25 @@ typedef struct TransSnap {
typedef struct TransCon {
short orientation; /**/
- char text[50]; /* Description of the Constraint for header_print */
- float mtx[3][3]; /* Matrix of the Constraint space */
- float imtx[3][3]; /* Inverse Matrix of the Constraint space */
- float pmtx[3][3]; /* Projection Constraint Matrix (same as imtx with some axis == 0) */
- float center[3]; /* transformation center to define where to draw the view widget
- ALWAYS in global space. Unlike the transformation center */
+ char text[50]; /* Description of the Constraint for header_print */
+ float mtx[3][3]; /* Matrix of the Constraint space */
+ float imtx[3][3]; /* Inverse Matrix of the Constraint space */
+ float pmtx[3][3]; /* Projection Constraint Matrix (same as imtx with some axis == 0) */
+ float center[3]; /* transformation center to define where to draw the view widget
+ ALWAYS in global space. Unlike the transformation center */
short imval[2]; /* initial mouse value for visual calculation */
- /* the one in TransInfo is not garanty to stay the same (Rotates change it) */
- int mode; /* Mode flags of the Constraint */
+ /* the one in TransInfo is not garanty to stay the same (Rotates change it) */
+ int mode; /* Mode flags of the Constraint */
void (*drawExtra)(struct TransInfo *);
/* For constraints that needs to draw differently from the other
uses this instead of the generic draw function */
- void (*applyVec)(struct TransInfo *, struct TransData *, float *, float *, float *);
- /* Apply function pointer for linear vectorial transformation */
- /* The last three parameters are pointers to the in/out/printable vectors */
- void (*applySize)(struct TransInfo *, struct TransData *, float [3][3]);
- /* Apply function pointer for size transformation */
- void (*applyRot)(struct TransInfo *, struct TransData *, float [3], float *);
- /* Apply function pointer for rotation transformation */
+ void (*applyVec)(struct TransInfo *, struct TransData *, float *, float *, float *);
+ /* Apply function pointer for linear vectorial transformation */
+ /* The last three parameters are pointers to the in/out/printable vectors */
+ void (*applySize)(struct TransInfo *, struct TransData *, float [3][3]);
+ /* Apply function pointer for size transformation */
+ void (*applyRot)(struct TransInfo *, struct TransData *, float [3], float *);
+ /* Apply function pointer for rotation transformation */
} TransCon;
typedef struct TransDataExtension {
@@ -136,22 +136,25 @@ typedef struct TransDataExtension {
float drotAxis[3]; /* Initial object drotAxis */
float dquat[4]; /* Initial object dquat */
float dsize[3]; /* Initial object dsize */
- float *rot; /* Rotation of the data to transform (Faculative) */
- float irot[3]; /* Initial rotation */
- float *quat; /* Rotation quaternion of the data to transform (Faculative) */
- float iquat[4]; /* Initial rotation quaternion */
+ float *rot; /* Rotation of the data to transform (Faculative) */
+ float irot[3]; /* Initial rotation */
+ float *quat; /* Rotation quaternion of the data to transform (Faculative) */
+ float iquat[4]; /* Initial rotation quaternion */
float *rotAngle; /* Rotation angle of the data to transform (Faculative) */
float irotAngle; /* Initial rotation angle */
float *rotAxis; /* Rotation axis of the data to transform (Faculative) */
float irotAxis[4]; /* Initial rotation axis */
- float *size; /* Size of the data to transform (Faculative) */
- float isize[3]; /* Initial size */
+ float *size; /* Size of the data to transform (Faculative) */
+ float isize[3]; /* Initial size */
float obmat[4][4]; /* Object matrix */
} TransDataExtension;
typedef struct TransData2D {
float loc[3]; /* Location of data used to transform (x,y,0) */
float *loc2d; /* Pointer to real 2d location of data */
+
+ float *h1, *h2; /* Pointer to handle locations, if handles aren't being moved independantly*/
+ float ih1[2], ih2[2];
} TransData2D;
/* we need to store 2 handles for each transdata incase the other handle wasnt selected */
@@ -225,28 +228,29 @@ typedef struct TransData {
float dist; /* Distance needed to affect element (for Proportionnal Editing) */
float rdist; /* Distance to the nearest element (for Proportionnal Editing) */
float factor; /* Factor of the transformation (for Proportionnal Editing) */
- float *loc; /* Location of the data to transform */
- float iloc[3]; /* Initial location */
+ float *loc; /* Location of the data to transform */
+ float iloc[3]; /* Initial location */
float *val; /* Value pointer for special transforms */
float ival; /* Old value*/
- float center[3]; /* Individual data center */
- float mtx[3][3]; /* Transformation matrix from data space to global space */
- float smtx[3][3]; /* Transformation matrix from global space to data space */
+ float center[3]; /* Individual data center */
+ float mtx[3][3]; /* Transformation matrix from data space to global space */
+ float smtx[3][3]; /* Transformation matrix from global space to data space */
float axismtx[3][3];/* Axis orientation matrix of the data */
struct Object *ob;
struct bConstraint *con; /* for objects/bones, the first constraint in its constraint stack */
TransDataExtension *ext; /* for objects, poses. 1 single malloc per TransInfo! */
TransDataCurveHandleFlags *hdata; /* for curves, stores handle flags for modification/cancel */
void *extra; /* extra data (mirrored element pointer, in editmode mesh to EditVert) (editbone for roll fixing) (...) */
- int flag; /* Various flags */
+ int flag; /* Various flags */
short protectflag; /* If set, copy of Object or PoseChannel protection */
int rotOrder; /* rotation mode, as defined in eRotationModes (DNA_action_types.h) */
} TransData;
typedef struct MouseInput {
void (*apply)(struct TransInfo *, struct MouseInput *, short [2], float [3]);
+ void (*post)(struct TransInfo *, float [3]);
- short imval[2]; /* initial mouse position */
+ short imval[2]; /* initial mouse position */
char precision;
short precision_mval[2]; /* mouse position when precision key was pressed */
int center[2];
@@ -255,32 +259,32 @@ typedef struct MouseInput {
} MouseInput;
typedef struct TransInfo {
- int mode; /* current mode */
- int flag; /* generic flags for special behaviors */
- int modifiers; /* special modifiers, by function, not key */
+ int mode; /* current mode */
+ int flag; /* generic flags for special behaviors */
+ int modifiers; /* special modifiers, by function, not key */
short state; /* current state (running, canceled,...)*/
- int options; /* current context/options for transform */
- float val; /* init value for some transformations (and rotation angle) */
- float fac; /* factor for distance based transform */
- int (*transform)(struct TransInfo *, short *);
- /* transform function pointer */
+ int options; /* current context/options for transform */
+ float val; /* init value for some transformations (and rotation angle) */
+ float fac; /* factor for distance based transform */
+ int (*transform)(struct TransInfo *, short *);
+ /* transform function pointer */
int (*handleEvent)(struct TransInfo *, struct wmEvent *);
/* event handler function pointer RETURN 1 if redraw is needed */
- int total; /* total number of transformed data */
- TransData *data; /* transformed data (array) */
+ int total; /* total number of transformed data */
+ TransData *data; /* transformed data (array) */
TransDataExtension *ext; /* transformed data extension (array) */
TransData2D *data2d; /* transformed data for 2d (array) */
- TransCon con; /* transformed constraint */
- TransSnap tsnap;
- NumInput num; /* numerical input */
- NDofInput ndof; /* ndof input */
- MouseInput mouse; /* mouse input */
- char redraw; /* redraw flag */
+ TransCon con; /* transformed constraint */
+ TransSnap tsnap;
+ NumInput num; /* numerical input */
+ NDofInput ndof; /* ndof input */
+ MouseInput mouse; /* mouse input */
+ char redraw; /* redraw flag */
float prop_size; /* proportional circle radius */
char proptext[20]; /* proportional falloff text */
- float center[3]; /* center of transformation */
- int center2d[2]; /* center in screen coordinates */
- short imval[2]; /* initial mouse position */
+ float center[3]; /* center of transformation */
+ int center2d[2]; /* center in screen coordinates */
+ short imval[2]; /* initial mouse position */
short event_type; /* event->type used to invoke transform */
short idx_max; /* maximum index on the input vector */
float snap[3]; /* Snapping Gears */
@@ -327,12 +331,12 @@ typedef struct TransInfo {
struct Scene *scene;
struct ToolSettings *settings;
struct wmTimer *animtimer;
- short mval[2]; /* current mouse position */
- struct Object *obedit;
- void *draw_handle_apply;
- void *draw_handle_view;
- void *draw_handle_pixel;
- void *draw_handle_cursor;
+ short mval[2]; /* current mouse position */
+ struct Object *obedit;
+ void *draw_handle_apply;
+ void *draw_handle_view;
+ void *draw_handle_pixel;
+ void *draw_handle_cursor;
} TransInfo;
@@ -359,7 +363,7 @@ typedef struct TransInfo {
#define T_POSE (1 << 2)
#define T_TEXTURE (1 << 3)
#define T_CAMERA (1 << 4)
- // trans on points, having no rotation/scale
+ // trans on points, having no rotation/scale
#define T_POINTS (1 << 6)
// for manipulator exceptions, like scaling using center point, drawing help lines
#define T_USES_MANIPULATOR (1 << 7)
@@ -389,6 +393,11 @@ typedef struct TransInfo {
/* to specificy if we save back settings at the end */
#define T_MODAL (1 << 21)
+ /* no retopo */
+#define T_NO_PROJECT (1 << 22)
+
+#define T_RELEASE_CONFIRM (1 << 23)
+
/* TransInfo->modifiers */
#define MOD_CONSTRAINT_SELECT 0x01
#define MOD_PRECISION 0x02
@@ -432,6 +441,8 @@ typedef struct TransInfo {
#define TD_NOTIMESNAP (1 << 14) /* for Graph Editor autosnap, indicates that point should not undergo autosnapping */
#define TD_INTVALUES (1 << 15) /* for Graph Editor - curves that can only have int-values need their keyframes tagged with this */
#define TD_MIRROR_EDGE (1 << 16) /* For editmode mirror, clamp to x = 0 */
+#define TD_MOVEHANDLE1 (1 << 17) /* For fcurve handles, move them along with their keyframes */
+#define TD_MOVEHANDLE2 (1 << 18)
/* transsnap->status */
#define SNAP_FORCED 1
@@ -643,6 +654,7 @@ int handleMouseInput(struct TransInfo *t, struct MouseInput *mi, struct wmEvent
void applyMouseInput(struct TransInfo *t, struct MouseInput *mi, short mval[2], float output[3]);
void setCustomPoints(TransInfo *t, MouseInput *mi, short start[2], short end[2]);
+void setInputPostFct(MouseInput *mi, void (*post)(struct TransInfo *, float [3]));
/*********************** Generics ********************************/
diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index cf470426d72..9169d0a87bb 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -32,10 +32,6 @@
#include <string.h>
#include <math.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#ifndef WIN32
#include <unistd.h>
#else
@@ -44,19 +40,6 @@
#include "MEM_guardedalloc.h"
-#include "DNA_action_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_effect_types.h"
-#include "DNA_image_types.h"
-#include "DNA_ipo_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_lattice_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
@@ -79,7 +62,6 @@
//
//#include "mydevice.h"
-#include "WM_types.h"
#include "UI_resources.h"
@@ -542,6 +524,7 @@ void setLocalConstraint(TransInfo *t, int mode, const char text[]) {
if (t->flag & T_EDIT) {
float obmat[3][3];
copy_m3_m4(obmat, t->scene->obedit->obmat);
+ normalize_m3(obmat);
setConstraint(t, obmat, mode, text);
}
else {
@@ -638,7 +621,7 @@ void drawConstraint(const struct bContext *C, TransInfo *t)
float vec[3];
char col2[3] = {255,255,255};
convertViewVec(t, vec, (short)(t->mval[0] - t->con.imval[0]), (short)(t->mval[1] - t->con.imval[1]));
- add_v3_v3v3(vec, vec, tc->center);
+ add_v3_v3(vec, tc->center);
drawLine(t, tc->center, tc->mtx[0], 'x', 0);
drawLine(t, tc->center, tc->mtx[1], 'y', 0);
@@ -870,14 +853,14 @@ static void setNearestAxis3d(TransInfo *t)
mul_v3_fl(axis, zfac);
/* now we can project to get window coordinate */
- add_v3_v3v3(axis, axis, t->con.center);
+ add_v3_v3(axis, t->con.center);
projectIntView(t, axis, icoord);
axis[0] = (float)(icoord[0] - t->center2d[0]);
axis[1] = (float)(icoord[1] - t->center2d[1]);
axis[2] = 0.0f;
- if (normalize_v3(axis) != 0.0f) {
+ if (normalize_v3(axis) != 0.0f) {
project_v3_v3v3(proj, mvec, axis);
sub_v3_v3v3(axis, mvec, proj);
len[i] = normalize_v3(axis);
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index f47a2414a24..1e207bb5376 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -38,38 +38,17 @@
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_curve_types.h"
-#include "DNA_effect_types.h"
-#include "DNA_image_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
#include "DNA_lattice_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
#include "DNA_meta_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_nla_types.h"
#include "DNA_node_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
-#include "DNA_particle_types.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_sequence_types.h"
-#include "DNA_texture_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_world_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_property_types.h"
-#include "DNA_vfont_types.h"
#include "DNA_constraint_types.h"
-#include "DNA_listBase.h"
-#include "DNA_gpencil_types.h"
+#include "BKE_anim.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_blender.h"
@@ -101,21 +80,9 @@
#include "BKE_context.h"
#include "BKE_report.h"
#include "BKE_tessmesh.h"
+#include "BKE_scene.h"
-//#include "BIF_editview.h"
-//#include "BIF_editlattice.h"
-//#include "BIF_editconstraint.h"
-//#include "BIF_editmesh.h"
-//#include "BIF_editsima.h"
-//#include "BIF_editparticle.h"
#include "BIF_gl.h"
-//#include "BIF_poseobject.h"
-//#include "BIF_meshtools.h"
-//#include "BIF_mywindow.h"
-//#include "BIF_resources.h"
-//#include "BIF_screen.h"
-//#include "BIF_space.h"
-//#include "BIF_toolbox.h"
#include "ED_anim_api.h"
#include "ED_armature.h"
@@ -128,24 +95,15 @@
#include "ED_mesh.h"
#include "ED_types.h"
#include "ED_uvedit.h"
-#include "ED_view3d.h"
#include "UI_view2d.h"
-//#include "BSE_edit.h"
-//#include "BDR_editobject.h" // reset_slowparents()
-//#include "BDR_gpencil.h"
-
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_array.h"
-//#include "editmesh.h"
-//
-//#include "blendef.h"
-//
-//#include "mydevice.h"
+#include "RNA_access.h"
extern ListBase editelems;
@@ -291,7 +249,7 @@ static void set_prop_dist(TransInfo *t, short with_dist)
static void createTransTexspace(bContext *C, TransInfo *t)
{
- Scene *scene = CTX_data_scene(C);
+ Scene *scene = t->scene;
TransData *td;
Object *ob;
ID *id;
@@ -719,14 +677,14 @@ int count_set_pose_transflags(int *out_mode, short around, Object *ob)
int hastranslation = 0;
int total = 0;
- for(pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
+ for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
bone = pchan->bone;
- if(bone->layer & arm->layer) {
- if((bone->flag & BONE_SELECTED) && !(ob->proxy && pchan->bone->layer & arm->layer_protected))
+ if ((bone->layer & arm->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
+ if ((bone->flag & BONE_SELECTED) && !(ob->proxy && pchan->bone->layer & arm->layer_protected))
bone->flag |= BONE_TRANSFORM;
else
bone->flag &= ~BONE_TRANSFORM;
-
+
bone->flag &= ~BONE_HINGE_CHILD_TRANSFORM;
bone->flag &= ~BONE_TRANSFORM_CHILD;
}
@@ -1029,8 +987,8 @@ static void createTransPose(bContext *C, TransInfo *t, Object *ob)
t->poseobj= ob; /* we also allow non-active objects to be transformed, in weightpaint */
/* init trans data */
- td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransPoseBone");
- tdx = t->ext = MEM_callocN(t->total*sizeof(TransDataExtension), "TransPoseBoneExt");
+ td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransPoseBone");
+ tdx = t->ext = MEM_callocN(t->total*sizeof(TransDataExtension), "TransPoseBoneExt");
for(i=0; i<t->total; i++, td++, tdx++) {
td->ext= tdx;
td->val = NULL;
@@ -1075,7 +1033,7 @@ static void createTransArmatureVerts(bContext *C, TransInfo *t)
t->total = 0;
for (ebo = edbo->first; ebo; ebo = ebo->next)
{
- if(ebo->layer & arm->layer)
+ if (EBONE_VISIBLE(arm, ebo) && !(ebo->flag & BONE_EDITMODE_LOCKED))
{
if (t->mode==TFM_BONESIZE)
{
@@ -1097,18 +1055,19 @@ static void createTransArmatureVerts(bContext *C, TransInfo *t)
}
}
- if (!t->total) return;
+ if (!t->total) return;
copy_m3_m4(mtx, t->obedit->obmat);
invert_m3_m3(smtx, mtx);
- td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransEditBone");
+ td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransEditBone");
for (ebo = edbo->first; ebo; ebo = ebo->next)
{
ebo->oldlength = ebo->length; // length==0.0 on extrude, used for scaling radius of bone points
- if(ebo->layer & arm->layer) {
+ if (EBONE_VISIBLE(arm, ebo) && !(ebo->flag & BONE_EDITMODE_LOCKED))
+ {
if (t->mode==TFM_BONE_ENVELOPE)
{
if (ebo->flag & BONE_ROOTSEL)
@@ -1258,7 +1217,7 @@ static void createTransArmatureVerts(bContext *C, TransInfo *t)
static void createTransMBallVerts(bContext *C, TransInfo *t)
{
MetaBall *mb = (MetaBall*)t->obedit->data;
- MetaElem *ml;
+ MetaElem *ml;
TransData *td;
TransDataExtension *tx;
float mtx[3][3], smtx[3][3];
@@ -1388,7 +1347,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t)
Object *obedit= CTX_data_edit_object(C);
Curve *cu= obedit->data;
TransData *td = NULL;
- Nurb *nu;
+ Nurb *nu;
BezTriple *bezt;
BPoint *bp;
float mtx[3][3], smtx[3][3];
@@ -1436,7 +1395,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t)
copy_m3_m4(mtx, t->obedit->obmat);
invert_m3_m3(smtx, mtx);
- td = t->data;
+ td = t->data;
for(nu= cu->editnurb->first; nu; nu= nu->next) {
if(nu->type == CU_BEZIER) {
TransData *head, *tail;
@@ -1608,7 +1567,7 @@ static void createTransLatticeVerts(bContext *C, TransInfo *t)
bp++;
}
- /* note: in prop mode we need at least 1 selected */
+ /* note: in prop mode we need at least 1 selected */
if (countsel==0) return;
if(propmode) t->total = count;
@@ -1693,7 +1652,7 @@ static void createTransParticleVerts(bContext *C, TransInfo *t)
}
}
- /* note: in prop mode we need at least 1 selected */
+ /* note: in prop mode we need at least 1 selected */
if (hasselected==0) return;
t->total = count;
@@ -2238,7 +2197,7 @@ static void createTransEditVerts(bContext *C, TransInfo *t)
}
}
- /* note: in prop mode we need at least 1 selected */
+ /* note: in prop mode we need at least 1 selected */
if (countsel==0) return;
/* check active */
@@ -2560,7 +2519,7 @@ static void createTransUVs(bContext *C, TransInfo *t)
{
SpaceImage *sima = CTX_wm_space_image(C);
Image *ima = CTX_data_edit_image(C);
- Scene *scene = CTX_data_scene(C);
+ Scene *scene = t->scene;
TransData *td = NULL;
TransData2D *td2d = NULL;
MTexPoly *tf;
@@ -2593,7 +2552,7 @@ static void createTransUVs(bContext *C, TransInfo *t)
}
}
- /* note: in prop mode we need at least 1 selected */
+ /* note: in prop mode we need at least 1 selected */
if (countsel==0) return;
t->total= (propmode)? count: countsel;
@@ -2717,7 +2676,7 @@ static short FrameOnMouseSide(char side, float frame, float cframe)
static void createTransNlaData(bContext *C, TransInfo *t)
{
- Scene *scene= CTX_data_scene(C);
+ Scene *scene= t->scene;
TransData *td = NULL;
TransDataNla *tdn = NULL;
@@ -2727,7 +2686,6 @@ static void createTransNlaData(bContext *C, TransInfo *t)
int filter;
int count=0;
- char side;
/* determine what type of data we are operating on */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -2743,11 +2701,11 @@ static void createTransNlaData(bContext *C, TransInfo *t)
float xmouse, ymouse;
UI_view2d_region_to_view(&ac.ar->v2d, t->imval[0], t->imval[1], &xmouse, &ymouse);
- side = (xmouse > CFRA) ? 'R' : 'L'; // XXX use t->frame_side
+ t->frame_side= (xmouse > CFRA) ? 'R' : 'L';
}
else {
/* normal transform - both sides of current frame are considered */
- side = 'B';
+ t->frame_side = 'B';
}
/* loop 1: count how many strips are selected (consider each strip as 2 points) */
@@ -2764,8 +2722,8 @@ static void createTransNlaData(bContext *C, TransInfo *t)
/* transition strips can't get directly transformed */
if (strip->type != NLASTRIP_TYPE_TRANSITION) {
if (strip->flag & NLASTRIP_FLAG_SELECT) {
- if (FrameOnMouseSide(side, strip->start, (float)CFRA)) count++;
- if (FrameOnMouseSide(side, strip->end, (float)CFRA)) count++;
+ if (FrameOnMouseSide(t->frame_side, strip->start, (float)CFRA)) count++;
+ if (FrameOnMouseSide(t->frame_side, strip->end, (float)CFRA)) count++;
}
}
}
@@ -2828,13 +2786,13 @@ static void createTransNlaData(bContext *C, TransInfo *t)
center[2]= 0.0f;
/* set td's based on which handles are applicable */
- if (FrameOnMouseSide(side, strip->start, (float)CFRA))
+ if (FrameOnMouseSide(t->frame_side, strip->start, (float)CFRA))
{
/* just set tdn to assume that it only has one handle for now */
tdn->handle= -1;
/* now, link the transform data up to this data */
- if (t->mode == TFM_TRANSLATION) {
+ if (ELEM(t->mode, TFM_TRANSLATION, TFM_TIME_EXTEND)) {
td->loc= tdn->h1;
VECCOPY(td->iloc, tdn->h1);
@@ -2859,13 +2817,13 @@ static void createTransNlaData(bContext *C, TransInfo *t)
td->extra= tdn;
td++;
}
- if (FrameOnMouseSide(side, strip->end, (float)CFRA))
+ if (FrameOnMouseSide(t->frame_side, strip->end, (float)CFRA))
{
/* if tdn is already holding the start handle, then we're doing both, otherwise, only end */
tdn->handle= (tdn->handle) ? 2 : 1;
/* now, link the transform data up to this data */
- if (t->mode == TFM_TRANSLATION) {
+ if (ELEM(t->mode, TFM_TRANSLATION, TFM_TIME_EXTEND)) {
td->loc= tdn->h2;
VECCOPY(td->iloc, tdn->h2);
@@ -3038,7 +2996,7 @@ static void posttrans_fcurve_clean (FCurve *fcu)
* (if any keyframes were found, or the whole curve wasn't affected)
*/
if ((len) && (len != fcu->totvert)) {
- for (i = 0; i < fcu->totvert; i++) {
+ for (i= fcu->totvert-1; i >= 0; i--) {
BezTriple *bezt= &fcu->bezt[i];
if (BEZSELECTED(bezt) == 0) {
@@ -3048,7 +3006,7 @@ static void posttrans_fcurve_clean (FCurve *fcu)
delete_fcurve_key(fcu, i, 0);
break;
}
- else if (bezt->vec[1][0] > selcache[index])
+ else if (bezt->vec[1][0] < selcache[index])
break;
}
}
@@ -3114,9 +3072,8 @@ static int count_fcurve_keys(FCurve *fcu, char side, float cfra)
bezt->f1 |= SELECT;
bezt->f3 |= SELECT;
- /* increment by 3, as there are 3 points (3 * x-coordinates) that need transform */
if (FrameOnMouseSide(side, bezt->vec[1][0], cfra))
- count += 3;
+ count += 1;
}
}
@@ -3165,9 +3122,10 @@ static void TimeToTransData(TransData *td, float *time, AnimData *adt)
* The 'side' argument is needed for the extend mode. 'B' = both sides, 'R'/'L' mean only data
* on the named side are used.
*/
-static TransData *FCurveToTransData(TransData *td, FCurve *fcu, AnimData *adt, char side, float cfra)
+static TransData *ActionFCurveToTransData(TransData *td, TransData2D **td2dv, FCurve *fcu, AnimData *adt, char side, float cfra)
{
BezTriple *bezt;
+ TransData2D *td2d = *td2dv;
int i;
if (fcu == NULL)
@@ -3178,19 +3136,24 @@ static TransData *FCurveToTransData(TransData *td, FCurve *fcu, AnimData *adt, c
if (BEZSELECTED(bezt)) {
/* only add if on the right 'side' of the current frame */
if (FrameOnMouseSide(side, bezt->vec[1][0], cfra)) {
- /* each control point needs to be added separetely */
- TimeToTransData(td, bezt->vec[0], adt);
- td++;
-
TimeToTransData(td, bezt->vec[1], adt);
- td++;
- TimeToTransData(td, bezt->vec[2], adt);
+ /*set flags to move handles as necassary*/
+ td->flag |= TD_MOVEHANDLE1|TD_MOVEHANDLE2;
+ td2d->h1 = bezt->vec[0];
+ td2d->h2 = bezt->vec[2];
+
+ VECCOPY2D(td2d->ih1, td2d->h1);
+ VECCOPY2D(td2d->ih2, td2d->h2);
+
td++;
+ td2d++;
}
}
}
+ *td2dv = td2d;
+
return td;
}
@@ -3256,8 +3219,9 @@ static int GPLayerToTransData (TransData *td, tGPFtransdata *tfd, bGPDlayer *gpl
static void createTransActionData(bContext *C, TransInfo *t)
{
- Scene *scene= CTX_data_scene(C);
+ Scene *scene= t->scene;
TransData *td = NULL;
+ TransData2D *td2d = NULL;
tGPFtransdata *tfd = NULL;
bAnimContext ac;
@@ -3267,7 +3231,6 @@ static void createTransActionData(bContext *C, TransInfo *t)
int count=0;
float cfra;
- char side;
/* determine what type of data we are operating on */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -3286,11 +3249,11 @@ static void createTransActionData(bContext *C, TransInfo *t)
float xmouse, ymouse;
UI_view2d_region_to_view(&ac.ar->v2d, t->imval[0], t->imval[1], &xmouse, &ymouse);
- side = (xmouse > CFRA) ? 'R' : 'L'; // XXX use t->frame_side
+ t->frame_side = (xmouse > CFRA) ? 'R' : 'L'; // XXX use t->frame_side
}
else {
/* normal transform - both sides of current frame are considered */
- side = 'B';
+ t->frame_side = 'B';
}
/* loop 1: fully select ipo-keys and count how many BezTriples are selected */
@@ -3306,9 +3269,9 @@ static void createTransActionData(bContext *C, TransInfo *t)
cfra = (float)CFRA;
//if (ale->type == ANIMTYPE_GPLAYER)
- // count += count_gplayer_frames(ale->data, side, cfra);
+ // count += count_gplayer_frames(ale->data, t->frame_side, cfra);
//else
- count += count_fcurve_keys(ale->key_data, side, cfra);
+ count += count_fcurve_keys(ale->key_data, t->frame_side, cfra);
}
/* stop if trying to build list if nothing selected */
@@ -3322,7 +3285,9 @@ static void createTransActionData(bContext *C, TransInfo *t)
t->total= count;
t->data= MEM_callocN(t->total*sizeof(TransData), "TransData(Action Editor)");
+ t->data2d= MEM_callocN(t->total*sizeof(TransData2D), "transdata2d");
td= t->data;
+ td2d = t->data2d;
if (ac.datatype == ANIMCONT_GPENCIL) {
if (t->mode == TFM_TIME_SLIDE) {
@@ -3343,7 +3308,7 @@ static void createTransActionData(bContext *C, TransInfo *t)
// bGPDlayer *gpl= (bGPDlayer *)ale->data;
// int i;
//
- // i = GPLayerToTransData(td, tfd, gpl, side, cfra);
+ // i = GPLayerToTransData(td, tfd, gpl, t->frame_side, cfra);
// td += i;
// tfd += i;
//}
@@ -3359,7 +3324,7 @@ static void createTransActionData(bContext *C, TransInfo *t)
else
cfra = (float)CFRA;
- td= FCurveToTransData(td, fcu, adt, side, cfra);
+ td= ActionFCurveToTransData(td, &td2d, fcu, adt, t->frame_side, cfra);
//}
}
@@ -3391,8 +3356,13 @@ static void createTransActionData(bContext *C, TransInfo *t)
/* Helper function for createTransGraphEditData, which is reponsible for associating
* source data with transform data
*/
-static void bezt_to_transdata (TransData *td, TransData2D *td2d, AnimData *adt, float *loc, float *cent, short selected, short ishandle, short intvals)
+static void bezt_to_transdata (TransData *td, TransData2D *td2d, AnimData *adt, BezTriple *bezt,
+ int bi, short selected, short ishandle, short intvals,
+ float mtx[3][3], float smtx[3][3])
{
+ float *loc = bezt->vec[bi];
+ float *cent = bezt->vec[1];
+
/* New location from td gets dumped onto the old-location of td2d, which then
* gets copied to the actual data at td2d->loc2d (bezt->vec[n])
*
@@ -3423,7 +3393,21 @@ static void bezt_to_transdata (TransData *td, TransData2D *td2d, AnimData *adt,
VECCOPY(td->center, cent);
VECCOPY(td->iloc, td->loc);
}
-
+
+ if (td->flag & TD_MOVEHANDLE1) {
+ td2d->h1 = bezt->vec[0];
+ VECCOPY2D(td2d->ih1, td2d->h1);
+ }
+ else
+ td2d->h1 = NULL;
+
+ if (td->flag & TD_MOVEHANDLE2) {
+ td2d->h2 = bezt->vec[2];
+ VECCOPY2D(td2d->ih2, td2d->h2);
+ }
+ else
+ td2d->h2 = NULL;
+
memset(td->axismtx, 0, sizeof(td->axismtx));
td->axismtx[2][2] = 1.0f;
@@ -3443,16 +3427,17 @@ static void bezt_to_transdata (TransData *td, TransData2D *td2d, AnimData *adt,
td->flag |= TD_NOTIMESNAP;
if (intvals)
td->flag |= TD_INTVALUES;
-
- unit_m3(td->mtx);
- unit_m3(td->smtx);
+
+ /* copy space-conversion matrices for dealing with non-uniform scales */
+ copy_m3_m3(td->mtx, mtx);
+ copy_m3_m3(td->smtx, smtx);
}
static void createTransGraphEditData(bContext *C, TransInfo *t)
{
SpaceIpo *sipo= CTX_wm_space_graph(C);
- Scene *scene= CTX_data_scene(C);
- ARegion *ar= CTX_wm_region(C);
+ Scene *scene= t->scene;
+ ARegion *ar= t->ar;
View2D *v2d= &ar->v2d;
TransData *td = NULL;
@@ -3466,7 +3451,7 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
BezTriple *bezt;
int count=0, i;
float cfra;
- char side;
+ float mtx[3][3], smtx[3][3];
/* determine what type of data we are operating on */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -3483,11 +3468,11 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
float xmouse, ymouse;
UI_view2d_region_to_view(v2d, t->imval[0], t->imval[1], &xmouse, &ymouse);
- side = (xmouse > CFRA) ? 'R' : 'L'; // XXX use t->frame_side
+ t->frame_side = (xmouse > CFRA) ? 'R' : 'L'; // XXX use t->frame_side
}
else {
/* normal transform - both sides of current frame are considered */
- side = 'B';
+ t->frame_side = 'B';
}
/* loop 1: count how many BezTriples (specifically their verts) are selected (or should be edited) */
@@ -3509,8 +3494,8 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
/* only include BezTriples whose 'keyframe' occurs on the same side of the current frame as mouse */
for (i=0, bezt=fcu->bezt; i < fcu->totvert; i++, bezt++) {
- if (FrameOnMouseSide(side, bezt->vec[1][0], cfra)) {
- if (sipo->around == V3D_LOCAL) {
+ if (FrameOnMouseSide(t->frame_side, bezt->vec[1][0], cfra)) {
+ if (sipo->around == V3D_LOCAL && !ELEM(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE)) {
/* for local-pivot we only need to count the number of selected handles only, so that centerpoints don't
* don't get moved wrong
*/
@@ -3520,6 +3505,15 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
}
else if (bezt->f2 & SELECT) count++; // TODO: could this cause problems?
}
+ else if (ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE)) {
+ /* for 'normal' pivots - just include anything that is selected.
+ this works a bit differently in translation modes */
+ if (bezt->f2 & SELECT) count++;
+ else {
+ if (bezt->f1 & SELECT) count++;
+ if (bezt->f3 & SELECT) count++;
+ }
+ }
else {
/* for 'normal' pivots - just include anything that is selected */
if (bezt->f1 & SELECT) count++;
@@ -3547,12 +3541,31 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
td= t->data;
td2d= t->data2d;
+ /* precompute space-conversion matrices for dealing with non-uniform scaling of Graph Editor */
+ unit_m3(mtx);
+ unit_m3(smtx);
+
+ if (ELEM(t->mode, TFM_ROTATION, TFM_RESIZE)) {
+ float xscale, yscale;
+
+ /* apply scale factors to x and y axes of space-conversion matrices */
+ UI_view2d_getscale(v2d, &xscale, &yscale);
+
+ /* mtx is data to global (i.e. view) conversion */
+ mul_v3_fl(mtx[0], xscale);
+ mul_v3_fl(mtx[1], yscale);
+
+ /* smtx is global (i.e. view) to data conversion */
+ if (IS_EQ(xscale, 0.0f) == 0) mul_v3_fl(smtx[0], 1.0f/xscale);
+ if (IS_EQ(yscale, 0.0f) == 0) mul_v3_fl(smtx[1], 1.0f/yscale);
+ }
+
/* loop 2: build transdata arrays */
for (ale= anim_data.first; ale; ale= ale->next) {
AnimData *adt= ANIM_nla_mapping_get(&ac, ale);
FCurve *fcu= (FCurve *)ale->key_data;
short intvals= (fcu->flag & FCURVE_INT_VALUES);
-
+
/* convert current-frame to action-time (slightly less accurate, espcially under
* higher scaling ratios, but is faster than converting all points)
*/
@@ -3569,27 +3582,38 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
/* only include BezTriples whose 'keyframe' occurs on the same side of the current frame as mouse (if applicable) */
for (i=0, bezt= fcu->bezt; i < fcu->totvert; i++, bezt++) {
- if (FrameOnMouseSide(side, bezt->vec[1][0], cfra)) {
+ if (FrameOnMouseSide(t->frame_side, bezt->vec[1][0], cfra)) {
TransDataCurveHandleFlags *hdata = NULL;
short h1=1, h2=1;
- /* only include handles if selected, irrespective of the interpolation modes */
- if (bezt->f1 & SELECT) {
- hdata = initTransDataCurveHandles(td, bezt);
- bezt_to_transdata(td++, td2d++, adt, bezt->vec[0], bezt->vec[1], 1, 1, intvals);
- }
- else
- h1= 0;
- if (bezt->f3 & SELECT) {
- if (hdata==NULL)
+ /* only include handles if selected, irrespective of the interpolation modes.
+ * also, only treat handles specially if the center point isn't selected.
+ */
+ if (!ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE) || !(bezt->f2 & SELECT)) {
+ if (bezt->f1 & SELECT) {
hdata = initTransDataCurveHandles(td, bezt);
- bezt_to_transdata(td++, td2d++, adt, bezt->vec[2], bezt->vec[1], 1, 1, intvals);
+ bezt_to_transdata(td++, td2d++, adt, bezt, 0, 1, 1, intvals, mtx, smtx);
+ }
+ else
+ h1= 0;
+
+ if (bezt->f3 & SELECT) {
+ if (hdata==NULL)
+ hdata = initTransDataCurveHandles(td, bezt);
+ bezt_to_transdata(td++, td2d++, adt, bezt, 2, 1, 1, intvals, mtx, smtx);
+ }
+ else
+ h2= 0;
}
- else
- h2= 0;
/* only include main vert if selected */
if (bezt->f2 & SELECT) {
+ /* move handles relative to center */
+ if (ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE)) {
+ if (bezt->f1 & SELECT) td->flag |= TD_MOVEHANDLE1;
+ if (bezt->f3 & SELECT) td->flag |= TD_MOVEHANDLE2;
+ }
+
/* if scaling around individuals centers, do not include keyframes */
if (sipo->around != V3D_LOCAL) {
/* if handles were not selected, store their selection status */
@@ -3598,7 +3622,7 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
hdata = initTransDataCurveHandles(td, bezt);
}
- bezt_to_transdata(td++, td2d++, adt, bezt->vec[1], bezt->vec[1], 1, 0, intvals);
+ bezt_to_transdata(td++, td2d++, adt, bezt, 1, 1, 0, intvals, mtx, smtx);
}
/* special hack (must be done after initTransDataCurveHandles(), as that stores handle settings to restore...):
@@ -3724,7 +3748,7 @@ static void beztmap_to_data (TransInfo *t, FCurve *fcu, BeztMap *bezms, int totv
/* dynamically allocate an array of chars to mark whether an TransData's
* pointers have been fixed already, so that we don't override ones that are
* already done
- */
+ */
adjusted= MEM_callocN(t->total, "beztmap_adjusted_map");
/* for each beztmap item, find if it is used anywhere */
@@ -3844,7 +3868,7 @@ void flushTransGraphData(TransInfo *t)
break;
}
}
-
+
/* we need to unapply the nla-mapping from the time in some situations */
if (adt)
td2d->loc2d[0]= BKE_nla_tweakedit_remap(adt, td2d->loc[0], NLATIME_CONVERT_UNMAP);
@@ -3856,6 +3880,16 @@ void flushTransGraphData(TransInfo *t)
td2d->loc2d[1]= (float)((int)td2d->loc[1]);
else
td2d->loc2d[1]= td2d->loc[1];
+
+ if ((td->flag & TD_MOVEHANDLE1) && td2d->h1) {
+ td2d->h1[0] = td2d->ih1[0] + td->loc[0] - td->iloc[0];
+ td2d->h1[1] = td2d->ih1[1] + td->loc[1] - td->iloc[1];
+ }
+
+ if ((td->flag & TD_MOVEHANDLE2) && td2d->h2) {
+ td2d->h2[0] = td2d->ih2[0] + td->loc[0] - td->iloc[0];
+ td2d->h2[1] = td2d->ih2[1] + td->loc[1] - td->iloc[1];
+ }
}
}
@@ -3969,6 +4003,8 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count
}
} else {
+ t->frame_side= 'B';
+
/* *** Normal Transform *** */
if (seq->depth == 0) {
@@ -4247,7 +4283,7 @@ static void createTransSeqData(bContext *C, TransInfo *t)
{
View2D *v2d= UI_view2d_fromcontext(C);
- Scene *scene= CTX_data_scene(C);
+ Scene *scene= t->scene;
Editing *ed= seq_give_editing(t->scene, FALSE);
TransData *td = NULL;
TransData2D *td2d= NULL;
@@ -4300,8 +4336,7 @@ static void createTransSeqData(bContext *C, TransInfo *t)
/* transcribe given object into TransData for Transforming */
static void ObjectToTransData(bContext *C, TransInfo *t, TransData *td, Object *ob)
{
- Scene *scene = CTX_data_scene(C);
- Object *track;
+ Scene *scene = t->scene;
float obmtx[3][3];
short constinv;
short skip_invert = 0;
@@ -4323,10 +4358,7 @@ static void ObjectToTransData(bContext *C, TransInfo *t, TransData *td, Object *
if (t->mode == TFM_DUMMY)
skip_invert = 1;
- if (skip_invert == 0 && (ob->track || constinv==0)) {
- track= ob->track;
- ob->track= NULL;
-
+ if (skip_invert == 0 && constinv == 0) {
if (constinv == 0)
ob->transflag |= OB_NO_CONSTRAINTS; /* where_is_object_time checks this */
@@ -4334,8 +4366,6 @@ static void ObjectToTransData(bContext *C, TransInfo *t, TransData *td, Object *
if (constinv == 0)
ob->transflag &= ~OB_NO_CONSTRAINTS;
-
- ob->track= track;
}
else
where_is_object(t->scene, ob);
@@ -4569,7 +4599,7 @@ static void clear_trans_object_base_flags(TransInfo *t)
if(base->flag & BA_WAS_SEL)
base->flag |= SELECT;
- base->flag &= ~(BA_WAS_SEL|BA_HAS_RECALC_OB|BA_HAS_RECALC_DATA|BA_DO_IPO|BA_TRANSFORM_CHILD|BA_TRANSFORM_PARENT);
+ base->flag &= ~(BA_WAS_SEL|BA_HAS_RECALC_OB|BA_HAS_RECALC_DATA|BA_TEMP_TAG|BA_TRANSFORM_CHILD|BA_TRANSFORM_PARENT);
}
}
@@ -4585,20 +4615,21 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob,
// TODO: this should probably be done per channel instead...
if (autokeyframe_cfra_can_key(scene, id)) {
KeyingSet *active_ks = ANIM_scene_get_active_keyingset(scene);
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
+ ListBase dsources = {NULL, NULL};
float cfra= (float)CFRA; // xxx this will do for now
short flag = 0;
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
-
+ /* get flags used for inserting keyframes */
flag = ANIM_get_keyframing_flags(scene, 1);
+ /* add datasource override for the camera object */
+ ANIM_relative_keyingset_add_source(&dsources, id, NULL, NULL);
+
if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (active_ks)) {
- /* only insert into active keyingset */
- modify_keyframes(scene, &dsources, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
+ /* only insert into active keyingset
+ * NOTE: we assume here that the active Keying Set does not need to have its iterator overridden spe
+ */
+ ANIM_apply_keyingset(C, &dsources, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
}
else if (IS_AUTOKEY_FLAG(INSERTAVAIL)) {
AnimData *adt= ob->adt;
@@ -4644,22 +4675,25 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob,
/* insert keyframes for the affected sets of channels using the builtin KeyingSets found */
if (doLoc) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
if (doRot) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
if (doScale) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Scale");
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
}
/* insert keyframe in all (transform) channels */
else {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
+
+ /* free temp info */
+ BLI_freelistN(&dsources);
}
}
@@ -4680,15 +4714,9 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
// TODO: this should probably be done per channel instead...
if (autokeyframe_cfra_can_key(scene, id)) {
KeyingSet *active_ks = ANIM_scene_get_active_keyingset(scene);
- bCommonKeySrc cks;
- ListBase dsources = {&cks, &cks};
float cfra= (float)CFRA;
short flag= 0;
- /* init common-key-source for use by KeyingSets */
- memset(&cks, 0, sizeof(bCommonKeySrc));
- cks.id= &ob->id;
-
/* flag is initialised from UserPref keyframing settings
* - special exception for targetless IK - INSERTKEY_MATRIX keyframes should get
* visual keyframes even if flag not set, as it's not that useful otherwise
@@ -4701,14 +4729,18 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
for (pchan=pose->chanbase.first; pchan; pchan=pchan->next) {
if (pchan->bone->flag & BONE_TRANSFORM) {
+ ListBase dsources = {NULL, NULL};
+
/* clear any 'unkeyed' flag it may have */
pchan->bone->flag &= ~BONE_UNKEYED;
+ /* add datasource override for the camera object */
+ ANIM_relative_keyingset_add_source(&dsources, id, &RNA_PoseBone, pchan);
+
/* only insert into active keyingset? */
if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (active_ks)) {
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- modify_keyframes(scene, &dsources, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
+ /* run the active Keying Set on the current datasource */
+ ANIM_apply_keyingset(C, &dsources, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
}
/* only insert into available channels? */
else if (IS_AUTOKEY_FLAG(INSERTAVAIL)) {
@@ -4757,41 +4789,34 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
if (doLoc) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
-
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
if (doRot) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
-
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
if (doScale) {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Scale");
-
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
}
/* insert keyframe in all (transform) channels */
else {
KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
-
- /* init cks for this PoseChannel, then use the relative KeyingSets to keyframe it */
- cks.pchan= pchan;
- modify_keyframes(scene, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cfra);
}
+
+ /* free temp info */
+ BLI_freelistN(&dsources);
}
}
/* do the bone paths
- * NOTE: only do this when there is context info
+ * - only do this when there is context info, since we need that to resolve
+ * how to do the updates and so on...
+ * - do not calculate unless there are paths already to update...
*/
- if (C && (ob->pose->avs.path_type == MOTIONPATH_TYPE_ACFRA)) {
+ if (C && (ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS)) {
//ED_pose_clear_paths(C, ob); // XXX for now, don't need to clear
ED_pose_recalculate_paths(C, scene, ob);
}
@@ -4835,6 +4860,24 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
if (t->spacetype == SPACE_SEQ) {
/* freeSeqData in transform_conversions.c does this
* keep here so the else at the end wont run... */
+
+ SpaceSeq *sseq= (SpaceSeq *)t->sa->spacedata.first;
+
+ /* marker transform, not especially nice but we may want to move markers
+ * at the same time as keyframes in the dope sheet. */
+ if ((sseq->flag & SEQ_MARKER_TRANS) && (cancelled == 0)) {
+ /* cant use , TFM_TIME_EXTEND
+ * for some reason EXTEND is changed into TRANSLATE, so use frame_side instead */
+
+ if(t->mode == TFM_SEQ_SLIDE) {
+ if(t->frame_side == 'B')
+ scene_marker_tfm_translate(t->scene, floor(t->values[0] + 0.5f), SELECT);
+ }
+ else if (ELEM(t->frame_side, 'L', 'R')) {
+ scene_marker_tfm_extend(t->scene, floor(t->vec[0] + 0.5f), SELECT, t->scene->r.cfra, t->frame_side);
+ }
+ }
+
}
else if (t->spacetype == SPACE_NODE) {
/* pass */
@@ -4863,7 +4906,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
FCurve *fcu= (FCurve *)ale->key_data;
if ( (saction->flag & SACTION_NOTRANSKEYCULL)==0 &&
- ((cancelled == 0) || (duplicate)) )
+ ((cancelled == 0) || (duplicate)) )
{
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, fcu, 0, 1);
@@ -4883,18 +4926,33 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
// fixme... some of this stuff is not good
if (ob) {
if (ob->pose || ob_get_key(ob))
- DAG_id_flush_update(&ob->id, OB_RECALC);
+ DAG_id_flush_update(&ob->id, OB_RECALC_ALL);
else
DAG_id_flush_update(&ob->id, OB_RECALC_OB);
}
/* Do curve cleanups? */
if ( (saction->flag & SACTION_NOTRANSKEYCULL)==0 &&
- ((cancelled == 0) || (duplicate)) )
+ ((cancelled == 0) || (duplicate)) )
{
posttrans_action_clean(&ac, (bAction *)ac.data);
}
}
+
+ /* marker transform, not especially nice but we may want to move markers
+ * at the same time as keyframes in the dope sheet. */
+ if ((saction->flag & SACTION_MARKERS_MOVE) && (cancelled == 0)) {
+ /* cant use , TFM_TIME_EXTEND
+ * for some reason EXTEND is changed into TRANSLATE, so use frame_side instead */
+
+ if(t->mode == TFM_TIME_TRANSLATE) {
+ if(t->frame_side == 'B')
+ scene_marker_tfm_translate(t->scene, floor(t->vec[0] + 0.5f), SELECT);
+ else if (ELEM(t->frame_side, 'L', 'R'))
+ scene_marker_tfm_extend(t->scene, floor(t->vec[0] + 0.5f), SELECT, t->scene->r.cfra, t->frame_side);
+ }
+ }
+
#if 0 // XXX future of this is still not clear
else if (ac.datatype == ANIMCONT_GPENCIL) {
/* remove duplicate frames and also make sure points are in order! */
@@ -4944,7 +5002,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
FCurve *fcu= (FCurve *)ale->key_data;
if ( (sipo->flag & SIPO_NOTRANSKEYCULL)==0 &&
- ((cancelled == 0) || (duplicate)) )
+ ((cancelled == 0) || (duplicate)) )
{
if (adt) {
ANIM_nla_mapping_apply_fcurve(adt, fcu, 0, 1);
@@ -5060,13 +5118,13 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
if (td->flag & TD_SKIP)
continue;
- /* flag object caches as outdated */
- BKE_ptcache_ids_from_object(&pidlist, ob);
- for(pid=pidlist.first; pid; pid=pid->next) {
- if(pid->type != PTCACHE_TYPE_PARTICLES) /* particles don't need reset on geometry change */
- pid->cache->flag |= PTCACHE_OUTDATED;
- }
- BLI_freelistN(&pidlist);
+ /* flag object caches as outdated */
+ BKE_ptcache_ids_from_object(&pidlist, ob, t->scene, MAX_DUPLI_RECUR);
+ for(pid=pidlist.first; pid; pid=pid->next) {
+ if(pid->type != PTCACHE_TYPE_PARTICLES) /* particles don't need reset on geometry change */
+ pid->cache->flag |= PTCACHE_OUTDATED;
+ }
+ BLI_freelistN(&pidlist);
/* pointcache refresh */
if (BKE_ptcache_object_reset(t->scene, ob, PTCACHE_RESET_OUTDATED))
@@ -5082,7 +5140,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
if (!cancelled) {
autokeyframe_ob_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode);
- if (ob->avs.path_type == MOTIONPATH_TYPE_ACFRA)
+ /* only calculate paths if there are paths to be recalculated */
+ if (ob->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS)
recalcObPaths= 1;
}
}
@@ -5239,7 +5298,7 @@ void createTransNodeData(bContext *C, TransInfo *t)
void createTransData(bContext *C, TransInfo *t)
{
- Scene *scene = CTX_data_scene(C);
+ Scene *scene = t->scene;
Object *ob = OBACT;
if (t->options & CTX_TEXTURE) {
@@ -5306,7 +5365,7 @@ void createTransData(bContext *C, TransInfo *t)
t->ext = NULL;
if (t->obedit->type == OB_MESH) {
createTransEditVerts(C, t);
- }
+ }
else if ELEM(t->obedit->type, OB_CURVE, OB_SURF) {
createTransCurveVerts(C, t);
}
@@ -5319,7 +5378,7 @@ void createTransData(bContext *C, TransInfo *t)
else if (t->obedit->type==OB_ARMATURE) {
t->flag &= ~T_PROP_EDIT;
createTransArmatureVerts(C, t);
- }
+ }
else {
printf("edit type not implemented!\n");
}
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 72c17df1309..1783cc58bee 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -35,24 +35,11 @@
#include "BLO_sys_types.h" // for intptr_t support
#include "DNA_anim_types.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_curve_types.h"
#include "DNA_lattice_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_nla_types.h"
-#include "DNA_node_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
-#include "DNA_particle_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_view3d_types.h"
-#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
@@ -106,7 +93,6 @@
#include "BLI_editVert.h"
#include "BLI_rand.h"
-#include "RNA_access.h"
#include "WM_types.h"
#include "WM_api.h"
@@ -204,8 +190,8 @@ static void clipMirrorModifier(TransInfo *t, Object *ob)
copy_v3_v3(iloc, td->iloc);
if (mmd->mirror_ob) {
- mul_v3_m4v3(loc, mtx, loc);
- mul_v3_m4v3(iloc, mtx, iloc);
+ mul_m4_v3(mtx, loc);
+ mul_m4_v3(mtx, iloc);
}
clip = 0;
@@ -233,7 +219,7 @@ static void clipMirrorModifier(TransInfo *t, Object *ob)
}
if (clip) {
if (mmd->mirror_ob) {
- mul_v3_m4v3(loc, imtx, loc);
+ mul_m4_v3(imtx, loc);
}
copy_v3_v3(td->loc, loc);
}
@@ -327,7 +313,7 @@ static int fcu_test_selected(FCurve *fcu)
BezTriple *bezt= fcu->bezt;
int i;
- if(bezt==NULL) /* ignore baked */
+ if (bezt==NULL) /* ignore baked */
return 0;
for (i=0; i < fcu->totvert; i++, bezt++) {
@@ -423,11 +409,11 @@ void recalcData(TransInfo *t)
/* now test if there is a need to re-sort */
for (ale= anim_data.first; ale; ale= ale->next) {
FCurve *fcu= (FCurve *)ale->key_data;
-
+
/* ignore unselected fcurves */
- if(!fcu_test_selected(fcu))
+ if (!fcu_test_selected(fcu))
continue;
-
+
// fixme: only do this for selected verts...
ANIM_unit_mapping_apply_fcurve(ac.scene, ale->id, ale->key_data, ANIM_UNITCONV_ONLYSEL|ANIM_UNITCONV_SELVERTS|ANIM_UNITCONV_RESTORE);
@@ -443,7 +429,6 @@ void recalcData(TransInfo *t)
*/
if ((sipo->flag & SIPO_NOREALTIMEUPDATES) == 0)
ANIM_list_elem_update(t->scene, ale);
-
}
/* do resort and other updates? */
@@ -574,8 +559,8 @@ void recalcData(TransInfo *t)
// TODO: do we need to write in 2 passes to make sure that no truncation goes on?
RNA_pointer_create(NULL, &RNA_NlaStrip, strip, &strip_ptr);
- RNA_float_set(&strip_ptr, "start_frame", tdn->h1[0]);
- RNA_float_set(&strip_ptr, "end_frame", tdn->h2[0]);
+ RNA_float_set(&strip_ptr, "frame_start", tdn->h1[0]);
+ RNA_float_set(&strip_ptr, "frame_end", tdn->h2[0]);
/* flush transforms to child strips (since this should be a meta) */
BKE_nlameta_flush_transforms(strip);
@@ -653,7 +638,11 @@ void recalcData(TransInfo *t)
if ELEM(t->obedit->type, OB_CURVE, OB_SURF) {
Curve *cu= t->obedit->data;
Nurb *nu= cu->editnurb->first;
-
+
+ if(t->state != TRANS_CANCEL) {
+ clipMirrorModifier(t, t->obedit);
+ }
+
DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA); /* sets recalc flags */
if (t->state == TRANS_CANCEL) {
@@ -823,7 +812,7 @@ void recalcData(TransInfo *t)
/* sets recalc flags fully, instead of flushing existing ones
* otherwise proxies don't function correctly
*/
- DAG_id_flush_update(&ob->id, OB_RECALC);
+ DAG_id_flush_update(&ob->id, OB_RECALC_OB);
}
}
@@ -973,7 +962,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
{
t->current_orientation = RNA_enum_get(op->ptr, "constraint_orientation");
- if (t->current_orientation >= V3D_MANIP_CUSTOM + BIF_countTransformOrientation(C) - 1)
+ if (t->current_orientation >= V3D_MANIP_CUSTOM + BIF_countTransformOrientation(C))
{
t->current_orientation = V3D_MANIP_GLOBAL;
}
@@ -1005,6 +994,21 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
t->around = V3D_CENTER;
}
+ if (op && RNA_property_is_set(op->ptr, "release_confirm"))
+ {
+ if (RNA_boolean_get(op->ptr, "release_confirm"))
+ {
+ t->flag |= T_RELEASE_CONFIRM;
+ }
+ }
+ else
+ {
+ if (U.flag & USER_RELEASECONFIRM)
+ {
+ t->flag |= T_RELEASE_CONFIRM;
+ }
+ }
+
if (op && RNA_struct_find_property(op->ptr, "mirror") && RNA_property_is_set(op->ptr, "mirror"))
{
if (RNA_boolean_get(op->ptr, "mirror"))
@@ -1115,7 +1119,7 @@ void postTrans (bContext *C, TransInfo *t)
if (t->data) {
int a;
- /* since ipokeys are optional on objects, we mallocced them per trans-data */
+ /* free data malloced per trans-data */
for(a=0, td= t->data; a<t->total; a++, td++) {
if (td->flag & TD_BEZTRIPLE)
MEM_freeN(td->hdata);
@@ -1174,6 +1178,7 @@ static void restoreElement(TransData *td) {
if (td->val) {
*td->val = td->ival;
}
+
if (td->ext && (td->flag&TD_NO_EXT)==0) {
if (td->ext->rot) {
VECCOPY(td->ext->rot, td->ext->irot);
@@ -1195,11 +1200,23 @@ static void restoreElement(TransData *td) {
void restoreTransObjects(TransInfo *t)
{
TransData *td;
+ TransData2D *td2d;
for (td = t->data; td < t->data + t->total; td++) {
restoreElement(td);
}
+ for (td2d=t->data2d; t->data2d && td2d < t->data2d + t->total; td2d++) {
+ if (td2d->h1) {
+ td2d->h1[0] = td2d->ih1[0];
+ td2d->h1[1] = td2d->ih1[1];
+ }
+ if (td2d->h2) {
+ td2d->h2[0] = td2d->ih2[0];
+ td2d->h2[1] = td2d->ih2[1];
+ }
+ }
+
unit_m3(t->mat);
recalcData(t);
@@ -1243,15 +1260,19 @@ void calculateCenterCursor(TransInfo *t)
void calculateCenterCursor2D(TransInfo *t)
{
- View2D *v2d= t->view;
float aspx=1.0, aspy=1.0;
+ float *cursor= NULL;
+
+ if(t->spacetype==SPACE_IMAGE) {
+ SpaceImage *sima= (SpaceImage *)t->sa->spacedata.first;
+ /* only space supported right now but may change */
+ ED_space_image_uv_aspect(sima, &aspx, &aspy);
+ cursor = sima->cursor;
+ }
- if(t->spacetype==SPACE_IMAGE) /* only space supported right now but may change */
- ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
-
- if (v2d) {
- t->center[0] = v2d->cursor[0] * aspx;
- t->center[1] = v2d->cursor[1] * aspy;
+ if (cursor) {
+ t->center[0] = cursor[0] * aspx;
+ t->center[1] = cursor[1] * aspy;
}
calculateCenter2D(t);
@@ -1279,7 +1300,7 @@ void calculateCenterMedian(TransInfo *t)
if (t->data[i].flag & TD_SELECTED) {
if (!(t->data[i].flag & TD_NOCENTER))
{
- add_v3_v3v3(partial, partial, t->data[i].center);
+ add_v3_v3(partial, t->data[i].center);
total++;
}
}
diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c
index 0e4521052ad..d7ebd28f604 100644
--- a/source/blender/editors/transform/transform_input.c
+++ b/source/blender/editors/transform/transform_input.c
@@ -26,7 +26,6 @@
#include <math.h>
#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
@@ -225,6 +224,8 @@ void InputAngle(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
double dx3 = mval[0] - mi->imval[0];
double dy3 = mval[1] - mi->imval[1];
+ double *angle = mi->data;
+
/* use doubles here, to make sure a "1.0" (no rotation) doesnt become 9.999999e-01, which gives 0.02 for acos */
double deler = ((dx1*dx1+dy1*dy1)+(dx2*dx2+dy2*dy2)-(dx3*dx3+dy3*dy3))
/ (2.0 * (A*B?A*B:1.0));
@@ -266,7 +267,9 @@ void InputAngle(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
mi->imval[1] = mval[1];
}
- output[0] += dphi;
+ *angle += dphi;
+
+ output[0] = *angle;
}
void initMouseInput(TransInfo *t, MouseInput *mi, int center[2], short mval[2])
@@ -279,6 +282,8 @@ void initMouseInput(TransInfo *t, MouseInput *mi, int center[2], short mval[2])
mi->imval[0] = mval[0];
mi->imval[1] = mval[1];
+
+ mi->post = NULL;
}
static void calcSpringFactor(MouseInput *mi)
@@ -314,6 +319,7 @@ void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode)
t->helpline = HLP_SPRING;
break;
case INPUT_ANGLE:
+ mi->data = MEM_callocN(sizeof(double), "angle accumulator");
mi->apply = InputAngle;
t->helpline = HLP_ANGLE;
break;
@@ -354,12 +360,22 @@ void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode)
applyMouseInput(t, mi, mi->imval, t->values);
}
+void setInputPostFct(MouseInput *mi, void (*post)(struct TransInfo *, float [3]))
+{
+ mi->post = post;
+}
+
void applyMouseInput(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
{
if (mi->apply != NULL)
{
mi->apply(t, mi, mval, output);
}
+
+ if (mi->post)
+ {
+ mi->post(t, output);
+ }
}
int handleMouseInput(TransInfo *t, MouseInput *mi, wmEvent *event)
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 200373a9589..fe63ec0e15b 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -1,5 +1,5 @@
/**
-* $Id:
+* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -41,17 +41,11 @@
#include "MEM_guardedalloc.h"
#include "DNA_armature_types.h"
-#include "DNA_action_types.h"
#include "DNA_curve_types.h"
#include "DNA_lattice_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
-#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_view3d_types.h"
#include "RNA_access.h"
@@ -79,8 +73,6 @@
#include "ED_armature.h"
#include "ED_mesh.h"
#include "ED_particle.h"
-#include "ED_space_api.h"
-#include "ED_transform.h"
#include "ED_view3d.h"
#include "UI_resources.h"
@@ -131,7 +123,7 @@ static void calc_tw_center(Scene *scene, float *co)
float *max= scene->twmax;
DO_MINMAX(co, min, max);
- add_v3_v3v3(twcent, twcent, co);
+ add_v3_v3(twcent, co);
}
static void protectflag_to_drawflags(short protectflag, short *drawflags)
@@ -1562,6 +1554,8 @@ static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, short *mval, float ho
return 0;
}
+int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports);
+
/* return 0; nothing happened */
int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
{
@@ -1575,6 +1569,9 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
if(!(v3d->twflag & V3D_USE_MANIPULATOR)) return 0;
if(!(v3d->twflag & V3D_DRAW_MANIPULATOR)) return 0;
+ /* Force orientation */
+ RNA_enum_set(op->ptr, "constraint_orientation", v3d->twmode);
+
// find the hotspots first test narrow hotspot
val= manipulator_selectbuf(sa, ar, event->mval, 0.5f*(float)U.tw_hotspot);
if(val) {
@@ -1614,6 +1611,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
}
RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
WM_operator_name_call(C, "TRANSFORM_OT_translate", WM_OP_INVOKE_DEFAULT, op->ptr);
+ //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_translate", 0), event, op->ptr, NULL);
}
else if (drawflags & MAN_SCALE_C) {
switch(drawflags) {
@@ -1644,8 +1642,10 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
}
RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
WM_operator_name_call(C, "TRANSFORM_OT_resize", WM_OP_INVOKE_DEFAULT, op->ptr);
+ //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_resize", 0), event, op->ptr, NULL);
}
else if (drawflags == MAN_ROT_T) { /* trackball need special case, init is different */
+ //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_trackball", 0), event, op->ptr, NULL);
WM_operator_name_call(C, "TRANSFORM_OT_trackball", WM_OP_INVOKE_DEFAULT, op->ptr);
}
else if (drawflags & MAN_ROT_C) {
@@ -1662,6 +1662,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
}
RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
WM_operator_name_call(C, "TRANSFORM_OT_rotate", WM_OP_INVOKE_DEFAULT, op->ptr);
+ //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_rotate", 0), event, op->ptr, NULL);
}
}
/* after transform, restore drawflags */
diff --git a/source/blender/editors/transform/transform_ndofinput.c b/source/blender/editors/transform/transform_ndofinput.c
index fa872339196..3e47484c54c 100644
--- a/source/blender/editors/transform/transform_ndofinput.c
+++ b/source/blender/editors/transform/transform_ndofinput.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -30,8 +30,6 @@
#include "BKE_global.h" /* for G */
#include "BKE_utildefines.h" /* ABS */
-#include "DNA_view3d_types.h" /* for G.vd (view3d) */
-#include "DNA_windowmanager_types.h" /* for G.vd (view3d) */
#include "WM_types.h"
@@ -44,7 +42,7 @@ static void resetNDofInput(NDofInput *n);
void initNDofInput(NDofInput *n)
{
- int i;
+ int i;
n->flag = 0;
n->axis = 0;
@@ -128,9 +126,9 @@ void applyNDofInput(NDofInput *n, float *vec)
static int updateNDofMotion(NDofInput *n)
{
- float fval[7];
- int i;
- int retval = 0;
+ float fval[7];
+ int i;
+ int retval = 0;
getndof(fval);
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 95e0d270fde..29bcd4e8592 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -25,8 +25,6 @@
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -63,6 +61,7 @@ char OP_RESIZE[] = "TRANSFORM_OT_resize";
char OP_SHEAR[] = "TRANSFORM_OT_shear";
char OP_WARP[] = "TRANSFORM_OT_warp";
char OP_SHRINK_FATTEN[] = "TRANSFORM_OT_shrink_fatten";
+char OP_PUSH_PULL[] = "TRANSFORM_OT_push_pull";
char OP_TILT[] = "TRANSFORM_OT_tilt";
char OP_TRACKBALL[] = "TRANSFORM_OT_trackball";
char OP_MIRROR[] = "TRANSFORM_OT_mirror";
@@ -77,6 +76,7 @@ void TRANSFORM_OT_resize(struct wmOperatorType *ot);
void TRANSFORM_OT_shear(struct wmOperatorType *ot);
void TRANSFORM_OT_warp(struct wmOperatorType *ot);
void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot);
+void TRANSFORM_OT_push_pull(struct wmOperatorType *ot);
void TRANSFORM_OT_tilt(struct wmOperatorType *ot);
void TRANSFORM_OT_trackball(struct wmOperatorType *ot);
void TRANSFORM_OT_mirror(struct wmOperatorType *ot);
@@ -93,6 +93,7 @@ TransformModeItem transform_modes[] =
{OP_SHEAR, TFM_SHEAR, TRANSFORM_OT_shear},
{OP_WARP, TFM_WARP, TRANSFORM_OT_warp},
{OP_SHRINK_FATTEN, TFM_SHRINKFATTEN, TRANSFORM_OT_shrink_fatten},
+ {OP_PUSH_PULL, TFM_PUSHPULL, TRANSFORM_OT_push_pull},
{OP_TILT, TFM_TILT, TRANSFORM_OT_tilt},
{OP_TRACKBALL, TFM_TRACKBALL, TRANSFORM_OT_trackball},
{OP_MIRROR, TFM_MIRROR, TRANSFORM_OT_mirror},
@@ -383,45 +384,66 @@ static int transform_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
}
-void Properties_Proportional(struct wmOperatorType *ot)
-{
- RNA_def_enum(ot->srna, "proportional", proportional_editing_items, 0, "Proportional Editing", "");
- RNA_def_enum(ot->srna, "proportional_editing_falloff", proportional_falloff_items, 0, "Proportional Editing Falloff", "Falloff type for proportional editing mode.");
- RNA_def_float(ot->srna, "proportional_size", 1, 0, FLT_MAX, "Proportional Size", "", 0, 100);
-}
-
-void Properties_Axis(struct wmOperatorType *ot)
+void Transform_Properties(struct wmOperatorType *ot, int flags)
{
PropertyRNA *prop;
- prop= RNA_def_property(ot->srna, "axis", PROP_FLOAT, PROP_DIRECTION);
- RNA_def_property_array(prop, 3);
- RNA_def_property_ui_text(prop, "Axis", "The axis around which the transformation occurs");
-}
+ if (flags & P_AXIS)
+ {
+ prop= RNA_def_property(ot->srna, "axis", PROP_FLOAT, PROP_DIRECTION);
+ RNA_def_property_array(prop, 3);
+ /* Make this not hidden when there's a nice axis selection widget */
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+ RNA_def_property_ui_text(prop, "Axis", "The axis around which the transformation occurs");
-void Properties_Snapping(struct wmOperatorType *ot, short fullsnap, short align)
-{
- RNA_def_boolean(ot->srna, "snap", 0, "Use Snapping Options", "");
+ }
- if (fullsnap) {
- RNA_def_enum(ot->srna, "snap_target", snap_target_items, 0, "Target", "");
- RNA_def_float_vector(ot->srna, "snap_point", 3, NULL, -FLT_MAX, FLT_MAX, "Point", "", -FLT_MAX, FLT_MAX);
+ if (flags & P_CONSTRAINT)
+ {
+ prop= RNA_def_boolean_vector(ot->srna, "constraint_axis", 3, NULL, "Constraint Axis", "");
+ prop= RNA_def_property(ot->srna, "constraint_orientation", PROP_ENUM, PROP_NONE);
+ RNA_def_property_ui_text(prop, "Orientation", "Transformation orientation");
+ RNA_def_enum_funcs(prop, rna_TransformOrientation_itemf);
- if (align) {
- RNA_def_boolean(ot->srna, "snap_align", 0, "Align with Point Normal", "");
- RNA_def_float_vector(ot->srna, "snap_normal", 3, NULL, -FLT_MAX, FLT_MAX, "Normal", "", -FLT_MAX, FLT_MAX);
- }
+
}
-}
-void Properties_Constraints(struct wmOperatorType *ot)
-{
- PropertyRNA *prop;
+ if (flags & P_MIRROR)
+ {
+ RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
+ }
- RNA_def_boolean_vector(ot->srna, "constraint_axis", 3, NULL, "Constraint Axis", "");
- prop= RNA_def_property(ot->srna, "constraint_orientation", PROP_ENUM, PROP_NONE);
- RNA_def_property_ui_text(prop, "Orientation", "Transformation orientation");
- RNA_def_enum_funcs(prop, rna_TransformOrientation_itemf);
+
+ if (flags & P_PROPORTIONAL)
+ {
+ RNA_def_enum(ot->srna, "proportional", proportional_editing_items, 0, "Proportional Editing", "");
+ RNA_def_enum(ot->srna, "proportional_editing_falloff", proportional_falloff_items, 0, "Proportional Editing Falloff", "Falloff type for proportional editing mode.");
+ RNA_def_float(ot->srna, "proportional_size", 1, 0, FLT_MAX, "Proportional Size", "", 0, 100);
+ }
+
+ if (flags & P_SNAP)
+ {
+ prop= RNA_def_boolean(ot->srna, "snap", 0, "Use Snapping Options", "");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+
+ if (flags & P_GEO_SNAP) {
+ prop= RNA_def_enum(ot->srna, "snap_target", snap_target_items, 0, "Target", "");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+ prop= RNA_def_float_vector(ot->srna, "snap_point", 3, NULL, -FLT_MAX, FLT_MAX, "Point", "", -FLT_MAX, FLT_MAX);
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+
+ if (flags & P_ALIGN_SNAP) {
+ prop= RNA_def_boolean(ot->srna, "snap_align", 0, "Align with Point Normal", "");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+ prop= RNA_def_float_vector(ot->srna, "snap_normal", 3, NULL, -FLT_MAX, FLT_MAX, "Normal", "", -FLT_MAX, FLT_MAX);
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+ }
+ }
+ }
+
+ // Add confirm method all the time. At the end because it's not really that important and should be hidden
+ prop = RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button");
+ RNA_def_property_flag(prop, PROP_HIDDEN);
}
void TRANSFORM_OT_translate(struct wmOperatorType *ot)
@@ -441,13 +463,7 @@ void TRANSFORM_OT_translate(struct wmOperatorType *ot)
RNA_def_float_vector(ot->srna, "value", 3, NULL, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX);
- Properties_Proportional(ot);
-
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Constraints(ot);
-
- Properties_Snapping(ot, 1, 1);
+ Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_ALIGN_SNAP);
}
void TRANSFORM_OT_resize(struct wmOperatorType *ot)
@@ -467,13 +483,7 @@ void TRANSFORM_OT_resize(struct wmOperatorType *ot)
RNA_def_float_vector(ot->srna, "value", 3, VecOne, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX);
- Properties_Proportional(ot);
-
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Constraints(ot);
-
- Properties_Snapping(ot, 1, 0);
+ Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_GEO_SNAP);
}
@@ -494,11 +504,7 @@ void TRANSFORM_OT_trackball(struct wmOperatorType *ot)
RNA_def_float_vector(ot->srna, "value", 2, VecOne, -FLT_MAX, FLT_MAX, "angle", "", -FLT_MAX, FLT_MAX);
- Properties_Proportional(ot);
-
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Snapping(ot, 0, 0);
+ Transform_Properties(ot, P_PROPORTIONAL|P_MIRROR|P_SNAP);
}
void TRANSFORM_OT_rotate(struct wmOperatorType *ot)
@@ -518,24 +524,16 @@ void TRANSFORM_OT_rotate(struct wmOperatorType *ot)
RNA_def_float_rotation(ot->srna, "value", 1, NULL, -FLT_MAX, FLT_MAX, "Angle", "", -M_PI*2, M_PI*2);
- Properties_Axis(ot);
-
- Properties_Proportional(ot);
-
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Constraints(ot);
-
- Properties_Snapping(ot, 1, 0);
+ Transform_Properties(ot, P_AXIS|P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_GEO_SNAP);
}
void TRANSFORM_OT_tilt(struct wmOperatorType *ot)
{
/* identifiers */
ot->name = "Tilt";
- /*optionals -
- "Tilt selected vertices."
- "Specify an extra axis rotation for selected vertices of 3d curve." */
+ /*optionals -
+ "Tilt selected vertices."
+ "Specify an extra axis rotation for selected vertices of 3d curve." */
ot->description= "Tilt selected control vertices of 3d curve";
ot->idname = OP_TILT;
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
@@ -549,13 +547,7 @@ void TRANSFORM_OT_tilt(struct wmOperatorType *ot)
RNA_def_float_rotation(ot->srna, "value", 1, NULL, -FLT_MAX, FLT_MAX, "Angle", "", -M_PI*2, M_PI*2);
- Properties_Proportional(ot);
-
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Constraints(ot);
-
- Properties_Snapping(ot, 0, 0);
+ Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_SNAP);
}
void TRANSFORM_OT_warp(struct wmOperatorType *ot)
@@ -575,14 +567,8 @@ void TRANSFORM_OT_warp(struct wmOperatorType *ot)
RNA_def_float_rotation(ot->srna, "value", 1, NULL, -FLT_MAX, FLT_MAX, "Angle", "", 0, 1);
- Properties_Proportional(ot);
-
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Snapping(ot, 0, 0);
-
+ Transform_Properties(ot, P_PROPORTIONAL|P_MIRROR|P_SNAP);
// XXX Warp axis?
-// Properties_Constraints(ot);
}
void TRANSFORM_OT_shear(struct wmOperatorType *ot)
@@ -602,14 +588,28 @@ void TRANSFORM_OT_shear(struct wmOperatorType *ot)
RNA_def_float(ot->srna, "value", 0, -FLT_MAX, FLT_MAX, "Offset", "", -FLT_MAX, FLT_MAX);
- Properties_Proportional(ot);
+ Transform_Properties(ot, P_PROPORTIONAL|P_MIRROR|P_SNAP);
+ // XXX Shear axis?
+}
+
+void TRANSFORM_OT_push_pull(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Push/Pull";
+ ot->description= "Push/Pull selected items";
+ ot->idname = OP_PUSH_PULL;
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
+ /* api callbacks */
+ ot->invoke = transform_invoke;
+ ot->exec = transform_exec;
+ ot->modal = transform_modal;
+ ot->cancel = transform_cancel;
+ ot->poll = ED_operator_areaactive;
- Properties_Snapping(ot, 0, 0);
+ RNA_def_float(ot->srna, "value", 0, -FLT_MAX, FLT_MAX, "Distance", "", -FLT_MAX, FLT_MAX);
- // XXX Shear axis?
-// Properties_Constraints(ot);
+ Transform_Properties(ot, P_PROPORTIONAL|P_MIRROR|P_SNAP);
}
void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot)
@@ -629,18 +629,14 @@ void TRANSFORM_OT_shrink_fatten(struct wmOperatorType *ot)
RNA_def_float(ot->srna, "value", 0, -FLT_MAX, FLT_MAX, "Offset", "", -FLT_MAX, FLT_MAX);
- Properties_Proportional(ot);
-
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Snapping(ot, 0, 0);
+ Transform_Properties(ot, P_PROPORTIONAL|P_MIRROR|P_SNAP);
}
void TRANSFORM_OT_tosphere(struct wmOperatorType *ot)
{
/* identifiers */
ot->name = "To Sphere";
- //added "around mesh center" to differentiate between "MESH_OT_vertices_to_sphere()"
+ //added "around mesh center" to differentiate between "MESH_OT_vertices_to_sphere()"
ot->description= "Move selected vertices outward in a spherical shape around mesh center";
ot->idname = OP_TOSPHERE;
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
@@ -654,11 +650,7 @@ void TRANSFORM_OT_tosphere(struct wmOperatorType *ot)
RNA_def_float_factor(ot->srna, "value", 0, 0, 1, "Factor", "", 0, 1);
- Properties_Proportional(ot);
-
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Snapping(ot, 0, 0);
+ Transform_Properties(ot, P_PROPORTIONAL|P_MIRROR|P_SNAP);
}
void TRANSFORM_OT_mirror(struct wmOperatorType *ot)
@@ -676,8 +668,7 @@ void TRANSFORM_OT_mirror(struct wmOperatorType *ot)
ot->cancel = transform_cancel;
ot->poll = ED_operator_areaactive;
- Properties_Proportional(ot);
- Properties_Constraints(ot);
+ Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL);
}
void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot)
@@ -697,9 +688,7 @@ void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot)
RNA_def_float_factor(ot->srna, "value", 0, -1.0f, 1.0f, "Factor", "", -1.0f, 1.0f);
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Snapping(ot, 0, 0);
+ Transform_Properties(ot, P_MIRROR|P_SNAP);
}
void TRANSFORM_OT_edge_crease(struct wmOperatorType *ot)
@@ -719,7 +708,7 @@ void TRANSFORM_OT_edge_crease(struct wmOperatorType *ot)
RNA_def_float_factor(ot->srna, "value", 0, -1.0f, 1.0f, "Factor", "", -1.0f, 1.0f);
- Properties_Snapping(ot, 0, 0);
+ Transform_Properties(ot, P_SNAP);
}
void TRANSFORM_OT_seq_slide(struct wmOperatorType *ot)
@@ -739,7 +728,7 @@ void TRANSFORM_OT_seq_slide(struct wmOperatorType *ot)
RNA_def_float_vector(ot->srna, "value", 2, VecOne, -FLT_MAX, FLT_MAX, "angle", "", -FLT_MAX, FLT_MAX);
- Properties_Snapping(ot, 0, 0);
+ Transform_Properties(ot, P_SNAP);
}
void TRANSFORM_OT_transform(struct wmOperatorType *ot)
@@ -793,12 +782,7 @@ void TRANSFORM_OT_transform(struct wmOperatorType *ot)
RNA_def_float_vector(ot->srna, "value", 4, NULL, -FLT_MAX, FLT_MAX, "Values", "", -FLT_MAX, FLT_MAX);
- Properties_Axis(ot);
-
- Properties_Proportional(ot);
- RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
-
- Properties_Constraints(ot);
+ Transform_Properties(ot, P_AXIS|P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_ALIGN_SNAP);
}
void transform_operatortypes(void)
@@ -863,7 +847,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
km = WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0);
km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(km->ptr, "path", "tool_settings.snap");
+ RNA_string_set(km->ptr, "data_path", "tool_settings.snap");
km = WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
@@ -871,30 +855,29 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
case SPACE_ACTION:
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0);
RNA_int_set(km->ptr, "mode", TFM_TIME_TRANSLATE);
-
+
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
RNA_int_set(km->ptr, "mode", TFM_TIME_TRANSLATE);
-
+
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND);
-
+
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0);
RNA_int_set(km->ptr, "mode", TFM_TIME_SCALE);
-
+
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, 0, 0);
RNA_int_set(km->ptr, "mode", TFM_TIME_SLIDE);
break;
case SPACE_IPO:
km= WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
-
+
km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
-
- // XXX the 'mode' identifier here is not quite right
+
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND);
-
+
km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
-
+
km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
break;
case SPACE_NLA:
@@ -914,7 +897,9 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
km= WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_A, KM_ANY, 0, 0);
+ RNA_enum_set(km->ptr, "release_confirm", 1);
km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
+ RNA_enum_set(km->ptr, "release_confirm", 1);
km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
@@ -940,7 +925,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
km = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(km->ptr, "path", "tool_settings.snap");
+ RNA_string_set(km->ptr, "data_path", "tool_settings.snap");
break;
default:
break;
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index bbff86a8b11..273c0896728 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -28,16 +28,10 @@
#include "MEM_guardedalloc.h"
#include "DNA_armature_types.h"
-#include "DNA_action_types.h"
#include "DNA_curve_types.h"
-#include "DNA_listBase.h"
#include "DNA_object_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meta_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
#include "BKE_global.h"
@@ -58,9 +52,7 @@
#include "ED_armature.h"
#include "ED_mesh.h"
-#include "ED_util.h"
-#include "UI_interface.h"
#include "RNA_define.h"
@@ -484,7 +476,7 @@ void applyTransformOrientation(const bContext *C, float mat[3][3], char *name) {
break;
}
}
- }
+ }
}
static int count_bone_select(bArmature *arm, ListBase *lb, int do_it)
@@ -526,6 +518,7 @@ void initTransformOrientation(bContext *C, TransInfo *t)
case V3D_MANIP_GIMBAL:
unit_m3(t->spacemtx);
if (gimbal_axis(ob, t->spacemtx)) {
+ strcpy(t->spacename, "gimbal");
break;
}
/* no gimbal fallthrough to normal */
@@ -737,7 +730,7 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
BM_ITER(eve, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
if (BM_TestHFlag(eve, BM_SELECT)) {
- add_v3_v3v3(normal, normal, eve->no);
+ add_v3_v3(normal, eve->no);
}
}
normalize_v3(normal);
@@ -819,7 +812,7 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
float mat[4][4];
/* Rotation of MetaElem is stored in quat */
- quat_to_mat4( mat,ml_sel->quat);
+ quat_to_mat4( mat,ml_sel->quat);
VECCOPY(normal, mat[2]);
@@ -844,10 +837,10 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
float vec[3];
sub_v3_v3v3(vec, ebone->tail, ebone->head);
normalize_v3(vec);
- add_v3_v3v3(normal, normal, vec);
+ add_v3_v3(normal, vec);
vec_roll_to_mat3(vec, ebone->roll, mat);
- add_v3_v3v3(plane, plane, mat[2]);
+ add_v3_v3(plane, mat[2]);
}
}
}
@@ -887,8 +880,8 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
/* use channels to get stats */
for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
if (pchan->bone && pchan->bone->flag & BONE_TRANSFORM) {
- add_v3_v3v3(normal, normal, pchan->pose_mat[2]);
- add_v3_v3v3(plane, plane, pchan->pose_mat[1]);
+ add_v3_v3(normal, pchan->pose_mat[2]);
+ add_v3_v3(plane, pchan->pose_mat[1]);
}
}
negate_v3(plane);
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index dc60890cac1..a5a02261ffc 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -34,14 +34,11 @@
#include "PIL_time.h"
-#include "DNA_action_types.h"
#include "DNA_armature_types.h"
-#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_meshdata_types.h" // Temporary, for snapping to other unselected meshes
#include "DNA_space_types.h"
#include "DNA_screen_types.h"
-#include "DNA_userdef_types.h"
#include "DNA_view3d_types.h"
#include "DNA_windowmanager_types.h"
@@ -75,7 +72,6 @@
#include "ED_armature.h"
#include "ED_image.h"
#include "ED_mesh.h"
-#include "ED_transform.h"
#include "ED_uvedit.h"
#include "ED_view3d.h"
@@ -239,7 +235,7 @@ int handleSnapping(TransInfo *t, wmEvent *event)
void applyProject(TransInfo *t)
{
/* XXX FLICKER IN OBJECT MODE */
- if ((t->tsnap.project) && activeSnap(t))
+ if ((t->tsnap.project) && activeSnap(t) && (t->flag & T_NO_PROJECT) == 0)
{
TransData *td = t->data;
float tvec[3];
@@ -285,7 +281,7 @@ void applyProject(TransInfo *t)
mul_m3_v3(td->smtx, tvec);
- add_v3_v3v3(td->loc, td->loc, tvec);
+ add_v3_v3(td->loc, tvec);
}
//XXX constraintTransLim(t, td);
@@ -918,7 +914,7 @@ void TargetSnapMedian(TransInfo *t)
for(td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++)
{
- add_v3_v3v3(t->tsnap.snapTarget, t->tsnap.snapTarget, td->center);
+ add_v3_v3(t->tsnap.snapTarget, td->center);
}
mul_v3_fl(t->tsnap.snapTarget, 1.0 / i);
@@ -1036,7 +1032,7 @@ int snapFace(ARegion *ar, float v1co[3], float v2co[3], float v3co[3], float *v4
VECCOPY(intersect, ray_normal_local);
mul_v3_fl(intersect, lambda);
- add_v3_v3v3(intersect, intersect, ray_start_local);
+ add_v3_v3(intersect, ray_start_local);
VECCOPY(location, intersect);
@@ -1749,7 +1745,7 @@ int peelDerivedMesh(Object *ob, DerivedMesh *dm, float obmat[][4], float ray_sta
VECCOPY(intersect, ray_normal_local);
mul_v3_fl(intersect, lambda);
- add_v3_v3v3(intersect, intersect, ray_start_local);
+ add_v3_v3(intersect, ray_start_local);
VECCOPY(location, intersect);
@@ -1779,7 +1775,7 @@ int peelDerivedMesh(Object *ob, DerivedMesh *dm, float obmat[][4], float ray_sta
VECCOPY(intersect, ray_normal_local);
mul_v3_fl(intersect, lambda);
- add_v3_v3v3(intersect, intersect, ray_start_local);
+ add_v3_v3(intersect, ray_start_local);
VECCOPY(location, intersect);
@@ -1918,26 +1914,13 @@ void snapGridAction(TransInfo *t, float *val, GearsType action) {
void snapGrid(TransInfo *t, float *val) {
- int invert;
GearsType action;
// Only do something if using Snap to Grid
if (t->tsnap.mode != SCE_SNAP_MODE_INCREMENT)
return;
- if(t->mode==TFM_ROTATION || t->mode==TFM_WARP || t->mode==TFM_TILT || t->mode==TFM_TRACKBALL || t->mode==TFM_BONE_ROLL)
- invert = U.flag & USER_AUTOROTGRID;
- else if(t->mode==TFM_RESIZE || t->mode==TFM_SHEAR || t->mode==TFM_BONESIZE || t->mode==TFM_SHRINKFATTEN || t->mode==TFM_CURVE_SHRINKFATTEN)
- invert = U.flag & USER_AUTOSIZEGRID;
- else
- invert = U.flag & USER_AUTOGRABGRID;
-
- if(invert) {
- action = activeSnap(t) ? NO_GEARS: BIG_GEARS;
- }
- else {
- action = activeSnap(t) ? BIG_GEARS : NO_GEARS;
- }
+ action = activeSnap(t) ? BIG_GEARS : NO_GEARS;
if (action == BIG_GEARS && (t->modifiers & MOD_PRECISION)) {
action = SMALL_GEARS;
diff --git a/source/blender/editors/util/CMakeLists.txt b/source/blender/editors/util/CMakeLists.txt
new file mode 100644
index 00000000000..b4b2fd12cef
--- /dev/null
+++ b/source/blender/editors/util/CMakeLists.txt
@@ -0,0 +1,34 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../include
+ ../../../../intern/guardedalloc
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_util "${SRC}" "${INC}")
diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c
index 6adf7305cd6..2796e708932 100644
--- a/source/blender/editors/util/ed_util.c
+++ b/source/blender/editors/util/ed_util.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -31,11 +31,8 @@
#include "MEM_guardedalloc.h"
-#include "DNA_curve_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
@@ -46,6 +43,7 @@
#include "ED_armature.h"
#include "ED_mesh.h"
+#include "ED_object.h"
#include "ED_sculpt.h"
#include "ED_util.h"
@@ -53,6 +51,29 @@
/* ********* general editor util funcs, not BKE stuff please! ********* */
+void ED_editors_init(bContext *C)
+{
+ Main *bmain= CTX_data_main(C);
+ Scene *sce= CTX_data_scene(C);
+ Object *ob, *obact= (sce && sce->basact)? sce->basact->object: NULL;
+ ID *data;
+
+ /* toggle on modes for objects that were saved with these enabled. for
+ e.g. linked objects we have to ensure that they are actually the
+ active object in this scene. */
+ for(ob=bmain->object.first; ob; ob=ob->id.next) {
+ int mode= ob->mode;
+
+ if(mode && (mode != OB_MODE_POSE)) {
+ ob->mode= 0;
+ data= ob->data;
+
+ if(ob == obact && !ob->id.lib && !(data && data->lib))
+ ED_object_toggle_modes(C, mode);
+ }
+ }
+}
+
/* frees all editmode stuff */
void ED_editors_exit(bContext *C)
{
@@ -67,7 +88,8 @@ void ED_editors_exit(bContext *C)
Object *ob= sce->obedit;
/* global in meshtools... */
- mesh_octree_table(ob, NULL, NULL, 'e');
+ mesh_octree_table(NULL, NULL, NULL, 'e');
+ mesh_mirrtopo_table(NULL, 'e');
if(ob) {
if(ob->type==OB_MESH) {
@@ -94,8 +116,10 @@ void ED_editors_exit(bContext *C)
Object *ob= sce->basact->object;
/* if weight-painting is on, free mesh octree data */
- if(ob->mode & OB_MODE_WEIGHT_PAINT)
- mesh_octree_table(ob, NULL, NULL, 'e');
+ if(ob->mode & OB_MODE_WEIGHT_PAINT) {
+ mesh_octree_table(NULL, NULL, NULL, 'e');
+ mesh_mirrtopo_table(NULL, 'e');
+ }
}
}
diff --git a/source/blender/editors/util/editmode_undo.c b/source/blender/editors/util/editmode_undo.c
index db4dc4efb2c..949bf30c4fd 100644
--- a/source/blender/editors/util/editmode_undo.c
+++ b/source/blender/editors/util/editmode_undo.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -34,12 +34,8 @@
#include "MEM_guardedalloc.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
@@ -51,7 +47,6 @@
#include "BKE_utildefines.h"
-#include "ED_util.h"
#include "ED_mesh.h"
#include "UI_interface.h"
@@ -81,7 +76,7 @@ void undo_editmode_menu(void) // history menu
/* ********************************************************************* */
/* ****** XXX ***** */
-void error() {}
+void error(const char *dummy) {}
/* ****** XXX ***** */
diff --git a/source/blender/editors/util/numinput.c b/source/blender/editors/util/numinput.c
index fc193373327..a5c0bfeb73a 100644
--- a/source/blender/editors/util/numinput.c
+++ b/source/blender/editors/util/numinput.c
@@ -34,7 +34,6 @@
#include "BKE_utildefines.h" /* ABS */
#include "WM_types.h"
-#include "DNA_windowmanager_types.h"
#include "ED_numinput.h"
@@ -170,13 +169,13 @@ char handleNumInput(NumInput *n, wmEvent *event)
if (!n->ctrl[idx])
n->ctrl[idx] = 1;
- n->val[idx] += n->increment;
+ n->val[idx] += n->increment;
break;
case NUM_MODAL_INCREMENT_DOWN:
if (!n->ctrl[idx])
n->ctrl[idx] = 1;
- n->val[idx] -= n->increment;
+ n->val[idx] -= n->increment;
break;
default:
return 0;
diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c
index cf60490055f..636ce9dcec5 100644
--- a/source/blender/editors/util/undo.c
+++ b/source/blender/editors/util/undo.c
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -34,13 +34,7 @@
#include "MEM_guardedalloc.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
#include "BKE_blender.h"
#include "BKE_context.h"
@@ -69,8 +63,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "util_intern.h"
@@ -140,6 +132,8 @@ static int ed_undo_step(bContext *C, int step, const char *undoname)
undo_editmode_name(C, undoname);
else
undo_editmode_step(C, step);
+
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, NULL);
}
}
else {
@@ -242,7 +236,7 @@ void ED_OT_undo(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Undo";
- ot->description= "Undo previous action";
+ ot->description= "Undo previous action";
ot->idname= "ED_OT_undo";
/* api callbacks */
@@ -254,7 +248,7 @@ void ED_OT_redo(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Redo";
- ot->description= "Redo previous action";
+ ot->description= "Redo previous action";
ot->idname= "ED_OT_redo";
/* api callbacks */
diff --git a/source/blender/editors/util/util_intern.h b/source/blender/editors/util/util_intern.h
index 75475f4abef..73675ab4ef9 100644
--- a/source/blender/editors/util/util_intern.h
+++ b/source/blender/editors/util/util_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/uvedit/CMakeLists.txt b/source/blender/editors/uvedit/CMakeLists.txt
new file mode 100644
index 00000000000..bb6caece99f
--- /dev/null
+++ b/source/blender/editors/uvedit/CMakeLists.txt
@@ -0,0 +1,36 @@
+# $Id: CMakeLists.txt 12931 2007-12-17 18:20:48Z theeth $
+# ***** 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): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ ../../blenkernel
+ ../../blenlib
+ ../../bmesh
+ ../include
+ ../../../../intern/guardedalloc
+ ../../../../intern/opennl/extern
+ ../../makesdna
+ ../../makesrna
+ ../../windowmanager
+)
+
+BLENDERLIB(bf_editor_uvedit "${SRC}" "${INC}")
diff --git a/source/blender/editors/uvedit/uvedit_draw.c b/source/blender/editors/uvedit/uvedit_draw.c
index f13ea513987..7c6c37872f7 100644
--- a/source/blender/editors/uvedit/uvedit_draw.c
+++ b/source/blender/editors/uvedit/uvedit_draw.c
@@ -62,7 +62,6 @@
static void drawcursor_sima(SpaceImage *sima, ARegion *ar)
{
- View2D *v2d= &ar->v2d;
float zoomx, zoomy, w, h;
int width, height;
@@ -73,7 +72,7 @@ static void drawcursor_sima(SpaceImage *sima, ARegion *ar)
h= zoomy*height/256.0f;
cpack(0xFFFFFF);
- glTranslatef(v2d->cursor[0], v2d->cursor[1], 0.0f);
+ glTranslatef(sima->cursor[0], sima->cursor[1], 0.0f);
fdrawline(-0.05/w, 0, 0, 0.05/h);
fdrawline(0, 0.05/h, 0.05/w, 0);
fdrawline(0.05/w, 0, 0, -0.05/h);
@@ -101,7 +100,7 @@ static void drawcursor_sima(SpaceImage *sima, ARegion *ar)
fdrawline(0, -0.020/h, 0, -0.1/h);
fdrawline(0, 0.1/h, 0, 0.020/h);
- glTranslatef(-v2d->cursor[0], -v2d->cursor[1], 0.0f);
+ glTranslatef(-sima->cursor[0], -sima->cursor[1], 0.0f);
setlinestyle(0);
}
@@ -758,7 +757,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
pointsize = UI_GetThemeValuef(TH_FACEDOT_SIZE);
glPointSize(pointsize); // TODO - drawobject.c changes this value after - Investigate!
- /* unselected faces */
+ /* unselected faces */
UI_ThemeColor(TH_WIRE);
bglBegin(GL_POINTS);
@@ -792,7 +791,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
/* 6. draw uv vertices */
if(drawfaces != 2) { /* 2 means Mesh Face Mode */
- /* unselected uvs */
+ /* unselected uvs */
UI_ThemeColor(TH_VERTEX);
pointsize = UI_GetThemeValuef(TH_VERTEX_SIZE);
glPointSize(pointsize);
@@ -812,7 +811,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
/* pinned uvs */
/* give odd pointsizes odd pin pointsizes */
- glPointSize(pointsize*2 + (((int)pointsize % 2)? (-1): 0));
+ glPointSize(pointsize*2 + (((int)pointsize % 2)? (-1): 0));
cpack(0xFF);
bglBegin(GL_POINTS);
@@ -859,12 +858,6 @@ void draw_uvedit_main(SpaceImage *sima, ARegion *ar, Scene *scene, Object *obedi
show_uvshadow= ED_space_image_show_uvshadow(sima, obedit);
if(show_uvedit || show_uvshadow) {
- /* this is basically the same object_handle_update as in the 3d view,
- * here we have to do it as well for the object we are editing if we
- * are displaying the final result */
- if(obedit && (sima->flag & SI_DRAWSHADOW))
- object_handle_update(scene, obedit);
-
if(show_uvshadow)
draw_uvs_shadow(sima, obedit);
else
diff --git a/source/blender/editors/uvedit/uvedit_intern.h b/source/blender/editors/uvedit/uvedit_intern.h
index 59f19d85209..dedde856d4e 100644
--- a/source/blender/editors/uvedit/uvedit_intern.h
+++ b/source/blender/editors/uvedit/uvedit_intern.h
@@ -1,5 +1,5 @@
/**
- * $Id:
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index 1f97aab8e1a..92ddc097041 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -35,13 +35,10 @@
#include "MEM_guardedalloc.h"
#include "DNA_object_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_image_types.h"
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -66,7 +63,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_types.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -2514,7 +2510,7 @@ int circle_select_exec(bContext *C, wmOperator *op)
MTexPoly *tface;
int x, y, radius, width, height, select;
float zoomx, zoomy, offset[2], ellipse[2];
- int gesture_mode= RNA_int_get(op->ptr, "gesture_mode");
+ int gesture_mode= RNA_int_get(op->ptr, "gesture_mode");
/* get operator properties */
select= (gesture_mode == GESTURE_MODAL_SELECT);
@@ -2580,17 +2576,17 @@ static void snap_uv_to_pixel(float *uvco, float w, float h)
uvco[1] = ((float)((int)((uvco[1]*h) + 0.5f)))/h;
}
-static void snap_cursor_to_pixels(SpaceImage *sima, View2D *v2d)
+static void snap_cursor_to_pixels(SpaceImage *sima)
{
int width= 0, height= 0;
ED_space_image_size(sima, &width, &height);
- snap_uv_to_pixel(v2d->cursor, width, height);
+ snap_uv_to_pixel(sima->cursor, width, height);
}
-static int snap_cursor_to_selection(Scene *scene, Image *ima, Object *obedit, View2D *v2d)
+static int snap_cursor_to_selection(Scene *scene, Image *ima, Object *obedit, SpaceImage *sima)
{
- return uvedit_center(scene, ima, obedit, v2d->cursor, 0);
+ return uvedit_center(scene, ima, obedit, sima->cursor, 0);
}
static int snap_cursor_exec(bContext *C, wmOperator *op)
@@ -2599,23 +2595,22 @@ static int snap_cursor_exec(bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
Image *ima= CTX_data_edit_image(C);
- ARegion *ar= CTX_wm_region(C);
int change= 0;
switch(RNA_boolean_get(op->ptr, "target")) {
case 0:
- snap_cursor_to_pixels(sima, &ar->v2d);
+ snap_cursor_to_pixels(sima);
change= 1;
break;
case 1:
- change= snap_cursor_to_selection(scene, ima, obedit, &ar->v2d);
+ change= snap_cursor_to_selection(scene, ima, obedit, sima);
break;
}
if(!change)
return OPERATOR_CANCELLED;
- ED_region_tag_redraw(ar);
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_IMAGE, sima);
return OPERATOR_FINISHED;
}
@@ -2643,7 +2638,7 @@ void UV_OT_snap_cursor(wmOperatorType *ot)
/* ******************** snap selection operator **************** */
-static int snap_uvs_to_cursor(Scene *scene, Image *ima, Object *obedit, View2D *v2d)
+static int snap_uvs_to_cursor(Scene *scene, Image *ima, Object *obedit, SpaceImage *sima)
{
BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
BMFace *efa;
@@ -2661,7 +2656,7 @@ static int snap_uvs_to_cursor(Scene *scene, Image *ima, Object *obedit, View2D *
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
if(uvedit_uv_selected(em, scene, l)) {
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- VECCOPY2D(luv->uv, v2d->cursor);
+ VECCOPY2D(luv->uv, sima->cursor);
change= 1;
}
}
@@ -2804,7 +2799,6 @@ static int snap_selection_exec(bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
Image *ima= CTX_data_edit_image(C);
- ARegion *ar= CTX_wm_region(C);
int change= 0;
switch(RNA_boolean_get(op->ptr, "target")) {
@@ -2812,7 +2806,7 @@ static int snap_selection_exec(bContext *C, wmOperator *op)
change= snap_uvs_to_pixels(sima, scene, obedit);
break;
case 1:
- change= snap_uvs_to_cursor(scene, ima, obedit, &ar->v2d);
+ change= snap_uvs_to_cursor(scene, ima, obedit, sima);
break;
case 2:
change= snap_uvs_to_adjacent_unselected(scene, ima, obedit);
@@ -3085,14 +3079,14 @@ void UV_OT_reveal(wmOperatorType *ot)
static int set_2d_cursor_exec(bContext *C, wmOperator *op)
{
- ARegion *ar= CTX_wm_region(C);
+ SpaceImage *sima = CTX_wm_space_image(C);
float location[2];
RNA_float_get_array(op->ptr, "location", location);
- ar->v2d.cursor[0]= location[0];
- ar->v2d.cursor[1]= location[1];
+ sima->cursor[0]= location[0];
+ sima->cursor[1]= location[1];
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_IMAGE, NULL);
return OPERATOR_FINISHED;
}
@@ -3143,7 +3137,7 @@ static int set_tile_exec(bContext *C, wmOperator *op)
RNA_int_get_array(op->ptr, "tile", tile);
ED_uvedit_set_tile(C, CTX_data_scene(C), CTX_data_edit_object(C), ima, tile[0] + ima->xrep*tile[1]);
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_IMAGE, NULL);
return OPERATOR_FINISHED;
}
@@ -3265,7 +3259,7 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "UV_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "UV_OT_select_pinned", PKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "UV_OT_weld", WKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_weldalign", WKEY, KM_PRESS, 0, 0);
/* uv operations */
WM_keymap_add_item(keymap, "UV_OT_stitch", VKEY, KM_PRESS, 0, 0);
@@ -3290,7 +3284,7 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf)
/* menus */
WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
- ED_object_generic_keymap(keyconf, keymap, TRUE);
+ ED_object_generic_keymap(keyconf, keymap, 1);
transform_keymap_for_space(keyconf, keymap, SPACE_IMAGE);
}
diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.c b/source/blender/editors/uvedit/uvedit_parametrizer.c
index b2d20eb7526..4ab04520582 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.c
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.c
@@ -388,7 +388,7 @@ static float p_face_area(PFace *f)
static float p_area_signed(float *v1, float *v2, float *v3)
{
return 0.5f*(((v2[0] - v1[0])*(v3[1] - v1[1])) -
- ((v3[0] - v1[0])*(v2[1] - v1[1])));
+ ((v3[0] - v1[0])*(v2[1] - v1[1])));
}
static float p_face_uv_area_signed(PFace *f)
@@ -397,30 +397,30 @@ static float p_face_uv_area_signed(PFace *f)
PVert *v1 = e1->vert, *v2 = e2->vert, *v3 = e3->vert;
return 0.5f*(((v2->uv[0] - v1->uv[0])*(v3->uv[1] - v1->uv[1])) -
- ((v3->uv[0] - v1->uv[0])*(v2->uv[1] - v1->uv[1])));
+ ((v3->uv[0] - v1->uv[0])*(v2->uv[1] - v1->uv[1])));
}
static float p_edge_length(PEdge *e)
{
- PVert *v1 = e->vert, *v2 = e->next->vert;
- float d[3];
+ PVert *v1 = e->vert, *v2 = e->next->vert;
+ float d[3];
- d[0] = v2->co[0] - v1->co[0];
- d[1] = v2->co[1] - v1->co[1];
- d[2] = v2->co[2] - v1->co[2];
+ d[0] = v2->co[0] - v1->co[0];
+ d[1] = v2->co[1] - v1->co[1];
+ d[2] = v2->co[2] - v1->co[2];
- return sqrt(d[0]*d[0] + d[1]*d[1] + d[2]*d[2]);
+ return sqrt(d[0]*d[0] + d[1]*d[1] + d[2]*d[2]);
}
static float p_edge_uv_length(PEdge *e)
{
- PVert *v1 = e->vert, *v2 = e->next->vert;
- float d[3];
+ PVert *v1 = e->vert, *v2 = e->next->vert;
+ float d[3];
- d[0] = v2->uv[0] - v1->uv[0];
- d[1] = v2->uv[1] - v1->uv[1];
+ d[0] = v2->uv[0] - v1->uv[0];
+ d[1] = v2->uv[1] - v1->uv[1];
- return sqrt(d[0]*d[0] + d[1]*d[1]);
+ return sqrt(d[0]*d[0] + d[1]*d[1]);
}
static void p_chart_uv_bbox(PChart *chart, float *minv, float *maxv)
@@ -522,7 +522,7 @@ static PEdge *p_boundary_edge_next(PEdge *e)
static PEdge *p_boundary_edge_prev(PEdge *e)
{
- PEdge *we = e, *last;
+ PEdge *we = e, *last;
do {
last = we;
@@ -591,7 +591,7 @@ static void p_vert_load_pin_select_uvs(PHandle *handle, PVert *v)
if (e->flag & PEDGE_SELECT)
v->flag |= PVERT_SELECT;
- if (e->flag & PEDGE_PIN) {
+ if (e->flag & PEDGE_PIN) {
pinuv[0] += e->orig_uv[0]*handle->aspx;
pinuv[1] += e->orig_uv[1]*handle->aspy;
npins++;
@@ -823,7 +823,7 @@ static PBool p_edge_has_pair(PHandle *handle, PEdge *e, PEdge **pair, PBool impl
/* don't connect seams and t-junctions */
if ((pe->flag & PEDGE_SEAM) || *pair ||
- (impl && p_edge_implicit_seam(e, pe))) {
+ (impl && p_edge_implicit_seam(e, pe))) {
*pair = NULL;
return P_FALSE;
}
@@ -1032,8 +1032,8 @@ static PFace *p_face_add(PHandle *handle)
}
static PFace *p_face_add_construct(PHandle *handle, ParamKey key, ParamKey *vkeys,
- float *co[3], float *uv[3], int i1, int i2, int i3,
- ParamBool *pin, ParamBool *select)
+ float *co[3], float *uv[3], int i1, int i2, int i3,
+ ParamBool *pin, ParamBool *select)
{
PFace *f = p_face_add(handle);
PEdge *e1 = f->edge, *e2 = e1->next, *e3 = e2->next;
@@ -1124,8 +1124,8 @@ static PBool p_quad_split_direction(PHandle *handle, float **co, PHashKey *vkeys
static void p_chart_boundaries(PChart *chart, int *nboundaries, PEdge **outer)
{
- PEdge *e, *be;
- float len, maxlen = -1.0;
+ PEdge *e, *be;
+ float len, maxlen = -1.0;
if (nboundaries)
*nboundaries = 0;
@@ -1133,29 +1133,29 @@ static void p_chart_boundaries(PChart *chart, int *nboundaries, PEdge **outer)
*outer = NULL;
for (e=chart->edges; e; e=e->nextlink) {
- if (e->pair || (e->flag & PEDGE_DONE))
- continue;
+ if (e->pair || (e->flag & PEDGE_DONE))
+ continue;
if (nboundaries)
(*nboundaries)++;
- len = 0.0f;
+ len = 0.0f;
be = e;
do {
- be->flag |= PEDGE_DONE;
- len += p_edge_length(be);
+ be->flag |= PEDGE_DONE;
+ len += p_edge_length(be);
be = be->next->vert->edge;
- } while(be != e);
+ } while(be != e);
- if (outer && (len > maxlen)) {
+ if (outer && (len > maxlen)) {
*outer = e;
- maxlen = len;
- }
- }
+ maxlen = len;
+ }
+ }
for (e=chart->edges; e; e=e->nextlink)
- e->flag &= ~PEDGE_DONE;
+ e->flag &= ~PEDGE_DONE;
}
static float p_edge_boundary_angle(PEdge *e)
@@ -1272,8 +1272,8 @@ static void p_chart_fill_boundaries(PChart *chart, PEdge *outer)
for (e=chart->edges; e; e=e->nextlink) {
/* enext = e->nextlink; - as yet unused */
- if (e->pair || (e->flag & PEDGE_FILLED))
- continue;
+ if (e->pair || (e->flag & PEDGE_FILLED))
+ continue;
nedges = 0;
be = e;
@@ -1285,7 +1285,7 @@ static void p_chart_fill_boundaries(PChart *chart, PEdge *outer)
if (e != outer)
p_chart_fill_boundary(chart, e, nedges);
- }
+ }
}
#if 0
@@ -1848,7 +1848,7 @@ static PBool p_collapse_allowed(PEdge *edge, PEdge *pair)
return P_FALSE;
return (p_collapse_allowed_topologic(edge, pair) &&
- p_collapse_allowed_geometric(edge, pair));
+ p_collapse_allowed_geometric(edge, pair));
}
static float p_collapse_cost(PEdge *edge, PEdge *pair)
@@ -2793,7 +2793,7 @@ static PBool p_chart_symmetry_pins(PChart *chart, PEdge *outer, PVert **pin1, PV
float maxlen = 0.0f, curlen = 0.0f, totlen = 0.0f, firstlen = 0.0f;
float len1, len2;
- /* find longest series of verts split in the chart itself, these are
+ /* find longest series of verts split in the chart itself, these are
marked during construction */
be = outer;
lastbe = p_boundary_edge_prev(be);
@@ -2804,7 +2804,7 @@ static PBool p_chart_symmetry_pins(PChart *chart, PEdge *outer, PVert **pin1, PV
nextbe = p_boundary_edge_next(be);
if ((be->vert->flag & PVERT_SPLIT) ||
- (lastbe->vert->flag & nextbe->vert->flag & PVERT_SPLIT)) {
+ (lastbe->vert->flag & nextbe->vert->flag & PVERT_SPLIT)) {
if (!cure) {
if (be == outer)
firste1 = be;
@@ -3192,11 +3192,11 @@ static float p_face_stretch(PFace *f)
copy_v3_v3(tmp, v2->co);
mul_v3_fl(tmp, (v3->uv[1] - v1->uv[1]));
- add_v3_v3v3(Ps, Ps, tmp);
+ add_v3_v3(Ps, tmp);
copy_v3_v3(tmp, v3->co);
mul_v3_fl(tmp, (v1->uv[1] - v2->uv[1]));
- add_v3_v3v3(Ps, Ps, tmp);
+ add_v3_v3(Ps, tmp);
mul_v3_fl(Ps, w);
@@ -3205,11 +3205,11 @@ static float p_face_stretch(PFace *f)
copy_v3_v3(tmp, v2->co);
mul_v3_fl(tmp, (v1->uv[0] - v3->uv[0]));
- add_v3_v3v3(Pt, Pt, tmp);
+ add_v3_v3(Pt, tmp);
copy_v3_v3(tmp, v3->co);
mul_v3_fl(tmp, (v2->uv[0] - v1->uv[0]));
- add_v3_v3v3(Pt, Pt, tmp);
+ add_v3_v3(Pt, tmp);
mul_v3_fl(Pt, w);
@@ -4029,7 +4029,7 @@ static void p_smooth(PChart *chart)
MEM_freeN(nodesx);
MEM_freeN(nodesy);
- arena = BLI_memarena_new(1<<16);
+ arena = BLI_memarena_new(1<<16, "param smooth arena");
root = p_node_new(arena, tri, esize*2, minv, maxv, 0);
for (v=chart->verts; v; v=v->nextlink)
@@ -4049,7 +4049,7 @@ ParamHandle *param_construct_begin()
PHandle *handle = MEM_callocN(sizeof*handle, "PHandle");
handle->construction_chart = p_chart_new(handle);
handle->state = PHANDLE_STATE_ALLOCATED;
- handle->arena = BLI_memarena_new((1<<16));
+ handle->arena = BLI_memarena_new((1<<16), "param construct arena");
handle->aspx = 1.0f;
handle->aspy = 1.0f;
@@ -4074,7 +4074,7 @@ void param_delete(ParamHandle *handle)
int i;
param_assert((phandle->state == PHANDLE_STATE_ALLOCATED) ||
- (phandle->state == PHANDLE_STATE_CONSTRUCTED));
+ (phandle->state == PHANDLE_STATE_CONSTRUCTED));
for (i = 0; i < phandle->ncharts; i++)
p_chart_delete(phandle->charts[i]);
@@ -4095,8 +4095,8 @@ void param_delete(ParamHandle *handle)
}
void param_face_add(ParamHandle *handle, ParamKey key, int nverts,
- ParamKey *vkeys, float **co, float **uv,
- ParamBool *pin, ParamBool *select)
+ ParamKey *vkeys, float **co, float **uv,
+ ParamBool *pin, ParamBool *select)
{
PHandle *phandle = (PHandle*)handle;
diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.h b/source/blender/editors/uvedit/uvedit_parametrizer.h
index 8d440e2e652..912270da9ca 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.h
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.h
@@ -22,7 +22,7 @@ typedef enum ParamBool {
- vertices are implicitly created
- in construct_end the mesh will be split up according to the seams
- the resulting charts must be:
- - manifold, connected, open (at least one boundary loop)
+ - manifold, connected, open (at least one boundary loop)
- output will be written to the uv pointers
*/
@@ -33,16 +33,16 @@ void param_aspect_ratio(ParamHandle *handle, float aspx, float aspy);
int p_face_exists(ParamHandle *handle, ParamKey *vkeys, int i1, int i2, int i3);
void param_face_add(ParamHandle *handle,
- ParamKey key,
- int nverts,
- ParamKey *vkeys,
- float **co,
- float **uv,
+ ParamKey key,
+ int nverts,
+ ParamKey *vkeys,
+ float **co,
+ float **uv,
ParamBool *pin,
ParamBool *select);
void param_edge_set_seam(ParamHandle *handle,
- ParamKey *vkeys);
+ ParamKey *vkeys);
void param_construct_end(ParamHandle *handle, ParamBool fill, ParamBool impl);
void param_delete(ParamHandle *chart);
@@ -51,8 +51,8 @@ void param_delete(ParamHandle *chart);
-----------------------------
- charts with less than two pinned vertices are assigned 2 pins
- lscm is divided in three steps:
- - begin: compute matrix and it's factorization (expensive)
- - solve using pinned coordinates (cheap)
+ - begin: compute matrix and it's factorization (expensive)
+ - solve using pinned coordinates (cheap)
- end: clean up
- uv coordinates are allowed to change within begin/end, for
quick re-solving
diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
index 6275549e3c5..d0fee1b3620 100644
--- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c
+++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
@@ -34,12 +34,9 @@
#include "MEM_guardedalloc.h"
#include "DNA_camera_types.h"
-#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
@@ -55,6 +52,7 @@
#include "BLI_editVert.h"
#include "BLI_scanfill.h"
#include "BLI_array.h"
+#include "BLI_uvproject.h"
#include "PIL_time.h"
@@ -67,7 +65,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "UI_interface.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -450,7 +447,7 @@ void UV_OT_minimize_stretch(wmOperatorType *ot)
ot->name= "Minimize Stretch";
ot->idname= "UV_OT_minimize_stretch";
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- ot->description="DOC_BROKEN";
+ ot->description="Reduce UV stretching by relaxing angles";
/* api callbacks */
ot->exec= minimize_stretch_exec;
@@ -898,115 +895,7 @@ void UV_OT_unwrap(wmOperatorType *ot)
}
/**************** Project From View operator **************/
-
-static void uv_from_view_bounds(float target[2], float source[3], float rotmat[4][4])
-{
- float pv[3];
-
- mul_m4_v3(rotmat, pv);
-
- /* ortho projection */
- target[0] = -pv[0];
- target[1] = pv[2];
-}
-
-typedef struct UvCameraInfo {
- float camangle;
- float camsize;
- float xasp, yasp;
- float shiftx, shifty;
- float rotmat[4][4];
- float caminv[4][4];
- short do_persp, do_pano;
-} UvCameraInfo;
-
-//static void uv_from_camera(float camsize, float camangle, float xasp, float yasp, float target[2], float source[3], float rotmat[4][4], float caminv[4][4], int persp, int pano)
-static void uv_from_camera(UvCameraInfo *uci, float target[2], float source[3])
-{
- float pv4[4];
-
- copy_v3_v3(pv4, source);
- pv4[3]= 1.0;
-
- /* rotmat is the object matrix in this case */
- mul_m4_v4(uci->rotmat, pv4);
-
- /* caminv is the inverse camera matrix */
- mul_m4_v4(uci->caminv, pv4);
-
- if(uci->do_pano) {
- float angle= atan2f(pv4[0], -pv4[2]) / (M_PI * 2.0); /* angle around the camera */
- if (uci->do_persp==0) {
- target[0] = angle; /* no correct method here, just map to 0-1 */
- target[1] = pv4[1] / uci->camsize;
- }
- else {
- float vec2d[2]= {pv4[0], pv4[2]}; /* 2D position from the camera */
- target[0] = angle * (M_PI / uci->camangle);
- target[1] = pv4[1] / (len_v2(vec2d) * uci->camsize);
- }
- }
- else {
- if (pv4[2]==0.0f) pv4[2]=0.00001f; /* don't allow div by 0 */
-
- if (uci->do_persp==0) {
- target[0]=(pv4[0]/uci->camsize) * uci->xasp;
- target[1]=(pv4[1]/uci->camsize) * uci->yasp;
- }
- else {
- target[0]=(-pv4[0]*((1.0f/uci->camsize)/pv4[2])*uci->xasp) / 2.0f;
- target[1]=(-pv4[1]*((1.0f/uci->camsize)/pv4[2])*uci->yasp) / 2.0f;
- }
- }
-
- /* adds camera shift + 0.5 */
- target[0] += uci->shiftx;
- target[1] += uci->shifty;
-}
-
-static void uv_from_view(ARegion *ar, float target[2], float source[3], float rotmat[4][4])
-{
- RegionView3D *rv3d = ar->regiondata;
- float pv[3], pv4[4], dx, dy, x= 0.0, y= 0.0;
-
- mul_m4_v3(rotmat, pv);
-
- dx= ar->winx;
- dy= ar->winy;
-
- copy_v3_v3(pv4, source);
- pv4[3]= 1.0;
-
- /* rotmat is the object matrix in this case */
- mul_m4_v4(rotmat, pv4);
-
- /* almost project_short */
- mul_m4_v4(rv3d->persmat, pv4);
- if(fabs(pv4[3]) > 0.00001) { /* avoid division by zero */
- target[0] = dx/2.0 + (dx/2.0)*pv4[0]/pv4[3];
- target[1] = dy/2.0 + (dy/2.0)*pv4[1]/pv4[3];
- }
- else {
- /* scaling is lost but give a valid result */
- target[0] = dx/2.0 + (dx/2.0)*pv4[0];
- target[1] = dy/2.0 + (dy/2.0)*pv4[1];
- }
-
- /* v3d->persmat seems to do this funky scaling */
- if(dx > dy) {
- y= (dx-dy)/2.0;
- dy = dx;
- }
- else {
- x= (dy-dx)/2.0;
- dx = dy;
- }
-
- target[0]= (x + target[0])/dx;
- target[1]= (y + target[1])/dy;
-}
-
-static int from_view_exec(bContext *C, wmOperator *op)
+static int uv_from_view_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
@@ -1040,48 +929,25 @@ static int from_view_exec(bContext *C, wmOperator *op)
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- uv_from_view_bounds(luv->uv, l->v->co, rotmat);
+ project_from_view_ortho(luv->uv, l->v->co, rotmat);
}
}
}
else if (camera) {
- UvCameraInfo uci;
-
- uci.do_pano = (camera->flag & CAM_PANORAMA);
- uci.do_persp = (camera->type==CAM_PERSP);
-
- uci.camangle= DEG2RAD(camera->angle)/2.0f;
- uci.camsize= uci.do_persp ? uci.camsize= tanf(uci.camangle) : camera->ortho_scale;
-
- if (invert_m4_m4(uci.caminv, v3d->camera->obmat)) {
-
- /* normal projection */
- copy_m4_m4(uci.rotmat, obedit->obmat);
-
- /* also make aspect ratio adjustment factors */
- if (scene->r.xsch > scene->r.ysch) {
- uci.xasp= 1.0f;
- uci.yasp= (float)(scene->r.xsch)/(float)(scene->r.ysch);
- }
- else {
- uci.xasp= (float)(scene->r.ysch)/(float)(scene->r.xsch);
- uci.yasp= 1.0f;
- }
-
-
- /* include 0.5f here to move the UVs into the center */
- uci.shiftx = 0.5f - camera->shiftx;
- uci.shifty = 0.5f - camera->shifty;
-
+ struct UvCameraInfo *uci= project_camera_info(v3d->camera, obedit->obmat, scene->r.xsch, scene->r.ysch);
+
+ if(uci) {
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
if (!BM_TestHFlag(efa, BM_SELECT))
continue;
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- uv_from_camera(&uci, luv->uv, l->v->co);
+ project_from_camera(luv->uv, l->v->co, uci);
}
}
+
+ MEM_freeN(uci);
}
}
else {
@@ -1093,7 +959,7 @@ static int from_view_exec(bContext *C, wmOperator *op)
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- uv_from_view(ar, luv->uv, l->v->co, rotmat);
+ project_from_view(luv->uv, l->v->co, rv3d->persmat, rotmat, ar->winx, ar->winy);
}
}
}
@@ -1106,7 +972,7 @@ static int from_view_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int from_view_poll(bContext *C)
+static int uv_from_view_poll(bContext *C)
{
RegionView3D *rv3d= CTX_wm_region_view3d(C);
@@ -1124,8 +990,8 @@ void UV_OT_from_view(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* api callbacks */
- ot->exec= from_view_exec;
- ot->poll= from_view_poll;
+ ot->exec= uv_from_view_exec;
+ ot->poll= uv_from_view_poll;
/* properties */
RNA_def_boolean(ot->srna, "orthographic", 0, "Orthographic", "Use orthographic projection.");